@cjhyy/code-shell-core 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/README.md +36 -23
  2. package/dist/agent/agent-definition-registry.d.ts +2 -2
  3. package/dist/agent/agent-definition-registry.js +47 -10
  4. package/dist/agent/agent-definition.d.ts +5 -0
  5. package/dist/agent/agent-definition.js +14 -0
  6. package/dist/automation/index.d.ts +7 -4
  7. package/dist/automation/index.js +4 -2
  8. package/dist/automation/runner.js +3 -1
  9. package/dist/automation/scheduler.d.ts +57 -1
  10. package/dist/automation/scheduler.js +123 -23
  11. package/dist/automation/store.d.ts +6 -2
  12. package/dist/automation/store.js +7 -3
  13. package/dist/capabilities/index.d.ts +109 -0
  14. package/dist/capabilities/index.js +80 -0
  15. package/dist/capability-control/disabled-lists.d.ts +2 -1
  16. package/dist/capability-control/disabled-lists.js +3 -5
  17. package/dist/capability-control/overlay.d.ts +14 -1
  18. package/dist/capability-control/overlay.js +40 -0
  19. package/dist/capability-control/service.js +6 -4
  20. package/dist/cli/agent-server-stdio.d.ts +1 -1
  21. package/dist/cli/agent-server-stdio.js +66 -6
  22. package/dist/cli/agent-server-tcp.js +7 -3
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +17 -1
  26. package/dist/context/manager.js +36 -1
  27. package/dist/credentials/access.d.ts +3 -1
  28. package/dist/credentials/access.js +24 -3
  29. package/dist/credentials/index.d.ts +1 -1
  30. package/dist/credentials/index.js +1 -1
  31. package/dist/credentials/oauth.d.ts +4 -1
  32. package/dist/credentials/oauth.js +14 -0
  33. package/dist/credentials/store.d.ts +15 -1
  34. package/dist/credentials/store.js +17 -4
  35. package/dist/credentials/types.d.ts +24 -0
  36. package/dist/credentials/use-credential-tool.js +15 -1
  37. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  38. package/dist/engine/auxiliary-pipeline.js +181 -0
  39. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  40. package/dist/{settings → engine}/disk-defaults.js +5 -2
  41. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  42. package/dist/engine/dynamic-tool-defs.js +4 -0
  43. package/dist/engine/engine.d.ts +254 -195
  44. package/dist/engine/engine.js +1812 -2041
  45. package/dist/engine/file-history-hook.d.ts +11 -0
  46. package/dist/engine/file-history-hook.js +31 -0
  47. package/dist/engine/goal-judge-context.d.ts +9 -0
  48. package/dist/engine/goal-judge-context.js +234 -0
  49. package/dist/engine/injected-context-cache.d.ts +6 -0
  50. package/dist/engine/injected-context-cache.js +13 -0
  51. package/dist/engine/input-attachments.d.ts +1 -1
  52. package/dist/engine/model-facade.d.ts +3 -3
  53. package/dist/engine/model-facade.js +15 -14
  54. package/dist/engine/permission-controller.d.ts +55 -0
  55. package/dist/engine/permission-controller.js +148 -0
  56. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  57. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  58. package/dist/engine/run-accounting.d.ts +41 -0
  59. package/dist/engine/run-accounting.js +126 -0
  60. package/dist/engine/run-context.d.ts +44 -0
  61. package/dist/engine/run-context.js +88 -0
  62. package/dist/engine/run-environment.d.ts +30 -0
  63. package/dist/engine/run-environment.js +77 -0
  64. package/dist/engine/run-finalize.d.ts +58 -0
  65. package/dist/engine/run-finalize.js +245 -0
  66. package/dist/engine/run-goal.d.ts +58 -0
  67. package/dist/engine/run-goal.js +188 -0
  68. package/dist/engine/run-image-input.d.ts +1 -1
  69. package/dist/engine/run-image-input.js +5 -3
  70. package/dist/engine/run-session-open.d.ts +41 -0
  71. package/dist/engine/run-session-open.js +186 -0
  72. package/dist/engine/run-setup.d.ts +42 -0
  73. package/dist/engine/run-setup.js +58 -0
  74. package/dist/engine/run-tooling.d.ts +125 -0
  75. package/dist/engine/run-tooling.js +283 -0
  76. package/dist/engine/run-types.d.ts +139 -0
  77. package/dist/engine/run-types.js +12 -0
  78. package/dist/engine/run-workspace.d.ts +50 -0
  79. package/dist/engine/run-workspace.js +114 -0
  80. package/dist/engine/steer-queue.d.ts +1 -1
  81. package/dist/engine/subagent-spawner.d.ts +32 -0
  82. package/dist/engine/subagent-spawner.js +287 -0
  83. package/dist/engine/tool-summary.d.ts +2 -2
  84. package/dist/engine/tool-summary.js +2 -2
  85. package/dist/engine/turn-loop.d.ts +49 -10
  86. package/dist/engine/turn-loop.js +370 -104
  87. package/dist/engine/types.d.ts +30 -3
  88. package/dist/engine/types.js +1 -1
  89. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
  90. package/dist/goal/lifecycle.js +482 -0
  91. package/dist/hooks/events.d.ts +24 -10
  92. package/dist/hooks/goal-stop-hook.d.ts +17 -28
  93. package/dist/hooks/goal-stop-hook.js +110 -465
  94. package/dist/hooks/registry.js +1 -1
  95. package/dist/index.d.ts +48 -108
  96. package/dist/index.extension.d.ts +51 -0
  97. package/dist/index.extension.js +39 -0
  98. package/dist/index.internal.d.ts +86 -0
  99. package/dist/index.internal.js +92 -0
  100. package/dist/index.js +34 -123
  101. package/dist/links/cli.d.ts +48 -0
  102. package/dist/links/cli.js +617 -0
  103. package/dist/links/http.d.ts +40 -0
  104. package/dist/links/http.js +166 -0
  105. package/dist/links/index.d.ts +4 -0
  106. package/dist/links/index.js +3 -0
  107. package/dist/links/link-action-tool.d.ts +5 -0
  108. package/dist/links/link-action-tool.js +241 -0
  109. package/dist/links/providers.d.ts +8 -0
  110. package/dist/links/providers.js +665 -0
  111. package/dist/links/types.d.ts +44 -0
  112. package/dist/llm/client-base.d.ts +7 -0
  113. package/dist/llm/client-base.js +60 -0
  114. package/dist/llm/model-pool.d.ts +1 -1
  115. package/dist/llm/model-pool.js +1 -1
  116. package/dist/llm/providers/anthropic.d.ts +1 -0
  117. package/dist/llm/providers/anthropic.js +9 -0
  118. package/dist/llm/providers/openai.d.ts +1 -0
  119. package/dist/llm/providers/openai.js +17 -0
  120. package/dist/model-catalog/index.js +15 -2
  121. package/dist/model-catalog/resolve.d.ts +13 -1
  122. package/dist/model-catalog/resolve.js +37 -2
  123. package/dist/model-catalog/types.d.ts +74 -48
  124. package/dist/model-catalog/types.js +16 -5
  125. package/dist/model-catalog/upsert.d.ts +3 -1
  126. package/dist/model-catalog/upsert.js +9 -0
  127. package/dist/onboarding.d.ts +0 -1
  128. package/dist/onboarding.js +1 -22
  129. package/dist/panel-apps/bindings.d.ts +24 -0
  130. package/dist/panel-apps/bindings.js +69 -0
  131. package/dist/panel-apps/github-archive.d.ts +21 -0
  132. package/dist/panel-apps/github-archive.js +98 -0
  133. package/dist/panel-apps/index.d.ts +4 -0
  134. package/dist/panel-apps/index.js +4 -0
  135. package/dist/panel-apps/installer.d.ts +68 -0
  136. package/dist/panel-apps/installer.js +622 -0
  137. package/dist/panel-apps/manifest.d.ts +364 -0
  138. package/dist/panel-apps/manifest.js +189 -0
  139. package/dist/panel-apps/paths.d.ts +13 -0
  140. package/dist/panel-apps/paths.js +38 -0
  141. package/dist/panel-apps/registry.d.ts +51 -0
  142. package/dist/panel-apps/registry.js +99 -0
  143. package/dist/panel-apps/runtime.d.ts +80 -0
  144. package/dist/panel-apps/runtime.js +154 -0
  145. package/dist/plugins/gitOps.js +8 -1
  146. package/dist/plugins/installedPlugins.d.ts +2 -1
  147. package/dist/plugins/installedPlugins.js +146 -8
  148. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  149. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  150. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  151. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  152. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  153. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  154. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  155. package/dist/plugins/installer/install.d.ts +7 -1
  156. package/dist/plugins/installer/install.js +21 -87
  157. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  158. package/dist/plugins/installer/installFromArchive.js +44 -27
  159. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  160. package/dist/plugins/installer/installFromNpm.js +273 -0
  161. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  162. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  163. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  164. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  165. package/dist/plugins/installer/normalizeManifest.js +306 -0
  166. package/dist/plugins/installer/npmTar.d.ts +13 -0
  167. package/dist/plugins/installer/npmTar.js +321 -0
  168. package/dist/plugins/installer/parseSource.d.ts +11 -0
  169. package/dist/plugins/installer/parseSource.js +48 -0
  170. package/dist/plugins/installer/preview.d.ts +101 -0
  171. package/dist/plugins/installer/preview.js +336 -0
  172. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  173. package/dist/plugins/installer/projectPluginSource.js +140 -0
  174. package/dist/plugins/installer/types.d.ts +775 -0
  175. package/dist/plugins/installer/types.js +100 -0
  176. package/dist/plugins/installer/unzip.d.ts +11 -0
  177. package/dist/plugins/installer/unzip.js +123 -9
  178. package/dist/plugins/installer/update.d.ts +2 -2
  179. package/dist/plugins/installer/update.js +43 -4
  180. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  181. package/dist/plugins/loadPluginHooks.js +97 -86
  182. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  183. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  184. package/dist/plugins/pluginCatalog.d.ts +45 -0
  185. package/dist/plugins/pluginCatalog.js +87 -0
  186. package/dist/plugins/pluginCommandHook.d.ts +6 -0
  187. package/dist/plugins/pluginCommandHook.js +25 -8
  188. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  189. package/dist/plugins/pluginCommandsLoader.js +181 -7
  190. package/dist/plugins/pluginContent.d.ts +10 -1
  191. package/dist/plugins/pluginContent.js +87 -30
  192. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  193. package/dist/plugins/pluginHookApproval.js +160 -0
  194. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  195. package/dist/plugins/pluginHookIntegrity.js +361 -0
  196. package/dist/plugins/pluginInstaller.js +71 -12
  197. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  198. package/dist/plugins/pluginMcpApproval.js +110 -0
  199. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  200. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  201. package/dist/plugins/types.d.ts +30 -0
  202. package/dist/plugins/varRewrite.d.ts +9 -5
  203. package/dist/plugins/varRewrite.js +26 -17
  204. package/dist/preset/index.d.ts +11 -8
  205. package/dist/preset/index.js +62 -203
  206. package/dist/product/define.js +9 -3
  207. package/dist/product/types.d.ts +0 -2
  208. package/dist/profile/activation.d.ts +36 -0
  209. package/dist/profile/activation.js +57 -0
  210. package/dist/profile/catalog-store.d.ts +77 -0
  211. package/dist/profile/catalog-store.js +346 -0
  212. package/dist/profile/catalog.d.ts +54 -0
  213. package/dist/profile/catalog.js +152 -0
  214. package/dist/profile/index.d.ts +7 -0
  215. package/dist/profile/index.js +7 -0
  216. package/dist/profile/requirements.d.ts +76 -0
  217. package/dist/profile/requirements.js +117 -0
  218. package/dist/profile/resolve.d.ts +11 -0
  219. package/dist/profile/resolve.js +41 -0
  220. package/dist/profile/store.d.ts +17 -0
  221. package/dist/profile/store.js +167 -0
  222. package/dist/profile/types.d.ts +321 -0
  223. package/dist/profile/types.js +104 -0
  224. package/dist/prompt/composer.d.ts +46 -7
  225. package/dist/prompt/composer.js +78 -48
  226. package/dist/prompt/instruction-scanner.d.ts +6 -5
  227. package/dist/prompt/instruction-scanner.js +8 -23
  228. package/dist/prompt/section-loader.d.ts +2 -2
  229. package/dist/prompt/section-loader.js +7 -4
  230. package/dist/prompt/sections/browser.md +10 -9
  231. package/dist/prompt/sections/harness-base.md +9 -0
  232. package/dist/protocol/chat-session-manager.d.ts +64 -1
  233. package/dist/protocol/chat-session-manager.js +104 -0
  234. package/dist/protocol/chat-session.d.ts +61 -10
  235. package/dist/protocol/chat-session.js +135 -25
  236. package/dist/protocol/client.d.ts +33 -3
  237. package/dist/protocol/client.js +96 -5
  238. package/dist/protocol/index.d.ts +2 -2
  239. package/dist/protocol/index.js +2 -2
  240. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  241. package/dist/protocol/mobile-remote-types.js +1 -0
  242. package/dist/protocol/server.d.ts +127 -3
  243. package/dist/protocol/server.js +1309 -182
  244. package/dist/protocol/types.d.ts +152 -34
  245. package/dist/protocol/types.js +16 -0
  246. package/dist/run/ArtifactTracker.d.ts +6 -1
  247. package/dist/run/ArtifactTracker.js +29 -21
  248. package/dist/run/EngineRunner.d.ts +2 -0
  249. package/dist/run/EngineRunner.js +1 -0
  250. package/dist/run/RunManager.d.ts +26 -0
  251. package/dist/run/RunManager.js +82 -11
  252. package/dist/run/factory.d.ts +3 -0
  253. package/dist/run/factory.js +2 -0
  254. package/dist/runtime/safe-spawn.d.ts +6 -0
  255. package/dist/runtime/safe-spawn.js +8 -13
  256. package/dist/services/auto-dream.d.ts +13 -1
  257. package/dist/services/auto-dream.js +56 -8
  258. package/dist/services/dream-consolidation.js +10 -1
  259. package/dist/services/memory-orchestrator.js +6 -2
  260. package/dist/services/oauth.js +4 -1
  261. package/dist/services/session-memory.d.ts +4 -4
  262. package/dist/services/session-memory.js +13 -10
  263. package/dist/session/memory.d.ts +26 -7
  264. package/dist/session/memory.js +79 -21
  265. package/dist/session/session-manager.d.ts +182 -28
  266. package/dist/session/session-manager.js +910 -130
  267. package/dist/session/session-message.d.ts +22 -0
  268. package/dist/session/session-message.js +1 -0
  269. package/dist/session/transcript.d.ts +46 -5
  270. package/dist/session/transcript.js +159 -3
  271. package/dist/settings/feature-flags.d.ts +40 -0
  272. package/dist/settings/feature-flags.js +40 -0
  273. package/dist/settings/manager.d.ts +39 -1
  274. package/dist/settings/manager.js +102 -41
  275. package/dist/settings/migrate-config.js +4 -2
  276. package/dist/settings/schema.d.ts +511 -177
  277. package/dist/settings/schema.js +98 -25
  278. package/dist/skills/scanner.d.ts +6 -2
  279. package/dist/skills/scanner.js +160 -9
  280. package/dist/sources/adapter.d.ts +14 -0
  281. package/dist/sources/adapter.js +7 -0
  282. package/dist/sources/adapters/local-files.d.ts +10 -0
  283. package/dist/sources/adapters/local-files.js +127 -0
  284. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  285. package/dist/sources/adapters/mcp-resource.js +41 -0
  286. package/dist/sources/adapters/mock.d.ts +3 -0
  287. package/dist/sources/adapters/mock.js +29 -0
  288. package/dist/sources/binding.d.ts +6 -0
  289. package/dist/sources/binding.js +24 -0
  290. package/dist/sources/catalog.d.ts +6 -0
  291. package/dist/sources/catalog.js +64 -0
  292. package/dist/sources/context-summary.d.ts +8 -0
  293. package/dist/sources/context-summary.js +13 -0
  294. package/dist/sources/credential-status.d.ts +2 -0
  295. package/dist/sources/credential-status.js +13 -0
  296. package/dist/sources/index.d.ts +10 -0
  297. package/dist/sources/index.js +10 -0
  298. package/dist/sources/resolve.d.ts +28 -0
  299. package/dist/sources/resolve.js +47 -0
  300. package/dist/sources/truncate-utf8.d.ts +7 -0
  301. package/dist/sources/truncate-utf8.js +18 -0
  302. package/dist/sources/types.d.ts +71 -0
  303. package/dist/sources/types.js +26 -0
  304. package/dist/testing/fetch-stub.d.ts +32 -0
  305. package/dist/testing/fetch-stub.js +24 -0
  306. package/dist/themes/image.d.ts +18 -0
  307. package/dist/themes/image.js +117 -0
  308. package/dist/themes/index.d.ts +4 -0
  309. package/dist/themes/index.js +4 -0
  310. package/dist/themes/installer.d.ts +50 -0
  311. package/dist/themes/installer.js +290 -0
  312. package/dist/themes/manifest.d.ts +102 -0
  313. package/dist/themes/manifest.js +86 -0
  314. package/dist/themes/paths.d.ts +14 -0
  315. package/dist/themes/paths.js +33 -0
  316. package/dist/tool-system/browser-bridge.d.ts +53 -11
  317. package/dist/tool-system/browser-bridge.js +8 -9
  318. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  319. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  320. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  321. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  322. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  323. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  324. package/dist/tool-system/builtin/agent-progress.js +83 -0
  325. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  326. package/dist/tool-system/builtin/agent-registry.js +178 -9
  327. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  328. package/dist/tool-system/builtin/agent.d.ts +2 -0
  329. package/dist/tool-system/builtin/agent.js +274 -33
  330. package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
  331. package/dist/tool-system/builtin/background-jobs.js +96 -4
  332. package/dist/tool-system/builtin/background-work.d.ts +6 -0
  333. package/dist/tool-system/builtin/background-work.js +8 -1
  334. package/dist/tool-system/builtin/bash.js +5 -2
  335. package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
  336. package/dist/tool-system/builtin/browser-tools.js +89 -23
  337. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  338. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  339. package/dist/tool-system/builtin/edit.js +2 -6
  340. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  341. package/dist/tool-system/builtin/file-cache.js +4 -0
  342. package/dist/tool-system/builtin/generate-image.js +17 -10
  343. package/dist/tool-system/builtin/generate-video.js +26 -7
  344. package/dist/tool-system/builtin/grep.js +2 -2
  345. package/dist/tool-system/builtin/image-uploader.js +7 -1
  346. package/dist/tool-system/builtin/index.d.ts +32 -7
  347. package/dist/tool-system/builtin/index.js +237 -167
  348. package/dist/tool-system/builtin/memory.d.ts +6 -0
  349. package/dist/tool-system/builtin/memory.js +36 -15
  350. package/dist/tool-system/builtin/panel.d.ts +9 -0
  351. package/dist/tool-system/builtin/panel.js +314 -0
  352. package/dist/tool-system/builtin/read.js +5 -1
  353. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  354. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  355. package/dist/tool-system/builtin/sources.d.ts +8 -0
  356. package/dist/tool-system/builtin/sources.js +137 -0
  357. package/dist/tool-system/builtin/tool-search.js +7 -2
  358. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  359. package/dist/tool-system/builtin/web-fetch.js +17 -13
  360. package/dist/tool-system/builtin/web-search.js +1 -3
  361. package/dist/tool-system/capability-module.d.ts +93 -0
  362. package/dist/tool-system/capability-module.js +53 -0
  363. package/dist/tool-system/context.d.ts +77 -19
  364. package/dist/tool-system/executor.js +75 -50
  365. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  366. package/dist/tool-system/external-tool-exposure.js +304 -0
  367. package/dist/tool-system/mcp-manager.d.ts +11 -1
  368. package/dist/tool-system/mcp-manager.js +19 -4
  369. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  370. package/dist/tool-system/mcp-tool-policy.js +34 -0
  371. package/dist/tool-system/panel-bridge.d.ts +53 -0
  372. package/dist/tool-system/panel-bridge.js +1 -0
  373. package/dist/tool-system/permission.d.ts +26 -0
  374. package/dist/tool-system/permission.js +46 -0
  375. package/dist/tool-system/registry.d.ts +12 -1
  376. package/dist/tool-system/registry.js +31 -7
  377. package/dist/tool-system/sandbox/index.js +3 -8
  378. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  379. package/dist/tool-system/session-tool-host.d.ts +139 -0
  380. package/dist/tool-system/session-tool-host.js +167 -0
  381. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  382. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  383. package/dist/tool-system/validation.d.ts +14 -7
  384. package/dist/tool-system/validation.js +701 -7
  385. package/dist/types.d.ts +186 -20
  386. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  387. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  388. package/dist/utils/file-mutex.d.ts +65 -0
  389. package/dist/utils/file-mutex.js +145 -0
  390. package/dist/utils/json.d.ts +2 -4
  391. package/dist/utils/json.js +2 -4
  392. package/dist/utils/lockfile.d.ts +30 -1
  393. package/dist/utils/lockfile.js +2 -2
  394. package/dist/utils/secret-scrubber.d.ts +8 -0
  395. package/dist/utils/secret-scrubber.js +227 -0
  396. package/dist/utils/toolDisplay.js +1 -1
  397. package/package.json +20 -5
  398. package/THIRD_PARTY_NOTICES.md +0 -206
  399. package/dist/arena/arena.d.ts +0 -45
  400. package/dist/arena/arena.js +0 -362
  401. package/dist/arena/context/context-tools.d.ts +0 -16
  402. package/dist/arena/context/context-tools.js +0 -272
  403. package/dist/arena/context/within-root.d.ts +0 -7
  404. package/dist/arena/context/within-root.js +0 -15
  405. package/dist/arena/detect-mode.d.ts +0 -20
  406. package/dist/arena/detect-mode.js +0 -78
  407. package/dist/arena/digest-builder.d.ts +0 -25
  408. package/dist/arena/digest-builder.js +0 -120
  409. package/dist/arena/index.d.ts +0 -29
  410. package/dist/arena/index.js +0 -29
  411. package/dist/arena/iterate/convergence.d.ts +0 -25
  412. package/dist/arena/iterate/convergence.js +0 -103
  413. package/dist/arena/iterate/formats/index.d.ts +0 -22
  414. package/dist/arena/iterate/formats/index.js +0 -283
  415. package/dist/arena/iterate/index.d.ts +0 -11
  416. package/dist/arena/iterate/index.js +0 -9
  417. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  418. package/dist/arena/iterate/iterative-arena.js +0 -237
  419. package/dist/arena/iterate/parse.d.ts +0 -42
  420. package/dist/arena/iterate/parse.js +0 -123
  421. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  422. package/dist/arena/iterate/phases/argue.js +0 -165
  423. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  424. package/dist/arena/iterate/phases/revise.js +0 -62
  425. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  426. package/dist/arena/iterate/phases/tournament.js +0 -113
  427. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  428. package/dist/arena/iterate/tools/web-tools.js +0 -54
  429. package/dist/arena/iterate/types.d.ts +0 -152
  430. package/dist/arena/iterate/types.js +0 -8
  431. package/dist/arena/ledger.d.ts +0 -47
  432. package/dist/arena/ledger.js +0 -159
  433. package/dist/arena/lenses/architecture.d.ts +0 -5
  434. package/dist/arena/lenses/architecture.js +0 -22
  435. package/dist/arena/lenses/engineering.d.ts +0 -5
  436. package/dist/arena/lenses/engineering.js +0 -22
  437. package/dist/arena/lenses/general.d.ts +0 -5
  438. package/dist/arena/lenses/general.js +0 -20
  439. package/dist/arena/lenses/index.d.ts +0 -16
  440. package/dist/arena/lenses/index.js +0 -47
  441. package/dist/arena/lenses/product.d.ts +0 -5
  442. package/dist/arena/lenses/product.js +0 -22
  443. package/dist/arena/model-presets.d.ts +0 -23
  444. package/dist/arena/model-presets.js +0 -44
  445. package/dist/arena/phases/adjudication.d.ts +0 -25
  446. package/dist/arena/phases/adjudication.js +0 -142
  447. package/dist/arena/phases/build-consensus.d.ts +0 -30
  448. package/dist/arena/phases/build-consensus.js +0 -85
  449. package/dist/arena/phases/claim-registry.d.ts +0 -26
  450. package/dist/arena/phases/claim-registry.js +0 -60
  451. package/dist/arena/phases/cross-review.d.ts +0 -47
  452. package/dist/arena/phases/cross-review.js +0 -224
  453. package/dist/arena/phases/debate-rounds.d.ts +0 -28
  454. package/dist/arena/phases/debate-rounds.js +0 -161
  455. package/dist/arena/phases/participant-research.d.ts +0 -39
  456. package/dist/arena/phases/participant-research.js +0 -316
  457. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
  458. package/dist/arena/phases/planning-detail-expansion.js +0 -120
  459. package/dist/arena/planner.d.ts +0 -28
  460. package/dist/arena/planner.js +0 -312
  461. package/dist/arena/providers/docs.d.ts +0 -7
  462. package/dist/arena/providers/docs.js +0 -111
  463. package/dist/arena/providers/git.d.ts +0 -8
  464. package/dist/arena/providers/git.js +0 -174
  465. package/dist/arena/providers/index.d.ts +0 -32
  466. package/dist/arena/providers/index.js +0 -132
  467. package/dist/arena/providers/none.d.ts +0 -7
  468. package/dist/arena/providers/none.js +0 -11
  469. package/dist/arena/providers/repo.d.ts +0 -7
  470. package/dist/arena/providers/repo.js +0 -258
  471. package/dist/arena/render/session.d.ts +0 -17
  472. package/dist/arena/render/session.js +0 -190
  473. package/dist/arena/render/terminal.d.ts +0 -34
  474. package/dist/arena/render/terminal.js +0 -286
  475. package/dist/arena/strategies/discussion.d.ts +0 -25
  476. package/dist/arena/strategies/discussion.js +0 -143
  477. package/dist/arena/strategies/index.d.ts +0 -15
  478. package/dist/arena/strategies/index.js +0 -28
  479. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  480. package/dist/arena/strategies/language-wrapper.js +0 -102
  481. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  482. package/dist/arena/strategies/lens-wrapper.js +0 -236
  483. package/dist/arena/strategies/planning.d.ts +0 -30
  484. package/dist/arena/strategies/planning.js +0 -225
  485. package/dist/arena/strategies/review.d.ts +0 -26
  486. package/dist/arena/strategies/review.js +0 -168
  487. package/dist/arena/strategies/utils.d.ts +0 -36
  488. package/dist/arena/strategies/utils.js +0 -603
  489. package/dist/arena/tools/selector.d.ts +0 -17
  490. package/dist/arena/tools/selector.js +0 -61
  491. package/dist/arena/transitions.d.ts +0 -53
  492. package/dist/arena/transitions.js +0 -97
  493. package/dist/arena/types.d.ts +0 -518
  494. package/dist/arena/types.js +0 -27
  495. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  496. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  497. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  498. package/dist/cc-orchestrator/cc-capability.js +0 -53
  499. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  500. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  501. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  502. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  503. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  504. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  505. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  506. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  507. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  508. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  509. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  510. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  511. package/dist/cc-orchestrator/index.d.ts +0 -8
  512. package/dist/cc-orchestrator/index.js +0 -8
  513. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  514. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  515. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  516. package/dist/cc-orchestrator/session-discovery.js +0 -125
  517. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  518. package/dist/cc-orchestrator/session-history.js +0 -150
  519. package/dist/cron/cron-runtime.d.ts +0 -2
  520. package/dist/cron/cron-runtime.js +0 -2
  521. package/dist/cron/cron-store.d.ts +0 -2
  522. package/dist/cron/cron-store.js +0 -2
  523. package/dist/cron/scheduler.d.ts +0 -7
  524. package/dist/cron/scheduler.js +0 -7
  525. package/dist/engine/goal.js +0 -206
  526. package/dist/external-agents/config.d.ts +0 -2
  527. package/dist/external-agents/config.js +0 -15
  528. package/dist/external-agents/types.d.ts +0 -31
  529. package/dist/git/parse-log.d.ts +0 -13
  530. package/dist/git/parse-log.js +0 -21
  531. package/dist/git/utils.d.ts +0 -49
  532. package/dist/git/utils.js +0 -161
  533. package/dist/git/worktree/crud.d.ts +0 -72
  534. package/dist/git/worktree/crud.js +0 -235
  535. package/dist/git/worktree/diff.d.ts +0 -14
  536. package/dist/git/worktree/diff.js +0 -82
  537. package/dist/git/worktree/git-exec.d.ts +0 -7
  538. package/dist/git/worktree/git-exec.js +0 -87
  539. package/dist/git/worktree/index.d.ts +0 -5
  540. package/dist/git/worktree/index.js +0 -5
  541. package/dist/git/worktree/query.d.ts +0 -43
  542. package/dist/git/worktree/query.js +0 -128
  543. package/dist/git/worktree/slug.d.ts +0 -11
  544. package/dist/git/worktree/slug.js +0 -58
  545. package/dist/git/worktree.d.ts +0 -1
  546. package/dist/git/worktree.js +0 -5
  547. package/dist/lsp/client.d.ts +0 -41
  548. package/dist/lsp/client.js +0 -186
  549. package/dist/lsp/manager.d.ts +0 -40
  550. package/dist/lsp/manager.js +0 -155
  551. package/dist/lsp/root-path.d.ts +0 -9
  552. package/dist/lsp/root-path.js +0 -12
  553. package/dist/lsp/servers.d.ts +0 -16
  554. package/dist/lsp/servers.js +0 -60
  555. package/dist/prompt/sections/coding.md +0 -35
  556. package/dist/quota/credentials.d.ts +0 -3
  557. package/dist/quota/credentials.js +0 -80
  558. package/dist/quota/index.d.ts +0 -36
  559. package/dist/quota/index.js +0 -155
  560. package/dist/quota/types.d.ts +0 -48
  561. package/dist/quota/types.js +0 -13
  562. package/dist/review/review-prompt.d.ts +0 -28
  563. package/dist/review/review-prompt.js +0 -81
  564. package/dist/state.d.ts +0 -160
  565. package/dist/state.js +0 -267
  566. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  567. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  568. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  569. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  570. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  571. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  572. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  573. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  574. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  575. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  576. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  577. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  578. package/dist/tool-system/builtin/arena.d.ts +0 -31
  579. package/dist/tool-system/builtin/arena.js +0 -416
  580. package/dist/tool-system/builtin/brief.d.ts +0 -6
  581. package/dist/tool-system/builtin/brief.js +0 -41
  582. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  583. package/dist/tool-system/builtin/check-quota.js +0 -34
  584. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  585. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  586. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  587. package/dist/tool-system/builtin/lsp.js +0 -144
  588. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  589. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  590. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  591. package/dist/tool-system/builtin/worktree.js +0 -363
  592. /package/dist/{external-agents → links}/types.js +0 -0
  593. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  594. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -1,286 +0,0 @@
