@cjhyy/code-shell-core 0.7.1 → 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 (594) 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 +7 -3
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +17 -1
  26. package/dist/context/manager.js +36 -1
  27. package/dist/credentials/access.d.ts +3 -1
  28. package/dist/credentials/access.js +24 -3
  29. package/dist/credentials/index.d.ts +1 -1
  30. package/dist/credentials/index.js +1 -1
  31. package/dist/credentials/oauth.d.ts +4 -1
  32. package/dist/credentials/oauth.js +14 -0
  33. package/dist/credentials/store.d.ts +15 -1
  34. package/dist/credentials/store.js +17 -4
  35. package/dist/credentials/types.d.ts +24 -0
  36. package/dist/credentials/use-credential-tool.js +15 -1
  37. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  38. package/dist/engine/auxiliary-pipeline.js +181 -0
  39. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  40. package/dist/{settings → engine}/disk-defaults.js +5 -2
  41. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  42. package/dist/engine/dynamic-tool-defs.js +4 -0
  43. package/dist/engine/engine.d.ts +254 -195
  44. package/dist/engine/engine.js +1812 -2041
  45. package/dist/engine/file-history-hook.d.ts +11 -0
  46. package/dist/engine/file-history-hook.js +31 -0
  47. package/dist/engine/goal-judge-context.d.ts +9 -0
  48. package/dist/engine/goal-judge-context.js +234 -0
  49. package/dist/engine/injected-context-cache.d.ts +6 -0
  50. package/dist/engine/injected-context-cache.js +13 -0
  51. package/dist/engine/input-attachments.d.ts +1 -1
  52. package/dist/engine/model-facade.d.ts +3 -3
  53. package/dist/engine/model-facade.js +15 -14
  54. package/dist/engine/permission-controller.d.ts +55 -0
  55. package/dist/engine/permission-controller.js +148 -0
  56. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  57. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  58. package/dist/engine/run-accounting.d.ts +41 -0
  59. package/dist/engine/run-accounting.js +126 -0
  60. package/dist/engine/run-context.d.ts +44 -0
  61. package/dist/engine/run-context.js +88 -0
  62. package/dist/engine/run-environment.d.ts +30 -0
  63. package/dist/engine/run-environment.js +77 -0
  64. package/dist/engine/run-finalize.d.ts +58 -0
  65. package/dist/engine/run-finalize.js +245 -0
  66. package/dist/engine/run-goal.d.ts +58 -0
  67. package/dist/engine/run-goal.js +188 -0
  68. package/dist/engine/run-image-input.d.ts +1 -1
  69. package/dist/engine/run-image-input.js +5 -3
  70. package/dist/engine/run-session-open.d.ts +41 -0
  71. package/dist/engine/run-session-open.js +186 -0
  72. package/dist/engine/run-setup.d.ts +42 -0
  73. package/dist/engine/run-setup.js +58 -0
  74. package/dist/engine/run-tooling.d.ts +125 -0
  75. package/dist/engine/run-tooling.js +283 -0
  76. package/dist/engine/run-types.d.ts +139 -0
  77. package/dist/engine/run-types.js +12 -0
  78. package/dist/engine/run-workspace.d.ts +50 -0
  79. package/dist/engine/run-workspace.js +114 -0
  80. package/dist/engine/steer-queue.d.ts +1 -1
  81. package/dist/engine/subagent-spawner.d.ts +32 -0
  82. package/dist/engine/subagent-spawner.js +287 -0
  83. package/dist/engine/tool-summary.d.ts +2 -2
  84. package/dist/engine/tool-summary.js +2 -2
  85. package/dist/engine/turn-loop.d.ts +49 -10
  86. package/dist/engine/turn-loop.js +370 -104
  87. package/dist/engine/types.d.ts +30 -3
  88. package/dist/engine/types.js +1 -1
  89. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
  90. package/dist/goal/lifecycle.js +482 -0
  91. package/dist/hooks/events.d.ts +24 -10
  92. package/dist/hooks/goal-stop-hook.d.ts +17 -28
  93. package/dist/hooks/goal-stop-hook.js +110 -465
  94. package/dist/hooks/registry.js +1 -1
  95. package/dist/index.d.ts +48 -108
  96. package/dist/index.extension.d.ts +51 -0
  97. package/dist/index.extension.js +39 -0
  98. package/dist/index.internal.d.ts +86 -0
  99. package/dist/index.internal.js +92 -0
  100. package/dist/index.js +34 -123
  101. package/dist/links/cli.d.ts +48 -0
  102. package/dist/links/cli.js +617 -0
  103. package/dist/links/http.d.ts +40 -0
  104. package/dist/links/http.js +166 -0
  105. package/dist/links/index.d.ts +4 -0
  106. package/dist/links/index.js +3 -0
  107. package/dist/links/link-action-tool.d.ts +5 -0
  108. package/dist/links/link-action-tool.js +241 -0
  109. package/dist/links/providers.d.ts +8 -0
  110. package/dist/links/providers.js +665 -0
  111. package/dist/links/types.d.ts +44 -0
  112. package/dist/llm/client-base.d.ts +7 -0
  113. package/dist/llm/client-base.js +60 -0
  114. package/dist/llm/model-pool.d.ts +1 -1
  115. package/dist/llm/model-pool.js +1 -1
  116. package/dist/llm/providers/anthropic.d.ts +1 -0
  117. package/dist/llm/providers/anthropic.js +9 -0
  118. package/dist/llm/providers/openai.d.ts +1 -0
  119. package/dist/llm/providers/openai.js +17 -0
  120. package/dist/model-catalog/index.js +15 -2
  121. package/dist/model-catalog/resolve.d.ts +13 -1
  122. package/dist/model-catalog/resolve.js +37 -2
  123. package/dist/model-catalog/types.d.ts +74 -48
  124. package/dist/model-catalog/types.js +16 -5
  125. package/dist/model-catalog/upsert.d.ts +3 -1
  126. package/dist/model-catalog/upsert.js +9 -0
  127. package/dist/onboarding.d.ts +0 -1
  128. package/dist/onboarding.js +1 -22
  129. package/dist/panel-apps/bindings.d.ts +24 -0
  130. package/dist/panel-apps/bindings.js +69 -0
  131. package/dist/panel-apps/github-archive.d.ts +21 -0
  132. package/dist/panel-apps/github-archive.js +98 -0
  133. package/dist/panel-apps/index.d.ts +4 -0
  134. package/dist/panel-apps/index.js +4 -0
  135. package/dist/panel-apps/installer.d.ts +68 -0
  136. package/dist/panel-apps/installer.js +622 -0
  137. package/dist/panel-apps/manifest.d.ts +364 -0
  138. package/dist/panel-apps/manifest.js +189 -0
  139. package/dist/panel-apps/paths.d.ts +13 -0
  140. package/dist/panel-apps/paths.js +38 -0
  141. package/dist/panel-apps/registry.d.ts +51 -0
  142. package/dist/panel-apps/registry.js +99 -0
  143. package/dist/panel-apps/runtime.d.ts +80 -0
  144. package/dist/panel-apps/runtime.js +154 -0
  145. package/dist/plugins/gitOps.js +8 -1
  146. package/dist/plugins/installedPlugins.d.ts +2 -1
  147. package/dist/plugins/installedPlugins.js +146 -8
  148. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  149. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  150. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  151. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  152. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  153. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  154. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  155. package/dist/plugins/installer/install.d.ts +7 -1
  156. package/dist/plugins/installer/install.js +21 -87
  157. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  158. package/dist/plugins/installer/installFromArchive.js +44 -27
  159. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  160. package/dist/plugins/installer/installFromNpm.js +273 -0
  161. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  162. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  163. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  164. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  165. package/dist/plugins/installer/normalizeManifest.js +306 -0
  166. package/dist/plugins/installer/npmTar.d.ts +13 -0
  167. package/dist/plugins/installer/npmTar.js +321 -0
  168. package/dist/plugins/installer/parseSource.d.ts +11 -0
  169. package/dist/plugins/installer/parseSource.js +48 -0
  170. package/dist/plugins/installer/preview.d.ts +101 -0
  171. package/dist/plugins/installer/preview.js +336 -0
  172. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  173. package/dist/plugins/installer/projectPluginSource.js +140 -0
  174. package/dist/plugins/installer/types.d.ts +775 -0
  175. package/dist/plugins/installer/types.js +100 -0
  176. package/dist/plugins/installer/unzip.d.ts +11 -0
  177. package/dist/plugins/installer/unzip.js +123 -9
  178. package/dist/plugins/installer/update.d.ts +2 -2
  179. package/dist/plugins/installer/update.js +43 -4
  180. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  181. package/dist/plugins/loadPluginHooks.js +97 -86
  182. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  183. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  184. package/dist/plugins/pluginCatalog.d.ts +45 -0
  185. package/dist/plugins/pluginCatalog.js +87 -0
  186. package/dist/plugins/pluginCommandHook.d.ts +6 -0
  187. package/dist/plugins/pluginCommandHook.js +25 -8
  188. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  189. package/dist/plugins/pluginCommandsLoader.js +181 -7
  190. package/dist/plugins/pluginContent.d.ts +10 -1
  191. package/dist/plugins/pluginContent.js +87 -30
  192. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  193. package/dist/plugins/pluginHookApproval.js +160 -0
  194. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  195. package/dist/plugins/pluginHookIntegrity.js +361 -0
  196. package/dist/plugins/pluginInstaller.js +71 -12
  197. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  198. package/dist/plugins/pluginMcpApproval.js +110 -0
  199. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  200. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  201. package/dist/plugins/types.d.ts +30 -0
  202. package/dist/plugins/varRewrite.d.ts +9 -5
  203. package/dist/plugins/varRewrite.js +26 -17
  204. package/dist/preset/index.d.ts +11 -8
  205. package/dist/preset/index.js +62 -203
  206. package/dist/product/define.js +9 -3
  207. package/dist/product/types.d.ts +0 -2
  208. package/dist/profile/activation.d.ts +36 -0
  209. package/dist/profile/activation.js +57 -0
  210. package/dist/profile/catalog-store.d.ts +77 -0
  211. package/dist/profile/catalog-store.js +346 -0
  212. package/dist/profile/catalog.d.ts +54 -0
  213. package/dist/profile/catalog.js +152 -0
  214. package/dist/profile/index.d.ts +7 -0
  215. package/dist/profile/index.js +7 -0
  216. package/dist/profile/requirements.d.ts +76 -0
  217. package/dist/profile/requirements.js +117 -0
  218. package/dist/profile/resolve.d.ts +11 -0
  219. package/dist/profile/resolve.js +41 -0
  220. package/dist/profile/store.d.ts +17 -0
  221. package/dist/profile/store.js +167 -0
  222. package/dist/profile/types.d.ts +321 -0
  223. package/dist/profile/types.js +104 -0
  224. package/dist/prompt/composer.d.ts +46 -7
  225. package/dist/prompt/composer.js +78 -48
  226. package/dist/prompt/instruction-scanner.d.ts +6 -5
  227. package/dist/prompt/instruction-scanner.js +8 -23
  228. package/dist/prompt/section-loader.d.ts +2 -2
  229. package/dist/prompt/section-loader.js +7 -4
  230. package/dist/prompt/sections/browser.md +10 -9
  231. package/dist/prompt/sections/harness-base.md +9 -0
  232. package/dist/protocol/chat-session-manager.d.ts +64 -1
  233. package/dist/protocol/chat-session-manager.js +104 -0
  234. package/dist/protocol/chat-session.d.ts +61 -10
  235. package/dist/protocol/chat-session.js +135 -25
  236. package/dist/protocol/client.d.ts +33 -3
  237. package/dist/protocol/client.js +96 -5
  238. package/dist/protocol/index.d.ts +2 -2
  239. package/dist/protocol/index.js +2 -2
  240. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  241. package/dist/protocol/mobile-remote-types.js +1 -0
  242. package/dist/protocol/server.d.ts +127 -3
  243. package/dist/protocol/server.js +1309 -182
  244. package/dist/protocol/types.d.ts +152 -34
  245. package/dist/protocol/types.js +16 -0
  246. package/dist/run/ArtifactTracker.d.ts +6 -1
  247. package/dist/run/ArtifactTracker.js +29 -21
  248. package/dist/run/EngineRunner.d.ts +2 -0
  249. package/dist/run/EngineRunner.js +1 -0
  250. package/dist/run/RunManager.d.ts +26 -0
  251. package/dist/run/RunManager.js +82 -11
  252. package/dist/run/factory.d.ts +3 -0
  253. package/dist/run/factory.js +2 -0
  254. package/dist/runtime/safe-spawn.d.ts +6 -0
  255. package/dist/runtime/safe-spawn.js +8 -13
  256. package/dist/services/auto-dream.d.ts +13 -1
  257. package/dist/services/auto-dream.js +56 -8
  258. package/dist/services/dream-consolidation.js +10 -1
  259. package/dist/services/memory-orchestrator.js +6 -2
  260. package/dist/services/oauth.js +4 -1
  261. package/dist/services/session-memory.d.ts +4 -4
  262. package/dist/services/session-memory.js +13 -10
  263. package/dist/session/memory.d.ts +26 -7
  264. package/dist/session/memory.js +79 -21
  265. package/dist/session/session-manager.d.ts +182 -28
  266. package/dist/session/session-manager.js +910 -130
  267. package/dist/session/session-message.d.ts +22 -0
  268. package/dist/session/session-message.js +1 -0
  269. package/dist/session/transcript.d.ts +46 -5
  270. package/dist/session/transcript.js +159 -3
  271. package/dist/settings/feature-flags.d.ts +40 -0
  272. package/dist/settings/feature-flags.js +40 -0
  273. package/dist/settings/manager.d.ts +39 -1
  274. package/dist/settings/manager.js +102 -41
  275. package/dist/settings/migrate-config.js +4 -2
  276. package/dist/settings/schema.d.ts +511 -177
  277. package/dist/settings/schema.js +98 -25
  278. package/dist/skills/scanner.d.ts +6 -2
  279. package/dist/skills/scanner.js +160 -9
  280. package/dist/sources/adapter.d.ts +14 -0
  281. package/dist/sources/adapter.js +7 -0
  282. package/dist/sources/adapters/local-files.d.ts +10 -0
  283. package/dist/sources/adapters/local-files.js +127 -0
  284. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  285. package/dist/sources/adapters/mcp-resource.js +41 -0
  286. package/dist/sources/adapters/mock.d.ts +3 -0
  287. package/dist/sources/adapters/mock.js +29 -0
  288. package/dist/sources/binding.d.ts +6 -0
  289. package/dist/sources/binding.js +24 -0
  290. package/dist/sources/catalog.d.ts +6 -0
  291. package/dist/sources/catalog.js +64 -0
  292. package/dist/sources/context-summary.d.ts +8 -0
  293. package/dist/sources/context-summary.js +13 -0
  294. package/dist/sources/credential-status.d.ts +2 -0
  295. package/dist/sources/credential-status.js +13 -0
  296. package/dist/sources/index.d.ts +10 -0
  297. package/dist/sources/index.js +10 -0
  298. package/dist/sources/resolve.d.ts +28 -0
  299. package/dist/sources/resolve.js +47 -0
  300. package/dist/sources/truncate-utf8.d.ts +7 -0
  301. package/dist/sources/truncate-utf8.js +18 -0
  302. package/dist/sources/types.d.ts +71 -0
  303. package/dist/sources/types.js +26 -0
  304. package/dist/testing/fetch-stub.d.ts +32 -0
  305. package/dist/testing/fetch-stub.js +24 -0
  306. package/dist/themes/image.d.ts +18 -0
  307. package/dist/themes/image.js +117 -0
  308. package/dist/themes/index.d.ts +4 -0
  309. package/dist/themes/index.js +4 -0
  310. package/dist/themes/installer.d.ts +50 -0
  311. package/dist/themes/installer.js +290 -0
  312. package/dist/themes/manifest.d.ts +102 -0
  313. package/dist/themes/manifest.js +86 -0
  314. package/dist/themes/paths.d.ts +14 -0
  315. package/dist/themes/paths.js +33 -0
  316. package/dist/tool-system/browser-bridge.d.ts +53 -11
  317. package/dist/tool-system/browser-bridge.js +8 -9
  318. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  319. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  320. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  321. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  322. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  323. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  324. package/dist/tool-system/builtin/agent-progress.js +83 -0
  325. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  326. package/dist/tool-system/builtin/agent-registry.js +178 -9
  327. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  328. package/dist/tool-system/builtin/agent.d.ts +2 -0
  329. package/dist/tool-system/builtin/agent.js +274 -33
  330. package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
  331. package/dist/tool-system/builtin/background-jobs.js +96 -4
  332. package/dist/tool-system/builtin/background-work.d.ts +6 -0
  333. package/dist/tool-system/builtin/background-work.js +8 -1
  334. package/dist/tool-system/builtin/bash.js +5 -2
  335. package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
  336. package/dist/tool-system/builtin/browser-tools.js +89 -23
  337. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  338. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  339. package/dist/tool-system/builtin/edit.js +2 -6
  340. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  341. package/dist/tool-system/builtin/file-cache.js +4 -0
  342. package/dist/tool-system/builtin/generate-image.js +17 -10
  343. package/dist/tool-system/builtin/generate-video.js +26 -7
  344. package/dist/tool-system/builtin/grep.js +2 -2
  345. package/dist/tool-system/builtin/image-uploader.js +7 -1
  346. package/dist/tool-system/builtin/index.d.ts +32 -7
  347. package/dist/tool-system/builtin/index.js +237 -167
  348. package/dist/tool-system/builtin/memory.d.ts +6 -0
  349. package/dist/tool-system/builtin/memory.js +36 -15
  350. package/dist/tool-system/builtin/panel.d.ts +9 -0
  351. package/dist/tool-system/builtin/panel.js +314 -0
  352. package/dist/tool-system/builtin/read.js +5 -1
  353. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  354. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  355. package/dist/tool-system/builtin/sources.d.ts +8 -0
  356. package/dist/tool-system/builtin/sources.js +137 -0
  357. package/dist/tool-system/builtin/tool-search.js +7 -2
  358. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  359. package/dist/tool-system/builtin/web-fetch.js +17 -13
  360. package/dist/tool-system/builtin/web-search.js +1 -3
  361. package/dist/tool-system/capability-module.d.ts +93 -0
  362. package/dist/tool-system/capability-module.js +53 -0
  363. package/dist/tool-system/context.d.ts +77 -19
  364. package/dist/tool-system/executor.js +75 -50
  365. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  366. package/dist/tool-system/external-tool-exposure.js +304 -0
  367. package/dist/tool-system/mcp-manager.d.ts +11 -1
  368. package/dist/tool-system/mcp-manager.js +19 -4
  369. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  370. package/dist/tool-system/mcp-tool-policy.js +34 -0
  371. package/dist/tool-system/panel-bridge.d.ts +53 -0
  372. package/dist/tool-system/panel-bridge.js +1 -0
  373. package/dist/tool-system/permission.d.ts +26 -0
  374. package/dist/tool-system/permission.js +46 -0
  375. package/dist/tool-system/registry.d.ts +12 -1
  376. package/dist/tool-system/registry.js +31 -7
  377. package/dist/tool-system/sandbox/index.js +3 -8
  378. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  379. package/dist/tool-system/session-tool-host.d.ts +139 -0
  380. package/dist/tool-system/session-tool-host.js +167 -0
  381. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  382. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  383. package/dist/tool-system/validation.d.ts +14 -7
  384. package/dist/tool-system/validation.js +701 -7
  385. package/dist/types.d.ts +186 -20
  386. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  387. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  388. package/dist/utils/file-mutex.d.ts +65 -0
  389. package/dist/utils/file-mutex.js +145 -0
  390. package/dist/utils/json.d.ts +2 -4
  391. package/dist/utils/json.js +2 -4
  392. package/dist/utils/lockfile.d.ts +30 -1
  393. package/dist/utils/lockfile.js +2 -2
  394. package/dist/utils/secret-scrubber.d.ts +8 -0
  395. package/dist/utils/secret-scrubber.js +227 -0
  396. package/dist/utils/toolDisplay.js +1 -1
  397. package/package.json +20 -5
  398. package/THIRD_PARTY_NOTICES.md +0 -206
  399. package/dist/arena/arena.d.ts +0 -45
  400. package/dist/arena/arena.js +0 -362
  401. package/dist/arena/context/context-tools.d.ts +0 -16
  402. package/dist/arena/context/context-tools.js +0 -272
  403. package/dist/arena/context/within-root.d.ts +0 -7
  404. package/dist/arena/context/within-root.js +0 -15
  405. package/dist/arena/detect-mode.d.ts +0 -20
  406. package/dist/arena/detect-mode.js +0 -78
  407. package/dist/arena/digest-builder.d.ts +0 -25
  408. package/dist/arena/digest-builder.js +0 -120
  409. package/dist/arena/index.d.ts +0 -29
  410. package/dist/arena/index.js +0 -29
  411. package/dist/arena/iterate/convergence.d.ts +0 -25
  412. package/dist/arena/iterate/convergence.js +0 -103
  413. package/dist/arena/iterate/formats/index.d.ts +0 -22
  414. package/dist/arena/iterate/formats/index.js +0 -283
  415. package/dist/arena/iterate/index.d.ts +0 -11
  416. package/dist/arena/iterate/index.js +0 -9
  417. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  418. package/dist/arena/iterate/iterative-arena.js +0 -237
  419. package/dist/arena/iterate/parse.d.ts +0 -42
  420. package/dist/arena/iterate/parse.js +0 -123
  421. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  422. package/dist/arena/iterate/phases/argue.js +0 -165
  423. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  424. package/dist/arena/iterate/phases/revise.js +0 -62
  425. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  426. package/dist/arena/iterate/phases/tournament.js +0 -113
  427. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  428. package/dist/arena/iterate/tools/web-tools.js +0 -54
  429. package/dist/arena/iterate/types.d.ts +0 -152
  430. package/dist/arena/iterate/types.js +0 -8
  431. package/dist/arena/ledger.d.ts +0 -47
  432. package/dist/arena/ledger.js +0 -159
  433. package/dist/arena/lenses/architecture.d.ts +0 -5
  434. package/dist/arena/lenses/architecture.js +0 -22
  435. package/dist/arena/lenses/engineering.d.ts +0 -5
  436. package/dist/arena/lenses/engineering.js +0 -22
  437. package/dist/arena/lenses/general.d.ts +0 -5
  438. package/dist/arena/lenses/general.js +0 -20
  439. package/dist/arena/lenses/index.d.ts +0 -16
  440. package/dist/arena/lenses/index.js +0 -47
  441. package/dist/arena/lenses/product.d.ts +0 -5
  442. package/dist/arena/lenses/product.js +0 -22
  443. package/dist/arena/model-presets.d.ts +0 -23
  444. package/dist/arena/model-presets.js +0 -44
  445. package/dist/arena/phases/adjudication.d.ts +0 -25
  446. package/dist/arena/phases/adjudication.js +0 -142
  447. package/dist/arena/phases/build-consensus.d.ts +0 -30
  448. package/dist/arena/phases/build-consensus.js +0 -85
  449. package/dist/arena/phases/claim-registry.d.ts +0 -26
  450. package/dist/arena/phases/claim-registry.js +0 -60
  451. package/dist/arena/phases/cross-review.d.ts +0 -47
  452. package/dist/arena/phases/cross-review.js +0 -224
  453. package/dist/arena/phases/debate-rounds.d.ts +0 -28
  454. package/dist/arena/phases/debate-rounds.js +0 -161
  455. package/dist/arena/phases/participant-research.d.ts +0 -39
  456. package/dist/arena/phases/participant-research.js +0 -316
  457. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
  458. package/dist/arena/phases/planning-detail-expansion.js +0 -120
  459. package/dist/arena/planner.d.ts +0 -28
  460. package/dist/arena/planner.js +0 -312
  461. package/dist/arena/providers/docs.d.ts +0 -7
  462. package/dist/arena/providers/docs.js +0 -111
  463. package/dist/arena/providers/git.d.ts +0 -8
  464. package/dist/arena/providers/git.js +0 -174
  465. package/dist/arena/providers/index.d.ts +0 -32
  466. package/dist/arena/providers/index.js +0 -132
  467. package/dist/arena/providers/none.d.ts +0 -7
  468. package/dist/arena/providers/none.js +0 -11
  469. package/dist/arena/providers/repo.d.ts +0 -7
  470. package/dist/arena/providers/repo.js +0 -258
  471. package/dist/arena/render/session.d.ts +0 -17
  472. package/dist/arena/render/session.js +0 -190
  473. package/dist/arena/render/terminal.d.ts +0 -34
  474. package/dist/arena/render/terminal.js +0 -286
  475. package/dist/arena/strategies/discussion.d.ts +0 -25
  476. package/dist/arena/strategies/discussion.js +0 -143
  477. package/dist/arena/strategies/index.d.ts +0 -15
  478. package/dist/arena/strategies/index.js +0 -28
  479. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  480. package/dist/arena/strategies/language-wrapper.js +0 -102
  481. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  482. package/dist/arena/strategies/lens-wrapper.js +0 -236
  483. package/dist/arena/strategies/planning.d.ts +0 -30
  484. package/dist/arena/strategies/planning.js +0 -225
  485. package/dist/arena/strategies/review.d.ts +0 -26
  486. package/dist/arena/strategies/review.js +0 -168
  487. package/dist/arena/strategies/utils.d.ts +0 -36
  488. package/dist/arena/strategies/utils.js +0 -603
  489. package/dist/arena/tools/selector.d.ts +0 -17
  490. package/dist/arena/tools/selector.js +0 -61
  491. package/dist/arena/transitions.d.ts +0 -53
  492. package/dist/arena/transitions.js +0 -97
  493. package/dist/arena/types.d.ts +0 -518
  494. package/dist/arena/types.js +0 -27
  495. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  496. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  497. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  498. package/dist/cc-orchestrator/cc-capability.js +0 -53
  499. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  500. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  501. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  502. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  503. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  504. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  505. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  506. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  507. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  508. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  509. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  510. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  511. package/dist/cc-orchestrator/index.d.ts +0 -8
  512. package/dist/cc-orchestrator/index.js +0 -8
  513. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  514. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  515. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  516. package/dist/cc-orchestrator/session-discovery.js +0 -125
  517. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  518. package/dist/cc-orchestrator/session-history.js +0 -150
  519. package/dist/cron/cron-runtime.d.ts +0 -2
  520. package/dist/cron/cron-runtime.js +0 -2
  521. package/dist/cron/cron-store.d.ts +0 -2
  522. package/dist/cron/cron-store.js +0 -2
  523. package/dist/cron/scheduler.d.ts +0 -7
  524. package/dist/cron/scheduler.js +0 -7
  525. package/dist/engine/goal.js +0 -206
  526. package/dist/external-agents/config.d.ts +0 -2
  527. package/dist/external-agents/config.js +0 -15
  528. package/dist/external-agents/types.d.ts +0 -31
  529. package/dist/git/parse-log.d.ts +0 -13
  530. package/dist/git/parse-log.js +0 -21
  531. package/dist/git/utils.d.ts +0 -49
  532. package/dist/git/utils.js +0 -161
  533. package/dist/git/worktree/crud.d.ts +0 -72
  534. package/dist/git/worktree/crud.js +0 -235
  535. package/dist/git/worktree/diff.d.ts +0 -14
  536. package/dist/git/worktree/diff.js +0 -82
  537. package/dist/git/worktree/git-exec.d.ts +0 -7
  538. package/dist/git/worktree/git-exec.js +0 -87
  539. package/dist/git/worktree/index.d.ts +0 -5
  540. package/dist/git/worktree/index.js +0 -5
  541. package/dist/git/worktree/query.d.ts +0 -43
  542. package/dist/git/worktree/query.js +0 -128
  543. package/dist/git/worktree/slug.d.ts +0 -11
  544. package/dist/git/worktree/slug.js +0 -58
  545. package/dist/git/worktree.d.ts +0 -1
  546. package/dist/git/worktree.js +0 -5
  547. package/dist/lsp/client.d.ts +0 -41
  548. package/dist/lsp/client.js +0 -186
  549. package/dist/lsp/manager.d.ts +0 -40
  550. package/dist/lsp/manager.js +0 -155
  551. package/dist/lsp/root-path.d.ts +0 -9
  552. package/dist/lsp/root-path.js +0 -12
  553. package/dist/lsp/servers.d.ts +0 -16
  554. package/dist/lsp/servers.js +0 -60
  555. package/dist/prompt/sections/coding.md +0 -35
  556. package/dist/quota/credentials.d.ts +0 -3
  557. package/dist/quota/credentials.js +0 -80
  558. package/dist/quota/index.d.ts +0 -36
  559. package/dist/quota/index.js +0 -155
  560. package/dist/quota/types.d.ts +0 -48
  561. package/dist/quota/types.js +0 -13
  562. package/dist/review/review-prompt.d.ts +0 -28
  563. package/dist/review/review-prompt.js +0 -81
  564. package/dist/state.d.ts +0 -160
  565. package/dist/state.js +0 -267
  566. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  567. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  568. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  569. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  570. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  571. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  572. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  573. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  574. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  575. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  576. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  577. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  578. package/dist/tool-system/builtin/arena.d.ts +0 -31
  579. package/dist/tool-system/builtin/arena.js +0 -416
  580. package/dist/tool-system/builtin/brief.d.ts +0 -6
  581. package/dist/tool-system/builtin/brief.js +0 -41
  582. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  583. package/dist/tool-system/builtin/check-quota.js +0 -34
  584. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  585. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  586. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  587. package/dist/tool-system/builtin/lsp.js +0 -144
  588. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  589. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  590. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  591. package/dist/tool-system/builtin/worktree.js +0 -363
  592. /package/dist/{external-agents → links}/types.js +0 -0
  593. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  594. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -1,23 +1,24 @@
