@relayflows/sdk 2.0.38 → 2.0.40

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.
Files changed (115) hide show
  1. package/dist/agent-transcript.d.ts +9 -0
  2. package/dist/agent-transcript.d.ts.map +1 -1
  3. package/dist/agent-transcript.js +12 -0
  4. package/dist/agent-transcript.js.map +1 -1
  5. package/dist/authored-node-runner.d.ts.map +1 -1
  6. package/dist/authored-node-runner.js +22 -4
  7. package/dist/authored-node-runner.js.map +1 -1
  8. package/dist/authored-root.js +5 -6
  9. package/dist/authored-root.js.map +1 -1
  10. package/dist/authored-worker-step.d.ts.map +1 -1
  11. package/dist/authored-worker-step.js +52 -3
  12. package/dist/authored-worker-step.js.map +1 -1
  13. package/dist/cli/cloud-deploy.d.ts +9 -1
  14. package/dist/cli/cloud-deploy.d.ts.map +1 -1
  15. package/dist/cli/cloud-deploy.js +24 -5
  16. package/dist/cli/cloud-deploy.js.map +1 -1
  17. package/dist/cli/cloud-versions.d.ts +22 -0
  18. package/dist/cli/cloud-versions.d.ts.map +1 -0
  19. package/dist/cli/cloud-versions.js +96 -0
  20. package/dist/cli/cloud-versions.js.map +1 -0
  21. package/dist/cli/step-evidence.d.ts +5 -0
  22. package/dist/cli/step-evidence.d.ts.map +1 -1
  23. package/dist/cli/step-evidence.js +45 -7
  24. package/dist/cli/step-evidence.js.map +1 -1
  25. package/dist/cli/step-failure.d.ts.map +1 -1
  26. package/dist/cli/step-failure.js +13 -0
  27. package/dist/cli/step-failure.js.map +1 -1
  28. package/dist/cli-commands.d.ts +27 -0
  29. package/dist/cli-commands.d.ts.map +1 -1
  30. package/dist/cli-commands.js +18 -0
  31. package/dist/cli-commands.js.map +1 -1
  32. package/dist/cli-transport-evidence.d.ts +30 -0
  33. package/dist/cli-transport-evidence.d.ts.map +1 -0
  34. package/dist/cli-transport-evidence.js +31 -0
  35. package/dist/cli-transport-evidence.js.map +1 -0
  36. package/dist/cli.d.ts +9 -0
  37. package/dist/cli.d.ts.map +1 -1
  38. package/dist/cli.js +17 -0
  39. package/dist/cli.js.map +1 -1
  40. package/dist/cloud-deploy.d.ts +17 -0
  41. package/dist/cloud-deploy.d.ts.map +1 -1
  42. package/dist/cloud-deploy.js +8 -1
  43. package/dist/cloud-deploy.js.map +1 -1
  44. package/dist/cloud-versions-wire.d.ts +25 -0
  45. package/dist/cloud-versions-wire.d.ts.map +1 -0
  46. package/dist/cloud-versions-wire.js +39 -0
  47. package/dist/cloud-versions-wire.js.map +1 -0
  48. package/dist/cloud-versions.d.ts +47 -0
  49. package/dist/cloud-versions.d.ts.map +1 -0
  50. package/dist/cloud-versions.js +131 -0
  51. package/dist/cloud-versions.js.map +1 -0
  52. package/dist/compile.d.ts +3 -1
  53. package/dist/compile.d.ts.map +1 -1
  54. package/dist/compile.js +37 -13
  55. package/dist/compile.js.map +1 -1
  56. package/dist/failure-kinds.d.ts +13 -0
  57. package/dist/failure-kinds.d.ts.map +1 -1
  58. package/dist/failure-kinds.js.map +1 -1
  59. package/dist/pty-sidechannel.d.ts +17 -0
  60. package/dist/pty-sidechannel.d.ts.map +1 -1
  61. package/dist/pty-sidechannel.js +41 -2
  62. package/dist/pty-sidechannel.js.map +1 -1
  63. package/dist/spec.d.ts +6 -1
  64. package/dist/spec.d.ts.map +1 -1
  65. package/dist/spec.js.map +1 -1
  66. package/dist/step-fields.d.ts +2 -2
  67. package/dist/step-fields.d.ts.map +1 -1
  68. package/dist/step-fields.js +2 -1
  69. package/dist/step-fields.js.map +1 -1
  70. package/dist/validate.d.ts +2 -0
  71. package/dist/validate.d.ts.map +1 -1
  72. package/dist/validate.js +18 -0
  73. package/dist/validate.js.map +1 -1
  74. package/dist/worker-cli.d.ts +10 -1
  75. package/dist/worker-cli.d.ts.map +1 -1
  76. package/dist/worker-cli.js +116 -44
  77. package/dist/worker-cli.js.map +1 -1
  78. package/dist/worker-spend.d.ts.map +1 -1
  79. package/dist/worker-spend.js +4 -1
  80. package/dist/worker-spend.js.map +1 -1
  81. package/dist/worker.d.ts.map +1 -1
  82. package/dist/worker.js +15 -4
  83. package/dist/worker.js.map +1 -1
  84. package/dist/wrapper-session.d.ts +2 -0
  85. package/dist/wrapper-session.d.ts.map +1 -1
  86. package/dist/wrapper-session.js +29 -10
  87. package/dist/wrapper-session.js.map +1 -1
  88. package/dist/yaml-helpers.js +1 -1
  89. package/dist/yaml-helpers.js.map +1 -1
  90. package/package.json +2 -2
  91. package/src/agent-transcript.ts +12 -0
  92. package/src/authored-node-runner.ts +23 -5
  93. package/src/authored-root.ts +5 -6
  94. package/src/authored-worker-step.ts +58 -3
  95. package/src/cli/cloud-deploy.ts +21 -7
  96. package/src/cli/cloud-versions.ts +103 -0
  97. package/src/cli/step-evidence.ts +51 -7
  98. package/src/cli/step-failure.ts +13 -0
  99. package/src/cli-commands.ts +18 -0
  100. package/src/cli-transport-evidence.ts +70 -0
  101. package/src/cli.ts +15 -0
  102. package/src/cloud-deploy.ts +24 -3
  103. package/src/cloud-versions-wire.ts +58 -0
  104. package/src/cloud-versions.ts +179 -0
  105. package/src/compile.ts +39 -13
  106. package/src/failure-kinds.ts +13 -0
  107. package/src/pty-sidechannel.ts +38 -2
  108. package/src/spec.ts +6 -1
  109. package/src/step-fields.ts +2 -1
  110. package/src/validate.ts +18 -0
  111. package/src/worker-cli.ts +140 -42
  112. package/src/worker-spend.ts +4 -1
  113. package/src/worker.ts +21 -4
  114. package/src/wrapper-session.ts +32 -10
  115. package/src/yaml-helpers.ts +1 -1
