@shipfox/api-workflows 16.0.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +47 -0
- package/dist/core/agent-tools.js +8 -3
- package/dist/core/agent-tools.js.map +1 -1
- package/dist/core/entities/step.d.ts +1 -1
- package/dist/core/entities/step.d.ts.map +1 -1
- package/dist/core/entities/step.js +2 -1
- package/dist/core/entities/step.js.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/step-config/materialize-job-execution-steps.js +2 -0
- package/dist/core/step-config/materialize-job-execution-steps.js.map +1 -1
- package/dist/core/step-config/resolve-step-config.js +3 -1
- package/dist/core/step-config/resolve-step-config.js.map +1 -1
- package/dist/db/db.d.ts +8 -8
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema/steps.d.ts +2 -2
- package/dist/db/schema/workflow-run-attempts.d.ts +2 -2
- package/dist/db/workflow-runs/outbox.d.ts +1 -0
- package/dist/db/workflow-runs/outbox.d.ts.map +1 -1
- package/dist/db/workflow-runs/outbox.js +2 -1
- package/dist/db/workflow-runs/outbox.js.map +1 -1
- package/dist/db/workflow-runs/run-create.d.ts.map +1 -1
- package/dist/db/workflow-runs/run-create.js +49 -1
- package/dist/db/workflow-runs/run-create.js.map +1 -1
- package/dist/db/workflow-runs/steps.d.ts +6 -0
- package/dist/db/workflow-runs/steps.d.ts.map +1 -1
- package/dist/db/workflow-runs/steps.js +14 -0
- package/dist/db/workflow-runs/steps.js.map +1 -1
- package/dist/db/workflow-runs.d.ts +1 -1
- package/dist/db/workflow-runs.d.ts.map +1 -1
- package/dist/db/workflow-runs.js +1 -1
- package/dist/db/workflow-runs.js.map +1 -1
- package/dist/presentation/inter-module.d.ts.map +1 -1
- package/dist/presentation/inter-module.js +85 -19
- package/dist/presentation/inter-module.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/core/agent-tools.test.ts +85 -0
- package/src/core/agent-tools.ts +11 -3
- package/src/core/entities/step.ts +1 -1
- package/src/core/errors.ts +2 -0
- package/src/core/job-execution.test.ts +1 -0
- package/src/core/run-workflow.test.ts +4 -0
- package/src/core/step-config/materialize-job-execution-steps.ts +2 -0
- package/src/core/step-config/resolve-step-config.ts +4 -1
- package/src/db/index.ts +1 -0
- package/src/db/workflow-runs/outbox.ts +2 -0
- package/src/db/workflow-runs/run-create.test.ts +41 -0
- package/src/db/workflow-runs/run-create.ts +81 -3
- package/src/db/workflow-runs/steps.ts +19 -0
- package/src/db/workflow-runs.ts +1 -0
- package/src/presentation/inter-module.test.ts +223 -0
- package/src/presentation/inter-module.ts +106 -24
- package/src/presentation/routes/agent-runtime-config.test.ts +2 -0
- package/test/factories/workflow-model.ts +74 -2
- package/test/fixtures/agent-inter-module.ts +2 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db/workflow-runs/run-create.ts"],"sourcesContent":["import {\n createWorkflowModelSnapshot,\n WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS,\n type WorkflowModel,\n} from '@shipfox/api-definitions-dto';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n analyzeContextKeyAccess,\n type ResolvedFieldSegment,\n type WorkflowExpression,\n} from '@shipfox/expression';\nimport {logger} from '@shipfox/node-opentelemetry';\nimport {eq, sql} from 'drizzle-orm';\nimport type {AgentDefaultsResolver} from '#core/agent-defaults.js';\nimport {\n createAgentToolMaterializationSnapshot,\n loadAgentToolMaterializationContext,\n} from '#core/agent-tools.js';\nimport type {\n TriggerPayload,\n WorkflowRun,\n WorkflowRunDevSource,\n WorkflowRunOrigin,\n WorkflowSourceSnapshot,\n} from '#core/entities/workflow-run.js';\nimport {InterpolationUnresolvableError} from '#core/errors.js';\nimport {resolveWorkflowRunTriggerReference} from '#core/resolve-trigger-reference.js';\nimport {assembleCreationContext} from '#core/step-config/assemble-run-context.js';\nimport type {MaterializedWorkflowJob} from '#core/step-config/materialize-workflow-model.js';\nimport type {WorkflowStepTemplateDiagnostic} from '#core/step-config/resolve-step-config.js';\nimport {resolveWorkflowRunName} from '#core/step-config/resolve-workflow-run-name.js';\nimport {\n deriveInitialJobExecutionPlan,\n materializeWorkflowRunJobs,\n} from '#core/workflow-run-creation.js';\nimport {\n recordWorkflowDisplayNameResolutionDegraded,\n recordWorkflowRunCreated,\n} from '#metrics/instance.js';\nimport {db, type Tx} from '../db.js';\nimport {workflowRunAttempts} from '../schema/workflow-run-attempts.js';\nimport {workflowRunCounters} from '../schema/workflow-run-counters.js';\nimport {toWorkflowRun, type WorkflowRunDevSourceDb, workflowRuns} from '../schema/workflow-runs.js';\nimport {type MaterializedRunGraphJob, persistMaterializedRunGraph} from './run-graph.js';\n\nexport type WorkflowModelJob = WorkflowModel['jobs'][number];\n\nexport interface ReferencedVariable {\n readonly key: string;\n readonly field: InterpolationUnresolvableError['field'];\n readonly source: string;\n readonly envKey?: string | undefined;\n}\n\nexport interface CreateWorkflowRunParams {\n workspaceId: string;\n projectId: string;\n definitionId: string;\n name?: string | undefined;\n model: WorkflowModel;\n triggerPayload: TriggerPayload;\n triggerConnectionId?: string | undefined;\n inputs?: Record<string, unknown> | undefined;\n sourceSnapshot?: WorkflowSourceSnapshot | null | undefined;\n triggerIdempotencyKey?: string | undefined;\n /** Run provenance. Defaults to a synced run with no dev source. */\n origin?: WorkflowRunOrigin | undefined;\n devSource?: WorkflowRunDevSource | null | undefined;\n resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'> | undefined;\n integrations?: IntegrationsModuleClient | undefined;\n projects?: ProjectsModuleClient | undefined;\n}\n\nexport async function createWorkflowRun(params: CreateWorkflowRunParams): Promise<WorkflowRun> {\n const triggerReference = await resolveWorkflowRunTriggerReference({\n workspaceId: params.workspaceId,\n triggerConnectionId: params.triggerConnectionId,\n triggerPayload: params.triggerPayload,\n integrations: params.integrations,\n projects: params.projects,\n });\n const staticName = params.name ?? params.model.name;\n const agentToolContext =\n params.integrations === undefined\n ? undefined\n : await loadAgentToolMaterializationContext({\n model: params.model,\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n integrations: params.integrations,\n projects: params.projects,\n });\n const agentToolMaterialization = createAgentToolMaterializationSnapshot({\n model: params.model,\n context: agentToolContext,\n });\n const result = await db().transaction(async (tx) => {\n // Serialize idempotent trigger resolution separately from per-definition number\n // allocation so a replay never consumes a number, including when two deliveries\n // race before either run is visible.\n if (params.triggerIdempotencyKey) {\n await tx.execute(\n sql`select pg_advisory_xact_lock(hashtext(${params.triggerIdempotencyKey}))`,\n );\n const existing = await tx\n .select()\n .from(workflowRuns)\n .where(eq(workflowRuns.triggerIdempotencyKey, params.triggerIdempotencyKey))\n .limit(1);\n const existingRow = existing[0];\n if (existingRow) return {run: toWorkflowRun(existingRow), created: false};\n }\n\n // Keep allocation on the existing transaction so a trigger burst cannot pin\n // every pool connection and then wait for a second connection per run.\n const number = await allocateWorkflowRunNumber(tx, params.definitionId);\n\n const insertResult = await tx\n .insert(workflowRuns)\n .values({\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n definitionId: params.definitionId,\n number,\n name: null,\n workflowName: staticName,\n status: 'pending',\n currentAttempt: 1,\n triggerProvider: params.triggerPayload.provider ?? null,\n triggerSource: params.triggerPayload.source,\n triggerEvent: params.triggerPayload.event,\n triggerPayload: params.triggerPayload,\n triggerReference,\n inputs: params.inputs ?? null,\n sourceSnapshot: params.sourceSnapshot ?? null,\n triggerIdempotencyKey: params.triggerIdempotencyKey ?? null,\n origin: params.origin ?? 'synced',\n devSource:\n params.devSource === undefined || params.devSource === null\n ? null\n : toWorkflowRunDevSourceDb(params.devSource),\n })\n .onConflictDoNothing({target: workflowRuns.triggerIdempotencyKey})\n .returning();\n\n const runRow = insertResult[0];\n if (!runRow) {\n // Conflict path: skip jobs/steps/outbox so the first insert keeps ownership of side effects.\n if (!params.triggerIdempotencyKey) {\n throw new Error('Insert returned no rows');\n }\n const existing = await tx\n .select()\n .from(workflowRuns)\n .where(eq(workflowRuns.triggerIdempotencyKey, params.triggerIdempotencyKey))\n .limit(1);\n const existingRow = existing[0];\n if (!existingRow) {\n throw new Error(\n `Idempotency conflict but existing run missing for key ${params.triggerIdempotencyKey}`,\n );\n }\n return {run: toWorkflowRun(existingRow), created: false};\n }\n\n // Resolving run-creation templates and predicates here gives them a stable variable snapshot\n // and interpolation access to the inserted run id. Run-name resolution is display-only and\n // persists only a resolved override. If resolution fails, the transaction rolls back the run,\n // jobs, steps, and outbox event together. Listening steps are resolved later when a job\n // execution is created.\n const provisionalRun = toWorkflowRun(runRow);\n const oneShotJobs = params.model.jobs.filter((job) => job.mode !== 'listening');\n const vars = await loadReferencedVariables({\n model: params.model,\n jobs: oneShotJobs,\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n definitionId: params.definitionId,\n secrets: params.secrets,\n });\n const runNameResolution = resolveWorkflowRunName({\n runName: params.model.runName,\n context: assembleCreationContext({\n run: provisionalRun,\n triggerPayload: params.triggerPayload,\n inputs: params.inputs ?? null,\n vars,\n }).values,\n });\n const [resolvedRunRow] = await tx\n .update(workflowRuns)\n .set({name: runNameResolution.value, updatedAt: new Date()})\n .where(eq(workflowRuns.id, provisionalRun.id))\n .returning();\n if (!resolvedRunRow)\n throw new Error(`Workflow run missing after name resolution: ${runRow.id}`);\n const run = toWorkflowRun(resolvedRunRow);\n const [attemptRow] = await tx\n .insert(workflowRunAttempts)\n .values({\n workflowRunId: runRow.id,\n attempt: 1,\n status: 'pending',\n model: createWorkflowModelSnapshot(params.model),\n vars,\n agentToolMaterialization,\n })\n .returning();\n if (!attemptRow) throw new Error('Insert returned no rows');\n\n const materializedJobs = await materializeWorkflowRunJobs({\n run,\n model: params.model,\n triggerPayload: params.triggerPayload,\n inputs: params.inputs ?? null,\n vars,\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n agentToolContext,\n agentToolSnapshot: agentToolMaterialization,\n });\n\n const graphJobs = materializeRunGraphJobs({\n params,\n run,\n vars,\n materializedJobs,\n });\n await persistMaterializedRunGraph(tx, {\n run,\n workflowRunAttempt: attemptRow,\n materializedJobs: graphJobs,\n });\n\n logTemplateDiagnostics({\n workflowRunId: runRow.id,\n diagnostics: materializedJobs.flatMap((job) =>\n job.steps.flatMap((step) =>\n (step.diagnostics ?? []).map((diagnostic) => ({\n jobKey: job.key,\n stepName: step.name,\n ...diagnostic,\n })),\n ),\n ),\n });\n\n return {\n run,\n created: true,\n nameDegradation: runNameResolution.degradation,\n };\n });\n\n if (result.created && result.nameDegradation !== undefined) {\n recordWorkflowDisplayNameResolutionDegraded('workflow.run_name', result.nameDegradation.cause);\n logger().warn(\n {\n workflowRunId: result.run.id,\n definitionId: result.run.definitionId,\n field: 'workflow.run_name',\n cause: result.nameDegradation.cause,\n ...(result.nameDegradation.expression === undefined\n ? {}\n : {expression: result.nameDegradation.expression.slice(0, 256)}),\n },\n 'Workflow run name resolution degraded to the static workflow name',\n );\n }\n\n if (result.created) {\n recordWorkflowRunCreated(result.run.triggerPayload.provider ?? result.run.triggerSource);\n }\n\n return result.run;\n}\n\nasync function allocateWorkflowRunNumber(tx: Tx, definitionId: string): Promise<number> {\n const [counterRow] = await tx\n .insert(workflowRunCounters)\n .values({definitionId, nextNumber: 2})\n .onConflictDoUpdate({\n target: workflowRunCounters.definitionId,\n set: {nextNumber: sql`${workflowRunCounters.nextNumber} + 1`},\n })\n .returning({number: sql<number>`${workflowRunCounters.nextNumber} - 1`});\n if (!counterRow) throw new Error('Run counter allocation returned no rows');\n return counterRow.number;\n}\n\n// The run entity carries camelCase dev-source fields while the persisted jsonb uses\n// snake_case keys, so the write boundary maps explicitly rather than spreading.\nfunction toWorkflowRunDevSourceDb(source: WorkflowRunDevSource): WorkflowRunDevSourceDb {\n return {\n ref: source.ref,\n commit: source.commit,\n config_path: source.configPath,\n initiated_by_user_id: source.initiatedByUserId,\n replay_of_event_id: source.replayOfEventId,\n };\n}\n\nexport async function loadReferencedVariables(params: {\n readonly model: WorkflowModel;\n readonly jobs?: readonly WorkflowModelJob[] | undefined;\n readonly workspaceId: string;\n readonly projectId: string;\n readonly definitionId: string;\n readonly secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'> | undefined;\n}): Promise<Record<string, string> | undefined> {\n const references = referencedVariables(params.model, params.jobs ?? params.model.jobs);\n const keys = [...new Set(references.map((reference) => reference.key))].sort();\n if (keys.length === 0) return undefined;\n\n const requiresSecrets = (reference: ReferencedVariable) =>\n reference.field !== 'job.execution_name' && reference.field !== 'workflow.run_name';\n const requiredReferences = references.filter(requiresSecrets);\n const requiredKeys = new Set(requiredReferences.map((reference) => reference.key));\n if (!params.secrets) {\n if (requiredKeys.size === 0) return undefined;\n throw new Error('Secrets client is not configured.');\n }\n const {values: vars} = await params.secrets.getVariablesByNamespace({\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n namespace: '',\n });\n const missingKey = [...requiredKeys].find((key) => !(key in vars));\n if (missingKey !== undefined) {\n const reference = requiredReferences.find((candidate) => candidate.key === missingKey);\n throw new InterpolationUnresolvableError(params.definitionId, {\n field: reference?.field ?? 'env',\n source: reference?.source ?? `vars.${missingKey}`,\n ...(reference?.envKey === undefined ? {} : {envKey: reference.envKey}),\n });\n }\n\n const referencedVars: Record<string, string> = {};\n for (const key of keys) {\n const value = vars[key];\n if (value !== undefined) referencedVars[key] = value;\n }\n return referencedVars;\n}\n\nfunction materializeRunGraphJobs(params: {\n readonly params: CreateWorkflowRunParams;\n readonly run: WorkflowRun;\n readonly vars: Record<string, string> | undefined;\n readonly materializedJobs: readonly MaterializedWorkflowJob[];\n}): readonly MaterializedRunGraphJob[] {\n return params.materializedJobs.map((job, jobIndex) => ({\n job: {\n key: job.key,\n mode: job.mode,\n name: job.name ?? null,\n status: 'pending' as const,\n checkoutPersistCredentials: job.checkout.persistCredentials,\n checkoutPermissionsContents: job.checkout.permissions.contents,\n success: job.success ?? null,\n executionTimeoutMs: job.executionTimeoutMs ?? null,\n listeningTimeoutMs: job.listening?.timeoutMs ?? null,\n maxExecutions: job.listening?.maxExecutions ?? null,\n onResolve: job.listening?.onResolve ?? null,\n batchDebounceMs: job.listening?.batch?.debounceMs ?? null,\n batchMaxSize: job.listening?.batch?.maxSize ?? null,\n batchMaxWaitMs: job.listening?.batch?.maxWaitMs ?? null,\n listeningOn: job.listening?.on ? [...job.listening.on] : null,\n listeningUntil: job.listening?.until ? [...job.listening.until] : null,\n dependencies: [...job.dependencies],\n runner: job.runner.length === 0 ? null : [...job.runner],\n position: job.position,\n },\n createExecution: (jobRow) => {\n if (jobRow.mode === 'listening') return undefined;\n\n const fallbackName = jobRow.name ?? jobRow.key;\n const modelJob = params.params.model.jobs[jobIndex];\n if (!modelJob) return undefined;\n const executionPlan = deriveInitialJobExecutionPlan({\n run: params.run,\n modelJob,\n job,\n jobId: jobRow.id,\n sequence: 1,\n fallbackName,\n triggerPayload: params.params.triggerPayload,\n inputs: params.params.inputs ?? null,\n vars: params.vars,\n });\n\n return {\n sequence: 1,\n // Persist only the resolved override. The core entity supplies the\n // static job name/key when this is null.\n name: executionPlan.nameOverride,\n runner: [...executionPlan.runner],\n status: 'pending' as const,\n evaluationTrace:\n executionPlan.evaluationTrace?.length === 0 ? null : executionPlan.evaluationTrace,\n };\n },\n createSteps: () =>\n job.steps.map((step) => ({\n key: step.key,\n name: step.name,\n sourceLocation: step.sourceLocation,\n status: step.status,\n type: step.type,\n config: step.config,\n condition: step.condition ?? null,\n configPlan: step.configPlan ?? null,\n authoredConfig: step.authoredConfig,\n position: step.position,\n })),\n }));\n}\n\nfunction referencedVariables(\n model: WorkflowModel,\n jobs: readonly WorkflowModelJob[],\n): readonly ReferencedVariable[] {\n const references: ReferencedVariable[] = [];\n\n for (const job of model.jobs) {\n collectPredicateVariableReferences(job.if, references);\n collectPredicateVariableReferences(job.success, references);\n\n for (const trigger of [...(job.listening?.on ?? []), ...(job.listening?.until ?? [])]) {\n collectPredicateVariableReferences(trigger.filter, references);\n }\n\n for (const step of job.steps) {\n collectPredicateVariableReferences(step.if, references);\n collectPredicateVariableReferences(step.gate?.success, references);\n }\n }\n\n collectFieldVariableReferences(model.runName, references, {field: 'workflow.run_name'});\n\n if (jobs.length > 0) {\n collectTemplateVariableReferences(model.templates?.env, references);\n }\n\n for (const job of jobs) {\n collectFieldVariableReferences(job.executionName, references, {field: 'job.execution_name'});\n for (const template of job.runnerTemplates ?? []) {\n collectFieldVariableReferences(template, references, {field: 'job.runner'});\n }\n collectTemplateVariableReferences(job.outputs, references, {field: 'job.outputs'});\n collectTemplateVariableReferences(job.templates?.env, references);\n\n for (const step of job.steps) {\n collectFieldVariableReferences(step.templates?.name, references, {field: 'step.name'});\n collectFieldVariableReferences(step.templates?.workingDirectory, references, {\n field: 'step.working_directory',\n });\n if (step.kind === 'run') {\n collectFieldVariableReferences(step.templates?.command, references, {field: 'run'});\n collectTemplateVariableReferences(step.templates?.env, references);\n } else if (step.kind === 'agent') {\n collectFieldVariableReferences(step.templates?.prompt, references, {field: 'agent.prompt'});\n collectFieldVariableReferences(step.templates?.model, references, {field: 'agent.model'});\n collectFieldVariableReferences(step.templates?.provider, references, {\n field: 'agent.provider',\n });\n } else if (step.kind === 'checkout') {\n for (const [key, field] of WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS) {\n collectFieldVariableReferences(step.checkout.templates?.[key], references, {field});\n }\n }\n }\n }\n\n return references;\n}\n\nfunction collectPredicateVariableReferences(\n expression: WorkflowExpression | string | undefined,\n references: ReferencedVariable[],\n): void {\n if (expression === undefined) return;\n\n const keyAccess = analyzeContextKeyAccess(expression);\n for (const reference of keyAccess.references) {\n if (reference.root !== 'vars') continue;\n references.push({\n key: reference.key,\n field: 'env',\n source: typeof expression === 'string' ? expression : expression.source,\n });\n }\n}\n\nfunction collectTemplateVariableReferences(\n templates: Readonly<Record<string, readonly ResolvedFieldSegment[]>> | undefined,\n references: ReferencedVariable[],\n source?: {\n readonly field: InterpolationUnresolvableError['field'];\n },\n): void {\n for (const [envKey, template] of Object.entries(templates ?? {})) {\n collectFieldVariableReferences(\n template,\n references,\n source === undefined ? {field: 'env', envKey} : source,\n );\n }\n}\n\nfunction collectFieldVariableReferences(\n template: readonly ResolvedFieldSegment[] | undefined,\n references: ReferencedVariable[],\n source: {\n readonly field: InterpolationUnresolvableError['field'];\n readonly envKey?: string | undefined;\n },\n): void {\n for (const segment of template ?? []) {\n if (segment.kind === 'literal') continue;\n const keyAccess = analyzeContextKeyAccess(segment.expression);\n for (const reference of keyAccess.references) {\n if (reference.root !== 'vars') continue;\n references.push({\n key: reference.key,\n field: source.field,\n source: segment.expression.source,\n envKey: source.envKey,\n });\n }\n }\n}\n\nfunction logTemplateDiagnostics(params: {\n readonly workflowRunId: string;\n readonly diagnostics: readonly (WorkflowStepTemplateDiagnostic & {\n readonly jobKey: string;\n readonly stepName: string;\n })[];\n}): void {\n if (params.diagnostics.length === 0) return;\n\n logger().warn(\n {workflowRunId: params.workflowRunId, diagnostics: params.diagnostics},\n 'Workflow interpolation resolved with diagnostics',\n );\n}\n"],"names":["createWorkflowModelSnapshot","WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS","analyzeContextKeyAccess","logger","eq","sql","createAgentToolMaterializationSnapshot","loadAgentToolMaterializationContext","InterpolationUnresolvableError","resolveWorkflowRunTriggerReference","assembleCreationContext","resolveWorkflowRunName","deriveInitialJobExecutionPlan","materializeWorkflowRunJobs","recordWorkflowDisplayNameResolutionDegraded","recordWorkflowRunCreated","db","workflowRunAttempts","workflowRunCounters","toWorkflowRun","workflowRuns","persistMaterializedRunGraph","createWorkflowRun","params","triggerReference","workspaceId","triggerConnectionId","triggerPayload","integrations","projects","staticName","name","model","agentToolContext","undefined","projectId","agentToolMaterialization","context","result","transaction","tx","triggerIdempotencyKey","execute","existing","select","from","where","limit","existingRow","run","created","number","allocateWorkflowRunNumber","definitionId","insertResult","insert","values","workflowName","status","currentAttempt","triggerProvider","provider","triggerSource","source","triggerEvent","event","inputs","sourceSnapshot","origin","devSource","toWorkflowRunDevSourceDb","onConflictDoNothing","target","returning","runRow","Error","provisionalRun","oneShotJobs","jobs","filter","job","mode","vars","loadReferencedVariables","secrets","runNameResolution","runName","resolvedRunRow","update","set","value","updatedAt","Date","id","attemptRow","workflowRunId","attempt","materializedJobs","resolveAgentDefaults","agentToolSnapshot","graphJobs","materializeRunGraphJobs","workflowRunAttempt","logTemplateDiagnostics","diagnostics","flatMap","steps","step","map","diagnostic","jobKey","key","stepName","nameDegradation","degradation","cause","warn","field","expression","slice","counterRow","nextNumber","onConflictDoUpdate","ref","commit","config_path","configPath","initiated_by_user_id","initiatedByUserId","replay_of_event_id","replayOfEventId","references","referencedVariables","keys","Set","reference","sort","length","requiresSecrets","requiredReferences","requiredKeys","size","getVariablesByNamespace","namespace","missingKey","find","candidate","envKey","referencedVars","jobIndex","checkoutPersistCredentials","checkout","persistCredentials","checkoutPermissionsContents","permissions","contents","success","executionTimeoutMs","listeningTimeoutMs","listening","timeoutMs","maxExecutions","onResolve","batchDebounceMs","batch","debounceMs","batchMaxSize","maxSize","batchMaxWaitMs","maxWaitMs","listeningOn","on","listeningUntil","until","dependencies","runner","position","createExecution","jobRow","fallbackName","modelJob","executionPlan","jobId","sequence","nameOverride","evaluationTrace","createSteps","sourceLocation","type","config","condition","configPlan","authoredConfig","collectPredicateVariableReferences","if","trigger","gate","collectFieldVariableReferences","collectTemplateVariableReferences","templates","env","executionName","template","runnerTemplates","outputs","workingDirectory","kind","command","prompt","keyAccess","root","push","Object","entries","segment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/db/workflow-runs/run-create.ts"],"sourcesContent":["import {\n createWorkflowModelSnapshot,\n WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS,\n type WorkflowJsonTemplateTree,\n type WorkflowModel,\n} from '@shipfox/api-definitions-dto';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n analyzeContextKeyAccess,\n type ResolvedFieldSegment,\n type WorkflowExpression,\n} from '@shipfox/expression';\nimport {logger} from '@shipfox/node-opentelemetry';\nimport {eq, sql} from 'drizzle-orm';\nimport type {AgentDefaultsResolver} from '#core/agent-defaults.js';\nimport {\n createAgentToolMaterializationSnapshot,\n loadAgentToolMaterializationContext,\n} from '#core/agent-tools.js';\nimport type {\n TriggerPayload,\n WorkflowRun,\n WorkflowRunDevSource,\n WorkflowRunOrigin,\n WorkflowSourceSnapshot,\n} from '#core/entities/workflow-run.js';\nimport {InterpolationUnresolvableError} from '#core/errors.js';\nimport {resolveWorkflowRunTriggerReference} from '#core/resolve-trigger-reference.js';\nimport {assembleCreationContext} from '#core/step-config/assemble-run-context.js';\nimport type {MaterializedWorkflowJob} from '#core/step-config/materialize-workflow-model.js';\nimport type {WorkflowStepTemplateDiagnostic} from '#core/step-config/resolve-step-config.js';\nimport {resolveWorkflowRunName} from '#core/step-config/resolve-workflow-run-name.js';\nimport {\n deriveInitialJobExecutionPlan,\n materializeWorkflowRunJobs,\n} from '#core/workflow-run-creation.js';\nimport {\n recordWorkflowDisplayNameResolutionDegraded,\n recordWorkflowRunCreated,\n} from '#metrics/instance.js';\nimport {db, type Tx} from '../db.js';\nimport {workflowRunAttempts} from '../schema/workflow-run-attempts.js';\nimport {workflowRunCounters} from '../schema/workflow-run-counters.js';\nimport {toWorkflowRun, type WorkflowRunDevSourceDb, workflowRuns} from '../schema/workflow-runs.js';\nimport {type MaterializedRunGraphJob, persistMaterializedRunGraph} from './run-graph.js';\n\nexport type WorkflowModelJob = WorkflowModel['jobs'][number];\n\nexport interface ReferencedVariable {\n readonly key: string;\n readonly field: InterpolationUnresolvableError['field'];\n readonly source: string;\n readonly envKey?: string | undefined;\n}\n\nexport interface CreateWorkflowRunParams {\n workspaceId: string;\n projectId: string;\n definitionId: string;\n name?: string | undefined;\n model: WorkflowModel;\n triggerPayload: TriggerPayload;\n triggerConnectionId?: string | undefined;\n inputs?: Record<string, unknown> | undefined;\n sourceSnapshot?: WorkflowSourceSnapshot | null | undefined;\n triggerIdempotencyKey?: string | undefined;\n /** Run provenance. Defaults to a synced run with no dev source. */\n origin?: WorkflowRunOrigin | undefined;\n devSource?: WorkflowRunDevSource | null | undefined;\n resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'> | undefined;\n integrations?: IntegrationsModuleClient | undefined;\n projects?: ProjectsModuleClient | undefined;\n}\n\nexport async function createWorkflowRun(params: CreateWorkflowRunParams): Promise<WorkflowRun> {\n const triggerReference = await resolveWorkflowRunTriggerReference({\n workspaceId: params.workspaceId,\n triggerConnectionId: params.triggerConnectionId,\n triggerPayload: params.triggerPayload,\n integrations: params.integrations,\n projects: params.projects,\n });\n const staticName = params.name ?? params.model.name;\n const agentToolContext =\n params.integrations === undefined\n ? undefined\n : await loadAgentToolMaterializationContext({\n model: params.model,\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n integrations: params.integrations,\n projects: params.projects,\n });\n const agentToolMaterialization = createAgentToolMaterializationSnapshot({\n model: params.model,\n context: agentToolContext,\n });\n const result = await db().transaction(async (tx) => {\n // Serialize idempotent trigger resolution separately from per-definition number\n // allocation so a replay never consumes a number, including when two deliveries\n // race before either run is visible.\n if (params.triggerIdempotencyKey) {\n await tx.execute(\n sql`select pg_advisory_xact_lock(hashtext(${params.triggerIdempotencyKey}))`,\n );\n const existing = await tx\n .select()\n .from(workflowRuns)\n .where(eq(workflowRuns.triggerIdempotencyKey, params.triggerIdempotencyKey))\n .limit(1);\n const existingRow = existing[0];\n if (existingRow) return {run: toWorkflowRun(existingRow), created: false};\n }\n\n // Keep allocation on the existing transaction so a trigger burst cannot pin\n // every pool connection and then wait for a second connection per run.\n const number = await allocateWorkflowRunNumber(tx, params.definitionId);\n\n const insertResult = await tx\n .insert(workflowRuns)\n .values({\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n definitionId: params.definitionId,\n number,\n name: null,\n workflowName: staticName,\n status: 'pending',\n currentAttempt: 1,\n triggerProvider: params.triggerPayload.provider ?? null,\n triggerSource: params.triggerPayload.source,\n triggerEvent: params.triggerPayload.event,\n triggerPayload: params.triggerPayload,\n triggerReference,\n inputs: params.inputs ?? null,\n sourceSnapshot: params.sourceSnapshot ?? null,\n triggerIdempotencyKey: params.triggerIdempotencyKey ?? null,\n origin: params.origin ?? 'synced',\n devSource:\n params.devSource === undefined || params.devSource === null\n ? null\n : toWorkflowRunDevSourceDb(params.devSource),\n })\n .onConflictDoNothing({target: workflowRuns.triggerIdempotencyKey})\n .returning();\n\n const runRow = insertResult[0];\n if (!runRow) {\n // Conflict path: skip jobs/steps/outbox so the first insert keeps ownership of side effects.\n if (!params.triggerIdempotencyKey) {\n throw new Error('Insert returned no rows');\n }\n const existing = await tx\n .select()\n .from(workflowRuns)\n .where(eq(workflowRuns.triggerIdempotencyKey, params.triggerIdempotencyKey))\n .limit(1);\n const existingRow = existing[0];\n if (!existingRow) {\n throw new Error(\n `Idempotency conflict but existing run missing for key ${params.triggerIdempotencyKey}`,\n );\n }\n return {run: toWorkflowRun(existingRow), created: false};\n }\n\n // Resolving run-creation templates and predicates here gives them a stable variable snapshot\n // and interpolation access to the inserted run id. Run-name resolution is display-only and\n // persists only a resolved override. If resolution fails, the transaction rolls back the run,\n // jobs, steps, and outbox event together. Listening steps are resolved later when a job\n // execution is created.\n const provisionalRun = toWorkflowRun(runRow);\n const oneShotJobs = params.model.jobs.filter((job) => job.mode !== 'listening');\n const vars = await loadReferencedVariables({\n model: params.model,\n jobs: oneShotJobs,\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n definitionId: params.definitionId,\n secrets: params.secrets,\n });\n const runNameResolution = resolveWorkflowRunName({\n runName: params.model.runName,\n context: assembleCreationContext({\n run: provisionalRun,\n triggerPayload: params.triggerPayload,\n inputs: params.inputs ?? null,\n vars,\n }).values,\n });\n const [resolvedRunRow] = await tx\n .update(workflowRuns)\n .set({name: runNameResolution.value, updatedAt: new Date()})\n .where(eq(workflowRuns.id, provisionalRun.id))\n .returning();\n if (!resolvedRunRow)\n throw new Error(`Workflow run missing after name resolution: ${runRow.id}`);\n const run = toWorkflowRun(resolvedRunRow);\n const [attemptRow] = await tx\n .insert(workflowRunAttempts)\n .values({\n workflowRunId: runRow.id,\n attempt: 1,\n status: 'pending',\n model: createWorkflowModelSnapshot(params.model),\n vars,\n agentToolMaterialization,\n })\n .returning();\n if (!attemptRow) throw new Error('Insert returned no rows');\n\n const materializedJobs = await materializeWorkflowRunJobs({\n run,\n model: params.model,\n triggerPayload: params.triggerPayload,\n inputs: params.inputs ?? null,\n vars,\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n agentToolContext,\n agentToolSnapshot: agentToolMaterialization,\n });\n\n const graphJobs = materializeRunGraphJobs({\n params,\n run,\n vars,\n materializedJobs,\n });\n await persistMaterializedRunGraph(tx, {\n run,\n workflowRunAttempt: attemptRow,\n materializedJobs: graphJobs,\n });\n\n logTemplateDiagnostics({\n workflowRunId: runRow.id,\n diagnostics: materializedJobs.flatMap((job) =>\n job.steps.flatMap((step) =>\n (step.diagnostics ?? []).map((diagnostic) => ({\n jobKey: job.key,\n stepName: step.name,\n ...diagnostic,\n })),\n ),\n ),\n });\n\n return {\n run,\n created: true,\n nameDegradation: runNameResolution.degradation,\n };\n });\n\n if (result.created && result.nameDegradation !== undefined) {\n recordWorkflowDisplayNameResolutionDegraded('workflow.run_name', result.nameDegradation.cause);\n logger().warn(\n {\n workflowRunId: result.run.id,\n definitionId: result.run.definitionId,\n field: 'workflow.run_name',\n cause: result.nameDegradation.cause,\n ...(result.nameDegradation.expression === undefined\n ? {}\n : {expression: result.nameDegradation.expression.slice(0, 256)}),\n },\n 'Workflow run name resolution degraded to the static workflow name',\n );\n }\n\n if (result.created) {\n recordWorkflowRunCreated(result.run.triggerPayload.provider ?? result.run.triggerSource);\n }\n\n return result.run;\n}\n\nasync function allocateWorkflowRunNumber(tx: Tx, definitionId: string): Promise<number> {\n const [counterRow] = await tx\n .insert(workflowRunCounters)\n .values({definitionId, nextNumber: 2})\n .onConflictDoUpdate({\n target: workflowRunCounters.definitionId,\n set: {nextNumber: sql`${workflowRunCounters.nextNumber} + 1`},\n })\n .returning({number: sql<number>`${workflowRunCounters.nextNumber} - 1`});\n if (!counterRow) throw new Error('Run counter allocation returned no rows');\n return counterRow.number;\n}\n\n// The run entity carries camelCase dev-source fields while the persisted jsonb uses\n// snake_case keys, so the write boundary maps explicitly rather than spreading.\nfunction toWorkflowRunDevSourceDb(source: WorkflowRunDevSource): WorkflowRunDevSourceDb {\n return {\n ref: source.ref,\n commit: source.commit,\n config_path: source.configPath,\n initiated_by_user_id: source.initiatedByUserId,\n replay_of_event_id: source.replayOfEventId,\n };\n}\n\nexport async function loadReferencedVariables(params: {\n readonly model: WorkflowModel;\n readonly jobs?: readonly WorkflowModelJob[] | undefined;\n readonly workspaceId: string;\n readonly projectId: string;\n readonly definitionId: string;\n readonly secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'> | undefined;\n}): Promise<Record<string, string> | undefined> {\n const references = referencedVariables(params.model, params.jobs ?? params.model.jobs);\n const keys = [...new Set(references.map((reference) => reference.key))].sort();\n if (keys.length === 0) return undefined;\n\n const requiresSecrets = (reference: ReferencedVariable) =>\n reference.field !== 'job.execution_name' && reference.field !== 'workflow.run_name';\n const requiredReferences = references.filter(requiresSecrets);\n const requiredKeys = new Set(requiredReferences.map((reference) => reference.key));\n if (!params.secrets) {\n if (requiredKeys.size === 0) return undefined;\n throw new Error('Secrets client is not configured.');\n }\n const {values: vars} = await params.secrets.getVariablesByNamespace({\n workspaceId: params.workspaceId,\n projectId: params.projectId,\n namespace: '',\n });\n const missingKey = [...requiredKeys].find((key) => !(key in vars));\n if (missingKey !== undefined) {\n const reference = requiredReferences.find((candidate) => candidate.key === missingKey);\n throw new InterpolationUnresolvableError(params.definitionId, {\n field: reference?.field ?? 'env',\n source: reference?.source ?? `vars.${missingKey}`,\n ...(reference?.envKey === undefined ? {} : {envKey: reference.envKey}),\n });\n }\n\n const referencedVars: Record<string, string> = {};\n for (const key of keys) {\n const value = vars[key];\n if (value !== undefined) referencedVars[key] = value;\n }\n return referencedVars;\n}\n\nfunction materializeRunGraphJobs(params: {\n readonly params: CreateWorkflowRunParams;\n readonly run: WorkflowRun;\n readonly vars: Record<string, string> | undefined;\n readonly materializedJobs: readonly MaterializedWorkflowJob[];\n}): readonly MaterializedRunGraphJob[] {\n return params.materializedJobs.map((job, jobIndex) => ({\n job: {\n key: job.key,\n mode: job.mode,\n name: job.name ?? null,\n status: 'pending' as const,\n checkoutPersistCredentials: job.checkout.persistCredentials,\n checkoutPermissionsContents: job.checkout.permissions.contents,\n success: job.success ?? null,\n executionTimeoutMs: job.executionTimeoutMs ?? null,\n listeningTimeoutMs: job.listening?.timeoutMs ?? null,\n maxExecutions: job.listening?.maxExecutions ?? null,\n onResolve: job.listening?.onResolve ?? null,\n batchDebounceMs: job.listening?.batch?.debounceMs ?? null,\n batchMaxSize: job.listening?.batch?.maxSize ?? null,\n batchMaxWaitMs: job.listening?.batch?.maxWaitMs ?? null,\n listeningOn: job.listening?.on ? [...job.listening.on] : null,\n listeningUntil: job.listening?.until ? [...job.listening.until] : null,\n dependencies: [...job.dependencies],\n runner: job.runner.length === 0 ? null : [...job.runner],\n position: job.position,\n },\n createExecution: (jobRow) => {\n if (jobRow.mode === 'listening') return undefined;\n\n const fallbackName = jobRow.name ?? jobRow.key;\n const modelJob = params.params.model.jobs[jobIndex];\n if (!modelJob) return undefined;\n const executionPlan = deriveInitialJobExecutionPlan({\n run: params.run,\n modelJob,\n job,\n jobId: jobRow.id,\n sequence: 1,\n fallbackName,\n triggerPayload: params.params.triggerPayload,\n inputs: params.params.inputs ?? null,\n vars: params.vars,\n });\n\n return {\n sequence: 1,\n // Persist only the resolved override. The core entity supplies the\n // static job name/key when this is null.\n name: executionPlan.nameOverride,\n runner: [...executionPlan.runner],\n status: 'pending' as const,\n evaluationTrace:\n executionPlan.evaluationTrace?.length === 0 ? null : executionPlan.evaluationTrace,\n };\n },\n createSteps: () =>\n job.steps.map((step) => ({\n key: step.key,\n name: step.name,\n sourceLocation: step.sourceLocation,\n status: step.status,\n type: step.type,\n config: step.config,\n condition: step.condition ?? null,\n configPlan: step.configPlan ?? null,\n authoredConfig: step.authoredConfig,\n position: step.position,\n })),\n }));\n}\n\nfunction referencedVariables(\n model: WorkflowModel,\n jobs: readonly WorkflowModelJob[],\n): readonly ReferencedVariable[] {\n const references: ReferencedVariable[] = [];\n\n for (const job of model.jobs) {\n collectPredicateVariableReferences(job.if, references);\n collectPredicateVariableReferences(job.success, references);\n\n for (const trigger of [...(job.listening?.on ?? []), ...(job.listening?.until ?? [])]) {\n collectPredicateVariableReferences(trigger.filter, references);\n }\n\n for (const step of job.steps) {\n collectPredicateVariableReferences(step.if, references);\n collectPredicateVariableReferences(step.gate?.success, references);\n }\n }\n\n collectFieldVariableReferences(model.runName, references, {field: 'workflow.run_name'});\n\n if (jobs.length > 0) {\n collectTemplateVariableReferences(model.templates?.env, references);\n }\n\n for (const job of jobs) {\n collectFieldVariableReferences(job.executionName, references, {field: 'job.execution_name'});\n for (const template of job.runnerTemplates ?? []) {\n collectFieldVariableReferences(template, references, {field: 'job.runner'});\n }\n collectTemplateVariableReferences(job.outputs, references, {field: 'job.outputs'});\n collectTemplateVariableReferences(job.templates?.env, references);\n\n for (const step of job.steps) {\n collectFieldVariableReferences(step.templates?.name, references, {field: 'step.name'});\n collectFieldVariableReferences(\n step.kind === 'tool' ? undefined : step.templates?.workingDirectory,\n references,\n {\n field: 'step.working_directory',\n },\n );\n if (step.kind === 'run') {\n collectFieldVariableReferences(step.templates?.command, references, {field: 'run'});\n collectTemplateVariableReferences(step.templates?.env, references);\n } else if (step.kind === 'agent') {\n collectFieldVariableReferences(step.templates?.prompt, references, {field: 'agent.prompt'});\n collectFieldVariableReferences(step.templates?.model, references, {field: 'agent.model'});\n collectFieldVariableReferences(step.templates?.provider, references, {\n field: 'agent.provider',\n });\n } else if (step.kind === 'tool') {\n collectTemplateTreeVariableReferences(step.templates?.with, references, {\n field: 'tool.with',\n });\n for (const [key, expression] of Object.entries(step.outputMappings ?? {})) {\n collectExpressionVariableReferences(expression, references, {\n field: 'tool.outputs',\n envKey: key,\n });\n }\n } else if (step.kind === 'checkout') {\n for (const [key, field] of WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS) {\n collectFieldVariableReferences(step.checkout.templates?.[key], references, {field});\n }\n }\n }\n }\n\n return references;\n}\n\nfunction collectPredicateVariableReferences(\n expression: WorkflowExpression | string | undefined,\n references: ReferencedVariable[],\n): void {\n if (expression === undefined) return;\n\n const keyAccess = analyzeContextKeyAccess(expression);\n for (const reference of keyAccess.references) {\n if (reference.root !== 'vars') continue;\n references.push({\n key: reference.key,\n field: 'env',\n source: typeof expression === 'string' ? expression : expression.source,\n });\n }\n}\n\nfunction collectTemplateVariableReferences(\n templates: Readonly<Record<string, readonly ResolvedFieldSegment[]>> | undefined,\n references: ReferencedVariable[],\n source?: {\n readonly field: InterpolationUnresolvableError['field'];\n },\n): void {\n for (const [envKey, template] of Object.entries(templates ?? {})) {\n collectFieldVariableReferences(\n template,\n references,\n source === undefined ? {field: 'env', envKey} : source,\n );\n }\n}\n\nfunction collectFieldVariableReferences(\n template: readonly ResolvedFieldSegment[] | undefined,\n references: ReferencedVariable[],\n source: {\n readonly field: InterpolationUnresolvableError['field'];\n readonly envKey?: string | undefined;\n },\n): void {\n for (const segment of template ?? []) {\n if (segment.kind === 'literal') continue;\n const keyAccess = analyzeContextKeyAccess(segment.expression);\n for (const reference of keyAccess.references) {\n if (reference.root !== 'vars') continue;\n references.push({\n key: reference.key,\n field: source.field,\n source: segment.expression.source,\n envKey: source.envKey,\n });\n }\n }\n}\n\n/**\n * Collect `vars.*` references from a tool step's `with` template tree: a\n * `WorkflowJsonTemplateTree` mirrors the authored `with` payload with every\n * interpolated string leaf replaced by its parsed template, so walk it like\n * the authored structure and collect from each leaf template.\n */\nfunction collectTemplateTreeVariableReferences(\n tree: WorkflowJsonTemplateTree | undefined,\n references: ReferencedVariable[],\n source: {\n readonly field: InterpolationUnresolvableError['field'];\n readonly envKey?: string | undefined;\n },\n): void {\n if (tree === undefined) return;\n\n if (Array.isArray(tree)) {\n // A field template is itself an array of segments; a `with` list is an\n // array of child trees. Segments carry a `kind`, so distinguish the two.\n if (tree.every((element) => isFieldTemplateSegment(element))) {\n collectFieldVariableReferences(tree, references, source);\n return;\n }\n for (const child of tree) collectTemplateTreeVariableReferences(child, references, source);\n return;\n }\n\n if (typeof tree === 'object') {\n for (const child of Object.values(tree)) {\n collectTemplateTreeVariableReferences(child, references, source);\n }\n }\n}\n\nfunction isFieldTemplateSegment(value: unknown): value is ResolvedFieldSegment {\n return (\n typeof value === 'object' &&\n value !== null &&\n ((value as {kind?: unknown}).kind === 'literal' ||\n (value as {kind?: unknown}).kind === 'deferred')\n );\n}\n\nfunction collectExpressionVariableReferences(\n expression: WorkflowExpression,\n references: ReferencedVariable[],\n source: {\n readonly field: InterpolationUnresolvableError['field'];\n readonly envKey?: string | undefined;\n },\n): void {\n const keyAccess = analyzeContextKeyAccess(expression);\n for (const reference of keyAccess.references) {\n if (reference.root !== 'vars') continue;\n references.push({\n key: reference.key,\n field: source.field,\n source: expression.source,\n envKey: source.envKey,\n });\n }\n}\n\nfunction logTemplateDiagnostics(params: {\n readonly workflowRunId: string;\n readonly diagnostics: readonly (WorkflowStepTemplateDiagnostic & {\n readonly jobKey: string;\n readonly stepName: string;\n })[];\n}): void {\n if (params.diagnostics.length === 0) return;\n\n logger().warn(\n {workflowRunId: params.workflowRunId, diagnostics: params.diagnostics},\n 'Workflow interpolation resolved with diagnostics',\n );\n}\n"],"names":["createWorkflowModelSnapshot","WORKFLOW_MODEL_CHECKOUT_TARGET_FIELDS","analyzeContextKeyAccess","logger","eq","sql","createAgentToolMaterializationSnapshot","loadAgentToolMaterializationContext","InterpolationUnresolvableError","resolveWorkflowRunTriggerReference","assembleCreationContext","resolveWorkflowRunName","deriveInitialJobExecutionPlan","materializeWorkflowRunJobs","recordWorkflowDisplayNameResolutionDegraded","recordWorkflowRunCreated","db","workflowRunAttempts","workflowRunCounters","toWorkflowRun","workflowRuns","persistMaterializedRunGraph","createWorkflowRun","params","triggerReference","workspaceId","triggerConnectionId","triggerPayload","integrations","projects","staticName","name","model","agentToolContext","undefined","projectId","agentToolMaterialization","context","result","transaction","tx","triggerIdempotencyKey","execute","existing","select","from","where","limit","existingRow","run","created","number","allocateWorkflowRunNumber","definitionId","insertResult","insert","values","workflowName","status","currentAttempt","triggerProvider","provider","triggerSource","source","triggerEvent","event","inputs","sourceSnapshot","origin","devSource","toWorkflowRunDevSourceDb","onConflictDoNothing","target","returning","runRow","Error","provisionalRun","oneShotJobs","jobs","filter","job","mode","vars","loadReferencedVariables","secrets","runNameResolution","runName","resolvedRunRow","update","set","value","updatedAt","Date","id","attemptRow","workflowRunId","attempt","materializedJobs","resolveAgentDefaults","agentToolSnapshot","graphJobs","materializeRunGraphJobs","workflowRunAttempt","logTemplateDiagnostics","diagnostics","flatMap","steps","step","map","diagnostic","jobKey","key","stepName","nameDegradation","degradation","cause","warn","field","expression","slice","counterRow","nextNumber","onConflictDoUpdate","ref","commit","config_path","configPath","initiated_by_user_id","initiatedByUserId","replay_of_event_id","replayOfEventId","references","referencedVariables","keys","Set","reference","sort","length","requiresSecrets","requiredReferences","requiredKeys","size","getVariablesByNamespace","namespace","missingKey","find","candidate","envKey","referencedVars","jobIndex","checkoutPersistCredentials","checkout","persistCredentials","checkoutPermissionsContents","permissions","contents","success","executionTimeoutMs","listeningTimeoutMs","listening","timeoutMs","maxExecutions","onResolve","batchDebounceMs","batch","debounceMs","batchMaxSize","maxSize","batchMaxWaitMs","maxWaitMs","listeningOn","on","listeningUntil","until","dependencies","runner","position","createExecution","jobRow","fallbackName","modelJob","executionPlan","jobId","sequence","nameOverride","evaluationTrace","createSteps","sourceLocation","type","config","condition","configPlan","authoredConfig","collectPredicateVariableReferences","if","trigger","gate","collectFieldVariableReferences","collectTemplateVariableReferences","templates","env","executionName","template","runnerTemplates","outputs","kind","workingDirectory","command","prompt","collectTemplateTreeVariableReferences","with","Object","entries","outputMappings","collectExpressionVariableReferences","keyAccess","root","push","segment","tree","Array","isArray","every","element","isFieldTemplateSegment","child"],"mappings":"AAAA,SACEA,2BAA2B,EAC3BC,qCAAqC,QAGhC,+BAA+B;AAItC,SACEC,uBAAuB,QAGlB,sBAAsB;AAC7B,SAAQC,MAAM,QAAO,8BAA8B;AACnD,SAAQC,EAAE,EAAEC,GAAG,QAAO,cAAc;AAEpC,SACEC,sCAAsC,EACtCC,mCAAmC,QAC9B,uBAAuB;AAQ9B,SAAQC,8BAA8B,QAAO,kBAAkB;AAC/D,SAAQC,kCAAkC,QAAO,qCAAqC;AACtF,SAAQC,uBAAuB,QAAO,4CAA4C;AAGlF,SAAQC,sBAAsB,QAAO,iDAAiD;AACtF,SACEC,6BAA6B,EAC7BC,0BAA0B,QACrB,iCAAiC;AACxC,SACEC,2CAA2C,EAC3CC,wBAAwB,QACnB,uBAAuB;AAC9B,SAAQC,EAAE,QAAgB,WAAW;AACrC,SAAQC,mBAAmB,QAAO,qCAAqC;AACvE,SAAQC,mBAAmB,QAAO,qCAAqC;AACvE,SAAQC,aAAa,EAA+BC,YAAY,QAAO,6BAA6B;AACpG,SAAsCC,2BAA2B,QAAO,iBAAiB;AA+BzF,OAAO,eAAeC,kBAAkBC,MAA+B;IACrE,MAAMC,mBAAmB,MAAMf,mCAAmC;QAChEgB,aAAaF,OAAOE,WAAW;QAC/BC,qBAAqBH,OAAOG,mBAAmB;QAC/CC,gBAAgBJ,OAAOI,cAAc;QACrCC,cAAcL,OAAOK,YAAY;QACjCC,UAAUN,OAAOM,QAAQ;IAC3B;IACA,MAAMC,aAAaP,OAAOQ,IAAI,IAAIR,OAAOS,KAAK,CAACD,IAAI;IACnD,MAAME,mBACJV,OAAOK,YAAY,KAAKM,YACpBA,YACA,MAAM3B,oCAAoC;QACxCyB,OAAOT,OAAOS,KAAK;QACnBP,aAAaF,OAAOE,WAAW;QAC/BU,WAAWZ,OAAOY,SAAS;QAC3BP,cAAcL,OAAOK,YAAY;QACjCC,UAAUN,OAAOM,QAAQ;IAC3B;IACN,MAAMO,2BAA2B9B,uCAAuC;QACtE0B,OAAOT,OAAOS,KAAK;QACnBK,SAASJ;IACX;IACA,MAAMK,SAAS,MAAMtB,KAAKuB,WAAW,CAAC,OAAOC;QAC3C,gFAAgF;QAChF,gFAAgF;QAChF,qCAAqC;QACrC,IAAIjB,OAAOkB,qBAAqB,EAAE;YAChC,MAAMD,GAAGE,OAAO,CACdrC,GAAG,CAAC,sCAAsC,EAAEkB,OAAOkB,qBAAqB,CAAC,EAAE,CAAC;YAE9E,MAAME,WAAW,MAAMH,GACpBI,MAAM,GACNC,IAAI,CAACzB,cACL0B,KAAK,CAAC1C,GAAGgB,aAAaqB,qBAAqB,EAAElB,OAAOkB,qBAAqB,GACzEM,KAAK,CAAC;YACT,MAAMC,cAAcL,QAAQ,CAAC,EAAE;YAC/B,IAAIK,aAAa,OAAO;gBAACC,KAAK9B,cAAc6B;gBAAcE,SAAS;YAAK;QAC1E;QAEA,4EAA4E;QAC5E,uEAAuE;QACvE,MAAMC,SAAS,MAAMC,0BAA0BZ,IAAIjB,OAAO8B,YAAY;QAEtE,MAAMC,eAAe,MAAMd,GACxBe,MAAM,CAACnC,cACPoC,MAAM,CAAC;YACN/B,aAAaF,OAAOE,WAAW;YAC/BU,WAAWZ,OAAOY,SAAS;YAC3BkB,cAAc9B,OAAO8B,YAAY;YACjCF;YACApB,MAAM;YACN0B,cAAc3B;YACd4B,QAAQ;YACRC,gBAAgB;YAChBC,iBAAiBrC,OAAOI,cAAc,CAACkC,QAAQ,IAAI;YACnDC,eAAevC,OAAOI,cAAc,CAACoC,MAAM;YAC3CC,cAAczC,OAAOI,cAAc,CAACsC,KAAK;YACzCtC,gBAAgBJ,OAAOI,cAAc;YACrCH;YACA0C,QAAQ3C,OAAO2C,MAAM,IAAI;YACzBC,gBAAgB5C,OAAO4C,cAAc,IAAI;YACzC1B,uBAAuBlB,OAAOkB,qBAAqB,IAAI;YACvD2B,QAAQ7C,OAAO6C,MAAM,IAAI;YACzBC,WACE9C,OAAO8C,SAAS,KAAKnC,aAAaX,OAAO8C,SAAS,KAAK,OACnD,OACAC,yBAAyB/C,OAAO8C,SAAS;QACjD,GACCE,mBAAmB,CAAC;YAACC,QAAQpD,aAAaqB,qBAAqB;QAAA,GAC/DgC,SAAS;QAEZ,MAAMC,SAASpB,YAAY,CAAC,EAAE;QAC9B,IAAI,CAACoB,QAAQ;YACX,6FAA6F;YAC7F,IAAI,CAACnD,OAAOkB,qBAAqB,EAAE;gBACjC,MAAM,IAAIkC,MAAM;YAClB;YACA,MAAMhC,WAAW,MAAMH,GACpBI,MAAM,GACNC,IAAI,CAACzB,cACL0B,KAAK,CAAC1C,GAAGgB,aAAaqB,qBAAqB,EAAElB,OAAOkB,qBAAqB,GACzEM,KAAK,CAAC;YACT,MAAMC,cAAcL,QAAQ,CAAC,EAAE;YAC/B,IAAI,CAACK,aAAa;gBAChB,MAAM,IAAI2B,MACR,CAAC,sDAAsD,EAAEpD,OAAOkB,qBAAqB,EAAE;YAE3F;YACA,OAAO;gBAACQ,KAAK9B,cAAc6B;gBAAcE,SAAS;YAAK;QACzD;QAEA,6FAA6F;QAC7F,2FAA2F;QAC3F,8FAA8F;QAC9F,wFAAwF;QACxF,wBAAwB;QACxB,MAAM0B,iBAAiBzD,cAAcuD;QACrC,MAAMG,cAActD,OAAOS,KAAK,CAAC8C,IAAI,CAACC,MAAM,CAAC,CAACC,MAAQA,IAAIC,IAAI,KAAK;QACnE,MAAMC,OAAO,MAAMC,wBAAwB;YACzCnD,OAAOT,OAAOS,KAAK;YACnB8C,MAAMD;YACNpD,aAAaF,OAAOE,WAAW;YAC/BU,WAAWZ,OAAOY,SAAS;YAC3BkB,cAAc9B,OAAO8B,YAAY;YACjC+B,SAAS7D,OAAO6D,OAAO;QACzB;QACA,MAAMC,oBAAoB1E,uBAAuB;YAC/C2E,SAAS/D,OAAOS,KAAK,CAACsD,OAAO;YAC7BjD,SAAS3B,wBAAwB;gBAC/BuC,KAAK2B;gBACLjD,gBAAgBJ,OAAOI,cAAc;gBACrCuC,QAAQ3C,OAAO2C,MAAM,IAAI;gBACzBgB;YACF,GAAG1B,MAAM;QACX;QACA,MAAM,CAAC+B,eAAe,GAAG,MAAM/C,GAC5BgD,MAAM,CAACpE,cACPqE,GAAG,CAAC;YAAC1D,MAAMsD,kBAAkBK,KAAK;YAAEC,WAAW,IAAIC;QAAM,GACzD9C,KAAK,CAAC1C,GAAGgB,aAAayE,EAAE,EAAEjB,eAAeiB,EAAE,GAC3CpB,SAAS;QACZ,IAAI,CAACc,gBACH,MAAM,IAAIZ,MAAM,CAAC,4CAA4C,EAAED,OAAOmB,EAAE,EAAE;QAC5E,MAAM5C,MAAM9B,cAAcoE;QAC1B,MAAM,CAACO,WAAW,GAAG,MAAMtD,GACxBe,MAAM,CAACtC,qBACPuC,MAAM,CAAC;YACNuC,eAAerB,OAAOmB,EAAE;YACxBG,SAAS;YACTtC,QAAQ;YACR1B,OAAOhC,4BAA4BuB,OAAOS,KAAK;YAC/CkD;YACA9C;QACF,GACCqC,SAAS;QACZ,IAAI,CAACqB,YAAY,MAAM,IAAInB,MAAM;QAEjC,MAAMsB,mBAAmB,MAAMpF,2BAA2B;YACxDoC;YACAjB,OAAOT,OAAOS,KAAK;YACnBL,gBAAgBJ,OAAOI,cAAc;YACrCuC,QAAQ3C,OAAO2C,MAAM,IAAI;YACzBgB;YACAgB,sBAAsB3E,OAAO2E,oBAAoB;YACjD7C,cAAc9B,OAAO8B,YAAY;YACjCpB;YACAkE,mBAAmB/D;QACrB;QAEA,MAAMgE,YAAYC,wBAAwB;YACxC9E;YACA0B;YACAiC;YACAe;QACF;QACA,MAAM5E,4BAA4BmB,IAAI;YACpCS;YACAqD,oBAAoBR;YACpBG,kBAAkBG;QACpB;QAEAG,uBAAuB;YACrBR,eAAerB,OAAOmB,EAAE;YACxBW,aAAaP,iBAAiBQ,OAAO,CAAC,CAACzB,MACrCA,IAAI0B,KAAK,CAACD,OAAO,CAAC,CAACE,OACjB,AAACA,CAAAA,KAAKH,WAAW,IAAI,EAAE,AAAD,EAAGI,GAAG,CAAC,CAACC,aAAgB,CAAA;4BAC5CC,QAAQ9B,IAAI+B,GAAG;4BACfC,UAAUL,KAAK5E,IAAI;4BACnB,GAAG8E,UAAU;wBACf,CAAA;QAGN;QAEA,OAAO;YACL5D;YACAC,SAAS;YACT+D,iBAAiB5B,kBAAkB6B,WAAW;QAChD;IACF;IAEA,IAAI5E,OAAOY,OAAO,IAAIZ,OAAO2E,eAAe,KAAK/E,WAAW;QAC1DpB,4CAA4C,qBAAqBwB,OAAO2E,eAAe,CAACE,KAAK;QAC7FhH,SAASiH,IAAI,CACX;YACErB,eAAezD,OAAOW,GAAG,CAAC4C,EAAE;YAC5BxC,cAAcf,OAAOW,GAAG,CAACI,YAAY;YACrCgE,OAAO;YACPF,OAAO7E,OAAO2E,eAAe,CAACE,KAAK;YACnC,GAAI7E,OAAO2E,eAAe,CAACK,UAAU,KAAKpF,YACtC,CAAC,IACD;gBAACoF,YAAYhF,OAAO2E,eAAe,CAACK,UAAU,CAACC,KAAK,CAAC,GAAG;YAAI,CAAC;QACnE,GACA;IAEJ;IAEA,IAAIjF,OAAOY,OAAO,EAAE;QAClBnC,yBAAyBuB,OAAOW,GAAG,CAACtB,cAAc,CAACkC,QAAQ,IAAIvB,OAAOW,GAAG,CAACa,aAAa;IACzF;IAEA,OAAOxB,OAAOW,GAAG;AACnB;AAEA,eAAeG,0BAA0BZ,EAAM,EAAEa,YAAoB;IACnE,MAAM,CAACmE,WAAW,GAAG,MAAMhF,GACxBe,MAAM,CAACrC,qBACPsC,MAAM,CAAC;QAACH;QAAcoE,YAAY;IAAC,GACnCC,kBAAkB,CAAC;QAClBlD,QAAQtD,oBAAoBmC,YAAY;QACxCoC,KAAK;YAACgC,YAAYpH,GAAG,CAAC,EAAEa,oBAAoBuG,UAAU,CAAC,IAAI,CAAC;QAAA;IAC9D,GACChD,SAAS,CAAC;QAACtB,QAAQ9C,GAAW,CAAC,EAAEa,oBAAoBuG,UAAU,CAAC,IAAI,CAAC;IAAA;IACxE,IAAI,CAACD,YAAY,MAAM,IAAI7C,MAAM;IACjC,OAAO6C,WAAWrE,MAAM;AAC1B;AAEA,oFAAoF;AACpF,gFAAgF;AAChF,SAASmB,yBAAyBP,MAA4B;IAC5D,OAAO;QACL4D,KAAK5D,OAAO4D,GAAG;QACfC,QAAQ7D,OAAO6D,MAAM;QACrBC,aAAa9D,OAAO+D,UAAU;QAC9BC,sBAAsBhE,OAAOiE,iBAAiB;QAC9CC,oBAAoBlE,OAAOmE,eAAe;IAC5C;AACF;AAEA,OAAO,eAAe/C,wBAAwB5D,MAO7C;IACC,MAAM4G,aAAaC,oBAAoB7G,OAAOS,KAAK,EAAET,OAAOuD,IAAI,IAAIvD,OAAOS,KAAK,CAAC8C,IAAI;IACrF,MAAMuD,OAAO;WAAI,IAAIC,IAAIH,WAAWvB,GAAG,CAAC,CAAC2B,YAAcA,UAAUxB,GAAG;KAAG,CAACyB,IAAI;IAC5E,IAAIH,KAAKI,MAAM,KAAK,GAAG,OAAOvG;IAE9B,MAAMwG,kBAAkB,CAACH,YACvBA,UAAUlB,KAAK,KAAK,wBAAwBkB,UAAUlB,KAAK,KAAK;IAClE,MAAMsB,qBAAqBR,WAAWpD,MAAM,CAAC2D;IAC7C,MAAME,eAAe,IAAIN,IAAIK,mBAAmB/B,GAAG,CAAC,CAAC2B,YAAcA,UAAUxB,GAAG;IAChF,IAAI,CAACxF,OAAO6D,OAAO,EAAE;QACnB,IAAIwD,aAAaC,IAAI,KAAK,GAAG,OAAO3G;QACpC,MAAM,IAAIyC,MAAM;IAClB;IACA,MAAM,EAACnB,QAAQ0B,IAAI,EAAC,GAAG,MAAM3D,OAAO6D,OAAO,CAAC0D,uBAAuB,CAAC;QAClErH,aAAaF,OAAOE,WAAW;QAC/BU,WAAWZ,OAAOY,SAAS;QAC3B4G,WAAW;IACb;IACA,MAAMC,aAAa;WAAIJ;KAAa,CAACK,IAAI,CAAC,CAAClC,MAAQ,CAAEA,CAAAA,OAAO7B,IAAG;IAC/D,IAAI8D,eAAe9G,WAAW;QAC5B,MAAMqG,YAAYI,mBAAmBM,IAAI,CAAC,CAACC,YAAcA,UAAUnC,GAAG,KAAKiC;QAC3E,MAAM,IAAIxI,+BAA+Be,OAAO8B,YAAY,EAAE;YAC5DgE,OAAOkB,WAAWlB,SAAS;YAC3BtD,QAAQwE,WAAWxE,UAAU,CAAC,KAAK,EAAEiF,YAAY;YACjD,GAAIT,WAAWY,WAAWjH,YAAY,CAAC,IAAI;gBAACiH,QAAQZ,UAAUY,MAAM;YAAA,CAAC;QACvE;IACF;IAEA,MAAMC,iBAAyC,CAAC;IAChD,KAAK,MAAMrC,OAAOsB,KAAM;QACtB,MAAM3C,QAAQR,IAAI,CAAC6B,IAAI;QACvB,IAAIrB,UAAUxD,WAAWkH,cAAc,CAACrC,IAAI,GAAGrB;IACjD;IACA,OAAO0D;AACT;AAEA,SAAS/C,wBAAwB9E,MAKhC;IACC,OAAOA,OAAO0E,gBAAgB,CAACW,GAAG,CAAC,CAAC5B,KAAKqE,WAAc,CAAA;YACrDrE,KAAK;gBACH+B,KAAK/B,IAAI+B,GAAG;gBACZ9B,MAAMD,IAAIC,IAAI;gBACdlD,MAAMiD,IAAIjD,IAAI,IAAI;gBAClB2B,QAAQ;gBACR4F,4BAA4BtE,IAAIuE,QAAQ,CAACC,kBAAkB;gBAC3DC,6BAA6BzE,IAAIuE,QAAQ,CAACG,WAAW,CAACC,QAAQ;gBAC9DC,SAAS5E,IAAI4E,OAAO,IAAI;gBACxBC,oBAAoB7E,IAAI6E,kBAAkB,IAAI;gBAC9CC,oBAAoB9E,IAAI+E,SAAS,EAAEC,aAAa;gBAChDC,eAAejF,IAAI+E,SAAS,EAAEE,iBAAiB;gBAC/CC,WAAWlF,IAAI+E,SAAS,EAAEG,aAAa;gBACvCC,iBAAiBnF,IAAI+E,SAAS,EAAEK,OAAOC,cAAc;gBACrDC,cAActF,IAAI+E,SAAS,EAAEK,OAAOG,WAAW;gBAC/CC,gBAAgBxF,IAAI+E,SAAS,EAAEK,OAAOK,aAAa;gBACnDC,aAAa1F,IAAI+E,SAAS,EAAEY,KAAK;uBAAI3F,IAAI+E,SAAS,CAACY,EAAE;iBAAC,GAAG;gBACzDC,gBAAgB5F,IAAI+E,SAAS,EAAEc,QAAQ;uBAAI7F,IAAI+E,SAAS,CAACc,KAAK;iBAAC,GAAG;gBAClEC,cAAc;uBAAI9F,IAAI8F,YAAY;iBAAC;gBACnCC,QAAQ/F,IAAI+F,MAAM,CAACtC,MAAM,KAAK,IAAI,OAAO;uBAAIzD,IAAI+F,MAAM;iBAAC;gBACxDC,UAAUhG,IAAIgG,QAAQ;YACxB;YACAC,iBAAiB,CAACC;gBAChB,IAAIA,OAAOjG,IAAI,KAAK,aAAa,OAAO/C;gBAExC,MAAMiJ,eAAeD,OAAOnJ,IAAI,IAAImJ,OAAOnE,GAAG;gBAC9C,MAAMqE,WAAW7J,OAAOA,MAAM,CAACS,KAAK,CAAC8C,IAAI,CAACuE,SAAS;gBACnD,IAAI,CAAC+B,UAAU,OAAOlJ;gBACtB,MAAMmJ,gBAAgBzK,8BAA8B;oBAClDqC,KAAK1B,OAAO0B,GAAG;oBACfmI;oBACApG;oBACAsG,OAAOJ,OAAOrF,EAAE;oBAChB0F,UAAU;oBACVJ;oBACAxJ,gBAAgBJ,OAAOA,MAAM,CAACI,cAAc;oBAC5CuC,QAAQ3C,OAAOA,MAAM,CAAC2C,MAAM,IAAI;oBAChCgB,MAAM3D,OAAO2D,IAAI;gBACnB;gBAEA,OAAO;oBACLqG,UAAU;oBACV,mEAAmE;oBACnE,yCAAyC;oBACzCxJ,MAAMsJ,cAAcG,YAAY;oBAChCT,QAAQ;2BAAIM,cAAcN,MAAM;qBAAC;oBACjCrH,QAAQ;oBACR+H,iBACEJ,cAAcI,eAAe,EAAEhD,WAAW,IAAI,OAAO4C,cAAcI,eAAe;gBACtF;YACF;YACAC,aAAa,IACX1G,IAAI0B,KAAK,CAACE,GAAG,CAAC,CAACD,OAAU,CAAA;wBACvBI,KAAKJ,KAAKI,GAAG;wBACbhF,MAAM4E,KAAK5E,IAAI;wBACf4J,gBAAgBhF,KAAKgF,cAAc;wBACnCjI,QAAQiD,KAAKjD,MAAM;wBACnBkI,MAAMjF,KAAKiF,IAAI;wBACfC,QAAQlF,KAAKkF,MAAM;wBACnBC,WAAWnF,KAAKmF,SAAS,IAAI;wBAC7BC,YAAYpF,KAAKoF,UAAU,IAAI;wBAC/BC,gBAAgBrF,KAAKqF,cAAc;wBACnChB,UAAUrE,KAAKqE,QAAQ;oBACzB,CAAA;QACJ,CAAA;AACF;AAEA,SAAS5C,oBACPpG,KAAoB,EACpB8C,IAAiC;IAEjC,MAAMqD,aAAmC,EAAE;IAE3C,KAAK,MAAMnD,OAAOhD,MAAM8C,IAAI,CAAE;QAC5BmH,mCAAmCjH,IAAIkH,EAAE,EAAE/D;QAC3C8D,mCAAmCjH,IAAI4E,OAAO,EAAEzB;QAEhD,KAAK,MAAMgE,WAAW;eAAKnH,IAAI+E,SAAS,EAAEY,MAAM,EAAE;eAAO3F,IAAI+E,SAAS,EAAEc,SAAS,EAAE;SAAE,CAAE;YACrFoB,mCAAmCE,QAAQpH,MAAM,EAAEoD;QACrD;QAEA,KAAK,MAAMxB,QAAQ3B,IAAI0B,KAAK,CAAE;YAC5BuF,mCAAmCtF,KAAKuF,EAAE,EAAE/D;YAC5C8D,mCAAmCtF,KAAKyF,IAAI,EAAExC,SAASzB;QACzD;IACF;IAEAkE,+BAA+BrK,MAAMsD,OAAO,EAAE6C,YAAY;QAACd,OAAO;IAAmB;IAErF,IAAIvC,KAAK2D,MAAM,GAAG,GAAG;QACnB6D,kCAAkCtK,MAAMuK,SAAS,EAAEC,KAAKrE;IAC1D;IAEA,KAAK,MAAMnD,OAAOF,KAAM;QACtBuH,+BAA+BrH,IAAIyH,aAAa,EAAEtE,YAAY;YAACd,OAAO;QAAoB;QAC1F,KAAK,MAAMqF,YAAY1H,IAAI2H,eAAe,IAAI,EAAE,CAAE;YAChDN,+BAA+BK,UAAUvE,YAAY;gBAACd,OAAO;YAAY;QAC3E;QACAiF,kCAAkCtH,IAAI4H,OAAO,EAAEzE,YAAY;YAACd,OAAO;QAAa;QAChFiF,kCAAkCtH,IAAIuH,SAAS,EAAEC,KAAKrE;QAEtD,KAAK,MAAMxB,QAAQ3B,IAAI0B,KAAK,CAAE;YAC5B2F,+BAA+B1F,KAAK4F,SAAS,EAAExK,MAAMoG,YAAY;gBAACd,OAAO;YAAW;YACpFgF,+BACE1F,KAAKkG,IAAI,KAAK,SAAS3K,YAAYyE,KAAK4F,SAAS,EAAEO,kBACnD3E,YACA;gBACEd,OAAO;YACT;YAEF,IAAIV,KAAKkG,IAAI,KAAK,OAAO;gBACvBR,+BAA+B1F,KAAK4F,SAAS,EAAEQ,SAAS5E,YAAY;oBAACd,OAAO;gBAAK;gBACjFiF,kCAAkC3F,KAAK4F,SAAS,EAAEC,KAAKrE;YACzD,OAAO,IAAIxB,KAAKkG,IAAI,KAAK,SAAS;gBAChCR,+BAA+B1F,KAAK4F,SAAS,EAAES,QAAQ7E,YAAY;oBAACd,OAAO;gBAAc;gBACzFgF,+BAA+B1F,KAAK4F,SAAS,EAAEvK,OAAOmG,YAAY;oBAACd,OAAO;gBAAa;gBACvFgF,+BAA+B1F,KAAK4F,SAAS,EAAE1I,UAAUsE,YAAY;oBACnEd,OAAO;gBACT;YACF,OAAO,IAAIV,KAAKkG,IAAI,KAAK,QAAQ;gBAC/BI,sCAAsCtG,KAAK4F,SAAS,EAAEW,MAAM/E,YAAY;oBACtEd,OAAO;gBACT;gBACA,KAAK,MAAM,CAACN,KAAKO,WAAW,IAAI6F,OAAOC,OAAO,CAACzG,KAAK0G,cAAc,IAAI,CAAC,GAAI;oBACzEC,oCAAoChG,YAAYa,YAAY;wBAC1Dd,OAAO;wBACP8B,QAAQpC;oBACV;gBACF;YACF,OAAO,IAAIJ,KAAKkG,IAAI,KAAK,YAAY;gBACnC,KAAK,MAAM,CAAC9F,KAAKM,MAAM,IAAIpH,sCAAuC;oBAChEoM,+BAA+B1F,KAAK4C,QAAQ,CAACgD,SAAS,EAAE,CAACxF,IAAI,EAAEoB,YAAY;wBAACd;oBAAK;gBACnF;YACF;QACF;IACF;IAEA,OAAOc;AACT;AAEA,SAAS8D,mCACP3E,UAAmD,EACnDa,UAAgC;IAEhC,IAAIb,eAAepF,WAAW;IAE9B,MAAMqL,YAAYrN,wBAAwBoH;IAC1C,KAAK,MAAMiB,aAAagF,UAAUpF,UAAU,CAAE;QAC5C,IAAII,UAAUiF,IAAI,KAAK,QAAQ;QAC/BrF,WAAWsF,IAAI,CAAC;YACd1G,KAAKwB,UAAUxB,GAAG;YAClBM,OAAO;YACPtD,QAAQ,OAAOuD,eAAe,WAAWA,aAAaA,WAAWvD,MAAM;QACzE;IACF;AACF;AAEA,SAASuI,kCACPC,SAAgF,EAChFpE,UAAgC,EAChCpE,MAEC;IAED,KAAK,MAAM,CAACoF,QAAQuD,SAAS,IAAIS,OAAOC,OAAO,CAACb,aAAa,CAAC,GAAI;QAChEF,+BACEK,UACAvE,YACApE,WAAW7B,YAAY;YAACmF,OAAO;YAAO8B;QAAM,IAAIpF;IAEpD;AACF;AAEA,SAASsI,+BACPK,QAAqD,EACrDvE,UAAgC,EAChCpE,MAGC;IAED,KAAK,MAAM2J,WAAWhB,YAAY,EAAE,CAAE;QACpC,IAAIgB,QAAQb,IAAI,KAAK,WAAW;QAChC,MAAMU,YAAYrN,wBAAwBwN,QAAQpG,UAAU;QAC5D,KAAK,MAAMiB,aAAagF,UAAUpF,UAAU,CAAE;YAC5C,IAAII,UAAUiF,IAAI,KAAK,QAAQ;YAC/BrF,WAAWsF,IAAI,CAAC;gBACd1G,KAAKwB,UAAUxB,GAAG;gBAClBM,OAAOtD,OAAOsD,KAAK;gBACnBtD,QAAQ2J,QAAQpG,UAAU,CAACvD,MAAM;gBACjCoF,QAAQpF,OAAOoF,MAAM;YACvB;QACF;IACF;AACF;AAEA;;;;;CAKC,GACD,SAAS8D,sCACPU,IAA0C,EAC1CxF,UAAgC,EAChCpE,MAGC;IAED,IAAI4J,SAASzL,WAAW;IAExB,IAAI0L,MAAMC,OAAO,CAACF,OAAO;QACvB,uEAAuE;QACvE,yEAAyE;QACzE,IAAIA,KAAKG,KAAK,CAAC,CAACC,UAAYC,uBAAuBD,WAAW;YAC5D1B,+BAA+BsB,MAAMxF,YAAYpE;YACjD;QACF;QACA,KAAK,MAAMkK,SAASN,KAAMV,sCAAsCgB,OAAO9F,YAAYpE;QACnF;IACF;IAEA,IAAI,OAAO4J,SAAS,UAAU;QAC5B,KAAK,MAAMM,SAASd,OAAO3J,MAAM,CAACmK,MAAO;YACvCV,sCAAsCgB,OAAO9F,YAAYpE;QAC3D;IACF;AACF;AAEA,SAASiK,uBAAuBtI,KAAc;IAC5C,OACE,OAAOA,UAAU,YACjBA,UAAU,QACT,CAAA,AAACA,MAA2BmH,IAAI,KAAK,aACpC,AAACnH,MAA2BmH,IAAI,KAAK,UAAS;AAEpD;AAEA,SAASS,oCACPhG,UAA8B,EAC9Ba,UAAgC,EAChCpE,MAGC;IAED,MAAMwJ,YAAYrN,wBAAwBoH;IAC1C,KAAK,MAAMiB,aAAagF,UAAUpF,UAAU,CAAE;QAC5C,IAAII,UAAUiF,IAAI,KAAK,QAAQ;QAC/BrF,WAAWsF,IAAI,CAAC;YACd1G,KAAKwB,UAAUxB,GAAG;YAClBM,OAAOtD,OAAOsD,KAAK;YACnBtD,QAAQuD,WAAWvD,MAAM;YACzBoF,QAAQpF,OAAOoF,MAAM;QACvB;IACF;AACF;AAEA,SAAS5C,uBAAuBhF,MAM/B;IACC,IAAIA,OAAOiF,WAAW,CAACiC,MAAM,KAAK,GAAG;IAErCtI,SAASiH,IAAI,CACX;QAACrB,eAAexE,OAAOwE,aAAa;QAAES,aAAajF,OAAOiF,WAAW;IAAA,GACrE;AAEJ"}
|
|
@@ -96,6 +96,12 @@ export interface RewindStepsToPendingParams {
|
|
|
96
96
|
export declare function rewindStepsToPending(params: RewindStepsToPendingParams, tx: Tx): Promise<void>;
|
|
97
97
|
export declare function countStepAttempts(stepId: string, tx: Tx): Promise<number>;
|
|
98
98
|
export declare function getStepAttempts(jobId: string): Promise<StepAttempt[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Lists only the step attempt ids of a job, without materializing the full
|
|
101
|
+
* attempt entities. The session release sweep only needs the ids to release
|
|
102
|
+
* claims, so this keeps the per-job-terminated query off a full-row projection.
|
|
103
|
+
*/
|
|
104
|
+
export declare function listStepAttemptIdsByJobId(jobId: string): Promise<string[]>;
|
|
99
105
|
export declare function getStepAttemptsByJobIds(jobIds: string[]): Promise<StepAttempt[]>;
|
|
100
106
|
export interface ApplyStepResultParams {
|
|
101
107
|
jobExecutionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/db/workflow-runs/steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EACV,6BAA6B,EAC7B,IAAI,EACJ,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAK,KAAK,EAAE,EAAC,MAAM,UAAU,CAAC;AAUrC,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAU5B;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAM3E;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAuChD;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA0BzC;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAQpE;AAED,wBAAsB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAOtF;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;CACrD;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,EACpC,EAAE,CAAC,EAAE,EAAE,GACN,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/db/workflow-runs/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,7 @@ export async function bulkUpdateStepStatuses(params, tx) {
|
|
|
91
91
|
logOutcome: 'abandoned',
|
|
92
92
|
finishedAt: new Date()
|
|
93
93
|
}).from(steps).where(and(eq(stepAttempts.stepId, steps.id), eq(steps.jobExecutionId, params.jobExecutionId), eq(stepAttempts.status, 'running'))).returning({
|
|
94
|
+
id: stepAttempts.id,
|
|
94
95
|
stepId: stepAttempts.stepId,
|
|
95
96
|
attempt: stepAttempts.attempt,
|
|
96
97
|
logOutcome: stepAttempts.logOutcome
|
|
@@ -98,6 +99,7 @@ export async function bulkUpdateStepStatuses(params, tx) {
|
|
|
98
99
|
if (finalizedAttempts.length > 0) {
|
|
99
100
|
for (const attempt of finalizedAttempts){
|
|
100
101
|
await writeStepAttemptTerminatedOutbox(tx, {
|
|
102
|
+
stepAttemptId: attempt.id,
|
|
101
103
|
stepId: attempt.stepId,
|
|
102
104
|
attempt: attempt.attempt,
|
|
103
105
|
status: params.status,
|
|
@@ -223,6 +225,7 @@ export async function finishStepAttempt(params, tx) {
|
|
|
223
225
|
restartFeedback: params.restartFeedback ?? null,
|
|
224
226
|
finishedAt: new Date()
|
|
225
227
|
}).where(and(eq(stepAttempts.stepId, params.stepId), eq(stepAttempts.attempt, params.attempt), eq(stepAttempts.status, 'running'))).returning({
|
|
228
|
+
id: stepAttempts.id,
|
|
226
229
|
stepId: stepAttempts.stepId,
|
|
227
230
|
attempt: stepAttempts.attempt,
|
|
228
231
|
logOutcome: stepAttempts.logOutcome
|
|
@@ -230,6 +233,7 @@ export async function finishStepAttempt(params, tx) {
|
|
|
230
233
|
const row = rows[0];
|
|
231
234
|
if (!row) return;
|
|
232
235
|
await writeStepAttemptTerminatedOutbox(tx, {
|
|
236
|
+
stepAttemptId: row.id,
|
|
233
237
|
stepId: row.stepId,
|
|
234
238
|
attempt: row.attempt,
|
|
235
239
|
status: params.status,
|
|
@@ -268,6 +272,16 @@ export async function getStepAttempts(jobId) {
|
|
|
268
272
|
}).from(stepAttempts).innerJoin(steps, eq(stepAttempts.stepId, steps.id)).innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id)).where(eq(jobExecutions.jobId, jobId)).orderBy(asc(stepAttempts.executionOrder));
|
|
269
273
|
return rows.map((row)=>toStepAttempt(row.stepAttempt));
|
|
270
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Lists only the step attempt ids of a job, without materializing the full
|
|
277
|
+
* attempt entities. The session release sweep only needs the ids to release
|
|
278
|
+
* claims, so this keeps the per-job-terminated query off a full-row projection.
|
|
279
|
+
*/ export async function listStepAttemptIdsByJobId(jobId) {
|
|
280
|
+
const rows = await db().select({
|
|
281
|
+
id: stepAttempts.id
|
|
282
|
+
}).from(stepAttempts).innerJoin(steps, eq(stepAttempts.stepId, steps.id)).innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id)).where(eq(jobExecutions.jobId, jobId));
|
|
283
|
+
return rows.map((row)=>row.id);
|
|
284
|
+
}
|
|
271
285
|
export async function getStepAttemptsByJobIds(jobIds) {
|
|
272
286
|
if (jobIds.length === 0) return [];
|
|
273
287
|
const rows = await db().select({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db/workflow-runs/steps.ts"],"sourcesContent":["import type {LogOutcomeDto} from '@shipfox/api-workflows-dto';\nimport {and, asc, count, desc, eq, gte, inArray, sql} from 'drizzle-orm';\nimport type {\n PersistedEvaluationTraceEntry,\n Step,\n StepAttempt,\n StepAttemptStatus,\n StepStatus,\n StepStatusReason,\n} from '#core/entities/step.js';\nimport {deriveCompletion, isTerminal} from '#core/step-transition/decide-step-transition.js';\nimport {db, type Tx} from '../db.js';\nimport {jobExecutions} from '../schema/job-executions.js';\nimport {jobs} from '../schema/jobs.js';\nimport {stepAttempts, toStepAttempt} from '../schema/step-attempts.js';\nimport {steps, toStep} from '../schema/steps.js';\nimport {workflowRunAttempts} from '../schema/workflow-run-attempts.js';\nimport {workflowRuns} from '../schema/workflow-runs.js';\nimport {writeJobStepsSettledOutbox, writeStepAttemptTerminatedOutbox} from './outbox.js';\nimport {NON_TERMINAL_STEP_STATUS_FILTER} from './shared.js';\n\nexport async function getStepByIdForJobExecution(params: {\n stepId: string;\n jobExecutionId: string;\n}): Promise<Step | undefined> {\n const rows = await db()\n .select()\n .from(steps)\n .where(and(eq(steps.id, params.stepId), eq(steps.jobExecutionId, params.jobExecutionId)))\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n return toStep(row);\n}\n\nexport async function getStepById(stepId: string): Promise<Step | undefined> {\n const rows = await db().select().from(steps).where(eq(steps.id, stepId)).limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n return toStep(row);\n}\n\nexport interface StepAttemptDetail {\n workflowRunId: string;\n workflowRunAttemptId: string;\n step: Step;\n attempt: StepAttempt;\n}\n\nexport interface JobExecutionFailureOrigin {\n jobExecutionId: string;\n stepId: string;\n stepName: string;\n stepStatus: StepStatus;\n stepAttempt: number;\n stepError: Record<string, unknown> | null;\n attemptStatus: StepAttemptStatus | null;\n attemptError: Record<string, unknown> | null;\n attemptExitCode: number | null;\n}\n\n/**\n * Read only the current attempt for the most relevant step. The terminal job event identifies\n * the execution, so this intentionally avoids hydrating the execution's complete attempt\n * history. If no attempt was dispatched, the first step still gives the projection a stable\n * troubleshooting origin for failures that happened before step work started.\n */\nexport async function getJobExecutionFailureOrigin(\n jobExecutionId: string,\n): Promise<JobExecutionFailureOrigin | undefined> {\n const rows = await db()\n .select({\n jobExecutionId: jobExecutions.id,\n stepId: steps.id,\n stepName: steps.name,\n stepStatus: steps.status,\n stepAttempt: steps.currentAttempt,\n stepError: steps.error,\n attemptStatus: stepAttempts.status,\n attemptError: stepAttempts.error,\n attemptExitCode: stepAttempts.exitCode,\n })\n .from(jobExecutions)\n .innerJoin(steps, eq(steps.jobExecutionId, jobExecutions.id))\n .leftJoin(\n stepAttempts,\n and(eq(stepAttempts.stepId, steps.id), eq(stepAttempts.attempt, steps.currentAttempt)),\n )\n .where(eq(jobExecutions.id, jobExecutionId))\n .orderBy(\n desc(\n sql<number>`case when ${steps.status} = 'failed' or ${stepAttempts.status} = 'failed' or ${steps.statusReason} = 'condition_errored' then 1 else 0 end`,\n ),\n asc(steps.position),\n asc(steps.id),\n )\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n\n return {\n ...row,\n stepError: (row.stepError as Record<string, unknown> | null) ?? null,\n attemptError: (row.attemptError as Record<string, unknown> | null) ?? null,\n attemptStatus: row.attemptStatus === null ? null : (row.attemptStatus as StepAttemptStatus),\n attemptExitCode: row.attemptExitCode ?? null,\n };\n}\n\nexport async function getStepAttemptDetail(params: {\n stepId: string;\n attempt: number;\n}): Promise<StepAttemptDetail | undefined> {\n const rows = await db()\n .select({\n workflowRunId: workflowRuns.id,\n workflowRunAttemptId: workflowRunAttempts.id,\n step: steps,\n stepAttempt: stepAttempts,\n })\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .innerJoin(jobs, eq(jobExecutions.jobId, jobs.id))\n .innerJoin(workflowRunAttempts, eq(jobs.workflowRunAttemptId, workflowRunAttempts.id))\n .innerJoin(workflowRuns, eq(workflowRunAttempts.workflowRunId, workflowRuns.id))\n .where(and(eq(stepAttempts.stepId, params.stepId), eq(stepAttempts.attempt, params.attempt)))\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n\n return {\n workflowRunId: row.workflowRunId,\n workflowRunAttemptId: row.workflowRunAttemptId,\n step: toStep(row.step),\n attempt: toStepAttempt(row.stepAttempt),\n };\n}\n\nexport async function getStepsByJobId(jobId: string): Promise<Step[]> {\n const rows = await db()\n .select({step: steps})\n .from(steps)\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(eq(jobExecutions.jobId, jobId))\n .orderBy(asc(steps.position));\n return rows.map((row) => toStep(row.step));\n}\n\nexport async function getStepsByJobExecutionId(jobExecutionId: string): Promise<Step[]> {\n const rows = await db()\n .select()\n .from(steps)\n .where(eq(steps.jobExecutionId, jobExecutionId))\n .orderBy(asc(steps.position));\n return rows.map(toStep);\n}\n\nexport interface BulkUpdateStepStatusesParams {\n jobExecutionId: string;\n status: Extract<StepStatus, 'failed' | 'cancelled'>;\n}\n\nexport async function bulkUpdateStepStatuses(\n params: BulkUpdateStepStatusesParams,\n tx?: Tx,\n): Promise<void> {\n if (!tx) {\n await db().transaction((transaction) => bulkUpdateStepStatuses(params, transaction));\n return;\n }\n\n await tx\n .update(steps)\n .set({\n status: params.status,\n statusReason: null,\n updatedAt: new Date(),\n })\n .where(and(eq(steps.jobExecutionId, params.jobExecutionId), NON_TERMINAL_STEP_STATUS_FILTER));\n\n // Finalize open attempt rows so a timed-out/cancelled sweep does not leave\n // phantom in-flight work for gate and restart logic.\n const finalizedAttempts = await tx\n .update(stepAttempts)\n .set({status: params.status, logOutcome: 'abandoned', finishedAt: new Date()})\n .from(steps)\n .where(\n and(\n eq(stepAttempts.stepId, steps.id),\n eq(steps.jobExecutionId, params.jobExecutionId),\n eq(stepAttempts.status, 'running'),\n ),\n )\n .returning({\n stepId: stepAttempts.stepId,\n attempt: stepAttempts.attempt,\n logOutcome: stepAttempts.logOutcome,\n });\n\n if (finalizedAttempts.length > 0) {\n for (const attempt of finalizedAttempts) {\n await writeStepAttemptTerminatedOutbox(tx, {\n stepId: attempt.stepId,\n attempt: attempt.attempt,\n status: params.status,\n logOutcome: attempt.logOutcome ?? 'abandoned',\n });\n }\n }\n}\n\n// Per-step progression primitives. They take a mandatory `tx` because they only\n// run inside the job-execution service's transaction, and every write guards on\n// the never-downgrade predicate so a late or duplicate write cannot overwrite an\n// already-terminal row.\n\nexport async function getStepsByJobExecutionIdForUpdate(\n jobExecutionId: string,\n tx: Tx,\n): Promise<Step[]> {\n const rows = await tx\n .select()\n .from(steps)\n .where(eq(steps.jobExecutionId, jobExecutionId))\n .orderBy(asc(steps.position))\n .for('update');\n return rows.map(toStep);\n}\n\nexport async function getStepAttemptsByJobExecutionId(\n jobExecutionId: string,\n tx: Tx,\n): Promise<StepAttempt[]> {\n const rows = await tx\n .select()\n .from(stepAttempts)\n .where(eq(stepAttempts.jobExecutionId, jobExecutionId))\n .orderBy(asc(stepAttempts.executionOrder), asc(stepAttempts.id));\n return rows.map(toStepAttempt);\n}\n\nexport interface MarkStepRunningParams {\n jobExecutionId: string;\n stepId: string;\n}\n\nexport async function markStepRunning(params: MarkStepRunningParams, tx: Tx): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'running',\n statusReason: null,\n evaluationTrace: null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n )\n .returning();\n const row = rows[0];\n if (!row) return null;\n const step = toStep(row);\n // Open the attempt this dispatch runs. onConflictDoNothing makes a racing\n // re-dispatch a no-op against the unique (step_id, attempt) anchor; normal\n // re-delivery returns the already-running step without calling this.\n await insertRunningStepAttempt(\n {\n jobExecutionId: step.jobExecutionId,\n stepId: step.id,\n attempt: step.currentAttempt,\n config: step.config,\n },\n tx,\n );\n return step;\n}\n\nexport interface DispatchStepWithCompletedConfigParams {\n jobExecutionId: string;\n stepId: string;\n config: Record<string, unknown>;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[] | null;\n}\n\nexport async function dispatchStepWithCompletedConfig(\n params: DispatchStepWithCompletedConfigParams,\n tx: Tx,\n): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'running',\n statusReason: null,\n evaluationTrace: null,\n config: params.config,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n )\n .returning();\n const row = rows[0];\n if (!row) return null;\n const step = toStep(row);\n await insertRunningStepAttempt(\n {\n jobExecutionId: step.jobExecutionId,\n stepId: step.id,\n attempt: step.currentAttempt,\n config: params.config,\n evaluationTrace: params.evaluationTrace,\n },\n tx,\n );\n return step;\n}\n\nexport interface MarkStepSkippedParams {\n jobExecutionId: string;\n stepId: string;\n statusReason: StepStatusReason;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[];\n}\n\nexport async function markStepSkipped(params: MarkStepSkippedParams, tx: Tx): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'skipped',\n statusReason: params.statusReason,\n evaluationTrace: params.evaluationTrace,\n error: null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n eq(steps.status, 'pending'),\n ),\n )\n .returning();\n const row = rows[0];\n return row ? toStep(row) : null;\n}\n\nexport async function settleJobFailed(\n tx: Tx,\n params: {\n jobId: string;\n jobExecutionId: string;\n failedStepId: string;\n error: Record<string, unknown>;\n },\n): Promise<'succeeded' | 'failed' | null> {\n await applyStepResult(\n {\n jobExecutionId: params.jobExecutionId,\n stepId: params.failedStepId,\n status: 'failed',\n error: params.error,\n },\n tx,\n );\n\n const after = await getStepsByJobExecutionIdForUpdate(params.jobExecutionId, tx);\n if (!after.every((step) => isTerminal(step.status))) return null;\n\n const status = deriveCompletion(after);\n await writeJobStepsSettledOutbox(tx, {\n jobId: params.jobId,\n jobExecutionId: params.jobExecutionId,\n status,\n });\n return status;\n}\n\nexport interface InsertRunningStepAttemptParams {\n jobExecutionId: string;\n stepId: string;\n attempt: number;\n config?: Record<string, unknown> | null;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null;\n}\n\nexport async function insertRunningStepAttempt(\n params: InsertRunningStepAttemptParams,\n tx: Tx,\n): Promise<void> {\n const [{nextExecutionOrder} = {nextExecutionOrder: 1}] = await tx\n .select({\n nextExecutionOrder: sql<number>`coalesce(max(${stepAttempts.executionOrder}), 0) + 1`,\n })\n .from(stepAttempts)\n .where(eq(stepAttempts.jobExecutionId, params.jobExecutionId));\n\n await tx\n .insert(stepAttempts)\n .values({\n jobExecutionId: params.jobExecutionId,\n stepId: params.stepId,\n attempt: params.attempt,\n executionOrder: nextExecutionOrder,\n status: 'running',\n config: params.config ?? null,\n evaluationTrace: params.evaluationTrace ?? null,\n })\n .onConflictDoNothing({target: [stepAttempts.stepId, stepAttempts.attempt]});\n}\n\nexport interface FinishStepAttemptParams {\n stepId: string;\n attempt: number;\n status: Exclude<StepAttemptStatus, 'running'>;\n error?: Record<string, unknown> | null;\n output?: Record<string, unknown> | null;\n response?: string | null;\n exitCode?: number | null;\n logOutcome: LogOutcomeDto;\n gateResult?: Record<string, unknown> | null;\n restartFeedback?: string | null;\n}\n\n// Finalize the running attempt to a terminal state. The `status='running'` guard\n// makes this idempotent: a duplicate report finds the attempt already terminal\n// and updates nothing (never-downgrade for the audit row).\nexport async function finishStepAttempt(params: FinishStepAttemptParams, tx: Tx): Promise<void> {\n const rows = await tx\n .update(stepAttempts)\n .set({\n status: params.status,\n output: params.output ?? null,\n response: params.response ?? null,\n error: params.error ?? null,\n exitCode: params.exitCode ?? null,\n logOutcome: params.logOutcome,\n gateResult: params.gateResult ?? null,\n restartFeedback: params.restartFeedback ?? null,\n finishedAt: new Date(),\n })\n .where(\n and(\n eq(stepAttempts.stepId, params.stepId),\n eq(stepAttempts.attempt, params.attempt),\n eq(stepAttempts.status, 'running'),\n ),\n )\n .returning({\n stepId: stepAttempts.stepId,\n attempt: stepAttempts.attempt,\n logOutcome: stepAttempts.logOutcome,\n });\n\n const row = rows[0];\n if (!row) return;\n\n await writeStepAttemptTerminatedOutbox(tx, {\n stepId: row.stepId,\n attempt: row.attempt,\n status: params.status,\n logOutcome: row.logOutcome ?? params.logOutcome,\n });\n}\n\nexport interface RewindStepsToPendingParams {\n jobExecutionId: string;\n fromPosition: number;\n}\n\n// Restart-only: rewind every step at or after `fromPosition` back to pending,\n// clearing its result and bumping both `version` and `current_attempt` so the next\n// dispatch opens a fresh attempt. This DELIBERATELY bypasses the never-downgrade\n// guard used everywhere else. It is the one place that resurrects terminal steps,\n// so it must only be called from the durable-restart path, never the ordinary\n// report path. It must run in the same transaction as the failed-attempt write.\nexport async function rewindStepsToPending(\n params: RewindStepsToPendingParams,\n tx: Tx,\n): Promise<void> {\n await tx\n .update(steps)\n .set({\n status: 'pending',\n statusReason: null,\n error: null,\n version: sql`${steps.version} + 1`,\n currentAttempt: sql`${steps.currentAttempt} + 1`,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.jobExecutionId, params.jobExecutionId),\n gte(steps.position, params.fromPosition),\n ),\n );\n}\n\n// Count a single step's own attempts. Used to bound the restart cap on the\n// gating step's actual executions: `steps.current_attempt` can't be used for\n// the cap because a rewind also bumps it for downstream steps swept into the\n// rewind range (which would inflate a later gate's cap in a multi-gate job).\nexport async function countStepAttempts(stepId: string, tx: Tx): Promise<number> {\n const rows = await tx\n .select({total: count()})\n .from(stepAttempts)\n .where(eq(stepAttempts.stepId, stepId));\n return Number(rows[0]?.total ?? 0);\n}\n\nexport async function getStepAttempts(jobId: string): Promise<StepAttempt[]> {\n const rows = await db()\n .select({stepAttempt: stepAttempts})\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(eq(jobExecutions.jobId, jobId))\n .orderBy(asc(stepAttempts.executionOrder));\n return rows.map((row) => toStepAttempt(row.stepAttempt));\n}\n\nexport async function getStepAttemptsByJobIds(jobIds: string[]): Promise<StepAttempt[]> {\n if (jobIds.length === 0) return [];\n const rows = await db()\n .select({stepAttempt: stepAttempts, jobId: jobExecutions.jobId})\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(inArray(jobExecutions.jobId, jobIds))\n .orderBy(asc(jobExecutions.jobId), asc(stepAttempts.executionOrder));\n return rows.map((row) => toStepAttempt(row.stepAttempt));\n}\n\nexport interface ApplyStepResultParams {\n jobExecutionId: string;\n stepId: string;\n status: 'succeeded' | 'failed';\n error: Record<string, unknown> | null;\n}\n\nexport async function applyStepResult(params: ApplyStepResultParams, tx: Tx): Promise<void> {\n await tx\n .update(steps)\n .set({\n status: params.status,\n statusReason: null,\n error: params.error ?? null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n );\n}\n\nexport interface CancelRemainingStepsParams {\n jobExecutionId: string;\n}\n\nexport async function cancelRemainingSteps(\n params: CancelRemainingStepsParams,\n tx: Tx,\n): Promise<void> {\n await bulkUpdateStepStatuses({jobExecutionId: params.jobExecutionId, status: 'cancelled'}, tx);\n}\n"],"names":["and","asc","count","desc","eq","gte","inArray","sql","deriveCompletion","isTerminal","db","jobExecutions","jobs","stepAttempts","toStepAttempt","steps","toStep","workflowRunAttempts","workflowRuns","writeJobStepsSettledOutbox","writeStepAttemptTerminatedOutbox","NON_TERMINAL_STEP_STATUS_FILTER","getStepByIdForJobExecution","params","rows","select","from","where","id","stepId","jobExecutionId","limit","row","undefined","getStepById","getJobExecutionFailureOrigin","stepName","name","stepStatus","status","stepAttempt","currentAttempt","stepError","error","attemptStatus","attemptError","attemptExitCode","exitCode","innerJoin","leftJoin","attempt","orderBy","statusReason","position","getStepAttemptDetail","workflowRunId","workflowRunAttemptId","step","jobId","getStepsByJobId","map","getStepsByJobExecutionId","bulkUpdateStepStatuses","tx","transaction","update","set","updatedAt","Date","finalizedAttempts","logOutcome","finishedAt","returning","length","getStepsByJobExecutionIdForUpdate","for","getStepAttemptsByJobExecutionId","executionOrder","markStepRunning","evaluationTrace","insertRunningStepAttempt","config","dispatchStepWithCompletedConfig","markStepSkipped","settleJobFailed","applyStepResult","failedStepId","after","every","nextExecutionOrder","insert","values","onConflictDoNothing","target","finishStepAttempt","output","response","gateResult","restartFeedback","rewindStepsToPending","version","fromPosition","countStepAttempts","total","Number","getStepAttempts","getStepAttemptsByJobIds","jobIds","cancelRemainingSteps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/db/workflow-runs/steps.ts"],"sourcesContent":["import type {LogOutcomeDto} from '@shipfox/api-workflows-dto';\nimport {and, asc, count, desc, eq, gte, inArray, sql} from 'drizzle-orm';\nimport type {\n PersistedEvaluationTraceEntry,\n Step,\n StepAttempt,\n StepAttemptStatus,\n StepStatus,\n StepStatusReason,\n} from '#core/entities/step.js';\nimport {deriveCompletion, isTerminal} from '#core/step-transition/decide-step-transition.js';\nimport {db, type Tx} from '../db.js';\nimport {jobExecutions} from '../schema/job-executions.js';\nimport {jobs} from '../schema/jobs.js';\nimport {stepAttempts, toStepAttempt} from '../schema/step-attempts.js';\nimport {steps, toStep} from '../schema/steps.js';\nimport {workflowRunAttempts} from '../schema/workflow-run-attempts.js';\nimport {workflowRuns} from '../schema/workflow-runs.js';\nimport {writeJobStepsSettledOutbox, writeStepAttemptTerminatedOutbox} from './outbox.js';\nimport {NON_TERMINAL_STEP_STATUS_FILTER} from './shared.js';\n\nexport async function getStepByIdForJobExecution(params: {\n stepId: string;\n jobExecutionId: string;\n}): Promise<Step | undefined> {\n const rows = await db()\n .select()\n .from(steps)\n .where(and(eq(steps.id, params.stepId), eq(steps.jobExecutionId, params.jobExecutionId)))\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n return toStep(row);\n}\n\nexport async function getStepById(stepId: string): Promise<Step | undefined> {\n const rows = await db().select().from(steps).where(eq(steps.id, stepId)).limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n return toStep(row);\n}\n\nexport interface StepAttemptDetail {\n workflowRunId: string;\n workflowRunAttemptId: string;\n step: Step;\n attempt: StepAttempt;\n}\n\nexport interface JobExecutionFailureOrigin {\n jobExecutionId: string;\n stepId: string;\n stepName: string;\n stepStatus: StepStatus;\n stepAttempt: number;\n stepError: Record<string, unknown> | null;\n attemptStatus: StepAttemptStatus | null;\n attemptError: Record<string, unknown> | null;\n attemptExitCode: number | null;\n}\n\n/**\n * Read only the current attempt for the most relevant step. The terminal job event identifies\n * the execution, so this intentionally avoids hydrating the execution's complete attempt\n * history. If no attempt was dispatched, the first step still gives the projection a stable\n * troubleshooting origin for failures that happened before step work started.\n */\nexport async function getJobExecutionFailureOrigin(\n jobExecutionId: string,\n): Promise<JobExecutionFailureOrigin | undefined> {\n const rows = await db()\n .select({\n jobExecutionId: jobExecutions.id,\n stepId: steps.id,\n stepName: steps.name,\n stepStatus: steps.status,\n stepAttempt: steps.currentAttempt,\n stepError: steps.error,\n attemptStatus: stepAttempts.status,\n attemptError: stepAttempts.error,\n attemptExitCode: stepAttempts.exitCode,\n })\n .from(jobExecutions)\n .innerJoin(steps, eq(steps.jobExecutionId, jobExecutions.id))\n .leftJoin(\n stepAttempts,\n and(eq(stepAttempts.stepId, steps.id), eq(stepAttempts.attempt, steps.currentAttempt)),\n )\n .where(eq(jobExecutions.id, jobExecutionId))\n .orderBy(\n desc(\n sql<number>`case when ${steps.status} = 'failed' or ${stepAttempts.status} = 'failed' or ${steps.statusReason} = 'condition_errored' then 1 else 0 end`,\n ),\n asc(steps.position),\n asc(steps.id),\n )\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n\n return {\n ...row,\n stepError: (row.stepError as Record<string, unknown> | null) ?? null,\n attemptError: (row.attemptError as Record<string, unknown> | null) ?? null,\n attemptStatus: row.attemptStatus === null ? null : (row.attemptStatus as StepAttemptStatus),\n attemptExitCode: row.attemptExitCode ?? null,\n };\n}\n\nexport async function getStepAttemptDetail(params: {\n stepId: string;\n attempt: number;\n}): Promise<StepAttemptDetail | undefined> {\n const rows = await db()\n .select({\n workflowRunId: workflowRuns.id,\n workflowRunAttemptId: workflowRunAttempts.id,\n step: steps,\n stepAttempt: stepAttempts,\n })\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .innerJoin(jobs, eq(jobExecutions.jobId, jobs.id))\n .innerJoin(workflowRunAttempts, eq(jobs.workflowRunAttemptId, workflowRunAttempts.id))\n .innerJoin(workflowRuns, eq(workflowRunAttempts.workflowRunId, workflowRuns.id))\n .where(and(eq(stepAttempts.stepId, params.stepId), eq(stepAttempts.attempt, params.attempt)))\n .limit(1);\n\n const row = rows[0];\n if (!row) return undefined;\n\n return {\n workflowRunId: row.workflowRunId,\n workflowRunAttemptId: row.workflowRunAttemptId,\n step: toStep(row.step),\n attempt: toStepAttempt(row.stepAttempt),\n };\n}\n\nexport async function getStepsByJobId(jobId: string): Promise<Step[]> {\n const rows = await db()\n .select({step: steps})\n .from(steps)\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(eq(jobExecutions.jobId, jobId))\n .orderBy(asc(steps.position));\n return rows.map((row) => toStep(row.step));\n}\n\nexport async function getStepsByJobExecutionId(jobExecutionId: string): Promise<Step[]> {\n const rows = await db()\n .select()\n .from(steps)\n .where(eq(steps.jobExecutionId, jobExecutionId))\n .orderBy(asc(steps.position));\n return rows.map(toStep);\n}\n\nexport interface BulkUpdateStepStatusesParams {\n jobExecutionId: string;\n status: Extract<StepStatus, 'failed' | 'cancelled'>;\n}\n\nexport async function bulkUpdateStepStatuses(\n params: BulkUpdateStepStatusesParams,\n tx?: Tx,\n): Promise<void> {\n if (!tx) {\n await db().transaction((transaction) => bulkUpdateStepStatuses(params, transaction));\n return;\n }\n\n await tx\n .update(steps)\n .set({\n status: params.status,\n statusReason: null,\n updatedAt: new Date(),\n })\n .where(and(eq(steps.jobExecutionId, params.jobExecutionId), NON_TERMINAL_STEP_STATUS_FILTER));\n\n // Finalize open attempt rows so a timed-out/cancelled sweep does not leave\n // phantom in-flight work for gate and restart logic.\n const finalizedAttempts = await tx\n .update(stepAttempts)\n .set({status: params.status, logOutcome: 'abandoned', finishedAt: new Date()})\n .from(steps)\n .where(\n and(\n eq(stepAttempts.stepId, steps.id),\n eq(steps.jobExecutionId, params.jobExecutionId),\n eq(stepAttempts.status, 'running'),\n ),\n )\n .returning({\n id: stepAttempts.id,\n stepId: stepAttempts.stepId,\n attempt: stepAttempts.attempt,\n logOutcome: stepAttempts.logOutcome,\n });\n\n if (finalizedAttempts.length > 0) {\n for (const attempt of finalizedAttempts) {\n await writeStepAttemptTerminatedOutbox(tx, {\n stepAttemptId: attempt.id,\n stepId: attempt.stepId,\n attempt: attempt.attempt,\n status: params.status,\n logOutcome: attempt.logOutcome ?? 'abandoned',\n });\n }\n }\n}\n\n// Per-step progression primitives. They take a mandatory `tx` because they only\n// run inside the job-execution service's transaction, and every write guards on\n// the never-downgrade predicate so a late or duplicate write cannot overwrite an\n// already-terminal row.\n\nexport async function getStepsByJobExecutionIdForUpdate(\n jobExecutionId: string,\n tx: Tx,\n): Promise<Step[]> {\n const rows = await tx\n .select()\n .from(steps)\n .where(eq(steps.jobExecutionId, jobExecutionId))\n .orderBy(asc(steps.position))\n .for('update');\n return rows.map(toStep);\n}\n\nexport async function getStepAttemptsByJobExecutionId(\n jobExecutionId: string,\n tx: Tx,\n): Promise<StepAttempt[]> {\n const rows = await tx\n .select()\n .from(stepAttempts)\n .where(eq(stepAttempts.jobExecutionId, jobExecutionId))\n .orderBy(asc(stepAttempts.executionOrder), asc(stepAttempts.id));\n return rows.map(toStepAttempt);\n}\n\nexport interface MarkStepRunningParams {\n jobExecutionId: string;\n stepId: string;\n}\n\nexport async function markStepRunning(params: MarkStepRunningParams, tx: Tx): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'running',\n statusReason: null,\n evaluationTrace: null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n )\n .returning();\n const row = rows[0];\n if (!row) return null;\n const step = toStep(row);\n // Open the attempt this dispatch runs. onConflictDoNothing makes a racing\n // re-dispatch a no-op against the unique (step_id, attempt) anchor; normal\n // re-delivery returns the already-running step without calling this.\n await insertRunningStepAttempt(\n {\n jobExecutionId: step.jobExecutionId,\n stepId: step.id,\n attempt: step.currentAttempt,\n config: step.config,\n },\n tx,\n );\n return step;\n}\n\nexport interface DispatchStepWithCompletedConfigParams {\n jobExecutionId: string;\n stepId: string;\n config: Record<string, unknown>;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[] | null;\n}\n\nexport async function dispatchStepWithCompletedConfig(\n params: DispatchStepWithCompletedConfigParams,\n tx: Tx,\n): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'running',\n statusReason: null,\n evaluationTrace: null,\n config: params.config,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n )\n .returning();\n const row = rows[0];\n if (!row) return null;\n const step = toStep(row);\n await insertRunningStepAttempt(\n {\n jobExecutionId: step.jobExecutionId,\n stepId: step.id,\n attempt: step.currentAttempt,\n config: params.config,\n evaluationTrace: params.evaluationTrace,\n },\n tx,\n );\n return step;\n}\n\nexport interface MarkStepSkippedParams {\n jobExecutionId: string;\n stepId: string;\n statusReason: StepStatusReason;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[];\n}\n\nexport async function markStepSkipped(params: MarkStepSkippedParams, tx: Tx): Promise<Step | null> {\n const rows = await tx\n .update(steps)\n .set({\n status: 'skipped',\n statusReason: params.statusReason,\n evaluationTrace: params.evaluationTrace,\n error: null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n eq(steps.status, 'pending'),\n ),\n )\n .returning();\n const row = rows[0];\n return row ? toStep(row) : null;\n}\n\nexport async function settleJobFailed(\n tx: Tx,\n params: {\n jobId: string;\n jobExecutionId: string;\n failedStepId: string;\n error: Record<string, unknown>;\n },\n): Promise<'succeeded' | 'failed' | null> {\n await applyStepResult(\n {\n jobExecutionId: params.jobExecutionId,\n stepId: params.failedStepId,\n status: 'failed',\n error: params.error,\n },\n tx,\n );\n\n const after = await getStepsByJobExecutionIdForUpdate(params.jobExecutionId, tx);\n if (!after.every((step) => isTerminal(step.status))) return null;\n\n const status = deriveCompletion(after);\n await writeJobStepsSettledOutbox(tx, {\n jobId: params.jobId,\n jobExecutionId: params.jobExecutionId,\n status,\n });\n return status;\n}\n\nexport interface InsertRunningStepAttemptParams {\n jobExecutionId: string;\n stepId: string;\n attempt: number;\n config?: Record<string, unknown> | null;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null;\n}\n\nexport async function insertRunningStepAttempt(\n params: InsertRunningStepAttemptParams,\n tx: Tx,\n): Promise<void> {\n const [{nextExecutionOrder} = {nextExecutionOrder: 1}] = await tx\n .select({\n nextExecutionOrder: sql<number>`coalesce(max(${stepAttempts.executionOrder}), 0) + 1`,\n })\n .from(stepAttempts)\n .where(eq(stepAttempts.jobExecutionId, params.jobExecutionId));\n\n await tx\n .insert(stepAttempts)\n .values({\n jobExecutionId: params.jobExecutionId,\n stepId: params.stepId,\n attempt: params.attempt,\n executionOrder: nextExecutionOrder,\n status: 'running',\n config: params.config ?? null,\n evaluationTrace: params.evaluationTrace ?? null,\n })\n .onConflictDoNothing({target: [stepAttempts.stepId, stepAttempts.attempt]});\n}\n\nexport interface FinishStepAttemptParams {\n stepId: string;\n attempt: number;\n status: Exclude<StepAttemptStatus, 'running'>;\n error?: Record<string, unknown> | null;\n output?: Record<string, unknown> | null;\n response?: string | null;\n exitCode?: number | null;\n logOutcome: LogOutcomeDto;\n gateResult?: Record<string, unknown> | null;\n restartFeedback?: string | null;\n}\n\n// Finalize the running attempt to a terminal state. The `status='running'` guard\n// makes this idempotent: a duplicate report finds the attempt already terminal\n// and updates nothing (never-downgrade for the audit row).\nexport async function finishStepAttempt(params: FinishStepAttemptParams, tx: Tx): Promise<void> {\n const rows = await tx\n .update(stepAttempts)\n .set({\n status: params.status,\n output: params.output ?? null,\n response: params.response ?? null,\n error: params.error ?? null,\n exitCode: params.exitCode ?? null,\n logOutcome: params.logOutcome,\n gateResult: params.gateResult ?? null,\n restartFeedback: params.restartFeedback ?? null,\n finishedAt: new Date(),\n })\n .where(\n and(\n eq(stepAttempts.stepId, params.stepId),\n eq(stepAttempts.attempt, params.attempt),\n eq(stepAttempts.status, 'running'),\n ),\n )\n .returning({\n id: stepAttempts.id,\n stepId: stepAttempts.stepId,\n attempt: stepAttempts.attempt,\n logOutcome: stepAttempts.logOutcome,\n });\n\n const row = rows[0];\n if (!row) return;\n\n await writeStepAttemptTerminatedOutbox(tx, {\n stepAttemptId: row.id,\n stepId: row.stepId,\n attempt: row.attempt,\n status: params.status,\n logOutcome: row.logOutcome ?? params.logOutcome,\n });\n}\n\nexport interface RewindStepsToPendingParams {\n jobExecutionId: string;\n fromPosition: number;\n}\n\n// Restart-only: rewind every step at or after `fromPosition` back to pending,\n// clearing its result and bumping both `version` and `current_attempt` so the next\n// dispatch opens a fresh attempt. This DELIBERATELY bypasses the never-downgrade\n// guard used everywhere else. It is the one place that resurrects terminal steps,\n// so it must only be called from the durable-restart path, never the ordinary\n// report path. It must run in the same transaction as the failed-attempt write.\nexport async function rewindStepsToPending(\n params: RewindStepsToPendingParams,\n tx: Tx,\n): Promise<void> {\n await tx\n .update(steps)\n .set({\n status: 'pending',\n statusReason: null,\n error: null,\n version: sql`${steps.version} + 1`,\n currentAttempt: sql`${steps.currentAttempt} + 1`,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.jobExecutionId, params.jobExecutionId),\n gte(steps.position, params.fromPosition),\n ),\n );\n}\n\n// Count a single step's own attempts. Used to bound the restart cap on the\n// gating step's actual executions: `steps.current_attempt` can't be used for\n// the cap because a rewind also bumps it for downstream steps swept into the\n// rewind range (which would inflate a later gate's cap in a multi-gate job).\nexport async function countStepAttempts(stepId: string, tx: Tx): Promise<number> {\n const rows = await tx\n .select({total: count()})\n .from(stepAttempts)\n .where(eq(stepAttempts.stepId, stepId));\n return Number(rows[0]?.total ?? 0);\n}\n\nexport async function getStepAttempts(jobId: string): Promise<StepAttempt[]> {\n const rows = await db()\n .select({stepAttempt: stepAttempts})\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(eq(jobExecutions.jobId, jobId))\n .orderBy(asc(stepAttempts.executionOrder));\n return rows.map((row) => toStepAttempt(row.stepAttempt));\n}\n\n/**\n * Lists only the step attempt ids of a job, without materializing the full\n * attempt entities. The session release sweep only needs the ids to release\n * claims, so this keeps the per-job-terminated query off a full-row projection.\n */\nexport async function listStepAttemptIdsByJobId(jobId: string): Promise<string[]> {\n const rows = await db()\n .select({id: stepAttempts.id})\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(eq(jobExecutions.jobId, jobId));\n return rows.map((row) => row.id);\n}\n\nexport async function getStepAttemptsByJobIds(jobIds: string[]): Promise<StepAttempt[]> {\n if (jobIds.length === 0) return [];\n const rows = await db()\n .select({stepAttempt: stepAttempts, jobId: jobExecutions.jobId})\n .from(stepAttempts)\n .innerJoin(steps, eq(stepAttempts.stepId, steps.id))\n .innerJoin(jobExecutions, eq(steps.jobExecutionId, jobExecutions.id))\n .where(inArray(jobExecutions.jobId, jobIds))\n .orderBy(asc(jobExecutions.jobId), asc(stepAttempts.executionOrder));\n return rows.map((row) => toStepAttempt(row.stepAttempt));\n}\n\nexport interface ApplyStepResultParams {\n jobExecutionId: string;\n stepId: string;\n status: 'succeeded' | 'failed';\n error: Record<string, unknown> | null;\n}\n\nexport async function applyStepResult(params: ApplyStepResultParams, tx: Tx): Promise<void> {\n await tx\n .update(steps)\n .set({\n status: params.status,\n statusReason: null,\n error: params.error ?? null,\n updatedAt: new Date(),\n })\n .where(\n and(\n eq(steps.id, params.stepId),\n eq(steps.jobExecutionId, params.jobExecutionId),\n NON_TERMINAL_STEP_STATUS_FILTER,\n ),\n );\n}\n\nexport interface CancelRemainingStepsParams {\n jobExecutionId: string;\n}\n\nexport async function cancelRemainingSteps(\n params: CancelRemainingStepsParams,\n tx: Tx,\n): Promise<void> {\n await bulkUpdateStepStatuses({jobExecutionId: params.jobExecutionId, status: 'cancelled'}, tx);\n}\n"],"names":["and","asc","count","desc","eq","gte","inArray","sql","deriveCompletion","isTerminal","db","jobExecutions","jobs","stepAttempts","toStepAttempt","steps","toStep","workflowRunAttempts","workflowRuns","writeJobStepsSettledOutbox","writeStepAttemptTerminatedOutbox","NON_TERMINAL_STEP_STATUS_FILTER","getStepByIdForJobExecution","params","rows","select","from","where","id","stepId","jobExecutionId","limit","row","undefined","getStepById","getJobExecutionFailureOrigin","stepName","name","stepStatus","status","stepAttempt","currentAttempt","stepError","error","attemptStatus","attemptError","attemptExitCode","exitCode","innerJoin","leftJoin","attempt","orderBy","statusReason","position","getStepAttemptDetail","workflowRunId","workflowRunAttemptId","step","jobId","getStepsByJobId","map","getStepsByJobExecutionId","bulkUpdateStepStatuses","tx","transaction","update","set","updatedAt","Date","finalizedAttempts","logOutcome","finishedAt","returning","length","stepAttemptId","getStepsByJobExecutionIdForUpdate","for","getStepAttemptsByJobExecutionId","executionOrder","markStepRunning","evaluationTrace","insertRunningStepAttempt","config","dispatchStepWithCompletedConfig","markStepSkipped","settleJobFailed","applyStepResult","failedStepId","after","every","nextExecutionOrder","insert","values","onConflictDoNothing","target","finishStepAttempt","output","response","gateResult","restartFeedback","rewindStepsToPending","version","fromPosition","countStepAttempts","total","Number","getStepAttempts","listStepAttemptIdsByJobId","getStepAttemptsByJobIds","jobIds","cancelRemainingSteps"],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ export type { CancelWorkflowRunParams, CreateRerunWorkflowRunParams, CreateWorkf
|
|
|
9
9
|
export { cancelWorkflowRun, createRerunWorkflowRun, createWorkflowRun, failWorkflowRunAsTimedOut, loadReferencedVariables, updateWorkflowRunStatus, } from './workflow-runs/runs.js';
|
|
10
10
|
export { getWorkflowContextForJob } from './workflow-runs/shared.js';
|
|
11
11
|
export type { ApplyStepResultParams, BulkUpdateStepStatusesParams, CancelRemainingStepsParams, DispatchStepWithCompletedConfigParams, FinishStepAttemptParams, InsertRunningStepAttemptParams, JobExecutionFailureOrigin, MarkStepRunningParams, MarkStepSkippedParams, RewindStepsToPendingParams, StepAttemptDetail, } from './workflow-runs/steps.js';
|
|
12
|
-
export { applyStepResult, bulkUpdateStepStatuses, cancelRemainingSteps, countStepAttempts, dispatchStepWithCompletedConfig, finishStepAttempt, getJobExecutionFailureOrigin, getStepAttemptDetail, getStepAttempts, getStepAttemptsByJobExecutionId, getStepAttemptsByJobIds, getStepById, getStepByIdForJobExecution, getStepsByJobExecutionId, getStepsByJobExecutionIdForUpdate, getStepsByJobId, insertRunningStepAttempt, markStepRunning, markStepSkipped, rewindStepsToPending, settleJobFailed, } from './workflow-runs/steps.js';
|
|
12
|
+
export { applyStepResult, bulkUpdateStepStatuses, cancelRemainingSteps, countStepAttempts, dispatchStepWithCompletedConfig, finishStepAttempt, getJobExecutionFailureOrigin, getStepAttemptDetail, getStepAttempts, getStepAttemptsByJobExecutionId, getStepAttemptsByJobIds, getStepById, getStepByIdForJobExecution, getStepsByJobExecutionId, getStepsByJobExecutionIdForUpdate, getStepsByJobId, insertRunningStepAttempt, listStepAttemptIdsByJobId, markStepRunning, markStepSkipped, rewindStepsToPending, settleJobFailed, } from './workflow-runs/steps.js';
|
|
13
13
|
//# sourceMappingURL=workflow-runs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-runs.d.ts","sourceRoot":"","sources":["../../src/db/workflow-runs.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uCAAuC,EACvC,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,sCAAsC,EACtC,4BAA4B,EAC5B,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,QAAQ,EACR,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,iCAAiC,EACjC,eAAe,EACf,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,EAC/B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qCAAqC,EACrC,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,+BAA+B,EAC/B,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"workflow-runs.d.ts","sourceRoot":"","sources":["../../src/db/workflow-runs.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uCAAuC,EACvC,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,sCAAsC,EACtC,4BAA4B,EAC5B,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,QAAQ,EACR,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,iCAAiC,EACjC,eAAe,EACf,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,+BAA+B,EAC/B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qCAAqC,EACrC,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,+BAA+B,EAC/B,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,0BAA0B,CAAC"}
|
package/dist/db/workflow-runs.js
CHANGED
|
@@ -4,6 +4,6 @@ export { writeJobExecutionQueuedOutbox, writeJobExecutionTerminatedOutbox, write
|
|
|
4
4
|
export { buildWorkflowRunListConditions, getJobExecutionDetail, getLatestAttempt, getWorkflowJobExecutionDepth, getWorkflowRunAggregates, getWorkflowRunAttemptById, getWorkflowRunByAttemptId, getWorkflowRunById, getWorkflowRunDetail, listRunAttempts, listWorkflowRunJobSummaries, listWorkflowRuns, listWorkflowRunsByProject } from './workflow-runs/queries.js';
|
|
5
5
|
export { cancelWorkflowRun, createRerunWorkflowRun, createWorkflowRun, failWorkflowRunAsTimedOut, loadReferencedVariables, updateWorkflowRunStatus } from './workflow-runs/runs.js';
|
|
6
6
|
export { getWorkflowContextForJob } from './workflow-runs/shared.js';
|
|
7
|
-
export { applyStepResult, bulkUpdateStepStatuses, cancelRemainingSteps, countStepAttempts, dispatchStepWithCompletedConfig, finishStepAttempt, getJobExecutionFailureOrigin, getStepAttemptDetail, getStepAttempts, getStepAttemptsByJobExecutionId, getStepAttemptsByJobIds, getStepById, getStepByIdForJobExecution, getStepsByJobExecutionId, getStepsByJobExecutionIdForUpdate, getStepsByJobId, insertRunningStepAttempt, markStepRunning, markStepSkipped, rewindStepsToPending, settleJobFailed } from './workflow-runs/steps.js';
|
|
7
|
+
export { applyStepResult, bulkUpdateStepStatuses, cancelRemainingSteps, countStepAttempts, dispatchStepWithCompletedConfig, finishStepAttempt, getJobExecutionFailureOrigin, getStepAttemptDetail, getStepAttempts, getStepAttemptsByJobExecutionId, getStepAttemptsByJobIds, getStepById, getStepByIdForJobExecution, getStepsByJobExecutionId, getStepsByJobExecutionIdForUpdate, getStepsByJobId, insertRunningStepAttempt, listStepAttemptIdsByJobId, markStepRunning, markStepSkipped, rewindStepsToPending, settleJobFailed } from './workflow-runs/steps.js';
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=workflow-runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/db/workflow-runs.ts"],"sourcesContent":["export type {\n UpdateJobExecutionStatusAtVersionParams,\n UpdateJobExecutionStatusParams,\n} from './workflow-runs/job-executions.js';\nexport {\n failJobExecutionAsTimedOut,\n getFirstJobExecutionByJobId,\n getJobExecutionById,\n getJobExecutionsByJobId,\n getJobExecutionsByWorkflowRunAttemptId,\n getLatestJobExecutionByJobId,\n queueJobExecution,\n recordJobExecutionStartedAt,\n resolveJobExecutionAfterLeaseExpiry,\n updateJobExecutionStatus,\n} from './workflow-runs/job-executions.js';\nexport type {\n EvaluateJobActivationsParams,\n EvaluateJobSuccessResult,\n JobActivationDecision,\n JobScope,\n UpdateJobStatusAtVersionParams,\n UpdateJobStatusParams,\n} from './workflow-runs/jobs.js';\nexport {\n evaluateJobActivations,\n evaluateJobSuccess,\n getDirectDependencyJobContexts,\n getJobById,\n getJobScope,\n getJobsByWorkflowRunAttemptId,\n getJobsByWorkflowRunId,\n resolveJobStatusFromJobExecutions,\n updateJobStatus,\n updateJobStatusAtVersion,\n} from './workflow-runs/jobs.js';\nexport {\n writeJobExecutionQueuedOutbox,\n writeJobExecutionTerminatedOutbox,\n writeJobStepsSettledOutbox,\n writeStepAttemptTerminatedOutbox,\n writeStepRestartEnqueuedOutbox,\n} from './workflow-runs/outbox.js';\nexport type {\n ListWorkflowRunsParams,\n ListWorkflowRunsResult,\n WorkflowJobExecutionDepth,\n WorkflowJobExecutionDepthParams,\n WorkflowRunAggregates,\n WorkflowRunCursor,\n WorkflowRunFilters,\n WorkflowRunJobRawStatusCount,\n WorkflowRunJobStatusCount,\n WorkflowRunJobSummary,\n WorkflowRunJobSummaryTarget,\n WorkflowRunJobsSummary,\n} from './workflow-runs/queries.js';\nexport {\n buildWorkflowRunListConditions,\n getJobExecutionDetail,\n getLatestAttempt,\n getWorkflowJobExecutionDepth,\n getWorkflowRunAggregates,\n getWorkflowRunAttemptById,\n getWorkflowRunByAttemptId,\n getWorkflowRunById,\n getWorkflowRunDetail,\n listRunAttempts,\n listWorkflowRunJobSummaries,\n listWorkflowRuns,\n listWorkflowRunsByProject,\n} from './workflow-runs/queries.js';\nexport type {\n CancelWorkflowRunParams,\n CreateRerunWorkflowRunParams,\n CreateWorkflowRunParams,\n FailWorkflowRunAsTimedOutParams,\n UpdateWorkflowRunStatusParams,\n} from './workflow-runs/runs.js';\nexport {\n cancelWorkflowRun,\n createRerunWorkflowRun,\n createWorkflowRun,\n failWorkflowRunAsTimedOut,\n loadReferencedVariables,\n updateWorkflowRunStatus,\n} from './workflow-runs/runs.js';\nexport {getWorkflowContextForJob} from './workflow-runs/shared.js';\nexport type {\n ApplyStepResultParams,\n BulkUpdateStepStatusesParams,\n CancelRemainingStepsParams,\n DispatchStepWithCompletedConfigParams,\n FinishStepAttemptParams,\n InsertRunningStepAttemptParams,\n JobExecutionFailureOrigin,\n MarkStepRunningParams,\n MarkStepSkippedParams,\n RewindStepsToPendingParams,\n StepAttemptDetail,\n} from './workflow-runs/steps.js';\nexport {\n applyStepResult,\n bulkUpdateStepStatuses,\n cancelRemainingSteps,\n countStepAttempts,\n dispatchStepWithCompletedConfig,\n finishStepAttempt,\n getJobExecutionFailureOrigin,\n getStepAttemptDetail,\n getStepAttempts,\n getStepAttemptsByJobExecutionId,\n getStepAttemptsByJobIds,\n getStepById,\n getStepByIdForJobExecution,\n getStepsByJobExecutionId,\n getStepsByJobExecutionIdForUpdate,\n getStepsByJobId,\n insertRunningStepAttempt,\n markStepRunning,\n markStepSkipped,\n rewindStepsToPending,\n settleJobFailed,\n} from './workflow-runs/steps.js';\n"],"names":["failJobExecutionAsTimedOut","getFirstJobExecutionByJobId","getJobExecutionById","getJobExecutionsByJobId","getJobExecutionsByWorkflowRunAttemptId","getLatestJobExecutionByJobId","queueJobExecution","recordJobExecutionStartedAt","resolveJobExecutionAfterLeaseExpiry","updateJobExecutionStatus","evaluateJobActivations","evaluateJobSuccess","getDirectDependencyJobContexts","getJobById","getJobScope","getJobsByWorkflowRunAttemptId","getJobsByWorkflowRunId","resolveJobStatusFromJobExecutions","updateJobStatus","updateJobStatusAtVersion","writeJobExecutionQueuedOutbox","writeJobExecutionTerminatedOutbox","writeJobStepsSettledOutbox","writeStepAttemptTerminatedOutbox","writeStepRestartEnqueuedOutbox","buildWorkflowRunListConditions","getJobExecutionDetail","getLatestAttempt","getWorkflowJobExecutionDepth","getWorkflowRunAggregates","getWorkflowRunAttemptById","getWorkflowRunByAttemptId","getWorkflowRunById","getWorkflowRunDetail","listRunAttempts","listWorkflowRunJobSummaries","listWorkflowRuns","listWorkflowRunsByProject","cancelWorkflowRun","createRerunWorkflowRun","createWorkflowRun","failWorkflowRunAsTimedOut","loadReferencedVariables","updateWorkflowRunStatus","getWorkflowContextForJob","applyStepResult","bulkUpdateStepStatuses","cancelRemainingSteps","countStepAttempts","dispatchStepWithCompletedConfig","finishStepAttempt","getJobExecutionFailureOrigin","getStepAttemptDetail","getStepAttempts","getStepAttemptsByJobExecutionId","getStepAttemptsByJobIds","getStepById","getStepByIdForJobExecution","getStepsByJobExecutionId","getStepsByJobExecutionIdForUpdate","getStepsByJobId","insertRunningStepAttempt","markStepRunning","markStepSkipped","rewindStepsToPending","settleJobFailed"],"mappings":"AAIA,SACEA,0BAA0B,EAC1BC,2BAA2B,EAC3BC,mBAAmB,EACnBC,uBAAuB,EACvBC,sCAAsC,EACtCC,4BAA4B,EAC5BC,iBAAiB,EACjBC,2BAA2B,EAC3BC,mCAAmC,EACnCC,wBAAwB,QACnB,oCAAoC;AAS3C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,8BAA8B,EAC9BC,UAAU,EACVC,WAAW,EACXC,6BAA6B,EAC7BC,sBAAsB,EACtBC,iCAAiC,EACjCC,eAAe,EACfC,wBAAwB,QACnB,0BAA0B;AACjC,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,QACzB,4BAA4B;AAenC,SACEC,8BAA8B,EAC9BC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,EAC5BC,wBAAwB,EACxBC,yBAAyB,EACzBC,yBAAyB,EACzBC,kBAAkB,EAClBC,oBAAoB,EACpBC,eAAe,EACfC,2BAA2B,EAC3BC,gBAAgB,EAChBC,yBAAyB,QACpB,6BAA6B;AAQpC,SACEC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,EACjBC,yBAAyB,EACzBC,uBAAuB,EACvBC,uBAAuB,QAClB,0BAA0B;AACjC,SAAQC,wBAAwB,QAAO,4BAA4B;AAcnE,SACEC,eAAe,EACfC,sBAAsB,EACtBC,oBAAoB,EACpBC,iBAAiB,EACjBC,+BAA+B,EAC/BC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,eAAe,EACfC,+BAA+B,EAC/BC,uBAAuB,EACvBC,WAAW,EACXC,0BAA0B,EAC1BC,wBAAwB,EACxBC,iCAAiC,EACjCC,eAAe,EACfC,wBAAwB,EACxBC,eAAe,EACfC,eAAe,EACfC,oBAAoB,EACpBC,eAAe,QACV,2BAA2B"}
|
|
1
|
+
{"version":3,"sources":["../../src/db/workflow-runs.ts"],"sourcesContent":["export type {\n UpdateJobExecutionStatusAtVersionParams,\n UpdateJobExecutionStatusParams,\n} from './workflow-runs/job-executions.js';\nexport {\n failJobExecutionAsTimedOut,\n getFirstJobExecutionByJobId,\n getJobExecutionById,\n getJobExecutionsByJobId,\n getJobExecutionsByWorkflowRunAttemptId,\n getLatestJobExecutionByJobId,\n queueJobExecution,\n recordJobExecutionStartedAt,\n resolveJobExecutionAfterLeaseExpiry,\n updateJobExecutionStatus,\n} from './workflow-runs/job-executions.js';\nexport type {\n EvaluateJobActivationsParams,\n EvaluateJobSuccessResult,\n JobActivationDecision,\n JobScope,\n UpdateJobStatusAtVersionParams,\n UpdateJobStatusParams,\n} from './workflow-runs/jobs.js';\nexport {\n evaluateJobActivations,\n evaluateJobSuccess,\n getDirectDependencyJobContexts,\n getJobById,\n getJobScope,\n getJobsByWorkflowRunAttemptId,\n getJobsByWorkflowRunId,\n resolveJobStatusFromJobExecutions,\n updateJobStatus,\n updateJobStatusAtVersion,\n} from './workflow-runs/jobs.js';\nexport {\n writeJobExecutionQueuedOutbox,\n writeJobExecutionTerminatedOutbox,\n writeJobStepsSettledOutbox,\n writeStepAttemptTerminatedOutbox,\n writeStepRestartEnqueuedOutbox,\n} from './workflow-runs/outbox.js';\nexport type {\n ListWorkflowRunsParams,\n ListWorkflowRunsResult,\n WorkflowJobExecutionDepth,\n WorkflowJobExecutionDepthParams,\n WorkflowRunAggregates,\n WorkflowRunCursor,\n WorkflowRunFilters,\n WorkflowRunJobRawStatusCount,\n WorkflowRunJobStatusCount,\n WorkflowRunJobSummary,\n WorkflowRunJobSummaryTarget,\n WorkflowRunJobsSummary,\n} from './workflow-runs/queries.js';\nexport {\n buildWorkflowRunListConditions,\n getJobExecutionDetail,\n getLatestAttempt,\n getWorkflowJobExecutionDepth,\n getWorkflowRunAggregates,\n getWorkflowRunAttemptById,\n getWorkflowRunByAttemptId,\n getWorkflowRunById,\n getWorkflowRunDetail,\n listRunAttempts,\n listWorkflowRunJobSummaries,\n listWorkflowRuns,\n listWorkflowRunsByProject,\n} from './workflow-runs/queries.js';\nexport type {\n CancelWorkflowRunParams,\n CreateRerunWorkflowRunParams,\n CreateWorkflowRunParams,\n FailWorkflowRunAsTimedOutParams,\n UpdateWorkflowRunStatusParams,\n} from './workflow-runs/runs.js';\nexport {\n cancelWorkflowRun,\n createRerunWorkflowRun,\n createWorkflowRun,\n failWorkflowRunAsTimedOut,\n loadReferencedVariables,\n updateWorkflowRunStatus,\n} from './workflow-runs/runs.js';\nexport {getWorkflowContextForJob} from './workflow-runs/shared.js';\nexport type {\n ApplyStepResultParams,\n BulkUpdateStepStatusesParams,\n CancelRemainingStepsParams,\n DispatchStepWithCompletedConfigParams,\n FinishStepAttemptParams,\n InsertRunningStepAttemptParams,\n JobExecutionFailureOrigin,\n MarkStepRunningParams,\n MarkStepSkippedParams,\n RewindStepsToPendingParams,\n StepAttemptDetail,\n} from './workflow-runs/steps.js';\nexport {\n applyStepResult,\n bulkUpdateStepStatuses,\n cancelRemainingSteps,\n countStepAttempts,\n dispatchStepWithCompletedConfig,\n finishStepAttempt,\n getJobExecutionFailureOrigin,\n getStepAttemptDetail,\n getStepAttempts,\n getStepAttemptsByJobExecutionId,\n getStepAttemptsByJobIds,\n getStepById,\n getStepByIdForJobExecution,\n getStepsByJobExecutionId,\n getStepsByJobExecutionIdForUpdate,\n getStepsByJobId,\n insertRunningStepAttempt,\n listStepAttemptIdsByJobId,\n markStepRunning,\n markStepSkipped,\n rewindStepsToPending,\n settleJobFailed,\n} from './workflow-runs/steps.js';\n"],"names":["failJobExecutionAsTimedOut","getFirstJobExecutionByJobId","getJobExecutionById","getJobExecutionsByJobId","getJobExecutionsByWorkflowRunAttemptId","getLatestJobExecutionByJobId","queueJobExecution","recordJobExecutionStartedAt","resolveJobExecutionAfterLeaseExpiry","updateJobExecutionStatus","evaluateJobActivations","evaluateJobSuccess","getDirectDependencyJobContexts","getJobById","getJobScope","getJobsByWorkflowRunAttemptId","getJobsByWorkflowRunId","resolveJobStatusFromJobExecutions","updateJobStatus","updateJobStatusAtVersion","writeJobExecutionQueuedOutbox","writeJobExecutionTerminatedOutbox","writeJobStepsSettledOutbox","writeStepAttemptTerminatedOutbox","writeStepRestartEnqueuedOutbox","buildWorkflowRunListConditions","getJobExecutionDetail","getLatestAttempt","getWorkflowJobExecutionDepth","getWorkflowRunAggregates","getWorkflowRunAttemptById","getWorkflowRunByAttemptId","getWorkflowRunById","getWorkflowRunDetail","listRunAttempts","listWorkflowRunJobSummaries","listWorkflowRuns","listWorkflowRunsByProject","cancelWorkflowRun","createRerunWorkflowRun","createWorkflowRun","failWorkflowRunAsTimedOut","loadReferencedVariables","updateWorkflowRunStatus","getWorkflowContextForJob","applyStepResult","bulkUpdateStepStatuses","cancelRemainingSteps","countStepAttempts","dispatchStepWithCompletedConfig","finishStepAttempt","getJobExecutionFailureOrigin","getStepAttemptDetail","getStepAttempts","getStepAttemptsByJobExecutionId","getStepAttemptsByJobIds","getStepById","getStepByIdForJobExecution","getStepsByJobExecutionId","getStepsByJobExecutionIdForUpdate","getStepsByJobId","insertRunningStepAttempt","listStepAttemptIdsByJobId","markStepRunning","markStepSkipped","rewindStepsToPending","settleJobFailed"],"mappings":"AAIA,SACEA,0BAA0B,EAC1BC,2BAA2B,EAC3BC,mBAAmB,EACnBC,uBAAuB,EACvBC,sCAAsC,EACtCC,4BAA4B,EAC5BC,iBAAiB,EACjBC,2BAA2B,EAC3BC,mCAAmC,EACnCC,wBAAwB,QACnB,oCAAoC;AAS3C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,8BAA8B,EAC9BC,UAAU,EACVC,WAAW,EACXC,6BAA6B,EAC7BC,sBAAsB,EACtBC,iCAAiC,EACjCC,eAAe,EACfC,wBAAwB,QACnB,0BAA0B;AACjC,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,0BAA0B,EAC1BC,gCAAgC,EAChCC,8BAA8B,QACzB,4BAA4B;AAenC,SACEC,8BAA8B,EAC9BC,qBAAqB,EACrBC,gBAAgB,EAChBC,4BAA4B,EAC5BC,wBAAwB,EACxBC,yBAAyB,EACzBC,yBAAyB,EACzBC,kBAAkB,EAClBC,oBAAoB,EACpBC,eAAe,EACfC,2BAA2B,EAC3BC,gBAAgB,EAChBC,yBAAyB,QACpB,6BAA6B;AAQpC,SACEC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,EACjBC,yBAAyB,EACzBC,uBAAuB,EACvBC,uBAAuB,QAClB,0BAA0B;AACjC,SAAQC,wBAAwB,QAAO,4BAA4B;AAcnE,SACEC,eAAe,EACfC,sBAAsB,EACtBC,oBAAoB,EACpBC,iBAAiB,EACjBC,+BAA+B,EAC/BC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,eAAe,EACfC,+BAA+B,EAC/BC,uBAAuB,EACvBC,WAAW,EACXC,0BAA0B,EAC1BC,wBAAwB,EACxBC,iCAAiC,EACjCC,eAAe,EACfC,wBAAwB,EACxBC,yBAAyB,EACzBC,eAAe,EACfC,eAAe,EACfC,oBAAoB,EACpBC,eAAe,QACV,2BAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../../src/presentation/inter-module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../../src/presentation/inter-module.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,2CAA2C,CAAC;AAC5F,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAC,4BAA4B,EAAC,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAkC/B,wBAAgB,sCAAsC,CAAC,MAAM,EAAE;IAC7D,KAAK,EAAE,sBAAsB,CAAC;IAC9B,WAAW,EAAE,4BAA4B,CAAC;IAC1C,UAAU,EAAE,2BAA2B,CAAC;IACxC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;IACnE,OAAO,EAAE,wBAAwB,CAAC;IAClC,YAAY,EAAE,wBAAwB,CAAC;IACvC,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GAAG,uBAAuB,CAAC,OAAO,4BAA4B,CAAC,CAgN/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAWlF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D"}
|