@jungjaehoon/mama-os 0.52.1 → 0.53.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/agent/agent-loop.d.ts +0 -14
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +5 -18
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +4 -2
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/tool-catalog.d.ts.map +1 -1
- package/dist/agent/code-act/tool-catalog.js +48 -22
- package/dist/agent/code-act/tool-catalog.js.map +1 -1
- package/dist/agent/native-effect-observer.d.ts +1 -0
- package/dist/agent/native-effect-observer.d.ts.map +1 -1
- package/dist/agent/native-effect-observer.js +17 -1
- package/dist/agent/native-effect-observer.js.map +1 -1
- package/dist/agent/persistent-cli-adapter.d.ts +32 -4
- package/dist/agent/persistent-cli-adapter.d.ts.map +1 -1
- package/dist/agent/persistent-cli-adapter.js +105 -6
- package/dist/agent/persistent-cli-adapter.js.map +1 -1
- package/dist/agent/persistent-cli-process.d.ts +78 -0
- package/dist/agent/persistent-cli-process.d.ts.map +1 -1
- package/dist/agent/persistent-cli-process.js +322 -0
- package/dist/agent/persistent-cli-process.js.map +1 -1
- package/dist/agent/prompt-size-monitor.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +0 -22
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +23 -18
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts +4 -3
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +5 -25
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +1 -1
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +5 -18
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/utilities.d.ts +7 -1
- package/dist/cli/runtime/utilities.d.ts.map +1 -1
- package/dist/cli/runtime/utilities.js +8 -3
- package/dist/cli/runtime/utilities.js.map +1 -1
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +2 -1
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/telegram-format.d.ts +21 -4
- package/dist/gateways/telegram-format.d.ts.map +1 -1
- package/dist/gateways/telegram-format.js +150 -8
- package/dist/gateways/telegram-format.js.map +1 -1
- package/dist/multi-agent/wiki-agent-persona.d.ts +5 -7
- package/dist/multi-agent/wiki-agent-persona.d.ts.map +1 -1
- package/dist/multi-agent/wiki-agent-persona.js +5 -27
- package/dist/multi-agent/wiki-agent-persona.js.map +1 -1
- package/dist/operator/owner-action-effects.d.ts +0 -15
- package/dist/operator/owner-action-effects.d.ts.map +1 -1
- package/dist/operator/owner-action-effects.js +14 -2
- package/dist/operator/owner-action-effects.js.map +1 -1
- package/dist/operator/owner-runtime.d.ts +8 -0
- package/dist/operator/owner-runtime.d.ts.map +1 -1
- package/dist/operator/owner-runtime.js +26 -6
- package/dist/operator/owner-runtime.js.map +1 -1
- package/dist/operator/subagent-stimulus.js +4 -4
- package/dist/operator/subagent-stimulus.js.map +1 -1
- package/dist/operator/workorder-consumer.js +2 -2
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/wiki/wiki-turn-contract.d.ts +4 -4
- package/dist/wiki/wiki-turn-contract.js +4 -4
- package/package.json +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts +0 -16
- package/dist/multi-agent/dashboard-agent-persona.d.ts.map +0 -1
- package/dist/multi-agent/dashboard-agent-persona.js +0 -119
- package/dist/multi-agent/dashboard-agent-persona.js.map +0 -1
- package/templates/personas/architect.md +0 -70
- package/templates/personas/conductor.md +0 -373
- package/templates/personas/developer.md +0 -115
- package/templates/personas/pm.md +0 -68
- package/templates/personas/reviewer.md +0 -128
|
@@ -6,8 +6,8 @@ const type_definition_generator_js_1 = require("./type-definition-generator.js")
|
|
|
6
6
|
const TOOL_SEARCH_DEFAULT_LIMIT = 6;
|
|
7
7
|
const TOOL_SEARCH_MAX_LIMIT = 12;
|
|
8
8
|
const TOOL_DESCRIBE_MAX_NAMES = 4;
|
|
9
|
-
const CURSOR_VERSION =
|
|
10
|
-
const CURSOR_ORDER = 'name:asc';
|
|
9
|
+
const CURSOR_VERSION = 2;
|
|
10
|
+
const CURSOR_ORDER = 'score:desc,all-tokens:first,name:asc';
|
|
11
11
|
const CURSOR_ERROR = 'Invalid or stale tool catalog cursor.';
|
|
12
12
|
class ProjectedToolCatalog {
|
|
13
13
|
definitions;
|
|
@@ -24,27 +24,22 @@ class ProjectedToolCatalog {
|
|
|
24
24
|
const category = optionalNormalizedString(input.category, 'tool_search category');
|
|
25
25
|
const limit = searchLimit(input.limit);
|
|
26
26
|
const offset = input.cursor === undefined ? 0 : this.decodeCursor(input.cursor, query, category);
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
const tokens = query
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
if (tokens.length === 0) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
const haystack = `${definition.name}\n${definition.description}\n${definition.category}`.toLowerCase();
|
|
39
|
-
return tokens.every((token) => haystack.includes(token));
|
|
40
|
-
});
|
|
41
|
-
// Deterministic rank: exact name match first, then catalog (name:asc) order.
|
|
27
|
+
// Rank, do not filter-AND. Requiring every token silently returned [] for
|
|
28
|
+
// queries like "task update create" while task_update/task_create were both
|
|
29
|
+
// in the catalog, and the agent concluded no task ledger tool existed.
|
|
30
|
+
const tokens = queryTokens(query);
|
|
31
|
+
const scoped = category
|
|
32
|
+
? this.definitions.filter((definition) => definition.category.toLowerCase() === category)
|
|
33
|
+
: this.definitions;
|
|
42
34
|
const matches = tokens.length === 0
|
|
43
|
-
?
|
|
44
|
-
:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
35
|
+
? scoped
|
|
36
|
+
: scoped
|
|
37
|
+
.map((definition) => scoreDefinition(definition, tokens))
|
|
38
|
+
.filter((scored) => scored.score > 0)
|
|
39
|
+
.sort((left, right) => right.score - left.score ||
|
|
40
|
+
Number(right.allTokensMatched) - Number(left.allTokensMatched) ||
|
|
41
|
+
compareNames(left.definition.name, right.definition.name))
|
|
42
|
+
.map((scored) => scored.definition);
|
|
48
43
|
if (offset > matches.length) {
|
|
49
44
|
throw new Error(CURSOR_ERROR);
|
|
50
45
|
}
|
|
@@ -156,4 +151,35 @@ function searchLimit(value) {
|
|
|
156
151
|
function compareNames(left, right) {
|
|
157
152
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
158
153
|
}
|
|
154
|
+
/** Whitespace split, then `_`/`-` split, so "task_update" and "task update" are one query. */
|
|
155
|
+
function queryTokens(query) {
|
|
156
|
+
return query
|
|
157
|
+
.split(/\s+/)
|
|
158
|
+
.flatMap((token) => token.split(/[_-]+/))
|
|
159
|
+
.filter((token) => token.length > 0);
|
|
160
|
+
}
|
|
161
|
+
function scoreDefinition(definition, tokens) {
|
|
162
|
+
const name = definition.name.toLowerCase();
|
|
163
|
+
const nameSegments = new Set(name.split(/[_-]+/).filter((segment) => segment.length > 0));
|
|
164
|
+
const prose = `${definition.description}\n${definition.category}`.toLowerCase();
|
|
165
|
+
let score = 0;
|
|
166
|
+
let allTokensMatched = true;
|
|
167
|
+
for (const token of tokens) {
|
|
168
|
+
let tokenScore = 0;
|
|
169
|
+
if (nameSegments.has(token)) {
|
|
170
|
+
tokenScore += 3;
|
|
171
|
+
}
|
|
172
|
+
if (name.includes(token)) {
|
|
173
|
+
tokenScore += 2;
|
|
174
|
+
}
|
|
175
|
+
if (prose.includes(token)) {
|
|
176
|
+
tokenScore += 1;
|
|
177
|
+
}
|
|
178
|
+
if (tokenScore === 0) {
|
|
179
|
+
allTokensMatched = false;
|
|
180
|
+
}
|
|
181
|
+
score += tokenScore;
|
|
182
|
+
}
|
|
183
|
+
return { definition, score, allTokensMatched };
|
|
184
|
+
}
|
|
159
185
|
//# sourceMappingURL=tool-catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../../src/agent/code-act/tool-catalog.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAGzC,iFAAyE;AAEzE,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../../src/agent/code-act/tool-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export interface NativeEffectObserver {
|
|
|
6
6
|
/** Settle the durable admission marker only after a clean run return. */
|
|
7
7
|
finished?(): void;
|
|
8
8
|
}
|
|
9
|
+
export declare function isDelegationToolName(name: string): boolean;
|
|
9
10
|
/** TG-03/04/05/06: a completed shell invocation is still unsafe to replay. */
|
|
10
11
|
export declare class NativeEffectReplayBoundary {
|
|
11
12
|
private readonly observer?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-effect-observer.d.ts","sourceRoot":"","sources":["../../src/agent/native-effect-observer.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjE,WAAW,IAAI,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"native-effect-observer.d.ts","sourceRoot":"","sources":["../../src/agent/native-effect-observer.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjE,WAAW,IAAI,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,IAAI,CAAC;CACnB;AAoCD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,8EAA8E;AAC9E,qBAAa,0BAA0B;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IADtC,OAAO,CAAC,QAAQ,CAAS;gBACI,QAAQ,CAAC,EAAE,oBAAoB,YAAA;IAE5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS3D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQhE,QAAQ,IAAI,IAAI;IAIhB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,yBAAyB,UAAQ,GAAG,OAAO;CAqBpE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NativeEffectReplayBoundary = void 0;
|
|
4
|
+
exports.isDelegationToolName = isDelegationToolName;
|
|
4
5
|
const types_js_1 = require("./types.js");
|
|
5
6
|
const NATIVE_EFFECT_NAMES = new Set([
|
|
6
7
|
'bash',
|
|
@@ -16,13 +17,28 @@ const NATIVE_EFFECT_NAMES = new Set([
|
|
|
16
17
|
'execute_command',
|
|
17
18
|
'write_to_file',
|
|
18
19
|
'replace_in_file',
|
|
19
|
-
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Delegation is an admission, not an effect. Spawning a native subagent (Claude `Agent`/
|
|
23
|
+
* `Task`, Codex `spawn_agent`/`send_input`/`resume_agent`) names nothing the replay gate
|
|
24
|
+
* can re-execute: every effect the child performs carries its own ledger row through the
|
|
25
|
+
* gateway. Measured 2026-09-10: a Claude `Agent` tool_use recorded as `native_tool`
|
|
26
|
+
* under the reused `workorder:board:full:repair` occurrence blocked every later board
|
|
27
|
+
* order ("owner effect requires reconciliation before replay", orders #4805-#4807).
|
|
28
|
+
* Codex spawns already bypass this boundary via `onSubagentStart`; the Claude spawn
|
|
29
|
+
* arrives as an ordinary tool_use, so the name set must not claim it.
|
|
30
|
+
*/
|
|
31
|
+
const DELEGATION_NAMES = new Set([
|
|
20
32
|
'agent',
|
|
21
33
|
'task',
|
|
34
|
+
'spawn_agent',
|
|
22
35
|
'collabagenttoolcall',
|
|
23
36
|
'send_input',
|
|
24
37
|
'resume_agent',
|
|
25
38
|
]);
|
|
39
|
+
function isDelegationToolName(name) {
|
|
40
|
+
return DELEGATION_NAMES.has(name.toLowerCase());
|
|
41
|
+
}
|
|
26
42
|
/** TG-03/04/05/06: a completed shell invocation is still unsafe to replay. */
|
|
27
43
|
class NativeEffectReplayBoundary {
|
|
28
44
|
observer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-effect-observer.js","sourceRoot":"","sources":["../../src/agent/native-effect-observer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"native-effect-observer.js","sourceRoot":"","sources":["../../src/agent/native-effect-observer.ts"],"names":[],"mappings":";;;AA6CA,oDAEC;AA/CD,yCAAwC;AAWxC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,MAAM;IACN,OAAO;IACP,MAAM;IACN,WAAW;IACX,aAAa;IACb,cAAc;IACd,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,iBAAiB;CAClB,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,OAAO;IACP,MAAM;IACN,aAAa;IACb,qBAAqB;IACrB,YAAY;IACZ,cAAc;CACf,CAAC,CAAC;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,MAAa,0BAA0B;IAER;IADrB,QAAQ,GAAG,KAAK,CAAC;IACzB,YAA6B,QAA+B;QAA/B,aAAQ,GAAR,QAAQ,CAAuB;IAAG,CAAC;IAEhE,OAAO,CAAC,IAAY,EAAE,KAA8B;QAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QACD,yEAAyE;QACzE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,SAAiB,EAAE,OAAgB;QACvD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,KAAc,EAAE,yBAAyB,GAAG,KAAK;QACvD,6EAA6E;QAC7E,8EAA8E;QAC9E,IAAI,yBAAyB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;QACD,OAAO,IAAI,qBAAU,CACnB,4FAA4F,EAC5F,mCAAmC,EACnC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACzD,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AA9CD,gEA8CC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* - Claude context preserved without re-sending full history
|
|
12
12
|
* - System prompt sent only once at process start
|
|
13
13
|
*/
|
|
14
|
+
import { EventEmitter } from 'events';
|
|
14
15
|
import type { ClaudeCLIWrapperOptions, PromptCallbacks, PromptResult, ToolUseBlock } from './claude-cli-wrapper.js';
|
|
15
16
|
import { type IModelRunner, type PromptOptions, type RunnerMetrics, type SessionPolicyStatus } from './model-runner.js';
|
|
16
17
|
export type { ClaudeCLIWrapperOptions, PromptCallbacks, PromptResult, ToolUseBlock };
|
|
@@ -20,13 +21,16 @@ export type { ClaudeCLIWrapperOptions, PromptCallbacks, PromptResult, ToolUseBlo
|
|
|
20
21
|
* Implements the same interface but uses persistent CLI processes under the hood.
|
|
21
22
|
* This enables efficient multi-turn conversations without re-sending system prompts.
|
|
22
23
|
*/
|
|
23
|
-
export declare class PersistentCLIAdapter implements IModelRunner {
|
|
24
|
+
export declare class PersistentCLIAdapter extends EventEmitter implements IModelRunner {
|
|
24
25
|
readonly backendType: "claude";
|
|
25
26
|
/**
|
|
26
|
-
* The
|
|
27
|
-
*
|
|
27
|
+
* The CLI's own delegation: `Agent` with `run_in_background: true`. The parent stream
|
|
28
|
+
* carries the spawn (`system/task_started` plus the launch tool_result that names the
|
|
29
|
+
* child), the child's tool calls, its final text, and the completion notification, so a
|
|
30
|
+
* spawn IS observable - PersistentClaudeProcess maps them and this adapter re-emits them
|
|
31
|
+
* as `subagent` events with the same shape the Codex runner uses.
|
|
28
32
|
*/
|
|
29
|
-
readonly supportsNativeSubagents =
|
|
33
|
+
readonly supportsNativeSubagents = true;
|
|
30
34
|
private options;
|
|
31
35
|
private processPool;
|
|
32
36
|
private channelKey;
|
|
@@ -35,6 +39,19 @@ export declare class PersistentCLIAdapter implements IModelRunner {
|
|
|
35
39
|
private pendingToolResults;
|
|
36
40
|
private lastToolUseBlocks;
|
|
37
41
|
private contextRegistry;
|
|
42
|
+
/** Processes whose subagent stream events are already wired to this adapter. */
|
|
43
|
+
private readonly wiredProcesses;
|
|
44
|
+
/**
|
|
45
|
+
* A run-context lease deliberately held past its turn's end because a native background
|
|
46
|
+
* child (or the CLI's own follow-up turn) is still calling code-act under it.
|
|
47
|
+
*
|
|
48
|
+
* A Claude child shares the PARENT process's MAMA_CODE_ACT_CONTEXT_KEY, so it cannot be
|
|
49
|
+
* given a separate context the way a Codex child can: one key holds one live lease. Its
|
|
50
|
+
* authority is therefore the parent run's, kept open - never renewed. The registry still
|
|
51
|
+
* closes the lease at the envelope's own expiry, so nothing outlives the grant, and a
|
|
52
|
+
* call after that fails loudly with no run context rather than running unauthorised.
|
|
53
|
+
*/
|
|
54
|
+
private readonly deferredLeases;
|
|
38
55
|
private _requestCount;
|
|
39
56
|
private _failureCount;
|
|
40
57
|
private _totalLatencyMs;
|
|
@@ -50,6 +67,17 @@ export declare class PersistentCLIAdapter implements IModelRunner {
|
|
|
50
67
|
* 4. Returns PromptResult compatible with ClaudeCLIWrapper
|
|
51
68
|
*/
|
|
52
69
|
prompt(content: string, callbacks?: PromptCallbacks, options?: PromptOptions): Promise<PromptResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Re-emit one process's background-Agent stream events as runner-level events.
|
|
72
|
+
*
|
|
73
|
+
* `subagent` carries the SAME shape the Codex runner emits, so
|
|
74
|
+
* `attachSubagentWake` works unchanged. A completion the CLI answered with its own
|
|
75
|
+
* follow-up turn is emitted as `subagentObserved` instead: that turn IS the owner
|
|
76
|
+
* reacting, and a host wake on top of it would be a second turn for one child.
|
|
77
|
+
*/
|
|
78
|
+
private wireSubagentEvents;
|
|
79
|
+
/** Close a lease held past its turn, once nothing is still running under it. */
|
|
80
|
+
private releaseDeferredLease;
|
|
53
81
|
/**
|
|
54
82
|
* Send a tool result back to Claude
|
|
55
83
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-cli-adapter.d.ts","sourceRoot":"","sources":["../../src/agent/persistent-cli-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"persistent-cli-adapter.d.ts","sourceRoot":"","sources":["../../src/agent/persistent-cli-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAa3B,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAErF;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,YAAa,YAAW,YAAY;IAC5E,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC;;;;;;OAMG;IACH,QAAQ,CAAC,uBAAuB,QAAQ;IAExC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,wBAAwB,CAAuB;IACvD,OAAO,CAAC,kBAAkB,CAAgE;IAC1F,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,eAAe,CAA0C;IACjE,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8D;IAG7F,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAuB;gBAEjC,OAAO,GAAE,uBAA4B;IAqBjD;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IA4JxB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA8C1B,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAe,EACxB,SAAS,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,YAAY,CAAC;IAQxB;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;IAIlF;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,SAAS,GAAE,MAAwB,GAAG,IAAI;IAYvD;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUrC;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,UAAU,IAAI,uBAAuB;IAIrC,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB;IAOnE;;OAEG;IACH,SAAS,IAAI,OAAO;IAKpB;;OAEG;IACH,UAAU,IAAI,aAAa;IAU3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,qBAAqB,IAAI,MAAM;CAGhC;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,uBAA4B,GACpC,oBAAoB,CAEtB"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.PersistentCLIAdapter = void 0;
|
|
17
17
|
exports.createPersistentCLIAdapter = createPersistentCLIAdapter;
|
|
18
|
+
const events_1 = require("events");
|
|
18
19
|
const persistent_cli_process_js_1 = require("./persistent-cli-process.js");
|
|
19
20
|
const model_runner_js_1 = require("./model-runner.js");
|
|
20
21
|
const run_context_registry_js_1 = require("./code-act/run-context-registry.js");
|
|
@@ -26,13 +27,16 @@ const types_js_1 = require("./types.js");
|
|
|
26
27
|
* Implements the same interface but uses persistent CLI processes under the hood.
|
|
27
28
|
* This enables efficient multi-turn conversations without re-sending system prompts.
|
|
28
29
|
*/
|
|
29
|
-
class PersistentCLIAdapter {
|
|
30
|
+
class PersistentCLIAdapter extends events_1.EventEmitter {
|
|
30
31
|
backendType = 'claude';
|
|
31
32
|
/**
|
|
32
|
-
* The
|
|
33
|
-
*
|
|
33
|
+
* The CLI's own delegation: `Agent` with `run_in_background: true`. The parent stream
|
|
34
|
+
* carries the spawn (`system/task_started` plus the launch tool_result that names the
|
|
35
|
+
* child), the child's tool calls, its final text, and the completion notification, so a
|
|
36
|
+
* spawn IS observable - PersistentClaudeProcess maps them and this adapter re-emits them
|
|
37
|
+
* as `subagent` events with the same shape the Codex runner uses.
|
|
34
38
|
*/
|
|
35
|
-
supportsNativeSubagents =
|
|
39
|
+
supportsNativeSubagents = true;
|
|
36
40
|
options;
|
|
37
41
|
processPool;
|
|
38
42
|
channelKey;
|
|
@@ -41,12 +45,26 @@ class PersistentCLIAdapter {
|
|
|
41
45
|
pendingToolResults = new Map();
|
|
42
46
|
lastToolUseBlocks = [];
|
|
43
47
|
contextRegistry = run_context_registry_js_1.runContextRegistry;
|
|
48
|
+
/** Processes whose subagent stream events are already wired to this adapter. */
|
|
49
|
+
wiredProcesses = new WeakSet();
|
|
50
|
+
/**
|
|
51
|
+
* A run-context lease deliberately held past its turn's end because a native background
|
|
52
|
+
* child (or the CLI's own follow-up turn) is still calling code-act under it.
|
|
53
|
+
*
|
|
54
|
+
* A Claude child shares the PARENT process's MAMA_CODE_ACT_CONTEXT_KEY, so it cannot be
|
|
55
|
+
* given a separate context the way a Codex child can: one key holds one live lease. Its
|
|
56
|
+
* authority is therefore the parent run's, kept open - never renewed. The registry still
|
|
57
|
+
* closes the lease at the envelope's own expiry, so nothing outlives the grant, and a
|
|
58
|
+
* call after that fails loudly with no run context rather than running unauthorised.
|
|
59
|
+
*/
|
|
60
|
+
deferredLeases = new Map();
|
|
44
61
|
// ─── Metrics tracking ───
|
|
45
62
|
_requestCount = 0;
|
|
46
63
|
_failureCount = 0;
|
|
47
64
|
_totalLatencyMs = 0;
|
|
48
65
|
_lastRequestAt = null;
|
|
49
66
|
constructor(options = {}) {
|
|
67
|
+
super();
|
|
50
68
|
this.options = { ...options };
|
|
51
69
|
this.channelKey = options.sessionId || 'default';
|
|
52
70
|
this.processPool = new persistent_cli_process_js_1.PersistentProcessPool({
|
|
@@ -98,6 +116,7 @@ class PersistentCLIAdapter {
|
|
|
98
116
|
// dereference this.currentProcess inside prompt() - concurrent calls race it.
|
|
99
117
|
this.currentProcess = proc;
|
|
100
118
|
this.currentProcessChannelKey = channelKey;
|
|
119
|
+
this.wireSubagentEvents(proc, channelKey);
|
|
101
120
|
// Pending tool results belong to the legacy single-channel path; only flush
|
|
102
121
|
// them when this call routes to that same channel - flushing them into an
|
|
103
122
|
// arbitrary per-call session would misdeliver them.
|
|
@@ -129,6 +148,7 @@ class PersistentCLIAdapter {
|
|
|
129
148
|
const attemptController = options?.toolExecutionContext ? new AbortController() : null;
|
|
130
149
|
const contextKey = options?.toolExecutionContext ? proc.getRunContextKey() : null;
|
|
131
150
|
let leaseId = null;
|
|
151
|
+
let leaseClosedEarly = false;
|
|
132
152
|
let ownsPromptAttempt = false;
|
|
133
153
|
let latencyRecorded = false;
|
|
134
154
|
const recordLatency = () => {
|
|
@@ -146,6 +166,9 @@ class PersistentCLIAdapter {
|
|
|
146
166
|
const signal = ownerSignal
|
|
147
167
|
? AbortSignal.any([ownerSignal, attemptController.signal])
|
|
148
168
|
: attemptController.signal;
|
|
169
|
+
// A lease held open for a background child must not block this turn's own: the new
|
|
170
|
+
// turn supersedes it, and saying so is better than a lease conflict.
|
|
171
|
+
this.releaseDeferredLease(contextKey, 'superseded by a new turn');
|
|
149
172
|
leaseId = this.contextRegistry.register(contextKey, {
|
|
150
173
|
...options.toolExecutionContext,
|
|
151
174
|
signal,
|
|
@@ -160,6 +183,7 @@ class PersistentCLIAdapter {
|
|
|
160
183
|
attemptController?.abort(new Error(terminalError.message));
|
|
161
184
|
if (contextKey && leaseId) {
|
|
162
185
|
this.contextRegistry.close(contextKey, leaseId);
|
|
186
|
+
leaseClosedEarly = true;
|
|
163
187
|
}
|
|
164
188
|
this.processPool.retireProcess(channelKey, proc);
|
|
165
189
|
return result;
|
|
@@ -193,17 +217,88 @@ class PersistentCLIAdapter {
|
|
|
193
217
|
}
|
|
194
218
|
if (contextKey && leaseId) {
|
|
195
219
|
this.contextRegistry.close(contextKey, leaseId);
|
|
220
|
+
leaseClosedEarly = true;
|
|
196
221
|
}
|
|
197
222
|
this.processPool.retireProcess(channelKey, proc);
|
|
198
223
|
}
|
|
199
224
|
throw err;
|
|
200
225
|
}
|
|
201
226
|
finally {
|
|
202
|
-
if (contextKey && leaseId) {
|
|
203
|
-
|
|
227
|
+
if (contextKey && leaseId && !leaseClosedEarly) {
|
|
228
|
+
if (typeof proc.hasLiveBackgroundAgents === 'function' && proc.hasLiveBackgroundAgents()) {
|
|
229
|
+
// The turn is over; its native child is not. Closing now would strip the run
|
|
230
|
+
// context out from under the child's code-act calls mid-flight.
|
|
231
|
+
this.deferredLeases.set(contextKey, { leaseId, channelKey });
|
|
232
|
+
console.log(`[PersistentAdapter] holding run context for a live background agent (${channelKey})`);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
this.contextRegistry.close(contextKey, leaseId);
|
|
236
|
+
}
|
|
204
237
|
}
|
|
205
238
|
}
|
|
206
239
|
}
|
|
240
|
+
// ─── Native background Agent (delegation) observation ────────────────────
|
|
241
|
+
/**
|
|
242
|
+
* Re-emit one process's background-Agent stream events as runner-level events.
|
|
243
|
+
*
|
|
244
|
+
* `subagent` carries the SAME shape the Codex runner emits, so
|
|
245
|
+
* `attachSubagentWake` works unchanged. A completion the CLI answered with its own
|
|
246
|
+
* follow-up turn is emitted as `subagentObserved` instead: that turn IS the owner
|
|
247
|
+
* reacting, and a host wake on top of it would be a second turn for one child.
|
|
248
|
+
*/
|
|
249
|
+
wireSubagentEvents(proc, channelKey) {
|
|
250
|
+
if (this.wiredProcesses.has(proc))
|
|
251
|
+
return;
|
|
252
|
+
// Structural test doubles stand in for the pooled process and carry neither the emitter
|
|
253
|
+
// nor the background-agent accessor. Nothing to observe there.
|
|
254
|
+
if (typeof proc.on !== 'function' ||
|
|
255
|
+
typeof proc.hasLiveBackgroundAgents !== 'function') {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
this.wiredProcesses.add(proc);
|
|
259
|
+
proc.on('subagent', (event) => {
|
|
260
|
+
const translated = {
|
|
261
|
+
kind: event.kind,
|
|
262
|
+
sessionKey: channelKey,
|
|
263
|
+
parentThreadId: proc.getSessionId(),
|
|
264
|
+
agentThreadId: event.agentThreadId,
|
|
265
|
+
agentPath: event.agentPath,
|
|
266
|
+
...(event.status ? { status: event.status } : {}),
|
|
267
|
+
...(event.finalText ? { finalText: event.finalText } : {}),
|
|
268
|
+
};
|
|
269
|
+
if (event.kind === 'completed') {
|
|
270
|
+
this.releaseDeferredLease(proc.getRunContextKey(), 'background agent finished', proc);
|
|
271
|
+
if (!event.wakeRequired) {
|
|
272
|
+
console.log(`[PersistentAdapter] subagent ${event.agentThreadId} finished; the CLI's own ` +
|
|
273
|
+
'turn carries the wake');
|
|
274
|
+
this.emit('subagentObserved', translated);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
this.emit('subagent', translated);
|
|
279
|
+
});
|
|
280
|
+
proc.on('autonomousTurn', (event) => {
|
|
281
|
+
this.emit('autonomousTurn', { ...event, sessionKey: channelKey });
|
|
282
|
+
});
|
|
283
|
+
proc.on('autonomousTurnResult', (event) => {
|
|
284
|
+
this.releaseDeferredLease(proc.getRunContextKey(), 'autonomous turn ended', proc);
|
|
285
|
+
this.emit('autonomousTurnResult', { ...event, sessionKey: channelKey });
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
/** Close a lease held past its turn, once nothing is still running under it. */
|
|
289
|
+
releaseDeferredLease(contextKey, reason, proc) {
|
|
290
|
+
if (!contextKey)
|
|
291
|
+
return;
|
|
292
|
+
const held = this.deferredLeases.get(contextKey);
|
|
293
|
+
if (!held)
|
|
294
|
+
return;
|
|
295
|
+
if (typeof proc?.hasLiveBackgroundAgents === 'function' && proc.hasLiveBackgroundAgents()) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
this.deferredLeases.delete(contextKey);
|
|
299
|
+
this.contextRegistry.close(contextKey, held.leaseId);
|
|
300
|
+
console.log(`[PersistentAdapter] released held run context (${held.channelKey}): ${reason}`);
|
|
301
|
+
}
|
|
207
302
|
/**
|
|
208
303
|
* Send a tool result back to Claude
|
|
209
304
|
*
|
|
@@ -327,6 +422,10 @@ class PersistentCLIAdapter {
|
|
|
327
422
|
* Stop all processes (cleanup) — legacy name, delegates to stop().
|
|
328
423
|
*/
|
|
329
424
|
stopAll() {
|
|
425
|
+
for (const [contextKey, held] of [...this.deferredLeases]) {
|
|
426
|
+
this.deferredLeases.delete(contextKey);
|
|
427
|
+
this.contextRegistry.close(contextKey, held.leaseId);
|
|
428
|
+
}
|
|
330
429
|
this.processPool.stopAll();
|
|
331
430
|
this.currentProcess = null;
|
|
332
431
|
this.currentProcessChannelKey = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-cli-adapter.js","sourceRoot":"","sources":["../../src/agent/persistent-cli-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistent-cli-adapter.js","sourceRoot":"","sources":["../../src/agent/persistent-cli-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,23 @@ export interface ContentBlock {
|
|
|
91
91
|
export interface StreamMessage {
|
|
92
92
|
type: 'system' | 'assistant' | 'result' | 'error' | 'user';
|
|
93
93
|
subtype?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Set by the CLI on events produced INSIDE a subagent (the Agent tool_use id that
|
|
96
|
+
* started it). It is the only non-heuristic way to tell a child's tool calls from the
|
|
97
|
+
* parent's on one stream; absent/null means "this stream position", not "parent".
|
|
98
|
+
*/
|
|
99
|
+
parent_tool_use_id?: string | null;
|
|
100
|
+
/** Background-task identity on `system` task_* events; field name varies by CLI build. */
|
|
101
|
+
task_id?: string;
|
|
102
|
+
taskId?: string;
|
|
103
|
+
task?: {
|
|
104
|
+
id?: string;
|
|
105
|
+
status?: string;
|
|
106
|
+
description?: string;
|
|
107
|
+
agentId?: string;
|
|
108
|
+
};
|
|
109
|
+
agent_id?: string;
|
|
110
|
+
agentId?: string;
|
|
94
111
|
message?: {
|
|
95
112
|
role: string;
|
|
96
113
|
content: ContentBlock[];
|
|
@@ -119,6 +136,30 @@ export interface StreamMessage {
|
|
|
119
136
|
}
|
|
120
137
|
export type { PromptCallbacks, PromptResult };
|
|
121
138
|
type ProcessState = 'idle' | 'busy' | 'starting' | 'dead';
|
|
139
|
+
/** Host-visible spawn/finish of a native background Agent on the Claude stream. */
|
|
140
|
+
export interface ClaudeSubagentStreamEvent {
|
|
141
|
+
kind: 'started' | 'completed';
|
|
142
|
+
agentThreadId: string;
|
|
143
|
+
agentPath: string;
|
|
144
|
+
itemId: string;
|
|
145
|
+
status?: 'completed' | 'unknown';
|
|
146
|
+
finalText?: string;
|
|
147
|
+
/**
|
|
148
|
+
* False when the CLI opened its own follow-up turn for the notification: that turn IS
|
|
149
|
+
* the owner reacting, so the host must not enqueue a second one.
|
|
150
|
+
*/
|
|
151
|
+
wakeRequired: boolean;
|
|
152
|
+
}
|
|
153
|
+
/** A turn the CLI begins on its own after a background task notification (no stdin). */
|
|
154
|
+
export interface ClaudeAutonomousTurnEvent {
|
|
155
|
+
agentThreadId: string;
|
|
156
|
+
agentPath: string;
|
|
157
|
+
itemId: string;
|
|
158
|
+
}
|
|
159
|
+
export interface ClaudeAutonomousTurnResultEvent extends ClaudeAutonomousTurnEvent {
|
|
160
|
+
text: string;
|
|
161
|
+
isError: boolean;
|
|
162
|
+
}
|
|
122
163
|
/**
|
|
123
164
|
* PersistentClaudeProcess - Manages a single long-lived Claude CLI process
|
|
124
165
|
*
|
|
@@ -146,6 +187,18 @@ export declare class PersistentClaudeProcess extends EventEmitter {
|
|
|
146
187
|
private startPromise;
|
|
147
188
|
private onTokenUsage?;
|
|
148
189
|
private readonly runContextKey;
|
|
190
|
+
/** Live + just-finished native background Agents, keyed by their `Agent` tool_use id. */
|
|
191
|
+
private readonly backgroundAgents;
|
|
192
|
+
/**
|
|
193
|
+
* True once a turn's `result` resolved while a background child was still running. From
|
|
194
|
+
* then until the next stdin request, unattributed assistant/user events on the stream
|
|
195
|
+
* belong to that child, not to a parent turn that no longer exists.
|
|
196
|
+
*/
|
|
197
|
+
private parentTurnEnded;
|
|
198
|
+
/** Set between a `task_notification` and the CLI's own follow-up turn. */
|
|
199
|
+
private pendingNotification;
|
|
200
|
+
/** The CLI-initiated turn currently running with no stdin request behind it. */
|
|
201
|
+
private autonomousTurn;
|
|
149
202
|
/**
|
|
150
203
|
* Resolve the effective request timeout in ms.
|
|
151
204
|
* 0 = unlimited (no timeout). Returns the configured or default value.
|
|
@@ -191,6 +244,31 @@ export declare class PersistentClaudeProcess extends EventEmitter {
|
|
|
191
244
|
*/
|
|
192
245
|
private processEvent;
|
|
193
246
|
private recordToolUse;
|
|
247
|
+
private trackBackgroundAgent;
|
|
248
|
+
private pruneBackgroundAgents;
|
|
249
|
+
/** The newest tracked agent matching a predicate; `system` task events carry no item id. */
|
|
250
|
+
private latestBackgroundAgent;
|
|
251
|
+
private taskIdentityOf;
|
|
252
|
+
private recordBackgroundTaskStarted;
|
|
253
|
+
/** Lift the child's id out of the "Async agent launched" tool_result text. */
|
|
254
|
+
private recordBackgroundLaunchResult;
|
|
255
|
+
private fireSubagentStart;
|
|
256
|
+
/**
|
|
257
|
+
* Which background child an assistant/user event belongs to, or null for the parent.
|
|
258
|
+
*
|
|
259
|
+
* `parent_tool_use_id` is authoritative when the CLI stamps it. Without it the only
|
|
260
|
+
* honest signal is position: the parent turn already ended and exactly one child is
|
|
261
|
+
* live. Two live children and no stamp is ambiguous, so the event stays with the parent
|
|
262
|
+
* and says so rather than being silently attributed.
|
|
263
|
+
*/
|
|
264
|
+
private childAgentFor;
|
|
265
|
+
private absorbChildAssistant;
|
|
266
|
+
private recordBackgroundTaskNotification;
|
|
267
|
+
private beginAutonomousTurn;
|
|
268
|
+
private finishAutonomousTurn;
|
|
269
|
+
private completeBackgroundAgent;
|
|
270
|
+
/** Whether a spawned background child has not been reported finished yet. */
|
|
271
|
+
hasLiveBackgroundAgents(): boolean;
|
|
194
272
|
private recordToolResult;
|
|
195
273
|
private failToolStreamProtocol;
|
|
196
274
|
private promptTerminalError;
|