1
1
  /**
2
2
  * Engine — the main facade that wires all components together.
3
3
  */
4
- import type { LLMConfig, StreamCallback } from "../types.js";
4
+ import type { Message, SessionWorkspace } from "../types.js";
5
5
  import { ToolRegistry } from "../tool-system/registry.js";
6
6
  import { type BuiltinToolFn } from "../tool-system/builtin/index.js";
7
- import { type ApprovalRouter } from "../tool-system/permission.js";
7
+ import { type LiveChildState } from "../tool-system/builtin/agent-registry.js";
8
8
  import { HookRegistry } from "../hooks/registry.js";
9
- import { type GoalConfig, type GoalExtension } from "./goal.js";
9
+ import { type GoalConfig, type GoalExtension } from "../goal/lifecycle.js";
10
10
  import { type CompactStrategy } from "../context/manager.js";
11
- import { SessionManager, type ForkSessionOptions, type ForkSessionResult } from "../session/session-manager.js";
11
+ import { SessionManager, type ForkSessionOptions, type ForkSessionResult, type SummaryForkOptions } from "../session/session-manager.js";
12
+ import type { SessionMessageRouter } from "../session/session-message.js";
12
13
  import type { AskUserFn } from "../tool-system/builtin/ask-user.js";
13
- import type { CapabilityOverride } from "../settings/schema.js";
14
+ import type { CapabilityOverride, CapabilityOverrides } from "../settings/schema.js";
14
15
  import { type FeatureFlagName } from "../settings/feature-flags.js";
