@cjhyy/code-shell-core 0.7.0 → 0.8.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 (621) hide show
  1. package/README.md +36 -23
  2. package/dist/agent/agent-definition-registry.d.ts +2 -2
  3. package/dist/agent/agent-definition-registry.js +47 -10
  4. package/dist/agent/agent-definition.d.ts +5 -0
  5. package/dist/agent/agent-definition.js +14 -0
  6. package/dist/automation/index.d.ts +7 -4
  7. package/dist/automation/index.js +4 -2
  8. package/dist/automation/runner.js +3 -1
  9. package/dist/automation/scheduler.d.ts +57 -1
  10. package/dist/automation/scheduler.js +123 -23
  11. package/dist/automation/store.d.ts +6 -2
  12. package/dist/automation/store.js +7 -3
  13. package/dist/capabilities/index.d.ts +109 -0
  14. package/dist/capabilities/index.js +80 -0
  15. package/dist/capability-control/disabled-lists.d.ts +2 -1
  16. package/dist/capability-control/disabled-lists.js +3 -5
  17. package/dist/capability-control/overlay.d.ts +14 -1
  18. package/dist/capability-control/overlay.js +40 -0
  19. package/dist/capability-control/service.js +6 -4
  20. package/dist/cli/agent-server-stdio.d.ts +1 -1
  21. package/dist/cli/agent-server-stdio.js +66 -6
  22. package/dist/cli/agent-server-tcp.js +20 -5
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +20 -4
  26. package/dist/context/manager.js +42 -7
  27. package/dist/context/token-counter.js +5 -3
  28. package/dist/context/tool-result-storage.d.ts +6 -0
  29. package/dist/context/tool-result-storage.js +25 -4
  30. package/dist/credentials/access.d.ts +13 -2
  31. package/dist/credentials/access.js +99 -4
  32. package/dist/credentials/index.d.ts +3 -2
  33. package/dist/credentials/index.js +2 -1
  34. package/dist/credentials/oauth.d.ts +9 -1
  35. package/dist/credentials/oauth.js +80 -1
  36. package/dist/credentials/store.d.ts +16 -2
  37. package/dist/credentials/store.js +33 -11
  38. package/dist/credentials/types.d.ts +62 -1
  39. package/dist/credentials/types.js +16 -1
  40. package/dist/credentials/use-credential-tool.js +15 -1
  41. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  42. package/dist/engine/auxiliary-pipeline.js +181 -0
  43. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  44. package/dist/{settings → engine}/disk-defaults.js +5 -2
  45. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  46. package/dist/engine/dynamic-tool-defs.js +4 -0
  47. package/dist/engine/engine.d.ts +272 -184
  48. package/dist/engine/engine.js +1869 -1864
  49. package/dist/engine/file-history-hook.d.ts +11 -0
  50. package/dist/engine/file-history-hook.js +31 -0
  51. package/dist/engine/goal-judge-context.d.ts +9 -0
  52. package/dist/engine/goal-judge-context.js +234 -0
  53. package/dist/engine/injected-context-cache.d.ts +6 -0
  54. package/dist/engine/injected-context-cache.js +13 -0
  55. package/dist/engine/input-attachments.d.ts +1 -1
  56. package/dist/engine/model-facade.d.ts +3 -3
  57. package/dist/engine/model-facade.js +15 -14
  58. package/dist/engine/permission-controller.d.ts +55 -0
  59. package/dist/engine/permission-controller.js +148 -0
  60. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  61. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  62. package/dist/engine/run-accounting.d.ts +41 -0
  63. package/dist/engine/run-accounting.js +126 -0
  64. package/dist/engine/run-context.d.ts +44 -0
  65. package/dist/engine/run-context.js +88 -0
  66. package/dist/engine/run-environment.d.ts +30 -0
  67. package/dist/engine/run-environment.js +77 -0
  68. package/dist/engine/run-finalize.d.ts +58 -0
  69. package/dist/engine/run-finalize.js +245 -0
  70. package/dist/engine/run-goal.d.ts +58 -0
  71. package/dist/engine/run-goal.js +188 -0
  72. package/dist/engine/run-image-input.d.ts +1 -1
  73. package/dist/engine/run-image-input.js +5 -3
  74. package/dist/engine/run-session-open.d.ts +41 -0
  75. package/dist/engine/run-session-open.js +186 -0
  76. package/dist/engine/run-setup.d.ts +42 -0
  77. package/dist/engine/run-setup.js +58 -0
  78. package/dist/engine/run-tooling.d.ts +125 -0
  79. package/dist/engine/run-tooling.js +283 -0
  80. package/dist/engine/run-types.d.ts +139 -0
  81. package/dist/engine/run-types.js +12 -0
  82. package/dist/engine/run-workspace.d.ts +50 -0
  83. package/dist/engine/run-workspace.js +114 -0
  84. package/dist/engine/session-title.d.ts +2 -1
  85. package/dist/engine/session-title.js +4 -1
  86. package/dist/engine/steer-queue.d.ts +1 -1
  87. package/dist/engine/subagent-spawner.d.ts +32 -0
  88. package/dist/engine/subagent-spawner.js +287 -0
  89. package/dist/engine/tool-summary.d.ts +2 -2
  90. package/dist/engine/tool-summary.js +2 -2
  91. package/dist/engine/turn-loop.d.ts +67 -10
  92. package/dist/engine/turn-loop.js +538 -97
  93. package/dist/engine/types.d.ts +35 -4
  94. package/dist/engine/types.js +1 -1
  95. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
  96. package/dist/goal/lifecycle.js +482 -0
  97. package/dist/hooks/events.d.ts +26 -9
  98. package/dist/hooks/events.js +0 -3
  99. package/dist/hooks/goal-stop-hook.d.ts +28 -29
  100. package/dist/hooks/goal-stop-hook.js +344 -144
  101. package/dist/hooks/registry.js +4 -1
  102. package/dist/hooks/shell-runner.d.ts +12 -1
  103. package/dist/hooks/shell-runner.js +160 -9
  104. package/dist/index.d.ts +51 -110
  105. package/dist/index.extension.d.ts +51 -0
  106. package/dist/index.extension.js +39 -0
  107. package/dist/index.internal.d.ts +86 -0
  108. package/dist/index.internal.js +92 -0
  109. package/dist/index.js +37 -125
  110. package/dist/links/cli.d.ts +48 -0
  111. package/dist/links/cli.js +617 -0
  112. package/dist/links/http.d.ts +40 -0
  113. package/dist/links/http.js +166 -0
  114. package/dist/links/index.d.ts +4 -0
  115. package/dist/links/index.js +3 -0
  116. package/dist/links/link-action-tool.d.ts +5 -0
  117. package/dist/links/link-action-tool.js +241 -0
  118. package/dist/links/providers.d.ts +8 -0
  119. package/dist/links/providers.js +665 -0
  120. package/dist/links/types.d.ts +44 -0
  121. package/dist/llm/client-base.d.ts +7 -0
  122. package/dist/llm/client-base.js +72 -10
  123. package/dist/llm/model-pool.d.ts +1 -1
  124. package/dist/llm/model-pool.js +1 -1
  125. package/dist/llm/providers/anthropic.d.ts +1 -0
  126. package/dist/llm/providers/anthropic.js +9 -0
  127. package/dist/llm/providers/openai.d.ts +1 -0
  128. package/dist/llm/providers/openai.js +17 -0
  129. package/dist/llm/types.d.ts +12 -5
  130. package/dist/model-catalog/index.js +15 -2
  131. package/dist/model-catalog/resolve.d.ts +13 -1
  132. package/dist/model-catalog/resolve.js +37 -2
  133. package/dist/model-catalog/types.d.ts +74 -48
  134. package/dist/model-catalog/types.js +16 -5
  135. package/dist/model-catalog/upsert.d.ts +3 -1
  136. package/dist/model-catalog/upsert.js +9 -0
  137. package/dist/onboarding.d.ts +0 -1
  138. package/dist/onboarding.js +1 -22
  139. package/dist/panel-apps/bindings.d.ts +24 -0
  140. package/dist/panel-apps/bindings.js +69 -0
  141. package/dist/panel-apps/github-archive.d.ts +21 -0
  142. package/dist/panel-apps/github-archive.js +98 -0
  143. package/dist/panel-apps/index.d.ts +4 -0
  144. package/dist/panel-apps/index.js +4 -0
  145. package/dist/panel-apps/installer.d.ts +68 -0
  146. package/dist/panel-apps/installer.js +622 -0
  147. package/dist/panel-apps/manifest.d.ts +364 -0
  148. package/dist/panel-apps/manifest.js +189 -0
  149. package/dist/panel-apps/paths.d.ts +13 -0
  150. package/dist/panel-apps/paths.js +38 -0
  151. package/dist/panel-apps/registry.d.ts +51 -0
  152. package/dist/panel-apps/registry.js +99 -0
  153. package/dist/panel-apps/runtime.d.ts +80 -0
  154. package/dist/panel-apps/runtime.js +154 -0
  155. package/dist/plugins/gitOps.js +8 -1
  156. package/dist/plugins/installedPlugins.d.ts +2 -1
  157. package/dist/plugins/installedPlugins.js +146 -8
  158. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  159. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  160. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  161. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  162. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  163. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  164. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  165. package/dist/plugins/installer/install.d.ts +7 -1
  166. package/dist/plugins/installer/install.js +21 -87
  167. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  168. package/dist/plugins/installer/installFromArchive.js +44 -27
  169. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  170. package/dist/plugins/installer/installFromNpm.js +273 -0
  171. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  172. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  173. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  174. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  175. package/dist/plugins/installer/normalizeManifest.js +306 -0
  176. package/dist/plugins/installer/npmTar.d.ts +13 -0
  177. package/dist/plugins/installer/npmTar.js +321 -0
  178. package/dist/plugins/installer/parseSource.d.ts +11 -0
  179. package/dist/plugins/installer/parseSource.js +48 -0
  180. package/dist/plugins/installer/preview.d.ts +101 -0
  181. package/dist/plugins/installer/preview.js +336 -0
  182. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  183. package/dist/plugins/installer/projectPluginSource.js +140 -0
  184. package/dist/plugins/installer/types.d.ts +775 -0
  185. package/dist/plugins/installer/types.js +100 -0
  186. package/dist/plugins/installer/unzip.d.ts +11 -0
  187. package/dist/plugins/installer/unzip.js +123 -9
  188. package/dist/plugins/installer/update.d.ts +2 -2
  189. package/dist/plugins/installer/update.js +43 -4
  190. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  191. package/dist/plugins/loadPluginHooks.js +97 -86
  192. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  193. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  194. package/dist/plugins/pluginCatalog.d.ts +45 -0
  195. package/dist/plugins/pluginCatalog.js +87 -0
  196. package/dist/plugins/pluginCommandHook.d.ts +10 -4
  197. package/dist/plugins/pluginCommandHook.js +133 -18
  198. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  199. package/dist/plugins/pluginCommandsLoader.js +181 -7
  200. package/dist/plugins/pluginContent.d.ts +10 -1
  201. package/dist/plugins/pluginContent.js +87 -30
  202. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  203. package/dist/plugins/pluginHookApproval.js +160 -0
  204. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  205. package/dist/plugins/pluginHookIntegrity.js +361 -0
  206. package/dist/plugins/pluginInstaller.js +71 -12
  207. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  208. package/dist/plugins/pluginMcpApproval.js +110 -0
  209. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  210. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  211. package/dist/plugins/types.d.ts +30 -0
  212. package/dist/plugins/varRewrite.d.ts +9 -5
  213. package/dist/plugins/varRewrite.js +26 -17
  214. package/dist/preset/index.d.ts +11 -8
  215. package/dist/preset/index.js +62 -203
  216. package/dist/product/define.js +9 -3
  217. package/dist/product/types.d.ts +0 -2
  218. package/dist/profile/activation.d.ts +36 -0
  219. package/dist/profile/activation.js +57 -0
  220. package/dist/profile/catalog-store.d.ts +77 -0
  221. package/dist/profile/catalog-store.js +346 -0
  222. package/dist/profile/catalog.d.ts +54 -0
  223. package/dist/profile/catalog.js +152 -0
  224. package/dist/profile/index.d.ts +7 -0
  225. package/dist/profile/index.js +7 -0
  226. package/dist/profile/requirements.d.ts +76 -0
  227. package/dist/profile/requirements.js +117 -0
  228. package/dist/profile/resolve.d.ts +11 -0
  229. package/dist/profile/resolve.js +41 -0
  230. package/dist/profile/store.d.ts +17 -0
  231. package/dist/profile/store.js +167 -0
  232. package/dist/profile/types.d.ts +321 -0
  233. package/dist/profile/types.js +104 -0
  234. package/dist/prompt/composer.d.ts +46 -7
  235. package/dist/prompt/composer.js +78 -48
  236. package/dist/prompt/instruction-scanner.d.ts +6 -5
  237. package/dist/prompt/instruction-scanner.js +8 -23
  238. package/dist/prompt/section-loader.d.ts +2 -2
  239. package/dist/prompt/section-loader.js +7 -4
  240. package/dist/prompt/sections/browser.md +10 -9
  241. package/dist/prompt/sections/harness-base.md +9 -0
  242. package/dist/protocol/chat-session-manager.d.ts +77 -3
  243. package/dist/protocol/chat-session-manager.js +194 -18
  244. package/dist/protocol/chat-session.d.ts +72 -9
  245. package/dist/protocol/chat-session.js +151 -16
  246. package/dist/protocol/client.d.ts +37 -4
  247. package/dist/protocol/client.js +118 -6
  248. package/dist/protocol/index.d.ts +2 -2
  249. package/dist/protocol/index.js +2 -2
  250. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  251. package/dist/protocol/mobile-remote-types.js +1 -0
  252. package/dist/protocol/server.d.ts +152 -14
  253. package/dist/protocol/server.js +1574 -229
  254. package/dist/protocol/types.d.ts +182 -32
  255. package/dist/protocol/types.js +18 -0
  256. package/dist/run/ArtifactTracker.d.ts +6 -1
  257. package/dist/run/ArtifactTracker.js +29 -21
  258. package/dist/run/EngineRunner.d.ts +2 -0
  259. package/dist/run/EngineRunner.js +1 -0
  260. package/dist/run/RunManager.d.ts +26 -0
  261. package/dist/run/RunManager.js +82 -11
  262. package/dist/run/factory.d.ts +3 -0
  263. package/dist/run/factory.js +2 -0
  264. package/dist/runtime/safe-spawn.d.ts +6 -0
  265. package/dist/runtime/safe-spawn.js +8 -13
  266. package/dist/services/auto-dream.d.ts +13 -1
  267. package/dist/services/auto-dream.js +56 -8
  268. package/dist/services/dream-consolidation.d.ts +3 -0
  269. package/dist/services/dream-consolidation.js +14 -2
  270. package/dist/services/index.d.ts +1 -1
  271. package/dist/services/index.js +1 -1
  272. package/dist/services/memory-orchestrator.js +6 -2
  273. package/dist/services/oauth.d.ts +34 -10
  274. package/dist/services/oauth.js +236 -98
  275. package/dist/services/session-memory.d.ts +4 -4
  276. package/dist/services/session-memory.js +13 -10
  277. package/dist/session/memory.d.ts +26 -7
  278. package/dist/session/memory.js +79 -21
  279. package/dist/session/session-manager.d.ts +208 -25
  280. package/dist/session/session-manager.js +1232 -116
  281. package/dist/session/session-message.d.ts +22 -0
  282. package/dist/session/session-message.js +1 -0
  283. package/dist/session/transcript.d.ts +76 -6
  284. package/dist/session/transcript.js +278 -7
  285. package/dist/settings/feature-flags.d.ts +40 -0
  286. package/dist/settings/feature-flags.js +40 -0
  287. package/dist/settings/manager.d.ts +39 -1
  288. package/dist/settings/manager.js +102 -41
  289. package/dist/settings/migrate-config.js +4 -2
  290. package/dist/settings/schema.d.ts +511 -177
  291. package/dist/settings/schema.js +98 -25
  292. package/dist/skills/scanner.d.ts +6 -2
  293. package/dist/skills/scanner.js +160 -9
  294. package/dist/sources/adapter.d.ts +14 -0
  295. package/dist/sources/adapter.js +7 -0
  296. package/dist/sources/adapters/local-files.d.ts +10 -0
  297. package/dist/sources/adapters/local-files.js +127 -0
  298. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  299. package/dist/sources/adapters/mcp-resource.js +41 -0
  300. package/dist/sources/adapters/mock.d.ts +3 -0
  301. package/dist/sources/adapters/mock.js +29 -0
  302. package/dist/sources/binding.d.ts +6 -0
  303. package/dist/sources/binding.js +24 -0
  304. package/dist/sources/catalog.d.ts +6 -0
  305. package/dist/sources/catalog.js +64 -0
  306. package/dist/sources/context-summary.d.ts +8 -0
  307. package/dist/sources/context-summary.js +13 -0
  308. package/dist/sources/credential-status.d.ts +2 -0
  309. package/dist/sources/credential-status.js +13 -0
  310. package/dist/sources/index.d.ts +10 -0
  311. package/dist/sources/index.js +10 -0
  312. package/dist/sources/resolve.d.ts +28 -0
  313. package/dist/sources/resolve.js +47 -0
  314. package/dist/sources/truncate-utf8.d.ts +7 -0
  315. package/dist/sources/truncate-utf8.js +18 -0
  316. package/dist/sources/types.d.ts +71 -0
  317. package/dist/sources/types.js +26 -0
  318. package/dist/testing/fetch-stub.d.ts +32 -0
  319. package/dist/testing/fetch-stub.js +24 -0
  320. package/dist/themes/image.d.ts +18 -0
  321. package/dist/themes/image.js +117 -0
  322. package/dist/themes/index.d.ts +4 -0
  323. package/dist/themes/index.js +4 -0
  324. package/dist/themes/installer.d.ts +50 -0
  325. package/dist/themes/installer.js +290 -0
  326. package/dist/themes/manifest.d.ts +102 -0
  327. package/dist/themes/manifest.js +86 -0
  328. package/dist/themes/paths.d.ts +14 -0
  329. package/dist/themes/paths.js +33 -0
  330. package/dist/tool-system/browser-bridge.d.ts +53 -11
  331. package/dist/tool-system/browser-bridge.js +8 -9
  332. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  333. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  334. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  335. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  336. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  337. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  338. package/dist/tool-system/builtin/agent-progress.js +83 -0
  339. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  340. package/dist/tool-system/builtin/agent-registry.js +178 -9
  341. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  342. package/dist/tool-system/builtin/agent.d.ts +2 -0
  343. package/dist/tool-system/builtin/agent.js +279 -34
  344. package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
  345. package/dist/tool-system/builtin/background-jobs.js +111 -15
  346. package/dist/tool-system/builtin/background-work.d.ts +12 -1
  347. package/dist/tool-system/builtin/background-work.js +12 -1
  348. package/dist/tool-system/builtin/bash.d.ts +3 -5
  349. package/dist/tool-system/builtin/bash.js +14 -6
  350. package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
  351. package/dist/tool-system/builtin/browser-tools.js +89 -23
  352. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  353. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  354. package/dist/tool-system/builtin/edit.d.ts +2 -1
  355. package/dist/tool-system/builtin/edit.js +14 -10
  356. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  357. package/dist/tool-system/builtin/file-cache.js +4 -0
  358. package/dist/tool-system/builtin/generate-image.js +17 -10
  359. package/dist/tool-system/builtin/generate-video.d.ts +4 -0
  360. package/dist/tool-system/builtin/generate-video.js +164 -28
  361. package/dist/tool-system/builtin/glob.d.ts +2 -1
  362. package/dist/tool-system/builtin/glob.js +28 -3
  363. package/dist/tool-system/builtin/grep.d.ts +1 -0
  364. package/dist/tool-system/builtin/grep.js +82 -17
  365. package/dist/tool-system/builtin/image-uploader.js +7 -1
  366. package/dist/tool-system/builtin/index.d.ts +57 -18
  367. package/dist/tool-system/builtin/index.js +280 -167
  368. package/dist/tool-system/builtin/memory.d.ts +6 -0
  369. package/dist/tool-system/builtin/memory.js +36 -15
  370. package/dist/tool-system/builtin/panel.d.ts +9 -0
  371. package/dist/tool-system/builtin/panel.js +314 -0
  372. package/dist/tool-system/builtin/read.js +5 -1
  373. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  374. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  375. package/dist/tool-system/builtin/sources.d.ts +8 -0
  376. package/dist/tool-system/builtin/sources.js +137 -0
  377. package/dist/tool-system/builtin/tool-search.js +7 -2
  378. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  379. package/dist/tool-system/builtin/video-providers.d.ts +12 -15
  380. package/dist/tool-system/builtin/video-providers.js +1 -0
  381. package/dist/tool-system/builtin/view-image.d.ts +2 -2
  382. package/dist/tool-system/builtin/web-fetch.js +60 -15
  383. package/dist/tool-system/builtin/web-search.js +1 -3
  384. package/dist/tool-system/builtin/write.d.ts +2 -1
  385. package/dist/tool-system/builtin/write.js +14 -4
  386. package/dist/tool-system/capability-module.d.ts +93 -0
  387. package/dist/tool-system/capability-module.js +53 -0
  388. package/dist/tool-system/context.d.ts +94 -24
  389. package/dist/tool-system/executor.js +99 -58
  390. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  391. package/dist/tool-system/external-tool-exposure.js +304 -0
  392. package/dist/tool-system/mcp-manager.d.ts +17 -1
  393. package/dist/tool-system/mcp-manager.js +72 -7
  394. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  395. package/dist/tool-system/mcp-tool-policy.js +34 -0
  396. package/dist/tool-system/panel-bridge.d.ts +53 -0
  397. package/dist/tool-system/panel-bridge.js +1 -0
  398. package/dist/tool-system/path-policy.d.ts +19 -0
  399. package/dist/tool-system/path-policy.js +62 -1
  400. package/dist/tool-system/permission.d.ts +69 -3
  401. package/dist/tool-system/permission.js +429 -30
  402. package/dist/tool-system/registry.d.ts +15 -3
  403. package/dist/tool-system/registry.js +82 -40
  404. package/dist/tool-system/sandbox/index.js +3 -8
  405. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  406. package/dist/tool-system/session-tool-host.d.ts +139 -0
  407. package/dist/tool-system/session-tool-host.js +167 -0
  408. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  409. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  410. package/dist/tool-system/validation.d.ts +14 -7
  411. package/dist/tool-system/validation.js +701 -7
  412. package/dist/types.d.ts +201 -20
  413. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  414. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  415. package/dist/utils/file-mutex.d.ts +65 -0
  416. package/dist/utils/file-mutex.js +145 -0
  417. package/dist/utils/json.d.ts +2 -4
  418. package/dist/utils/json.js +2 -4
  419. package/dist/utils/lockfile.d.ts +30 -1
  420. package/dist/utils/lockfile.js +2 -2
  421. package/dist/utils/secret-scrubber.d.ts +8 -0
  422. package/dist/utils/secret-scrubber.js +227 -0
  423. package/dist/utils/toolDisplay.js +1 -1
  424. package/package.json +20 -5
  425. package/THIRD_PARTY_NOTICES.md +0 -206
  426. package/dist/arena/arena.d.ts +0 -43
  427. package/dist/arena/arena.js +0 -333
  428. package/dist/arena/context/context-tools.d.ts +0 -16
  429. package/dist/arena/context/context-tools.js +0 -272
  430. package/dist/arena/context/within-root.d.ts +0 -7
  431. package/dist/arena/context/within-root.js +0 -15
  432. package/dist/arena/detect-mode.d.ts +0 -20
  433. package/dist/arena/detect-mode.js +0 -78
  434. package/dist/arena/digest-builder.d.ts +0 -25
  435. package/dist/arena/digest-builder.js +0 -120
  436. package/dist/arena/index.d.ts +0 -29
  437. package/dist/arena/index.js +0 -29
  438. package/dist/arena/iterate/convergence.d.ts +0 -25
  439. package/dist/arena/iterate/convergence.js +0 -103
  440. package/dist/arena/iterate/formats/index.d.ts +0 -22
  441. package/dist/arena/iterate/formats/index.js +0 -283
  442. package/dist/arena/iterate/index.d.ts +0 -11
  443. package/dist/arena/iterate/index.js +0 -9
  444. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  445. package/dist/arena/iterate/iterative-arena.js +0 -237
  446. package/dist/arena/iterate/parse.d.ts +0 -42
  447. package/dist/arena/iterate/parse.js +0 -123
  448. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  449. package/dist/arena/iterate/phases/argue.js +0 -165
  450. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  451. package/dist/arena/iterate/phases/revise.js +0 -62
  452. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  453. package/dist/arena/iterate/phases/tournament.js +0 -113
  454. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  455. package/dist/arena/iterate/tools/web-tools.js +0 -54
  456. package/dist/arena/iterate/types.d.ts +0 -152
  457. package/dist/arena/iterate/types.js +0 -8
  458. package/dist/arena/ledger.d.ts +0 -47
  459. package/dist/arena/ledger.js +0 -159
  460. package/dist/arena/lenses/architecture.d.ts +0 -5
  461. package/dist/arena/lenses/architecture.js +0 -22
  462. package/dist/arena/lenses/engineering.d.ts +0 -5
  463. package/dist/arena/lenses/engineering.js +0 -22
  464. package/dist/arena/lenses/general.d.ts +0 -5
  465. package/dist/arena/lenses/general.js +0 -20
  466. package/dist/arena/lenses/index.d.ts +0 -16
  467. package/dist/arena/lenses/index.js +0 -47
  468. package/dist/arena/lenses/product.d.ts +0 -5
  469. package/dist/arena/lenses/product.js +0 -22
  470. package/dist/arena/model-presets.d.ts +0 -23
  471. package/dist/arena/model-presets.js +0 -44
  472. package/dist/arena/phases/adjudication.d.ts +0 -24
  473. package/dist/arena/phases/adjudication.js +0 -141
  474. package/dist/arena/phases/build-consensus.d.ts +0 -29
  475. package/dist/arena/phases/build-consensus.js +0 -83
  476. package/dist/arena/phases/claim-registry.d.ts +0 -26
  477. package/dist/arena/phases/claim-registry.js +0 -60
  478. package/dist/arena/phases/cross-review.d.ts +0 -45
  479. package/dist/arena/phases/cross-review.js +0 -218
  480. package/dist/arena/phases/debate-rounds.d.ts +0 -27
  481. package/dist/arena/phases/debate-rounds.js +0 -159
  482. package/dist/arena/phases/participant-research.d.ts +0 -38
  483. package/dist/arena/phases/participant-research.js +0 -314
  484. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
  485. package/dist/arena/phases/planning-detail-expansion.js +0 -119
  486. package/dist/arena/planner.d.ts +0 -27
  487. package/dist/arena/planner.js +0 -311
  488. package/dist/arena/providers/docs.d.ts +0 -7
  489. package/dist/arena/providers/docs.js +0 -111
  490. package/dist/arena/providers/git.d.ts +0 -8
  491. package/dist/arena/providers/git.js +0 -174
  492. package/dist/arena/providers/index.d.ts +0 -32
  493. package/dist/arena/providers/index.js +0 -132
  494. package/dist/arena/providers/none.d.ts +0 -7
  495. package/dist/arena/providers/none.js +0 -11
  496. package/dist/arena/providers/repo.d.ts +0 -7
  497. package/dist/arena/providers/repo.js +0 -258
  498. package/dist/arena/render/session.d.ts +0 -17
  499. package/dist/arena/render/session.js +0 -190
  500. package/dist/arena/render/terminal.d.ts +0 -34
  501. package/dist/arena/render/terminal.js +0 -286
  502. package/dist/arena/strategies/discussion.d.ts +0 -25
  503. package/dist/arena/strategies/discussion.js +0 -143
  504. package/dist/arena/strategies/index.d.ts +0 -15
  505. package/dist/arena/strategies/index.js +0 -28
  506. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  507. package/dist/arena/strategies/language-wrapper.js +0 -102
  508. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  509. package/dist/arena/strategies/lens-wrapper.js +0 -236
  510. package/dist/arena/strategies/planning.d.ts +0 -30
  511. package/dist/arena/strategies/planning.js +0 -225
  512. package/dist/arena/strategies/review.d.ts +0 -26
  513. package/dist/arena/strategies/review.js +0 -168
  514. package/dist/arena/strategies/utils.d.ts +0 -36
  515. package/dist/arena/strategies/utils.js +0 -603
  516. package/dist/arena/tools/selector.d.ts +0 -17
  517. package/dist/arena/tools/selector.js +0 -61
  518. package/dist/arena/transitions.d.ts +0 -53
  519. package/dist/arena/transitions.js +0 -97
  520. package/dist/arena/types.d.ts +0 -514
  521. package/dist/arena/types.js +0 -27
  522. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  523. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  524. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  525. package/dist/cc-orchestrator/cc-capability.js +0 -53
  526. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  527. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  528. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  529. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  530. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  531. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  532. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  533. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  534. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  535. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  536. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  537. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  538. package/dist/cc-orchestrator/index.d.ts +0 -8
  539. package/dist/cc-orchestrator/index.js +0 -8
  540. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  541. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  542. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  543. package/dist/cc-orchestrator/session-discovery.js +0 -125
  544. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  545. package/dist/cc-orchestrator/session-history.js +0 -150
  546. package/dist/cron/cron-runtime.d.ts +0 -2
  547. package/dist/cron/cron-runtime.js +0 -2
  548. package/dist/cron/cron-store.d.ts +0 -2
  549. package/dist/cron/cron-store.js +0 -2
  550. package/dist/cron/scheduler.d.ts +0 -7
  551. package/dist/cron/scheduler.js +0 -7
  552. package/dist/engine/goal.js +0 -206
  553. package/dist/external-agents/config.d.ts +0 -2
  554. package/dist/external-agents/config.js +0 -15
  555. package/dist/external-agents/types.d.ts +0 -31
  556. package/dist/git/parse-log.d.ts +0 -13
  557. package/dist/git/parse-log.js +0 -21
  558. package/dist/git/utils.d.ts +0 -49
  559. package/dist/git/utils.js +0 -161
  560. package/dist/git/worktree/crud.d.ts +0 -69
  561. package/dist/git/worktree/crud.js +0 -206
  562. package/dist/git/worktree/diff.d.ts +0 -14
  563. package/dist/git/worktree/diff.js +0 -82
  564. package/dist/git/worktree/git-exec.d.ts +0 -7
  565. package/dist/git/worktree/git-exec.js +0 -51
  566. package/dist/git/worktree/index.d.ts +0 -5
  567. package/dist/git/worktree/index.js +0 -5
  568. package/dist/git/worktree/query.d.ts +0 -42
  569. package/dist/git/worktree/query.js +0 -121
  570. package/dist/git/worktree/slug.d.ts +0 -11
  571. package/dist/git/worktree/slug.js +0 -58
  572. package/dist/git/worktree.d.ts +0 -1
  573. package/dist/git/worktree.js +0 -5
  574. package/dist/lsp/client.d.ts +0 -41
  575. package/dist/lsp/client.js +0 -186
  576. package/dist/lsp/manager.d.ts +0 -40
  577. package/dist/lsp/manager.js +0 -155
  578. package/dist/lsp/root-path.d.ts +0 -9
  579. package/dist/lsp/root-path.js +0 -12
  580. package/dist/lsp/servers.d.ts +0 -16
  581. package/dist/lsp/servers.js +0 -60
  582. package/dist/prompt/sections/coding.md +0 -35
  583. package/dist/quota/credentials.d.ts +0 -3
  584. package/dist/quota/credentials.js +0 -80
  585. package/dist/quota/index.d.ts +0 -36
  586. package/dist/quota/index.js +0 -155
  587. package/dist/quota/types.d.ts +0 -48
  588. package/dist/quota/types.js +0 -13
  589. package/dist/review/review-prompt.d.ts +0 -28
  590. package/dist/review/review-prompt.js +0 -81
  591. package/dist/state.d.ts +0 -160
  592. package/dist/state.js +0 -267
  593. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  594. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  595. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  596. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  597. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  598. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  599. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  600. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  601. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  602. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  603. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  604. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  605. package/dist/tool-system/builtin/arena.d.ts +0 -31
  606. package/dist/tool-system/builtin/arena.js +0 -415
  607. package/dist/tool-system/builtin/brief.d.ts +0 -6
  608. package/dist/tool-system/builtin/brief.js +0 -41
  609. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  610. package/dist/tool-system/builtin/check-quota.js +0 -34
  611. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  612. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  613. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  614. package/dist/tool-system/builtin/lsp.js +0 -144
  615. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  616. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  617. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  618. package/dist/tool-system/builtin/worktree.js +0 -345
  619. /package/dist/{external-agents → links}/types.js +0 -0
  620. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  621. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Session open — create-or-resume phase of Engine.runExclusive: the three
