@cjhyy/code-shell-core 0.7.1 → 0.8.1
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.
- package/README.md +36 -23
- package/dist/agent/agent-definition-registry.d.ts +2 -2
- package/dist/agent/agent-definition-registry.js +47 -10
- package/dist/agent/agent-definition.d.ts +5 -0
- package/dist/agent/agent-definition.js +14 -0
- package/dist/automation/index.d.ts +7 -4
- package/dist/automation/index.js +4 -2
- package/dist/automation/runner.js +3 -1
- package/dist/automation/scheduler.d.ts +57 -1
- package/dist/automation/scheduler.js +123 -23
- package/dist/automation/store.d.ts +6 -2
- package/dist/automation/store.js +7 -3
- package/dist/capabilities/index.d.ts +109 -0
- package/dist/capabilities/index.js +80 -0
- package/dist/capability-control/disabled-lists.d.ts +2 -1
- package/dist/capability-control/disabled-lists.js +3 -5
- package/dist/capability-control/overlay.d.ts +14 -1
- package/dist/capability-control/overlay.js +40 -0
- package/dist/capability-control/service.js +6 -4
- package/dist/cli/agent-server-stdio.d.ts +1 -1
- package/dist/cli/agent-server-stdio.js +66 -6
- package/dist/cli/agent-server-tcp.js +7 -3
- package/dist/context/compaction.d.ts +39 -3
- package/dist/context/compaction.js +151 -39
- package/dist/context/manager.d.ts +17 -1
- package/dist/context/manager.js +36 -1
- package/dist/credentials/access.d.ts +3 -1
- package/dist/credentials/access.js +24 -3
- package/dist/credentials/index.d.ts +1 -1
- package/dist/credentials/index.js +1 -1
- package/dist/credentials/oauth.d.ts +4 -1
- package/dist/credentials/oauth.js +14 -0
- package/dist/credentials/store.d.ts +15 -1
- package/dist/credentials/store.js +17 -4
- package/dist/credentials/types.d.ts +24 -0
- package/dist/credentials/use-credential-tool.js +15 -1
- package/dist/engine/auxiliary-pipeline.d.ts +40 -0
- package/dist/engine/auxiliary-pipeline.js +181 -0
- package/dist/{settings → engine}/disk-defaults.d.ts +2 -2
- package/dist/{settings → engine}/disk-defaults.js +5 -2
- package/dist/engine/dynamic-tool-defs.d.ts +4 -0
- package/dist/engine/dynamic-tool-defs.js +4 -0
- package/dist/engine/engine.d.ts +254 -195
- package/dist/engine/engine.js +1812 -2041
- package/dist/engine/file-history-hook.d.ts +11 -0
- package/dist/engine/file-history-hook.js +31 -0
- package/dist/engine/goal-judge-context.d.ts +9 -0
- package/dist/engine/goal-judge-context.js +234 -0
- package/dist/engine/injected-context-cache.d.ts +6 -0
- package/dist/engine/injected-context-cache.js +13 -0
- package/dist/engine/input-attachments.d.ts +1 -1
- package/dist/engine/model-facade.d.ts +3 -3
- package/dist/engine/model-facade.js +15 -14
- package/dist/engine/permission-controller.d.ts +55 -0
- package/dist/engine/permission-controller.js +148 -0
- package/dist/engine/prompt-cache-diagnostics.d.ts +58 -0
- package/dist/engine/prompt-cache-diagnostics.js +178 -0
- package/dist/engine/run-accounting.d.ts +41 -0
- package/dist/engine/run-accounting.js +126 -0
- package/dist/engine/run-context.d.ts +44 -0
- package/dist/engine/run-context.js +88 -0
- package/dist/engine/run-environment.d.ts +30 -0
- package/dist/engine/run-environment.js +77 -0
- package/dist/engine/run-finalize.d.ts +58 -0
- package/dist/engine/run-finalize.js +245 -0
- package/dist/engine/run-goal.d.ts +58 -0
- package/dist/engine/run-goal.js +188 -0
- package/dist/engine/run-image-input.d.ts +1 -1
- package/dist/engine/run-image-input.js +5 -3
- package/dist/engine/run-session-open.d.ts +41 -0
- package/dist/engine/run-session-open.js +186 -0
- package/dist/engine/run-setup.d.ts +42 -0
- package/dist/engine/run-setup.js +58 -0
- package/dist/engine/run-tooling.d.ts +125 -0
- package/dist/engine/run-tooling.js +283 -0
- package/dist/engine/run-types.d.ts +139 -0
- package/dist/engine/run-types.js +12 -0
- package/dist/engine/run-workspace.d.ts +50 -0
- package/dist/engine/run-workspace.js +114 -0
- package/dist/engine/steer-queue.d.ts +1 -1
- package/dist/engine/subagent-spawner.d.ts +32 -0
- package/dist/engine/subagent-spawner.js +287 -0
- package/dist/engine/tool-summary.d.ts +2 -2
- package/dist/engine/tool-summary.js +2 -2
- package/dist/engine/turn-loop.d.ts +49 -10
- package/dist/engine/turn-loop.js +370 -104
- package/dist/engine/types.d.ts +30 -3
- package/dist/engine/types.js +1 -1
- package/dist/{engine/goal.d.ts → goal/lifecycle.d.ts} +76 -4
- package/dist/goal/lifecycle.js +482 -0
- package/dist/hooks/events.d.ts +24 -10
- package/dist/hooks/goal-stop-hook.d.ts +17 -28
- package/dist/hooks/goal-stop-hook.js +110 -465
- package/dist/hooks/registry.js +1 -1
- package/dist/index.d.ts +48 -108
- package/dist/index.extension.d.ts +51 -0
- package/dist/index.extension.js +39 -0
- package/dist/index.internal.d.ts +86 -0
- package/dist/index.internal.js +92 -0
- package/dist/index.js +34 -123
- package/dist/links/cli.d.ts +48 -0
- package/dist/links/cli.js +617 -0
- package/dist/links/http.d.ts +40 -0
- package/dist/links/http.js +166 -0
- package/dist/links/index.d.ts +4 -0
- package/dist/links/index.js +3 -0
- package/dist/links/link-action-tool.d.ts +5 -0
- package/dist/links/link-action-tool.js +241 -0
- package/dist/links/providers.d.ts +8 -0
- package/dist/links/providers.js +665 -0
- package/dist/links/types.d.ts +44 -0
- package/dist/llm/client-base.d.ts +7 -0
- package/dist/llm/client-base.js +60 -0
- package/dist/llm/model-pool.d.ts +1 -1
- package/dist/llm/model-pool.js +1 -1
- package/dist/llm/providers/anthropic.d.ts +1 -0
- package/dist/llm/providers/anthropic.js +9 -0
- package/dist/llm/providers/openai.d.ts +1 -0
- package/dist/llm/providers/openai.js +17 -0
- package/dist/model-catalog/index.js +15 -2
- package/dist/model-catalog/resolve.d.ts +13 -1
- package/dist/model-catalog/resolve.js +37 -2
- package/dist/model-catalog/types.d.ts +74 -48
- package/dist/model-catalog/types.js +16 -5
- package/dist/model-catalog/upsert.d.ts +3 -1
- package/dist/model-catalog/upsert.js +9 -0
- package/dist/onboarding.d.ts +0 -1
- package/dist/onboarding.js +1 -22
- package/dist/panel-apps/bindings.d.ts +24 -0
- package/dist/panel-apps/bindings.js +69 -0
- package/dist/panel-apps/github-archive.d.ts +21 -0
- package/dist/panel-apps/github-archive.js +98 -0
- package/dist/panel-apps/index.d.ts +4 -0
- package/dist/panel-apps/index.js +4 -0
- package/dist/panel-apps/installer.d.ts +68 -0
- package/dist/panel-apps/installer.js +622 -0
- package/dist/panel-apps/manifest.d.ts +364 -0
- package/dist/panel-apps/manifest.js +189 -0
- package/dist/panel-apps/paths.d.ts +13 -0
- package/dist/panel-apps/paths.js +38 -0
- package/dist/panel-apps/registry.d.ts +51 -0
- package/dist/panel-apps/registry.js +99 -0
- package/dist/panel-apps/runtime.d.ts +80 -0
- package/dist/panel-apps/runtime.js +154 -0
- package/dist/plugins/gitOps.js +8 -1
- package/dist/plugins/installedPlugins.d.ts +2 -1
- package/dist/plugins/installedPlugins.js +146 -8
- package/dist/plugins/installer/codex/convertAgents.d.ts +4 -1
- package/dist/plugins/installer/codex/convertAgents.js +62 -8
- package/dist/plugins/installer/codex/convertCommands.d.ts +5 -5
- package/dist/plugins/installer/codex/convertCommands.js +35 -12
- package/dist/plugins/installer/codex/convertHooks.d.ts +10 -0
- package/dist/plugins/installer/codex/convertHooks.js +82 -0
- package/dist/plugins/installer/codex/convertSkills.js +41 -6
- package/dist/plugins/installer/install.d.ts +7 -1
- package/dist/plugins/installer/install.js +21 -87
- package/dist/plugins/installer/installFromArchive.d.ts +26 -4
- package/dist/plugins/installer/installFromArchive.js +44 -27
- package/dist/plugins/installer/installFromNpm.d.ts +31 -0
- package/dist/plugins/installer/installFromNpm.js +273 -0
- package/dist/plugins/installer/loadPluginAgents.js +17 -4
- package/dist/plugins/installer/loadPluginMcp.d.ts +14 -0
- package/dist/plugins/installer/loadPluginMcp.js +245 -35
- package/dist/plugins/installer/normalizeManifest.d.ts +13 -0
- package/dist/plugins/installer/normalizeManifest.js +306 -0
- package/dist/plugins/installer/npmTar.d.ts +13 -0
- package/dist/plugins/installer/npmTar.js +321 -0
- package/dist/plugins/installer/parseSource.d.ts +11 -0
- package/dist/plugins/installer/parseSource.js +48 -0
- package/dist/plugins/installer/preview.d.ts +101 -0
- package/dist/plugins/installer/preview.js +336 -0
- package/dist/plugins/installer/projectPluginSource.d.ts +14 -0
- package/dist/plugins/installer/projectPluginSource.js +140 -0
- package/dist/plugins/installer/types.d.ts +775 -0
- package/dist/plugins/installer/types.js +100 -0
- package/dist/plugins/installer/unzip.d.ts +11 -0
- package/dist/plugins/installer/unzip.js +123 -9
- package/dist/plugins/installer/update.d.ts +2 -2
- package/dist/plugins/installer/update.js +43 -4
- package/dist/plugins/loadPluginHooks.d.ts +19 -2
- package/dist/plugins/loadPluginHooks.js +97 -86
- package/dist/plugins/pluginAutomationTemplates.d.ts +18 -0
- package/dist/plugins/pluginAutomationTemplates.js +50 -0
- package/dist/plugins/pluginCatalog.d.ts +45 -0
- package/dist/plugins/pluginCatalog.js +87 -0
- package/dist/plugins/pluginCommandHook.d.ts +6 -0
- package/dist/plugins/pluginCommandHook.js +25 -8
- package/dist/plugins/pluginCommandsLoader.d.ts +19 -0
- package/dist/plugins/pluginCommandsLoader.js +181 -7
- package/dist/plugins/pluginContent.d.ts +10 -1
- package/dist/plugins/pluginContent.js +87 -30
- package/dist/plugins/pluginHookApproval.d.ts +30 -0
- package/dist/plugins/pluginHookApproval.js +160 -0
- package/dist/plugins/pluginHookIntegrity.d.ts +69 -0
- package/dist/plugins/pluginHookIntegrity.js +361 -0
- package/dist/plugins/pluginInstaller.js +71 -12
- package/dist/plugins/pluginMcpApproval.d.ts +19 -0
- package/dist/plugins/pluginMcpApproval.js +110 -0
- package/dist/plugins/pluginMcpIntegrity.d.ts +21 -0
- package/dist/plugins/pluginMcpIntegrity.js +74 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/varRewrite.d.ts +9 -5
- package/dist/plugins/varRewrite.js +26 -17
- package/dist/preset/index.d.ts +11 -8
- package/dist/preset/index.js +62 -203
- package/dist/product/define.js +9 -3
- package/dist/product/types.d.ts +0 -2
- package/dist/profile/activation.d.ts +36 -0
- package/dist/profile/activation.js +57 -0
- package/dist/profile/catalog-store.d.ts +77 -0
- package/dist/profile/catalog-store.js +346 -0
- package/dist/profile/catalog.d.ts +54 -0
- package/dist/profile/catalog.js +152 -0
- package/dist/profile/index.d.ts +7 -0
- package/dist/profile/index.js +7 -0
- package/dist/profile/requirements.d.ts +76 -0
- package/dist/profile/requirements.js +117 -0
- package/dist/profile/resolve.d.ts +11 -0
- package/dist/profile/resolve.js +41 -0
- package/dist/profile/store.d.ts +17 -0
- package/dist/profile/store.js +167 -0
- package/dist/profile/types.d.ts +321 -0
- package/dist/profile/types.js +104 -0
- package/dist/prompt/composer.d.ts +46 -7
- package/dist/prompt/composer.js +78 -48
- package/dist/prompt/instruction-scanner.d.ts +6 -5
- package/dist/prompt/instruction-scanner.js +8 -23
- package/dist/prompt/section-loader.d.ts +2 -2
- package/dist/prompt/section-loader.js +7 -4
- package/dist/prompt/sections/browser.md +10 -9
- package/dist/prompt/sections/harness-base.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +64 -1
- package/dist/protocol/chat-session-manager.js +104 -0
- package/dist/protocol/chat-session.d.ts +61 -10
- package/dist/protocol/chat-session.js +135 -25
- package/dist/protocol/client.d.ts +33 -3
- package/dist/protocol/client.js +96 -5
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +2 -2
- package/dist/protocol/mobile-remote-types.d.ts +406 -0
- package/dist/protocol/mobile-remote-types.js +1 -0
- package/dist/protocol/server.d.ts +127 -3
- package/dist/protocol/server.js +1309 -182
- package/dist/protocol/types.d.ts +152 -34
- package/dist/protocol/types.js +16 -0
- package/dist/run/ArtifactTracker.d.ts +6 -1
- package/dist/run/ArtifactTracker.js +29 -21
- package/dist/run/EngineRunner.d.ts +2 -0
- package/dist/run/EngineRunner.js +1 -0
- package/dist/run/RunManager.d.ts +26 -0
- package/dist/run/RunManager.js +82 -11
- package/dist/run/factory.d.ts +3 -0
- package/dist/run/factory.js +2 -0
- package/dist/runtime/safe-spawn.d.ts +6 -0
- package/dist/runtime/safe-spawn.js +8 -13
- package/dist/services/auto-dream.d.ts +13 -1
- package/dist/services/auto-dream.js +56 -8
- package/dist/services/dream-consolidation.js +10 -1
- package/dist/services/memory-orchestrator.js +6 -2
- package/dist/services/oauth.js +4 -1
- package/dist/services/session-memory.d.ts +4 -4
- package/dist/services/session-memory.js +13 -10
- package/dist/session/memory.d.ts +26 -7
- package/dist/session/memory.js +79 -21
- package/dist/session/session-manager.d.ts +182 -28
- package/dist/session/session-manager.js +910 -130
- package/dist/session/session-message.d.ts +22 -0
- package/dist/session/session-message.js +1 -0
- package/dist/session/transcript.d.ts +46 -5
- package/dist/session/transcript.js +159 -3
- package/dist/settings/feature-flags.d.ts +40 -0
- package/dist/settings/feature-flags.js +40 -0
- package/dist/settings/manager.d.ts +39 -1
- package/dist/settings/manager.js +102 -41
- package/dist/settings/migrate-config.js +4 -2
- package/dist/settings/schema.d.ts +511 -177
- package/dist/settings/schema.js +98 -25
- package/dist/skills/scanner.d.ts +6 -2
- package/dist/skills/scanner.js +160 -9
- package/dist/sources/adapter.d.ts +14 -0
- package/dist/sources/adapter.js +7 -0
- package/dist/sources/adapters/local-files.d.ts +10 -0
- package/dist/sources/adapters/local-files.js +127 -0
- package/dist/sources/adapters/mcp-resource.d.ts +17 -0
- package/dist/sources/adapters/mcp-resource.js +41 -0
- package/dist/sources/adapters/mock.d.ts +3 -0
- package/dist/sources/adapters/mock.js +29 -0
- package/dist/sources/binding.d.ts +6 -0
- package/dist/sources/binding.js +24 -0
- package/dist/sources/catalog.d.ts +6 -0
- package/dist/sources/catalog.js +64 -0
- package/dist/sources/context-summary.d.ts +8 -0
- package/dist/sources/context-summary.js +13 -0
- package/dist/sources/credential-status.d.ts +2 -0
- package/dist/sources/credential-status.js +13 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/index.js +10 -0
- package/dist/sources/resolve.d.ts +28 -0
- package/dist/sources/resolve.js +47 -0
- package/dist/sources/truncate-utf8.d.ts +7 -0
- package/dist/sources/truncate-utf8.js +18 -0
- package/dist/sources/types.d.ts +71 -0
- package/dist/sources/types.js +26 -0
- package/dist/testing/fetch-stub.d.ts +32 -0
- package/dist/testing/fetch-stub.js +24 -0
- package/dist/themes/image.d.ts +18 -0
- package/dist/themes/image.js +117 -0
- package/dist/themes/index.d.ts +4 -0
- package/dist/themes/index.js +4 -0
- package/dist/themes/installer.d.ts +50 -0
- package/dist/themes/installer.js +290 -0
- package/dist/themes/manifest.d.ts +102 -0
- package/dist/themes/manifest.js +86 -0
- package/dist/themes/paths.d.ts +14 -0
- package/dist/themes/paths.js +33 -0
- package/dist/tool-system/browser-bridge.d.ts +53 -11
- package/dist/tool-system/browser-bridge.js +8 -9
- package/dist/tool-system/builtin/agent-heartbeat.d.ts +2 -2
- package/dist/tool-system/builtin/agent-heartbeat.js +20 -6
- package/dist/tool-system/builtin/agent-notifications.d.ts +127 -72
- package/dist/tool-system/builtin/agent-notifications.js +291 -101
- package/dist/tool-system/builtin/agent-output-file.js +1 -3
- package/dist/tool-system/builtin/agent-progress.d.ts +6 -0
- package/dist/tool-system/builtin/agent-progress.js +83 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +38 -2
- package/dist/tool-system/builtin/agent-registry.js +178 -9
- package/dist/tool-system/builtin/agent-transcript-translator.js +1 -1
- package/dist/tool-system/builtin/agent.d.ts +2 -0
- package/dist/tool-system/builtin/agent.js +274 -33
- package/dist/tool-system/builtin/background-jobs.d.ts +55 -2
- package/dist/tool-system/builtin/background-jobs.js +96 -4
- package/dist/tool-system/builtin/background-work.d.ts +6 -0
- package/dist/tool-system/builtin/background-work.js +8 -1
- package/dist/tool-system/builtin/bash.js +5 -2
- package/dist/tool-system/builtin/browser-tools.d.ts +6 -3
- package/dist/tool-system/builtin/browser-tools.js +89 -23
- package/dist/tool-system/builtin/edit-model-catalog.d.ts +6 -0
- package/dist/tool-system/builtin/edit-model-catalog.js +172 -12
- package/dist/tool-system/builtin/edit.js +2 -6
- package/dist/tool-system/builtin/file-cache.d.ts +2 -0
- package/dist/tool-system/builtin/file-cache.js +4 -0
- package/dist/tool-system/builtin/generate-image.js +17 -10
- package/dist/tool-system/builtin/generate-video.js +26 -7
- package/dist/tool-system/builtin/grep.js +2 -2
- package/dist/tool-system/builtin/image-uploader.js +7 -1
- package/dist/tool-system/builtin/index.d.ts +32 -7
- package/dist/tool-system/builtin/index.js +237 -167
- package/dist/tool-system/builtin/memory.d.ts +6 -0
- package/dist/tool-system/builtin/memory.js +36 -15
- package/dist/tool-system/builtin/panel.d.ts +9 -0
- package/dist/tool-system/builtin/panel.js +314 -0
- package/dist/tool-system/builtin/read.js +5 -1
- package/dist/tool-system/builtin/send-message-to-session.d.ts +6 -0
- package/dist/tool-system/builtin/send-message-to-session.js +67 -0
- package/dist/tool-system/builtin/sources.d.ts +8 -0
- package/dist/tool-system/builtin/sources.js +137 -0
- package/dist/tool-system/builtin/tool-search.js +7 -2
- package/dist/tool-system/builtin/update-automation-memory.js +2 -0
- package/dist/tool-system/builtin/web-fetch.js +17 -13
- package/dist/tool-system/builtin/web-search.js +1 -3
- package/dist/tool-system/capability-module.d.ts +93 -0
- package/dist/tool-system/capability-module.js +53 -0
- package/dist/tool-system/context.d.ts +77 -19
- package/dist/tool-system/executor.js +75 -50
- package/dist/tool-system/external-tool-exposure.d.ts +60 -0
- package/dist/tool-system/external-tool-exposure.js +304 -0
- package/dist/tool-system/mcp-manager.d.ts +11 -1
- package/dist/tool-system/mcp-manager.js +19 -4
- package/dist/tool-system/mcp-tool-policy.d.ts +9 -0
- package/dist/tool-system/mcp-tool-policy.js +34 -0
- package/dist/tool-system/panel-bridge.d.ts +53 -0
- package/dist/tool-system/panel-bridge.js +1 -0
- package/dist/tool-system/path-policy.js +99 -2
- package/dist/tool-system/permission.d.ts +26 -0
- package/dist/tool-system/permission.js +46 -0
- package/dist/tool-system/registry.d.ts +12 -1
- package/dist/tool-system/registry.js +31 -7
- package/dist/tool-system/sandbox/index.js +3 -8
- package/dist/tool-system/sandbox/seatbelt.js +2 -6
- package/dist/tool-system/session-tool-host.d.ts +139 -0
- package/dist/tool-system/session-tool-host.js +167 -0
- package/dist/tool-system/testing/tool-registry-harness.d.ts +31 -0
- package/dist/tool-system/testing/tool-registry-harness.js +51 -0
- package/dist/tool-system/validation.d.ts +14 -7
- package/dist/tool-system/validation.js +701 -7
- package/dist/types.d.ts +186 -20
- package/dist/{cc-orchestrator → utils}/cwd-normalize.d.ts +1 -0
- package/dist/{cc-orchestrator → utils}/cwd-normalize.js +1 -0
- package/dist/utils/file-mutex.d.ts +65 -0
- package/dist/utils/file-mutex.js +145 -0
- package/dist/utils/json.d.ts +2 -4
- package/dist/utils/json.js +2 -4
- package/dist/utils/lockfile.d.ts +30 -1
- package/dist/utils/lockfile.js +2 -2
- package/dist/utils/secret-scrubber.d.ts +8 -0
- package/dist/utils/secret-scrubber.js +227 -0
- package/dist/utils/toolDisplay.js +1 -1
- package/package.json +20 -5
- package/THIRD_PARTY_NOTICES.md +0 -206
- package/dist/arena/arena.d.ts +0 -45
- package/dist/arena/arena.js +0 -362
- package/dist/arena/context/context-tools.d.ts +0 -16
- package/dist/arena/context/context-tools.js +0 -272
- package/dist/arena/context/within-root.d.ts +0 -7
- package/dist/arena/context/within-root.js +0 -15
- package/dist/arena/detect-mode.d.ts +0 -20
- package/dist/arena/detect-mode.js +0 -78
- package/dist/arena/digest-builder.d.ts +0 -25
- package/dist/arena/digest-builder.js +0 -120
- package/dist/arena/index.d.ts +0 -29
- package/dist/arena/index.js +0 -29
- package/dist/arena/iterate/convergence.d.ts +0 -25
- package/dist/arena/iterate/convergence.js +0 -103
- package/dist/arena/iterate/formats/index.d.ts +0 -22
- package/dist/arena/iterate/formats/index.js +0 -283
- package/dist/arena/iterate/index.d.ts +0 -11
- package/dist/arena/iterate/index.js +0 -9
- package/dist/arena/iterate/iterative-arena.d.ts +0 -23
- package/dist/arena/iterate/iterative-arena.js +0 -237
- package/dist/arena/iterate/parse.d.ts +0 -42
- package/dist/arena/iterate/parse.js +0 -123
- package/dist/arena/iterate/phases/argue.d.ts +0 -22
- package/dist/arena/iterate/phases/argue.js +0 -165
- package/dist/arena/iterate/phases/revise.d.ts +0 -16
- package/dist/arena/iterate/phases/revise.js +0 -62
- package/dist/arena/iterate/phases/tournament.d.ts +0 -34
- package/dist/arena/iterate/phases/tournament.js +0 -113
- package/dist/arena/iterate/tools/web-tools.d.ts +0 -13
- package/dist/arena/iterate/tools/web-tools.js +0 -54
- package/dist/arena/iterate/types.d.ts +0 -152
- package/dist/arena/iterate/types.js +0 -8
- package/dist/arena/ledger.d.ts +0 -47
- package/dist/arena/ledger.js +0 -159
- package/dist/arena/lenses/architecture.d.ts +0 -5
- package/dist/arena/lenses/architecture.js +0 -22
- package/dist/arena/lenses/engineering.d.ts +0 -5
- package/dist/arena/lenses/engineering.js +0 -22
- package/dist/arena/lenses/general.d.ts +0 -5
- package/dist/arena/lenses/general.js +0 -20
- package/dist/arena/lenses/index.d.ts +0 -16
- package/dist/arena/lenses/index.js +0 -47
- package/dist/arena/lenses/product.d.ts +0 -5
- package/dist/arena/lenses/product.js +0 -22
- package/dist/arena/model-presets.d.ts +0 -23
- package/dist/arena/model-presets.js +0 -44
- package/dist/arena/phases/adjudication.d.ts +0 -25
- package/dist/arena/phases/adjudication.js +0 -142
- package/dist/arena/phases/build-consensus.d.ts +0 -30
- package/dist/arena/phases/build-consensus.js +0 -85
- package/dist/arena/phases/claim-registry.d.ts +0 -26
- package/dist/arena/phases/claim-registry.js +0 -60
- package/dist/arena/phases/cross-review.d.ts +0 -47
- package/dist/arena/phases/cross-review.js +0 -224
- package/dist/arena/phases/debate-rounds.d.ts +0 -28
- package/dist/arena/phases/debate-rounds.js +0 -161
- package/dist/arena/phases/participant-research.d.ts +0 -39
- package/dist/arena/phases/participant-research.js +0 -316
- package/dist/arena/phases/planning-detail-expansion.d.ts +0 -39
- package/dist/arena/phases/planning-detail-expansion.js +0 -120
- package/dist/arena/planner.d.ts +0 -28
- package/dist/arena/planner.js +0 -312
- package/dist/arena/providers/docs.d.ts +0 -7
- package/dist/arena/providers/docs.js +0 -111
- package/dist/arena/providers/git.d.ts +0 -8
- package/dist/arena/providers/git.js +0 -174
- package/dist/arena/providers/index.d.ts +0 -32
- package/dist/arena/providers/index.js +0 -132
- package/dist/arena/providers/none.d.ts +0 -7
- package/dist/arena/providers/none.js +0 -11
- package/dist/arena/providers/repo.d.ts +0 -7
- package/dist/arena/providers/repo.js +0 -258
- package/dist/arena/render/session.d.ts +0 -17
- package/dist/arena/render/session.js +0 -190
- package/dist/arena/render/terminal.d.ts +0 -34
- package/dist/arena/render/terminal.js +0 -286
- package/dist/arena/strategies/discussion.d.ts +0 -25
- package/dist/arena/strategies/discussion.js +0 -143
- package/dist/arena/strategies/index.d.ts +0 -15
- package/dist/arena/strategies/index.js +0 -28
- package/dist/arena/strategies/language-wrapper.d.ts +0 -17
- package/dist/arena/strategies/language-wrapper.js +0 -102
- package/dist/arena/strategies/lens-wrapper.d.ts +0 -16
- package/dist/arena/strategies/lens-wrapper.js +0 -236
- package/dist/arena/strategies/planning.d.ts +0 -30
- package/dist/arena/strategies/planning.js +0 -225
- package/dist/arena/strategies/review.d.ts +0 -26
- package/dist/arena/strategies/review.js +0 -168
- package/dist/arena/strategies/utils.d.ts +0 -36
- package/dist/arena/strategies/utils.js +0 -603
- package/dist/arena/tools/selector.d.ts +0 -17
- package/dist/arena/tools/selector.js +0 -61
- package/dist/arena/transitions.d.ts +0 -53
- package/dist/arena/transitions.js +0 -97
- package/dist/arena/types.d.ts +0 -518
- package/dist/arena/types.js +0 -27
- package/dist/cc-orchestrator/agent-adapter.d.ts +0 -54
- package/dist/cc-orchestrator/agent-adapter.js +0 -143
- package/dist/cc-orchestrator/cc-capability.d.ts +0 -19
- package/dist/cc-orchestrator/cc-capability.js +0 -53
- package/dist/cc-orchestrator/codex-session-discovery.d.ts +0 -24
- package/dist/cc-orchestrator/codex-session-discovery.js +0 -191
- package/dist/cc-orchestrator/codex-session-history.d.ts +0 -38
- package/dist/cc-orchestrator/codex-session-history.js +0 -247
- package/dist/cc-orchestrator/external-agent-bindings.d.ts +0 -27
- package/dist/cc-orchestrator/external-agent-bindings.js +0 -150
- package/dist/cc-orchestrator/external-agent-changes.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-changes.js +0 -231
- package/dist/cc-orchestrator/external-agent-driver.d.ts +0 -19
- package/dist/cc-orchestrator/external-agent-driver.js +0 -284
- package/dist/cc-orchestrator/external-agent-session-store.d.ts +0 -23
- package/dist/cc-orchestrator/external-agent-session-store.js +0 -146
- package/dist/cc-orchestrator/index.d.ts +0 -8
- package/dist/cc-orchestrator/index.js +0 -8
- package/dist/cc-orchestrator/relevance-judge.d.ts +0 -15
- package/dist/cc-orchestrator/relevance-judge.js +0 -29
- package/dist/cc-orchestrator/session-discovery.d.ts +0 -46
- package/dist/cc-orchestrator/session-discovery.js +0 -125
- package/dist/cc-orchestrator/session-history.d.ts +0 -54
- package/dist/cc-orchestrator/session-history.js +0 -150
- package/dist/cron/cron-runtime.d.ts +0 -2
- package/dist/cron/cron-runtime.js +0 -2
- package/dist/cron/cron-store.d.ts +0 -2
- package/dist/cron/cron-store.js +0 -2
- package/dist/cron/scheduler.d.ts +0 -7
- package/dist/cron/scheduler.js +0 -7
- package/dist/engine/goal.js +0 -206
- package/dist/external-agents/config.d.ts +0 -2
- package/dist/external-agents/config.js +0 -15
- package/dist/external-agents/types.d.ts +0 -31
- package/dist/git/parse-log.d.ts +0 -13
- package/dist/git/parse-log.js +0 -21
- package/dist/git/utils.d.ts +0 -49
- package/dist/git/utils.js +0 -161
- package/dist/git/worktree/crud.d.ts +0 -72
- package/dist/git/worktree/crud.js +0 -235
- package/dist/git/worktree/diff.d.ts +0 -14
- package/dist/git/worktree/diff.js +0 -82
- package/dist/git/worktree/git-exec.d.ts +0 -7
- package/dist/git/worktree/git-exec.js +0 -87
- package/dist/git/worktree/index.d.ts +0 -5
- package/dist/git/worktree/index.js +0 -5
- package/dist/git/worktree/query.d.ts +0 -43
- package/dist/git/worktree/query.js +0 -128
- package/dist/git/worktree/slug.d.ts +0 -11
- package/dist/git/worktree/slug.js +0 -58
- package/dist/git/worktree.d.ts +0 -1
- package/dist/git/worktree.js +0 -5
- package/dist/lsp/client.d.ts +0 -41
- package/dist/lsp/client.js +0 -186
- package/dist/lsp/manager.d.ts +0 -40
- package/dist/lsp/manager.js +0 -155
- package/dist/lsp/root-path.d.ts +0 -9
- package/dist/lsp/root-path.js +0 -12
- package/dist/lsp/servers.d.ts +0 -16
- package/dist/lsp/servers.js +0 -60
- package/dist/prompt/sections/coding.md +0 -35
- package/dist/quota/credentials.d.ts +0 -3
- package/dist/quota/credentials.js +0 -80
- package/dist/quota/index.d.ts +0 -36
- package/dist/quota/index.js +0 -155
- package/dist/quota/types.d.ts +0 -48
- package/dist/quota/types.js +0 -13
- package/dist/review/review-prompt.d.ts +0 -28
- package/dist/review/review-prompt.js +0 -81
- package/dist/state.d.ts +0 -160
- package/dist/state.js +0 -267
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +0 -26
- package/dist/tool-system/builtin/apply-patch/applier.js +0 -308
- package/dist/tool-system/builtin/apply-patch/backup-targets.d.ts +0 -10
- package/dist/tool-system/builtin/apply-patch/backup-targets.js +0 -30
- package/dist/tool-system/builtin/apply-patch/index.d.ts +0 -20
- package/dist/tool-system/builtin/apply-patch/index.js +0 -105
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +0 -17
- package/dist/tool-system/builtin/apply-patch/parser.js +0 -212
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +0 -18
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +0 -123
- package/dist/tool-system/builtin/apply-patch/types.d.ts +0 -49
- package/dist/tool-system/builtin/apply-patch/types.js +0 -13
- package/dist/tool-system/builtin/arena.d.ts +0 -31
- package/dist/tool-system/builtin/arena.js +0 -416
- package/dist/tool-system/builtin/brief.d.ts +0 -6
- package/dist/tool-system/builtin/brief.js +0 -41
- package/dist/tool-system/builtin/check-quota.d.ts +0 -15
- package/dist/tool-system/builtin/check-quota.js +0 -34
- package/dist/tool-system/builtin/drive-claude-code.d.ts +0 -51
- package/dist/tool-system/builtin/drive-claude-code.js +0 -698
- package/dist/tool-system/builtin/lsp.d.ts +0 -7
- package/dist/tool-system/builtin/lsp.js +0 -144
- package/dist/tool-system/builtin/notebook-edit.d.ts +0 -7
- package/dist/tool-system/builtin/notebook-edit.js +0 -127
- package/dist/tool-system/builtin/worktree.d.ts +0 -11
- package/dist/tool-system/builtin/worktree.js +0 -363
- /package/dist/{external-agents → links}/types.js +0 -0
- /package/dist/{engine/session-usage.d.ts → session/usage.d.ts} +0 -0
- /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[];
|