@shipfox/api-workflows 13.0.0 → 13.1.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.
@@ -1,6 +1,6 @@
1
1
  $ shipfox-swc && shipfox-temporal-bundle dist/temporal/workflows/index.js
2
- Successfully compiled: 123 files with swc (608.14ms)
3
- 2026-08-14T18:57:06.620Z [INFO] asset workflow-bundle-4d88ac6c229f6c77759a.js 3.31 MiB [emitted] [immutable] (name: main)
2
+ Successfully compiled: 123 files with swc (957.89ms)
3
+ 2026-08-23T10:00:22.113Z [INFO] asset workflow-bundle-4d88ac6c229f6c77759a.js 3.31 MiB [emitted] [immutable] (name: main)
4
4
  orphan modules 33.5 KiB [orphan] 21 modules
5
5
  runtime modules 1.13 KiB 5 modules
6
6
  modules by path ../../../node_modules/.pnpm/ 970 KiB 196 modules
@@ -16,6 +16,6 @@ optional modules 30 bytes [optional]
16
16
  __temporal_custom_payload_converter (ignored) 15 bytes [optional] [built] [code generated]
17
17
  __temporal_custom_failure_converter (ignored) 15 bytes [optional] [built] [code generated]
18
18
  ../../shared/node/temporal/dist/workflow-error-interceptor.js 1.21 KiB [built] [code generated]
19
- webpack 5.107.2 compiled successfully in 5769 ms
20
- 2026-08-14T18:57:06.649Z [INFO] Workflow bundle created { size: '3.31MB' }
19
+ webpack 5.107.2 compiled successfully in 6768 ms
20
+ 2026-08-23T10:00:22.146Z [INFO] Workflow bundle created { size: '3.31MB' }
21
21
  /home/runner/work/shipfox/shipfox/libs/api/workflows/dist/temporal/workflows/index.js: 3469609 bytes
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @shipfox/api-workflows
2
2
 
3
+ ## 13.1.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 0d3c2e3: Updates @shipfox/client-agent, @shipfox/client-onboarding, and @shipfox/client-workflows to show
8
+ managed inference providers without exposing workspace credential setup, keep workflow examples
9
+ limited to supported models, and explain managed-provider failures in workflow runs.
10
+ - ca91dc3: Adds managed-provider runtime credential resolution and lease-scoped wire fields for pi and Claude harnesses.
11
+ - Updated dependencies [0d3c2e3]
12
+ - Updated dependencies [5c100d6]
13
+ - Updated dependencies [ca91dc3]
14
+ - Updated dependencies [67aab38]
15
+ - @shipfox/api-agent-dto@13.1.0
16
+ - @shipfox/api-workflows-dto@13.1.0
17
+
3
18
  ## 13.0.0
4
19
 
5
20
  ### Patch Changes
@@ -18,9 +18,17 @@ export declare class WorkspaceNotFoundError extends Error {
18
18
  readonly workspaceId: string;
19
19
  constructor(workspaceId: string);
20
20
  }
21
+ export interface AgentConfigUnresolvableErrorOptions {
22
+ readonly cause?: unknown;
23
+ readonly message?: string;
24
+ readonly code?: string;
25
+ readonly managedProviderId?: string;
26
+ }
21
27
  export declare class AgentConfigUnresolvableError extends Error {
22
28
  readonly definitionId: string;
23
- constructor(definitionId: string, options?: ErrorOptions | undefined);
29
+ readonly code?: string | undefined;
30
+ readonly managedProviderId?: string | undefined;
31
+ constructor(definitionId: string, options?: AgentConfigUnresolvableErrorOptions | undefined);
24
32
  }