1
- /**
2
- * Terminal renderer — renders ArenaConsensus and ArenaResultV2.
3
- *
4
- * All render functions return strings instead of printing directly,
5
- * so callers can decide where to display (ctx.addStatus vs console.log).
6
- *
7
- * Output sections:
8
- * 1. Summary
9
- * 2. Roadmap (surfaced early for planning scenes)
10
- * 3. Consensus sections ordered by output emphasis
11
- * 4. Next Actions
12
- */
13
- import { NOOP_COLORIZER } from "../../colorizer.js";
14
- /**
15
- * Format the full arena result as a styled string.
16
- */
17
- export function formatArenaResult(result, c = NOOP_COLORIZER) {
18
- const modeLabel = result.mode.charAt(0).toUpperCase() + result.mode.slice(1);
19
- const lines = [];
20
- lines.push("");
21
- lines.push(c.bold(` ═══ ${modeLabel} Conclusion ═══`));
22
- lines.push("");
23
- // Summary
24
- if (result.consensus.summary) {
25
- lines.push(` ${result.consensus.summary}`);
26
- lines.push("");
27
- }
28
- // Roadmap first for planning scenes
29
- if (result.mode === "planning") {
30
- lines.push(...formatRoadmapSection(result.consensus.roadmap, c));
31
- if (result.consensus.roadmapDetails && result.consensus.roadmapDetails.length > 0) {
32
- lines.push(...formatRoadmapDetailsSection(result.consensus.roadmapDetails, c));
33
- }
34
- }
35
- // Consensus sections ordered by output emphasis
36
- for (const section of getOrderedConsensusSections(result, c)) {
37
- lines.push(...formatConsensusSection(section.title, section.items, section.color, section.icon, c));
38
- }
39
- // Roadmap after findings for non-planning scenes
40
- if (result.mode !== "planning") {
41
- lines.push(...formatRoadmapSection(result.consensus.roadmap, c));
42
- }
43
- // Next Actions
44
- if (result.consensus.nextActions.length > 0) {
45
- lines.push(c.boldWhite("\n Next Actions:"));
46
- for (const action of result.consensus.nextActions) {
47
- const pri = action.priority === "high"
48
- ? c.red("HIGH")
49
- : action.priority === "medium"
50
- ? c.yellow("MED")
51
- : c.dim("LOW");
52
- lines.push(` ${c.white("→")} [${pri}${c.white("]")} ${action.title}`);
53
- if (action.rationale) {
54
- lines.push(c.dim(` ${action.rationale}`));
55
- }
56
- }
57
- }
58
- // Footer
59
- lines.push("");
60
- const planInfo = result.plan
61
- ? ` | Lenses: ${result.plan.lenses.map((l) => l.name).join(", ")} | Sources: ${result.plan.sources.map((s) => s.kind).join(", ")}`
62
- : "";
63
- lines.push(c.dim(` Mode: ${modeLabel} | ` +
64
- `Findings: ${countFindings(result)} | ` +
65
- `Models: ${result.participants.join(", ")}` +
66
- planInfo));
67
- lines.push("");
68
- return lines.join("\n");
69
- }
70
- /**
71
- * Print the full arena result directly to stdout.
72
- * Used by the CLI `code-shell arena` command (non-REPL).
73
- */
74
- export function printArenaResult(result, c = NOOP_COLORIZER) {
75
- console.log(formatArenaResult(result, c));
76
- }
77
- function formatConsensusSection(title, items, color, icon, c) {
78
- if (items.length === 0)
79
- return [];
80
- const lines = [];
81
- lines.push(color(`\n ${title}:`));
82
- for (const item of items) {
83
- lines.push(color(` ${icon} ${item.title}`));
84
- if (item.summary) {
85
- lines.push(c.dim(` ${item.summary}`));
86
- }
87
- if (item.challenge.length > 0) {
88
- lines.push(c.dim(` Challenged by: ${item.challenge.join(", ")}`));
89
- }
90
- }
91
- return lines;
92
- }
93
- function countFindings(result) {
94
- return result.reports.reduce((sum, r) => sum + r.findings.length, 0);
95
- }
96
- function formatRoadmapSection(phases, c) {
97
- if (phases.length === 0)
98
- return [];
99
- const lines = [];
100
- lines.push(c.boldWhite("\n Roadmap:"));
101
- for (const [index, phase] of phases.entries()) {
102
- const pri = phase.priority === "high"
103
- ? c.red("HIGH")
104
- : phase.priority === "medium"
105
- ? c.yellow("MED")
106
- : c.dim("LOW");
107
- lines.push(` ${c.white("→")} Phase ${index + 1}: ${phase.title} [${pri}${c.white("]")}`);
108
- if (phase.goal) {
109
- lines.push(c.dim(` Goal: ${phase.goal}`));
110
- }
111
- if (phase.scope.length > 0) {
112
- lines.push(c.dim(` Scope: ${phase.scope.join("; ")}`));
113
- }
114
- if (phase.deliverables.length > 0) {
115
- lines.push(c.dim(` Deliverables: ${phase.deliverables.join("; ")}`));
116
- }
117
- if (phase.dependencies.length > 0) {
118
- lines.push(c.dim(` Dependencies: ${phase.dependencies.join("; ")}`));
119
- }
120
- if (phase.risks.length > 0) {
121
- lines.push(c.dim(` Risks: ${phase.risks.join("; ")}`));
122
- }
123
- if (phase.successCriteria.length > 0) {
124
- lines.push(c.dim(` Success: ${phase.successCriteria.join("; ")}`));
125
- }
126
- }
127
- return lines;
128
- }
129
- function formatRoadmapDetailsSection(details, c) {
130
- const lines = [];
131
- lines.push(c.boldWhite("\n Implementation Details:"));
132
- for (const detail of details) {
133
- const effort = detail.effort === "large"
134
- ? c.red("L")
135
- : detail.effort === "medium"
136
- ? c.yellow("M")
137
- : c.green("S");
138
- lines.push(`\n ${c.white("▸")} ${detail.phaseTitle} [${effort}]`);
139
- if (detail.objective) {
140
- lines.push(c.dim(` ${detail.objective}`));
141
- }
142
- if (detail.targetFiles.length > 0) {
143
- lines.push(c.dim(` Files: ${detail.targetFiles.join(", ")}`));
144
- }
145
- if (detail.codeChanges.length > 0) {
146
- for (const change of detail.codeChanges) {
147
- lines.push(c.dim(` • ${change}`));
148
- }
149
- }
150
- if (detail.interfaces.length > 0) {
151
- lines.push(c.dim(` Interfaces: ${detail.interfaces.join("; ")}`));
152
- }
153
- if (detail.migrationSteps.length > 0) {
154
- lines.push(c.dim(` Migration:`));
155
- for (const [i, step] of detail.migrationSteps.entries()) {
156
- lines.push(c.dim(` ${i + 1}. ${step}`));
157
- }
158
- }
159
- if (detail.validation.length > 0) {
160
- lines.push(c.dim(` Validation: ${detail.validation.join("; ")}`));
161
- }
162
- if (detail.blockers.length > 0) {
163
- lines.push(c.red(` Blockers: ${detail.blockers.join("; ")}`));
164
- }
165
- }
166
- return lines;
167
- }
168
- function getOrderedConsensusSections(result, c) {
169
- const VALID_KINDS = new Set(["strength", "improvement", "risk", "question"]);
170
- const defaultOrder = ["risk", "improvement", "strength", "question"];
171
- const emphasize = (result.plan?.outputShape?.emphasize ?? []).filter((k) => VALID_KINDS.has(k));
172
- const orderedKinds = dedupeFindingKinds([...emphasize, ...defaultOrder]);
173
- return orderedKinds
174
- .map((kind) => {
175
- switch (kind) {
176
- case "strength":
177
- return { kind, title: "Strengths", items: result.consensus.strengths, color: c.green.bind(c), icon: "✓" };
178
- case "improvement":
179
- return { kind, title: "Improvements", items: result.consensus.improvements, color: c.yellow.bind(c), icon: "→" };
180
- case "risk":
181
- return { kind, title: "Risks", items: result.consensus.risks, color: c.red.bind(c), icon: "⚠" };
182
- case "question":
183
- return { kind, title: "Open Questions", items: result.consensus.openQuestions, color: c.cyan.bind(c), icon: "?" };
184
- }
185
- })
186
- .filter((section) => section != null)
187
- .filter((section) => section.items.length > 0);
188
- }
189
- function dedupeFindingKinds(kinds) {
190
- const seen = new Set();
191
- const result = [];
192
- for (const kind of kinds) {
193
- if (!seen.has(kind)) {
194
- seen.add(kind);
195
- result.push(kind);
196
- }
197
- }
198
- return result;
199
- }
200
- /**
201
- * Create a progress renderer that sends output to a sink.
202
- * For REPL: pass ctx.addStatus. For CLI: pass console.log.
203
- */
204
- export function createProgressRenderer(sink, c = NOOP_COLORIZER) {
205
- return (event) => {
206
- switch (event.type) {
207
- case "plan_resolved":
208
- sink(c.dim(`Plan: ${event.plan.mode} | ` +
209
- `lenses: ${event.plan.lenses.map((l) => l.name).join(", ")} | ` +
210
- `sources: ${event.plan.sources.map((s) => s.kind).join(", ")}` +
211
- (event.plan.confidence !== "high" ? ` (${event.plan.confidence} confidence)` : "")));
212
- break;
213
- case "evidence_started":
214
- sink(c.dim(` · collecting from ${event.source}…`));
215
- break;
216
- case "evidence_source_done": {
217
- const tag = event.timedOut ? c.yellow(" (timed out)") : "";
218
- sink(c.dim(` · ${event.source}: ${event.count} artifacts in ${event.durationMs}ms${tag}`));
219
- break;
220
- }
221
- case "evidence_collected":
222
- sink(c.dim(`Evidence: ${event.artifacts.length} artifacts collected`));
223
- break;
224
- case "research_start":
225
- sink(c.dim(`⏳ ${event.participant} researching...`));
226
- break;
227
- case "research_done": {
228
- const fCount = event.report.findings.length;
229
- sink(`${event.participant}: ${c.green("done")} (${fCount} findings)`);
230
- break;
231
- }
232
- case "context_lookup":
233
- for (const t of event.tools) {
234
- sink(c.dim(` 🔍 ${event.participant}: ${t}`));
235
- }
236
- break;
237
- case "claims_registered":
238
- sink(c.dim(`${event.claimCount} claims registered`));
239
- break;
240
- case "cross_review_start":
241
- sink(c.dim("── Cross Review ──"));
242
- break;
243
- case "cross_review_done":
244
- sink(c.dim(`${event.reviews.length} peer reviews collected`));
245
- break;
246
- case "verification_start":
247
- sink(c.dim("── Verification Review ──"));
248
- break;
249
- case "verification_done":
250
- sink(c.dim(`${event.challengeCount} challenges raised`));
251
- break;
252
- case "debate_round_start":
253
- sink(c.dim(`── Debate Round ${event.round} (${event.claims.length} claims) ──`));
254
- break;
255
- case "debate_round_done":
256
- sink(c.dim(`Round ${event.round}: ${event.resolved} resolved`));
257
- break;
258
- case "adjudication_done":
259
- sink(c.dim(`Adjudication: ${event.accepted} accepted, ${event.unresolved} unresolved`));
260
- break;
261
- case "planning_merge_review_start":
262
- sink(c.dim("── Planning Merge Review ──"));
263
- break;
264
- case "planning_merge_review_done":
265
- sink(c.dim(`${event.mergeCount} merge suggestions collected`));
266
- break;
267
- case "roadmap_expansion_start":
268
- sink(c.dim(`── Expanding ${event.phaseCount} roadmap phases ──`));
269
- break;
270
- case "roadmap_expansion_done":
271
- sink(c.dim(`${event.detailCount} phase details generated`));
272
- break;
273
- case "consensus_start":
274
- sink(c.dim("⏳ Building consensus..."));
275
- break;
276
- case "consensus_done":
277
- break;
278
- }
279
- };
280
- }
281
- /**
282
- * Legacy: direct console.log progress renderer for CLI mode.
283
- */
284
- export function renderProgress(event, c = NOOP_COLORIZER) {
285
- createProgressRenderer((text) => console.log(` ${text}`), c)(event);
286
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * Discussion strategy — open-ended debate with structured findings.
3
- *
4
- * V2: focuses on trade-offs, competing viewpoints, and evidence-backed arguments.
5
- */
6
- import type { ArenaStrategyV2, ArenaBaseContext, ParticipantReport, FindingReview, ArenaConsensus, FindingKind, ClaimRecord, ClaimChallenge, ClaimAdjudication, ClaimStatusSummary, DebateTurn, DebateRound, RoundResearchDigest } from "../types.js";
7
- export declare class DiscussionStrategy implements ArenaStrategyV2 {
8
- researchSystemPrompt(name: string): string;
9
- researchUserPrompt(topic: string, baseContext: ArenaBaseContext): string;
10
- parseResearchResponse(participant: string, text: string): ParticipantReport;
11
- crossReviewSystemPrompt(reviewerName: string): string;
12
- crossReviewUserPrompt(topic: string, myReport: ParticipantReport, otherReports: ParticipantReport[]): string;
13
- parseCrossReviewResponse(reviewer: string, text: string): FindingReview[];
14
- consensusSystemPrompt(): string;
15
- consensusUserPrompt(topic: string, reports: ParticipantReport[], reviews: FindingReview[]): string;
16
- parseConsensusResponse(text: string): ArenaConsensus;
17
- preferredFindingKinds(): FindingKind[];
18
- verificationReviewUserPrompt(topic: string, myReport: ParticipantReport, claimsToReview: ClaimRecord[], digest: RoundResearchDigest): string;
19
- parseVerificationReviewResponse(reviewer: string, text: string): ClaimChallenge[];
20
- debateTurnUserPrompt(topic: string, claim: ClaimRecord, priorTurns: DebateTurn[], digest: RoundResearchDigest): string;
21
- parseDebateTurnResponse(participant: string, text: string): DebateTurn;
22
- adjudicationUserPrompt(topic: string, claim: ClaimRecord, debateRounds: DebateRound[], digest: RoundResearchDigest): string;
23
- parseAdjudicationResponse(text: string): ClaimAdjudication;
24
- claimAwareConsensusUserPrompt(topic: string, reports: ParticipantReport[], reviews: FindingReview[], claimSummary: ClaimStatusSummary): string;
25
- }
@@ -1,143 +0,0 @@
1
- /**
2
- * Discussion strategy — open-ended debate with structured findings.
3
- *
4
- * V2: focuses on trade-offs, competing viewpoints, and evidence-backed arguments.
5
- */
6
- import { formatBaseContext, formatReports, formatFindingReviews, formatClaimsForReview, formatDebateHistory, formatClaimSummaryForConsensus, formatDigestForPrompt, parseReport, parseReviews, parseConsensus, parseChallenges, parseDebateTurn, parseAdjudication, } from "./utils.js";
7
- export class DiscussionStrategy {
8
- researchSystemPrompt(name) {
9
- return (`You are ${name}, participating in a multi-model discussion arena.\n\n` +
10
- `You may have access to read-only tools to gather evidence. ` +
11
- `The base context is intentionally lean — use tools as needed.\n\n` +
12
- `IMPORTANT RULES:\n` +
13
- `- Limit yourself to 3-5 tool rounds. Do NOT exhaustively read every file.\n` +
14
- `- Output as many findings as the topic warrants — typically 5-15 for a non-trivial subject. ` +
15
- `Each finding's "summary" should be 80+ words with concrete evidence and rationale, not a one-liner. ` +
16
- `Rank by confidence.\n` +
17
- `- Focus on trade-offs, risks, and open questions. Strengths are optional.\n\n` +
18
- `Respond ONLY with JSON (no markdown fences):\n` +
19
- `{"contextSummary": "what you investigated and your overall take",` +
20
- ` "findings": [{"id": "unique-id", "kind": "risk|improvement|question|strength",` +
21
- ` "title": "short title", "summary": "detailed analysis with evidence",` +
22
- ` "severity": "high|medium|low", "confidence": 0.0-1.0,` +
23
- ` "evidence": [{"type": "file|diff|grep|git|doc", "ref": "path", "note": "what it shows"}],` +
24
- ` "affectedFiles": ["paths"], "suggestedChange": "optional"}]}`);
25
- }
26
- researchUserPrompt(topic, baseContext) {
27
- return (`## Discussion Topic\n${topic}\n\n` +
28
- `${formatBaseContext(baseContext)}\n\n` +
29
- `Use tools to investigate, then output 3-6 highest-confidence findings as JSON.`);
30
- }
31
- parseResearchResponse(participant, text) {
32
- return parseReport(participant, text);
33
- }
34
- crossReviewSystemPrompt(reviewerName) {
35
- return (`You are ${reviewerName}, reviewing other participants' discussion findings.\n\n` +
36
- `Engage thoughtfully: challenge weak arguments, acknowledge strong ones.\n` +
37
- `Focus on finding the best answer, not winning.\n\n` +
38
- `For each finding you want to address, provide a verdict:\n` +
39
- `- "agree": you confirm this perspective\n` +
40
- `- "refine": mostly agree but with nuances\n` +
41
- `- "disagree": you have a different view with evidence\n` +
42
- `- "needs_evidence": the claim lacks supporting evidence\n\n` +
43
- `Respond ONLY with a JSON array:\n` +
44
- `[{"findingId": "...", "verdict": "...", "reason": "...", "extraEvidence": ["optional"]}]`);
45
- }
46
- crossReviewUserPrompt(topic, myReport, otherReports) {
47
- return (`## Topic: ${topic}\n\n` +
48
- `## Your Analysis\n${formatReports([myReport])}\n\n` +
49
- `## Other Participants' Analysis\n${formatReports(otherReports)}\n\n` +
50
- `Review the others' findings. Where do you agree or disagree? What nuances are missing?`);
51
- }
52
- parseCrossReviewResponse(reviewer, text) {
53
- return parseReviews(reviewer, text);
54
- }
55
- consensusSystemPrompt() {
56
- return (`You are a neutral moderator synthesizing a multi-model discussion into a balanced conclusion.\n\n` +
57
- `Capture key insights, agreements, and remaining disagreements. ` +
58
- `Do NOT suppress minority viewpoints — preserve them as open questions.\n\n` +
59
- `IMPORTANT: Start with a "subjectSummary" — a factual framing of the topic, current scope, or assumptions under discussion before moving into conclusions.\n\n` +
60
- `Respond ONLY with JSON (no markdown fences):\n` +
61
- `{\n` +
62
- ` "summary": "balanced synthesis",\n` +
63
- ` "subjectSummary": "factual problem framing or current scope of the discussion",\n` +
64
- ` "strengths": [{"title": "...", "summary": "...", "support": [], "challenge": [], "confidence": 0.0-1.0, "evidenceRefs": []}],\n` +
65
- ` "improvements": [same structure],\n` +
66
- ` "risks": [same structure],\n` +
67
- ` "openQuestions": [same structure — include still-debated points],\n` +
68
- ` "nextActions": [{"title": "...", "priority": "high|medium|low", "rationale": "...", "relatedFindings": []}]\n` +
69
- `}`);
70
- }
71
- consensusUserPrompt(topic, reports, reviews) {
72
- return (`## Topic\n${topic}\n\n` +
73
- `## Participant Analyses\n${formatReports(reports)}\n\n` +
74
- `## Peer Reviews\n${formatFindingReviews(reviews)}\n\n` +
75
- `Synthesize a balanced conclusion. Start with a factual subjectSummary, then preserve disagreements as open questions.`);
76
- }
77
- parseConsensusResponse(text) {
78
- return parseConsensus(text);
79
- }
80
- preferredFindingKinds() {
81
- return ["strength", "risk", "question"];
82
- }
83
- // ─── V2: Verification Review ────────────────────────────────────
84
- verificationReviewUserPrompt(topic, myReport, claimsToReview, digest) {
85
- return (`## Topic: ${topic}\n\n` +
86
- `## Your Analysis\n${formatReports([myReport])}\n\n` +
87
- `## Claims to Verify\n${formatClaimsForReview(claimsToReview)}\n\n` +
88
- `## Evidence Digest\n${formatDigestForPrompt(digest)}\n\n` +
89
- `Engage critically with each claim. Challenge weak arguments, acknowledge strong ones. ` +
90
- `Focus on finding the best answer, not winning.\n` +
91
- `Respond ONLY with a JSON array:\n` +
92
- `[{"claimId": "...", "verdict": "agree|refine|disagree|needs_evidence", "reason": "...", ` +
93
- `"supportingEvidenceRefs": ["optional"], "requestedChecks": [{"description": "what to check", "priority": "high|medium|low"}]}]`);
94
- }
95
- parseVerificationReviewResponse(reviewer, text) {
96
- return parseChallenges(reviewer, text);
97
- }
98
- // ─── V2: Debate ─────────────────────────────────────────────────
99
- debateTurnUserPrompt(topic, claim, priorTurns, digest) {
100
- return (`## Topic: ${topic}\n\n` +
101
- `## Contested Claim\n` +
102
- `[${claim.claimId}] ${claim.finding.title}\n${claim.finding.summary}\n\n` +
103
- `## Prior Debate\n${formatDebateHistory(priorTurns)}\n\n` +
104
- `## Evidence Digest\n${formatDigestForPrompt(digest)}\n\n` +
105
- `Engage thoughtfully. If the evidence supports the claim, narrow toward agreement. ` +
106
- `If not, explain why with evidence.\n` +
107
- `Respond ONLY with JSON:\n` +
108
- `{"stance": "support|oppose|narrow|uncertain", "summary": "your argument", "newEvidenceRefs": ["optional"]}`);
109
- }
110
- parseDebateTurnResponse(participant, text) {
111
- return parseDebateTurn(participant, text);
112
- }
113
- // ─── V2: Adjudication ──────────────────────────────────────────
114
- adjudicationUserPrompt(topic, claim, debateRounds, digest) {
115
- const debateSummary = debateRounds.length > 0
116
- ? debateRounds.map((r) => `Round ${r.round}:\n${formatDebateHistory(r.participants)}\n${r.resolved ? "→ Resolved" : "→ Unresolved"}`).join("\n\n")
117
- : "No debate rounds occurred.";
118
- return (`## Topic: ${topic}\n\n` +
119
- `## Contested Claim\n` +
120
- `[${claim.claimId}] ${claim.finding.title}\n${claim.finding.summary}\n` +
121
- `Owner: ${claim.owner}\n\n` +
122
- `## Challenges\n` +
123
- claim.challenges.map((c) => `[${c.reviewer}] ${c.verdict}: ${c.reason}`).join("\n") + "\n\n" +
124
- `## Debate\n${debateSummary}\n\n` +
125
- `## Evidence Digest\n${formatDigestForPrompt(digest)}\n\n` +
126
- `As moderator, synthesize the debate. Preserve minority viewpoints where the evidence is genuinely ambiguous.\n` +
127
- `Respond ONLY with JSON:\n` +
128
- `{"outcome": "accepted|accepted_with_revision|rejected|unresolved", "rationale": "...", ` +
129
- `"finalSummary": "revised claim summary", "supportingEvidenceRefs": ["..."]}`);
130
- }
131
- parseAdjudicationResponse(text) {
132
- return parseAdjudication("", text);
133
- }
134
- // ─── V2: Claim-Aware Consensus ─────────────────────────────────
135
- claimAwareConsensusUserPrompt(topic, reports, reviews, claimSummary) {
136
- return (`## Topic\n${topic}\n\n` +
137
- `## Claim Verification Status\n${formatClaimSummaryForConsensus(claimSummary)}\n\n` +
138
- `## Participant Analyses\n${formatReports(reports)}\n\n` +
139
- `## Peer Reviews\n${formatFindingReviews(reviews)}\n\n` +
140
- `Synthesize a balanced conclusion. Verified claims are high-confidence. ` +
141
- `Unresolved claims should be preserved as open questions — do NOT suppress minority viewpoints.`);
142
- }
143
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Arena strategies — mode-specific behavior for the arena orchestration loop.
3
- */
4
- export { ReviewStrategy } from "./review.js";
5
- export { DiscussionStrategy } from "./discussion.js";
6
- export { PlanningStrategy } from "./planning.js";
7
- export { withLens } from "./lens-wrapper.js";
8
- import type { ArenaMode, ArenaStrategy, ArenaPlan } from "../types.js";
9
- /** Get the default strategy for a given arena mode. */
10
- export declare function getStrategy(mode: ArenaMode): ArenaStrategy;
11
- /**
12
- * Get a strategy for a plan — mode strategy + lens wrapper.
13
- * This is the new evidence-driven entry point.
14
- */
15
- export declare function getStrategyForPlan(plan: ArenaPlan): ArenaStrategy;
@@ -1,28 +0,0 @@
1
- /**
2
- * Arena strategies — mode-specific behavior for the arena orchestration loop.
3
- */
4
- export { ReviewStrategy } from "./review.js";
5
- export { DiscussionStrategy } from "./discussion.js";
6
- export { PlanningStrategy } from "./planning.js";
7
- export { withLens } from "./lens-wrapper.js";
8
- import { ReviewStrategy } from "./review.js";
9
- import { DiscussionStrategy } from "./discussion.js";
10
- import { PlanningStrategy } from "./planning.js";
11
- import { withLens } from "./lens-wrapper.js";
12
- const STRATEGY_MAP = {
13
- review: () => new ReviewStrategy(),
14
- discussion: () => new DiscussionStrategy(),
15
- planning: () => new PlanningStrategy(),
16
- };
17
- /** Get the default strategy for a given arena mode. */
18
- export function getStrategy(mode) {
19
- return STRATEGY_MAP[mode]();
20
- }
21
- /**
22
- * Get a strategy for a plan — mode strategy + lens wrapper.
23
- * This is the new evidence-driven entry point.
24
- */
25
- export function getStrategyForPlan(plan) {
26
- const base = STRATEGY_MAP[plan.mode]();
27
- return withLens(base, plan);
28
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * Language-aware strategy wrapper.
3
- *
4
- * Detects the language of the user's query and injects a language instruction
5
- * into all strategy system prompts so the arena output matches the query language.
6
- */
7
- import type { ArenaStrategy } from "../types.js";
8
- /**
9
- * Detect whether the topic is primarily non-English.
10
- * Returns a language instruction string, or empty if English.
11
- */
12
- export declare function detectLanguageInstruction(topic: string): string;
13
- /**
14
- * Wrap a strategy to inject language instructions into all system prompts.
15
- * If the topic is English, returns the original strategy unchanged.
16
- */
17
- export declare function withLanguage(strategy: ArenaStrategy, topic: string): ArenaStrategy;
@@ -1,102 +0,0 @@
1
- /**
2
- * Language-aware strategy wrapper.
3
- *
4
- * Detects the language of the user's query and injects a language instruction
5
- * into all strategy system prompts so the arena output matches the query language.
6
- */
7
- import { isStrategyV2 } from "../types.js";
8
- /**
9
- * Detect whether the topic is primarily non-English.
10
- * Returns a language instruction string, or empty if English.
11
- */
12
- export function detectLanguageInstruction(topic) {
13
- // Simple heuristic: count CJK / Cyrillic / Arabic / Thai / Korean characters
14
- // vs ASCII. If non-ASCII ratio is significant, infer the language.
15
- const nonAscii = topic.replace(/[\x00-\x7F]/g, "");
16
- const ratio = nonAscii.length / Math.max(topic.length, 1);
17
- if (ratio < 0.15)
18
- return ""; // predominantly English/ASCII
19
- // Detect specific scripts
20
- if (/[\u4e00-\u9fff\u3400-\u4dbf]/.test(topic)) {
21
- return "IMPORTANT: The user's query is in Chinese. You MUST respond in Chinese (中文). All text output — summaries, findings, titles, descriptions, rationale — must be written in Chinese. JSON field values must be in Chinese.";
22
- }
23
- if (/[\u3040-\u309f\u30a0-\u30ff]/.test(topic)) {
24
- return "IMPORTANT: The user's query is in Japanese. You MUST respond in Japanese (日本語). All text output must be in Japanese. JSON field values must be in Japanese.";
25
- }
26
- if (/[\uac00-\ud7af]/.test(topic)) {
27
- return "IMPORTANT: The user's query is in Korean. You MUST respond in Korean (한국어). All text output must be in Korean. JSON field values must be in Korean.";
28
- }
29
- if (/[\u0400-\u04ff]/.test(topic)) {
30
- return "IMPORTANT: The user's query is in Russian. You MUST respond in Russian (русский). All text output must be in Russian. JSON field values must be in Russian.";
31
- }
32
- if (/[\u0600-\u06ff]/.test(topic)) {
33
- return "IMPORTANT: The user's query is in Arabic. You MUST respond in Arabic (العربية). All text output must be in Arabic. JSON field values must be in Arabic.";
34
- }
35
- // Generic fallback for other non-ASCII scripts
36
- return "IMPORTANT: Respond in the same language as the user's query. All text output — summaries, findings, titles, descriptions — must match the query language.";
37
- }
38
- /**
39
- * Wrap a strategy to inject language instructions into all system prompts.
40
- * If the topic is English, returns the original strategy unchanged.
41
- */
42
- export function withLanguage(strategy, topic) {
43
- const langInstruction = detectLanguageInstruction(topic);
44
- if (!langInstruction)
45
- return strategy;
46
- return {
47
- researchSystemPrompt(name) {
48
- return `${langInstruction}\n\n${strategy.researchSystemPrompt(name)}`;
49
- },
50
- researchUserPrompt(t, ctx) {
51
- return strategy.researchUserPrompt(t, ctx);
52
- },
53
- parseResearchResponse(participant, text) {
54
- return strategy.parseResearchResponse(participant, text);
55
- },
56
- crossReviewSystemPrompt(reviewerName) {
57
- return `${langInstruction}\n\n${strategy.crossReviewSystemPrompt(reviewerName)}`;
58
- },
59
- crossReviewUserPrompt(t, my, others) {
60
- return strategy.crossReviewUserPrompt(t, my, others);
61
- },
62
- parseCrossReviewResponse(reviewer, text) {
63
- return strategy.parseCrossReviewResponse(reviewer, text);
64
- },
65
- consensusSystemPrompt() {
66
- return `${langInstruction}\n\n${strategy.consensusSystemPrompt()}`;
67
- },
68
- consensusUserPrompt(t, reports, reviews) {
69
- return strategy.consensusUserPrompt(t, reports, reviews);
70
- },
71
- parseConsensusResponse(text) {
72
- return strategy.parseConsensusResponse(text);
73
- },
74
- preferredFindingKinds() {
75
- return strategy.preferredFindingKinds();
76
- },
77
- // ─── V2 forwarding (conditional) ─────────────────────────────
78
- ...(isStrategyV2(strategy) ? {
79
- verificationReviewUserPrompt(topic, myReport, claims, digest) {
80
- return strategy.verificationReviewUserPrompt(topic, myReport, claims, digest);
81
- },
82
- parseVerificationReviewResponse(reviewer, text) {
83
- return strategy.parseVerificationReviewResponse(reviewer, text);
84
- },
85
- debateTurnUserPrompt(topic, claim, priorTurns, digest) {
86
- return strategy.debateTurnUserPrompt(topic, claim, priorTurns, digest);
87
- },
88
- parseDebateTurnResponse(participant, text) {
89
- return strategy.parseDebateTurnResponse(participant, text);
90
- },
91
- adjudicationUserPrompt(topic, claim, rounds, digest) {
92
- return strategy.adjudicationUserPrompt(topic, claim, rounds, digest);
93
- },
94
- parseAdjudicationResponse(text) {
95
- return strategy.parseAdjudicationResponse(text);
96
- },
97
- claimAwareConsensusUserPrompt(topic, reports, reviews, claimSummary) {
98
- return strategy.claimAwareConsensusUserPrompt(topic, reports, reviews, claimSummary);
99
- },
100
- } : {}),
101
- };
102
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * Lens-aware strategy wrapper.
3
- *
4
- * Composes a mode strategy with lens-specific prompts:
5
- * systemPrompt = modeStrategy.systemPrompt() + lensPrompt + toolGuidance
6
- *
7
- * This achieves the separation described in the architecture doc:
8
- * - Strategy (mode) → how to collaborate
9
- * - Lens → from what perspective
10
- */
11
- import type { ArenaStrategy, ArenaPlan } from "../types.js";
12
- /**
13
- * Wrap a strategy to inject lens-specific role and criteria prompts.
14
- * If no plan is provided, returns the original strategy unchanged.
15
- */
16
- export declare function withLens(strategy: ArenaStrategy, plan: ArenaPlan): ArenaStrategy;