@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
@@ -6,10 +6,10 @@
6
6
  * create a configured instance (stored in settings.imageGen/videoGen.providers[]).
7
7
  * Catalog = "能配哪些"; providers[] = "配了哪些". The two are decoupled.
8
8
  *
9
- * `adapterKind` reuses the existing adapter selectors ("openai"/"google"/"fal")
10
- * the runtime getImageProvider/getVideoProvider switches and adapter classes
11
- * are unchanged; the catalog only declares which template points at which
12
- * already-wired adapter. `shape` is documentation/future only.
9
+ * For text entries, `adapterKind` is the provider/gateway capability identity
10
+ * ("openai"/"openrouter"/"deepseek"/…), while `protocol` selects the wire
11
+ * client. For image/video it remains the concrete runtime adapter selector
12
+ * ("openai"/"google"/"fal"). `shape` is documentation/future only.
13
13
  */
14
14
  import { z } from "zod";
15
15
  /**
@@ -59,8 +59,8 @@ export declare const paramSpecSchema: z.ZodObject<{
59
59
  }, "strip", z.ZodTypeAny, {
60
60
  name: string;
61
61
  control: "number" | "text" | "enum" | "toggle";
62
- options?: string[] | undefined;
63
62
  default?: string | number | boolean | undefined;
63
+ options?: string[] | undefined;
64
64
  label?: string | undefined;
65
65
  min?: number | undefined;
66
66
  max?: number | undefined;
@@ -71,8 +71,8 @@ export declare const paramSpecSchema: z.ZodObject<{
71
71
  }, {
72
72
  name: string;
73
73
  control: "number" | "text" | "enum" | "toggle";
74
- options?: string[] | undefined;
75
74
  default?: string | number | boolean | undefined;
75
+ options?: string[] | undefined;
76
76
  label?: string | undefined;
77
77
  min?: number | undefined;
78
78
  max?: number | undefined;
@@ -119,8 +119,8 @@ export declare const modelPresetSchema: z.ZodObject<{
119
119
  }, "strip", z.ZodTypeAny, {
120
120
  name: string;
121
121
  control: "number" | "text" | "enum" | "toggle";
122
- options?: string[] | undefined;
123
122
  default?: string | number | boolean | undefined;
123
+ options?: string[] | undefined;
124
124
  label?: string | undefined;
125
125
  min?: number | undefined;
126
126
  max?: number | undefined;
@@ -131,8 +131,8 @@ export declare const modelPresetSchema: z.ZodObject<{
131
131
  }, {
132
132
  name: string;
133
133
  control: "number" | "text" | "enum" | "toggle";
134
- options?: string[] | undefined;
135
134
  default?: string | number | boolean | undefined;
135
+ options?: string[] | undefined;
136
136
  label?: string | undefined;
137
137
  min?: number | undefined;
138
138
  max?: number | undefined;
@@ -146,8 +146,8 @@ export declare const modelPresetSchema: z.ZodObject<{
146
146
  params?: {
147
147
  name: string;
148
148
  control: "number" | "text" | "enum" | "toggle";
149
- options?: string[] | undefined;
150
149
  default?: string | number | boolean | undefined;
150
+ options?: string[] | undefined;
151
151
  label?: string | undefined;
152
152
  min?: number | undefined;
153
153
  max?: number | undefined;
@@ -156,17 +156,17 @@ export declare const modelPresetSchema: z.ZodObject<{
156
156
  field: string;
157
157
  } | undefined;
158
158
  }[] | undefined;
159
- supportsVision?: boolean | undefined;
160
- maxOutputTokens?: number | undefined;
161
159
  label?: string | undefined;
162
160
  maxContextTokens?: number | undefined;
161
+ maxOutputTokens?: number | undefined;
162
+ supportsVision?: boolean | undefined;
163
163
  }, {
164
164
  value: string;
165
165
  params?: {
166
166
  name: string;
167
167
  control: "number" | "text" | "enum" | "toggle";
168
- options?: string[] | undefined;
169
168
  default?: string | number | boolean | undefined;
169
+ options?: string[] | undefined;
170
170
  label?: string | undefined;
171
171
  min?: number | undefined;
172
172
  max?: number | undefined;
@@ -175,10 +175,10 @@ export declare const modelPresetSchema: z.ZodObject<{
175
175
  field: string;
176
176
  } | undefined;
177
177
  }[] | undefined;
178
- supportsVision?: boolean | undefined;
179
- maxOutputTokens?: number | undefined;
180
178
  label?: string | undefined;
181
179
  maxContextTokens?: number | undefined;
180
+ maxOutputTokens?: number | undefined;
181
+ supportsVision?: boolean | undefined;
182
182
  }>;
183
183
  export type ModelPreset = z.infer<typeof modelPresetSchema>;
184
184
  export declare const catalogEntrySchema: z.ZodObject<{
@@ -186,7 +186,11 @@ export declare const catalogEntrySchema: z.ZodObject<{
186
186
  id: z.ZodString;
187
187
  /** Which 连接 page group this lands in. (audio = speech-to-text / voice input.) */