3
+ * valid session shapes, clientMessageId claiming (duplicate submits return
4
+ * early), user-message append, cold-start summary and the turnSeq bump.
5
+ */
6
+ import { getCurrentSid, logger } from "../logging/logger.js";
7
+ import { patchOrphanedToolUses } from "./patch-orphaned-tools.js";
8
+ export function openRunSession(args) {
9
+ const { options } = args;
10
+ const claimedClientMessageIds = new Set();
11
+ let session;
12
+ let messages;
13
+ let freshImageMessage;
14
+ let resumedFromDisk = false;
15
+ const claimClientMessageId = (bundle, clientMessageId, source) => {
16
+ if (!clientMessageId)
17
+ return true;
18
+ if (claimedClientMessageIds.has(clientMessageId) ||
19
+ bundle.transcript.hasClientMessageId(clientMessageId)) {
20
+ logger.info("engine.client_message.duplicate_ignored", {
21
+ sessionId: bundle.state.sessionId,
22
+ clientMessageId,
23
+ source,
24
+ });
25
+ return false;
26
+ }
27
+ claimedClientMessageIds.add(clientMessageId);
28
+ return true;
29
+ };
30
+ if (options?.sessionId && args.sessionManager.exists(options.sessionId)) {
31
+ resumedFromDisk = true;
32
+ session = args.sessionManager.resume(options.sessionId);
33
+ const cachedCompacted = args.cachedCompactedMessages;
34
+ messages = cachedCompacted ? [...cachedCompacted] : session.transcript.toMessages();
35
+ // If the previous run was Ctrl+C'd or crashed between an assistant
36
+ // tool_use and the matching tool_result being persisted, the
37
+ // loaded sequence is invalid for OpenAI (which 400s on dangling
38
+ // tool_calls). Patch synthetic tool_results so the next API call
39
+ // doesn't fail before the turn even starts.
40
+ const patched = patchOrphanedToolUses(messages);
41
+ if (patched.gapsPatched > 0) {
42
+ logger.warn("engine.resume.patched_orphaned_tool_uses", {
43
+ sessionId: options.sessionId,
44
+ gaps: patched.gapsPatched,
45
+ toolResults: patched.toolResultsInjected,
46
+ });
47
+ }
48
+ // Restore cost state from previous session, if the caller injected a store
49
+ if (session.state.costState && args.costStore) {
50
+ args.costStore.restore(session.state.costState);
51
+ }
52
+ // Append new user message
53
+ const userMsg = { role: "user", content: args.userMessageContent };
54
+ if (!claimClientMessageId(session, options?.clientMessageId, "submit")) {
55
+ const replayed = options?.clientMessageId
56
+ ? session.transcript.findRunResultByClientMessageId(options.clientMessageId)
57
+ : undefined;
58
+ if (replayed) {
59
+ logger.info("engine.client_message.result_replayed", {
60
+ sessionId: session.state.sessionId,
61
+ clientMessageId: options?.clientMessageId,
62
+ });
63
+ return { ok: false, result: replayed };
64
+ }
65
+ const usage = session.state.tokenUsage ?? {
66
+ promptTokens: 0,
67
+ completionTokens: 0,
68
+ totalTokens: 0,
69
+ };
70
+ return {
71
+ ok: false,
72
+ result: {
73
+ text: "",
74
+ reason: "completed",
75
+ sessionId: session.state.sessionId,
76
+ turnCount: session.state.turnCount ?? 0,
77
+ usage: {
78
+ promptTokens: usage.promptTokens ?? 0,
79
+ completionTokens: usage.completionTokens ?? 0,
80
+ totalTokens: usage.totalTokens ?? 0,
81
+ },
82
+ },
83
+ };
84
+ }
85
+ if (args.parsedTask.hasImages)
86
+ freshImageMessage = userMsg;
87
+ messages.push(userMsg);
88
+ session.transcript.appendMessage("user", args.userMessageContent, {
89
+ injected: options?.injected === true,
90
+ clientMessageId: options?.clientMessageId,
91
+ displayText: options?.displayText?.trim() || undefined,
92
+ ...(options?.agentDirection
93
+ ? {
94
+ authority: "agent",
95
+ source: "agent-direction",
96
+ envelopeIds: options.agentDirection.envelopeIds,
97
+ correlationIds: options.agentDirection.correlationIds,
98
+ }
99
+ : {}),
100
+ });
101
+ if (options?.agentDirection) {
102
+ args.onAgentDirectionsDelivered?.(options.agentDirection.envelopeIds);
103
+ }
104
+ // Flush "active" status to disk immediately. resume() set it in memory
105
+ // (session-manager.ts), but without this write the on-disk state.json
106
+ // still shows the previous run's terminal reason — so any external
107
+ // observer (another CLI process, /sid, the session list) would think
108
+ // the session is still errored/aborted while we're actually running.
109
+ args.sessionManager.saveStateOrUpdateFields(session.state, {
110
+ status: session.state.status,
111
+ });
112
+ }
113
+ else {
114
+ // Cold start: shape (2) reuses the host-supplied sid; shape (3)
115
+ // lets sessionManager generate one with nanoid.
116
+ session = args.sessionManager.create(args.cwd, args.llmModel, args.llmProvider, options?.sessionId, args.isSubAgent ? getCurrentSid() : undefined, args.isSubAgent ? "subagent" : args.origin, args.sessionKind);
117
+ const userMsg = { role: "user", content: args.userMessageContent };
118
+ claimClientMessageId(session, options?.clientMessageId, "submit");
119
+ if (args.parsedTask.hasImages)
120
+ freshImageMessage = userMsg;
121
+ messages = [userMsg];
122
+ session.transcript.appendMessage("user", args.userMessageContent, {
123
+ injected: options?.injected === true,
124
+ clientMessageId: options?.clientMessageId,
125
+ displayText: options?.displayText?.trim() || undefined,
126
+ ...(options?.agentDirection
127
+ ? {
128
+ authority: "agent",
129
+ source: "agent-direction",
130
+ envelopeIds: options.agentDirection.envelopeIds,
131
+ correlationIds: options.agentDirection.correlationIds,
132
+ }
133
+ : {}),
134
+ });
135
+ if (options?.agentDirection) {
136
+ args.onAgentDirectionsDelivered?.(options.agentDirection.envelopeIds);
137
+ }
138
+ // Save first user message as session summary — text only. The summary
139
+ // shows up in the session list; "[image]" is more informative than a
140
+ // truncated `[object Object]` when the prompt was purely visual.
141
+ const summarySrc = options?.displayText?.trim() ||
142
+ (args.parsedTask.hasImages
143
+ ? args.parsedTask.text ||
144
+ `[image${args.parsedTask.images.length > 1 ? `s × ${args.parsedTask.images.length}` : ""}]`
145
+ : args.taskText);
146
+ session.state.summary = summarySrc.slice(0, 80).replace(/\n/g, " ");
147
+ args.sessionManager.saveStateOrUpdateFields(session.state, {
148
+ summary: session.state.summary,
149
+ });
150
+ }
151
+ // Bump the conversation-turn counter: this user message starts a new turn.
152
+ // One user message = one turn, regardless of how many turn-loop iterations
153
+ // or tool calls it spans. File-history snapshots taken below are tagged
154
+ // with this value so `/undo` reverts exactly this turn's file changes.
155
+ // (Both resume and cold-start paths converge here.)
156
+ if (args.sessionWorkspaceProfile &&
157
+ session.state.workspaceProfile !== args.sessionWorkspaceProfile) {
158
+ session.state.workspaceProfile = args.sessionWorkspaceProfile;
159
+ args.sessionManager.saveStateOrUpdateFields(session.state, {
160
+ workspaceProfile: args.sessionWorkspaceProfile,
161
+ });
162
+ }
163
+ // Same first-write-wins shape as the profile binding: the host resends the
164
+ // standing brief every turn (a planned Session has no state yet), so persist it
165
+ // once and let later turns read it from state.
166
+ if (args.sessionBrief && session.state.sessionBrief !== args.sessionBrief) {
167
+ session.state.sessionBrief = args.sessionBrief;
168
+ args.sessionManager.saveStateOrUpdateFields(session.state, {
169
+ sessionBrief: args.sessionBrief,
170
+ });
171
+ }
172
+ session.state.turnSeq = (session.state.turnSeq ?? 0) + 1;
173
+ return {
174
+ ok: true,
175
+ opened: {
176
+ session,
177
+ messages,
178
+ freshImageMessage,
179
+ resumedFromDisk,
180
+ claimClientMessageId,
181
+ releaseClientMessageId: (id) => {
182
+ claimedClientMessageIds.delete(id);
183
+ },
184
+ },
185
+ };
186
+ }
@@ -0,0 +1,42 @@
1
+ import type { ComposerOptions } from "../prompt/composer.js";
2
+ import { profileOverridesFromDefinition } from "../profile/activation.js";
3
+ import { resolveActiveWorkspaceProfile } from "../profile/resolve.js";
4
+ import type { WorkspaceProfile } from "../profile/types.js";
5
+ import type { SettingsManager } from "../settings/manager.js";
6
+ export interface RunProfileState {
7
+ workspaceProfile: ReturnType<typeof resolveActiveWorkspaceProfile>;
8
+ sessionProfileOverrides: ReturnType<typeof profileOverridesFromDefinition> | undefined;
9
+ profileMemoryDir: string | undefined;
10
+ }
11
+ /** Resolve the digital-human profile bound to this run (session pin wins). */
12
+ export declare function resolveRunProfileState(args: {
13
+ sessionWorkspaceProfile: string | undefined;
14
+ cwd: string;
15
+ settings: SettingsManager;
16
+ }): RunProfileState;
17
+ export interface RunPromptComposerConfigInput {
18
+ cwd: ComposerOptions["cwd"];
19
+ /** Standing brief persisted on the Session (see SessionState.sessionBrief). */
20
+ sessionBrief?: ComposerOptions["sessionBrief"];
21
+ model: ComposerOptions["model"];
22
+ preset: ComposerOptions["preset"];
23
+ customSystemPrompt: ComposerOptions["customSystemPrompt"];
24
+ appendSystemPrompt: ComposerOptions["appendSystemPrompt"];
25
+ responseLanguage: ComposerOptions["responseLanguage"];
26
+ userProfile: ComposerOptions["userProfile"];
27
+ workspaceProfile: WorkspaceProfile | undefined;
28
+ profileMemoryDir: ComposerOptions["profileMemoryDir"];
29
+ instructionCompatFileNames: NonNullable<NonNullable<ComposerOptions["instructionOptions"]>["compatFileNames"]>;
30
+ instructionBoundaryFinder: NonNullable<NonNullable<ComposerOptions["instructionOptions"]>["boundaryFinder"]>;
31
+ disabledSkills: ComposerOptions["disabledSkills"];
32
+ disabledPlugins: ComposerOptions["disabledPlugins"];
33
+ skillAllowlist: ComposerOptions["skillAllowlist"];
34
+ memoriesMaxAgeDays: ComposerOptions["memoriesMaxAgeDays"];
35
+ goalToolState: ComposerOptions["goalToolState"];
36
+ capabilityPromptSections: ComposerOptions["capabilityPromptSections"];
37
+ dynamicContextProviders: ComposerOptions["dynamicContextProviders"];
38
+ getSettingsManager: () => SettingsManager;
39
+ toolCatalog: ComposerOptions["toolCatalog"];
40
+ }
41
+ /** Build the prompt-composer options for a run without capturing the Engine facade. */
42
+ export declare function buildPromptComposerConfig(args: RunPromptComposerConfigInput): ComposerOptions;
@@ -0,0 +1,58 @@
1
+ import { profileOverridesFromDefinition } from "../profile/activation.js";
2
+ import { resolveActiveWorkspaceProfile } from "../profile/resolve.js";
3
+ import { workspaceProfileDir } from "../profile/store.js";
4
+ import { buildSourcesContextSummary } from "../sources/context-summary.js";
5
+ /** Resolve the digital-human profile bound to this run (session pin wins). */
6
+ export function resolveRunProfileState(args) {
7
+ const { sessionWorkspaceProfile, cwd, settings } = args;
8
+ const workspaceProfile = resolveActiveWorkspaceProfile({
9
+ ...(sessionWorkspaceProfile ? { sessionProfile: sessionWorkspaceProfile } : {}),
10
+ cwd,
11
+ settings,
12
+ });
13
+ if (sessionWorkspaceProfile && !workspaceProfile) {
14
+ throw new Error(`Workspace profile "${sessionWorkspaceProfile}" is unavailable`);
15
+ }
16
+ const sessionProfileOverrides = sessionWorkspaceProfile && workspaceProfile
17
+ ? profileOverridesFromDefinition(workspaceProfile)
18
+ : undefined;
19
+ const profileMemoryDir = workspaceProfile?.portableMemory
20
+ ? workspaceProfileDir(workspaceProfile.name)
21
+ : undefined;
22
+ return { workspaceProfile, sessionProfileOverrides, profileMemoryDir };
23
+ }
24
+ /** Build the prompt-composer options for a run without capturing the Engine facade. */
25
+ export function buildPromptComposerConfig(args) {
26
+ const { cwd, model, preset, customSystemPrompt, appendSystemPrompt, responseLanguage, userProfile, workspaceProfile, sessionBrief, profileMemoryDir, instructionCompatFileNames, instructionBoundaryFinder, disabledSkills, disabledPlugins, skillAllowlist, memoriesMaxAgeDays, goalToolState, capabilityPromptSections, dynamicContextProviders, getSettingsManager, toolCatalog, } = args;
27
+ return {
28
+ cwd,
29
+ model,
30
+ preset,
31
+ customSystemPrompt,
32
+ appendSystemPrompt,
33
+ responseLanguage,
34
+ userProfile,
35
+ // WorkspaceProfile(数字人):mainInstruction 从库活读(settings 只记名字)。
36
+ // 命名注意:engine 的局部变量 `profile` 已被 RunBehaviorProfile 占用。
37
+ profileMainInstruction: workspaceProfile?.mainInstruction,
38
+ // Only for the "declared but absent" notice; `requires` installs per project,
39
+ // so a profile summoned where the install never ran would otherwise instruct
40
+ // the model to call skills that do not exist here.
41
+ profileDeclaredSkills: workspaceProfile?.skills,
42
+ sessionBrief,
43
+ profileMemoryDir,
44
+ instructionOptions: {
45
+ compatFileNames: instructionCompatFileNames,
46
+ boundaryFinder: instructionBoundaryFinder,
47
+ },
48
+ disabledSkills,
49
+ disabledPlugins,
50
+ skillAllowlist,
51
+ memoriesMaxAgeDays,
52
+ goalToolState,
53
+ capabilityPromptSections,
54
+ dynamicContextProviders,
55
+ sourcesContextProvider: () => buildSourcesContextSummary({ cwd, settings: getSettingsManager() }),
56
+ toolCatalog,
57
+ };
58
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Run tooling — per-run tool surface assembly for Engine.runExclusive:
3
+ * ToolContext construction, the permission classifier + executor pipeline,
4
+ * MCP connection, and the per-turn tool-definition visibility pass.
5
+ * The sub-agent spawner and sandbox resolution stay in engine.ts (the
6
+ * `new Engine(` allowlist and RunEnvironmentResolver own them).
7
+ */
8
+ import type { MCPServerConfig, PermissionMode, TaskInfo, ToolDefinition } from "../types.js";
9
+ import type { SettingsScope } from "../settings/manager.js";
10
+ import type { ToolContext } from "../tool-system/context.js";
11
+ import type { BuiltinToolExposure, BuiltinToolGuard } from "../tool-system/builtin/index.js";
12
+ import { ToolExecutor } from "../tool-system/executor.js";
13
+ import { PermissionClassifier } from "../tool-system/permission.js";
14
+ import { MCPManager } from "../tool-system/mcp-manager.js";
15
+ import type { ToolRegistry } from "../tool-system/registry.js";
16
+ import type { HookRegistry } from "../hooks/registry.js";
17
+ import { isFeatureEnabled, type FeatureFlagName } from "../settings/feature-flags.js";
18
+ import type { CapabilityOverride } from "../settings/schema.js";
19
+ import type { PermissionController } from "./permission-controller.js";
20
+ import type { EngineRunOptions, RunBehaviorProfile } from "./run-types.js";
21
+ /** engine.ts L1485-1522 —— ToolContext 组装(spawner、agentDefinitions、base 由调用方传入)。 */
22
+ export declare function buildRunToolContext(args: {
23
+ base: ToolContext;
24
+ options: EngineRunOptions | undefined;
25
+ configApprovalRouter: ToolContext["approvalRouter"];
26
+ runPermissionMode: ToolContext["permissionMode"];
27
+ runPlanMode: boolean;
28
+ subAgentSpawner: ToolContext["subAgentSpawner"];
29
+ agentDefinitions: ToolContext["agentDefinitions"];
30
+ sandbox: ToolContext["sandbox"];
31
+ cwd: string;
32
+ shellEnv: ToolContext["shellEnv"];
33
+ profile: RunBehaviorProfile | undefined;
34
+ profileParams: Readonly<Record<string, unknown>>;
35
+ reportResult: (key: string, value: unknown) => void;
36
+ }): ToolContext;
37
+ /** engine.ts L1876-1933 —— 权限分类器 + 审批监听 + ToolExecutor + guards。 */
38
+ export declare function buildRunPermissionPipeline(args: {
39
+ permissionController: PermissionController;
40
+ mode: PermissionMode;
41
+ cwd: string;
42
+ approvalRouter: ToolContext["approvalRouter"];
43
+ sessionId: string;
44
+ toolRegistry: ToolRegistry;
45
+ hooks: HookRegistry;
46
+ toolCtx: ToolContext;
47
+ signal: AbortSignal | undefined;
48
+ readOnlySession: boolean;
49
+ headless: boolean;
50
+ getLatestTodos: () => TaskInfo[];
51
+ onApprovalPhase: (waiting: boolean, toolName: string | undefined) => void;
52
+ emitNotificationHook: (payload: Record<string, unknown>) => void;
53
+ }): {
54
+ permission: PermissionClassifier;
55
+ toolExecutor: ToolExecutor;
56
+ };
57
+ /** engine.ts L1986-2003 —— MCP 连接(Runtime 池优先,回退 per-Engine)。 */
58
+ export declare function connectRunMcp(args: {
59
+ mcpServers: Record<string, MCPServerConfig>;
60
+ mcpDisabled: boolean;
61
+ getManager: () => MCPManager | undefined;
62
+ setManager: (manager: MCPManager) => void;
63
+ runtimePool: MCPManager | undefined;
64
+ toolRegistry: ToolRegistry;
65
+ engineForConnect: Parameters<MCPManager["connectAll"]>[1];
66
+ emitNotificationHook: (payload: Record<string, unknown>) => void;
67
+ }): Promise<void>;
68
+ /**
69
+ * Inputs to {@link buildToolVisibility}. This is the whole set of run state that
70
+ * a tool-availability guard is allowed to branch on — naming it keeps the
71
+ * contract explicit for callers that assemble a tool surface WITHOUT an Engine
72
+ * run (e.g. a session-scoped host exposing tools to an external Agent Runtime).
73
+ */
74
+ export interface ToolVisibilityInputs {
75
+ cwd: string;
76
+ hasGoal: boolean;
77
+ sessionId?: string;
78
+ settingsScope?: SettingsScope;
79
+ /** Host identity a guard may require, e.g. Panel needs `"desktop"`. */
80
+ host?: string;
81
+ isSubAgent?: boolean;
82
+ behaviorProfile?: string;
83
+ sessionMessageTargets?: readonly import("../session/session-message.js").SessionMessageTarget[];
84
+ profileMeta?: Readonly<Record<string, unknown>>;
85
+ }
86
+ /**
87
+ * Build the availability-guard context for a tool surface.
88
+ *
89
+ * Extracted from {@link assembleRunToolDefs} so it is callable on its own. It
90
+ * matters that this has exactly one implementation: the executor SKIPS its
91
+ * visibility gate when `toolCtx.toolVisibility` is absent, so a caller that
92
+ * forgets to populate it doesn't just under-expose tools — it makes host-gated
93
+ * tools callable in contexts their guards were written to exclude.
94
+ *
95
+ * Optional keys are omitted rather than set to `undefined`: guards use
96
+ * `!== true` / `?? 0` style checks, and an empty `sessionMessageTargets` must not
97
+ * read as "the host authorized targets".
98
+ */
99
+ export declare function buildToolVisibility(inputs: ToolVisibilityInputs): import("../tool-system/context.js").ToolVisibilityContext;
100
+ /** engine.ts L2023-2145 —— builtin override / MCP 可见性 / feature flags / 动态 defs / plan-mode 过滤。
101
+ * 注意:本函数按原逻辑就地 mutate toolCtx(toolVisibility/disabledBuiltins/
102
+ * allowedMcpServers/mcpToolPolicies)。 */
103
+ export declare function assembleRunToolDefs(args: {
104
+ toolRegistry: ToolRegistry;
105
+ toolCtx: ToolContext;
106
+ guardCwd: string;
107
+ hasRunnableGoal: boolean;
108
+ settingsScope: SettingsScope;
109
+ builtinToolHost: string | undefined;
110
+ isSubAgent: boolean;
111
+ behaviorProfileId: string | undefined;
112
+ profileMeta: Record<string, unknown> | undefined;
113
+ builtinOverride: Record<string, CapabilityOverride> | undefined;
114
+ mcpServers: Record<string, MCPServerConfig>;
115
+ mcpDisabled: boolean;
116
+ featureFlags: Parameters<typeof isFeatureEnabled>[0];
117
+ toolGuards: ReadonlyMap<string, BuiltinToolGuard>;
118
+ toolRewriters: ReadonlyMap<string, NonNullable<BuiltinToolExposure["rewriteDefinition"]>>;
119
+ toolFeatureFlags: ReadonlyMap<string, FeatureFlagName>;
120
+ applyBuiltinOverrideVisibility: <T extends {
121
+ name: string;
122
+ }>(tools: T[], override: Record<string, CapabilityOverride> | undefined) => T[];
123
+ profileAllowedToolNames: ReadonlySet<string> | undefined;
124
+ runPlanMode: boolean;
125
+ }): ToolDefinition[];