@@ -3,7 +3,7 @@ export declare const FLOW_FIELDS: readonly ["version", "name", "description", "c
3
3
  /** Closed named-agent declaration schema. */
4
4
  export declare const AGENT_DECLARATION_FIELDS: readonly ["cli", "model"];
5
5
  /** Fields shared by every authoring step, regardless of its verb. */
6
- export declare const STEP_COMMON_FIELDS: readonly ["id", "type", "dependsOn", "input", "verification", "maxIterations", "memory", "requirements"];
6
+ export declare const STEP_COMMON_FIELDS: readonly ["id", "type", "dependsOn", "input", "verification", "maxIterations", "transportRetries", "memory", "requirements"];
7
7
  /**
8
8
  * Closed verb-specific authoring schema (RFC-0001 decision 13). Validation
9
9
  * consumes this descriptor directly so a new optional field cannot bypass the
@@ -12,6 +12,6 @@ export declare const STEP_COMMON_FIELDS: readonly ["id", "type", "dependsOn", "i
12
12
  export declare const STEP_FIELDS_BY_TYPE: {
13
13
  readonly deterministic: readonly ["command", "timeoutMs", "lease_ms", "onNonZero"];
14
14
  readonly llm: readonly ["prompt", "model", "cli", "output"];
15
- readonly agent: readonly ["instruction", "agent", "cli", "model", "cwd", "transport", "surfaces", "recoveryMode", "permissions", "output"];
15
+ readonly agent: readonly ["timeoutMs", "instruction", "agent", "cli", "model", "cwd", "transport", "surfaces", "recoveryMode", "permissions", "output"];
16
16
  };
17
17
  //# sourceMappingURL=step-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-fields.d.ts","sourceRoot":"","sources":["../src/step-fields.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,eAAO,MAAM,WAAW,mHAWd,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,2BAA4B,CAAC;AAElE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,0GASrB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;CAIwB,CAAC"}
1
+ {"version":3,"file":"step-fields.d.ts","sourceRoot":"","sources":["../src/step-fields.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,eAAO,MAAM,WAAW,mHAWd,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,2BAA4B,CAAC;AAElE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,8HAUrB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;CAIwB,CAAC"}
@@ -21,6 +21,7 @@ export const STEP_COMMON_FIELDS = [
21
21
  'input',
22
22
  'verification',
23
23
  'maxIterations',
24
+ 'transportRetries',
24
25
  'memory',
25
26
  'requirements',
26
27
  ];
@@ -32,6 +33,6 @@ export const STEP_COMMON_FIELDS = [
32
33
  export const STEP_FIELDS_BY_TYPE = {
33
34
  deterministic: ['command', 'timeoutMs', 'lease_ms', 'onNonZero'],
34
35
  llm: ['prompt', 'model', 'cli', 'output'],
35
- agent: ['instruction', 'agent', 'cli', 'model', 'cwd', 'transport', 'surfaces', 'recoveryMode', 'permissions', 'output'],
36
+ agent: ['timeoutMs', 'instruction', 'agent', 'cli', 'model', 'cwd', 'transport', 'surfaces', 'recoveryMode', 'permissions', 'output'],
36
37
  };
37
38
  //# sourceMappingURL=step-fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"step-fields.js","sourceRoot":"","sources":["../src/step-fields.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS;IACT,MAAM;IACN,aAAa;IACb,KAAK;IACL,QAAQ;IACR,UAAU;IACV,OAAO;IACP,QAAQ;IACR,WAAW;IACX,OAAO;CACC,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC;AAElE,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,MAAM;IACN,WAAW;IACX,OAAO;IACP,cAAc;IACd,eAAe;IACf,QAAQ;IACR,cAAc;CACN,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC;IAChE,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;IACzC,KAAK,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC;CAClE,CAAC"}
1
+ {"version":3,"file":"step-fields.js","sourceRoot":"","sources":["../src/step-fields.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS;IACT,MAAM;IACN,aAAa;IACb,KAAK;IACL,QAAQ;IACR,UAAU;IACV,OAAO;IACP,QAAQ;IACR,WAAW;IACX,OAAO;CACC,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC;AAElE,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,MAAM;IACN,WAAW;IACX,OAAO;IACP,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,cAAc;CACN,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC;IAChE,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;IACzC,KAAK,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC;CAC/E,CAAC"}
@@ -4,4 +4,6 @@ export interface ValidationResult {
4
4
  }
5
5
  /** Validate a parsed spec object. Returns `{ok, errors}`; never throws. */
6
6
  export declare function validateSpec(spec: unknown): ValidationResult;
7
+ /** A transport retry budget the kernel can deserialize. */
8
+ export declare function isTransportRetries(v: unknown): v is number;
7
9
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA0iBD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAS5D"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAojBD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAS5D;AAOD,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAE1D"}
package/dist/validate.js CHANGED
@@ -365,6 +365,9 @@ class Validator {
365
365
  if (st['maxIterations'] !== undefined && !isPosInt(st['maxIterations'])) {
366
366
  this.fail(`${at}.maxIterations: expected a positive integer`);
367
367
  }
368
+ if (st['transportRetries'] !== undefined && !isTransportRetries(st['transportRetries'])) {
369
+ this.fail(`${at}.transportRetries: expected a non-negative integer no greater than ${KERNEL_U32_MAX}`);
370
+ }
368
371
  if (type === 'deterministic') {
369
372
  this.validateDeterministic(st, at);
370
373
  }
@@ -456,6 +459,15 @@ class Validator {
456
459
  this.validateCli(st.cli, at);
457
460
  }
458
461
  validateAgent(st, at) {
462
+ if (st.timeoutMs !== undefined) {
463
+ if (!isPosInt(st.timeoutMs) || st.timeoutMs > 60 * 60_000) {
464
+ this.fail(`${at}.timeoutMs: expected a positive integer at most 3600000 (60 minutes)`);
465
+ }
466
+ if (st.transport === 'relay')
467
+ this.fail(`${at}.timeoutMs: unsupported with relay transport`);
468
+ if ((st.maxIterations ?? 1) > 1)
469
+ this.fail(`${at}.timeoutMs: requires maxIterations 1`);
470
+ }
459
471
  if (!isNonEmptyString(st.instruction)) {
460
472
  this.fail(`${at}.instruction: expected a non-empty string`);
461
473
  }
@@ -575,6 +587,12 @@ export function validateSpec(spec) {
575
587
  }
576
588
  }
577
589
  // --- predicates -------------------------------------------------------------
590
+ /** spec.rs `max_transport_retries: u32`. */
591
+ const KERNEL_U32_MAX = 4_294_967_295;
592
+ /** A transport retry budget the kernel can deserialize. */
593
+ export function isTransportRetries(v) {
594
+ return isNonNegInt(v) && v <= KERNEL_U32_MAX;
595
+ }
578
596
  function isObject(v) {
579
597
  return typeof v === 'object' && v !== null && !Array.isArray(v);
580
598
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { type SidechannelContext } from './pty-sidechannel.js';
2
2
  import { type TranscriptDigest } from './agent-transcript.js';
3
3
  import { type WrapperSessionLimits } from './wrapper-session.js';
4
+ import { type CliTransportEvidence } from './cli-transport-evidence.js';
4
5
  import { type AgentTransport } from './agent-relay-transport.js';
6
+ export type { CliTransportCause, CliTransportEvidence, CliTransportPhase } from './cli-transport-evidence.js';
7
+ export { agentCompletionReason } from './cli-transport-evidence.js';
5
8
  /** Present only when a dispatched agent step carries a journaled wake context. */
6
9
  export declare const WAKE_CONTEXT_ENV = "RELAYFLOW_WAKE_CONTEXT";
7
10
  /**
@@ -19,6 +22,12 @@ export interface WorkerCliResult {
19
22
  exit_code: number | null;
20
23
  stdout_tail: string;
21
24
  stderr_tail: string;
25
+ /**
26
+ * Bounded, redacted process-lifecycle evidence for a direct CLI spawn.
27
+ * This is journaled in `trajectory_tail`, including when parsed JSON output
28
+ * would otherwise discard the process wrapper.
29
+ */
30
+ transport?: CliTransportEvidence;
22
31
  /**
23
32
  * Files the agent created or changed under its working directory,
24
33
  * cwd-relative POSIX paths, sorted. Measured by the worker that spawned the
@@ -49,7 +58,7 @@ export interface AgentRelayContext {
49
58
  dataDir?: string;
50
59
  resultSchema?: unknown;
51
60
  }
52
- export declare function runAgentCli(cli: string, instruction: string, wakeContext: unknown, model?: string, wrapperLimits?: Partial<WrapperSessionLimits>, signal?: AbortSignal, mode?: 'agent' | 'llm', sidechannel?: SidechannelContext, cwd?: string, transport?: AgentTransport, relayContext?: AgentRelayContext, processEnvironment?: NodeJS.ProcessEnv, cliIdentity?: string): Promise<WorkerCliResult>;
61
+ export declare function runAgentCli(cli: string, instruction: string, wakeContext: unknown, model?: string, wrapperLimits?: Partial<WrapperSessionLimits>, signal?: AbortSignal, mode?: 'agent' | 'llm', sidechannel?: SidechannelContext, cwd?: string, transport?: AgentTransport, relayContext?: AgentRelayContext, processEnvironment?: NodeJS.ProcessEnv, cliIdentity?: string, stepTimeoutMs?: number): Promise<WorkerCliResult>;
53
62
  /**
54
63
  * Symlink-free form of an absolute path that may not exist yet: the deepest
55
64
  * existing ancestor is resolved and the missing tail is kept. A plain
@@ -1 +1 @@
1
- {"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAwC,KAAK,gBAAgB,EAA8C,MAAM,uBAAuB,CAAC;AAahJ,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAGpC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,GAAE,OAAO,GAAG,KAAe,EAC/B,WAAW,CAAC,EAAE,kBAAkB,EAChC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,GAAE,cAAyB,EACpC,YAAY,CAAC,EAAE,iBAAiB,EAChC,kBAAkB,GAAE,MAAM,CAAC,UAAwB,EACnD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAwF1B;AAqCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAalD;AAgED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC"}
1
+ {"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAIL,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAc/B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,GAAE,OAAO,GAAG,KAAe,EAC/B,WAAW,CAAC,EAAE,kBAAkB,EAChC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,GAAE,cAAyB,EACpC,YAAY,CAAC,EAAE,iBAAiB,EAChC,kBAAkB,GAAE,MAAM,CAAC,UAAwB,EACnD,WAAW,CAAC,EAAE,MAAM,EAEpB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CAgG1B;AAqCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAalD;AAgED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC"}
@@ -3,19 +3,21 @@ import { basename, dirname, join, resolve, sep } from 'node:path';
3
3
  import { diffWorkspaceFiles, snapshotWorkspaceFiles } from './agent-artifacts.js';
4
4
  import { claudeResultOutcome, decodeProviderResult, decodeWrapperResult, requirePricedUsage } from './worker-usage.js';
5
5
  import { openSidechannel } from './pty-sidechannel.js';
6
- import { openTranscriptWriter, transcriptPath } from './agent-transcript.js';
6
+ import { openTranscriptWriter, redactText, transcriptPath, } from './agent-transcript.js';
7
7
  import { spawn } from 'node:child_process';
8
+ import { redactRelayError } from './redact.js';
8
9
  import { StringDecoder } from 'node:string_decoder';
9
10
  import { childStop } from './child-stop.js';
10
11
  import { reapOnExit } from './agent-reaper.js';
11
12
  import { agentExecution, llmExecution, cliAdapterKind, resolveCliModel, } from './cli-adapter.js';
12
13
  import { runWrapperSession, } from './wrapper-session.js';
13
14
  import { wrapperEnvironment } from './wrapper-runtime.js';
14
- import { redactRelayError } from './redact.js';
15
15
  import { applyStepEnvironment } from './step-env.js';
16
16
  import { TAIL_CLOSE_TIMEOUT_MS, openTranscriptTail } from './transcript-tail.js';
17
+ import { isRetryableSpawnError, transportEvidence, } from './cli-transport-evidence.js';
17
18
  import { runAgentRelayTask, AgentRelayTransportError, } from './agent-relay-transport.js';
18
19
  import { pinCliAlias } from './cli/pinned-cli-alias.js';
20
+ export { agentCompletionReason } from './cli-transport-evidence.js';
19
21
  /** Present only when a dispatched agent step carries a journaled wake context. */
20
22
  export const WAKE_CONTEXT_ENV = 'RELAYFLOW_WAKE_CONTEXT';
21
23
  /**
@@ -28,7 +30,9 @@ export const MODEL_ENV = 'RELAYFLOW_MODEL';
28
30
  export function cliInvocationArgv0(cli, cliIdentity) {
29
31
  return basename(cliIdentity ?? cli);
30
32
  }
31
- export async function runAgentCli(cli, instruction, wakeContext, model, wrapperLimits, signal, mode = 'agent', sidechannel, cwd, transport = 'direct', relayContext, processEnvironment = process.env, cliIdentity) {
33
+ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperLimits, signal, mode = 'agent', sidechannel, cwd, transport = 'direct', relayContext, processEnvironment = process.env, cliIdentity,
34
+ // Trailing parameter preserves existing positional callers.
35
+ stepTimeoutMs) {
32
36
  signal?.throwIfAborted();
33
37
  if (signal !== undefined && process.platform === 'win32') {
34
38
  throw new Error('Lease-bound agent execution requires macOS or Linux process-group cancellation; Windows is unsupported.');
@@ -71,7 +75,11 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
71
75
  // discovery names are set from this dispatch, exactly as for a direct spawn.
72
76
  const wrapperEnv = wrapperEnvironment(processEnvironment);
73
77
  applyStepEnvironment(wrapperEnv, sidechannel);
74
- return requirePricedUsage(decodeWrapperResult(await runWrapperSession(cli, instruction, wakeContext, effectiveModel, wrapperEnv, wrapperLimits, signal, cwd, argv0)), effectiveModel);
78
+ const session = await runWrapperSession(cli, instruction, wakeContext, effectiveModel, wrapperEnv, stepTimeoutMs === undefined ? wrapperLimits : { ...wrapperLimits, executionTimeoutMs: stepTimeoutMs }, signal, cwd, argv0);
79
+ const decoded = decodeWrapperResult(session);
80
+ // A wrapper that hit its deadline after reporting usage is still charged
81
+ // for it; what it wrote is not the step's output.
82
+ return requirePricedUsage(session.transport?.cause === 'timeout' ? { ...decoded, stdout_tail: '' } : decoded, effectiveModel);
75
83
  }
76
84
  const env = { ...processEnvironment };
77
85
  delete env[WAKE_CONTEXT_ENV];
@@ -80,6 +88,8 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
80
88
  // itself. Only a worker with a data dir knows; an ad-hoc spawn exports nothing.
81
89
  applyStepEnvironment(env, sidechannel);
82
90
  const invocation = mode === 'llm' ? llmExecution(kind, instruction, effectiveModel) : agentExecution(kind, instruction, effectiveModel);
91
+ if (stepTimeoutMs !== undefined)
92
+ invocation.timeoutMs = stepTimeoutMs;
83
93
  if (wakeContext !== undefined) {
84
94
  try {
85
95
  env[WAKE_CONTEXT_ENV] = JSON.stringify(wakeContext);
@@ -100,7 +110,7 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
100
110
  const args = [...invocation.args];
101
111
  args.splice(args.length - 1, 0, ...(kind === 'claude' ? ['--output-format', 'stream-json', '--verbose'] : ['--json']));
102
112
  const completion = kind === 'claude' ? claudeResultOutcome : undefined;
103
- return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd, completion, argv0), kind, env), effectiveModel);
113
+ return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd, completion, argv0, kind), kind, env), effectiveModel);
104
114
  }
105
115
  }
106
116
  function openTails(context) {
@@ -233,9 +243,14 @@ async function runViaAgentRelay(kind, instruction, wakeContext, model, context,
233
243
  * tree is stopped.
234
244
  */
235
245
  export const RESULT_EXIT_GRACE_MS = 30_000;
236
- async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, completion, argv0) {
237
- let writeInput = async () => false;
238
- let canDrive = () => false;
246
+ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, completion, argv0, kind) {
247
+ const pendingInput = [];
248
+ let acceptingDrive = true;
249
+ let writeInput = async (bytes) => {
250
+ pendingInput.push(Buffer.from(bytes));
251
+ return true;
252
+ };
253
+ let canDrive = () => acceptingDrive;
239
254
  let driven = false;
240
255
  // Prove and pin the authored identity before opening any per-attempt
241
256
  // resources. If pinning fails there is then nothing else to unwind.
@@ -270,6 +285,12 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
270
285
  ...sidechannel,
271
286
  onDrive() { driven = true; sidechannel.onDrive(); },
272
287
  }, bytes => writeInput(bytes), () => canDrive());