25
33
  export declare class AgentIntegrationMaterializationError extends Error {
26
34
  constructor(message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,12 @@ export class WorkspaceNotFoundError extends Error {
30
30
  }
31
31
  export class AgentConfigUnresolvableError extends Error {
32
32
  constructor(definitionId, options){
33
- super(`Agent configuration cannot be resolved for definition ${definitionId}`, options), this.definitionId = definitionId;
33
+ super(options?.message ?? `Agent configuration cannot be resolved for definition ${definitionId}`, options?.cause === undefined ? undefined : {
34
+ cause: options.cause
35
+ }), this.definitionId = definitionId;
34
36
  this.name = 'AgentConfigUnresolvableError';
37
+ this.code = options?.code;
38
+ this.managedProviderId = options?.managedProviderId;
35
39
  }
36
40
  }
37
41
  export class AgentIntegrationMaterializationError extends Error {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/errors.ts"],"sourcesContent":["import type {JobStatus} from './entities/job.js';\nimport type {WorkflowRunStatus} from './entities/workflow-run.js';\n\nexport class DefinitionNotFoundError extends Error {\n constructor(definitionId: string) {\n super(`Definition not found: ${definitionId}`);\n this.name = 'DefinitionNotFoundError';\n }\n}\n\nexport class ProjectMismatchError extends Error {\n constructor(definitionProjectId: string, requestProjectId: string) {\n super(\n `Definition belongs to project ${definitionProjectId}, but request targets project ${requestProjectId}`,\n );\n this.name = 'ProjectMismatchError';\n }\n}\n\nexport class WorkspaceSuspendedError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace is suspended: ${workspaceId}`);\n this.name = 'WorkspaceSuspendedError';\n }\n}\n\nexport class WorkspaceDeletedError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace is deleted: ${workspaceId}`);\n this.name = 'WorkspaceDeletedError';\n }\n}\n\nexport class WorkspaceNotFoundError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace not found: ${workspaceId}`);\n this.name = 'WorkspaceNotFoundError';\n }\n}\n\nexport class AgentConfigUnresolvableError extends Error {\n constructor(\n readonly definitionId: string,\n options?: ErrorOptions | undefined,\n ) {\n super(`Agent configuration cannot be resolved for definition ${definitionId}`, options);\n this.name = 'AgentConfigUnresolvableError';\n }\n}\n\nexport class AgentIntegrationMaterializationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AgentIntegrationMaterializationError';\n }\n}\n\nexport type InterpolationUnresolvableField =\n | 'run'\n | 'env'\n | 'agent.prompt'\n | 'agent.model'\n | 'agent.provider'\n | 'agent.thinking'\n | 'job.runner'\n | 'job.outputs'\n | 'job.execution_name'\n | 'workflow.run_name'\n | 'step.name'\n | 'step.working_directory'\n | 'step.feedback'\n | 'checkout.project'\n | 'checkout.connection'\n | 'checkout.repository'\n | 'checkout.ref'\n | 'checkout.path';\n\nexport class InterpolationUnresolvableError extends Error {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n\n constructor(\n readonly definitionId: string,\n params: {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n readonly cause?: unknown;\n },\n ) {\n super(interpolationUnresolvableMessage(definitionId, params), {cause: params.cause});\n this.name = 'InterpolationUnresolvableError';\n this.field = params.field;\n this.source = params.source;\n if (params.envKey !== undefined) this.envKey = params.envKey;\n }\n}\n\nfunction interpolationUnresolvableMessage(\n definitionId: string,\n params: {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n },\n): string {\n const envSuffix = params.envKey === undefined ? '' : ` (${params.envKey})`;\n return `Workflow interpolation cannot be resolved for definition ${definitionId}: ${params.field}${envSuffix} uses \\`${params.source}\\`. Use has(x) ? x : '' for optional references.`;\n}\n\n/**\n * True when a `runWorkflow` failure can never succeed on retry: the definition is gone or\n * the subscription points at the wrong project. Callers (e.g. the trigger dispatcher) use this\n * to skip a permanently-broken target instead of retrying it forever. Every other failure is\n * treated as transient so at-least-once delivery can converge.\n */\nexport function isPermanentRunWorkflowError(error: unknown): boolean {\n return (\n error instanceof DefinitionNotFoundError ||\n error instanceof ProjectMismatchError ||\n error instanceof AgentConfigUnresolvableError ||\n error instanceof AgentIntegrationMaterializationError ||\n error instanceof InterpolationUnresolvableError ||\n error instanceof InvalidJobRunnerLabelsError\n );\n}\n\nexport class JobNotFoundError extends Error {\n constructor(jobId: string) {\n super(`Job not found or has no steps: ${jobId}`);\n this.name = 'JobNotFoundError';\n }\n}\n\nexport class InvalidJobRunnerLabelsError extends Error {\n constructor(\n readonly labels: readonly string[],\n readonly requestedLabels: readonly string[] = labels,\n ) {\n const requestedSuffix =\n requestedLabels.join(', ') === labels.join(', ')\n ? ''\n : ` (requested: ${requestedLabels.join(', ')})`;\n super(`Job runner labels are invalid: ${labels.join(', ')}${requestedSuffix}`);\n this.name = 'InvalidJobRunnerLabelsError';\n }\n}\n\nexport class JobOutputTooLargeError extends Error {\n readonly overshootBytes: number;\n\n constructor(\n readonly outputKey: string,\n readonly limitBytes: number,\n readonly measuredBytes: number,\n readonly scope: 'value' | 'total',\n ) {\n const overshootBytes = measuredBytes - limitBytes;\n super(\n scope === 'total'\n ? `Job outputs exceed the total size limit of ${limitBytes} bytes at \"${outputKey}\" ` +\n `(measured ${measuredBytes} bytes; overshoot ${overshootBytes} bytes).`\n : `Job output \"${outputKey}\" exceeds the per-value size limit of ${limitBytes} bytes ` +\n `(measured ${measuredBytes} bytes; overshoot ${overshootBytes} bytes).`,\n );\n this.name = 'JobOutputTooLargeError';\n this.overshootBytes = overshootBytes;\n }\n}\n\nexport class JobOutputTooManyEntriesError extends Error {\n constructor(\n readonly entryCount: number,\n readonly limitEntries: number,\n ) {\n super(`Job outputs cannot define more than ${limitEntries} entries (found ${entryCount})`);\n this.name = 'JobOutputTooManyEntriesError';\n }\n}\n\nexport class JobOutputNotJsonSafeError extends Error {\n constructor(\n readonly outputKey: string,\n readonly reason: string,\n ) {\n super(`Job output \"${outputKey}\" cannot be persisted as JSON: ${reason}`);\n this.name = 'JobOutputNotJsonSafeError';\n }\n}\n\n// The job named by a lease is terminal, so it must not exchange its lease for\n// fresh checkout credentials. Server state is the final gate, not the token.\nexport class JobNotActiveError extends Error {\n constructor(\n readonly jobId: string,\n readonly status: JobStatus,\n ) {\n super(`Job ${jobId} is ${status} and cannot mint checkout credentials`);\n this.name = 'JobNotActiveError';\n }\n}\n\nexport class WorkflowRunNotFoundError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run not found: ${workflowRunId}`);\n this.name = 'WorkflowRunNotFoundError';\n }\n}\n\nexport class WorkflowRunNotCancellableError extends Error {\n constructor(\n readonly workflowRunId: string,\n readonly status: WorkflowRunStatus,\n ) {\n super(`Workflow run ${workflowRunId} is ${status} and cannot be cancelled`);\n this.name = 'WorkflowRunNotCancellableError';\n }\n}\n\nexport class SourceRunNotFoundError extends Error {\n constructor(workflowRunId: string) {\n super(`Source workflow run not found: ${workflowRunId}`);\n this.name = 'SourceRunNotFoundError';\n }\n}\n\nexport class RunNotTerminalError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run is not terminal: ${workflowRunId}`);\n this.name = 'RunNotTerminalError';\n }\n}\n\nexport class NoFailedJobsError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run has no failed or cancelled jobs to re-run: ${workflowRunId}`);\n this.name = 'NoFailedJobsError';\n }\n}\n\n// The checkout target cannot be resolved, so there is nothing to check out.\nexport class CheckoutIntentUnresolvedError extends Error {\n constructor(target: {kind: 'project' | 'connection'; value: string}) {\n super(`Checkout intent unresolved: ${target.kind} ${target.value} not found`);\n this.name = 'CheckoutIntentUnresolvedError';\n }\n}\n\nexport class CheckoutConfigInvalidError extends Error {\n constructor(readonly stepId: string) {\n super(`Checkout config is invalid for step ${stepId}`);\n this.name = 'CheckoutConfigInvalidError';\n }\n}\n\nexport class StepNotFoundError extends Error {\n constructor(stepId: string, jobId: string) {\n super(`Step ${stepId} not found in job ${jobId}`);\n this.name = 'StepNotFoundError';\n }\n}\n\nexport class StepNotRunningError extends Error {\n constructor(stepId: string, jobId: string) {\n super(`Step ${stepId} in job ${jobId} is not running and cannot accept a result`);\n this.name = 'StepNotRunningError';\n }\n}\n\n// A report whose attempt is ahead of the step's current attempt. The host\n// allocates attempt numbers, so a runner can never report one it was not\n// dispatched: this is a protocol error, not an idempotent no-op.\nexport class StepAttemptAheadError extends Error {\n constructor(\n readonly stepId: string,\n readonly jobId: string,\n readonly reportedAttempt: number,\n readonly currentAttempt: number,\n ) {\n super(\n `Step ${stepId} in job ${jobId} reported attempt ${reportedAttempt} ahead of current attempt ${currentAttempt}`,\n );\n this.name = 'StepAttemptAheadError';\n }\n}\n"],"names":["DefinitionNotFoundError","Error","definitionId","name","ProjectMismatchError","definitionProjectId","requestProjectId","WorkspaceSuspendedError","workspaceId","WorkspaceDeletedError","WorkspaceNotFoundError","AgentConfigUnresolvableError","options","AgentIntegrationMaterializationError","message","InterpolationUnresolvableError","params","interpolationUnresolvableMessage","cause","field","source","envKey","undefined","envSuffix","isPermanentRunWorkflowError","error","InvalidJobRunnerLabelsError","JobNotFoundError","jobId","labels","requestedLabels","requestedSuffix","join","JobOutputTooLargeError","outputKey","limitBytes","measuredBytes","scope","overshootBytes","JobOutputTooManyEntriesError","entryCount","limitEntries","JobOutputNotJsonSafeError","reason","JobNotActiveError","status","WorkflowRunNotFoundError","workflowRunId","WorkflowRunNotCancellableError","SourceRunNotFoundError","RunNotTerminalError","NoFailedJobsError","CheckoutIntentUnresolvedError","target","kind","value","CheckoutConfigInvalidError","stepId","StepNotFoundError","StepNotRunningError","StepAttemptAheadError","reportedAttempt","currentAttempt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/core/errors.ts"],"sourcesContent":["import type {JobStatus} from './entities/job.js';\nimport type {WorkflowRunStatus} from './entities/workflow-run.js';\n\nexport class DefinitionNotFoundError extends Error {\n constructor(definitionId: string) {\n super(`Definition not found: ${definitionId}`);\n this.name = 'DefinitionNotFoundError';\n }\n}\n\nexport class ProjectMismatchError extends Error {\n constructor(definitionProjectId: string, requestProjectId: string) {\n super(\n `Definition belongs to project ${definitionProjectId}, but request targets project ${requestProjectId}`,\n );\n this.name = 'ProjectMismatchError';\n }\n}\n\nexport class WorkspaceSuspendedError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace is suspended: ${workspaceId}`);\n this.name = 'WorkspaceSuspendedError';\n }\n}\n\nexport class WorkspaceDeletedError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace is deleted: ${workspaceId}`);\n this.name = 'WorkspaceDeletedError';\n }\n}\n\nexport class WorkspaceNotFoundError extends Error {\n constructor(readonly workspaceId: string) {\n super(`Workspace not found: ${workspaceId}`);\n this.name = 'WorkspaceNotFoundError';\n }\n}\n\nexport interface AgentConfigUnresolvableErrorOptions {\n readonly cause?: unknown;\n readonly message?: string;\n readonly code?: string;\n readonly managedProviderId?: string;\n}\n\nexport class AgentConfigUnresolvableError extends Error {\n readonly code?: string | undefined;\n readonly managedProviderId?: string | undefined;\n\n constructor(\n readonly definitionId: string,\n options?: AgentConfigUnresolvableErrorOptions | undefined,\n ) {\n super(\n options?.message ?? `Agent configuration cannot be resolved for definition ${definitionId}`,\n options?.cause === undefined ? undefined : {cause: options.cause},\n );\n this.name = 'AgentConfigUnresolvableError';\n this.code = options?.code;\n this.managedProviderId = options?.managedProviderId;\n }\n}\n\nexport class AgentIntegrationMaterializationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AgentIntegrationMaterializationError';\n }\n}\n\nexport type InterpolationUnresolvableField =\n | 'run'\n | 'env'\n | 'agent.prompt'\n | 'agent.model'\n | 'agent.provider'\n | 'agent.thinking'\n | 'job.runner'\n | 'job.outputs'\n | 'job.execution_name'\n | 'workflow.run_name'\n | 'step.name'\n | 'step.working_directory'\n | 'step.feedback'\n | 'checkout.project'\n | 'checkout.connection'\n | 'checkout.repository'\n | 'checkout.ref'\n | 'checkout.path';\n\nexport class InterpolationUnresolvableError extends Error {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n\n constructor(\n readonly definitionId: string,\n params: {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n readonly cause?: unknown;\n },\n ) {\n super(interpolationUnresolvableMessage(definitionId, params), {cause: params.cause});\n this.name = 'InterpolationUnresolvableError';\n this.field = params.field;\n this.source = params.source;\n if (params.envKey !== undefined) this.envKey = params.envKey;\n }\n}\n\nfunction interpolationUnresolvableMessage(\n definitionId: string,\n params: {\n readonly field: InterpolationUnresolvableField;\n readonly source: string;\n readonly envKey?: string;\n },\n): string {\n const envSuffix = params.envKey === undefined ? '' : ` (${params.envKey})`;\n return `Workflow interpolation cannot be resolved for definition ${definitionId}: ${params.field}${envSuffix} uses \\`${params.source}\\`. Use has(x) ? x : '' for optional references.`;\n}\n\n/**\n * True when a `runWorkflow` failure can never succeed on retry: the definition is gone or\n * the subscription points at the wrong project. Callers (e.g. the trigger dispatcher) use this\n * to skip a permanently-broken target instead of retrying it forever. Every other failure is\n * treated as transient so at-least-once delivery can converge.\n */\nexport function isPermanentRunWorkflowError(error: unknown): boolean {\n return (\n error instanceof DefinitionNotFoundError ||\n error instanceof ProjectMismatchError ||\n error instanceof AgentConfigUnresolvableError ||\n error instanceof AgentIntegrationMaterializationError ||\n error instanceof InterpolationUnresolvableError ||\n error instanceof InvalidJobRunnerLabelsError\n );\n}\n\nexport class JobNotFoundError extends Error {\n constructor(jobId: string) {\n super(`Job not found or has no steps: ${jobId}`);\n this.name = 'JobNotFoundError';\n }\n}\n\nexport class InvalidJobRunnerLabelsError extends Error {\n constructor(\n readonly labels: readonly string[],\n readonly requestedLabels: readonly string[] = labels,\n ) {\n const requestedSuffix =\n requestedLabels.join(', ') === labels.join(', ')\n ? ''\n : ` (requested: ${requestedLabels.join(', ')})`;\n super(`Job runner labels are invalid: ${labels.join(', ')}${requestedSuffix}`);\n this.name = 'InvalidJobRunnerLabelsError';\n }\n}\n\nexport class JobOutputTooLargeError extends Error {\n readonly overshootBytes: number;\n\n constructor(\n readonly outputKey: string,\n readonly limitBytes: number,\n readonly measuredBytes: number,\n readonly scope: 'value' | 'total',\n ) {\n const overshootBytes = measuredBytes - limitBytes;\n super(\n scope === 'total'\n ? `Job outputs exceed the total size limit of ${limitBytes} bytes at \"${outputKey}\" ` +\n `(measured ${measuredBytes} bytes; overshoot ${overshootBytes} bytes).`\n : `Job output \"${outputKey}\" exceeds the per-value size limit of ${limitBytes} bytes ` +\n `(measured ${measuredBytes} bytes; overshoot ${overshootBytes} bytes).`,\n );\n this.name = 'JobOutputTooLargeError';\n this.overshootBytes = overshootBytes;\n }\n}\n\nexport class JobOutputTooManyEntriesError extends Error {\n constructor(\n readonly entryCount: number,\n readonly limitEntries: number,\n ) {\n super(`Job outputs cannot define more than ${limitEntries} entries (found ${entryCount})`);\n this.name = 'JobOutputTooManyEntriesError';\n }\n}\n\nexport class JobOutputNotJsonSafeError extends Error {\n constructor(\n readonly outputKey: string,\n readonly reason: string,\n ) {\n super(`Job output \"${outputKey}\" cannot be persisted as JSON: ${reason}`);\n this.name = 'JobOutputNotJsonSafeError';\n }\n}\n\n// The job named by a lease is terminal, so it must not exchange its lease for\n// fresh checkout credentials. Server state is the final gate, not the token.\nexport class JobNotActiveError extends Error {\n constructor(\n readonly jobId: string,\n readonly status: JobStatus,\n ) {\n super(`Job ${jobId} is ${status} and cannot mint checkout credentials`);\n this.name = 'JobNotActiveError';\n }\n}\n\nexport class WorkflowRunNotFoundError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run not found: ${workflowRunId}`);\n this.name = 'WorkflowRunNotFoundError';\n }\n}\n\nexport class WorkflowRunNotCancellableError extends Error {\n constructor(\n readonly workflowRunId: string,\n readonly status: WorkflowRunStatus,\n ) {\n super(`Workflow run ${workflowRunId} is ${status} and cannot be cancelled`);\n this.name = 'WorkflowRunNotCancellableError';\n }\n}\n\nexport class SourceRunNotFoundError extends Error {\n constructor(workflowRunId: string) {\n super(`Source workflow run not found: ${workflowRunId}`);\n this.name = 'SourceRunNotFoundError';\n }\n}\n\nexport class RunNotTerminalError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run is not terminal: ${workflowRunId}`);\n this.name = 'RunNotTerminalError';\n }\n}\n\nexport class NoFailedJobsError extends Error {\n constructor(workflowRunId: string) {\n super(`Workflow run has no failed or cancelled jobs to re-run: ${workflowRunId}`);\n this.name = 'NoFailedJobsError';\n }\n}\n\n// The checkout target cannot be resolved, so there is nothing to check out.\nexport class CheckoutIntentUnresolvedError extends Error {\n constructor(target: {kind: 'project' | 'connection'; value: string}) {\n super(`Checkout intent unresolved: ${target.kind} ${target.value} not found`);\n this.name = 'CheckoutIntentUnresolvedError';\n }\n}\n\nexport class CheckoutConfigInvalidError extends Error {\n constructor(readonly stepId: string) {\n super(`Checkout config is invalid for step ${stepId}`);\n this.name = 'CheckoutConfigInvalidError';\n }\n}\n\nexport class StepNotFoundError extends Error {\n constructor(stepId: string, jobId: string) {\n super(`Step ${stepId} not found in job ${jobId}`);\n this.name = 'StepNotFoundError';\n }\n}\n\nexport class StepNotRunningError extends Error {\n constructor(stepId: string, jobId: string) {\n super(`Step ${stepId} in job ${jobId} is not running and cannot accept a result`);\n this.name = 'StepNotRunningError';\n }\n}\n\n// A report whose attempt is ahead of the step's current attempt. The host\n// allocates attempt numbers, so a runner can never report one it was not\n// dispatched: this is a protocol error, not an idempotent no-op.\nexport class StepAttemptAheadError extends Error {\n constructor(\n readonly stepId: string,\n readonly jobId: string,\n readonly reportedAttempt: number,\n readonly currentAttempt: number,\n ) {\n super(\n `Step ${stepId} in job ${jobId} reported attempt ${reportedAttempt} ahead of current attempt ${currentAttempt}`,\n );\n this.name = 'StepAttemptAheadError';\n }\n}\n"],"names":["DefinitionNotFoundError","Error","definitionId","name","ProjectMismatchError","definitionProjectId","requestProjectId","WorkspaceSuspendedError","workspaceId","WorkspaceDeletedError","WorkspaceNotFoundError","AgentConfigUnresolvableError","options","message","cause","undefined","code","managedProviderId","AgentIntegrationMaterializationError","InterpolationUnresolvableError","params","interpolationUnresolvableMessage","field","source","envKey","envSuffix","isPermanentRunWorkflowError","error","InvalidJobRunnerLabelsError","JobNotFoundError","jobId","labels","requestedLabels","requestedSuffix","join","JobOutputTooLargeError","outputKey","limitBytes","measuredBytes","scope","overshootBytes","JobOutputTooManyEntriesError","entryCount","limitEntries","JobOutputNotJsonSafeError","reason","JobNotActiveError","status","WorkflowRunNotFoundError","workflowRunId","WorkflowRunNotCancellableError","SourceRunNotFoundError","RunNotTerminalError","NoFailedJobsError","CheckoutIntentUnresolvedError","target","kind","value","CheckoutConfigInvalidError","stepId","StepNotFoundError","StepNotRunningError","StepAttemptAheadError","reportedAttempt","currentAttempt"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"job-execution.d.ts","sourceRoot":"","sources":["../../src/core/job-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AA8B9D,OAAO,KAAK,EAAgC,IAAI,EAAmB,MAAM,oBAAoB,CAAC;AAY9F,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,4CAA4C,CAAC;AAcpD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAElF,KAAK,gBAAgB,GAAG,uBAAuB,CAAC;AAUhD,MAAM,MAAM,QAAQ,GAChB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,GAC/C;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAC,CAAC;AAkR7C,MAAM,WAAW,mCAAmC;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,sBAAsB,GAAG,SAAS,GACzC,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAGvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAa7D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAQlC;AA6GD,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GACZ,0BAA0B,CAU5B"}
1
+ {"version":3,"file":"job-execution.d.ts","sourceRoot":"","sources":["../../src/core/job-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AA8B9D,OAAO,KAAK,EAAgC,IAAI,EAAmB,MAAM,oBAAoB,CAAC;AAY9F,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,4CAA4C,CAAC;AAcpD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAElF,KAAK,gBAAgB,GAAG,uBAAuB,CAAC;AAUhD,MAAM,MAAM,QAAQ,GAChB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,GAC/C;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAC,CAAC;AAuR7C,MAAM,WAAW,mCAAmC;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,sBAAsB,GAAG,SAAS,GACzC,OAAO,CAAC,QAAQ,CAAC,CAOnB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAGvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAa7D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAQlC;AA6GD,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GACZ,0BAA0B,CAU5B"}
@@ -229,11 +229,21 @@ function dispatchConfigError(error) {
229
229
  source: error.source
230
230
  };
231
231
  }
232
+ const isManagedProviderPolicyFailure = error.code === 'workspace-providers-disabled' && error.managedProviderId !== undefined;
232
233
  return {
233
234
  message: error.message,
234
- reason: 'config_unresolvable',
235
+ reason: isManagedProviderPolicyFailure ? 'agent_config_invalid' : 'config_unresolvable',
235
236
  field: 'agent',
236
- source: 'agent'
237
+ source: 'agent',
238
+ ...error.code === undefined ? {} : {
239
+ code: error.code
240
+ },
241
+ ...error.managedProviderId === undefined ? {} : {
242
+ managedProviderId: error.managedProviderId
243
+ },
244
+ ...isManagedProviderPolicyFailure ? {
245
+ agentConfigIssue: 'provider_unsupported'
246
+ } : {}
237
247
  };
238
248
  }
