@qduc/term2 0.29.0 → 0.30.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 (298) hide show
  1. package/dist/agent.d.ts +13 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +73 -2
  4. package/dist/agent.js.map +1 -1
  5. package/dist/build-info.json +3 -3
  6. package/dist/cli.js +17 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/components/message/SubagentActivityMessage.d.ts +2 -2
  9. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  10. package/dist/components/message/SubagentActivityMessage.js +2 -13
  11. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  12. package/dist/components/message/command-message-helpers.d.ts +2 -2
  13. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  14. package/dist/core/index.d.ts +2 -3
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +1 -7
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/session-runtime.d.ts +72 -0
  19. package/dist/core/session-runtime.d.ts.map +1 -1
  20. package/dist/gateway/contracts.d.ts +1 -1
  21. package/dist/gateway/contracts.d.ts.map +1 -1
  22. package/dist/gateway/gateway.d.ts +32 -0
  23. package/dist/gateway/gateway.d.ts.map +1 -1
  24. package/dist/gateway/gateway.js +36 -1
  25. package/dist/gateway/gateway.js.map +1 -1
  26. package/dist/gateway/persistence/contracts.d.ts +3 -10
  27. package/dist/gateway/persistence/contracts.d.ts.map +1 -1
  28. package/dist/gateway/persistence/contracts.js +2 -31
  29. package/dist/gateway/persistence/contracts.js.map +1 -1
  30. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  31. package/dist/gateway/runtime-factory.js +4 -0
  32. package/dist/gateway/runtime-factory.js.map +1 -1
  33. package/dist/gateway/server-session.d.ts +3 -0
  34. package/dist/gateway/server-session.d.ts.map +1 -1
  35. package/dist/gateway/server-session.js +17 -20
  36. package/dist/gateway/server-session.js.map +1 -1
  37. package/dist/gateway/settings-rpc.d.ts +1 -1
  38. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  39. package/dist/gateway/settings-rpc.js +4 -1
  40. package/dist/gateway/settings-rpc.js.map +1 -1
  41. package/dist/lib/agent-client.d.ts +8 -0
  42. package/dist/lib/agent-client.d.ts.map +1 -1
  43. package/dist/lib/agent-client.js +5 -1
  44. package/dist/lib/agent-client.js.map +1 -1
  45. package/dist/lib/agent-configuration.d.ts +9 -0
  46. package/dist/lib/agent-configuration.d.ts.map +1 -1
  47. package/dist/lib/agent-configuration.js +14 -0
  48. package/dist/lib/agent-configuration.js.map +1 -1
  49. package/dist/lib/agent-factory.d.ts +25 -4
  50. package/dist/lib/agent-factory.d.ts.map +1 -1
  51. package/dist/lib/agent-factory.js +6 -0
  52. package/dist/lib/agent-factory.js.map +1 -1
  53. package/dist/lib/subagent-bridge.d.ts +47 -5
  54. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  55. package/dist/lib/subagent-bridge.js +112 -4
  56. package/dist/lib/subagent-bridge.js.map +1 -1
  57. package/dist/node_modules/@qduc/agent-wire/index.d.ts +73 -0
  58. package/dist/node_modules/@qduc/agent-wire/index.js +212 -0
  59. package/dist/node_modules/@qduc/agent-wire/package.json +1 -0
  60. package/dist/prompts/orchestrator-prompt.test.ts +9 -0
  61. package/dist/prompts/orchestrator.md +2 -0
  62. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  63. package/dist/prompts/subagent-delegation.js +3 -2
  64. package/dist/prompts/subagent-delegation.js.map +1 -1
  65. package/dist/prompts/subagent-delegation.test.ts +1 -0
  66. package/dist/prompts/subagent-delegation.ts +6 -2
  67. package/dist/providers/codex.provider.d.ts +3 -0
  68. package/dist/providers/codex.provider.d.ts.map +1 -1
  69. package/dist/providers/codex.provider.js +6 -4
  70. package/dist/providers/codex.provider.js.map +1 -1
  71. package/dist/providers/grok-auth.d.ts +3 -0
  72. package/dist/providers/grok-auth.d.ts.map +1 -1
  73. package/dist/providers/grok-auth.js +3 -1
  74. package/dist/providers/grok-auth.js.map +1 -1
  75. package/dist/providers/grok.provider.js +3 -3
  76. package/dist/providers/grok.provider.js.map +1 -1
  77. package/dist/providers/index.d.ts +1 -1
  78. package/dist/providers/index.d.ts.map +1 -1
  79. package/dist/providers/index.js +1 -1
  80. package/dist/providers/index.js.map +1 -1
  81. package/dist/providers/oauth-session-account.d.ts +16 -2
  82. package/dist/providers/oauth-session-account.d.ts.map +1 -1
  83. package/dist/providers/oauth-session-account.js +8 -17
  84. package/dist/providers/oauth-session-account.js.map +1 -1
  85. package/dist/providers/openai.provider.js +1 -1
  86. package/dist/providers/openai.provider.js.map +1 -1
  87. package/dist/providers/openrouter.provider.js +1 -1
  88. package/dist/providers/openrouter.provider.js.map +1 -1
  89. package/dist/providers/registry.d.ts +20 -1
  90. package/dist/providers/registry.d.ts.map +1 -1
  91. package/dist/providers/registry.js +33 -16
  92. package/dist/providers/registry.js.map +1 -1
  93. package/dist/providers/web-search/exa.provider.d.ts.map +1 -1
  94. package/dist/providers/web-search/exa.provider.js +6 -3
  95. package/dist/providers/web-search/exa.provider.js.map +1 -1
  96. package/dist/providers/web-search/firecrawl.provider.d.ts +8 -0
  97. package/dist/providers/web-search/firecrawl.provider.d.ts.map +1 -0
  98. package/dist/providers/web-search/firecrawl.provider.js +59 -0
  99. package/dist/providers/web-search/firecrawl.provider.js.map +1 -0
  100. package/dist/providers/web-search/index.d.ts +5 -2
  101. package/dist/providers/web-search/index.d.ts.map +1 -1
  102. package/dist/providers/web-search/index.js +3 -1
  103. package/dist/providers/web-search/index.js.map +1 -1
  104. package/dist/providers/web-search/registry.d.ts +14 -0
  105. package/dist/providers/web-search/registry.d.ts.map +1 -1
  106. package/dist/providers/web-search/registry.js +45 -15
  107. package/dist/providers/web-search/registry.js.map +1 -1
  108. package/dist/providers/web-search/searxng.provider.d.ts +8 -0
  109. package/dist/providers/web-search/searxng.provider.d.ts.map +1 -0
  110. package/dist/providers/web-search/searxng.provider.js +56 -0
  111. package/dist/providers/web-search/searxng.provider.js.map +1 -0
  112. package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
  113. package/dist/providers/web-search/tavily.provider.js +8 -3
  114. package/dist/providers/web-search/tavily.provider.js.map +1 -1
  115. package/dist/providers/web-search/types.d.ts +14 -1
  116. package/dist/providers/web-search/types.d.ts.map +1 -1
  117. package/dist/services/agent-runtime/agent-resolver.d.ts.map +1 -1
  118. package/dist/services/agent-runtime/agent-resolver.js +1 -0
  119. package/dist/services/agent-runtime/agent-resolver.js.map +1 -1
  120. package/dist/services/agent-runtime/agent-runtime.d.ts +6 -1
  121. package/dist/services/agent-runtime/agent-runtime.d.ts.map +1 -1
  122. package/dist/services/agent-runtime/agent-runtime.js +11 -2
  123. package/dist/services/agent-runtime/agent-runtime.js.map +1 -1
  124. package/dist/services/agent-runtime/agent-spec.d.ts +14 -0
  125. package/dist/services/agent-runtime/agent-spec.d.ts.map +1 -0
  126. package/dist/services/agent-runtime/agent-spec.js +49 -0
  127. package/dist/services/agent-runtime/agent-spec.js.map +1 -0
  128. package/dist/services/agent-runtime/index.d.ts +3 -1
  129. package/dist/services/agent-runtime/index.d.ts.map +1 -1
  130. package/dist/services/agent-runtime/index.js +2 -0
  131. package/dist/services/agent-runtime/index.js.map +1 -1
  132. package/dist/services/agent-runtime/legacy-adapter.d.ts.map +1 -1
  133. package/dist/services/agent-runtime/legacy-adapter.js +5 -1
  134. package/dist/services/agent-runtime/legacy-adapter.js.map +1 -1
  135. package/dist/services/agent-runtime/permission-boundary.d.ts +95 -0
  136. package/dist/services/agent-runtime/permission-boundary.d.ts.map +1 -0
  137. package/dist/services/agent-runtime/permission-boundary.js +538 -0
  138. package/dist/services/agent-runtime/permission-boundary.js.map +1 -0
  139. package/dist/services/agent-runtime/resolved-agent.d.ts +2 -0
  140. package/dist/services/agent-runtime/resolved-agent.d.ts.map +1 -1
  141. package/dist/services/agent-runtime/types.d.ts +22 -1
  142. package/dist/services/agent-runtime/types.d.ts.map +1 -1
  143. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  144. package/dist/services/approval/non-interactive-approval-policy.js +10 -0
  145. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  146. package/dist/services/approval/shell-auto-approval-resolver.d.ts +2 -0
  147. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  148. package/dist/services/approval/shell-auto-approval-resolver.js +4 -2
  149. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  150. package/dist/services/conversation/conversation-adapter-factory.d.ts +1 -1
  151. package/dist/services/conversation/conversation-adapter-factory.d.ts.map +1 -1
  152. package/dist/services/conversation/conversation-adapter.d.ts +1 -1
  153. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  154. package/dist/services/conversation/conversation-runtime-factory.d.ts +1 -1
  155. package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
  156. package/dist/services/conversation/conversation-runtime-factory.js +1 -1
  157. package/dist/services/conversation/conversation-runtime-factory.js.map +1 -1
  158. package/dist/services/conversation/conversation-service.d.ts +4 -1
  159. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  160. package/dist/services/conversation/conversation-service.js +25 -0
  161. package/dist/services/conversation/conversation-service.js.map +1 -1
  162. package/dist/services/conversation/session-index/session-index-service.d.ts +1 -1
  163. package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -1
  164. package/dist/services/conversation/session-index/session-index-service.js +1 -1
  165. package/dist/services/conversation/session-index/session-index-service.js.map +1 -1
  166. package/dist/services/retry/committed-tool-continuation.d.ts +24 -0
  167. package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -1
  168. package/dist/services/retry/committed-tool-continuation.js +26 -0
  169. package/dist/services/retry/committed-tool-continuation.js.map +1 -1
  170. package/dist/services/retry/provider-failure-classification.d.ts +2 -0
  171. package/dist/services/retry/provider-failure-classification.d.ts.map +1 -1
  172. package/dist/services/retry/provider-failure-classification.js +43 -0
  173. package/dist/services/retry/provider-failure-classification.js.map +1 -1
  174. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  175. package/dist/services/retry/retry-classifier.js +11 -3
  176. package/dist/services/retry/retry-classifier.js.map +1 -1
  177. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -1
  178. package/dist/services/sandboxed-code-host/host-worker.js +3 -1
  179. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -1
  180. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  181. package/dist/services/session/continuation-recovery-handler.js +6 -0
  182. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  183. package/dist/services/session/initial-turn-recovery-handler.d.ts +1 -1
  184. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  185. package/dist/services/session/initial-turn-recovery-handler.js +6 -0
  186. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  187. package/dist/services/session/session-composition.d.ts +3 -0
  188. package/dist/services/session/session-composition.d.ts.map +1 -1
  189. package/dist/services/session/session-composition.js +2 -1
  190. package/dist/services/session/session-composition.js.map +1 -1
  191. package/dist/services/session/session-input-planner.d.ts +2 -0
  192. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  193. package/dist/services/session/session-input-planner.js +4 -6
  194. package/dist/services/session/session-input-planner.js.map +1 -1
  195. package/dist/services/settings/settings-env.d.ts.map +1 -1
  196. package/dist/services/settings/settings-env.js +9 -0
  197. package/dist/services/settings/settings-env.js.map +1 -1
  198. package/dist/services/settings/settings-schema.d.ts +24 -0
  199. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  200. package/dist/services/settings/settings-schema.js +16 -0
  201. package/dist/services/settings/settings-schema.js.map +1 -1
  202. package/dist/services/settings/settings-sources.d.ts +2 -0
  203. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  204. package/dist/services/settings/settings-sources.js +2 -0
  205. package/dist/services/settings/settings-sources.js.map +1 -1
  206. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  207. package/dist/services/settings/settings-ui-metadata.js +4 -1
  208. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  209. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
  210. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  211. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +3 -0
  212. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  213. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  214. package/dist/services/subagents/execution-runner.js +2 -1
  215. package/dist/services/subagents/execution-runner.js.map +1 -1
  216. package/dist/services/subagents/foreground-subagent-lease.d.ts +15 -0
  217. package/dist/services/subagents/foreground-subagent-lease.d.ts.map +1 -1
  218. package/dist/services/subagents/foreground-subagent-lease.js +42 -2
  219. package/dist/services/subagents/foreground-subagent-lease.js.map +1 -1
  220. package/dist/services/subagents/nested-runner.d.ts +1 -1
  221. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  222. package/dist/services/subagents/nested-runner.js +89 -22
  223. package/dist/services/subagents/nested-runner.js.map +1 -1
  224. package/dist/services/subagents/runtime.d.ts.map +1 -1
  225. package/dist/services/subagents/runtime.js +30 -4
  226. package/dist/services/subagents/runtime.js.map +1 -1
  227. package/dist/services/subagents/subagent-async-registry.d.ts +3 -0
  228. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  229. package/dist/services/subagents/subagent-async-registry.js +53 -8
  230. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  231. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  232. package/dist/services/subagents/subagent-manager.js +65 -3
  233. package/dist/services/subagents/subagent-manager.js.map +1 -1
  234. package/dist/services/subagents/subagent-role-pool-selector.d.ts +5 -1
  235. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -1
  236. package/dist/services/subagents/subagent-role-pool-selector.js +24 -5
  237. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -1
  238. package/dist/services/subagents/tool-policy.d.ts +2 -2
  239. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  240. package/dist/services/subagents/tool-policy.js +8 -2
  241. package/dist/services/subagents/tool-policy.js.map +1 -1
  242. package/dist/services/subagents/types.d.ts +15 -2
  243. package/dist/services/subagents/types.d.ts.map +1 -1
  244. package/dist/services/subagents/types.js.map +1 -1
  245. package/dist/services/subagents/worker-worktree.d.ts +19 -1
  246. package/dist/services/subagents/worker-worktree.d.ts.map +1 -1
  247. package/dist/services/subagents/worker-worktree.js +128 -4
  248. package/dist/services/subagents/worker-worktree.js.map +1 -1
  249. package/dist/services/workspace/worktree-inventory.d.ts +6 -0
  250. package/dist/services/workspace/worktree-inventory.d.ts.map +1 -1
  251. package/dist/services/workspace/worktree-inventory.js +29 -1
  252. package/dist/services/workspace/worktree-inventory.js.map +1 -1
  253. package/dist/tools/agent/propose-goal.d.ts +17 -0
  254. package/dist/tools/agent/propose-goal.d.ts.map +1 -0
  255. package/dist/tools/agent/propose-goal.js +64 -0
  256. package/dist/tools/agent/propose-goal.js.map +1 -0
  257. package/dist/tools/agent/run-subagent-async.d.ts +61 -3
  258. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  259. package/dist/tools/agent/run-subagent-async.js +13 -4
  260. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  261. package/dist/tools/agent/run-subagent.d.ts +73 -7
  262. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  263. package/dist/tools/agent/run-subagent.js +84 -22
  264. package/dist/tools/agent/run-subagent.js.map +1 -1
  265. package/dist/tools/system/run-code/index.d.ts +1 -1
  266. package/dist/tools/system/run-code/index.d.ts.map +1 -1
  267. package/dist/tools/system/run-code/index.js +1 -1
  268. package/dist/tools/system/run-code/index.js.map +1 -1
  269. package/dist/tools/system/run-code/run-code-agent-capability.d.ts +99 -0
  270. package/dist/tools/system/run-code/run-code-agent-capability.d.ts.map +1 -0
  271. package/dist/tools/system/run-code/run-code-agent-capability.js +384 -0
  272. package/dist/tools/system/run-code/run-code-agent-capability.js.map +1 -0
  273. package/dist/tools/system/run-code/run-code-runtime.d.ts +9 -0
  274. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  275. package/dist/tools/system/run-code/run-code-runtime.js +54 -1
  276. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  277. package/dist/tools/system/run-code/run-code.d.ts +12 -1
  278. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  279. package/dist/tools/system/run-code/run-code.js +48 -1
  280. package/dist/tools/system/run-code/run-code.js.map +1 -1
  281. package/dist/tools/tool-names.d.ts +1 -0
  282. package/dist/tools/tool-names.d.ts.map +1 -1
  283. package/dist/tools/tool-names.js +1 -0
  284. package/dist/tools/tool-names.js.map +1 -1
  285. package/dist/tools/web/web-search.d.ts +18 -0
  286. package/dist/tools/web/web-search.d.ts.map +1 -1
  287. package/dist/tools/web/web-search.js +29 -4
  288. package/dist/tools/web/web-search.js.map +1 -1
  289. package/dist/types/message.d.ts +1 -0
  290. package/dist/types/message.d.ts.map +1 -1
  291. package/dist/types/message.js +13 -0
  292. package/dist/types/message.js.map +1 -1
  293. package/dist/utils/conversation/conversation-event-handler.js +1 -1
  294. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  295. package/dist/utils/value-suggestions.d.ts.map +1 -1
  296. package/dist/utils/value-suggestions.js +2 -0
  297. package/dist/utils/value-suggestions.js.map +1 -1
  298. package/package.json +4 -2
