@dungle-scrubs/harness-cli-normalizer 0.5.4 → 0.5.6

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 (103) hide show
  1. package/README.md +3 -2
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +16 -8
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/config.d.ts.map +1 -1
  6. package/dist/cli/config.js +11 -4
  7. package/dist/cli/config.js.map +1 -1
  8. package/dist/cli/help.d.ts +3 -3
  9. package/dist/cli/help.d.ts.map +1 -1
  10. package/dist/cli/help.js +32 -23
  11. package/dist/cli/help.js.map +1 -1
  12. package/dist/cli/inspect.d.ts.map +1 -1
  13. package/dist/cli/inspect.js +10 -7
  14. package/dist/cli/inspect.js.map +1 -1
  15. package/dist/cli/render.d.ts +15 -1
  16. package/dist/cli/render.d.ts.map +1 -1
  17. package/dist/cli/render.js +18 -2
  18. package/dist/cli/render.js.map +1 -1
  19. package/dist/cli/resume-guard.js +29 -2
  20. package/dist/cli/resume-guard.js.map +1 -1
  21. package/dist/cli/run.d.ts.map +1 -1
  22. package/dist/cli/run.js +35 -34
  23. package/dist/cli/run.js.map +1 -1
  24. package/dist/cli/session-json.d.ts +5 -2
  25. package/dist/cli/session-json.d.ts.map +1 -1
  26. package/dist/cli/session-json.js +36 -5
  27. package/dist/cli/session-json.js.map +1 -1
  28. package/dist/cli/session.d.ts.map +1 -1
  29. package/dist/cli/session.js +103 -36
  30. package/dist/cli/session.js.map +1 -1
  31. package/dist/execution/events.d.ts +8 -1
  32. package/dist/execution/events.d.ts.map +1 -1
  33. package/dist/execution/events.js.map +1 -1
  34. package/dist/execution/open-session.d.ts +7 -6
  35. package/dist/execution/open-session.d.ts.map +1 -1
  36. package/dist/execution/open-session.js +88 -59
  37. package/dist/execution/open-session.js.map +1 -1
  38. package/dist/execution/stream-turn.d.ts +4 -7
  39. package/dist/execution/stream-turn.d.ts.map +1 -1
  40. package/dist/execution/stream-turn.js +43 -22
  41. package/dist/execution/stream-turn.js.map +1 -1
  42. package/dist/interpretation/argv.d.ts +9 -5
  43. package/dist/interpretation/argv.d.ts.map +1 -1
  44. package/dist/interpretation/argv.js +2 -7
  45. package/dist/interpretation/argv.js.map +1 -1
  46. package/dist/interpretation/capabilities.d.ts +20 -0
  47. package/dist/interpretation/capabilities.d.ts.map +1 -1
  48. package/dist/interpretation/capabilities.js +27 -0
  49. package/dist/interpretation/capabilities.js.map +1 -1
  50. package/dist/interpretation/hints.js +1 -1
  51. package/dist/interpretation/hints.js.map +1 -1
  52. package/dist/interpretation/question.d.ts +6 -2
  53. package/dist/interpretation/question.d.ts.map +1 -1
  54. package/dist/interpretation/question.js +13 -4
  55. package/dist/interpretation/question.js.map +1 -1
  56. package/dist/interpretation/refusal.d.ts +1 -1
  57. package/dist/interpretation/refusal.d.ts.map +1 -1
  58. package/dist/interpretation/refusal.js +1 -1
  59. package/dist/interpretation/refusal.js.map +1 -1
  60. package/dist/interpretation/skills-selection.d.ts +18 -1
  61. package/dist/interpretation/skills-selection.d.ts.map +1 -1
  62. package/dist/interpretation/skills-selection.js +33 -6
  63. package/dist/interpretation/skills-selection.js.map +1 -1
  64. package/dist/knowledge/claude-code.d.ts.map +1 -1
  65. package/dist/knowledge/claude-code.js +21 -0
  66. package/dist/knowledge/claude-code.js.map +1 -1
  67. package/dist/knowledge/codex.d.ts.map +1 -1
  68. package/dist/knowledge/codex.js +16 -6
  69. package/dist/knowledge/codex.js.map +1 -1
  70. package/dist/knowledge/descriptor.d.ts +39 -12
  71. package/dist/knowledge/descriptor.d.ts.map +1 -1
  72. package/dist/knowledge/descriptor.js +1 -0
  73. package/dist/knowledge/descriptor.js.map +1 -1
  74. package/dist/knowledge/muse.d.ts.map +1 -1
  75. package/dist/knowledge/muse.js +7 -0
  76. package/dist/knowledge/muse.js.map +1 -1
  77. package/dist/knowledge/pi.d.ts.map +1 -1
  78. package/dist/knowledge/pi.js +23 -4
  79. package/dist/knowledge/pi.js.map +1 -1
  80. package/package.json +3 -2
  81. package/src/cli/args.ts +16 -6
  82. package/src/cli/config.ts +13 -4
  83. package/src/cli/help.ts +32 -23
  84. package/src/cli/inspect.ts +8 -6
  85. package/src/cli/render.ts +18 -1
  86. package/src/cli/resume-guard.ts +26 -2
  87. package/src/cli/run.ts +36 -38
  88. package/src/cli/session-json.ts +45 -7
  89. package/src/cli/session.ts +122 -40
  90. package/src/execution/events.ts +9 -1
  91. package/src/execution/open-session.ts +99 -72
  92. package/src/execution/stream-turn.ts +53 -30
  93. package/src/interpretation/argv.ts +11 -12
  94. package/src/interpretation/capabilities.ts +50 -0
  95. package/src/interpretation/hints.ts +1 -1
  96. package/src/interpretation/question.ts +17 -7
  97. package/src/interpretation/refusal.ts +2 -1
  98. package/src/interpretation/skills-selection.ts +46 -8
  99. package/src/knowledge/claude-code.ts +21 -0
  100. package/src/knowledge/codex.ts +16 -6
  101. package/src/knowledge/descriptor.ts +40 -12
  102. package/src/knowledge/muse.ts +7 -0
  103. package/src/knowledge/pi.ts +23 -4
