@qduc/term2 0.10.1 → 0.11.1

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 (230) hide show
  1. package/dist/agent.d.ts +18 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +66 -24
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +10 -11
  7. package/dist/app.js.map +1 -1
  8. package/dist/components/layout/BackgroundTasksPanel.d.ts +10 -0
  9. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -0
  10. package/dist/components/layout/BackgroundTasksPanel.js +79 -0
  11. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -0
  12. package/dist/components/layout/BottomArea.d.ts +3 -0
  13. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  14. package/dist/components/layout/BottomArea.js +3 -1
  15. package/dist/components/layout/BottomArea.js.map +1 -1
  16. package/dist/components/message/CommandMessage.js +25 -3
  17. package/dist/components/message/CommandMessage.js.map +1 -1
  18. package/dist/components/message/SubagentActivityMessage.d.ts +1 -0
  19. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  20. package/dist/components/message/SubagentActivityMessage.js +3 -3
  21. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  22. package/dist/components/message/command-message-helpers.d.ts +4 -4
  23. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  24. package/dist/components/message/command-message-helpers.js +10 -0
  25. package/dist/components/message/command-message-helpers.js.map +1 -1
  26. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  27. package/dist/components/prompt/ApprovalPrompt.js +28 -3
  28. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  29. package/dist/hooks/conversation-ui-reducer.d.ts +5 -0
  30. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  31. package/dist/hooks/conversation-ui-reducer.js +8 -0
  32. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  33. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  34. package/dist/hooks/settings-completion-config.js +4 -0
  35. package/dist/hooks/settings-completion-config.js.map +1 -1
  36. package/dist/hooks/use-conversation.d.ts +3 -0
  37. package/dist/hooks/use-conversation.d.ts.map +1 -1
  38. package/dist/hooks/use-conversation.js +24 -1
  39. package/dist/hooks/use-conversation.js.map +1 -1
  40. package/dist/lib/agent-client.d.ts +16 -1
  41. package/dist/lib/agent-client.d.ts.map +1 -1
  42. package/dist/lib/agent-client.js +22 -1
  43. package/dist/lib/agent-client.js.map +1 -1
  44. package/dist/lib/agent-configuration.d.ts.map +1 -1
  45. package/dist/lib/agent-configuration.js +5 -0
  46. package/dist/lib/agent-configuration.js.map +1 -1
  47. package/dist/lib/agent-factory.d.ts +18 -0
  48. package/dist/lib/agent-factory.d.ts.map +1 -1
  49. package/dist/lib/agent-factory.js +5 -0
  50. package/dist/lib/agent-factory.js.map +1 -1
  51. package/dist/lib/chained-input-filter.d.ts +20 -0
  52. package/dist/lib/chained-input-filter.d.ts.map +1 -1
  53. package/dist/lib/chained-input-filter.js +75 -0
  54. package/dist/lib/chained-input-filter.js.map +1 -1
  55. package/dist/lib/subagent-bridge.d.ts +57 -4
  56. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  57. package/dist/lib/subagent-bridge.js +141 -8
  58. package/dist/lib/subagent-bridge.js.map +1 -1
  59. package/dist/prompts/anthropic.md +6 -55
  60. package/dist/prompts/async-subagent-delegation.d.ts +10 -0
  61. package/dist/prompts/async-subagent-delegation.d.ts.map +1 -0
  62. package/dist/prompts/async-subagent-delegation.js +50 -0
  63. package/dist/prompts/async-subagent-delegation.js.map +1 -0
  64. package/dist/prompts/async-subagent-delegation.ts +65 -0
  65. package/dist/prompts/gpt-5.6.md +49 -0
  66. package/dist/prompts/kimi.md +25 -63
  67. package/dist/prompts/orchestrator-prompt.test.ts +77 -0
  68. package/dist/prompts/orchestrator.md +30 -3
  69. package/dist/prompts/prompt-constructor.d.ts +2 -0
  70. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  71. package/dist/prompts/prompt-constructor.js +9 -1
  72. package/dist/prompts/prompt-constructor.js.map +1 -1
  73. package/dist/prompts/prompt-constructor.test.ts +72 -0
  74. package/dist/prompts/prompt-constructor.ts +15 -0
  75. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  76. package/dist/prompts/prompt-profiles.js +5 -0
  77. package/dist/prompts/prompt-profiles.js.map +1 -1
  78. package/dist/prompts/prompt-profiles.test.ts +20 -0
  79. package/dist/prompts/prompt-profiles.ts +5 -0
  80. package/dist/prompts/search-via-shell.d.ts.map +1 -1
  81. package/dist/prompts/search-via-shell.js +8 -25
  82. package/dist/prompts/search-via-shell.js.map +1 -1
  83. package/dist/prompts/search-via-shell.test.ts +18 -0
  84. package/dist/prompts/search-via-shell.ts +8 -25
  85. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  86. package/dist/prompts/subagent-delegation.js +2 -1
  87. package/dist/prompts/subagent-delegation.js.map +1 -1
  88. package/dist/prompts/subagent-delegation.test.ts +15 -0
  89. package/dist/prompts/subagent-delegation.ts +2 -1
  90. package/dist/prompts/subagents/researcher.md +6 -0
  91. package/dist/prompts/subagents/worker-prompt.test.ts +35 -0
  92. package/dist/prompts/subagents/worker.md +8 -0
  93. package/dist/services/agent-runtime/execution-budget.d.ts +6 -0
  94. package/dist/services/agent-runtime/execution-budget.d.ts.map +1 -1
  95. package/dist/services/agent-runtime/execution-budget.js +32 -24
  96. package/dist/services/agent-runtime/execution-budget.js.map +1 -1
  97. package/dist/services/agent-runtime/permission-resolver.js +1 -1
  98. package/dist/services/agent-runtime/permission-resolver.js.map +1 -1
  99. package/dist/services/conversation/conversation-adapter.d.ts +11 -3
  100. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  101. package/dist/services/conversation/conversation-adapter.js +125 -31
  102. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  103. package/dist/services/conversation/conversation-events.d.ts +36 -1
  104. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  105. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  106. package/dist/services/conversation/conversation-orchestrator.js +263 -32
  107. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  108. package/dist/services/conversation/conversation-orchestrator.types.d.ts +2 -0
  109. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
  110. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  111. package/dist/services/conversation/conversation-replay.js +1 -0
  112. package/dist/services/conversation/conversation-replay.js.map +1 -1
  113. package/dist/services/conversation/conversation-service.d.ts +25 -0
  114. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  115. package/dist/services/conversation/conversation-service.js +44 -0
  116. package/dist/services/conversation/conversation-service.js.map +1 -1
  117. package/dist/services/conversation/conversation-store.d.ts +6 -0
  118. package/dist/services/conversation/conversation-store.d.ts.map +1 -1
  119. package/dist/services/conversation/conversation-store.js +17 -0
  120. package/dist/services/conversation/conversation-store.js.map +1 -1
  121. package/dist/services/conversation-agent-client.d.ts +13 -0
  122. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  123. package/dist/services/logging/conversation-log-events.d.ts +10 -1
  124. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  125. package/dist/services/logging/conversation-log-events.js.map +1 -1
  126. package/dist/services/logging/conversation-log-writer.d.ts +1 -0
  127. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  128. package/dist/services/logging/conversation-log-writer.js +1 -1
  129. package/dist/services/logging/conversation-log-writer.js.map +1 -1
  130. package/dist/services/logging/conversation-logger.d.ts.map +1 -1
  131. package/dist/services/logging/conversation-logger.js +11 -0
  132. package/dist/services/logging/conversation-logger.js.map +1 -1
  133. package/dist/services/plan-mode-interceptor.js +2 -2
  134. package/dist/services/plan-mode-interceptor.js.map +1 -1
  135. package/dist/services/queue/queue-controller.d.ts +1 -0
  136. package/dist/services/queue/queue-controller.d.ts.map +1 -1
  137. package/dist/services/queue/queue-controller.js +7 -4
  138. package/dist/services/queue/queue-controller.js.map +1 -1
  139. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  140. package/dist/services/retry/retry-classifier.js +4 -2
  141. package/dist/services/retry/retry-classifier.js.map +1 -1
  142. package/dist/services/session/session-composition.d.ts +23 -0
  143. package/dist/services/session/session-composition.d.ts.map +1 -1
  144. package/dist/services/session/session-composition.js +65 -1
  145. package/dist/services/session/session-composition.js.map +1 -1
  146. package/dist/services/settings/settings-merger.d.ts.map +1 -1
  147. package/dist/services/settings/settings-merger.js +2 -0
  148. package/dist/services/settings/settings-merger.js.map +1 -1
  149. package/dist/services/settings/settings-schema.d.ts +15 -0
  150. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  151. package/dist/services/settings/settings-schema.js +23 -0
  152. package/dist/services/settings/settings-schema.js.map +1 -1
  153. package/dist/services/subagents/execution-runner.d.ts +5 -2
  154. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  155. package/dist/services/subagents/execution-runner.js +125 -10
  156. package/dist/services/subagents/execution-runner.js.map +1 -1
  157. package/dist/services/subagents/mentor-runner.d.ts +5 -1
  158. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  159. package/dist/services/subagents/mentor-runner.js +60 -3
  160. package/dist/services/subagents/mentor-runner.js.map +1 -1
  161. package/dist/services/subagents/runtime.d.ts +2 -0
  162. package/dist/services/subagents/runtime.d.ts.map +1 -1
  163. package/dist/services/subagents/runtime.js +32 -2
  164. package/dist/services/subagents/runtime.js.map +1 -1
  165. package/dist/services/subagents/subagent-async-registry.d.ts +67 -0
  166. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -0
  167. package/dist/services/subagents/subagent-async-registry.js +506 -0
  168. package/dist/services/subagents/subagent-async-registry.js.map +1 -0
  169. package/dist/services/subagents/subagent-manager.d.ts +31 -0
  170. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  171. package/dist/services/subagents/subagent-manager.js +61 -1
  172. package/dist/services/subagents/subagent-manager.js.map +1 -1
  173. package/dist/services/subagents/subagent-notification-store.d.ts +107 -0
  174. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -0
  175. package/dist/services/subagents/subagent-notification-store.js +209 -0
  176. package/dist/services/subagents/subagent-notification-store.js.map +1 -0
  177. package/dist/services/subagents/subagent-run-control.d.ts +41 -0
  178. package/dist/services/subagents/subagent-run-control.d.ts.map +1 -0
  179. package/dist/services/subagents/subagent-run-control.js +166 -0
  180. package/dist/services/subagents/subagent-run-control.js.map +1 -0
  181. package/dist/services/subagents/subagent-session.d.ts +12 -1
  182. package/dist/services/subagents/subagent-session.d.ts.map +1 -1
  183. package/dist/services/subagents/subagent-session.js +29 -6
  184. package/dist/services/subagents/subagent-session.js.map +1 -1
  185. package/dist/services/subagents/tool-policy.d.ts +24 -4
  186. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  187. package/dist/services/subagents/tool-policy.js +134 -14
  188. package/dist/services/subagents/tool-policy.js.map +1 -1
  189. package/dist/services/subagents/types.d.ts +104 -0
  190. package/dist/services/subagents/types.d.ts.map +1 -1
  191. package/dist/services/subagents/types.js +1 -0
  192. package/dist/services/subagents/types.js.map +1 -1
  193. package/dist/services/subagents/utils.d.ts +6 -0
  194. package/dist/services/subagents/utils.d.ts.map +1 -1
  195. package/dist/services/subagents/utils.js +21 -0
  196. package/dist/services/subagents/utils.js.map +1 -1
  197. package/dist/tools/agent/ask-orchestrator.d.ts +11 -0
  198. package/dist/tools/agent/ask-orchestrator.d.ts.map +1 -0
  199. package/dist/tools/agent/ask-orchestrator.js +39 -0
  200. package/dist/tools/agent/ask-orchestrator.js.map +1 -0
  201. package/dist/tools/agent/run-subagent-async.d.ts +67 -0
  202. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -0
  203. package/dist/tools/agent/run-subagent-async.js +401 -0
  204. package/dist/tools/agent/run-subagent-async.js.map +1 -0
  205. package/dist/tools/file/code-context.d.ts +1 -0
  206. package/dist/tools/file/code-context.d.ts.map +1 -1
  207. package/dist/tools/file/code-context.js +4 -4
  208. package/dist/tools/file/code-context.js.map +1 -1
  209. package/dist/tools/file/grep.d.ts +1 -0
  210. package/dist/tools/file/grep.d.ts.map +1 -1
  211. package/dist/tools/file/grep.js +16 -10
  212. package/dist/tools/file/grep.js.map +1 -1
  213. package/dist/types/message.d.ts +1 -0
  214. package/dist/types/message.d.ts.map +1 -1
  215. package/dist/types/message.js.map +1 -1
  216. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  217. package/dist/utils/conversation/conversation-event-handler.js +7 -3
  218. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  219. package/dist/utils/settings-command.d.ts.map +1 -1
  220. package/dist/utils/settings-command.js +10 -0
  221. package/dist/utils/settings-command.js.map +1 -1
  222. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts +2 -1
  223. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts.map +1 -1
  224. package/dist/utils/shell/sandbox/sandbox-network-approval.js +17 -1
  225. package/dist/utils/shell/sandbox/sandbox-network-approval.js.map +1 -1
  226. package/dist/utils/shell/sandbox/sandbox-network-store.d.ts +20 -0
  227. package/dist/utils/shell/sandbox/sandbox-network-store.d.ts.map +1 -0
  228. package/dist/utils/shell/sandbox/sandbox-network-store.js +99 -0
  229. package/dist/utils/shell/sandbox/sandbox-network-store.js.map +1 -0
  230. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { it, expect } from 'vitest';
