@cjhyy/code-shell-core 0.5.0-rc.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.
- package/LICENSE +21 -0
- package/README.md +162 -0
- package/dist/agent/coordinator.d.ts +49 -0
- package/dist/agent/coordinator.js +77 -0
- package/dist/arena/arena.d.ts +43 -0
- package/dist/arena/arena.js +334 -0
- package/dist/arena/context/context-tools.d.ts +16 -0
- package/dist/arena/context/context-tools.js +231 -0
- package/dist/arena/detect-mode.d.ts +20 -0
- package/dist/arena/detect-mode.js +78 -0
- package/dist/arena/digest-builder.d.ts +25 -0
- package/dist/arena/digest-builder.js +120 -0
- package/dist/arena/index.d.ts +29 -0
- package/dist/arena/index.js +29 -0
- package/dist/arena/iterate/convergence.d.ts +25 -0
- package/dist/arena/iterate/convergence.js +103 -0
- package/dist/arena/iterate/formats/index.d.ts +22 -0
- package/dist/arena/iterate/formats/index.js +283 -0
- package/dist/arena/iterate/index.d.ts +11 -0
- package/dist/arena/iterate/index.js +9 -0
- package/dist/arena/iterate/iterative-arena.d.ts +23 -0
- package/dist/arena/iterate/iterative-arena.js +237 -0
- package/dist/arena/iterate/parse.d.ts +42 -0
- package/dist/arena/iterate/parse.js +123 -0
- package/dist/arena/iterate/phases/argue.d.ts +22 -0
- package/dist/arena/iterate/phases/argue.js +159 -0
- package/dist/arena/iterate/phases/revise.d.ts +16 -0
- package/dist/arena/iterate/phases/revise.js +62 -0
- package/dist/arena/iterate/phases/tournament.d.ts +34 -0
- package/dist/arena/iterate/phases/tournament.js +113 -0
- package/dist/arena/iterate/tools/web-tools.d.ts +13 -0
- package/dist/arena/iterate/tools/web-tools.js +54 -0
- package/dist/arena/iterate/types.d.ts +152 -0
- package/dist/arena/iterate/types.js +8 -0
- package/dist/arena/ledger.d.ts +47 -0
- package/dist/arena/ledger.js +151 -0
- package/dist/arena/lenses/architecture.d.ts +5 -0
- package/dist/arena/lenses/architecture.js +22 -0
- package/dist/arena/lenses/engineering.d.ts +5 -0
- package/dist/arena/lenses/engineering.js +22 -0
- package/dist/arena/lenses/general.d.ts +5 -0
- package/dist/arena/lenses/general.js +20 -0
- package/dist/arena/lenses/index.d.ts +16 -0
- package/dist/arena/lenses/index.js +47 -0
- package/dist/arena/lenses/product.d.ts +5 -0
- package/dist/arena/lenses/product.js +22 -0
- package/dist/arena/model-presets.d.ts +23 -0
- package/dist/arena/model-presets.js +44 -0
- package/dist/arena/phases/adjudication.d.ts +24 -0
- package/dist/arena/phases/adjudication.js +144 -0
- package/dist/arena/phases/build-consensus.d.ts +29 -0
- package/dist/arena/phases/build-consensus.js +86 -0
- package/dist/arena/phases/claim-registry.d.ts +26 -0
- package/dist/arena/phases/claim-registry.js +60 -0
- package/dist/arena/phases/cross-review.d.ts +45 -0
- package/dist/arena/phases/cross-review.js +224 -0
- package/dist/arena/phases/debate-rounds.d.ts +27 -0
- package/dist/arena/phases/debate-rounds.js +162 -0
- package/dist/arena/phases/participant-research.d.ts +38 -0
- package/dist/arena/phases/participant-research.js +317 -0
- package/dist/arena/phases/planning-detail-expansion.d.ts +38 -0
- package/dist/arena/phases/planning-detail-expansion.js +121 -0
- package/dist/arena/planner.d.ts +27 -0
- package/dist/arena/planner.js +312 -0
- package/dist/arena/providers/docs.d.ts +6 -0
- package/dist/arena/providers/docs.js +108 -0
- package/dist/arena/providers/git.d.ts +8 -0
- package/dist/arena/providers/git.js +174 -0
- package/dist/arena/providers/index.d.ts +32 -0
- package/dist/arena/providers/index.js +132 -0
- package/dist/arena/providers/none.d.ts +7 -0
- package/dist/arena/providers/none.js +11 -0
- package/dist/arena/providers/repo.d.ts +6 -0
- package/dist/arena/providers/repo.js +255 -0
- package/dist/arena/render/session.d.ts +17 -0
- package/dist/arena/render/session.js +190 -0
- package/dist/arena/render/terminal.d.ts +34 -0
- package/dist/arena/render/terminal.js +286 -0
- package/dist/arena/strategies/discussion.d.ts +25 -0
- package/dist/arena/strategies/discussion.js +143 -0
- package/dist/arena/strategies/index.d.ts +15 -0
- package/dist/arena/strategies/index.js +28 -0
- package/dist/arena/strategies/language-wrapper.d.ts +17 -0
- package/dist/arena/strategies/language-wrapper.js +102 -0
- package/dist/arena/strategies/lens-wrapper.d.ts +16 -0
- package/dist/arena/strategies/lens-wrapper.js +236 -0
- package/dist/arena/strategies/planning.d.ts +30 -0
- package/dist/arena/strategies/planning.js +225 -0
- package/dist/arena/strategies/review.d.ts +26 -0
- package/dist/arena/strategies/review.js +168 -0
- package/dist/arena/strategies/utils.d.ts +39 -0
- package/dist/arena/strategies/utils.js +647 -0
- package/dist/arena/tools/selector.d.ts +17 -0
- package/dist/arena/tools/selector.js +61 -0
- package/dist/arena/transitions.d.ts +48 -0
- package/dist/arena/transitions.js +92 -0
- package/dist/arena/types.d.ts +508 -0
- package/dist/arena/types.js +27 -0
- package/dist/cli/agent-server-stdio.d.ts +32 -0
- package/dist/cli/agent-server-stdio.js +116 -0
- package/dist/colorizer.d.ts +23 -0
- package/dist/colorizer.js +12 -0
- package/dist/context/compaction.d.ts +116 -0
- package/dist/context/compaction.js +534 -0
- package/dist/context/manager.d.ts +145 -0
- package/dist/context/manager.js +423 -0
- package/dist/context/token-counter.d.ts +27 -0
- package/dist/context/token-counter.js +91 -0
- package/dist/context/tool-result-storage.d.ts +96 -0
- package/dist/context/tool-result-storage.js +296 -0
- package/dist/cost-tracker.d.ts +64 -0
- package/dist/cost-tracker.js +314 -0
- package/dist/cron/scheduler.d.ts +34 -0
- package/dist/cron/scheduler.js +115 -0
- package/dist/data/deepseek-models.json +46 -0
- package/dist/data/gemini-models.json +67 -0
- package/dist/data/openai-models.json +175 -0
- package/dist/data/openrouter-models.d.ts +35 -0
- package/dist/data/openrouter-models.js +36 -0
- package/dist/data/openrouter-models.json +4626 -0
- package/dist/data/openrouter-sync.d.ts +16 -0
- package/dist/data/openrouter-sync.js +53 -0
- package/dist/data/static-catalogs.d.ts +25 -0
- package/dist/data/static-catalogs.js +26 -0
- package/dist/data/zai-models.json +56 -0
- package/dist/engine/cost-store.d.ts +22 -0
- package/dist/engine/cost-store.js +15 -0
- package/dist/engine/engine.d.ts +295 -0
- package/dist/engine/engine.js +1467 -0
- package/dist/engine/model-facade.d.ts +24 -0
- package/dist/engine/model-facade.js +194 -0
- package/dist/engine/parse-task.d.ts +59 -0
- package/dist/engine/parse-task.js +135 -0
- package/dist/engine/patch-orphaned-tools.d.ts +52 -0
- package/dist/engine/patch-orphaned-tools.js +95 -0
- package/dist/engine/query.d.ts +50 -0
- package/dist/engine/query.js +107 -0
- package/dist/engine/runtime.d.ts +50 -0
- package/dist/engine/runtime.js +59 -0
- package/dist/engine/streaming-tool-queue.d.ts +34 -0
- package/dist/engine/streaming-tool-queue.js +61 -0
- package/dist/engine/token-budget.d.ts +22 -0
- package/dist/engine/token-budget.js +40 -0
- package/dist/engine/tool-summary.d.ts +13 -0
- package/dist/engine/tool-summary.js +35 -0
- package/dist/engine/turn-loop.d.ts +122 -0
- package/dist/engine/turn-loop.js +602 -0
- package/dist/engine/turn-state.d.ts +20 -0
- package/dist/engine/turn-state.js +17 -0
- package/dist/exceptions.d.ts +61 -0
- package/dist/exceptions.js +116 -0
- package/dist/git/utils.d.ts +35 -0
- package/dist/git/utils.js +98 -0
- package/dist/git/worktree.d.ts +36 -0
- package/dist/git/worktree.js +139 -0
- package/dist/hooks/events.d.ts +114 -0
- package/dist/hooks/events.js +4 -0
- package/dist/hooks/inject.d.ts +19 -0
- package/dist/hooks/inject.js +29 -0
- package/dist/hooks/registry.d.ts +15 -0
- package/dist/hooks/registry.js +84 -0
- package/dist/hooks/shell-runner.d.ts +45 -0
- package/dist/hooks/shell-runner.js +173 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.js +145 -0
- package/dist/llm/api-key-sanitize.d.ts +22 -0
- package/dist/llm/api-key-sanitize.js +81 -0
- package/dist/llm/capabilities/index.d.ts +20 -0
- package/dist/llm/capabilities/index.js +39 -0
- package/dist/llm/capabilities/rules.d.ts +26 -0
- package/dist/llm/capabilities/rules.js +215 -0
- package/dist/llm/capabilities/types.d.ts +114 -0
- package/dist/llm/capabilities/types.js +24 -0
- package/dist/llm/client-base.d.ts +29 -0
- package/dist/llm/client-base.js +137 -0
- package/dist/llm/client-factory.d.ts +10 -0
- package/dist/llm/client-factory.js +29 -0
- package/dist/llm/model-cache.d.ts +21 -0
- package/dist/llm/model-cache.js +46 -0
- package/dist/llm/model-fetcher.d.ts +29 -0
- package/dist/llm/model-fetcher.js +282 -0
- package/dist/llm/model-pool.d.ts +95 -0
- package/dist/llm/model-pool.js +246 -0
- package/dist/llm/provider-catalog.d.ts +32 -0
- package/dist/llm/provider-catalog.js +50 -0
- package/dist/llm/provider-kinds.d.ts +21 -0
- package/dist/llm/provider-kinds.js +132 -0
- package/dist/llm/providers/anthropic.d.ts +19 -0
- package/dist/llm/providers/anthropic.js +267 -0
- package/dist/llm/providers/openai.d.ts +64 -0
- package/dist/llm/providers/openai.js +606 -0
- package/dist/llm/retry.d.ts +12 -0
- package/dist/llm/retry.js +17 -0
- package/dist/llm/stream-watchdog.d.ts +42 -0
- package/dist/llm/stream-watchdog.js +70 -0
- package/dist/llm/token-counter.d.ts +17 -0
- package/dist/llm/token-counter.js +36 -0
- package/dist/llm/types.d.ts +37 -0
- package/dist/llm/types.js +4 -0
- package/dist/logging/logger.d.ts +109 -0
- package/dist/logging/logger.js +390 -0
- package/dist/logging/sanitize-messages.d.ts +42 -0
- package/dist/logging/sanitize-messages.js +150 -0
- package/dist/logging/session-recorder.d.ts +90 -0
- package/dist/logging/session-recorder.js +304 -0
- package/dist/lsp/client.d.ts +41 -0
- package/dist/lsp/client.js +166 -0
- package/dist/lsp/manager.d.ts +40 -0
- package/dist/lsp/manager.js +124 -0
- package/dist/lsp/servers.d.ts +16 -0
- package/dist/lsp/servers.js +60 -0
- package/dist/migrate-models.d.ts +45 -0
- package/dist/migrate-models.js +179 -0
- package/dist/onboarding.d.ts +189 -0
- package/dist/onboarding.js +625 -0
- package/dist/plugins/gitOps.d.ts +32 -0
- package/dist/plugins/gitOps.js +62 -0
- package/dist/plugins/installedPlugins.d.ts +15 -0
- package/dist/plugins/installedPlugins.js +56 -0
- package/dist/plugins/knownMarketplaces.d.ts +10 -0
- package/dist/plugins/knownMarketplaces.js +46 -0
- package/dist/plugins/loadPluginHooks.d.ts +52 -0
- package/dist/plugins/loadPluginHooks.js +162 -0
- package/dist/plugins/marketplaceManager.d.ts +49 -0
- package/dist/plugins/marketplaceManager.js +142 -0
- package/dist/plugins/parseMarketplaceInput.d.ts +16 -0
- package/dist/plugins/parseMarketplaceInput.js +73 -0
- package/dist/plugins/pluginCommandHook.d.ts +54 -0
- package/dist/plugins/pluginCommandHook.js +180 -0
- package/dist/plugins/pluginCommandsLoader.d.ts +25 -0
- package/dist/plugins/pluginCommandsLoader.js +114 -0
- package/dist/plugins/pluginInstaller.d.ts +36 -0
- package/dist/plugins/pluginInstaller.js +228 -0
- package/dist/plugins/schemas.d.ts +9 -0
- package/dist/plugins/schemas.js +136 -0
- package/dist/plugins/types.d.ts +75 -0
- package/dist/plugins/types.js +7 -0
- package/dist/plugins/varRewrite.d.ts +42 -0
- package/dist/plugins/varRewrite.js +129 -0
- package/dist/preset/index.d.ts +60 -0
- package/dist/preset/index.js +159 -0
- package/dist/product/define.d.ts +60 -0
- package/dist/product/define.js +123 -0
- package/dist/product/index.d.ts +5 -0
- package/dist/product/index.js +4 -0
- package/dist/product/types.d.ts +111 -0
- package/dist/product/types.js +21 -0
- package/dist/prompt/composer.d.ts +49 -0
- package/dist/prompt/composer.js +168 -0
- package/dist/prompt/instruction-scanner.d.ts +54 -0
- package/dist/prompt/instruction-scanner.js +187 -0
- package/dist/prompt/section-cache.d.ts +15 -0
- package/dist/prompt/section-cache.js +31 -0
- package/dist/prompt/section-loader.d.ts +26 -0
- package/dist/prompt/section-loader.js +53 -0
- package/dist/prompt/sections/base.md +35 -0
- package/dist/prompt/sections/coding.md +31 -0
- package/dist/prompt/sections/orchestration.md +16 -0
- package/dist/prompt/sections/tone.md +9 -0
- package/dist/protocol/chat-session-manager.d.ts +33 -0
- package/dist/protocol/chat-session-manager.js +65 -0
- package/dist/protocol/chat-session.d.ts +49 -0
- package/dist/protocol/chat-session.js +86 -0
- package/dist/protocol/client.d.ts +104 -0
- package/dist/protocol/client.js +260 -0
- package/dist/protocol/factories.d.ts +93 -0
- package/dist/protocol/factories.js +64 -0
- package/dist/protocol/helpers.d.ts +42 -0
- package/dist/protocol/helpers.js +55 -0
- package/dist/protocol/index.d.ts +4 -0
- package/dist/protocol/index.js +4 -0
- package/dist/protocol/server.d.ts +80 -0
- package/dist/protocol/server.js +855 -0
- package/dist/protocol/transport.d.ts +37 -0
- package/dist/protocol/transport.js +85 -0
- package/dist/protocol/types.d.ts +221 -0
- package/dist/protocol/types.js +61 -0
- package/dist/remote/bridge.d.ts +37 -0
- package/dist/remote/bridge.js +103 -0
- package/dist/run/ArtifactTracker.d.ts +38 -0
- package/dist/run/ArtifactTracker.js +132 -0
- package/dist/run/CheckpointWriter.d.ts +53 -0
- package/dist/run/CheckpointWriter.js +135 -0
- package/dist/run/EngineRunner.d.ts +72 -0
- package/dist/run/EngineRunner.js +119 -0
- package/dist/run/Evaluator.d.ts +56 -0
- package/dist/run/Evaluator.js +62 -0
- package/dist/run/FileRunStore.d.ts +39 -0
- package/dist/run/FileRunStore.js +176 -0
- package/dist/run/Heartbeat.d.ts +54 -0
- package/dist/run/Heartbeat.js +123 -0
- package/dist/run/RunApprovalBackend.d.ts +53 -0
- package/dist/run/RunApprovalBackend.js +85 -0
- package/dist/run/RunLock.d.ts +40 -0
- package/dist/run/RunLock.js +98 -0
- package/dist/run/RunManager.d.ts +82 -0
- package/dist/run/RunManager.js +587 -0
- package/dist/run/RunQueue.d.ts +27 -0
- package/dist/run/RunQueue.js +73 -0
- package/dist/run/RunStore.d.ts +25 -0
- package/dist/run/RunStore.js +9 -0
- package/dist/run/factory.d.ts +63 -0
- package/dist/run/factory.js +51 -0
- package/dist/run/index.d.ts +17 -0
- package/dist/run/index.js +23 -0
- package/dist/run/types.d.ts +136 -0
- package/dist/run/types.js +28 -0
- package/dist/runtime/safe-spawn.d.ts +118 -0
- package/dist/runtime/safe-spawn.js +268 -0
- package/dist/services/analytics.d.ts +29 -0
- package/dist/services/analytics.js +84 -0
- package/dist/services/auto-dream.d.ts +49 -0
- package/dist/services/auto-dream.js +124 -0
- package/dist/services/diagnostics.d.ts +41 -0
- package/dist/services/diagnostics.js +99 -0
- package/dist/services/extract-memories.d.ts +31 -0
- package/dist/services/extract-memories.js +71 -0
- package/dist/services/index.d.ts +11 -0
- package/dist/services/index.js +17 -0
- package/dist/services/memory-orchestrator.d.ts +60 -0
- package/dist/services/memory-orchestrator.js +133 -0
- package/dist/services/notifier.d.ts +25 -0
- package/dist/services/notifier.js +69 -0
- package/dist/services/oauth.d.ts +27 -0
- package/dist/services/oauth.js +153 -0
- package/dist/services/session-memory.d.ts +37 -0
- package/dist/services/session-memory.js +81 -0
- package/dist/session/file-history.d.ts +41 -0
- package/dist/session/file-history.js +115 -0
- package/dist/session/memory.d.ts +104 -0
- package/dist/session/memory.js +310 -0
- package/dist/session/session-manager.d.ts +41 -0
- package/dist/session/session-manager.js +261 -0
- package/dist/session/transcript.d.ts +39 -0
- package/dist/session/transcript.js +186 -0
- package/dist/settings/manager.d.ts +36 -0
- package/dist/settings/manager.js +187 -0
- package/dist/settings/schema.d.ts +1219 -0
- package/dist/settings/schema.js +246 -0
- package/dist/skills/frontmatter.d.ts +13 -0
- package/dist/skills/frontmatter.js +70 -0
- package/dist/skills/index.d.ts +7 -0
- package/dist/skills/index.js +6 -0
- package/dist/skills/scanner.d.ts +31 -0
- package/dist/skills/scanner.js +171 -0
- package/dist/state.d.ts +160 -0
- package/dist/state.js +267 -0
- package/dist/tool-system/builtin/agent-notifications.d.ts +84 -0
- package/dist/tool-system/builtin/agent-notifications.js +197 -0
- package/dist/tool-system/builtin/agent-registry.d.ts +67 -0
- package/dist/tool-system/builtin/agent-registry.js +126 -0
- package/dist/tool-system/builtin/agent-transcript-translator.d.ts +22 -0
- package/dist/tool-system/builtin/agent-transcript-translator.js +160 -0
- package/dist/tool-system/builtin/agent.d.ts +16 -0
- package/dist/tool-system/builtin/agent.js +364 -0
- package/dist/tool-system/builtin/apply-patch/applier.d.ts +26 -0
- package/dist/tool-system/builtin/apply-patch/applier.js +250 -0
- package/dist/tool-system/builtin/apply-patch/index.d.ts +20 -0
- package/dist/tool-system/builtin/apply-patch/index.js +101 -0
- package/dist/tool-system/builtin/apply-patch/parser.d.ts +17 -0
- package/dist/tool-system/builtin/apply-patch/parser.js +212 -0
- package/dist/tool-system/builtin/apply-patch/seek-sequence.d.ts +18 -0
- package/dist/tool-system/builtin/apply-patch/seek-sequence.js +123 -0
- package/dist/tool-system/builtin/apply-patch/types.d.ts +49 -0
- package/dist/tool-system/builtin/apply-patch/types.js +13 -0
- package/dist/tool-system/builtin/arena.d.ts +31 -0
- package/dist/tool-system/builtin/arena.js +416 -0
- package/dist/tool-system/builtin/ask-user.d.ts +20 -0
- package/dist/tool-system/builtin/ask-user.js +99 -0
- package/dist/tool-system/builtin/bash.d.ts +21 -0
- package/dist/tool-system/builtin/bash.js +149 -0
- package/dist/tool-system/builtin/brief.d.ts +6 -0
- package/dist/tool-system/builtin/brief.js +41 -0
- package/dist/tool-system/builtin/config.d.ts +6 -0
- package/dist/tool-system/builtin/config.js +67 -0
- package/dist/tool-system/builtin/cron.d.ts +10 -0
- package/dist/tool-system/builtin/cron.js +61 -0
- package/dist/tool-system/builtin/edit.d.ts +6 -0
- package/dist/tool-system/builtin/edit.js +100 -0
- package/dist/tool-system/builtin/file-cache.d.ts +11 -0
- package/dist/tool-system/builtin/file-cache.js +39 -0
- package/dist/tool-system/builtin/glob.d.ts +7 -0
- package/dist/tool-system/builtin/glob.js +76 -0
- package/dist/tool-system/builtin/grep.d.ts +7 -0
- package/dist/tool-system/builtin/grep.js +150 -0
- package/dist/tool-system/builtin/index.d.ts +20 -0
- package/dist/tool-system/builtin/index.js +449 -0
- package/dist/tool-system/builtin/lsp.d.ts +6 -0
- package/dist/tool-system/builtin/lsp.js +141 -0
- package/dist/tool-system/builtin/mcp-tools.d.ts +10 -0
- package/dist/tool-system/builtin/mcp-tools.js +102 -0
- package/dist/tool-system/builtin/memory.d.ts +26 -0
- package/dist/tool-system/builtin/memory.js +226 -0
- package/dist/tool-system/builtin/notebook-edit.d.ts +6 -0
- package/dist/tool-system/builtin/notebook-edit.js +124 -0
- package/dist/tool-system/builtin/plan.d.ts +15 -0
- package/dist/tool-system/builtin/plan.js +55 -0
- package/dist/tool-system/builtin/powershell.d.ts +11 -0
- package/dist/tool-system/builtin/powershell.js +64 -0
- package/dist/tool-system/builtin/read.d.ts +6 -0
- package/dist/tool-system/builtin/read.js +70 -0
- package/dist/tool-system/builtin/remote-trigger.d.ts +6 -0
- package/dist/tool-system/builtin/remote-trigger.js +54 -0
- package/dist/tool-system/builtin/repl.d.ts +11 -0
- package/dist/tool-system/builtin/repl.js +82 -0
- package/dist/tool-system/builtin/send-message.d.ts +6 -0
- package/dist/tool-system/builtin/send-message.js +47 -0
- package/dist/tool-system/builtin/skill-prompt.d.ts +20 -0
- package/dist/tool-system/builtin/skill-prompt.js +52 -0
- package/dist/tool-system/builtin/skill.d.ts +9 -0
- package/dist/tool-system/builtin/skill.js +55 -0
- package/dist/tool-system/builtin/sleep.d.ts +6 -0
- package/dist/tool-system/builtin/sleep.js +33 -0
- package/dist/tool-system/builtin/task.d.ts +48 -0
- package/dist/tool-system/builtin/task.js +139 -0
- package/dist/tool-system/builtin/tool-search.d.ts +11 -0
- package/dist/tool-system/builtin/tool-search.js +90 -0
- package/dist/tool-system/builtin/web-fetch.d.ts +10 -0
- package/dist/tool-system/builtin/web-fetch.js +328 -0
- package/dist/tool-system/builtin/web-search.d.ts +25 -0
- package/dist/tool-system/builtin/web-search.js +174 -0
- package/dist/tool-system/builtin/worktree.d.ts +10 -0
- package/dist/tool-system/builtin/worktree.js +95 -0
- package/dist/tool-system/builtin/write.d.ts +6 -0
- package/dist/tool-system/builtin/write.js +36 -0
- package/dist/tool-system/context.d.ts +165 -0
- package/dist/tool-system/context.js +18 -0
- package/dist/tool-system/executor.d.ts +49 -0
- package/dist/tool-system/executor.js +495 -0
- package/dist/tool-system/investigation-guard.d.ts +46 -0
- package/dist/tool-system/investigation-guard.js +155 -0
- package/dist/tool-system/mcp-manager.d.ts +67 -0
- package/dist/tool-system/mcp-manager.js +249 -0
- package/dist/tool-system/permission.d.ts +111 -0
- package/dist/tool-system/permission.js +774 -0
- package/dist/tool-system/registry.d.ts +32 -0
- package/dist/tool-system/registry.js +131 -0
- package/dist/tool-system/sandbox/bwrap.d.ts +13 -0
- package/dist/tool-system/sandbox/bwrap.js +63 -0
- package/dist/tool-system/sandbox/index.d.ts +78 -0
- package/dist/tool-system/sandbox/index.js +222 -0
- package/dist/tool-system/sandbox/off.d.ts +2 -0
- package/dist/tool-system/sandbox/off.js +8 -0
- package/dist/tool-system/sandbox/seatbelt.d.ts +18 -0
- package/dist/tool-system/sandbox/seatbelt.js +109 -0
- package/dist/tool-system/task-guard.d.ts +29 -0
- package/dist/tool-system/task-guard.js +70 -0
- package/dist/tool-system/validation.d.ts +5 -0
- package/dist/tool-system/validation.js +39 -0
- package/dist/types.d.ts +376 -0
- package/dist/types.js +4 -0
- package/dist/updater.d.ts +65 -0
- package/dist/updater.js +405 -0
- package/dist/utils/debug.d.ts +41 -0
- package/dist/utils/debug.js +110 -0
- package/dist/utils/earlyInput.d.ts +43 -0
- package/dist/utils/earlyInput.js +166 -0
- package/dist/utils/env.d.ts +24 -0
- package/dist/utils/env.js +104 -0
- package/dist/utils/envUtils.d.ts +51 -0
- package/dist/utils/envUtils.js +135 -0
- package/dist/utils/execFileNoThrow.d.ts +39 -0
- package/dist/utils/execFileNoThrow.js +74 -0
- package/dist/utils/format.d.ts +44 -0
- package/dist/utils/format.js +236 -0
- package/dist/utils/intl.d.ts +22 -0
- package/dist/utils/intl.js +83 -0
- package/dist/utils/lockfile.d.ts +15 -0
- package/dist/utils/lockfile.js +30 -0
- package/dist/utils/memoize.d.ts +19 -0
- package/dist/utils/memoize.js +14 -0
- package/dist/utils/semver.d.ts +6 -0
- package/dist/utils/semver.js +13 -0
- package/dist/utils/sliceAnsi.d.ts +12 -0
- package/dist/utils/sliceAnsi.js +62 -0
- package/dist/utils/systemTheme.d.ts +40 -0
- package/dist/utils/systemTheme.js +108 -0
- package/dist/utils/task-sanitizer.d.ts +6 -0
- package/dist/utils/task-sanitizer.js +24 -0
- package/dist/utils/theme.d.ts +93 -0
- package/dist/utils/theme.js +544 -0
- package/dist/utils/toolDisplay.d.ts +31 -0
- package/dist/utils/toolDisplay.js +188 -0
- package/package.json +72 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const ANSI_RE = /\x1b\[[0-9;?]*[A-Za-z]/g;
|
|
2
|
+
const BOX_RE = /[─━│┃┌┐└┘├┤┬┴┼╔╗╚╝═║╠╣╦╩╬▀▄█▌▐░▒▓·]+/g;
|
|
3
|
+
export function detectPastedNoise(task) {
|
|
4
|
+
const original = task.length;
|
|
5
|
+
if (original < 10)
|
|
6
|
+
return { isNoise: false, reason: "short", cleaned: task };
|
|
7
|
+
const stripped = task
|
|
8
|
+
.replace(ANSI_RE, "")
|
|
9
|
+
.replace(BOX_RE, "")
|
|
10
|
+
.replace(/\r/g, "\n")
|
|
11
|
+
.trim();
|
|
12
|
+
if (stripped.length === 0) {
|
|
13
|
+
return { isNoise: true, reason: "all ANSI/box chars", cleaned: stripped };
|
|
14
|
+
}
|
|
15
|
+
const signalRatio = stripped.length / original;
|
|
16
|
+
if (signalRatio < 0.3 && original > 100) {
|
|
17
|
+
return {
|
|
18
|
+
isNoise: true,
|
|
19
|
+
reason: `signal/noise ratio ${(signalRatio * 100).toFixed(0)}%`,
|
|
20
|
+
cleaned: stripped,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return { isNoise: false, reason: "ok", cleaned: stripped };
|
|
24
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export type Theme = {
|
|
2
|
+
autoAccept: string;
|
|
3
|
+
bashBorder: string;
|
|
4
|
+
claude: string;
|
|
5
|
+
claudeShimmer: string;
|
|
6
|
+
claudeBlue_FOR_SYSTEM_SPINNER: string;
|
|
7
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: string;
|
|
8
|
+
permission: string;
|
|
9
|
+
permissionShimmer: string;
|
|
10
|
+
planMode: string;
|
|
11
|
+
ide: string;
|
|
12
|
+
promptBorder: string;
|
|
13
|
+
promptBorderShimmer: string;
|
|
14
|
+
text: string;
|
|
15
|
+
inverseText: string;
|
|
16
|
+
inactive: string;
|
|
17
|
+
inactiveShimmer: string;
|
|
18
|
+
subtle: string;
|
|
19
|
+
suggestion: string;
|
|
20
|
+
remember: string;
|
|
21
|
+
background: string;
|
|
22
|
+
success: string;
|
|
23
|
+
error: string;
|
|
24
|
+
warning: string;
|
|
25
|
+
merged: string;
|
|
26
|
+
warningShimmer: string;
|
|
27
|
+
diffAdded: string;
|
|
28
|
+
diffRemoved: string;
|
|
29
|
+
diffAddedDimmed: string;
|
|
30
|
+
diffRemovedDimmed: string;
|
|
31
|
+
diffAddedWord: string;
|
|
32
|
+
diffRemovedWord: string;
|
|
33
|
+
red_FOR_SUBAGENTS_ONLY: string;
|
|
34
|
+
blue_FOR_SUBAGENTS_ONLY: string;
|
|
35
|
+
green_FOR_SUBAGENTS_ONLY: string;
|
|
36
|
+
yellow_FOR_SUBAGENTS_ONLY: string;
|
|
37
|
+
purple_FOR_SUBAGENTS_ONLY: string;
|
|
38
|
+
orange_FOR_SUBAGENTS_ONLY: string;
|
|
39
|
+
pink_FOR_SUBAGENTS_ONLY: string;
|
|
40
|
+
cyan_FOR_SUBAGENTS_ONLY: string;
|
|
41
|
+
professionalBlue: string;
|
|
42
|
+
chromeYellow: string;
|
|
43
|
+
clawd_body: string;
|
|
44
|
+
clawd_background: string;
|
|
45
|
+
userMessageBackground: string;
|
|
46
|
+
userMessageBackgroundHover: string;
|
|
47
|
+
/** Message-actions selection. Cool shift toward `suggestion` blue; distinct from default AND userMessageBackground. */
|
|
48
|
+
messageActionsBackground: string;
|
|
49
|
+
/** Text-selection highlight background (alt-screen mouse selection). Solid
|
|
50
|
+
* bg that REPLACES the cell's bg while preserving its fg — matches native
|
|
51
|
+
* terminal selection. Previously SGR-7 inverse (swapped fg/bg per cell),
|
|
52
|
+
* which fragmented badly over syntax highlighting. */
|
|
53
|
+
selectionBg: string;
|
|
54
|
+
bashMessageBackgroundColor: string;
|
|
55
|
+
memoryBackgroundColor: string;
|
|
56
|
+
rate_limit_fill: string;
|
|
57
|
+
rate_limit_empty: string;
|
|
58
|
+
fastMode: string;
|
|
59
|
+
fastModeShimmer: string;
|
|
60
|
+
briefLabelYou: string;
|
|
61
|
+
briefLabelClaude: string;
|
|
62
|
+
rainbow_red: string;
|
|
63
|
+
rainbow_orange: string;
|
|
64
|
+
rainbow_yellow: string;
|
|
65
|
+
rainbow_green: string;
|
|
66
|
+
rainbow_blue: string;
|
|
67
|
+
rainbow_indigo: string;
|
|
68
|
+
rainbow_violet: string;
|
|
69
|
+
rainbow_red_shimmer: string;
|
|
70
|
+
rainbow_orange_shimmer: string;
|
|
71
|
+
rainbow_yellow_shimmer: string;
|
|
72
|
+
rainbow_green_shimmer: string;
|
|
73
|
+
rainbow_blue_shimmer: string;
|
|
74
|
+
rainbow_indigo_shimmer: string;
|
|
75
|
+
rainbow_violet_shimmer: string;
|
|
76
|
+
};
|
|
77
|
+
export declare const THEME_NAMES: readonly ["dark", "light", "light-daltonized", "dark-daltonized", "light-ansi", "dark-ansi"];
|
|
78
|
+
/** A renderable theme. Always resolvable to a concrete color palette. */
|
|
79
|
+
export type ThemeName = (typeof THEME_NAMES)[number];
|
|
80
|
+
export declare const THEME_SETTINGS: readonly ["auto", "dark", "light", "light-daltonized", "dark-daltonized", "light-ansi", "dark-ansi"];
|
|
81
|
+
/**
|
|
82
|
+
* A theme preference as stored in user config. `'auto'` follows the system
|
|
83
|
+
* dark/light mode and is resolved to a ThemeName at runtime.
|
|
84
|
+
*/
|
|
85
|
+
export type ThemeSetting = (typeof THEME_SETTINGS)[number];
|
|
86
|
+
export declare function getTheme(themeName: ThemeName): Theme;
|
|
87
|
+
/**
|
|
88
|
+
* Converts a theme color to an ANSI escape sequence for use with asciichart.
|
|
89
|
+
*
|
|
90
|
+
* Apple Terminal doesn't handle 24-bit (true-color) escape sequences well, so
|
|
91
|
+
* on that terminal we downgrade to the nearest xterm-256 color index instead.
|
|
92
|
+
*/
|
|
93
|
+
export declare function themeColorToAnsi(themeColor: string): string;
|
|
@@ -0,0 +1,544 @@
|
|
|
1
|
+
import { env } from './env.js';
|
|
2
|
+
export const THEME_NAMES = [
|
|
3
|
+
'dark',
|
|
4
|
+
'light',
|
|
5
|
+
'light-daltonized',
|
|
6
|
+
'dark-daltonized',
|
|
7
|
+
'light-ansi',
|
|
8
|
+
'dark-ansi',
|
|
9
|
+
];
|
|
10
|
+
export const THEME_SETTINGS = ['auto', ...THEME_NAMES];
|
|
11
|
+
/**
|
|
12
|
+
* Light theme using explicit RGB values to avoid inconsistencies
|
|
13
|
+
* from users' custom terminal ANSI color definitions
|
|
14
|
+
*/
|
|
15
|
+
const lightTheme = {
|
|
16
|
+
autoAccept: 'rgb(135,0,255)', // Electric violet
|
|
17
|
+
bashBorder: 'rgb(255,0,135)', // Vibrant pink
|
|
18
|
+
claude: 'rgb(215,119,87)', // Claude orange
|
|
19
|
+
claudeShimmer: 'rgb(245,149,117)', // Lighter claude orange for shimmer effect
|
|
20
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(87,105,247)', // Medium blue for system spinner
|
|
21
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(117,135,255)', // Lighter blue for system spinner shimmer
|
|
22
|
+
permission: 'rgb(87,105,247)', // Medium blue
|
|
23
|
+
permissionShimmer: 'rgb(137,155,255)', // Lighter blue for shimmer effect
|
|
24
|
+
planMode: 'rgb(0,102,102)', // Muted teal
|
|
25
|
+
ide: 'rgb(71,130,200)', // Muted blue
|
|
26
|
+
promptBorder: 'rgb(153,153,153)', // Medium gray
|
|
27
|
+
promptBorderShimmer: 'rgb(183,183,183)', // Lighter gray for shimmer effect
|
|
28
|
+
text: 'rgb(0,0,0)', // Black
|
|
29
|
+
inverseText: 'rgb(255,255,255)', // White
|
|
30
|
+
inactive: 'rgb(102,102,102)', // Dark gray
|
|
31
|
+
inactiveShimmer: 'rgb(142,142,142)', // Lighter gray for shimmer effect
|
|
32
|
+
subtle: 'rgb(175,175,175)', // Light gray
|
|
33
|
+
suggestion: 'rgb(87,105,247)', // Medium blue
|
|
34
|
+
remember: 'rgb(0,0,255)', // Blue
|
|
35
|
+
background: 'rgb(0,153,153)', // Cyan
|
|
36
|
+
success: 'rgb(44,122,57)', // Green
|
|
37
|
+
error: 'rgb(171,43,63)', // Red
|
|
38
|
+
warning: 'rgb(150,108,30)', // Amber
|
|
39
|
+
merged: 'rgb(135,0,255)', // Electric violet (matches autoAccept)
|
|
40
|
+
warningShimmer: 'rgb(200,158,80)', // Lighter amber for shimmer effect
|
|
41
|
+
diffAdded: 'rgb(105,219,124)', // Light green
|
|
42
|
+
diffRemoved: 'rgb(255,168,180)', // Light red
|
|
43
|
+
diffAddedDimmed: 'rgb(199,225,203)', // Very light green
|
|
44
|
+
diffRemovedDimmed: 'rgb(253,210,216)', // Very light red
|
|
45
|
+
diffAddedWord: 'rgb(47,157,68)', // Medium green
|
|
46
|
+
diffRemovedWord: 'rgb(209,69,75)', // Medium red
|
|
47
|
+
// Agent colors
|
|
48
|
+
red_FOR_SUBAGENTS_ONLY: 'rgb(220,38,38)', // Red 600
|
|
49
|
+
blue_FOR_SUBAGENTS_ONLY: 'rgb(37,99,235)', // Blue 600
|
|
50
|
+
green_FOR_SUBAGENTS_ONLY: 'rgb(22,163,74)', // Green 600
|
|
51
|
+
yellow_FOR_SUBAGENTS_ONLY: 'rgb(202,138,4)', // Yellow 600
|
|
52
|
+
purple_FOR_SUBAGENTS_ONLY: 'rgb(147,51,234)', // Purple 600
|
|
53
|
+
orange_FOR_SUBAGENTS_ONLY: 'rgb(234,88,12)', // Orange 600
|
|
54
|
+
pink_FOR_SUBAGENTS_ONLY: 'rgb(219,39,119)', // Pink 600
|
|
55
|
+
cyan_FOR_SUBAGENTS_ONLY: 'rgb(8,145,178)', // Cyan 600
|
|
56
|
+
// Grove colors
|
|
57
|
+
professionalBlue: 'rgb(106,155,204)',
|
|
58
|
+
// Chrome colors
|
|
59
|
+
chromeYellow: 'rgb(251,188,4)', // Chrome yellow
|
|
60
|
+
// TUI V2 colors
|
|
61
|
+
clawd_body: 'rgb(215,119,87)',
|
|
62
|
+
clawd_background: 'rgb(0,0,0)',
|
|
63
|
+
userMessageBackground: 'rgb(240, 240, 240)', // Slightly darker grey for optimal contrast
|
|
64
|
+
userMessageBackgroundHover: 'rgb(252, 252, 252)', // ≥250 to quantize distinct from base at 256-color level
|
|
65
|
+
messageActionsBackground: 'rgb(232, 236, 244)', // cool gray — darker than userMsg 240 (visible on white), slight blue toward `suggestion`
|
|
66
|
+
selectionBg: 'rgb(180, 213, 255)', // classic light-mode selection blue (macOS/VS Code-ish); dark fgs stay readable
|
|
67
|
+
bashMessageBackgroundColor: 'rgb(250, 245, 250)',
|
|
68
|
+
memoryBackgroundColor: 'rgb(230, 245, 250)',
|
|
69
|
+
rate_limit_fill: 'rgb(87,105,247)', // Medium blue
|
|
70
|
+
rate_limit_empty: 'rgb(39,47,111)', // Dark blue
|
|
71
|
+
fastMode: 'rgb(255,106,0)', // Electric orange
|
|
72
|
+
fastModeShimmer: 'rgb(255,150,50)', // Lighter orange for shimmer
|
|
73
|
+
// Brief/assistant mode
|
|
74
|
+
briefLabelYou: 'rgb(37,99,235)', // Blue
|
|
75
|
+
briefLabelClaude: 'rgb(215,119,87)', // Brand orange
|
|
76
|
+
rainbow_red: 'rgb(235,95,87)',
|
|
77
|
+
rainbow_orange: 'rgb(245,139,87)',
|
|
78
|
+
rainbow_yellow: 'rgb(250,195,95)',
|
|
79
|
+
rainbow_green: 'rgb(145,200,130)',
|
|
80
|
+
rainbow_blue: 'rgb(130,170,220)',
|
|
81
|
+
rainbow_indigo: 'rgb(155,130,200)',
|
|
82
|
+
rainbow_violet: 'rgb(200,130,180)',
|
|
83
|
+
rainbow_red_shimmer: 'rgb(250,155,147)',
|
|
84
|
+
rainbow_orange_shimmer: 'rgb(255,185,137)',
|
|
85
|
+
rainbow_yellow_shimmer: 'rgb(255,225,155)',
|
|
86
|
+
rainbow_green_shimmer: 'rgb(185,230,180)',
|
|
87
|
+
rainbow_blue_shimmer: 'rgb(180,205,240)',
|
|
88
|
+
rainbow_indigo_shimmer: 'rgb(195,180,230)',
|
|
89
|
+
rainbow_violet_shimmer: 'rgb(230,180,210)',
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Light ANSI theme using only the 16 standard ANSI colors
|
|
93
|
+
* for terminals without true color support
|
|
94
|
+
*/
|
|
95
|
+
const lightAnsiTheme = {
|
|
96
|
+
autoAccept: 'ansi:magenta',
|
|
97
|
+
bashBorder: 'ansi:magenta',
|
|
98
|
+
claude: 'ansi:redBright',
|
|
99
|
+
claudeShimmer: 'ansi:yellowBright',
|
|
100
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'ansi:blue',
|
|
101
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'ansi:blueBright',
|
|
102
|
+
permission: 'ansi:blue',
|
|
103
|
+
permissionShimmer: 'ansi:blueBright',
|
|
104
|
+
planMode: 'ansi:cyan',
|
|
105
|
+
ide: 'ansi:blueBright',
|
|
106
|
+
promptBorder: 'ansi:white',
|
|
107
|
+
promptBorderShimmer: 'ansi:whiteBright',
|
|
108
|
+
text: 'ansi:black',
|
|
109
|
+
inverseText: 'ansi:white',
|
|
110
|
+
inactive: 'ansi:blackBright',
|
|
111
|
+
inactiveShimmer: 'ansi:white',
|
|
112
|
+
subtle: 'ansi:blackBright',
|
|
113
|
+
suggestion: 'ansi:blue',
|
|
114
|
+
remember: 'ansi:blue',
|
|
115
|
+
background: 'ansi:cyan',
|
|
116
|
+
success: 'ansi:green',
|
|
117
|
+
error: 'ansi:red',
|
|
118
|
+
warning: 'ansi:yellow',
|
|
119
|
+
merged: 'ansi:magenta',
|
|
120
|
+
warningShimmer: 'ansi:yellowBright',
|
|
121
|
+
diffAdded: 'ansi:green',
|
|
122
|
+
diffRemoved: 'ansi:red',
|
|
123
|
+
diffAddedDimmed: 'ansi:green',
|
|
124
|
+
diffRemovedDimmed: 'ansi:red',
|
|
125
|
+
diffAddedWord: 'ansi:greenBright',
|
|
126
|
+
diffRemovedWord: 'ansi:redBright',
|
|
127
|
+
// Agent colors
|
|
128
|
+
red_FOR_SUBAGENTS_ONLY: 'ansi:red',
|
|
129
|
+
blue_FOR_SUBAGENTS_ONLY: 'ansi:blue',
|
|
130
|
+
green_FOR_SUBAGENTS_ONLY: 'ansi:green',
|
|
131
|
+
yellow_FOR_SUBAGENTS_ONLY: 'ansi:yellow',
|
|
132
|
+
purple_FOR_SUBAGENTS_ONLY: 'ansi:magenta',
|
|
133
|
+
orange_FOR_SUBAGENTS_ONLY: 'ansi:redBright',
|
|
134
|
+
pink_FOR_SUBAGENTS_ONLY: 'ansi:magentaBright',
|
|
135
|
+
cyan_FOR_SUBAGENTS_ONLY: 'ansi:cyan',
|
|
136
|
+
// Grove colors
|
|
137
|
+
professionalBlue: 'ansi:blueBright',
|
|
138
|
+
// Chrome colors
|
|
139
|
+
chromeYellow: 'ansi:yellow', // Chrome yellow
|
|
140
|
+
// TUI V2 colors
|
|
141
|
+
clawd_body: 'ansi:redBright',
|
|
142
|
+
clawd_background: 'ansi:black',
|
|
143
|
+
userMessageBackground: 'ansi:white',
|
|
144
|
+
userMessageBackgroundHover: 'ansi:whiteBright',
|
|
145
|
+
messageActionsBackground: 'ansi:white',
|
|
146
|
+
selectionBg: 'ansi:cyan', // lighter named bg for light-ansi; dark fgs stay readable
|
|
147
|
+
bashMessageBackgroundColor: 'ansi:whiteBright',
|
|
148
|
+
memoryBackgroundColor: 'ansi:white',
|
|
149
|
+
rate_limit_fill: 'ansi:yellow',
|
|
150
|
+
rate_limit_empty: 'ansi:black',
|
|
151
|
+
fastMode: 'ansi:red',
|
|
152
|
+
fastModeShimmer: 'ansi:redBright',
|
|
153
|
+
briefLabelYou: 'ansi:blue',
|
|
154
|
+
briefLabelClaude: 'ansi:redBright',
|
|
155
|
+
rainbow_red: 'ansi:red',
|
|
156
|
+
rainbow_orange: 'ansi:redBright',
|
|
157
|
+
rainbow_yellow: 'ansi:yellow',
|
|
158
|
+
rainbow_green: 'ansi:green',
|
|
159
|
+
rainbow_blue: 'ansi:cyan',
|
|
160
|
+
rainbow_indigo: 'ansi:blue',
|
|
161
|
+
rainbow_violet: 'ansi:magenta',
|
|
162
|
+
rainbow_red_shimmer: 'ansi:redBright',
|
|
163
|
+
rainbow_orange_shimmer: 'ansi:yellow',
|
|
164
|
+
rainbow_yellow_shimmer: 'ansi:yellowBright',
|
|
165
|
+
rainbow_green_shimmer: 'ansi:greenBright',
|
|
166
|
+
rainbow_blue_shimmer: 'ansi:cyanBright',
|
|
167
|
+
rainbow_indigo_shimmer: 'ansi:blueBright',
|
|
168
|
+
rainbow_violet_shimmer: 'ansi:magentaBright',
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Dark ANSI theme using only the 16 standard ANSI colors
|
|
172
|
+
* for terminals without true color support
|
|
173
|
+
*/
|
|
174
|
+
const darkAnsiTheme = {
|
|
175
|
+
autoAccept: 'ansi:magentaBright',
|
|
176
|
+
bashBorder: 'ansi:magentaBright',
|
|
177
|
+
claude: 'ansi:redBright',
|
|
178
|
+
claudeShimmer: 'ansi:yellowBright',
|
|
179
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'ansi:blueBright',
|
|
180
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'ansi:blueBright',
|
|
181
|
+
permission: 'ansi:blueBright',
|
|
182
|
+
permissionShimmer: 'ansi:blueBright',
|
|
183
|
+
planMode: 'ansi:cyanBright',
|
|
184
|
+
ide: 'ansi:blue',
|
|
185
|
+
promptBorder: 'ansi:white',
|
|
186
|
+
promptBorderShimmer: 'ansi:whiteBright',
|
|
187
|
+
text: 'ansi:whiteBright',
|
|
188
|
+
inverseText: 'ansi:black',
|
|
189
|
+
inactive: 'ansi:white',
|
|
190
|
+
inactiveShimmer: 'ansi:whiteBright',
|
|
191
|
+
subtle: 'ansi:white',
|
|
192
|
+
suggestion: 'ansi:blueBright',
|
|
193
|
+
remember: 'ansi:blueBright',
|
|
194
|
+
background: 'ansi:cyanBright',
|
|
195
|
+
success: 'ansi:greenBright',
|
|
196
|
+
error: 'ansi:redBright',
|
|
197
|
+
warning: 'ansi:yellowBright',
|
|
198
|
+
merged: 'ansi:magentaBright',
|
|
199
|
+
warningShimmer: 'ansi:yellowBright',
|
|
200
|
+
diffAdded: 'ansi:green',
|
|
201
|
+
diffRemoved: 'ansi:red',
|
|
202
|
+
diffAddedDimmed: 'ansi:green',
|
|
203
|
+
diffRemovedDimmed: 'ansi:red',
|
|
204
|
+
diffAddedWord: 'ansi:greenBright',
|
|
205
|
+
diffRemovedWord: 'ansi:redBright',
|
|
206
|
+
// Agent colors
|
|
207
|
+
red_FOR_SUBAGENTS_ONLY: 'ansi:redBright',
|
|
208
|
+
blue_FOR_SUBAGENTS_ONLY: 'ansi:blueBright',
|
|
209
|
+
green_FOR_SUBAGENTS_ONLY: 'ansi:greenBright',
|
|
210
|
+
yellow_FOR_SUBAGENTS_ONLY: 'ansi:yellowBright',
|
|
211
|
+
purple_FOR_SUBAGENTS_ONLY: 'ansi:magentaBright',
|
|
212
|
+
orange_FOR_SUBAGENTS_ONLY: 'ansi:redBright',
|
|
213
|
+
pink_FOR_SUBAGENTS_ONLY: 'ansi:magentaBright',
|
|
214
|
+
cyan_FOR_SUBAGENTS_ONLY: 'ansi:cyanBright',
|
|
215
|
+
// Grove colors
|
|
216
|
+
professionalBlue: 'rgb(106,155,204)',
|
|
217
|
+
// Chrome colors
|
|
218
|
+
chromeYellow: 'ansi:yellowBright', // Chrome yellow
|
|
219
|
+
// TUI V2 colors
|
|
220
|
+
clawd_body: 'ansi:redBright',
|
|
221
|
+
clawd_background: 'ansi:black',
|
|
222
|
+
userMessageBackground: 'ansi:blackBright',
|
|
223
|
+
userMessageBackgroundHover: 'ansi:white',
|
|
224
|
+
messageActionsBackground: 'ansi:blackBright',
|
|
225
|
+
selectionBg: 'ansi:blue', // darker named bg for dark-ansi; bright fgs stay readable
|
|
226
|
+
bashMessageBackgroundColor: 'ansi:black',
|
|
227
|
+
memoryBackgroundColor: 'ansi:blackBright',
|
|
228
|
+
rate_limit_fill: 'ansi:yellow',
|
|
229
|
+
rate_limit_empty: 'ansi:white',
|
|
230
|
+
fastMode: 'ansi:redBright',
|
|
231
|
+
fastModeShimmer: 'ansi:redBright',
|
|
232
|
+
briefLabelYou: 'ansi:blueBright',
|
|
233
|
+
briefLabelClaude: 'ansi:redBright',
|
|
234
|
+
rainbow_red: 'ansi:red',
|
|
235
|
+
rainbow_orange: 'ansi:redBright',
|
|
236
|
+
rainbow_yellow: 'ansi:yellow',
|
|
237
|
+
rainbow_green: 'ansi:green',
|
|
238
|
+
rainbow_blue: 'ansi:cyan',
|
|
239
|
+
rainbow_indigo: 'ansi:blue',
|
|
240
|
+
rainbow_violet: 'ansi:magenta',
|
|
241
|
+
rainbow_red_shimmer: 'ansi:redBright',
|
|
242
|
+
rainbow_orange_shimmer: 'ansi:yellow',
|
|
243
|
+
rainbow_yellow_shimmer: 'ansi:yellowBright',
|
|
244
|
+
rainbow_green_shimmer: 'ansi:greenBright',
|
|
245
|
+
rainbow_blue_shimmer: 'ansi:cyanBright',
|
|
246
|
+
rainbow_indigo_shimmer: 'ansi:blueBright',
|
|
247
|
+
rainbow_violet_shimmer: 'ansi:magentaBright',
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Light daltonized theme (color-blind friendly) using explicit RGB values
|
|
251
|
+
* to avoid inconsistencies from users' custom terminal ANSI color definitions
|
|
252
|
+
*/
|
|
253
|
+
const lightDaltonizedTheme = {
|
|
254
|
+
autoAccept: 'rgb(135,0,255)', // Electric violet
|
|
255
|
+
bashBorder: 'rgb(0,102,204)', // Blue instead of pink
|
|
256
|
+
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
|
257
|
+
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
|
258
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(51,102,255)', // Bright blue for system spinner
|
|
259
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(101,152,255)', // Lighter bright blue for system spinner shimmer
|
|
260
|
+
permission: 'rgb(51,102,255)', // Bright blue
|
|
261
|
+
permissionShimmer: 'rgb(101,152,255)', // Lighter bright blue for shimmer
|
|
262
|
+
planMode: 'rgb(51,102,102)', // Muted blue-gray (works for color-blind)
|
|
263
|
+
ide: 'rgb(71,130,200)', // Muted blue
|
|
264
|
+
promptBorder: 'rgb(153,153,153)', // Medium gray
|
|
265
|
+
promptBorderShimmer: 'rgb(183,183,183)', // Lighter gray for shimmer
|
|
266
|
+
text: 'rgb(0,0,0)', // Black
|
|
267
|
+
inverseText: 'rgb(255,255,255)', // White
|
|
268
|
+
inactive: 'rgb(102,102,102)', // Dark gray
|
|
269
|
+
inactiveShimmer: 'rgb(142,142,142)', // Lighter gray for shimmer effect
|
|
270
|
+
subtle: 'rgb(175,175,175)', // Light gray
|
|
271
|
+
suggestion: 'rgb(51,102,255)', // Bright blue
|
|
272
|
+
remember: 'rgb(51,102,255)', // Bright blue
|
|
273
|
+
background: 'rgb(0,153,153)', // Cyan (color-blind friendly)
|
|
274
|
+
success: 'rgb(0,102,153)', // Blue instead of green for deuteranopia
|
|
275
|
+
error: 'rgb(204,0,0)', // Pure red for better distinction
|
|
276
|
+
warning: 'rgb(255,153,0)', // Orange adjusted for deuteranopia
|
|
277
|
+
merged: 'rgb(135,0,255)', // Electric violet (matches autoAccept)
|
|
278
|
+
warningShimmer: 'rgb(255,183,50)', // Lighter orange for shimmer
|
|
279
|
+
diffAdded: 'rgb(153,204,255)', // Light blue instead of green
|
|
280
|
+
diffRemoved: 'rgb(255,204,204)', // Light red
|
|
281
|
+
diffAddedDimmed: 'rgb(209,231,253)', // Very light blue
|
|
282
|
+
diffRemovedDimmed: 'rgb(255,233,233)', // Very light red
|
|
283
|
+
diffAddedWord: 'rgb(51,102,204)', // Medium blue (less intense than deep blue)
|
|
284
|
+
diffRemovedWord: 'rgb(153,51,51)', // Softer red (less intense than deep red)
|
|
285
|
+
// Agent colors (daltonism-friendly)
|
|
286
|
+
red_FOR_SUBAGENTS_ONLY: 'rgb(204,0,0)', // Pure red
|
|
287
|
+
blue_FOR_SUBAGENTS_ONLY: 'rgb(0,102,204)', // Pure blue
|
|
288
|
+
green_FOR_SUBAGENTS_ONLY: 'rgb(0,204,0)', // Pure green
|
|
289
|
+
yellow_FOR_SUBAGENTS_ONLY: 'rgb(255,204,0)', // Golden yellow
|
|
290
|
+
purple_FOR_SUBAGENTS_ONLY: 'rgb(128,0,128)', // True purple
|
|
291
|
+
orange_FOR_SUBAGENTS_ONLY: 'rgb(255,128,0)', // True orange
|
|
292
|
+
pink_FOR_SUBAGENTS_ONLY: 'rgb(255,102,178)', // Adjusted pink
|
|
293
|
+
cyan_FOR_SUBAGENTS_ONLY: 'rgb(0,178,178)', // Adjusted cyan
|
|
294
|
+
// Grove colors
|
|
295
|
+
professionalBlue: 'rgb(106,155,204)',
|
|
296
|
+
// Chrome colors
|
|
297
|
+
chromeYellow: 'rgb(251,188,4)', // Chrome yellow
|
|
298
|
+
// TUI V2 colors
|
|
299
|
+
clawd_body: 'rgb(215,119,87)',
|
|
300
|
+
clawd_background: 'rgb(0,0,0)',
|
|
301
|
+
userMessageBackground: 'rgb(220, 220, 220)', // Slightly darker grey for optimal contrast
|
|
302
|
+
userMessageBackgroundHover: 'rgb(232, 232, 232)', // ≥230 to quantize distinct from base at 256-color level
|
|
303
|
+
messageActionsBackground: 'rgb(210, 216, 226)', // cool gray — darker than userMsg 220, slight blue
|
|
304
|
+
selectionBg: 'rgb(180, 213, 255)', // light selection blue; daltonized fgs are yellows/blues, both readable on light blue
|
|
305
|
+
bashMessageBackgroundColor: 'rgb(250, 245, 250)',
|
|
306
|
+
memoryBackgroundColor: 'rgb(230, 245, 250)',
|
|
307
|
+
rate_limit_fill: 'rgb(51,102,255)', // Bright blue
|
|
308
|
+
rate_limit_empty: 'rgb(23,46,114)', // Dark blue
|
|
309
|
+
fastMode: 'rgb(255,106,0)', // Electric orange (color-blind safe)
|
|
310
|
+
fastModeShimmer: 'rgb(255,150,50)', // Lighter orange for shimmer
|
|
311
|
+
briefLabelYou: 'rgb(37,99,235)', // Blue
|
|
312
|
+
briefLabelClaude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia (matches claude)
|
|
313
|
+
rainbow_red: 'rgb(235,95,87)',
|
|
314
|
+
rainbow_orange: 'rgb(245,139,87)',
|
|
315
|
+
rainbow_yellow: 'rgb(250,195,95)',
|
|
316
|
+
rainbow_green: 'rgb(145,200,130)',
|
|
317
|
+
rainbow_blue: 'rgb(130,170,220)',
|
|
318
|
+
rainbow_indigo: 'rgb(155,130,200)',
|
|
319
|
+
rainbow_violet: 'rgb(200,130,180)',
|
|
320
|
+
rainbow_red_shimmer: 'rgb(250,155,147)',
|
|
321
|
+
rainbow_orange_shimmer: 'rgb(255,185,137)',
|
|
322
|
+
rainbow_yellow_shimmer: 'rgb(255,225,155)',
|
|
323
|
+
rainbow_green_shimmer: 'rgb(185,230,180)',
|
|
324
|
+
rainbow_blue_shimmer: 'rgb(180,205,240)',
|
|
325
|
+
rainbow_indigo_shimmer: 'rgb(195,180,230)',
|
|
326
|
+
rainbow_violet_shimmer: 'rgb(230,180,210)',
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Dark theme using explicit RGB values to avoid inconsistencies
|
|
330
|
+
* from users' custom terminal ANSI color definitions
|
|
331
|
+
*/
|
|
332
|
+
const darkTheme = {
|
|
333
|
+
autoAccept: 'rgb(175,135,255)', // Electric violet
|
|
334
|
+
bashBorder: 'rgb(253,93,177)', // Bright pink
|
|
335
|
+
claude: 'rgb(215,119,87)', // Claude orange
|
|
336
|
+
claudeShimmer: 'rgb(235,159,127)', // Lighter claude orange for shimmer effect
|
|
337
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(147,165,255)', // Blue for system spinner
|
|
338
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(177,195,255)', // Lighter blue for system spinner shimmer
|
|
339
|
+
permission: 'rgb(177,185,249)', // Light blue-purple
|
|
340
|
+
permissionShimmer: 'rgb(207,215,255)', // Lighter blue-purple for shimmer
|
|
341
|
+
planMode: 'rgb(72,150,140)', // Muted sage green
|
|
342
|
+
ide: 'rgb(71,130,200)', // Muted blue
|
|
343
|
+
promptBorder: 'rgb(136,136,136)', // Medium gray
|
|
344
|
+
promptBorderShimmer: 'rgb(166,166,166)', // Lighter gray for shimmer
|
|
345
|
+
text: 'rgb(255,255,255)', // White
|
|
346
|
+
inverseText: 'rgb(0,0,0)', // Black
|
|
347
|
+
inactive: 'rgb(153,153,153)', // Light gray
|
|
348
|
+
inactiveShimmer: 'rgb(193,193,193)', // Lighter gray for shimmer effect
|
|
349
|
+
subtle: 'rgb(80,80,80)', // Dark gray
|
|
350
|
+
suggestion: 'rgb(177,185,249)', // Light blue-purple
|
|
351
|
+
remember: 'rgb(177,185,249)', // Light blue-purple
|
|
352
|
+
background: 'rgb(0,204,204)', // Bright cyan
|
|
353
|
+
success: 'rgb(78,186,101)', // Bright green
|
|
354
|
+
error: 'rgb(255,107,128)', // Bright red
|
|
355
|
+
warning: 'rgb(255,193,7)', // Bright amber
|
|
356
|
+
merged: 'rgb(175,135,255)', // Electric violet (matches autoAccept)
|
|
357
|
+
warningShimmer: 'rgb(255,223,57)', // Lighter amber for shimmer
|
|
358
|
+
diffAdded: 'rgb(34,92,43)', // Dark green
|
|
359
|
+
diffRemoved: 'rgb(122,41,54)', // Dark red
|
|
360
|
+
diffAddedDimmed: 'rgb(71,88,74)', // Very dark green
|
|
361
|
+
diffRemovedDimmed: 'rgb(105,72,77)', // Very dark red
|
|
362
|
+
diffAddedWord: 'rgb(56,166,96)', // Medium green
|
|
363
|
+
diffRemovedWord: 'rgb(179,89,107)', // Softer red (less intense than bright red)
|
|
364
|
+
// Agent colors
|
|
365
|
+
red_FOR_SUBAGENTS_ONLY: 'rgb(220,38,38)', // Red 600
|
|
366
|
+
blue_FOR_SUBAGENTS_ONLY: 'rgb(37,99,235)', // Blue 600
|
|
367
|
+
green_FOR_SUBAGENTS_ONLY: 'rgb(22,163,74)', // Green 600
|
|
368
|
+
yellow_FOR_SUBAGENTS_ONLY: 'rgb(202,138,4)', // Yellow 600
|
|
369
|
+
purple_FOR_SUBAGENTS_ONLY: 'rgb(147,51,234)', // Purple 600
|
|
370
|
+
orange_FOR_SUBAGENTS_ONLY: 'rgb(234,88,12)', // Orange 600
|
|
371
|
+
pink_FOR_SUBAGENTS_ONLY: 'rgb(219,39,119)', // Pink 600
|
|
372
|
+
cyan_FOR_SUBAGENTS_ONLY: 'rgb(8,145,178)', // Cyan 600
|
|
373
|
+
// Grove colors
|
|
374
|
+
professionalBlue: 'rgb(106,155,204)',
|
|
375
|
+
// Chrome colors
|
|
376
|
+
chromeYellow: 'rgb(251,188,4)', // Chrome yellow
|
|
377
|
+
// TUI V2 colors
|
|
378
|
+
clawd_body: 'rgb(215,119,87)',
|
|
379
|
+
clawd_background: 'rgb(0,0,0)',
|
|
380
|
+
userMessageBackground: 'rgb(55, 55, 55)', // Lighter grey for better visual contrast
|
|
381
|
+
userMessageBackgroundHover: 'rgb(70, 70, 70)',
|
|
382
|
+
messageActionsBackground: 'rgb(44, 50, 62)', // cool gray, slight blue
|
|
383
|
+
selectionBg: 'rgb(38, 79, 120)', // classic dark-mode selection blue (VS Code dark default); light fgs stay readable
|
|
384
|
+
bashMessageBackgroundColor: 'rgb(65, 60, 65)',
|
|
385
|
+
memoryBackgroundColor: 'rgb(55, 65, 70)',
|
|
386
|
+
rate_limit_fill: 'rgb(177,185,249)', // Light blue-purple
|
|
387
|
+
rate_limit_empty: 'rgb(80,83,112)', // Medium blue-purple
|
|
388
|
+
fastMode: 'rgb(255,120,20)', // Electric orange for dark bg
|
|
389
|
+
fastModeShimmer: 'rgb(255,165,70)', // Lighter orange for shimmer
|
|
390
|
+
briefLabelYou: 'rgb(122,180,232)', // Light blue
|
|
391
|
+
briefLabelClaude: 'rgb(215,119,87)', // Brand orange
|
|
392
|
+
rainbow_red: 'rgb(235,95,87)',
|
|
393
|
+
rainbow_orange: 'rgb(245,139,87)',
|
|
394
|
+
rainbow_yellow: 'rgb(250,195,95)',
|
|
395
|
+
rainbow_green: 'rgb(145,200,130)',
|
|
396
|
+
rainbow_blue: 'rgb(130,170,220)',
|
|
397
|
+
rainbow_indigo: 'rgb(155,130,200)',
|
|
398
|
+
rainbow_violet: 'rgb(200,130,180)',
|
|
399
|
+
rainbow_red_shimmer: 'rgb(250,155,147)',
|
|
400
|
+
rainbow_orange_shimmer: 'rgb(255,185,137)',
|
|
401
|
+
rainbow_yellow_shimmer: 'rgb(255,225,155)',
|
|
402
|
+
rainbow_green_shimmer: 'rgb(185,230,180)',
|
|
403
|
+
rainbow_blue_shimmer: 'rgb(180,205,240)',
|
|
404
|
+
rainbow_indigo_shimmer: 'rgb(195,180,230)',
|
|
405
|
+
rainbow_violet_shimmer: 'rgb(230,180,210)',
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Dark daltonized theme (color-blind friendly) using explicit RGB values
|
|
409
|
+
* to avoid inconsistencies from users' custom terminal ANSI color definitions
|
|
410
|
+
*/
|
|
411
|
+
const darkDaltonizedTheme = {
|
|
412
|
+
autoAccept: 'rgb(175,135,255)', // Electric violet
|
|
413
|
+
bashBorder: 'rgb(51,153,255)', // Bright blue
|
|
414
|
+
claude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia
|
|
415
|
+
claudeShimmer: 'rgb(255,183,101)', // Lighter orange for shimmer effect
|
|
416
|
+
claudeBlue_FOR_SYSTEM_SPINNER: 'rgb(153,204,255)', // Light blue for system spinner
|
|
417
|
+
claudeBlueShimmer_FOR_SYSTEM_SPINNER: 'rgb(183,224,255)', // Lighter blue for system spinner shimmer
|
|
418
|
+
permission: 'rgb(153,204,255)', // Light blue
|
|
419
|
+
permissionShimmer: 'rgb(183,224,255)', // Lighter blue for shimmer
|
|
420
|
+
planMode: 'rgb(102,153,153)', // Muted gray-teal (works for color-blind)
|
|
421
|
+
ide: 'rgb(71,130,200)', // Muted blue
|
|
422
|
+
promptBorder: 'rgb(136,136,136)', // Medium gray
|
|
423
|
+
promptBorderShimmer: 'rgb(166,166,166)', // Lighter gray for shimmer
|
|
424
|
+
text: 'rgb(255,255,255)', // White
|
|
425
|
+
inverseText: 'rgb(0,0,0)', // Black
|
|
426
|
+
inactive: 'rgb(153,153,153)', // Light gray
|
|
427
|
+
inactiveShimmer: 'rgb(193,193,193)', // Lighter gray for shimmer effect
|
|
428
|
+
subtle: 'rgb(80,80,80)', // Dark gray
|
|
429
|
+
suggestion: 'rgb(153,204,255)', // Light blue
|
|
430
|
+
remember: 'rgb(153,204,255)', // Light blue
|
|
431
|
+
background: 'rgb(0,204,204)', // Bright cyan (color-blind friendly)
|
|
432
|
+
success: 'rgb(51,153,255)', // Blue instead of green
|
|
433
|
+
error: 'rgb(255,102,102)', // Bright red
|
|
434
|
+
warning: 'rgb(255,204,0)', // Yellow-orange for deuteranopia
|
|
435
|
+
merged: 'rgb(175,135,255)', // Electric violet (matches autoAccept)
|
|
436
|
+
warningShimmer: 'rgb(255,234,50)', // Lighter yellow-orange for shimmer
|
|
437
|
+
diffAdded: 'rgb(0,68,102)', // Dark blue
|
|
438
|
+
diffRemoved: 'rgb(102,0,0)', // Dark red
|
|
439
|
+
diffAddedDimmed: 'rgb(62,81,91)', // Dimmed blue
|
|
440
|
+
diffRemovedDimmed: 'rgb(62,44,44)', // Dimmed red
|
|
441
|
+
diffAddedWord: 'rgb(0,119,179)', // Medium blue
|
|
442
|
+
diffRemovedWord: 'rgb(179,0,0)', // Medium red
|
|
443
|
+
// Agent colors (daltonism-friendly, dark mode)
|
|
444
|
+
red_FOR_SUBAGENTS_ONLY: 'rgb(255,102,102)', // Bright red
|
|
445
|
+
blue_FOR_SUBAGENTS_ONLY: 'rgb(102,178,255)', // Bright blue
|
|
446
|
+
green_FOR_SUBAGENTS_ONLY: 'rgb(102,255,102)', // Bright green
|
|
447
|
+
yellow_FOR_SUBAGENTS_ONLY: 'rgb(255,255,102)', // Bright yellow
|
|
448
|
+
purple_FOR_SUBAGENTS_ONLY: 'rgb(178,102,255)', // Bright purple
|
|
449
|
+
orange_FOR_SUBAGENTS_ONLY: 'rgb(255,178,102)', // Bright orange
|
|
450
|
+
pink_FOR_SUBAGENTS_ONLY: 'rgb(255,153,204)', // Bright pink
|
|
451
|
+
cyan_FOR_SUBAGENTS_ONLY: 'rgb(102,204,204)', // Bright cyan
|
|
452
|
+
// Grove colors
|
|
453
|
+
professionalBlue: 'rgb(106,155,204)',
|
|
454
|
+
// Chrome colors
|
|
455
|
+
chromeYellow: 'rgb(251,188,4)', // Chrome yellow
|
|
456
|
+
// TUI V2 colors
|
|
457
|
+
clawd_body: 'rgb(215,119,87)',
|
|
458
|
+
clawd_background: 'rgb(0,0,0)',
|
|
459
|
+
userMessageBackground: 'rgb(55, 55, 55)', // Lighter grey for better visual contrast
|
|
460
|
+
userMessageBackgroundHover: 'rgb(70, 70, 70)',
|
|
461
|
+
messageActionsBackground: 'rgb(44, 50, 62)', // cool gray, slight blue
|
|
462
|
+
selectionBg: 'rgb(38, 79, 120)', // classic dark-mode selection blue (VS Code dark default); light fgs stay readable
|
|
463
|
+
bashMessageBackgroundColor: 'rgb(65, 60, 65)',
|
|
464
|
+
memoryBackgroundColor: 'rgb(55, 65, 70)',
|
|
465
|
+
rate_limit_fill: 'rgb(153,204,255)', // Light blue
|
|
466
|
+
rate_limit_empty: 'rgb(69,92,115)', // Dark blue
|
|
467
|
+
fastMode: 'rgb(255,120,20)', // Electric orange for dark bg (color-blind safe)
|
|
468
|
+
fastModeShimmer: 'rgb(255,165,70)', // Lighter orange for shimmer
|
|
469
|
+
briefLabelYou: 'rgb(122,180,232)', // Light blue
|
|
470
|
+
briefLabelClaude: 'rgb(255,153,51)', // Orange adjusted for deuteranopia (matches claude)
|
|
471
|
+
rainbow_red: 'rgb(235,95,87)',
|
|
472
|
+
rainbow_orange: 'rgb(245,139,87)',
|
|
473
|
+
rainbow_yellow: 'rgb(250,195,95)',
|
|
474
|
+
rainbow_green: 'rgb(145,200,130)',
|
|
475
|
+
rainbow_blue: 'rgb(130,170,220)',
|
|
476
|
+
rainbow_indigo: 'rgb(155,130,200)',
|
|
477
|
+
rainbow_violet: 'rgb(200,130,180)',
|
|
478
|
+
rainbow_red_shimmer: 'rgb(250,155,147)',
|
|
479
|
+
rainbow_orange_shimmer: 'rgb(255,185,137)',
|
|
480
|
+
rainbow_yellow_shimmer: 'rgb(255,225,155)',
|
|
481
|
+
rainbow_green_shimmer: 'rgb(185,230,180)',
|
|
482
|
+
rainbow_blue_shimmer: 'rgb(180,205,240)',
|
|
483
|
+
rainbow_indigo_shimmer: 'rgb(195,180,230)',
|
|
484
|
+
rainbow_violet_shimmer: 'rgb(230,180,210)',
|
|
485
|
+
};
|
|
486
|
+
export function getTheme(themeName) {
|
|
487
|
+
switch (themeName) {
|
|
488
|
+
case 'light':
|
|
489
|
+
return lightTheme;
|
|
490
|
+
case 'light-ansi':
|
|
491
|
+
return lightAnsiTheme;
|
|
492
|
+
case 'dark-ansi':
|
|
493
|
+
return darkAnsiTheme;
|
|
494
|
+
case 'light-daltonized':
|
|
495
|
+
return lightDaltonizedTheme;
|
|
496
|
+
case 'dark-daltonized':
|
|
497
|
+
return darkDaltonizedTheme;
|
|
498
|
+
default:
|
|
499
|
+
return darkTheme;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Converts a theme color to an ANSI escape sequence for use with asciichart.
|
|
504
|
+
*
|
|
505
|
+
* Apple Terminal doesn't handle 24-bit (true-color) escape sequences well, so
|
|
506
|
+
* on that terminal we downgrade to the nearest xterm-256 color index instead.
|
|
507
|
+
*/
|
|
508
|
+
export function themeColorToAnsi(themeColor) {
|
|
509
|
+
const rgbMatch = themeColor.match(/rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)/);
|
|
510
|
+
if (rgbMatch) {
|
|
511
|
+
const r = parseInt(rgbMatch[1], 10);
|
|
512
|
+
const g = parseInt(rgbMatch[2], 10);
|
|
513
|
+
const b = parseInt(rgbMatch[3], 10);
|
|
514
|
+
if (env.terminal === 'Apple_Terminal') {
|
|
515
|
+
// Downgrade to xterm-256: SGR 38;5;<n>m
|
|
516
|
+
const idx = rgbToXterm256(r, g, b);
|
|
517
|
+
return `\x1b[38;5;${idx}m`;
|
|
518
|
+
}
|
|
519
|
+
// True-color: SGR 38;2;<r>;<g>;<b>m
|
|
520
|
+
return `\x1b[38;2;${r};${g};${b}m`;
|
|
521
|
+
}
|
|
522
|
+
// Fallback to magenta if parsing fails
|
|
523
|
+
return '\x1b[35m';
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Nearest xterm-256 color index for an RGB triple.
|
|
527
|
+
* Uses the 6×6×6 color cube (indices 16-231) plus the 24-step grayscale ramp
|
|
528
|
+
* (indices 232-255).
|
|
529
|
+
*/
|
|
530
|
+
function rgbToXterm256(r, g, b) {
|
|
531
|
+
// Grayscale ramp: pick it when all channels are equal-ish
|
|
532
|
+
if (Math.abs(r - g) < 8 && Math.abs(g - b) < 8) {
|
|
533
|
+
if (r < 8)
|
|
534
|
+
return 16;
|
|
535
|
+
if (r > 248)
|
|
536
|
+
return 231;
|
|
537
|
+
return Math.round((r - 8) / 247 * 24) + 232;
|
|
538
|
+
}
|
|
539
|
+
// 6×6×6 cube
|
|
540
|
+
const ri = Math.round(r / 255 * 5);
|
|
541
|
+
const gi = Math.round(g / 255 * 5);
|
|
542
|
+
const bi = Math.round(b / 255 * 5);
|
|
543
|
+
return 16 + 36 * ri + 6 * gi + bi;
|
|
544
|
+
}
|