15
16
  import type { ToolContext } from "../tool-system/context.js";
16
- import { type SandboxBackend } from "../tool-system/sandbox/index.js";
17
17
  import { ModelPool, type ModelEntry } from "../llm/model-pool.js";
18
18
  import { AgentDefinitionRegistry } from "../agent/agent-definition-registry.js";
19
19
  import { EngineRuntime } from "./runtime.js";
20
- import type { InputAttachmentMeta } from "../protocol/types.js";
20
+ import { type EngineRunOptions } from "./run-types.js";
21
+ import type { InputAttachmentMeta } from "../types.js";
21
22
  /**
22
23
  * Build ScanOptions.compatFileNames from the user's instruction compat toggles.
23
24
  * Primary file name stays hard-wired to CODESHELL.md (not exposed). Turning a
@@ -35,39 +36,7 @@ export interface EnqueueSteerResult {
35
36
  accepted: boolean;
36
37
  id: string;
37
38
  }
38
- interface EngineRunOptions {
39
- cwd?: string;
40
- onStream?: StreamCallback;
41
- signal?: AbortSignal;
42
- sessionId?: string;
43
- /** Immutable permission context for this run only. Omitted uses Engine config. */
44
- permissionMode?: NonNullable<EngineConfig["permissionMode"]>;
45
- /** Immutable plan context for this run only. Omitted follows permissionMode. */
46
- planMode?: boolean;
47
- /** Protocol connection's approval owner router for this run. */
48
- approvalRouter?: ApprovalRouter;
49
- /**
50
- * Goal mode for this run: the engine registers a GoalStopHook so the
51
- * turn loop runs until the session model judges this goal met. Falls
52
- * back to config.goal. Orthogonal to permissionMode. Accepts a raw
53
- * string or a full GoalConfig; normalized once at the run boundary.
54
- */
55
- goal?: string | GoalConfig;
56
- /**
57
- * Marks this turn's task as a SYNTHETIC system-reminder injection (e.g. a
58
- * background-job completion notification the server re-injects to wake an
59
- * idle session) rather than the user's own input. The task is still sent
60
- * to the model as a `role:"user"` message, but it is persisted with an
61
- * `injected` flag so the disk reader skips rendering it as a user bubble
62
- * on replay (matching the live UI, which shows only the assistant reply).
63
- */
64
- injected?: boolean;
65
- /** Stable id for this user-intent, used to make duplicate submits idempotent. */
66
- clientMessageId?: string;
67
- /** Structured input attachments. Legacy `<codeshell-image>` blocks remain supported. */
68
- attachments?: InputAttachmentMeta[];
69
- }
70
- export { diskDefaultsFrom, type DiskDefaultPatch } from "../settings/disk-defaults.js";
39
+ export { diskDefaultsFrom, type DiskDefaultPatch } from "./disk-defaults.js";
71
40
  /**
72
41
  * Resolve the LLM config for a spawned child Engine.
73
42
  * - `modelKey` set + present in pool → that model's config (pure entry-derived
@@ -80,30 +49,14 @@ export { diskDefaultsFrom, type DiskDefaultPatch } from "../settings/disk-defaul
80
49
  * Engine directly via EngineConfig.clientDefaults — they do not flow through
81
50
  * this helper because they're not part of LLMConfig anymore.
82
51
  */
