mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-24 14:27:56 -05:00
* fix(billing): should allow restoring subscription (#1728) * fix(already-cancelled-sub): UI should allow restoring subscription * restore functionality fixed * fix * improvement(start): revert to start block * make it work with start block * fix start block persistence * cleanup triggers * debounce status checks * update docs * improvement(start): revert to start block * make it work with start block * fix start block persistence * cleanup triggers * debounce status checks * update docs * SSE v0.1 * v0.2 * v0.3 * v0.4 * v0.5 * v0.6 * broken checkpoint * Executor progress - everything preliminarily tested except while loops and triggers * Executor fixes * Fix var typing * Implement while loop execution * Loop and parallel result agg * Refactor v1 - loops work * Fix var resolution in for each loop * Fix while loop condition and variable resolution * Fix loop iteration counts * Fix loop badges * Clean logs * Fix variable references from start block * Fix condition block * Fix conditional convergence * Dont execute orphaned nodse * Code cleanup 1 and error surfacing * compile time try catch * Some fixes * Fix error throwing * Sentinels v1 * Fix multiple start and end nodes in loop * Edge restoration * Fix reachable nodes execution * Parallel subflows * Fix loop/parallel sentinel convergence * Loops and parallels orchestrator * Split executor * Variable resolution split * Dag phase * Refactor * Refactor * Refactor 3 * Lint + refactor * Lint + cleanup + refactor * Readability * Initial logs * Fix trace spans * Console pills for iters * Add input/output pills * Checkpoint * remove unused code * THIS IS THE COMMIT THAT CAN BREAK A LOT OF THINGS * ANOTHER BIG REFACTOR * Lint + fix tests * Fix webhook * Remove comment * Merge stash * Fix triggers? * Stuff * Fix error port * Lint * Consolidate state * Clean up some var resolution * Remove some var resolution logs * Fix chat * Fix chat triggers * Fix chat trigger fully * Snapshot refactor * Fix mcp and custom tools * Lint * Fix parallel default count and trace span overlay * Agent purple * Fix test * Fix test --------- Co-authored-by: Waleed <walif6@gmail.com> Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com> Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import type { ExecutionContext } from '@/executor/types'
|
|
import type { SerializedBlock } from '@/serializer/types'
|
|
|
|
export interface BlockExecutionErrorDetails {
|
|
block: SerializedBlock
|
|
error: Error | string
|
|
context?: ExecutionContext
|
|
additionalInfo?: Record<string, any>
|
|
}
|
|
|
|
export function buildBlockExecutionError(details: BlockExecutionErrorDetails): Error {
|
|
const errorMessage =
|
|
details.error instanceof Error ? details.error.message : String(details.error)
|
|
const blockName = details.block.metadata?.name || details.block.id
|
|
const blockType = details.block.metadata?.id || 'unknown'
|
|
|
|
const error = new Error(`[${blockType}] ${blockName}: ${errorMessage}`)
|
|
|
|
Object.assign(error, {
|
|
blockId: details.block.id,
|
|
blockName,
|
|
blockType,
|
|
workflowId: details.context?.workflowId,
|
|
timestamp: new Date().toISOString(),
|
|
...details.additionalInfo,
|
|
})
|
|
|
|
return error
|
|
}
|
|
|
|
export function buildHTTPError(config: {
|
|
status: number
|
|
url?: string
|
|
method?: string
|
|
message?: string
|
|
}): Error {
|
|
let errorMessage = config.message || `HTTP ${config.method || 'request'} failed`
|
|
|
|
if (config.url) {
|
|
errorMessage += ` - ${config.url}`
|
|
}
|
|
|
|
if (config.status) {
|
|
errorMessage += ` (Status: ${config.status})`
|
|
}
|
|
|
|
const error = new Error(errorMessage)
|
|
|
|
Object.assign(error, {
|
|
status: config.status,
|
|
url: config.url,
|
|
method: config.method,
|
|
timestamp: new Date().toISOString(),
|
|
})
|
|
|
|
return error
|
|
}
|
|
|
|
export function normalizeError(error: unknown): string {
|
|
if (error instanceof Error) {
|
|
return error.message
|
|
}
|
|
return String(error)
|
|
}
|