@monoes/monomindcli 2.10.10 → 2.10.14
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/.claude/commands/mastermind/brain.md +14 -14
- package/.claude/commands/mastermind/help.md +2 -2
- package/.claude/commands/mastermind/master.md +24 -19
- package/.claude/commands/mastermind/memory.md +8 -8
- package/.claude/commands/mastermind/monoswarm.md +4 -4
- package/.claude/commands/mastermind.md +7 -7
- package/.claude/commands/truth/start.md +3 -3
- package/.claude/helpers/handlers/gates-handler.cjs +13 -1
- package/.claude/skills/mastermind/SKILL.md +7 -16
- package/.claude/skills/mastermind-debug/SKILL.md +3 -3
- package/.claude/skills/mastermind-design/SKILL.md +2 -0
- package/.claude/skills/mastermind-execute/SKILL.md +66 -11
- package/.claude/skills/mastermind-idea/SKILL.md +9 -2
- package/.claude/skills/mastermind-intake/SKILL.md +31 -7
- package/.claude/skills/mastermind-issue-detail/SKILL.md +70 -16
- package/.claude/skills/mastermind-issues/SKILL.md +111 -16
- package/.claude/skills/mastermind-liveness/SKILL.md +96 -26
- package/.claude/skills/mastermind-my-issues/SKILL.md +40 -8
- package/.claude/skills/mastermind-org/SKILL.md +2 -0
- package/.claude/skills/mastermind-plan/SKILL.md +7 -16
- package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +132 -24
- package/.claude/skills/mastermind-protocol/SKILL.md +33 -22
- package/.claude/skills/mastermind-runorg/SKILL.md +22 -3
- package/.claude/skills/mastermind-skill-builder/SKILL.md +1 -1
- package/.claude/skills/mastermind-tasks/SKILL.md +5 -0
- package/.claude/skills/mastermind-techport/SKILL.md +1 -1
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +56 -15
- package/.claude/skills/performance-analysis/SKILL.md +1 -1
- package/.claude/skills/verification-quality/SKILL.md +2 -3
- package/README.md +2 -2
- package/dist/src/commands/doc.js +2 -2
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +45 -2
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +13 -2
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/memory.js +1 -1
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +11 -4
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +56 -6
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +26 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +144 -28
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +10 -9
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +29 -0
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-codex.d.ts.map +1 -1
- package/dist/src/init/write-codex.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts +5 -0
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +32 -16
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts +9 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +12 -1
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +105 -13
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts +13 -0
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +257 -31
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.js +99 -42
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.js +123 -51
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +113 -96
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.d.ts +37 -4
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.js +75 -56
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +60 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +172 -42
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts +495 -28
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +2186 -251
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/memory/query-router.d.ts +51 -0
- package/dist/src/memory/query-router.d.ts.map +1 -1
- package/dist/src/memory/query-router.js +38 -2
- package/dist/src/memory/query-router.js.map +1 -1
- package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
- package/dist/src/orgrt/agent-exec.js +7 -0
- package/dist/src/orgrt/agent-exec.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +26 -1
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +73 -22
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +36 -19
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +26 -2
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +67 -7
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/broker.d.ts +21 -2
- package/dist/src/orgrt/broker.d.ts.map +1 -1
- package/dist/src/orgrt/broker.js +56 -8
- package/dist/src/orgrt/broker.js.map +1 -1
- package/dist/src/orgrt/bus.d.ts +8 -0
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +27 -0
- package/dist/src/orgrt/bus.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +15 -5
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +42 -4
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +75 -4
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +1 -1
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +50 -23
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +24 -2
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +257 -157
- package/dist/src/orgrt/copilot-runner.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts +10 -3
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +225 -10
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +22 -2
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +227 -120
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +77 -7
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +989 -385
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +2 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +90 -18
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +29 -3
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +286 -150
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts +5 -5
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +53 -32
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts +15 -0
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +29 -1
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +8 -5
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +29 -3
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +19 -3
- package/dist/src/orgrt/org-memory.d.ts.map +1 -1
- package/dist/src/orgrt/org-memory.js +110 -38
- package/dist/src/orgrt/org-memory.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts +3 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +35 -3
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/pi-runner.d.ts +25 -2
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-runner.js +271 -152
- package/dist/src/orgrt/pi-runner.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +1 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +199 -39
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/provider.d.ts +4 -0
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- package/dist/src/orgrt/provider.js +16 -0
- package/dist/src/orgrt/provider.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts +3 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +35 -3
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts +30 -3
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +282 -142
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/role-slot.d.ts +88 -0
- package/dist/src/orgrt/role-slot.d.ts.map +1 -0
- package/dist/src/orgrt/role-slot.js +133 -0
- package/dist/src/orgrt/role-slot.js.map +1 -0
- package/dist/src/orgrt/runtime-options.d.ts +17 -0
- package/dist/src/orgrt/runtime-options.d.ts.map +1 -0
- package/dist/src/orgrt/runtime-options.js +32 -0
- package/dist/src/orgrt/runtime-options.js.map +1 -0
- package/dist/src/orgrt/scheduler-integration.d.ts +11 -0
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +75 -17
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/scheduler.d.ts +4 -0
- package/dist/src/orgrt/scheduler.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler.js +7 -1
- package/dist/src/orgrt/scheduler.js.map +1 -1
- package/dist/src/orgrt/server.d.ts +8 -3
- package/dist/src/orgrt/server.d.ts.map +1 -1
- package/dist/src/orgrt/server.js +48 -13
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +26 -2
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +98 -4
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +5 -0
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +41 -0
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/test-loop.js +2 -2
- package/dist/src/orgrt/test-loop.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +14 -2
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +15 -1
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +4 -0
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/src/ui/routes-org.mjs +27 -7
- package/dist/src/ui/server.mjs +82 -48
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/src/ui/data/mastermind-sessions.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/qwen-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"qwen-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/qwen-runner.ts"],"names":[],"mappings":"AAoDA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,mBAAmB,CAAC;AAmC3B;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuDD;;wEAEwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAoCA;AAED,qBAAa,eAAgB,YAAW,WAAW;IACrC,OAAO,CAAC,OAAO,CAAC;IAA5B,YAAoB,OAAO,CAAC,EAAE,MAAM,YAAA,EAAI;IAEjC,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAiH1D;IAED;;;;;;;;OAQG;YACY,UAAU;CAmJ1B"}
|
|
@@ -9,6 +9,21 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Auth: inherited from the CLI's own login flow. No env vars set here.
|
|
11
11
|
*
|
|
12
|
+
* Streaming / liveness — WHY INCREMENTAL (#204):
|
|
13
|
+
* This runner originally buffered ALL of qwen's stdout until the subprocess
|
|
14
|
+
* exited before parsing anything, so any turn longer than session.ts's
|
|
15
|
+
* 4-minute silent-stream watchdog (SILENT_SESSION_MS) yielded zero messages
|
|
16
|
+
* in time — abort, retry, kill, circuit breaker. Same bug class as the
|
|
17
|
+
* kimi/antigravity/codex runners had (#204 audit). This runner now parses
|
|
18
|
+
* stdout LINE BY LINE as it arrives: a liveness `tool_use` message is
|
|
19
|
+
* yielded the moment the subprocess spawns (deterministically winning the
|
|
20
|
+
* first-pull race regardless of model-thinking latency), and each
|
|
21
|
+
* `assistant` event's text is yielded as its line lands (qwen's
|
|
22
|
+
* stream-json sends whole messages per event, not per-token deltas —
|
|
23
|
+
* confirmed live, #182 — so no accumulation is needed, unlike agy).
|
|
24
|
+
* Tool_call fences are still collected from the raw texts and parsed at
|
|
25
|
+
* end of turn (fence parsing needs the complete text).
|
|
26
|
+
*
|
|
12
27
|
* Org tools — FENCE PROTOCOL: same approach as the other subprocess runners
|
|
13
28
|
* (see tool-fence.ts).
|
|
14
29
|
*
|
|
@@ -29,9 +44,14 @@
|
|
|
29
44
|
* every event.
|
|
30
45
|
* - `--yolo` auto-approves tool actions (org roles gate tool execution
|
|
31
46
|
* themselves via canUseTool/tool-fence, so CLI-level approval prompts
|
|
32
|
-
* would otherwise hang a non-interactive run).
|
|
47
|
+
* would otherwise hang a non-interactive run). No distinct tool-call
|
|
48
|
+
* wire event is documented/observed for this CLI, so — unlike codex's
|
|
49
|
+
* command_execution items — there is nothing else here to forward as
|
|
50
|
+
* mid-turn tool liveness beyond the spawn-time yield.
|
|
33
51
|
*/
|
|
34
52
|
import { spawn } from 'node:child_process';
|
|
53
|
+
import { killOnAbort, } from './agent-runner.js';
|
|
54
|
+
import { classifyStderr } from './kimicode-runner.js';
|
|
35
55
|
import { buildToolProtocol, executeToolCall, formatToolResults, MAX_TOOL_ROUNDS, parseToolCalls, TOOL_CALL_RE, } from './tool-fence.js';
|
|
36
56
|
const TURN_TIMEOUT_MS = 2 * 60 * 60 * 1000;
|
|
37
57
|
/** Distinct from TURN_TIMEOUT_MS: catches a hung first-run interactive prompt
|
|
@@ -39,14 +59,52 @@ const TURN_TIMEOUT_MS = 2 * 60 * 60 * 1000;
|
|
|
39
59
|
* Fires only if the process has produced ZERO stdout by this point — any
|
|
40
60
|
* output at all disarms it, since a slow model response is not a hang. */
|
|
41
61
|
const STARTUP_GRACE_MS = 45_000;
|
|
62
|
+
/**
|
|
63
|
+
* Normalize one parsed qwen wire event into a QwenStreamEvent (or null for
|
|
64
|
+
* events that carry nothing new). Usage/error facts are written into
|
|
65
|
+
* `outcome` since they apply to the whole turn, not to a single event.
|
|
66
|
+
*/
|
|
67
|
+
function handleQwenEvent(ev, outcome) {
|
|
68
|
+
if (ev.type === 'assistant' && ev.message?.content) {
|
|
69
|
+
const text = ev.message.content
|
|
70
|
+
.filter((b) => b.type === 'text' && typeof b.text === 'string')
|
|
71
|
+
.map((b) => b.text)
|
|
72
|
+
.join('\n');
|
|
73
|
+
if (!text)
|
|
74
|
+
return ev.session_id ? { kind: 'meta', sessionId: ev.session_id } : null;
|
|
75
|
+
const stripped = text.replace(TOOL_CALL_RE, '').trim();
|
|
76
|
+
return {
|
|
77
|
+
kind: 'assistant',
|
|
78
|
+
rawText: text,
|
|
79
|
+
text: stripped || undefined,
|
|
80
|
+
sessionId: ev.session_id,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (ev.type === 'result') {
|
|
84
|
+
if (ev.usage) {
|
|
85
|
+
outcome.inputTokens = ev.usage.input_tokens ?? 0;
|
|
86
|
+
outcome.outputTokens = ev.usage.output_tokens ?? 0;
|
|
87
|
+
}
|
|
88
|
+
if (ev.subtype === 'error') {
|
|
89
|
+
outcome.error =
|
|
90
|
+
typeof ev.error === 'string' ? ev.error : (ev.error?.message ?? 'qwen result: error');
|
|
91
|
+
}
|
|
92
|
+
return { kind: 'meta', sessionId: ev.session_id };
|
|
93
|
+
}
|
|
94
|
+
// 'system' events and anything else — only the session id (if any) matters.
|
|
95
|
+
return ev.session_id ? { kind: 'meta', sessionId: ev.session_id } : null;
|
|
96
|
+
}
|
|
42
97
|
/** Pure stream-json parser — exported for unit testing against fixture lines
|
|
43
|
-
* built from Qwen Code's documented event schema (qwen-runner.test.ts).
|
|
98
|
+
* built from Qwen Code's documented event schema (qwen-runner.test.ts).
|
|
99
|
+
* Built on the same handleQwenEvent() the live streaming path uses. */
|
|
44
100
|
export function parseQwenEvents(lines) {
|
|
45
101
|
const rawTexts = [];
|
|
102
|
+
const texts = [];
|
|
46
103
|
let sessionId;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
104
|
+
const outcome = {
|
|
105
|
+
inputTokens: 0,
|
|
106
|
+
outputTokens: 0,
|
|
107
|
+
};
|
|
50
108
|
for (const line of lines) {
|
|
51
109
|
const trimmed = line.trim();
|
|
52
110
|
if (!trimmed?.startsWith('{'))
|
|
@@ -58,29 +116,26 @@ export function parseQwenEvents(lines) {
|
|
|
58
116
|
catch {
|
|
59
117
|
continue;
|
|
60
118
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (ev.type === 'result') {
|
|
72
|
-
if (ev.usage) {
|
|
73
|
-
inputTokens = ev.usage.input_tokens ?? 0;
|
|
74
|
-
outputTokens = ev.usage.output_tokens ?? 0;
|
|
75
|
-
}
|
|
76
|
-
if (ev.subtype === 'error') {
|
|
77
|
-
error =
|
|
78
|
-
typeof ev.error === 'string' ? ev.error : (ev.error?.message ?? 'qwen result: error');
|
|
79
|
-
}
|
|
119
|
+
const out = handleQwenEvent(ev, outcome);
|
|
120
|
+
if (!out)
|
|
121
|
+
continue;
|
|
122
|
+
if (out.sessionId)
|
|
123
|
+
sessionId = out.sessionId;
|
|
124
|
+
if (out.kind === 'assistant') {
|
|
125
|
+
if (out.rawText !== undefined)
|
|
126
|
+
rawTexts.push(out.rawText);
|
|
127
|
+
if (out.text)
|
|
128
|
+
texts.push(out.text);
|
|
80
129
|
}
|
|
81
130
|
}
|
|
82
|
-
|
|
83
|
-
|
|
131
|
+
return {
|
|
132
|
+
texts,
|
|
133
|
+
rawTexts,
|
|
134
|
+
sessionId,
|
|
135
|
+
inputTokens: outcome.inputTokens,
|
|
136
|
+
outputTokens: outcome.outputTokens,
|
|
137
|
+
error: outcome.error,
|
|
138
|
+
};
|
|
84
139
|
}
|
|
85
140
|
export class QwenAgentRunner {
|
|
86
141
|
qwenBin;
|
|
@@ -106,7 +161,40 @@ export class QwenAgentRunner {
|
|
|
106
161
|
const promptWithSystem = !sessionId
|
|
107
162
|
? `${args.systemPrompt}${buildToolProtocol(args.tools)}\n\n---\n\n${nextPrompt}`
|
|
108
163
|
: nextPrompt;
|
|
109
|
-
|
|
164
|
+
// Filled in by streamTurn as the subprocess runs and when it exits.
|
|
165
|
+
const outcome = {
|
|
166
|
+
exitCode: 1,
|
|
167
|
+
stderrTail: '',
|
|
168
|
+
timedOut: false,
|
|
169
|
+
hangSuspected: false,
|
|
170
|
+
inputTokens: 0,
|
|
171
|
+
outputTokens: 0,
|
|
172
|
+
};
|
|
173
|
+
// Raw assistant texts (fences intact) for end-of-turn tool-call
|
|
174
|
+
// parsing — fence parsing needs the complete text, so fences are
|
|
175
|
+
// collected here while the stripped prose streams out live below.
|
|
176
|
+
const rawTexts = [];
|
|
177
|
+
for await (const ev of this.streamTurn(bin, promptWithSystem, sessionId, args, outcome)) {
|
|
178
|
+
if (ev.sessionId)
|
|
179
|
+
sessionId = ev.sessionId;
|
|
180
|
+
if (ev.kind === 'assistant' && ev.rawText !== undefined) {
|
|
181
|
+
rawTexts.push(ev.rawText);
|
|
182
|
+
// Yield assistant prose AS IT ARRIVES (per event, not after
|
|
183
|
+
// process exit): a qwen turn can run many minutes, and
|
|
184
|
+
// session.ts's watchdog must see messages DURING the turn.
|
|
185
|
+
// Note this means partial output may already be yielded when
|
|
186
|
+
// a turn later exits non-zero — preferable to losing it
|
|
187
|
+
// entirely.
|
|
188
|
+
if (ev.text)
|
|
189
|
+
yield { type: 'assistant', session_id: sessionId, text: ev.text };
|
|
190
|
+
}
|
|
191
|
+
else if (ev.kind === 'tool') {
|
|
192
|
+
// Liveness only (see header): session.ts never renders
|
|
193
|
+
// tool_use as chat — it only feeds the StateDetector
|
|
194
|
+
// ('tool-call' state) and refreshes last-activity.
|
|
195
|
+
yield { type: 'tool_use', session_id: sessionId, text: ev.toolName };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
110
198
|
if (outcome.sessionId)
|
|
111
199
|
sessionId = outcome.sessionId;
|
|
112
200
|
if (outcome.hangSuspected) {
|
|
@@ -116,21 +204,12 @@ export class QwenAgentRunner {
|
|
|
116
204
|
`this project to accept any prompts, then retry.${outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''}`);
|
|
117
205
|
}
|
|
118
206
|
if (outcome.exitCode !== 0 || outcome.error) {
|
|
119
|
-
throw
|
|
120
|
-
(outcome.timedOut
|
|
121
|
-
? ` — killed after exceeding the ${TURN_TIMEOUT_MS / 3_600_000}h turn timeout`
|
|
122
|
-
: '') +
|
|
123
|
-
(outcome.error ? `: ${outcome.error}` : '') +
|
|
124
|
-
(outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''));
|
|
125
|
-
}
|
|
126
|
-
for (const t of outcome.texts) {
|
|
127
|
-
if (t.trim())
|
|
128
|
-
yield { type: 'assistant', session_id: sessionId, text: t };
|
|
207
|
+
throw turnError(outcome, round);
|
|
129
208
|
}
|
|
130
209
|
turnInputTokens += outcome.inputTokens;
|
|
131
210
|
turnOutputTokens += outcome.outputTokens;
|
|
132
211
|
const malformed = [];
|
|
133
|
-
const calls = parseToolCalls(
|
|
212
|
+
const calls = parseToolCalls(rawTexts, (raw, err) => malformed.push(`[monomind] ignored malformed tool_call fence (${err}): ${raw.slice(0, 200)}`));
|
|
134
213
|
for (const note of malformed)
|
|
135
214
|
yield { type: 'assistant', session_id: sessionId, text: note };
|
|
136
215
|
if (calls.length === 0)
|
|
@@ -166,121 +245,182 @@ export class QwenAgentRunner {
|
|
|
166
245
|
throw err;
|
|
167
246
|
}
|
|
168
247
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
let hangTimer = setTimeout(() => {
|
|
205
|
-
hangSuspected = true;
|
|
248
|
+
/**
|
|
249
|
+
* Run one `qwen` invocation and stream its stream-json output
|
|
250
|
+
* INCREMENTALLY: each parsed event is yielded as soon as its line arrives
|
|
251
|
+
* on stdout (see the header's "Streaming / liveness" note for why
|
|
252
|
+
* buffering until process exit was a bug, #204). End-of-turn facts (exit
|
|
253
|
+
* code, stderr tail, session id, usage, error, timeout/hang flags) are
|
|
254
|
+
* written into `outcome`, which the caller reads after this generator
|
|
255
|
+
* completes.
|
|
256
|
+
*/
|
|
257
|
+
async *streamTurn(bin, prompt, sessionId, args, outcome) {
|
|
258
|
+
const cliArgs = ['-p', prompt, '--output-format', 'stream-json', '--yolo'];
|
|
259
|
+
if (args.model)
|
|
260
|
+
cliArgs.push('-m', args.model);
|
|
261
|
+
if (sessionId)
|
|
262
|
+
cliArgs.push('--resume', sessionId);
|
|
263
|
+
const child = spawn(bin, cliArgs, {
|
|
264
|
+
cwd: args.cwd,
|
|
265
|
+
env: { ...process.env, ...args.env },
|
|
266
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
267
|
+
});
|
|
268
|
+
let stderrTail = '';
|
|
269
|
+
child.stderr?.on('data', (c) => {
|
|
270
|
+
stderrTail = (stderrTail + c.toString()).slice(-4000);
|
|
271
|
+
});
|
|
272
|
+
// Arm the turn timeout BEFORE consuming stdout — a hung CLI must be
|
|
273
|
+
// killed while we're still reading, not after it finishes.
|
|
274
|
+
let timedOut = false;
|
|
275
|
+
let hangSuspected = false;
|
|
276
|
+
// SIGTERM→SIGKILL escalation, shared by the turn timeout, the startup
|
|
277
|
+
// hang check, the abort signal, and the abandoned-stream path in
|
|
278
|
+
// `finally` — a CLI that ignores SIGTERM must not leak a zombie per turn.
|
|
279
|
+
const KILL_GRACE_MS = 5000;
|
|
280
|
+
let killTimer;
|
|
281
|
+
const killChild = () => {
|
|
282
|
+
try {
|
|
206
283
|
child.kill('SIGTERM');
|
|
207
|
-
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
/* already gone */
|
|
287
|
+
}
|
|
288
|
+
killTimer = setTimeout(() => {
|
|
289
|
+
try {
|
|
290
|
+
child.kill('SIGKILL');
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
/* already gone */
|
|
294
|
+
}
|
|
295
|
+
}, KILL_GRACE_MS);
|
|
296
|
+
killTimer.unref?.();
|
|
297
|
+
};
|
|
298
|
+
const timer = setTimeout(() => {
|
|
299
|
+
timedOut = true;
|
|
300
|
+
killChild();
|
|
301
|
+
}, TURN_TIMEOUT_MS);
|
|
302
|
+
// See STARTUP_GRACE_MS — disarmed by the first stdout chunk below.
|
|
303
|
+
let hangTimer = setTimeout(() => {
|
|
304
|
+
hangSuspected = true;
|
|
305
|
+
killChild();
|
|
306
|
+
}, STARTUP_GRACE_MS);
|
|
307
|
+
// Abort hook (see AgentRunArgs.signal): kill the child so the stdout
|
|
308
|
+
// loop below unblocks instead of orphaning it on iterator.return().
|
|
309
|
+
const unsubscribeAbort = killOnAbort(args.signal, child, KILL_GRACE_MS);
|
|
310
|
+
// Attach the exit promise BEFORE consuming stdout: on a spawn failure
|
|
311
|
+
// (ENOENT, bad binary) the 'error' event fires almost immediately — if
|
|
312
|
+
// no listener is attached yet it escapes as an unhandled 'error' event
|
|
313
|
+
// and crashes the process instead of reaching our catch block.
|
|
314
|
+
const exitPromise = new Promise((res, rej) => {
|
|
315
|
+
child.on('error', rej);
|
|
316
|
+
child.on('close', (code) => res(code ?? 1));
|
|
317
|
+
});
|
|
318
|
+
// Prevent an unhandled-rejection crash if the stdout loop below throws
|
|
319
|
+
// before we await exitPromise (the await still sees the rejection).
|
|
320
|
+
exitPromise.catch(() => { });
|
|
321
|
+
let lastSessionId = sessionId;
|
|
322
|
+
try {
|
|
323
|
+
// Immediate liveness yield: session.ts races the FIRST pull against a
|
|
324
|
+
// 4-minute silent-stream watchdog, and qwen's first stdout line can
|
|
325
|
+
// itself take minutes (long thinking chains, large file reads).
|
|
326
|
+
// Yielding at spawn wins that race deterministically instead of
|
|
327
|
+
// depending on qwen's latency.
|
|
328
|
+
yield { kind: 'tool', toolName: 'turn started', sessionId };
|
|
329
|
+
let buf = '';
|
|
330
|
+
for await (const chunk of child.stdout) {
|
|
331
|
+
// Any stdout at all disarms the hang-suspicion timer — see
|
|
332
|
+
// STARTUP_GRACE_MS.
|
|
333
|
+
if (hangTimer) {
|
|
334
|
+
clearTimeout(hangTimer);
|
|
335
|
+
hangTimer = undefined;
|
|
336
|
+
}
|
|
337
|
+
buf += chunk.toString();
|
|
338
|
+
const parts = buf.split('\n');
|
|
339
|
+
buf = parts.pop() ?? '';
|
|
340
|
+
for (const line of parts) {
|
|
341
|
+
const trimmed = line.trim();
|
|
342
|
+
if (!trimmed?.startsWith('{'))
|
|
343
|
+
continue;
|
|
344
|
+
let ev;
|
|
208
345
|
try {
|
|
209
|
-
|
|
346
|
+
ev = JSON.parse(trimmed);
|
|
210
347
|
}
|
|
211
348
|
catch {
|
|
212
|
-
|
|
349
|
+
continue;
|
|
213
350
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
child.on('close', (code) => res(code ?? 1));
|
|
220
|
-
});
|
|
221
|
-
exitPromise.catch(() => { });
|
|
222
|
-
const readLines = (async () => {
|
|
223
|
-
const lines = [];
|
|
224
|
-
let buf = '';
|
|
225
|
-
for await (const chunk of child.stdout) {
|
|
226
|
-
if (!sawOutput) {
|
|
227
|
-
sawOutput = true;
|
|
228
|
-
if (hangTimer) {
|
|
229
|
-
clearTimeout(hangTimer);
|
|
230
|
-
hangTimer = undefined;
|
|
231
|
-
}
|
|
351
|
+
const out = handleQwenEvent(ev, outcome);
|
|
352
|
+
if (out) {
|
|
353
|
+
if (out.sessionId)
|
|
354
|
+
lastSessionId = out.sessionId;
|
|
355
|
+
yield out;
|
|
232
356
|
}
|
|
233
|
-
buf += chunk.toString();
|
|
234
|
-
const parts = buf.split('\n');
|
|
235
|
-
buf = parts.pop() ?? '';
|
|
236
|
-
lines.push(...parts);
|
|
237
357
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
})();
|
|
242
|
-
// Timer cleanup lives in a top-level .finally() (not nested inside a
|
|
243
|
-
// success-path .then()) so it runs on EITHER path — a stdout stream
|
|
244
|
-
// error would otherwise skip straight to reject() and leave the
|
|
245
|
-
// TURN_TIMEOUT_MS/hangTimer/killTimer timers running past the
|
|
246
|
-
// process's actual lifetime.
|
|
247
|
-
Promise.all([readLines, exitPromise])
|
|
248
|
-
.then(([lines, exitCode]) => {
|
|
249
|
-
const parsed = parseQwenEvents(lines);
|
|
250
|
-
resolve({
|
|
251
|
-
texts: parsed.texts,
|
|
252
|
-
rawTexts: parsed.rawTexts,
|
|
253
|
-
sessionId: parsed.sessionId ?? sessionId,
|
|
254
|
-
exitCode,
|
|
255
|
-
stderrTail,
|
|
256
|
-
timedOut,
|
|
257
|
-
hangSuspected,
|
|
258
|
-
inputTokens: parsed.inputTokens,
|
|
259
|
-
outputTokens: parsed.outputTokens,
|
|
260
|
-
error: parsed.error,
|
|
261
|
-
});
|
|
262
|
-
}, (err) => {
|
|
263
|
-
// A stdout stream error (the reject path) means the process is
|
|
264
|
-
// still ALIVE and unmanaged — none of the timeout/hang timers
|
|
265
|
-
// would have fired to kill it. Without this, that error would
|
|
266
|
-
// orphan the child. child.kill() on an already-dead process is a
|
|
267
|
-
// documented no-op, so this is safe on every path.
|
|
358
|
+
}
|
|
359
|
+
const tail = buf.trim();
|
|
360
|
+
if (tail?.startsWith('{')) {
|
|
268
361
|
try {
|
|
269
|
-
|
|
362
|
+
const out = handleQwenEvent(JSON.parse(tail), outcome);
|
|
363
|
+
if (out) {
|
|
364
|
+
if (out.sessionId)
|
|
365
|
+
lastSessionId = out.sessionId;
|
|
366
|
+
yield out;
|
|
367
|
+
}
|
|
270
368
|
}
|
|
271
369
|
catch {
|
|
272
|
-
/*
|
|
370
|
+
/* not JSON, skip */
|
|
273
371
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
finally {
|
|
375
|
+
clearTimeout(timer);
|
|
376
|
+
if (hangTimer)
|
|
377
|
+
clearTimeout(hangTimer);
|
|
378
|
+
unsubscribeAbort();
|
|
379
|
+
if (child.exitCode === null && child.signalCode === null) {
|
|
380
|
+
// NOT confirmed dead. Either the consumer abandoned this stream
|
|
381
|
+
// mid-turn (session.ts's silent abort calls iterator.return(), the
|
|
382
|
+
// mailbox closes, or an error is thrown downstream) — kill it, WITH
|
|
383
|
+
// the SIGKILL escalation — or a SIGTERM from the timeout/hang/abort
|
|
384
|
+
// is still inside its grace period: leave that escalation armed,
|
|
385
|
+
// since clearing it here would orphan a CLI that ignores SIGTERM and
|
|
386
|
+
// then wait on `exitPromise` forever (same fix as codex/kimi/pi-rpc).
|
|
387
|
+
if (!child.killed)
|
|
388
|
+
killChild();
|
|
389
|
+
}
|
|
390
|
+
else if (killTimer) {
|
|
391
|
+
clearTimeout(killTimer);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
const exitCode = await exitPromise;
|
|
395
|
+
if (killTimer)
|
|
396
|
+
clearTimeout(killTimer);
|
|
397
|
+
outcome.sessionId = lastSessionId;
|
|
398
|
+
outcome.exitCode = exitCode;
|
|
399
|
+
outcome.stderrTail = stderrTail;
|
|
400
|
+
outcome.timedOut = timedOut;
|
|
401
|
+
outcome.hangSuspected = hangSuspected;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
/** Build the actionable error for a failed qwen turn. */
|
|
405
|
+
function turnError(outcome, round) {
|
|
406
|
+
if (outcome.timedOut) {
|
|
407
|
+
return new Error(`QwenAgentRunner: qwen turn (tool round ${round}) exceeded the ${TURN_TIMEOUT_MS / 3_600_000}h ` +
|
|
408
|
+
`turn timeout and was killed.${outcome.stderrTail ? ` stderr: ${outcome.stderrTail.slice(-500)}` : ''}`);
|
|
409
|
+
}
|
|
410
|
+
// Fatal provider errors (auth/permission/quota — classified from the error
|
|
411
|
+
// field AND stderr): report what actually happened, and tag the error so
|
|
412
|
+
// the daemon does NOT restart into the same guaranteed failure (a restart
|
|
413
|
+
// on quota exhaustion can only hang or fail again).
|
|
414
|
+
const cls = classifyStderr(`${outcome.error ?? ''}\n${outcome.stderrTail}`);
|
|
415
|
+
if (cls.fatal) {
|
|
416
|
+
const err = new Error(`QwenAgentRunner: FATAL provider error (${cls.label}) on turn ${round} — not retrying.` +
|
|
417
|
+
(outcome.error ? ` error: ${outcome.error}` : '') +
|
|
418
|
+
(outcome.stderrTail ? ` stderr: ${outcome.stderrTail.slice(-500)}` : ''));
|
|
419
|
+
err.fatal = true;
|
|
420
|
+
return err;
|
|
284
421
|
}
|
|
422
|
+
return new Error(`QwenAgentRunner: qwen failed (exit ${outcome.exitCode})` +
|
|
423
|
+
(outcome.error ? `: ${outcome.error}` : '') +
|
|
424
|
+
(outcome.stderrTail ? `\nstderr: ${outcome.stderrTail.slice(-500)}` : ''));
|
|
285
425
|
}
|
|
286
426
|
//# sourceMappingURL=qwen-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-runner.js","sourceRoot":"","sources":["../../../src/orgrt/qwen-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qwen-runner.js","sourceRoot":"","sources":["../../../src/orgrt/qwen-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, daemon-independent helpers and types for mid-run role replacement.
|
|
3
|
+
* See docs/mastermind/specs/2026-09-07-org-runtime-role-respawn-design.md.
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentRuntime } from './daemon.js';
|
|
6
|
+
import type { RuntimeKind } from './daemon.js';
|
|
7
|
+
import type { OrgDef, OrgRole } from './types.js';
|
|
8
|
+
export type RoleSlotPhase = 'pending' | 'starting' | 'running' | 'draining' | 'ended' | 'crashed' | 'stuck' | 'removed';
|
|
9
|
+
export interface RetiredUsage {
|
|
10
|
+
tokens: number;
|
|
11
|
+
costUsd: number;
|
|
12
|
+
}
|
|
13
|
+
/** Only the fields org_respawn_role may override; everything else keeps the
|
|
14
|
+
* current effective value (see mergeEffectiveRoleConfig). */
|
|
15
|
+
export interface RoleOverrides {
|
|
16
|
+
runtime?: RuntimeKind;
|
|
17
|
+
model?: string;
|
|
18
|
+
providerName?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface RespawnReceipt {
|
|
21
|
+
success: boolean;
|
|
22
|
+
roleId: string;
|
|
23
|
+
generation: number;
|
|
24
|
+
respawnCount: number;
|
|
25
|
+
respawnsRemaining: number;
|
|
26
|
+
drainTimedOut?: boolean;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface RoleSlot {
|
|
30
|
+
generation: number;
|
|
31
|
+
phase: RoleSlotPhase;
|
|
32
|
+
runtime?: AgentRuntime;
|
|
33
|
+
/** The role config actually in effect right now — the org definition's
|
|
34
|
+
* role, with any accepted overrides folded in. Never the original
|
|
35
|
+
* org-definition role once at least one replacement has happened. */
|
|
36
|
+
effectiveRole: OrgRole;
|
|
37
|
+
respawnCount: number;
|
|
38
|
+
respawnPromise?: Promise<RespawnReceipt>;
|
|
39
|
+
/** Messages that arrived while this slot was draining, not yet delivered
|
|
40
|
+
* to a live mailbox. */
|
|
41
|
+
queuedDuringSwap: string[];
|
|
42
|
+
retiredUsage: RetiredUsage;
|
|
43
|
+
/** The live incarnation's cancellation handle — set whenever
|
|
44
|
+
* spawnRoleIncarnation is given one, so a later respawn can force-stop it. */
|
|
45
|
+
abort?: AbortController;
|
|
46
|
+
}
|
|
47
|
+
/** Fold only the SUPPLIED override fields onto `current`; every omitted
|
|
48
|
+
* field keeps its current effective value (including across repeated
|
|
49
|
+
* replacements — `current` is always the slot's effectiveRole, never the
|
|
50
|
+
* original org-definition role, so this naturally persists overrides
|
|
51
|
+
* through however many replacements have already happened). */
|
|
52
|
+
export declare function mergeEffectiveRoleConfig(current: OrgRole, overrides: RoleOverrides): OrgRole;
|
|
53
|
+
/** The role's per-incarnation token ceiling when org_respawn_role omits
|
|
54
|
+
* `budgetTokens`: reuse the SAME allocator startup uses (daemon.ts's
|
|
55
|
+
* perRoleBudget computation), not the older even-split-only
|
|
56
|
+
* roleTokenBudget() helper. A role with its own budget_tokens override
|
|
57
|
+
* always gets that value; otherwise the remaining org budget (after
|
|
58
|
+
* subtracting every override) is split evenly across every role WITHOUT
|
|
59
|
+
* an override. */
|
|
60
|
+
export declare function computeReplacementBudget(def: OrgDef, roleId: string): number;
|
|
61
|
+
export interface RespawnInput {
|
|
62
|
+
roleId: string;
|
|
63
|
+
runtime?: RuntimeKind;
|
|
64
|
+
model?: string;
|
|
65
|
+
providerName?: string;
|
|
66
|
+
budgetTokens?: number;
|
|
67
|
+
reason: string;
|
|
68
|
+
briefing: string;
|
|
69
|
+
}
|
|
70
|
+
/** Validate and bound every field of an org_respawn_role call before any
|
|
71
|
+
* state change or preflight is attempted. See the design doc's "Validation
|
|
72
|
+
* rules" — limits chosen there: roleId 128, reason 1000, briefing 20000. */
|
|
73
|
+
export declare function validateRespawnInput(input: unknown): {
|
|
74
|
+
ok: true;
|
|
75
|
+
value: RespawnInput;
|
|
76
|
+
} | {
|
|
77
|
+
ok: false;
|
|
78
|
+
error: string;
|
|
79
|
+
};
|
|
80
|
+
/** Audit/status-safe view of a role's runtime config — never includes
|
|
81
|
+
* role.provider (which may carry apiKey/authToken/baseUrl). */
|
|
82
|
+
export declare function redactRoleConfig(role: OrgRole): {
|
|
83
|
+
runtime?: string;
|
|
84
|
+
model?: string;
|
|
85
|
+
providerName?: string;
|
|
86
|
+
};
|
|
87
|
+
export declare function buildRespawnReceipt(slot: Pick<RoleSlot, 'generation' | 'respawnCount'>, maxRespawns: number, success: boolean, extra?: Partial<RespawnReceipt>): RespawnReceipt;
|
|
88
|
+
//# sourceMappingURL=role-slot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-slot.d.ts","sourceRoot":"","sources":["../../../src/orgrt/role-slot.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;8DAC8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;0EAEsE;IACtE,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC;6BACyB;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B;mFAC+E;IAC/E,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;;gEAIgE;AAChE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAa5F;AAED;;;;;;mBAMmB;AACnB,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5E;AAkBD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AASD;;6EAE6E;AAC7E,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6ClE;AAED;gEACgE;AAChE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,GACZ;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAM7D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CAAC,EACnD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,OAAO,CAAC,cAAc,CAAM,GAClC,cAAc,CAShB"}
|