@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,283 +0,0 @@
1
- /**
2
- * Format packs — prompt templates for code vs document iteration.
3
- *
4
- * Each format provides four prompt builders:
5
- * - draftPrompt: used in tournament v1 (every participant writes a candidate)
6
- * - mergePrompt: used in v1 merge (author reads anonymized candidates → v1)
7
- * - argueSystem: system prompt for critics
8
- * - argueUser: user prompt that wraps the current draft for critique
9
- * - revisePrompt: used to produce v(N+1) given v(N) + critiques
10
- */
11
- const COMMON_DRAFT_RULES = `
12
- Hard rules:
13
- - Output the FULL artifact, not a sketch or outline.
14
- - No "...", "(continued)", "see above", "TBD", or placeholders.
15
- - Don't pad with filler. Every section must carry information.
16
- - Length is a floor, not a target — go beyond it if the topic warrants.
17
-
18
- Factual discipline (CRITICAL — fabrication = blocker-level defect):
19
- - Do NOT invent specific numbers, percentages, dollar amounts, market sizes,
20
- user-research counts, or "industry averages" you cannot verify.
21
- - Do NOT invent URLs, report IDs, document numbers, citation references.
22
- - Do NOT invent named people, companies, or product code-names.
23
- - For unknowable specifics, write a placeholder with the exact form:
24
- [需调研: 具体说明] e.g. "[需调研: 实际行业流失率基准]"
25
- [TBD: short reason] e.g. "[TBD: confirm Stripe rate limits]"
26
- These placeholders are EXPECTED. Reviewers will not fault you for them.
27
- - General qualitative claims are fine ("annual growth typically in the
28
- double digits"); specific numbers without a verifiable source are NOT.
29
- - If you have web-search tools available, USE them before stating any
30
- specific number or citing any source.
31
- `;
32
- function formatCritiquesForPrompt(critiques) {
33
- return critiques
34
- .map((c, i) => `[${i + 1}] id=${c.id} severity=${c.severity} category=${c.category} from=${c.critic}\n` +
35
- ` anchor: "${c.anchor}"\n` +
36
- ` comment: ${c.comment}` +
37
- (c.suggestion ? `\n suggestion: ${c.suggestion}` : ""))
38
- .join("\n\n");
39
- }
40
- // ─── Code format ────────────────────────────────────────────────
41
- export const codeFormat = {
42
- format: "code",
43
- draftPrompt(subject, minLength) {
44
- return `You are writing a complete code artifact for the following task.
45
-
46
- Task: ${subject.label}
47
- Description: ${subject.description}
48
- ${subject.sources?.length ? `Source files for context: ${subject.sources.join(", ")}` : ""}
49
-
50
- This draft will compete with drafts from other participants in a tournament round.
51
- A merger will then read all drafts (anonymously) and pick the strongest parts.
52
- Make your draft strong, distinct, complete, and self-contained.
53
-
54
- Output requirements:
55
- - Compile-ready code in the appropriate language (infer from sources / description).
56
- - Include tests if behavior is non-trivial.
57
- - Inline comments only where the WHY is non-obvious — names should explain WHAT.
58
- - At least ${minLength} characters of substantive code (filler will be cut by the merger).
59
- ${COMMON_DRAFT_RULES}`;
60
- },
61
- mergePrompt(subject, candidates, minLength) {
62
- const blocks = candidates
63
- .map((c) => `--- ${c.anonymousLabel} ---\n${c.content}\n--- end ${c.anonymousLabel} ---`)
64
- .join("\n\n");
65
- return `Below are ${candidates.length} draft solutions for the same task, presented anonymously.
66
- Your job: produce a single v1 by merging the strongest parts of each.
67
-
68
- Task: ${subject.label}
69
- Description: ${subject.description}
70
-
71
- ${blocks}
72
-
73
- Merging rules:
74
- - For each section / function / module, pick the strongest version OR write a new one inspired by the best ideas.
75
- - Inline EVERYTHING. Do not write "see Draft B for the auth helper" — copy the auth helper in.
76
- - v1 must be COMPLETE and at least ${minLength} characters of substantive code.
77
- - After the code, output a 'mergeRationale' section: one short paragraph per major decision, "From Draft X I took ____, because ____. I rejected ____ because ____."
78
-
79
- Output format (literally — these markers will be parsed):
80
-
81
- <v1_content>
82
- {full code goes here}
83
- </v1_content>
84
-
85
- <merge_rationale>
86
- {your rationale here}
87
- </merge_rationale>`;
88
- },
89
- argueSystem() {
90
- return `You are reviewing a code artifact. Find every meaningful issue.
91
-
92
- You may have access to a web_search tool — USE IT to verify any specific
93
- claim, library version, API behavior, or external reference made in the
94
- draft before deciding whether it's a fabrication.
95
-
96
- For each issue:
97
- - "anchor": quote 5-15 words verbatim from the draft to locate the issue.
98
- - "severity": "blocker" (must fix), "major" (should fix), "minor" (nice to fix), "nit" (style), or "praise" (good — don't gut this).
99
- - "category": "correctness" | "completeness" | "clarity" | "evidence" | "structure" | "style" | "fabrication" | "other".
100
- - "comment": what's wrong and what you'd do. If you used web_search, cite the URL.
101
- - "suggestion": optional concrete fix.
102
- - "evidence": optional array of {url, snippet} pairs supporting your critique.
103
-
104
- FABRICATION DETECTION (top priority):
105
- Any specific number, citation, URL, version string, API endpoint, library
106
- function, or named entity that you cannot verify is a "fabrication"
107
- critique with severity = "blocker". Be especially suspicious of:
108
- - "Industry average is X%" / "Surveys show N=..."
109
- - Documentation URLs with suspiciously generic paths
110
- - Library/API names that "sound right" but you can't confirm exist
111
-
112
- Aim for 8-20 critiques. Include PRAISE for parts that are genuinely good — this prevents the author from accidentally gutting them in the next revision.
113
-
114
- Output strictly as JSON: {"critiques": [{...}, ...]}`;
115
- },
116
- argueUser(subject, draft, lens) {
117
- return `Task: ${subject.label}
118
- ${lens ? `Review lens: ${lens}\n` : ""}
119
- Current draft (v${draft.version}, by ${draft.author}):
120
-
121
- ${draft.content}
122
-
123
- Now produce your critiques as JSON.`;
124
- },
125
- revisePrompt(subject, previous, critiques, minLength) {
126
- return `You wrote v${previous.version}. Critics raised ${critiques.length} points.
127
- Rewrite the artifact as v${previous.version + 1}.
128
-
129
- Task: ${subject.label}
130
- Description: ${subject.description}
131
-
132
- Current draft (v${previous.version}):
133
- ${previous.content}
134
-
135
- Critiques:
136
- ${formatCritiquesForPrompt(critiques)}
137
-
138
- Rules:
139
- - ADDRESS every blocker and major. You may disagree, but say why in changelog.
140
- - Preserve PRAISE-tagged parts unless a later critique contradicts.
141
- - Output the COMPLETE new artifact (at least ${minLength} chars), not a diff.
142
- - After the code, output a JSON block:
143
-
144
- <v_next_content>
145
- {full code goes here}
146
- </v_next_content>
147
-
148
- <v_next_meta>
149
- {
150
- "acceptedCritiques": ["id1", "id2", ...],
151
- "rejectedCritiques": [{"id": "id3", "reason": "..."}, ...],
152
- "changelog": "what changed and why, in 1-3 short paragraphs"
153
- }
154
- </v_next_meta>`;
155
- },
156
- };
157
- // ─── Document format ────────────────────────────────────────────
158
- export const documentFormat = {
159
- format: "document",
160
- draftPrompt(subject, minLength) {
161
- return `You are writing a complete long-form document for the following subject.
162
-
163
- Subject: ${subject.label}
164
- Description: ${subject.description}
165
- ${subject.sources?.length ? `Reference materials: ${subject.sources.join(", ")}` : ""}
166
-
167
- This draft will compete with drafts from other participants in a tournament round.
168
- A merger will then read all drafts (anonymously) and pick the strongest parts.
169
- Make your draft strong, distinct, complete, and self-contained.
170
-
171
- Document requirements:
172
- - Use clear hierarchical structure (## sections, ### subsections).
173
- - Every section must carry concrete information: examples, comparisons, trade-offs, numbers.
174
- - Cite sources inline with [n] footnotes when you make factual claims.
175
- - At least ${minLength} characters of substantive prose (filler will be cut by the merger).
176
- ${COMMON_DRAFT_RULES}`;
177
- },
178
- mergePrompt(subject, candidates, minLength) {
179
- const blocks = candidates
180
- .map((c) => `--- ${c.anonymousLabel} ---\n${c.content}\n--- end ${c.anonymousLabel} ---`)
181
- .join("\n\n");
182
- return `Below are ${candidates.length} draft documents for the same subject, presented anonymously.
183
- Your job: produce a single v1 markdown document by merging the strongest parts.
184
-
185
- Subject: ${subject.label}
186
- Description: ${subject.description}
187
-
188
- ${blocks}
189
-
190
- Merging rules:
191
- - Pick the strongest section from each draft, OR write a new section that combines their best ideas.
192
- - DO NOT write "see Draft B for ____" — inline everything.
193
- - The final v1 must be COMPLETE and at least ${minLength} characters.
194
- - Maintain coherent voice and consistent structure across sections.
195
-
196
- Output format (literally — these markers will be parsed):
197
-
198
- <v1_content>
199
- {full markdown document}
200
- </v1_content>
201
-
202
- <merge_rationale>
203
- {1-3 short paragraphs: from which draft you took which section, why; what you rejected, why}
204
- </merge_rationale>`;
205
- },
206
- argueSystem() {
207
- return `You are reviewing a long-form document. Find every meaningful issue.
208
-
209
- You may have access to a web_search tool — USE IT to verify any specific
210
- number, citation, market figure, named survey, or external reference
211
- before deciding whether it's a fabrication.
212
-
213
- For each issue:
214
- - "anchor": quote 5-15 words verbatim from the document to locate the issue.
215
- - "severity": "blocker" | "major" | "minor" | "nit" | "praise".
216
- - "category": "correctness" | "completeness" | "clarity" | "evidence" | "structure" | "style" | "fabrication" | "other".
217
- - "comment": what's wrong / missing / weak. If you used web_search, cite the URL.
218
- - "suggestion": optional concrete fix or content to add.
219
- - "evidence": optional array of {url, snippet} pairs supporting your critique.
220
-
221
- FABRICATION DETECTION (top priority):
222
- The document is far more likely to fail because of fabricated facts than
223
- because of missing sections. Treat every specific number / report ID /
224
- URL / dollar figure / "industry average" / named survey as suspect until
225
- verified. Mark as severity = "blocker" if:
226
- - The number cannot be found via web_search.
227
- - The cited URL doesn't resolve to the claimed source.
228
- - The "report ID" / "document number" appears made up.
229
- - The named survey / interviewee count cannot be traced.
230
- A draft full of citations that don't check out is worse than a draft
231
- that honestly writes "[需调研: ...]". Reward the latter.
232
-
233
- Aim for 8-20 critiques. Don't be polite — depth, missing sections, weak claims, and structural issues matter more than typos. Include PRAISE for genuinely strong parts so the author doesn't gut them on revision.
234
-
235
- Output strictly as JSON: {"critiques": [{...}, ...]}`;
236
- },
237
- argueUser(subject, draft, lens) {
238
- return `Subject: ${subject.label}
239
- ${lens ? `Review lens: ${lens}\n` : ""}
240
- Current document (v${draft.version}, by ${draft.author}):
241
-
242
- ${draft.content}
243
-
244
- Now produce your critiques as JSON.`;
245
- },
246
- revisePrompt(subject, previous, critiques, minLength) {
247
- return `You wrote v${previous.version}. Critics raised ${critiques.length} points.
248
- Rewrite the document as v${previous.version + 1}.
249
-
250
- Subject: ${subject.label}
251
- Description: ${subject.description}
252
-
253
- Current document (v${previous.version}):
254
- ${previous.content}
255
-
256
- Critiques:
257
- ${formatCritiquesForPrompt(critiques)}
258
-
259
- Rules:
260
- - ADDRESS every blocker and major. You may disagree, but say why in changelog.
261
- - Preserve PRAISE-tagged parts.
262
- - Expand sections that were called out as thin / missing examples / lacking evidence.
263
- - Output the COMPLETE new document (at least ${minLength} chars).
264
-
265
- Output format (literally — these markers will be parsed):
266
-
267
- <v_next_content>
268
- {full markdown document}
269
- </v_next_content>
270
-
271
- <v_next_meta>
272
- {
273
- "acceptedCritiques": ["id1", "id2", ...],
274
- "rejectedCritiques": [{"id": "id3", "reason": "..."}, ...],
275
- "changelog": "what changed and why, in 1-3 short paragraphs"
276
- }
277
- </v_next_meta>`;
278
- },
279
- };
280
- // ─── Selector ───────────────────────────────────────────────────
281
- export function getFormat(format) {
282
- return format === "code" ? codeFormat : documentFormat;
283
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Arena Iterate — multi-model authoring loop.
3
- *
4
- * Public API for the iterate mode.
5
- */
6
- export { IterativeArena } from "./iterative-arena.js";
7
- export { defaultConvergence, diffRatio } from "./convergence.js";
8
- export { codeFormat, documentFormat, getFormat } from "./formats/index.js";
9
- export type { FormatPack } from "./formats/index.js";
10
- export type { AuthorRotation, CheckpointAction, CheckpointContext, CheckpointFn, ConvergenceSignal, Critique, CritiqueCategory, CritiqueEvidence, CritiqueSeverity, Draft, DraftCandidate, IterateConfig, IterateFormat, IterateProgressEvent, IterateResult, IterateSubject, Round, StoppedReason, } from "./types.js";
11
- export { ITERATE_WEB_TOOLS, hasWebSearchProvider } from "./tools/web-tools.js";
@@ -1,9 +0,0 @@
1
- /**
2
- * Arena Iterate — multi-model authoring loop.
3
- *
4
- * Public API for the iterate mode.
5
- */
6
- export { IterativeArena } from "./iterative-arena.js";
7
- export { defaultConvergence, diffRatio } from "./convergence.js";
8
- export { codeFormat, documentFormat, getFormat } from "./formats/index.js";
9
- export { ITERATE_WEB_TOOLS, hasWebSearchProvider } from "./tools/web-tools.js";
@@ -1,23 +0,0 @@
1
- /**
2
- * IterativeArena — multi-model authoring loop.
3
- *
4
- * Pipeline:
5
- * 1. v1: tournament (default) or single-author
6
- * 2. for each round 2..maxRounds:
7
- * a. argue (parallel critics)
8
- * b. checkpoint (optional human pause)
9
- * c. convergence check
10
- * d. if not converged: revise → next round
11
- * 3. final draft = last round's draft
12
- */
13
- import type { IterateConfig, IterateResult } from "./types.js";
14
- export declare class IterativeArena {
15
- private readonly config;
16
- constructor(config: IterateConfig);
17
- run(): Promise<IterateResult>;
18
- /** Critics for a given round = pool minus current author (so author isn't critiquing self). */
19
- private criticsForRound;
20
- private checkConvergence;
21
- private pickNextAuthor;
22
- private finalize;
23
- }
@@ -1,237 +0,0 @@
1
- /**
2
- * IterativeArena — multi-model authoring loop.
3
- *
4
- * Pipeline:
5
- * 1. v1: tournament (default) or single-author
6
- * 2. for each round 2..maxRounds:
7
- * a. argue (parallel critics)
8
- * b. checkpoint (optional human pause)
9
- * c. convergence check
10
- * d. if not converged: revise → next round
11
- * 3. final draft = last round's draft
12
- */
13
- import { logger } from "../../logging/logger.js";
14
- import { defaultConvergence, diffRatio } from "./convergence.js";
15
- import { getFormat } from "./formats/index.js";
16
- import { runArgueRound } from "./phases/argue.js";
17
- import { runRevise } from "./phases/revise.js";
18
- import { mergeCandidatesToV1, runTournamentCandidates, singleAuthorV1 } from "./phases/tournament.js";
19
- const DEFAULT_MAX_ROUNDS = 5;
20
- export class IterativeArena {
21
- config;
22
- constructor(config) {
23
- if (!config.author) {
24
- throw new Error("IterativeArena requires an `author` participant");
25
- }
26
- if (!config.critics || config.critics.length === 0) {
27
- throw new Error("IterativeArena requires at least 1 critic");
28
- }
29
- const allNames = [config.author.name, ...config.critics.map((c) => c.name)];
30
- if (new Set(allNames).size !== allNames.length) {
31
- throw new Error("Author and critics must have unique names");
32
- }
33
- this.config = config;
34
- }
35
- async run() {
36
- const start = Date.now();
37
- const { config } = this;
38
- const format = getFormat(config.format);
39
- const maxRounds = config.maxRounds ?? DEFAULT_MAX_ROUNDS;
40
- const minDraftLength = config.minDraftLength ?? (config.format === "code" ? 200 : 800);
41
- const signal = config.signal;
42
- const rounds = [];
43
- // ─── Phase: v1 ────────────────────────────────────────────
44
- let currentDraft;
45
- try {
46
- if ((config.v1Strategy ?? "tournament") === "tournament") {
47
- const candidates = await runTournamentCandidates({
48
- subject: config.subject,
49
- format,
50
- participants: [config.author, ...config.critics],
51
- minDraftLength,
52
- signal,
53
- onProgress: config.onProgress,
54
- });
55
- currentDraft = await mergeCandidatesToV1({
56
- subject: config.subject,
57
- format,
58
- author: config.author,
59
- candidates,
60
- minDraftLength,
61
- signal,
62
- onProgress: config.onProgress,
63
- });
64
- }
65
- else {
66
- currentDraft = await singleAuthorV1({
67
- subject: config.subject,
68
- format,
69
- author: config.author,
70
- minDraftLength,
71
- signal,
72
- });
73
- }
74
- }
75
- catch (err) {
76
- logger.error("arena.iterate.v1_failed", { error: err.message });
77
- throw err;
78
- }
79
- // Author rotation state. We pick the next author from the pool of
80
- // {author, critics} according to the rotation policy.
81
- let currentAuthor = config.author;
82
- const pool = [config.author, ...config.critics];
83
- // ─── Phase: argue/revise loop ────────────────────────────
84
- let previousDraft;
85
- for (let r = 1; r <= maxRounds; r++) {
86
- signal?.throwIfAborted();
87
- // Argue against the current draft.
88
- const critiques = await runArgueRound({
89
- subject: config.subject,
90
- format,
91
- draft: currentDraft,
92
- critics: this.criticsForRound(r),
93
- round: r,
94
- enableWebSearch: config.enableWebSearch,
95
- maxToolRounds: config.maxArgueToolRounds,
96
- signal,
97
- onProgress: config.onProgress,
98
- });
99
- // Convergence check.
100
- const convergence = this.checkConvergence({
101
- round: r,
102
- critiques,
103
- draft: currentDraft,
104
- previousDraft,
105
- });
106
- const round = {
107
- round: r,
108
- draft: currentDraft,
109
- critiques,
110
- convergence,
111
- };
112
- // Optional human checkpoint.
113
- let userAction;
114
- if (config.humanCheckpoint) {
115
- config.onProgress?.({ type: "checkpoint_pause", round: r });
116
- userAction = await config.humanCheckpoint({
117
- round: r,
118
- draft: currentDraft,
119
- critiques,
120
- convergence,
121
- });
122
- }
123
- rounds.push(round);
124
- config.onProgress?.({
125
- type: "round_done",
126
- round: r,
127
- data: {
128
- critiques: critiques.length,
129
- shouldStop: convergence.shouldStop,
130
- userAction,
131
- },
132
- });
133
- if (userAction === "stop") {
134
- return this.finalize(rounds, "user_stop", start);
135
- }
136
- if (userAction !== "force-continue" && convergence.shouldStop) {
137
- return this.finalize(rounds, "converged", start);
138
- }
139
- if (r === maxRounds) {
140
- return this.finalize(rounds, "max_rounds", start);
141
- }
142
- // Revise → v(r+1)
143
- previousDraft = currentDraft;
144
- currentAuthor = this.pickNextAuthor(currentAuthor, critiques, pool, r);
145
- currentDraft = await runRevise({
146
- subject: config.subject,
147
- format,
148
- previous: previousDraft,
149
- critiques,
150
- author: currentAuthor,
151
- minDraftLength,
152
- signal,
153
- onProgress: config.onProgress,
154
- });
155
- }
156
- return this.finalize(rounds, "max_rounds", start);
157
- }
158
- /** Critics for a given round = pool minus current author (so author isn't critiquing self). */
159
- criticsForRound(_round) {
160
- return this.config.critics;
161
- }
162
- checkConvergence(args) {
163
- if (this.config.convergenceStrategy && this.config.convergenceStrategy !== "default") {
164
- const stop = this.config.convergenceStrategy(args);
165
- const blockerCount = args.critiques.filter((c) => c.severity === "blocker").length;
166
- const majorCount = args.critiques.filter((c) => c.severity === "major").length;
167
- const diffFromPrevious = args.previousDraft
168
- ? diffRatio(args.previousDraft.content, args.draft.content)
169
- : 1;
170
- return {
171
- blockerCount,
172
- majorCount,
173
- totalCritiques: args.critiques.length,
174
- diffFromPrevious,
175
- shouldStop: stop,
176
- reason: stop ? "all_minor_or_praise" : "running",
177
- };
178
- }
179
- return defaultConvergence(args);
180
- }
181
- pickNextAuthor(current, critiques, pool, round) {
182
- const policy = this.config.authorRotation ?? "fixed";
183
- if (policy === "fixed")
184
- return this.config.author;
185
- if (policy === "round-robin") {
186
- const idx = round % pool.length;
187
- return pool[idx];
188
- }
189
- if (policy === "best-critic") {
190
- // Score critics by sum of severities they raised; tie → most critiques.
191
- const sevWeight = {
192
- blocker: 5, major: 3, minor: 1, nit: 0.5, praise: 0,
193
- };
194
- const scores = new Map();
195
- for (const c of critiques) {
196
- scores.set(c.critic, (scores.get(c.critic) ?? 0) + (sevWeight[c.severity] ?? 0));
197
- }
198
- let best = current.name;
199
- let bestScore = -1;
200
- for (const [name, score] of scores) {
201
- if (score > bestScore) {
202
- bestScore = score;
203
- best = name;
204
- }
205
- }
206
- const winner = pool.find((p) => p.name === best);
207
- return winner ?? current;
208
- }
209
- return current;
210
- }
211
- finalize(rounds, stoppedAt, start) {
212
- const finalDraft = rounds.at(-1).draft;
213
- const result = {
214
- subject: this.config.subject,
215
- format: this.config.format,
216
- rounds,
217
- finalDraft,
218
- stoppedAt,
219
- durationMs: Date.now() - start,
220
- };
221
- this.config.onProgress?.({
222
- type: "iterate_complete",
223
- data: {
224
- stoppedAt,
225
- rounds: rounds.length,
226
- finalLength: finalDraft.content.length,
227
- },
228
- });
229
- logger.info("arena.iterate.complete", {
230
- stoppedAt,
231
- rounds: rounds.length,
232
- finalVersion: finalDraft.version,
233
- finalLength: finalDraft.content.length,
234
- });
235
- return result;
236
- }
237
- }
@@ -1,42 +0,0 @@
1
- /**
2
- * Parsing helpers for LLM responses in iterate mode.
3
- *
4
- * We use literal XML-ish markers (<v1_content>…</v1_content>) instead of
5
- * pure JSON because LLMs are far more reliable at "write 5000 chars of
6
- * markdown then a small JSON block at the end" than at producing one
7
- * giant well-formed JSON document with a 5000-char string field.
8
- */
9
- import type { Critique } from "./types.js";
10
- /**
11
- * Extract content between `<tag>` and `</tag>`.
12
- *
13
- * Forgiving in two ways:
14
- * - Case-insensitive on the tag name.
15
- * - If the closing tag is missing (LLM hit max_tokens mid-output), we still
16
- * return everything after the opening tag, stopping at the next sibling
17
- * tag (e.g. the `<merge_rationale>` block) if present, otherwise EOF.
18
- */
19
- export declare function extractTag(text: string, tag: string): string | null;
20
- /** Parse merge response: extract v1 content + rationale. Falls back to whole text if markers are missing. */
21
- export declare function parseMergeResponse(text: string): {
22
- content: string;
23
- rationale?: string;
24
- };
25
- export interface ReviseMeta {
26
- acceptedCritiques?: string[];
27
- rejectedCritiques?: Array<{
28
- id: string;
29
- reason: string;
30
- }>;
31
- changelog?: string;
32
- }
33
- /** Parse revise response: extract content + meta JSON. */
34
- export declare function parseReviseResponse(text: string): {
35
- content: string;
36
- meta: ReviseMeta;
37
- };
38
- /**
39
- * Parse critique JSON from an argue-phase response.
40
- * Tolerant: handles bare objects, fenced JSON, leading prose, trailing prose.
41
- */
42
- export declare function parseCritiquesResponse(text: string, criticName: string, idPrefix: string): Critique[];