@@ -1,4 +1,4 @@
1
- import { existsSync, realpathSync } from "node:fs";
1
+ import { existsSync, readdirSync, realpathSync, statSync } from "node:fs";
2
2
  import { storePath } from "../interpretation/store.js";
3
3
  /** Where a harness that creates sessions on an unknown id (pi, muse) would
4
4
  * have filed this session. The cwd is resolved to its real path first: the
@@ -21,6 +21,33 @@ export const resumeStore = (h, opts) => {
21
21
  catch {
22
22
  path = null;
23
23
  }
24
- return { path, exists: path !== null && existsSync(path) };
24
+ return { path, exists: path !== null && sessionExistsAt(path, opts.sessionId) };
25
+ };
26
+ /** A store template that resolves to a FILE names the session directly and
27
+ * existence is the file's. One that resolves to a DIRECTORY names where the
28
+ * harness files every session for this cwd, and the session is one entry in
29
+ * it whose name carries the id somewhere - pi writes `<timestamp>_<id>.jsonl`,
30
+ * so the id's position is not a template. Checking only that the directory
31
+ * exists reported every id as present once any session had ever run in the
32
+ * cwd, which made the guard pass unknown ids on pi and, once `origin` rode
33
+ * on it, reported a brand-new session as resumed. */
34
+ const sessionExistsAt = (path, sessionId) => {
35
+ if (!existsSync(path))
36
+ return false;
37
+ let isDir = false;
38
+ try {
39
+ isDir = statSync(path).isDirectory();
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ if (!isDir)
45
+ return true;
46
+ try {
47
+ return readdirSync(path).some((name) => name.includes(sessionId));
48
+ }
49
+ catch {
50
+ return false;
51
+ }
25
52
  };
26
53
  //# sourceMappingURL=resume-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resume-guard.js","sourceRoot":"","sources":["../../src/cli/resume-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;;;gDAIgD;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAoB,EACpB,IAAiF,EAC/D,EAAE;IACpB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,0CAA0C;IAC5C,CAAC;IACD,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"resume-guard.js","sourceRoot":"","sources":["../../src/cli/resume-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAUvD;;;;gDAIgD;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,CAAoB,EACpB,IAAiF,EAC/D,EAAE;IACpB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,0CAA0C;IAC5C,CAAC;IACD,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAClF,CAAC,CAAC;AAEF;;;;;;;qDAOqD;AACrD,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAW,EAAE;IACnE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,GAAG,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CA0gB9E,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,GAAG,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAwgB9E,CAAC"}
package/dist/cli/run.js CHANGED
@@ -8,7 +8,7 @@ import { recognizeNativeSpelling, supportedBy } from "../interpretation/support.
8
8
  import { defaultDescriptors } from "../knowledge/overrides.js";
9
9
  import { parseRunExtra, parseTurnOptions, resolvePromptAsync } from "./args.js";
10
10
  import { refusalOf, refuse } from "./refuse.js";
11
- import { createRenderState, renderEvent, writeEventNdjson } from "./render.js";
11
+ import { createRenderState, renderEvent, writeEventNdjsonAsync } from "./render.js";
12
12
  import { resolveHarness } from "./resolve-harness.js";
13
13
  import { resumeStore } from "./resume-guard.js";
14
14
  export const run = async (harnessName, rawArgs) => {
@@ -159,13 +159,17 @@ export const run = async (harnessName, rawArgs) => {
159
159
  try {
160
160
  const { resolveSkillNames, listKnownSkills } = await import("./skills-root.js");
161
161
  const resolvedSkills = resolveSkillNames(rawSkills, h.name);
162
- const claudeTokens = [];
162
+ const skillTokens = [];
163
163
  if (h.name === "claude") {
164
164
  const { claudeSkillOverridesArg } = await import("../interpretation/skills-selection.js");
165
- claudeTokens.push(...claudeSkillOverridesArg(listKnownSkills(), resolvedSkills));
165
+ skillTokens.push(...claudeSkillOverridesArg(listKnownSkills(), resolvedSkills));
166
+ }
167
+ else if (h.name === "codex") {
168
+ const { codexSkillConfigArg } = await import("../interpretation/skills-selection.js");
169
+ skillTokens.push(...codexSkillConfigArg(listKnownSkills(), resolvedSkills));
166
170
  }
167
171
  turnOpts.skills = resolvedSkills;
168
- turnOpts.__claudeSkillTokens = claudeTokens;
172
+ turnOpts.__skillTokens = skillTokens;
169
173
  }
170
174
  catch (err) {
171
175
  if (err instanceof ArgvRefusalError) {
@@ -180,9 +184,9 @@ export const run = async (harnessName, rawArgs) => {
180
184
  let effectiveTurnOpts = turnOpts;
181
185
  const resolvedTiers = {};
182
186
  // Config files load on EVERY run, launch or resume: the tiers feed the
183
- // defaults profile on launch, and issue #41's escalateQuestions (a
187
+ // defaults profile on launch, and issue #41's questions (a
184
188
  // behavior instruction, not a turn option) resolves from them on resume
185
- // too - otherwise a no-escalate session would flip its preamble on the
189
+ // too - otherwise a no-ask session would flip its preamble on the
186
190
  // answer turn. Resolution of TURN options stays launch-only.
187
191
  const tiers = resolvedTiers;
188
192
  {
@@ -227,36 +231,31 @@ export const run = async (harnessName, rawArgs) => {
227
231
  const { writeProvenance } = await import("./provenance.js");
228
232
  writeProvenance(h.name, provenance, unrenderable);
229
233
  }
230
- // issue #41: question-escalation precedence arg > project > user >
231
- // default-true (a behavior instruction, not a turn option - the
232
- // default lives OUTSIDE the profile on purpose, per the spec). It
233
- // applies on LAUNCH AND RESUME alike: it shapes each turn's prompt
234
- // preamble and event stream, never a session setting.
235
- const projectEscalate = resolvedTiers.project
236
- ?.escalateQuestions;
237
- const userEscalate = resolvedTiers.user
238
- ?.escalateQuestions;
239
- const escalateQuestions = turnOpts.escalateQuestions !== undefined
240
- ? turnOpts.escalateQuestions
241
- : projectEscalate !== undefined
242
- ? projectEscalate
243
- : userEscalate !== undefined
244
- ? userEscalate
245
- : true;
246
- const escalateTier = turnOpts.escalateQuestions !== undefined
234
+ // question mode precedence arg > project > user > default (ask)
235
+ const projectQuestions = resolvedTiers.project?.questions;
236
+ const userQuestions = resolvedTiers.user?.questions;
237
+ const rawMode = turnOpts.questions;
238
+ const questionMode = rawMode !== undefined
239
+ ? rawMode
240
+ : projectQuestions !== undefined
241
+ ? projectQuestions
242
+ : userQuestions !== undefined
243
+ ? userQuestions
244
+ : "ask";
245
+ const questionTier = rawMode !== undefined
247
246
  ? "arg"
248
- : projectEscalate !== undefined
247
+ : projectQuestions !== undefined
249
248
  ? "project-config"
250
- : userEscalate !== undefined
249
+ : userQuestions !== undefined
251
250
  ? "user-config"
252
251
  : "default";
253
252
  const fullOpts = {
254
253
  ...effectiveTurnOpts,
255
- prompt: composeEscalatedPrompt(prompt, escalateQuestions),
254
+ prompt: composeEscalatedPrompt(prompt, questionMode),
256
255
  cwd: extra.cwd,
257
256
  env: extra.env,
258
257
  resume: extra.resume,
259
- escalateQuestions,
258
+ questions: questionMode,
260
259
  ...(passthrough.length > 0 ? { passthrough } : {}),
261
260
  ...(isExplicit ? { __explicitPrompt: true } : {}),
262
261
  };
@@ -267,7 +266,7 @@ export const run = async (harnessName, rawArgs) => {
267
266
  if (fullOpts.resume) {
268
267
  // Resume never carries TURN-option profile resolution (launch-only
269
268
  // rule), so it builds from the raw turn options; hcn-owned behavior
270
- // (escalateQuestions preamble, timeout budget) still applies.
269
+ // (questions preamble, timeout budget) still applies.
271
270
  preArgv = buildResumeArgv(h, {
272
271
  ...turnOpts,
273
272
  prompt: fullOpts.prompt,
@@ -285,10 +284,10 @@ export const run = async (harnessName, rawArgs) => {
285
284
  prompt: fullOpts.prompt,
286
285
  __explicitPrompt: isExplicit,
287
286
  });
288
- const claudeSkillTokens = effectiveTurnOpts
289
- .__claudeSkillTokens;
290
- if (claudeSkillTokens !== undefined && claudeSkillTokens.length > 0) {
291
- preArgv.push(...claudeSkillTokens);
287
+ const skillTokens = effectiveTurnOpts
288
+ .__skillTokens;
289
+ if (skillTokens !== undefined && skillTokens.length > 0) {
290
+ preArgv.push(...skillTokens);
292
291
  }
293
292
  }
294
293
  _validated = true;
@@ -313,7 +312,7 @@ export const run = async (harnessName, rawArgs) => {
313
312
  }
314
313
  // issue #41: the escalation mode rides stderr as provenance, like
315
314
  // every other resolution the turn depends on.
316
- process.stderr.write(`provenance: escalateQuestions = ${escalateQuestions} (${escalateTier})\n`);
315
+ process.stderr.write(`provenance: questions = ${questionMode} (${questionTier})\n`);
317
316
  // On a harness whose include flag is not a strict allowlist (claude),
318
317
  // a name outside the curated set passes through ungated; say which
319
318
  // ones so a wrong-case name is visible. A grant with no known name at
@@ -419,7 +418,9 @@ export const run = async (harnessName, rawArgs) => {
419
418
  for await (const event of events) {
420
419
  lastEvent = event;
421
420
  if (wantJson) {
422
- writeEventNdjson(event);
421
+ // Await the write: a consumer that stops reading must stall the
422
+ // harness, not be absorbed into this process's memory.
423
+ await writeEventNdjsonAsync(event);
423
424
  }
424
425
  else {
425
426
  renderEvent(event, state);
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,WAAmB,EAAE,OAAiB,EAAiB,EAAE;IACjF,MAAM,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAC1F,WAAW,CACZ,CAAC;IACF,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9D,uEAAuE;IACvE,mCAAmC;IACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC;YAC/B,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,SAAS,EAAE,CAAC,gCAAgC,CAAC;YAC7C,MAAM,EAAE,mCAAmC,CAAC,CAAC,GAAG,EAAE;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,IAAI,MAA2C,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,gEAAgE;QAChE,gEAAgE;QAChE,8BAA8B;QAC9B,qEAAqE;QACrE,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACrE,IAAI,OAA2B,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,kEAAkE;YAClE,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC;gBACnC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC,CAAC,SAAS,CAAC,CAAC;YACjB,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GACV,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,kBAAkB,GACtB,MAAM,CAAC,MAAM,KAAK,cAAc;gBAC9B,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;oBACtC,CAAC,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBAClH,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,CACJ;gBACE,OAAO,EAAE,iBAAiB,OAAO,kCAAkC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,kBAAkB,eAAe;gBAC7K,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,CAAC,iCAAiC,CAAC;aAC7C,EACD,QAAQ,CACT,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,CACJ;YACE,OAAO,EAAE,iBAAiB,OAAO,EAAE;YACnC,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,CAAC,iCAAiC,CAAC;SAC7C,EACD,QAAQ,CACT,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAiC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAuB,CAAC;IACnD,2GAA2G;IAC3G,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CACJ;YACE,OAAO,EAAE,mDAAmD;YAC5D,KAAK,EAAE,sBAAsB;SAC9B,EACD,QAAQ,CACT,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,CACJ;YACE,OAAO,EAAE,0DAA0D;YACnE,KAAK,EAAE,sBAAsB;SAC9B,EACD,QAAQ,CACT,CAAC;QACF,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,IAAI,MAAc,CAAC;IACnB,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;YACxC,gBAAgB;YAChB,UAAU,EAAE,MAAM,CAAC,MAA4B;YAC/C,UAAU,EAAE,MAAM,CAAC,aAAa,CAAuB;SACxD,CAAC,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,GAAG,YAAY,KAAK,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7E,MAAM,CACJ,EAAE,OAAO,EAAE,0BAA0B,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EACnF,QAAQ,CACT,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,qBAAqB;IACrB,IAAI,QAA6C,CAAC;IAClD,IAAI,CAAC;QACH,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,KAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,KAAK,YAAY,CAAC;IAEjD,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,SAAS,GAAI,QAA6C,CAAC,MAAM,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAChF,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;gBAC1F,WAAW,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;gBACtF,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAC9E,CAAC;YACA,QAA+C,CAAC,MAAM,GAAG,cAAc,CAAC;YACxE,QAA+C,CAAC,aAAa,GAAG,WAAW,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,iBAAiB,GAAwC,QAAQ,CAAC;IACtE,MAAM,aAAa,GAGf,EAAE,CAAC;IACP,uEAAuE;IACvE,2DAA2D;IAC3D,wEAAwE;IACxE,kEAAkE;IAClE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,CAAC;QACC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;YAChC,IAAI,MAAM,KAAK,IAAI;gBAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YAChD,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,IAAI;gBAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,SAAS,YAAY,WAAW,EAAE,CAAC;gBACrC,MAAM,CACJ,EAAE,OAAO,EAAE,iBAAiB,SAAS,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAChF,QAAQ,CACT,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,SAAS,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,QAAoD,CAAC;QACzD,IAAI,CAAC;YACH,QAAQ,GAAG,uBAAuB,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAW,EAAE,KAAK,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,MAAM,YAAY,kBAAkB,EAAE,CAAC;gBACzC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,MAAM,YAAY,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,MAAM,CAAC;QACf,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,OAA6B,CAAC;QACvE,iBAAiB,GAAG,IAA2C,CAAC;QAChE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5D,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,gEAAgE;IAChE,MAAM,gBAAgB,GAAI,aAAa,CAAC,OAA8C,EAAE,SAAS,CAAC;IAClG,MAAM,aAAa,GAAI,aAAa,CAAC,IAA2C,EAAE,SAAS,CAAC;IAC5F,MAAM,OAAO,GAAI,QAAmC,CAAC,SAAS,CAAC;IAC/D,MAAM,YAAY,GAChB,OAAO,KAAK,SAAS;QACnB,CAAC,CAAE,OAAgE;QACnE,CAAC,CAAC,gBAAgB,KAAK,SAAS;YAC9B,CAAC,CAAE,gBAAyE;YAC5E,CAAC,CAAC,aAAa,KAAK,SAAS;gBAC3B,CAAC,CAAE,aAAsE;gBACzE,CAAC,CAAE,KAAe,CAAC;IAC3B,MAAM,YAAY,GAChB,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,gBAAgB,KAAK,SAAS;YAC9B,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,aAAa,KAAK,SAAS;gBAC3B,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,SAAS,CAAC;IAEpB,MAAM,QAAQ,GAAG;QACf,GAAG,iBAAiB;QACpB,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC;QACpD,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,YAAY;QACvB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAK3D,CAAC;IAEF,gGAAgG;IAChG,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,GAAoB,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,mEAAmE;YACnE,oEAAoE;YACpE,sDAAsD;YACtD,OAAO,GAAG,eAAe,CAAC,CAAC,EAAE;gBAC3B,GAAI,QAAmB;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,QAAQ,CAAC,MAAM;gBAC1B,gBAAgB,EAAE,UAAU;aACpB,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,mEAAmE;YACnE,gEAAgE;YAChE,+DAA+D;YAC/D,OAAO,GAAG,eAAe,CAAC,CAAC,EAAE;gBAC3B,GAAI,iBAA4B;gBAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,gBAAgB,EAAE,UAAU;aACpB,CAAC,CAAC;YACZ,MAAM,WAAW,GAAI,iBAA6D;iBAC/E,aAAa,CAAC;YACjB,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,kGAAkG;IAClG,uDAAuD;IAEvD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,kEAAkE;QAClE,8CAA8C;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC;QACpF,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,gBAAgB;QAChB,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;QACrE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;gBACpF,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,uEAAuE;IACvE,kEAAkE;IAClE,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE;YACtC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;YACvD,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM;SAC3B,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,CACJ;gBACE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,MAAM,aAAa,IAAI,EAAE;gBACnE,KAAK,EAAE,sBAAsB;gBAC7B,SAAS,EAAE,CAAC,+BAA+B,CAAC,CAAC,IAAI,UAAU,CAAC;aAC7D,EACD,QAAQ,CACT,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,OAAQ,OAAO,CAAC,GAA0C,CAAC,SAAS,CAAC;IAErE,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,cAAc,GAClB,KAAK,CAAC,cAAc,KAAK,SAAS;QAChC,CAAC,CAAC,KAAK,CAAC,cAAc;QACtB,CAAC,CAAC,CAAE,aAAa,EAAE,OAA4C,EAAE,OAAO;YACrE,aAAa,EAAE,IAAyC,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,IAAI,GACR,cAAc,KAAK,SAAS,IAAI,cAAc,GAAG,CAAC;QAChD,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,GAAG,IAAI,EAAE,CAAC;QAC1D,CAAC,CAAC,cAAc,EAAE,CAAC;IAEvB,kBAAkB;IAClB,MAAM,YAAY,GAA4D,IAAI,CAAC;IACnF,+FAA+F;IAC/F,qEAAqE;IACrE,oEAAoE;IACpE,+DAA+D;IAC/D,IAAI,QAAQ,GAAyD,IAAI,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI;QACP,MAAM,EAAE,CAAC,IAAmD,EAAE,GAA0B,EAAE,EAAE;YAC1F,QAAQ,GAAG,IAAI,CAAC;YAChB,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,EAAE,CAAC,IAAuB,EAAE,IAAiD,EAAE,EAAE;YACpF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,eAAe,GAAyC,IAAI,CAAC;IACjE,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,WAAW;YAAE,OAAO;QACxB,WAAW,GAAG,IAAI,CAAC;QACnB,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;oBAChC,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC;4BACH,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAC1C,CAAC;wBAAC,MAAM,CAAC,CAAA,CAAC;oBACZ,CAAC;oBACD,eAAe,GAAG,IAAI,CAAC;gBACzB,CAAC,EAAE,aAAa,CAAC,CAAC;gBAClB,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,IAAI,SAAS,GAAwB,IAAI,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,CAAC;QACH,+DAA+D;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,QAAQ,EAAE,CAAC;gBACb,gEAAgE;gBAChE,uDAAuD;gBACvD,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,gBAAgB;oBAAE,QAAQ,GAAG,CAAC,CAAC;;oBACzE,QAAQ,GAAG,CAAC,CAAC;gBAClB,iIAAiI;gBACjI,oGAAoG;YACtG,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAC1D,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC3F,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,4BAA4B;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,QAAQ,IAAI,SAAS,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,uHAAuH;YACvH,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,SAAkB;gBACxB,KAAK,EAAE,WAAoB;gBAC3B,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;aACrB,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAI,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;YAAS,CAAC;QACT,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wDAAwD;IACxD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -1,19 +1,22 @@
1
1
  import { type SessionHandle } from "../execution/open-session.js";
2
+ import type { QuestionMode } from "../interpretation/question.js";
2
3
  /** What the CLI reads back after a close, captured from the runner's
3
4
  * `session_close` boundary log. */
4
5
  export interface CloseInfo {
5
6
  exitCode: number | null;
6
7
  cause: string;
7
8
  }
9
+ export type SessionOrigin = "fresh" | "resumed";
8
10
  export interface JsonSessionArgs {
9
11
  readonly handle: SessionHandle;
10
12
  readonly sessionId: string;
11
13
  readonly harness: string;
12
14
  readonly hcnVersion: string;
13
- readonly escalateQuestions: boolean;
15
+ readonly questions?: QuestionMode;
16
+ readonly origin: SessionOrigin;
14
17
  /** Read after close - the runner's final exitCode and cause. */
15
18
  readonly getCloseInfo: () => CloseInfo;
16
- /** Read after close - ids the runner accepted as queued and never
19
+ /** Read after close - ids the runner accepted and never
17
20
  * delivered. Each owes the consumer a rejection (RFC S003). */
18
21
  readonly getDroppedIds?: () => readonly string[];
19
22
  /** Injected for tests; defaults to process.stdin / process.stdout. */
@@ -1 +1 @@
1
- {"version":3,"file":"session-json.d.ts","sourceRoot":"","sources":["../../src/cli/session-json.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAEtC;mCACmC;AACnC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,SAAS,CAAC;IACvC;mEAC+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACjD,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC7C;AAgCD,eAAO,MAAM,cAAc,MAAa,eAAe,KAAG,OAAO,CAAC,MAAM,CA4JvE,CAAC"}
1
+ {"version":3,"file":"session-json.d.ts","sourceRoot":"","sources":["../../src/cli/session-json.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE;mCACmC;AACnC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,SAAS,CAAC;IACvC;mEAC+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACjD,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC7C;AAgCD,eAAO,MAAM,cAAc,MAAa,eAAe,KAAG,OAAO,CAAC,MAAM,CA8LvE,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * with the control events (`session`, `turn`, `disposition`, `closed`) that
5
5
  * a program needs to drive a session it does not own the timing of. RFC-01.
6
6
  *
7
- * This owns the wire framing only. The turn lifecycle, the queue, and the id
7
+ * This owns the wire framing only. The turn lifecycle and the id
8
8
  * correlation live in `openSession`; this reads the id off the yielded turn
9
9
  * rather than shadowing the runner's delivery order.
10
10
  */
@@ -79,12 +79,14 @@ export const runJsonSession = async (a) => {
79
79
  }));
80
80
  return chain;
81
81
  };
82
+ const qMode = a.questions ?? "ask";
82
83
  await emit({
83
84
  kind: "session",
84
85
  sessionId: a.sessionId,
85
86
  harness: a.harness,
86
87
  hcn: a.hcnVersion,
87
- escalateQuestions: a.escalateQuestions,
88
+ questions: qMode,
89
+ origin: a.origin,
88
90
  });
89
91
  // Shared between the pumps: the last question asked, whether the last turn
90
92
  // ended awaiting an answer, and the last failure seen (for closed.failure).
@@ -117,6 +119,15 @@ export const runJsonSession = async (a) => {
117
119
  }
118
120
  })();
119
121
  const rl = createInterface({ input: a.input ?? process.stdin });
122
+ // Ids accepted from stdin but not yet answered with a disposition. If the
123
+ // command stream itself fails, each is owed one: silence would leave the
124
+ // consumer waiting on an answer that can no longer arrive.
125
+ const unanswered = new Set();
126
+ let stdinError = null;
127
+ const commandStream = (a.input ?? process.stdin);
128
+ commandStream.on?.("error", (err) => {
129
+ stdinError = err.code ?? err.message;
130
+ });
120
131
  const stdinPump = (async () => {
121
132
  for await (const line of rl) {
122
133
  if (line.trim() === "")
@@ -142,6 +153,7 @@ export const runJsonSession = async (a) => {
142
153
  text = composeAnswer(lastQuestion, cmd.text);
143
154
  }
144
155
  let sent;
156
+ unanswered.add(cmd.id);
145
157
  try {
146
158
  sent = a.handle.send({ id: cmd.id, text });
147
159
  }
@@ -149,6 +161,7 @@ export const runJsonSession = async (a) => {
149
161
  // A session the caller already closed, or one already dead: a
150
162
  // different remedy from a broken pipe, so a different reason.
151
163
  if (err instanceof SessionClosedError) {
164
+ unanswered.delete(cmd.id);
152
165
  await emit({
153
166
  kind: "disposition",
154
167
  id: cmd.id,
@@ -157,8 +170,10 @@ export const runJsonSession = async (a) => {
157
170
  });
158
171
  continue;
159
172
  }
173
+ unanswered.delete(cmd.id);
160
174
  throw err;
161
175
  }
176
+ unanswered.delete(cmd.id);
162
177
  await emit({
163
178
  kind: "disposition",
164
179
  id: cmd.id,
@@ -167,14 +182,30 @@ export const runJsonSession = async (a) => {
167
182
  });
168
183
  }
169
184
  })();
185
+ // A command stream that breaks is not a clean end of input, but it is also
186
+ // not a crash of this process: record it and close the session in order.
187
+ // The caught form is what the race waits on - the raw pump would reject
188
+ // straight out of runJsonSession.
189
+ const stdinDone = stdinPump.catch((err) => {
190
+ stdinError = err instanceof Error ? err.message : String(err);
191
+ });
170
192
  // Whichever ends first drives the close: a close/EOF from stdin, or the
171
193
  // session dying (the turns iterable ends). close() is idempotent; closing
172
194
  // the readline unblocks the stdin pump if the session died first.
173
- await Promise.race([stdinPump, stdoutPump]);
195
+ await Promise.race([stdinDone, stdoutPump]);
174
196
  await a.handle.close();
175
197
  rl.close();
176
- await Promise.allSettled([stdinPump, stdoutPump]);
177
- // Every input the runner accepted as queued and then lost gets its own
198
+ await Promise.allSettled([stdinDone, stdoutPump]);
199
+ // A broken command stream is a fact the consumer needs, and every send it
200
+ // swallowed is owed its answer.
201
+ if (stdinError !== null) {
202
+ await emit({ kind: "error", message: `command stream failed: ${stdinError}` });
203
+ }
204
+ for (const id of unanswered) {
205
+ await emit({ kind: "disposition", id, disposition: "rejected", reason: "closed" });
206
+ }
207
+ unanswered.clear();
208
+ // Every input the runner accepted and then lost gets its own
178
209
  // rejection, before the terminal line (RFC S003).
179
210
  for (const id of a.getDroppedIds?.() ?? []) {
180
211
  await emit({ kind: "disposition", id, disposition: "rejected", reason: "closed" });
@@ -1 +1 @@
1
- {"version":3,"file":"session-json.js","sourceRoot":"","sources":["../../src/cli/session-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-json.js","sourceRoot":"","sources":["../../src/cli/session-json.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAgUlF,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,gBAAuB,MAAM,WAAW,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAkZlF,CAAC"}
@@ -50,42 +50,87 @@ export const session = async (harnessName, rawArgs) => {
50
50
  return;
51
51
  }
52
52
  const values = parsed.values;
53
- const sessionId = values["session-id"] ??
54
- values.resume ??
55
- randomUUID();
53
+ // --resume and --session-id are aliases for one concept: resume an existing
54
+ // session. Passing both is refused, matching hcn run's parseRunExtra shape
55
+ // (src/cli/args.ts) rather than inventing a second parser.
56
+ if (values.resume !== undefined && values["session-id"] !== undefined) {
57
+ const { ArgvRefusalError: AliasError } = await import("../interpretation/refusal.js");
58
+ const err = new AliasError({
59
+ issue: "mutually-exclusive-options",
60
+ harness: h.name,
61
+ supported: ["--resume or --session-id, not both (--session-id is an alias for --resume)"],
62
+ detail: "both --resume and --session-id given",
63
+ });
64
+ const { refusalOf: aliasRefusalOf, refuse: aliasRefuse } = await import("./refuse.js");
65
+ aliasRefuse(aliasRefusalOf(err), jsonMode, "closed");
66
+ return;
67
+ }
68
+ const resumeId = values.resume ?? values["session-id"];
69
+ // The two flags are aliases for "use this session". Whether that means
70
+ // RESUME is decided by the store, not by which spelling was typed: an id
71
+ // that exists is resumed (resumeFlag rendered), an id that does not exist
72
+ // names a fresh session (idFlag rendered). --resume on an id that does not
73
+ // exist is the one combination refused, below - a caller who said "resume"
74
+ // and would silently get a fresh conversation is issue #86 exactly.
75
+ const explicitResume = values.resume !== undefined;
76
+ // A caller-supplied id must be the shape this harness's store files
77
+ // sessions under (issue #95). hcn run already holds this line through
78
+ // parse-resume; session only checked the safe-filename rule, so "bogus"
79
+ // reached the harness, rode the session and identity events, and on a
80
+ // create-on-unknown harness became a real file nobody can find again.
81
+ if (resumeId !== undefined && !h.resume.idShape.test(resumeId)) {
82
+ const flag = explicitResume ? "--resume" : "--session-id";
83
+ const { refuse: shapeRefuse } = await import("./refuse.js");
84
+ shapeRefuse({
85
+ message: `${flag} ${JSON.stringify(resumeId.slice(0, 64))} is not a ${h.name} session id`,
86
+ issue: "invalid-option-value",
87
+ supported: [`a session id matching ${String(h.resume.idShape)}`],
88
+ }, jsonMode, "closed");
89
+ return;
90
+ }
91
+ const sessionId = resumeId ?? randomUUID();
92
+ let isResume = false;
56
93
  const model = values.model;
57
94
  const cwd = values.cwd;
58
95
  const provider = values.provider;
59
- // issue #44: same precedence as hcn run - arg > project > user >
60
- // default-true. A behavior instruction, so it rides every send's
61
- // preamble, never a harness flag.
62
- const argEscalate = values["escalate-questions"] === true
63
- ? true
64
- : values["no-escalate-questions"] === true
65
- ? false
66
- : undefined;
67
- let escalateQuestions;
68
- let escalateTier;
96
+ // question mode precedence arg > project > user > default (ask)
97
+ const rawArgMode = values.questions !== undefined ? String(values.questions) : undefined;
98
+ if (rawArgMode !== undefined && !["ask", "assume", "none"].includes(rawArgMode)) {
99
+ const { refuse, refusalOf } = await import("./refuse.js");
100
+ const { ArgvRefusalError } = await import("../interpretation/refusal.js");
101
+ refuse(refusalOf(new ArgvRefusalError({
102
+ issue: "invalid-option-value",
103
+ harness: h.name,
104
+ option: "questions",
105
+ supported: ["ask", "assume", "none"],
106
+ detail: rawArgMode,
107
+ })), jsonMode, "closed");
108
+ return;
109
+ }
110
+ let questionMode;
111
+ let questionTier;
69
112
  try {
70
113
  const { loadUserConfig, loadProjectConfig } = await import("./config.js");
71
114
  const user = loadUserConfig()?.config;
72
115
  const project = loadProjectConfig()?.config;
73
- escalateQuestions =
74
- argEscalate !== undefined
75
- ? argEscalate
76
- : project?.escalateQuestions !== undefined
77
- ? project.escalateQuestions
78
- : user?.escalateQuestions !== undefined
79
- ? user.escalateQuestions
80
- : true;
81
- escalateTier =
82
- argEscalate !== undefined
83
- ? "arg"
84
- : project?.escalateQuestions !== undefined
85
- ? "project-config"
86
- : user?.escalateQuestions !== undefined
87
- ? "user-config"
88
- : "default";
116
+ const userMode = user?.questions;
117
+ const projectMode = project?.questions;
118
+ if (rawArgMode !== undefined) {
119
+ questionMode = rawArgMode;
120
+ questionTier = "arg";
121
+ }
122
+ else if (projectMode !== undefined) {
123
+ questionMode = projectMode;
124
+ questionTier = "project-config";
125
+ }
126
+ else if (userMode !== undefined) {
127
+ questionMode = userMode;
128
+ questionTier = "user-config";
129
+ }
130
+ else {
131
+ questionMode = "ask";
132
+ questionTier = "default";
133
+ }
89
134
  }
90
135
  catch (configErr) {
91
136
  process.stderr.write(`config error: ${configErr.message}\n`);
@@ -100,8 +145,32 @@ export const session = async (harnessName, rawArgs) => {
100
145
  process.exitCode = 2;
101
146
  return;
102
147
  }
103
- process.stderr.write(`provenance: escalateQuestions = ${escalateQuestions} (${escalateTier})\n`);
148
+ process.stderr.write(`provenance: questions = ${questionMode} (${questionTier})\n`);
104
149
  // Validate sessionId shape? let openSession handle via assertUsableSessionId
150
+ // Unknown-id refusal reuses the run resume guard (src/cli/resume-guard.ts):
151
+ // harnesses that create on unknown (pi, muse with onMissing === "create")
152
+ // are refused before spawn with the same message shape hcn run uses.
153
+ // claude (onMissing === "error") refuses on its own; no store check.
154
+ if (resumeId !== undefined) {
155
+ const { resumeStore: checkResumeStore } = await import("./resume-guard.js");
156
+ const { path: storePath, exists } = checkResumeStore(h, {
157
+ home: process.env.HOME ?? process.env.USERPROFILE ?? "",
158
+ cwd: cwd ?? process.cwd(),
159
+ sessionId,
160
+ });
161
+ // Exists in the store: resume it, whichever alias was typed. Absent and the
162
+ // caller only named an id: a fresh session under that id, as before.
163
+ isResume = storePath !== null && exists;
164
+ if (explicitResume && storePath !== null && !exists) {
165
+ const { refuse: guardRefuse } = await import("./refuse.js");
166
+ guardRefuse({
167
+ message: `no ${h.name} session ${sessionId} found at ${storePath}`,
168
+ issue: "invalid-option-value",
169
+ supported: [`a session id that exists in ${h.name}'s store`],
170
+ }, jsonMode, "closed");
171
+ return;
172
+ }
173
+ }
105
174
  delete process.env.HERDR_ENV;
106
175
  const wantJson = values.json === true;
107
176
  // Opt-in per-turn inactivity budget. 0 disables; no default. A session turn
@@ -149,7 +218,7 @@ export const session = async (harnessName, rawArgs) => {
149
218
  : baseDeps;
150
219
  let handle;
151
220
  try {
152
- handle = openSession(h, { sessionId, model, cwd, escalateQuestions, provider }, deps);
221
+ handle = openSession(h, { sessionId, model, cwd, questions: questionMode, provider, isResume }, deps);
153
222
  }
154
223
  catch (err) {
155
224
  if (err instanceof ArgvRefusalError) {
@@ -176,7 +245,8 @@ export const session = async (harnessName, rawArgs) => {
176
245
  sessionId,
177
246
  harness: h.name,
178
247
  hcnVersion: getVersion(),
179
- escalateQuestions,
248
+ questions: questionMode,
249
+ origin: isResume ? "resumed" : "fresh",
180
250
  getCloseInfo: () => closeInfo,
181
251
  getDroppedIds: () => droppedIds,
182
252
  });
@@ -235,10 +305,7 @@ export const session = async (harnessName, rawArgs) => {
235
305
  const trimmed = line.trim();
236
306
  if (trimmed === "" || trimmed === "exit")
237
307
  break;
238
- const result = handle.send({ id: `you-${++sendCount}`, text: line });
239
- if (result.disposition === "queued") {
240
- process.stderr.write(`disposition: queued (turn in progress)\n`);
241
- }
308
+ handle.send({ id: `you-${++sendCount}`, text: line });
242
309
  const turn = (await turns.next()).value;
243
310
  if (turn === undefined)
244
311
  break;