@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,321 @@
1
+ /**
2
+ * WorkspaceProfile(数字人)— harness 元机制的数据定义。
3
+ * 引用现有窄 AgentPreset,不修改它;plugins/skills/mcp/agents 在激活时
4
+ * 展开为 capabilityOverrides 形状的 force-enable 快照(见 activation.ts)。
5
+ * 设计稿:docs/superpowers/specs/2026-07-15-workspace-profile-design.md
6
+ */
7
+ import { z } from "zod";
8
+ /** 目录名即机器标识:小写字母/数字开头,可含 - _,防路径逃逸。 */
9
+ export declare const WORKSPACE_PROFILE_NAME_RE: RegExp;
10
+ /**
11
+ * `owner/repo`。收紧到 GitHub 允许的字符集,且两段都不能以 `-`/`.` 开头 ——
12
+ * 这个值会作为参数传给 `npx skills add`,必须挡住 `--flag`、`../` 一类注入。
13
+ */
14
+ export declare const SKILL_REPO_RE: RegExp;
15
+ /** 纯数字点分版本,避免把任意字符串塞进版本比较。 */
16
+ export declare const TOOL_VERSION_RE: RegExp;
17
+ /** 持久化与提示注入的防滥用边界;Desktop 编辑器应保持相同上限。 */
18
+ export declare const WORKSPACE_PROFILE_LIMITS: {
19
+ readonly label: 120;
20
+ readonly description: 4096;
21
+ readonly basePreset: 128;
22
+ readonly mainInstruction: 32768;
23
+ readonly version: 128;
24
+ readonly capabilityCount: 128;
25
+ readonly capabilityName: 256;
26
+ /** requires.skills / requires.tools 各自的条目上限。 */
27
+ readonly requirementCount: 16;
28
+ };
29
+ /**
30
+ * 依赖来源:数字人自带的「怎么把能力弄来」声明。
31
+ *
32
+ * 与 plugins/skills/mcp/agents 的分工:那四个是 force-enable 开关(只能打开
33
+ * 磁盘上已存在的东西),`requires` 才是获取步骤。没有 `requires` 的旧 profile
34
+ * 行为完全不变。
35
+ *
36
+ * 解析、冲突预检与安装见 requirements.ts —— 安装涉及克隆远程仓库与执行
37
+ * `npx skills add`,必须先经用户确认,绝不静默执行。
38
+ */
39
+ declare const skillRequirementSchema: z.ZodObject<{
40
+ /** 目前只支持 github;保留判别字段以便后续扩展。 */
41
+ source: z.ZodLiteral<"github">;
42
+ /** `owner/repo` 形式。 */
43
+ repo: z.ZodString;
44
+ /** 只装这些 skill;省略表示装全部(`--all`)。 */
45
+ skills: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
46
+ /**
47
+ * project → `<cwd>/.agents/skills`(scanner 认)。
48
+ * user 级 `npx skills add -g` 落在 `~/.claude/skills`,**不在 scanner 的三个根里**,
49
+ * 装了会扫不到,故不开放该 scope。
50
+ */
51
+ scope: z.ZodDefault<z.ZodLiteral<"project">>;
52
+ /** 仓库根有 SKILL.md 时也继续深搜子目录。 */
53
+ fullDepth: z.ZodDefault<z.ZodBoolean>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ source: "github";
56
+ scope: "project";
57
+ repo: string;
58
+ fullDepth: boolean;
59
+ skills?: string[] | undefined;
60
+ }, {
61
+ source: "github";
62
+ repo: string;
63
+ scope?: "project" | undefined;
64
+ skills?: string[] | undefined;
65
+ fullDepth?: boolean | undefined;
66
+ }>;
67
+ /** 装不了、只能检测的外部命令(ffmpeg / node …)。缺失时提前失败,而不是渲染到一半才炸。 */
68
+ declare const toolRequirementSchema: z.ZodObject<{
69
+ bin: z.ZodString;
70
+ /** 形如 "22"、"22.1"、"22.1.0",与 `--version` 输出的首个版本号比较。 */
71
+ minVersion: z.ZodOptional<z.ZodString>;
72
+ /** 缺失时展示给用户的安装建议,例如 "brew install ffmpeg"。 */
73
+ hint: z.ZodOptional<z.ZodString>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ bin: string;
76
+ minVersion?: string | undefined;
77
+ hint?: string | undefined;
78
+ }, {
79
+ bin: string;
80
+ minVersion?: string | undefined;
81
+ hint?: string | undefined;
82
+ }>;
83
+ export declare const WorkspaceProfileRequirementsSchema: z.ZodObject<{
84
+ skills: z.ZodDefault<z.ZodArray<z.ZodObject<{
85
+ /** 目前只支持 github;保留判别字段以便后续扩展。 */
86
+ source: z.ZodLiteral<"github">;
87
+ /** `owner/repo` 形式。 */
88
+ repo: z.ZodString;
89
+ /** 只装这些 skill;省略表示装全部(`--all`)。 */
90
+ skills: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
91
+ /**
92
+ * project → `<cwd>/.agents/skills`(scanner 认)。
93
+ * user 级 `npx skills add -g` 落在 `~/.claude/skills`,**不在 scanner 的三个根里**,
94
+ * 装了会扫不到,故不开放该 scope。
95
+ */
96
+ scope: z.ZodDefault<z.ZodLiteral<"project">>;
97
+ /** 仓库根有 SKILL.md 时也继续深搜子目录。 */
98
+ fullDepth: z.ZodDefault<z.ZodBoolean>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ source: "github";
101
+ scope: "project";
102
+ repo: string;
103
+ fullDepth: boolean;
104
+ skills?: string[] | undefined;
105
+ }, {
106
+ source: "github";
107
+ repo: string;
108
+ scope?: "project" | undefined;
109
+ skills?: string[] | undefined;
110
+ fullDepth?: boolean | undefined;
111
+ }>, "many">>;
112
+ tools: z.ZodDefault<z.ZodArray<z.ZodObject<{
113
+ bin: z.ZodString;
114
+ /** 形如 "22"、"22.1"、"22.1.0",与 `--version` 输出的首个版本号比较。 */
115
+ minVersion: z.ZodOptional<z.ZodString>;
116
+ /** 缺失时展示给用户的安装建议,例如 "brew install ffmpeg"。 */
117
+ hint: z.ZodOptional<z.ZodString>;
118
+ }, "strip", z.ZodTypeAny, {
119
+ bin: string;
120
+ minVersion?: string | undefined;
121
+ hint?: string | undefined;
122
+ }, {
123
+ bin: string;
124
+ minVersion?: string | undefined;
125
+ hint?: string | undefined;
126
+ }>, "many">>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ skills: {
129
+ source: "github";
130
+ scope: "project";
131
+ repo: string;
132
+ fullDepth: boolean;
133
+ skills?: string[] | undefined;
134
+ }[];
135
+ tools: {
136
+ bin: string;
137
+ minVersion?: string | undefined;
138
+ hint?: string | undefined;
139
+ }[];
140
+ }, {
141
+ skills?: {
142
+ source: "github";
143
+ repo: string;
144
+ scope?: "project" | undefined;
145
+ skills?: string[] | undefined;
146
+ fullDepth?: boolean | undefined;
147
+ }[] | undefined;
148
+ tools?: {
149
+ bin: string;
150
+ minVersion?: string | undefined;
151
+ hint?: string | undefined;
152
+ }[] | undefined;
153
+ }>;
154
+ export type SkillRequirement = z.infer<typeof skillRequirementSchema>;
155
+ export type ToolRequirement = z.infer<typeof toolRequirementSchema>;
156
+ export type WorkspaceProfileRequirements = z.infer<typeof WorkspaceProfileRequirementsSchema>;
157
+ export declare const WorkspaceProfileSchema: z.ZodObject<{
158
+ name: z.ZodString;
159
+ label: z.ZodString;
160
+ description: z.ZodOptional<z.ZodString>;
161
+ /** 引用现有 AgentPreset 名(如 "general");不在 schema 层校验存在性,解析时才校验。 */
162
+ basePreset: z.ZodString;
163
+ /** 可选:省略即旧行为(只 enable,不获取)。 */
164
+ requires: z.ZodOptional<z.ZodObject<{
165
+ skills: z.ZodDefault<z.ZodArray<z.ZodObject<{
166
+ /** 目前只支持 github;保留判别字段以便后续扩展。 */
167
+ source: z.ZodLiteral<"github">;
168
+ /** `owner/repo` 形式。 */
169
+ repo: z.ZodString;
170
+ /** 只装这些 skill;省略表示装全部(`--all`)。 */
171
+ skills: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
172
+ /**
173
+ * project → `<cwd>/.agents/skills`(scanner 认)。
174
+ * user 级 `npx skills add -g` 落在 `~/.claude/skills`,**不在 scanner 的三个根里**,
175
+ * 装了会扫不到,故不开放该 scope。
176
+ */
177
+ scope: z.ZodDefault<z.ZodLiteral<"project">>;
178
+ /** 仓库根有 SKILL.md 时也继续深搜子目录。 */
179
+ fullDepth: z.ZodDefault<z.ZodBoolean>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ source: "github";
182
+ scope: "project";
183
+ repo: string;
184
+ fullDepth: boolean;
185
+ skills?: string[] | undefined;
186
+ }, {
187
+ source: "github";
188
+ repo: string;
189
+ scope?: "project" | undefined;
190
+ skills?: string[] | undefined;
191
+ fullDepth?: boolean | undefined;
192
+ }>, "many">>;
193
+ tools: z.ZodDefault<z.ZodArray<z.ZodObject<{
194
+ bin: z.ZodString;
195
+ /** 形如 "22"、"22.1"、"22.1.0",与 `--version` 输出的首个版本号比较。 */
196
+ minVersion: z.ZodOptional<z.ZodString>;
197
+ /** 缺失时展示给用户的安装建议,例如 "brew install ffmpeg"。 */
198
+ hint: z.ZodOptional<z.ZodString>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ bin: string;
201
+ minVersion?: string | undefined;
202
+ hint?: string | undefined;
203
+ }, {
204
+ bin: string;
205
+ minVersion?: string | undefined;
206
+ hint?: string | undefined;
207
+ }>, "many">>;
208
+ }, "strip", z.ZodTypeAny, {
209
+ skills: {
210
+ source: "github";
211
+ scope: "project";
212
+ repo: string;
213
+ fullDepth: boolean;
214
+ skills?: string[] | undefined;
215
+ }[];
216
+ tools: {
217
+ bin: string;
218
+ minVersion?: string | undefined;
219
+ hint?: string | undefined;
220
+ }[];
221
+ }, {
222
+ skills?: {
223
+ source: "github";
224
+ repo: string;
225
+ scope?: "project" | undefined;
226
+ skills?: string[] | undefined;
227
+ fullDepth?: boolean | undefined;
228
+ }[] | undefined;
229
+ tools?: {
230
+ bin: string;
231
+ minVersion?: string | undefined;
232
+ hint?: string | undefined;
233
+ }[] | undefined;
234
+ }>>;
235
+ /**
236
+ * true → 独占工作面:激活时把**未声明**的 skill/plugin/mcp/agent 显式关掉,
237
+ * 而不是与用户已开启的取并集。
238
+ *
239
+ * 默认 false(并集)是安全的:数字人只保证「该有的能力一定在」,绝不静默
240
+ * 关掉用户手动开的东西。独占是更强的意图——「切到这个数字人就只用这套工具」
241
+ * ——上下文更干净,但代价是用户会发现自己开的东西不见了,所以必须显式声明。
242
+ * 注意:用户在项目 settings 里手写的 override 优先级仍然最高(见 overlay.ts)。
243
+ */
244
+ exclusiveCapabilities: z.ZodDefault<z.ZodBoolean>;
245
+ plugins: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
246
+ skills: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
247
+ mcp: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
248
+ agents: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>>;
249
+ /** 数字人主指令,注入系统提示(优先级低于本地 CLAUDE.md,高于 preset sections)。 */
250
+ mainInstruction: z.ZodOptional<z.ZodString>;
251
+ /** true → 挂载 profiles/<name>/ 为第二记忆层(跟数字人走)。 */
252
+ portableMemory: z.ZodDefault<z.ZodBoolean>;
253
+ version: z.ZodOptional<z.ZodString>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ mcp: string[];
256
+ name: string;
257
+ label: string;
258
+ skills: string[];
259
+ plugins: string[];
260
+ agents: string[];
261
+ basePreset: string;
262
+ exclusiveCapabilities: boolean;
263
+ portableMemory: boolean;
264
+ version?: string | undefined;
265
+ description?: string | undefined;
266
+ requires?: {
267
+ skills: {
268
+ source: "github";
269
+ scope: "project";
270
+ repo: string;
271
+ fullDepth: boolean;
272
+ skills?: string[] | undefined;
273
+ }[];
274
+ tools: {
275
+ bin: string;
276
+ minVersion?: string | undefined;
277
+ hint?: string | undefined;
278
+ }[];
279
+ } | undefined;
280
+ mainInstruction?: string | undefined;
281
+ }, {
282
+ name: string;
283
+ label: string;
284
+ basePreset: string;
285
+ version?: string | undefined;
286
+ mcp?: string[] | undefined;
287
+ description?: string | undefined;
288
+ skills?: string[] | undefined;
289
+ plugins?: string[] | undefined;
290
+ agents?: string[] | undefined;
291
+ requires?: {
292
+ skills?: {
293
+ source: "github";
294
+ repo: string;
295
+ scope?: "project" | undefined;
296
+ skills?: string[] | undefined;
297
+ fullDepth?: boolean | undefined;
298
+ }[] | undefined;
299
+ tools?: {
300
+ bin: string;
301
+ minVersion?: string | undefined;
302
+ hint?: string | undefined;
303
+ }[] | undefined;
304
+ } | undefined;
305
+ exclusiveCapabilities?: boolean | undefined;
306
+ mainInstruction?: string | undefined;
307
+ portableMemory?: boolean | undefined;
308
+ }>;
309
+ export type WorkspaceProfile = z.infer<typeof WorkspaceProfileSchema>;
310
+ /**
311
+ * 写入侧类型:带 `.default()` 的字段(`exclusiveCapabilities`、`portableMemory`、
312
+ * 四个 capability 列表)在这里是可选的。
313
+ *
314
+ * 为什么需要它:`WorkspaceProfile` 是 schema 的**输出**类型,defaults 已解析,
315
+ * 所以每个字段都是必填。但接受「未解析的 profile 再 parse」的函数
316
+ * (如 `saveWorkspaceProfile`)实际契约是**输入**类型——用输出类型标注会强迫每个
317
+ * 调用方手写它本来就想让 schema 填的默认值。schema 新增一个带 default 的字段时,
318
+ * 这个错配会让所有既有调用方一起报错(`exclusiveCapabilities` 就是这么发生的)。
319
+ */
320
+ export type WorkspaceProfileInput = z.input<typeof WorkspaceProfileSchema>;
321
+ export {};
@@ -0,0 +1,104 @@
1
+ /**
2
+ * WorkspaceProfile(数字人)— harness 元机制的数据定义。
3
+ * 引用现有窄 AgentPreset,不修改它;plugins/skills/mcp/agents 在激活时
4
+ * 展开为 capabilityOverrides 形状的 force-enable 快照(见 activation.ts)。
5
+ * 设计稿:docs/superpowers/specs/2026-07-15-workspace-profile-design.md
6
+ */
7
+ import { z } from "zod";
8
+ /** 目录名即机器标识:小写字母/数字开头,可含 - _,防路径逃逸。 */
9
+ export const WORKSPACE_PROFILE_NAME_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/;
10
+ /**
11
+ * `owner/repo`。收紧到 GitHub 允许的字符集,且两段都不能以 `-`/`.` 开头 ——
12
+ * 这个值会作为参数传给 `npx skills add`,必须挡住 `--flag`、`../` 一类注入。
13
+ */
14
+ export const SKILL_REPO_RE = /^[A-Za-z0-9][A-Za-z0-9-]{0,38}\/[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;
15
+ /** 纯数字点分版本,避免把任意字符串塞进版本比较。 */
16
+ export const TOOL_VERSION_RE = /^\d+(\.\d+){0,2}$/;
17
+ /** 持久化与提示注入的防滥用边界;Desktop 编辑器应保持相同上限。 */
18
+ export const WORKSPACE_PROFILE_LIMITS = {
19
+ label: 120,
20
+ description: 4_096,
21
+ basePreset: 128,
22
+ mainInstruction: 32_768,
23
+ version: 128,
24
+ capabilityCount: 128,
25
+ capabilityName: 256,
26
+ /** requires.skills / requires.tools 各自的条目上限。 */
27
+ requirementCount: 16,
28
+ };
29
+ const capabilityNameSchema = z.string().min(1).max(WORKSPACE_PROFILE_LIMITS.capabilityName);
30
+ const capabilityListSchema = z
31
+ .array(capabilityNameSchema)
32
+ .max(WORKSPACE_PROFILE_LIMITS.capabilityCount)
33
+ .refine((items) => new Set(items).size === items.length, {
34
+ message: "capability entries must be unique",
35
+ });
36
+ /**
37
+ * 依赖来源:数字人自带的「怎么把能力弄来」声明。
38
+ *
39
+ * 与 plugins/skills/mcp/agents 的分工:那四个是 force-enable 开关(只能打开
40
+ * 磁盘上已存在的东西),`requires` 才是获取步骤。没有 `requires` 的旧 profile
41
+ * 行为完全不变。
42
+ *
43
+ * 解析、冲突预检与安装见 requirements.ts —— 安装涉及克隆远程仓库与执行
44
+ * `npx skills add`,必须先经用户确认,绝不静默执行。
45
+ */
46
+ const skillRequirementSchema = z.object({
47
+ /** 目前只支持 github;保留判别字段以便后续扩展。 */
48
+ source: z.literal("github"),
49
+ /** `owner/repo` 形式。 */
50
+ repo: z.string().regex(SKILL_REPO_RE),
51
+ /** 只装这些 skill;省略表示装全部(`--all`)。 */
52
+ skills: capabilityListSchema.optional(),
53
+ /**
54
+ * project → `<cwd>/.agents/skills`(scanner 认)。
55
+ * user 级 `npx skills add -g` 落在 `~/.claude/skills`,**不在 scanner 的三个根里**,
56
+ * 装了会扫不到,故不开放该 scope。
57
+ */
58
+ scope: z.literal("project").default("project"),
59
+ /** 仓库根有 SKILL.md 时也继续深搜子目录。 */
60
+ fullDepth: z.boolean().default(false),
61
+ });
62
+ /** 装不了、只能检测的外部命令(ffmpeg / node …)。缺失时提前失败,而不是渲染到一半才炸。 */
63
+ const toolRequirementSchema = z.object({
64
+ bin: z.string().min(1).max(WORKSPACE_PROFILE_LIMITS.capabilityName),
65
+ /** 形如 "22"、"22.1"、"22.1.0",与 `--version` 输出的首个版本号比较。 */
66
+ minVersion: z.string().regex(TOOL_VERSION_RE).optional(),
67
+ /** 缺失时展示给用户的安装建议,例如 "brew install ffmpeg"。 */
68
+ hint: z.string().max(WORKSPACE_PROFILE_LIMITS.capabilityName).optional(),
69
+ });
70
+ export const WorkspaceProfileRequirementsSchema = z.object({
71
+ skills: z
72
+ .array(skillRequirementSchema)
73
+ .max(WORKSPACE_PROFILE_LIMITS.requirementCount)
74
+ .default([]),
75
+ tools: z.array(toolRequirementSchema).max(WORKSPACE_PROFILE_LIMITS.requirementCount).default([]),
76
+ });
77
+ export const WorkspaceProfileSchema = z.object({
78
+ name: z.string().regex(WORKSPACE_PROFILE_NAME_RE),
79
+ label: z.string().min(1).max(WORKSPACE_PROFILE_LIMITS.label),
80
+ description: z.string().max(WORKSPACE_PROFILE_LIMITS.description).optional(),
81
+ /** 引用现有 AgentPreset 名(如 "general");不在 schema 层校验存在性,解析时才校验。 */
82
+ basePreset: z.string().min(1).max(WORKSPACE_PROFILE_LIMITS.basePreset),
83
+ /** 可选:省略即旧行为(只 enable,不获取)。 */
84
+ requires: WorkspaceProfileRequirementsSchema.optional(),
85
+ /**
86
+ * true → 独占工作面:激活时把**未声明**的 skill/plugin/mcp/agent 显式关掉,
87
+ * 而不是与用户已开启的取并集。
88
+ *
89
+ * 默认 false(并集)是安全的:数字人只保证「该有的能力一定在」,绝不静默
90
+ * 关掉用户手动开的东西。独占是更强的意图——「切到这个数字人就只用这套工具」
91
+ * ——上下文更干净,但代价是用户会发现自己开的东西不见了,所以必须显式声明。
92
+ * 注意:用户在项目 settings 里手写的 override 优先级仍然最高(见 overlay.ts)。
93
+ */
94
+ exclusiveCapabilities: z.boolean().default(false),
95
+ plugins: capabilityListSchema.default([]),
96
+ skills: capabilityListSchema.default([]),
97
+ mcp: capabilityListSchema.default([]),
98
+ agents: capabilityListSchema.default([]),
99
+ /** 数字人主指令,注入系统提示(优先级低于本地 CLAUDE.md,高于 preset sections)。 */
100
+ mainInstruction: z.string().max(WORKSPACE_PROFILE_LIMITS.mainInstruction).optional(),
101
+ /** true → 挂载 profiles/<name>/ 为第二记忆层(跟数字人走)。 */
102
+ portableMemory: z.boolean().default(false),
103
+ version: z.string().max(WORKSPACE_PROFILE_LIMITS.version).optional(),
104
+ });
@@ -8,6 +8,8 @@
8
8
  import type { ToolDefinition, Message } from "../types.js";
9
9
  import { type ScanOptions } from "./instruction-scanner.js";
10
10
  import { type AgentPreset } from "../preset/index.js";
11
+ import type { BuiltinTool } from "../tool-system/builtin/index.js";
12
+ import type { CapabilityDynamicContextProvider } from "../capabilities/index.js";
11
13
  export interface ComposerOptions {
12
14
  cwd: string;
13
15
  model: string;
@@ -16,10 +18,46 @@ export interface ComposerOptions {
16
18
  preset?: AgentPreset;
17
19
  customSystemPrompt?: string;
18
20
  appendSystemPrompt?: string;
21
+ /** Prompt text and tool metadata supplied by this Engine's capability modules. */
22
+ capabilityPromptSections?: Readonly<Record<string, string>>;
23
+ /** Per-turn context owned by installed capability modules. */
24
+ dynamicContextProviders?: readonly CapabilityDynamicContextProvider[];
25
+ /**
26
+ * 已绑定数据源的 metadata 摘要(名称/scope/状态;无源返回 "")。只走动态
27
+ * 上下文(不进可缓存 system 前缀),资源内容与 secret 永不注入(ADR §5/§7)。
28
+ */
29
+ sourcesContextProvider?: () => string | Promise<string>;
30
+ toolCatalog?: readonly BuiltinTool[];
19
31
  /** User's preferred response language (free text), injected as a stable system section. */
20
32
  responseLanguage?: string;
21
33
  /** How to address the user / short profile (free text). */
22
34
  userProfile?: string;
35
+ /**
36
+ * 激活数字人(WorkspaceProfile)的主指令。排序在 preset behavior 之后、
37
+ * appendSystemPrompt 之前 —— 本地 CLAUDE.md(user-context 消息)与用户
38
+ * append 都比它更“具体/优先”。来源:engine 经 resolveActiveWorkspaceProfile
39
+ * 解析后传入;composer 不自行读盘。
40
+ */
41
+ profileMainInstruction?: string;
42
+ /**
43
+ * Standing brief for this Session (see SessionState.sessionBrief) — team role,
44
+ * teammate Session ids, the lead's playbook. Part of the cached system prefix
45
+ * because it is fixed for the Session's lifetime, unlike the skills listing.
46
+ */
47
+ sessionBrief?: string;
48
+ /**
49
+ * Skills the active digital human declares (`WorkspaceProfile.skills`).
50
+ *
51
+ * Used only to warn when a declared skill is not actually installed here.
52
+ * `requires` installs per project, so a digital human summoned in a project
53
+ * that never got the install has an instruction telling it to use `/x` while
54
+ * `/x` does not exist — a real session then called `/hyperframes`, got
55
+ * "Skill not found", searched with Glob, and gave up. Stating the gap costs a
56
+ * line and stops the flailing.
57
+ */
58
+ profileDeclaredSkills?: readonly string[];
59
+ /** 激活数字人的可移植记忆层根目录(portableMemory=true 时由 engine 传入)。 */
60
+ profileMemoryDir?: string;
23
61
  /**
24
62
  * Skill names (full names including any "<plugin>:" prefix) the user
25
63
  * has disabled in settings. Filtered out of the LLM's skills listing
@@ -65,23 +103,24 @@ export declare class PromptComposer {
65
103
  * Build the userContext prefix message (CLAUDE.md content as <system-reminder>).
66
104
  */
67
105
  buildUserContextMessage(): Message | null;
68
- /**
69
- * Build the systemContext (gitStatus etc.) to append to system prompt.
70
- * Only injects git status if the resolved preset opts in.
71
- */
106
+ /** Build volatile context contributed by installed capability modules. */
72
107
  buildSystemContext(): Promise<string>;
73
108
  /**
74
109
  * Per-turn dynamic context, delivered as a trailing <system-reminder> user
75
110
  * message rather than baked into the system prefix.
76
111
  *
77
- * Holds the two things that change *within* a session — the skills listing
78
- * (changes when a skill is installed/disabled) and the git-status snapshot
79
- * (changes whenever the working tree changes). Keeping them out of the
112
+ * Holds things that change *within* a session — the skills listing plus
113
+ * capability-owned volatile context. Keeping them out of the
80
114
  * system prompt means installing a skill or editing a file no longer
81
115
  * invalidates the cached system prefix. Placed at the END of the messages
82
116
  * array (after the user task) so it sits past the conversation's cache
83
117
  * breakpoint — a change here never re-bills the history prefix.
84
118
  */
119
+ /**
120
+ * Declared-but-absent skills, stated plainly. Rides the dynamic context (not
121
+ * the cached system prefix) because it depends on what is installed right now.
122
+ */
123
+ private buildDeclaredSkillGap;
85
124
  buildDynamicContextMessage(): Promise<Message | null>;
86
125
  private buildGoalToolContext;
87
126
  invalidateCache(sectionName?: string): void;