@dungle-scrubs/harness-cli-normalizer 0.6.0 → 0.6.2

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 (219) hide show
  1. package/README.md +33 -6
  2. package/dist/cli/args.d.ts +9 -1
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +36 -26
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/check.d.ts +14 -0
  7. package/dist/cli/check.d.ts.map +1 -1
  8. package/dist/cli/check.js +10 -3
  9. package/dist/cli/check.js.map +1 -1
  10. package/dist/cli/config.d.ts +4 -4
  11. package/dist/cli/config.d.ts.map +1 -1
  12. package/dist/cli/config.js +8 -6
  13. package/dist/cli/config.js.map +1 -1
  14. package/dist/cli/exit-codes.d.ts +0 -1
  15. package/dist/cli/exit-codes.d.ts.map +1 -1
  16. package/dist/cli/exit-codes.js +0 -1
  17. package/dist/cli/exit-codes.js.map +1 -1
  18. package/dist/cli/help.d.ts +2 -2
  19. package/dist/cli/help.d.ts.map +1 -1
  20. package/dist/cli/help.js +10 -2
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/index.d.ts.map +1 -1
  23. package/dist/cli/index.js +3 -1
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/inspect.d.ts.map +1 -1
  26. package/dist/cli/inspect.js +84 -265
  27. package/dist/cli/inspect.js.map +1 -1
  28. package/dist/cli/plan-turn.d.ts +68 -0
  29. package/dist/cli/plan-turn.d.ts.map +1 -0
  30. package/dist/cli/plan-turn.js +268 -0
  31. package/dist/cli/plan-turn.js.map +1 -0
  32. package/dist/cli/refuse.d.ts.map +1 -1
  33. package/dist/cli/refuse.js +2 -1
  34. package/dist/cli/refuse.js.map +1 -1
  35. package/dist/cli/resolve-harness.d.ts.map +1 -1
  36. package/dist/cli/resolve-harness.js +2 -3
  37. package/dist/cli/resolve-harness.js.map +1 -1
  38. package/dist/cli/run.d.ts.map +1 -1
  39. package/dist/cli/run.js +33 -367
  40. package/dist/cli/run.js.map +1 -1
  41. package/dist/cli/session-json.d.ts +1 -1
  42. package/dist/cli/session-json.d.ts.map +1 -1
  43. package/dist/cli/session-json.js +1 -3
  44. package/dist/cli/session-json.js.map +1 -1
  45. package/dist/cli/session.d.ts.map +1 -1
  46. package/dist/cli/session.js +35 -43
  47. package/dist/cli/session.js.map +1 -1
  48. package/dist/cli/skills-root.d.ts +1 -1
  49. package/dist/cli/skills-root.d.ts.map +1 -1
  50. package/dist/cli/skills-root.js +1 -1
  51. package/dist/cli/skills-root.js.map +1 -1
  52. package/dist/execution/decode.d.ts.map +1 -1
  53. package/dist/execution/decode.js +11 -36
  54. package/dist/execution/decode.js.map +1 -1
  55. package/dist/execution/events.d.ts +4 -1
  56. package/dist/execution/events.d.ts.map +1 -1
  57. package/dist/execution/events.js.map +1 -1
  58. package/dist/execution/failure.d.ts +3 -1
  59. package/dist/execution/failure.d.ts.map +1 -1
  60. package/dist/execution/failure.js +14 -11
  61. package/dist/execution/failure.js.map +1 -1
  62. package/dist/execution/open-session.d.ts +1 -1
  63. package/dist/execution/open-session.d.ts.map +1 -1
  64. package/dist/execution/open-session.js +150 -223
  65. package/dist/execution/open-session.js.map +1 -1
  66. package/dist/execution/stream-turn.d.ts +9 -14
  67. package/dist/execution/stream-turn.d.ts.map +1 -1
  68. package/dist/execution/stream-turn.js +85 -188
  69. package/dist/execution/stream-turn.js.map +1 -1
  70. package/dist/execution/supervisor.d.ts +71 -0
  71. package/dist/execution/supervisor.d.ts.map +1 -0
  72. package/dist/execution/supervisor.js +127 -0
  73. package/dist/execution/supervisor.js.map +1 -0
  74. package/dist/interpretation/argv.d.ts +39 -12
  75. package/dist/interpretation/argv.d.ts.map +1 -1
  76. package/dist/interpretation/argv.js +28 -20
  77. package/dist/interpretation/argv.js.map +1 -1
  78. package/dist/interpretation/content.d.ts +10 -1
  79. package/dist/interpretation/content.d.ts.map +1 -1
  80. package/dist/interpretation/content.js +20 -11
  81. package/dist/interpretation/content.js.map +1 -1
  82. package/dist/interpretation/hints.d.ts +1 -1
  83. package/dist/interpretation/hints.d.ts.map +1 -1
  84. package/dist/interpretation/hints.js +10 -11
  85. package/dist/interpretation/hints.js.map +1 -1
  86. package/dist/interpretation/index.d.ts +0 -1
  87. package/dist/interpretation/index.d.ts.map +1 -1
  88. package/dist/interpretation/index.js +0 -1
  89. package/dist/interpretation/index.js.map +1 -1
  90. package/dist/interpretation/isolation.d.ts +10 -0
  91. package/dist/interpretation/isolation.d.ts.map +1 -0
  92. package/dist/interpretation/isolation.js +30 -0
  93. package/dist/interpretation/isolation.js.map +1 -0
  94. package/dist/interpretation/limits.d.ts +2 -5
  95. package/dist/interpretation/limits.d.ts.map +1 -1
  96. package/dist/interpretation/limits.js +8 -62
  97. package/dist/interpretation/limits.js.map +1 -1
  98. package/dist/interpretation/question.d.ts +27 -0
  99. package/dist/interpretation/question.d.ts.map +1 -1
  100. package/dist/interpretation/question.js +28 -0
  101. package/dist/interpretation/question.js.map +1 -1
  102. package/dist/interpretation/refusal.d.ts +10 -5
  103. package/dist/interpretation/refusal.d.ts.map +1 -1
  104. package/dist/interpretation/refusal.js +24 -15
  105. package/dist/interpretation/refusal.js.map +1 -1
  106. package/dist/interpretation/resolve-options.d.ts +36 -2
  107. package/dist/interpretation/resolve-options.d.ts.map +1 -1
  108. package/dist/interpretation/resolve-options.js +53 -22
  109. package/dist/interpretation/resolve-options.js.map +1 -1
  110. package/dist/interpretation/session-input.d.ts +44 -1
  111. package/dist/interpretation/session-input.d.ts.map +1 -1
  112. package/dist/interpretation/session-input.js +59 -4
  113. package/dist/interpretation/session-input.js.map +1 -1
  114. package/dist/interpretation/shape.d.ts +1 -0
  115. package/dist/interpretation/shape.d.ts.map +1 -1
  116. package/dist/interpretation/shape.js +10 -0
  117. package/dist/interpretation/shape.js.map +1 -1
  118. package/dist/interpretation/skills-selection.d.ts +25 -33
  119. package/dist/interpretation/skills-selection.d.ts.map +1 -1
  120. package/dist/interpretation/skills-selection.js +41 -48
  121. package/dist/interpretation/skills-selection.js.map +1 -1
  122. package/dist/interpretation/support.d.ts.map +1 -1
  123. package/dist/interpretation/support.js +25 -8
  124. package/dist/interpretation/support.js.map +1 -1
  125. package/dist/interpretation/tool-selection.d.ts +7 -6
  126. package/dist/interpretation/tool-selection.d.ts.map +1 -1
  127. package/dist/interpretation/tool-selection.js +54 -116
  128. package/dist/interpretation/tool-selection.js.map +1 -1
  129. package/dist/interpretation/tool-vocabulary.d.ts +31 -12
  130. package/dist/interpretation/tool-vocabulary.d.ts.map +1 -1
  131. package/dist/interpretation/tool-vocabulary.js +19 -41
  132. package/dist/interpretation/tool-vocabulary.js.map +1 -1
  133. package/dist/interpretation/turn-options.d.ts +4 -0
  134. package/dist/interpretation/turn-options.d.ts.map +1 -1
  135. package/dist/interpretation/turn-options.js +107 -241
  136. package/dist/interpretation/turn-options.js.map +1 -1
  137. package/dist/interpretation/vocabulary.d.ts +8 -6
  138. package/dist/interpretation/vocabulary.d.ts.map +1 -1
  139. package/dist/interpretation/vocabulary.js +22 -9
  140. package/dist/interpretation/vocabulary.js.map +1 -1
  141. package/dist/knowledge/claude-code.d.ts +3 -1
  142. package/dist/knowledge/claude-code.d.ts.map +1 -1
  143. package/dist/knowledge/claude-code.js +17 -4
  144. package/dist/knowledge/claude-code.js.map +1 -1
  145. package/dist/knowledge/codex.d.ts.map +1 -1
  146. package/dist/knowledge/codex.js +31 -7
  147. package/dist/knowledge/codex.js.map +1 -1
  148. package/dist/knowledge/descriptor.d.ts +67 -36
  149. package/dist/knowledge/descriptor.d.ts.map +1 -1
  150. package/dist/knowledge/descriptor.js +50 -15
  151. package/dist/knowledge/descriptor.js.map +1 -1
  152. package/dist/knowledge/matchers.d.ts +12 -0
  153. package/dist/knowledge/matchers.d.ts.map +1 -1
  154. package/dist/knowledge/matchers.js +34 -0
  155. package/dist/knowledge/matchers.js.map +1 -1
  156. package/dist/knowledge/muse.d.ts.map +1 -1
  157. package/dist/knowledge/muse.js +13 -6
  158. package/dist/knowledge/muse.js.map +1 -1
  159. package/dist/knowledge/overrides.d.ts.map +1 -1
  160. package/dist/knowledge/overrides.js +9 -20
  161. package/dist/knowledge/overrides.js.map +1 -1
  162. package/dist/knowledge/pi.d.ts.map +1 -1
  163. package/dist/knowledge/pi.js +8 -6
  164. package/dist/knowledge/pi.js.map +1 -1
  165. package/dist/knowledge/profile.d.ts +1 -0
  166. package/dist/knowledge/profile.d.ts.map +1 -1
  167. package/dist/knowledge/profile.js +1 -0
  168. package/dist/knowledge/profile.js.map +1 -1
  169. package/package.json +1 -1
  170. package/src/cli/args.ts +39 -27
  171. package/src/cli/check.ts +10 -3
  172. package/src/cli/config.ts +14 -11
  173. package/src/cli/exit-codes.ts +0 -2
  174. package/src/cli/help.ts +10 -2
  175. package/src/cli/index.ts +3 -1
  176. package/src/cli/inspect.ts +88 -269
  177. package/src/cli/plan-turn.ts +350 -0
  178. package/src/cli/refuse.ts +2 -1
  179. package/src/cli/resolve-harness.ts +4 -5
  180. package/src/cli/run.ts +36 -399
  181. package/src/cli/session-json.ts +1 -6
  182. package/src/cli/session.ts +51 -44
  183. package/src/cli/skills-root.ts +1 -4
  184. package/src/execution/decode.ts +10 -36
  185. package/src/execution/events.ts +4 -1
  186. package/src/execution/failure.ts +18 -11
  187. package/src/execution/open-session.ts +154 -228
  188. package/src/execution/stream-turn.ts +90 -193
  189. package/src/execution/supervisor.ts +199 -0
  190. package/src/interpretation/argv.ts +65 -34
  191. package/src/interpretation/content.ts +30 -13
  192. package/src/interpretation/hints.ts +2 -12
  193. package/src/interpretation/index.ts +0 -1
  194. package/src/interpretation/isolation.ts +39 -0
  195. package/src/interpretation/limits.ts +14 -75
  196. package/src/interpretation/question.ts +46 -0
  197. package/src/interpretation/refusal.ts +28 -18
  198. package/src/interpretation/resolve-options.ts +98 -33
  199. package/src/interpretation/session-input.ts +88 -5
  200. package/src/interpretation/shape.ts +10 -0
  201. package/src/interpretation/skills-selection.ts +70 -74
  202. package/src/interpretation/support.ts +21 -6
  203. package/src/interpretation/tool-selection.ts +67 -122
  204. package/src/interpretation/tool-vocabulary.ts +48 -53
  205. package/src/interpretation/turn-options.ts +125 -220
  206. package/src/interpretation/vocabulary.ts +15 -10
  207. package/src/knowledge/claude-code.ts +17 -4
  208. package/src/knowledge/codex.ts +31 -7
  209. package/src/knowledge/descriptor.ts +106 -49
  210. package/src/knowledge/matchers.ts +35 -0
  211. package/src/knowledge/muse.ts +13 -6
  212. package/src/knowledge/overrides.ts +17 -32
  213. package/src/knowledge/pi.ts +8 -6
  214. package/src/knowledge/profile.ts +1 -0
  215. package/dist/interpretation/dimensions.d.ts +0 -11
  216. package/dist/interpretation/dimensions.d.ts.map +0 -1
  217. package/dist/interpretation/dimensions.js +0 -4
  218. package/dist/interpretation/dimensions.js.map +0 -1
  219. package/src/interpretation/dimensions.ts +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"stream-turn.d.ts","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBhF;;sCAEsC;AACtC,eAAO,MAAM,aAAa,OAAQ,CAAC;AACnC,eAAO,MAAM,aAAa,OAAQ,CAAC;AAWnC;;;;wDAIwD;AACxD,eAAO,MAAM,UAAU,SAAU,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,EAQ3E,CAAC;AAEF;;8BAE8B;AAC9B,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvB;IACD,QAAQ,IAAI,SAAS,MAAM,EAAE,CAE5B;CACF;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;uDAEmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;kEAE8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;yEACqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC;;gDAE4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,wBAAuB,UAAU,CAC/B,CAAC,EAAE,iBAAiB,EACpB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,UAAU,GACf,aAAa,CAAC,YAAY,CAAC,CA2lB7B"}