239
249
  export function nextStepForLeasedJobExecution(params) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/job-execution.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {LogOutcomeDto} from '@shipfox/api-workflows-dto';\nimport {\n coerceStepOutputs,\n evaluatePlannedPredicateAtSite,\n type StepOutputCoercionError,\n} from '@shipfox/expression';\nimport {type Tx, withTransaction} from '#db/db.js';\nimport {\n countStepAttempts,\n dispatchStepWithCompletedConfig,\n finishStepAttempt,\n getDirectDependencyJobContexts,\n getJobExecutionById,\n getLatestJobExecutionByJobId,\n getStepAttemptsByJobExecutionId,\n getStepsByJobExecutionIdForUpdate,\n getWorkflowContextForJob,\n insertRunningStepAttempt,\n markStepRunning,\n markStepSkipped,\n settleJobFailed,\n writeJobStepsSettledOutbox,\n} from '#db/workflow-runs.js';\nimport {\n recordWorkflowJobExecutionStepsSettled,\n recordWorkflowStepRestartEnqueued,\n} from '#metrics/instance.js';\nimport {createAgentDefaultsResolver} from './agent-defaults.js';\nimport {defaultStepConditionTrace, explicitConditionTrace} from './condition-trace.js';\nimport type {JobExecution} from './entities/job-execution.js';\nimport type {PersistedEvaluationTraceEntry, Step, StepStatusReason} from './entities/step.js';\nimport {\n AgentConfigUnresolvableError,\n InterpolationUnresolvableError,\n JobNotFoundError,\n StepAttemptAheadError,\n StepNotFoundError,\n StepNotRunningError,\n} from './errors.js';\nimport {assembleStepDispatchContext} from './step-config/assemble-run-context.js';\nimport {completeStepDispatchConfig} from './step-config/complete-step-dispatch-config.js';\nimport type {WorkflowEvaluationContext} from './step-config/workflow-evaluation-context.js';\nimport {\n applyStepTransition,\n type StepProgressionMetrics,\n type StepProgressionOutcome,\n} from './step-transition/apply-step-transition.js';\nimport {\n decideStepTransition,\n deriveCompletion,\n isTerminal,\n type StepTransitionDecision,\n} from './step-transition/decide-step-transition.js';\nimport {\n evaluateGate,\n evaluateGateFeedback,\n gateResultPayload,\n readStepGate,\n} from './step-transition/evaluate-gate.js';\nimport {readStepOutputs} from './step-transition/read-step-outputs.js';\nimport type {RuntimeCompletionStatus} from './workflow-scheduling/runtime-dag.js';\n\ntype CompletionStatus = RuntimeCompletionStatus;\n\ntype ReportedStepResult = {\n readonly status: 'succeeded' | 'failed';\n readonly error: Record<string, unknown> | null;\n readonly output: Record<string, unknown> | null;\n readonly response: string | null;\n readonly exitCode: number | null;\n};\n\nexport type NextStep =\n | {kind: 'step'; step: Step; dispatched: boolean}\n | {kind: 'done'; status: CompletionStatus};\n\ntype DispatchConfigError = InterpolationUnresolvableError | AgentConfigUnresolvableError;\n\ninterface PendingStepDispatchParams {\n readonly jobExecutionId: string;\n readonly pending: Step;\n readonly jobExecution: JobExecution;\n readonly context: WorkflowEvaluationContext;\n readonly tx: Tx;\n readonly agent?: AgentInterModuleClient | undefined;\n}\n\ninterface ResolvePendingStepParams {\n readonly jobExecutionId: string;\n readonly steps: Step[];\n readonly jobExecution: JobExecution;\n readonly attempts: Awaited<ReturnType<typeof getStepAttemptsByJobExecutionId>>;\n readonly jobs: Awaited<ReturnType<typeof getDirectDependencyJobContexts>>;\n readonly vars: Record<string, string> | undefined;\n readonly tx: Tx;\n readonly agent?: AgentInterModuleClient | undefined;\n}\n\ntype StepConditionOutcome =\n | {kind: 'run'}\n | {\n kind: 'skip';\n statusReason: StepStatusReason;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[];\n };\n\nasync function nextStepForJobExecutionInTransaction(\n jobExecutionId: string,\n tx: Tx,\n agent?: AgentInterModuleClient | undefined,\n): Promise<NextStep> {\n const steps = await getStepsByJobExecutionIdForUpdate(jobExecutionId, tx);\n const hasNoSteps = steps.length === 0;\n\n // An unknown or step-less execution has nothing to progress; rejecting it stops\n // a bad id from deriving a vacuous 'succeeded' completion below.\n if (hasNoSteps) throw new JobNotFoundError(jobExecutionId);\n\n // Re-deliver the in-flight step rather than advancing, so a retried pull\n // cannot skip a step.\n const running = steps.find((step) => step.status === 'running');\n const hasRunningStep = running !== undefined;\n if (hasRunningStep) return {kind: 'step', step: running, dispatched: false};\n\n const firstPending = steps.find((step) => step.status === 'pending');\n const hasPendingStep = firstPending !== undefined;\n if (!hasPendingStep) return {kind: 'done', status: deriveCompletion(steps)};\n\n const jobExecution = await getJobExecutionById(jobExecutionId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobExecutionId);\n\n const attempts = await getStepAttemptsByJobExecutionId(jobExecutionId, tx);\n const jobs = await getDirectDependencyJobContexts(jobExecution.jobId, tx);\n const workflowContext = await getWorkflowContextForJob(jobExecution.jobId, tx);\n\n return resolveNextPendingStep({\n jobExecutionId,\n steps,\n jobExecution,\n attempts,\n jobs,\n vars: workflowContext.vars ?? undefined,\n tx,\n agent,\n });\n}\n\nasync function resolveNextPendingStep({\n jobExecutionId,\n steps,\n jobExecution,\n attempts,\n jobs,\n vars,\n tx,\n agent,\n}: ResolvePendingStepParams): Promise<NextStep> {\n let skippedAny = false;\n let currentSteps = steps;\n\n while (true) {\n const pending = currentSteps.find((step) => step.status === 'pending');\n if (pending === undefined) {\n const status = deriveCompletion(currentSteps);\n if (skippedAny) {\n await writeJobStepsSettledOutbox(tx, {\n jobId: jobExecution.jobId,\n jobExecutionId,\n status,\n });\n recordWorkflowJobExecutionStepsSettled(status);\n }\n return {kind: 'done', status};\n }\n\n const context = assembleStepDispatchContext({\n steps: currentSteps,\n attempts,\n targetStepId: pending.id,\n jobExecution,\n jobs,\n vars,\n });\n const condition = evaluateStepCondition({step: pending, context});\n if (condition.kind === 'run') {\n return dispatchPendingStep({jobExecutionId, pending, jobExecution, context, tx, agent});\n }\n\n const skipped = await markStepSkipped(\n {\n jobExecutionId,\n stepId: pending.id,\n statusReason: condition.statusReason,\n evaluationTrace: condition.evaluationTrace,\n },\n tx,\n );\n const skippedStep = skipped ?? {\n ...pending,\n status: 'skipped' as const,\n statusReason: condition.statusReason,\n evaluationTrace: condition.evaluationTrace,\n error: null,\n };\n currentSteps = currentSteps.map((step) => (step.id === pending.id ? skippedStep : step));\n skippedAny = true;\n }\n}\n\nasync function dispatchPendingStep(params: PendingStepDispatchParams): Promise<NextStep> {\n const hasConfigPlan = params.pending.configPlan !== null;\n if (hasConfigPlan) return dispatchPendingStepWithConfigPlan(params);\n\n const marked = await markStepRunning(\n {jobExecutionId: params.jobExecutionId, stepId: params.pending.id},\n params.tx,\n );\n return {kind: 'step', step: marked ?? params.pending, dispatched: true};\n}\n\nasync function dispatchPendingStepWithConfigPlan({\n jobExecutionId,\n pending,\n jobExecution,\n context,\n tx,\n agent,\n}: PendingStepDispatchParams): Promise<NextStep> {\n try {\n const completed = await completeStepDispatchConfig({\n step: pending,\n context,\n resolveAgentDefaults: agent ? createAgentDefaultsResolver(agent, null) : undefined,\n definitionId: jobExecution.jobId,\n });\n const marked = await dispatchStepWithCompletedConfig(\n {\n jobExecutionId,\n stepId: pending.id,\n config: completed.config,\n evaluationTrace: completed.trace,\n },\n tx,\n );\n return {kind: 'step', step: marked ?? {...pending, config: completed.config}, dispatched: true};\n } catch (error) {\n const configError = toDispatchConfigError(error);\n const isConfigError = configError !== null;\n if (!isConfigError) throw error;\n\n const failureError = dispatchConfigError(configError);\n await insertRunningStepAttempt(\n {\n jobExecutionId,\n stepId: pending.id,\n attempt: pending.currentAttempt,\n },\n tx,\n );\n await finishStepAttempt(\n {\n stepId: pending.id,\n attempt: pending.currentAttempt,\n status: 'failed',\n error: failureError,\n logOutcome: 'abandoned',\n },\n tx,\n );\n const status = await settleJobFailed(tx, {\n jobId: jobExecution.jobId,\n jobExecutionId,\n failedStepId: pending.id,\n error: failureError,\n });\n if (status) recordWorkflowJobExecutionStepsSettled(status);\n return status === null\n ? nextStepForJobExecutionInTransaction(jobExecutionId, tx, agent)\n : {kind: 'done', status};\n }\n}\n\nfunction evaluateStepCondition(params: {\n readonly step: Step;\n readonly context: WorkflowEvaluationContext;\n}): StepConditionOutcome {\n const condition = params.step.condition;\n if (condition === null) {\n const execution = params.context.values.execution as {failed?: unknown} | undefined;\n return execution?.failed === true\n ? {\n kind: 'skip',\n statusReason: 'default_gate_rejected',\n evaluationTrace: defaultStepConditionTrace(),\n }\n : {kind: 'run'};\n }\n\n const outcome = evaluatePlannedPredicateAtSite({\n expression: condition,\n field: 'step.if',\n site: params.context.site,\n context: params.context.values,\n });\n const evaluationTrace = explicitConditionTrace({\n expression: condition,\n field: 'step.if',\n route: outcome.route,\n site: params.context.site,\n value: outcome.value,\n degraded: outcome.evaluationFailed,\n });\n if (outcome.evaluationFailed) {\n return {kind: 'skip', statusReason: 'condition_errored', evaluationTrace};\n }\n return outcome.value\n ? {kind: 'run'}\n : {kind: 'skip', statusReason: 'condition_rejected', evaluationTrace};\n}\n\nfunction toDispatchConfigError(error: unknown): DispatchConfigError | null {\n const isInterpolationError = error instanceof InterpolationUnresolvableError;\n if (isInterpolationError) return error;\n\n const isAgentConfigError = error instanceof AgentConfigUnresolvableError;\n if (isAgentConfigError) return error;\n\n return null;\n}\n\nfunction dispatchConfigError(error: DispatchConfigError): Record<string, unknown> {\n if (error instanceof InterpolationUnresolvableError) {\n return {\n message: error.message,\n reason: 'config_unresolvable',\n field: error.envKey === undefined ? error.field : `${error.field}.${error.envKey}`,\n source: error.source,\n };\n }\n\n return {\n message: error.message,\n reason: 'config_unresolvable',\n field: 'agent',\n source: 'agent',\n };\n}\n\nexport interface NextStepForLeasedJobExecutionParams {\n jobExecutionId: string;\n agent?: AgentInterModuleClient | undefined;\n}\n\nexport function nextStepForLeasedJobExecution(\n params: NextStepForLeasedJobExecutionParams,\n): Promise<NextStep> {\n return withTransaction((tx) =>\n nextStepForJobExecutionInTransaction(params.jobExecutionId, tx, params.agent),\n );\n}\n\nexport function nextStepForJob(\n jobId: string,\n agent?: AgentInterModuleClient | undefined,\n): Promise<NextStep> {\n return withTransaction(async (tx) => {\n const jobExecution = await getLatestJobExecutionByJobId(jobId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobId);\n\n return nextStepForJobExecutionInTransaction(jobExecution.id, tx, agent);\n });\n}\n\nexport interface RecordStepResultParams {\n jobExecutionId: string;\n stepId: string;\n status: 'succeeded' | 'failed';\n error?: Record<string, unknown> | null;\n // Structured runner output feeds gate predicates and audit/history on the\n // attempt row; the current step projection keeps only status/error.\n output?: Record<string, unknown> | null;\n response?: string | null;\n exitCode?: number | null;\n // The attempt the runner was dispatched. Omitted = \"the step's current\n // attempt\" (back-compat for callers that don't track attempts yet).\n attempt?: number;\n logOutcome?: LogOutcomeDto;\n}\n\nexport type RecordStepResultOutcome = StepProgressionOutcome;\n\ninterface RecordStepResultTransactionResult {\n outcome: RecordStepResultOutcome;\n metrics: StepProgressionMetrics;\n}\n\nfunction outcomeFromSteps(steps: Step[]): RecordStepResultOutcome {\n return steps.every((step) => isTerminal(step.status))\n ? {jobFinished: true, status: deriveCompletion(steps)}\n : {jobFinished: false};\n}\n\nexport async function recordStepResult(\n params: RecordStepResultParams,\n): Promise<RecordStepResultOutcome> {\n const progression = await withTransaction<RecordStepResultTransactionResult>((tx) =>\n recordStepResultInTransaction(params, tx),\n );\n\n recordStepProgressionMetrics(progression.metrics);\n\n return progression.outcome;\n}\n\nasync function recordStepResultInTransaction(\n params: RecordStepResultParams,\n tx: Tx,\n): Promise<RecordStepResultTransactionResult> {\n const jobExecutionId = params.jobExecutionId;\n\n const jobExecution = await getJobExecutionById(jobExecutionId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobExecutionId);\n\n const steps = await getStepsByJobExecutionIdForUpdate(jobExecutionId, tx);\n const target = steps.find((step) => step.id === params.stepId);\n const hasTargetStep = target !== undefined;\n\n if (!hasTargetStep) throw new StepNotFoundError(params.stepId, jobExecutionId);\n\n const current = target.currentAttempt;\n const reported = params.attempt ?? current;\n const reportClassification = classifyReportedStep(target, reported, jobExecution.jobId);\n if (reportClassification instanceof Error) throw reportClassification;\n if (reportClassification === 'noop') return {outcome: outcomeFromSteps(steps), metrics: {}};\n\n // Migration/back-compat boundary: a running step may predate the\n // step_attempts table or have been marked running by legacy code. Create\n // the audit row just before finalization if dispatch did not already do it.\n await insertRunningStepAttempt(\n {\n jobExecutionId,\n stepId: params.stepId,\n attempt: current,\n config: target.config,\n },\n tx,\n );\n\n let result: ReportedStepResult = {\n status: params.status,\n error: params.error ?? null,\n output: params.output ?? null,\n response: params.response ?? null,\n exitCode: params.exitCode ?? null,\n };\n const outputCoercion = coerceReportedStepOutput(target.config, result);\n if (outputCoercion.kind === 'coerced') {\n result = {...result, output: outputCoercion.output};\n }\n if (outputCoercion.kind === 'failed') {\n result = {\n status: 'failed',\n error: outputInvalidError(outputCoercion.error),\n output: null,\n response: result.response,\n exitCode: result.exitCode,\n };\n }\n\n // Evaluate the gate (if any) at the service boundary. This is the only place\n // the CEL engine runs. Pass the precomputed outcome into the pure decision.\n const shouldEvaluateGate = outputCoercion.kind !== 'failed';\n const gate = shouldEvaluateGate ? readStepGate(target.config) : undefined;\n const vars =\n gate === undefined\n ? undefined\n : ((await getWorkflowContextForJob(jobExecution.jobId, tx)).vars ?? undefined);\n const gateOutcome = shouldEvaluateGate\n ? evaluateGate(gate, result, vars)\n : {kind: 'no-gate' as const};\n const hasRestartPolicy = gate?.onFailure?.restartFrom !== undefined;\n // The restart cap is bounded on the gating step's OWN attempts, not its\n // current_attempt (which a rewind inflates for downstream steps).\n const gatingAttemptCount = hasRestartPolicy\n ? await countStepAttempts(params.stepId, tx)\n : undefined;\n const decision = decideStepTransition({\n steps,\n target,\n reportedAttempt: reported,\n result,\n gateOutcome,\n ...(gate?.onFailure ? {gateOnFailure: gate.onFailure} : {}),\n ...(gatingAttemptCount !== undefined ? {gatingAttemptCount} : {}),\n });\n const resolvedDecision = resolveRestartFeedback({\n decision,\n gate,\n result,\n definitionId: jobExecution.jobId,\n vars,\n });\n\n return applyStepTransition(\n resolvedDecision,\n {\n jobId: jobExecution.jobId,\n jobExecutionId,\n result,\n logOutcome: params.logOutcome ?? 'drained',\n gateResult: gateResultPayload(gateOutcome, result.exitCode),\n },\n tx,\n );\n}\n\ntype OutputCoercionResult =\n | {kind: 'not-applicable'}\n | {kind: 'coerced'; output: Record<string, unknown>}\n | {kind: 'failed'; error: StepOutputCoercionError};\n\nexport type ReportedStepClassification = 'proceed' | 'noop' | Error;\n\nexport function classifyReportedStep(\n target: Step,\n reportedAttempt: number,\n jobId: string,\n): ReportedStepClassification {\n const currentAttempt = target.currentAttempt;\n if (reportedAttempt > currentAttempt) {\n return new StepAttemptAheadError(target.id, jobId, reportedAttempt, currentAttempt);\n }\n\n if (reportedAttempt < currentAttempt) return 'noop';\n if (isTerminal(target.status)) return 'noop';\n if (target.status === 'pending') return new StepNotRunningError(target.id, jobId);\n return 'proceed';\n}\n\nfunction coerceReportedStepOutput(\n config: Record<string, unknown>,\n result: ReportedStepResult,\n): OutputCoercionResult {\n if (result.status !== 'succeeded') return {kind: 'not-applicable'};\n\n const declarations = readStepOutputs(config);\n if (declarations === undefined) return {kind: 'not-applicable'};\n\n const coerced = coerceStepOutputs({declarations, output: result.output});\n if (!coerced.ok) return {kind: 'failed', error: coerced.error};\n return {kind: 'coerced', output: coerced.output};\n}\n\nfunction outputInvalidError(error: StepOutputCoercionError): Record<string, unknown> {\n return {\n message: error.message,\n reason: 'output_invalid',\n field: `outputs.${error.key}`,\n outputKey: error.key,\n issue: error.reason,\n ...(error.expectedType === undefined ? {} : {expectedType: error.expectedType}),\n ...(error.schemaError === undefined ? {} : {schemaError: error.schemaError}),\n };\n}\n\nfunction resolveRestartFeedback(params: {\n decision: StepTransitionDecision;\n gate: ReturnType<typeof readStepGate>;\n result: ReportedStepResult;\n definitionId: string;\n vars?: Record<string, string> | undefined;\n}): StepTransitionDecision {\n if (params.decision.kind !== 'restart-job-from-step') return params.decision;\n if (params.gate === undefined) return params.decision;\n\n try {\n return {\n ...params.decision,\n feedback: evaluateGateFeedback({\n gate: params.gate,\n result: params.result,\n definitionId: params.definitionId,\n vars: params.vars,\n }),\n };\n } catch (error) {\n if (error instanceof InterpolationUnresolvableError) {\n return {\n kind: 'fail-job',\n failedStepId: params.decision.failedStepId,\n attempt: params.decision.attempt,\n failureError: dispatchConfigError(error),\n };\n }\n throw error;\n }\n}\n\nfunction recordStepProgressionMetrics(metrics: StepProgressionMetrics): void {\n const settledStatus = metrics.jobStepsSettledStatus;\n const hasSettledStatus = settledStatus !== undefined;\n if (hasSettledStatus) recordWorkflowJobExecutionStepsSettled(settledStatus);\n\n const restartWasEnqueued = metrics.stepRestartEnqueued === true;\n if (restartWasEnqueued) recordWorkflowStepRestartEnqueued();\n}\n"],"names":["coerceStepOutputs","evaluatePlannedPredicateAtSite","withTransaction","countStepAttempts","dispatchStepWithCompletedConfig","finishStepAttempt","getDirectDependencyJobContexts","getJobExecutionById","getLatestJobExecutionByJobId","getStepAttemptsByJobExecutionId","getStepsByJobExecutionIdForUpdate","getWorkflowContextForJob","insertRunningStepAttempt","markStepRunning","markStepSkipped","settleJobFailed","writeJobStepsSettledOutbox","recordWorkflowJobExecutionStepsSettled","recordWorkflowStepRestartEnqueued","createAgentDefaultsResolver","defaultStepConditionTrace","explicitConditionTrace","AgentConfigUnresolvableError","InterpolationUnresolvableError","JobNotFoundError","StepAttemptAheadError","StepNotFoundError","StepNotRunningError","assembleStepDispatchContext","completeStepDispatchConfig","applyStepTransition","decideStepTransition","deriveCompletion","isTerminal","evaluateGate","evaluateGateFeedback","gateResultPayload","readStepGate","readStepOutputs","nextStepForJobExecutionInTransaction","jobExecutionId","tx","agent","steps","hasNoSteps","length","running","find","step","status","hasRunningStep","undefined","kind","dispatched","firstPending","hasPendingStep","jobExecution","attempts","jobs","jobId","workflowContext","resolveNextPendingStep","vars","skippedAny","currentSteps","pending","context","targetStepId","id","condition","evaluateStepCondition","dispatchPendingStep","skipped","stepId","statusReason","evaluationTrace","skippedStep","error","map","params","hasConfigPlan","configPlan","dispatchPendingStepWithConfigPlan","marked","completed","resolveAgentDefaults","definitionId","config","trace","configError","toDispatchConfigError","isConfigError","failureError","dispatchConfigError","attempt","currentAttempt","logOutcome","failedStepId","execution","values","failed","outcome","expression","field","site","route","value","degraded","evaluationFailed","isInterpolationError","isAgentConfigError","message","reason","envKey","source","nextStepForLeasedJobExecution","nextStepForJob","outcomeFromSteps","every","jobFinished","recordStepResult","progression","recordStepResultInTransaction","recordStepProgressionMetrics","metrics","target","hasTargetStep","current","reported","reportClassification","classifyReportedStep","Error","result","output","response","exitCode","outputCoercion","coerceReportedStepOutput","outputInvalidError","shouldEvaluateGate","gate","gateOutcome","hasRestartPolicy","onFailure","restartFrom","gatingAttemptCount","decision","reportedAttempt","gateOnFailure","resolvedDecision","resolveRestartFeedback","gateResult","declarations","coerced","ok","key","outputKey","issue","expectedType","schemaError","feedback","settledStatus","jobStepsSettledStatus","hasSettledStatus","restartWasEnqueued","stepRestartEnqueued"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/core/job-execution.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {LogOutcomeDto} from '@shipfox/api-workflows-dto';\nimport {\n coerceStepOutputs,\n evaluatePlannedPredicateAtSite,\n type StepOutputCoercionError,\n} from '@shipfox/expression';\nimport {type Tx, withTransaction} from '#db/db.js';\nimport {\n countStepAttempts,\n dispatchStepWithCompletedConfig,\n finishStepAttempt,\n getDirectDependencyJobContexts,\n getJobExecutionById,\n getLatestJobExecutionByJobId,\n getStepAttemptsByJobExecutionId,\n getStepsByJobExecutionIdForUpdate,\n getWorkflowContextForJob,\n insertRunningStepAttempt,\n markStepRunning,\n markStepSkipped,\n settleJobFailed,\n writeJobStepsSettledOutbox,\n} from '#db/workflow-runs.js';\nimport {\n recordWorkflowJobExecutionStepsSettled,\n recordWorkflowStepRestartEnqueued,\n} from '#metrics/instance.js';\nimport {createAgentDefaultsResolver} from './agent-defaults.js';\nimport {defaultStepConditionTrace, explicitConditionTrace} from './condition-trace.js';\nimport type {JobExecution} from './entities/job-execution.js';\nimport type {PersistedEvaluationTraceEntry, Step, StepStatusReason} from './entities/step.js';\nimport {\n AgentConfigUnresolvableError,\n InterpolationUnresolvableError,\n JobNotFoundError,\n StepAttemptAheadError,\n StepNotFoundError,\n StepNotRunningError,\n} from './errors.js';\nimport {assembleStepDispatchContext} from './step-config/assemble-run-context.js';\nimport {completeStepDispatchConfig} from './step-config/complete-step-dispatch-config.js';\nimport type {WorkflowEvaluationContext} from './step-config/workflow-evaluation-context.js';\nimport {\n applyStepTransition,\n type StepProgressionMetrics,\n type StepProgressionOutcome,\n} from './step-transition/apply-step-transition.js';\nimport {\n decideStepTransition,\n deriveCompletion,\n isTerminal,\n type StepTransitionDecision,\n} from './step-transition/decide-step-transition.js';\nimport {\n evaluateGate,\n evaluateGateFeedback,\n gateResultPayload,\n readStepGate,\n} from './step-transition/evaluate-gate.js';\nimport {readStepOutputs} from './step-transition/read-step-outputs.js';\nimport type {RuntimeCompletionStatus} from './workflow-scheduling/runtime-dag.js';\n\ntype CompletionStatus = RuntimeCompletionStatus;\n\ntype ReportedStepResult = {\n readonly status: 'succeeded' | 'failed';\n readonly error: Record<string, unknown> | null;\n readonly output: Record<string, unknown> | null;\n readonly response: string | null;\n readonly exitCode: number | null;\n};\n\nexport type NextStep =\n | {kind: 'step'; step: Step; dispatched: boolean}\n | {kind: 'done'; status: CompletionStatus};\n\ntype DispatchConfigError = InterpolationUnresolvableError | AgentConfigUnresolvableError;\n\ninterface PendingStepDispatchParams {\n readonly jobExecutionId: string;\n readonly pending: Step;\n readonly jobExecution: JobExecution;\n readonly context: WorkflowEvaluationContext;\n readonly tx: Tx;\n readonly agent?: AgentInterModuleClient | undefined;\n}\n\ninterface ResolvePendingStepParams {\n readonly jobExecutionId: string;\n readonly steps: Step[];\n readonly jobExecution: JobExecution;\n readonly attempts: Awaited<ReturnType<typeof getStepAttemptsByJobExecutionId>>;\n readonly jobs: Awaited<ReturnType<typeof getDirectDependencyJobContexts>>;\n readonly vars: Record<string, string> | undefined;\n readonly tx: Tx;\n readonly agent?: AgentInterModuleClient | undefined;\n}\n\ntype StepConditionOutcome =\n | {kind: 'run'}\n | {\n kind: 'skip';\n statusReason: StepStatusReason;\n evaluationTrace: readonly PersistedEvaluationTraceEntry[];\n };\n\nasync function nextStepForJobExecutionInTransaction(\n jobExecutionId: string,\n tx: Tx,\n agent?: AgentInterModuleClient | undefined,\n): Promise<NextStep> {\n const steps = await getStepsByJobExecutionIdForUpdate(jobExecutionId, tx);\n const hasNoSteps = steps.length === 0;\n\n // An unknown or step-less execution has nothing to progress; rejecting it stops\n // a bad id from deriving a vacuous 'succeeded' completion below.\n if (hasNoSteps) throw new JobNotFoundError(jobExecutionId);\n\n // Re-deliver the in-flight step rather than advancing, so a retried pull\n // cannot skip a step.\n const running = steps.find((step) => step.status === 'running');\n const hasRunningStep = running !== undefined;\n if (hasRunningStep) return {kind: 'step', step: running, dispatched: false};\n\n const firstPending = steps.find((step) => step.status === 'pending');\n const hasPendingStep = firstPending !== undefined;\n if (!hasPendingStep) return {kind: 'done', status: deriveCompletion(steps)};\n\n const jobExecution = await getJobExecutionById(jobExecutionId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobExecutionId);\n\n const attempts = await getStepAttemptsByJobExecutionId(jobExecutionId, tx);\n const jobs = await getDirectDependencyJobContexts(jobExecution.jobId, tx);\n const workflowContext = await getWorkflowContextForJob(jobExecution.jobId, tx);\n\n return resolveNextPendingStep({\n jobExecutionId,\n steps,\n jobExecution,\n attempts,\n jobs,\n vars: workflowContext.vars ?? undefined,\n tx,\n agent,\n });\n}\n\nasync function resolveNextPendingStep({\n jobExecutionId,\n steps,\n jobExecution,\n attempts,\n jobs,\n vars,\n tx,\n agent,\n}: ResolvePendingStepParams): Promise<NextStep> {\n let skippedAny = false;\n let currentSteps = steps;\n\n while (true) {\n const pending = currentSteps.find((step) => step.status === 'pending');\n if (pending === undefined) {\n const status = deriveCompletion(currentSteps);\n if (skippedAny) {\n await writeJobStepsSettledOutbox(tx, {\n jobId: jobExecution.jobId,\n jobExecutionId,\n status,\n });\n recordWorkflowJobExecutionStepsSettled(status);\n }\n return {kind: 'done', status};\n }\n\n const context = assembleStepDispatchContext({\n steps: currentSteps,\n attempts,\n targetStepId: pending.id,\n jobExecution,\n jobs,\n vars,\n });\n const condition = evaluateStepCondition({step: pending, context});\n if (condition.kind === 'run') {\n return dispatchPendingStep({jobExecutionId, pending, jobExecution, context, tx, agent});\n }\n\n const skipped = await markStepSkipped(\n {\n jobExecutionId,\n stepId: pending.id,\n statusReason: condition.statusReason,\n evaluationTrace: condition.evaluationTrace,\n },\n tx,\n );\n const skippedStep = skipped ?? {\n ...pending,\n status: 'skipped' as const,\n statusReason: condition.statusReason,\n evaluationTrace: condition.evaluationTrace,\n error: null,\n };\n currentSteps = currentSteps.map((step) => (step.id === pending.id ? skippedStep : step));\n skippedAny = true;\n }\n}\n\nasync function dispatchPendingStep(params: PendingStepDispatchParams): Promise<NextStep> {\n const hasConfigPlan = params.pending.configPlan !== null;\n if (hasConfigPlan) return dispatchPendingStepWithConfigPlan(params);\n\n const marked = await markStepRunning(\n {jobExecutionId: params.jobExecutionId, stepId: params.pending.id},\n params.tx,\n );\n return {kind: 'step', step: marked ?? params.pending, dispatched: true};\n}\n\nasync function dispatchPendingStepWithConfigPlan({\n jobExecutionId,\n pending,\n jobExecution,\n context,\n tx,\n agent,\n}: PendingStepDispatchParams): Promise<NextStep> {\n try {\n const completed = await completeStepDispatchConfig({\n step: pending,\n context,\n resolveAgentDefaults: agent ? createAgentDefaultsResolver(agent, null) : undefined,\n definitionId: jobExecution.jobId,\n });\n const marked = await dispatchStepWithCompletedConfig(\n {\n jobExecutionId,\n stepId: pending.id,\n config: completed.config,\n evaluationTrace: completed.trace,\n },\n tx,\n );\n return {kind: 'step', step: marked ?? {...pending, config: completed.config}, dispatched: true};\n } catch (error) {\n const configError = toDispatchConfigError(error);\n const isConfigError = configError !== null;\n if (!isConfigError) throw error;\n\n const failureError = dispatchConfigError(configError);\n await insertRunningStepAttempt(\n {\n jobExecutionId,\n stepId: pending.id,\n attempt: pending.currentAttempt,\n },\n tx,\n );\n await finishStepAttempt(\n {\n stepId: pending.id,\n attempt: pending.currentAttempt,\n status: 'failed',\n error: failureError,\n logOutcome: 'abandoned',\n },\n tx,\n );\n const status = await settleJobFailed(tx, {\n jobId: jobExecution.jobId,\n jobExecutionId,\n failedStepId: pending.id,\n error: failureError,\n });\n if (status) recordWorkflowJobExecutionStepsSettled(status);\n return status === null\n ? nextStepForJobExecutionInTransaction(jobExecutionId, tx, agent)\n : {kind: 'done', status};\n }\n}\n\nfunction evaluateStepCondition(params: {\n readonly step: Step;\n readonly context: WorkflowEvaluationContext;\n}): StepConditionOutcome {\n const condition = params.step.condition;\n if (condition === null) {\n const execution = params.context.values.execution as {failed?: unknown} | undefined;\n return execution?.failed === true\n ? {\n kind: 'skip',\n statusReason: 'default_gate_rejected',\n evaluationTrace: defaultStepConditionTrace(),\n }\n : {kind: 'run'};\n }\n\n const outcome = evaluatePlannedPredicateAtSite({\n expression: condition,\n field: 'step.if',\n site: params.context.site,\n context: params.context.values,\n });\n const evaluationTrace = explicitConditionTrace({\n expression: condition,\n field: 'step.if',\n route: outcome.route,\n site: params.context.site,\n value: outcome.value,\n degraded: outcome.evaluationFailed,\n });\n if (outcome.evaluationFailed) {\n return {kind: 'skip', statusReason: 'condition_errored', evaluationTrace};\n }\n return outcome.value\n ? {kind: 'run'}\n : {kind: 'skip', statusReason: 'condition_rejected', evaluationTrace};\n}\n\nfunction toDispatchConfigError(error: unknown): DispatchConfigError | null {\n const isInterpolationError = error instanceof InterpolationUnresolvableError;\n if (isInterpolationError) return error;\n\n const isAgentConfigError = error instanceof AgentConfigUnresolvableError;\n if (isAgentConfigError) return error;\n\n return null;\n}\n\nfunction dispatchConfigError(error: DispatchConfigError): Record<string, unknown> {\n if (error instanceof InterpolationUnresolvableError) {\n return {\n message: error.message,\n reason: 'config_unresolvable',\n field: error.envKey === undefined ? error.field : `${error.field}.${error.envKey}`,\n source: error.source,\n };\n }\n\n const isManagedProviderPolicyFailure =\n error.code === 'workspace-providers-disabled' && error.managedProviderId !== undefined;\n return {\n message: error.message,\n reason: isManagedProviderPolicyFailure ? 'agent_config_invalid' : 'config_unresolvable',\n field: 'agent',\n source: 'agent',\n ...(error.code === undefined ? {} : {code: error.code}),\n ...(error.managedProviderId === undefined ? {} : {managedProviderId: error.managedProviderId}),\n ...(isManagedProviderPolicyFailure ? {agentConfigIssue: 'provider_unsupported'} : {}),\n };\n}\n\nexport interface NextStepForLeasedJobExecutionParams {\n jobExecutionId: string;\n agent?: AgentInterModuleClient | undefined;\n}\n\nexport function nextStepForLeasedJobExecution(\n params: NextStepForLeasedJobExecutionParams,\n): Promise<NextStep> {\n return withTransaction((tx) =>\n nextStepForJobExecutionInTransaction(params.jobExecutionId, tx, params.agent),\n );\n}\n\nexport function nextStepForJob(\n jobId: string,\n agent?: AgentInterModuleClient | undefined,\n): Promise<NextStep> {\n return withTransaction(async (tx) => {\n const jobExecution = await getLatestJobExecutionByJobId(jobId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobId);\n\n return nextStepForJobExecutionInTransaction(jobExecution.id, tx, agent);\n });\n}\n\nexport interface RecordStepResultParams {\n jobExecutionId: string;\n stepId: string;\n status: 'succeeded' | 'failed';\n error?: Record<string, unknown> | null;\n // Structured runner output feeds gate predicates and audit/history on the\n // attempt row; the current step projection keeps only status/error.\n output?: Record<string, unknown> | null;\n response?: string | null;\n exitCode?: number | null;\n // The attempt the runner was dispatched. Omitted = \"the step's current\n // attempt\" (back-compat for callers that don't track attempts yet).\n attempt?: number;\n logOutcome?: LogOutcomeDto;\n}\n\nexport type RecordStepResultOutcome = StepProgressionOutcome;\n\ninterface RecordStepResultTransactionResult {\n outcome: RecordStepResultOutcome;\n metrics: StepProgressionMetrics;\n}\n\nfunction outcomeFromSteps(steps: Step[]): RecordStepResultOutcome {\n return steps.every((step) => isTerminal(step.status))\n ? {jobFinished: true, status: deriveCompletion(steps)}\n : {jobFinished: false};\n}\n\nexport async function recordStepResult(\n params: RecordStepResultParams,\n): Promise<RecordStepResultOutcome> {\n const progression = await withTransaction<RecordStepResultTransactionResult>((tx) =>\n recordStepResultInTransaction(params, tx),\n );\n\n recordStepProgressionMetrics(progression.metrics);\n\n return progression.outcome;\n}\n\nasync function recordStepResultInTransaction(\n params: RecordStepResultParams,\n tx: Tx,\n): Promise<RecordStepResultTransactionResult> {\n const jobExecutionId = params.jobExecutionId;\n\n const jobExecution = await getJobExecutionById(jobExecutionId, tx);\n if (!jobExecution) throw new JobNotFoundError(jobExecutionId);\n\n const steps = await getStepsByJobExecutionIdForUpdate(jobExecutionId, tx);\n const target = steps.find((step) => step.id === params.stepId);\n const hasTargetStep = target !== undefined;\n\n if (!hasTargetStep) throw new StepNotFoundError(params.stepId, jobExecutionId);\n\n const current = target.currentAttempt;\n const reported = params.attempt ?? current;\n const reportClassification = classifyReportedStep(target, reported, jobExecution.jobId);\n if (reportClassification instanceof Error) throw reportClassification;\n if (reportClassification === 'noop') return {outcome: outcomeFromSteps(steps), metrics: {}};\n\n // Migration/back-compat boundary: a running step may predate the\n // step_attempts table or have been marked running by legacy code. Create\n // the audit row just before finalization if dispatch did not already do it.\n await insertRunningStepAttempt(\n {\n jobExecutionId,\n stepId: params.stepId,\n attempt: current,\n config: target.config,\n },\n tx,\n );\n\n let result: ReportedStepResult = {\n status: params.status,\n error: params.error ?? null,\n output: params.output ?? null,\n response: params.response ?? null,\n exitCode: params.exitCode ?? null,\n };\n const outputCoercion = coerceReportedStepOutput(target.config, result);\n if (outputCoercion.kind === 'coerced') {\n result = {...result, output: outputCoercion.output};\n }\n if (outputCoercion.kind === 'failed') {\n result = {\n status: 'failed',\n error: outputInvalidError(outputCoercion.error),\n output: null,\n response: result.response,\n exitCode: result.exitCode,\n };\n }\n\n // Evaluate the gate (if any) at the service boundary. This is the only place\n // the CEL engine runs. Pass the precomputed outcome into the pure decision.\n const shouldEvaluateGate = outputCoercion.kind !== 'failed';\n const gate = shouldEvaluateGate ? readStepGate(target.config) : undefined;\n const vars =\n gate === undefined\n ? undefined\n : ((await getWorkflowContextForJob(jobExecution.jobId, tx)).vars ?? undefined);\n const gateOutcome = shouldEvaluateGate\n ? evaluateGate(gate, result, vars)\n : {kind: 'no-gate' as const};\n const hasRestartPolicy = gate?.onFailure?.restartFrom !== undefined;\n // The restart cap is bounded on the gating step's OWN attempts, not its\n // current_attempt (which a rewind inflates for downstream steps).\n const gatingAttemptCount = hasRestartPolicy\n ? await countStepAttempts(params.stepId, tx)\n : undefined;\n const decision = decideStepTransition({\n steps,\n target,\n reportedAttempt: reported,\n result,\n gateOutcome,\n ...(gate?.onFailure ? {gateOnFailure: gate.onFailure} : {}),\n ...(gatingAttemptCount !== undefined ? {gatingAttemptCount} : {}),\n });\n const resolvedDecision = resolveRestartFeedback({\n decision,\n gate,\n result,\n definitionId: jobExecution.jobId,\n vars,\n });\n\n return applyStepTransition(\n resolvedDecision,\n {\n jobId: jobExecution.jobId,\n jobExecutionId,\n result,\n logOutcome: params.logOutcome ?? 'drained',\n gateResult: gateResultPayload(gateOutcome, result.exitCode),\n },\n tx,\n );\n}\n\ntype OutputCoercionResult =\n | {kind: 'not-applicable'}\n | {kind: 'coerced'; output: Record<string, unknown>}\n | {kind: 'failed'; error: StepOutputCoercionError};\n\nexport type ReportedStepClassification = 'proceed' | 'noop' | Error;\n\nexport function classifyReportedStep(\n target: Step,\n reportedAttempt: number,\n jobId: string,\n): ReportedStepClassification {\n const currentAttempt = target.currentAttempt;\n if (reportedAttempt > currentAttempt) {\n return new StepAttemptAheadError(target.id, jobId, reportedAttempt, currentAttempt);\n }\n\n if (reportedAttempt < currentAttempt) return 'noop';\n if (isTerminal(target.status)) return 'noop';\n if (target.status === 'pending') return new StepNotRunningError(target.id, jobId);\n return 'proceed';\n}\n\nfunction coerceReportedStepOutput(\n config: Record<string, unknown>,\n result: ReportedStepResult,\n): OutputCoercionResult {\n if (result.status !== 'succeeded') return {kind: 'not-applicable'};\n\n const declarations = readStepOutputs(config);\n if (declarations === undefined) return {kind: 'not-applicable'};\n\n const coerced = coerceStepOutputs({declarations, output: result.output});\n if (!coerced.ok) return {kind: 'failed', error: coerced.error};\n return {kind: 'coerced', output: coerced.output};\n}\n\nfunction outputInvalidError(error: StepOutputCoercionError): Record<string, unknown> {\n return {\n message: error.message,\n reason: 'output_invalid',\n field: `outputs.${error.key}`,\n outputKey: error.key,\n issue: error.reason,\n ...(error.expectedType === undefined ? {} : {expectedType: error.expectedType}),\n ...(error.schemaError === undefined ? {} : {schemaError: error.schemaError}),\n };\n}\n\nfunction resolveRestartFeedback(params: {\n decision: StepTransitionDecision;\n gate: ReturnType<typeof readStepGate>;\n result: ReportedStepResult;\n definitionId: string;\n vars?: Record<string, string> | undefined;\n}): StepTransitionDecision {\n if (params.decision.kind !== 'restart-job-from-step') return params.decision;\n if (params.gate === undefined) return params.decision;\n\n try {\n return {\n ...params.decision,\n feedback: evaluateGateFeedback({\n gate: params.gate,\n result: params.result,\n definitionId: params.definitionId,\n vars: params.vars,\n }),\n };\n } catch (error) {\n if (error instanceof InterpolationUnresolvableError) {\n return {\n kind: 'fail-job',\n failedStepId: params.decision.failedStepId,\n attempt: params.decision.attempt,\n failureError: dispatchConfigError(error),\n };\n }\n throw error;\n }\n}\n\nfunction recordStepProgressionMetrics(metrics: StepProgressionMetrics): void {\n const settledStatus = metrics.jobStepsSettledStatus;\n const hasSettledStatus = settledStatus !== undefined;\n if (hasSettledStatus) recordWorkflowJobExecutionStepsSettled(settledStatus);\n\n const restartWasEnqueued = metrics.stepRestartEnqueued === true;\n if (restartWasEnqueued) recordWorkflowStepRestartEnqueued();\n}\n"],"names":["coerceStepOutputs","evaluatePlannedPredicateAtSite","withTransaction","countStepAttempts","dispatchStepWithCompletedConfig","finishStepAttempt","getDirectDependencyJobContexts","getJobExecutionById","getLatestJobExecutionByJobId","getStepAttemptsByJobExecutionId","getStepsByJobExecutionIdForUpdate","getWorkflowContextForJob","insertRunningStepAttempt","markStepRunning","markStepSkipped","settleJobFailed","writeJobStepsSettledOutbox","recordWorkflowJobExecutionStepsSettled","recordWorkflowStepRestartEnqueued","createAgentDefaultsResolver","defaultStepConditionTrace","explicitConditionTrace","AgentConfigUnresolvableError","InterpolationUnresolvableError","JobNotFoundError","StepAttemptAheadError","StepNotFoundError","StepNotRunningError","assembleStepDispatchContext","completeStepDispatchConfig","applyStepTransition","decideStepTransition","deriveCompletion","isTerminal","evaluateGate","evaluateGateFeedback","gateResultPayload","readStepGate","readStepOutputs","nextStepForJobExecutionInTransaction","jobExecutionId","tx","agent","steps","hasNoSteps","length","running","find","step","status","hasRunningStep","undefined","kind","dispatched","firstPending","hasPendingStep","jobExecution","attempts","jobs","jobId","workflowContext","resolveNextPendingStep","vars","skippedAny","currentSteps","pending","context","targetStepId","id","condition","evaluateStepCondition","dispatchPendingStep","skipped","stepId","statusReason","evaluationTrace","skippedStep","error","map","params","hasConfigPlan","configPlan","dispatchPendingStepWithConfigPlan","marked","completed","resolveAgentDefaults","definitionId","config","trace","configError","toDispatchConfigError","isConfigError","failureError","dispatchConfigError","attempt","currentAttempt","logOutcome","failedStepId","execution","values","failed","outcome","expression","field","site","route","value","degraded","evaluationFailed","isInterpolationError","isAgentConfigError","message","reason","envKey","source","isManagedProviderPolicyFailure","code","managedProviderId","agentConfigIssue","nextStepForLeasedJobExecution","nextStepForJob","outcomeFromSteps","every","jobFinished","recordStepResult","progression","recordStepResultInTransaction","recordStepProgressionMetrics","metrics","target","hasTargetStep","current","reported","reportClassification","classifyReportedStep","Error","result","output","response","exitCode","outputCoercion","coerceReportedStepOutput","outputInvalidError","shouldEvaluateGate","gate","gateOutcome","hasRestartPolicy","onFailure","restartFrom","gatingAttemptCount","decision","reportedAttempt","gateOnFailure","resolvedDecision","resolveRestartFeedback","gateResult","declarations","coerced","ok","key","outputKey","issue","expectedType","schemaError","feedback","settledStatus","jobStepsSettledStatus","hasSettledStatus","restartWasEnqueued","stepRestartEnqueued"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/core/step-config/agent.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAIhE,OAAO,KAAK,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EAEtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,6BAA6B,EAAE,sBAAsB,EAAC,MAAM,wBAAwB,CAAC;AAElG,OAAO,EAIL,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,kCAAkC,CAAC;AAEhF,KAAK,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AACtD,KAAK,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,KAAK,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAC1E,KAAK,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAe/C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,CAAC;CAClF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,SAAS,gCAAgC,EAAE,CAAC;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,6BAA6B,EAAE,CAAC;CACjD,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDhB;AAsBD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmBjC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/core/step-config/agent.ts"],"names":[],"mappings":"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"}
@@ -84,8 +84,16 @@ export async function completeAgentDefaults(params) {
84
84
  });