@@ -0,0 +1,538 @@
1
+ import path from 'node:path';
2
+ import { AGENT_SPEC_TOOL_NAMES, agentSpecToConfig } from './agent-spec.js';
3
+ import { resolveAgent } from './agent-resolver.js';
4
+ const AGENT_SPEC_FIELDS = new Set([
5
+ 'goal',
6
+ 'context',
7
+ 'tools',
8
+ 'permissions',
9
+ 'constraints',
10
+ 'doneWhen',
11
+ 'model',
12
+ 'budget',
13
+ ]);
14
+ const AGENT_SPEC_TOOL_SET = new Set(AGENT_SPEC_TOOL_NAMES);
15
+ const READ_TOOLS = new Set(['read_file', 'grep', 'glob', 'read_code_outline', 'code_context_search']);
16
+ const WRITE_TOOLS = new Set(['apply_patch', 'search_replace', 'create_file']);
17
+ const WEB_TOOLS = new Set(['web_search', 'web_fetch']);
18
+ /**
19
+ * Adapt the existing resolved runtime definition into the authority snapshot
20
+ * consumed by the script boundary. This is deliberately an adapter: the
21
+ * interactive root currently does not expose a public effective-permissions
22
+ * object of its own.
23
+ */
24
+ export function parentAuthorityFromDefinition(definition, options = {}) {
25
+ const worktreePaths = options.worktreePaths ?? options.worktreeScope?.authorizedPaths;
26
+ return {
27
+ tools: [...definition.tools],
28
+ permissions: { ...definition.permissions },
29
+ ...(definition.filesystemScope
30
+ ? {
31
+ filesystemScope: { read: [...definition.filesystemScope.read], write: [...definition.filesystemScope.write] },
32
+ }
33
+ : {}),
34
+ ...(definition.networkScope ? { networkScope: [...definition.networkScope] } : {}),
35
+ limits: { ...definition.limits },
36
+ ...(options.worktreeScope ? { worktreeScope: [...options.worktreeScope] } : {}),
37
+ ...(worktreePaths ? { worktreePaths: { ...worktreePaths } } : {}),
38
+ };
39
+ }
40
+ /**
41
+ * Build the only authority object a future script-launched AgentSpec may use.
42
+ *
43
+ * This adapter intentionally starts from the already-effective root tool
44
+ * surface. It ignores tools which AgentSpec cannot provision, never enables
45
+ * nested agents, and removes writes in read-only/plan mode before the snapshot
46
+ * is bound. A finite filesystem scope also removes shell: the existing child
47
+ * tool policy cannot safely combine arbitrary shell execution with path scopes.
48
+ */
49
+ export function createRootAgentAuthoritySnapshot(options) {
50
+ const readOnly = options.readOnly === true;
51
+ const planMode = options.planMode === true;
52
+ const finiteFilesystemScope = options.filesystemScope !== undefined;
53
+ const finiteNetworkScope = options.networkScope !== undefined;
54
+ let tools = options.effectiveTools.filter((tool) => AGENT_SPEC_TOOL_SET.has(tool));
55
+ if (readOnly || planMode)
56
+ tools = tools.filter((tool) => !WRITE_TOOLS.has(tool));
57
+ if (finiteFilesystemScope)
58
+ tools = tools.filter((tool) => tool !== 'shell');
59
+ if (finiteNetworkScope && !options.networkScope.includes('*')) {
60
+ // web_search has no target URL and web_fetch cannot prove redirect
61
+ // containment. The resolver will reject these promises; do not advertise
62
+ // them as effective child authority in the first place.
63
+ tools = tools.filter((tool) => !WEB_TOOLS.has(tool));
64
+ }
65
+ const canRead = tools.some((tool) => READ_TOOLS.has(tool)) && (!options.filesystemScope || options.filesystemScope.read.length > 0);
66
+ const canWrite = tools.some((tool) => WRITE_TOOLS.has(tool)) &&
67
+ (!options.filesystemScope || options.filesystemScope.write.length > 0);
68
+ const canRunShell = tools.includes('shell') && !finiteFilesystemScope;
69
+ const canSearchWeb = tools.some((tool) => WEB_TOOLS.has(tool)) && (!options.networkScope || options.networkScope.length > 0);
70
+ const worktreePaths = options.worktreePaths ?? options.worktreeScope?.authorizedPaths;
71
+ return {
72
+ parent: {
73
+ tools,
74
+ permissions: {
75
+ canRead,
76
+ canWrite,
77
+ canRunShell,
78
+ canSearchWeb,
79
+ // AgentSpec execution has no nested-agent provisioning adapter yet.
80
+ canUseNestedAgents: false,
81
+ },
82
+ ...(options.filesystemScope
83
+ ? {
84
+ filesystemScope: {
85
+ read: [...options.filesystemScope.read],
86
+ write: [...options.filesystemScope.write],
87
+ },
88
+ }
89
+ : {}),
90
+ ...(options.networkScope ? { networkScope: [...options.networkScope] } : {}),
91
+ limits: { ...options.limits },
92
+ ...(options.worktreeScope ? { worktreeScope: [...options.worktreeScope] } : {}),
93
+ ...(worktreePaths ? { worktreePaths: { ...worktreePaths } } : {}),
94
+ },
95
+ readOnly,
96
+ planMode,
97
+ };
98
+ }
99
+ /**
100
+ * Resolve and attenuate one untrusted, script-requested AgentSpec.
101
+ *
102
+ * The returned definition is safe to pass to the existing execution runner:
103
+ * all requested tools, scopes, coarse capabilities, and nested-agent depth
104
+ * are resolved through the existing AgentRuntime resolver against the host's
105
+ * effective parent authority. Any resolution error is a rejection, rather
106
+ * than a partially-authorized execution.
107
+ */
108
+ export function resolveAgentSpecForChild(rawSpec, options) {
109
+ const inputErrors = validateAgentSpec(rawSpec);
110
+ const parent = options?.parent;
111
+ const parentErrors = validateParentAuthority(parent);
112
+ const worktreeResult = resolveWorktree(options?.worktree, parent?.worktreeScope, parent?.worktreePaths);
113
+ const errors = [...inputErrors, ...parentErrors, ...worktreeResult.errors];
114
+ if (errors.length > 0)
115
+ return { ok: false, errors };
116
+ const spec = rawSpec;
117
+ const authority = parent;
118
+ const parentPermissions = toPublicParentPermissions(authority, {
119
+ readOnly: options.readOnly === true,
120
+ planMode: options.planMode === true,
121
+ });
122
+ const config = agentSpecToConfig(spec);
123
+ const definition = resolveAgent(config, {
124
+ settings: options.settings,
125
+ logger: options.logger,
126
+ parentPermissions,
127
+ parentLimits: authority.limits,
128
+ });
129
+ const resolutionErrors = definition.resolutionErrors.map((error) => {
130
+ const fieldMatch = /\(field: ([^)]+)\)$/.exec(error.message);
131
+ return {
132
+ code: normalizeErrorCode(error.code),
133
+ message: error.message,
134
+ ...(fieldMatch ? { field: fieldMatch[1] } : {}),
135
+ };
136
+ });
137
+ resolutionErrors.push(...validateResolvedScopeTools(definition));
138
+ if (authority.filesystemScope) {
139
+ for (const axis of ['read', 'write']) {
140
+ if (definition.filesystemScope?.[axis].some((pattern) => !authority.filesystemScope[axis].includes(pattern))) {
141
+ resolutionErrors.push({
142
+ code: 'unsupported_permission_scope',
143
+ field: `permissions.filesystem.${axis}`,
144
+ message: 'Child filesystem patterns must exactly match an authorized parent pattern.',
145
+ });
146
+ }
147
+ }
148
+ }
149
+ if (spec.permissions?.agents?.create === true) {
150
+ resolutionErrors.push({
151
+ code: 'unsupported_permission_scope',
152
+ field: 'permissions.agents.create',
153
+ message: 'Nested agent creation is not provisioned for AgentSpec executions.',
154
+ });
155
+ }
156
+ if (resolutionErrors.length > 0)
157
+ return { ok: false, errors: resolutionErrors };
158
+ // A scope can derive a coarse flag in the general resolver even when no
159
+ // matching tool was requested. At this boundary the effective tool list is
160
+ // authoritative, so an unpaired scope must not make the existing tool
161
+ // factory provision an extra capability.
162
+ const boundedDefinition = {
163
+ ...definition,
164
+ permissions: {
165
+ ...definition.permissions,
166
+ canRead: definition.tools.some((tool) => READ_TOOLS.has(tool)),
167
+ canWrite: definition.tools.some((tool) => WRITE_TOOLS.has(tool)),
168
+ canRunShell: definition.tools.includes('shell'),
169
+ canSearchWeb: definition.tools.some((tool) => WEB_TOOLS.has(tool)),
170
+ canUseNestedAgents: false,
171
+ },
172
+ };
173
+ return {
174
+ ok: true,
175
+ spec,
176
+ config,
177
+ definition: boundedDefinition,
178
+ ...(worktreeResult.worktree ? { worktree: worktreeResult.worktree } : {}),
179
+ ...(worktreeResult.authorizedPath ? { authorizedWorktreePath: worktreeResult.authorizedPath } : {}),
180
+ };
181
+ }
182
+ function normalizeErrorCode(code) {
183
+ const known = new Set([
184
+ 'unsupported_structured_output',
185
+ 'unsupported_attachments',
186
+ 'invalid_model_policy',
187
+ 'unknown_skill',
188
+ 'unknown_tool',
189
+ 'budget_exhausted',
190
+ 'permission_denied',
191
+ 'unsupported_permission_scope',
192
+ 'invalid_scope_pattern',
193
+ 'unsupported_limit',
194
+ 'limit_validation_error',
195
+ 'limit_exceeded',
196
+ 'scope_violation',
197
+ 'provider_error',
198
+ 'cancelled',
199
+ 'agent_error',
200
+ 'invalid_attachment',
201
+ 'invalid_schema',
202
+ 'invalid_output',
203
+ ]);
204
+ return known.has(code) ? code : 'invalid_agent_spec';
205
+ }
206
+ function record(value) {
207
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
208
+ ? value
209
+ : undefined;
210
+ }
211
+ function unknownFields(value, allowed, field) {
212
+ return Object.keys(value)
213
+ .filter((key) => !allowed.has(key))
214
+ .map((key) => ({
215
+ code: 'invalid_agent_spec',
216
+ field: field ? `${field}.${key}` : key,
217
+ message: `Unsupported field "${field ? `${field}.` : ''}${key}" is rejected at the host boundary.`,
218
+ }));
219
+ }
220
+ function validateAgentSpec(raw) {
221
+ const spec = record(raw);
222
+ if (!spec)
223
+ return [{ code: 'invalid_agent_spec', message: 'AgentSpec must be a plain object.' }];
224
+ const errors = unknownFields(spec, AGENT_SPEC_FIELDS, '');
225
+ if (typeof spec.goal !== 'string' || spec.goal.trim().length === 0) {
226
+ errors.push({ code: 'invalid_agent_spec', field: 'goal', message: 'AgentSpec.goal must be a non-empty string.' });
227
+ }
228
+ if ('context' in spec && record(spec.context) === undefined) {
229
+ errors.push({ code: 'invalid_agent_spec', field: 'context', message: 'AgentSpec.context must be an object.' });
230
+ }
231
+ if ('tools' in spec)
232
+ errors.push(...validateToolList(spec.tools, 'tools'));
233
+ if ('constraints' in spec) {
234
+ if (!Array.isArray(spec.constraints) || spec.constraints.some((item) => typeof item !== 'string')) {
235
+ errors.push({
236
+ code: 'invalid_agent_spec',
237
+ field: 'constraints',
238
+ message: 'AgentSpec.constraints must be an array of strings.',
239
+ });
240
+ }
241
+ }
242
+ if ('doneWhen' in spec && typeof spec.doneWhen !== 'string') {
243
+ errors.push({ code: 'invalid_agent_spec', field: 'doneWhen', message: 'AgentSpec.doneWhen must be a string.' });
244
+ }
245
+ if ('model' in spec)
246
+ errors.push(...validateModel(spec.model));
247
+ if ('budget' in spec)
248
+ errors.push(...validateBudget(spec.budget));
249
+ if ('permissions' in spec)
250
+ errors.push(...validatePermissions(spec.permissions));
251
+ return errors;
252
+ }
253
+ function validateToolList(value, field) {
254
+ if (!Array.isArray(value))
255
+ return [{ code: 'invalid_agent_spec', field, message: `${field} must be an array.` }];
256
+ return value.flatMap((tool, index) => typeof tool !== 'string' || !AGENT_SPEC_TOOL_SET.has(tool)
257
+ ? [
258
+ {
259
+ code: 'unknown_tool',
260
+ field: `${field}.${index}`,
261
+ message: `Unsupported AgentSpec tool "${String(tool)}".`,
262
+ },
263
+ ]
264
+ : []);
265
+ }
266
+ function validateModel(value) {
267
+ if (value === 'efficient' || value === 'balanced' || value === 'capable')
268
+ return [];
269
+ const model = record(value);
270
+ if (model && typeof model.provider === 'string' && model.provider && typeof model.model === 'string' && model.model) {
271
+ const errors = unknownFields(model, new Set(['provider', 'model']), 'model');
272
+ return errors;
273
+ }
274
+ return [
275
+ { code: 'invalid_model_policy', field: 'model', message: 'AgentSpec.model is not a supported model policy.' },
276
+ ];
277
+ }
278
+ function validateBudget(value) {
279
+ const budget = record(value);
280
+ if (!budget)
281
+ return [{ code: 'invalid_agent_spec', field: 'budget', message: 'AgentSpec.budget must be an object.' }];
282
+ const errors = unknownFields(budget, new Set(['maxTurns', 'maxTokens']), 'budget');
283
+ for (const key of ['maxTurns', 'maxTokens']) {
284
+ if (key in budget && (!Number.isInteger(budget[key]) || budget[key] <= 0)) {
285
+ errors.push({
286
+ code: 'invalid_agent_spec',
287
+ field: `budget.${key}`,
288
+ message: `budget.${key} must be a positive integer.`,
289
+ });
290
+ }
291
+ }
292
+ return errors;
293
+ }
294
+ function validatePermissions(value) {
295
+ const permissions = record(value);
296
+ if (!permissions)
297
+ return [{ code: 'invalid_agent_spec', field: 'permissions', message: 'AgentSpec.permissions must be an object.' }];
298
+ const errors = unknownFields(permissions, new Set(['tools', 'filesystem', 'network', 'agents']), 'permissions');
299
+ if ('tools' in permissions)
300
+ errors.push(...validateToolList(permissions.tools, 'permissions.tools'));
301
+ errors.push(...validateScopeObject(permissions.filesystem, 'permissions.filesystem', ['read', 'write']));
302
+ errors.push(...validateScopeObject(permissions.network, 'permissions.network', ['hosts']));
303
+ if ('agents' in permissions) {
304
+ const agents = record(permissions.agents);
305
+ if (!agents) {
306
+ errors.push({
307
+ code: 'invalid_agent_spec',
308
+ field: 'permissions.agents',
309
+ message: 'permissions.agents must be an object.',
310
+ });
311
+ }
312
+ else {
313
+ errors.push(...unknownFields(agents, new Set(['create', 'maxDepth', 'allowedModels']), 'permissions.agents'));
314
+ if ('create' in agents && typeof agents.create !== 'boolean') {
315
+ errors.push({
316
+ code: 'invalid_agent_spec',
317
+ field: 'permissions.agents.create',
318
+ message: 'agents.create must be boolean.',
319
+ });
320
+ }
321
+ if ('maxDepth' in agents && (!Number.isInteger(agents.maxDepth) || agents.maxDepth < 0)) {
322
+ errors.push({
323
+ code: 'invalid_agent_spec',
324
+ field: 'permissions.agents.maxDepth',
325
+ message: 'agents.maxDepth must be a non-negative integer.',
326
+ });
327
+ }
328
+ // An empty list is still an unsupported promise: there is no proof that
329
+ // a future model allowlist will be enforced by the execution runner.
330
+ if ('allowedModels' in agents) {
331
+ errors.push({
332
+ code: 'unsupported_permission_scope',
333
+ field: 'permissions.agents.allowedModels',
334
+ message: 'agents.allowedModels is not enforceable by the child execution boundary.',
335
+ });
336
+ }
337
+ }
338
+ }
339
+ return errors;
340
+ }
341
+ function validateScopeObject(value, field, keys) {
342
+ if (value === undefined)
343
+ return [];
344
+ const scope = record(value);
345
+ if (!scope)
346
+ return [{ code: 'invalid_agent_spec', field, message: `${field} must be an object.` }];
347
+ const errors = unknownFields(scope, new Set(keys), field);
348
+ for (const key of keys) {
349
+ if (key in scope &&
350
+ (!Array.isArray(scope[key]) || scope[key].some((item) => typeof item !== 'string'))) {
351
+ errors.push({
352
+ code: 'invalid_agent_spec',
353
+ field: `${field}.${key}`,
354
+ message: `${field}.${key} must be an array of strings.`,
355
+ });
356
+ }
357
+ }
358
+ return errors;
359
+ }
360
+ function validateParentAuthority(parent) {
361
+ if (!parent || !Array.isArray(parent.tools) || !parent.permissions || !parent.limits || !record(parent.limits)) {
362
+ return [
363
+ { code: 'missing_parent_authority', message: 'A complete effective parent authority snapshot is required.' },
364
+ ];
365
+ }
366
+ const errors = [];
367
+ for (const key of ['canRead', 'canWrite', 'canRunShell', 'canSearchWeb', 'canUseNestedAgents']) {
368
+ if (typeof parent.permissions[key] !== 'boolean') {
369
+ errors.push({
370
+ code: 'missing_parent_authority',
371
+ field: `permissions.${key}`,
372
+ message: 'Parent coarse permissions must be boolean.',
373
+ });
374
+ }
375
+ }
376
+ if (parent.tools.some((tool) => typeof tool !== 'string')) {
377
+ errors.push({
378
+ code: 'missing_parent_authority',
379
+ field: 'tools',
380
+ message: 'Parent effective tools must be strings.',
381
+ });
382
+ }
383
+ if (parent.filesystemScope &&
384
+ (!Array.isArray(parent.filesystemScope.read) || !Array.isArray(parent.filesystemScope.write))) {
385
+ errors.push({
386
+ code: 'missing_parent_authority',
387
+ field: 'filesystemScope',
388
+ message: 'Parent filesystem scope must contain read and write arrays.',
389
+ });
390
+ }
391
+ if (parent.networkScope && !Array.isArray(parent.networkScope)) {
392
+ errors.push({
393
+ code: 'missing_parent_authority',
394
+ field: 'networkScope',
395
+ message: 'Parent network scope must be an array.',
396
+ });
397
+ }
398
+ if (parent.worktreeScope &&
399
+ (!Array.isArray(parent.worktreeScope) || parent.worktreeScope.some((name) => typeof name !== 'string'))) {
400
+ errors.push({
401
+ code: 'missing_parent_authority',
402
+ field: 'worktreeScope',
403
+ message: 'Parent worktree scope must be an array of names.',
404
+ });
405
+ }
406
+ if (parent.worktreePaths &&
407
+ (typeof parent.worktreePaths !== 'object' ||
408
+ parent.worktreePaths === null ||
409
+ Array.isArray(parent.worktreePaths) ||
410
+ Object.values(parent.worktreePaths).some((p) => typeof p !== 'string'))) {
411
+ errors.push({
412
+ code: 'missing_parent_authority',
413
+ field: 'worktreePaths',
414
+ message: 'Parent worktree paths must be a record of names to paths.',
415
+ });
416
+ }
417
+ return errors;
418
+ }
419
+ function toPublicParentPermissions(parent, mode) {
420
+ const tools = parent.tools.filter((tool) => {
421
+ if (READ_TOOLS.has(tool) && !parent.permissions.canRead)
422
+ return false;
423
+ if (WRITE_TOOLS.has(tool) && (!parent.permissions.canWrite || mode.readOnly || mode.planMode))
424
+ return false;
425
+ if (tool === 'shell' && !parent.permissions.canRunShell)
426
+ return false;
427
+ if (WEB_TOOLS.has(tool) && !parent.permissions.canSearchWeb)
428
+ return false;
429
+ if (tool === 'run_subagent' && !parent.permissions.canUseNestedAgents)
430
+ return false;
431
+ if (parent.filesystemScope) {
432
+ if (tool === 'shell')
433
+ return false;
434
+ if (READ_TOOLS.has(tool) && parent.filesystemScope.read.length === 0)
435
+ return false;
436
+ if (WRITE_TOOLS.has(tool) && parent.filesystemScope.write.length === 0)
437
+ return false;
438
+ }
439
+ if (parent.networkScope) {
440
+ if (WEB_TOOLS.has(tool) && parent.networkScope.length === 0)
441
+ return false;
442
+ if (tool === 'web_fetch' && !parent.networkScope.includes('*'))
443
+ return false;
444
+ }
445
+ return true;
446
+ });
447
+ return {
448
+ tools,
449
+ ...(parent.filesystemScope
450
+ ? { filesystem: { read: [...parent.filesystemScope.read], write: [...parent.filesystemScope.write] } }
451
+ : {}),
452
+ ...(parent.networkScope ? { network: { hosts: [...parent.networkScope] } } : {}),
453
+ agents: {
454
+ create: parent.permissions.canUseNestedAgents,
455
+ ...(parent.limits?.maxDepth !== undefined ? { maxDepth: parent.limits.maxDepth } : {}),
456
+ },
457
+ };
458
+ }
459
+ function validateResolvedScopeTools(definition) {
460
+ const errors = [];
461
+ if (definition.filesystemScope) {
462
+ if (definition.filesystemScope.read.length === 0 && definition.tools.some((tool) => READ_TOOLS.has(tool))) {
463
+ errors.push({
464
+ code: 'permission_denied',
465
+ field: 'permissions.filesystem.read',
466
+ message: 'Filesystem read scope is explicitly empty.',
467
+ });
468
+ }
469
+ if (definition.filesystemScope.write.length === 0 && definition.tools.some((tool) => WRITE_TOOLS.has(tool))) {
470
+ errors.push({
471
+ code: 'permission_denied',
472
+ field: 'permissions.filesystem.write',
473
+ message: 'Filesystem write scope is explicitly empty.',
474
+ });
475
+ }
476
+ if (definition.tools.includes('shell')) {
477
+ errors.push({
478
+ code: 'unsupported_permission_scope',
479
+ field: 'permissions.filesystem',
480
+ message: 'Shell cannot be proven safe with a finite filesystem scope.',
481
+ });
482
+ }
483
+ }
484
+ if (definition.networkScope) {
485
+ if (definition.networkScope.length === 0 && definition.tools.some((tool) => WEB_TOOLS.has(tool))) {
486
+ errors.push({
487
+ code: 'permission_denied',
488
+ field: 'permissions.network.hosts',
489
+ message: 'Network host scope is explicitly empty.',
490
+ });
491
+ }
492
+ if (definition.tools.some((tool) => WEB_TOOLS.has(tool)) && !definition.networkScope.includes('*')) {
493
+ errors.push({
494
+ code: 'unsupported_permission_scope',
495
+ field: 'permissions.network.hosts',
496
+ message: 'Web tools cannot be proven usable with a finite network scope.',
497
+ });
498
+ }
499
+ }
500
+ return errors;
501
+ }
502
+ function resolveWorktree(requested, allowed, paths) {
503
+ if (requested === undefined)
504
+ return { errors: [] };
505
+ if (typeof requested !== 'string' ||
506
+ requested.length === 0 ||
507
+ requested.includes('\0') ||
508
+ path.isAbsolute(requested) ||
509
+ requested.split(/[\\/]/).includes('..')) {
510
+ return {
511
+ errors: [
512
+ {
513
+ code: 'unsupported_worktree_scope',
514
+ field: 'worktree',
515
+ message: 'Worktree requests must be a non-empty opaque relative name.',
516
+ },
517
+ ],
518
+ };
519
+ }
520
+ if (!allowed?.includes(requested)) {
521
+ return {
522
+ errors: [
523
+ {
524
+ code: 'unsupported_worktree_scope',
525
+ field: 'worktree',
526
+ message: `Worktree "${requested}" is not in the parent authority scope.`,
527
+ },
528
+ ],
529
+ };
530
+ }
531
+ const authorizedPath = paths ? paths[requested] : undefined;
532
+ return {
533
+ worktree: requested,
534
+ ...(authorizedPath ? { authorizedPath } : {}),
535
+ errors: [],
536
+ };
537
+ }
538
+ //# sourceMappingURL=permission-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-boundary.js","sourceRoot":"","sources":["../../../source/services/agent-runtime/permission-boundary.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface ResolvedAgentDefinition {
20
20
  readonly permissions: ResolvedAgentPermissions;
