@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.
Files changed (77) hide show
  1. package/dist/agent/agent-loop.d.ts +0 -14
  2. package/dist/agent/agent-loop.d.ts.map +1 -1
  3. package/dist/agent/agent-loop.js +5 -18
  4. package/dist/agent/agent-loop.js.map +1 -1
  5. package/dist/agent/code-act/constants.d.ts.map +1 -1
  6. package/dist/agent/code-act/constants.js +4 -2
  7. package/dist/agent/code-act/constants.js.map +1 -1
  8. package/dist/agent/code-act/tool-catalog.d.ts.map +1 -1
  9. package/dist/agent/code-act/tool-catalog.js +48 -22
  10. package/dist/agent/code-act/tool-catalog.js.map +1 -1
  11. package/dist/agent/native-effect-observer.d.ts +1 -0
  12. package/dist/agent/native-effect-observer.d.ts.map +1 -1
  13. package/dist/agent/native-effect-observer.js +17 -1
  14. package/dist/agent/native-effect-observer.js.map +1 -1
  15. package/dist/agent/persistent-cli-adapter.d.ts +32 -4
  16. package/dist/agent/persistent-cli-adapter.d.ts.map +1 -1
  17. package/dist/agent/persistent-cli-adapter.js +105 -6
  18. package/dist/agent/persistent-cli-adapter.js.map +1 -1
  19. package/dist/agent/persistent-cli-process.d.ts +78 -0
  20. package/dist/agent/persistent-cli-process.d.ts.map +1 -1
  21. package/dist/agent/persistent-cli-process.js +322 -0
  22. package/dist/agent/persistent-cli-process.js.map +1 -1
  23. package/dist/agent/prompt-size-monitor.d.ts +2 -2
  24. package/dist/cli/commands/init.d.ts.map +1 -1
  25. package/dist/cli/commands/init.js +0 -22
  26. package/dist/cli/commands/init.js.map +1 -1
  27. package/dist/cli/commands/start.d.ts.map +1 -1
  28. package/dist/cli/commands/start.js +23 -18
  29. package/dist/cli/commands/start.js.map +1 -1
  30. package/dist/cli/config/config-manager.d.ts +4 -3
  31. package/dist/cli/config/config-manager.d.ts.map +1 -1
  32. package/dist/cli/config/config-manager.js +5 -25
  33. package/dist/cli/config/config-manager.js.map +1 -1
  34. package/dist/cli/runtime/agent-loop-init.js +1 -1
  35. package/dist/cli/runtime/agent-loop-init.js.map +1 -1
  36. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  37. package/dist/cli/runtime/api-routes-init.js +5 -18
  38. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  39. package/dist/cli/runtime/utilities.d.ts +7 -1
  40. package/dist/cli/runtime/utilities.d.ts.map +1 -1
  41. package/dist/cli/runtime/utilities.js +8 -3
  42. package/dist/cli/runtime/utilities.js.map +1 -1
  43. package/dist/gateways/message-router.d.ts.map +1 -1
  44. package/dist/gateways/message-router.js +2 -1
  45. package/dist/gateways/message-router.js.map +1 -1
  46. package/dist/gateways/telegram-format.d.ts +21 -4
  47. package/dist/gateways/telegram-format.d.ts.map +1 -1
  48. package/dist/gateways/telegram-format.js +150 -8
  49. package/dist/gateways/telegram-format.js.map +1 -1
  50. package/dist/multi-agent/wiki-agent-persona.d.ts +5 -7
  51. package/dist/multi-agent/wiki-agent-persona.d.ts.map +1 -1
  52. package/dist/multi-agent/wiki-agent-persona.js +5 -27
  53. package/dist/multi-agent/wiki-agent-persona.js.map +1 -1
  54. package/dist/operator/owner-action-effects.d.ts +0 -15
  55. package/dist/operator/owner-action-effects.d.ts.map +1 -1
  56. package/dist/operator/owner-action-effects.js +14 -2
  57. package/dist/operator/owner-action-effects.js.map +1 -1
  58. package/dist/operator/owner-runtime.d.ts +8 -0
  59. package/dist/operator/owner-runtime.d.ts.map +1 -1
  60. package/dist/operator/owner-runtime.js +26 -6
  61. package/dist/operator/owner-runtime.js.map +1 -1
  62. package/dist/operator/subagent-stimulus.js +4 -4
  63. package/dist/operator/subagent-stimulus.js.map +1 -1
  64. package/dist/operator/workorder-consumer.js +2 -2
  65. package/dist/operator/workorder-consumer.js.map +1 -1
  66. package/dist/wiki/wiki-turn-contract.d.ts +4 -4
  67. package/dist/wiki/wiki-turn-contract.js +4 -4
  68. package/package.json +1 -1
  69. package/dist/multi-agent/dashboard-agent-persona.d.ts +0 -16
  70. package/dist/multi-agent/dashboard-agent-persona.d.ts.map +0 -1
  71. package/dist/multi-agent/dashboard-agent-persona.js +0 -119
  72. package/dist/multi-agent/dashboard-agent-persona.js.map +0 -1
  73. package/templates/personas/architect.md +0 -70
  74. package/templates/personas/conductor.md +0 -373
  75. package/templates/personas/developer.md +0 -115
  76. package/templates/personas/pm.md +0 -68
  77. 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 = 1;
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
- // Token AND, not phrase: a multi-word query ("board class vocabulary html")
28
- // must find the tool whose description carries those words apart. Phrase
29
- // matching silently returned nothing and cost extra model steps.
30
- const tokens = query ? query.split(/\s+/).filter((token) => token.length > 0) : [];
31
- const filtered = this.definitions.filter((definition) => {
32
- if (category && definition.category.toLowerCase() !== category) {
33
- return false;
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
- ? filtered
44
- : [
45
- ...filtered.filter((definition) => definition.name.toLowerCase() === query),
46
- ...filtered.filter((definition) => definition.name.toLowerCase() !== query),
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":"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"}
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;AAwBD,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
+ {"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
- 'spawn_agent',
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":";;;AAAA,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;IACjB,aAAa;IACb,OAAO;IACP,MAAM;IACN,qBAAqB;IACrB,YAAY;IACZ,cAAc;CACf,CAAC,CAAC;AAEH,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"}
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 stream carries no subagent items the host can observe (a native Agent tool, when the
27
- * persona is given one, runs children the host cannot track), so delegation is never promised.
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 = false;
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;AAGH,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,YAAW,YAAY;IACvD,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,SAAS;IAEzC,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;IAGjE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAuB;gBAEjC,OAAO,GAAE,uBAA4B;IAoBjD;;;;;;;;OAQG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IA0IxB;;;;;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;IAQf;;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"}
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 stream carries no subagent items the host can observe (a native Agent tool, when the
33
- * persona is given one, runs children the host cannot track), so delegation is never promised.
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 = false;
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
- this.contextRegistry.close(contextKey, leaseId);
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;