@cjhyy/code-shell-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/README.md +36 -23
  2. package/dist/agent/agent-definition-registry.d.ts +2 -2
  3. package/dist/agent/agent-definition-registry.js +47 -10
  4. package/dist/agent/agent-definition.d.ts +5 -0
  5. package/dist/agent/agent-definition.js +14 -0
  6. package/dist/automation/index.d.ts +7 -4
  7. package/dist/automation/index.js +4 -2
  8. package/dist/automation/runner.js +3 -1
  9. package/dist/automation/scheduler.d.ts +57 -1
  10. package/dist/automation/scheduler.js +123 -23
  11. package/dist/automation/store.d.ts +6 -2
  12. package/dist/automation/store.js +7 -3
  13. package/dist/capabilities/index.d.ts +109 -0
  14. package/dist/capabilities/index.js +80 -0
  15. package/dist/capability-control/disabled-lists.d.ts +2 -1
  16. package/dist/capability-control/disabled-lists.js +3 -5
  17. package/dist/capability-control/overlay.d.ts +14 -1
  18. package/dist/capability-control/overlay.js +40 -0
  19. package/dist/capability-control/service.js +6 -4
  20. package/dist/cli/agent-server-stdio.d.ts +1 -1
  21. package/dist/cli/agent-server-stdio.js +66 -6
  22. package/dist/cli/agent-server-tcp.js +20 -5
  23. package/dist/context/compaction.d.ts +39 -3
  24. package/dist/context/compaction.js +151 -39
  25. package/dist/context/manager.d.ts +20 -4
  26. package/dist/context/manager.js +42 -7
  27. package/dist/context/token-counter.js +5 -3
  28. package/dist/context/tool-result-storage.d.ts +6 -0
  29. package/dist/context/tool-result-storage.js +25 -4
  30. package/dist/credentials/access.d.ts +13 -2
  31. package/dist/credentials/access.js +99 -4
  32. package/dist/credentials/index.d.ts +3 -2
  33. package/dist/credentials/index.js +2 -1
  34. package/dist/credentials/oauth.d.ts +9 -1
  35. package/dist/credentials/oauth.js +80 -1
  36. package/dist/credentials/store.d.ts +16 -2
  37. package/dist/credentials/store.js +33 -11
  38. package/dist/credentials/types.d.ts +62 -1
  39. package/dist/credentials/types.js +16 -1
  40. package/dist/credentials/use-credential-tool.js +15 -1
  41. package/dist/engine/auxiliary-pipeline.d.ts +40 -0
  42. package/dist/engine/auxiliary-pipeline.js +181 -0
  43. package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
  44. package/dist/{settings → engine}/disk-defaults.js +5 -2
  45. package/dist/engine/dynamic-tool-defs.d.ts +4 -0
  46. package/dist/engine/dynamic-tool-defs.js +4 -0
  47. package/dist/engine/engine.d.ts +272 -184
  48. package/dist/engine/engine.js +1869 -1864
  49. package/dist/engine/file-history-hook.d.ts +11 -0
  50. package/dist/engine/file-history-hook.js +31 -0
  51. package/dist/engine/goal-judge-context.d.ts +9 -0
  52. package/dist/engine/goal-judge-context.js +234 -0
  53. package/dist/engine/injected-context-cache.d.ts +6 -0
  54. package/dist/engine/injected-context-cache.js +13 -0
  55. package/dist/engine/input-attachments.d.ts +1 -1
  56. package/dist/engine/model-facade.d.ts +3 -3
  57. package/dist/engine/model-facade.js +15 -14
  58. package/dist/engine/permission-controller.d.ts +55 -0
  59. package/dist/engine/permission-controller.js +148 -0
  60. package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
  61. package/dist/engine/prompt-cache-diagnostics.js +178 -0
  62. package/dist/engine/run-accounting.d.ts +41 -0
  63. package/dist/engine/run-accounting.js +126 -0
  64. package/dist/engine/run-context.d.ts +44 -0
  65. package/dist/engine/run-context.js +88 -0
  66. package/dist/engine/run-environment.d.ts +30 -0
  67. package/dist/engine/run-environment.js +77 -0
  68. package/dist/engine/run-finalize.d.ts +58 -0
  69. package/dist/engine/run-finalize.js +245 -0
  70. package/dist/engine/run-goal.d.ts +58 -0
  71. package/dist/engine/run-goal.js +188 -0
  72. package/dist/engine/run-image-input.d.ts +1 -1
  73. package/dist/engine/run-image-input.js +5 -3
  74. package/dist/engine/run-session-open.d.ts +41 -0
  75. package/dist/engine/run-session-open.js +186 -0
  76. package/dist/engine/run-setup.d.ts +42 -0
  77. package/dist/engine/run-setup.js +58 -0
  78. package/dist/engine/run-tooling.d.ts +125 -0
  79. package/dist/engine/run-tooling.js +283 -0
  80. package/dist/engine/run-types.d.ts +139 -0
  81. package/dist/engine/run-types.js +12 -0
  82. package/dist/engine/run-workspace.d.ts +50 -0
  83. package/dist/engine/run-workspace.js +114 -0
  84. package/dist/engine/session-title.d.ts +2 -1
  85. package/dist/engine/session-title.js +4 -1
  86. package/dist/engine/steer-queue.d.ts +1 -1
  87. package/dist/engine/subagent-spawner.d.ts +32 -0
  88. package/dist/engine/subagent-spawner.js +287 -0
  89. package/dist/engine/tool-summary.d.ts +2 -2
  90. package/dist/engine/tool-summary.js +2 -2
  91. package/dist/engine/turn-loop.d.ts +67 -10
  92. package/dist/engine/turn-loop.js +538 -97
  93. package/dist/engine/types.d.ts +35 -4
  94. package/dist/engine/types.js +1 -1
  95. package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +80 -6
  96. package/dist/goal/lifecycle.js +482 -0
  97. package/dist/hooks/events.d.ts +26 -9
  98. package/dist/hooks/events.js +0 -3
  99. package/dist/hooks/goal-stop-hook.d.ts +28 -29
  100. package/dist/hooks/goal-stop-hook.js +344 -144
  101. package/dist/hooks/registry.js +4 -1
  102. package/dist/hooks/shell-runner.d.ts +12 -1
  103. package/dist/hooks/shell-runner.js +160 -9
  104. package/dist/index.d.ts +51 -110
  105. package/dist/index.extension.d.ts +51 -0
  106. package/dist/index.extension.js +39 -0
  107. package/dist/index.internal.d.ts +86 -0
  108. package/dist/index.internal.js +92 -0
  109. package/dist/index.js +37 -125
  110. package/dist/links/cli.d.ts +48 -0
  111. package/dist/links/cli.js +617 -0
  112. package/dist/links/http.d.ts +40 -0
  113. package/dist/links/http.js +166 -0
  114. package/dist/links/index.d.ts +4 -0
  115. package/dist/links/index.js +3 -0
  116. package/dist/links/link-action-tool.d.ts +5 -0
  117. package/dist/links/link-action-tool.js +241 -0
  118. package/dist/links/providers.d.ts +8 -0
  119. package/dist/links/providers.js +665 -0
  120. package/dist/links/types.d.ts +44 -0
  121. package/dist/llm/client-base.d.ts +7 -0
  122. package/dist/llm/client-base.js +72 -10
  123. package/dist/llm/model-pool.d.ts +1 -1
  124. package/dist/llm/model-pool.js +1 -1
  125. package/dist/llm/providers/anthropic.d.ts +1 -0
  126. package/dist/llm/providers/anthropic.js +9 -0
  127. package/dist/llm/providers/openai.d.ts +1 -0
  128. package/dist/llm/providers/openai.js +17 -0
  129. package/dist/llm/types.d.ts +12 -5
  130. package/dist/model-catalog/index.js +15 -2
  131. package/dist/model-catalog/resolve.d.ts +13 -1
  132. package/dist/model-catalog/resolve.js +37 -2
  133. package/dist/model-catalog/types.d.ts +74 -48
  134. package/dist/model-catalog/types.js +16 -5
  135. package/dist/model-catalog/upsert.d.ts +3 -1
  136. package/dist/model-catalog/upsert.js +9 -0
  137. package/dist/onboarding.d.ts +0 -1
  138. package/dist/onboarding.js +1 -22
  139. package/dist/panel-apps/bindings.d.ts +24 -0
  140. package/dist/panel-apps/bindings.js +69 -0
  141. package/dist/panel-apps/github-archive.d.ts +21 -0
  142. package/dist/panel-apps/github-archive.js +98 -0
  143. package/dist/panel-apps/index.d.ts +4 -0
  144. package/dist/panel-apps/index.js +4 -0
  145. package/dist/panel-apps/installer.d.ts +68 -0
  146. package/dist/panel-apps/installer.js +622 -0
  147. package/dist/panel-apps/manifest.d.ts +364 -0
  148. package/dist/panel-apps/manifest.js +189 -0
  149. package/dist/panel-apps/paths.d.ts +13 -0
  150. package/dist/panel-apps/paths.js +38 -0
  151. package/dist/panel-apps/registry.d.ts +51 -0
  152. package/dist/panel-apps/registry.js +99 -0
  153. package/dist/panel-apps/runtime.d.ts +80 -0
  154. package/dist/panel-apps/runtime.js +154 -0
  155. package/dist/plugins/gitOps.js +8 -1
  156. package/dist/plugins/installedPlugins.d.ts +2 -1
  157. package/dist/plugins/installedPlugins.js +146 -8
  158. package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
  159. package/dist/plugins/installer/codex/convertAgents.js +62 -8
  160. package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
  161. package/dist/plugins/installer/codex/convertCommands.js +35 -12
  162. package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
  163. package/dist/plugins/installer/codex/convertHooks.js +82 -0
  164. package/dist/plugins/installer/codex/convertSkills.js +41 -6
  165. package/dist/plugins/installer/install.d.ts +7 -1
  166. package/dist/plugins/installer/install.js +21 -87
  167. package/dist/plugins/installer/installFromArchive.d.ts +26 -4
  168. package/dist/plugins/installer/installFromArchive.js +44 -27
  169. package/dist/plugins/installer/installFromNpm.d.ts +31 -0
  170. package/dist/plugins/installer/installFromNpm.js +273 -0
  171. package/dist/plugins/installer/loadPluginAgents.js +17 -4
  172. package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
  173. package/dist/plugins/installer/loadPluginMcp.js +245 -35
  174. package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
  175. package/dist/plugins/installer/normalizeManifest.js +306 -0
  176. package/dist/plugins/installer/npmTar.d.ts +13 -0
  177. package/dist/plugins/installer/npmTar.js +321 -0
  178. package/dist/plugins/installer/parseSource.d.ts +11 -0
  179. package/dist/plugins/installer/parseSource.js +48 -0
  180. package/dist/plugins/installer/preview.d.ts +101 -0
  181. package/dist/plugins/installer/preview.js +336 -0
  182. package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
  183. package/dist/plugins/installer/projectPluginSource.js +140 -0
  184. package/dist/plugins/installer/types.d.ts +775 -0
  185. package/dist/plugins/installer/types.js +100 -0
  186. package/dist/plugins/installer/unzip.d.ts +11 -0
  187. package/dist/plugins/installer/unzip.js +123 -9
  188. package/dist/plugins/installer/update.d.ts +2 -2
  189. package/dist/plugins/installer/update.js +43 -4
  190. package/dist/plugins/loadPluginHooks.d.ts +19 -2
  191. package/dist/plugins/loadPluginHooks.js +97 -86
  192. package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
  193. package/dist/plugins/pluginAutomationTemplates.js +50 -0
  194. package/dist/plugins/pluginCatalog.d.ts +45 -0
  195. package/dist/plugins/pluginCatalog.js +87 -0
  196. package/dist/plugins/pluginCommandHook.d.ts +10 -4
  197. package/dist/plugins/pluginCommandHook.js +133 -18
  198. package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
  199. package/dist/plugins/pluginCommandsLoader.js +181 -7
  200. package/dist/plugins/pluginContent.d.ts +10 -1
  201. package/dist/plugins/pluginContent.js +87 -30
  202. package/dist/plugins/pluginHookApproval.d.ts +30 -0
  203. package/dist/plugins/pluginHookApproval.js +160 -0
  204. package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
  205. package/dist/plugins/pluginHookIntegrity.js +361 -0
  206. package/dist/plugins/pluginInstaller.js +71 -12
  207. package/dist/plugins/pluginMcpApproval.d.ts +19 -0
  208. package/dist/plugins/pluginMcpApproval.js +110 -0
  209. package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
  210. package/dist/plugins/pluginMcpIntegrity.js +74 -0
  211. package/dist/plugins/types.d.ts +30 -0
  212. package/dist/plugins/varRewrite.d.ts +9 -5
  213. package/dist/plugins/varRewrite.js +26 -17
  214. package/dist/preset/index.d.ts +11 -8
  215. package/dist/preset/index.js +62 -203
  216. package/dist/product/define.js +9 -3
  217. package/dist/product/types.d.ts +0 -2
  218. package/dist/profile/activation.d.ts +36 -0
  219. package/dist/profile/activation.js +57 -0
  220. package/dist/profile/catalog-store.d.ts +77 -0
  221. package/dist/profile/catalog-store.js +346 -0
  222. package/dist/profile/catalog.d.ts +54 -0
  223. package/dist/profile/catalog.js +152 -0
  224. package/dist/profile/index.d.ts +7 -0
  225. package/dist/profile/index.js +7 -0
  226. package/dist/profile/requirements.d.ts +76 -0
  227. package/dist/profile/requirements.js +117 -0
  228. package/dist/profile/resolve.d.ts +11 -0
  229. package/dist/profile/resolve.js +41 -0
  230. package/dist/profile/store.d.ts +17 -0
  231. package/dist/profile/store.js +167 -0
  232. package/dist/profile/types.d.ts +321 -0
  233. package/dist/profile/types.js +104 -0
  234. package/dist/prompt/composer.d.ts +46 -7
  235. package/dist/prompt/composer.js +78 -48
  236. package/dist/prompt/instruction-scanner.d.ts +6 -5
  237. package/dist/prompt/instruction-scanner.js +8 -23
  238. package/dist/prompt/section-loader.d.ts +2 -2
  239. package/dist/prompt/section-loader.js +7 -4
  240. package/dist/prompt/sections/browser.md +10 -9
  241. package/dist/prompt/sections/harness-base.md +9 -0
  242. package/dist/protocol/chat-session-manager.d.ts +77 -3
  243. package/dist/protocol/chat-session-manager.js +194 -18
  244. package/dist/protocol/chat-session.d.ts +72 -9
  245. package/dist/protocol/chat-session.js +151 -16
  246. package/dist/protocol/client.d.ts +37 -4
  247. package/dist/protocol/client.js +118 -6
  248. package/dist/protocol/index.d.ts +2 -2
  249. package/dist/protocol/index.js +2 -2
  250. package/dist/protocol/mobile-remote-types.d.ts +406 -0
  251. package/dist/protocol/mobile-remote-types.js +1 -0
  252. package/dist/protocol/server.d.ts +152 -14
  253. package/dist/protocol/server.js +1574 -229
  254. package/dist/protocol/types.d.ts +182 -32
  255. package/dist/protocol/types.js +18 -0
  256. package/dist/run/ArtifactTracker.d.ts +6 -1
  257. package/dist/run/ArtifactTracker.js +29 -21
  258. package/dist/run/EngineRunner.d.ts +2 -0
  259. package/dist/run/EngineRunner.js +1 -0
  260. package/dist/run/RunManager.d.ts +26 -0
  261. package/dist/run/RunManager.js +82 -11
  262. package/dist/run/factory.d.ts +3 -0
  263. package/dist/run/factory.js +2 -0
  264. package/dist/runtime/safe-spawn.d.ts +6 -0
  265. package/dist/runtime/safe-spawn.js +8 -13
  266. package/dist/services/auto-dream.d.ts +13 -1
  267. package/dist/services/auto-dream.js +56 -8
  268. package/dist/services/dream-consolidation.d.ts +3 -0
  269. package/dist/services/dream-consolidation.js +14 -2
  270. package/dist/services/index.d.ts +1 -1
  271. package/dist/services/index.js +1 -1
  272. package/dist/services/memory-orchestrator.js +6 -2
  273. package/dist/services/oauth.d.ts +34 -10
  274. package/dist/services/oauth.js +236 -98
  275. package/dist/services/session-memory.d.ts +4 -4
  276. package/dist/services/session-memory.js +13 -10
  277. package/dist/session/memory.d.ts +26 -7
  278. package/dist/session/memory.js +79 -21
  279. package/dist/session/session-manager.d.ts +208 -25
  280. package/dist/session/session-manager.js +1232 -116
  281. package/dist/session/session-message.d.ts +22 -0
  282. package/dist/session/session-message.js +1 -0
  283. package/dist/session/transcript.d.ts +76 -6
  284. package/dist/session/transcript.js +278 -7
  285. package/dist/settings/feature-flags.d.ts +40 -0
  286. package/dist/settings/feature-flags.js +40 -0
  287. package/dist/settings/manager.d.ts +39 -1
  288. package/dist/settings/manager.js +102 -41
  289. package/dist/settings/migrate-config.js +4 -2
  290. package/dist/settings/schema.d.ts +511 -177
  291. package/dist/settings/schema.js +98 -25
  292. package/dist/skills/scanner.d.ts +6 -2
  293. package/dist/skills/scanner.js +160 -9
  294. package/dist/sources/adapter.d.ts +14 -0
  295. package/dist/sources/adapter.js +7 -0
  296. package/dist/sources/adapters/local-files.d.ts +10 -0
  297. package/dist/sources/adapters/local-files.js +127 -0
  298. package/dist/sources/adapters/mcp-resource.d.ts +17 -0
  299. package/dist/sources/adapters/mcp-resource.js +41 -0
  300. package/dist/sources/adapters/mock.d.ts +3 -0
  301. package/dist/sources/adapters/mock.js +29 -0
  302. package/dist/sources/binding.d.ts +6 -0
  303. package/dist/sources/binding.js +24 -0
  304. package/dist/sources/catalog.d.ts +6 -0
  305. package/dist/sources/catalog.js +64 -0
  306. package/dist/sources/context-summary.d.ts +8 -0
  307. package/dist/sources/context-summary.js +13 -0
  308. package/dist/sources/credential-status.d.ts +2 -0
  309. package/dist/sources/credential-status.js +13 -0
  310. package/dist/sources/index.d.ts +10 -0
  311. package/dist/sources/index.js +10 -0
  312. package/dist/sources/resolve.d.ts +28 -0
  313. package/dist/sources/resolve.js +47 -0
  314. package/dist/sources/truncate-utf8.d.ts +7 -0
  315. package/dist/sources/truncate-utf8.js +18 -0
  316. package/dist/sources/types.d.ts +71 -0
  317. package/dist/sources/types.js +26 -0
  318. package/dist/testing/fetch-stub.d.ts +32 -0
  319. package/dist/testing/fetch-stub.js +24 -0
  320. package/dist/themes/image.d.ts +18 -0
  321. package/dist/themes/image.js +117 -0
  322. package/dist/themes/index.d.ts +4 -0
  323. package/dist/themes/index.js +4 -0
  324. package/dist/themes/installer.d.ts +50 -0
  325. package/dist/themes/installer.js +290 -0
  326. package/dist/themes/manifest.d.ts +102 -0
  327. package/dist/themes/manifest.js +86 -0
  328. package/dist/themes/paths.d.ts +14 -0
  329. package/dist/themes/paths.js +33 -0
  330. package/dist/tool-system/browser-bridge.d.ts +53 -11
  331. package/dist/tool-system/browser-bridge.js +8 -9
  332. package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
  333. package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
  334. package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
  335. package/dist/tool-system/builtin/agent-notifications.js +291 -101
  336. package/dist/tool-system/builtin/agent-output-file.js +1 -3
  337. package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
  338. package/dist/tool-system/builtin/agent-progress.js +83 -0
  339. package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
  340. package/dist/tool-system/builtin/agent-registry.js +178 -9
  341. package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
  342. package/dist/tool-system/builtin/agent.d.ts +2 -0
  343. package/dist/tool-system/builtin/agent.js +279 -34
  344. package/dist/tool-system/builtin/background-jobs.d.ts +63 -7
  345. package/dist/tool-system/builtin/background-jobs.js +111 -15
  346. package/dist/tool-system/builtin/background-work.d.ts +12 -1
  347. package/dist/tool-system/builtin/background-work.js +12 -1
  348. package/dist/tool-system/builtin/bash.d.ts +3 -5
  349. package/dist/tool-system/builtin/bash.js +14 -6
  350. package/dist/tool-system/builtin/browser-tools.d.ts +8 -5
  351. package/dist/tool-system/builtin/browser-tools.js +89 -23
  352. package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
  353. package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
  354. package/dist/tool-system/builtin/edit.d.ts +2 -1
  355. package/dist/tool-system/builtin/edit.js +14 -10
  356. package/dist/tool-system/builtin/file-cache.d.ts +2 -0
  357. package/dist/tool-system/builtin/file-cache.js +4 -0
  358. package/dist/tool-system/builtin/generate-image.js +17 -10
  359. package/dist/tool-system/builtin/generate-video.d.ts +4 -0
  360. package/dist/tool-system/builtin/generate-video.js +164 -28
  361. package/dist/tool-system/builtin/glob.d.ts +2 -1
  362. package/dist/tool-system/builtin/glob.js +28 -3
  363. package/dist/tool-system/builtin/grep.d.ts +1 -0
  364. package/dist/tool-system/builtin/grep.js +82 -17
  365. package/dist/tool-system/builtin/image-uploader.js +7 -1
  366. package/dist/tool-system/builtin/index.d.ts +57 -18
  367. package/dist/tool-system/builtin/index.js +280 -167
  368. package/dist/tool-system/builtin/memory.d.ts +6 -0
  369. package/dist/tool-system/builtin/memory.js +36 -15
  370. package/dist/tool-system/builtin/panel.d.ts +9 -0
  371. package/dist/tool-system/builtin/panel.js +314 -0
  372. package/dist/tool-system/builtin/read.js +5 -1
  373. package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
  374. package/dist/tool-system/builtin/send-message-to-session.js +67 -0
  375. package/dist/tool-system/builtin/sources.d.ts +8 -0
  376. package/dist/tool-system/builtin/sources.js +137 -0
  377. package/dist/tool-system/builtin/tool-search.js +7 -2
  378. package/dist/tool-system/builtin/update-automation-memory.js +2 -0
  379. package/dist/tool-system/builtin/video-providers.d.ts +12 -15
  380. package/dist/tool-system/builtin/video-providers.js +1 -0
  381. package/dist/tool-system/builtin/view-image.d.ts +2 -2
  382. package/dist/tool-system/builtin/web-fetch.js +60 -15
  383. package/dist/tool-system/builtin/web-search.js +1 -3
  384. package/dist/tool-system/builtin/write.d.ts +2 -1
  385. package/dist/tool-system/builtin/write.js +14 -4
  386. package/dist/tool-system/capability-module.d.ts +93 -0
  387. package/dist/tool-system/capability-module.js +53 -0
  388. package/dist/tool-system/context.d.ts +94 -24
  389. package/dist/tool-system/executor.js +99 -58
  390. package/dist/tool-system/external-tool-exposure.d.ts +60 -0
  391. package/dist/tool-system/external-tool-exposure.js +304 -0
  392. package/dist/tool-system/mcp-manager.d.ts +17 -1
  393. package/dist/tool-system/mcp-manager.js +72 -7
  394. package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
  395. package/dist/tool-system/mcp-tool-policy.js +34 -0
  396. package/dist/tool-system/panel-bridge.d.ts +53 -0
  397. package/dist/tool-system/panel-bridge.js +1 -0
  398. package/dist/tool-system/path-policy.d.ts +19 -0
  399. package/dist/tool-system/path-policy.js +62 -1
  400. package/dist/tool-system/permission.d.ts +69 -3
  401. package/dist/tool-system/permission.js +429 -30
  402. package/dist/tool-system/registry.d.ts +15 -3
  403. package/dist/tool-system/registry.js +82 -40
  404. package/dist/tool-system/sandbox/index.js +3 -8
  405. package/dist/tool-system/sandbox/seatbelt.js +2 -6
  406. package/dist/tool-system/session-tool-host.d.ts +139 -0
  407. package/dist/tool-system/session-tool-host.js +167 -0
  408. package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
  409. package/dist/tool-system/testing/tool-registry-harness.js +51 -0
  410. package/dist/tool-system/validation.d.ts +14 -7
  411. package/dist/tool-system/validation.js +701 -7
  412. package/dist/types.d.ts +201 -20
  413. package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
  414. package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
  415. package/dist/utils/file-mutex.d.ts +65 -0
  416. package/dist/utils/file-mutex.js +145 -0
  417. package/dist/utils/json.d.ts +2 -4
  418. package/dist/utils/json.js +2 -4
  419. package/dist/utils/lockfile.d.ts +30 -1
  420. package/dist/utils/lockfile.js +2 -2
  421. package/dist/utils/secret-scrubber.d.ts +8 -0
  422. package/dist/utils/secret-scrubber.js +227 -0
  423. package/dist/utils/toolDisplay.js +1 -1
  424. package/package.json +20 -5
  425. package/THIRD_PARTY_NOTICES.md +0 -206
  426. package/dist/arena/arena.d.ts +0 -43
  427. package/dist/arena/arena.js +0 -333
  428. package/dist/arena/context/context-tools.d.ts +0 -16
  429. package/dist/arena/context/context-tools.js +0 -272
  430. package/dist/arena/context/within-root.d.ts +0 -7
  431. package/dist/arena/context/within-root.js +0 -15
  432. package/dist/arena/detect-mode.d.ts +0 -20
  433. package/dist/arena/detect-mode.js +0 -78
  434. package/dist/arena/digest-builder.d.ts +0 -25
  435. package/dist/arena/digest-builder.js +0 -120
  436. package/dist/arena/index.d.ts +0 -29
  437. package/dist/arena/index.js +0 -29
  438. package/dist/arena/iterate/convergence.d.ts +0 -25
  439. package/dist/arena/iterate/convergence.js +0 -103
  440. package/dist/arena/iterate/formats/index.d.ts +0 -22
  441. package/dist/arena/iterate/formats/index.js +0 -283
  442. package/dist/arena/iterate/index.d.ts +0 -11
  443. package/dist/arena/iterate/index.js +0 -9
  444. package/dist/arena/iterate/iterative-arena.d.ts +0 -23
  445. package/dist/arena/iterate/iterative-arena.js +0 -237
  446. package/dist/arena/iterate/parse.d.ts +0 -42
  447. package/dist/arena/iterate/parse.js +0 -123
  448. package/dist/arena/iterate/phases/argue.d.ts +0 -22
  449. package/dist/arena/iterate/phases/argue.js +0 -165
  450. package/dist/arena/iterate/phases/revise.d.ts +0 -16
  451. package/dist/arena/iterate/phases/revise.js +0 -62
  452. package/dist/arena/iterate/phases/tournament.d.ts +0 -34
  453. package/dist/arena/iterate/phases/tournament.js +0 -113
  454. package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
  455. package/dist/arena/iterate/tools/web-tools.js +0 -54
  456. package/dist/arena/iterate/types.d.ts +0 -152
  457. package/dist/arena/iterate/types.js +0 -8
  458. package/dist/arena/ledger.d.ts +0 -47
  459. package/dist/arena/ledger.js +0 -159
  460. package/dist/arena/lenses/architecture.d.ts +0 -5
  461. package/dist/arena/lenses/architecture.js +0 -22
  462. package/dist/arena/lenses/engineering.d.ts +0 -5
  463. package/dist/arena/lenses/engineering.js +0 -22
  464. package/dist/arena/lenses/general.d.ts +0 -5
  465. package/dist/arena/lenses/general.js +0 -20
  466. package/dist/arena/lenses/index.d.ts +0 -16
  467. package/dist/arena/lenses/index.js +0 -47
  468. package/dist/arena/lenses/product.d.ts +0 -5
  469. package/dist/arena/lenses/product.js +0 -22
  470. package/dist/arena/model-presets.d.ts +0 -23
  471. package/dist/arena/model-presets.js +0 -44
  472. package/dist/arena/phases/adjudication.d.ts +0 -24
  473. package/dist/arena/phases/adjudication.js +0 -141
  474. package/dist/arena/phases/build-consensus.d.ts +0 -29
  475. package/dist/arena/phases/build-consensus.js +0 -83
  476. package/dist/arena/phases/claim-registry.d.ts +0 -26
  477. package/dist/arena/phases/claim-registry.js +0 -60
  478. package/dist/arena/phases/cross-review.d.ts +0 -45
  479. package/dist/arena/phases/cross-review.js +0 -218
  480. package/dist/arena/phases/debate-rounds.d.ts +0 -27
  481. package/dist/arena/phases/debate-rounds.js +0 -159
  482. package/dist/arena/phases/participant-research.d.ts +0 -38
  483. package/dist/arena/phases/participant-research.js +0 -314
  484. package/dist/arena/phases/planning-detail-expansion.d.ts +0 -38
  485. package/dist/arena/phases/planning-detail-expansion.js +0 -119
  486. package/dist/arena/planner.d.ts +0 -27
  487. package/dist/arena/planner.js +0 -311
  488. package/dist/arena/providers/docs.d.ts +0 -7
  489. package/dist/arena/providers/docs.js +0 -111
  490. package/dist/arena/providers/git.d.ts +0 -8
  491. package/dist/arena/providers/git.js +0 -174
  492. package/dist/arena/providers/index.d.ts +0 -32
  493. package/dist/arena/providers/index.js +0 -132
  494. package/dist/arena/providers/none.d.ts +0 -7
  495. package/dist/arena/providers/none.js +0 -11
  496. package/dist/arena/providers/repo.d.ts +0 -7
  497. package/dist/arena/providers/repo.js +0 -258
  498. package/dist/arena/render/session.d.ts +0 -17
  499. package/dist/arena/render/session.js +0 -190
  500. package/dist/arena/render/terminal.d.ts +0 -34
  501. package/dist/arena/render/terminal.js +0 -286
  502. package/dist/arena/strategies/discussion.d.ts +0 -25
  503. package/dist/arena/strategies/discussion.js +0 -143
  504. package/dist/arena/strategies/index.d.ts +0 -15
  505. package/dist/arena/strategies/index.js +0 -28
  506. package/dist/arena/strategies/language-wrapper.d.ts +0 -17
  507. package/dist/arena/strategies/language-wrapper.js +0 -102
  508. package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
  509. package/dist/arena/strategies/lens-wrapper.js +0 -236
  510. package/dist/arena/strategies/planning.d.ts +0 -30
  511. package/dist/arena/strategies/planning.js +0 -225
  512. package/dist/arena/strategies/review.d.ts +0 -26
  513. package/dist/arena/strategies/review.js +0 -168
  514. package/dist/arena/strategies/utils.d.ts +0 -36
  515. package/dist/arena/strategies/utils.js +0 -603
  516. package/dist/arena/tools/selector.d.ts +0 -17
  517. package/dist/arena/tools/selector.js +0 -61
  518. package/dist/arena/transitions.d.ts +0 -53
  519. package/dist/arena/transitions.js +0 -97
  520. package/dist/arena/types.d.ts +0 -514
  521. package/dist/arena/types.js +0 -27
  522. package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
  523. package/dist/cc-orchestrator/agent-adapter.js +0 -143
  524. package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
  525. package/dist/cc-orchestrator/cc-capability.js +0 -53
  526. package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
  527. package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
  528. package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
  529. package/dist/cc-orchestrator/codex-session-history.js +0 -247
  530. package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
  531. package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
  532. package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
  533. package/dist/cc-orchestrator/external-agent-changes.js +0 -231
  534. package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
  535. package/dist/cc-orchestrator/external-agent-driver.js +0 -284
  536. package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
  537. package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
  538. package/dist/cc-orchestrator/index.d.ts +0 -8
  539. package/dist/cc-orchestrator/index.js +0 -8
  540. package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
  541. package/dist/cc-orchestrator/relevance-judge.js +0 -29
  542. package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
  543. package/dist/cc-orchestrator/session-discovery.js +0 -125
  544. package/dist/cc-orchestrator/session-history.d.ts +0 -54
  545. package/dist/cc-orchestrator/session-history.js +0 -150
  546. package/dist/cron/cron-runtime.d.ts +0 -2
  547. package/dist/cron/cron-runtime.js +0 -2
  548. package/dist/cron/cron-store.d.ts +0 -2
  549. package/dist/cron/cron-store.js +0 -2
  550. package/dist/cron/scheduler.d.ts +0 -7
  551. package/dist/cron/scheduler.js +0 -7
  552. package/dist/engine/goal.js +0 -206
  553. package/dist/external-agents/config.d.ts +0 -2
  554. package/dist/external-agents/config.js +0 -15
  555. package/dist/external-agents/types.d.ts +0 -31
  556. package/dist/git/parse-log.d.ts +0 -13
  557. package/dist/git/parse-log.js +0 -21
  558. package/dist/git/utils.d.ts +0 -49
  559. package/dist/git/utils.js +0 -161
  560. package/dist/git/worktree/crud.d.ts +0 -69
  561. package/dist/git/worktree/crud.js +0 -206
  562. package/dist/git/worktree/diff.d.ts +0 -14
  563. package/dist/git/worktree/diff.js +0 -82
  564. package/dist/git/worktree/git-exec.d.ts +0 -7
  565. package/dist/git/worktree/git-exec.js +0 -51
  566. package/dist/git/worktree/index.d.ts +0 -5
  567. package/dist/git/worktree/index.js +0 -5
  568. package/dist/git/worktree/query.d.ts +0 -42
  569. package/dist/git/worktree/query.js +0 -121
  570. package/dist/git/worktree/slug.d.ts +0 -11
  571. package/dist/git/worktree/slug.js +0 -58
  572. package/dist/git/worktree.d.ts +0 -1
  573. package/dist/git/worktree.js +0 -5
  574. package/dist/lsp/client.d.ts +0 -41
  575. package/dist/lsp/client.js +0 -186
  576. package/dist/lsp/manager.d.ts +0 -40
  577. package/dist/lsp/manager.js +0 -155
  578. package/dist/lsp/root-path.d.ts +0 -9
  579. package/dist/lsp/root-path.js +0 -12
  580. package/dist/lsp/servers.d.ts +0 -16
  581. package/dist/lsp/servers.js +0 -60
  582. package/dist/prompt/sections/coding.md +0 -35
  583. package/dist/quota/credentials.d.ts +0 -3
  584. package/dist/quota/credentials.js +0 -80
  585. package/dist/quota/index.d.ts +0 -36
  586. package/dist/quota/index.js +0 -155
  587. package/dist/quota/types.d.ts +0 -48
  588. package/dist/quota/types.js +0 -13
  589. package/dist/review/review-prompt.d.ts +0 -28
  590. package/dist/review/review-prompt.js +0 -81
  591. package/dist/state.d.ts +0 -160
  592. package/dist/state.js +0 -267
  593. package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
  594. package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
  595. package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
  596. package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
  597. package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
  598. package/dist/tool-system/builtin/apply-patch/index.js +0 -105
  599. package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
  600. package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
  601. package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
  602. package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
  603. package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
  604. package/dist/tool-system/builtin/apply-patch/types.js +0 -13
  605. package/dist/tool-system/builtin/arena.d.ts +0 -31
  606. package/dist/tool-system/builtin/arena.js +0 -415
  607. package/dist/tool-system/builtin/brief.d.ts +0 -6
  608. package/dist/tool-system/builtin/brief.js +0 -41
  609. package/dist/tool-system/builtin/check-quota.d.ts +0 -15
  610. package/dist/tool-system/builtin/check-quota.js +0 -34
  611. package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
  612. package/dist/tool-system/builtin/drive-claude-code.js +0 -698
  613. package/dist/tool-system/builtin/lsp.d.ts +0 -7
  614. package/dist/tool-system/builtin/lsp.js +0 -144
  615. package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
  616. package/dist/tool-system/builtin/notebook-edit.js +0 -127
  617. package/dist/tool-system/builtin/worktree.d.ts +0 -11
  618. package/dist/tool-system/builtin/worktree.js +0 -345
  619. /package/dist/{external-agents → links}/types.js +0 -0
  620. /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
  621. /package/dist/{engine/session-usage.js → session/usage.js} +0 -0
