poly-weaver 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/implementors/handler.d.ts.map +1 -1
- package/dist/agents/implementors/handler.js +2 -1
- package/dist/agents/implementors/handler.js.map +1 -1
- package/dist/agents/planners/handler.d.ts.map +1 -1
- package/dist/agents/planners/handler.js +2 -1
- package/dist/agents/planners/handler.js.map +1 -1
- package/dist/agents/reviewers/handler.d.ts.map +1 -1
- package/dist/agents/reviewers/handler.js +9 -2
- package/dist/agents/reviewers/handler.js.map +1 -1
- package/dist/agents/runner.d.ts +40 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +213 -14
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/handler.d.ts.map +1 -1
- package/dist/agents/simplifiers/handler.js +2 -1
- package/dist/agents/simplifiers/handler.js.map +1 -1
- package/dist/ansi.d.ts +26 -0
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +26 -0
- package/dist/ansi.js.map +1 -1
- package/dist/cli.js +46 -16
- package/dist/cli.js.map +1 -1
- package/dist/flow/built-in/default.js +1 -1
- package/dist/flow/built-in/default.js.map +1 -1
- package/dist/flow/built-in/default.ts +1 -1
- package/dist/flow/built-in/why-so-serious.js +1 -1
- package/dist/flow/built-in/why-so-serious.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +7 -2
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +5 -0
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/orchestrator.d.ts +10 -4
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +34 -14
- package/dist/orchestrator.js.map +1 -1
- package/dist/providers/claude/session.d.ts +3 -1
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +10 -2
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/codex/session.d.ts +6 -3
- package/dist/providers/codex/session.d.ts.map +1 -1
- package/dist/providers/codex/session.js +24 -4
- package/dist/providers/codex/session.js.map +1 -1
- package/dist/providers/copilot/session.d.ts +3 -1
- package/dist/providers/copilot/session.d.ts.map +1 -1
- package/dist/providers/copilot/session.js +15 -2
- package/dist/providers/copilot/session.js.map +1 -1
- package/dist/providers/types.d.ts +14 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/pty/exit.d.ts +13 -5
- package/dist/pty/exit.d.ts.map +1 -1
- package/dist/pty/exit.js +19 -19
- package/dist/pty/exit.js.map +1 -1
- package/dist/pty/spawn.d.ts +12 -6
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +22 -70
- package/dist/pty/spawn.js.map +1 -1
- package/dist/pty/types.d.ts +12 -3
- package/dist/pty/types.d.ts.map +1 -1
- package/dist/session/locator.d.ts +23 -2
- package/dist/session/locator.d.ts.map +1 -1
- package/dist/session/locator.js +67 -4
- package/dist/session/locator.js.map +1 -1
- package/dist/status-bar.d.ts +21 -1
- package/dist/status-bar.d.ts.map +1 -1
- package/dist/status-bar.js +109 -34
- package/dist/status-bar.js.map +1 -1
- package/dist/terminal/cleanup.d.ts +21 -0
- package/dist/terminal/cleanup.d.ts.map +1 -0
- package/dist/terminal/cleanup.js +22 -0
- package/dist/terminal/cleanup.js.map +1 -0
- package/dist/terminal/host.d.ts +244 -0
- package/dist/terminal/host.d.ts.map +1 -0
- package/dist/terminal/host.js +642 -0
- package/dist/terminal/host.js.map +1 -0
- package/dist/terminal/input-router.d.ts +146 -0
- package/dist/terminal/input-router.d.ts.map +1 -0
- package/dist/terminal/input-router.js +426 -0
- package/dist/terminal/input-router.js.map +1 -0
- package/dist/terminal/layout.d.ts +55 -0
- package/dist/terminal/layout.d.ts.map +1 -0
- package/dist/terminal/layout.js +51 -0
- package/dist/terminal/layout.js.map +1 -0
- package/dist/terminal/output.d.ts +83 -0
- package/dist/terminal/output.d.ts.map +1 -0
- package/dist/terminal/output.js +107 -0
- package/dist/terminal/output.js.map +1 -0
- package/dist/terminal/render.d.ts +36 -0
- package/dist/terminal/render.d.ts.map +1 -0
- package/dist/terminal/render.js +233 -0
- package/dist/terminal/render.js.map +1 -0
- package/dist/terminal/virtual-terminal.d.ts +54 -0
- package/dist/terminal/virtual-terminal.d.ts.map +1 -0
- package/dist/terminal/virtual-terminal.js +110 -0
- package/dist/terminal/virtual-terminal.js.map +1 -0
- package/dist/terminal-input.d.ts +10 -0
- package/dist/terminal-input.d.ts.map +1 -1
- package/dist/terminal-input.js +46 -0
- package/dist/terminal-input.js.map +1 -1
- package/dist/user/auto-curate-prompt.d.ts +17 -0
- package/dist/user/auto-curate-prompt.d.ts.map +1 -0
- package/dist/user/auto-curate-prompt.js +22 -0
- package/dist/user/auto-curate-prompt.js.map +1 -0
- package/dist/user/curate-handler.d.ts.map +1 -1
- package/dist/user/curate-handler.js +10 -2
- package/dist/user/curate-handler.js.map +1 -1
- package/dist/user/curate-prompt.d.ts +9 -7
- package/dist/user/curate-prompt.d.ts.map +1 -1
- package/dist/user/curate-prompt.js +2 -341
- package/dist/user/curate-prompt.js.map +1 -1
- package/dist/user/handler.d.ts +13 -1
- package/dist/user/handler.d.ts.map +1 -1
- package/dist/user/handler.js +27 -15
- package/dist/user/handler.js.map +1 -1
- package/dist/user/hard-wrap.d.ts +11 -0
- package/dist/user/hard-wrap.d.ts.map +1 -0
- package/dist/user/hard-wrap.js +44 -0
- package/dist/user/hard-wrap.js.map +1 -0
- package/dist/user/host-curate-prompt.d.ts +34 -0
- package/dist/user/host-curate-prompt.d.ts.map +1 -0
- package/dist/user/host-curate-prompt.js +453 -0
- package/dist/user/host-curate-prompt.js.map +1 -0
- package/dist/user/host-prompt.d.ts +21 -0
- package/dist/user/host-prompt.d.ts.map +1 -0
- package/dist/user/host-prompt.js +337 -0
- package/dist/user/host-prompt.js.map +1 -0
- package/dist/user/index.d.ts +3 -3
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +2 -2
- package/dist/user/index.js.map +1 -1
- package/dist/user/plan-pane.d.ts +18 -0
- package/dist/user/plan-pane.d.ts.map +1 -0
- package/dist/user/plan-pane.js +33 -0
- package/dist/user/plan-pane.js.map +1 -0
- package/dist/user/prompt.d.ts +25 -42
- package/dist/user/prompt.d.ts.map +1 -1
- package/dist/user/prompt.js +16 -278
- package/dist/user/prompt.js.map +1 -1
- package/dist/user/split-surface.d.ts +32 -0
- package/dist/user/split-surface.d.ts.map +1 -0
- package/dist/user/split-surface.js +66 -0
- package/dist/user/split-surface.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,sBAAuB,YAAW,WAAW;IAI5C,OAAO,CAAC,MAAM;IAH1B,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAA+C;gBAEjD,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,sBAAuB,YAAW,WAAW;IAI5C,OAAO,CAAC,MAAM;IAH1B,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAA+C;gBAEjD,MAAM,EAAE,iBAAiB;IAEvC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CAkEvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveWhipNeighbors, } from "../../flow/types.js";
|
|
2
|
-
import { bindSessionReporter } from "../runner.js";
|
|
2
|
+
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
3
3
|
export class ImplementorRoleHandler {
|
|
4
4
|
driver;
|
|
5
5
|
/** Tracks the last execution mode per step ID for session invalidation. */
|
|
@@ -44,6 +44,7 @@ export class ImplementorRoleHandler {
|
|
|
44
44
|
}
|
|
45
45
|
const { producers, consumers } = resolveWhipNeighbors(step, ctx);
|
|
46
46
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
47
|
+
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
47
48
|
const implResult = await retry("implementor", async (attempt) => {
|
|
48
49
|
return this.driver.run(planFile, {
|
|
49
50
|
resumeSessionId: attempt === 1 ? resumeSessionId : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,GAOrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/implementors/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B,qBAAa,kBAAmB,YAAW,WAAW;IAGxC,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,aAAa;IAEnC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAQ7B,qBAAa,kBAAmB,YAAW,WAAW;IAGxC,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,aAAa;IAEnC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA6FvB"}
|
|
@@ -3,7 +3,7 @@ import { join } from "node:path";
|
|
|
3
3
|
import { appendClarifications } from "../../prompts.js";
|
|
4
4
|
import { readPlanFromContract, removeFileIfExists, } from "../../orchestrator.js";
|
|
5
5
|
import { TASK, resolveWhipNeighbors, } from "../../flow/types.js";
|
|
6
|
-
import { bindSessionReporter } from "../runner.js";
|
|
6
|
+
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
7
7
|
/** Return the plan file path for a given version (1-based). */
|
|
8
8
|
function planFileForVersion(root, version) {
|
|
9
9
|
return join(root, `plan-v${version}.md`);
|
|
@@ -39,6 +39,7 @@ export class PlannerRoleHandler {
|
|
|
39
39
|
const implReplan = step.reads.task !== TASK;
|
|
40
40
|
const { producers, consumers } = resolveWhipNeighbors(step, ctx);
|
|
41
41
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
42
|
+
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
42
43
|
const { planResult, planText, actualPlanFile } = await retry("planner", async (attempt) => {
|
|
43
44
|
if (attempt > 1)
|
|
44
45
|
await removeFileIfExists(outputPlanFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,IAAI,EACJ,oBAAoB,GAOrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/planners/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/reviewers/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,mBAAoB,YAAW,WAAW;IACzC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEpC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/reviewers/handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,mBAAoB,YAAW,WAAW;IACzC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEpC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CAgHvB"}
|
|
@@ -3,7 +3,7 @@ import { join } from "node:path";
|
|
|
3
3
|
import { formatUserDecisionsInline } from "./prompts.js";
|
|
4
4
|
import { readVerdictFromContract, removeFileIfExists, } from "../../orchestrator.js";
|
|
5
5
|
import { resolveWhipNeighbors, } from "../../flow/types.js";
|
|
6
|
-
import { bindSessionReporter } from "../runner.js";
|
|
6
|
+
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
7
7
|
export class ReviewerRoleHandler {
|
|
8
8
|
driver;
|
|
9
9
|
constructor(driver) {
|
|
@@ -25,6 +25,7 @@ export class ReviewerRoleHandler {
|
|
|
25
25
|
const resumeSessionId = ctx.sessionIds.get(sessionKey);
|
|
26
26
|
const { producers, consumers } = resolveWhipNeighbors(step, ctx);
|
|
27
27
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
28
|
+
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
28
29
|
const decisionsAllowed = step.reads.userDecisions != null &&
|
|
29
30
|
(stepAny.userDecisionsWhen == null || stepAny.userDecisionsWhen(ctx));
|
|
30
31
|
const userDecisionsFile = decisionsAllowed
|
|
@@ -58,7 +59,13 @@ export class ReviewerRoleHandler {
|
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
catch (err) {
|
|
61
|
-
|
|
62
|
+
const msg = `reviewer in-context inline-decisions setup failed; falling back to sidecar prompt: ${err instanceof Error ? err.message : err}`;
|
|
63
|
+
if (ctx.output) {
|
|
64
|
+
ctx.output.warn(msg);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.warn(`[poly-weaver] ${msg}`);
|
|
68
|
+
}
|
|
62
69
|
decisionsInline = undefined;
|
|
63
70
|
planText = undefined;
|
|
64
71
|
prevVerdictText = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/reviewers/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAOrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/reviewers/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAOrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C,KAAK,CAAC,OAAO,CACX,IAAc,EACd,GAAgB,EAChB,KAAc;QAEd,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,IAAiB,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjE,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAyB,CAAC,CAAC;QAChE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAEvF,MAAM,gBAAgB,GACpB,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI;YAChC,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,MAAM,iBAAiB,GAAG,gBAAgB;YACxC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,eAAmC,CAAC;QACxC,IAAI,QAA4B,CAAC;QACjC,IAAI,eAAmC,CAAC;QACxC,IACE,iBAAiB,IAAI,IAAI;YACzB,eAAe,IAAI,IAAI,EACvB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAyB,CAAC;gBAC/D,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC7D,MAAM,WAAW,GAAG,UAAU;oBAC5B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC;gBAEd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAChC,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC9B,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBAED,IAAI,MAAM,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;oBACnC,eAAe,GAAG,MAAM,CAAC;oBACzB,QAAQ,GAAG,KAAK,CAAC;oBACjB,eAAe,GAAG,WAAW,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,sFAAsF,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC7I,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;gBACD,eAAe,GAAG,SAAS,CAAC;gBAC5B,QAAQ,GAAG,SAAS,CAAC;gBACrB,eAAe,GAAG,SAAS,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1F,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBAC7D,iBAAiB;gBACjB,eAAe,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;gBAC5D,SAAS;gBACT,SAAS;gBACT,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,iBAAiB;gBACjB,eAAe;gBACf,QAAQ;gBACR,eAAe;aAChB,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;YACjC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC;QAED,yEAAyE;QACzE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACrC,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,WAAW;YACjB,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI;gBAC3B,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;aAC7B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;CACF"}
|
package/dist/agents/runner.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ProviderStrategy } from "../providers/types.js";
|
|
2
|
+
import type { OrchestrationOutput } from "../terminal/output.js";
|
|
3
|
+
import type { TerminalHost } from "../terminal/host.js";
|
|
2
4
|
export interface RunRequest {
|
|
3
5
|
/** The full prompt text to send to the agent. */
|
|
4
6
|
prompt: string;
|
|
@@ -21,6 +23,10 @@ export interface RunRequest {
|
|
|
21
23
|
freshFallbackPrompt?: string;
|
|
22
24
|
/** True when the role is running in provider plan mode. */
|
|
23
25
|
planMode?: boolean;
|
|
26
|
+
/** Optional orchestration sink for warnings (resume-failure fallback, etc.). */
|
|
27
|
+
output?: OrchestrationOutput;
|
|
28
|
+
/** Optional terminal host for parent-owned rendering of the child PTY. */
|
|
29
|
+
terminalHost?: TerminalHost;
|
|
24
30
|
}
|
|
25
31
|
export interface RunResult {
|
|
26
32
|
/** The agent's response text (from completion detector). */
|
|
@@ -32,6 +38,17 @@ export interface RunResult {
|
|
|
32
38
|
/** Line offset into the session file where this turn's data starts. */
|
|
33
39
|
lineOffset: number;
|
|
34
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Thrown when the user interrupts a run via Ctrl+C while the orchestration
|
|
43
|
+
* host owns raw stdin. Distinguished from ordinary failures so the
|
|
44
|
+
* resume-retry path can rethrow rather than retry, and the CLI can render
|
|
45
|
+
* a concise cancellation message instead of a stack trace.
|
|
46
|
+
*/
|
|
47
|
+
export declare class AgentInterruptedError extends Error {
|
|
48
|
+
readonly code: "AGENT_INTERRUPTED";
|
|
49
|
+
constructor(message?: string);
|
|
50
|
+
}
|
|
51
|
+
export declare function isAgentInterruptedError(err: unknown): err is AgentInterruptedError;
|
|
35
52
|
/**
|
|
36
53
|
* Abstract base for role-specific adapters.
|
|
37
54
|
*
|
|
@@ -46,14 +63,35 @@ export declare abstract class BaseAdapter {
|
|
|
46
63
|
protected readonly runner: AgentRunner;
|
|
47
64
|
protected sessionId: string | undefined;
|
|
48
65
|
protected sessionFilePath: string | undefined;
|
|
66
|
+
/** Runtime context attached by the role handler before each driver.run() call. */
|
|
67
|
+
protected runtimeOutput: OrchestrationOutput | undefined;
|
|
68
|
+
protected runtimeHost: TerminalHost | undefined;
|
|
49
69
|
constructor(strategy: ProviderStrategy, workdir: string, yolo?: boolean);
|
|
50
70
|
getSessionId(): string | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Inject orchestration runtime references. Called by role handlers
|
|
73
|
+
* before driver.run() so the runner can route warnings to the host
|
|
74
|
+
* sink and attach the child to the host's terminal viewport.
|
|
75
|
+
*/
|
|
76
|
+
setRuntime(runtime: {
|
|
77
|
+
output?: OrchestrationOutput;
|
|
78
|
+
terminalHost?: TerminalHost;
|
|
79
|
+
}): void;
|
|
51
80
|
protected applyWhipHint(hint: string | undefined, rawPrompt: string): string;
|
|
52
81
|
protected applyPlanModePrompt(rawPrompt: string): string;
|
|
53
82
|
/** Optional callback invoked as soon as the session file path is resolved during a run. */
|
|
54
83
|
sessionFileCallback?: (path: string) => void;
|
|
55
84
|
protected runAgent(request: RunRequest): Promise<RunResult>;
|
|
56
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Inject runtime references (orchestration sink + terminal host) onto a
|
|
88
|
+
* BaseAdapter-backed driver. No-ops for non-BaseAdapter drivers (e.g. mocks
|
|
89
|
+
* in tests).
|
|
90
|
+
*/
|
|
91
|
+
export declare function bindDriverRuntime(driver: unknown, runtime: {
|
|
92
|
+
output?: OrchestrationOutput;
|
|
93
|
+
terminalHost?: TerminalHost;
|
|
94
|
+
}): void;
|
|
57
95
|
/**
|
|
58
96
|
* Wire a driver's sessionFileCallback to eagerly push session file paths
|
|
59
97
|
* into the provided array. No-op if the driver is not a BaseAdapter.
|
|
@@ -66,7 +104,8 @@ export declare function bindSessionReporter(driver: unknown, sessionFilePaths: s
|
|
|
66
104
|
* by a ProviderStrategy for CLI-specific behavior.
|
|
67
105
|
*
|
|
68
106
|
* Includes resume-retry: if resumeSessionId is set and the run fails,
|
|
69
|
-
* automatically retries with a fresh session
|
|
107
|
+
* automatically retries with a fresh session — except for user
|
|
108
|
+
* interrupts (`AgentInterruptedError`), which propagate immediately.
|
|
70
109
|
*/
|
|
71
110
|
export declare class AgentRunner {
|
|
72
111
|
private readonly strategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/runner.js
CHANGED
|
@@ -3,6 +3,27 @@ import { spawnPty } from "../pty/spawn.js";
|
|
|
3
3
|
import { sendExit } from "../pty/exit.js";
|
|
4
4
|
import { readSessionFile } from "../session/reader.js";
|
|
5
5
|
import { waitForFile } from "../session/locator.js";
|
|
6
|
+
/**
|
|
7
|
+
* Thrown when the user interrupts a run via Ctrl+C while the orchestration
|
|
8
|
+
* host owns raw stdin. Distinguished from ordinary failures so the
|
|
9
|
+
* resume-retry path can rethrow rather than retry, and the CLI can render
|
|
10
|
+
* a concise cancellation message instead of a stack trace.
|
|
11
|
+
*/
|
|
12
|
+
export class AgentInterruptedError extends Error {
|
|
13
|
+
code = "AGENT_INTERRUPTED";
|
|
14
|
+
constructor(message = "Interrupted by Ctrl+C") {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "AgentInterruptedError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function isAgentInterruptedError(err) {
|
|
20
|
+
if (err instanceof AgentInterruptedError)
|
|
21
|
+
return true;
|
|
22
|
+
if (err && typeof err === "object" && err.code === "AGENT_INTERRUPTED") {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
6
27
|
/**
|
|
7
28
|
* Abstract base for role-specific adapters.
|
|
8
29
|
*
|
|
@@ -17,6 +38,9 @@ export class BaseAdapter {
|
|
|
17
38
|
runner;
|
|
18
39
|
sessionId;
|
|
19
40
|
sessionFilePath;
|
|
41
|
+
/** Runtime context attached by the role handler before each driver.run() call. */
|
|
42
|
+
runtimeOutput;
|
|
43
|
+
runtimeHost;
|
|
20
44
|
constructor(strategy, workdir, yolo) {
|
|
21
45
|
this.strategy = strategy;
|
|
22
46
|
this.workdir = workdir;
|
|
@@ -26,6 +50,15 @@ export class BaseAdapter {
|
|
|
26
50
|
getSessionId() {
|
|
27
51
|
return this.sessionId;
|
|
28
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Inject orchestration runtime references. Called by role handlers
|
|
55
|
+
* before driver.run() so the runner can route warnings to the host
|
|
56
|
+
* sink and attach the child to the host's terminal viewport.
|
|
57
|
+
*/
|
|
58
|
+
setRuntime(runtime) {
|
|
59
|
+
this.runtimeOutput = runtime.output;
|
|
60
|
+
this.runtimeHost = runtime.terminalHost;
|
|
61
|
+
}
|
|
29
62
|
applyWhipHint(hint, rawPrompt) {
|
|
30
63
|
return hint ? rawPrompt + "\n\n" + hint : rawPrompt;
|
|
31
64
|
}
|
|
@@ -36,7 +69,12 @@ export class BaseAdapter {
|
|
|
36
69
|
/** Optional callback invoked as soon as the session file path is resolved during a run. */
|
|
37
70
|
sessionFileCallback;
|
|
38
71
|
async runAgent(request) {
|
|
39
|
-
const
|
|
72
|
+
const merged = {
|
|
73
|
+
...request,
|
|
74
|
+
output: request.output ?? this.runtimeOutput,
|
|
75
|
+
terminalHost: request.terminalHost ?? this.runtimeHost,
|
|
76
|
+
};
|
|
77
|
+
const result = await this.runner.run(merged, (path) => {
|
|
40
78
|
this.sessionFilePath = path;
|
|
41
79
|
this.sessionFileCallback?.(path);
|
|
42
80
|
});
|
|
@@ -45,6 +83,16 @@ export class BaseAdapter {
|
|
|
45
83
|
return result;
|
|
46
84
|
}
|
|
47
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Inject runtime references (orchestration sink + terminal host) onto a
|
|
88
|
+
* BaseAdapter-backed driver. No-ops for non-BaseAdapter drivers (e.g. mocks
|
|
89
|
+
* in tests).
|
|
90
|
+
*/
|
|
91
|
+
export function bindDriverRuntime(driver, runtime) {
|
|
92
|
+
if (driver != null && typeof driver.setRuntime === "function") {
|
|
93
|
+
driver.setRuntime(runtime);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
48
96
|
/**
|
|
49
97
|
* Wire a driver's sessionFileCallback to eagerly push session file paths
|
|
50
98
|
* into the provided array. No-op if the driver is not a BaseAdapter.
|
|
@@ -60,6 +108,95 @@ export function bindSessionReporter(driver, sessionFilePaths) {
|
|
|
60
108
|
};
|
|
61
109
|
}
|
|
62
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Internal lifecycle controller for a single `runInternal()` execution.
|
|
113
|
+
*
|
|
114
|
+
* Tracks settled / interrupting / exited state and races every awaited
|
|
115
|
+
* post-spawn step against host-interrupt and child-exit-before-completion.
|
|
116
|
+
*
|
|
117
|
+
* Once a run is `settled` (detector resolved, exit signal sent), the
|
|
118
|
+
* exit-before-completion error is suppressed — late `onExit` events from
|
|
119
|
+
* the graceful provider exit must not turn a successful run into a
|
|
120
|
+
* failure. Once `interrupting` is set, the exit handler also no-ops.
|
|
121
|
+
*/
|
|
122
|
+
class RunLifecycle {
|
|
123
|
+
settled = false;
|
|
124
|
+
interrupting = false;
|
|
125
|
+
childExited = false;
|
|
126
|
+
childExitCode = null;
|
|
127
|
+
cancelPromise;
|
|
128
|
+
cancelReject;
|
|
129
|
+
controller = new AbortController();
|
|
130
|
+
interruptUnsubscribe;
|
|
131
|
+
constructor() {
|
|
132
|
+
this.cancelPromise = new Promise((_resolve, reject) => {
|
|
133
|
+
this.cancelReject = reject;
|
|
134
|
+
});
|
|
135
|
+
// Avoid Node's default "unhandled rejection" treatment when nothing
|
|
136
|
+
// ever races against this promise (success path).
|
|
137
|
+
this.cancelPromise.catch(() => { });
|
|
138
|
+
}
|
|
139
|
+
get signal() {
|
|
140
|
+
return this.controller.signal;
|
|
141
|
+
}
|
|
142
|
+
get isSettled() {
|
|
143
|
+
return this.settled;
|
|
144
|
+
}
|
|
145
|
+
get isInterrupting() {
|
|
146
|
+
return this.interrupting;
|
|
147
|
+
}
|
|
148
|
+
/** Subscribe to host interrupt. The callback is wired through `TerminalHost.onInterrupt`. */
|
|
149
|
+
registerHostInterrupt(host) {
|
|
150
|
+
this.interruptUnsubscribe = host.onInterrupt(() => this.triggerInterrupt());
|
|
151
|
+
}
|
|
152
|
+
/** Subscribe to child exit. Idempotent against `settled` / `interrupting`. */
|
|
153
|
+
registerChildExit(handle) {
|
|
154
|
+
handle.onExit((code) => this.handleChildExit(code));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Race `op` against host interrupt and child exit. After the race
|
|
158
|
+
* settles, the cancelPromise stays armed for subsequent races until
|
|
159
|
+
* `markSettled()` or `triggerInterrupt()` resolves the lifecycle.
|
|
160
|
+
*/
|
|
161
|
+
race(op) {
|
|
162
|
+
return Promise.race([op, this.cancelPromise]);
|
|
163
|
+
}
|
|
164
|
+
/** Mark the success path (detector resolved, exit signal in flight). */
|
|
165
|
+
markSettled() {
|
|
166
|
+
this.settled = true;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Tear down host-interrupt subscription. Idempotent. Always called from
|
|
170
|
+
* the runner's `finally`.
|
|
171
|
+
*/
|
|
172
|
+
cleanup() {
|
|
173
|
+
this.interruptUnsubscribe?.();
|
|
174
|
+
this.interruptUnsubscribe = undefined;
|
|
175
|
+
}
|
|
176
|
+
triggerInterrupt() {
|
|
177
|
+
if (this.settled || this.interrupting)
|
|
178
|
+
return;
|
|
179
|
+
this.interrupting = true;
|
|
180
|
+
this.controller.abort(new AgentInterruptedError());
|
|
181
|
+
this.cancelReject(new AgentInterruptedError());
|
|
182
|
+
}
|
|
183
|
+
handleChildExit(code) {
|
|
184
|
+
this.childExited = true;
|
|
185
|
+
this.childExitCode = code;
|
|
186
|
+
if (this.settled || this.interrupting)
|
|
187
|
+
return;
|
|
188
|
+
const err = new Error(`Agent process exited before completion (code ${code})`);
|
|
189
|
+
this.controller.abort(err);
|
|
190
|
+
this.cancelReject(err);
|
|
191
|
+
}
|
|
192
|
+
/** True when the child has already exited. Used to skip graceful exit on success-after-exit edge cases. */
|
|
193
|
+
get hasChildExited() {
|
|
194
|
+
return this.childExited;
|
|
195
|
+
}
|
|
196
|
+
get exitCode() {
|
|
197
|
+
return this.childExitCode;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
63
200
|
/**
|
|
64
201
|
* Shared lifecycle engine for AI agent PTY sessions.
|
|
65
202
|
*
|
|
@@ -67,7 +204,8 @@ export function bindSessionReporter(driver, sessionFilePaths) {
|
|
|
67
204
|
* by a ProviderStrategy for CLI-specific behavior.
|
|
68
205
|
*
|
|
69
206
|
* Includes resume-retry: if resumeSessionId is set and the run fails,
|
|
70
|
-
* automatically retries with a fresh session
|
|
207
|
+
* automatically retries with a fresh session — except for user
|
|
208
|
+
* interrupts (`AgentInterruptedError`), which propagate immediately.
|
|
71
209
|
*/
|
|
72
210
|
export class AgentRunner {
|
|
73
211
|
strategy;
|
|
@@ -82,7 +220,16 @@ export class AgentRunner {
|
|
|
82
220
|
return await this.runInternal(request, onSessionFile);
|
|
83
221
|
}
|
|
84
222
|
catch (err) {
|
|
85
|
-
|
|
223
|
+
// Don't retry on user interrupt — that's an explicit cancel.
|
|
224
|
+
if (isAgentInterruptedError(err))
|
|
225
|
+
throw err;
|
|
226
|
+
const msg = `${this.strategy.name} resume failed, falling back to fresh session: ${err instanceof Error ? err.message : err}`;
|
|
227
|
+
if (request.output) {
|
|
228
|
+
request.output.warn(msg);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
console.warn(`[poly-weaver] ${msg}`);
|
|
232
|
+
}
|
|
86
233
|
return await this.runInternal({
|
|
87
234
|
...request,
|
|
88
235
|
prompt: request.freshFallbackPrompt ?? request.prompt,
|
|
@@ -114,17 +261,38 @@ export class AgentRunner {
|
|
|
114
261
|
const snapshot = (resumeSessionId && knownSessionFile) || predictedFile
|
|
115
262
|
? { skipped: true }
|
|
116
263
|
: await this.strategy.session.snapshot(workdir);
|
|
117
|
-
// 3. Spawn PTY
|
|
264
|
+
// 3. Spawn PTY (size from terminal host when available so the child,
|
|
265
|
+
// virtual terminal, and visible viewport all agree).
|
|
266
|
+
const layout = request.terminalHost?.getLayout();
|
|
118
267
|
const handle = spawnPty({
|
|
119
268
|
command: this.strategy.command,
|
|
120
269
|
args,
|
|
121
270
|
cwd: workdir,
|
|
271
|
+
cols: layout?.childCols,
|
|
272
|
+
rows: layout?.childRows,
|
|
122
273
|
});
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
//
|
|
274
|
+
const lifecycle = new RunLifecycle();
|
|
275
|
+
// 4. Wire up completion detector and lifecycle observers IMMEDIATELY.
|
|
276
|
+
// The detector data callback must be registered before opening the
|
|
277
|
+
// gate so very fast first-byte JSONL emissions are not missed. The
|
|
278
|
+
// exit and interrupt observers must race the entire post-spawn
|
|
279
|
+
// lifecycle, including session discovery — not only `detector.start`.
|
|
126
280
|
const detector = this.strategy.createDetector({ planMode: request.planMode });
|
|
127
281
|
handle.onData((data) => detector.onPtyData(data));
|
|
282
|
+
// Attach to the host BEFORE opening the gate so the first user
|
|
283
|
+
// keystrokes already route through the host's input router.
|
|
284
|
+
const detachFromHost = request.terminalHost?.attachChild(handle);
|
|
285
|
+
// Register child-exit observer immediately. PtyHandle.onExit invokes
|
|
286
|
+
// the callback synchronously when the child has already exited, so
|
|
287
|
+
// very fast crashes are also covered.
|
|
288
|
+
lifecycle.registerChildExit(handle);
|
|
289
|
+
// Register host-interrupt subscription before opening the gate so
|
|
290
|
+
// Ctrl+C is honored from the very first keystroke the host sees.
|
|
291
|
+
if (request.terminalHost) {
|
|
292
|
+
lifecycle.registerHostInterrupt(request.terminalHost);
|
|
293
|
+
}
|
|
294
|
+
// Open the gate only after exit/interrupt handling is armed.
|
|
295
|
+
handle.openGate();
|
|
128
296
|
try {
|
|
129
297
|
// 5. Find or reuse session file; compute line offset
|
|
130
298
|
let sessionFile;
|
|
@@ -137,29 +305,60 @@ export class AgentRunner {
|
|
|
137
305
|
sessionFile =
|
|
138
306
|
this.strategy.session.predictSessionFile?.(workdir, resumeSessionId) ??
|
|
139
307
|
knownSessionFile;
|
|
140
|
-
lineOffset = (await readSessionFile(sessionFile)).length;
|
|
308
|
+
lineOffset = (await lifecycle.race(readSessionFile(sessionFile))).length;
|
|
141
309
|
}
|
|
142
310
|
else if (predictedFile) {
|
|
143
|
-
sessionFile = await waitForFile(predictedFile);
|
|
311
|
+
sessionFile = await lifecycle.race(waitForFile(predictedFile, undefined, undefined, lifecycle.signal));
|
|
144
312
|
}
|
|
145
313
|
else {
|
|
146
|
-
sessionFile = await this.strategy.session.findSessionFile(snapshot, workdir
|
|
314
|
+
sessionFile = await lifecycle.race(this.strategy.session.findSessionFile(snapshot, workdir, {
|
|
315
|
+
output: request.output,
|
|
316
|
+
signal: lifecycle.signal,
|
|
317
|
+
}));
|
|
147
318
|
}
|
|
148
|
-
const sessionId = await this.strategy.session.extractSessionId(sessionFile);
|
|
319
|
+
const sessionId = await lifecycle.race(this.strategy.session.extractSessionId(sessionFile));
|
|
149
320
|
// Notify caller of session file path before blocking on completion
|
|
150
321
|
onSessionFile?.(sessionFile);
|
|
151
322
|
// 6. Wait for completion
|
|
152
|
-
const responseText = await detector.start(sessionFile, lineOffset);
|
|
153
|
-
// 7.
|
|
154
|
-
|
|
323
|
+
const responseText = await lifecycle.race(detector.start(sessionFile, lineOffset));
|
|
324
|
+
// 7. Mark settled BEFORE the graceful exit. Late onExit callbacks
|
|
325
|
+
// for the provider's own exit command must not be treated as
|
|
326
|
+
// failures.
|
|
327
|
+
lifecycle.markSettled();
|
|
328
|
+
// Suppress rendering AND detach from the host BEFORE the provider's
|
|
329
|
+
// exit command runs so chatter cannot leak. suppressOutput() flags
|
|
330
|
+
// the handle so the host's onData closure skips writes for any
|
|
331
|
+
// in-flight events; detach removes the child from the input router
|
|
332
|
+
// and unsubscribes the host from further data.
|
|
333
|
+
handle.suppressOutput();
|
|
334
|
+
detachFromHost?.();
|
|
335
|
+
// Skip the graceful exit if the child already terminated on its own
|
|
336
|
+
// — its stdin is gone and writing to it is meaningless.
|
|
337
|
+
if (!lifecycle.hasChildExited) {
|
|
338
|
+
await sendExit(handle, this.strategy.exitSignal);
|
|
339
|
+
}
|
|
340
|
+
// Clear the host's child surface so the next screen does not
|
|
341
|
+
// inherit the finished provider's trailing output / scrollback.
|
|
342
|
+
request.terminalHost?.clearChildSurface();
|
|
155
343
|
detector.dispose();
|
|
156
344
|
return { responseText, sessionId, sessionFilePath: sessionFile, lineOffset };
|
|
157
345
|
}
|
|
158
346
|
catch (err) {
|
|
159
347
|
detector.dispose();
|
|
348
|
+
handle.suppressOutput();
|
|
349
|
+
detachFromHost?.();
|
|
350
|
+
// Close the gate so any racing user keystrokes stop reaching the
|
|
351
|
+
// child after the run has been cancelled.
|
|
352
|
+
handle.closeGate();
|
|
160
353
|
handle.kill();
|
|
354
|
+
// Failed/cancelled run still clears the surface so a follow-up
|
|
355
|
+
// user/agent screen starts blank.
|
|
356
|
+
request.terminalHost?.clearChildSurface();
|
|
161
357
|
throw err;
|
|
162
358
|
}
|
|
359
|
+
finally {
|
|
360
|
+
lifecycle.cleanup();
|
|
361
|
+
}
|
|
163
362
|
}
|
|
164
363
|
}
|
|
165
364
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAO7B,qBAAa,qBAAsB,YAAW,WAAW;IAG3C,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,gBAAgB;IAEtC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAO7B,qBAAa,qBAAsB,YAAW,WAAW;IAG3C,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAK;gBAEJ,MAAM,EAAE,gBAAgB;IAEtC,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC;CA4CvB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { readPlanFromContract, removeFileIfExists, } from "../../orchestrator.js";
|
|
3
|
-
import { bindSessionReporter } from "../runner.js";
|
|
3
|
+
import { bindSessionReporter, bindDriverRuntime } from "../runner.js";
|
|
4
4
|
function planFileForVersion(root, version) {
|
|
5
5
|
return join(root, `simplify-v${version}.md`);
|
|
6
6
|
}
|
|
@@ -20,6 +20,7 @@ export class SimplifierRoleHandler {
|
|
|
20
20
|
}
|
|
21
21
|
const resumeSessionId = ctx.sessionIds.get(sessionKey);
|
|
22
22
|
bindSessionReporter(this.driver, ctx.lastStepSessionFilePaths);
|
|
23
|
+
bindDriverRuntime(this.driver, { output: ctx.output, terminalHost: ctx.terminalHost });
|
|
23
24
|
const { result, planText } = await retry("simplifier", async (attempt) => {
|
|
24
25
|
if (attempt > 1)
|
|
25
26
|
await removeFileIfExists(outputPlanFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/agents/simplifiers/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtE,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAe;IACvD,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa,OAAO,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,OAAO,qBAAqB;IAGZ;IAFZ,WAAW,GAAG,CAAC,CAAC;IAExB,YAAoB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEhD,KAAK,CAAC,OAAO,CACX,IAAc,EACd,GAAgB,EAChB,KAAc;QAEd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,IAAiB,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAyB,CAAC,CAAC;QAChE,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAEvF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvE,IAAI,OAAO,GAAG,CAAC;gBAAE,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACnC,cAAc;gBACd,eAAe,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,sBAAsB;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;CACF"}
|