21
21
  /** Resolved limits clamped to parent maxima. */
22
22
  readonly limits: AgentLimits;
23
+ /** Per-model-response output token cap. */
24
+ readonly responseMaxTokens?: number;
23
25
  /** Resolved tool names available to the agent. */
24
26
  readonly tools: ReadonlyArray<string>;
25
27
  /** Resolved skill instruction bodies. */
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-agent.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/resolved-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC;IACnD,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"resolved-agent.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/resolved-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC;IACnD,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,2FAA2F;IAC3F,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ"}
@@ -72,7 +72,7 @@ export interface ResolvedAgentPermissions {
72
72
  export interface AgentLimits {
73
73
  /** Maximum model turns before forced termination. */
74
74
  maxTurns?: number;
75
- /** Maximum total tokens across all model calls (provider cap + post-usage tree enforcement). */
75
+ /** Maximum total tokens across model calls (provider response cap plus post-usage tree enforcement). */
76
76
  maxTokens?: number;
77
77
  /** Maximum cost in USD (typed preflight rejection; use `agent.runBudget` instead). */
78
78
  maxCost?: number;
@@ -164,6 +164,14 @@ export type RunErrorCode = 'unsupported_structured_output' | 'unsupported_attach
164
164
  * Future: may expand to structured references (name + config overrides).
165
165
  */
166
166
  export type ToolReference = string;
167
+ /** Tools provisionable by a generic AgentSpec invocation. */
168
+ export type AgentSpecToolName = 'read_file' | 'grep' | 'glob' | 'read_code_outline' | 'code_context_search' | 'web_search' | 'web_fetch' | 'shell' | 'apply_patch' | 'search_replace' | 'create_file';
169
+ /** Permissions accepted by the generic delegated-agent tool surface. */
170
+ export interface AgentSpecPermissions extends Omit<AgentPermissions, 'tools'> {
171
+ tools?: ReadonlyArray<AgentSpecToolName>;
172
+ }
173
+ /** Model policies exposed by the generic tool schema. */
174
+ export type AgentSpecModelPolicy = ModelTier | ExactModelPolicy;
167
175
  /** Configuration used to create an agent handle. */
168
176
  export interface AgentConfig {
169
177
  /** Required agent instructions. */
@@ -184,6 +192,19 @@ export interface AgentConfig {
184
192
  permissions?: AgentPermissions;
185
193
  /** Requested limits. Effective limits are clamped by parent. */
186
194
  limits?: AgentLimits;
195
+ /** Per-model-response output token cap; independent of aggregate execution budgets. */
196
+ responseMaxTokens?: number;
197
+ }
198
+ /** A task-shaped invocation of the general agent runtime. */
199
+ export interface AgentSpec {
200
+ goal: string;
201
+ context?: Record<string, unknown>;
202
+ tools?: ReadonlyArray<AgentSpecToolName>;
203
+ permissions?: AgentSpecPermissions;
204
+ constraints?: string[];
205
+ doneWhen?: string;
206
+ model?: AgentSpecModelPolicy;
207
+ budget?: Pick<AgentLimits, 'maxTurns' | 'maxTokens'>;
187
208
  }
188
209
  /** A configured, resolved agent ready to execute one-shot runs. */
189
210
  export interface AgentHandle {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../source/services/agent-runtime/types.ts"],"names":[],"mappings":"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"}