@shipfox/api-workflows-dto 9.3.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  $ shipfox-swc
2
- Successfully compiled: 14 files with swc (309.4ms)
2
+ Successfully compiled: 14 files with swc (211.85ms)
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @shipfox/api-workflows-dto
2
2
 
3
+ ## 10.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 22bf8a2: Classifies runner agent harness startup failures separately from user-fixable agent configuration errors.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [43ce975]
12
+ - @shipfox/api-agent-dto@10.0.0
13
+ - @shipfox/inter-module@0.2.2
14
+
3
15
  ## 9.3.0
4
16
 
5
17
  ### Minor Changes
@@ -33,6 +33,7 @@ export declare const nextStepResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
33
33
  output_invalid: "output_invalid";
34
34
  agent_config_invalid: "agent_config_invalid";
35
35
  agent_invocation_failed: "agent_invocation_failed";
36
+ agent_harness_unavailable: "agent_harness_unavailable";
36
37
  }>>;
37
38
  field: z.ZodOptional<z.ZodString>;
38
39
  source: z.ZodOptional<z.ZodString>;
@@ -83,6 +84,7 @@ export declare const reportStepBodySchema: z.ZodObject<{
83
84
  output_invalid: "output_invalid";
84
85
  agent_config_invalid: "agent_config_invalid";
85
86
  agent_invocation_failed: "agent_invocation_failed";
87
+ agent_harness_unavailable: "agent_harness_unavailable";
86
88
  }>>;
87
89
  field: z.ZodOptional<z.ZodString>;