83
- export declare function resolveChildLlm(modelKey: string | undefined, pool: ModelPool | undefined, parentLlm: LLMConfig): LLMConfig;
52
+ export { resolveChildLlm, resolveChildToolScope } from "./subagent-spawner.js";
53
+ export { resolveRunCwd } from "./run-workspace.js";
84
54
  /**
85
55
  * Load reusable sub-agent role definitions, merging:
86
56
  * 1. project-level <cwd>/.code-shell/agents/*.md (ships built-ins)
87
57
  * 2. user-level ~/.code-shell/agents/*.md (user wins on name)
88
58
  * Names in `disabledAgents` are filtered out so the LLM never sees them.
89
59
  */
90
- /**
91
- * Resolve the working directory for a run. Precedence for legacy sessions:
92
- * options.cwd > resumed session's state.cwd > config.cwd > process.cwd()
93
- *
94
- * The session-cwd tier is what stops a project-bound session from being
95
- * resumed against the wrong directory: when a host omits options.cwd (e.g. its
96
- * sidebar repo selection drifted to null), the session's own recorded cwd is
97
- * recovered so the engine still loads THAT project's agents/settings/memory,
98
- * not whatever process.cwd() happens to be. Pure so the precedence is testable
99
- * without standing up an Engine.
100
- */
101
- export declare function resolveRunCwd(args: {
102
- optionCwd?: string;
103
- sessionCwd?: string;
104
- configCwd?: string;
105
- processCwd: string;
106
- }): string;
107
60
  export declare function loadAgentDefinitionsForCwd(cwd: string, disabledAgents?: string[], disabledPlugins?: string[]): AgentDefinitionRegistry;