1
+ {"version":3,"file":"stream-turn.d.ts","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAmBrB;4BAC4B;AAC5B,eAAO,MAAM,aAAa,OAAQ,CAAC;AAWnC;;;;wDAIwD;AACxD,eAAO,MAAM,UAAU,SAAU,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,EAQ3E,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;uDAEmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;kEAE8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;yEACqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC;;gDAE4C;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,wBAAuB,UAAU,CAC/B,CAAC,EAAE,iBAAiB,EACpB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,UAAU,GACf,aAAa,CAAC,YAAY,CAAC,CAwgB7B"}
@@ -8,24 +8,29 @@
8
8
  * evidence, not diagnostics. An abandoned turn (consumer breaks early)
9
9
  * closes backpressure, disposes output, stops the child, and awaits both
10
10
  * pumps before it returns.
11
+ *
12
+ * The supervising policies - stall clock, signal escalation, stderr
13
+ * classification, question detection at close - are the turn supervisor's
14
+ * (RFC-02 change 5); this runner composes it and owns only what is
15
+ * particular to one-shot turns: the wall-clock deadline, the exit
16
+ * classification, and the identity-first event buffer.
11
17
  */
12
- import { buildLaunchArgv, buildResumeArgv, streamingGranularityOf, } from "../interpretation/argv.js";
13
- import { stdinPolicyOf } from "../interpretation/dimensions.js";
14
- import { detectAuthFailureInLine, detectLimitInLine, detectTransportInLine, detectUnavailableInLine, } from "../interpretation/limits.js";
15
- import { composeEscalatedPrompt, detectQuestionBlock, } from "../interpretation/question.js";
18
+ import { buildSpawnArgv, promptTextOf, streamingGranularityOf, withPromptText, } from "../interpretation/argv.js";
19
+ import { detectTransportInLine, detectUnavailableInLine } from "../interpretation/limits.js";
20
+ import { composeEscalatedPrompt } from "../interpretation/question.js";
16
21
  import { ArgvRefusalError } from "../interpretation/refusal.js";