188
188
  tag: z.ZodEnum<["text", "image", "video", "audio"]>;
189
- /** Runtime adapter selector — reuses existing "openai" | "anthropic" | "google" | "fal". */
189
+ /**
190
+ * Provider/gateway identity for text (distinct from `protocol`), or concrete
191
+ * runtime adapter for image/video. OpenRouter is `openrouter` even though its
192
+ * text protocol is `openai-compat`.
193
+ */
190
194
  adapterKind: z.ZodString;
191
195
  /** LLM client protocol (text entries). */
192
196
  protocol: z.ZodOptional<z.ZodEnum<["openai-compat", "anthropic-style"]>>;
@@ -198,6 +202,13 @@ export declare const catalogEntrySchema: z.ZodObject<{
198
202
  defaultModel: z.ZodOptional<z.ZodString>;
199
203
  /** Whether this provider needs an API key (ollama/local = false). */
200
204
  needsKey: z.ZodOptional<z.ZodBoolean>;
205
+ /**
206
+ * How a user entry with the same id as a built-in provider contributes model
207
+ * presets. Absent/"replace" preserves the legacy full-override behavior;
208
+ * "merge" treats modelPresets as per-model additions/overrides keyed by
209
+ * `value`, so future built-in models remain visible.
210
+ */
211
+ modelPresetsMode: z.ZodOptional<z.ZodEnum<["replace", "merge"]>>;
201
212
  modelPresets: z.ZodOptional<z.ZodArray<z.ZodObject<{
202
213
  value: z.ZodString;
203
214
  label: z.ZodOptional<z.ZodString>;
@@ -230,8 +241,8 @@ export declare const catalogEntrySchema: z.ZodObject<{
230
241
  }, "strip", z.ZodTypeAny, {
231
242
  name: string;
232
243
  control: "number" | "text" | "enum" | "toggle";
233
- options?: string[] | undefined;
234
244
  default?: string | number | boolean | undefined;
245
+ options?: string[] | undefined;
235
246
  label?: string | undefined;
236
247
  min?: number | undefined;
237
248
  max?: number | undefined;
@@ -242,8 +253,8 @@ export declare const catalogEntrySchema: z.ZodObject<{
242
253
  }, {
243
254
  name: string;
244
255
  control: "number" | "text" | "enum" | "toggle";
245
- options?: string[] | undefined;
246
256
  default?: string | number | boolean | undefined;
257
+ options?: string[] | undefined;
247
258
  label?: string | undefined;
248
259
  min?: number | undefined;
249
260
  max?: number | undefined;
@@ -257,8 +268,8 @@ export declare const catalogEntrySchema: z.ZodObject<{
257
268
  params?: {
258
269
  name: string;
259
270
  control: "number" | "text" | "enum" | "toggle";
260
- options?: string[] | undefined;
261
271
  default?: string | number | boolean | undefined;
272
+ options?: string[] | undefined;
262
273
  label?: string | undefined;
263
274
  min?: number | undefined;
264
275
  max?: number | undefined;
@@ -267,17 +278,17 @@ export declare const catalogEntrySchema: z.ZodObject<{
267
278
  field: string;
268
279
  } | undefined;
269
280
  }[] | undefined;
270
- supportsVision?: boolean | undefined;
271
- maxOutputTokens?: number | undefined;
272
281
  label?: string | undefined;
273
282
  maxContextTokens?: number | undefined;
283
+ maxOutputTokens?: number | undefined;
284
+ supportsVision?: boolean | undefined;
274
285
  }, {
275
286
  value: string;
276
287
  params?: {
277
288
  name: string;
278
289
  control: "number" | "text" | "enum" | "toggle";
279
- options?: string[] | undefined;
280
290
  default?: string | number | boolean | undefined;
291
+ options?: string[] | undefined;
281
292
  label?: string | undefined;
282
293
  min?: number | undefined;
283
294
  max?: number | undefined;
@@ -286,10 +297,10 @@ export declare const catalogEntrySchema: z.ZodObject<{
286
297
  field: string;
287
298
  } | undefined;
288
299
  }[] | undefined;
289
- supportsVision?: boolean | undefined;
290
- maxOutputTokens?: number | undefined;
291
300
  label?: string | undefined;
292
301
  maxContextTokens?: number | undefined;
302
+ maxOutputTokens?: number | undefined;
303
+ supportsVision?: boolean | undefined;
293
304
  }>, "many">>;
294
305
  signupUrl: z.ZodOptional<z.ZodString>;
295
306
  /** Whether the 连接 card offers a "测试" button (image=true, video=false). */
@@ -303,22 +314,23 @@ export declare const catalogEntrySchema: z.ZodObject<{
303
314
  }, "strip", z.ZodTypeAny, {
304
315
  id: string;
305
316
  tag: "text" | "image" | "video" | "audio";
317
+ description: string;
306
318
  adapterKind: string;
307
319
  displayName: string;
308
- description: string;
309
320
  defaultBaseUrl: string;
310
321
  shape?: "generic-sync" | "fal-queue" | undefined;
311
322
  test?: boolean | undefined;
312
323
  defaultModel?: string | undefined;
313
324
  protocol?: "openai-compat" | "anthropic-style" | undefined;
314
325
  needsKey?: boolean | undefined;
326
+ modelPresetsMode?: "replace" | "merge" | undefined;
315
327
  modelPresets?: {
316
328
  value: string;
317
329
  params?: {
318
330
  name: string;
319
331
  control: "number" | "text" | "enum" | "toggle";
320
- options?: string[] | undefined;
321
332
  default?: string | number | boolean | undefined;
333
+ options?: string[] | undefined;
322
334
  label?: string | undefined;
323
335
  min?: number | undefined;
324
336
  max?: number | undefined;
@@ -327,32 +339,33 @@ export declare const catalogEntrySchema: z.ZodObject<{
327
339
  field: string;
328
340
  } | undefined;
329
341
  }[] | undefined;
330
- supportsVision?: boolean | undefined;
331
- maxOutputTokens?: number | undefined;
332
342
  label?: string | undefined;
333
343
  maxContextTokens?: number | undefined;
344
+ maxOutputTokens?: number | undefined;
345
+ supportsVision?: boolean | undefined;
334
346
  }[] | undefined;
335
347
  signupUrl?: string | undefined;
336
348
  paramsDoc?: string | undefined;
337
349
  }, {
338
350
  id: string;
339
351
  tag: "text" | "image" | "video" | "audio";
352
+ description: string;
340
353
  adapterKind: string;
341
354
  displayName: string;
342
- description: string;
343
355
  defaultBaseUrl: string;
344
356
  shape?: "generic-sync" | "fal-queue" | undefined;
345
357
  test?: boolean | undefined;
346
358
  defaultModel?: string | undefined;
347
359
  protocol?: "openai-compat" | "anthropic-style" | undefined;
348
360
  needsKey?: boolean | undefined;
361
+ modelPresetsMode?: "replace" | "merge" | undefined;
349
362
  modelPresets?: {
350
363
  value: string;
351
364
  params?: {
352
365
  name: string;
353
366
  control: "number" | "text" | "enum" | "toggle";
354
- options?: string[] | undefined;
355
367
  default?: string | number | boolean | undefined;
368
+ options?: string[] | undefined;
356
369
  label?: string | undefined;
357
370
  min?: number | undefined;
358
371
  max?: number | undefined;
@@ -361,10 +374,10 @@ export declare const catalogEntrySchema: z.ZodObject<{
361
374
  field: string;
362
375
  } | undefined;
363
376
  }[] | undefined;
364
- supportsVision?: boolean | undefined;
365
- maxOutputTokens?: number | undefined;
366
377
  label?: string | undefined;
367
378
  maxContextTokens?: number | undefined;
379
+ maxOutputTokens?: number | undefined;
380
+ supportsVision?: boolean | undefined;
368
381
  }[] | undefined;
369
382
  signupUrl?: string | undefined;
370
383
  paramsDoc?: string | undefined;
@@ -376,7 +389,11 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
376
389
  id: z.ZodString;
377
390
  /** Which 连接 page group this lands in. (audio = speech-to-text / voice input.) */
378
391
  tag: z.ZodEnum<["text", "image", "video", "audio"]>;
379
- /** Runtime adapter selector — reuses existing "openai" | "anthropic" | "google" | "fal". */
392
+ /**
393
+ * Provider/gateway identity for text (distinct from `protocol`), or concrete
394
+ * runtime adapter for image/video. OpenRouter is `openrouter` even though its
395
+ * text protocol is `openai-compat`.
396
+ */
380
397
  adapterKind: z.ZodString;
381
398
  /** LLM client protocol (text entries). */
382
399
  protocol: z.ZodOptional<z.ZodEnum<["openai-compat", "anthropic-style"]>>;
@@ -388,6 +405,13 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
388
405
  defaultModel: z.ZodOptional<z.ZodString>;
389
406
  /** Whether this provider needs an API key (ollama/local = false). */
390
407
  needsKey: z.ZodOptional<z.ZodBoolean>;
408
+ /**
409
+ * How a user entry with the same id as a built-in provider contributes model
410
+ * presets. Absent/"replace" preserves the legacy full-override behavior;
411
+ * "merge" treats modelPresets as per-model additions/overrides keyed by
412
+ * `value`, so future built-in models remain visible.
413
+ */
414
+ modelPresetsMode: z.ZodOptional<z.ZodEnum<["replace", "merge"]>>;
391
415
  modelPresets: z.ZodOptional<z.ZodArray<z.ZodObject<{
392
416
  value: z.ZodString;
393
417
  label: z.ZodOptional<z.ZodString>;
@@ -420,8 +444,8 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
420
444
  }, "strip", z.ZodTypeAny, {
421
445
  name: string;
422
446
  control: "number" | "text" | "enum" | "toggle";
423
- options?: string[] | undefined;
424
447
  default?: string | number | boolean | undefined;
448
+ options?: string[] | undefined;
425
449
  label?: string | undefined;
426
450
  min?: number | undefined;
427
451
  max?: number | undefined;
@@ -432,8 +456,8 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
432
456
  }, {
433
457
  name: string;
434
458
  control: "number" | "text" | "enum" | "toggle";
435
- options?: string[] | undefined;
436
459
  default?: string | number | boolean | undefined;
460
+ options?: string[] | undefined;
437
461
  label?: string | undefined;
438
462
  min?: number | undefined;
439
463
  max?: number | undefined;
@@ -447,8 +471,8 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
447
471
  params?: {
448
472
  name: string;
449
473
  control: "number" | "text" | "enum" | "toggle";
450
- options?: string[] | undefined;
451
474
  default?: string | number | boolean | undefined;
475
+ options?: string[] | undefined;
452
476
  label?: string | undefined;
453
477
  min?: number | undefined;
454
478
  max?: number | undefined;
@@ -457,17 +481,17 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
457
481
  field: string;
458
482
  } | undefined;
459
483
  }[] | undefined;
460
- supportsVision?: boolean | undefined;
461
- maxOutputTokens?: number | undefined;
462
484
  label?: string | undefined;
463
485
  maxContextTokens?: number | undefined;
486
+ maxOutputTokens?: number | undefined;
487
+ supportsVision?: boolean | undefined;
464
488
  }, {
465
489
  value: string;
466
490
  params?: {
467
491
  name: string;
468
492
  control: "number" | "text" | "enum" | "toggle";
469
- options?: string[] | undefined;
470
493
  default?: string | number | boolean | undefined;
494
+ options?: string[] | undefined;
471
495
  label?: string | undefined;
472
496
  min?: number | undefined;
473
497
  max?: number | undefined;
@@ -476,10 +500,10 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
476
500
  field: string;
477
501
  } | undefined;
478
502
  }[] | undefined;
479
- supportsVision?: boolean | undefined;
480
- maxOutputTokens?: number | undefined;
481
503
  label?: string | undefined;
482
504
  maxContextTokens?: number | undefined;
505
+ maxOutputTokens?: number | undefined;
506
+ supportsVision?: boolean | undefined;
483
507
  }>, "many">>;
484
508
  signupUrl: z.ZodOptional<z.ZodString>;
485
509
  /** Whether the 连接 card offers a "测试" button (image=true, video=false). */
@@ -493,22 +517,23 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
493
517
  }, "strip", z.ZodTypeAny, {
494
518
  id: string;
495
519
  tag: "text" | "image" | "video" | "audio";
520
+ description: string;
496
521
  adapterKind: string;
497
522
  displayName: string;
498
- description: string;
499
523
  defaultBaseUrl: string;
500
524
  shape?: "generic-sync" | "fal-queue" | undefined;
501
525
  test?: boolean | undefined;
502
526
  defaultModel?: string | undefined;
503
527
  protocol?: "openai-compat" | "anthropic-style" | undefined;
504
528
  needsKey?: boolean | undefined;
529
+ modelPresetsMode?: "replace" | "merge" | undefined;
505
530
  modelPresets?: {
506
531
  value: string;
507
532
  params?: {
508
533
  name: string;
509
534
  control: "number" | "text" | "enum" | "toggle";
510
- options?: string[] | undefined;
511
535
  default?: string | number | boolean | undefined;
536
+ options?: string[] | undefined;
512
537
  label?: string | undefined;
513
538
  min?: number | undefined;
514
539
  max?: number | undefined;
@@ -517,32 +542,33 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
517
542
  field: string;
518
543
  } | undefined;
519
544
  }[] | undefined;
520
- supportsVision?: boolean | undefined;
521
- maxOutputTokens?: number | undefined;
522
545
  label?: string | undefined;
523
546
  maxContextTokens?: number | undefined;
547
+ maxOutputTokens?: number | undefined;
548
+ supportsVision?: boolean | undefined;
524
549
  }[] | undefined;
525
550
  signupUrl?: string | undefined;
526
551
  paramsDoc?: string | undefined;
527
552
  }, {
528
553
  id: string;
529
554
  tag: "text" | "image" | "video" | "audio";
555
+ description: string;
530
556
  adapterKind: string;
531
557
  displayName: string;
532
- description: string;
533
558
  defaultBaseUrl: string;
534
559
  shape?: "generic-sync" | "fal-queue" | undefined;
535
560
  test?: boolean | undefined;
536
561
  defaultModel?: string | undefined;
537
562
  protocol?: "openai-compat" | "anthropic-style" | undefined;
538
563
  needsKey?: boolean | undefined;
564
+ modelPresetsMode?: "replace" | "merge" | undefined;
539
565
  modelPresets?: {
540
566
  value: string;
541
567
  params?: {
542
568
  name: string;
543
569
  control: "number" | "text" | "enum" | "toggle";
544
- options?: string[] | undefined;
545
570
  default?: string | number | boolean | undefined;
571
+ options?: string[] | undefined;
546
572
  label?: string | undefined;
547
573
  min?: number | undefined;
548
574
  max?: number | undefined;
@@ -551,10 +577,10 @@ export declare const userCatalogFileSchema: z.ZodArray<z.ZodObject<{
551
577
  field: string;
552
578
  } | undefined;
553
579
  }[] | undefined;
554
- supportsVision?: boolean | undefined;
555
- maxOutputTokens?: number | undefined;
556
580
  label?: string | undefined;
557
581
  maxContextTokens?: number | undefined;
582
+ maxOutputTokens?: number | undefined;
583
+ supportsVision?: boolean | undefined;
558
584
  }[] | undefined;
559
585
  signupUrl?: string | undefined;
560
586
  paramsDoc?: string | undefined;
@@ -6,10 +6,10 @@
6
6
  * create a configured instance (stored in settings.imageGen/videoGen.providers[]).
7
7
  * Catalog = "能配哪些"; providers[] = "配了哪些". The two are decoupled.
8
8
  *
9
- * `adapterKind` reuses the existing adapter selectors ("openai"/"google"/"fal")
10
- * the runtime getImageProvider/getVideoProvider switches and adapter classes
11
- * are unchanged; the catalog only declares which template points at which
12
- * already-wired adapter. `shape` is documentation/future only.
9
+ * For text entries, `adapterKind` is the provider/gateway capability identity
10
+ * ("openai"/"openrouter"/"deepseek"/…), while `protocol` selects the wire
11
+ * client. For image/video it remains the concrete runtime adapter selector
12
+ * ("openai"/"google"/"fal"). `shape` is documentation/future only.
13
13
  */
14
14
  import { z } from "zod";
15
15
  /**
@@ -66,7 +66,11 @@ export const catalogEntrySchema = z.object({
66
66
  id: z.string(),
67
67
  /** Which 连接 page group this lands in. (audio = speech-to-text / voice input.) */
68
68
  tag: z.enum(["text", "image", "video", "audio"]),
69
- /** Runtime adapter selector — reuses existing "openai" | "anthropic" | "google" | "fal". */
69
+ /**
70
+ * Provider/gateway identity for text (distinct from `protocol`), or concrete
71
+ * runtime adapter for image/video. OpenRouter is `openrouter` even though its
72
+ * text protocol is `openai-compat`.
73
+ */
70
74
  adapterKind: z.string(),
71
75
  /** LLM client protocol (text entries). */
72
76
  protocol: z.enum(["openai-compat", "anthropic-style"]).optional(),
@@ -78,6 +82,13 @@ export const catalogEntrySchema = z.object({
78
82
  defaultModel: z.string().optional(),
79
83
  /** Whether this provider needs an API key (ollama/local = false). */
80
84
  needsKey: z.boolean().optional(),
85
+ /**
86
+ * How a user entry with the same id as a built-in provider contributes model
87
+ * presets. Absent/"replace" preserves the legacy full-override behavior;
88
+ * "merge" treats modelPresets as per-model additions/overrides keyed by
89
+ * `value`, so future built-in models remain visible.
90
+ */
91
+ modelPresetsMode: z.enum(["replace", "merge"]).optional(),
81
92
  modelPresets: z.array(modelPresetSchema).optional(),
82
93
  signupUrl: z.string().optional(),
83
94
  /** Whether the 连接 card offers a "测试" button (image=true, video=false). */
@@ -5,5 +5,7 @@
5
5
  * wraps this with backup + zod validate + atomic write.
6
6
  * See docs/superpowers/specs/2026-06-15-unified-model-catalog-design.md §7.
7
7
  */
8
- import type { CatalogEntry } from "./types.js";
8
+ import type { CatalogEntry, ModelPreset } from "./types.js";
9
9
  export declare function upsertCatalogEntry(existing: CatalogEntry[], entry: CatalogEntry): CatalogEntry[];
10
+ /** Add or replace one model preset by its provider-scoped model id. */
11
+ export declare function upsertModelPreset(existing: ModelPreset[], preset: ModelPreset): ModelPreset[];
@@ -6,3 +6,12 @@ export function upsertCatalogEntry(existing, entry) {
6
6
  next[idx] = entry;
7
7
  return next;
8
8
  }
9
+ /** Add or replace one model preset by its provider-scoped model id. */
10
+ export function upsertModelPreset(existing, preset) {
11
+ const idx = existing.findIndex((candidate) => candidate.value === preset.value);
12
+ if (idx === -1)
13
+ return [...existing, preset];
14
+ const next = existing.slice();
15
+ next[idx] = preset;
16
+ return next;
17
+ }
@@ -116,4 +116,3 @@ export declare function appendOnboardingResult(opts: {
116
116
  activeId: string;
117
117
  tag?: "text" | "image" | "video";
118
118
  }): void;
119
- export declare function saveArenaSettingsByKeys(keys: string[]): void;
@@ -4,7 +4,7 @@
4
4
  * (see src/ui/components/OnboardingPrompt.tsx); this module only exposes
5
5
  * pure(-ish) helpers it consumes, so there's a single input stack.
6
6
  */
7
- import { mkdirSync, writeFileSync, readFileSync, existsSync, renameSync, rmSync, chmodSync } from "node:fs";
7
+ import { mkdirSync, writeFileSync, readFileSync, existsSync, renameSync, rmSync } from "node:fs";
8
8
  import { join } from "node:path";
9
9
  import { userHome } from "./settings/manager.js";
10
10
  import { getOpenRouterModels } from "./data/openrouter-models.js";
@@ -344,24 +344,3 @@ export function appendOnboardingResult(opts) {
344
344
  rmSync(tmp, { force: true });
345
345
  }
346
346
  }
347
- // saveArenaSettings removed — replaced by saveArenaSettingsByKeys
348
- export function saveArenaSettingsByKeys(keys) {
349
- const dir = join(userHome(), ".code-shell");
350
- const file = join(dir, "settings.json");
351
- let existing = {};
352
- if (existsSync(file)) {
353
- try {
354
- existing = JSON.parse(readFileSync(file, "utf-8"));
355
- }
356
- catch { }
357
- }
358
- const updated = {
359
- ...existing,
360
- arena: { participants: keys },
361
- };
362
- writeFileSync(file, JSON.stringify(updated, null, 2) + "\n", { encoding: "utf-8", mode: 0o600 });
363
- try {
364
- chmodSync(file, 0o600);
365
- }
366
- catch { /* best-effort */ }
367
- }
@@ -0,0 +1,24 @@
1
+ export interface PanelAppBindingPolicy {
2
+ /** Panel Apps are unavailable without a concrete project. */
3
+ hasProject: boolean;
4
+ /** Apps explicitly bound by this project's settings. */
5
+ boundApps: ReadonlySet<string>;
6
+ /** User-level emergency/master disable switch. */
7
+ globalDisabledApps: ReadonlySet<string>;
8
+ }
9
+ /**
10
+ * Resolve a session/worktree cwd back to the project whose Panel App bindings
11
+ * it owns. Git worktrees point at `<project>/.git/worktrees/<name>` from their
12
+ * `.git` file; normal repositories and non-git projects use their own root.
13
+ */
14
+ export declare function resolvePanelAppBindingProjectPath(cwd: string): string;
15
+ /**
16
+ * Resolve the one policy shared by Desktop discovery and Skill scanning.
17
+ *
18
+ * Installed Panel Apps are a global catalog, but they contribute no UI, tools,
19
+ * Skills, or storage to a project until that project explicitly binds them.
20
+ * Legacy `panelAppOverrides.on` entries count as an explicit binding so
21
+ * projects that already opted in do not silently lose their app.
22
+ */
23
+ export declare function resolvePanelAppBindingPolicy(userSettings: Record<string, unknown> | undefined, projectSettings: Record<string, unknown> | undefined, hasProject: boolean): PanelAppBindingPolicy;
24
+ export declare function isPanelAppBound(appId: string, policy: PanelAppBindingPolicy): boolean;
@@ -0,0 +1,69 @@
1
+ import { existsSync, readFileSync, statSync } from "node:fs";
2
+ import { dirname, join, resolve, sep } from "node:path";
3
+ /**
4
+ * Resolve a session/worktree cwd back to the project whose Panel App bindings
5
+ * it owns. Git worktrees point at `<project>/.git/worktrees/<name>` from their
6
+ * `.git` file; normal repositories and non-git projects use their own root.
7
+ */
8
+ export function resolvePanelAppBindingProjectPath(cwd) {
9
+ if (typeof cwd !== "string" || cwd.trim().length === 0)
10
+ return "";
11
+ let current = resolve(cwd);
12
+ while (true) {
13
+ const gitEntry = join(current, ".git");
14
+ if (existsSync(gitEntry)) {
15
+ try {
16
+ if (statSync(gitEntry).isDirectory())
17
+ return current;
18
+ const match = /^gitdir:\s*(.+)\s*$/i.exec(readFileSync(gitEntry, "utf8"));
19
+ if (!match)
20
+ return current;
21
+ const gitDir = resolve(current, match[1]);
22
+ const marker = `${sep}.git${sep}worktrees${sep}`;
23
+ const markerIndex = gitDir.lastIndexOf(marker);
24
+ return markerIndex >= 0 ? gitDir.slice(0, markerIndex) : current;
25
+ }
26
+ catch {
27
+ return current;
28
+ }
29
+ }
30
+ const parent = dirname(current);
31
+ if (parent === current)
32
+ return resolve(cwd);
33
+ current = parent;
34
+ }
35
+ }
36
+ function stringSet(value) {
37
+ return new Set(Array.isArray(value)
38
+ ? value.filter((candidate) => typeof candidate === "string" && candidate.length > 0)
39
+ : []);
40
+ }
41
+ /**
42
+ * Resolve the one policy shared by Desktop discovery and Skill scanning.
43
+ *
44
+ * Installed Panel Apps are a global catalog, but they contribute no UI, tools,
45
+ * Skills, or storage to a project until that project explicitly binds them.
46
+ * Legacy `panelAppOverrides.on` entries count as an explicit binding so
47
+ * projects that already opted in do not silently lose their app.
48
+ */
49
+ export function resolvePanelAppBindingPolicy(userSettings, projectSettings, hasProject) {
50
+ const globalDisabledApps = stringSet(userSettings?.disabledPanelApps);
51
+ const boundApps = hasProject ? stringSet(projectSettings?.panelAppBindings) : new Set();
52
+ const legacyOverrides = projectSettings?.panelAppOverrides &&
53
+ typeof projectSettings.panelAppOverrides === "object" &&
54
+ !Array.isArray(projectSettings.panelAppOverrides)
55
+ ? projectSettings.panelAppOverrides
56
+ : {};
57
+ if (hasProject) {
58
+ for (const [id, value] of Object.entries(legacyOverrides)) {
59
+ if (value === "on")
60
+ boundApps.add(id);
61
+ else if (value === "off")
62
+ boundApps.delete(id);
63
+ }
64
+ }
65
+ return { hasProject, boundApps, globalDisabledApps };
66
+ }
67
+ export function isPanelAppBound(appId, policy) {
68
+ return policy.hasProject && policy.boundApps.has(appId) && !policy.globalDisabledApps.has(appId);
69
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 只描述这里真正用到的能力:「用一个 URL 和 init 调用它,拿回 Response」。
3
+ *
4
+ * 刻意不写成 `typeof globalThis.fetch`。那是**完整**的运行时 fetch,包含
5
+ * 实现自带的挂载属性——Bun 1.3 加了 `fetch.preconnect` 之后,每个只提供函数
6
+ * 的测试 stub 都不再满足这个类型(`Property 'preconnect' is missing`),
7
+ * 尽管本文件从头到尾只调用它。绑定到实际契约上,让运行时给 fetch 加静态属性
8
+ * 不再变成下游的类型破坏。
9
+ */
10
+ export type PanelAppArchiveFetch = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
11
+ export interface GitHubPanelAppArchiveSource {
12
+ url: string;
13
+ ref?: string;
14
+ }
15
+ /**
16
+ * Download one atomic GitHub source snapshot with bounded memory and disk use.
17
+ * Codeload avoids the smart-Git checkout path that can strand git-remote-https
18
+ * helpers on poor networks. The caller selectively extracts the requested
19
+ * Panel App subdirectory afterward.
20
+ */
21
+ export declare function downloadGitHubPanelAppArchive(source: GitHubPanelAppArchiveSource, targetPath: string, fetchImpl?: PanelAppArchiveFetch): Promise<void>;