88
90
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"job-execution.d.ts","sourceRoot":"","sources":["../../src/schemas/job-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,wBAAwB,QAAW,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAwBjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC7B,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,eAAO,MAAM,wBAAwB;;;iBAOnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"job-execution.d.ts","sourceRoot":"","sources":["../../src/schemas/job-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,wBAAwB,QAAW,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAwBjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC7B,CAAC;AAEL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,eAAO,MAAM,wBAAwB;;;iBAOnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -10,6 +10,7 @@ export declare const stepErrorReasonSchema: z.ZodEnum<{
10
10
  output_invalid: "output_invalid";
11
11
  agent_config_invalid: "agent_config_invalid";
12
12
  agent_invocation_failed: "agent_invocation_failed";
13
+ agent_harness_unavailable: "agent_harness_unavailable";
13
14
  }>;
14
15
  export type StepErrorReasonDto = z.infer<typeof stepErrorReasonSchema>;
15
16
  export declare const agentConfigIssueSchema: z.ZodEnum<{
@@ -41,6 +42,7 @@ export declare const stepErrorDtoSchema: z.ZodNullable<z.ZodObject<{
41
42
  output_invalid: "output_invalid";
42
43
  agent_config_invalid: "agent_config_invalid";
43
44
  agent_invocation_failed: "agent_invocation_failed";
45
+ agent_harness_unavailable: "agent_harness_unavailable";
44
46
  }>>;
45
47
  field: z.ZodOptional<z.ZodString>;
46
48
  source: z.ZodOptional<z.ZodString>;
@@ -89,6 +91,7 @@ export declare const stepDtoSchema: z.ZodObject<{
89
91
  output_invalid: "output_invalid";
90
92
  agent_config_invalid: "agent_config_invalid";
91
93
  agent_invocation_failed: "agent_invocation_failed";
94
+ agent_harness_unavailable: "agent_harness_unavailable";
92
95
  }>>;
93
96
  field: z.ZodOptional<z.ZodString>;
94
97
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/schemas/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAUtB,eAAO,MAAM,qBAAqB;;;;;;;;;;;EAWhC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAIzE,eAAO,MAAM,uBAAuB;;;EAA4B,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkBlB,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,wBAAwB;;;iBAQjC,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAexB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAqCvB,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/schemas/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAWtB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAYhC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAIzE,eAAO,MAAM,uBAAuB;;;EAA4B,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkBlB,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,wBAAwB;;;iBAQjC,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAexB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAqCvB,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -2,11 +2,12 @@ import { z } from 'zod';
2
2
  // Machine-readable cause of a step failure, for DB troubleshooting. The runner
3
3
  // reports it and the server stores it as-is. The `checkout_*`, `git_unavailable`,
4
4
  // `workspace_prep_failed`, and `setup_aborted` values cover setup-phase failures.
5
- // For agent steps the cause is split: `agent_config_invalid` is a user-fixable
6
- // configuration error (unknown provider, missing provider credentials on the runner,
7
- // wrong provider/model pair, missing model or prompt), while `agent_invocation_failed`
8
- // covers a genuine provider/API failure once the config is valid (network, 5xx, auth
9
- // rejected at call time). (Aborts are never reported: the step loop stops before reporting.)
5
+ // For agent steps the cause is split three ways: `agent_config_invalid` is a user-fixable
6
+ // configuration error and carries an `agent_config_issue`; `agent_invocation_failed`
7
+ // covers a provider/API failure once the configuration is valid; and
8
+ // `agent_harness_unavailable` means the runner could not start its harness, so the model
9
+ // was never called. The latter carries no `agent_config_issue`, because every issue code
10
+ // names a user-fixable cause. (Aborts are never reported: the step loop stops before reporting.)
10
11
  export const stepErrorReasonSchema = z.enum([
11
12
  'checkout_failed',
12
13
  'checkout_auth_failed',
@@ -17,7 +18,8 @@ export const stepErrorReasonSchema = z.enum([
17
18
  'config_unresolvable',
18
19
  'output_invalid',
19
20
  'agent_config_invalid',
20
- 'agent_invocation_failed'
21
+ 'agent_invocation_failed',
22
+ 'agent_harness_unavailable'
21
23
  ]);
22
24
  export const agentConfigIssueSchema = z.enum([
23
25
  'step_config_invalid',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schemas/step.ts"],"sourcesContent":["import {z} from 'zod';\n\n// Machine-readable cause of a step failure, for DB troubleshooting. The runner\n// reports it and the server stores it as-is. The `checkout_*`, `git_unavailable`,\n// `workspace_prep_failed`, and `setup_aborted` values cover setup-phase failures.\n// For agent steps the cause is split: `agent_config_invalid` is a user-fixable\n// configuration error (unknown provider, missing provider credentials on the runner,\n// wrong provider/model pair, missing model or prompt), while `agent_invocation_failed`\n// covers a genuine provider/API failure once the config is valid (network, 5xx, auth\n// rejected at call time). (Aborts are never reported: the step loop stops before reporting.)\nexport const stepErrorReasonSchema = z.enum([\n 'checkout_failed',\n 'checkout_auth_failed',\n 'checkout_unavailable',\n 'git_unavailable',\n 'workspace_prep_failed',\n 'setup_aborted',\n 'config_unresolvable',\n 'output_invalid',\n 'agent_config_invalid',\n 'agent_invocation_failed',\n]);\n\nexport type StepErrorReasonDto = z.infer<typeof stepErrorReasonSchema>;\n\nexport const agentConfigIssueSchema = z.enum([\n 'step_config_invalid',\n 'provider_not_configured',\n 'provider_unsupported',\n 'model_unavailable',\n 'credentials_invalid',\n]);\n\nexport type AgentConfigIssueDto = z.infer<typeof agentConfigIssueSchema>;\n\n// Whether a failure is infrastructure (`setup`) or user-code (`user`). Server-derived\n// from the step's type on the read path; the runner never sends it.\nexport const stepErrorCategorySchema = z.enum(['setup', 'user']);\n\nexport type StepErrorCategoryDto = z.infer<typeof stepErrorCategorySchema>;\n\nexport const STEP_ERROR_MESSAGE_MAX_LENGTH = 2048;\n\nexport const stepErrorDtoSchema = z\n .object({\n message: z.string().max(STEP_ERROR_MESSAGE_MAX_LENGTH),\n exit_code: z.number().int().nullable().optional(),\n signal: z.string().optional(),\n reason: stepErrorReasonSchema.optional(),\n field: z.string().optional(),\n source: z.string().optional(),\n agent_config_issue: agentConfigIssueSchema.optional(),\n category: stepErrorCategorySchema.optional(),\n })\n .refine(\n (error) => error.agent_config_issue === undefined || error.reason === 'agent_config_invalid',\n {\n message: 'agent_config_issue requires reason to be agent_config_invalid',\n path: ['agent_config_issue'],\n },\n )\n .nullable();\n\nexport type StepErrorDto = z.infer<typeof stepErrorDtoSchema>;\n\nexport const stepSourceLocationSchema = z\n .object({\n start_line: z.number().int().positive(),\n end_line: z.number().int().positive(),\n })\n .refine((value) => value.end_line >= value.start_line, {\n message: 'end_line must be greater than or equal to start_line',\n path: ['end_line'],\n });\n\nexport type StepSourceLocationDto = z.infer<typeof stepSourceLocationSchema>;\n\nexport const stepDtoSchema = z.object({\n id: z.string().uuid(),\n job_execution_id: z.string().uuid(),\n key: z.string().nullable(),\n name: z.string(),\n source_location: stepSourceLocationSchema.nullable(),\n status: z.string(),\n type: z.string(),\n config: z.record(z.string(), z.unknown()),\n error: stepErrorDtoSchema,\n position: z.number(),\n // Execution-attempt identity of the current projection (>1 after a restart).\n current_attempt: z.number().int(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport type StepDto = z.infer<typeof stepDtoSchema>;\n\nexport const stepGateResultDtoSchema = z\n .discriminatedUnion('kind', [\n z.object({\n kind: z.literal('none'),\n }),\n z.object({\n kind: z.literal('not_evaluated'),\n }),\n z.object({\n kind: z.literal('passed'),\n passed: z.literal(true),\n source: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('failed'),\n passed: z.literal(false),\n source: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('uncheckable'),\n passed: z.literal(false),\n uncheckable: z.literal(true),\n reason: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('evaluation_error'),\n reason: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('unknown'),\n data: z.record(z.string(), z.unknown()),\n }),\n ])\n .nullable();\n\nexport type StepGateResultDto = z.infer<typeof stepGateResultDtoSchema>;\n\n// One execution attempt of a step (the durable history behind the current\n// projection). Surfaced in run details so a restarted step's attempts are visible.\nexport const stepAttemptDtoSchema = z.object({\n id: z.string().uuid(),\n step_id: z.string().uuid(),\n attempt: z.number().int().positive(),\n execution_order: z.number().int().positive(),\n status: z.string(),\n exit_code: z.number().int().nullable(),\n // `output` and `error` are opaque audit blobs: the raw jsonb persisted for the\n // attempt, NOT snake_case-normalized (their nested keys may be camelCase, e.g.\n // `error.exitCode`). Consume the top-level snake_case `exit_code` for the\n // numeric code; treat these as display/debug payloads.\n output: z.record(z.string(), z.unknown()).nullable(),\n outputs: z.record(z.string(), z.unknown()).nullable(),\n response: z.string().nullable(),\n error: z.record(z.string(), z.unknown()).nullable(),\n // `unknown.data` is the raw jsonb gate payload for legacy or unrecognized\n // rows; nested keys are not snake_case-normalized.\n gate_result: stepGateResultDtoSchema,\n restart_feedback: z.string().nullable(),\n started_at: z.string(),\n finished_at: z.string().nullable(),\n});\n\nexport type StepAttemptDto = z.infer<typeof stepAttemptDtoSchema>;\n"],"names":["z","stepErrorReasonSchema","enum","agentConfigIssueSchema","stepErrorCategorySchema","STEP_ERROR_MESSAGE_MAX_LENGTH","stepErrorDtoSchema","object","message","string","max","exit_code","number","int","nullable","optional","signal","reason","field","source","agent_config_issue","category","refine","error","undefined","path","stepSourceLocationSchema","start_line","positive","end_line","value","stepDtoSchema","id","uuid","job_execution_id","key","name","source_location","status","type","config","record","unknown","position","current_attempt","created_at","updated_at","stepGateResultDtoSchema","discriminatedUnion","kind","literal","passed","uncheckable","data","stepAttemptDtoSchema","step_id","attempt","execution_order","output","outputs","response","gate_result","restart_feedback","started_at","finished_at"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,+EAA+E;AAC/E,kFAAkF;AAClF,kFAAkF;AAClF,+EAA+E;AAC/E,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,6FAA6F;AAC7F,OAAO,MAAMC,wBAAwBD,EAAEE,IAAI,CAAC;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,EAAE;AAIH,OAAO,MAAMC,yBAAyBH,EAAEE,IAAI,CAAC;IAC3C;IACA;IACA;IACA;IACA;CACD,EAAE;AAIH,sFAAsF;AACtF,oEAAoE;AACpE,OAAO,MAAME,0BAA0BJ,EAAEE,IAAI,CAAC;IAAC;IAAS;CAAO,EAAE;AAIjE,OAAO,MAAMG,gCAAgC,KAAK;AAElD,OAAO,MAAMC,qBAAqBN,EAC/BO,MAAM,CAAC;IACNC,SAASR,EAAES,MAAM,GAAGC,GAAG,CAACL;IACxBM,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ,GAAGC,QAAQ;IAC/CC,QAAQhB,EAAES,MAAM,GAAGM,QAAQ;IAC3BE,QAAQhB,sBAAsBc,QAAQ;IACtCG,OAAOlB,EAAES,MAAM,GAAGM,QAAQ;IAC1BI,QAAQnB,EAAES,MAAM,GAAGM,QAAQ;IAC3BK,oBAAoBjB,uBAAuBY,QAAQ;IACnDM,UAAUjB,wBAAwBW,QAAQ;AAC5C,GACCO,MAAM,CACL,CAACC,QAAUA,MAAMH,kBAAkB,KAAKI,aAAaD,MAAMN,MAAM,KAAK,wBACtE;IACET,SAAS;IACTiB,MAAM;QAAC;KAAqB;AAC9B,GAEDX,QAAQ,GAAG;AAId,OAAO,MAAMY,2BAA2B1B,EACrCO,MAAM,CAAC;IACNoB,YAAY3B,EAAEY,MAAM,GAAGC,GAAG,GAAGe,QAAQ;IACrCC,UAAU7B,EAAEY,MAAM,GAAGC,GAAG,GAAGe,QAAQ;AACrC,GACCN,MAAM,CAAC,CAACQ,QAAUA,MAAMD,QAAQ,IAAIC,MAAMH,UAAU,EAAE;IACrDnB,SAAS;IACTiB,MAAM;QAAC;KAAW;AACpB,GAAG;AAIL,OAAO,MAAMM,gBAAgB/B,EAAEO,MAAM,CAAC;IACpCyB,IAAIhC,EAAES,MAAM,GAAGwB,IAAI;IACnBC,kBAAkBlC,EAAES,MAAM,GAAGwB,IAAI;IACjCE,KAAKnC,EAAES,MAAM,GAAGK,QAAQ;IACxBsB,MAAMpC,EAAES,MAAM;IACd4B,iBAAiBX,yBAAyBZ,QAAQ;IAClDwB,QAAQtC,EAAES,MAAM;IAChB8B,MAAMvC,EAAES,MAAM;IACd+B,QAAQxC,EAAEyC,MAAM,CAACzC,EAAES,MAAM,IAAIT,EAAE0C,OAAO;IACtCnB,OAAOjB;IACPqC,UAAU3C,EAAEY,MAAM;IAClB,6EAA6E;IAC7EgC,iBAAiB5C,EAAEY,MAAM,GAAGC,GAAG;IAC/BgC,YAAY7C,EAAES,MAAM;IACpBqC,YAAY9C,EAAES,MAAM;AACtB,GAAG;AAIH,OAAO,MAAMsC,0BAA0B/C,EACpCgD,kBAAkB,CAAC,QAAQ;IAC1BhD,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;IAClB;IACAlD,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;IAClB;IACAlD,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;QAChBC,QAAQnD,EAAEkD,OAAO,CAAC;QAClB/B,QAAQnB,EAAES,MAAM;QAChBE,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACtC;IACAd,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;QAChBC,QAAQnD,EAAEkD,OAAO,CAAC;QAClB/B,QAAQnB,EAAES,MAAM;QAChBE,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACtC;IACAd,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;QAChBC,QAAQnD,EAAEkD,OAAO,CAAC;QAClBE,aAAapD,EAAEkD,OAAO,CAAC;QACvBjC,QAAQjB,EAAES,MAAM;QAChBE,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACtC;IACAd,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;QAChBjC,QAAQjB,EAAES,MAAM;QAChBE,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACtC;IACAd,EAAEO,MAAM,CAAC;QACP0C,MAAMjD,EAAEkD,OAAO,CAAC;QAChBG,MAAMrD,EAAEyC,MAAM,CAACzC,EAAES,MAAM,IAAIT,EAAE0C,OAAO;IACtC;CACD,EACA5B,QAAQ,GAAG;AAId,0EAA0E;AAC1E,mFAAmF;AACnF,OAAO,MAAMwC,uBAAuBtD,EAAEO,MAAM,CAAC;IAC3CyB,IAAIhC,EAAES,MAAM,GAAGwB,IAAI;IACnBsB,SAASvD,EAAES,MAAM,GAAGwB,IAAI;IACxBuB,SAASxD,EAAEY,MAAM,GAAGC,GAAG,GAAGe,QAAQ;IAClC6B,iBAAiBzD,EAAEY,MAAM,GAAGC,GAAG,GAAGe,QAAQ;IAC1CU,QAAQtC,EAAES,MAAM;IAChBE,WAAWX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACpC,+EAA+E;IAC/E,+EAA+E;IAC/E,0EAA0E;IAC1E,uDAAuD;IACvD4C,QAAQ1D,EAAEyC,MAAM,CAACzC,EAAES,MAAM,IAAIT,EAAE0C,OAAO,IAAI5B,QAAQ;IAClD6C,SAAS3D,EAAEyC,MAAM,CAACzC,EAAES,MAAM,IAAIT,EAAE0C,OAAO,IAAI5B,QAAQ;IACnD8C,UAAU5D,EAAES,MAAM,GAAGK,QAAQ;IAC7BS,OAAOvB,EAAEyC,MAAM,CAACzC,EAAES,MAAM,IAAIT,EAAE0C,OAAO,IAAI5B,QAAQ;IACjD,0EAA0E;IAC1E,mDAAmD;IACnD+C,aAAad;IACbe,kBAAkB9D,EAAES,MAAM,GAAGK,QAAQ;IACrCiD,YAAY/D,EAAES,MAAM;IACpBuD,aAAahE,EAAES,MAAM,GAAGK,QAAQ;AAClC,GAAG"}
1
+ {"version":3,"sources":["../../src/schemas/step.ts"],"sourcesContent":["import {z} from 'zod';\n\n// Machine-readable cause of a step failure, for DB troubleshooting. The runner\n// reports it and the server stores it as-is. The `checkout_*`, `git_unavailable`,\n// `workspace_prep_failed`, and `setup_aborted` values cover setup-phase failures.\n// For agent steps the cause is split three ways: `agent_config_invalid` is a user-fixable\n// configuration error and carries an `agent_config_issue`; `agent_invocation_failed`\n// covers a provider/API failure once the configuration is valid; and\n// `agent_harness_unavailable` means the runner could not start its harness, so the model\n// was never called. The latter carries no `agent_config_issue`, because every issue code\n// names a user-fixable cause. (Aborts are never reported: the step loop stops before reporting.)\nexport const stepErrorReasonSchema = z.enum([\n 'checkout_failed',\n 'checkout_auth_failed',\n 'checkout_unavailable',\n 'git_unavailable',\n 'workspace_prep_failed',\n 'setup_aborted',\n 'config_unresolvable',\n 'output_invalid',\n 'agent_config_invalid',\n 'agent_invocation_failed',\n 'agent_harness_unavailable',\n]);\n\nexport type StepErrorReasonDto = z.infer<typeof stepErrorReasonSchema>;\n\nexport const agentConfigIssueSchema = z.enum([\n 'step_config_invalid',\n 'provider_not_configured',\n 'provider_unsupported',\n 'model_unavailable',\n 'credentials_invalid',\n]);\n\nexport type AgentConfigIssueDto = z.infer<typeof agentConfigIssueSchema>;\n\n// Whether a failure is infrastructure (`setup`) or user-code (`user`). Server-derived\n// from the step's type on the read path; the runner never sends it.\nexport const stepErrorCategorySchema = z.enum(['setup', 'user']);\n\nexport type StepErrorCategoryDto = z.infer<typeof stepErrorCategorySchema>;\n\nexport const STEP_ERROR_MESSAGE_MAX_LENGTH = 2048;\n\nexport const stepErrorDtoSchema = z\n .object({\n message: z.string().max(STEP_ERROR_MESSAGE_MAX_LENGTH),\n exit_code: z.number().int().nullable().optional(),\n signal: z.string().optional(),\n reason: stepErrorReasonSchema.optional(),\n field: z.string().optional(),\n source: z.string().optional(),\n agent_config_issue: agentConfigIssueSchema.optional(),\n category: stepErrorCategorySchema.optional(),\n })\n .refine(\n (error) => error.agent_config_issue === undefined || error.reason === 'agent_config_invalid',\n {\n message: 'agent_config_issue requires reason to be agent_config_invalid',\n path: ['agent_config_issue'],\n },\n )\n .nullable();\n\nexport type StepErrorDto = z.infer<typeof stepErrorDtoSchema>;\n\nexport const stepSourceLocationSchema = z\n .object({\n start_line: z.number().int().positive(),\n end_line: z.number().int().positive(),\n })\n .refine((value) => value.end_line >= value.start_line, {\n message: 'end_line must be greater than or equal to start_line',\n path: ['end_line'],\n });\n\nexport type StepSourceLocationDto = z.infer<typeof stepSourceLocationSchema>;\n\nexport const stepDtoSchema = z.object({\n id: z.string().uuid(),\n job_execution_id: z.string().uuid(),\n key: z.string().nullable(),\n name: z.string(),\n source_location: stepSourceLocationSchema.nullable(),\n status: z.string(),\n type: z.string(),\n config: z.record(z.string(), z.unknown()),\n error: stepErrorDtoSchema,\n position: z.number(),\n // Execution-attempt identity of the current projection (>1 after a restart).\n current_attempt: z.number().int(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport type StepDto = z.infer<typeof stepDtoSchema>;\n\nexport const stepGateResultDtoSchema = z\n .discriminatedUnion('kind', [\n z.object({\n kind: z.literal('none'),\n }),\n z.object({\n kind: z.literal('not_evaluated'),\n }),\n z.object({\n kind: z.literal('passed'),\n passed: z.literal(true),\n source: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('failed'),\n passed: z.literal(false),\n source: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('uncheckable'),\n passed: z.literal(false),\n uncheckable: z.literal(true),\n reason: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('evaluation_error'),\n reason: z.string(),\n exit_code: z.number().int().nullable(),\n }),\n z.object({\n kind: z.literal('unknown'),\n data: z.record(z.string(), z.unknown()),\n }),\n ])\n .nullable();\n\nexport type StepGateResultDto = z.infer<typeof stepGateResultDtoSchema>;\n\n// One execution attempt of a step (the durable history behind the current\n// projection). Surfaced in run details so a restarted step's attempts are visible.\nexport const stepAttemptDtoSchema = z.object({\n id: z.string().uuid(),\n step_id: z.string().uuid(),\n attempt: z.number().int().positive(),\n execution_order: z.number().int().positive(),\n status: z.string(),\n exit_code: z.number().int().nullable(),\n // `output` and `error` are opaque audit blobs: the raw jsonb persisted for the\n // attempt, NOT snake_case-normalized (their nested keys may be camelCase, e.g.\n // `error.exitCode`). Consume the top-level snake_case `exit_code` for the\n // numeric code; treat these as display/debug payloads.\n output: z.record(z.string(), z.unknown()).nullable(),\n outputs: z.record(z.string(), z.unknown()).nullable(),\n response: z.string().nullable(),\n error: z.record(z.string(), z.unknown()).nullable(),\n // `unknown.data` is the raw jsonb gate payload for legacy or unrecognized\n // rows; nested keys are not snake_case-normalized.\n gate_result: stepGateResultDtoSchema,\n restart_feedback: z.string().nullable(),\n started_at: z.string(),\n finished_at: z.string().nullable(),\n});\n\nexport type StepAttemptDto = z.infer<typeof stepAttemptDtoSchema>;\n"],"names":["z","stepErrorReasonSchema","enum","agentConfigIssueSchema","stepErrorCategorySchema","STEP_ERROR_MESSAGE_MAX_LENGTH","stepErrorDtoSchema","object","message","string","max","exit_code","number","int","nullable","optional","signal","reason","field","source","agent_config_issue","category","refine","error","undefined","path","stepSourceLocationSchema","start_line","positive","end_line","value","stepDtoSchema","id","uuid","job_execution_id","key","name","source_location","status","type","config","record","unknown","position","current_attempt","created_at","updated_at","stepGateResultDtoSchema","discriminatedUnion","kind","literal","passed","uncheckable","data","stepAttemptDtoSchema","step_id","attempt","execution_order","output","outputs","response","gate_result","restart_feedback","started_at","finished_at"],"mappings":"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"}
@@ -62,6 +62,7 @@ export declare const workflowRunStepDetailDtoSchema: z.ZodObject<{
62
62
  output_invalid: "output_invalid";
63
63
  agent_config_invalid: "agent_config_invalid";
64
64
  agent_invocation_failed: "agent_invocation_failed";
65
+ agent_harness_unavailable: "agent_harness_unavailable";
65
66
  }>>;
66
67
  field: z.ZodOptional<z.ZodString>;
67
68
  source: z.ZodOptional<z.ZodString>;
@@ -211,6 +212,7 @@ export declare const workflowRunJobExecutionDetailDtoSchema: z.ZodObject<{
211
212
  output_invalid: "output_invalid";
212
213
  agent_config_invalid: "agent_config_invalid";
213
214
  agent_invocation_failed: "agent_invocation_failed";
215
+ agent_harness_unavailable: "agent_harness_unavailable";
214
216
  }>>;
215
217
  field: z.ZodOptional<z.ZodString>;
216
218
  source: z.ZodOptional<z.ZodString>;
@@ -435,6 +437,7 @@ export declare const workflowRunJobDetailDtoSchema: z.ZodObject<{
435
437
  output_invalid: "output_invalid";
436
438
  agent_config_invalid: "agent_config_invalid";
437
439
  agent_invocation_failed: "agent_invocation_failed";
440
+ agent_harness_unavailable: "agent_harness_unavailable";
438
441
  }>>;
439
442
  field: z.ZodOptional<z.ZodString>;
440
443
  source: z.ZodOptional<z.ZodString>;
@@ -706,6 +709,7 @@ export declare const workflowRunDetailResponseSchema: z.ZodObject<{
706
709
  output_invalid: "output_invalid";
707
710
  agent_config_invalid: "agent_config_invalid";
708
711
  agent_invocation_failed: "agent_invocation_failed";
712
+ agent_harness_unavailable: "agent_harness_unavailable";
709
713
  }>>;
710
714
  field: z.ZodOptional<z.ZodString>;
711
715
  source: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-run-detail.d.ts","sourceRoot":"","sources":["../../src/schemas/workflow-run-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAehC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEjD,CAAC;AAEH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAIpF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG1C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
1
+ {"version":3,"file":"workflow-run-detail.d.ts","sourceRoot":"","sources":["../../src/schemas/workflow-run-detail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAehC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEjD,CAAC;AAEH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAIpF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG1C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}