85
85
  } catch (error) {
86
86
  if (isInterModuleKnownError(agentInterModuleContract.methods.resolveAgentConfig, error) && error.code === 'agent-config-invalid') {
87
+ const managedProviderId = error.details.managed_provider_id;
87
88
  throw new AgentConfigUnresolvableError(params.definitionId, {
88
- cause: error
89
+ cause: error,
90
+ ...error.details.message === undefined ? {} : {
91
+ message: error.details.message
92
+ },
93
+ ...managedProviderId === undefined ? {} : {
94
+ code: 'workspace-providers-disabled',
95
+ managedProviderId
96
+ }
89
97
  });
90
98
  }
91
99
  throw error;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/step-config/agent.ts"],"sourcesContent":["import {\n AGENT_INTEGRATION_MCP_AUTH,\n AGENT_INTEGRATION_MCP_ENDPOINT,\n AGENT_INTEGRATION_MCP_SERVER_NAME,\n AGENT_INTEGRATION_MCP_TRANSPORT,\n type AgentIntegrationMcpServerConfigDto,\n type MaterializedAgentIntegrationConfigDto,\n} from '@shipfox/api-agent-dto';\nimport {agentInterModuleContract} from '@shipfox/api-agent-dto/inter-module';\nimport type {WorkflowModel} from '@shipfox/api-definitions-dto';\nimport type {ResolvedField, SiteResolvedField} from '@shipfox/expression';\nimport {isInterModuleKnownError} from '@shipfox/inter-module';\nimport type {AgentThinking} from '@shipfox/workflow-document';\nimport type {AgentDefaultsResolver, ResolvedAgentDefaults} from '#core/agent-defaults.js';\nimport {\n type AgentToolMaterializationContext,\n type AgentToolMaterializationSnapshot,\n materializeAgentIntegrations,\n} from '#core/agent-tools.js';\nimport type {PersistedEvaluationTraceEntry, StepConfigDispatchPlan} from '#core/entities/step.js';\nimport {AgentConfigUnresolvableError} from '#core/errors.js';\nimport {\n completeStepFieldWithTrace,\n literalField,\n resolveStepField,\n type WorkflowStepEvaluationTraceEntry,\n type WorkflowStepTemplateDiagnostic,\n} from './fields.js';\nimport type {WorkflowEvaluationContext} from './workflow-evaluation-context.js';\n\ntype WorkflowModelJob = WorkflowModel['jobs'][number];\ntype WorkflowModelStep = WorkflowModelJob['steps'][number];\ntype WorkflowModelAgentStep = Extract<WorkflowModelStep, {kind: 'agent'}>;\ntype StepConfigMode = 'effective' | 'authored';\ntype FieldResolution =\n | {readonly kind: 'frozen'; readonly value: string}\n | {readonly kind: 'residual'; readonly field: ResolvedField};\n\ninterface AgentFieldResolutions {\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly prompt: FieldResolution;\n readonly model: FieldResolution | undefined;\n readonly provider: FieldResolution | undefined;\n readonly thinking: FieldResolution | undefined;\n readonly hasTemplates: boolean;\n}\n\nexport interface ResolveAgentStepConfigParams {\n readonly jobKey: string;\n readonly step: WorkflowModelAgentStep;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly definitionId: string;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly agentToolContext?: AgentToolMaterializationContext | undefined;\n readonly agentToolSnapshot?: AgentToolMaterializationSnapshot | null | undefined;\n}\n\nexport interface AgentStepConfig {\n readonly config: Record<string, unknown>;\n readonly configPlan: StepConfigDispatchPlan | null;\n readonly diagnostics: readonly WorkflowStepTemplateDiagnostic[];\n readonly trace: readonly WorkflowStepEvaluationTraceEntry[];\n readonly hasTemplates: boolean;\n}\n\nexport async function resolveAgentStepConfig(\n params: ResolveAgentStepConfigParams,\n): Promise<AgentStepConfig> {\n const fields = resolveAgentFields(params);\n const usesAuthoredMode = params.mode === 'authored';\n\n if (usesAuthoredMode) return authoredAgentStepConfig(params.step, fields);\n\n const hasDeferredAgentField =\n fields.model?.kind === 'residual' ||\n fields.provider?.kind === 'residual' ||\n fields.thinking?.kind === 'residual';\n if (hasDeferredAgentField) return deferredAgentStepConfig(params, fields);\n\n return await agentStepConfigWithDefaults(params.step, params, fields);\n}\n\nexport async function completeAgentConfig(params: {\n readonly config: Record<string, unknown>;\n readonly plan: StepConfigDispatchPlan;\n readonly context: WorkflowEvaluationContext;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId: string;\n readonly trace: PersistedEvaluationTraceEntry[];\n}): Promise<void> {\n const agent = params.plan.agent;\n if (agent === undefined) return;\n\n const prompt =\n agent.prompt === undefined\n ? readConfigString(params.config, 'prompt')\n : completeAgentField({\n field: 'agent.prompt',\n template: agent.prompt,\n params,\n });\n const model =\n agent.model === undefined\n ? readConfigString(params.config, 'model')\n : completeAgentField({\n field: 'agent.model',\n template: agent.model,\n params,\n });\n const provider =\n agent.provider === undefined\n ? readConfigString(params.config, 'provider')\n : completeAgentField({\n field: 'agent.provider',\n template: agent.provider,\n params,\n });\n\n const defaults = await completeAgentDefaults({\n harness: agent.harness ?? readConfigHarness(params.config),\n provider,\n model,\n thinking:\n agent.thinking === undefined\n ? readConfigThinking(params.config)\n : completeAgentField({field: 'agent.thinking', template: agent.thinking, params}),\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n });\n params.config.harness = defaults.harness;\n params.config.provider = defaults.provider;\n params.config.model = defaults.model;\n params.config.thinking = defaults.thinking;\n params.config.prompt = prompt;\n if (agent.tools !== undefined) params.config.tools = [...agent.tools];\n const integrations = agent.integrations === undefined ? undefined : [...agent.integrations];\n if (integrations !== undefined) params.config.integrations = integrations;\n const mcpServers =\n agent.mcpServers ??\n (integrations === undefined ? undefined : agentIntegrationMcpServers(integrations));\n if (mcpServers !== undefined) params.config.mcpServers = [...mcpServers];\n}\n\nfunction completeAgentField(args: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly template: ResolvedField;\n readonly params: {\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n readonly trace: PersistedEvaluationTraceEntry[];\n };\n}): string {\n const resolved = completeStepFieldWithTrace({\n field: args.field,\n errorField: args.field,\n template: args.template,\n context: args.params.context,\n definitionId: args.params.definitionId,\n });\n args.params.trace.push(...resolved.trace.map((entry) => ({...entry, field: args.field})));\n return resolved.value;\n}\n\nexport async function completeAgentDefaults(params: {\n readonly harness: WorkflowModelAgentStep['harness'] | undefined;\n readonly provider: string | undefined;\n readonly model: string | undefined;\n readonly thinking: string | undefined;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId: string;\n}): Promise<ResolvedAgentDefaults> {\n if (!params.resolveAgentDefaults) throw new Error('Agent defaults resolver is required');\n\n try {\n return await params.resolveAgentDefaults({\n harness: params.harness,\n provider: params.provider,\n model: params.model,\n thinking: params.thinking,\n });\n } catch (error) {\n if (\n isInterModuleKnownError(agentInterModuleContract.methods.resolveAgentConfig, error) &&\n error.code === 'agent-config-invalid'\n ) {\n throw new AgentConfigUnresolvableError(params.definitionId, {cause: error});\n }\n throw error;\n }\n}\n\nfunction resolveAgentFields(params: ResolveAgentStepConfigParams): AgentFieldResolutions {\n const diagnostics: WorkflowStepTemplateDiagnostic[] = [];\n const trace: WorkflowStepEvaluationTraceEntry[] = [];\n const prompt = resolveAgentField({\n field: 'agent.prompt',\n value: params.step.prompt,\n template: params.step.templates?.prompt,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const model = resolveOptionalAgentField({\n field: 'agent.model',\n value: params.step.model,\n template: params.step.templates?.model,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const provider = resolveOptionalAgentField({\n field: 'agent.provider',\n value: params.step.provider,\n template: params.step.templates?.provider,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const thinking = resolveOptionalAgentField({\n field: 'agent.thinking',\n value: params.step.thinking,\n template: params.step.templates?.thinking,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const hasTemplates =\n params.step.templates?.prompt !== undefined ||\n params.step.templates?.model !== undefined ||\n params.step.templates?.provider !== undefined ||\n params.step.templates?.thinking !== undefined;\n\n return {diagnostics, trace, prompt, model, provider, thinking, hasTemplates};\n}\n\nfunction authoredAgentStepConfig(\n step: WorkflowModelAgentStep,\n fields: AgentFieldResolutions,\n): AgentStepConfig {\n return {\n config: {\n ...(step.provider === undefined ? {} : {provider: step.provider}),\n ...(step.model === undefined ? {} : {model: step.model}),\n ...(step.harness === undefined ? {} : {harness: step.harness}),\n ...(step.thinking === undefined ? {} : {thinking: step.thinking}),\n ...agentToolsConfig(step),\n ...authoredAgentIntegrationsConfig(step),\n prompt: step.prompt,\n },\n configPlan: null,\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nfunction deferredAgentStepConfig(\n params: ResolveAgentStepConfigParams,\n fields: AgentFieldResolutions,\n): AgentStepConfig {\n const {step} = params;\n return {\n config: {},\n configPlan: {\n agent: {\n prompt: dispatchPlanField(fields.prompt),\n ...(fields.model === undefined ? {} : {model: dispatchPlanField(fields.model)}),\n ...(fields.provider === undefined ? {} : {provider: dispatchPlanField(fields.provider)}),\n ...(step.harness === undefined ? {} : {harness: step.harness}),\n ...(fields.thinking === undefined ? {} : {thinking: dispatchPlanField(fields.thinking)}),\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n },\n },\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nasync function agentStepConfigWithDefaults(\n step: WorkflowModelAgentStep,\n params: ResolveAgentStepConfigParams,\n fields: AgentFieldResolutions,\n): Promise<AgentStepConfig> {\n const providerValue = frozenFieldValue(fields.provider);\n const modelValue = frozenFieldValue(fields.model);\n const promptIsDeferred = fields.prompt.kind === 'residual';\n\n const resolved = await completeAgentDefaults({\n harness: step.harness,\n provider: providerValue,\n model: modelValue,\n thinking: frozenFieldValue(fields.thinking),\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n });\n if (promptIsDeferred) {\n return {\n config: {\n provider: resolved.provider,\n model: resolved.model,\n harness: resolved.harness,\n thinking: resolved.thinking,\n },\n configPlan: {\n agent: {\n prompt: dispatchPlanField(fields.prompt),\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n },\n },\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n }\n\n const promptValue = frozenFieldValue(fields.prompt) ?? step.prompt;\n return {\n config: {\n provider: resolved.provider,\n model: resolved.model,\n harness: resolved.harness,\n thinking: resolved.thinking,\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n prompt: promptValue,\n },\n configPlan: null,\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nfunction agentToolsConfig(\n step: WorkflowModelAgentStep,\n): {readonly tools: readonly string[]} | Record<string, never> {\n return step.tools === undefined ? {} : {tools: [...step.tools]};\n}\n\nfunction authoredAgentIntegrationsConfig(\n step: WorkflowModelAgentStep,\n):\n | {readonly integrations: NonNullable<WorkflowModelAgentStep['integrations']>}\n | Record<string, never> {\n return step.integrations === undefined ? {} : {integrations: step.integrations};\n}\n\nfunction materializedAgentIntegrationsConfig(params: ResolveAgentStepConfigParams):\n | {\n readonly integrations: readonly MaterializedAgentIntegrationConfigDto[];\n readonly mcpServers: readonly AgentIntegrationMcpServerConfigDto[];\n }\n | Record<string, never> {\n const integrations = materializeAgentIntegrations({\n jobKey: params.jobKey,\n stepId: params.step.id,\n integrations: params.step.integrations,\n context: params.agentToolContext,\n snapshot: params.agentToolSnapshot,\n });\n return integrations === undefined\n ? {}\n : {integrations, mcpServers: agentIntegrationMcpServers(integrations)};\n}\n\nfunction agentIntegrationMcpServers(\n integrations: readonly MaterializedAgentIntegrationConfigDto[],\n): readonly AgentIntegrationMcpServerConfigDto[] {\n return [\n {\n name: AGENT_INTEGRATION_MCP_SERVER_NAME,\n transport: AGENT_INTEGRATION_MCP_TRANSPORT,\n endpoint: AGENT_INTEGRATION_MCP_ENDPOINT,\n auth: AGENT_INTEGRATION_MCP_AUTH,\n integrations: [...integrations],\n },\n ];\n}\n\nfunction dispatchPlanField(field: FieldResolution): ResolvedField {\n const isResidual = field.kind === 'residual';\n return isResidual ? field.field : literalField(field.value);\n}\n\nfunction frozenFieldValue(field: FieldResolution | undefined): string | undefined {\n const isFrozen = field?.kind === 'frozen';\n return isFrozen ? field.value : undefined;\n}\n\nfunction resolveAgentField(params: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly value: string;\n readonly template: ResolvedField['segments'] | undefined;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly definitionId: string;\n}): FieldResolution {\n const hasTemplate = params.template !== undefined;\n const usesAuthoredMode = params.mode === 'authored';\n if (!hasTemplate || usesAuthoredMode) {\n return {kind: 'frozen', value: params.value};\n }\n\n const resolved = resolveStepField({\n field: params.field,\n template: {segments: params.template},\n context: params.context,\n definitionId: params.definitionId,\n errorField: params.field,\n });\n params.diagnostics.push(\n ...resolved.diagnostics.map((diagnostic) => ({...diagnostic, field: params.field})),\n );\n params.trace.push(...resolved.trace.map((entry) => ({...entry, field: params.field})));\n return fieldResolution(resolved);\n}\n\nfunction resolveOptionalAgentField(params: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly value: string | undefined;\n readonly template: ResolvedField['segments'] | undefined;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly definitionId: string;\n}): FieldResolution | undefined {\n const hasValue = params.value !== undefined;\n if (!hasValue) return undefined;\n return resolveAgentField({...params, value: params.value});\n}\n\nfunction fieldResolution(resolved: SiteResolvedField): FieldResolution {\n if (resolved.kind === 'residual') return {kind: 'residual', field: resolved.field};\n return {kind: 'frozen', value: resolved.value};\n}\n\nfunction readConfigString(config: Record<string, unknown>, key: string): string | undefined {\n const value = config[key];\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction readConfigThinking(config: Record<string, unknown>): AgentThinking | undefined {\n const value = config.thinking;\n return value === 'off' ||\n value === 'minimal' ||\n value === 'low' ||\n value === 'medium' ||\n value === 'high' ||\n value === 'xhigh'\n ? value\n : undefined;\n}\n\nfunction readConfigHarness(\n config: Record<string, unknown>,\n): WorkflowModelAgentStep['harness'] | undefined {\n return config.harness === 'pi' || config.harness === 'claude' ? config.harness : undefined;\n}\n"],"names":["AGENT_INTEGRATION_MCP_AUTH","AGENT_INTEGRATION_MCP_ENDPOINT","AGENT_INTEGRATION_MCP_SERVER_NAME","AGENT_INTEGRATION_MCP_TRANSPORT","agentInterModuleContract","isInterModuleKnownError","materializeAgentIntegrations","AgentConfigUnresolvableError","completeStepFieldWithTrace","literalField","resolveStepField","resolveAgentStepConfig","params","fields","resolveAgentFields","usesAuthoredMode","mode","authoredAgentStepConfig","step","hasDeferredAgentField","model","kind","provider","thinking","deferredAgentStepConfig","agentStepConfigWithDefaults","completeAgentConfig","agent","plan","undefined","prompt","readConfigString","config","completeAgentField","field","template","defaults","completeAgentDefaults","harness","readConfigHarness","readConfigThinking","resolveAgentDefaults","definitionId","tools","integrations","mcpServers","agentIntegrationMcpServers","args","resolved","errorField","context","trace","push","map","entry","value","Error","error","methods","resolveAgentConfig","code","cause","diagnostics","resolveAgentField","templates","resolveOptionalAgentField","hasTemplates","agentToolsConfig","authoredAgentIntegrationsConfig","configPlan","dispatchPlanField","materializedAgentIntegrationsConfig","providerValue","frozenFieldValue","modelValue","promptIsDeferred","promptValue","jobKey","stepId","id","agentToolContext","snapshot","agentToolSnapshot","name","transport","endpoint","auth","isResidual","isFrozen","hasTemplate","segments","diagnostic","fieldResolution","hasValue","key"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/core/step-config/agent.ts"],"sourcesContent":["import {\n AGENT_INTEGRATION_MCP_AUTH,\n AGENT_INTEGRATION_MCP_ENDPOINT,\n AGENT_INTEGRATION_MCP_SERVER_NAME,\n AGENT_INTEGRATION_MCP_TRANSPORT,\n type AgentIntegrationMcpServerConfigDto,\n type MaterializedAgentIntegrationConfigDto,\n} from '@shipfox/api-agent-dto';\nimport {agentInterModuleContract} from '@shipfox/api-agent-dto/inter-module';\nimport type {WorkflowModel} from '@shipfox/api-definitions-dto';\nimport type {ResolvedField, SiteResolvedField} from '@shipfox/expression';\nimport {isInterModuleKnownError} from '@shipfox/inter-module';\nimport type {AgentThinking} from '@shipfox/workflow-document';\nimport type {AgentDefaultsResolver, ResolvedAgentDefaults} from '#core/agent-defaults.js';\nimport {\n type AgentToolMaterializationContext,\n type AgentToolMaterializationSnapshot,\n materializeAgentIntegrations,\n} from '#core/agent-tools.js';\nimport type {PersistedEvaluationTraceEntry, StepConfigDispatchPlan} from '#core/entities/step.js';\nimport {AgentConfigUnresolvableError} from '#core/errors.js';\nimport {\n completeStepFieldWithTrace,\n literalField,\n resolveStepField,\n type WorkflowStepEvaluationTraceEntry,\n type WorkflowStepTemplateDiagnostic,\n} from './fields.js';\nimport type {WorkflowEvaluationContext} from './workflow-evaluation-context.js';\n\ntype WorkflowModelJob = WorkflowModel['jobs'][number];\ntype WorkflowModelStep = WorkflowModelJob['steps'][number];\ntype WorkflowModelAgentStep = Extract<WorkflowModelStep, {kind: 'agent'}>;\ntype StepConfigMode = 'effective' | 'authored';\ntype FieldResolution =\n | {readonly kind: 'frozen'; readonly value: string}\n | {readonly kind: 'residual'; readonly field: ResolvedField};\n\ninterface AgentFieldResolutions {\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly prompt: FieldResolution;\n readonly model: FieldResolution | undefined;\n readonly provider: FieldResolution | undefined;\n readonly thinking: FieldResolution | undefined;\n readonly hasTemplates: boolean;\n}\n\nexport interface ResolveAgentStepConfigParams {\n readonly jobKey: string;\n readonly step: WorkflowModelAgentStep;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly definitionId: string;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly agentToolContext?: AgentToolMaterializationContext | undefined;\n readonly agentToolSnapshot?: AgentToolMaterializationSnapshot | null | undefined;\n}\n\nexport interface AgentStepConfig {\n readonly config: Record<string, unknown>;\n readonly configPlan: StepConfigDispatchPlan | null;\n readonly diagnostics: readonly WorkflowStepTemplateDiagnostic[];\n readonly trace: readonly WorkflowStepEvaluationTraceEntry[];\n readonly hasTemplates: boolean;\n}\n\nexport async function resolveAgentStepConfig(\n params: ResolveAgentStepConfigParams,\n): Promise<AgentStepConfig> {\n const fields = resolveAgentFields(params);\n const usesAuthoredMode = params.mode === 'authored';\n\n if (usesAuthoredMode) return authoredAgentStepConfig(params.step, fields);\n\n const hasDeferredAgentField =\n fields.model?.kind === 'residual' ||\n fields.provider?.kind === 'residual' ||\n fields.thinking?.kind === 'residual';\n if (hasDeferredAgentField) return deferredAgentStepConfig(params, fields);\n\n return await agentStepConfigWithDefaults(params.step, params, fields);\n}\n\nexport async function completeAgentConfig(params: {\n readonly config: Record<string, unknown>;\n readonly plan: StepConfigDispatchPlan;\n readonly context: WorkflowEvaluationContext;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId: string;\n readonly trace: PersistedEvaluationTraceEntry[];\n}): Promise<void> {\n const agent = params.plan.agent;\n if (agent === undefined) return;\n\n const prompt =\n agent.prompt === undefined\n ? readConfigString(params.config, 'prompt')\n : completeAgentField({\n field: 'agent.prompt',\n template: agent.prompt,\n params,\n });\n const model =\n agent.model === undefined\n ? readConfigString(params.config, 'model')\n : completeAgentField({\n field: 'agent.model',\n template: agent.model,\n params,\n });\n const provider =\n agent.provider === undefined\n ? readConfigString(params.config, 'provider')\n : completeAgentField({\n field: 'agent.provider',\n template: agent.provider,\n params,\n });\n\n const defaults = await completeAgentDefaults({\n harness: agent.harness ?? readConfigHarness(params.config),\n provider,\n model,\n thinking:\n agent.thinking === undefined\n ? readConfigThinking(params.config)\n : completeAgentField({field: 'agent.thinking', template: agent.thinking, params}),\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n });\n params.config.harness = defaults.harness;\n params.config.provider = defaults.provider;\n params.config.model = defaults.model;\n params.config.thinking = defaults.thinking;\n params.config.prompt = prompt;\n if (agent.tools !== undefined) params.config.tools = [...agent.tools];\n const integrations = agent.integrations === undefined ? undefined : [...agent.integrations];\n if (integrations !== undefined) params.config.integrations = integrations;\n const mcpServers =\n agent.mcpServers ??\n (integrations === undefined ? undefined : agentIntegrationMcpServers(integrations));\n if (mcpServers !== undefined) params.config.mcpServers = [...mcpServers];\n}\n\nfunction completeAgentField(args: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly template: ResolvedField;\n readonly params: {\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n readonly trace: PersistedEvaluationTraceEntry[];\n };\n}): string {\n const resolved = completeStepFieldWithTrace({\n field: args.field,\n errorField: args.field,\n template: args.template,\n context: args.params.context,\n definitionId: args.params.definitionId,\n });\n args.params.trace.push(...resolved.trace.map((entry) => ({...entry, field: args.field})));\n return resolved.value;\n}\n\nexport async function completeAgentDefaults(params: {\n readonly harness: WorkflowModelAgentStep['harness'] | undefined;\n readonly provider: string | undefined;\n readonly model: string | undefined;\n readonly thinking: string | undefined;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId: string;\n}): Promise<ResolvedAgentDefaults> {\n if (!params.resolveAgentDefaults) throw new Error('Agent defaults resolver is required');\n\n try {\n return await params.resolveAgentDefaults({\n harness: params.harness,\n provider: params.provider,\n model: params.model,\n thinking: params.thinking,\n });\n } catch (error) {\n if (\n isInterModuleKnownError(agentInterModuleContract.methods.resolveAgentConfig, error) &&\n error.code === 'agent-config-invalid'\n ) {\n const managedProviderId = error.details.managed_provider_id;\n throw new AgentConfigUnresolvableError(params.definitionId, {\n cause: error,\n ...(error.details.message === undefined ? {} : {message: error.details.message}),\n ...(managedProviderId === undefined\n ? {}\n : {code: 'workspace-providers-disabled', managedProviderId}),\n });\n }\n throw error;\n }\n}\n\nfunction resolveAgentFields(params: ResolveAgentStepConfigParams): AgentFieldResolutions {\n const diagnostics: WorkflowStepTemplateDiagnostic[] = [];\n const trace: WorkflowStepEvaluationTraceEntry[] = [];\n const prompt = resolveAgentField({\n field: 'agent.prompt',\n value: params.step.prompt,\n template: params.step.templates?.prompt,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const model = resolveOptionalAgentField({\n field: 'agent.model',\n value: params.step.model,\n template: params.step.templates?.model,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const provider = resolveOptionalAgentField({\n field: 'agent.provider',\n value: params.step.provider,\n template: params.step.templates?.provider,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const thinking = resolveOptionalAgentField({\n field: 'agent.thinking',\n value: params.step.thinking,\n template: params.step.templates?.thinking,\n context: params.context,\n mode: params.mode,\n diagnostics,\n trace,\n definitionId: params.definitionId,\n });\n const hasTemplates =\n params.step.templates?.prompt !== undefined ||\n params.step.templates?.model !== undefined ||\n params.step.templates?.provider !== undefined ||\n params.step.templates?.thinking !== undefined;\n\n return {diagnostics, trace, prompt, model, provider, thinking, hasTemplates};\n}\n\nfunction authoredAgentStepConfig(\n step: WorkflowModelAgentStep,\n fields: AgentFieldResolutions,\n): AgentStepConfig {\n return {\n config: {\n ...(step.provider === undefined ? {} : {provider: step.provider}),\n ...(step.model === undefined ? {} : {model: step.model}),\n ...(step.harness === undefined ? {} : {harness: step.harness}),\n ...(step.thinking === undefined ? {} : {thinking: step.thinking}),\n ...agentToolsConfig(step),\n ...authoredAgentIntegrationsConfig(step),\n prompt: step.prompt,\n },\n configPlan: null,\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nfunction deferredAgentStepConfig(\n params: ResolveAgentStepConfigParams,\n fields: AgentFieldResolutions,\n): AgentStepConfig {\n const {step} = params;\n return {\n config: {},\n configPlan: {\n agent: {\n prompt: dispatchPlanField(fields.prompt),\n ...(fields.model === undefined ? {} : {model: dispatchPlanField(fields.model)}),\n ...(fields.provider === undefined ? {} : {provider: dispatchPlanField(fields.provider)}),\n ...(step.harness === undefined ? {} : {harness: step.harness}),\n ...(fields.thinking === undefined ? {} : {thinking: dispatchPlanField(fields.thinking)}),\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n },\n },\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nasync function agentStepConfigWithDefaults(\n step: WorkflowModelAgentStep,\n params: ResolveAgentStepConfigParams,\n fields: AgentFieldResolutions,\n): Promise<AgentStepConfig> {\n const providerValue = frozenFieldValue(fields.provider);\n const modelValue = frozenFieldValue(fields.model);\n const promptIsDeferred = fields.prompt.kind === 'residual';\n\n const resolved = await completeAgentDefaults({\n harness: step.harness,\n provider: providerValue,\n model: modelValue,\n thinking: frozenFieldValue(fields.thinking),\n resolveAgentDefaults: params.resolveAgentDefaults,\n definitionId: params.definitionId,\n });\n if (promptIsDeferred) {\n return {\n config: {\n provider: resolved.provider,\n model: resolved.model,\n harness: resolved.harness,\n thinking: resolved.thinking,\n },\n configPlan: {\n agent: {\n prompt: dispatchPlanField(fields.prompt),\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n },\n },\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n }\n\n const promptValue = frozenFieldValue(fields.prompt) ?? step.prompt;\n return {\n config: {\n provider: resolved.provider,\n model: resolved.model,\n harness: resolved.harness,\n thinking: resolved.thinking,\n ...agentToolsConfig(step),\n ...materializedAgentIntegrationsConfig(params),\n prompt: promptValue,\n },\n configPlan: null,\n diagnostics: fields.diagnostics,\n trace: fields.trace,\n hasTemplates: fields.hasTemplates,\n };\n}\n\nfunction agentToolsConfig(\n step: WorkflowModelAgentStep,\n): {readonly tools: readonly string[]} | Record<string, never> {\n return step.tools === undefined ? {} : {tools: [...step.tools]};\n}\n\nfunction authoredAgentIntegrationsConfig(\n step: WorkflowModelAgentStep,\n):\n | {readonly integrations: NonNullable<WorkflowModelAgentStep['integrations']>}\n | Record<string, never> {\n return step.integrations === undefined ? {} : {integrations: step.integrations};\n}\n\nfunction materializedAgentIntegrationsConfig(params: ResolveAgentStepConfigParams):\n | {\n readonly integrations: readonly MaterializedAgentIntegrationConfigDto[];\n readonly mcpServers: readonly AgentIntegrationMcpServerConfigDto[];\n }\n | Record<string, never> {\n const integrations = materializeAgentIntegrations({\n jobKey: params.jobKey,\n stepId: params.step.id,\n integrations: params.step.integrations,\n context: params.agentToolContext,\n snapshot: params.agentToolSnapshot,\n });\n return integrations === undefined\n ? {}\n : {integrations, mcpServers: agentIntegrationMcpServers(integrations)};\n}\n\nfunction agentIntegrationMcpServers(\n integrations: readonly MaterializedAgentIntegrationConfigDto[],\n): readonly AgentIntegrationMcpServerConfigDto[] {\n return [\n {\n name: AGENT_INTEGRATION_MCP_SERVER_NAME,\n transport: AGENT_INTEGRATION_MCP_TRANSPORT,\n endpoint: AGENT_INTEGRATION_MCP_ENDPOINT,\n auth: AGENT_INTEGRATION_MCP_AUTH,\n integrations: [...integrations],\n },\n ];\n}\n\nfunction dispatchPlanField(field: FieldResolution): ResolvedField {\n const isResidual = field.kind === 'residual';\n return isResidual ? field.field : literalField(field.value);\n}\n\nfunction frozenFieldValue(field: FieldResolution | undefined): string | undefined {\n const isFrozen = field?.kind === 'frozen';\n return isFrozen ? field.value : undefined;\n}\n\nfunction resolveAgentField(params: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly value: string;\n readonly template: ResolvedField['segments'] | undefined;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly definitionId: string;\n}): FieldResolution {\n const hasTemplate = params.template !== undefined;\n const usesAuthoredMode = params.mode === 'authored';\n if (!hasTemplate || usesAuthoredMode) {\n return {kind: 'frozen', value: params.value};\n }\n\n const resolved = resolveStepField({\n field: params.field,\n template: {segments: params.template},\n context: params.context,\n definitionId: params.definitionId,\n errorField: params.field,\n });\n params.diagnostics.push(\n ...resolved.diagnostics.map((diagnostic) => ({...diagnostic, field: params.field})),\n );\n params.trace.push(...resolved.trace.map((entry) => ({...entry, field: params.field})));\n return fieldResolution(resolved);\n}\n\nfunction resolveOptionalAgentField(params: {\n readonly field: 'agent.prompt' | 'agent.model' | 'agent.provider' | 'agent.thinking';\n readonly value: string | undefined;\n readonly template: ResolvedField['segments'] | undefined;\n readonly context: WorkflowEvaluationContext;\n readonly mode: StepConfigMode;\n readonly diagnostics: WorkflowStepTemplateDiagnostic[];\n readonly trace: WorkflowStepEvaluationTraceEntry[];\n readonly definitionId: string;\n}): FieldResolution | undefined {\n const hasValue = params.value !== undefined;\n if (!hasValue) return undefined;\n return resolveAgentField({...params, value: params.value});\n}\n\nfunction fieldResolution(resolved: SiteResolvedField): FieldResolution {\n if (resolved.kind === 'residual') return {kind: 'residual', field: resolved.field};\n return {kind: 'frozen', value: resolved.value};\n}\n\nfunction readConfigString(config: Record<string, unknown>, key: string): string | undefined {\n const value = config[key];\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction readConfigThinking(config: Record<string, unknown>): AgentThinking | undefined {\n const value = config.thinking;\n return value === 'off' ||\n value === 'minimal' ||\n value === 'low' ||\n value === 'medium' ||\n value === 'high' ||\n value === 'xhigh'\n ? value\n : undefined;\n}\n\nfunction readConfigHarness(\n config: Record<string, unknown>,\n): WorkflowModelAgentStep['harness'] | undefined {\n return config.harness === 'pi' || config.harness === 'claude' ? config.harness : undefined;\n}\n"],"names":["AGENT_INTEGRATION_MCP_AUTH","AGENT_INTEGRATION_MCP_ENDPOINT","AGENT_INTEGRATION_MCP_SERVER_NAME","AGENT_INTEGRATION_MCP_TRANSPORT","agentInterModuleContract","isInterModuleKnownError","materializeAgentIntegrations","AgentConfigUnresolvableError","completeStepFieldWithTrace","literalField","resolveStepField","resolveAgentStepConfig","params","fields","resolveAgentFields","usesAuthoredMode","mode","authoredAgentStepConfig","step","hasDeferredAgentField","model","kind","provider","thinking","deferredAgentStepConfig","agentStepConfigWithDefaults","completeAgentConfig","agent","plan","undefined","prompt","readConfigString","config","completeAgentField","field","template","defaults","completeAgentDefaults","harness","readConfigHarness","readConfigThinking","resolveAgentDefaults","definitionId","tools","integrations","mcpServers","agentIntegrationMcpServers","args","resolved","errorField","context","trace","push","map","entry","value","Error","error","methods","resolveAgentConfig","code","managedProviderId","details","managed_provider_id","cause","message","diagnostics","resolveAgentField","templates","resolveOptionalAgentField","hasTemplates","agentToolsConfig","authoredAgentIntegrationsConfig","configPlan","dispatchPlanField","materializedAgentIntegrationsConfig","providerValue","frozenFieldValue","modelValue","promptIsDeferred","promptValue","jobKey","stepId","id","agentToolContext","snapshot","agentToolSnapshot","name","transport","endpoint","auth","isResidual","isFrozen","hasTemplate","segments","diagnostic","fieldResolution","hasValue","key"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,OAAO,EAEZ,KAAK,YAAY,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAoC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAahG;AA0CD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAqB7C;AAYD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAiBrE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAQ9B"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,OAAO,EAEZ,KAAK,YAAY,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAyC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiBhG;AA0CD,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAqB7C;AAYD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAiBrE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAQ9B"}
@@ -8,6 +8,8 @@ import { toEvaluationTraceDto } from './evaluation-trace.js';
8
8
  function toStepErrorDto(error, category) {
9
9
  if (error === null) return null;
10
10
  const message = typeof error.message === 'string' ? error.message : '';
11
+ const code = typeof error.code === 'string' ? error.code : undefined;
12
+ const managedProviderId = typeof error.managedProviderId === 'string' ? error.managedProviderId : undefined;
11
13
  const exitCode = error.exitCode;
12
14
  const signal = typeof error.signal === 'string' ? error.signal : undefined;
13
15
  const field = typeof error.field === 'string' ? error.field : undefined;
@@ -16,6 +18,12 @@ function toStepErrorDto(error, category) {
16
18
  const agentConfigIssue = agentConfigIssueSchema.safeParse(error.agentConfigIssue);
17
19
  return {
18
20
  message,
21
+ ...code === undefined ? {} : {
22
+ code
23
+ },
24
+ ...managedProviderId === undefined ? {} : {
25
+ managed_provider_id: managedProviderId
26
+ },
19
27
  ...exitCode === null || typeof exitCode === 'number' ? {
20
28
  exit_code: exitCode
21
29
  } : {},
@@ -45,6 +53,12 @@ export function fromStepErrorDto(error) {
45
53
  if (!error) return null;
46
54
  return {
47
55
  message: error.message,
56
+ ...error.code === undefined ? {} : {
57
+ code: error.code
58
+ },
59
+ ...error.managed_provider_id === undefined ? {} : {
60
+ managedProviderId: error.managed_provider_id
61
+ },
48
62
  ...error.exit_code === null || typeof error.exit_code === 'number' ? {
49
63
  exitCode: error.exit_code
50
64
  } : {},