@dungle-scrubs/harness-cli-normalizer 0.4.2 → 0.4.3
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.
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +8 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +107 -9
- package/dist/cli/session.js.map +1 -1
- package/dist/execution/failure.d.ts.map +1 -1
- package/dist/execution/failure.js.map +1 -1
- package/dist/execution/open-session.d.ts +5 -0
- package/dist/execution/open-session.d.ts.map +1 -1
- package/dist/execution/open-session.js +136 -4
- package/dist/execution/open-session.js.map +1 -1
- package/dist/interpretation/argv.d.ts.map +1 -1
- package/dist/interpretation/argv.js +4 -3
- package/dist/interpretation/argv.js.map +1 -1
- package/dist/interpretation/presence.d.ts.map +1 -1
- package/dist/interpretation/presence.js +3 -1
- package/dist/interpretation/presence.js.map +1 -1
- package/dist/interpretation/question.d.ts +12 -4
- package/dist/interpretation/question.d.ts.map +1 -1
- package/dist/interpretation/question.js +21 -5
- package/dist/interpretation/question.js.map +1 -1
- package/dist/interpretation/session-input.d.ts.map +1 -1
- package/dist/interpretation/session-input.js +5 -0
- package/dist/interpretation/session-input.js.map +1 -1
- package/dist/knowledge/claude-code.d.ts.map +1 -1
- package/dist/knowledge/claude-code.js +2 -0
- package/dist/knowledge/claude-code.js.map +1 -1
- package/dist/knowledge/descriptor.d.ts +16 -3
- package/dist/knowledge/descriptor.d.ts.map +1 -1
- package/dist/knowledge/descriptor.js +1 -1
- package/dist/knowledge/descriptor.js.map +1 -1
- package/dist/knowledge/pi.d.ts.map +1 -1
- package/dist/knowledge/pi.js +21 -7
- package/dist/knowledge/pi.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/help.ts +8 -3
- package/src/cli/session.ts +113 -11
- package/src/execution/failure.ts +1 -6
- package/src/execution/open-session.ts +146 -4
- package/src/interpretation/argv.ts +4 -3
- package/src/interpretation/presence.ts +3 -1
- package/src/interpretation/question.ts +26 -5
- package/src/interpretation/session-input.ts +5 -0
- package/src/knowledge/claude-code.ts +2 -0
- package/src/knowledge/descriptor.ts +14 -3
- package/src/knowledge/pi.ts +21 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/interpretation/argv.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/interpretation/presence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/interpretation/presence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAaD,eAAO,MAAM,aAAa,MACrB,iBAAiB,aACT,MAAM,QACX,SAAS,UAAU,EAAE,KAC1B,OAkBF,CAAC"}
|
|
@@ -2,7 +2,9 @@ import { basenameOf, tokenize } from "./shape.js";
|
|
|
2
2
|
const idBearingFlags = (h) => [
|
|
3
3
|
h.resume.flag,
|
|
4
4
|
...h.resume.aliases,
|
|
5
|
-
|
|
5
|
+
// idFlag null = the harness mints session ids and accepts no id flag
|
|
6
|
+
// (pi rpc); such processes never carry a caller id to match anyway.
|
|
7
|
+
...(h.sessionMode === null || h.sessionMode.idFlag === null ? [] : [h.sessionMode.idFlag]),
|
|
6
8
|
// muse's interactive process IS `muse resume <id>` - the parse-only
|
|
7
9
|
// spelling is exactly what a live interactive argv looks like.
|
|
8
10
|
...(h.resume.positionalParseWord === undefined ? [] : [h.resume.positionalParseWord]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/interpretation/presence.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAqB,EAAE,CAAC;IAClE,CAAC,CAAC,MAAM,CAAC,IAAI;IACb,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;IACnB,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/interpretation/presence.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAqB,EAAE,CAAC;IAClE,CAAC,CAAC,MAAM,CAAC,IAAI;IACb,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;IACnB,qEAAqE;IACrE,oEAAoE;IACpE,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1F,oEAAoE;IACpE,+DAA+D;IAC/D,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;CACtF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,CAAoB,EACpB,SAAiB,EACjB,IAA2B,EAClB,EAAE;IACX,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvB,iEAAiE;QACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,0EAA0E;QAC1E,IAAI,GAAG,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACjE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -20,10 +20,18 @@
|
|
|
20
20
|
export declare const QUESTION_PREAMBLE_MARKER = "[hcn question protocol]";
|
|
21
21
|
export declare const ESCALATION_PREAMBLE = "[hcn question protocol]\nYou are running headless: no one is watching this session live, but a caller relays answers between turns. This protocol never changes your permissions - asking is not how you obtain permission, and it never removes any permission this run already has. Use the tools you have exactly as granted.\nIf and only if a genuine decision you cannot make defensibly blocks correct progress, ask by ending your turn: emit one fenced code block tagged hcn-question, as the last content of your final message, containing a single JSON object:\n\n```hcn-question\n{\"question\": \"<the decision you need made>\", \"options\": [\"<option 1>\", \"<option 2>\"], \"recommended\": \"<one of options>\"}\n```\n\nSay nothing after the block. Your turn ends there; the caller's user will answer, and your next turn continues from that answer. For every choice you can make defensibly yourself, do not ask - decide, act, and state the decision you made.";
|
|
22
22
|
export declare const NO_ESCALATION_PREAMBLE = "[hcn question protocol]\nYou are running headless and no one will answer you in this session. Never ask a question, never request input or confirmation, and never end your turn awaiting a reply. When a decision is ambiguous, pick the most defensible reading, state the assumption you proceeded under in one sentence, and continue to completion.";
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
|
|
23
|
+
/** Session-mode variant (issue #44): the worker lives in ONE persistent
|
|
24
|
+
* session with a live stdin - the ask stops generation but the session
|
|
25
|
+
* stays open, and the answer arrives as the next user message on the
|
|
26
|
+
* same session. No exit, no resume. */
|
|
27
|
+
export declare const SESSION_ESCALATION_PREAMBLE = "[hcn question protocol]\nYou are running in a persistent session: no one is watching live, but the caller relays answers back into this same session. This protocol never changes your permissions - asking is not how you obtain permission, and it never removes any permission this run already has. Use the tools you have exactly as granted.\nIf and only if a genuine decision you cannot make defensibly blocks correct progress, ask by stopping: emit one fenced code block tagged hcn-question, as the last content of your reply, containing a single JSON object:\n\n```hcn-question\n{\"question\": \"<the decision you need made>\", \"options\": [\"<option 1>\", \"<option 2>\"], \"recommended\": \"<one of options>\"}\n```\n\nSay nothing after the block and stop generating. The caller's user will answer, and the answer arrives as the next user message in this session - continue from it. For every choice you can make defensibly yourself, do not ask - decide, act, and state the decision you made.";
|
|
28
|
+
/** Compose the transport preamble onto a prompt. `mode` selects the
|
|
29
|
+
* contract wording: "turn" (exit-and-resume transport, hcn run) or
|
|
30
|
+
* "session" (live channel, hcn session). Idempotent: a prompt that
|
|
31
|
+
* already carries any preamble passes through unchanged - a turn-mode
|
|
32
|
+
* preamble is never re-composed into a session one (the marker matches
|
|
33
|
+
* both; the already-composed contract stands). */
|
|
34
|
+
export declare const composeEscalatedPrompt: (prompt: string, escalate: boolean, mode?: "turn" | "session") => string;
|
|
27
35
|
/** The structured question a worker asks (the block's fields). */
|
|
28
36
|
export interface QuestionBlock {
|
|
29
37
|
readonly question: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/interpretation/question.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;iCACiC;AACjC,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAElE,eAAO,MAAM,mBAAmB,m8BAQ+M,CAAC;AAEhP,eAAO,MAAM,sBAAsB,6VAC6R,CAAC;AAEjU
|
|
1
|
+
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/interpretation/question.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;iCACiC;AACjC,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAElE,eAAO,MAAM,mBAAmB,m8BAQ+M,CAAC;AAEhP,eAAO,MAAM,sBAAsB,6VAC6R,CAAC;AAEjU;;;uCAGuC;AACvC,eAAO,MAAM,2BAA2B,w+BAQ0O,CAAC;AAEnR;;;;;kDAKkD;AAClD,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,OAAO,SACX,MAAM,GAAG,SAAS,KACvB,MAG2I,CAAC;AAE/I,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;iDAEiD;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAsEnG;;;gEAGgE;AAChE,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,iBAAiB,GAAG,IAStE,CAAC"}
|
|
@@ -29,12 +29,28 @@ If and only if a genuine decision you cannot make defensibly blocks correct prog
|
|
|
29
29
|
Say nothing after the block. Your turn ends there; the caller's user will answer, and your next turn continues from that answer. For every choice you can make defensibly yourself, do not ask - decide, act, and state the decision you made.`;
|
|
30
30
|
export const NO_ESCALATION_PREAMBLE = `${QUESTION_PREAMBLE_MARKER}
|
|
31
31
|
You are running headless and no one will answer you in this session. Never ask a question, never request input or confirmation, and never end your turn awaiting a reply. When a decision is ambiguous, pick the most defensible reading, state the assumption you proceeded under in one sentence, and continue to completion.`;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
|
|
32
|
+
/** Session-mode variant (issue #44): the worker lives in ONE persistent
|
|
33
|
+
* session with a live stdin - the ask stops generation but the session
|
|
34
|
+
* stays open, and the answer arrives as the next user message on the
|
|
35
|
+
* same session. No exit, no resume. */
|
|
36
|
+
export const SESSION_ESCALATION_PREAMBLE = `${QUESTION_PREAMBLE_MARKER}
|
|
37
|
+
You are running in a persistent session: no one is watching live, but the caller relays answers back into this same session. This protocol never changes your permissions - asking is not how you obtain permission, and it never removes any permission this run already has. Use the tools you have exactly as granted.
|
|
38
|
+
If and only if a genuine decision you cannot make defensibly blocks correct progress, ask by stopping: emit one fenced code block tagged hcn-question, as the last content of your reply, containing a single JSON object:
|
|
39
|
+
|
|
40
|
+
\`\`\`hcn-question
|
|
41
|
+
{"question": "<the decision you need made>", "options": ["<option 1>", "<option 2>"], "recommended": "<one of options>"}
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
Say nothing after the block and stop generating. The caller's user will answer, and the answer arrives as the next user message in this session - continue from it. For every choice you can make defensibly yourself, do not ask - decide, act, and state the decision you made.`;
|
|
45
|
+
/** Compose the transport preamble onto a prompt. `mode` selects the
|
|
46
|
+
* contract wording: "turn" (exit-and-resume transport, hcn run) or
|
|
47
|
+
* "session" (live channel, hcn session). Idempotent: a prompt that
|
|
48
|
+
* already carries any preamble passes through unchanged - a turn-mode
|
|
49
|
+
* preamble is never re-composed into a session one (the marker matches
|
|
50
|
+
* both; the already-composed contract stands). */
|
|
51
|
+
export const composeEscalatedPrompt = (prompt, escalate, mode = "turn") => prompt.startsWith(QUESTION_PREAMBLE_MARKER)
|
|
36
52
|
? prompt
|
|
37
|
-
: `${escalate ? ESCALATION_PREAMBLE : NO_ESCALATION_PREAMBLE}\n\n${prompt}`;
|
|
53
|
+
: `${mode === "session" && escalate ? SESSION_ESCALATION_PREAMBLE : escalate ? ESCALATION_PREAMBLE : NO_ESCALATION_PREAMBLE}\n\n${prompt}`;
|
|
38
54
|
const FENCE_OPEN = /(?:^|\n)[ \t]*```[ \t]*hcn-question[ \t]*(?=\n)/g;
|
|
39
55
|
/** All hcn-question fence bodies in a text, in order. */
|
|
40
56
|
const fenceBodies = (text) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/interpretation/question.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;iCACiC;AACjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,wBAAwB;;;;;;;;+OAQiL,CAAC;AAEhP,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,wBAAwB;gUAC+P,CAAC;AAEjU
|
|
1
|
+
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/interpretation/question.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-input.d.ts","sourceRoot":"","sources":["../../src/interpretation/session-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,iBAAiB,GAAG,gCAAgC,GAAG,gCAAgC,CAAC;AAEpG,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,iBAAiB;IAA7C,YAAqB,KAAK,EAAE,iBAAiB,EAG5C;CACF;AAKD,eAAO,MAAM,mBAAmB,YAAa,iBAAiB,KAAG,oBAUhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,oBAAoB,QAAQ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"session-input.d.ts","sourceRoot":"","sources":["../../src/interpretation/session-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,iBAAiB,GAAG,gCAAgC,GAAG,gCAAgC,CAAC;AAEpG,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,KAAK,EAAE,iBAAiB;IAA7C,YAAqB,KAAK,EAAE,iBAAiB,EAG5C;CACF;AAKD,eAAO,MAAM,mBAAmB,YAAa,iBAAiB,KAAG,oBAUhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,oBAAoB,QAAQ,MAAM,KAAG,MAa9E,CAAC"}
|
|
@@ -27,6 +27,11 @@ export const encodeSessionInput = (input, text) => {
|
|
|
27
27
|
type: "user",
|
|
28
28
|
message: { role: "user", content: [{ type: "text", text }] },
|
|
29
29
|
})}\n`;
|
|
30
|
+
case "pi-rpc-prompt":
|
|
31
|
+
// Verified against pi 0.84.2 rpc (spike fixtures): a prompt command
|
|
32
|
+
// while idle; hcn never writes mid-run (it queues sends itself), so
|
|
33
|
+
// no streamingBehavior field is ever needed.
|
|
34
|
+
return `${JSON.stringify({ id: "hcn-send", type: "prompt", message: text })}\n`;
|
|
30
35
|
}
|
|
31
36
|
};
|
|
32
37
|
//# sourceMappingURL=session-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-input.js","sourceRoot":"","sources":["../../src/interpretation/session-input.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B,KAAK;IAA1B,YAAqB,KAAwB;QAC3C,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;qBADtB,KAAK;QAExB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE,CACvE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAwB,EAAE;IACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAE,IAAY,EAAU,EAAE;IACtF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,yBAAyB;YAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;aAC7D,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"session-input.js","sourceRoot":"","sources":["../../src/interpretation/session-input.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B,KAAK;IAA1B,YAAqB,KAAwB;QAC3C,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;qBADtB,KAAK;QAExB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE,CACvE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAwB,EAAE;IACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAE,IAAY,EAAU,EAAE;IACtF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,yBAAyB;YAC5B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;aAC7D,CAAC,IAAI,CAAC;QACT,KAAK,eAAe;YAClB,oEAAoE;YACpE,oEAAoE;YACpE,6CAA6C;YAC7C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC;IACpF,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/knowledge/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/knowledge/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,UAAU,EAAE,iBAyKvB,CAAC"}
|
|
@@ -60,6 +60,8 @@ export const claudeCode = deepFreeze({
|
|
|
60
60
|
],
|
|
61
61
|
idFlag: "--session-id",
|
|
62
62
|
input: { kind: "claude-sdk-user-message" },
|
|
63
|
+
turnEnd: { type: "result" },
|
|
64
|
+
identityProbe: null,
|
|
63
65
|
},
|
|
64
66
|
output: {
|
|
65
67
|
// --output-format/--include-partial-messages only work with --print, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/knowledge/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAsB,UAAU,CAAC;IACtD,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,eAAe,EAAE,SAAS;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;IACpE,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,gBAAgB;QAC3B,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,WAAW,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,4BAA4B,CAAC;QAC1F,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,CAAC,IAAI,CAAC;KACnB;IACD,WAAW,EAAE;QACX,0EAA0E;QAC1E,sEAAsE;QACtE,kEAAkE;QAClE,KAAK,EAAE;YACL,gBAAgB;YAChB,aAAa;YACb,iBAAiB;YACjB,aAAa;YACb,4BAA4B;YAC5B,WAAW;YACX,mBAAmB;YACnB,SAAS;SACV;QACD,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/knowledge/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAsB,UAAU,CAAC;IACtD,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,eAAe,EAAE,SAAS;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;IACpE,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,gBAAgB;QAC3B,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,WAAW,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,4BAA4B,CAAC;QAC1F,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,CAAC,IAAI,CAAC;KACnB;IACD,WAAW,EAAE;QACX,0EAA0E;QAC1E,sEAAsE;QACtE,kEAAkE;QAClE,KAAK,EAAE;YACL,gBAAgB;YAChB,aAAa;YACb,iBAAiB;YACjB,aAAa;YACb,4BAA4B;YAC5B,WAAW;YACX,mBAAmB;YACnB,SAAS;SACV;QACD,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,aAAa,EAAE,IAAI;KACpB;IACD,MAAM,EAAE;QACN,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,EAAE;YACJ;gBACE,KAAK,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,4BAA4B,CAAC;gBAC1F,WAAW,EAAE,OAAO;aACrB;SACF;QACD,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KACjC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;KAChF;IACD,aAAa,EAAE;QACb,2EAA2E;QAC3E,kDAAkD;QAClD,EAAE,OAAO,EAAE,gCAAgC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE;QAChF,6DAA6D;QAC7D,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE;QAC9E,GAAG,qBAAqB;KACzB;IACD,YAAY,EAAE;QACZ,wEAAwE;QACxE,yEAAyE;QACzE,EAAE,OAAO,EAAE,8CAA8C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QACxF,EAAE,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QAClE,EAAE,OAAO,EAAE,mCAAmC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE;QACnF,GAAG,oBAAoB;KACxB;IACD,QAAQ,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE;IACpD,UAAU,EAAE;QACV,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,2BAA2B,CAAC;QAC3F,OAAO,EAAE;YACP,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,2BAA2B;SACnC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QAClD,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,kEAAkE;QAClE,8DAA8D;QAC9D,QAAQ,EAAE,qDAAqD;QAC/D,OAAO,EAAE,iBAAiB;KAC3B;IACD,WAAW,EAAE;QACX,sEAAsE;QACtE,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,iBAAiB;KAChC;IACD,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;KACnC;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE;YACf,eAAe,EAAE,OAAO;YACxB,kBAAkB,EAAE,OAAO;YAC3B,WAAW,EAAE,SAAS;SACvB;QACD,OAAO,EAAE,IAAI;KACd;IACD,WAAW,EAAE;QACX,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAC5E,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE;gBACN,UAAU,EAAE;oBACV,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE;iBACvE;gBACD,MAAM,EAAE;oBACN,uEAAuE;oBACvE,kEAAkE;oBAClE,kEAAkE;oBAClE,gEAAgE;oBAChE,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,0BAA0B,CAAC,EAAE;iBACnE;aACF;SACF;KACF;IACD,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,yBAAyB,EAAE;IACnE,KAAK,EAAE;QACL,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,mBAAmB;QAChC,wBAAwB,EAAE,KAAK;QAC/B,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE;YAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;SACtC;QACD,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,iBAAiB;KACjC;CACF,CAAC,CAAC"}
|
|
@@ -18,7 +18,7 @@ export declare const UUID_SHAPE: RegExp;
|
|
|
18
18
|
export declare const deepFreeze: <T>(value: T) => T;
|
|
19
19
|
export type StreamingGranularity = "token" | "message" | "none";
|
|
20
20
|
export type HarnessMode = "headless-turn" | "headless-session" | "interactive";
|
|
21
|
-
export declare const SESSION_INPUT_KINDS: readonly ["claude-sdk-user-message"];
|
|
21
|
+
export declare const SESSION_INPUT_KINDS: readonly ["claude-sdk-user-message", "pi-rpc-prompt"];
|
|
22
22
|
export type SessionInputKind = (typeof SESSION_INPUT_KINDS)[number];
|
|
23
23
|
export interface SessionInputContract {
|
|
24
24
|
readonly kind: SessionInputKind;
|
|
@@ -208,11 +208,24 @@ export interface HarnessDescriptor {
|
|
|
208
208
|
};
|
|
209
209
|
/** Persistent headless session support: the exact flag set that opens one
|
|
210
210
|
* lucid-owned process serving many turns, or null when the harness has no
|
|
211
|
-
* such mode. `idFlag` pins the caller-assigned session identity.
|
|
211
|
+
* such mode. `idFlag` pins the caller-assigned session identity.
|
|
212
|
+
* `turnEnd` is the stdout record that delimits one turn (claude: the
|
|
213
|
+
* `result` record; pi rpc: `agent_settled`). `identityProbe`, when
|
|
214
|
+
* present, names a command the runner writes at spawn whose response
|
|
215
|
+
* carries the session id - pi rpc is identity-silent at startup (spike
|
|
216
|
+
* evidence: test/fixtures/pi-rpc-spike), so identity needs a round trip. */
|
|
212
217
|
readonly sessionMode: {
|
|
213
218
|
readonly flags: readonly string[];
|
|
214
|
-
|
|
219
|
+
/** Pin an EXISTING session id; null when the harness only accepts
|
|
220
|
+
* caller ids that already exist (pi rpc: `--session` refuses unknown
|
|
221
|
+
* ids - spike evidence), so fresh sessions omit the flag and the
|
|
222
|
+
* harness mints the id, readable via `identityProbe`. */
|
|
223
|
+
readonly idFlag: string | null;
|
|
215
224
|
readonly input: SessionInputContract;
|
|
225
|
+
readonly turnEnd: Readonly<Record<string, string>>;
|
|
226
|
+
readonly identityProbe: {
|
|
227
|
+
readonly command: string;
|
|
228
|
+
} | null;
|
|
216
229
|
} | null;
|
|
217
230
|
/** Streaming is a property of the INVOCATION, not the harness: each pin
|
|
218
231
|
* names the flag set that unlocks a granularity, checked in order, first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,aAAa,YAAI,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AACxE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;mCAEmC;AACnC,uEAAuE;AACvE,eAAO,MAAM,UAAU,QAAoE,CAAC;AAE5F,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,KAAG,CAMxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE/E,eAAO,MAAM,mBAAmB,YAAI,yBAAyB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export const deepFreeze = (value) => {
|
|
|
22
22
|
}
|
|
23
23
|
return value;
|
|
24
24
|
};
|
|
25
|
-
export const SESSION_INPUT_KINDS = ["claude-sdk-user-message"];
|
|
25
|
+
export const SESSION_INPUT_KINDS = ["claude-sdk-user-message", "pi-rpc-prompt"];
|
|
26
26
|
/** The turn-option vocabulary is closed for the same reason `LimitCode` is:
|
|
27
27
|
* a descriptor must not invent an option a consumer has no field for. Every
|
|
28
28
|
* key here maps to a field on `TurnOptions`; adding a key without a consumer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAGxE;;mCAEmC;AACnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,yBAAyB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/knowledge/descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAGxE;;mCAEmC;AACnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,yBAAyB,EAAE,eAAe,CAAU,CAAC;AAyCzF;;;;uEAIuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,QAAQ;IACR,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,UAAU;CACF,CAAC,CAAC;AAGZ;;;;aAIa;AACb,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,OAAO;IACP,kBAAkB;IAClB,YAAY;IACZ,QAAQ;CACA,CAAC,CAAC;AA0CZ;;;;;;6DAM6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,KAA0B,EAAuB,EAAE;IAC/F,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AAEF;;8CAE8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAuB,EAAE,CACzE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEhC;;;8CAG8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAoB,EACpB,KAA0B,EACL,EAAE;IACvB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAGjF,eAAO,MAAM,KAAK,EAAE,iBAiJlB,CAAC"}
|
package/dist/knowledge/pi.js
CHANGED
|
@@ -36,11 +36,23 @@ export const piCli = deepFreeze({
|
|
|
36
36
|
onMissing: "create",
|
|
37
37
|
extraFlags: ["-p", "--mode", "json"],
|
|
38
38
|
},
|
|
39
|
-
// --mode rpc exists on 0.84.2
|
|
40
|
-
// against a live run
|
|
41
|
-
// spike
|
|
42
|
-
//
|
|
43
|
-
|
|
39
|
+
// --mode rpc exists on 0.84.2 and its session semantics are now VERIFIED
|
|
40
|
+
// against a live run (2026-08-19 spike, evidence at
|
|
41
|
+
// test/fixtures/pi-rpc-spike): JSONL both directions, agent_settled
|
|
42
|
+
// delimits turns, steer/follow_up queue mid-run (hcn never needs them -
|
|
43
|
+
// it queues sends itself), identity is silent at startup and readable
|
|
44
|
+
// only via a get_state round trip, stdin EOF exits rc=0. The claude
|
|
45
|
+
// slice remains the proven vertical (D-003); this entry is the second.
|
|
46
|
+
sessionMode: {
|
|
47
|
+
flags: ["--mode", "rpc"],
|
|
48
|
+
// `--session <id>` requires an EXISTING id ("No session found" on a
|
|
49
|
+
// fresh uuid - live-verified); fresh sessions omit it and pi mints
|
|
50
|
+
// the id, readable only through the get_state probe.
|
|
51
|
+
idFlag: null,
|
|
52
|
+
input: { kind: "pi-rpc-prompt" },
|
|
53
|
+
turnEnd: { type: "agent_settled" },
|
|
54
|
+
identityProbe: { command: "get_state" },
|
|
55
|
+
},
|
|
44
56
|
output: {
|
|
45
57
|
// pi -p prints plain text; --mode json emits structured v3 records
|
|
46
58
|
// INCLUDING assistantMessageEvent text_delta tokens (verified 0.84.2),
|
|
@@ -87,10 +99,12 @@ export const piCli = deepFreeze({
|
|
|
87
99
|
images: false,
|
|
88
100
|
streamingByMode: {
|
|
89
101
|
"headless-turn": "token",
|
|
90
|
-
|
|
102
|
+
// rpc mode streams the same assistantMessageEvent deltas json mode
|
|
103
|
+
// does (spike fixture 02: text/thinking deltas under message_update).
|
|
104
|
+
"headless-session": "token",
|
|
91
105
|
interactive: "none",
|
|
92
106
|
},
|
|
93
|
-
session:
|
|
107
|
+
session: true,
|
|
94
108
|
},
|
|
95
109
|
turnOptions: {
|
|
96
110
|
effort: { kind: "effort", render: { kind: "flag-value", flag: "--thinking" } },
|
package/dist/knowledge/pi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,KAAK,GAAsB,UAAU,CAAC;IACjD,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAC1E,MAAM,EAAE;QACN,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,yDAAyD;QACzD,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;QACnC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,uEAAuE;QACvE,qEAAqE;QACrE,yDAAyD;QACzD,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;KACrC;IACD,
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/knowledge/pi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/help.ts
CHANGED
|
@@ -80,16 +80,21 @@ Defaults with no flags:
|
|
|
80
80
|
'hcn inspect <harness>' for the resolved argv of a bare run.
|
|
81
81
|
`;
|
|
82
82
|
|
|
83
|
-
export const SESSION_HELP = `hcn session - Interactive session (
|
|
83
|
+
export const SESSION_HELP = `hcn session - Interactive session (claude, pi)
|
|
84
84
|
|
|
85
85
|
Usage: hcn session <harness> [options]
|
|
86
86
|
|
|
87
87
|
Arguments:
|
|
88
|
-
<harness>
|
|
88
|
+
<harness> claude | pi (others have no sessionMode)
|
|
89
89
|
|
|
90
90
|
Options:
|
|
91
91
|
--model <id> Model for the session
|
|
92
|
-
--session-id <uuid> Session id (UUID, else random
|
|
92
|
+
--session-id <uuid> Session id (UUID, else random; re-enters an
|
|
93
|
+
existing session)
|
|
94
|
+
--escalate-questions Worker may ask; question renders as a pickable
|
|
95
|
+
menu, the answer flows back into the SAME live
|
|
96
|
+
session (DEFAULT)
|
|
97
|
+
--no-escalate-questions Worker never asks; states its assumption
|
|
93
98
|
--cwd <path> Working directory
|
|
94
99
|
--help Show help
|
|
95
100
|
--version Show version
|
package/src/cli/session.ts
CHANGED
|
@@ -7,22 +7,27 @@ import { createRenderState, renderEvent } from "./render.js";
|
|
|
7
7
|
import { resolveHarness } from "./resolve-harness.js";
|
|
8
8
|
|
|
9
9
|
export const session = async (harnessName: string, rawArgs: string[]): Promise<void> => {
|
|
10
|
-
//
|
|
11
|
-
|
|
10
|
+
// issue #44: the gate is the descriptor's sessionMode (claude stream-json,
|
|
11
|
+
// pi --mode rpc), not a hardcoded name list - a harness that grows a
|
|
12
|
+
// session mode is available the moment its descriptor declares one.
|
|
13
|
+
const h = resolveHarness(harnessName);
|
|
14
|
+
if (h.sessionMode === null) {
|
|
15
|
+
const supported = ["claude", "codex", "pi", "muse"]
|
|
16
|
+
.map((name) => resolveHarness(name))
|
|
17
|
+
.filter((d) => d.sessionMode !== null)
|
|
18
|
+
.map((d) => d.name);
|
|
12
19
|
const err = new ArgvRefusalError({
|
|
13
20
|
issue: "no-session-mode",
|
|
14
21
|
harness: harnessName as "claude",
|
|
15
|
-
supported
|
|
16
|
-
detail: `session is
|
|
22
|
+
supported,
|
|
23
|
+
detail: `session mode is available on ${supported.join(", ")}; ${harnessName} declares no persistent headless session`,
|
|
17
24
|
});
|
|
18
25
|
process.stderr.write(`${err.message}\n`);
|
|
19
|
-
process.stderr.write(`supported:
|
|
26
|
+
process.stderr.write(`supported: ${supported.join(", ")}\n`);
|
|
20
27
|
process.exitCode = 2;
|
|
21
28
|
return;
|
|
22
29
|
}
|
|
23
30
|
|
|
24
|
-
const h = resolveHarness(harnessName);
|
|
25
|
-
|
|
26
31
|
if (rawArgs.includes("--help") || rawArgs.includes("-h")) {
|
|
27
32
|
const { SESSION_HELP } = await import("./help.js");
|
|
28
33
|
process.stdout.write(SESSION_HELP);
|
|
@@ -48,6 +53,44 @@ export const session = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
48
53
|
const model = values.model as string | undefined;
|
|
49
54
|
const cwd = values.cwd as string | undefined;
|
|
50
55
|
|
|
56
|
+
// issue #44: same precedence as hcn run - arg > project > user >
|
|
57
|
+
// default-true. A behavior instruction, so it rides every send's
|
|
58
|
+
// preamble, never a harness flag.
|
|
59
|
+
const argEscalate =
|
|
60
|
+
values["escalate-questions"] === true
|
|
61
|
+
? true
|
|
62
|
+
: values["no-escalate-questions"] === true
|
|
63
|
+
? false
|
|
64
|
+
: undefined;
|
|
65
|
+
let escalateQuestions: boolean;
|
|
66
|
+
let escalateTier: "arg" | "project-config" | "user-config" | "default";
|
|
67
|
+
try {
|
|
68
|
+
const { loadUserConfig, loadProjectConfig } = await import("./config.js");
|
|
69
|
+
const user = loadUserConfig()?.config as { escalateQuestions?: boolean } | undefined;
|
|
70
|
+
const project = loadProjectConfig()?.config as { escalateQuestions?: boolean } | undefined;
|
|
71
|
+
escalateQuestions =
|
|
72
|
+
argEscalate !== undefined
|
|
73
|
+
? argEscalate
|
|
74
|
+
: project?.escalateQuestions !== undefined
|
|
75
|
+
? project.escalateQuestions
|
|
76
|
+
: user?.escalateQuestions !== undefined
|
|
77
|
+
? user.escalateQuestions
|
|
78
|
+
: true;
|
|
79
|
+
escalateTier =
|
|
80
|
+
argEscalate !== undefined
|
|
81
|
+
? "arg"
|
|
82
|
+
: project?.escalateQuestions !== undefined
|
|
83
|
+
? "project-config"
|
|
84
|
+
: user?.escalateQuestions !== undefined
|
|
85
|
+
? "user-config"
|
|
86
|
+
: "default";
|
|
87
|
+
} catch (configErr) {
|
|
88
|
+
process.stderr.write(`config error: ${(configErr as Error).message}\n`);
|
|
89
|
+
process.exitCode = 2;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
process.stderr.write(`provenance: escalateQuestions = ${escalateQuestions} (${escalateTier})\n`);
|
|
93
|
+
|
|
51
94
|
// Validate sessionId shape? let openSession handle via assertUsableSessionId
|
|
52
95
|
delete (process.env as Record<string, string | undefined>).HERDR_ENV;
|
|
53
96
|
|
|
@@ -55,7 +98,7 @@ export const session = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
55
98
|
|
|
56
99
|
let handle: ReturnType<typeof openSession>;
|
|
57
100
|
try {
|
|
58
|
-
handle = openSession(h, { sessionId, model, cwd }, deps);
|
|
101
|
+
handle = openSession(h, { sessionId, model, cwd, escalateQuestions }, deps);
|
|
59
102
|
} catch (err) {
|
|
60
103
|
if (err instanceof ArgvRefusalError) {
|
|
61
104
|
process.stderr.write(`${err.message}\n`);
|
|
@@ -76,6 +119,20 @@ export const session = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
76
119
|
|
|
77
120
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
78
121
|
|
|
122
|
+
// One line source for BOTH the you-prompt and the answer menu. A
|
|
123
|
+
// readline interface buffers at most one pending line per question()
|
|
124
|
+
// call site; the answer line typically arrives while the interface sits
|
|
125
|
+
// BETWEEN calls (the turn is still streaming), and those bytes were
|
|
126
|
+
// dropped (verified live: menu rendered, buffered "2" never delivered).
|
|
127
|
+
// An explicit async-iterator pull never drops: the iterator parks on the
|
|
128
|
+
// stream until the next line exists, whenever the caller asks for it.
|
|
129
|
+
const lines = rl[Symbol.asyncIterator]();
|
|
130
|
+
const nextLine = async (prompt: string): Promise<string | null> => {
|
|
131
|
+
process.stdout.write(prompt);
|
|
132
|
+
const res = await lines.next();
|
|
133
|
+
return res.done ? null : (res.value as string);
|
|
134
|
+
};
|
|
135
|
+
|
|
79
136
|
// Handle SIGINT to close session cleanly
|
|
80
137
|
let closing = false;
|
|
81
138
|
const doClose = async () => {
|
|
@@ -99,13 +156,14 @@ export const session = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
99
156
|
const turns = handle.turns[Symbol.asyncIterator]();
|
|
100
157
|
try {
|
|
101
158
|
while (true) {
|
|
102
|
-
let line: string;
|
|
159
|
+
let line: string | null;
|
|
103
160
|
try {
|
|
104
|
-
line = await
|
|
161
|
+
line = await nextLine("you › ");
|
|
105
162
|
} catch {
|
|
106
|
-
//
|
|
163
|
+
// stdin closed (Ctrl-D)
|
|
107
164
|
break;
|
|
108
165
|
}
|
|
166
|
+
if (line === null) break;
|
|
109
167
|
const trimmed = line.trim();
|
|
110
168
|
if (trimmed === "" || trimmed === "exit") break;
|
|
111
169
|
|
|
@@ -119,8 +177,52 @@ export const session = async (harnessName: string, rawArgs: string[]): Promise<v
|
|
|
119
177
|
| undefined;
|
|
120
178
|
if (turn === undefined) break;
|
|
121
179
|
const state = createRenderState();
|
|
180
|
+
// issue #44: a turn that ends awaiting-input renders its question as
|
|
181
|
+
// a pickable menu; the choice (or a custom answer) is the next send,
|
|
182
|
+
// delivered on the SAME live session - no exit, no resume.
|
|
183
|
+
let asked:
|
|
184
|
+
| (import("../execution/events.js").HarnessEvent & {
|
|
185
|
+
kind: "question";
|
|
186
|
+
})
|
|
187
|
+
| null = null;
|
|
122
188
|
for await (const event of turn) {
|
|
123
189
|
renderEvent(event, state);
|
|
190
|
+
if (event.kind === "question") asked = event;
|
|
191
|
+
}
|
|
192
|
+
if (asked !== null) {
|
|
193
|
+
const q = asked;
|
|
194
|
+
process.stdout.write(`\nanswer › pick a number, or type your own answer:\n`);
|
|
195
|
+
for (let i = 0; i < q.options.length; i++) {
|
|
196
|
+
const opt = q.options[i] as string;
|
|
197
|
+
const mark = opt === q.recommended ? " (recommended)" : "";
|
|
198
|
+
process.stdout.write(` ${i + 1}. ${opt}${mark}\n`);
|
|
199
|
+
}
|
|
200
|
+
let answer: string | null = null;
|
|
201
|
+
while (answer === null) {
|
|
202
|
+
const a = ((await nextLine("> ")) ?? "").trim();
|
|
203
|
+
if (a === "") continue;
|
|
204
|
+
const n = Number(a);
|
|
205
|
+
if (Number.isInteger(n) && n >= 1 && n <= q.options.length) {
|
|
206
|
+
answer = q.options[n - 1] as string;
|
|
207
|
+
} else {
|
|
208
|
+
answer = a;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
handle.send(
|
|
212
|
+
`The user answered the question: "${q.question}" with: ${answer}. Continue accordingly.`,
|
|
213
|
+
);
|
|
214
|
+
// Drain the answer turn BEFORE prompting again - the pump's
|
|
215
|
+
// backpressure stalls the harness until the turn iterable is
|
|
216
|
+
// consumed (verified live: menu answered, you-prompt rendered, no
|
|
217
|
+
// answer turn ever ran).
|
|
218
|
+
const answerTurn = (await turns.next()).value as
|
|
219
|
+
| AsyncIterable<import("../execution/events.js").HarnessEvent>
|
|
220
|
+
| undefined;
|
|
221
|
+
if (answerTurn === undefined) break;
|
|
222
|
+
const answerState = createRenderState();
|
|
223
|
+
for await (const event of answerTurn) {
|
|
224
|
+
renderEvent(event, answerState);
|
|
225
|
+
}
|
|
124
226
|
}
|
|
125
227
|
}
|
|
126
228
|
} catch (err) {
|