@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,152 +0,0 @@
1
- /**
2
- * Iterate mode — multi-model authoring loop.
3
- *
4
- * Author writes → critics argue → author revises → ... → final draft.
5
- * v1 uses a tournament: every participant writes a candidate, then the
6
- * author merges (anonymized inputs) into a single v1.
7
- */
8
- import type { ArenaParticipant } from "../types.js";
9
- export type IterateFormat = "code" | "document";
10
- export interface IterateSubject {
11
- /** What the author is producing — short descriptive label. */
12
- label: string;
13
- /** Full instruction to the author / critics. */
14
- description: string;
15
- /** Optional source artifacts (file paths, urls) to ground the work. */
16
- sources?: string[];
17
- }
18
- /** A v1 candidate produced by one participant during the tournament. */
19
- export interface DraftCandidate {
20
- author: string;
21
- anonymousLabel: string;
22
- content: string;
23
- }
24
- export interface Draft {
25
- version: number;
26
- author: string;
27
- format: IterateFormat;
28
- content: string;
29
- /**
30
- * For v1 with tournament strategy: the candidates that were merged.
31
- * For v2+: undefined.
32
- */
33
- draftCandidates?: DraftCandidate[];
34
- /** Author's explanation of how candidates were merged into v1. */
35
- mergeRationale?: string;
36
- /**
37
- * For v2+: which critique IDs were addressed and how.
38
- */
39
- acceptedCritiques?: string[];
40
- rejectedCritiques?: Array<{
41
- id: string;
42
- reason: string;
43
- }>;
44
- /** Free-form note from author: what changed and why. */
45
- changelog?: string;
46
- }
47
- export type CritiqueSeverity = "blocker" | "major" | "minor" | "nit" | "praise";
48
- export type CritiqueCategory = "correctness" | "completeness" | "clarity" | "evidence" | "structure" | "style" | "fabrication" | "other";
49
- export interface CritiqueEvidence {
50
- url: string;
51
- snippet?: string;
52
- }
53
- export interface Critique {
54
- id: string;
55
- critic: string;
56
- /** 5-15 word quote from the draft for precise location. */
57
- anchor: string;
58
- severity: CritiqueSeverity;
59
- category: CritiqueCategory;
60
- comment: string;
61
- /** Optional concrete suggestion. */
62
- suggestion?: string;
63
- /** Optional URLs the critic consulted to back up the critique. */
64
- evidence?: CritiqueEvidence[];
65
- }
66
- export interface ConvergenceSignal {
67
- blockerCount: number;
68
- majorCount: number;
69
- totalCritiques: number;
70
- /** Levenshtein-ratio-like 0..1, where 0 = identical, 1 = totally different. */
71
- diffFromPrevious: number;
72
- shouldStop: boolean;
73
- reason: "blockers_zero_and_stable" | "all_minor_or_praise" | "max_rounds" | "user_stop" | "user_force_continue" | "diff_below_threshold" | "running";
74
- }
75
- export interface Round {
76
- round: number;
77
- draft: Draft;
78
- critiques: Critique[];
79
- convergence: ConvergenceSignal;
80
- }
81
- export type AuthorRotation = "fixed" | "round-robin" | "best-critic";
82
- export interface CheckpointContext {
83
- round: number;
84
- draft: Draft;
85
- critiques: Critique[];
86
- convergence: ConvergenceSignal;
87
- }
88
- export type CheckpointAction = "continue" | "stop" | "force-continue";
89
- export type CheckpointFn = (ctx: CheckpointContext) => Promise<CheckpointAction>;
90
- export interface IterateProgressEvent {
91
- type: "v1_tournament_start" | "v1_candidate_done" | "v1_merge_start" | "v1_merge_done" | "round_start" | "argue_start" | "argue_done" | "revise_start" | "revise_done" | "round_done" | "checkpoint_pause" | "iterate_complete";
92
- round?: number;
93
- participant?: string;
94
- data?: Record<string, unknown>;
95
- }
96
- export interface IterateConfig {
97
- subject: IterateSubject;
98
- format: IterateFormat;
99
- /** The participant who merges v1 and main-authors v2+. Required. */
100
- author: ArenaParticipant;
101
- /** Critic participants. Each must have unique `name`. */
102
- critics: ArenaParticipant[];
103
- /** Default 5. */
104
- maxRounds?: number;
105
- /**
106
- * v1 strategy.
107
- * - "tournament" (default): author + all critics each write a candidate,
108
- * author merges anonymized candidates into v1.
109
- * - "single": author writes v1 alone (no tournament).
110
- */
111
- v1Strategy?: "tournament" | "single";
112
- /** Default "fixed". */
113
- authorRotation?: AuthorRotation;
114
- /**
115
- * If provided, called after each round; arena pauses for the response.
116
- * Default: undefined (no checkpoints).
117
- */
118
- humanCheckpoint?: CheckpointFn;
119
- /**
120
- * Convergence rules. "default" applies built-in heuristics.
121
- * Custom function returns true → stop after this round.
122
- */
123
- convergenceStrategy?: "default" | ((ctx: {
124
- round: number;
125
- critiques: Critique[];
126
- draft: Draft;
127
- previousDraft?: Draft;
128
- }) => boolean);
129
- /** Minimum content length per draft (chars). Used both as length budget hint and to retry-on-shrinkage. Default 800 for document, 200 for code. */
130
- minDraftLength?: number;
131
- /**
132
- * Whether critics get web_search/web_fetch tools during the argue phase.
133
- * Requires SERPER_API_KEY / TAVILY_API_KEY / SEARXNG_URL in env. Default false.
134
- * When true, each argue call becomes a tool-use loop (critics may search
135
- * before producing critiques) — significantly more tokens and time, but
136
- * dramatically reduces fabrication.
137
- */
138
- enableWebSearch?: boolean;
139
- /** Cap tool-use rounds per critic per argue phase. Default 8. */
140
- maxArgueToolRounds?: number;
141
- signal?: AbortSignal;
142
- onProgress?: (event: IterateProgressEvent) => void;
143
- }
144
- export type StoppedReason = "converged" | "max_rounds" | "user_stop" | "errored" | "aborted";
145
- export interface IterateResult {
146
- subject: IterateSubject;
147
- format: IterateFormat;
148
- rounds: Round[];
149
- finalDraft: Draft;
150
- stoppedAt: StoppedReason;
151
- durationMs: number;
152
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Iterate mode — multi-model authoring loop.
3
- *
4
- * Author writes → critics argue → author revises → ... → final draft.
5
- * v1 uses a tournament: every participant writes a candidate, then the
6
- * author merges (anonymized inputs) into a single v1.
7
- */
8
- export {};
@@ -1,47 +0,0 @@
1
- /**
2
- * SharedResearchLedger — append-only shared state across all arena rounds.
3
- *
4
- * Design constraints (from architecture doc):
5
- * - All objects have stable IDs
6
- * - Append-only: history preserved, never overwritten
7
- * - Query layer supports latest-view aggregation
8
- * - Supports by-id, by-claim, by-participant, by-round filtering
9
- */
10
- import type { SharedResearchLedger, ResearchDossier, EvidencePacket, ClaimRecord, ClaimChallenge, RequestedCheck, ClaimAdjudication } from "./types.js";
11
- /**
12
- * Manages the shared research ledger — the single source of truth
13
- * for all evidence, claims, challenges, and adjudications in an arena session.
14
- */
15
- export declare class ArenaLedger {
16
- private ledger;
17
- private index;
18
- constructor();
19
- /** Check if ledger is approaching memory limits and log warnings */
20
- private checkGrowth;
21
- appendDossier(dossier: ResearchDossier): void;
22
- appendEvidencePacket(packet: EvidencePacket): void;
23
- appendClaim(claim: ClaimRecord): void;
24
- appendChallenge(challenge: ClaimChallenge): void;
25
- appendRequestedCheck(check: RequestedCheck): void;
26
- appendAdjudication(adjudication: ClaimAdjudication): void;
27
- /**
28
- * Return a read-only reference to the full ledger.
29
- *
30
- * Note: `Readonly<>` is shallow — inner arrays are still mutable at the
31
- * type level. Callers MUST NOT mutate the returned object; use the
32
- * append* methods instead. A deep-freeze or structural clone can be
33
- * added later if external consumers need a truly immutable snapshot.
34
- */
35
- getSnapshot(): Readonly<SharedResearchLedger>;
36
- getClaimById(claimId: string): ClaimRecord | undefined;
37
- getPacketById(packetId: string): EvidencePacket | undefined;
38
- getAllClaims(): ClaimRecord[];
39
- getClaimsByStatus(...statuses: ClaimRecord["status"][]): ClaimRecord[];
40
- getClaimsByOwner(owner: string): ClaimRecord[];
41
- getChallengesForClaim(claimId: string): ClaimChallenge[];
42
- getPendingChecks(): RequestedCheck[];
43
- getPendingChecksForClaim(claimId: string): RequestedCheck[];
44
- getPacketsForClaim(claimId: string): EvidencePacket[];
45
- getDossiers(): ResearchDossier[];
46
- getDossierByParticipant(participant: string): ResearchDossier | undefined;
47
- }
@@ -1,159 +0,0 @@
1
- /**
2
- * SharedResearchLedger — append-only shared state across all arena rounds.
3
- *
4
- * Design constraints (from architecture doc):
5
- * - All objects have stable IDs
6
- * - Append-only: history preserved, never overwritten
7
- * - Query layer supports latest-view aggregation
8
- * - Supports by-id, by-claim, by-participant, by-round filtering
9
- */
10
- import { logger } from "../logging/logger.js";
11
- /** Thresholds for memory warnings */
12
- const WARN_CLAIMS = 50;
13
- const WARN_PACKETS = 200;
14
- const WARN_CHALLENGES = 100;
15
- /**
16
- * Manages the shared research ledger — the single source of truth
17
- * for all evidence, claims, challenges, and adjudications in an arena session.
18
- */
19
- export class ArenaLedger {
20
- ledger;
21
- index;
22
- constructor() {
23
- this.ledger = {
24
- dossiers: [],
25
- evidencePackets: [],
26
- toolTraces: [],
27
- claims: [],
28
- challenges: [],
29
- requestedChecks: [],
30
- adjudications: [],
31
- };
32
- this.index = {
33
- claimsById: new Map(),
34
- packetsById: new Map(),
35
- requestsById: new Map(),
36
- };
37
- }
38
- // ─── Append operations ──────────────────────────────────────
39
- /** Check if ledger is approaching memory limits and log warnings */
40
- checkGrowth() {
41
- const claims = this.ledger.claims.length;
42
- const packets = this.ledger.evidencePackets.length;
43
- const challenges = this.ledger.challenges.length;
44
- if (claims === WARN_CLAIMS || packets === WARN_PACKETS || challenges === WARN_CHALLENGES) {
45
- logger.warn("arena.ledger_growth", { claims, packets, challenges, toolTraces: this.ledger.toolTraces.length });
46
- }
47
- }
48
- appendDossier(dossier) {
49
- this.ledger.dossiers.push(dossier);
50
- for (const packet of dossier.evidencePackets) {
51
- this.appendEvidencePacket(packet);
52
- }
53
- for (const trace of dossier.toolTrace) {
54
- this.ledger.toolTraces.push(trace);
55
- }
56
- }
57
- appendEvidencePacket(packet) {
58
- // Deduplicate by packetId — reuse existing if same ID
59
- if (!this.index.packetsById.has(packet.packetId)) {
60
- this.ledger.evidencePackets.push(packet);
61
- this.index.packetsById.set(packet.packetId, packet);
62
- }
63
- }
64
- appendClaim(claim) {
65
- this.ledger.claims.push(claim);
66
- this.index.claimsById.set(claim.claimId, claim);
67
- this.checkGrowth();
68
- }
69
- appendChallenge(challenge) {
70
- this.ledger.challenges.push(challenge);
71
- // Also add to the claim's challenges array. If the claimId doesn't resolve
72
- // the challenge still lives in ledger.challenges but is invisible to any
73
- // code reading claim.challenges directly — surface that inconsistency.
74
- const claim = this.index.claimsById.get(challenge.claimId);
75
- if (claim) {
76
- claim.challenges.push(challenge);
77
- }
78
- else {
79
- logger.warn("arena.challenge_for_unknown_claim", { claimId: challenge.claimId });
80
- }
81
- this.checkGrowth();
82
- // Register any requested checks
83
- if (challenge.requestedChecks) {
84
- for (const check of challenge.requestedChecks) {
85
- this.appendRequestedCheck(check);
86
- }
87
- }
88
- }
89
- appendRequestedCheck(check) {
90
- if (!this.index.requestsById.has(check.requestId)) {
91
- this.ledger.requestedChecks.push(check);
92
- this.index.requestsById.set(check.requestId, check);
93
- }
94
- }
95
- appendAdjudication(adjudication) {
96
- this.ledger.adjudications.push(adjudication);
97
- // Also attach to the claim
98
- const claim = this.index.claimsById.get(adjudication.claimId);
99
- if (claim) {
100
- claim.adjudication = adjudication;
101
- }
102
- else {
103
- logger.warn("arena.adjudication_for_unknown_claim", { claimId: adjudication.claimId });
104
- }
105
- }
106
- // ─── Query operations ───────────────────────────────────────
107
- /**
108
- * Return a read-only reference to the full ledger.
109
- *
110
- * Note: `Readonly<>` is shallow — inner arrays are still mutable at the
111
- * type level. Callers MUST NOT mutate the returned object; use the
112
- * append* methods instead. A deep-freeze or structural clone can be
113
- * added later if external consumers need a truly immutable snapshot.
114
- */
115
- getSnapshot() {
116
- return this.ledger;
117
- }
118
- getClaimById(claimId) {
119
- return this.index.claimsById.get(claimId);
120
- }
121
- getPacketById(packetId) {
122
- return this.index.packetsById.get(packetId);
123
- }
124
- getAllClaims() {
125
- return this.ledger.claims;
126
- }
127
- getClaimsByStatus(...statuses) {
128
- const set = new Set(statuses);
129
- return this.ledger.claims.filter((c) => set.has(c.status));
130
- }
131
- getClaimsByOwner(owner) {
132
- return this.ledger.claims.filter((c) => c.owner === owner);
133
- }
134
- getChallengesForClaim(claimId) {
135
- return this.ledger.challenges.filter((c) => c.claimId === claimId);
136
- }
137
- getPendingChecks() {
138
- return this.ledger.requestedChecks;
139
- }
140
- getPendingChecksForClaim(claimId) {
141
- return this.ledger.requestedChecks.filter((c) => c.claimId === claimId);
142
- }
143
- getPacketsForClaim(claimId) {
144
- const claim = this.index.claimsById.get(claimId);
145
- if (!claim)
146
- return [];
147
- return claim.evidencePacketIds
148
- .map((id) => this.index.packetsById.get(id))
149
- .filter((p) => p !== undefined);
150
- }
151
- getDossiers() {
152
- return this.ledger.dossiers;
153
- }
154
- getDossierByParticipant(participant) {
155
- // Return the latest dossier for this participant (supports multi-round)
156
- const dossiers = this.ledger.dossiers.filter((d) => d.participant === participant);
157
- return dossiers[dossiers.length - 1];
158
- }
159
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Architecture lens — system boundaries, modularity, evolution path.
3
- */
4
- import type { ArenaLens } from "../types.js";
5
- export declare const architectureLens: ArenaLens;
@@ -1,22 +0,0 @@
1
- /**
2
- * Architecture lens — system boundaries, modularity, evolution path.
3
- */
4
- export const architectureLens = {
5
- name: "architecture",
6
- label: "Architecture",
7
- participantRole: "a system architect focused on boundaries, modularity, and evolution paths",
8
- reviewerRole: "an architecture reviewer evaluating structural decisions and trade-offs",
9
- moderatorRole: "a chief architect synthesizing architectural perspectives into design guidance",
10
- summaryLabel: "Architecture Assessment",
11
- criteria: [
12
- "Module boundaries and responsibility separation",
13
- "Coupling and cohesion",
14
- "Extensibility and evolution path",
15
- "Dependency management",
16
- "Data flow and state management",
17
- "API surface area and abstraction levels",
18
- "Migration and backward compatibility strategy",
19
- "Operational concerns (monitoring, debugging, deployment)",
20
- ],
21
- preferredFindingKinds: ["improvement", "risk", "question", "strength"],
22
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * Engineering lens — code quality, correctness, performance, maintainability.
3
- */
4
- import type { ArenaLens } from "../types.js";
5
- export declare const engineeringLens: ArenaLens;
@@ -1,22 +0,0 @@
1
- /**
2
- * Engineering lens — code quality, correctness, performance, maintainability.
3
- */
4
- export const engineeringLens = {
5
- name: "engineering",
6
- label: "Engineering",
7
- participantRole: "a software engineer focused on code quality, correctness, and maintainability",
8
- reviewerRole: "an engineering peer reviewer evaluating technical rigor and code health",
9
- moderatorRole: "a tech lead synthesizing engineering perspectives into actionable conclusions",
10
- summaryLabel: "Engineering Assessment",
11
- criteria: [
12
- "Code correctness and edge case handling",
13
- "Error handling and resilience",
14
- "Performance and scalability implications",
15
- "API design and interface clarity",
16
- "Test coverage and testability",
17
- "Maintainability and readability",
18
- "Security considerations",
19
- "Backward compatibility",
20
- ],
21
- preferredFindingKinds: ["risk", "improvement", "strength", "question"],
22
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * General lens — broad analysis without a specific domain focus.
3
- */
4
- import type { ArenaLens } from "../types.js";
5
- export declare const generalLens: ArenaLens;
@@ -1,20 +0,0 @@
1
- /**
2
- * General lens — broad analysis without a specific domain focus.
3
- */
4
- export const generalLens = {
5
- name: "general",
6
- label: "General",
7
- participantRole: "an analyst providing a broad, balanced perspective",
8
- reviewerRole: "a peer reviewer evaluating clarity, logic, and completeness",
9
- moderatorRole: "a neutral moderator synthesizing diverse perspectives into balanced conclusions",
10
- summaryLabel: "General Assessment",
11
- criteria: [
12
- "Logical coherence and consistency",
13
- "Completeness of analysis",
14
- "Trade-off identification",
15
- "Assumption clarity",
16
- "Evidence quality",
17
- "Actionability of recommendations",
18
- ],
19
- preferredFindingKinds: ["strength", "risk", "question", "improvement"],
20
- };
@@ -1,16 +0,0 @@
1
- /**
2
- * Lens registry — analysis perspectives for Arena sessions.
3
- */
4
- import type { ArenaLens, ArenaLensName, ArenaLensRef } from "../types.js";
5
- export { engineeringLens } from "./engineering.js";
6
- export { productLens } from "./product.js";
7
- export { architectureLens } from "./architecture.js";
8
- export { generalLens } from "./general.js";
9
- /** Get a lens by name. */
10
- export declare function getLens(name: ArenaLensName): ArenaLens;
11
- /** Resolve lens refs into full ArenaLens objects. */
12
- export declare function resolveLenses(refs: ArenaLensRef[]): ArenaLens[];
13
- /** Build a combined lens prompt fragment for participant system prompts. */
14
- export declare function buildLensPrompt(lenses: ArenaLens[], phase: "participant" | "reviewer" | "moderator"): string;
15
- /** All available lens names */
16
- export declare const LENS_NAMES: ArenaLensName[];
@@ -1,47 +0,0 @@
1
- /**
2
- * Lens registry — analysis perspectives for Arena sessions.
3
- */
4
- import { engineeringLens } from "./engineering.js";
5
- import { productLens } from "./product.js";
6
- import { architectureLens } from "./architecture.js";
7
- import { generalLens } from "./general.js";
8
- export { engineeringLens } from "./engineering.js";
9
- export { productLens } from "./product.js";
10
- export { architectureLens } from "./architecture.js";
11
- export { generalLens } from "./general.js";
12
- const LENS_MAP = {
13
- engineering: engineeringLens,
14
- product: productLens,
15
- architecture: architectureLens,
16
- general: generalLens,
17
- };
18
- /** Get a lens by name. */
19
- export function getLens(name) {
20
- return LENS_MAP[name];
21
- }
22
- /** Resolve lens refs into full ArenaLens objects. */
23
- export function resolveLenses(refs) {
24
- return refs.map((ref) => LENS_MAP[ref.name]);
25
- }
26
- /** Build a combined lens prompt fragment for participant system prompts. */
27
- export function buildLensPrompt(lenses, phase) {
28
- if (lenses.length === 0)
29
- return "";
30
- const roleKey = phase === "participant" ? "participantRole"
31
- : phase === "reviewer" ? "reviewerRole"
32
- : "moderatorRole";
33
- const roles = lenses.map((l) => l[roleKey]);
34
- const allCriteria = lenses.flatMap((l) => l.criteria);
35
- const uniqueCriteria = [...new Set(allCriteria)];
36
- const roleDesc = lenses.length === 1
37
- ? `You are ${roles[0]}.`
38
- : `You combine multiple perspectives: ${roles.join("; ")}.`;
39
- return [
40
- roleDesc,
41
- "",
42
- "Evaluation criteria (prioritized):",
43
- ...uniqueCriteria.map((c) => `- ${c}`),
44
- ].join("\n");
45
- }
46
- /** All available lens names */
47
- export const LENS_NAMES = ["engineering", "product", "architecture", "general"];
@@ -1,5 +0,0 @@
1
- /**
2
- * Product lens — user value, completeness, edge cases, acceptance criteria.
3
- */
4
- import type { ArenaLens } from "../types.js";
5
- export declare const productLens: ArenaLens;
@@ -1,22 +0,0 @@
1
- /**
2
- * Product lens — user value, completeness, edge cases, acceptance criteria.
3
- */
4
- export const productLens = {
5
- name: "product",
6
- label: "Product",
7
- participantRole: "a product analyst focused on user value, completeness, and edge cases",
8
- reviewerRole: "a product reviewer evaluating requirements coverage and user impact",
9
- moderatorRole: "a product lead synthesizing product perspectives into prioritized insights",
10
- summaryLabel: "Product Assessment",
11
- criteria: [
12
- "Requirements completeness and coverage",
13
- "User experience and usability",
14
- "Edge cases and boundary conditions",
15
- "Acceptance criteria clarity",
16
- "Feature scope — too broad or too narrow",
17
- "User journey coherence",
18
- "Metric and success criteria definition",
19
- "Stakeholder alignment",
20
- ],
21
- preferredFindingKinds: ["question", "improvement", "risk", "strength"],
22
- };
@@ -1,23 +0,0 @@
1
- /**
2
- * Arena model presets — known models with their max output token limits.
3
- *
4
- * Used by arena participant resolution to set appropriate maxTokens
5
- * so that LLM output is not prematurely truncated.
6
- */
7
- export interface ModelPreset {
8
- provider: string;
9
- model: string;
10
- maxOutputTokens: number;
11
- }
12
- export declare const MODEL_PRESETS: Record<string, ModelPreset>;
13
- /**
14
- * Look up max output tokens for a model string, falling back to a safe default.
15
- *
16
- * Lookup order:
17
- * 1. Arena preset key (e.g. "claude", "gpt") — short aliases used in arena UX
18
- * 2. Arena preset model path (e.g. "anthropic/claude-opus-4.6")
19
- * 3. resolveMaxOutput — the canonical table in onboarding.ts that also covers
20
- * direct-provider IDs (deepseek-v4-pro, …) and OpenRouter snapshot
21
- * 4. 8192 — final safe fallback
22
- */
23
- export declare function getMaxOutputTokens(model: string): number;
@@ -1,44 +0,0 @@
1
- /**
2
- * Arena model presets — known models with their max output token limits.
3
- *
4
- * Used by arena participant resolution to set appropriate maxTokens
5
- * so that LLM output is not prematurely truncated.
6
- */
7
- import { resolveMaxOutput } from "../onboarding.js";
8
- export const MODEL_PRESETS = {
9
- claude: { provider: "openai", model: "anthropic/claude-opus-4.6", maxOutputTokens: 32000 },
10
- "claude-sonnet": { provider: "openai", model: "anthropic/claude-sonnet-4.6", maxOutputTokens: 16000 },
11
- "claude-haiku": { provider: "openai", model: "anthropic/claude-haiku-4.5", maxOutputTokens: 8192 },
12
- gpt: { provider: "openai", model: "openai/gpt-5.5", maxOutputTokens: 32000 },
13
- "gpt4o": { provider: "openai", model: "openai/gpt-4o", maxOutputTokens: 16384 },
14
- o4: { provider: "openai", model: "openai/o4-mini", maxOutputTokens: 100000 },
15
- o3: { provider: "openai", model: "openai/o3", maxOutputTokens: 100000 },
16
- deepseek: { provider: "openai", model: "deepseek/deepseek-v3.2", maxOutputTokens: 8192 },
17
- "deepseek-r1": { provider: "openai", model: "deepseek/deepseek-r1", maxOutputTokens: 8192 },
18
- gemini: { provider: "openai", model: "google/gemini-3.1-pro-preview", maxOutputTokens: 65536 },
19
- "gemini-2.5": { provider: "openai", model: "google/gemini-2.5-pro", maxOutputTokens: 65536 },
20
- "gemini-flash": { provider: "openai", model: "google/gemini-3-flash-preview", maxOutputTokens: 65536 },
21
- qwen: { provider: "openai", model: "qwen/qwen3-235b-a22b", maxOutputTokens: 8192 },
22
- "qwen-coder": { provider: "openai", model: "qwen/qwen3-coder", maxOutputTokens: 16384 },
23
- llama: { provider: "openai", model: "meta-llama/llama-4-maverick", maxOutputTokens: 32000 },
24
- devstral: { provider: "openai", model: "mistralai/devstral-medium", maxOutputTokens: 24000 },
25
- };
26
- /**
27
- * Look up max output tokens for a model string, falling back to a safe default.
28
- *
29
- * Lookup order:
30
- * 1. Arena preset key (e.g. "claude", "gpt") — short aliases used in arena UX
31
- * 2. Arena preset model path (e.g. "anthropic/claude-opus-4.6")
32
- * 3. resolveMaxOutput — the canonical table in onboarding.ts that also covers
33
- * direct-provider IDs (deepseek-v4-pro, …) and OpenRouter snapshot
34
- * 4. 8192 — final safe fallback
35
- */
36
- export function getMaxOutputTokens(model) {
37
- const byKey = MODEL_PRESETS[model];
38
- if (byKey)
39
- return byKey.maxOutputTokens;
40
- const byModel = Object.values(MODEL_PRESETS).find((p) => p.model === model);
41
- if (byModel)
42
- return byModel.maxOutputTokens;
43
- return resolveMaxOutput(model) ?? 8192;
44
- }
@@ -1,24 +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 type { ArenaParticipant, ArenaStrategy, ClaimAdjudication, ArenaProgressEvent } from "../types.js";
10
- import type { ArenaLedger } from "../ledger.js";
11
- interface AdjudicationOptions {
12
- concluder: ArenaParticipant;
13
- strategy: ArenaStrategy;
14
- topic: string;
15
- ledger: ArenaLedger;
16
- signal?: AbortSignal;
17
- onProgress?: (event: ArenaProgressEvent) => void;
18
- }
19
- /**
20
- * Run adjudication phase. The moderator rules on contested claims.
21
- * Verified claims get synthetic adjudications.
22
- */
23
- export declare function runAdjudication(options: AdjudicationOptions): Promise<ClaimAdjudication[]>;
24
- export {};