288
+ // Decide the child's stdin shape before spawn. An unattended Codex process
289
+ // gets `/dev/null` from `ignore`, so it never enters the "additional input
290
+ // from stdin" path. Only an already-enrolled drive peer gets a writable
291
+ // pipe. View/passthrough retain live output without changing stdin.
292
+ driven = channel === undefined ? false : await channel.waitForDrive(100);
293
+ acceptingDrive = false;
273
294
  // Tee the transcript into bounded tail files beside the socket. Evidence
274
295
  // for `flows status --tail`, never the record; a failure here is a warning.
275
296
  tails = sidechannel === undefined ? undefined : openTails(sidechannel);
@@ -288,7 +309,7 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
288
309
  let child;
289
310
  try {
290
311
  child = spawn(pinned.executable, invocation.args, {
291
- stdio: ['pipe', 'pipe', 'pipe'], env,
312
+ stdio: [driven ? 'pipe' : 'ignore', 'pipe', 'pipe'], env,
292
313
  detached: ownsGroup,
293
314
  ...(argv0 === undefined ? {} : { argv0 }),
294
315
  ...(cwd === undefined ? {} : { cwd }),
@@ -299,25 +320,35 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
299
320
  throw error;
300
321
  }
301
322
  return new Promise((resolve) => {
302
- child.stdin.on('error', () => { });
303
- if (channel === undefined)
304
- child.stdin.end();
305
- canDrive = () => !child.stdin.destroyed && !child.stdin.writableEnded;
306
- // A pipe cannot be reopened after EOF. Give startup subscribers a bounded
307
- // chance to opt into drive, then let unattended/view-only CLIs read EOF.
308
- const inputTimer = channel === undefined ? undefined : setTimeout(() => {
309
- if (!driven)
310
- child.stdin.end();
311
- }, 100);
312
- writeInput = bytes => new Promise(resolve => {
313
- if (!canDrive()) {
314
- resolve(false);
315
- return;
316
- }
317
- // write(false) still accepts the bytes. The completion callback waits
318
- // until they flush; the sidechannel pauses its reader in the meantime.
319
- child.stdin.write(bytes, error => resolve(!error));
320
- });
323
+ const stdin = child.stdin;
324
+ stdin?.on('error', () => { });
325
+ canDrive = () => stdin !== null && !stdin.destroyed && !stdin.writableEnded;
326
+ let inputQueue = Promise.resolve(true);
327
+ writeInput = bytes => {
328
+ inputQueue = inputQueue.then(previousAccepted => {
329
+ if (!previousAccepted || !canDrive())
330
+ return false;
331
+ return new Promise(resolve => {
332
+ // write(false) still accepts the bytes. The completion callback
333
+ // waits until they flush; the sidechannel pauses its reader.
334
+ stdin.write(bytes, error => resolve(!error));
335
+ });
336
+ });
337
+ return inputQueue;
338
+ };
339
+ for (const bytes of pendingInput.splice(0))
340
+ void writeInput(bytes);
341
+ // The last driver leaving is the end of input: flush what it sent, then
342
+ // EOF. Without it a driven Codex waits on its stdin lifecycle forever.
343
+ if (driven) {
344
+ channel?.whenDriveIdle(() => {
345
+ inputQueue = inputQueue.then(() => {
346
+ if (canDrive())
347
+ stdin.end();
348
+ return false;
349
+ });
350
+ });
351
+ }
321
352
  let release = () => { };
322
353
  const stdout = [];
323
354
  const stderr = [];
@@ -330,8 +361,6 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
330
361
  if (settled)
331
362
  return;
332
363
  settled = true;
333
- if (inputTimer !== undefined)
334
- clearTimeout(inputTimer);
335
364
  channel?.close();
336
365
  if (timer !== undefined)
337
366
  clearTimeout(timer);
@@ -419,7 +448,11 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
419
448
  if (graceTimer !== undefined)
420
449
  clearTimeout(graceTimer);
421
450
  graceTimer = undefined;
422
- finishAfterStop({ exit_code: null, stdout_tail: '', stderr_tail: 'Agent execution aborted: lease ownership lost.' }, 'kill', true, 'abort');
451
+ const transport = transportEvidence({
452
+ phase: 'abort', cause: 'lease_lost', exitCode: null, signal: null,
453
+ stderr: 'Agent execution aborted: lease ownership lost.', retryable: false,
454
+ }, env);
455
+ finishAfterStop({ exit_code: null, stdout_tail: '', stderr_tail: 'Agent execution aborted: lease ownership lost.', transport }, 'kill', true, 'abort');
423
456
  };
424
457
  /**
425
458
  * Same invariant as `wrapper-session.ts`: `'close'` and `'error'` are
@@ -448,10 +481,18 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
448
481
  if (graceTimer !== undefined || settled)
449
482
  return;
450
483
  graceTimer = setTimeout(() => {
484
+ const exitCode = outcome.failed ? 1 : 0;
485
+ const stderrText = `${Buffer.concat(stderr).toString('utf8')}\nCLI reported its final result but had not exited ${RESULT_EXIT_GRACE_MS}ms later; its process tree was stopped.`.trim();
486
+ const transport = transportEvidence({
487
+ phase: 'result_exit_grace', cause: 'result_exit_timeout', exitCode, signal: null,
488
+ stderr: stderrText,
489
+ retryable: false,
490
+ }, env);
451
491
  finishAfterStop({
452
- exit_code: outcome.failed ? 1 : 0,
492
+ exit_code: exitCode,
453
493
  stdout_tail: Buffer.concat(stdout).toString('utf8'),
454
- stderr_tail: `${Buffer.concat(stderr).toString('utf8')}\nCLI reported its final result but had not exited ${RESULT_EXIT_GRACE_MS}ms later; its process tree was stopped.`.trim(),
494
+ stderr_tail: redactText(stderrText, env),
495
+ transport,
455
496
  }, 'terminate');
456
497
  }, RESULT_EXIT_GRACE_MS);
457
498
  };
@@ -478,28 +519,59 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
478
519
  }
479
520
  });
480
521
  child.stderr.on('data', (chunk) => { stderr.push(chunk); channel?.publish(chunk); tails?.stderr.append(chunk); });
481
- child.once('error', (error) => finishOnChildExit({
482
- exit_code: null,
483
- stdout_tail: Buffer.concat(stdout).toString('utf8'),
484
- stderr_tail: error.message,
485
- }));
522
+ child.once('error', (error) => {
523
+ const code = typeof error.code === 'string'
524
+ ? error.code : undefined;
525
+ const retryable = isRetryableSpawnError(code);
526
+ const transport = transportEvidence({
527
+ phase: 'spawn', cause: child.pid === undefined ? 'spawn_error' : 'process_error',
528
+ exitCode: null, signal: null, stderr: error.message, errorCode: code, retryable,
529
+ }, env);
530
+ finishOnChildExit({
531
+ exit_code: null,
532
+ stdout_tail: Buffer.concat(stdout).toString('utf8'),
533
+ stderr_tail: redactText(error.message, env),
534
+ transport,
535
+ });
536
+ });
486
537
  child.once('error', () => { if (child.pid === undefined)
487
538
  release(); });
488
539
  child.once('close', release);
489
- child.once('close', (code) => finishOnChildExit({
490
- exit_code: code,
491
- stdout_tail: Buffer.concat(stdout).toString('utf8'),
492
- stderr_tail: Buffer.concat(stderr).toString('utf8'),
493
- }));
540
+ child.once('close', (code, signalName) => {
541
+ const stderrText = Buffer.concat(stderr).toString('utf8');
542
+ const codexStdinLifecycle = kind === 'codex' && code === 1
543
+ && stderrText.trim() === 'Reading additional input from stdin...';
544
+ const cause = codexStdinLifecycle ? 'codex_stdin_lifecycle'
545
+ : signalName !== null ? 'signal'
546
+ : code === null ? 'close_without_status'
547
+ : code === 0 ? 'exited' : 'nonzero_exit';
548
+ const retryable = codexStdinLifecycle || signalName !== null || code === null;
549
+ const transport = transportEvidence({
550
+ phase: 'close', cause, exitCode: code, signal: signalName, stderr: stderrText, retryable,
551
+ }, env);
552
+ finishOnChildExit({
553
+ exit_code: code,
554
+ stdout_tail: Buffer.concat(stdout).toString('utf8'),
555
+ stderr_tail: redactText(stderrText, env),
556
+ transport,
557
+ });
558
+ });
494
559
  if (invocation.timeoutMs > 0) {
495
560
  timer = setTimeout(() => {
496
561
  // The stop owns this settle: a direct-child event is not proof that its
497
562
  // group is gone, and an unprovable forced stop must fail the step rather
498
563
  // than arriving after a successful result has already won the race.
564
+ const timeoutMessage = `CLI invocation timed out after ${invocation.timeoutMs}ms.`;
565
+ const transport = transportEvidence({
566
+ phase: 'timeout', cause: 'timeout', exitCode: null, signal: null,
567
+ stderr: `${Buffer.concat(stderr).toString('utf8')}\n${timeoutMessage}`,
568
+ retryable: false,
569
+ }, env);
499
570
  finishAfterStop({
500
571
  exit_code: null,
501
572
  stdout_tail: Buffer.concat(stdout).toString('utf8'),
502
- stderr_tail: `CLI invocation timed out after ${invocation.timeoutMs}ms.`,
573
+ stderr_tail: timeoutMessage,
574
+ transport,
503
575
  }, 'terminate');
504
576
  }, invocation.timeoutMs);
505
577
  }