4
+ import { PROMPT_PROFILES, selectPromptProfile } from './prompt-profiles.js';
5
+
6
+ const PROMPTS_DIR = import.meta.dirname;
7
+
8
+ it('every prompt profile points at a base prompt file that exists on disk', () => {
9
+ const missing = PROMPT_PROFILES.filter(
10
+ (profile) => !fs.existsSync(path.join(PROMPTS_DIR, profile.basePromptFile)),
11
+ ).map((profile) => `${profile.id} -> ${profile.basePromptFile}`);
12
+
13
+ expect(missing).toEqual([]);
14
+ });
15
+
16
+ it('selectPromptProfile resolves a profile for any model string', () => {
17
+ for (const model of ['gpt-5.6', 'gpt-5.5', 'claude-opus-5', 'kimi-k2.5', 'some-unknown-model', '']) {
18
+ expect(selectPromptProfile({ model, liteMode: false }).basePromptFile).toBeTruthy();
19
+ }
20
+ });
@@ -31,6 +31,11 @@ export const PROMPT_PROFILES: PromptProfile[] = [
31
31
  basePromptFile: 'codex.md',
32
32
  matches: ({ normalizedModel }) => normalizedModel.includes('gpt-5') && normalizedModel.includes('codex'),
33
33
  },
34
+ {
35
+ id: 'gpt-5.6',
36
+ basePromptFile: 'gpt-5.6.md',
37
+ matches: ({ normalizedModel }) => normalizedModel.includes('gpt-5.6'),
38
+ },
34
39
  {
35
40
  id: 'gpt-5.5',
36
41
  basePromptFile: 'gpt-5.5.md',
@@ -1 +1 @@
1
- {"version":3,"file":"search-via-shell.d.ts","sourceRoot":"","sources":["../../source/prompts/search-via-shell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAcpE,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAiDrF"}
1
+ {"version":3,"file":"search-via-shell.d.ts","sourceRoot":"","sources":["../../source/prompts/search-via-shell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAcpE,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CAgCrF"}
@@ -22,32 +22,15 @@ export function getSearchViaShellAddendum(options = {}) {
22
22
 
23
23
  Use the \`shell\` tool with the standard CLI binaries.`;
24
24
  const textSearch = hasRg
25
- ? `**For text search**, use \`rg\` (ripgrep). Examples:
26
- - \`rg "pattern" src/\` — basic search, respects \`.gitignore\` by default.
27
- - \`rg -i "pattern" .\` case-insensitive.
28
- - \`rg --no-ignore "pattern" .\` when you need to search \`node_modules\`, build output, or anything in \`.gitignore\`.
29
- - \`rg -uu "pattern" .\` — include hidden + gitignored.
30
- - \`rg -g '*.ts' "pattern" .\` — restrict by glob.
31
- - \`rg -t ts "pattern" .\` — restrict by language preset.
32
- - \`rg -n "pattern" .\` — show line numbers (useful for follow-up edits).
33
- - \`rg -l "pattern" .\` — list files only.
34
- - \`rg -C 3 "pattern" .\` — 3 lines of context.
35
- - **Always pass an explicit path** (e.g. \`.\` or \`src/\`) to \`rg\`. When no path is given and stdin is a pipe, ripgrep reads stdin instead of searching the filesystem, returning no results.`
36
- : `**For text search**, use \`grep\`. Examples:
37
- - \`grep -rn "pattern" src/\` — recursive search with line numbers.
38
- - \`grep -ri "pattern" src/\` — case-insensitive recursive search.
39
- - \`grep -rl "pattern" src/\` — list matching files only.
40
- - \`grep -C 3 "pattern" src/\` — show 3 lines of context.`;
25
+ ? `**For text search**, use \`rg\` (ripgrep). It respects \`.gitignore\` by default; \`--no-ignore\` or \`-uu\` when you need to search past it.
26
+
27
+ **Always pass an explicit path** (e.g. \`.\` or \`src/\`). With no path given and stdin attached to a pipe, ripgrep reads stdin instead of searching the filesystem and silently returns no results.`
28
+ : `**For text search**, use \`grep\`, with \`-rn\` for a recursive search reporting line numbers.`;
41
29
  const fileSearch = hasFd
42
- ? `**For file search**, use \`fd\`. Examples:
43
- - \`fd '\\.ts$'\` — regex over basenames.
44
- - \`fd -e ts\` — by extension.
45
- - \`fd -H -I\` include hidden + gitignored (\`-uu\` style).
46
- - \`fd 'pattern' path/\` — scoped to a directory.`
47
- : `**For file search**, use \`find\`. Examples:
48
- - \`find src/ -type f -name '*.ts'\` — search a subtree by basename glob.
49
- - **Always search from a specific path, not \`/\`.** Scanning the whole filesystem can exhaust resources on large trees.
50
- - When using \`find -regex\` with alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` works; \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
30
+ ? `**For file search**, use \`fd\`. It also respects \`.gitignore\`; \`-H -I\` includes hidden and ignored files.`
31
+ : `**For file search**, use \`find\`, scoped to a specific path rather than \`/\` scanning the whole filesystem can exhaust resources on large trees.
32
+
33
+ With \`find -regex\` alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` matches, while \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
51
34
  const hygiene = `**General shell hygiene:**
52
35
  - Quote paths that contain spaces.
53
36
  - Prefer absolute paths or paths relative to a known root; avoid \`cd\`.
@@ -1 +1 @@
1
- {"version":3,"file":"search-via-shell.js","sourceRoot":"","sources":["../../source/prompts/search-via-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3C,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,yBAAyB,CAAC,OAAO,GAA0B,EAAE;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;IAE/D,sEAAsE;IACtE,6EAA6E;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG;;uDAEsC,CAAC;IAEtD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;;;;;;;;;iMAU2L;QAC7L,CAAC,CAAC;;;;0DAIoD,CAAC;IAEzD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;;;kDAI4C;QAC9C,CAAC,CAAC;;;0JAGoJ,CAAC;IAEzJ,MAAM,OAAO,GAAG;;;;2GAIyF,CAAC;IAE1G,OAAO,GAAG,MAAM,OAAO,UAAU,OAAO,UAAU,OAAO,OAAO,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"search-via-shell.js","sourceRoot":"","sources":["../../source/prompts/search-via-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3C,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,yBAAyB,CAAC,OAAO,GAA0B,EAAE;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;IAE/D,sEAAsE;IACtE,6EAA6E;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG;;uDAEsC,CAAC;IAEtD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;qMAE+L;QACjM,CAAC,CAAC,gGAAgG,CAAC;IAErG,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC,gHAAgH;QAClH,CAAC,CAAC;;qJAE+I,CAAC;IAEpJ,MAAM,OAAO,GAAG;;;;2GAIyF,CAAC;IAE1G,OAAO,GAAG,MAAM,OAAO,UAAU,OAAO,UAAU,OAAO,OAAO,EAAE,CAAC;AACrE,CAAC"}
@@ -49,3 +49,21 @@ it('getSearchViaShellAddendum falls back to grep and find when both missing', ()
49
49
  expect(includesWord(result, 'find')).toBe(true);
50
50
  expect(result.toLowerCase().includes('hygiene')).toBe(true);
51
51
  });
52
+
53
+ it('getSearchViaShellAddendum warns that pathless rg reads stdin', () => {
54
+ const result = getSearchViaShellAddendum({
55
+ checkBinary: () => true,
56
+ });
57
+
58
+ expect(result.toLowerCase()).toContain('explicit path');
59
+ expect(result.toLowerCase()).toContain('stdin');
60
+ });
61
+
62
+ it('getSearchViaShellAddendum warns about find -regex alternation ordering', () => {
63
+ const result = getSearchViaShellAddendum({
64
+ checkBinary: () => false,
65
+ });
66
+
67
+ expect(result).toContain('-regex');
68
+ expect(result.toLowerCase()).toContain('longest alternative first');
69
+ });
@@ -32,33 +32,16 @@ export function getSearchViaShellAddendum(options: SearchViaShellOptions = {}):
32
32
  Use the \`shell\` tool with the standard CLI binaries.`;
33
33
 
34
34
  const textSearch = hasRg
35
- ? `**For text search**, use \`rg\` (ripgrep). Examples:
36
- - \`rg "pattern" src/\` — basic search, respects \`.gitignore\` by default.
37
- - \`rg -i "pattern" .\` case-insensitive.
38
- - \`rg --no-ignore "pattern" .\` when you need to search \`node_modules\`, build output, or anything in \`.gitignore\`.
39
- - \`rg -uu "pattern" .\` — include hidden + gitignored.
40
- - \`rg -g '*.ts' "pattern" .\` — restrict by glob.
41
- - \`rg -t ts "pattern" .\` — restrict by language preset.
42
- - \`rg -n "pattern" .\` — show line numbers (useful for follow-up edits).
43
- - \`rg -l "pattern" .\` — list files only.
44
- - \`rg -C 3 "pattern" .\` — 3 lines of context.
45
- - **Always pass an explicit path** (e.g. \`.\` or \`src/\`) to \`rg\`. When no path is given and stdin is a pipe, ripgrep reads stdin instead of searching the filesystem, returning no results.`
46
- : `**For text search**, use \`grep\`. Examples:
47
- - \`grep -rn "pattern" src/\` — recursive search with line numbers.
48
- - \`grep -ri "pattern" src/\` — case-insensitive recursive search.
49
- - \`grep -rl "pattern" src/\` — list matching files only.
50
- - \`grep -C 3 "pattern" src/\` — show 3 lines of context.`;
35
+ ? `**For text search**, use \`rg\` (ripgrep). It respects \`.gitignore\` by default; \`--no-ignore\` or \`-uu\` when you need to search past it.
36
+
37
+ **Always pass an explicit path** (e.g. \`.\` or \`src/\`). With no path given and stdin attached to a pipe, ripgrep reads stdin instead of searching the filesystem and silently returns no results.`
38
+ : `**For text search**, use \`grep\`, with \`-rn\` for a recursive search reporting line numbers.`;
51
39
 
52
40
  const fileSearch = hasFd
53
- ? `**For file search**, use \`fd\`. Examples:
54
- - \`fd '\\.ts$'\` — regex over basenames.
55
- - \`fd -e ts\` — by extension.
56
- - \`fd -H -I\` include hidden + gitignored (\`-uu\` style).
57
- - \`fd 'pattern' path/\` — scoped to a directory.`
58
- : `**For file search**, use \`find\`. Examples:
59
- - \`find src/ -type f -name '*.ts'\` — search a subtree by basename glob.
60
- - **Always search from a specific path, not \`/\`.** Scanning the whole filesystem can exhaust resources on large trees.
61
- - When using \`find -regex\` with alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` works; \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
41
+ ? `**For file search**, use \`fd\`. It also respects \`.gitignore\`; \`-H -I\` includes hidden and ignored files.`
42
+ : `**For file search**, use \`find\`, scoped to a specific path rather than \`/\` scanning the whole filesystem can exhaust resources on large trees.
43
+
44
+ With \`find -regex\` alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` matches, while \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
62
45
 
63
46
  const hygiene = `**General shell hygiene:**
64
47
  - Quote paths that contain spaces.
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAwB,EACxB,aAAoB,GACrB,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CA4BvE"}
1
+ {"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAwB,EACxB,aAAoB,GACrB,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CA6BvE"}
@@ -6,9 +6,10 @@ import { getSubagentsRolesSection } from '../tools/agent/run-subagent.js';
6
6
  * The tool description covers mechanics; behavioral guidance lives here.
7
7
  */
8
8
  export function getSubagentDelegationAddendum({ orchestratorMode = false, memoryEnabled = true, } = {}) {
9
+ const delegationTool = orchestratorMode ? 'run_subagent_async' : 'run_subagent';
9
10
  const header = `### Delegating to subagents
10
11
 
11
- You have a \`run_subagent\` tool. A subagent runs in its own context and returns only a summary — use it to keep your own context focused on high-level reasoning.`;
12
+ You have a \`${delegationTool}\` tool. A subagent runs in its own context and returns only a summary — use it to keep your own context focused on high-level reasoning.`;
12
13
  const triggers = `**Delegate when it provides meaningful leverage:**
13
14
  - Need focused codebase investigation or context compression → \`explorer\`.
14
15
  - Needs online info (library docs, current best practices, version-specific behavior) → \`researcher\`.
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-delegation.js","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,IAAI,GACrB,GAA4D,EAAE;IAC7D,MAAM,MAAM,GAAG;;mKAEkJ,CAAC;IAElK,MAAM,QAAQ,GAAG;;;;EAKjB,aAAa,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC,EACvG,2GACI,gBAAgB;QACd,CAAC,CAAC;;6cAEqc;QACvc,CAAC,CAAC;;6LAGN,EAAE,CAAC;IAEH,MAAM,YAAY,GAAG;;iZAE0X,CAAC;IAEhZ,OAAO,GAAG,MAAM,OAAO,QAAQ,OAAO,YAAY,OAAO,wBAAwB,CAAC;QAChF,gBAAgB,EAAE,aAAa;KAChC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"subagent-delegation.js","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,IAAI,GACrB,GAA4D,EAAE;IAC7D,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;IAChF,MAAM,MAAM,GAAG;;eAEF,cAAc,2IAA2I,CAAC;IAEvK,MAAM,QAAQ,GAAG;;;;EAKjB,aAAa,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC,EACvG,2GACI,gBAAgB;QACd,CAAC,CAAC;;6cAEqc;QACvc,CAAC,CAAC;;6LAGN,EAAE,CAAC;IAEH,MAAM,YAAY,GAAG;;iZAE0X,CAAC;IAEhZ,OAAO,GAAG,MAAM,OAAO,QAAQ,OAAO,YAAY,OAAO,wBAAwB,CAAC;QAChF,gBAAgB,EAAE,aAAa;KAChC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { it, expect } from 'vitest';
2
2
  import { getSubagentDelegationAddendum } from './subagent-delegation.js';
3
+ import { getAsyncSubagentDelegationAddendum } from './async-subagent-delegation.js';
3
4
 
4
5
  it('getSubagentDelegationAddendum returns non-empty delegation guidance', () => {
5
6
  const result = getSubagentDelegationAddendum();
@@ -70,3 +71,17 @@ it('does not advertise the librarian when persistent memory is disabled', () =>
70
71
  const result = getSubagentDelegationAddendum({ memoryEnabled: false });
71
72
  expect(result.includes('librarian')).toBe(false);
72
73
  });
74
+
75
+ it('async control guidance distinguishes steering, cancellation, answers, and fresh-turn limits honestly', () => {
76
+ const result = getAsyncSubagentDelegationAddendum({ orchestratorMode: true, controlsEnabled: true });
77
+
78
+ expect(result).toContain('`send_message`');
79
+ expect(result).toContain('`cancel_run`');
80
+ expect(result).toContain('name or runId');
81
+ expect(result).toContain('`reply_to`');
82
+ expect(result).toContain('fresh session turn');
83
+ expect(result).toContain('maximum of three continuation segments');
84
+ expect(result).toContain('not SDK live injection');
85
+ expect(result).toContain('single point of contact');
86
+ expect(result).toContain('Do NOT call `get_subagent_result` immediately');
87
+ });
@@ -10,9 +10,10 @@ export function getSubagentDelegationAddendum({
10
10
  orchestratorMode = false,
11
11
  memoryEnabled = true,
12
12
  }: { orchestratorMode?: boolean; memoryEnabled?: boolean } = {}): string {
13
+ const delegationTool = orchestratorMode ? 'run_subagent_async' : 'run_subagent';
13
14
  const header = `### Delegating to subagents
14
15
 
15
- You have a \`run_subagent\` tool. A subagent runs in its own context and returns only a summary — use it to keep your own context focused on high-level reasoning.`;
16
+ You have a \`${delegationTool}\` tool. A subagent runs in its own context and returns only a summary — use it to keep your own context focused on high-level reasoning.`;
16
17
 
17
18
  const triggers = `**Delegate when it provides meaningful leverage:**
18
19
  - Need focused codebase investigation or context compression → \`explorer\`.
@@ -23,6 +23,12 @@ You have access to web search and web fetch tools, and read-only access to the w
23
23
  - Use only tools listed in the Available Tool Guidance section. If a tool is not listed there, it is not available.
24
24
  - Use available read, search, and code-context tools to inspect workspace files when relevant.
25
25
 
26
+ ## Asking the orchestrator
27
+
28
+ - Use `ask_orchestrator` only for a genuine blocker that cannot be resolved from the task, workspace, or available research tools. State the specific decision needed.
29
+ - The tool is available only when listed in your tools. It asks the owning orchestrator, never the user; do not contact the user directly.
30
+ - Continue after the answer and finish the research task rather than ending or relaunching it.
31
+
26
32
  ## Approach
27
33
 
28
34
  1. Identify what information is needed.
@@ -0,0 +1,35 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { it, expect } from 'vitest';
4
+
5
+ const workerPrompt = fs.readFileSync(path.join(import.meta.dirname, 'worker.md'), 'utf-8');
6
+ const researcherPrompt = fs.readFileSync(path.join(import.meta.dirname, 'researcher.md'), 'utf-8');
7
+
8
+ it('worker prompt still requires running a validation command', () => {
9
+ const lower = workerPrompt.toLowerCase();
10
+ expect(lower).toContain('validation command');
11
+ });
12
+
13
+ it('worker prompt notes that validation and diff stat are auto-captured', () => {
14
+ const lower = workerPrompt.toLowerCase();
15
+ expect(lower).toContain('automatically captures');
16
+ expect(lower).toContain('diff stat');
17
+ expect(lower).toContain('do not need to paste the full output');
18
+ });
19
+
20
+ it('worker prompt mentions that shell-driven edits may not appear in diff stat', () => {
21
+ const lower = workerPrompt.toLowerCase();
22
+ expect(lower).toContain('shell-driven edits');
23
+ expect(lower).toContain('may not appear');
24
+ });
25
+
26
+ it('execution role prompts reserve ask_orchestrator for genuine blockers and never direct user contact', () => {
27
+ for (const prompt of [workerPrompt, researcherPrompt]) {
28
+ const lower = prompt.toLowerCase();
29
+ expect(lower).toContain('ask_orchestrator');
30
+ expect(lower).toContain('genuine blocker');
31
+ expect(lower).toContain('decision needed');
32
+ expect(lower).toContain('continue after');
33
+ expect(lower).toContain('do not contact the user');
34
+ }
35
+ });
@@ -24,6 +24,12 @@ You have read and write access to the workspace (within the assigned write bound
24
24
  - Read relevant files before editing them.
25
25
  - Keep edits limited to the assigned scope. Do not broaden the task.
26
26
 
27
+ ## Asking the orchestrator
28
+
29
+ - Use `ask_orchestrator` only for a genuine blocker that cannot be resolved from the task, workspace, or available tools. State the specific decision needed, not an open-ended status update.
30
+ - The tool is available only when listed in your tools. It asks the owning orchestrator, never the user; do not contact the user directly.
31
+ - After the answer arrives, continue after it and complete the assigned work. Do not terminate or relaunch the task merely because you asked.
32
+
27
33
  ## Scope discipline
28
34
 
29
35
  - If the parent names editable, read-only, or forbidden files in the task, obey those boundaries strictly.
@@ -45,5 +51,7 @@ After completing the task, return a concise report that includes:
45
51
  - Any issues encountered or assumptions made
46
52
  - Any scope conflicts: work you identified as needed but that fell outside your assigned scope
47
53
 
54
+ The harness automatically captures the last validation command you ran (test/lint/typecheck/tsc/build) with its exit status and output, and a per-file line-change diff stat from your write-tool edits. You still need to run a validation command and may state which command you ran, but you do not need to paste the full output — the structured evidence is captured for you. Shell-driven edits outside the write tools may not appear in the diff stat; mention them in your summary if they matter.
55
+
48
56
  Do not include implementation details that are already visible in the diff.
49
57
  Do not claim work you did not do.
@@ -34,6 +34,12 @@ export declare class ExecutionBudget {
34
34
  maxTokens?: number;
35
35
  currentDepth?: number;
36
36
  abortController?: AbortController;
37
+ sharedState?: {
38
+ childCount: number;
39
+ activeChildren: number;
40
+ aggregateTokens: number;
41
+ released: boolean;
42
+ };
37
43
  });
38
44
  /** Shared abort signal for the tree. */
39
45
  get signal(): AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"execution-budget.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/execution-budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,kDAAkD;IAClD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAO1C,YAAY,OAAO,EAAE;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,EAOA;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4CAA4C;IAC5C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,6CAA6C;IAC7C,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,6CAA6C;IAC7C,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,mEAAmE;IACnE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;OAKG;IACH,eAAe,IAAI,iBAAiB,GAAG,qBAAqB,CAsC3D;IASD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAYxC;IAED,6BAA6B;IAC7B,KAAK,IAAI,IAAI,CAOZ;IAED;;;;OAIG;IACH,iBAAiB,IAAI,eAAe,CAgBnC;IAED,oEAAoE;IACpE,OAAO,IAAI,IAAI,CAOd;CACF;AAED;;;GAGG;AACH,qBAAa,iBAAiB;;IAI5B,YAAY,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,EAGzD;IAED,uEAAuE;IACvE,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAEd;IAED;;;;OAIG;IACH,iBAAiB,IAAI,eAAe,CAEnC;CACF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EACF,iBAAiB,GACjB,WAAW,GACX,uBAAuB,GACvB,0BAA0B,GAC1B,qBAAqB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,eAAe,CAOlB"}
1
+ {"version":3,"file":"execution-budget.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/execution-budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,kDAAkD;IAClD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAG1C,YAAY,OAAO,EAAE;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,WAAW,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAC1G,EAQA;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4CAA4C;IAC5C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,6CAA6C;IAC7C,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,6CAA6C;IAC7C,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,mEAAmE;IACnE,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;OAKG;IACH,eAAe,IAAI,iBAAiB,GAAG,qBAAqB,CA2C3D;IASD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAYxC;IAED,6BAA6B;IAC7B,KAAK,IAAI,IAAI,CAOZ;IAED;;;;OAIG;IACH,iBAAiB,IAAI,eAAe,CAiBnC;IAED,oEAAoE;IACpE,OAAO,IAAI,IAAI,CAOd;CACF;AAED;;;GAGG;AACH,qBAAa,iBAAiB;;IAK5B,YAAY,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,EAGzD;IAED,uEAAuE;IACvE,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4DAA4D;IAC5D,OAAO,IAAI,IAAI,CAId;IAED;;;;OAIG;IACH,iBAAiB,IAAI,eAAe,CAEnC;CACF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EACF,iBAAiB,GACjB,WAAW,GACX,uBAAuB,GACvB,0BAA0B,GAC1B,qBAAqB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,eAAe,CAOlB"}
@@ -25,10 +25,7 @@ export class ExecutionBudget {
25
25
  currentDepth;
26
26
  /** Shared AbortController for the entire tree. */
27
27
  abortController;
28
- #childCount = 0;
29
- #activeChildren = 0;
30
- #aggregateTokens = 0;
31
- #released = false;
28
+ #state;
32
29
  constructor(options) {
33
30
  this.maxChildren = options.maxChildren;
34
31
  this.maxDepth = options.maxDepth;
@@ -36,6 +33,7 @@ export class ExecutionBudget {
36
33
  this.maxTokens = options.maxTokens;
37
34
  this.currentDepth = options.currentDepth ?? 0;
38
35
  this.abortController = options.abortController ?? new AbortController();
36
+ this.#state = options.sharedState ?? { childCount: 0, activeChildren: 0, aggregateTokens: 0, released: false };
39
37
  }
40
38
  /** Shared abort signal for the tree. */
41
39
  get signal() {
@@ -43,19 +41,19 @@ export class ExecutionBudget {
43
41
  }
44
42
  /** Current child count (for inspection). */
45
43
  get childCount() {
46
- return this.#childCount;
44
+ return this.#state.childCount;
47
45
  }
48
46
  /** Current active (in-progress) children. */
49
47
  get activeChildren() {
50
- return this.#activeChildren;
48
+ return this.#state.activeChildren;
51
49
  }
52
50
  /** Aggregate token usage across the tree. */
53
51
  get aggregateTokens() {
54
- return this.#aggregateTokens;
52
+ return this.#state.aggregateTokens;
55
53
  }
56
54
  /** Whether any limit has been exceeded or the tree was aborted. */
57
55
  get isExhausted() {
58
- return this.#released || this.abortController.signal.aborted;
56
+ return this.#state.released || this.abortController.signal.aborted;
59
57
  }
60
58
  /**
61
59
  * Try to acquire a child slot. Returns an AcquiredChildSlot or a rejection reason.
@@ -64,42 +62,47 @@ export class ExecutionBudget {
64
62
  * Callers MUST call `release()` on the returned slot in a finally block.
65
63
  */
66
64
  tryAcquireChild() {
67
- if (this.#released) {
65
+ if (this.#state.released) {
68
66
  return { accepted: false, reason: 'budget_released' };
69
67
  }
70
68
  if (this.abortController.signal.aborted) {
71
69
  return { accepted: false, reason: 'cancelled' };
72
70
  }
73
71
  // Check maxChildren
74
- if (this.maxChildren !== undefined && this.#childCount >= this.maxChildren) {
75
- return { accepted: false, reason: 'max_children_exceeded', current: this.#childCount, max: this.maxChildren };
72
+ if (this.maxChildren !== undefined && this.#state.childCount >= this.maxChildren) {
73
+ return {
74
+ accepted: false,
75
+ reason: 'max_children_exceeded',
76
+ current: this.#state.childCount,
77
+ max: this.maxChildren,
78
+ };
76
79
  }
77
80
  // Check maxConcurrency
78
- if (this.maxConcurrency !== undefined && this.#activeChildren >= this.maxConcurrency) {
81
+ if (this.maxConcurrency !== undefined && this.#state.activeChildren >= this.maxConcurrency) {
79
82
  return {
80
83
  accepted: false,
81
84
  reason: 'max_concurrency_exceeded',
82
- current: this.#activeChildren,
85
+ current: this.#state.activeChildren,
83
86
  max: this.maxConcurrency,
84
87
  };
85
88
  }
86
89
  // Check token budget
87
- if (this.maxTokens !== undefined && this.#aggregateTokens >= this.maxTokens) {
90
+ if (this.maxTokens !== undefined && this.#state.aggregateTokens >= this.maxTokens) {
88
91
  return {
89
92
  accepted: false,
90
93
  reason: 'max_tokens_exceeded',
91
- current: this.#aggregateTokens,
94
+ current: this.#state.aggregateTokens,
92
95
  max: this.maxTokens,
93
96
  };
94
97
  }
95
- this.#childCount++;
96
- this.#activeChildren++;
98
+ this.#state.childCount++;
99
+ this.#state.activeChildren++;
97
100
  return new AcquiredChildSlot(this, () => this.#releaseChild());
98
101
  }
99
102
  /** Called by AcquiredChildSlot to release a slot. */
100
103
  #releaseChild() {
101
- if (this.#activeChildren > 0) {
102
- this.#activeChildren--;
104
+ if (this.#state.activeChildren > 0) {
105
+ this.#state.activeChildren--;
103
106
  }
104
107
  }
105
108
  /**
@@ -108,9 +111,9 @@ export class ExecutionBudget {
108
111
  */
109
112
  recordUsage(usage) {
110
113
  const tokens = usage.total_tokens ?? (usage.prompt_tokens ?? 0) + (usage.completion_tokens ?? 0);
111
- this.#aggregateTokens += tokens;
112
- if (this.maxTokens !== undefined && this.#aggregateTokens >= this.maxTokens) {
113
- this.#released = true;
114
+ this.#state.aggregateTokens += tokens;
115
+ if (this.maxTokens !== undefined && this.#state.aggregateTokens >= this.maxTokens) {
116
+ this.#state.released = true;
114
117
  try {
115
118
  this.abortController.abort();
116
119
  }
@@ -121,7 +124,7 @@ export class ExecutionBudget {
121
124
  }
122
125
  /** Abort the entire tree. */
123
126
  abort() {
124
- this.#released = true;
127
+ this.#state.released = true;
125
128
  try {
126
129
  this.abortController.abort();
127
130
  }
@@ -147,11 +150,12 @@ export class ExecutionBudget {
147
150
  maxTokens: this.maxTokens,
148
151
  currentDepth: depth,
149
152
  abortController: this.abortController,
153
+ sharedState: this.#state,
150
154
  });
151
155
  }
152
156
  /** Release all resources (called when root execution completes). */
153
157
  release() {
154
- this.#released = true;
158
+ this.#state.released = true;
155
159
  try {
156
160
  this.abortController.abort();
157
161
  }
@@ -167,6 +171,7 @@ export class ExecutionBudget {
167
171
  export class AcquiredChildSlot {
168
172
  #budget;
169
173
  #releaseFn;
174
+ #released = false;
170
175
  constructor(budget, releaseFn) {
171
176
  this.#budget = budget;
172
177
  this.#releaseFn = releaseFn;
@@ -177,6 +182,9 @@ export class AcquiredChildSlot {
177
182
  }
178
183
  /** Release the slot, decrementing active children count. */
179
184
  release() {
185
+ if (this.#released)
186
+ return;
187
+ this.#released = true;
180
188
  this.#releaseFn();
181
189
  }
182
190
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"execution-budget.js","sourceRoot":"","sources":["../../../source/services/agent-runtime/execution-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-budget.js","sourceRoot":"","sources":["../../../source/services/agent-runtime/execution-budget.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,eAAe;IAC1B,iEAAiE;IACxD,WAAW,CAAqB;IACzC,sEAAsE;IAC7D,QAAQ,CAAqB;IACtC,0DAA0D;IACjD,cAAc,CAAqB;IAC5C,uEAAuE;IAC9D,SAAS,CAAqB;IAEvC,6DAA6D;IACpD,YAAY,CAAS;IAE9B,kDAAkD;IACzC,eAAe,CAAkB;IAE1C,MAAM,CAA6F;IACnG,YAAY,OAQX;QACC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACjH,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,4CAA4C;IAC5C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,6CAA6C;IAC7C,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,6CAA6C;IAC7C,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,mEAAmE;IACnE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAClD,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,uBAAuB;gBAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAC/B,GAAG,EAAE,IAAI,CAAC,WAAW;aACtB,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3F,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,0BAA0B;gBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;gBACnC,GAAG,EAAE,IAAI,CAAC,cAAc;aACzB,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClF,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,qBAAqB;gBAC7B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBACpC,GAAG,EAAE,IAAI,CAAC,SAAS;aACpB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAE7B,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,qDAAqD;IACrD,aAAa;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAsB;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC;QAEtC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAEpC,iCAAiC;QACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,uBAAuB,KAAK,GAAG,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,IAAI,eAAe,CAAC;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC5B,OAAO,CAAkB;IACzB,UAAU,CAAa;IACvB,SAAS,GAAG,KAAK,CAAC;IAElB,YAAY,MAAuB,EAAE,SAAqB;QACxD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,4DAA4D;IAC5D,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;CACF;AAcD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAKhC;IACC,OAAO,IAAI,eAAe,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC"}
@@ -71,7 +71,7 @@ function deriveCanUseNestedAgents(perms) {
71
71
  // Explicit denial via agents.create: false overrides everything.
72
72
  if (perms.agents?.create === false)
73
73
  return false;
74
- const nestedTools = new Set(['run_subagent', 'ask_mentor']);
74
+ const nestedTools = new Set(['run_subagent', 'run_subagent_async', 'get_subagent_result', 'ask_mentor']);
75
75
  if (perms.tools?.some((t) => nestedTools.has(t)))
76
76
  return true;
77
77
  if (perms.agents?.create === true)
@@ -1 +1 @@
1
- {"version":3,"file":"permission-resolver.js","sourceRoot":"","sources":["../../../source/services/agent-runtime/permission-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-resolver.js","sourceRoot":"","sources":["../../../source/services/agent-runtime/permission-resolver.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export type SendMessageOptions = {
16
16
  bypassInputSurgeGuard?: boolean;
17
17
  replayFromHistory?: boolean;
18
18
  preferredMessageId?: string;
19
+ /** The turn is model input only and must not be projected as a user message in the UI. */
20
+ suppressUserMessageDisplay?: boolean;
19
21
  };
20
22
  export type HandleApprovalDecisionOptions = {
21
23
  onTextChunk?: (fullText: string, chunk: string) => void;
@@ -52,6 +54,7 @@ export type ConversationEventSink = (event: ConversationEvent) => void;
52
54
  export type QueuedTurnStartObserver = (execution: {
53
55
  readonly requestId: string;
54
56
  readonly input: string | UserTurn;
57
+ readonly suppressUserMessageDisplay?: boolean;
55
58
  }) => void;
56
59
  export declare class ConversationAdapter {
57
60
  #private;
@@ -68,13 +71,18 @@ export declare class ConversationAdapter {
68
71
  approval: SessionApprovalQuery;
69
72
  turnFlow: TurnFlow;
70
73
  queueForeground?: boolean;
74
+ queueCapacity?: number;
75
+ /** Test seam: bound how long cancel waits for a hung active turn. */
76
+ activeCancelTimeoutMs?: number;
71
77
  queuePersistence?: QueuePersistence<QueuedMessageSnapshot>;
72
78
  });
73
79
  setEventSink(sink: ConversationEventSink | null): void;
74
80
  setQueueStateObserver(observer: QueueStateObserver | null): void;
75
81
  setQueuedTurnStartObserver(observer: QueuedTurnStartObserver | null): void;
76
82
  isQueueActive(): boolean;
77
- sendMessage(input: string | UserTurn, { onTextChunk, onReasoningChunk, onCommandMessage, onEvent, hallucinationRetryCount, bypassInputSurgeGuard, replayFromHistory, preferredMessageId, }?: SendMessageOptions): Promise<ConversationTerminal>;
83
+ /** Whether the foreground queue owns a new submission's UI lifecycle. */
84
+ isQueueOwningSubmissions(): boolean;
85
+ sendMessage(input: string | UserTurn, { onTextChunk, onReasoningChunk, onCommandMessage, onEvent, hallucinationRetryCount, bypassInputSurgeGuard, replayFromHistory, preferredMessageId, suppressUserMessageDisplay, }?: SendMessageOptions): Promise<ConversationTerminal>;
78
86
  resumeQueue(): Promise<void>;
79
87
  discardQueue(): Promise<void>;
80
88
  /**
@@ -83,10 +91,10 @@ export declare class ConversationAdapter {
83
91
  * the queue is empty, the adapter has no queue (pass-through mode), or the
84
92
  * underlying controller rejects the removal.
85
93
  *
86
- * Also pops the matching pending message from the internal pending list so
87
- * the queue/pending state observers fire consistently.
94
+ * The item is correlated by its controller id, never its queue position.
88
95
  */
89
96
  removeLastQueuedItem(): Promise<{
97
+ id: string;
90
98
  text: string;
91
99
  } | null>;
92
100
  abort(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-adapter.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/conversation-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-adapter.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/conversation-adapter.ts"],"names":[],"mappings":"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"}