@@ -1,141 +0,0 @@
1
- /**
2
- * Adjudication — the moderator makes evidence-based rulings on contested claims.
3
- *
4
- * For each contested/debated claim, the moderator sees the full claim context
5
- * (evidence, challenges, debate rounds) and produces a ClaimAdjudication.
6
- *
7
- * Claims that were verified without contest get synthetic adjudication records.
8
- */
9
- import { createLLMClient } from "../../llm/client-factory.js";
10
- import { isStrategyV2 } from "../types.js";
11
- import { buildDigest } from "../digest-builder.js";
12
- import { transitionClaim, markUnresolved } from "../transitions.js";
13
- import { parseAdjudication as parseAdjudicationUtil } from "../strategies/utils.js";
14
- import { logger } from "../../logging/logger.js";
15
- /**
16
- * Run adjudication phase. The moderator rules on contested claims.
17
- * Verified claims get synthetic adjudications.
18
- */
19
- export async function runAdjudication(options) {
20
- const { concluder, strategy, topic, ledger, signal, onProgress } = options;
21
- const allAdjudications = [];
22
- const v2 = isStrategyV2(strategy);
23
- // Claims that need moderator adjudication: contested or those with debate rounds
24
- const contestedClaims = ledger.getClaimsByStatus("contested");
25
- // Claims that were verified cleanly — synthetic adjudication
26
- const verifiedClaims = ledger.getClaimsByStatus("verified");
27
- if (contestedClaims.length === 0 && verifiedClaims.length === 0) {
28
- logger.info("arena.adjudication_skip", { reason: "no claims to adjudicate" });
29
- return [];
30
- }
31
- logger.info("arena.adjudication_start", {
32
- contested: contestedClaims.length,
33
- verified: verifiedClaims.length,
34
- });
35
- // Adjudicate contested claims via LLM
36
- const client = await createLLMClient(concluder.llm, concluder.clientDefaults);
37
- for (const claim of contestedClaims) {
38
- signal?.throwIfAborted();
39
- const digest = buildDigest(ledger, {
40
- round: 0, // adjudication is post-debate
41
- relevantClaimIds: [claim.claimId],
42
- });
43
- const systemPrompt = strategy.consensusSystemPrompt();
44
- let userContent;
45
- if (v2) {
46
- userContent = strategy
47
- .adjudicationUserPrompt(topic, claim, claim.debateRounds, digest);
48
- }
49
- else {
50
- userContent = buildFallbackAdjudicationPrompt(topic, claim);
51
- }
52
- const response = await client.createMessage({
53
- systemPrompt,
54
- messages: [{ role: "user", content: userContent }],
55
- signal,
56
- });
57
- logger.info("arena.adjudication_response", {
58
- claimId: claim.claimId,
59
- stopReason: response.stopReason,
60
- });
61
- let adjudication;
62
- if (v2) {
63
- adjudication = strategy.parseAdjudicationResponse(response.text);
64
- adjudication.claimId = claim.claimId;
65
- }
66
- else {
67
- adjudication = parseAdjudicationUtil(claim.claimId, response.text);
68
- }
69
- // Record in ledger
70
- ledger.appendAdjudication(adjudication);
71
- allAdjudications.push(adjudication);
72
- // Transition claim based on outcome
73
- applyAdjudicationOutcome(claim, adjudication);
74
- }
75
- // Synthetic adjudications for verified claims
76
- for (const claim of verifiedClaims) {
77
- const adjudication = {
78
- claimId: claim.claimId,
79
- outcome: "accepted",
80
- rationale: "Verified by peer review without contest",
81
- finalSummary: claim.finding.summary,
82
- supportingEvidenceRefs: claim.evidenceRefs,
83
- };
84
- ledger.appendAdjudication(adjudication);
85
- allAdjudications.push(adjudication);
86
- }
87
- // Any remaining proposed/under_review claims → mark unresolved
88
- const remaining = ledger.getClaimsByStatus("proposed", "under_review");
89
- for (const claim of remaining) {
90
- markUnresolved(claim);
91
- }
92
- const accepted = allAdjudications.filter((a) => a.outcome === "accepted" || a.outcome === "accepted_with_revision").length;
93
- const unresolved = ledger.getClaimsByStatus("unresolved").length;
94
- logger.info("arena.adjudication_done", {
95
- total: allAdjudications.length,
96
- accepted,
97
- unresolved,
98
- });
99
- onProgress?.({ type: "adjudication_done", accepted, unresolved });
100
- return allAdjudications;
101
- }
102
- /**
103
- * Apply adjudication outcome to claim status.
104
- */
105
- function applyAdjudicationOutcome(claim, adjudication) {
106
- switch (adjudication.outcome) {
107
- case "accepted":
108
- case "accepted_with_revision":
109
- transitionClaim(claim, "verified");
110
- break;
111
- case "rejected":
112
- transitionClaim(claim, "rejected");
113
- break;
114
- case "unresolved":
115
- markUnresolved(claim);
116
- break;
117
- }
118
- }
119
- /**
120
- * Build a fallback adjudication prompt for non-V2 strategies.
121
- */
122
- function buildFallbackAdjudicationPrompt(topic, claim) {
123
- const challengeText = claim.challenges.length > 0
124
- ? claim.challenges.map((c) => `[${c.reviewer}] ${c.verdict}: ${c.reason}`).join("\n")
125
- : "No challenges.";
126
- const debateText = claim.debateRounds.length > 0
127
- ? claim.debateRounds.map((r) => `Round ${r.round}:\n` +
128
- r.participants.map((t) => ` [${t.participant}] ${t.stance}: ${t.summary}`).join("\n") +
129
- `\n ${r.resolved ? "→ Resolved" : "→ Unresolved"}`).join("\n\n")
130
- : "No debate rounds.";
131
- return (`## Topic: ${topic}\n\n` +
132
- `## Claim Under Adjudication\n` +
133
- `[${claim.claimId}] ${claim.finding.title}\n${claim.finding.summary}\n` +
134
- `Owner: ${claim.owner} | Status: ${claim.status}\n\n` +
135
- `## Challenges\n${challengeText}\n\n` +
136
- `## Debate\n${debateText}\n\n` +
137
- `As moderator, adjudicate this claim based on all available evidence.\n` +
138
- `Respond ONLY with JSON:\n` +
139
- `{"outcome": "accepted|accepted_with_revision|rejected|unresolved", "rationale": "...", ` +
140
- `"finalSummary": "revised claim summary if needed", "supportingEvidenceRefs": ["..."]}`);
141
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * ConsensusBuilder — aggregates findings + peer reviews into structured consensus.
3
- *
4
- * V1: Program aggregates finding + review data, moderator LLM organizes.
5
- * V2: When claim data is available, uses claim-aware prompts that distinguish
6
- * verified/unresolved/rejected claims.
7
- *
8
- * In both paths, the moderator must faithfully reflect aggregated results
9
- * (no new unsourced conclusions).
10
- */
11
- import type { ArenaParticipant, ArenaStrategy, ParticipantReport, FindingReview, ArenaConsensus, ClaimStatusSummary, ArenaProgressEvent } from "../types.js";
12
- interface ConsensusOptions {
13
- /** The participant that acts as moderator/concluder */
14
- concluder: ArenaParticipant;
15
- strategy: ArenaStrategy;
16
- topic: string;
17
- reports: ParticipantReport[];
18
- reviews: FindingReview[];
19
- /** Claim status summary — when provided, enables claim-aware consensus (V2) */
20
- claimSummary?: ClaimStatusSummary;
21
- signal?: AbortSignal;
22
- onProgress?: (event: ArenaProgressEvent) => void;
23
- }
24
- /**
25
- * Build structured consensus from participant reports, cross-reviews,
26
- * and optionally adjudicated claim data.
27
- */
28
- export declare function buildConsensus(options: ConsensusOptions): Promise<ArenaConsensus>;
29
- export {};
@@ -1,83 +0,0 @@
1
- /**
2
- * ConsensusBuilder — aggregates findings + peer reviews into structured consensus.
3
- *
4
- * V1: Program aggregates finding + review data, moderator LLM organizes.
5
- * V2: When claim data is available, uses claim-aware prompts that distinguish
6
- * verified/unresolved/rejected claims.
7
- *
8
- * In both paths, the moderator must faithfully reflect aggregated results
9
- * (no new unsourced conclusions).
10
- */
11
- import { createLLMClient } from "../../llm/client-factory.js";
12
- import { logger } from "../../logging/logger.js";
13
- import { isStrategyV2 } from "../types.js";
14
- /**
15
- * Build structured consensus from participant reports, cross-reviews,
16
- * and optionally adjudicated claim data.
17
- */
18
- export async function buildConsensus(options) {
19
- const { concluder, strategy, topic, reports, reviews, claimSummary, signal, onProgress } = options;
20
- onProgress?.({ type: "consensus_start" });
21
- const client = await createLLMClient(concluder.llm, concluder.clientDefaults);
22
- const systemPrompt = strategy.consensusSystemPrompt();
23
- // Choose user prompt: claim-aware (V2) or standard (V1)
24
- let userContent;
25
- const v2 = isStrategyV2(strategy);
26
- if (v2 && claimSummary) {
27
- userContent = strategy
28
- .claimAwareConsensusUserPrompt(topic, reports, reviews, claimSummary);
29
- logger.info("arena.consensus_claim_aware", {
30
- verified: claimSummary.verified.length,
31
- unresolved: claimSummary.unresolved.length,
32
- contested: claimSummary.contested.length,
33
- rejected: claimSummary.rejected.length,
34
- });
35
- }
36
- else {
37
- userContent = strategy.consensusUserPrompt(topic, reports, reviews);
38
- }
39
- const response = await client.createMessage({
40
- systemPrompt,
41
- messages: [{ role: "user", content: userContent }],
42
- signal,
43
- });
44
- logger.info("arena.consensus_raw_response", {
45
- text: response.text,
46
- stopReason: response.stopReason,
47
- });
48
- // If output was truncated by max_tokens, retry with a condensed prompt
49
- if (response.stopReason === "length") {
50
- logger.warn("arena.consensus_truncated", {
51
- textLen: response.text?.length ?? 0,
52
- maxTokens: concluder.llm.maxTokens,
53
- });
54
- const retryResponse = await client.createMessage({
55
- systemPrompt,
56
- messages: [
57
- { role: "user", content: userContent },
58
- { role: "assistant", content: response.text },
59
- {
60
- role: "user",
61
- content: "Your previous response was truncated. Please output a COMPLETE but more concise version of the consensus JSON. " +
62
- "Keep all sections but use shorter summaries. Respond ONLY with the complete JSON object.",
63
- },
64
- ],
65
- signal,
66
- });
67
- logger.info("arena.consensus_retry_response", {
68
- textLen: retryResponse.text?.length ?? 0,
69
- stopReason: retryResponse.stopReason,
70
- });
71
- if (retryResponse.stopReason === "length") {
72
- logger.warn("arena.consensus_still_truncated", {
73
- textLen: retryResponse.text?.length ?? 0,
74
- });
75
- }
76
- const consensus = strategy.parseConsensusResponse(retryResponse.text);
77
- onProgress?.({ type: "consensus_done", consensus });
78
- return consensus;
79
- }
80
- const consensus = strategy.parseConsensusResponse(response.text);
81
- onProgress?.({ type: "consensus_done", consensus });
82
- return consensus;
83
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * ClaimRegistry — converts ResearchDossier findings into ClaimRecords.
3
- *
4
- * Each finding is elevated to a claim with:
5
- * - Stable global ID (owner + finding.id)
6
- * - Evidence packet references from findingEvidenceLinks
7
- * - Initial status: "proposed"
8
- */
9
- import type { ResearchDossier, ClaimRecord, ArenaProgressEvent } from "../types.js";
10
- import type { ArenaLedger } from "../ledger.js";
11
- interface ClaimRegistryOptions {
12
- dossiers: ResearchDossier[];
13
- ledger: ArenaLedger;
14
- onProgress?: (event: ArenaProgressEvent) => void;
15
- }
16
- /**
17
- * Register all findings from research dossiers as claims.
18
- * Returns the newly created ClaimRecord array.
19
- */
20
- export declare function registerClaims(options: ClaimRegistryOptions): ClaimRecord[];
21
- /**
22
- * Select claims for review, prioritized by severity and confidence.
23
- * Respects the maxClaimsForReview limit.
24
- */
25
- export declare function selectClaimsForReview(claims: ClaimRecord[], maxClaims: number): ClaimRecord[];
26
- export {};
@@ -1,60 +0,0 @@
1
- /**
2
- * ClaimRegistry — converts ResearchDossier findings into ClaimRecords.
3
- *
4
- * Each finding is elevated to a claim with:
5
- * - Stable global ID (owner + finding.id)
6
- * - Evidence packet references from findingEvidenceLinks
7
- * - Initial status: "proposed"
8
- */
9
- /**
10
- * Register all findings from research dossiers as claims.
11
- * Returns the newly created ClaimRecord array.
12
- */
13
- export function registerClaims(options) {
14
- const { dossiers, ledger, onProgress } = options;
15
- const claims = [];
16
- for (const dossier of dossiers) {
17
- // Build a lookup from findingId → evidencePacketIds
18
- const linkMap = new Map();
19
- for (const link of dossier.findingEvidenceLinks) {
20
- linkMap.set(link.findingId, link.evidencePacketIds);
21
- }
22
- for (const finding of dossier.findings) {
23
- const claimId = `${dossier.participant}:${finding.id}`;
24
- const packetIds = linkMap.get(finding.id) ?? [];
25
- // Build evidence refs from finding.evidence + packet refs
26
- const evidenceRefs = finding.evidence.map((e) => `${e.type}:${e.ref}`);
27
- const claim = {
28
- claimId,
29
- owner: dossier.participant,
30
- finding,
31
- evidenceRefs,
32
- evidencePacketIds: packetIds,
33
- status: "proposed",
34
- challenges: [],
35
- debateRounds: [],
36
- };
37
- claims.push(claim);
38
- ledger.appendClaim(claim);
39
- }
40
- }
41
- onProgress?.({ type: "claims_registered", claimCount: claims.length });
42
- return claims;
43
- }
44
- /**
45
- * Select claims for review, prioritized by severity and confidence.
46
- * Respects the maxClaimsForReview limit.
47
- */
48
- export function selectClaimsForReview(claims, maxClaims) {
49
- const severityOrder = { high: 0, medium: 1, low: 2 };
50
- const sorted = [...claims].sort((a, b) => {
51
- // Higher severity first
52
- const sevA = severityOrder[a.finding.severity ?? "medium"] ?? 1;
53
- const sevB = severityOrder[b.finding.severity ?? "medium"] ?? 1;
54
- if (sevA !== sevB)
55
- return sevA - sevB;
56
- // Higher confidence first
57
- return b.finding.confidence - a.finding.confidence;
58
- });
59
- return sorted.slice(0, maxClaims);
60
- }
@@ -1,45 +0,0 @@
1
- /**
2
- * CrossReview / VerificationReview — participants review each other's findings.
3
- *
4
- * V1 (CrossReview): Each participant sees the other participants' structured findings
5
- * and provides per-finding verdicts: agree, refine, disagree, needs_evidence.
6
- *
7
- * V2 (VerificationReview): Reviewers get claim + evidence packet + digest data,
8
- * and produce ClaimChallenge records that feed into the claim state machine.
9
- */
10
- import type { ArenaParticipant, ArenaStrategy, ParticipantReport, FindingReview, ClaimChallenge, ArenaProgressEvent, ArenaExecutionLimits } from "../types.js";
11
- import type { ArenaLedger } from "../ledger.js";
12
- interface CrossReviewOptions {
13
- participants: ArenaParticipant[];
14
- strategy: ArenaStrategy;
15
- topic: string;
16
- reports: ParticipantReport[];
17
- signal?: AbortSignal;
18
- onProgress?: (event: ArenaProgressEvent) => void;
19
- }
20
- /**
21
- * Run cross-review phase (V1). Each participant reviews the others' findings.
22
- */
23
- export declare function runCrossReview(options: CrossReviewOptions): Promise<FindingReview[]>;
24
- interface VerificationReviewOptions {
25
- participants: ArenaParticipant[];
26
- strategy: ArenaStrategy;
27
- topic: string;
28
- reports: ParticipantReport[];
29
- ledger: ArenaLedger;
30
- limits: ArenaExecutionLimits;
31
- /** Arena mode — planning routes to merge-oriented review */
32
- mode?: "review" | "discussion" | "planning";
33
- signal?: AbortSignal;
34
- onProgress?: (event: ArenaProgressEvent) => void;
35
- }
36
- interface VerificationReviewResult {
37
- reviews: FindingReview[];
38
- challenges: ClaimChallenge[];
39
- }
40
- /**
41
- * Run verification-review phase. Reviewers get claim + evidence + digest data.
42
- * Falls back to V1 cross-review if strategy doesn't implement V2.
43
- */
44
- export declare function runVerificationReview(options: VerificationReviewOptions): Promise<VerificationReviewResult>;
45
- export {};
@@ -1,218 +0,0 @@
1
- /**
2
- * CrossReview / VerificationReview — participants review each other's findings.
3
- *
4
- * V1 (CrossReview): Each participant sees the other participants' structured findings
5
- * and provides per-finding verdicts: agree, refine, disagree, needs_evidence.
6
- *
7
- * V2 (VerificationReview): Reviewers get claim + evidence packet + digest data,
8
- * and produce ClaimChallenge records that feed into the claim state machine.
9
- */
10
- import { createLLMClient } from "../../llm/client-factory.js";
11
- import { isStrategyV2, isStrategyPlanning } from "../types.js";
12
- import { selectClaimsForReview } from "./claim-registry.js";
13
- import { buildDigest } from "../digest-builder.js";
14
- import { markUnderReview, applyReviewResult } from "../transitions.js";
15
- import { logger } from "../../logging/logger.js";
16
- /**
17
- * Run cross-review phase (V1). Each participant reviews the others' findings.
18
- */
19
- export async function runCrossReview(options) {
20
- const { participants, strategy, topic, reports, signal, onProgress } = options;
21
- onProgress?.({ type: "cross_review_start", round: 1 });
22
- const allReviews = [];
23
- const tasks = participants.map(async (p) => {
24
- const myReport = reports.find((r) => r.participant === p.name);
25
- const otherReports = reports.filter((r) => r.participant !== p.name);
26
- // Skip if no other reports to review
27
- if (otherReports.length === 0)
28
- return [];
29
- if (!myReport)
30
- return [];
31
- const client = await createLLMClient(p.llm, p.clientDefaults);
32
- const systemPrompt = strategy.crossReviewSystemPrompt(p.name);
33
- const userContent = strategy.crossReviewUserPrompt(topic, myReport, otherReports);
34
- let response = await client.createMessage({
35
- systemPrompt,
36
- messages: [{ role: "user", content: userContent }],
37
- signal,
38
- });
39
- logger.info("arena.cross_review_raw_response", {
40
- participant: p.name,
41
- text: response.text,
42
- stopReason: response.stopReason,
43
- });
44
- // Retry if truncated
45
- if (response.stopReason === "length") {
46
- logger.warn("arena.cross_review_truncated", { participant: p.name });
47
- const retryResponse = await client.createMessage({
48
- systemPrompt,
49
- messages: [
50
- { role: "user", content: userContent },
51
- { role: "assistant", content: response.text },
52
- {
53
- role: "user",
54
- content: "Your previous response was truncated. Please output the COMPLETE review JSON, using shorter comments. Respond ONLY with JSON.",
55
- },
56
- ],
57
- signal,
58
- });
59
- logger.info("arena.cross_review_retry", {
60
- participant: p.name,
61
- stopReason: retryResponse.stopReason,
62
- });
63
- response = retryResponse;
64
- }
65
- return strategy.parseCrossReviewResponse(p.name, response.text);
66
- });
67
- const results = await Promise.all(tasks);
68
- for (const reviews of results) {
69
- allReviews.push(...reviews);
70
- }
71
- onProgress?.({ type: "cross_review_done", reviews: allReviews });
72
- return allReviews;
73
- }
74
- /**
75
- * Run verification-review phase. Reviewers get claim + evidence + digest data.
76
- * Falls back to V1 cross-review if strategy doesn't implement V2.
77
- */
78
- export async function runVerificationReview(options) {
79
- const { participants, strategy, topic, reports, ledger, limits, mode, signal, onProgress } = options;
80
- // Select claims to review, prioritized by severity + confidence
81
- const allClaims = ledger.getAllClaims();
82
- const claimsToReview = selectClaimsForReview(allClaims, limits.maxClaimsForReview);
83
- // Transition selected claims to under_review
84
- for (const claim of claimsToReview) {
85
- markUnderReview(claim);
86
- }
87
- // Build digest for reviewer context
88
- const relevantClaimIds = claimsToReview.map((c) => c.claimId);
89
- const digest = buildDigest(ledger, { round: 1, relevantClaimIds });
90
- const isPlanningMerge = mode === "planning" && isStrategyPlanning(strategy);
91
- if (isPlanningMerge) {
92
- onProgress?.({ type: "planning_merge_review_start" });
93
- }
94
- else {
95
- onProgress?.({ type: "verification_start" });
96
- }
97
- const v2 = isStrategyV2(strategy);
98
- const allReviews = [];
99
- const allChallenges = [];
100
- // Assign claims to reviewers: each claim reviewed by non-owners, capped
101
- const tasks = participants.map(async (p) => {
102
- const myReport = reports.find((r) => r.participant === p.name);
103
- const otherReports = reports.filter((r) => r.participant !== p.name);
104
- if (!myReport || otherReports.length === 0)
105
- return;
106
- // Claims this participant should review (not their own)
107
- const myClaims = claimsToReview.filter((c) => c.owner !== p.name);
108
- if (myClaims.length === 0)
109
- return;
110
- const client = await createLLMClient(p.llm, p.clientDefaults);
111
- const systemPrompt = strategy.crossReviewSystemPrompt(p.name);
112
- if (v2) {
113
- // V2 path: claim-aware verification review (or merge review for planning)
114
- const userContent = isPlanningMerge
115
- ? strategy.mergeReviewUserPrompt(topic, myReport, myClaims, digest)
116
- : strategy
117
- .verificationReviewUserPrompt(topic, myReport, myClaims, digest);
118
- let response = await client.createMessage({
119
- systemPrompt,
120
- messages: [{ role: "user", content: userContent }],
121
- signal,
122
- });
123
- logger.info("arena.verification_review_raw", {
124
- participant: p.name,
125
- stopReason: response.stopReason,
126
- });
127
- if (response.stopReason === "length") {
128
- const retryResponse = await client.createMessage({
129
- systemPrompt,
130
- messages: [
131
- { role: "user", content: userContent },
132
- { role: "assistant", content: response.text },
133
- { role: "user", content: "Truncated. Output the COMPLETE JSON array, shorter comments. JSON only." },
134
- ],
135
- signal,
136
- });
137
- response = retryResponse;
138
- }
139
- const challenges = isPlanningMerge
140
- ? strategy.parseMergeReviewResponse(p.name, response.text)
141
- : strategy
142
- .parseVerificationReviewResponse(p.name, response.text);
143
- for (const challenge of challenges) {
144
- allChallenges.push(challenge);
145
- ledger.appendChallenge(challenge);
146
- }
147
- // Also produce FindingReview for backward compat
148
- for (const ch of challenges) {
149
- allReviews.push({
150
- reviewer: ch.reviewer,
151
- findingId: ch.claimId,
152
- verdict: ch.verdict,
153
- reason: ch.reason,
154
- extraEvidence: ch.supportingEvidenceRefs,
155
- });
156
- }
157
- }
158
- else {
159
- // V1 fallback: standard cross-review, then map to challenges
160
- const userContent = strategy.crossReviewUserPrompt(topic, myReport, otherReports);
161
- let response = await client.createMessage({
162
- systemPrompt,
163
- messages: [{ role: "user", content: userContent }],
164
- signal,
165
- });
166
- if (response.stopReason === "length") {
167
- const retryResponse = await client.createMessage({
168
- systemPrompt,
169
- messages: [
170
- { role: "user", content: userContent },
171
- { role: "assistant", content: response.text },
172
- { role: "user", content: "Truncated. Output COMPLETE review JSON. Shorter comments. JSON only." },
173
- ],
174
- signal,
175
- });
176
- response = retryResponse;
177
- }
178
- const reviews = strategy.parseCrossReviewResponse(p.name, response.text);
179
- allReviews.push(...reviews);
180
- // Map FindingReview → ClaimChallenge for claim state updates
181
- for (const review of reviews) {
182
- // Find the claim that matches this finding
183
- const claim = claimsToReview.find((c) => c.finding.id === review.findingId || c.claimId === review.findingId);
184
- if (claim) {
185
- const challenge = {
186
- reviewer: review.reviewer,
187
- claimId: claim.claimId,
188
- verdict: review.verdict,
189
- reason: review.reason,
190
- supportingEvidenceRefs: review.extraEvidence,
191
- };
192
- allChallenges.push(challenge);
193
- ledger.appendChallenge(challenge);
194
- }
195
- }
196
- }
197
- });
198
- await Promise.all(tasks);
199
- // Apply review results to claim status transitions
200
- for (const claim of claimsToReview) {
201
- const claimChallenges = ledger.getChallengesForClaim(claim.claimId);
202
- const hasPendingChecks = ledger.getPendingChecksForClaim(claim.claimId).length > 0;
203
- applyReviewResult(claim, claimChallenges, hasPendingChecks);
204
- }
205
- logger.info("arena.verification_done", {
206
- reviewCount: allReviews.length,
207
- challengeCount: allChallenges.length,
208
- claimStatuses: Object.fromEntries(claimsToReview.map((c) => [c.claimId, c.status])),
209
- });
210
- if (isPlanningMerge) {
211
- onProgress?.({ type: "planning_merge_review_done", mergeCount: allChallenges.length });
212
- }
213
- else {
214
- onProgress?.({ type: "verification_done", challengeCount: allChallenges.length });
215
- }
216
- onProgress?.({ type: "cross_review_done", reviews: allReviews });
217
- return { reviews: allReviews, challenges: allChallenges };
218
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * DebateRounds — contested claims enter structured debate between
3
- * the claim owner and the primary challenger.
4
- *
5
- * Each debate round:
6
- * 1. Both debaters produce a DebateTurn (stance + argument)
7
- * 2. Convergence check: all stances are "support" or "narrow" → resolved
8
- * 3. If max rounds exhausted → stays contested for adjudication
9
- */
10
- import type { ArenaParticipant, ArenaStrategy, DebateRound, ArenaExecutionLimits, ArenaProgressEvent } from "../types.js";
11
- import type { ArenaLedger } from "../ledger.js";
12
- interface DebateOptions {
13
- participants: ArenaParticipant[];
14
- strategy: ArenaStrategy;
15
- topic: string;
16
- ledger: ArenaLedger;
17
- limits: ArenaExecutionLimits;
18
- maxRounds: number;
19
- signal?: AbortSignal;
20
- onProgress?: (event: ArenaProgressEvent) => void;
21
- }
22
- /**
23
- * Run debate rounds for all contested claims.
24
- * Returns empty array if no contested claims exist.
25
- */
26
- export declare function runDebateRounds(options: DebateOptions): Promise<DebateRound[]>;
27
- export {};