17
22
  import { matcherOverridesOf } from "../knowledge/overrides.js";
18
23
  import { AsyncChannel } from "./channel.js";
19
24
  import { decodeLine, freshDecodeState } from "./decode.js";
20
- import { failureFromAuth, failureFromLimit, failureFromNative, failureFromRejected, failureFromTask, failureFromTerminalError, failureFromTimeout, failureFromTransport, failureFromUnavailable, reduceFailures, } from "./failure.js";
25
+ import { DROPPABLE_KINDS, } from "./events.js";
26
+ import { failureFromLimit, failureFromNative, failureFromRejected, failureFromTerminalError, failureFromTimeout, failureFromTransport, failureFromUnavailable, reduceFailures, } from "./failure.js";
21
27
  import { LineBuffer } from "./lines.js";
28
+ import { StderrTail, superviseTurn } from "./supervisor.js";
22
29
  /** Fallback correlation when the host does not mint turn ids: monotonic per
23
30
  * process. Hosts that need cross-process uniqueness pass deps.turnId. */
24
31
  let turnCounter = 0;
25
- /** SIGTERM -> SIGKILL escalation budget for a child that ignores the first
26
- * signal, and the grace allowed for pipes still held open (by a grandchild)
27
- * after the process itself exited. */
28
- export const KILL_GRACE_MS = 5_000;
32
+ /** The grace allowed for pipes still held open (by a grandchild) after the
33
+ * process itself exited. */
29
34
  export const PIPE_GRACE_MS = 2_000;