108
61
  /**
109
62
  * #7: apply a project's per-turn builtin capability override to a tool list.
@@ -123,16 +76,25 @@ export declare function applyBuiltinOverrideVisibility<T extends {
123
76
  * - `allowlist` undefined → inherit parent enabled/disabled, always with the
124
77
  * nested-agent tools forced into `disabled` (no grandchildren).
125
78
  */
126
- export declare function resolveChildToolScope(allowlist: string[] | undefined, parentDisabled: string[] | undefined, parentEnabled: string[] | undefined): {
127
- enabled?: string[];
128
- disabled: string[];
129
- };
130
79
  export declare class Engine {
131
80
  private config;
132
81
  private preset;
82
+ /** Capability-free seed owned by the runtime/host; never mutated by an Engine. */
83
+ private runtimeToolRegistry;
84
+ /** Engine-local view containing only this Engine's capability modules. */
133
85
  private toolRegistry;
86
+ private readonly capabilities;
87
+ private readonly toolCatalog;
88
+ private readonly toolGuards;
89
+ /** Per-turn dynamic definition rewriters contributed by builtin exposures. */
90
+ private readonly toolRewriters;
91
+ /** Named per-run behavior profiles (core defaults + config + extensions). */
92
+ private readonly behaviorProfiles;
93
+ private readonly capabilityPromptSections;
94
+ private readonly capabilityDynamicContextProviders;
134
95
  private hooks;
135
96
  private sessionManager;
97
+ private sessionMessageRouter;
136
98
  private mcpManager;
137
99
  private modelPool;
138
100
  /**
@@ -154,21 +116,10 @@ export declare class Engine {
154
116
  private agentDefsCache?;
155
117
  /** Shared resources supplied at construction (adapter pattern — null when self-constructed). */
156
118
  readonly runtime: EngineRuntime | null;
157
- private readonly sandboxCache;
158
- private readonly interactiveBackends;
159
- private activeApprovalRouter;
160
- /** Active permission mode for this Engine instance. */
161
- permissionMode: NonNullable<EngineConfig["permissionMode"]>;
162
- /** True when permissionMode === "plan". */
163
- planMode: boolean;
119
+ private readonly runEnvironmentResolver;
120
+ private readonly auxiliaryPipeline;
121
+ private readonly permissionController;
164
122
  private settingsManager;
165
- /**
166
- * Cached auxiliary-task LLM client, keyed by the models[].key it was built
167
- * from. Background calls (memory extraction, auto-dream) reuse it across
168
- * runs so we don't redo the provider handshake every session. Invalidated
169
- * implicitly: a changed auxModelKey produces a different cache key.
170
- */
171
- private auxClientCache?;
172
123
  private lastContextManager;
173
124
  private lastMessages;
174
125
  private lastSessionId;
@@ -189,7 +140,7 @@ export declare class Engine {
189
140
  * LLM response arrives.
190
141
  */
191
142
  private ctxOverheadBySid;
192
- private lastCacheReadBySid;
143
+ private promptCacheDiagnostics;
193
144
  /**
194
145
  * Step-gap steering queue (per sessionId, in-memory). Host pushes user
195
146
  * messages here via enqueueSteer while a run is in flight; the turn loop
@@ -199,7 +150,6 @@ export declare class Engine {
199
150
  * multiple Engines don't interfere and it stays cleanly extractable.
200
151
  */
201
152
  private steerQueueBySid;
202
- private activePermission;
203
153
  /**
204
154
  * The TurnLoop of the in-flight run(), exposed so extendGoalRun() can bump a
205
155
  * running goal's turn/budget ceilings mid-run (TODO 3.1). Null when idle.
@@ -211,12 +161,18 @@ export declare class Engine {
211
161
  * otherwise keep re-blocking the stop). Null when no goal run is active.
212
162
  */
213
163
  private activeGoalHook;
164
+ /** Whether activeGoalHook is currently registered (pause detaches it). */
165
+ private activeGoalHookAttached;
166
+ /** Mutable goal view consumed by the running judge after edits/resume. */
167
+ private activeRuntimeGoal;
168
+ /** Mutable terminal snapshot kept in sync with a mid-run objective edit. */
169
+ private activePersistedRunGoal;
214
170
  /**
215
171
  * The in-flight run's session bundle, held so clearGoal() can wipe the goal
216
172
  * on the SAME instance the run loop is persisting each turn — not a fresh
217
173
  * detached copy from resume(). Without this, a mid-run 清除 clears disk, but
218
174
  * the still-running loop's next saveState(bundle.state) resurrects the goal
219
- * (bundle.state.activeGoal was never dropped). A never-completing goal run
175
+ * (bundle.state.goalLifecycle was never rebased). A never-completing goal run
220
176
  * (judge keeps returning not_met → continueSession) stays live for a long
221
177
  * time, so this write-back race is the norm, not an edge case, for such runs.
222
178
  * Single-valued like activeTurnLoop — one top-level run per engine at a time.
@@ -226,16 +182,13 @@ export declare class Engine {
226
182
  /**
227
183
  * Same-instance run guard. Engine owns single-valued live controls and one
228
184
  * HookRegistry, so a second run must not enter until the first has completed
229
- * all state persistence and end hooks. This prevents handle contamination and
230
- * whole-state saveState overlap only within this Engine instance. It does not
231
- * coordinate different Engine instances sharing a sessionId, Workers, or
232
- * processes; session-level locking/CAS for those cases is a separate finding.
185
+ * all state persistence and end hooks. Cross-instance/process whole-state
186
+ * writers are additionally fenced by SessionManager's persisted revision CAS.
233
187
  */
234
188
  private runInProgress;
189
+ private agentControlStateListener?;
190
+ private agentDirectionsDeliveredListener?;
235
191
  /** Permission update requested while runInProgress. Applied in run() finally. */
236
- private pendingPermissionMode;
237
- /** Plan update paired with pendingPermissionMode for one atomic boundary apply. */
238
- private pendingPlanMode;
239
192
  /** Public accessor so UI/clients can read the resolved per-model window. */
240
193
  get maxContextTokens(): number;
241
194
  private resolveMaxContextTokens;
@@ -299,12 +252,22 @@ export declare class Engine {
299
252
  * Must be called before run().
300
253
  */
301
254
  registerCustomTool(definition: import("../types.js").RegisteredTool, executor: BuiltinToolFn): void;
255
+ /** Dispatch a host-installed capability query without teaching core its name. */
256
+ queryCapability(type: string, params?: Readonly<Record<string, unknown>>): Promise<{
257
+ handled: false;
258
+ } | {
259
+ handled: true;
260
+ data: unknown;
261
+ }>;
302
262
  /**
303
263
  * Inject the askUser handler after construction. Used by AgentServer
304
264
  * to wire its protocol-backed askUser into an Engine that was created
305
265
  * before the server existed (chicken-and-egg: server takes engine in ctor).
306
266
  */
307
267
  setAskUser(fn: AskUserFn | undefined): void;
268
+ /** Internal child-runtime seam used by the single-writer supervisor. */
269
+ setAgentControlStateListener(listener: ((state: LiveChildState) => void) | undefined): void;
270
+ setAgentDirectionsDeliveredListener(listener: ((envelopeIds: string[]) => void) | undefined): void;
308
271
  /**
309
272
  * Inject the browser automation bridge after construction (same chicken-and-egg
310
273
  * as setAskUser: the desktop host builds the bridge — which drives a webview —
@@ -314,6 +277,10 @@ export declare class Engine {
314
277
  setBrowserBridge(bridge: import("../tool-system/browser-bridge.js").BrowserBridge | undefined): void;
315
278
  /** Inject the host-backed workspace bridge after construction. */
316
279
  setWorkspaceBridge(bridge: import("../tool-system/workspace-bridge.js").WorkspaceBridge | undefined): void;
280
+ /** Inject the host-backed panel discovery/focus bridge after construction. */
281
+ setPanelBridge(bridge: import("../tool-system/panel-bridge.js").PanelHostBridge | undefined): void;
282
+ /** Inject the host router used by SendMessageToSession. */
283
+ setSessionMessageRouter(router: SessionMessageRouter | undefined): void;
317
284
  /**
318
285
  * Queue a user message to be spliced into the in-flight run for `sessionId`
319
286
  * at the next turn-loop step boundary — the 不打断 steering path (vs cancel +
@@ -346,6 +313,8 @@ export declare class Engine {
346
313
  * in-process AgentServer to decide whether to wire an interactive askUser.
347
314
  */
348
315
  isHeadless(): boolean;
316
+ get permissionMode(): NonNullable<EngineConfig["permissionMode"]>;
317
+ get planMode(): boolean;
349
318
  /**
350
319
  * Probe whether a session already exists on disk (its state/transcript dir is
351
320
  * present). Used by the protocol server to distinguish "resume an existing
@@ -355,51 +324,135 @@ export declare class Engine {
355
324
  */
356
325
  sessionExistsOnDisk(sessionId: string): boolean;
357
326
  forkSession(sourceSessionId: string, options?: ForkSessionOptions): ForkSessionResult;
327
+ selectContextPackage(sourceSessionId: string, range: {
328
+ fromEventId: string;
329
+ toEventId: string;
330
+ }): ReturnType<SessionManager["selectContextPackage"]>;
331
+ createSummaryFork(sourceSessionId: string, options: SummaryForkOptions): ForkSessionResult;
332
+ /** Summarize a selected transcript package using the configured aux tier. */
333
+ summarizeContextPackage(messages: Message[], signal?: AbortSignal, sourceSessionId?: string): Promise<{
334
+ summary: string;
335
+ estimatedTokens: number;
336
+ }>;
337
+ /** Restore a cold Engine's configured model from persisted source state without resetting usage. */
338
+ restoreSessionModel(sessionId: string): void;
358
339
  /**
359
340
  * Run a task from start to finish. Rejects immediately when this Engine
360
341
  * instance already has a run in progress; hosts that want queueing own that
361
342
  * policy (for example ChatSession's FIFO queue).
362
343
  */
363
344
  run(task: string, options?: EngineRunOptions): Promise<EngineResult>;
364
- private runExclusive;
365
345
  /**
366
- * Run the end-of-session memory pipeline as a fire-and-forget background
367
- * task. Extracts durable memories from the transcript, saves a session
368
- * summary, and conditionally triggers auto-dream consolidation.
369
- */
370
- /**
371
- * Resolve the LLM client for background/auxiliary work (memory extraction,
372
- * auto-dream). When settings.defaults.auxText names a valid pool model, build
373
- * (and cache) a dedicated client for it so per-turn book-keeping runs on a cheap
374
- * fast model instead of the expensive primary. Falls back to `fallback` (the
375
- * active run's client) when unset, unknown, or on any build failure — aux
376
- * work is best-effort and must never break a run.
377
- */
378
- /**
379
- * Build the SummarizeFn used for context compaction. Extracted so both the
380
- * run path and forceCompact share one definition of the summarization call.
346
+ * Resolve the run's active behavior profile. A profile bound to the
347
+ * persisted session kind wins (so e.g. a resumed pet session keeps the safe
348
+ * profile even when the host omits behaviorMode); otherwise the explicit
349
+ * behaviorMode names a registered profile directly. Explicit unknown modes
350
+ * and non-work session kinds without an owning profile fail closed: silently
351
+ * falling back to an unrestricted run would turn a missing extension into a
352
+ * permission-boundary bypass.
381
353
  */
354
+ private resolveBehaviorProfile;
355
+ private runExclusive;
356
+ /** A receipt write failure must not turn an already finalized model result
357
+ * into a second synthetic failure (or reject the Engine.run contract). */
358
+ private appendClientRunReceipt;
359
+ /**
360
+ * Terminal success path: forward to {@link finalizeRunSuccess} with the
361
+ * engine-bound persistence / memory / hook closures filled in. Extracted from
362
+ * the {@link runExclusive} skeleton so the terminal-state assembly reads as a
363
+ * single call; behavior is unchanged.
364
+ */
365
+ private finalizeRun;
366
+ /**
367
+ * Build the stream callback that wraps the caller's `onStream`: it snapshots
368
+ * TodoWrite `task_update` events for TaskGuard and persists `goal_progress`
369
+ * events to the transcript before delegating. Extracted verbatim from the
370
+ * {@link runExclusive} skeleton; the todo buffer and (not-yet-open) session
371
+ * are reached through the `setLatestTodos` / `getSession` accessors.
372
+ */
373
+ private buildWrappedOnStream;
374
+ /**
375
+ * Run the turn loop once, apply its goal termination, and — for a top-level
376
+ * headless run only — drain background sub-agents before resolving. Extracted
377
+ * verbatim from the body of the {@link runExclusive} try block; the cleanup
378
+ * `finally` stays in the skeleton so the run-scoped hook/loop teardown is
379
+ * guaranteed regardless of how this method returns or throws.
380
+ */
381
+ private runTurnLoopWithHeadlessDrain;
382
+ /**
383
+ * Stamp the resolved session identity and session-scoped side-effect sinks
384
+ * onto the run's {@link ToolContext}, now that the session bundle is open.
385
+ * Extracted verbatim from the {@link runExclusive} skeleton.
386
+ */
387
+ private stampRunToolContext;
388
+ /** Attach a closed-set, host-routed Session message sender to this run. */
389
+ private attachSessionMessageService;
390
+ /**
391
+ * Await the parallel prompt/context assembly (LLM client handshake, system
392
+ * prompt, dynamic + user context messages), splice the hook-injected and
393
+ * context messages into `messages`, publish this run's last-session snapshot,
394
+ * and prime the {@link ContextManager}'s transcript path + replacement state.
395
+ * Extracted verbatim from the {@link runExclusive} skeleton.
396
+ */
397
+ private assembleRunPrompts;
398
+ /**
399
+ * Seed the run's {@link ContextManager}, emit the early `session_started`
400
+ * event, replay the last TodoWrite snapshot on resume, kick off the LLM client
401
+ * handshake, and build the permission-gated {@link ToolExecutor}. Extracted
402
+ * verbatim from the {@link runExclusive} skeleton; the todo snapshot is read
403
+ * and written through the `getLatestTodos` / `setLatestTodos` accessors so the
404
+ * outer wrapped-onStream and TaskGuard keep observing the same buffer.
405
+ */
406
+ private wireRunContextAndPermission;
407
+ /**
408
+ * Resolve the run sandbox, construct the child sub-agent spawner (the sole
409
+ * `new Engine(...)` call path, kept in engine.ts so the protocol bypass guard
410
+ * stays satisfied), and assemble the per-run {@link ToolContext}. Extracted
411
+ * verbatim from the {@link runExclusive} skeleton; the session bundle is read
412
+ * lazily via `getSession` because it is opened after this wiring runs.
413
+ */
414
+ private wireRunSandboxToolContext;
415
+ /**
416
+ * Wire every run-scoped dependency the turn loop needs: usage accounting +
417
+ * summarizer, the {@link ModelFacade}, the file-history hook, the
418
+ * `on_agent_start` hook, goal resolution / arming, the {@link TurnLoop} itself,
419
+ * and the goal-termination applier. Extracted verbatim from the
420
+ * {@link runExclusive} skeleton; the goal slots, judge-context buffer and usage
421
+ * baseline are fully local here — only the values the try/finally + finalize
422
+ * phases consume cross back out.
423
+ */
424
+ private wireRunLoop;
425
+ /**
426
+ * Record the session start and fire the once-per-run `on_session_start` and
427
+ * per-turn `user_prompt_submit` / `agent_direction_submit` hooks, applying any
428
+ * `updatedPrompt` rewrite in place on `messages`. Extracted verbatim from the
429
+ * {@link runExclusive} skeleton; returns the combined hook-injected messages
430
+ * for {@link assembleRunMessages}.
431
+ */
432
+ private runSessionStartHooks;
433
+ /**
434
+ * Resolve goal visibility, disabled skill/plugin lists, build the
435
+ * {@link PromptComposer}, connect MCP, and assemble the visibility-filtered
436
+ * tool defs for this run. Extracted verbatim from the {@link runExclusive}
437
+ * skeleton; the intermediate visibility/disabled/mcp values are fully local to
438
+ * this method — only the composer and tool defs cross back out.
439
+ */
440
+ private wireRunTooling;
441
+ /**
442
+ * Assemble the run-scoped {@link TurnLoop} (its dependency object + option
443
+ * object) from the per-run locals gathered in {@link runExclusive}. Extracted
444
+ * verbatim from the orchestration skeleton so `runExclusive` stays a readable
445
+ * sequence of phase calls; the buffered-compaction `let` lives entirely inside
446
+ * here now, and the only value crossing back out is the goal-judge context,
447
+ * published through the `publishGoalJudgeContext` callback.
448
+ */
449
+ private buildTurnLoop;
382
450
  private buildSummarizeFn;
383
451
  private resolveAuxClient;
384
452
  private runMemoryPipeline;
385
- /**
386
- * Drive the auto-dream tool-call loop.
387
- *
388
- * Runs the LLM with a whitelisted subset of memory tools (MemoryList,
389
- * MemoryRead, MemorySave, MemoryDelete). The loop is intentionally small
390
- * and offline:
391
- * - No streaming, no UI events — runs in the background after a session.
392
- * - No permission prompts — UI isn't attached, so we hard-reject any
393
- * attempt to Save/Delete in the "user" scope before dispatching. Dream
394
- * scope is the LLM's workspace and goes through freely.
395
- * - Capped at MAX_TURNS LLM round-trips and MAX_WRITES total
396
- * mutations to bound damage on misbehavior.
397
- *
398
- * Returns true if the loop ran (with or without writes); false if we
399
- * bailed before the first LLM call (e.g. registry missing the tools).
400
- */
401
- private runDreamLoop;
402
453
  getToolRegistry(): ToolRegistry;
454
+ /** Registry suitable for constructing EngineRuntime; excludes local capabilities. */
455
+ getRuntimeToolRegistry(): ToolRegistry;
403
456
  /**
404
457
  * Switch the active model by pool key. Takes effect on the next run() call.
405
458
  * Returns the new model entry.
@@ -409,7 +462,9 @@ export declare class Engine {
409
462
  * only live in memory and every restart reverts to the previously persisted
410
463
  * defaults.text.
411
464
  */
412
- switchModel(key: string): ModelEntry;
465
+ switchModel(key: string, opts?: {
466
+ persist?: boolean;
467
+ }): ModelEntry;
413
468
  /**
414
469
  * Zero the legacy/model-scoped token/cache usage window on disk. The
415
470
  * whole-session cumulative counters are intentionally left alone.
@@ -430,6 +485,23 @@ export declare class Engine {
430
485
  getCurrentModel(): string;
431
486
  getHookRegistry(): HookRegistry;
432
487
  getSessionManager(): SessionManager;
488
+ /**
489
+ * Apply a field-level disk update and rebase this Engine's matching live
490
+ * bundle onto the returned revision so its next whole-state CAS can proceed.
491
+ */
492
+ private updatePersistedSessionState;
493
+ /**
494
+ * Adopt the exact persisted snapshot that won a Goal-control CAS without
495
+ * discarding counters which the current run has advanced since its previous
496
+ * heartbeat. Merely copying the new stateRevision is unsafe: the next
497
+ * whole-state save would then be allowed to publish stale title/workspace
498
+ * metadata over a concurrent field-level writer.
499
+ */
500
+ private rebaseActiveRunAfterGoalUpdate;
501
+ private persistGoalTerminal;
502
+ private persistGoalTerminalOutcome;
503
+ private persistFinalRunState;
504
+ private persistRunProgress;
433
505
  getConfig(): EngineConfig;
434
506
  /**
435
507
  * Config hot-reload "layer 2": merge a disk-default config patch into this
@@ -453,7 +525,7 @@ export declare class Engine {
453
525
  * the main user-visible preset effect and it IS hot. The toolRegistry's
454
526
  * builtin tool SET, however, is ctor-frozen (and may be shared via runtime):
455
527
  * it is NOT rebuilt here. So a preset change that alters the builtin tool set
456
- * (e.g. general terminal-coding adds LSP/Brief) only takes effect on the
528
+ * (e.g. switching to a capability-contributed preset adds tools) only takes effect on the
457
529
  * next session restart; we log a warning when that case is detected.
458
530
  *
459
531
  * disk-default-vs-slice caveat (#8): the patch carries pure DISK-default
@@ -480,28 +552,51 @@ export declare class Engine {
480
552
  * Read a session's persisted active goal WITHOUT resuming it (cheap — reads
481
553
  * only state.json via SessionManager.readActiveGoal). The desktop host calls
482
554
  * this on session load to re-surface the goal block + its Cancel button: a
483
- * persistent goal lives only in state.activeGoal and is never replayed from
555
+ * persistent goal lives only in state.goalLifecycle and is never replayed from
484
556
  * the transcript, so after a reload of an aborted goal run the UI would
485
557
  * otherwise show nothing (the "goal 还在但页面不显示、取消不了" bug). Returns
486
558
  * undefined when the session is unknown or has no active goal.
487
559
  */
488
560
  getGoal(sessionId: string): GoalConfig | undefined;
561
+ /** True when the current run was built with Goal prompt/tools and can resume in place. */
562
+ canResumeGoalInPlace(sessionId: string): boolean;
563
+ /**
564
+ * Edit or pause/resume a persisted goal. Mid-run edits use the same step-gap
565
+ * delivery seam as Steer: the current model/tool call is not aborted, and the
566
+ * updated objective is injected before the next model step. Pausing detaches
567
+ * the goal judge and stops this run before another model request is started.
568
+ */
569
+ updateGoal(sessionId: string, patch: {
570
+ objective?: string;
571
+ paused?: boolean;
572
+ expectedGoalId?: string;
573
+ expectedRevision?: number;
574
+ }): GoalConfig | undefined;
489
575
  /**
490
576
  * Clear a session's persisted active goal (CC `/goal clear`). Works whether
491
577
  * the session is idle or its goal run is in flight: it wipes
492
- * `state.activeGoal` (so the next bare send won't re-inherit it) and, if a
578
+ * `state.goalLifecycle` (so the next bare send won't re-inherit it) and, if a
493
579
  * goal hook is currently registered for this engine, unregisters it so an
494
580
  * in-flight run can stop instead of being re-blocked by the now-cleared goal.
495
581
  * Returns true if a goal was actually cleared. Idempotent — clearing a
496
582
  * session with no active goal is a no-op returning false.
497
583
  */
498
- clearGoal(sessionId: string): boolean;
584
+ clearGoal(sessionId: string, expected?: {
585
+ goalId?: string;
586
+ revision?: number;
587
+ }): boolean;
588
+ /**
589
+ * Persist a workspace pointer through the Engine that owns the live bundle.
590
+ * Host-side workspace actions use this RPC-facing seam so advancing the disk
591
+ * revision also rebases the active run before its next progress write.
592
+ */
593
+ setSessionWorkspace(sessionId: string, workspace: SessionWorkspace): SessionWorkspace | null;
499
594
  /**
500
595
  * Reset a session's workspace pointer back to its main root. If the session is
501
596
  * actively running, mutate that live SessionBundle first so the run's next
502
597
  * saveState cannot resurrect a stale worktree pointer.
503
598
  */
504
- releaseSessionWorkspace(sessionId: string): import("../types.js").SessionWorkspace | null;
599
+ releaseSessionWorkspace(sessionId: string): SessionWorkspace | null;
505
600
  injectContext(sessionId: string, content: string): void;
506
601
  /**
507
602
  * Force context compaction on a session.
@@ -512,7 +607,38 @@ export declare class Engine {
512
607
  after: number;
513
608
  strategy: "none (no active session)" | "no compaction needed" | "compacted" | CompactStrategy;
514
609
  }>;
515
- private stripInjectedContextMessages;
610
+ /**
611
+ * Lazily build (or reuse) the ContextManager for a resumed session and wire a
612
+ * PRIMARY-model summarizeFn onto it. Shared by forceCompact and
613
+ * archiveTurnRange: both need a summarizer on a session that may have been
614
+ * resumed-but-never-run (so no run wired one), and both bill compaction usage
615
+ * against the session.
616
+ *
617
+ * The PRIMARY model is used deliberately — automatic background compaction
618
+ * routes to the cheap aux model, but a user-/host-initiated compaction or
619
+ * range archival is low-frequency and demands fidelity (a dropped decision =
620
+ * the conversation "forgets"). Client-construction failure is logged and
621
+ * swallowed so the caller degrades gracefully (forceSummarize falls back to
622
+ * snip/window; summarizeRange returns the input untouched).
623
+ */
624
+ private prepareContextManagerForSession;
625
+ /**
626
+ * Archive a caller-chosen contiguous message-index window `[range.start,
627
+ * range.end)` of a session into a single anchored summary, leaving everything
628
+ * outside the window untouched, and cache the result so a later
629
+ * forceCompact/resume reads the archived history. This is a generic
630
+ * range-archival facade over ContextManager.summarizeRange — the caller
631
+ * decides which span to collapse (the range is a half-open message-index
632
+ * window, matching summarizeRange). Returns token stats before/after; equal
633
+ * before/after means the window was empty or the summary was rejected.
634
+ */
635
+ archiveTurnRange(sessionId: string, range: {
636
+ start: number;
637
+ end: number;
638
+ }): Promise<{
639
+ before: number;
640
+ after: number;
641
+ }>;
516
642
  private recordCacheReadDiagnostics;
517
643
  private getSettingsManager;
518
644
  /**
@@ -520,11 +646,10 @@ export declare class Engine {
520
646
  */
521
647
  updateConfig(key: string, value: unknown): void;
522
648
  /**
523
- * Read a settings value by dotted key (e.g. "arena.participants").
649
+ * Read a settings value by dotted key (e.g. "capabilities.foo.enabled").
524
650
  * Returns undefined if any segment is missing.
525
651
  */
526
652
  readSetting(key: string): unknown;
527
- private buildPermissionConfig;
528
653
  /**
529
654
  * Switch permission mode at runtime. Idle updates apply immediately; busy
530
655
  * updates are committed atomically when the current run settles, so its
@@ -532,8 +657,6 @@ export declare class Engine {
532
657
  * Session-only — does not persist to settings.
533
658
  */
534
659
  setPermissionMode(mode: NonNullable<EngineConfig["permissionMode"]>): void;
535
- private applyPermissionState;
536
- private applyPendingPermissionState;
537
660
  getPermissionMode(): NonNullable<EngineConfig["permissionMode"]>;
538
661
  /**
539
662
  * Extend the in-flight run's turn ceiling and/or goal budgets (TODO 3.1 —
@@ -614,64 +737,7 @@ export declare class Engine {
614
737
  * overlays turn-specific fields like sandbox and subAgentSpawner) and
615
738
  * by tests that want a ToolContext without a full run() cycle.
616
739
  */
617
- private resolveSandboxWithoutRuntime;
618
- private resolveSandboxConfigForCwd;
619
- /**
620
- * Build the shell env layered onto the Bash tool / background shells (see
621
- * mergeShellEnv). Three user-configured sources, merged lowest → highest:
622
- *
623
- * 1. project `localEnvironment.env` — the per-project "local environment"
624
- * panel (DATABASE_URL etc.); the floor, so a project's own panel values
625
- * can be overridden by an explicit top-level `env`.
626
- * 2. global top-level `env` — ~/.code-shell/settings.json; the
627
- * canonical home for API keys (OPENAI_API_KEY) a skill script reads —
628
- * configure once, every project's skills get it.
629
- * 3. project top-level `env` — .code-shell/settings.json; a project
630
- * that wants to override a global key wins.
631
- *
632
- * Each scope is read UNMERGED so the layering here is the single source of
633
- * precedence (getForScope merges nothing). Returns undefined when no layer
634
- * contributes a key, so the caller passes it through unchanged for projects
635
- * that configure none.
636
- *
637
- * Sub-agents: a sub-agent is the user's OWN agent doing the user's work
638
- * (mirrors Claude Code, where sub-agents inherit the parent environment), so
639
- * it now reads the SAME env as the parent. The sub-agent branch is kept as an
640
- * explicit seam (`filterSubagentEnv`) rather than removed — a future policy
641
- * could narrow what a sub-agent sees (e.g. drop credential secrets) by
642
- * changing that one hook; today it passes everything through unchanged.
643
- * A no-cwd context still gets nothing (there is genuinely no project to read).
644
- *
645
- * None of these is filtered through the deny regex (mergeShellEnv): the user
646
- * put them there deliberately. The allowlist/deny machinery only guards the
647
- * host's process.env from a tainted model exfiltrating it via `env | curl`.
648
- */
649
- private readShellEnv;
650
- /**
651
- * Policy seam for what a sub-agent's shell sees. A sub-agent inherits the
652
- * parent environment by default (mirrors Claude Code), so this is the
653
- * identity function today. It exists so a future policy can narrow the set
654
- * (e.g. strip credential `exposeAsEnv` secrets, or allowlist by name) in ONE
655
- * place instead of scattering `isSubAgent` checks through readShellEnv.
656
- */
657
- private filterSubagentEnv;
658
- /**
659
- * Read the project's `localEnvironment.setupScripts` for this cwd (the raw
660
- * per-platform map). Used by EnterWorktree to run setup once in a freshly
661
- * created worktree. Returns undefined for sub-agents / no cwd (same minimal
662
- * surface as readShellEnv). The platform selection + run live in
663
- * git/worktree.ts; this only fetches the configured scripts.
664
- */
665
- readWorktreeSetupScripts(cwd?: string): {
666
- default?: string;
667
- macos?: string;
668
- linux?: string;
669
- windows?: string;
670
- } | undefined;
671
- readWorktreeBranchPrefix(cwd?: string): string | undefined;
672
- resolveWorktreeSetupSandbox(cwd: string): Promise<SandboxBackend | undefined>;
673
- readWorktreeSetupShellEnv(cwd?: string): Record<string, string> | undefined;
674
- buildToolContext(): ToolContext;
740
+ buildToolContext(cwd?: string, explicitProfileOverrides?: CapabilityOverrides, profileMemoryDir?: string): ToolContext;
675
741
  /**
676
742
  * Read settings.disabledSkills + settings.disabledPlugins in a single
677
743
  * pass. Sub-agents skip both for the same reason they skip
@@ -713,11 +779,4 @@ export declare class Engine {
713
779
  * falls back to its built-in defaults.
714
780
  */
715
781
  private readMemoriesConfig;
716
- /**
717
- * LLM client for memory extraction (TODO 8.1). Prefers
718
- * settings.memories.extractionModel when it names a valid pool model;
719
- * otherwise falls back to the aux client (which itself falls back to the
720
- * passed primary). Build failures fall back too — extraction is best-effort.
721
- */
722
- private resolveExtractionClient;
723
782
  }