30
35
  const OUTPUT_STREAMS = ["stdout", "stderr"];
31
36
  const pumpFailureMessage = (stream, cause) => `${stream} pump failed: ${cause instanceof Error ? cause.message : String(cause)}`;
@@ -48,24 +53,6 @@ export const redactArgv = (argv, prompt) => {
48
53
  return token;
49
54
  });
50
55
  };
51
- /** Bounded tail of unmatched stderr - the crash context a nonzero exit is
52
- * explained by (v1 kept the turn's output slice for exactly this). Shared
53
- * with the session runner. */
54
- export class StderrTail {
55
- lines = [];
56
- bytes = 0;
57
- push(line) {
58
- this.lines.push(line);
59
- this.bytes += line.length;
60
- while (this.lines.length > 20 || (this.bytes > 4096 && this.lines.length > 1)) {
61
- const dropped = this.lines.shift();
62
- this.bytes -= dropped?.length ?? 0;
63
- }
64
- }
65
- snapshot() {
66
- return [...this.lines];
67
- }
68
- }
69
56
  export async function* streamTurn(h, opts, deps) {
70
57
  const turnId = deps.turnId ?? `turn-${++turnCounter}`;
71
58
  const log = deps.log ?? (() => { });
@@ -73,11 +60,9 @@ export async function* streamTurn(h, opts, deps) {
73
60
  const questionMode = opts.questions ?? "ask";
74
61
  const effective = {
75
62
  ...opts,
76
- prompt: composeEscalatedPrompt(opts.prompt, questionMode),
63
+ prompt: withPromptText(opts.prompt, composeEscalatedPrompt(promptTextOf(opts), questionMode)),
77
64
  };
78
- // The turn's last assistant message - where the protocol says the
79
- // hcn-question block lives. Tracked only when detection is armed.
80
- let lastAssistantText = null;
65
+ const promptText = promptTextOf(effective);
81
66
  let asked = false;
82
67
  let escalationDetection = "none";
83
68
  // Validate env before building argv so an invalid env is a refusal, not a spawn
@@ -102,7 +87,7 @@ export async function* streamTurn(h, opts, deps) {
102
87
  harness: h.name,
103
88
  issue: refusal.issue,
104
89
  supported: refusal.supported,
105
- argv: redactArgv([], effective.prompt),
90
+ argv: redactArgv([], promptText),
106
91
  });
107
92
  yield { kind: "failure", ...failure };
108
93
  yield {
@@ -119,19 +104,7 @@ export async function* streamTurn(h, opts, deps) {
119
104
  let argv;
120
105
  let granularity;
121
106
  try {
122
- argv =
123
- effective.resume === undefined
124
- ? buildLaunchArgv(h, effective)
125
- : buildResumeArgv(h, { ...effective, sessionId: effective.resume });
126
- if (effective.passthrough !== undefined && effective.passthrough.length > 0) {
127
- argv = [...argv, "--", ...effective.passthrough];
128
- }
129
- // issue #38: claude/codex render the skills allowlist as complement-off
130
- // tokens at the argv tail (claude: settings JSON; codex: -c skills.config).
131
- const skillTokens = opts.__skillTokens;
132
- if (skillTokens !== undefined && skillTokens.length > 0) {
133
- argv = [...argv, ...skillTokens];
134
- }
107
+ argv = buildSpawnArgv(h, effective);
135
108
  granularity = streamingGranularityOf(h, argv);
136
109
  }
137
110
  catch (e) {
@@ -148,7 +121,7 @@ export async function* streamTurn(h, opts, deps) {
148
121
  // No process spawned on a refusal - log rejected instead of spawn
149
122
  let argvForLog = [];
150
123
  try {
151
- argvForLog = redactArgv([], effective.prompt);
124
+ argvForLog = redactArgv([], promptText);
152
125
  }
153
126
  catch { }
154
127
  log({
@@ -179,7 +152,7 @@ export async function* streamTurn(h, opts, deps) {
179
152
  event: "spawn",
180
153
  turnId,
181
154
  harness: h.name,
182
- argv: redactArgv(argv, effective.prompt),
155
+ argv: redactArgv(argv, promptText),
183
156
  granularity,
184
157
  ...(matcherOverrides ? { matcherOverrides } : {}),
185
158
  ...(envKeys?.length ? { envKeys } : {}),
@@ -194,7 +167,7 @@ export async function* streamTurn(h, opts, deps) {
194
167
  let proc;
195
168
  try {
196
169
  proc = deps.spawn(argv, {
197
- stdin: stdinPolicyOf(h) === "close-required" ? "close" : "inherit",
170
+ stdin: h.stdin === "close-required" ? "close" : "inherit",
198
171
  ...(effective.cwd !== undefined ? { cwd: effective.cwd } : {}),
199
172
  ...(effective.env !== undefined ? { env: effective.env } : {}),
200
173
  });
@@ -237,37 +210,6 @@ export async function* streamTurn(h, opts, deps) {
237
210
  let pipesOpenAtExit = false;
238
211
  let cancelled = false;
239
212
  let terminalEventReached = false;
240
- const safeSignal = (sig) => {
241
- if (!exited)
242
- deps.signal(proc, sig);
243
- };
244
- let escalationTimer = null;
245
- const escalate = () => {
246
- if (exited || escalationTimer !== null)
247
- return;
248
- safeSignal("SIGTERM");
249
- escalationTimer = deps.clock.setTimeout(() => {
250
- escalationTimer = null;
251
- safeSignal("SIGKILL");
252
- }, KILL_GRACE_MS);
253
- };
254
- let abortHandler = null;
255
- if (opts.signal) {
256
- const onAbort = () => {
257
- if (killedByAbort)
258
- return;
259
- killedByAbort = true;
260
- escalate();
261
- };
262
- if (opts.signal.aborted) {
263
- killedByAbort = true;
264
- escalate();
265
- }
266
- else {
267
- opts.signal.addEventListener("abort", onAbort, { once: true });
268
- abortHandler = onAbort;
269
- }
270
- }
271
213
  const failures = [];
272
214
  const pushFailure = async (f) => {
273
215
  // Suppress a failure identical in class and message to the previous one
@@ -277,23 +219,27 @@ export async function* streamTurn(h, opts, deps) {
277
219
  failures.push(f);
278
220
  await queue.push({ kind: "failure", ...f });
279
221
  };
280
- let watchdog = null;
222
+ // The wall-clock deadline is this runner's own: a session has none.
281
223
  let turnDeadline = null;
282
224
  let watchdogReason = null;
283
- const disarm = () => {
284
- if (watchdog !== null)
285
- deps.clock.clearTimeout(watchdog);
286
- watchdog = null;
225
+ const disarmDeadline = () => {
287
226
  if (turnDeadline !== null)
288
227
  deps.clock.clearTimeout(turnDeadline);
289
228
  turnDeadline = null;
290
229
  };
291
- const rearm = () => {
292
- if (deps.stallMs === undefined)
293
- return;
294
- if (watchdog !== null)
295
- deps.clock.clearTimeout(watchdog);
296
- watchdog = deps.clock.setTimeout(() => {
230
+ const sup = superviseTurn(h, questionMode, {
231
+ clock: deps.clock,
232
+ stallMs: deps.stallMs,
233
+ signal: (sig) => deps.signal(proc, sig),
234
+ emit: async (event) => {
235
+ // A wall read on stderr counts like one decoded from stdout.
236
+ if (event.kind === "limit")
237
+ state.limitSeen = true;
238
+ await queue.push(event);
239
+ },
240
+ fail: pushFailure,
241
+ tail: stderrTail,
242
+ onStall: () => {
297
243
  killedByWatchdog = true;
298
244
  watchdogReason = "inactivity";
299
245
  log({
@@ -304,15 +250,31 @@ export async function* streamTurn(h, opts, deps) {
304
250
  budgetMs: deps.stallMs,
305
251
  });
306
252
  // Disarm the other budget
307
- if (turnDeadline !== null) {
308
- deps.clock.clearTimeout(turnDeadline);
309
- turnDeadline = null;
310
- }
311
- escalate();
312
- }, deps.stallMs);
313
- };
253
+ disarmDeadline();
254
+ },
255
+ onQuestion: (options) => {
256
+ log({ event: "question", turnId, harness: h.name, options });
257
+ },
258
+ });
259
+ let abortHandler = null;
260
+ if (opts.signal) {
261
+ const onAbort = () => {
262
+ if (killedByAbort)
263
+ return;
264
+ killedByAbort = true;
265
+ sup.escalate();
266
+ };
267
+ if (opts.signal.aborted) {
268
+ killedByAbort = true;
269
+ sup.escalate();
270
+ }
271
+ else {
272
+ opts.signal.addEventListener("abort", onAbort, { once: true });
273
+ abortHandler = onAbort;
274
+ }
275
+ }
314
276
  // Arm both budgets
315
- rearm();
277
+ sup.beginTurn();
316
278
  if (deps.turnTimeoutMs !== undefined) {
317
279
  turnDeadline = deps.clock.setTimeout(() => {
318
280
  killedByWatchdog = true;
@@ -324,23 +286,19 @@ export async function* streamTurn(h, opts, deps) {
324
286
  reason: "turn-deadline",
325
287
  budgetMs: deps.turnTimeoutMs,
326
288
  });
327
- if (watchdog !== null) {
328
- deps.clock.clearTimeout(watchdog);
329
- watchdog = null;
330
- }
331
- escalate();
289
+ sup.disarm();
290
+ sup.escalate();
332
291
  }, deps.turnTimeoutMs);
333
292
  }
334
293
  let pipeGrace = null;
335
294
  void proc.exited.then((code) => {
336
295
  exited = true;
337
296
  exitCode = code;
338
- if (escalationTimer !== null)
339
- deps.clock.clearTimeout(escalationTimer);
340
- escalationTimer = null;
341
- // The process is gone: the watchdog has nothing left to kill, and a
342
- // fire after this point would flip a completed turn to "stall".
343
- disarm();
297
+ // The process is gone: no signal, no pending escalation, no stall
298
+ // clock - a fire after this point would flip a completed turn to
299
+ // "stall".
300
+ sup.settle();
301
+ disarmDeadline();
344
302
  // Pipes held open past exit (a grandchild inherited the fd) must not
345
303
  // hang the turn forever - close out with the exit code in hand.
346
304
  if (cancelled)
@@ -355,7 +313,6 @@ export async function* streamTurn(h, opts, deps) {
355
313
  let identitySeen = false;
356
314
  const droppableBuffer = [];
357
315
  const BUFFER_CAP = 256;
358
- const isDroppable = (kind) => kind === "progress" || kind === "token" || kind === "context";
359
316
  const flushDroppable = async () => {
360
317
  for (const e of droppableBuffer)
361
318
  await queue.push(e);
@@ -369,7 +326,7 @@ export async function* streamTurn(h, opts, deps) {
369
326
  await flushDroppable();
370
327
  return;
371
328
  }
372
- if (isDroppable(event.kind)) {
329
+ if (DROPPABLE_KINDS.has(event.kind)) {
373
330
  if (droppableBuffer.length >= BUFFER_CAP)
374
331
  droppableBuffer.shift();
375
332
  droppableBuffer.push(event);
@@ -396,17 +353,14 @@ export async function* streamTurn(h, opts, deps) {
396
353
  await pushFailure(failureFromTerminalError(h, event.message));
397
354
  return;
398
355
  }
399
- if (questionMode === "ask" && event.kind === "message" && event.role === "assistant") {
400
- lastAssistantText = event.text;
401
- }
356
+ sup.noteEvent(event);
402
357
  await queue.push(event);
403
358
  };
404
359
  for await (const chunk of proc.stdout) {
405
360
  if (cancelled)
406
361
  break;
407
362
  // Any output chunk rearms the inactivity budget, but not the wall-clock deadline
408
- if (deps.stallMs !== undefined)
409
- rearm();
363
+ sup.rearm();
410
364
  for (const line of lines.push(chunk)) {
411
365
  for (const event of decodeLine(h, line, state, opts.model ?? "", granularity)) {
412
366
  await handleEvent(event);
@@ -424,76 +378,14 @@ export async function* streamTurn(h, opts, deps) {
424
378
  await flushDroppable();
425
379
  }
426
380
  };
427
- /** issue #41: scan the last assistant message for the hcn-question
428
- * block. Structured-first - the block's fields become the event; no
429
- * prose parsing. Runs after the pumps settle (the last message is only
430
- * last then) and only when detection is armed (questions ask).
431
- * A malformed block surfaces as an error event, never a silent
432
- * no-op. */
433
- const emitQuestionIfAsked = async () => {
434
- if (questionMode !== "ask" || lastAssistantText === null) {
435
- escalationDetection = "none";
436
- return;
437
- }
438
- const detection = detectQuestionBlock(lastAssistantText);
439
- if (detection === null) {
440
- escalationDetection = "none";
441
- return;
442
- }
443
- if ("malformed" in detection) {
444
- escalationDetection = "malformed";
445
- await queue.push({ kind: "error", message: detection.malformed });
446
- await pushFailure(failureFromTask(`malformed hcn-question block: ${detection.malformed}`));
447
- return;
448
- }
449
- escalationDetection = "block";
450
- log({
451
- event: "question",
452
- turnId,
453
- harness: h.name,
454
- options: detection.block.options.length,
455
- });
456
- asked = true;
457
- await queue.push({
458
- kind: "question",
459
- question: detection.block.question,
460
- options: detection.block.options,
461
- ...(detection.block.recommended !== undefined
462
- ? { recommended: detection.block.recommended }
463
- : {}),
464
- });
465
- };
466
381
  const pumpStderr = async () => {
467
382
  const lines = new LineBuffer();
468
383
  for await (const chunk of proc.stderr) {
469
384
  if (cancelled)
470
385
  break;
471
- if (deps.stallMs !== undefined)
472
- rearm();
473
- for (const line of lines.push(chunk)) {
474
- const limit = detectLimitInLine(h, line);
475
- if (limit !== null) {
476
- state.limitSeen = true;
477
- const failure = failureFromLimit(limit);
478
- // Emit both limit (for 0.1.3 compat) and failure
479
- await queue.push({
480
- kind: "limit",
481
- code: limit,
482
- message: `limit wall detected (${limit})`,
483
- });
484
- await pushFailure(failure);
485
- continue;
486
- }
487
- const auth = detectAuthFailureInLine(h, line);
488
- if (auth !== null) {
489
- const failure = failureFromAuth(auth);
490
- await pushFailure(failure);
491
- // Emit error alongside failure for 0.1.3 compat
492
- await queue.push({ kind: "error", message: `auth wall: ${auth}` });
493
- continue;
494
- }
495
- stderrTail.push(line);
496
- }
386
+ sup.rearm();
387
+ for (const line of lines.push(chunk))
388
+ await sup.stderrLine(line);
497
389
  }
498
390
  };
499
391
  const observePump = async (stream, pump) => {
@@ -510,7 +402,7 @@ export async function* streamTurn(h, opts, deps) {
510
402
  });
511
403
  await queue.push({ kind: "error", message: pumpFailureMessage(stream, cause) });
512
404
  await pushFailure(failureFromTransport(pumpFailureMessage(stream, cause)));
513
- escalate();
405
+ sup.escalate();
514
406
  await proc.exited;
515
407
  proc.disposeOutput();
516
408
  }
@@ -519,8 +411,14 @@ export async function* streamTurn(h, opts, deps) {
519
411
  observePump("stdout", pumpStdout()),
520
412
  observePump("stderr", pumpStderr()),
521
413
  ]);
414
+ // issue #41: the turn closes after the pumps settle (the last message is
415
+ // only last then); the supervisor detects the block and emits it.
522
416
  void Promise.all([proc.exited, pumpSettlements])
523
- .then(() => emitQuestionIfAsked())
417
+ .then(() => {
418
+ const close = sup.close();
419
+ escalationDetection = close.detection;
420
+ asked = close.asked;
421
+ })
524
422
  .then(() => queue.close());
525
423
  try {
526
424
  for await (const event of queue)
@@ -647,11 +545,12 @@ export async function* streamTurn(h, opts, deps) {
647
545
  const abandoned = !terminalEventReached;
648
546
  cancelled = true;
649
547
  queue.close();
650
- disarm();
548
+ sup.disarm();
549
+ disarmDeadline();
651
550
  if (abandoned) {
652
551
  log({ event: "abandoned", turnId, harness: h.name });
653
552
  if (!exited)
654
- escalate();
553
+ sup.escalate();
655
554
  }
656
555
  proc.disposeOutput();
657
556
  const [settledExit] = await Promise.all([proc.exited, pumpSettlements]);
@@ -659,9 +558,7 @@ export async function* streamTurn(h, opts, deps) {
659
558
  if (pipeGrace !== null)
660
559
  deps.clock.clearTimeout(pipeGrace);
661
560
  pipeGrace = null;
662
- if (escalationTimer !== null)
663
- deps.clock.clearTimeout(escalationTimer);
664
- escalationTimer = null;
561
+ sup.settle();
665
562
  if (abandoned) {
666
563
  log({
667
564
  event: "abandonment_settled",
@@ -1 +1 @@
1
- {"version":3,"file":"stream-turn.js","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-turn.js","sourceRoot":"","sources":["../../src/execution/stream-turn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { type QuestionDetectionKind, type QuestionMode } from "../interpretation/question.js";
2
+ import type { HarnessDescriptor } from "../knowledge/descriptor.js";
3
+ import type { Clock, SignalName } from "./deps.js";
4
+ import type { HarnessEvent } from "./events.js";
5
+ import { type FailureSummary } from "./failure.js";
6
+ /** SIGTERM -> SIGKILL escalation budget for a child that ignores the first
7
+ * signal. */
8
+ export declare const KILL_GRACE_MS = 5000;
9
+ /** Bounded tail of unmatched stderr - the crash context a nonzero exit is
10
+ * explained by (v1 kept the turn's output slice for exactly this). */
11
+ export declare class StderrTail {
12
+ private readonly lines;
13
+ private bytes;
14
+ push(line: string): void;
15
+ snapshot(): readonly string[];
16
+ }
17
+ export interface SupervisorIo {
18
+ readonly clock: Clock;
19
+ /** Inactivity budget; undefined means no stall clock at all. */
20
+ readonly stallMs: number | undefined;
21
+ /** Signal the supervised process. The supervisor never signals after
22
+ * `settle()`. */
23
+ readonly signal: (sig: SignalName) => void;
24
+ /** Deliver an event to the turn's consumer. */
25
+ readonly emit: (event: HarnessEvent) => Promise<void>;
26
+ /** Record a failure for the turn's done AND deliver it as an event. */
27
+ readonly fail: (summary: FailureSummary) => Promise<void>;
28
+ /** Where unclassified stderr goes. */
29
+ readonly tail: StderrTail;
30
+ /** The stall clock fired: the runner records its own cause and ends the
31
+ * turn; the supervisor has already begun escalation. */
32
+ readonly onStall: () => void;
33
+ /** A question was detected at close, with its option count (for the
34
+ * runner's boundary log). */
35
+ readonly onQuestion: (optionCount: number) => void;
36
+ }
37
+ export interface TurnClose {
38
+ readonly detection: QuestionDetectionKind;
39
+ /** True when the turn ended by asking: a successful turn, cause
40
+ * awaiting-input. */
41
+ readonly asked: boolean;
42
+ }
43
+ export interface TurnSupervisor {
44
+ /** Start a turn: reset per-turn state and arm the stall clock. */
45
+ beginTurn(): void;
46
+ /** Any output chunk arrived: restart the inactivity budget, if a turn is
47
+ * open and a budget exists. */
48
+ rearm(): void;
49
+ /** The turn ended, or the process did: stop the stall clock. */
50
+ disarm(): void;
51
+ /** SIGTERM now, SIGKILL after KILL_GRACE_MS unless the process exits.
52
+ * Idempotent while an escalation is pending. */
53
+ escalate(): void;
54
+ /** The process is gone: no further signals, no pending escalation, no
55
+ * stall clock. */
56
+ settle(): void;
57
+ /** Classify one stderr line: a limit wall becomes a limit event plus a
58
+ * failure, an auth wall a failure plus an error event, anything else
59
+ * goes to the tail. Returns the limit code when the line was a limit. */
60
+ stderrLine(line: string): Promise<void>;
61
+ /** A decoded event passed by: the last assistant message is where the
62
+ * protocol says the hcn-question block lives (tracked in ask mode). */
63
+ noteEvent(event: HarnessEvent): void;
64
+ /** At turn end: detect the block in the last assistant message, emit the
65
+ * question (or the malformation as an error plus a task failure), and
66
+ * report what was found. Synchronous: the events are enqueued, not
67
+ * awaited, so a runner can close a turn from a timer callback. */
68
+ close(): TurnClose;
69
+ }
70
+ export declare const superviseTurn: (h: HarnessDescriptor, questionMode: QuestionMode, io: SupervisorIo) => TurnSupervisor;
71
+ //# sourceMappingURL=supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/execution/supervisor.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,cAAc,CAAC;AAEtB;aACa;AACb,eAAO,MAAM,aAAa,OAAQ,CAAC;AAEnC;sEACsE;AACtE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvB;IACD,QAAQ,IAAI,SAAS,MAAM,EAAE,CAE5B;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;qBACiB;IACjB,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B;4DACwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B;iCAC6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C;yBACqB;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,SAAS,IAAI,IAAI,CAAC;IAClB;mCAC+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,gEAAgE;IAChE,MAAM,IAAI,IAAI,CAAC;IACf;oDACgD;IAChD,QAAQ,IAAI,IAAI,CAAC;IACjB;sBACkB;IAClB,MAAM,IAAI,IAAI,CAAC;IACf;;6EAEyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC;2EACuE;IACvE,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC;;;sEAGkE;IAClE,KAAK,IAAI,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,MACrB,iBAAiB,gBACN,YAAY,MACtB,YAAY,KACf,cA2FF,CAAC"}