@prometheus-ai/agent 0.5.3 → 0.5.8
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/CHANGELOG.md +39 -0
- package/dist/cli.js +25110 -0
- package/dist/types/async/index.d.ts +0 -1
- package/dist/types/async/job-manager.d.ts +33 -0
- package/dist/types/autolearn/controller.d.ts +25 -0
- package/dist/types/autolearn/managed-skills.d.ts +45 -0
- package/dist/types/autoresearch/state.d.ts +1 -1
- package/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/log-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/run-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/update-notes.d.ts +1 -1
- package/dist/types/autoresearch/types.d.ts +1 -1
- package/dist/types/capability/context-file.d.ts +0 -13
- package/dist/types/capability/mcp.d.ts +1 -0
- package/dist/types/capability/rule-buckets.d.ts +1 -1
- package/dist/types/capability/rule.d.ts +6 -1
- package/dist/types/capability/types.d.ts +0 -4
- package/dist/types/cli/args.d.ts +23 -3
- package/dist/types/cli/bench-cli.d.ts +78 -0
- package/dist/types/cli/claude-trace-cli.d.ts +7 -0
- package/dist/types/cli/dry-balance-cli.d.ts +16 -2
- package/dist/types/cli/gallery-cli.d.ts +43 -0
- package/dist/types/cli/gallery-fixtures/agentic.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/codeintel.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/edit.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/fs.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/index.d.ts +4 -0
- package/dist/types/cli/gallery-fixtures/interaction.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/memory.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/misc.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/search.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/shell.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/types.d.ts +55 -0
- package/dist/types/cli/gallery-fixtures/web.d.ts +2 -0
- package/dist/types/cli/gallery-screenshot.d.ts +35 -0
- package/dist/types/cli/gateway-cli.d.ts +4 -0
- package/dist/types/cli/grievances-cli.d.ts +1 -1
- package/dist/types/cli/list-models.d.ts +6 -14
- package/dist/types/cli/models-cli.d.ts +49 -0
- package/dist/types/cli/session-picker.d.ts +1 -1
- package/dist/types/cli/setup-cli.d.ts +1 -1
- package/dist/types/cli/setup-model-picker.d.ts +14 -0
- package/dist/types/cli/startup-cwd.d.ts +2 -0
- package/dist/types/cli/update-cli.d.ts +13 -40
- package/dist/types/cli/usage-cli.d.ts +81 -0
- package/dist/types/cli-commands.d.ts +12 -0
- package/dist/types/collab/crypto.d.ts +7 -0
- package/dist/types/collab/guest.d.ts +37 -0
- package/dist/types/collab/host.d.ts +29 -0
- package/dist/types/collab/protocol.d.ts +119 -0
- package/dist/types/collab/relay-client.d.ts +22 -0
- package/dist/types/commands/bench.d.ts +29 -0
- package/dist/types/commands/gallery.d.ts +47 -0
- package/dist/types/commands/gateway.d.ts +3 -0
- package/dist/types/commands/install.d.ts +1 -1
- package/dist/types/commands/join.d.ts +12 -0
- package/dist/types/commands/launch.d.ts +8 -4
- package/dist/types/commands/models.d.ts +33 -0
- package/dist/types/commands/read.d.ts +1 -1
- package/dist/types/commands/say.d.ts +24 -0
- package/dist/types/commands/token.d.ts +25 -0
- package/dist/types/commands/usage.d.ts +34 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-overview.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +1 -1
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
- package/dist/types/commit/agentic/tools/schemas.d.ts +1 -1
- package/dist/types/commit/agentic/tools/split-commit.d.ts +1 -1
- package/dist/types/commit/analysis/conventional.d.ts +2 -2
- package/dist/types/commit/analysis/summary.d.ts +2 -2
- package/dist/types/commit/changelog/generate.d.ts +3 -3
- package/dist/types/commit/changelog/index.d.ts +2 -2
- package/dist/types/commit/map-reduce/index.d.ts +3 -3
- package/dist/types/commit/map-reduce/map-phase.d.ts +2 -2
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +2 -2
- package/dist/types/commit/model-selection.d.ts +10 -4
- package/dist/types/commit/shared-llm.d.ts +1 -1
- package/dist/types/config/api-key-resolver.d.ts +43 -0
- package/dist/types/config/append-only-context-mode.d.ts +2 -1
- package/dist/types/config/keybindings.d.ts +12 -7
- package/dist/types/config/model-discovery.d.ts +57 -0
- package/dist/types/config/model-equivalence.d.ts +1 -1
- package/dist/types/config/model-registry.d.ts +86 -222
- package/dist/types/config/model-resolver.d.ts +43 -12
- package/dist/types/config/model-roles.d.ts +29 -0
- package/dist/types/config/models-config-schema.d.ts +536 -43
- package/dist/types/config/models-config.d.ts +391 -0
- package/dist/types/config/settings-schema.d.ts +1211 -324
- package/dist/types/config/settings.d.ts +15 -3
- package/dist/types/dap/config.d.ts +14 -1
- package/dist/types/dap/types.d.ts +10 -0
- package/dist/types/debug/log-viewer.d.ts +1 -1
- package/dist/types/debug/raw-sse.d.ts +1 -1
- package/dist/types/debug/report-bundle.d.ts +3 -0
- package/dist/types/debug/terminal-info.d.ts +0 -1
- package/dist/types/discovery/at-imports.d.ts +15 -0
- package/dist/types/discovery/prometheus-extension-roots.d.ts +7 -7
- package/dist/types/edit/diff.d.ts +3 -2
- package/dist/types/edit/file-snapshot-store.d.ts +18 -0
- package/dist/types/edit/hashline/noop-loop-guard.d.ts +72 -0
- package/dist/types/edit/hashline/params.d.ts +1 -1
- package/dist/types/edit/index.d.ts +0 -1
- package/dist/types/edit/modes/apply-patch.d.ts +1 -1
- package/dist/types/edit/modes/patch.d.ts +1 -1
- package/dist/types/edit/modes/replace.d.ts +1 -1
- package/dist/types/edit/renderer.d.ts +1 -0
- package/dist/types/eval/__tests__/completion-bridge.test.d.ts +1 -0
- package/dist/types/eval/__tests__/helpers-local-roots.test.d.ts +1 -0
- package/dist/types/eval/__tests__/js-context-manager.test.d.ts +1 -0
- package/dist/types/eval/backend.d.ts +7 -2
- package/dist/types/eval/bridge-timeout.d.ts +1 -1
- package/dist/types/eval/completion-bridge.d.ts +25 -0
- package/dist/types/eval/idle-timeout.d.ts +1 -5
- package/dist/types/eval/js/context-manager.d.ts +1 -0
- package/dist/types/eval/js/executor.d.ts +2 -0
- package/dist/types/eval/js/index.d.ts +1 -1
- package/dist/types/eval/js/shared/helpers.d.ts +7 -1
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
- package/dist/types/eval/js/shared/runtime.d.ts +6 -1
- package/dist/types/eval/js/worker-protocol.d.ts +6 -0
- package/dist/types/eval/py/__tests__/prelude.test.d.ts +1 -0
- package/dist/types/eval/py/executor.d.ts +12 -0
- package/dist/types/eval/py/index.d.ts +1 -1
- package/dist/types/eval/py/kernel.d.ts +6 -1
- package/dist/types/eval/py/runtime.d.ts +9 -0
- package/dist/types/exa/index.d.ts +1 -19
- package/dist/types/exa/mcp-client.d.ts +10 -3
- package/dist/types/exa/types.d.ts +0 -83
- package/dist/types/exec/bash-executor.d.ts +7 -0
- package/dist/types/export/custom-share.d.ts +1 -2
- package/dist/types/export/html/index.d.ts +39 -0
- package/dist/types/export/html/template-js.d.ts +2 -0
- package/dist/types/export/share.d.ts +61 -0
- package/dist/types/export/ttsr.d.ts +14 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +9 -4
- package/dist/types/extensibility/custom-tools/loader.d.ts +30 -4
- package/dist/types/extensibility/custom-tools/types.d.ts +16 -8
- package/dist/types/extensibility/extensions/index.d.ts +1 -1
- package/dist/types/extensibility/extensions/loader.d.ts +20 -1
- package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
- package/dist/types/extensibility/extensions/runner.d.ts +5 -2
- package/dist/types/extensibility/extensions/types.d.ts +72 -11
- package/dist/types/extensibility/hooks/index.d.ts +2 -1
- package/dist/types/extensibility/hooks/loader.d.ts +1 -1
- package/dist/types/extensibility/hooks/types.d.ts +11 -5
- package/dist/types/extensibility/{legacy-pi-ai-shim.d.ts → legacy-package-ai-shim.d.ts} +2 -2
- package/dist/types/extensibility/plugins/{legacy-pi-compat.d.ts → legacy-package-compat.d.ts} +20 -3
- package/dist/types/extensibility/plugins/loader.d.ts +11 -0
- package/dist/types/extensibility/plugins/marketplace-auto-update.d.ts +8 -0
- package/dist/types/extensibility/plugins/types.d.ts +2 -2
- package/dist/types/extensibility/shared-events.d.ts +3 -3
- package/dist/types/extensibility/skills.d.ts +10 -0
- package/dist/types/extensibility/slash-commands.d.ts +1 -11
- package/dist/types/gateway/adapters/telegram/access.d.ts +4 -1
- package/dist/types/gateway/adapters/telegram/setup-api.d.ts +1 -1
- package/dist/types/gateway/adapters/telegram/webhook.d.ts +1 -1
- package/dist/types/gateway/types.d.ts +1 -1
- package/dist/types/goals/guided-setup.d.ts +18 -0
- package/dist/types/goals/state.d.ts +1 -1
- package/dist/types/goals/tools/goal-tool.d.ts +1 -1
- package/dist/types/hindsight/mental-models.d.ts +17 -8
- package/dist/types/hindsight/transcript.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
- package/dist/types/internal-urls/history-protocol.d.ts +14 -0
- package/dist/types/internal-urls/index.d.ts +1 -0
- package/dist/types/internal-urls/local-protocol.d.ts +14 -2
- package/dist/types/internal-urls/types.d.ts +1 -1
- package/dist/types/irc/bus.d.ts +79 -0
- package/dist/types/lib/xai-http.d.ts +1 -1
- package/dist/types/lsp/client.d.ts +10 -0
- package/dist/types/lsp/config.d.ts +2 -2
- package/dist/types/lsp/edits.d.ts +9 -0
- package/dist/types/lsp/format-options.d.ts +32 -0
- package/dist/types/lsp/index.d.ts +2 -7
- package/dist/types/lsp/types.d.ts +13 -1
- package/dist/types/lsp/utils.d.ts +6 -2
- package/dist/types/main.d.ts +23 -8
- package/dist/types/mcp/json-rpc.d.ts +5 -0
- package/dist/types/mcp/manager.d.ts +8 -0
- package/dist/types/mcp/oauth-discovery.d.ts +6 -1
- package/dist/types/mcp/oauth-flow.d.ts +13 -3
- package/dist/types/mcp/startup-events.d.ts +11 -0
- package/dist/types/mcp/tool-bridge.d.ts +2 -0
- package/dist/types/mcp/transports/stdio.d.ts +13 -0
- package/dist/types/mcp/types.d.ts +2 -0
- package/dist/types/memories/index.d.ts +7 -15
- package/dist/types/memories/storage.d.ts +0 -10
- package/dist/types/memory-backend/index.d.ts +3 -1
- package/dist/types/memory-backend/local-backend.d.ts +4 -3
- package/dist/types/memory-backend/resolve.d.ts +2 -2
- package/dist/types/memory-backend/runtime.d.ts +4 -0
- package/dist/types/memory-backend/types.d.ts +67 -2
- package/dist/types/mnemopi/config.d.ts +31 -1
- package/dist/types/mnemopi/state.d.ts +40 -2
- package/dist/types/modes/acp/acp-agent.d.ts +1 -2
- package/dist/types/modes/components/agent-dashboard.d.ts +17 -1
- package/dist/types/modes/components/agent-hub.d.ts +82 -0
- package/dist/types/modes/components/assistant-message.d.ts +5 -12
- package/dist/types/modes/components/bash-execution.d.ts +1 -1
- package/dist/types/modes/components/chat-block.d.ts +64 -0
- package/dist/types/modes/components/collab-prompt-message.d.ts +10 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +25 -5
- package/dist/types/modes/components/copy-selector.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +49 -2
- package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
- package/dist/types/modes/components/dynamic-border.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
- package/dist/types/modes/components/footer.d.ts +1 -1
- package/dist/types/modes/components/hook-editor.d.ts +5 -0
- package/dist/types/modes/components/hook-input.d.ts +4 -0
- package/dist/types/modes/components/hook-selector.d.ts +5 -7
- package/dist/types/modes/components/index.d.ts +1 -0
- package/dist/types/modes/components/late-diagnostics-message.d.ts +20 -0
- package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
- package/dist/types/modes/components/mcp-add-wizard.d.ts +2 -1
- package/dist/types/modes/components/model-selector.d.ts +1 -1
- package/dist/types/modes/components/oauth-selector.d.ts +10 -1
- package/dist/types/modes/components/overlay-box.d.ts +17 -0
- package/dist/types/modes/components/plan-review-overlay.d.ts +61 -0
- package/dist/types/modes/components/plan-toc.d.ts +41 -0
- package/dist/types/modes/components/read-tool-group.d.ts +8 -0
- package/dist/types/modes/components/reset-usage-selector.d.ts +12 -0
- package/dist/types/modes/components/segment-track.d.ts +11 -6
- package/dist/types/modes/components/session-selector.d.ts +18 -9
- package/dist/types/modes/components/settings-defs.d.ts +9 -2
- package/dist/types/modes/components/settings-selector.d.ts +17 -4
- package/dist/types/modes/components/snapcompact-shape-preview.d.ts +31 -0
- package/dist/types/modes/components/status-line/component.d.ts +61 -0
- package/dist/types/modes/components/status-line/index.d.ts +1 -0
- package/dist/types/modes/components/status-line/types.d.ts +47 -3
- package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
- package/dist/types/modes/components/tool-execution.d.ts +49 -2
- package/dist/types/modes/components/transcript-container.d.ts +76 -26
- package/dist/types/modes/components/tree-selector.d.ts +2 -2
- package/dist/types/modes/components/ttsr-notification.d.ts +5 -1
- package/dist/types/modes/components/usage-row.d.ts +3 -0
- package/dist/types/modes/components/user-message-selector.d.ts +1 -1
- package/dist/types/modes/components/user-message.d.ts +2 -1
- package/dist/types/modes/components/visual-truncate.d.ts +1 -1
- package/dist/types/modes/components/welcome.d.ts +12 -2
- package/dist/types/modes/controllers/command-controller.d.ts +3 -2
- package/dist/types/modes/controllers/event-controller.d.ts +7 -1
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -1
- package/dist/types/modes/controllers/input-controller.d.ts +25 -3
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +8 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +5 -2
- package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
- package/dist/types/modes/controllers/streaming-reveal.d.ts +22 -0
- package/dist/types/modes/controllers/tan-command-controller.d.ts +6 -0
- package/dist/types/modes/controllers/tool-args-reveal.d.ts +43 -0
- package/dist/types/modes/gradient-highlight.d.ts +9 -4
- package/dist/types/modes/image-references.d.ts +14 -3
- package/dist/types/modes/index.d.ts +8 -7
- package/dist/types/modes/interactive-mode.d.ts +92 -16
- package/dist/types/modes/magic-keywords.d.ts +14 -2
- package/dist/types/modes/markdown-prose.d.ts +1 -1
- package/dist/types/modes/oauth-manual-input.d.ts +7 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +48 -2
- package/dist/types/modes/rpc/rpc-mode.d.ts +67 -2
- package/dist/types/modes/rpc/rpc-subagents.d.ts +24 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +113 -1
- package/dist/types/modes/runtime-init.d.ts +4 -0
- package/dist/types/modes/session-observer-registry.d.ts +9 -0
- package/dist/types/modes/setup-version.d.ts +11 -0
- package/dist/types/modes/setup-wizard/index.d.ts +7 -2
- package/dist/types/modes/setup-wizard/lazy.d.ts +2 -0
- package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +4 -1
- package/dist/types/modes/setup-wizard/scenes/types.d.ts +11 -2
- package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +6 -2
- package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
- package/dist/types/modes/theme/theme.d.ts +42 -7
- package/dist/types/modes/types.d.ts +62 -13
- package/dist/types/modes/utils/context-usage.d.ts +6 -1
- package/dist/types/modes/utils/copy-targets.d.ts +21 -1
- package/dist/types/modes/utils/ui-helpers.d.ts +4 -4
- package/dist/types/modes/workflow.d.ts +3 -3
- package/dist/types/plan-mode/approved-plan.d.ts +27 -8
- package/dist/types/plan-mode/plan-protection.d.ts +4 -4
- package/dist/types/registry/agent-lifecycle.d.ts +51 -0
- package/dist/types/registry/agent-registry.d.ts +33 -5
- package/dist/types/sdk.d.ts +46 -4
- package/dist/types/secrets/index.d.ts +1 -1
- package/dist/types/secrets/obfuscator.d.ts +9 -3
- package/dist/types/session/agent-session.d.ts +136 -66
- package/dist/types/session/agent-storage.d.ts +2 -1
- package/dist/types/session/auth-broker-config.d.ts +4 -0
- package/dist/types/session/auth-storage.d.ts +1 -1
- package/dist/types/session/codex-auto-reset.d.ts +111 -0
- package/dist/types/session/indexed-session-storage.d.ts +3 -3
- package/dist/types/session/messages.d.ts +26 -15
- package/dist/types/session/session-context.d.ts +39 -0
- package/dist/types/session/session-entries.d.ts +159 -0
- package/dist/types/session/session-history-format.d.ts +12 -0
- package/dist/types/session/session-listing.d.ts +69 -0
- package/dist/types/session/session-loader.d.ts +16 -0
- package/dist/types/session/session-manager.d.ts +107 -440
- package/dist/types/session/session-migrations.d.ts +12 -0
- package/dist/types/session/session-paths.d.ts +25 -0
- package/dist/types/session/session-persistence.d.ts +8 -0
- package/dist/types/session/session-storage.d.ts +11 -7
- package/dist/types/session/snapcompact-inline.d.ts +145 -0
- package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
- package/dist/types/session/streaming-output.d.ts +46 -0
- package/dist/types/session/tool-choice-queue.d.ts +6 -6
- package/dist/types/session/yield-queue.d.ts +10 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +16 -0
- package/dist/types/slash-commands/available-commands.d.ts +34 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +10 -0
- package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +14 -0
- package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
- package/dist/types/slash-commands/helpers/reset-usage.d.ts +27 -0
- package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
- package/dist/types/slash-commands/types.d.ts +5 -9
- package/dist/types/ssh/connection-manager.d.ts +8 -0
- package/dist/types/stt/asr-client.d.ts +90 -0
- package/dist/types/stt/asr-protocol.d.ts +97 -0
- package/dist/types/stt/asr-worker.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +38 -0
- package/dist/types/stt/endpointer.d.ts +59 -0
- package/dist/types/stt/index.d.ts +5 -1
- package/dist/types/stt/models.d.ts +120 -0
- package/dist/types/stt/recorder.d.ts +17 -0
- package/dist/types/stt/stt-controller.d.ts +6 -0
- package/dist/types/stt/transcriber.d.ts +5 -7
- package/dist/types/stt/wav.d.ts +29 -0
- package/dist/types/system-prompt.d.ts +9 -1
- package/dist/types/task/commands.d.ts +1 -1
- package/dist/types/task/discovery.d.ts +1 -2
- package/dist/types/task/executor.d.ts +61 -2
- package/dist/types/task/index.d.ts +37 -6
- package/dist/types/task/output-manager.d.ts +0 -7
- package/dist/types/task/parallel.d.ts +2 -2
- package/dist/types/task/prometheus-command.d.ts +2 -2
- package/dist/types/task/render.d.ts +20 -7
- package/dist/types/task/repair-args.d.ts +8 -7
- package/dist/types/task/types.d.ts +109 -52
- package/dist/types/task/worktree.d.ts +2 -0
- package/dist/types/telemetry-export.d.ts +2 -2
- package/dist/types/thinking.d.ts +4 -0
- package/dist/types/tiny/models.d.ts +1 -1
- package/dist/types/tiny/title-client.d.ts +12 -1
- package/dist/types/tiny/title-protocol.d.ts +1 -0
- package/dist/types/tools/archive-reader.d.ts +5 -0
- package/dist/types/tools/ask.d.ts +6 -1
- package/dist/types/tools/ast-edit.d.ts +4 -1
- package/dist/types/tools/ast-grep.d.ts +4 -1
- package/dist/types/tools/bash.d.ts +5 -2
- package/dist/types/tools/browser/attach.d.ts +4 -4
- package/dist/types/tools/browser/cmux/cmux-tab.d.ts +202 -0
- package/dist/types/tools/browser/cmux/rpc.d.ts +70 -0
- package/dist/types/tools/browser/cmux/socket-client.d.ts +19 -0
- package/dist/types/tools/browser/registry.d.ts +17 -3
- package/dist/types/tools/browser/render.d.ts +2 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +2 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +16 -4
- package/dist/types/tools/browser/tab-worker.d.ts +18 -1
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/checkpoint.d.ts +1 -1
- package/dist/types/tools/conflict-detect.d.ts +16 -0
- package/dist/types/tools/debug.d.ts +1 -1
- package/dist/types/tools/eval-render.d.ts +1 -8
- package/dist/types/tools/eval.d.ts +9 -1
- package/dist/types/tools/fetch.d.ts +17 -8
- package/dist/types/tools/find.d.ts +1 -8
- package/dist/types/tools/gh-cache-invalidation.d.ts +6 -0
- package/dist/types/tools/gh.d.ts +4 -1
- package/dist/types/tools/github-cache.d.ts +19 -0
- package/dist/types/tools/grouped-file-output.d.ts +46 -12
- package/dist/types/tools/image-gen.d.ts +1 -1
- package/dist/types/tools/index.d.ts +89 -8
- package/dist/types/tools/inspect-image.d.ts +1 -1
- package/dist/types/tools/irc.d.ts +79 -39
- package/dist/types/tools/job.d.ts +8 -2
- package/dist/types/tools/learn.d.ts +51 -0
- package/dist/types/tools/manage-skill.d.ts +40 -0
- package/dist/types/tools/memory-edit.d.ts +2 -2
- package/dist/types/tools/memory-recall.d.ts +1 -1
- package/dist/types/tools/memory-reflect.d.ts +1 -1
- package/dist/types/tools/memory-render.d.ts +4 -1
- package/dist/types/tools/memory-retain.d.ts +1 -1
- package/dist/types/tools/path-utils.d.ts +17 -5
- package/dist/types/tools/plan-mode-guard.d.ts +18 -9
- package/dist/types/tools/read.d.ts +3 -2
- package/dist/types/tools/render-mermaid.d.ts +1 -1
- package/dist/types/tools/render-utils.d.ts +47 -27
- package/dist/types/tools/renderers.d.ts +10 -2
- package/dist/types/tools/report-tool-issue.d.ts +6 -1
- package/dist/types/tools/resolve.d.ts +1 -1
- package/dist/types/tools/review.d.ts +1 -1
- package/dist/types/tools/search-tool-bm25.d.ts +1 -1
- package/dist/types/tools/search.d.ts +7 -3
- package/dist/types/tools/sqlite-reader.d.ts +4 -0
- package/dist/types/tools/ssh.d.ts +2 -1
- package/dist/types/tools/todo.d.ts +7 -15
- package/dist/types/tools/tool-result.d.ts +2 -0
- package/dist/types/tools/tool-timeouts.d.ts +1 -1
- package/dist/types/tools/tts.d.ts +26 -1
- package/dist/types/tools/write.d.ts +6 -3
- package/dist/types/tools/yield.d.ts +8 -0
- package/dist/types/tts/downloader.d.ts +20 -0
- package/dist/types/tts/index.d.ts +8 -0
- package/dist/types/tts/models.d.ts +82 -0
- package/dist/types/tts/player.d.ts +32 -0
- package/dist/types/tts/runtime.d.ts +6 -0
- package/dist/types/tts/streaming-player.d.ts +41 -0
- package/dist/types/tts/tts-client.d.ts +93 -0
- package/dist/types/tts/tts-protocol.d.ts +95 -0
- package/dist/types/tts/tts-worker.d.ts +2 -0
- package/dist/types/tts/vocalizer.d.ts +41 -0
- package/dist/types/tts/wav.d.ts +8 -0
- package/dist/types/tui/code-cell.d.ts +0 -2
- package/dist/types/tui/hyperlink.d.ts +13 -7
- package/dist/types/tui/output-block.d.ts +16 -22
- package/dist/types/tui/status-line.d.ts +3 -0
- package/dist/types/utils/block-context.d.ts +35 -0
- package/dist/types/utils/changelog.d.ts +8 -0
- package/dist/types/utils/clipboard.d.ts +4 -3
- package/dist/types/utils/enhanced-paste.d.ts +20 -0
- package/dist/types/utils/file-mentions.d.ts +7 -0
- package/dist/types/utils/git.d.ts +22 -3
- package/dist/types/utils/image-loading.d.ts +30 -1
- package/dist/types/utils/session-color.d.ts +15 -3
- package/dist/types/utils/thinking-display.d.ts +17 -0
- package/dist/types/utils/title-generator.d.ts +3 -2
- package/dist/types/utils/tool-choice.d.ts +8 -0
- package/dist/types/utils/tools-manager.d.ts +2 -1
- package/dist/types/web/kagi.d.ts +2 -2
- package/dist/types/web/parallel.d.ts +3 -0
- package/dist/types/web/scrapers/github.d.ts +22 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
- package/dist/types/web/scrapers/types.d.ts +12 -0
- package/dist/types/web/search/index.d.ts +1 -1
- package/dist/types/web/search/providers/anthropic.d.ts +2 -1
- package/dist/types/web/search/providers/base.d.ts +2 -1
- package/dist/types/web/search/providers/brave.d.ts +2 -1
- package/dist/types/web/search/providers/codex.d.ts +2 -1
- package/dist/types/web/search/providers/exa.d.ts +2 -1
- package/dist/types/web/search/providers/gemini.d.ts +10 -6
- package/dist/types/web/search/providers/jina.d.ts +7 -2
- package/dist/types/web/search/providers/kagi.d.ts +7 -2
- package/dist/types/web/search/providers/kimi.d.ts +7 -2
- package/dist/types/web/search/providers/parallel.d.ts +2 -1
- package/dist/types/web/search/providers/perplexity.d.ts +10 -2
- package/dist/types/web/search/providers/searxng.d.ts +2 -1
- package/dist/types/web/search/providers/synthetic.d.ts +7 -3
- package/dist/types/web/search/providers/tavily.d.ts +2 -1
- package/dist/types/web/search/providers/zai.d.ts +2 -1
- package/dist/types/web/search/types.d.ts +1 -1
- package/examples/extensions/api-demo.ts +2 -2
- package/package.json +41 -15
- package/scripts/bench-guard.ts +71 -0
- package/scripts/build-binary.ts +24 -25
- package/scripts/bundle-dist.ts +97 -0
- package/scripts/generate-share-viewer.ts +34 -0
- package/scripts/prometheus +42 -0
- package/scripts/prometheus.ts +20 -0
- package/src/async/index.ts +0 -1
- package/src/async/job-manager.ts +106 -3
- package/src/auto-thinking/classifier.ts +2 -1
- package/src/autolearn/controller.ts +139 -0
- package/src/autolearn/managed-skills.ts +257 -0
- package/src/autoresearch/dashboard.ts +1 -1
- package/src/autoresearch/prompt-setup.md +6 -6
- package/src/autoresearch/prompt.md +6 -6
- package/src/autoresearch/state.ts +1 -1
- package/src/autoresearch/storage.ts +2 -1
- package/src/autoresearch/tools/init-experiment.ts +1 -1
- package/src/autoresearch/tools/log-experiment.ts +1 -1
- package/src/autoresearch/tools/run-experiment.ts +1 -1
- package/src/autoresearch/tools/update-notes.ts +1 -1
- package/src/autoresearch/types.ts +1 -1
- package/src/capability/context-file.ts +0 -14
- package/src/capability/fs.ts +10 -0
- package/src/capability/index.ts +1 -6
- package/src/capability/mcp.ts +1 -0
- package/src/capability/rule-buckets.ts +4 -2
- package/src/capability/rule.ts +10 -1
- package/src/capability/types.ts +0 -4
- package/src/cli/args.ts +66 -13
- package/src/cli/auth-broker-cli.ts +6 -7
- package/src/cli/auth-gateway-cli.ts +8 -9
- package/src/cli/bench-cli.ts +437 -0
- package/src/cli/claude-trace-cli.ts +28 -50
- package/src/cli/completion-gen.ts +28 -28
- package/src/cli/dry-balance-cli.ts +56 -23
- package/src/cli/gallery-cli.ts +231 -0
- package/src/cli/gallery-fixtures/agentic.ts +407 -0
- package/src/cli/gallery-fixtures/codeintel.ts +187 -0
- package/src/cli/gallery-fixtures/edit.ts +194 -0
- package/src/cli/gallery-fixtures/fs.ts +220 -0
- package/src/cli/gallery-fixtures/index.ts +40 -0
- package/src/cli/gallery-fixtures/interaction.ts +49 -0
- package/src/cli/gallery-fixtures/memory.ts +81 -0
- package/src/cli/gallery-fixtures/misc.ts +250 -0
- package/src/cli/gallery-fixtures/search.ts +213 -0
- package/src/cli/gallery-fixtures/shell.ts +167 -0
- package/src/cli/gallery-fixtures/types.ts +57 -0
- package/src/cli/gallery-fixtures/web.ts +158 -0
- package/src/cli/gallery-screenshot.ts +279 -0
- package/src/cli/gateway-cli.ts +32 -2
- package/src/cli/grievances-cli.ts +1 -1
- package/src/cli/list-models.ts +16 -174
- package/src/cli/models-cli.ts +429 -0
- package/src/cli/session-picker.ts +2 -1
- package/src/cli/setup-cli.ts +148 -47
- package/src/cli/setup-model-picker.ts +43 -0
- package/src/cli/startup-cwd.ts +68 -0
- package/src/cli/update-cli.ts +144 -272
- package/src/cli/usage-cli.ts +774 -0
- package/src/cli-commands.ts +36 -0
- package/src/cli.ts +141 -32
- package/src/collab/crypto.ts +63 -0
- package/src/collab/guest.ts +451 -0
- package/src/collab/host.ts +565 -0
- package/src/collab/protocol.ts +241 -0
- package/src/collab/relay-client.ts +216 -0
- package/src/commands/bench.ts +42 -0
- package/src/commands/complete.ts +1 -1
- package/src/commands/gallery.ts +52 -0
- package/src/commands/gateway.ts +4 -0
- package/src/commands/install.ts +1 -1
- package/src/commands/join.ts +39 -0
- package/src/commands/launch.ts +8 -4
- package/src/commands/models.ts +61 -0
- package/src/commands/read.ts +6 -3
- package/src/commands/say.ts +102 -0
- package/src/commands/setup.ts +1 -1
- package/src/commands/token.ts +89 -0
- package/src/commands/usage.ts +43 -0
- package/src/commit/agentic/agent.ts +2 -1
- package/src/commit/agentic/tools/analyze-file.ts +42 -20
- package/src/commit/agentic/tools/git-file-diff.ts +1 -1
- package/src/commit/agentic/tools/git-hunk.ts +1 -1
- package/src/commit/agentic/tools/git-overview.ts +1 -1
- package/src/commit/agentic/tools/propose-changelog.ts +1 -1
- package/src/commit/agentic/tools/propose-commit.ts +1 -1
- package/src/commit/agentic/tools/recent-commits.ts +1 -1
- package/src/commit/agentic/tools/schemas.ts +1 -1
- package/src/commit/agentic/tools/split-commit.ts +9 -2
- package/src/commit/analysis/conventional.ts +2 -2
- package/src/commit/analysis/summary.ts +3 -3
- package/src/commit/changelog/generate.ts +3 -3
- package/src/commit/changelog/index.ts +2 -2
- package/src/commit/map-reduce/index.ts +3 -3
- package/src/commit/map-reduce/map-phase.ts +2 -2
- package/src/commit/map-reduce/reduce-phase.ts +2 -2
- package/src/commit/model-selection.ts +35 -12
- package/src/commit/pipeline.ts +4 -4
- package/src/commit/shared-llm.ts +1 -1
- package/src/config/api-key-resolver.ts +67 -0
- package/src/config/append-only-context-mode.ts +6 -12
- package/src/config/keybindings.ts +9 -4
- package/src/config/mcp-schema.json +4 -0
- package/src/config/model-discovery.ts +574 -0
- package/src/config/model-equivalence.ts +5 -4
- package/src/config/model-registry.ts +659 -1093
- package/src/config/model-resolver.ts +374 -174
- package/src/config/model-roles.ts +88 -0
- package/src/config/models-config-schema.ts +61 -9
- package/src/config/models-config.ts +130 -0
- package/src/config/settings-schema.ts +1445 -382
- package/src/config/settings.ts +261 -69
- package/src/dap/client.ts +138 -53
- package/src/dap/config.ts +41 -2
- package/src/dap/defaults.json +1 -0
- package/src/dap/session.ts +263 -161
- package/src/dap/types.ts +10 -0
- package/src/debug/index.ts +50 -60
- package/src/debug/log-viewer.ts +1 -1
- package/src/debug/protocol-probe.ts +1 -1
- package/src/debug/raw-sse-buffer.ts +7 -4
- package/src/debug/raw-sse.ts +1 -1
- package/src/debug/report-bundle.ts +9 -0
- package/src/debug/terminal-info.ts +0 -3
- package/src/discovery/agents-md.ts +25 -21
- package/src/discovery/agents.ts +9 -15
- package/src/discovery/at-imports.ts +273 -0
- package/src/discovery/builtin-rules/index.ts +4 -0
- package/src/discovery/builtin-rules/ts-no-test-timers.md +55 -0
- package/src/discovery/builtin-rules/ts-redundant-clear-guard.md +75 -0
- package/src/discovery/builtin.ts +45 -23
- package/src/discovery/claude-plugins.ts +44 -5
- package/src/discovery/helpers.ts +50 -9
- package/src/discovery/prometheus-extension-roots.ts +10 -10
- package/src/discovery/prometheus-plugins.ts +10 -10
- package/src/edit/diff.ts +191 -4
- package/src/edit/file-snapshot-store.ts +34 -1
- package/src/edit/hashline/block-resolver.ts +20 -1
- package/src/edit/hashline/diff.ts +123 -2
- package/src/edit/hashline/execute.ts +60 -4
- package/src/edit/hashline/filesystem.ts +2 -1
- package/src/edit/hashline/noop-loop-guard.ts +99 -0
- package/src/edit/hashline/params.ts +1 -1
- package/src/edit/index.ts +47 -18
- package/src/edit/modes/apply-patch.ts +1 -1
- package/src/edit/modes/patch.ts +59 -3
- package/src/edit/modes/replace.ts +58 -24
- package/src/edit/notebook.ts +22 -2
- package/src/edit/renderer.ts +315 -151
- package/src/eval/__tests__/agent-bridge.test.ts +105 -39
- package/src/eval/__tests__/budget-bridge.test.ts +1 -1
- package/src/eval/__tests__/completion-bridge.test.ts +412 -0
- package/src/eval/__tests__/helpers-local-roots.test.ts +58 -0
- package/src/eval/__tests__/js-context-manager.test.ts +241 -0
- package/src/eval/__tests__/llm-bridge.test.ts +6 -4
- package/src/eval/__tests__/shared-executors.test.ts +34 -92
- package/src/eval/agent-bridge.ts +39 -23
- package/src/eval/backend.ts +15 -2
- package/src/eval/bridge-timeout.ts +1 -1
- package/src/eval/completion-bridge.ts +203 -0
- package/src/eval/idle-timeout.ts +3 -10
- package/src/eval/js/context-manager.ts +108 -31
- package/src/eval/js/executor.ts +9 -2
- package/src/eval/js/index.ts +7 -3
- package/src/eval/js/shared/helpers.ts +59 -13
- package/src/eval/js/shared/local-module-loader.ts +2 -2
- package/src/eval/js/shared/prelude.txt +167 -30
- package/src/eval/js/shared/rewrite-imports.ts +58 -34
- package/src/eval/js/shared/runtime.ts +24 -16
- package/src/eval/js/tool-bridge.ts +4 -0
- package/src/eval/js/worker-core.ts +1 -0
- package/src/eval/js/worker-entry.ts +6 -0
- package/src/eval/js/worker-protocol.ts +6 -0
- package/src/eval/llm-bridge.ts +2 -1
- package/src/eval/py/__tests__/prelude.test.ts +19 -0
- package/src/eval/py/executor.ts +70 -26
- package/src/eval/py/index.ts +13 -4
- package/src/eval/py/kernel.ts +48 -9
- package/src/eval/py/prelude.py +73 -24
- package/src/eval/py/runner.py +133 -28
- package/src/eval/py/runtime.ts +38 -1
- package/src/exa/index.ts +1 -26
- package/src/exa/mcp-client.ts +10 -10
- package/src/exa/types.ts +0 -97
- package/src/exec/bash-executor.ts +104 -7
- package/src/export/custom-share.ts +1 -1
- package/src/export/html/index.ts +119 -17
- package/src/export/html/share-loader.js +102 -0
- package/src/export/html/template-js.ts +6 -0
- package/src/export/html/template.css +745 -459
- package/src/export/html/template.css.d.ts +2 -0
- package/src/export/html/template.html +6 -3
- package/src/export/html/template.js +277 -891
- package/src/export/html/tool-views.generated.d.ts +2 -0
- package/src/export/html/tool-views.generated.js +38 -0
- package/src/export/share.ts +269 -0
- package/src/export/ttsr.ts +122 -1
- package/src/extensibility/custom-commands/loader.ts +7 -4
- package/src/extensibility/custom-commands/types.ts +9 -4
- package/src/extensibility/custom-tools/loader.ts +51 -23
- package/src/extensibility/custom-tools/types.ts +16 -8
- package/src/extensibility/extensions/get-commands-handler.ts +2 -1
- package/src/extensibility/extensions/index.ts +1 -0
- package/src/extensibility/extensions/loader.ts +70 -20
- package/src/extensibility/extensions/model-api.ts +41 -0
- package/src/extensibility/extensions/runner.ts +12 -2
- package/src/extensibility/extensions/types.ts +83 -11
- package/src/extensibility/extensions/wrapper.ts +41 -5
- package/src/extensibility/hooks/index.ts +2 -1
- package/src/extensibility/hooks/loader.ts +6 -3
- package/src/extensibility/hooks/types.ts +11 -5
- package/src/extensibility/{legacy-pi-ai-shim.ts → legacy-package-ai-shim.ts} +2 -2
- package/src/extensibility/plugins/doctor.ts +1 -2
- package/src/extensibility/plugins/installer.ts +2 -2
- package/src/extensibility/plugins/{legacy-pi-compat.ts → legacy-package-compat.ts} +165 -77
- package/src/extensibility/plugins/loader.ts +34 -23
- package/src/extensibility/plugins/manager.ts +226 -95
- package/src/extensibility/plugins/marketplace-auto-update.ts +49 -0
- package/src/extensibility/plugins/types.ts +3 -3
- package/src/extensibility/shared-events.ts +3 -3
- package/src/extensibility/skills.ts +113 -9
- package/src/extensibility/slash-commands.ts +1 -97
- package/src/gateway/adapters/telegram/access.ts +39 -4
- package/src/gateway/adapters/telegram/normalize.ts +16 -1
- package/src/gateway/adapters/telegram/setup-api.ts +7 -1
- package/src/gateway/adapters/telegram/webhook.ts +26 -5
- package/src/gateway/context.ts +9 -1
- package/src/gateway/types.ts +1 -1
- package/src/goals/guided-setup.ts +133 -0
- package/src/goals/state.ts +1 -1
- package/src/goals/tools/goal-tool.ts +38 -28
- package/src/hindsight/bank.ts +17 -2
- package/src/hindsight/client.ts +27 -2
- package/src/hindsight/mental-models.ts +59 -12
- package/src/hindsight/state.ts +12 -3
- package/src/hindsight/transcript.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal-urls/artifact-protocol.ts +11 -2
- package/src/internal-urls/docs-index.generated.ts +11 -9
- package/src/internal-urls/history-protocol.ts +113 -0
- package/src/internal-urls/index.ts +1 -0
- package/src/internal-urls/issue-pr-protocol.ts +22 -9
- package/src/internal-urls/local-protocol.ts +42 -7
- package/src/internal-urls/memory-protocol.ts +4 -31
- package/src/internal-urls/router.ts +3 -1
- package/src/internal-urls/types.ts +1 -1
- package/src/irc/bus.ts +303 -0
- package/src/lib/xai-http.ts +3 -3
- package/src/lsp/client.ts +245 -104
- package/src/lsp/clients/biome-client.ts +101 -39
- package/src/lsp/clients/lsp-linter-client.ts +2 -10
- package/src/lsp/config.ts +15 -5
- package/src/lsp/defaults.json +6 -0
- package/src/lsp/edits.ts +143 -95
- package/src/lsp/format-options.ts +119 -0
- package/src/lsp/index.ts +233 -93
- package/src/lsp/render.ts +11 -35
- package/src/lsp/types.ts +13 -1
- package/src/lsp/utils.ts +31 -12
- package/src/main.ts +396 -216
- package/src/mcp/config-writer.ts +7 -3
- package/src/mcp/json-rpc.ts +35 -5
- package/src/mcp/manager.ts +31 -16
- package/src/mcp/oauth-discovery.ts +34 -4
- package/src/mcp/oauth-flow.ts +61 -8
- package/src/mcp/render.ts +7 -1
- package/src/mcp/startup-events.ts +21 -0
- package/src/mcp/tool-bridge.ts +2 -0
- package/src/mcp/transports/stdio.ts +224 -4
- package/src/mcp/types.ts +2 -0
- package/src/memories/index.ts +174 -1128
- package/src/memories/storage.ts +2 -41
- package/src/memory-backend/index.ts +14 -1
- package/src/memory-backend/local-backend.ts +18 -3
- package/src/memory-backend/off-backend.ts +9 -0
- package/src/memory-backend/resolve.ts +4 -6
- package/src/memory-backend/runtime.ts +66 -0
- package/src/memory-backend/types.ts +82 -2
- package/src/mnemopi/backend.ts +220 -28
- package/src/mnemopi/config.ts +138 -33
- package/src/mnemopi/state.ts +91 -11
- package/src/modes/acp/acp-agent.ts +149 -142
- package/src/modes/acp/acp-event-mapper.ts +5 -1
- package/src/modes/components/agent-dashboard.ts +17 -11
- package/src/modes/components/agent-hub.ts +1346 -0
- package/src/modes/components/assistant-message.ts +190 -80
- package/src/modes/components/bash-execution.ts +1 -1
- package/src/modes/components/btw-panel.ts +5 -1
- package/src/modes/components/chat-block.ts +111 -0
- package/src/modes/components/collab-prompt-message.ts +30 -0
- package/src/modes/components/compaction-summary-message.ts +168 -33
- package/src/modes/components/copy-selector.ts +2 -45
- package/src/modes/components/custom-editor.test.ts +96 -0
- package/src/modes/components/custom-editor.ts +405 -118
- package/src/modes/components/custom-message.ts +1 -3
- package/src/modes/components/diff.ts +13 -2
- package/src/modes/components/dynamic-border.ts +12 -3
- package/src/modes/components/execution-shared.ts +1 -2
- package/src/modes/components/extensions/extension-dashboard.ts +8 -5
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +7 -3
- package/src/modes/components/extensions/state-manager.ts +36 -41
- package/src/modes/components/footer.ts +4 -2
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +8 -0
- package/src/modes/components/hook-input.ts +8 -0
- package/src/modes/components/hook-message.ts +1 -3
- package/src/modes/components/hook-selector.ts +6 -7
- package/src/modes/components/index.ts +1 -0
- package/src/modes/components/late-diagnostics-message.ts +60 -0
- package/src/modes/components/login-dialog.ts +1 -1
- package/src/modes/components/logout-account-selector.ts +130 -0
- package/src/modes/components/mcp-add-wizard.ts +14 -1
- package/src/modes/components/model-selector.ts +177 -75
- package/src/modes/components/oauth-selector.ts +102 -16
- package/src/modes/components/overlay-box.ts +108 -0
- package/src/modes/components/plan-review-overlay.ts +845 -0
- package/src/modes/components/plan-toc.ts +138 -0
- package/src/modes/components/plugin-settings.ts +22 -5
- package/src/modes/components/read-tool-group.ts +442 -39
- package/src/modes/components/reset-usage-selector.ts +161 -0
- package/src/modes/components/segment-track.ts +44 -7
- package/src/modes/components/session-selector.ts +97 -37
- package/src/modes/components/settings-defs.ts +28 -6
- package/src/modes/components/settings-selector.ts +541 -93
- package/src/modes/components/skill-message.ts +0 -1
- package/src/modes/components/snapcompact-shape-preview-doc.md +11 -0
- package/src/modes/components/snapcompact-shape-preview.ts +193 -0
- package/src/modes/components/{status-line.ts → status-line/component.ts} +205 -168
- package/src/modes/components/status-line/index.ts +1 -0
- package/src/modes/components/status-line/presets.ts +3 -3
- package/src/modes/components/status-line/segments.ts +26 -7
- package/src/modes/components/status-line/types.ts +40 -9
- package/src/modes/components/tiny-title-download-progress.ts +1 -1
- package/src/modes/components/tips.txt +7 -3
- package/src/modes/components/todo-reminder.ts +0 -2
- package/src/modes/components/tool-execution.ts +236 -103
- package/src/modes/components/transcript-container.ts +724 -99
- package/src/modes/components/tree-selector.ts +19 -4
- package/src/modes/components/ttsr-notification.ts +72 -30
- package/src/modes/components/usage-row.ts +18 -0
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +28 -12
- package/src/modes/components/visual-truncate.ts +1 -1
- package/src/modes/components/welcome.ts +80 -22
- package/src/modes/controllers/command-controller-shared.ts +7 -6
- package/src/modes/controllers/command-controller.ts +210 -180
- package/src/modes/controllers/event-controller.ts +352 -142
- package/src/modes/controllers/extension-ui-controller.ts +167 -208
- package/src/modes/controllers/input-controller.ts +778 -162
- package/src/modes/controllers/mcp-command-controller.ts +232 -80
- package/src/modes/controllers/selector-controller.ts +284 -145
- package/src/modes/controllers/session-focus-controller.ts +112 -0
- package/src/modes/controllers/ssh-command-controller.ts +2 -2
- package/src/modes/controllers/streaming-reveal.ts +295 -0
- package/src/modes/controllers/tan-command-controller.ts +173 -0
- package/src/modes/controllers/tool-args-reveal.ts +174 -0
- package/src/modes/gradient-highlight.ts +21 -9
- package/src/modes/image-references.ts +33 -7
- package/src/modes/index.ts +8 -25
- package/src/modes/interactive-mode.ts +840 -186
- package/src/modes/magic-keywords.ts +28 -6
- package/src/modes/markdown-prose.ts +1 -1
- package/src/modes/oauth-manual-input.ts +30 -3
- package/src/modes/rpc/rpc-client.ts +186 -3
- package/src/modes/rpc/rpc-mode.ts +318 -24
- package/src/modes/rpc/rpc-subagents.ts +265 -0
- package/src/modes/rpc/rpc-types.ts +111 -2
- package/src/modes/runtime-init.ts +28 -3
- package/src/modes/session-observer-registry.ts +72 -3
- package/src/modes/setup-version.ts +11 -0
- package/src/modes/setup-wizard/index.ts +16 -4
- package/src/modes/setup-wizard/lazy.ts +16 -0
- package/src/modes/setup-wizard/scenes/glyph.ts +25 -7
- package/src/modes/setup-wizard/scenes/providers.ts +45 -12
- package/src/modes/setup-wizard/scenes/sign-in.ts +14 -13
- package/src/modes/setup-wizard/scenes/splash.ts +1 -1
- package/src/modes/setup-wizard/scenes/telegram.ts +77 -22
- package/src/modes/setup-wizard/scenes/theme.ts +29 -2
- package/src/modes/setup-wizard/scenes/types.ts +11 -2
- package/src/modes/setup-wizard/scenes/web-search.ts +26 -9
- package/src/modes/setup-wizard/wizard-overlay.ts +40 -3
- package/src/modes/shared.ts +2 -0
- package/src/modes/theme/defaults/dark-poimandres.json +1 -1
- package/src/modes/theme/defaults/light-poimandres.json +1 -1
- package/src/modes/theme/shimmer.ts +20 -9
- package/src/modes/theme/theme-schema.json +1 -1
- package/src/modes/theme/theme.ts +342 -82
- package/src/modes/types.ts +60 -18
- package/src/modes/utils/context-usage.ts +88 -8
- package/src/modes/utils/copy-targets.ts +133 -27
- package/src/modes/utils/hotkeys-markdown.ts +3 -2
- package/src/modes/utils/ui-helpers.ts +191 -110
- package/src/modes/workflow.ts +10 -10
- package/src/plan-mode/approved-plan.ts +66 -43
- package/src/plan-mode/plan-protection.ts +4 -4
- package/src/priority.json +5 -1
- package/src/prompts/agents/designer.md +1 -1
- package/src/prompts/agents/explore.md +3 -3
- package/src/prompts/agents/librarian.md +2 -3
- package/src/prompts/agents/oracle.md +2 -2
- package/src/prompts/agents/plan.md +6 -6
- package/src/prompts/agents/reviewer.md +1 -1
- package/src/prompts/agents/task.md +6 -5
- package/src/prompts/bench.md +12 -0
- package/src/prompts/ci-green-request.md +5 -7
- package/src/prompts/goals/goal-budget-limit.md +2 -2
- package/src/prompts/goals/goal-continuation.md +4 -4
- package/src/prompts/goals/goal-mode-active.md +1 -1
- package/src/prompts/goals/guided-goal-interview.md +8 -0
- package/src/prompts/goals/guided-goal-system.md +12 -0
- package/src/prompts/memories/consolidation.md +2 -7
- package/src/prompts/memories/consolidation_system.md +4 -0
- package/src/prompts/memories/identity_review.md +2 -2
- package/src/prompts/memories/read-path.md +11 -10
- package/src/prompts/memories/stage_one_system.md +2 -2
- package/src/prompts/review-custom-request.md +1 -1
- package/src/prompts/system/agent-creation-architect.md +2 -2
- package/src/prompts/system/auto-continue.md +1 -1
- package/src/prompts/system/autolearn-guidance-learn.md +1 -0
- package/src/prompts/system/autolearn-guidance.md +7 -0
- package/src/prompts/system/autolearn-nudge.md +3 -0
- package/src/prompts/system/background-tan-dispatch.md +8 -0
- package/src/prompts/system/btw-user.md +2 -2
- package/src/prompts/system/commit-message-system.md +13 -1
- package/src/prompts/system/custom-system-prompt.md +1 -1
- package/src/prompts/system/eager-task.md +7 -0
- package/src/prompts/system/eager-todo.md +11 -6
- package/src/prompts/system/empty-stop-retry.md +4 -6
- package/src/prompts/system/irc-autoreply.md +6 -0
- package/src/prompts/system/irc-incoming.md +3 -4
- package/src/prompts/system/manual-continue.md +7 -0
- package/src/prompts/system/omfg-user.md +3 -4
- package/src/prompts/system/orchestrate-notice.md +10 -10
- package/src/prompts/system/personalities/default.md +26 -0
- package/src/prompts/system/personalities/friendly.md +17 -0
- package/src/prompts/system/personalities/pragmatic.md +15 -0
- package/src/prompts/system/plan-mode-active.md +70 -77
- package/src/prompts/system/plan-mode-approved.md +1 -1
- package/src/prompts/system/plan-mode-subagent.md +4 -5
- package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
- package/src/prompts/system/project-prompt.md +2 -2
- package/src/prompts/system/snapcompact-context-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-context-stub.md +1 -0
- package/src/prompts/system/snapcompact-system-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-system-stub.md +1 -0
- package/src/prompts/system/snapcompact-toolresult-note.md +1 -0
- package/src/prompts/system/subagent-system-prompt.md +7 -8
- package/src/prompts/system/system-prompt.md +28 -57
- package/src/prompts/system/tiny-title-system.md +1 -1
- package/src/prompts/system/title-marker-instruction.md +1 -0
- package/src/prompts/system/title-system-marker.md +16 -0
- package/src/prompts/system/title-system.md +16 -3
- package/src/prompts/system/ttsr-tool-reminder.md +1 -1
- package/src/prompts/system/workflow-notice.md +4 -4
- package/src/prompts/tools/ast-edit.md +1 -1
- package/src/prompts/tools/ast-grep.md +2 -2
- package/src/prompts/tools/bash.md +16 -8
- package/src/prompts/tools/browser.md +33 -43
- package/src/prompts/tools/debug.md +1 -1
- package/src/prompts/tools/eval.md +31 -51
- package/src/prompts/tools/find.md +0 -1
- package/src/prompts/tools/github.md +8 -7
- package/src/prompts/tools/goal.md +1 -1
- package/src/prompts/tools/image-gen.md +1 -1
- package/src/prompts/tools/inspect-image-system.md +1 -1
- package/src/prompts/tools/irc.md +39 -31
- package/src/prompts/tools/job.md +2 -1
- package/src/prompts/tools/learn.md +7 -0
- package/src/prompts/tools/lsp-late-diagnostic.md +8 -0
- package/src/prompts/tools/lsp.md +2 -2
- package/src/prompts/tools/manage-skill.md +9 -0
- package/src/prompts/tools/memory-edit.md +1 -1
- package/src/prompts/tools/patch.md +2 -2
- package/src/prompts/tools/read.md +31 -39
- package/src/prompts/tools/recall.md +1 -1
- package/src/prompts/tools/reflect.md +1 -1
- package/src/prompts/tools/render-mermaid.md +2 -2
- package/src/prompts/tools/replace.md +4 -10
- package/src/prompts/tools/rewind.md +2 -2
- package/src/prompts/tools/search-tool-bm25.md +1 -9
- package/src/prompts/tools/search.md +0 -1
- package/src/prompts/tools/ssh.md +0 -4
- package/src/prompts/tools/task-summary.md +5 -16
- package/src/prompts/tools/task.md +47 -31
- package/src/prompts/tools/todo.md +6 -3
- package/src/registry/agent-lifecycle.ts +218 -0
- package/src/registry/agent-registry.ts +46 -5
- package/src/sdk.ts +692 -219
- package/src/secrets/index.ts +8 -1
- package/src/secrets/obfuscator.ts +40 -19
- package/src/session/agent-session.ts +1577 -806
- package/src/session/agent-storage.ts +18 -9
- package/src/session/auth-broker-config.ts +30 -1
- package/src/session/auth-storage.ts +6 -0
- package/src/session/codex-auto-reset.ts +202 -0
- package/src/session/history-storage.ts +3 -2
- package/src/session/indexed-session-storage.ts +7 -10
- package/src/session/messages.ts +59 -95
- package/src/session/session-context.ts +352 -0
- package/src/session/session-dump-format.ts +12 -3
- package/src/session/session-entries.ts +194 -0
- package/src/session/session-history-format.ts +246 -0
- package/src/session/session-listing.ts +588 -0
- package/src/session/session-loader.ts +106 -0
- package/src/session/session-manager.ts +1003 -2920
- package/src/session/session-migrations.ts +78 -0
- package/src/session/session-paths.ts +193 -0
- package/src/session/session-persistence.ts +131 -0
- package/src/session/session-storage.ts +91 -30
- package/src/session/snapcompact-inline.ts +542 -0
- package/src/session/snapcompact-savings-journal.ts +113 -0
- package/src/session/streaming-output.ts +248 -11
- package/src/session/tool-choice-queue.ts +23 -11
- package/src/session/yield-queue.ts +20 -2
- package/src/slash-commands/acp-builtins.ts +25 -1
- package/src/slash-commands/available-commands.ts +105 -0
- package/src/slash-commands/builtin-registry.ts +575 -49
- package/src/slash-commands/helpers/active-oauth-account.ts +44 -0
- package/src/slash-commands/helpers/context-report.ts +28 -1
- package/src/slash-commands/helpers/logout.ts +88 -0
- package/src/slash-commands/helpers/reset-usage.ts +66 -0
- package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
- package/src/slash-commands/helpers/usage-report.ts +38 -3
- package/src/slash-commands/types.ts +5 -9
- package/src/ssh/connection-manager.ts +27 -0
- package/src/ssh/ssh-executor.ts +60 -4
- package/src/stt/asr-client.ts +520 -0
- package/src/stt/asr-protocol.ts +65 -0
- package/src/stt/asr-worker.ts +790 -0
- package/src/stt/downloader.ts +107 -47
- package/src/stt/endpointer.ts +259 -0
- package/src/stt/index.ts +5 -1
- package/src/stt/models.ts +150 -0
- package/src/stt/recorder.ts +254 -67
- package/src/stt/stt-controller.ts +201 -22
- package/src/stt/transcriber.ts +37 -68
- package/src/stt/wav.ts +173 -0
- package/src/system-prompt.ts +52 -10
- package/src/task/agents.ts +3 -4
- package/src/task/commands.ts +3 -2
- package/src/task/discovery.ts +17 -24
- package/src/task/executor.ts +1054 -529
- package/src/task/index.ts +862 -757
- package/src/task/output-manager.ts +0 -11
- package/src/task/parallel.ts +3 -3
- package/src/task/prometheus-command.ts +2 -2
- package/src/task/render.ts +529 -182
- package/src/task/repair-args.ts +21 -9
- package/src/task/types.ts +144 -66
- package/src/task/worktree.ts +64 -56
- package/src/telemetry-export.ts +27 -9
- package/src/thinking.ts +9 -7
- package/src/tiny/models.ts +2 -2
- package/src/tiny/text.ts +5 -1
- package/src/tiny/title-client.ts +72 -20
- package/src/tiny/title-protocol.ts +1 -1
- package/src/tiny/worker.ts +23 -99
- package/src/tool-discovery/tool-index.ts +2 -0
- package/src/tools/archive-reader.ts +94 -2
- package/src/tools/ask.ts +234 -177
- package/src/tools/ast-edit.ts +136 -80
- package/src/tools/ast-grep.ts +41 -45
- package/src/tools/auto-generated-guard.ts +20 -3
- package/src/tools/bash-interactive.ts +28 -8
- package/src/tools/bash.ts +198 -35
- package/src/tools/browser/attach.ts +26 -7
- package/src/tools/browser/cmux/cmux-tab.ts +1264 -0
- package/src/tools/browser/cmux/rpc.ts +156 -0
- package/src/tools/browser/cmux/socket-client.ts +309 -0
- package/src/tools/browser/launch.ts +11 -2
- package/src/tools/browser/readable.ts +19 -2
- package/src/tools/browser/registry.ts +52 -5
- package/src/tools/browser/render.ts +13 -5
- package/src/tools/browser/tab-protocol.ts +2 -0
- package/src/tools/browser/tab-supervisor.ts +256 -34
- package/src/tools/browser/tab-worker.ts +259 -91
- package/src/tools/browser.ts +44 -2
- package/src/tools/checkpoint.ts +1 -1
- package/src/tools/conflict-detect.ts +50 -4
- package/src/tools/debug.ts +27 -12
- package/src/tools/eval-render.ts +32 -35
- package/src/tools/eval.ts +26 -12
- package/src/tools/fetch.ts +450 -99
- package/src/tools/find.ts +182 -142
- package/src/tools/gh-cache-invalidation.ts +255 -0
- package/src/tools/gh-renderer.ts +104 -51
- package/src/tools/gh.ts +232 -37
- package/src/tools/github-cache.ts +97 -7
- package/src/tools/grouped-file-output.ts +159 -52
- package/src/tools/image-gen.ts +237 -132
- package/src/tools/index.ts +147 -26
- package/src/tools/inspect-image-renderer.ts +74 -45
- package/src/tools/inspect-image.ts +12 -6
- package/src/tools/irc.ts +626 -173
- package/src/tools/job.ts +106 -29
- package/src/tools/learn.ts +144 -0
- package/src/tools/manage-skill.ts +104 -0
- package/src/tools/memory-edit.ts +4 -4
- package/src/tools/memory-recall.ts +7 -9
- package/src/tools/memory-reflect.ts +5 -9
- package/src/tools/memory-render.ts +23 -6
- package/src/tools/memory-retain.ts +4 -4
- package/src/tools/path-utils.ts +102 -48
- package/src/tools/plan-mode-guard.ts +101 -40
- package/src/tools/read.ts +475 -120
- package/src/tools/render-mermaid.ts +1 -1
- package/src/tools/render-utils.ts +132 -76
- package/src/tools/renderers.ts +12 -1
- package/src/tools/report-tool-issue.ts +14 -6
- package/src/tools/resolve.ts +20 -3
- package/src/tools/review.ts +2 -2
- package/src/tools/search-tool-bm25.ts +37 -24
- package/src/tools/search.ts +233 -115
- package/src/tools/sqlite-reader.ts +26 -17
- package/src/tools/ssh.ts +20 -14
- package/src/tools/todo.ts +197 -191
- package/src/tools/tool-result.ts +8 -0
- package/src/tools/tool-timeouts.ts +1 -1
- package/src/tools/tts.ts +205 -74
- package/src/tools/write.ts +291 -155
- package/src/tools/yield.ts +10 -1
- package/src/tts/downloader.ts +64 -0
- package/src/tts/index.ts +8 -0
- package/src/tts/models.ts +137 -0
- package/src/tts/player.ts +137 -0
- package/src/tts/runtime.ts +21 -0
- package/src/tts/streaming-player.ts +266 -0
- package/src/tts/tts-client.ts +647 -0
- package/src/tts/tts-protocol.ts +60 -0
- package/src/tts/tts-worker.ts +505 -0
- package/src/tts/vocalizer.ts +162 -0
- package/src/tts/wav.ts +58 -0
- package/src/tui/code-cell.ts +2 -7
- package/src/tui/hyperlink.ts +40 -26
- package/src/tui/output-block.ts +60 -108
- package/src/tui/status-line.ts +5 -1
- package/src/utils/block-context.ts +312 -0
- package/src/utils/changelog.ts +27 -1
- package/src/utils/clipboard.ts +91 -22
- package/src/utils/commit-message-generator.ts +8 -3
- package/src/utils/enhanced-paste.ts +230 -0
- package/src/utils/file-mentions.ts +3 -1
- package/src/utils/git.ts +315 -15
- package/src/utils/image-loading.ts +65 -4
- package/src/utils/session-color.ts +83 -9
- package/src/utils/thinking-display.ts +37 -0
- package/src/utils/title-generator.ts +73 -10
- package/src/utils/tool-choice.ts +16 -0
- package/src/utils/tools-manager.ts +19 -1
- package/src/web/kagi.ts +28 -26
- package/src/web/parallel.ts +7 -3
- package/src/web/scrapers/arxiv.ts +1 -1
- package/src/web/scrapers/github.ts +351 -3
- package/src/web/scrapers/go-pkg.ts +1 -1
- package/src/web/scrapers/iacr.ts +1 -1
- package/src/web/scrapers/readthedocs.ts +1 -1
- package/src/web/scrapers/twitter.ts +2 -1
- package/src/web/scrapers/types.ts +87 -8
- package/src/web/scrapers/wikipedia.ts +1 -1
- package/src/web/scrapers/youtube.ts +9 -3
- package/src/web/search/index.ts +15 -2
- package/src/web/search/providers/anthropic.ts +62 -21
- package/src/web/search/providers/base.ts +2 -1
- package/src/web/search/providers/brave.ts +5 -2
- package/src/web/search/providers/codex.ts +87 -51
- package/src/web/search/providers/exa.ts +101 -10
- package/src/web/search/providers/gemini.ts +49 -24
- package/src/web/search/providers/jina.ts +15 -5
- package/src/web/search/providers/kagi.ts +9 -2
- package/src/web/search/providers/kimi.ts +45 -20
- package/src/web/search/providers/parallel.ts +39 -24
- package/src/web/search/providers/perplexity.ts +226 -63
- package/src/web/search/providers/searxng.ts +19 -3
- package/src/web/search/providers/synthetic.ts +16 -11
- package/src/web/search/providers/tavily.ts +12 -9
- package/src/web/search/providers/zai.ts +22 -9
- package/src/web/search/render.ts +59 -64
- package/src/web/search/types.ts +5 -1
- package/dist/types/discovery/context-files.d.ts +0 -17
- package/dist/types/exa/factory.d.ts +0 -13
- package/dist/types/exa/render.d.ts +0 -19
- package/dist/types/exa/researcher.d.ts +0 -9
- package/dist/types/exa/search.d.ts +0 -9
- package/dist/types/exa/websets.d.ts +0 -9
- package/dist/types/export/html/template.generated.d.ts +0 -1
- package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
- package/dist/types/modes/components/status-line.d.ts +0 -77
- package/dist/types/slash-commands/headless-plan.d.ts +0 -3
- package/dist/types/stt/setup.d.ts +0 -18
- package/scripts/generate-template.ts +0 -33
- package/src/discovery/context-files.ts +0 -49
- package/src/exa/factory.ts +0 -60
- package/src/exa/render.ts +0 -244
- package/src/exa/researcher.ts +0 -36
- package/src/exa/search.ts +0 -47
- package/src/exa/websets.ts +0 -248
- package/src/export/html/template.generated.ts +0 -2
- package/src/modes/components/session-observer-overlay.ts +0 -852
- package/src/slash-commands/headless-plan.ts +0 -142
- package/src/stt/setup.ts +0 -52
- package/src/stt/transcribe.py +0 -70
- /package/dist/types/extensibility/{legacy-pi-coding-agent-shim.d.ts → legacy-package-agent-shim.d.ts} +0 -0
- /package/src/extensibility/{legacy-pi-coding-agent-shim.ts → legacy-package-agent-shim.ts} +0 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { THINKING_EFFORTS } from "@prometheus-ai/ai";
|
|
2
|
-
import {
|
|
2
|
+
import { SHAPE_VARIANT_NAMES } from "@prometheus-ai/snapcompact";
|
|
3
|
+
import { DEFAULT_SHARE_URL } from "@prometheus-ai/wire";
|
|
4
|
+
import { DEFAULT_RELAY_URL } from "../collab/protocol";
|
|
5
|
+
import { DEFAULT_STT_MODEL_KEY, STT_MODEL_OPTIONS, STT_MODEL_VALUES } from "../stt/models";
|
|
3
6
|
import { AUTO_THINKING, getConfiguredThinkingLevelMetadata, getThinkingLevelMetadata } from "../thinking";
|
|
4
7
|
import {
|
|
5
8
|
TINY_MODEL_DEVICE_DEFAULT,
|
|
@@ -22,15 +25,27 @@ import {
|
|
|
22
25
|
TINY_TITLE_MODEL_OPTIONS,
|
|
23
26
|
TINY_TITLE_MODEL_VALUES,
|
|
24
27
|
} from "../tiny/models";
|
|
28
|
+
import {
|
|
29
|
+
DEFAULT_TTS_LOCAL_MODEL_KEY,
|
|
30
|
+
DEFAULT_TTS_VOICE,
|
|
31
|
+
TTS_LOCAL_MODEL_OPTIONS,
|
|
32
|
+
TTS_LOCAL_MODEL_VALUES,
|
|
33
|
+
TTS_LOCAL_VOICE_OPTIONS,
|
|
34
|
+
TTS_LOCAL_VOICE_VALUES,
|
|
35
|
+
} from "../tts/models";
|
|
25
36
|
import { EDIT_MODES } from "../utils/edit-mode";
|
|
26
37
|
import { SEARCH_PROVIDER_OPTIONS, SEARCH_PROVIDER_PREFERENCES } from "../web/search/types";
|
|
27
38
|
|
|
28
39
|
/** Unified settings schema - single source of truth for all settings.
|
|
29
|
-
* Unified settings schema - single source of truth for all settings.
|
|
30
40
|
*
|
|
31
41
|
* Each setting is defined once here with:
|
|
32
42
|
* - Type and default value
|
|
33
|
-
* - Optional UI metadata (label, description, tab)
|
|
43
|
+
* - Optional UI metadata (label, description, tab, group)
|
|
44
|
+
*
|
|
45
|
+
* UI metadata places the setting in the settings panel: `tab` picks the
|
|
46
|
+
* panel tab, `group` the titled section within it (registered in
|
|
47
|
+
* TAB_GROUPS). Sections render in TAB_GROUPS order; settings within a
|
|
48
|
+
* section keep declaration order.
|
|
34
49
|
*
|
|
35
50
|
* The Settings singleton provides type-safe path-based access:
|
|
36
51
|
* settings.get("compaction.enabled") // => boolean
|
|
@@ -47,7 +62,8 @@ export type SettingTab =
|
|
|
47
62
|
| "interaction"
|
|
48
63
|
| "context"
|
|
49
64
|
| "memory"
|
|
50
|
-
| "
|
|
65
|
+
| "files"
|
|
66
|
+
| "shell"
|
|
51
67
|
| "tools"
|
|
52
68
|
| "tasks"
|
|
53
69
|
| "providers"
|
|
@@ -63,7 +79,8 @@ export const SETTING_TABS: SettingTab[] = [
|
|
|
63
79
|
"interaction",
|
|
64
80
|
"context",
|
|
65
81
|
"memory",
|
|
66
|
-
"
|
|
82
|
+
"files",
|
|
83
|
+
"shell",
|
|
67
84
|
"tools",
|
|
68
85
|
"tasks",
|
|
69
86
|
"providers",
|
|
@@ -77,16 +94,54 @@ export const TAB_METADATA: Record<SettingTab, { label: string; icon: `tab.${stri
|
|
|
77
94
|
interaction: { label: "Interaction", icon: "tab.interaction" },
|
|
78
95
|
context: { label: "Context", icon: "tab.context" },
|
|
79
96
|
memory: { label: "Memory", icon: "tab.memory" },
|
|
80
|
-
|
|
97
|
+
files: { label: "Files", icon: "tab.files" },
|
|
98
|
+
shell: { label: "Shell", icon: "tab.shell" },
|
|
81
99
|
tools: { label: "Tools", icon: "tab.tools" },
|
|
82
100
|
tasks: { label: "Tasks", icon: "tab.tasks" },
|
|
83
101
|
providers: { label: "Providers", icon: "tab.providers" },
|
|
84
102
|
channels: { label: "Channels", icon: "tab.channels" },
|
|
85
103
|
};
|
|
86
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Ordered section groups per tab. Settings declare their section via `ui.group`;
|
|
107
|
+
* the settings UI renders groups in this order with a heading row between them.
|
|
108
|
+
* Ungrouped settings render first, before any section heading.
|
|
109
|
+
*/
|
|
110
|
+
export const TAB_GROUPS: Record<SettingTab, readonly string[]> = {
|
|
111
|
+
appearance: ["Theme", "Status Line", "Display", "Images"],
|
|
112
|
+
model: ["Thinking", "Sampling", "Prompt", "Retry & Fallback"],
|
|
113
|
+
interaction: [
|
|
114
|
+
"Input",
|
|
115
|
+
"Approvals",
|
|
116
|
+
"Notifications",
|
|
117
|
+
"Speech",
|
|
118
|
+
"Collab",
|
|
119
|
+
"Magic Keywords",
|
|
120
|
+
"Startup & Updates",
|
|
121
|
+
"Power (macOS)",
|
|
122
|
+
],
|
|
123
|
+
context: ["General", "Compaction", "Rules (TTSR)", "Experimental"],
|
|
124
|
+
memory: ["General", "Auto-Learn", "Mnemopi", "Hindsight", "Self Improvement"],
|
|
125
|
+
files: ["Editing", "Reading", "Read Summaries", "LSP"],
|
|
126
|
+
shell: ["Bash", "Eval & Python"],
|
|
127
|
+
tools: [
|
|
128
|
+
"Available Tools",
|
|
129
|
+
"Todos",
|
|
130
|
+
"Search & Browser",
|
|
131
|
+
"GitHub",
|
|
132
|
+
"Output Limits",
|
|
133
|
+
"Execution",
|
|
134
|
+
"Discovery & MCP",
|
|
135
|
+
"Developer",
|
|
136
|
+
],
|
|
137
|
+
tasks: ["Modes", "Subagents", "Isolation", "Commands & Skills"],
|
|
138
|
+
providers: ["Services", "Tiny Model", "Protocol", "Privacy"],
|
|
139
|
+
channels: ["Telegram"],
|
|
140
|
+
};
|
|
141
|
+
|
|
87
142
|
/** Status line segment identifiers */
|
|
88
143
|
export type StatusLineSegmentId =
|
|
89
|
-
| "
|
|
144
|
+
| "pi"
|
|
90
145
|
| "model"
|
|
91
146
|
| "mode"
|
|
92
147
|
| "path"
|
|
@@ -108,7 +163,8 @@ export type StatusLineSegmentId =
|
|
|
108
163
|
| "cache_write"
|
|
109
164
|
| "cache_hit"
|
|
110
165
|
| "session_name"
|
|
111
|
-
| "usage"
|
|
166
|
+
| "usage"
|
|
167
|
+
| "collab";
|
|
112
168
|
|
|
113
169
|
/** Submenu choice metadata. */
|
|
114
170
|
export type SubmenuOption<V extends string = string> = {
|
|
@@ -119,6 +175,8 @@ export type SubmenuOption<V extends string = string> = {
|
|
|
119
175
|
|
|
120
176
|
interface UiBase {
|
|
121
177
|
tab: SettingTab;
|
|
178
|
+
/** Section within the tab; must be listed in TAB_GROUPS[tab]. Ungrouped settings render at the top. */
|
|
179
|
+
group?: string;
|
|
122
180
|
label: string;
|
|
123
181
|
description: string;
|
|
124
182
|
/** Condition function name - setting only shown when true */
|
|
@@ -154,7 +212,7 @@ export type AnyUiMetadata = UiBase & {
|
|
|
154
212
|
|
|
155
213
|
interface BooleanDef {
|
|
156
214
|
type: "boolean";
|
|
157
|
-
default: boolean;
|
|
215
|
+
default: boolean | undefined;
|
|
158
216
|
ui?: UiBoolean;
|
|
159
217
|
}
|
|
160
218
|
|
|
@@ -204,6 +262,8 @@ type SettingDef =
|
|
|
204
262
|
export interface ModelTagDef {
|
|
205
263
|
name: string;
|
|
206
264
|
color?: string;
|
|
265
|
+
/** If true, the role is functional but not shown in the model selector UI. */
|
|
266
|
+
hidden?: boolean;
|
|
207
267
|
}
|
|
208
268
|
|
|
209
269
|
export interface ModelTagsSettings {
|
|
@@ -250,7 +310,11 @@ export const DEFAULT_BASH_INTERCEPTOR_RULES: BashInterceptorRule[] = [
|
|
|
250
310
|
message: "Use the `edit` tool instead of awk -i inplace. It provides diff preview and fuzzy matching.",
|
|
251
311
|
},
|
|
252
312
|
{
|
|
253
|
-
|
|
313
|
+
// `>` must sit outside quoted regions (so `echo "a -> b"` passes) and be
|
|
314
|
+
// followed by a plausible filename — including `$VAR` targets; `>|`
|
|
315
|
+
// (clobber) counts as a redirect; `>&2`/`2>&1` style fd duplication is
|
|
316
|
+
// not matched.
|
|
317
|
+
pattern: "^\\s*(echo|printf|cat\\s*<<)\\s+(?:[^\"'>]|\"[^\"]*\"|'[^']*')*(?<!\\|)>{1,2}\\|?\\s*[$\\w./~\"'-]",
|
|
254
318
|
tool: "write",
|
|
255
319
|
message: "Use the `write` tool instead of echo/cat redirection. It handles encoding and provides confirmation.",
|
|
256
320
|
},
|
|
@@ -260,7 +324,6 @@ export const SETTINGS_SCHEMA = {
|
|
|
260
324
|
// ────────────────────────────────────────────────────────────────────────
|
|
261
325
|
// General settings (no UI)
|
|
262
326
|
// ────────────────────────────────────────────────────────────────────────
|
|
263
|
-
lastChangelogVersion: { type: "string", default: undefined },
|
|
264
327
|
setupVersion: { type: "number", default: 0 },
|
|
265
328
|
|
|
266
329
|
// Auth broker — credentials proxied through a remote `prometheus auth-broker serve`
|
|
@@ -277,6 +340,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
277
340
|
default: false,
|
|
278
341
|
ui: {
|
|
279
342
|
tab: "channels",
|
|
343
|
+
group: "Telegram",
|
|
280
344
|
label: "Telegram Gateway",
|
|
281
345
|
description: "Use the configured Telegram Bot API gateway when serving Prometheus externally",
|
|
282
346
|
},
|
|
@@ -287,6 +351,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
287
351
|
default: "webhook",
|
|
288
352
|
ui: {
|
|
289
353
|
tab: "channels",
|
|
354
|
+
group: "Telegram",
|
|
290
355
|
label: "Telegram Connection Mode",
|
|
291
356
|
description: "Use webhook ingress or Bot API long polling for Telegram updates",
|
|
292
357
|
options: [
|
|
@@ -304,6 +369,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
304
369
|
default: undefined,
|
|
305
370
|
ui: {
|
|
306
371
|
tab: "channels",
|
|
372
|
+
group: "Telegram",
|
|
307
373
|
label: "Telegram Bot Username",
|
|
308
374
|
description: "Telegram bot username without @; setup can fill this from getMe",
|
|
309
375
|
},
|
|
@@ -313,6 +379,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
313
379
|
default: undefined,
|
|
314
380
|
ui: {
|
|
315
381
|
tab: "channels",
|
|
382
|
+
group: "Telegram",
|
|
316
383
|
label: "Telegram Public URL",
|
|
317
384
|
description: "HTTPS public base URL that Telegram should call through the tunnel",
|
|
318
385
|
},
|
|
@@ -322,6 +389,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
322
389
|
default: "/telegram/webhook",
|
|
323
390
|
ui: {
|
|
324
391
|
tab: "channels",
|
|
392
|
+
group: "Telegram",
|
|
325
393
|
label: "Telegram Webhook Path",
|
|
326
394
|
description: "HTTP path that receives Telegram webhook updates",
|
|
327
395
|
},
|
|
@@ -331,16 +399,28 @@ export const SETTINGS_SCHEMA = {
|
|
|
331
399
|
default: undefined,
|
|
332
400
|
ui: {
|
|
333
401
|
tab: "channels",
|
|
402
|
+
group: "Telegram",
|
|
334
403
|
label: "Telegram Allowed Users",
|
|
335
404
|
description: "Comma-separated Telegram user IDs allowed to use the gateway",
|
|
336
405
|
},
|
|
337
406
|
},
|
|
407
|
+
"gateway.telegram.allowedChats": {
|
|
408
|
+
type: "string",
|
|
409
|
+
default: undefined,
|
|
410
|
+
ui: {
|
|
411
|
+
tab: "channels",
|
|
412
|
+
group: "Telegram",
|
|
413
|
+
label: "Telegram Allowed Chats",
|
|
414
|
+
description: "Comma-separated Telegram chat IDs allowed to use the gateway",
|
|
415
|
+
},
|
|
416
|
+
},
|
|
338
417
|
"gateway.telegram.groupScope": {
|
|
339
418
|
type: "enum",
|
|
340
419
|
values: ["shared", "per-user"] as const,
|
|
341
420
|
default: "shared",
|
|
342
421
|
ui: {
|
|
343
422
|
tab: "channels",
|
|
423
|
+
group: "Telegram",
|
|
344
424
|
label: "Telegram Group Scope",
|
|
345
425
|
description: "Session sharing for non-threaded group chats",
|
|
346
426
|
options: [
|
|
@@ -355,6 +435,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
355
435
|
default: "shared",
|
|
356
436
|
ui: {
|
|
357
437
|
tab: "channels",
|
|
438
|
+
group: "Telegram",
|
|
358
439
|
label: "Telegram Thread Scope",
|
|
359
440
|
description: "Session sharing for Telegram topics and direct-message topics",
|
|
360
441
|
options: [
|
|
@@ -369,6 +450,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
369
450
|
default: "none",
|
|
370
451
|
ui: {
|
|
371
452
|
tab: "channels",
|
|
453
|
+
group: "Telegram",
|
|
372
454
|
label: "Telegram Parse Mode",
|
|
373
455
|
description: "Telegram parse_mode for bot replies",
|
|
374
456
|
options: [
|
|
@@ -384,6 +466,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
384
466
|
default: false,
|
|
385
467
|
ui: {
|
|
386
468
|
tab: "channels",
|
|
469
|
+
group: "Telegram",
|
|
387
470
|
label: "Telegram Silent Replies",
|
|
388
471
|
description: "Send Telegram replies without notification sound",
|
|
389
472
|
},
|
|
@@ -393,6 +476,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
393
476
|
default: true,
|
|
394
477
|
ui: {
|
|
395
478
|
tab: "channels",
|
|
479
|
+
group: "Telegram",
|
|
396
480
|
label: "Telegram HD Previews",
|
|
397
481
|
description: "Ask Telegram to use larger media previews where the Bot API supports it",
|
|
398
482
|
},
|
|
@@ -402,6 +486,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
402
486
|
default: false,
|
|
403
487
|
ui: {
|
|
404
488
|
tab: "channels",
|
|
489
|
+
group: "Telegram",
|
|
405
490
|
label: "Telegram Bot Messages",
|
|
406
491
|
description: "Allow Telegram messages sent by bot accounts",
|
|
407
492
|
},
|
|
@@ -411,6 +496,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
411
496
|
default: false,
|
|
412
497
|
ui: {
|
|
413
498
|
tab: "channels",
|
|
499
|
+
group: "Telegram",
|
|
414
500
|
label: "Telegram Raw Payloads",
|
|
415
501
|
description: "Attach raw Telegram update payloads to gateway events for debugging",
|
|
416
502
|
},
|
|
@@ -420,6 +506,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
420
506
|
default: true,
|
|
421
507
|
ui: {
|
|
422
508
|
tab: "channels",
|
|
509
|
+
group: "Telegram",
|
|
423
510
|
label: "Telegram Expressions",
|
|
424
511
|
description: "Allow Prometheus to attach matching Telegram expression intents to replies",
|
|
425
512
|
},
|
|
@@ -429,6 +516,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
429
516
|
default: 2,
|
|
430
517
|
ui: {
|
|
431
518
|
tab: "channels",
|
|
519
|
+
group: "Telegram",
|
|
432
520
|
label: "Telegram Expression Match",
|
|
433
521
|
description: "Minimum local catalog match score before attaching a Telegram expression",
|
|
434
522
|
options: [
|
|
@@ -443,6 +531,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
443
531
|
default: EMPTY_UNKNOWN_RECORD,
|
|
444
532
|
ui: {
|
|
445
533
|
tab: "channels",
|
|
534
|
+
group: "Telegram",
|
|
446
535
|
label: "Telegram Expression Catalog",
|
|
447
536
|
description: "Searchable Telegram expression intents with sticker/GIF variants",
|
|
448
537
|
},
|
|
@@ -452,6 +541,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
452
541
|
default: undefined,
|
|
453
542
|
ui: {
|
|
454
543
|
tab: "channels",
|
|
544
|
+
group: "Telegram",
|
|
455
545
|
label: "Telegram Expression File",
|
|
456
546
|
description: "Optional JSON catalog path for Telegram expression intents",
|
|
457
547
|
},
|
|
@@ -462,6 +552,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
462
552
|
default: false,
|
|
463
553
|
ui: {
|
|
464
554
|
tab: "interaction",
|
|
555
|
+
group: "Startup & Updates",
|
|
465
556
|
label: "Auto Resume",
|
|
466
557
|
description: "Automatically resume the most recent session in the current directory",
|
|
467
558
|
},
|
|
@@ -473,8 +564,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
473
564
|
default: true,
|
|
474
565
|
ui: {
|
|
475
566
|
tab: "interaction",
|
|
476
|
-
|
|
477
|
-
|
|
567
|
+
group: "Power (macOS)",
|
|
568
|
+
label: "Prevent Idle Sleep",
|
|
569
|
+
description: "Keep the system awake while a session is open (caffeinate -i)",
|
|
478
570
|
},
|
|
479
571
|
},
|
|
480
572
|
"power.preventSystemSleep": {
|
|
@@ -482,8 +574,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
482
574
|
default: false,
|
|
483
575
|
ui: {
|
|
484
576
|
tab: "interaction",
|
|
485
|
-
|
|
486
|
-
|
|
577
|
+
group: "Power (macOS)",
|
|
578
|
+
label: "Prevent System Sleep on AC",
|
|
579
|
+
description: "Block all system sleep while on AC power (caffeinate -s)",
|
|
487
580
|
},
|
|
488
581
|
},
|
|
489
582
|
"power.declareUserActive": {
|
|
@@ -491,8 +584,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
491
584
|
default: false,
|
|
492
585
|
ui: {
|
|
493
586
|
tab: "interaction",
|
|
494
|
-
|
|
495
|
-
|
|
587
|
+
group: "Power (macOS)",
|
|
588
|
+
label: "Declare User Active",
|
|
589
|
+
description: "Keep the display lit and treat the user as active (caffeinate -u)",
|
|
496
590
|
},
|
|
497
591
|
},
|
|
498
592
|
"power.preventDisplaySleep": {
|
|
@@ -500,30 +594,15 @@ export const SETTINGS_SCHEMA = {
|
|
|
500
594
|
default: false,
|
|
501
595
|
ui: {
|
|
502
596
|
tab: "interaction",
|
|
503
|
-
|
|
504
|
-
|
|
597
|
+
group: "Power (macOS)",
|
|
598
|
+
label: "Prevent Display Sleep",
|
|
599
|
+
description: "Keep the display from idle-sleeping while a session is open (caffeinate -d)",
|
|
505
600
|
},
|
|
506
601
|
},
|
|
507
602
|
shellPath: { type: "string", default: undefined },
|
|
508
603
|
|
|
509
604
|
extensions: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
510
605
|
|
|
511
|
-
"marketplace.autoUpdate": {
|
|
512
|
-
type: "enum",
|
|
513
|
-
values: ["off", "notify", "auto"] as const,
|
|
514
|
-
default: "notify",
|
|
515
|
-
ui: {
|
|
516
|
-
tab: "tools",
|
|
517
|
-
label: "Marketplace Auto-Update",
|
|
518
|
-
description: "Check for plugin updates on startup (off/notify/auto)",
|
|
519
|
-
options: [
|
|
520
|
-
{ value: "off", label: "Off", description: "Don't check for plugin updates" },
|
|
521
|
-
{ value: "notify", label: "Notify", description: "Check on startup and notify when updates are available" },
|
|
522
|
-
{ value: "auto", label: "Auto", description: "Check on startup and auto-install updates" },
|
|
523
|
-
],
|
|
524
|
-
},
|
|
525
|
-
},
|
|
526
|
-
|
|
527
606
|
enabledModels: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
528
607
|
|
|
529
608
|
disabledProviders: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
@@ -548,8 +627,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
548
627
|
default: "titanium",
|
|
549
628
|
ui: {
|
|
550
629
|
tab: "appearance",
|
|
630
|
+
group: "Theme",
|
|
551
631
|
label: "Dark Theme",
|
|
552
|
-
description: "Theme used when terminal has dark background",
|
|
632
|
+
description: "Theme used when the terminal has a dark background",
|
|
553
633
|
options: "runtime",
|
|
554
634
|
},
|
|
555
635
|
},
|
|
@@ -559,8 +639,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
559
639
|
default: "light",
|
|
560
640
|
ui: {
|
|
561
641
|
tab: "appearance",
|
|
642
|
+
group: "Theme",
|
|
562
643
|
label: "Light Theme",
|
|
563
|
-
description: "Theme used when terminal has light background",
|
|
644
|
+
description: "Theme used when the terminal has a light background",
|
|
564
645
|
options: "runtime",
|
|
565
646
|
},
|
|
566
647
|
},
|
|
@@ -571,8 +652,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
571
652
|
default: "unicode",
|
|
572
653
|
ui: {
|
|
573
654
|
tab: "appearance",
|
|
655
|
+
group: "Theme",
|
|
574
656
|
label: "Symbol Preset",
|
|
575
|
-
description: "
|
|
657
|
+
description: "Glyph set for icons and symbols (Unicode, Nerd Font, or ASCII)",
|
|
576
658
|
options: [
|
|
577
659
|
{ value: "unicode", label: "Unicode", description: "Standard symbols (default)" },
|
|
578
660
|
{ value: "nerd", label: "Nerd Font", description: "Requires Nerd Font" },
|
|
@@ -586,6 +668,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
586
668
|
default: false,
|
|
587
669
|
ui: {
|
|
588
670
|
tab: "appearance",
|
|
671
|
+
group: "Theme",
|
|
589
672
|
label: "Color-Blind Mode",
|
|
590
673
|
description: "Use blue instead of green for diff additions",
|
|
591
674
|
},
|
|
@@ -598,6 +681,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
598
681
|
default: "default",
|
|
599
682
|
ui: {
|
|
600
683
|
tab: "appearance",
|
|
684
|
+
group: "Status Line",
|
|
601
685
|
label: "Status Line Preset",
|
|
602
686
|
description: "Pre-built status line configurations",
|
|
603
687
|
options: [
|
|
@@ -618,6 +702,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
618
702
|
default: "powerline-thin",
|
|
619
703
|
ui: {
|
|
620
704
|
tab: "appearance",
|
|
705
|
+
group: "Status Line",
|
|
621
706
|
label: "Status Line Separator",
|
|
622
707
|
description: "Style of separators between segments",
|
|
623
708
|
options: [
|
|
@@ -637,16 +722,30 @@ export const SETTINGS_SCHEMA = {
|
|
|
637
722
|
default: true,
|
|
638
723
|
ui: {
|
|
639
724
|
tab: "appearance",
|
|
725
|
+
group: "Status Line",
|
|
640
726
|
label: "Session Accent",
|
|
641
727
|
description: "Use the session name color for the editor border and status line gap",
|
|
642
728
|
},
|
|
643
729
|
},
|
|
730
|
+
|
|
731
|
+
"statusLine.transparent": {
|
|
732
|
+
type: "boolean",
|
|
733
|
+
default: false,
|
|
734
|
+
ui: {
|
|
735
|
+
tab: "appearance",
|
|
736
|
+
group: "Status Line",
|
|
737
|
+
label: "Transparent Status Line",
|
|
738
|
+
description:
|
|
739
|
+
"Use the terminal's default background for the status line instead of the theme's `statusLineBg`. Powerline end caps are dropped because they need a contrasting fill to bridge into the surrounding terminal.",
|
|
740
|
+
},
|
|
741
|
+
},
|
|
644
742
|
"tools.artifactSpillThreshold": {
|
|
645
743
|
type: "number",
|
|
646
744
|
default: 50,
|
|
647
745
|
ui: {
|
|
648
746
|
tab: "tools",
|
|
649
|
-
|
|
747
|
+
group: "Output Limits",
|
|
748
|
+
label: "Artifact Spill Threshold (KB)",
|
|
650
749
|
description: "Tool output above this size is saved as an artifact; tail is kept inline",
|
|
651
750
|
options: [
|
|
652
751
|
{ value: "1", label: "1 KB", description: "~250 tokens" },
|
|
@@ -669,7 +768,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
669
768
|
default: 20,
|
|
670
769
|
ui: {
|
|
671
770
|
tab: "tools",
|
|
672
|
-
|
|
771
|
+
group: "Output Limits",
|
|
772
|
+
label: "Artifact Tail Size (KB)",
|
|
673
773
|
description: "Amount of tail content kept inline when output spills to artifact",
|
|
674
774
|
options: [
|
|
675
775
|
{ value: "1", label: "1 KB", description: "~250 tokens" },
|
|
@@ -688,7 +788,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
688
788
|
default: 20,
|
|
689
789
|
ui: {
|
|
690
790
|
tab: "tools",
|
|
691
|
-
|
|
791
|
+
group: "Output Limits",
|
|
792
|
+
label: "Artifact Head Size (KB)",
|
|
692
793
|
description:
|
|
693
794
|
"Amount of head content kept inline alongside the tail when output spills to artifact (middle elision). 0 disables — keep tail only.",
|
|
694
795
|
options: [
|
|
@@ -709,7 +810,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
709
810
|
default: 768,
|
|
710
811
|
ui: {
|
|
711
812
|
tab: "tools",
|
|
712
|
-
|
|
813
|
+
group: "Output Limits",
|
|
814
|
+
label: "Output Column Cap",
|
|
713
815
|
description:
|
|
714
816
|
"Per-line byte cap for streaming tool outputs (bash, ssh, python, js eval) and `read`. Lines wider than this are ellipsis-truncated; remaining bytes up to the next newline are dropped. 0 disables.",
|
|
715
817
|
options: [
|
|
@@ -728,7 +830,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
728
830
|
default: 500,
|
|
729
831
|
ui: {
|
|
730
832
|
tab: "tools",
|
|
731
|
-
|
|
833
|
+
group: "Output Limits",
|
|
834
|
+
label: "Artifact Tail Lines",
|
|
732
835
|
description: "Maximum lines of tail content kept inline when output spills to artifact",
|
|
733
836
|
options: [
|
|
734
837
|
{ value: "50", label: "50 lines", description: "~250 tokens" },
|
|
@@ -747,8 +850,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
747
850
|
default: true,
|
|
748
851
|
ui: {
|
|
749
852
|
tab: "appearance",
|
|
853
|
+
group: "Status Line",
|
|
750
854
|
label: "Show Hook Status",
|
|
751
|
-
description: "Display hook status messages below status line",
|
|
855
|
+
description: "Display hook status messages below the status line",
|
|
752
856
|
},
|
|
753
857
|
},
|
|
754
858
|
|
|
@@ -764,8 +868,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
764
868
|
default: true,
|
|
765
869
|
ui: {
|
|
766
870
|
tab: "appearance",
|
|
871
|
+
group: "Images",
|
|
767
872
|
label: "Show Inline Images",
|
|
768
|
-
description: "Render images inline in terminal",
|
|
873
|
+
description: "Render images inline in the terminal",
|
|
769
874
|
condition: "hasImageProtocol",
|
|
770
875
|
},
|
|
771
876
|
},
|
|
@@ -775,6 +880,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
775
880
|
default: true,
|
|
776
881
|
ui: {
|
|
777
882
|
tab: "appearance",
|
|
883
|
+
group: "Images",
|
|
778
884
|
label: "Auto-Resize Images",
|
|
779
885
|
description: "Resize large images to 2000x2000 max for better model compatibility",
|
|
780
886
|
},
|
|
@@ -783,7 +889,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
783
889
|
"images.blockImages": {
|
|
784
890
|
type: "boolean",
|
|
785
891
|
default: false,
|
|
786
|
-
ui: {
|
|
892
|
+
ui: {
|
|
893
|
+
tab: "appearance",
|
|
894
|
+
group: "Images",
|
|
895
|
+
label: "Block Images",
|
|
896
|
+
description: "Prevent images from being sent to LLM providers",
|
|
897
|
+
},
|
|
787
898
|
},
|
|
788
899
|
|
|
789
900
|
"tui.maxInlineImageColumns": {
|
|
@@ -812,6 +923,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
812
923
|
default: false,
|
|
813
924
|
ui: {
|
|
814
925
|
tab: "appearance",
|
|
926
|
+
group: "Display",
|
|
815
927
|
label: "Large Headings (Kitty)",
|
|
816
928
|
description:
|
|
817
929
|
"Render Markdown H1 headings at 2x scale using Kitty's OSC 66 text-sizing protocol. Only takes effect on Kitty terminals; ignored everywhere else. Off by default.",
|
|
@@ -824,6 +936,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
824
936
|
default: "auto",
|
|
825
937
|
ui: {
|
|
826
938
|
tab: "appearance",
|
|
939
|
+
group: "Display",
|
|
827
940
|
label: "Terminal Hyperlinks",
|
|
828
941
|
description:
|
|
829
942
|
"Wrap paths and URLs in OSC 8 hyperlinks for terminal-native click-to-open (auto: detect support; off: never; always: unconditional)",
|
|
@@ -841,6 +954,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
841
954
|
default: "classic",
|
|
842
955
|
ui: {
|
|
843
956
|
tab: "appearance",
|
|
957
|
+
group: "Display",
|
|
844
958
|
label: "Shimmer",
|
|
845
959
|
description: "Animation style for working/loading messages",
|
|
846
960
|
options: [
|
|
@@ -851,11 +965,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
851
965
|
},
|
|
852
966
|
},
|
|
853
967
|
|
|
968
|
+
"display.smoothStreaming": {
|
|
969
|
+
type: "boolean",
|
|
970
|
+
default: true,
|
|
971
|
+
ui: {
|
|
972
|
+
tab: "appearance",
|
|
973
|
+
group: "Display",
|
|
974
|
+
label: "Smooth Streaming",
|
|
975
|
+
description: "Reveal assistant text and streamed tool input smoothly while chunks arrive",
|
|
976
|
+
},
|
|
977
|
+
},
|
|
978
|
+
|
|
854
979
|
"display.showTokenUsage": {
|
|
855
980
|
type: "boolean",
|
|
856
981
|
default: false,
|
|
857
982
|
ui: {
|
|
858
983
|
tab: "appearance",
|
|
984
|
+
group: "Display",
|
|
859
985
|
label: "Show Token Usage",
|
|
860
986
|
description: "Show per-turn token usage on assistant messages",
|
|
861
987
|
},
|
|
@@ -864,16 +990,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
864
990
|
showHardwareCursor: {
|
|
865
991
|
type: "boolean",
|
|
866
992
|
default: true, // will be computed based on platform if undefined
|
|
867
|
-
ui: { tab: "appearance", label: "Show Hardware Cursor", description: "Show terminal cursor for IME support" },
|
|
868
|
-
},
|
|
869
|
-
|
|
870
|
-
clearOnShrink: {
|
|
871
|
-
type: "boolean",
|
|
872
|
-
default: false,
|
|
873
993
|
ui: {
|
|
874
994
|
tab: "appearance",
|
|
875
|
-
|
|
876
|
-
|
|
995
|
+
group: "Display",
|
|
996
|
+
label: "Show Hardware Cursor",
|
|
997
|
+
description: "Show terminal cursor for IME support",
|
|
877
998
|
},
|
|
878
999
|
},
|
|
879
1000
|
|
|
@@ -888,6 +1009,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
888
1009
|
default: "high",
|
|
889
1010
|
ui: {
|
|
890
1011
|
tab: "model",
|
|
1012
|
+
group: "Thinking",
|
|
891
1013
|
label: "Thinking Level",
|
|
892
1014
|
description: "Reasoning depth for thinking-capable models",
|
|
893
1015
|
options: [
|
|
@@ -900,7 +1022,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
900
1022
|
hideThinkingBlock: {
|
|
901
1023
|
type: "boolean",
|
|
902
1024
|
default: false,
|
|
903
|
-
ui: {
|
|
1025
|
+
ui: {
|
|
1026
|
+
tab: "model",
|
|
1027
|
+
group: "Thinking",
|
|
1028
|
+
label: "Hide Thinking Blocks",
|
|
1029
|
+
description: "Hide thinking blocks in assistant responses",
|
|
1030
|
+
},
|
|
904
1031
|
},
|
|
905
1032
|
|
|
906
1033
|
repeatToolDescriptions: {
|
|
@@ -908,6 +1035,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
908
1035
|
default: false,
|
|
909
1036
|
ui: {
|
|
910
1037
|
tab: "model",
|
|
1038
|
+
group: "Prompt",
|
|
911
1039
|
label: "Repeat Tool Descriptions",
|
|
912
1040
|
description: "Render full tool descriptions in the system prompt instead of a tool name list",
|
|
913
1041
|
},
|
|
@@ -918,17 +1046,49 @@ export const SETTINGS_SCHEMA = {
|
|
|
918
1046
|
default: true,
|
|
919
1047
|
ui: {
|
|
920
1048
|
tab: "model",
|
|
921
|
-
|
|
1049
|
+
group: "Prompt",
|
|
1050
|
+
label: "Include Model in Prompt",
|
|
922
1051
|
description: "Surface the active model identifier in the system prompt so the agent knows which model it is",
|
|
923
1052
|
},
|
|
924
1053
|
},
|
|
925
1054
|
|
|
1055
|
+
personality: {
|
|
1056
|
+
type: "enum",
|
|
1057
|
+
values: ["default", "friendly", "pragmatic", "none"] as const,
|
|
1058
|
+
default: "default",
|
|
1059
|
+
ui: {
|
|
1060
|
+
tab: "model",
|
|
1061
|
+
group: "Prompt",
|
|
1062
|
+
label: "Personality",
|
|
1063
|
+
description: "Communication style rendered into the system prompt's personality block",
|
|
1064
|
+
options: [
|
|
1065
|
+
{
|
|
1066
|
+
value: "default",
|
|
1067
|
+
label: "Default",
|
|
1068
|
+
description: "Terse, evidence-first engineer; dense, action-oriented replies",
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
value: "friendly",
|
|
1072
|
+
label: "Friendly",
|
|
1073
|
+
description: "Warm, encouraging collaborator focused on momentum and morale",
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
value: "pragmatic",
|
|
1077
|
+
label: "Pragmatic",
|
|
1078
|
+
description: "Direct, efficient engineer focused on clarity and rigor",
|
|
1079
|
+
},
|
|
1080
|
+
{ value: "none", label: "None", description: "Omit the personality block entirely" },
|
|
1081
|
+
],
|
|
1082
|
+
},
|
|
1083
|
+
},
|
|
1084
|
+
|
|
926
1085
|
// Sampling
|
|
927
1086
|
temperature: {
|
|
928
1087
|
type: "number",
|
|
929
1088
|
default: -1,
|
|
930
1089
|
ui: {
|
|
931
1090
|
tab: "model",
|
|
1091
|
+
group: "Sampling",
|
|
932
1092
|
label: "Temperature",
|
|
933
1093
|
description: "Sampling temperature (0 = deterministic, 1 = creative, -1 = provider default)",
|
|
934
1094
|
options: [
|
|
@@ -947,6 +1107,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
947
1107
|
default: -1,
|
|
948
1108
|
ui: {
|
|
949
1109
|
tab: "model",
|
|
1110
|
+
group: "Sampling",
|
|
950
1111
|
label: "Top P",
|
|
951
1112
|
description: "Nucleus sampling cutoff (0-1, -1 = provider default)",
|
|
952
1113
|
options: [
|
|
@@ -965,6 +1126,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
965
1126
|
default: -1,
|
|
966
1127
|
ui: {
|
|
967
1128
|
tab: "model",
|
|
1129
|
+
group: "Sampling",
|
|
968
1130
|
label: "Top K",
|
|
969
1131
|
description: "Sample from top-K tokens (-1 = provider default)",
|
|
970
1132
|
options: [
|
|
@@ -982,6 +1144,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
982
1144
|
default: -1,
|
|
983
1145
|
ui: {
|
|
984
1146
|
tab: "model",
|
|
1147
|
+
group: "Sampling",
|
|
985
1148
|
label: "Min P",
|
|
986
1149
|
description: "Minimum probability threshold (0-1, -1 = provider default)",
|
|
987
1150
|
options: [
|
|
@@ -998,6 +1161,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
998
1161
|
default: -1,
|
|
999
1162
|
ui: {
|
|
1000
1163
|
tab: "model",
|
|
1164
|
+
group: "Sampling",
|
|
1001
1165
|
label: "Presence Penalty",
|
|
1002
1166
|
description: "Penalty for introducing already-present tokens (-1 = provider default)",
|
|
1003
1167
|
options: [
|
|
@@ -1015,6 +1179,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1015
1179
|
default: -1,
|
|
1016
1180
|
ui: {
|
|
1017
1181
|
tab: "model",
|
|
1182
|
+
group: "Sampling",
|
|
1018
1183
|
label: "Repetition Penalty",
|
|
1019
1184
|
description: "Penalty for repeated tokens (-1 = provider default)",
|
|
1020
1185
|
options: [
|
|
@@ -1034,6 +1199,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1034
1199
|
default: "none",
|
|
1035
1200
|
ui: {
|
|
1036
1201
|
tab: "model",
|
|
1202
|
+
group: "Sampling",
|
|
1037
1203
|
label: "Service Tier",
|
|
1038
1204
|
description:
|
|
1039
1205
|
'Processing priority hint (none = omit). OpenAI accepts the tier values directly; Anthropic realizes `priority` as `speed: "fast"` on supported Opus models. Scoped values target one family.',
|
|
@@ -1062,14 +1228,41 @@ export const SETTINGS_SCHEMA = {
|
|
|
1062
1228
|
},
|
|
1063
1229
|
},
|
|
1064
1230
|
|
|
1231
|
+
fastModeScope: {
|
|
1232
|
+
type: "enum",
|
|
1233
|
+
values: ["both", "openai", "claude"] as const,
|
|
1234
|
+
default: "both",
|
|
1235
|
+
ui: {
|
|
1236
|
+
tab: "model",
|
|
1237
|
+
group: "Sampling",
|
|
1238
|
+
label: "Fast Mode Scope",
|
|
1239
|
+
description:
|
|
1240
|
+
'Which providers `/fast on` (and the fast-mode toggle) target. "both" = priority on every supported provider; "openai"/"claude" scope it to one family (mirrors serviceTier openai-only/claude-only).',
|
|
1241
|
+
options: [
|
|
1242
|
+
{ value: "both", label: "Both", description: "Priority on every supported provider" },
|
|
1243
|
+
{
|
|
1244
|
+
value: "openai",
|
|
1245
|
+
label: "OpenAI only",
|
|
1246
|
+
description: "Priority on OpenAI/OpenAI-Codex requests; ignored elsewhere",
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
value: "claude",
|
|
1250
|
+
label: "Claude only",
|
|
1251
|
+
description: "Anthropic fast mode on direct Claude requests; ignored elsewhere",
|
|
1252
|
+
},
|
|
1253
|
+
],
|
|
1254
|
+
},
|
|
1255
|
+
},
|
|
1256
|
+
|
|
1065
1257
|
// Retries
|
|
1066
1258
|
"retry.enabled": { type: "boolean", default: true },
|
|
1067
1259
|
|
|
1068
1260
|
"retry.maxRetries": {
|
|
1069
1261
|
type: "number",
|
|
1070
|
-
default:
|
|
1262
|
+
default: 10,
|
|
1071
1263
|
ui: {
|
|
1072
1264
|
tab: "model",
|
|
1265
|
+
group: "Retry & Fallback",
|
|
1073
1266
|
label: "Retry Attempts",
|
|
1074
1267
|
description: "Maximum retry attempts on API errors",
|
|
1075
1268
|
options: [
|
|
@@ -1082,12 +1275,13 @@ export const SETTINGS_SCHEMA = {
|
|
|
1082
1275
|
},
|
|
1083
1276
|
},
|
|
1084
1277
|
|
|
1085
|
-
"retry.baseDelayMs": { type: "number", default:
|
|
1278
|
+
"retry.baseDelayMs": { type: "number", default: 500 },
|
|
1086
1279
|
"retry.maxDelayMs": {
|
|
1087
1280
|
type: "number",
|
|
1088
1281
|
default: 5 * 60 * 1000,
|
|
1089
1282
|
ui: {
|
|
1090
1283
|
tab: "model",
|
|
1284
|
+
group: "Retry & Fallback",
|
|
1091
1285
|
label: "Max Retry Delay",
|
|
1092
1286
|
description:
|
|
1093
1287
|
"Maximum wait between retries, in ms. When the provider asks us to wait longer than this and no credential or model fallback succeeds, the request fails fast instead of sleeping (e.g. 3-hour Anthropic rate-limit windows).",
|
|
@@ -1098,6 +1292,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1098
1292
|
default: true,
|
|
1099
1293
|
ui: {
|
|
1100
1294
|
tab: "model",
|
|
1295
|
+
group: "Retry & Fallback",
|
|
1101
1296
|
label: "Retry Model Fallback",
|
|
1102
1297
|
description: "Allow retry recovery to switch to configured fallback models",
|
|
1103
1298
|
},
|
|
@@ -1109,6 +1304,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1109
1304
|
default: "cooldown-expiry",
|
|
1110
1305
|
ui: {
|
|
1111
1306
|
tab: "model",
|
|
1307
|
+
group: "Retry & Fallback",
|
|
1112
1308
|
label: "Fallback Revert Policy",
|
|
1113
1309
|
description: "When to return to the primary model after a fallback",
|
|
1114
1310
|
options: [
|
|
@@ -1133,6 +1329,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1133
1329
|
default: "one-at-a-time",
|
|
1134
1330
|
ui: {
|
|
1135
1331
|
tab: "interaction",
|
|
1332
|
+
group: "Input",
|
|
1136
1333
|
label: "Steering Mode",
|
|
1137
1334
|
description: "How to process queued messages while agent is working",
|
|
1138
1335
|
},
|
|
@@ -1144,6 +1341,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1144
1341
|
default: "one-at-a-time",
|
|
1145
1342
|
ui: {
|
|
1146
1343
|
tab: "interaction",
|
|
1344
|
+
group: "Input",
|
|
1147
1345
|
label: "Follow-Up Mode",
|
|
1148
1346
|
description: "How to drain follow-up messages after a turn completes",
|
|
1149
1347
|
},
|
|
@@ -1155,6 +1353,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1155
1353
|
default: "immediate",
|
|
1156
1354
|
ui: {
|
|
1157
1355
|
tab: "interaction",
|
|
1356
|
+
group: "Input",
|
|
1158
1357
|
label: "Interrupt Mode",
|
|
1159
1358
|
description: "When steering messages interrupt tool execution",
|
|
1160
1359
|
},
|
|
@@ -1166,6 +1365,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1166
1365
|
default: "prompt",
|
|
1167
1366
|
ui: {
|
|
1168
1367
|
tab: "interaction",
|
|
1368
|
+
group: "Input",
|
|
1169
1369
|
label: "Loop Mode",
|
|
1170
1370
|
description: "What happens between /loop iterations before re-submitting the prompt",
|
|
1171
1371
|
options: [
|
|
@@ -1191,6 +1391,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1191
1391
|
default: "tree",
|
|
1192
1392
|
ui: {
|
|
1193
1393
|
tab: "interaction",
|
|
1394
|
+
group: "Input",
|
|
1194
1395
|
label: "Double-Escape Action",
|
|
1195
1396
|
description: "Action when pressing Escape twice with empty editor",
|
|
1196
1397
|
},
|
|
@@ -1202,6 +1403,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1202
1403
|
default: "default",
|
|
1203
1404
|
ui: {
|
|
1204
1405
|
tab: "interaction",
|
|
1406
|
+
group: "Input",
|
|
1205
1407
|
label: "Session Tree Filter",
|
|
1206
1408
|
description: "Default filter mode when opening the session tree",
|
|
1207
1409
|
},
|
|
@@ -1212,6 +1414,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1212
1414
|
default: 5,
|
|
1213
1415
|
ui: {
|
|
1214
1416
|
tab: "interaction",
|
|
1417
|
+
group: "Input",
|
|
1215
1418
|
label: "Autocomplete Items",
|
|
1216
1419
|
description: "Max visible items in autocomplete dropdown (3-20)",
|
|
1217
1420
|
options: [
|
|
@@ -1230,16 +1433,37 @@ export const SETTINGS_SCHEMA = {
|
|
|
1230
1433
|
default: true,
|
|
1231
1434
|
ui: {
|
|
1232
1435
|
tab: "interaction",
|
|
1436
|
+
group: "Input",
|
|
1233
1437
|
label: "Emoji Autocomplete",
|
|
1234
1438
|
description: "Suggest emojis from `:name:` shortcodes and expand text emoticons like `:D` or `:-)`",
|
|
1235
1439
|
},
|
|
1236
1440
|
},
|
|
1237
1441
|
|
|
1442
|
+
"paste.largeMenuThreshold": {
|
|
1443
|
+
type: "number",
|
|
1444
|
+
default: 100,
|
|
1445
|
+
ui: {
|
|
1446
|
+
tab: "interaction",
|
|
1447
|
+
group: "Input",
|
|
1448
|
+
label: "Large Paste Menu",
|
|
1449
|
+
description:
|
|
1450
|
+
"When a paste reaches this many lines, offer a menu to wrap it in a code block, wrap it in XML tags, or save it to a file. 0 disables the menu (large pastes still collapse to a [Paste] marker).",
|
|
1451
|
+
options: [
|
|
1452
|
+
{ value: "0", label: "Off" },
|
|
1453
|
+
{ value: "100", label: "100 lines" },
|
|
1454
|
+
{ value: "250", label: "250 lines" },
|
|
1455
|
+
{ value: "500", label: "500 lines" },
|
|
1456
|
+
{ value: "1000", label: "1000 lines" },
|
|
1457
|
+
],
|
|
1458
|
+
},
|
|
1459
|
+
},
|
|
1460
|
+
|
|
1238
1461
|
"startup.quiet": {
|
|
1239
1462
|
type: "boolean",
|
|
1240
1463
|
default: false,
|
|
1241
1464
|
ui: {
|
|
1242
1465
|
tab: "interaction",
|
|
1466
|
+
group: "Startup & Updates",
|
|
1243
1467
|
label: "Quiet Startup",
|
|
1244
1468
|
description: "Skip welcome screen and startup status messages",
|
|
1245
1469
|
},
|
|
@@ -1250,6 +1474,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1250
1474
|
default: true,
|
|
1251
1475
|
ui: {
|
|
1252
1476
|
tab: "interaction",
|
|
1477
|
+
group: "Startup & Updates",
|
|
1253
1478
|
label: "Setup Wizard",
|
|
1254
1479
|
description: "Show newly added onboarding steps once per setup version",
|
|
1255
1480
|
},
|
|
@@ -1260,15 +1485,82 @@ export const SETTINGS_SCHEMA = {
|
|
|
1260
1485
|
default: true,
|
|
1261
1486
|
ui: {
|
|
1262
1487
|
tab: "interaction",
|
|
1488
|
+
group: "Startup & Updates",
|
|
1263
1489
|
label: "Check for Updates",
|
|
1264
|
-
description: "
|
|
1490
|
+
description: "Check for prometheus updates on startup",
|
|
1491
|
+
},
|
|
1492
|
+
},
|
|
1493
|
+
|
|
1494
|
+
"marketplace.autoUpdate": {
|
|
1495
|
+
type: "enum",
|
|
1496
|
+
values: ["off", "notify", "auto"] as const,
|
|
1497
|
+
default: "notify",
|
|
1498
|
+
ui: {
|
|
1499
|
+
tab: "interaction",
|
|
1500
|
+
group: "Startup & Updates",
|
|
1501
|
+
label: "Marketplace Auto-Update",
|
|
1502
|
+
description: "Check for plugin updates on startup",
|
|
1503
|
+
options: [
|
|
1504
|
+
{ value: "off", label: "Off", description: "Don't check for plugin updates" },
|
|
1505
|
+
{ value: "notify", label: "Notify", description: "Check on startup and notify when updates are available" },
|
|
1506
|
+
{ value: "auto", label: "Auto", description: "Check on startup and auto-install updates" },
|
|
1507
|
+
],
|
|
1265
1508
|
},
|
|
1266
1509
|
},
|
|
1267
1510
|
|
|
1268
1511
|
collapseChangelog: {
|
|
1269
1512
|
type: "boolean",
|
|
1270
1513
|
default: false,
|
|
1271
|
-
ui: {
|
|
1514
|
+
ui: {
|
|
1515
|
+
tab: "interaction",
|
|
1516
|
+
group: "Startup & Updates",
|
|
1517
|
+
label: "Collapse Changelog",
|
|
1518
|
+
description: "Show condensed changelog after updates",
|
|
1519
|
+
},
|
|
1520
|
+
},
|
|
1521
|
+
|
|
1522
|
+
"magicKeywords.enabled": {
|
|
1523
|
+
type: "boolean",
|
|
1524
|
+
default: true,
|
|
1525
|
+
ui: {
|
|
1526
|
+
tab: "interaction",
|
|
1527
|
+
group: "Magic Keywords",
|
|
1528
|
+
label: "Magic Keywords",
|
|
1529
|
+
description: "Enable hidden notices for standalone ultrathink, orchestrate, and workflowz keywords",
|
|
1530
|
+
},
|
|
1531
|
+
},
|
|
1532
|
+
|
|
1533
|
+
"magicKeywords.ultrathink": {
|
|
1534
|
+
type: "boolean",
|
|
1535
|
+
default: true,
|
|
1536
|
+
ui: {
|
|
1537
|
+
tab: "interaction",
|
|
1538
|
+
group: "Magic Keywords",
|
|
1539
|
+
label: "Ultrathink Keyword",
|
|
1540
|
+
description: "Let standalone ultrathink request maximum automatic thinking and append its hidden notice",
|
|
1541
|
+
},
|
|
1542
|
+
},
|
|
1543
|
+
|
|
1544
|
+
"magicKeywords.orchestrate": {
|
|
1545
|
+
type: "boolean",
|
|
1546
|
+
default: true,
|
|
1547
|
+
ui: {
|
|
1548
|
+
tab: "interaction",
|
|
1549
|
+
group: "Magic Keywords",
|
|
1550
|
+
label: "Orchestrate Keyword",
|
|
1551
|
+
description: "Let standalone orchestrate append its hidden multi-agent orchestration notice",
|
|
1552
|
+
},
|
|
1553
|
+
},
|
|
1554
|
+
|
|
1555
|
+
"magicKeywords.workflow": {
|
|
1556
|
+
type: "boolean",
|
|
1557
|
+
default: true,
|
|
1558
|
+
ui: {
|
|
1559
|
+
tab: "interaction",
|
|
1560
|
+
group: "Magic Keywords",
|
|
1561
|
+
label: "Workflow Keyword",
|
|
1562
|
+
description: "Let standalone workflowz append its hidden eval workflow notice",
|
|
1563
|
+
},
|
|
1272
1564
|
},
|
|
1273
1565
|
|
|
1274
1566
|
// Notifications
|
|
@@ -1276,7 +1568,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
1276
1568
|
type: "enum",
|
|
1277
1569
|
values: ["on", "off"] as const,
|
|
1278
1570
|
default: "on",
|
|
1279
|
-
ui: {
|
|
1571
|
+
ui: {
|
|
1572
|
+
tab: "interaction",
|
|
1573
|
+
group: "Notifications",
|
|
1574
|
+
label: "Completion Notification",
|
|
1575
|
+
description: "Notify when the agent finishes a turn",
|
|
1576
|
+
},
|
|
1280
1577
|
},
|
|
1281
1578
|
|
|
1282
1579
|
"ask.timeout": {
|
|
@@ -1284,8 +1581,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
1284
1581
|
default: 0,
|
|
1285
1582
|
ui: {
|
|
1286
1583
|
tab: "interaction",
|
|
1584
|
+
group: "Notifications",
|
|
1287
1585
|
label: "Ask Timeout",
|
|
1288
|
-
description: "Auto-select recommended option after
|
|
1586
|
+
description: "Auto-select the recommended ask option after this many seconds (0 disables)",
|
|
1289
1587
|
options: [
|
|
1290
1588
|
{ value: "0", label: "Disabled" },
|
|
1291
1589
|
{ value: "15", label: "15 seconds" },
|
|
@@ -1300,14 +1598,70 @@ export const SETTINGS_SCHEMA = {
|
|
|
1300
1598
|
type: "enum",
|
|
1301
1599
|
values: ["on", "off"] as const,
|
|
1302
1600
|
default: "on",
|
|
1303
|
-
ui: {
|
|
1601
|
+
ui: {
|
|
1602
|
+
tab: "interaction",
|
|
1603
|
+
group: "Notifications",
|
|
1604
|
+
label: "Ask Notification",
|
|
1605
|
+
description: "Notify when the ask tool is waiting for input",
|
|
1606
|
+
},
|
|
1607
|
+
},
|
|
1608
|
+
|
|
1609
|
+
// Collab
|
|
1610
|
+
"collab.relayUrl": {
|
|
1611
|
+
type: "string",
|
|
1612
|
+
default: DEFAULT_RELAY_URL,
|
|
1613
|
+
ui: {
|
|
1614
|
+
tab: "interaction",
|
|
1615
|
+
group: "Collab",
|
|
1616
|
+
label: "Relay URL",
|
|
1617
|
+
description: "Relay used by /collab (wss://host[:port])",
|
|
1618
|
+
},
|
|
1619
|
+
},
|
|
1620
|
+
|
|
1621
|
+
"collab.displayName": {
|
|
1622
|
+
type: "string",
|
|
1623
|
+
default: "",
|
|
1624
|
+
ui: {
|
|
1625
|
+
tab: "interaction",
|
|
1626
|
+
group: "Collab",
|
|
1627
|
+
label: "Display Name",
|
|
1628
|
+
description: "Name shown to other collab participants (default: OS username)",
|
|
1629
|
+
},
|
|
1630
|
+
},
|
|
1631
|
+
|
|
1632
|
+
"share.serverUrl": {
|
|
1633
|
+
type: "string",
|
|
1634
|
+
default: DEFAULT_SHARE_URL,
|
|
1635
|
+
ui: {
|
|
1636
|
+
tab: "interaction",
|
|
1637
|
+
group: "Collab",
|
|
1638
|
+
label: "Share Server",
|
|
1639
|
+
description:
|
|
1640
|
+
"Share viewer/upload base used by /share (encrypted blob upload + viewer; links are <base>/<id>#<key>)",
|
|
1641
|
+
},
|
|
1642
|
+
},
|
|
1643
|
+
|
|
1644
|
+
"share.redactSecrets": {
|
|
1645
|
+
type: "boolean",
|
|
1646
|
+
default: true,
|
|
1647
|
+
ui: {
|
|
1648
|
+
tab: "interaction",
|
|
1649
|
+
group: "Collab",
|
|
1650
|
+
label: "Share Secret Redaction",
|
|
1651
|
+
description: "Run the secret obfuscator over /share snapshots before upload (uses the secrets.* config)",
|
|
1652
|
+
},
|
|
1304
1653
|
},
|
|
1305
1654
|
|
|
1306
1655
|
// Speech-to-text
|
|
1307
1656
|
"stt.enabled": {
|
|
1308
1657
|
type: "boolean",
|
|
1309
1658
|
default: false,
|
|
1310
|
-
ui: {
|
|
1659
|
+
ui: {
|
|
1660
|
+
tab: "interaction",
|
|
1661
|
+
group: "Speech",
|
|
1662
|
+
label: "Speech-to-Text",
|
|
1663
|
+
description: "Enable speech-to-text input via microphone",
|
|
1664
|
+
},
|
|
1311
1665
|
},
|
|
1312
1666
|
|
|
1313
1667
|
"stt.language": {
|
|
@@ -1317,23 +1671,15 @@ export const SETTINGS_SCHEMA = {
|
|
|
1317
1671
|
|
|
1318
1672
|
"stt.modelName": {
|
|
1319
1673
|
type: "enum",
|
|
1320
|
-
values:
|
|
1321
|
-
default:
|
|
1674
|
+
values: STT_MODEL_VALUES,
|
|
1675
|
+
default: DEFAULT_STT_MODEL_KEY,
|
|
1322
1676
|
ui: {
|
|
1323
1677
|
tab: "interaction",
|
|
1678
|
+
group: "Speech",
|
|
1324
1679
|
label: "Speech Model",
|
|
1325
|
-
description:
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
{ value: "tiny.en", label: "tiny.en", description: "English-only; fastest" },
|
|
1329
|
-
{ value: "base", label: "base", description: "Multilingual; small and fast" },
|
|
1330
|
-
{ value: "base.en", label: "base.en", description: "English-only; default" },
|
|
1331
|
-
{ value: "small", label: "small", description: "Multilingual; balanced" },
|
|
1332
|
-
{ value: "small.en", label: "small.en", description: "English-only; balanced" },
|
|
1333
|
-
{ value: "medium", label: "medium", description: "Multilingual; accurate but slower" },
|
|
1334
|
-
{ value: "medium.en", label: "medium.en", description: "English-only; accurate but slower" },
|
|
1335
|
-
{ value: "large", label: "large", description: "Multilingual; most accurate" },
|
|
1336
|
-
],
|
|
1680
|
+
description:
|
|
1681
|
+
"Local on-device speech model. Parakeet TDT v3 (sherpa-onnx) is the SoTA default; Whisper base/small/large-v3-turbo tiers (transformers.js) trade size for multilingual coverage. Downloaded on first use.",
|
|
1682
|
+
options: STT_MODEL_OPTIONS,
|
|
1337
1683
|
},
|
|
1338
1684
|
},
|
|
1339
1685
|
|
|
@@ -1347,6 +1693,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1347
1693
|
default: true,
|
|
1348
1694
|
ui: {
|
|
1349
1695
|
tab: "context",
|
|
1696
|
+
group: "General",
|
|
1350
1697
|
label: "Auto-Promote Context",
|
|
1351
1698
|
description: "Promote to a larger-context model on context overflow instead of compacting",
|
|
1352
1699
|
},
|
|
@@ -1358,6 +1705,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1358
1705
|
default: true,
|
|
1359
1706
|
ui: {
|
|
1360
1707
|
tab: "context",
|
|
1708
|
+
group: "Compaction",
|
|
1361
1709
|
label: "Auto-Compact",
|
|
1362
1710
|
description: "Automatically compact context when it gets too large",
|
|
1363
1711
|
},
|
|
@@ -1365,13 +1713,14 @@ export const SETTINGS_SCHEMA = {
|
|
|
1365
1713
|
|
|
1366
1714
|
"compaction.strategy": {
|
|
1367
1715
|
type: "enum",
|
|
1368
|
-
values: ["context-full", "handoff", "shake", "off"] as const,
|
|
1716
|
+
values: ["context-full", "handoff", "shake", "snapcompact", "off"] as const,
|
|
1369
1717
|
default: "context-full",
|
|
1370
1718
|
ui: {
|
|
1371
1719
|
tab: "context",
|
|
1720
|
+
group: "Compaction",
|
|
1372
1721
|
label: "Compaction Strategy",
|
|
1373
1722
|
description:
|
|
1374
|
-
"Choose in-place context-full maintenance, auto-handoff, surgical shake (drop heavy content), or disable auto maintenance (off)",
|
|
1723
|
+
"Choose in-place context-full maintenance, auto-handoff, surgical shake (drop heavy content), snapcompact (archive history as dense images), or disable auto maintenance (off)",
|
|
1375
1724
|
options: [
|
|
1376
1725
|
{
|
|
1377
1726
|
value: "context-full",
|
|
@@ -1384,6 +1733,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
1384
1733
|
label: "Shake",
|
|
1385
1734
|
description: "Drop heavy content (tool results + large blocks) in place; recover via artifact",
|
|
1386
1735
|
},
|
|
1736
|
+
{
|
|
1737
|
+
value: "snapcompact",
|
|
1738
|
+
label: "Snapcompact",
|
|
1739
|
+
description: "Archive history onto dense bitmap images the model reads back; no LLM call",
|
|
1740
|
+
},
|
|
1387
1741
|
{
|
|
1388
1742
|
value: "off",
|
|
1389
1743
|
label: "Off",
|
|
@@ -1398,6 +1752,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1398
1752
|
default: -1,
|
|
1399
1753
|
ui: {
|
|
1400
1754
|
tab: "context",
|
|
1755
|
+
group: "Compaction",
|
|
1401
1756
|
label: "Compaction Threshold",
|
|
1402
1757
|
description: "Percent threshold for context maintenance; set to Default to use legacy reserve-based behavior",
|
|
1403
1758
|
options: [
|
|
@@ -1422,6 +1777,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1422
1777
|
default: -1,
|
|
1423
1778
|
ui: {
|
|
1424
1779
|
tab: "context",
|
|
1780
|
+
group: "Compaction",
|
|
1425
1781
|
label: "Compaction Token Limit",
|
|
1426
1782
|
description: "Fixed token limit for context maintenance; overrides percentage if set",
|
|
1427
1783
|
options: [
|
|
@@ -1442,6 +1798,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1442
1798
|
default: false,
|
|
1443
1799
|
ui: {
|
|
1444
1800
|
tab: "context",
|
|
1801
|
+
group: "Compaction",
|
|
1445
1802
|
label: "Save Handoff Docs",
|
|
1446
1803
|
description: "Save generated handoff documents to markdown files for the auto-handoff flow",
|
|
1447
1804
|
},
|
|
@@ -1452,6 +1809,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1452
1809
|
default: true,
|
|
1453
1810
|
ui: {
|
|
1454
1811
|
tab: "context",
|
|
1812
|
+
group: "Compaction",
|
|
1455
1813
|
label: "Remote Compaction",
|
|
1456
1814
|
description: "Use remote compaction endpoints when available instead of local summarization",
|
|
1457
1815
|
},
|
|
@@ -1471,6 +1829,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1471
1829
|
default: false,
|
|
1472
1830
|
ui: {
|
|
1473
1831
|
tab: "context",
|
|
1832
|
+
group: "Compaction",
|
|
1474
1833
|
label: "Idle Compaction",
|
|
1475
1834
|
description: "Compact context while idle when token count exceeds threshold",
|
|
1476
1835
|
},
|
|
@@ -1481,6 +1840,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1481
1840
|
default: 200000,
|
|
1482
1841
|
ui: {
|
|
1483
1842
|
tab: "context",
|
|
1843
|
+
group: "Compaction",
|
|
1484
1844
|
label: "Idle Compaction Threshold",
|
|
1485
1845
|
description: "Token count above which idle compaction triggers",
|
|
1486
1846
|
options: [
|
|
@@ -1502,6 +1862,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1502
1862
|
default: 300,
|
|
1503
1863
|
ui: {
|
|
1504
1864
|
tab: "context",
|
|
1865
|
+
group: "Compaction",
|
|
1505
1866
|
label: "Idle Compaction Delay",
|
|
1506
1867
|
description: "Seconds to wait while idle before compacting",
|
|
1507
1868
|
options: [
|
|
@@ -1514,87 +1875,288 @@ export const SETTINGS_SCHEMA = {
|
|
|
1514
1875
|
],
|
|
1515
1876
|
},
|
|
1516
1877
|
},
|
|
1517
|
-
|
|
1518
|
-
"
|
|
1878
|
+
|
|
1879
|
+
"compaction.supersedeReads": {
|
|
1519
1880
|
type: "boolean",
|
|
1520
|
-
default:
|
|
1521
|
-
ui: {
|
|
1881
|
+
default: true,
|
|
1882
|
+
ui: {
|
|
1883
|
+
tab: "context",
|
|
1884
|
+
group: "Compaction",
|
|
1885
|
+
label: "Supersede Stale Reads",
|
|
1886
|
+
description: "Prune older read results when the same file is read again (cache-aware, runs every turn)",
|
|
1887
|
+
},
|
|
1522
1888
|
},
|
|
1523
1889
|
|
|
1524
|
-
"
|
|
1525
|
-
|
|
1526
|
-
// Memories
|
|
1527
|
-
// Legacy local-memory enable flag kept only for back-compat migration.
|
|
1528
|
-
// Hidden from UI — users should use `memory.backend` instead.
|
|
1529
|
-
"memories.enabled": {
|
|
1890
|
+
"compaction.dropUseless": {
|
|
1530
1891
|
type: "boolean",
|
|
1531
|
-
default:
|
|
1892
|
+
default: true,
|
|
1893
|
+
ui: {
|
|
1894
|
+
tab: "context",
|
|
1895
|
+
group: "Compaction",
|
|
1896
|
+
label: "Elide Uneventful Results",
|
|
1897
|
+
description:
|
|
1898
|
+
"Prune tool results flagged contextually useless (no matches, timed-out waits) once consumed (cache-aware)",
|
|
1899
|
+
},
|
|
1532
1900
|
},
|
|
1533
1901
|
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
"memories.maxRolloutAgeDays": { type: "number", default: 30 },
|
|
1537
|
-
|
|
1538
|
-
"memories.minRolloutIdleHours": { type: "number", default: 12 },
|
|
1539
|
-
|
|
1540
|
-
"memories.threadScanLimit": { type: "number", default: 300 },
|
|
1541
|
-
|
|
1542
|
-
"memories.maxRawMemoriesForGlobal": { type: "number", default: 200 },
|
|
1543
|
-
|
|
1544
|
-
"memories.stage1Concurrency": { type: "number", default: 8 },
|
|
1545
|
-
|
|
1546
|
-
"memories.stage1LeaseSeconds": { type: "number", default: 120 },
|
|
1547
|
-
|
|
1548
|
-
"memories.stage1RetryDelaySeconds": { type: "number", default: 120 },
|
|
1549
|
-
|
|
1550
|
-
"memories.phase2LeaseSeconds": { type: "number", default: 180 },
|
|
1551
|
-
|
|
1552
|
-
"memories.phase2RetryDelaySeconds": { type: "number", default: 180 },
|
|
1553
|
-
|
|
1554
|
-
"memories.phase2HeartbeatSeconds": { type: "number", default: 30 },
|
|
1555
|
-
|
|
1556
|
-
"memories.rolloutPayloadPercent": { type: "number", default: 0.7 },
|
|
1557
|
-
|
|
1558
|
-
"memories.phase1InputTokenLimit": { type: "number", default: 4000 },
|
|
1559
|
-
|
|
1560
|
-
"memories.fallbackTokenLimit": { type: "number", default: 16000 },
|
|
1561
|
-
|
|
1562
|
-
"memories.summaryInjectionTokenLimit": { type: "number", default: 5000 },
|
|
1563
|
-
|
|
1564
|
-
// Memory backend selector — picks between local memories pipeline,
|
|
1565
|
-
// Prometheus Memory local SQLite, Hindsight remote memory, or off. Legacy
|
|
1566
|
-
// `memories.enabled` keeps gating the local backend; see config/settings.ts
|
|
1567
|
-
// migration for details.
|
|
1568
|
-
"memory.backend": {
|
|
1902
|
+
// Experimental: snapcompact inline imaging (transient, per-request; never persisted)
|
|
1903
|
+
"snapcompact.systemPrompt": {
|
|
1569
1904
|
type: "enum",
|
|
1570
|
-
values: ["
|
|
1571
|
-
default: "
|
|
1905
|
+
values: ["none", "agents-md", "all"] as const,
|
|
1906
|
+
default: "none",
|
|
1572
1907
|
ui: {
|
|
1573
|
-
tab: "
|
|
1574
|
-
|
|
1575
|
-
|
|
1908
|
+
tab: "context",
|
|
1909
|
+
group: "Experimental",
|
|
1910
|
+
label: "Snapcompact System Prompt",
|
|
1911
|
+
description:
|
|
1912
|
+
"Experimental: render selected system prompt text as dense PNG image(s) and attach to the first user message (vision models only). Saves tokens; loses prompt caching for imaged text.",
|
|
1576
1913
|
options: [
|
|
1577
|
-
{ value: "
|
|
1578
|
-
{ value: "local", label: "Local", description: "Local rollout summarisation pipeline (memory_summary.md)" },
|
|
1579
|
-
{ value: "hindsight", label: "Hindsight", description: "Vectorize Hindsight remote memory service" },
|
|
1914
|
+
{ value: "none", label: "None", description: "Keep the system prompt as text." },
|
|
1580
1915
|
{
|
|
1581
|
-
value: "
|
|
1582
|
-
label: "
|
|
1583
|
-
description: "
|
|
1916
|
+
value: "agents-md",
|
|
1917
|
+
label: "AGENTS.md",
|
|
1918
|
+
description: "Only move loaded context-file instructions to images, when that saves tokens.",
|
|
1919
|
+
},
|
|
1920
|
+
{
|
|
1921
|
+
value: "all",
|
|
1922
|
+
label: "All",
|
|
1923
|
+
description: "Move the full system prompt to images, when that saves tokens.",
|
|
1584
1924
|
},
|
|
1585
1925
|
],
|
|
1586
1926
|
},
|
|
1587
1927
|
},
|
|
1588
1928
|
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
"selfImprovement.mode": {
|
|
1593
|
-
type: "enum",
|
|
1594
|
-
values: ["memory-and-skills", "off"] as const,
|
|
1595
|
-
default: "memory-and-skills",
|
|
1929
|
+
"snapcompact.toolResults": {
|
|
1930
|
+
type: "boolean",
|
|
1931
|
+
default: false,
|
|
1596
1932
|
ui: {
|
|
1597
|
-
tab: "
|
|
1933
|
+
tab: "context",
|
|
1934
|
+
group: "Experimental",
|
|
1935
|
+
label: "Snapcompact Tool Results",
|
|
1936
|
+
description:
|
|
1937
|
+
"Experimental: render large historical tool results as dense PNG image(s) instead of text (vision models only). Saves tokens on accumulated read/search output.",
|
|
1938
|
+
},
|
|
1939
|
+
},
|
|
1940
|
+
|
|
1941
|
+
"snapcompact.shape": {
|
|
1942
|
+
type: "enum",
|
|
1943
|
+
values: ["auto", ...SHAPE_VARIANT_NAMES] as const,
|
|
1944
|
+
default: "auto",
|
|
1945
|
+
ui: {
|
|
1946
|
+
tab: "context",
|
|
1947
|
+
group: "Experimental",
|
|
1948
|
+
label: "Snapcompact Shape",
|
|
1949
|
+
description:
|
|
1950
|
+
"Frame shape snapcompact prints text with (compaction archive and inline imaging). Auto picks a shape tuned for the current model.",
|
|
1951
|
+
options: [
|
|
1952
|
+
{
|
|
1953
|
+
value: "auto",
|
|
1954
|
+
label: "Auto",
|
|
1955
|
+
description: "Picks a shape tuned for the current model, falling back to its provider family.",
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
value: "8x8r-bw",
|
|
1959
|
+
label: "8x8 repeated, black",
|
|
1960
|
+
description:
|
|
1961
|
+
"unscii square cell, black ink, every line printed twice with the copy on a pale highlight band.",
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
value: "8x8r-sent",
|
|
1965
|
+
label: "8x8 repeated, sentence hues",
|
|
1966
|
+
description: "Repeated grid with ink cycling six hues at sentence boundaries.",
|
|
1967
|
+
},
|
|
1968
|
+
{
|
|
1969
|
+
value: "8x8u-bw",
|
|
1970
|
+
label: "8x8, black",
|
|
1971
|
+
description: "Plain unscii square cell, single-printed lines, black ink.",
|
|
1972
|
+
},
|
|
1973
|
+
{
|
|
1974
|
+
value: "8x8u-sent",
|
|
1975
|
+
label: "8x8, sentence hues",
|
|
1976
|
+
description: "Plain unscii square cell with sentence-hue ink.",
|
|
1977
|
+
},
|
|
1978
|
+
{
|
|
1979
|
+
value: "6x6u-bw",
|
|
1980
|
+
label: "6x6 dense, black",
|
|
1981
|
+
description: "unscii squeezed to 6x6 — densest readable cell, fewest frames — in black ink.",
|
|
1982
|
+
},
|
|
1983
|
+
{
|
|
1984
|
+
value: "6x6u-sent",
|
|
1985
|
+
label: "6x6 dense, sentence hues",
|
|
1986
|
+
description: "Densest cell with sentence-hue ink.",
|
|
1987
|
+
},
|
|
1988
|
+
{
|
|
1989
|
+
value: "5x8-bw",
|
|
1990
|
+
label: "5x8 legacy, black",
|
|
1991
|
+
description: "Original X.org 5x8 glyphs on the 2576px frame, black ink.",
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
value: "5x8-sent",
|
|
1995
|
+
label: "5x8 legacy, sentence hues",
|
|
1996
|
+
description: "The original snapcompact shape (pre-shape-table sessions rendered this).",
|
|
1997
|
+
},
|
|
1998
|
+
{
|
|
1999
|
+
value: "6x12-dim",
|
|
2000
|
+
label: "6x12, dimmed stopwords",
|
|
2001
|
+
description: "X.org 6x12 glyphs, black ink, function words dimmed gray.",
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
value: "8x13-bw",
|
|
2005
|
+
label: "8x13, black",
|
|
2006
|
+
description: "X.org 8x13 glyphs, black ink.",
|
|
2007
|
+
},
|
|
2008
|
+
{
|
|
2009
|
+
value: "8on16-bw",
|
|
2010
|
+
label: "8x13 on 16px pitch, black",
|
|
2011
|
+
description: "8x13 glyphs on an 8x16 cell (extra leading), black ink.",
|
|
2012
|
+
},
|
|
2013
|
+
{
|
|
2014
|
+
value: "8on22-bw",
|
|
2015
|
+
label: "8x13 on 22px pitch (leading), black",
|
|
2016
|
+
description:
|
|
2017
|
+
"8x13 glyphs on an 8x22 cell — extra line spacing so rows don't crowd. Default for OpenAI/Google.",
|
|
2018
|
+
},
|
|
2019
|
+
{
|
|
2020
|
+
value: "11on16-bw",
|
|
2021
|
+
label: "8x13 on 11px advance (tracking), black",
|
|
2022
|
+
description:
|
|
2023
|
+
"8x13 glyphs on an 11x16 cell — extra letter spacing so characters don't merge. Default for Anthropic.",
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
value: "doc-8on16-bw",
|
|
2027
|
+
label: "Doc 8on16, black",
|
|
2028
|
+
description: "Two word-wrapped newspaper columns of 8x13 glyphs on a 16px pitch, black ink.",
|
|
2029
|
+
},
|
|
2030
|
+
{
|
|
2031
|
+
value: "doc-8on16-sent",
|
|
2032
|
+
label: "Doc 8on16, sentence hues",
|
|
2033
|
+
description: "Two-column doc layout with sentence-hue ink.",
|
|
2034
|
+
},
|
|
2035
|
+
{
|
|
2036
|
+
value: "doc-8on16-sent-dim",
|
|
2037
|
+
label: "Doc 8on16, sentence hues + dimmed stopwords",
|
|
2038
|
+
description: "Two-column doc layout, sentence-hue ink, function words dimmed gray.",
|
|
2039
|
+
},
|
|
2040
|
+
],
|
|
2041
|
+
},
|
|
2042
|
+
},
|
|
2043
|
+
|
|
2044
|
+
// Branch summaries
|
|
2045
|
+
"branchSummary.enabled": {
|
|
2046
|
+
type: "boolean",
|
|
2047
|
+
default: false,
|
|
2048
|
+
ui: {
|
|
2049
|
+
tab: "context",
|
|
2050
|
+
group: "General",
|
|
2051
|
+
label: "Branch Summaries",
|
|
2052
|
+
description: "Prompt to summarize when leaving a branch",
|
|
2053
|
+
},
|
|
2054
|
+
},
|
|
2055
|
+
|
|
2056
|
+
"branchSummary.reserveTokens": { type: "number", default: 16384 },
|
|
2057
|
+
|
|
2058
|
+
// Memories
|
|
2059
|
+
// Legacy local-memory enable flag kept only for back-compat migration.
|
|
2060
|
+
// Hidden from UI — users should use `memory.backend` instead.
|
|
2061
|
+
"memories.enabled": {
|
|
2062
|
+
type: "boolean",
|
|
2063
|
+
default: false,
|
|
2064
|
+
},
|
|
2065
|
+
|
|
2066
|
+
"memories.maxRolloutsPerStartup": { type: "number", default: 64 },
|
|
2067
|
+
|
|
2068
|
+
"memories.maxRolloutAgeDays": { type: "number", default: 30 },
|
|
2069
|
+
|
|
2070
|
+
"memories.minRolloutIdleHours": { type: "number", default: 12 },
|
|
2071
|
+
|
|
2072
|
+
"memories.threadScanLimit": { type: "number", default: 300 },
|
|
2073
|
+
|
|
2074
|
+
"memories.maxRawMemoriesForGlobal": { type: "number", default: 200 },
|
|
2075
|
+
|
|
2076
|
+
"memories.stage1Concurrency": { type: "number", default: 8 },
|
|
2077
|
+
|
|
2078
|
+
"memories.stage1LeaseSeconds": { type: "number", default: 120 },
|
|
2079
|
+
|
|
2080
|
+
"memories.stage1RetryDelaySeconds": { type: "number", default: 120 },
|
|
2081
|
+
|
|
2082
|
+
"memories.phase2LeaseSeconds": { type: "number", default: 180 },
|
|
2083
|
+
|
|
2084
|
+
"memories.phase2RetryDelaySeconds": { type: "number", default: 180 },
|
|
2085
|
+
|
|
2086
|
+
"memories.phase2HeartbeatSeconds": { type: "number", default: 30 },
|
|
2087
|
+
|
|
2088
|
+
"memories.rolloutPayloadPercent": { type: "number", default: 0.7 },
|
|
2089
|
+
|
|
2090
|
+
"memories.phase1InputTokenLimit": { type: "number", default: 4000 },
|
|
2091
|
+
|
|
2092
|
+
"memories.fallbackTokenLimit": { type: "number", default: 16000 },
|
|
2093
|
+
|
|
2094
|
+
"memories.summaryInjectionTokenLimit": { type: "number", default: 5000 },
|
|
2095
|
+
|
|
2096
|
+
// Memory backend selector — picks between local memories pipeline,
|
|
2097
|
+
// Mnemopi local SQLite, Hindsight remote memory, or off. Legacy
|
|
2098
|
+
// `memories.enabled` keeps gating the local backend; see config/settings.ts
|
|
2099
|
+
// migration for details.
|
|
2100
|
+
"memory.backend": {
|
|
2101
|
+
type: "enum",
|
|
2102
|
+
values: ["off", "local", "hindsight", "mnemopi"] as const,
|
|
2103
|
+
default: "off",
|
|
2104
|
+
ui: {
|
|
2105
|
+
tab: "memory",
|
|
2106
|
+
group: "General",
|
|
2107
|
+
label: "Memory Backend",
|
|
2108
|
+
description: "Off, local summary pipeline, Mnemopi SQLite, or Hindsight remote memory",
|
|
2109
|
+
options: [
|
|
2110
|
+
{ value: "off", label: "Off", description: "No memory subsystem runs" },
|
|
2111
|
+
{ value: "local", label: "Local", description: "Local rollout summarisation pipeline (memory_summary.md)" },
|
|
2112
|
+
{ value: "hindsight", label: "Hindsight", description: "Vectorize Hindsight remote memory service" },
|
|
2113
|
+
{
|
|
2114
|
+
value: "mnemopi",
|
|
2115
|
+
label: "Mnemopi",
|
|
2116
|
+
description: "Local SQLite recall/retain backend with optional embeddings",
|
|
2117
|
+
},
|
|
2118
|
+
],
|
|
2119
|
+
},
|
|
2120
|
+
},
|
|
2121
|
+
|
|
2122
|
+
// Auto-Learn (experimental): post-stop nudge to capture lessons to memory
|
|
2123
|
+
// and mint/enhance isolated managed skills under ~/.prometheus/agent/managed-skills.
|
|
2124
|
+
// Master flag is default-off -> zero footprint; sub-flags gate behaviour.
|
|
2125
|
+
"autolearn.enabled": {
|
|
2126
|
+
type: "boolean",
|
|
2127
|
+
default: false,
|
|
2128
|
+
ui: {
|
|
2129
|
+
tab: "memory",
|
|
2130
|
+
group: "Auto-Learn",
|
|
2131
|
+
label: "Auto-Learn (experimental)",
|
|
2132
|
+
description:
|
|
2133
|
+
"After the agent stops, nudge it to capture lessons to memory and create/enhance isolated managed skills",
|
|
2134
|
+
},
|
|
2135
|
+
},
|
|
2136
|
+
"autolearn.autoContinue": {
|
|
2137
|
+
type: "boolean",
|
|
2138
|
+
default: false,
|
|
2139
|
+
ui: {
|
|
2140
|
+
tab: "memory",
|
|
2141
|
+
group: "Auto-Learn",
|
|
2142
|
+
label: "Auto-run capture at stop",
|
|
2143
|
+
description:
|
|
2144
|
+
"When on, auto-run one capture turn at stop (uses extra tokens). Off = passive reminder on your next turn.",
|
|
2145
|
+
condition: "autolearnActive",
|
|
2146
|
+
},
|
|
2147
|
+
},
|
|
2148
|
+
// Config-file-only knob (numbers without `options` are hidden from the UI).
|
|
2149
|
+
"autolearn.minToolCalls": { type: "number", default: 5 },
|
|
2150
|
+
|
|
2151
|
+
// Self-improvement trajectory. Automatic learning may update memory, user
|
|
2152
|
+
// profile, and generated skills; SOUL/identity stays stable and proposal-only.
|
|
2153
|
+
"selfImprovement.mode": {
|
|
2154
|
+
type: "enum",
|
|
2155
|
+
values: ["memory-and-skills", "off"] as const,
|
|
2156
|
+
default: "memory-and-skills",
|
|
2157
|
+
ui: {
|
|
2158
|
+
tab: "memory",
|
|
2159
|
+
group: "Self Improvement",
|
|
1598
2160
|
label: "Self Improvement",
|
|
1599
2161
|
description:
|
|
1600
2162
|
"Hermes-style native learning: memory, user profile, and skills update automatically; SOUL stays stable",
|
|
@@ -1614,6 +2176,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1614
2176
|
default: "memory-and-skills",
|
|
1615
2177
|
ui: {
|
|
1616
2178
|
tab: "memory",
|
|
2179
|
+
group: "Self Improvement",
|
|
1617
2180
|
label: "Post-Turn Review",
|
|
1618
2181
|
description:
|
|
1619
2182
|
"Hermes-style background review after settled turns, routed through the native Prometheus memory pipeline",
|
|
@@ -1633,6 +2196,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1633
2196
|
default: 10,
|
|
1634
2197
|
ui: {
|
|
1635
2198
|
tab: "memory",
|
|
2199
|
+
group: "Self Improvement",
|
|
1636
2200
|
label: "Review Turn Interval",
|
|
1637
2201
|
description: "User turns between post-turn self-improvement reviews; 10 mirrors Hermes",
|
|
1638
2202
|
},
|
|
@@ -1643,6 +2207,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1643
2207
|
default: "propose",
|
|
1644
2208
|
ui: {
|
|
1645
2209
|
tab: "memory",
|
|
2210
|
+
group: "Self Improvement",
|
|
1646
2211
|
label: "Identity Review",
|
|
1647
2212
|
description: "Proposal-only SOUL review; never rewrites SOUL.md automatically",
|
|
1648
2213
|
options: [
|
|
@@ -1661,6 +2226,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1661
2226
|
default: "dry-run",
|
|
1662
2227
|
ui: {
|
|
1663
2228
|
tab: "memory",
|
|
2229
|
+
group: "Self Improvement",
|
|
1664
2230
|
label: "Skill Curator",
|
|
1665
2231
|
description: "Report-only generated-skill curation with recoverable archive lifecycle",
|
|
1666
2232
|
options: [
|
|
@@ -1678,6 +2244,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1678
2244
|
default: 30,
|
|
1679
2245
|
ui: {
|
|
1680
2246
|
tab: "memory",
|
|
2247
|
+
group: "Self Improvement",
|
|
1681
2248
|
label: "Skill Stale Days",
|
|
1682
2249
|
description: "Days of no generated-skill activity before the dry-run curator marks it stale",
|
|
1683
2250
|
},
|
|
@@ -1687,51 +2254,55 @@ export const SETTINGS_SCHEMA = {
|
|
|
1687
2254
|
default: 90,
|
|
1688
2255
|
ui: {
|
|
1689
2256
|
tab: "memory",
|
|
2257
|
+
group: "Self Improvement",
|
|
1690
2258
|
label: "Skill Archive Days",
|
|
1691
2259
|
description: "Days of no generated-skill activity before the dry-run curator suggests archive",
|
|
1692
2260
|
},
|
|
1693
2261
|
},
|
|
1694
2262
|
|
|
1695
|
-
//
|
|
1696
|
-
"
|
|
2263
|
+
// Mnemopi local SQLite memory backend.
|
|
2264
|
+
"mnemopi.dbPath": {
|
|
1697
2265
|
type: "string",
|
|
1698
2266
|
default: undefined,
|
|
1699
2267
|
ui: {
|
|
1700
2268
|
tab: "memory",
|
|
1701
|
-
|
|
2269
|
+
group: "Mnemopi",
|
|
2270
|
+
label: "Mnemopi DB Path",
|
|
1702
2271
|
description: "Optional SQLite DB path. Defaults to the agent memories directory.",
|
|
1703
|
-
condition: "
|
|
2272
|
+
condition: "mnemopiActive",
|
|
1704
2273
|
},
|
|
1705
2274
|
},
|
|
1706
|
-
"
|
|
2275
|
+
"mnemopi.bank": {
|
|
1707
2276
|
type: "string",
|
|
1708
2277
|
default: undefined,
|
|
1709
2278
|
ui: {
|
|
1710
2279
|
tab: "memory",
|
|
1711
|
-
|
|
2280
|
+
group: "Mnemopi",
|
|
2281
|
+
label: "Mnemopi Bank",
|
|
1712
2282
|
description: "Optional shared bank base name. Per-project modes derive project-local banks from it.",
|
|
1713
|
-
condition: "
|
|
2283
|
+
condition: "mnemopiActive",
|
|
1714
2284
|
},
|
|
1715
2285
|
},
|
|
1716
|
-
"
|
|
2286
|
+
"mnemopi.scoping": {
|
|
1717
2287
|
type: "enum",
|
|
1718
2288
|
values: ["global", "per-project", "per-project-tagged"] as const,
|
|
1719
2289
|
default: "per-project",
|
|
1720
2290
|
ui: {
|
|
1721
2291
|
tab: "memory",
|
|
1722
|
-
|
|
2292
|
+
group: "Mnemopi",
|
|
2293
|
+
label: "Mnemopi Scoping",
|
|
1723
2294
|
description:
|
|
1724
2295
|
"global = one shared bank; per-project = isolated bank per cwd; per-project-tagged = project-local writes plus global recall visibility",
|
|
1725
2296
|
options: [
|
|
1726
2297
|
{
|
|
1727
2298
|
value: "global",
|
|
1728
2299
|
label: "Global",
|
|
1729
|
-
description: "One shared
|
|
2300
|
+
description: "One shared Mnemopi bank for every project",
|
|
1730
2301
|
},
|
|
1731
2302
|
{
|
|
1732
2303
|
value: "per-project",
|
|
1733
2304
|
label: "Per project",
|
|
1734
|
-
description: "Project-local
|
|
2305
|
+
description: "Project-local Mnemopi bank per cwd basename",
|
|
1735
2306
|
},
|
|
1736
2307
|
{
|
|
1737
2308
|
value: "per-project-tagged",
|
|
@@ -1739,121 +2310,179 @@ export const SETTINGS_SCHEMA = {
|
|
|
1739
2310
|
description: "Write to a project-local bank but merge project + shared recall results",
|
|
1740
2311
|
},
|
|
1741
2312
|
],
|
|
1742
|
-
condition: "
|
|
2313
|
+
condition: "mnemopiActive",
|
|
1743
2314
|
},
|
|
1744
2315
|
},
|
|
1745
|
-
"
|
|
2316
|
+
"mnemopi.embeddingVariant": {
|
|
2317
|
+
type: "enum",
|
|
2318
|
+
values: ["en", "multilingual"] as const,
|
|
2319
|
+
default: "en",
|
|
2320
|
+
ui: {
|
|
2321
|
+
tab: "memory",
|
|
2322
|
+
group: "Mnemopi",
|
|
2323
|
+
label: "Embedding variant",
|
|
2324
|
+
description:
|
|
2325
|
+
"Local embedding model family. en = stronger English model; multilingual = cross-language model. Changing this rebuilds existing memory embeddings on next start.",
|
|
2326
|
+
options: [
|
|
2327
|
+
{
|
|
2328
|
+
value: "en",
|
|
2329
|
+
label: "English (bge-base-en-v1.5)",
|
|
2330
|
+
description: "BAAI/bge-base-en-v1.5 (768d), English-only",
|
|
2331
|
+
},
|
|
2332
|
+
{
|
|
2333
|
+
value: "multilingual",
|
|
2334
|
+
label: "Multilingual (multilingual-e5-large)",
|
|
2335
|
+
description: "intfloat/multilingual-e5-large (1024d), cross-language recall",
|
|
2336
|
+
},
|
|
2337
|
+
],
|
|
2338
|
+
condition: "mnemopiActive",
|
|
2339
|
+
},
|
|
2340
|
+
},
|
|
2341
|
+
"mnemopi.autoRecall": {
|
|
1746
2342
|
type: "boolean",
|
|
1747
2343
|
default: true,
|
|
1748
2344
|
ui: {
|
|
1749
2345
|
tab: "memory",
|
|
1750
|
-
|
|
2346
|
+
group: "Mnemopi",
|
|
2347
|
+
label: "Mnemopi Auto Recall",
|
|
1751
2348
|
description: "Recall local memories into the first turn of each session",
|
|
1752
|
-
condition: "
|
|
2349
|
+
condition: "mnemopiActive",
|
|
1753
2350
|
},
|
|
1754
2351
|
},
|
|
1755
|
-
"
|
|
2352
|
+
"mnemopi.autoRetain": {
|
|
1756
2353
|
type: "boolean",
|
|
1757
2354
|
default: true,
|
|
1758
2355
|
ui: {
|
|
1759
2356
|
tab: "memory",
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
2357
|
+
group: "Mnemopi",
|
|
2358
|
+
label: "Mnemopi Auto Retain",
|
|
2359
|
+
description: "Retain completed conversation turns into local Mnemopi memory",
|
|
2360
|
+
condition: "mnemopiActive",
|
|
2361
|
+
},
|
|
2362
|
+
},
|
|
2363
|
+
"mnemopi.polyphonicRecall": {
|
|
2364
|
+
type: "boolean",
|
|
2365
|
+
default: false,
|
|
2366
|
+
ui: {
|
|
2367
|
+
tab: "memory",
|
|
2368
|
+
group: "Mnemopi",
|
|
2369
|
+
label: "Mnemopi Polyphonic Recall",
|
|
2370
|
+
description: "Enable 4-voice recall (vector, graph, fact, temporal) fused with reciprocal rank fusion",
|
|
2371
|
+
condition: "mnemopiActive",
|
|
2372
|
+
},
|
|
2373
|
+
},
|
|
2374
|
+
"mnemopi.enhancedRecall": {
|
|
2375
|
+
type: "boolean",
|
|
2376
|
+
default: false,
|
|
2377
|
+
ui: {
|
|
2378
|
+
tab: "memory",
|
|
2379
|
+
group: "Mnemopi",
|
|
2380
|
+
label: "Mnemopi Enhanced Recall",
|
|
2381
|
+
description: "Enable the tiered query result cache for repeated and similar recall queries",
|
|
2382
|
+
condition: "mnemopiActive",
|
|
1763
2383
|
},
|
|
1764
2384
|
},
|
|
1765
|
-
"
|
|
2385
|
+
"mnemopi.noEmbeddings": {
|
|
1766
2386
|
type: "boolean",
|
|
1767
2387
|
default: false,
|
|
1768
2388
|
ui: {
|
|
1769
2389
|
tab: "memory",
|
|
1770
|
-
|
|
2390
|
+
group: "Mnemopi",
|
|
2391
|
+
label: "Mnemopi Disable Embeddings",
|
|
1771
2392
|
description: "Force deterministic FTS-only recall instead of vector embeddings",
|
|
1772
|
-
condition: "
|
|
2393
|
+
condition: "mnemopiActive",
|
|
1773
2394
|
},
|
|
1774
2395
|
},
|
|
1775
|
-
"
|
|
2396
|
+
"mnemopi.embeddingModel": {
|
|
1776
2397
|
type: "string",
|
|
1777
2398
|
default: undefined,
|
|
1778
2399
|
ui: {
|
|
1779
2400
|
tab: "memory",
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
2401
|
+
group: "Mnemopi",
|
|
2402
|
+
label: "Mnemopi Embedding Model",
|
|
2403
|
+
description:
|
|
2404
|
+
"Advanced: explicit embedding model id that overrides the variant. Leave empty to use mnemopi.embeddingVariant.",
|
|
2405
|
+
condition: "mnemopiActive",
|
|
1783
2406
|
},
|
|
1784
2407
|
},
|
|
1785
|
-
"
|
|
2408
|
+
"mnemopi.embeddingApiUrl": {
|
|
1786
2409
|
type: "string",
|
|
1787
2410
|
default: undefined,
|
|
1788
2411
|
ui: {
|
|
1789
2412
|
tab: "memory",
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
2413
|
+
group: "Mnemopi",
|
|
2414
|
+
label: "Mnemopi Embedding API URL",
|
|
2415
|
+
description: "Optional OpenAI-compatible embedding endpoint passed to Mnemopi",
|
|
2416
|
+
condition: "mnemopiActive",
|
|
1793
2417
|
},
|
|
1794
2418
|
},
|
|
1795
|
-
"
|
|
2419
|
+
"mnemopi.embeddingApiKey": {
|
|
1796
2420
|
type: "string",
|
|
1797
2421
|
default: undefined,
|
|
1798
2422
|
ui: {
|
|
1799
2423
|
tab: "memory",
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
2424
|
+
group: "Mnemopi",
|
|
2425
|
+
label: "Mnemopi Embedding API Key",
|
|
2426
|
+
description: "Optional embedding API key passed to Mnemopi",
|
|
2427
|
+
condition: "mnemopiActive",
|
|
1803
2428
|
},
|
|
1804
2429
|
},
|
|
1805
|
-
"
|
|
2430
|
+
"mnemopi.llmMode": {
|
|
1806
2431
|
type: "enum",
|
|
1807
2432
|
values: ["none", "smol", "remote"] as const,
|
|
1808
2433
|
default: "smol",
|
|
1809
2434
|
ui: {
|
|
1810
2435
|
tab: "memory",
|
|
1811
|
-
|
|
2436
|
+
group: "Mnemopi",
|
|
2437
|
+
label: "Mnemopi LLM Mode",
|
|
1812
2438
|
description: "Use no LLM, the configured smol model, or a remote OpenAI-compatible endpoint",
|
|
1813
|
-
condition: "
|
|
2439
|
+
condition: "mnemopiActive",
|
|
1814
2440
|
options: [
|
|
1815
|
-
{ value: "none", label: "None", description: "Disable
|
|
2441
|
+
{ value: "none", label: "None", description: "Disable Mnemopi LLM-backed extraction" },
|
|
1816
2442
|
{ value: "smol", label: "Smol", description: "Use the configured Prometheus smol model" },
|
|
1817
|
-
{ value: "remote", label: "Remote", description: "Use the
|
|
2443
|
+
{ value: "remote", label: "Remote", description: "Use the Mnemopi remote LLM settings below" },
|
|
1818
2444
|
],
|
|
1819
2445
|
},
|
|
1820
2446
|
},
|
|
1821
|
-
"
|
|
2447
|
+
"mnemopi.llmBaseUrl": {
|
|
1822
2448
|
type: "string",
|
|
1823
2449
|
default: undefined,
|
|
1824
2450
|
ui: {
|
|
1825
2451
|
tab: "memory",
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
2452
|
+
group: "Mnemopi",
|
|
2453
|
+
label: "Mnemopi LLM Base URL",
|
|
2454
|
+
description: "Optional OpenAI-compatible LLM endpoint for Mnemopi remote mode",
|
|
2455
|
+
condition: "mnemopiActive",
|
|
1829
2456
|
},
|
|
1830
2457
|
},
|
|
1831
|
-
"
|
|
2458
|
+
"mnemopi.llmApiKey": {
|
|
1832
2459
|
type: "string",
|
|
1833
2460
|
default: undefined,
|
|
1834
2461
|
ui: {
|
|
1835
2462
|
tab: "memory",
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
2463
|
+
group: "Mnemopi",
|
|
2464
|
+
label: "Mnemopi LLM API Key",
|
|
2465
|
+
description: "Optional LLM API key for Mnemopi remote mode",
|
|
2466
|
+
condition: "mnemopiActive",
|
|
1839
2467
|
},
|
|
1840
2468
|
},
|
|
1841
|
-
"
|
|
2469
|
+
"mnemopi.llmModel": {
|
|
1842
2470
|
type: "string",
|
|
1843
2471
|
default: undefined,
|
|
1844
2472
|
ui: {
|
|
1845
2473
|
tab: "memory",
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
2474
|
+
group: "Mnemopi",
|
|
2475
|
+
label: "Mnemopi LLM Model",
|
|
2476
|
+
description: "Optional LLM model name for Mnemopi remote mode",
|
|
2477
|
+
condition: "mnemopiActive",
|
|
1849
2478
|
},
|
|
1850
2479
|
},
|
|
1851
|
-
"
|
|
1852
|
-
"
|
|
1853
|
-
"
|
|
1854
|
-
"
|
|
1855
|
-
"
|
|
1856
|
-
"
|
|
2480
|
+
"mnemopi.retainEveryNTurns": { type: "number", default: 4 },
|
|
2481
|
+
"mnemopi.recallLimit": { type: "number", default: 8 },
|
|
2482
|
+
"mnemopi.recallContextTurns": { type: "number", default: 3 },
|
|
2483
|
+
"mnemopi.recallMaxQueryChars": { type: "number", default: 4000 },
|
|
2484
|
+
"mnemopi.injectionTokenLimit": { type: "number", default: 5000 },
|
|
2485
|
+
"mnemopi.debug": { type: "boolean", default: false },
|
|
1857
2486
|
|
|
1858
2487
|
// Hindsight (https://hindsight.vectorize.io)
|
|
1859
2488
|
"hindsight.apiUrl": {
|
|
@@ -1861,6 +2490,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1861
2490
|
default: "http://localhost:8888",
|
|
1862
2491
|
ui: {
|
|
1863
2492
|
tab: "memory",
|
|
2493
|
+
group: "Hindsight",
|
|
1864
2494
|
label: "Hindsight API URL",
|
|
1865
2495
|
description: "Hindsight server URL (Cloud or self-hosted)",
|
|
1866
2496
|
condition: "hindsightActive",
|
|
@@ -1874,6 +2504,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1874
2504
|
default: undefined,
|
|
1875
2505
|
ui: {
|
|
1876
2506
|
tab: "memory",
|
|
2507
|
+
group: "Hindsight",
|
|
1877
2508
|
label: "Hindsight Bank ID",
|
|
1878
2509
|
description: "Memory bank identifier (default: project name)",
|
|
1879
2510
|
condition: "hindsightActive",
|
|
@@ -1887,6 +2518,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1887
2518
|
default: "per-project-tagged",
|
|
1888
2519
|
ui: {
|
|
1889
2520
|
tab: "memory",
|
|
2521
|
+
group: "Hindsight",
|
|
1890
2522
|
label: "Hindsight Scoping",
|
|
1891
2523
|
description:
|
|
1892
2524
|
"global = one shared bank; per-project = isolated bank per cwd; per-project-tagged = shared bank with project tags so global + project memories merge on recall",
|
|
@@ -1919,6 +2551,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1919
2551
|
default: true,
|
|
1920
2552
|
ui: {
|
|
1921
2553
|
tab: "memory",
|
|
2554
|
+
group: "Hindsight",
|
|
1922
2555
|
label: "Hindsight Auto Recall",
|
|
1923
2556
|
description: "Recall memories on the first turn of each session",
|
|
1924
2557
|
condition: "hindsightActive",
|
|
@@ -1929,6 +2562,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1929
2562
|
default: true,
|
|
1930
2563
|
ui: {
|
|
1931
2564
|
tab: "memory",
|
|
2565
|
+
group: "Hindsight",
|
|
1932
2566
|
label: "Hindsight Auto Retain",
|
|
1933
2567
|
description: "Retain transcript every N turns and at session boundaries",
|
|
1934
2568
|
condition: "hindsightActive",
|
|
@@ -1941,6 +2575,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1941
2575
|
default: "full-session",
|
|
1942
2576
|
ui: {
|
|
1943
2577
|
tab: "memory",
|
|
2578
|
+
group: "Hindsight",
|
|
1944
2579
|
label: "Hindsight Retain Mode",
|
|
1945
2580
|
description: "full-session = upsert one document per session, last-turn = chunked",
|
|
1946
2581
|
options: [
|
|
@@ -1975,6 +2610,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1975
2610
|
default: true,
|
|
1976
2611
|
ui: {
|
|
1977
2612
|
tab: "memory",
|
|
2613
|
+
group: "Hindsight",
|
|
1978
2614
|
label: "Hindsight Mental Models",
|
|
1979
2615
|
description:
|
|
1980
2616
|
"Read curated reflect summaries (mental models) into developer instructions at boot. Loads existing models on the bank — does not write. Pair with hindsight.mentalModelAutoSeed to also auto-create the built-in seed set.",
|
|
@@ -1986,6 +2622,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1986
2622
|
default: true,
|
|
1987
2623
|
ui: {
|
|
1988
2624
|
tab: "memory",
|
|
2625
|
+
group: "Hindsight",
|
|
1989
2626
|
label: "Hindsight Mental Model Auto-Seed",
|
|
1990
2627
|
description:
|
|
1991
2628
|
"At session start, create any built-in mental models (project-conventions, project-decisions, user-preferences) that do not yet exist on the bank.",
|
|
@@ -2001,8 +2638,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2001
2638
|
default: true,
|
|
2002
2639
|
ui: {
|
|
2003
2640
|
tab: "context",
|
|
2641
|
+
group: "Rules (TTSR)",
|
|
2004
2642
|
label: "TTSR",
|
|
2005
|
-
description: "
|
|
2643
|
+
description: "Interrupt the agent mid-stream when output matches rule patterns (Time-Traveling Stream Rules)",
|
|
2006
2644
|
},
|
|
2007
2645
|
},
|
|
2008
2646
|
|
|
@@ -2012,6 +2650,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2012
2650
|
default: "discard",
|
|
2013
2651
|
ui: {
|
|
2014
2652
|
tab: "context",
|
|
2653
|
+
group: "Rules (TTSR)",
|
|
2015
2654
|
label: "TTSR Context Mode",
|
|
2016
2655
|
description: "What to do with partial output when TTSR triggers",
|
|
2017
2656
|
},
|
|
@@ -2023,6 +2662,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2023
2662
|
default: "always",
|
|
2024
2663
|
ui: {
|
|
2025
2664
|
tab: "context",
|
|
2665
|
+
group: "Rules (TTSR)",
|
|
2026
2666
|
label: "TTSR Interrupt Mode",
|
|
2027
2667
|
description: "When to interrupt mid-stream vs inject warning after completion",
|
|
2028
2668
|
options: [
|
|
@@ -2040,6 +2680,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2040
2680
|
default: "once",
|
|
2041
2681
|
ui: {
|
|
2042
2682
|
tab: "context",
|
|
2683
|
+
group: "Rules (TTSR)",
|
|
2043
2684
|
label: "TTSR Repeat Mode",
|
|
2044
2685
|
description: "How rules can repeat: once per session or after a message gap",
|
|
2045
2686
|
},
|
|
@@ -2050,6 +2691,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2050
2691
|
default: 10,
|
|
2051
2692
|
ui: {
|
|
2052
2693
|
tab: "context",
|
|
2694
|
+
group: "Rules (TTSR)",
|
|
2053
2695
|
label: "TTSR Repeat Gap",
|
|
2054
2696
|
description: "Messages before a rule can trigger again",
|
|
2055
2697
|
options: [
|
|
@@ -2067,7 +2709,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2067
2709
|
default: true,
|
|
2068
2710
|
ui: {
|
|
2069
2711
|
tab: "context",
|
|
2070
|
-
|
|
2712
|
+
group: "Rules (TTSR)",
|
|
2713
|
+
label: "Built-in Rules",
|
|
2071
2714
|
description: "Load the default rules shipped with the agent (override individually with ttsr.disabledRules)",
|
|
2072
2715
|
},
|
|
2073
2716
|
},
|
|
@@ -2077,6 +2720,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2077
2720
|
default: [] as string[],
|
|
2078
2721
|
ui: {
|
|
2079
2722
|
tab: "context",
|
|
2723
|
+
group: "Rules (TTSR)",
|
|
2080
2724
|
label: "Disabled Rules",
|
|
2081
2725
|
description: "Rule names to ignore entirely (applies to bundled defaults and your own rules)",
|
|
2082
2726
|
},
|
|
@@ -2092,7 +2736,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2092
2736
|
values: EDIT_MODES,
|
|
2093
2737
|
default: "hashline",
|
|
2094
2738
|
ui: {
|
|
2095
|
-
tab: "
|
|
2739
|
+
tab: "files",
|
|
2740
|
+
group: "Editing",
|
|
2096
2741
|
label: "Edit Mode",
|
|
2097
2742
|
description: "Select the edit tool variant (replace, patch, hashline, or apply_patch)",
|
|
2098
2743
|
},
|
|
@@ -2102,7 +2747,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2102
2747
|
type: "boolean",
|
|
2103
2748
|
default: true,
|
|
2104
2749
|
ui: {
|
|
2105
|
-
tab: "
|
|
2750
|
+
tab: "files",
|
|
2751
|
+
group: "Editing",
|
|
2106
2752
|
label: "Fuzzy Match",
|
|
2107
2753
|
description: "Accept high-confidence fuzzy matches for whitespace differences",
|
|
2108
2754
|
},
|
|
@@ -2112,9 +2758,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2112
2758
|
type: "number",
|
|
2113
2759
|
default: 0.95,
|
|
2114
2760
|
ui: {
|
|
2115
|
-
tab: "
|
|
2761
|
+
tab: "files",
|
|
2762
|
+
group: "Editing",
|
|
2116
2763
|
label: "Fuzzy Match Threshold",
|
|
2117
|
-
description: "Similarity threshold for fuzzy matches",
|
|
2764
|
+
description: "Similarity threshold (0-1) for accepting fuzzy matches",
|
|
2118
2765
|
options: [
|
|
2119
2766
|
{ value: "0.85", label: "0.85", description: "Lenient" },
|
|
2120
2767
|
{ value: "0.90", label: "0.90", description: "Moderate" },
|
|
@@ -2128,7 +2775,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2128
2775
|
type: "boolean",
|
|
2129
2776
|
default: false,
|
|
2130
2777
|
ui: {
|
|
2131
|
-
tab: "
|
|
2778
|
+
tab: "files",
|
|
2779
|
+
group: "Editing",
|
|
2132
2780
|
label: "Abort on Failed Preview",
|
|
2133
2781
|
description: "Abort streaming edit tool calls when patch preview fails",
|
|
2134
2782
|
},
|
|
@@ -2138,7 +2786,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2138
2786
|
type: "boolean",
|
|
2139
2787
|
default: true,
|
|
2140
2788
|
ui: {
|
|
2141
|
-
tab: "
|
|
2789
|
+
tab: "files",
|
|
2790
|
+
group: "Editing",
|
|
2142
2791
|
label: "Block Auto-Generated Files",
|
|
2143
2792
|
description: "Prevent editing of files that appear to be auto-generated (protoc, sqlc, swagger, etc.)",
|
|
2144
2793
|
},
|
|
@@ -2148,7 +2797,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2148
2797
|
type: "boolean",
|
|
2149
2798
|
default: false,
|
|
2150
2799
|
ui: {
|
|
2151
|
-
tab: "
|
|
2800
|
+
tab: "files",
|
|
2801
|
+
group: "Reading",
|
|
2152
2802
|
label: "Line Numbers",
|
|
2153
2803
|
description: "Prepend line numbers to read tool output by default",
|
|
2154
2804
|
},
|
|
@@ -2158,7 +2808,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2158
2808
|
type: "boolean",
|
|
2159
2809
|
default: true,
|
|
2160
2810
|
ui: {
|
|
2161
|
-
tab: "
|
|
2811
|
+
tab: "files",
|
|
2812
|
+
group: "Reading",
|
|
2162
2813
|
label: "Hash Lines",
|
|
2163
2814
|
description:
|
|
2164
2815
|
"Include snapshot-tag headers and line numbers in read output for hashline edit mode ([PATH#TAG] plus LINE:content)",
|
|
@@ -2169,7 +2820,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2169
2820
|
type: "number",
|
|
2170
2821
|
default: 300,
|
|
2171
2822
|
ui: {
|
|
2172
|
-
tab: "
|
|
2823
|
+
tab: "files",
|
|
2824
|
+
group: "Reading",
|
|
2173
2825
|
label: "Default Read Limit",
|
|
2174
2826
|
description: "Default number of lines returned when agent calls read without a limit",
|
|
2175
2827
|
options: [
|
|
@@ -2186,7 +2838,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2186
2838
|
type: "boolean",
|
|
2187
2839
|
default: true,
|
|
2188
2840
|
ui: {
|
|
2189
|
-
tab: "
|
|
2841
|
+
tab: "files",
|
|
2842
|
+
group: "Read Summaries",
|
|
2190
2843
|
label: "Read Summaries",
|
|
2191
2844
|
description: "Return structural code summaries when read is called without an explicit selector",
|
|
2192
2845
|
},
|
|
@@ -2196,7 +2849,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2196
2849
|
type: "boolean",
|
|
2197
2850
|
default: false,
|
|
2198
2851
|
ui: {
|
|
2199
|
-
tab: "
|
|
2852
|
+
tab: "files",
|
|
2853
|
+
group: "Read Summaries",
|
|
2200
2854
|
label: "Prose Summaries",
|
|
2201
2855
|
description: "Return structural summaries for Markdown and plain text reads",
|
|
2202
2856
|
},
|
|
@@ -2206,7 +2860,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2206
2860
|
type: "number",
|
|
2207
2861
|
default: 4,
|
|
2208
2862
|
ui: {
|
|
2209
|
-
tab: "
|
|
2863
|
+
tab: "files",
|
|
2864
|
+
group: "Read Summaries",
|
|
2210
2865
|
label: "Read Summary Body Lines",
|
|
2211
2866
|
description: "Minimum multiline body or literal length before read summaries collapse it",
|
|
2212
2867
|
},
|
|
@@ -2216,7 +2871,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2216
2871
|
type: "number",
|
|
2217
2872
|
default: 6,
|
|
2218
2873
|
ui: {
|
|
2219
|
-
tab: "
|
|
2874
|
+
tab: "files",
|
|
2875
|
+
group: "Read Summaries",
|
|
2220
2876
|
label: "Read Summary Comment Lines",
|
|
2221
2877
|
description: "Minimum multiline block comment length before read summaries collapse it",
|
|
2222
2878
|
},
|
|
@@ -2226,7 +2882,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2226
2882
|
type: "number",
|
|
2227
2883
|
default: 100,
|
|
2228
2884
|
ui: {
|
|
2229
|
-
tab: "
|
|
2885
|
+
tab: "files",
|
|
2886
|
+
group: "Read Summaries",
|
|
2230
2887
|
label: "Read Summary Minimum File Length",
|
|
2231
2888
|
description: "Files with fewer total lines are read verbatim instead of structurally summarized",
|
|
2232
2889
|
},
|
|
@@ -2236,7 +2893,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2236
2893
|
type: "number",
|
|
2237
2894
|
default: 50,
|
|
2238
2895
|
ui: {
|
|
2239
|
-
tab: "
|
|
2896
|
+
tab: "files",
|
|
2897
|
+
group: "Read Summaries",
|
|
2240
2898
|
label: "Read Summary Unfold Target",
|
|
2241
2899
|
description:
|
|
2242
2900
|
"BFS-unfold elidable spans until the summary is at least this many visible lines. 0 keeps only the outermost elisions.",
|
|
@@ -2247,7 +2905,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2247
2905
|
type: "number",
|
|
2248
2906
|
default: 100,
|
|
2249
2907
|
ui: {
|
|
2250
|
-
tab: "
|
|
2908
|
+
tab: "files",
|
|
2909
|
+
group: "Read Summaries",
|
|
2251
2910
|
label: "Read Summary Unfold Ceiling",
|
|
2252
2911
|
description:
|
|
2253
2912
|
"Hard ceiling on summary size while BFS-unfolding. An unfold that would exceed this is reverted and unfolding stops.",
|
|
@@ -2258,7 +2917,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2258
2917
|
type: "boolean",
|
|
2259
2918
|
default: false,
|
|
2260
2919
|
ui: {
|
|
2261
|
-
tab: "
|
|
2920
|
+
tab: "files",
|
|
2921
|
+
group: "Reading",
|
|
2262
2922
|
label: "Inline Read Previews",
|
|
2263
2923
|
description: "Render read tool results inline in the transcript instead of summary rows",
|
|
2264
2924
|
},
|
|
@@ -2268,14 +2928,32 @@ export const SETTINGS_SCHEMA = {
|
|
|
2268
2928
|
"lsp.enabled": {
|
|
2269
2929
|
type: "boolean",
|
|
2270
2930
|
default: true,
|
|
2271
|
-
ui: {
|
|
2931
|
+
ui: {
|
|
2932
|
+
tab: "files",
|
|
2933
|
+
group: "LSP",
|
|
2934
|
+
label: "LSP",
|
|
2935
|
+
description: "Enable the lsp tool for code intelligence (definitions, references, diagnostics, rename)",
|
|
2936
|
+
},
|
|
2937
|
+
},
|
|
2938
|
+
|
|
2939
|
+
"lsp.lazy": {
|
|
2940
|
+
type: "boolean",
|
|
2941
|
+
default: true,
|
|
2942
|
+
ui: {
|
|
2943
|
+
tab: "files",
|
|
2944
|
+
group: "LSP",
|
|
2945
|
+
label: "Lazy LSP Startup",
|
|
2946
|
+
description:
|
|
2947
|
+
"Start language servers on first use (lsp tool or editing a matching file type) instead of at session startup",
|
|
2948
|
+
},
|
|
2272
2949
|
},
|
|
2273
2950
|
|
|
2274
2951
|
"lsp.formatOnWrite": {
|
|
2275
2952
|
type: "boolean",
|
|
2276
2953
|
default: false,
|
|
2277
2954
|
ui: {
|
|
2278
|
-
tab: "
|
|
2955
|
+
tab: "files",
|
|
2956
|
+
group: "LSP",
|
|
2279
2957
|
label: "Format on Write",
|
|
2280
2958
|
description: "Automatically format code files using LSP after writing",
|
|
2281
2959
|
},
|
|
@@ -2285,7 +2963,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2285
2963
|
type: "boolean",
|
|
2286
2964
|
default: true,
|
|
2287
2965
|
ui: {
|
|
2288
|
-
tab: "
|
|
2966
|
+
tab: "files",
|
|
2967
|
+
group: "LSP",
|
|
2289
2968
|
label: "Diagnostics on Write",
|
|
2290
2969
|
description: "Return LSP diagnostics after writing code files",
|
|
2291
2970
|
},
|
|
@@ -2295,7 +2974,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2295
2974
|
type: "boolean",
|
|
2296
2975
|
default: false,
|
|
2297
2976
|
ui: {
|
|
2298
|
-
tab: "
|
|
2977
|
+
tab: "files",
|
|
2978
|
+
group: "LSP",
|
|
2299
2979
|
label: "Diagnostics on Edit",
|
|
2300
2980
|
description: "Return LSP diagnostics after editing code files",
|
|
2301
2981
|
},
|
|
@@ -2305,17 +2985,45 @@ export const SETTINGS_SCHEMA = {
|
|
|
2305
2985
|
type: "boolean",
|
|
2306
2986
|
default: true,
|
|
2307
2987
|
ui: {
|
|
2308
|
-
tab: "
|
|
2988
|
+
tab: "files",
|
|
2989
|
+
group: "LSP",
|
|
2309
2990
|
label: "Deduplicate Diagnostics",
|
|
2310
2991
|
description: "Suppress post-edit LSP diagnostics already shown for a file; only surface new or changed ones",
|
|
2311
2992
|
},
|
|
2312
2993
|
},
|
|
2313
2994
|
|
|
2995
|
+
"bash.enabled": {
|
|
2996
|
+
type: "boolean",
|
|
2997
|
+
default: true,
|
|
2998
|
+
ui: {
|
|
2999
|
+
tab: "shell",
|
|
3000
|
+
group: "Bash",
|
|
3001
|
+
label: "Bash",
|
|
3002
|
+
description: "Enable the bash tool for shell command execution",
|
|
3003
|
+
},
|
|
3004
|
+
},
|
|
3005
|
+
|
|
3006
|
+
"bash.autoBackground.enabled": {
|
|
3007
|
+
type: "boolean",
|
|
3008
|
+
default: false,
|
|
3009
|
+
ui: {
|
|
3010
|
+
tab: "shell",
|
|
3011
|
+
group: "Bash",
|
|
3012
|
+
label: "Bash Auto-Background",
|
|
3013
|
+
description: "Automatically background long-running bash commands and deliver the result later",
|
|
3014
|
+
},
|
|
3015
|
+
},
|
|
3016
|
+
|
|
2314
3017
|
// Bash interceptor
|
|
2315
3018
|
"bashInterceptor.enabled": {
|
|
2316
3019
|
type: "boolean",
|
|
2317
3020
|
default: false,
|
|
2318
|
-
ui: {
|
|
3021
|
+
ui: {
|
|
3022
|
+
tab: "shell",
|
|
3023
|
+
group: "Bash",
|
|
3024
|
+
label: "Bash Interceptor",
|
|
3025
|
+
description: "Block shell commands that have dedicated tools",
|
|
3026
|
+
},
|
|
2319
3027
|
},
|
|
2320
3028
|
"bashInterceptor.patterns": { type: "array", default: DEFAULT_BASH_INTERCEPTOR_RULES },
|
|
2321
3029
|
|
|
@@ -2323,8 +3031,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2323
3031
|
type: "boolean",
|
|
2324
3032
|
default: true,
|
|
2325
3033
|
ui: {
|
|
2326
|
-
tab: "
|
|
2327
|
-
|
|
3034
|
+
tab: "shell",
|
|
3035
|
+
group: "Bash",
|
|
3036
|
+
label: "Strip head/tail Pipes",
|
|
2328
3037
|
description:
|
|
2329
3038
|
"Silently drop trailing `| head`/`| tail` pipes from single-line bash commands. Output is already truncated automatically.",
|
|
2330
3039
|
},
|
|
@@ -2335,7 +3044,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2335
3044
|
type: "boolean",
|
|
2336
3045
|
default: true,
|
|
2337
3046
|
ui: {
|
|
2338
|
-
tab: "
|
|
3047
|
+
tab: "shell",
|
|
3048
|
+
group: "Bash",
|
|
2339
3049
|
label: "Shell Minimizer",
|
|
2340
3050
|
description: "Compress verbose shell output (git, npm, cargo, etc.) before returning it to the agent",
|
|
2341
3051
|
},
|
|
@@ -2350,15 +3060,31 @@ export const SETTINGS_SCHEMA = {
|
|
|
2350
3060
|
type: "number",
|
|
2351
3061
|
default: 4 * 1024 * 1024,
|
|
2352
3062
|
},
|
|
3063
|
+
"shellMinimizer.sourceOutlineLevel": {
|
|
3064
|
+
type: "enum",
|
|
3065
|
+
values: ["default", "aggressive"] as const,
|
|
3066
|
+
default: "default",
|
|
3067
|
+
ui: {
|
|
3068
|
+
tab: "shell",
|
|
3069
|
+
group: "Bash",
|
|
3070
|
+
label: "Shell Minimizer Source Outline",
|
|
3071
|
+
description: "Source outline mode for cat/read of source files: default or aggressive",
|
|
3072
|
+
},
|
|
3073
|
+
},
|
|
3074
|
+
"shellMinimizer.legacyFilters": {
|
|
3075
|
+
type: "boolean",
|
|
3076
|
+
default: undefined,
|
|
3077
|
+
},
|
|
2353
3078
|
|
|
2354
3079
|
// Eval (per-backend toggles; add more as new backends ship, e.g. eval.ts)
|
|
2355
3080
|
"eval.py": {
|
|
2356
3081
|
type: "boolean",
|
|
2357
3082
|
default: true,
|
|
2358
3083
|
ui: {
|
|
2359
|
-
tab: "
|
|
2360
|
-
|
|
2361
|
-
|
|
3084
|
+
tab: "shell",
|
|
3085
|
+
group: "Eval & Python",
|
|
3086
|
+
label: "Python Eval Backend",
|
|
3087
|
+
description: "Allow the eval tool to dispatch Python cells to the IPython kernel",
|
|
2362
3088
|
},
|
|
2363
3089
|
},
|
|
2364
3090
|
|
|
@@ -2366,9 +3092,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2366
3092
|
type: "boolean",
|
|
2367
3093
|
default: true,
|
|
2368
3094
|
ui: {
|
|
2369
|
-
tab: "
|
|
2370
|
-
|
|
2371
|
-
|
|
3095
|
+
tab: "shell",
|
|
3096
|
+
group: "Eval & Python",
|
|
3097
|
+
label: "JavaScript Eval Backend",
|
|
3098
|
+
description: "Allow the eval tool to dispatch JavaScript cells to the in-process runtime",
|
|
2372
3099
|
},
|
|
2373
3100
|
},
|
|
2374
3101
|
|
|
@@ -2378,9 +3105,21 @@ export const SETTINGS_SCHEMA = {
|
|
|
2378
3105
|
values: ["session", "per-call"] as const,
|
|
2379
3106
|
default: "session",
|
|
2380
3107
|
ui: {
|
|
2381
|
-
tab: "
|
|
3108
|
+
tab: "shell",
|
|
3109
|
+
group: "Eval & Python",
|
|
2382
3110
|
label: "Python Kernel Mode",
|
|
2383
|
-
description: "
|
|
3111
|
+
description: "Keep the IPython kernel alive across eval calls or start fresh each time",
|
|
3112
|
+
},
|
|
3113
|
+
},
|
|
3114
|
+
"python.interpreter": {
|
|
3115
|
+
type: "string",
|
|
3116
|
+
default: "",
|
|
3117
|
+
ui: {
|
|
3118
|
+
tab: "shell",
|
|
3119
|
+
group: "Eval & Python",
|
|
3120
|
+
label: "Python Interpreter",
|
|
3121
|
+
description:
|
|
3122
|
+
"Optional path to an exact Python executable. When set, automatic Python runtime discovery is skipped.",
|
|
2384
3123
|
},
|
|
2385
3124
|
},
|
|
2386
3125
|
|
|
@@ -2393,7 +3132,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2393
3132
|
type: "record",
|
|
2394
3133
|
default: {},
|
|
2395
3134
|
ui: {
|
|
2396
|
-
tab: "
|
|
3135
|
+
tab: "interaction",
|
|
3136
|
+
group: "Approvals",
|
|
2397
3137
|
label: "Tool Approval Policies",
|
|
2398
3138
|
description:
|
|
2399
3139
|
"Per-tool approval policies. Set to 'allow' to auto-approve, 'prompt' to require confirmation, or 'deny' to block. Overrides are honored in every approval mode.",
|
|
@@ -2410,9 +3150,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2410
3150
|
default: "yolo",
|
|
2411
3151
|
ui: {
|
|
2412
3152
|
tab: "interaction",
|
|
3153
|
+
group: "Approvals",
|
|
2413
3154
|
label: "Tool Approval",
|
|
2414
3155
|
description:
|
|
2415
|
-
"Default approval
|
|
3156
|
+
"Default approval behavior for tool calls. 'Always ask' auto-approves read-only tools only. 'Write' auto-approves read and workspace-write tools. 'Yolo' auto-approves all tiers; user policy may still prompt or block.",
|
|
2416
3157
|
options: [
|
|
2417
3158
|
{
|
|
2418
3159
|
value: "always-ask",
|
|
@@ -2439,13 +3180,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2439
3180
|
"todo.enabled": {
|
|
2440
3181
|
type: "boolean",
|
|
2441
3182
|
default: true,
|
|
2442
|
-
ui: {
|
|
3183
|
+
ui: {
|
|
3184
|
+
tab: "tools",
|
|
3185
|
+
group: "Available Tools",
|
|
3186
|
+
label: "Todos",
|
|
3187
|
+
description: "Enable the todo tool for task tracking",
|
|
3188
|
+
},
|
|
2443
3189
|
},
|
|
2444
3190
|
|
|
2445
3191
|
"todo.reminders": {
|
|
2446
3192
|
type: "boolean",
|
|
2447
3193
|
default: true,
|
|
2448
|
-
ui: {
|
|
3194
|
+
ui: {
|
|
3195
|
+
tab: "tools",
|
|
3196
|
+
group: "Todos",
|
|
3197
|
+
label: "Todo Reminders",
|
|
3198
|
+
description: "Remind the agent to complete todos before stopping",
|
|
3199
|
+
},
|
|
2449
3200
|
},
|
|
2450
3201
|
|
|
2451
3202
|
"todo.reminders.max": {
|
|
@@ -2453,8 +3204,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2453
3204
|
default: 3,
|
|
2454
3205
|
ui: {
|
|
2455
3206
|
tab: "tools",
|
|
3207
|
+
group: "Todos",
|
|
2456
3208
|
label: "Todo Reminder Limit",
|
|
2457
|
-
description: "Maximum
|
|
3209
|
+
description: "Maximum number of todo reminders before giving up",
|
|
2458
3210
|
options: [
|
|
2459
3211
|
{ value: "1", label: "1 reminder" },
|
|
2460
3212
|
{ value: "2", label: "2 reminders" },
|
|
@@ -2465,12 +3217,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2465
3217
|
},
|
|
2466
3218
|
|
|
2467
3219
|
"todo.eager": {
|
|
2468
|
-
type: "
|
|
2469
|
-
|
|
3220
|
+
type: "enum",
|
|
3221
|
+
values: ["default", "preferred", "always"] as const,
|
|
3222
|
+
default: "default",
|
|
2470
3223
|
ui: {
|
|
2471
3224
|
tab: "tools",
|
|
3225
|
+
group: "Todos",
|
|
2472
3226
|
label: "Create Todos Automatically",
|
|
2473
|
-
description: "
|
|
3227
|
+
description: "How strongly to push automatic todo-list creation after the first message",
|
|
3228
|
+
options: [
|
|
3229
|
+
{ value: "default", label: "Default", description: "Model decides; no automatic todo list" },
|
|
3230
|
+
{
|
|
3231
|
+
value: "preferred",
|
|
3232
|
+
label: "Preferred",
|
|
3233
|
+
description: "Suggests a todo list on the first message (reminder, not forced)",
|
|
3234
|
+
},
|
|
3235
|
+
{ value: "always", label: "Always", description: "Forces a comprehensive todo list on the first message" },
|
|
3236
|
+
],
|
|
2474
3237
|
},
|
|
2475
3238
|
},
|
|
2476
3239
|
|
|
@@ -2478,13 +3241,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2478
3241
|
"find.enabled": {
|
|
2479
3242
|
type: "boolean",
|
|
2480
3243
|
default: true,
|
|
2481
|
-
ui: {
|
|
3244
|
+
ui: {
|
|
3245
|
+
tab: "tools",
|
|
3246
|
+
group: "Available Tools",
|
|
3247
|
+
label: "Find",
|
|
3248
|
+
description: "Enable the find tool for glob-based file lookup",
|
|
3249
|
+
},
|
|
2482
3250
|
},
|
|
2483
3251
|
|
|
2484
3252
|
"search.enabled": {
|
|
2485
3253
|
type: "boolean",
|
|
2486
3254
|
default: true,
|
|
2487
|
-
ui: {
|
|
3255
|
+
ui: {
|
|
3256
|
+
tab: "tools",
|
|
3257
|
+
group: "Available Tools",
|
|
3258
|
+
label: "Search",
|
|
3259
|
+
description: "Enable the search tool for regex content search",
|
|
3260
|
+
},
|
|
2488
3261
|
},
|
|
2489
3262
|
|
|
2490
3263
|
"search.contextBefore": {
|
|
@@ -2492,6 +3265,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2492
3265
|
default: 1,
|
|
2493
3266
|
ui: {
|
|
2494
3267
|
tab: "tools",
|
|
3268
|
+
group: "Search & Browser",
|
|
2495
3269
|
label: "Search Context Before",
|
|
2496
3270
|
description: "Lines of context before each search match",
|
|
2497
3271
|
options: [
|
|
@@ -2509,6 +3283,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2509
3283
|
default: 3,
|
|
2510
3284
|
ui: {
|
|
2511
3285
|
tab: "tools",
|
|
3286
|
+
group: "Search & Browser",
|
|
2512
3287
|
label: "Search Context After",
|
|
2513
3288
|
description: "Lines of context after each search match",
|
|
2514
3289
|
options: [
|
|
@@ -2527,6 +3302,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2527
3302
|
default: true,
|
|
2528
3303
|
ui: {
|
|
2529
3304
|
tab: "tools",
|
|
3305
|
+
group: "Available Tools",
|
|
2530
3306
|
label: "AST Grep",
|
|
2531
3307
|
description: "Enable the ast_grep tool for structural AST search",
|
|
2532
3308
|
},
|
|
@@ -2537,39 +3313,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2537
3313
|
default: true,
|
|
2538
3314
|
ui: {
|
|
2539
3315
|
tab: "tools",
|
|
3316
|
+
group: "Available Tools",
|
|
2540
3317
|
label: "AST Edit",
|
|
2541
3318
|
description: "Enable the ast_edit tool for structural AST rewrites",
|
|
2542
3319
|
},
|
|
2543
3320
|
},
|
|
2544
3321
|
|
|
2545
|
-
"irc.enabled": {
|
|
2546
|
-
type: "boolean",
|
|
2547
|
-
default: true,
|
|
2548
|
-
ui: {
|
|
2549
|
-
tab: "tools",
|
|
2550
|
-
label: "IRC",
|
|
2551
|
-
description: "Enable agent-to-agent IRC messaging via the irc tool",
|
|
2552
|
-
},
|
|
2553
|
-
},
|
|
2554
|
-
|
|
2555
|
-
"irc.timeoutMs": {
|
|
2556
|
-
type: "number",
|
|
2557
|
-
default: 120_000,
|
|
2558
|
-
ui: {
|
|
2559
|
-
tab: "tools",
|
|
2560
|
-
label: "IRC Timeout",
|
|
2561
|
-
description:
|
|
2562
|
-
"Drop IRC messages whose recipient does not respond within this many milliseconds (0 disables the timeout)",
|
|
2563
|
-
options: [
|
|
2564
|
-
{ value: "0", label: "Disabled" },
|
|
2565
|
-
{ value: "30000", label: "30 seconds" },
|
|
2566
|
-
{ value: "60000", label: "1 minute" },
|
|
2567
|
-
{ value: "120000", label: "2 minutes" },
|
|
2568
|
-
{ value: "300000", label: "5 minutes" },
|
|
2569
|
-
],
|
|
2570
|
-
},
|
|
2571
|
-
},
|
|
2572
|
-
|
|
2573
3322
|
// Optional tools
|
|
2574
3323
|
|
|
2575
3324
|
"renderMermaid.enabled": {
|
|
@@ -2577,6 +3326,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2577
3326
|
default: false,
|
|
2578
3327
|
ui: {
|
|
2579
3328
|
tab: "tools",
|
|
3329
|
+
group: "Available Tools",
|
|
2580
3330
|
label: "Render Mermaid",
|
|
2581
3331
|
description: "Enable the render_mermaid tool for Mermaid-to-ASCII rendering",
|
|
2582
3332
|
},
|
|
@@ -2587,18 +3337,20 @@ export const SETTINGS_SCHEMA = {
|
|
|
2587
3337
|
default: true,
|
|
2588
3338
|
ui: {
|
|
2589
3339
|
tab: "tools",
|
|
3340
|
+
group: "Available Tools",
|
|
2590
3341
|
label: "Debug",
|
|
2591
3342
|
description: "Enable the debug tool for DAP-based debugging",
|
|
2592
3343
|
},
|
|
2593
3344
|
},
|
|
2594
3345
|
|
|
2595
|
-
"
|
|
3346
|
+
"speechgen.enabled": {
|
|
2596
3347
|
type: "boolean",
|
|
2597
3348
|
default: false,
|
|
2598
3349
|
ui: {
|
|
2599
3350
|
tab: "tools",
|
|
2600
|
-
|
|
2601
|
-
|
|
3351
|
+
group: "Available Tools",
|
|
3352
|
+
label: "Speech Generation",
|
|
3353
|
+
description: "Enable the tts tool for on-device (Kokoro) or xAI Grok Voice speech-file synthesis",
|
|
2602
3354
|
},
|
|
2603
3355
|
},
|
|
2604
3356
|
|
|
@@ -2607,6 +3359,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2607
3359
|
default: false,
|
|
2608
3360
|
ui: {
|
|
2609
3361
|
tab: "tools",
|
|
3362
|
+
group: "Available Tools",
|
|
2610
3363
|
label: "Inspect Image",
|
|
2611
3364
|
description: "Enable the inspect_image tool, delegating image understanding to a vision-capable model",
|
|
2612
3365
|
},
|
|
@@ -2617,6 +3370,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2617
3370
|
default: false,
|
|
2618
3371
|
ui: {
|
|
2619
3372
|
tab: "tools",
|
|
3373
|
+
group: "Available Tools",
|
|
2620
3374
|
label: "Checkpoint/Rewind",
|
|
2621
3375
|
description: "Enable the checkpoint and rewind tools for context checkpointing",
|
|
2622
3376
|
},
|
|
@@ -2626,7 +3380,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2626
3380
|
"fetch.enabled": {
|
|
2627
3381
|
type: "boolean",
|
|
2628
3382
|
default: true,
|
|
2629
|
-
ui: {
|
|
3383
|
+
ui: {
|
|
3384
|
+
tab: "tools",
|
|
3385
|
+
group: "Available Tools",
|
|
3386
|
+
label: "Read URLs",
|
|
3387
|
+
description: "Allow the read tool to fetch and process URLs",
|
|
3388
|
+
},
|
|
2630
3389
|
},
|
|
2631
3390
|
|
|
2632
3391
|
"vault.enabled": {
|
|
@@ -2634,6 +3393,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2634
3393
|
default: false,
|
|
2635
3394
|
ui: {
|
|
2636
3395
|
tab: "tools",
|
|
3396
|
+
group: "Available Tools",
|
|
2637
3397
|
label: "Obsidian Vault",
|
|
2638
3398
|
description:
|
|
2639
3399
|
"Enable the vault:// internal URL for reading and editing Obsidian vault content via the Obsidian CLI. When disabled, vault:// resolution is refused and the vault:// entry is omitted from the system prompt.",
|
|
@@ -2645,6 +3405,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2645
3405
|
default: false,
|
|
2646
3406
|
ui: {
|
|
2647
3407
|
tab: "tools",
|
|
3408
|
+
group: "Available Tools",
|
|
2648
3409
|
label: "GitHub CLI",
|
|
2649
3410
|
description:
|
|
2650
3411
|
"Enable the github tool (op-based dispatch for repository, issue, pull request, diff, search, checkout, push, and Actions watch workflows)",
|
|
@@ -2656,7 +3417,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2656
3417
|
default: true,
|
|
2657
3418
|
ui: {
|
|
2658
3419
|
tab: "tools",
|
|
2659
|
-
|
|
3420
|
+
group: "GitHub",
|
|
3421
|
+
label: "GitHub View Cache",
|
|
2660
3422
|
description:
|
|
2661
3423
|
"Cache rendered issue/PR view output in ~/.prometheus/cache/github-cache.db so repeated reads are free",
|
|
2662
3424
|
},
|
|
@@ -2667,8 +3429,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2667
3429
|
default: 300,
|
|
2668
3430
|
ui: {
|
|
2669
3431
|
tab: "tools",
|
|
2670
|
-
|
|
2671
|
-
|
|
3432
|
+
group: "GitHub",
|
|
3433
|
+
label: "GitHub Cache Soft TTL",
|
|
3434
|
+
description:
|
|
3435
|
+
"Within this window, cached issue/PR view rows are returned directly (seconds; default 5 minutes)",
|
|
2672
3436
|
},
|
|
2673
3437
|
},
|
|
2674
3438
|
|
|
@@ -2677,16 +3441,22 @@ export const SETTINGS_SCHEMA = {
|
|
|
2677
3441
|
default: 604800,
|
|
2678
3442
|
ui: {
|
|
2679
3443
|
tab: "tools",
|
|
2680
|
-
|
|
3444
|
+
group: "GitHub",
|
|
3445
|
+
label: "GitHub Cache Hard TTL",
|
|
2681
3446
|
description:
|
|
2682
|
-
"Past soft TTL
|
|
3447
|
+
"Past the soft TTL the cached row is returned and refreshed in the background; past the hard TTL it is dropped (seconds; default 7 days)",
|
|
2683
3448
|
},
|
|
2684
3449
|
},
|
|
2685
3450
|
|
|
2686
3451
|
"web_search.enabled": {
|
|
2687
3452
|
type: "boolean",
|
|
2688
3453
|
default: true,
|
|
2689
|
-
ui: {
|
|
3454
|
+
ui: {
|
|
3455
|
+
tab: "tools",
|
|
3456
|
+
group: "Available Tools",
|
|
3457
|
+
label: "Web Search",
|
|
3458
|
+
description: "Enable the web_search tool for live web results",
|
|
3459
|
+
},
|
|
2690
3460
|
},
|
|
2691
3461
|
|
|
2692
3462
|
"browser.enabled": {
|
|
@@ -2694,8 +3464,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2694
3464
|
default: true,
|
|
2695
3465
|
ui: {
|
|
2696
3466
|
tab: "tools",
|
|
3467
|
+
group: "Available Tools",
|
|
2697
3468
|
label: "Browser",
|
|
2698
|
-
description: "Enable the browser tool (
|
|
3469
|
+
description: "Enable the browser tool for scripted Chromium automation (puppeteer)",
|
|
2699
3470
|
},
|
|
2700
3471
|
},
|
|
2701
3472
|
|
|
@@ -2704,16 +3475,30 @@ export const SETTINGS_SCHEMA = {
|
|
|
2704
3475
|
default: true,
|
|
2705
3476
|
ui: {
|
|
2706
3477
|
tab: "tools",
|
|
3478
|
+
group: "Search & Browser",
|
|
2707
3479
|
label: "Headless Browser",
|
|
2708
3480
|
description: "Launch browser in headless mode (disable to show browser UI)",
|
|
2709
3481
|
},
|
|
2710
3482
|
},
|
|
3483
|
+
|
|
3484
|
+
"browser.cmux": {
|
|
3485
|
+
type: "boolean",
|
|
3486
|
+
default: true,
|
|
3487
|
+
ui: {
|
|
3488
|
+
tab: "tools",
|
|
3489
|
+
group: "Search & Browser",
|
|
3490
|
+
label: "cmux Browser",
|
|
3491
|
+
description:
|
|
3492
|
+
"Use cmux WKWebView surfaces for browser automation when a cmux socket is available. Set PROMETHEUS_BROWSER_CMUX=0 or PROMETHEUS_BROWSER_CMUX=1 to override.",
|
|
3493
|
+
},
|
|
3494
|
+
},
|
|
2711
3495
|
"browser.screenshotDir": {
|
|
2712
3496
|
type: "string",
|
|
2713
3497
|
default: undefined,
|
|
2714
3498
|
ui: {
|
|
2715
3499
|
tab: "tools",
|
|
2716
|
-
|
|
3500
|
+
group: "Search & Browser",
|
|
3501
|
+
label: "Screenshot Directory",
|
|
2717
3502
|
description:
|
|
2718
3503
|
"Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)",
|
|
2719
3504
|
},
|
|
@@ -2725,6 +3510,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2725
3510
|
default: true,
|
|
2726
3511
|
ui: {
|
|
2727
3512
|
tab: "tools",
|
|
3513
|
+
group: "Execution",
|
|
2728
3514
|
label: "Intent Tracing",
|
|
2729
3515
|
description: "Ask the agent to describe the intent of each tool call before executing it",
|
|
2730
3516
|
},
|
|
@@ -2735,6 +3521,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2735
3521
|
default: 0,
|
|
2736
3522
|
ui: {
|
|
2737
3523
|
tab: "tools",
|
|
3524
|
+
group: "Execution",
|
|
2738
3525
|
label: "Max Tool Timeout",
|
|
2739
3526
|
description: "Maximum timeout in seconds the agent can set for any tool (0 = no limit)",
|
|
2740
3527
|
options: [
|
|
@@ -2751,9 +3538,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2751
3538
|
// Async jobs
|
|
2752
3539
|
"async.enabled": {
|
|
2753
3540
|
type: "boolean",
|
|
2754
|
-
default:
|
|
3541
|
+
default: true,
|
|
2755
3542
|
ui: {
|
|
2756
3543
|
tab: "tools",
|
|
3544
|
+
group: "Execution",
|
|
2757
3545
|
label: "Async Execution",
|
|
2758
3546
|
description: "Enable async bash commands and background task execution",
|
|
2759
3547
|
},
|
|
@@ -2766,29 +3554,40 @@ export const SETTINGS_SCHEMA = {
|
|
|
2766
3554
|
|
|
2767
3555
|
"async.pollWaitDuration": {
|
|
2768
3556
|
type: "enum",
|
|
2769
|
-
values: ["5s", "10s", "30s", "1m", "5m"] as const,
|
|
2770
|
-
default: "
|
|
3557
|
+
values: ["5s", "10s", "30s", "1m", "5m", "smart"] as const,
|
|
3558
|
+
default: "smart",
|
|
2771
3559
|
ui: {
|
|
2772
3560
|
tab: "tools",
|
|
2773
|
-
|
|
2774
|
-
|
|
3561
|
+
group: "Execution",
|
|
3562
|
+
label: "Max Poll Time",
|
|
3563
|
+
description:
|
|
3564
|
+
"How long the poll tool waits for background job updates before returning the current state. A fixed value waits that exact duration every time. `smart` adapts: it starts at 5s and lengthens with each back-to-back poll (up to 5m), then resets to 5s after about a minute without polling.",
|
|
2775
3565
|
options: [
|
|
2776
3566
|
{ value: "5s", label: "5 seconds" },
|
|
2777
3567
|
{ value: "10s", label: "10 seconds" },
|
|
2778
|
-
{ value: "30s", label: "30 seconds"
|
|
3568
|
+
{ value: "30s", label: "30 seconds" },
|
|
2779
3569
|
{ value: "1m", label: "1 minute" },
|
|
2780
3570
|
{ value: "5m", label: "5 minutes" },
|
|
3571
|
+
{ value: "smart", label: "Smart", description: "Default — adaptive 5s→5m, resets when you stop polling" },
|
|
2781
3572
|
],
|
|
2782
3573
|
},
|
|
2783
3574
|
},
|
|
2784
3575
|
|
|
2785
|
-
"
|
|
2786
|
-
type: "
|
|
2787
|
-
default:
|
|
3576
|
+
"irc.timeoutMs": {
|
|
3577
|
+
type: "number",
|
|
3578
|
+
default: 120_000,
|
|
2788
3579
|
ui: {
|
|
2789
3580
|
tab: "tools",
|
|
2790
|
-
|
|
2791
|
-
|
|
3581
|
+
group: "Execution",
|
|
3582
|
+
label: "IRC Timeout",
|
|
3583
|
+
description: "Default timeout for irc wait (and send await:true) in milliseconds; 0 disables the timeout",
|
|
3584
|
+
options: [
|
|
3585
|
+
{ value: "0", label: "Disabled" },
|
|
3586
|
+
{ value: "30000", label: "30 seconds" },
|
|
3587
|
+
{ value: "60000", label: "1 minute" },
|
|
3588
|
+
{ value: "120000", label: "2 minutes" },
|
|
3589
|
+
{ value: "300000", label: "5 minutes" },
|
|
3590
|
+
],
|
|
2792
3591
|
},
|
|
2793
3592
|
},
|
|
2794
3593
|
|
|
@@ -2804,6 +3603,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2804
3603
|
default: "auto",
|
|
2805
3604
|
ui: {
|
|
2806
3605
|
tab: "tools",
|
|
3606
|
+
group: "Discovery & MCP",
|
|
2807
3607
|
label: "Tool Discovery",
|
|
2808
3608
|
description:
|
|
2809
3609
|
"Hide tools behind a search tool to save tokens. 'auto' hides MCP tools once the tool set has more than 40 tools; 'mcp-only' always hides MCP tools; 'all' hides all non-essential built-ins too.",
|
|
@@ -2815,6 +3615,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2815
3615
|
default: [] as string[],
|
|
2816
3616
|
ui: {
|
|
2817
3617
|
tab: "tools",
|
|
3618
|
+
group: "Discovery & MCP",
|
|
2818
3619
|
label: "Essential Tools Override",
|
|
2819
3620
|
description:
|
|
2820
3621
|
"Override the always-loaded built-in tools (default: read, bash, edit). Leave empty to use defaults.",
|
|
@@ -2825,7 +3626,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2825
3626
|
"mcp.enableProjectConfig": {
|
|
2826
3627
|
type: "boolean",
|
|
2827
3628
|
default: true,
|
|
2828
|
-
ui: {
|
|
3629
|
+
ui: {
|
|
3630
|
+
tab: "tools",
|
|
3631
|
+
group: "Discovery & MCP",
|
|
3632
|
+
label: "MCP Project Config",
|
|
3633
|
+
description: "Load .mcp.json/mcp.json from project root",
|
|
3634
|
+
},
|
|
2829
3635
|
},
|
|
2830
3636
|
|
|
2831
3637
|
"mcp.discoveryMode": {
|
|
@@ -2833,6 +3639,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2833
3639
|
default: false,
|
|
2834
3640
|
ui: {
|
|
2835
3641
|
tab: "tools",
|
|
3642
|
+
group: "Discovery & MCP",
|
|
2836
3643
|
label: "MCP Tool Discovery",
|
|
2837
3644
|
description: "Hide MCP tools by default and expose them through a tool discovery tool",
|
|
2838
3645
|
},
|
|
@@ -2843,6 +3650,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2843
3650
|
default: [] as string[],
|
|
2844
3651
|
ui: {
|
|
2845
3652
|
tab: "tools",
|
|
3653
|
+
group: "Discovery & MCP",
|
|
2846
3654
|
label: "MCP Discovery Default Servers",
|
|
2847
3655
|
description: "Keep MCP tools from these servers visible while discovery mode hides other MCP tools",
|
|
2848
3656
|
},
|
|
@@ -2853,6 +3661,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2853
3661
|
default: false,
|
|
2854
3662
|
ui: {
|
|
2855
3663
|
tab: "tools",
|
|
3664
|
+
group: "Discovery & MCP",
|
|
2856
3665
|
label: "MCP Update Injection",
|
|
2857
3666
|
description: "Inject MCP resource updates into the agent conversation",
|
|
2858
3667
|
},
|
|
@@ -2863,8 +3672,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2863
3672
|
default: 500,
|
|
2864
3673
|
ui: {
|
|
2865
3674
|
tab: "tools",
|
|
3675
|
+
group: "Discovery & MCP",
|
|
2866
3676
|
label: "MCP Notification Debounce",
|
|
2867
|
-
description:
|
|
3677
|
+
description:
|
|
3678
|
+
"Debounce window in milliseconds for MCP resource updates before injecting them into the conversation",
|
|
2868
3679
|
},
|
|
2869
3680
|
},
|
|
2870
3681
|
|
|
@@ -2878,6 +3689,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2878
3689
|
default: true,
|
|
2879
3690
|
ui: {
|
|
2880
3691
|
tab: "tasks",
|
|
3692
|
+
group: "Modes",
|
|
2881
3693
|
label: "Plan Mode",
|
|
2882
3694
|
description: "Enable plan mode for read-only exploration and planning before execution",
|
|
2883
3695
|
},
|
|
@@ -2888,6 +3700,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2888
3700
|
default: true,
|
|
2889
3701
|
ui: {
|
|
2890
3702
|
tab: "tasks",
|
|
3703
|
+
group: "Modes",
|
|
2891
3704
|
label: "Goal Mode",
|
|
2892
3705
|
description: "Enable per-session goal mode and the hidden goal tool",
|
|
2893
3706
|
},
|
|
@@ -2898,7 +3711,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2898
3711
|
default: true,
|
|
2899
3712
|
ui: {
|
|
2900
3713
|
tab: "tasks",
|
|
2901
|
-
|
|
3714
|
+
group: "Modes",
|
|
3715
|
+
label: "Goal Status in Footer",
|
|
2902
3716
|
description: "Show token budget alongside the goal indicator in the status line",
|
|
2903
3717
|
},
|
|
2904
3718
|
},
|
|
@@ -2908,6 +3722,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2908
3722
|
default: ["interactive"],
|
|
2909
3723
|
ui: {
|
|
2910
3724
|
tab: "tasks",
|
|
3725
|
+
group: "Modes",
|
|
2911
3726
|
label: "Goal Continuation Modes",
|
|
2912
3727
|
description: "Run modes where active goals may auto-continue between turns",
|
|
2913
3728
|
},
|
|
@@ -2931,6 +3746,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2931
3746
|
default: "none",
|
|
2932
3747
|
ui: {
|
|
2933
3748
|
tab: "tasks",
|
|
3749
|
+
group: "Isolation",
|
|
2934
3750
|
label: "Isolation Mode",
|
|
2935
3751
|
description:
|
|
2936
3752
|
'Isolation backend for subagents. "auto" lets the native PAL pick the best available backend (CoW-aware filesystems, then overlayfs/ProjFS, then a git worktree / recursive-copy fallback).',
|
|
@@ -2967,6 +3783,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2967
3783
|
default: "patch",
|
|
2968
3784
|
ui: {
|
|
2969
3785
|
tab: "tasks",
|
|
3786
|
+
group: "Isolation",
|
|
2970
3787
|
label: "Isolation Merge Strategy",
|
|
2971
3788
|
description: "How isolated task changes are integrated (patch apply or branch merge)",
|
|
2972
3789
|
options: [
|
|
@@ -2982,6 +3799,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2982
3799
|
default: "generic",
|
|
2983
3800
|
ui: {
|
|
2984
3801
|
tab: "tasks",
|
|
3802
|
+
group: "Isolation",
|
|
2985
3803
|
label: "Isolation Commit Style",
|
|
2986
3804
|
description: "Commit message style for nested repo changes (generic or AI-generated)",
|
|
2987
3805
|
options: [
|
|
@@ -2992,40 +3810,31 @@ export const SETTINGS_SCHEMA = {
|
|
|
2992
3810
|
},
|
|
2993
3811
|
|
|
2994
3812
|
"task.eager": {
|
|
2995
|
-
type: "
|
|
2996
|
-
|
|
3813
|
+
type: "enum",
|
|
3814
|
+
values: ["default", "preferred", "always"] as const,
|
|
3815
|
+
default: "default",
|
|
2997
3816
|
ui: {
|
|
2998
3817
|
tab: "tasks",
|
|
3818
|
+
group: "Subagents",
|
|
2999
3819
|
label: "Prefer Task Delegation",
|
|
3000
|
-
description: "
|
|
3820
|
+
description: "How strongly to push delegating work to subagents",
|
|
3821
|
+
options: [
|
|
3822
|
+
{ value: "default", label: "Default", description: "Model decides when to delegate" },
|
|
3823
|
+
{ value: "preferred", label: "Preferred", description: "Adds delegation guidance to the system prompt" },
|
|
3824
|
+
{ value: "always", label: "Always", description: "Prompt guidance plus a first-turn delegation reminder" },
|
|
3825
|
+
],
|
|
3001
3826
|
},
|
|
3002
3827
|
},
|
|
3003
3828
|
|
|
3004
|
-
"task.
|
|
3005
|
-
type: "
|
|
3006
|
-
|
|
3007
|
-
default: "schema-free",
|
|
3829
|
+
"task.batch": {
|
|
3830
|
+
type: "boolean",
|
|
3831
|
+
default: true,
|
|
3008
3832
|
ui: {
|
|
3009
3833
|
tab: "tasks",
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
{
|
|
3014
|
-
value: "default",
|
|
3015
|
-
label: "Default",
|
|
3016
|
-
description: "Shared context and custom task schema are available",
|
|
3017
|
-
},
|
|
3018
|
-
{
|
|
3019
|
-
value: "schema-free",
|
|
3020
|
-
label: "Schema-free",
|
|
3021
|
-
description: "Shared context stays available, but custom task schema is disabled",
|
|
3022
|
-
},
|
|
3023
|
-
{
|
|
3024
|
-
value: "independent",
|
|
3025
|
-
label: "Independent",
|
|
3026
|
-
description: "No shared context or custom task schema; each task must stand alone",
|
|
3027
|
-
},
|
|
3028
|
-
],
|
|
3834
|
+
group: "Subagents",
|
|
3835
|
+
label: "Batch Task Calls",
|
|
3836
|
+
description:
|
|
3837
|
+
"Switch the task tool to its batch shape: one call carries { agent, context, tasks[] } — one subagent per item (with per-item isolation) and a required shared context prepended to every assignment. With async.enabled=true, each spawn runs as an independent background agent with the normal idle/parked lifecycle; otherwise the call blocks for merged results. Disable to restore the flat single-spawn schema.",
|
|
3029
3838
|
},
|
|
3030
3839
|
},
|
|
3031
3840
|
|
|
@@ -3034,8 +3843,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3034
3843
|
default: 32,
|
|
3035
3844
|
ui: {
|
|
3036
3845
|
tab: "tasks",
|
|
3846
|
+
group: "Subagents",
|
|
3037
3847
|
label: "Max Concurrent Tasks",
|
|
3038
|
-
description: "
|
|
3848
|
+
description: "Maximum number of subagents running concurrently",
|
|
3039
3849
|
options: [
|
|
3040
3850
|
{ value: "0", label: "Unlimited" },
|
|
3041
3851
|
{ value: "1", label: "1 task" },
|
|
@@ -3054,6 +3864,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3054
3864
|
default: false,
|
|
3055
3865
|
ui: {
|
|
3056
3866
|
tab: "tasks",
|
|
3867
|
+
group: "Subagents",
|
|
3057
3868
|
label: "LSP in Subagents",
|
|
3058
3869
|
description:
|
|
3059
3870
|
"Allow subagents spawned via the task tool to use the lsp tool. Off by default to keep subagents cheap; enable when LSP-aware delegation is worth the extra tokens.",
|
|
@@ -3065,6 +3876,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3065
3876
|
default: 2,
|
|
3066
3877
|
ui: {
|
|
3067
3878
|
tab: "tasks",
|
|
3879
|
+
group: "Subagents",
|
|
3068
3880
|
label: "Max Task Recursion",
|
|
3069
3881
|
description: "How many levels deep subagents can spawn their own subagents",
|
|
3070
3882
|
options: [
|
|
@@ -3082,6 +3894,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3082
3894
|
default: 0,
|
|
3083
3895
|
ui: {
|
|
3084
3896
|
tab: "tasks",
|
|
3897
|
+
group: "Subagents",
|
|
3085
3898
|
label: "Max Subagent Runtime",
|
|
3086
3899
|
description:
|
|
3087
3900
|
"Hard wall-clock limit per subagent (ms). 0 disables it. Defense-in-depth against provider-side stream hangs that escape the inference-layer watchdog; triggers a normal subagent abort with a 'timed out' reason.",
|
|
@@ -3095,6 +3908,36 @@ export const SETTINGS_SCHEMA = {
|
|
|
3095
3908
|
},
|
|
3096
3909
|
},
|
|
3097
3910
|
|
|
3911
|
+
"task.agentIdleTtlMs": {
|
|
3912
|
+
type: "number",
|
|
3913
|
+
default: 420_000,
|
|
3914
|
+
ui: {
|
|
3915
|
+
tab: "tasks",
|
|
3916
|
+
group: "Subagents",
|
|
3917
|
+
label: "Agent Idle TTL",
|
|
3918
|
+
description:
|
|
3919
|
+
"How long an idle subagent stays live in memory before being parked to disk (ms). Parked agents are revived automatically when messaged or resumed. 0 keeps idle agents live until exit.",
|
|
3920
|
+
},
|
|
3921
|
+
},
|
|
3922
|
+
|
|
3923
|
+
"task.softRequestBudget": {
|
|
3924
|
+
type: "number",
|
|
3925
|
+
default: 90,
|
|
3926
|
+
ui: {
|
|
3927
|
+
tab: "tasks",
|
|
3928
|
+
group: "Subagents",
|
|
3929
|
+
label: "Soft Subagent Request Budget",
|
|
3930
|
+
description:
|
|
3931
|
+
"Soft per-subagent request budget (assistant requests per run). Crossing it injects one steering notice asking the subagent to wrap up; at 1.5x the budget the run is aborted gracefully, salvaging partial output. 0 disables the guard. Bundled explore/quick_task agents use a lower built-in budget.",
|
|
3932
|
+
options: [
|
|
3933
|
+
{ value: "0", label: "Disabled" },
|
|
3934
|
+
{ value: "40", label: "40 requests" },
|
|
3935
|
+
{ value: "90", label: "90 requests", description: "Default" },
|
|
3936
|
+
{ value: "150", label: "150 requests" },
|
|
3937
|
+
],
|
|
3938
|
+
},
|
|
3939
|
+
},
|
|
3940
|
+
|
|
3098
3941
|
"task.disabledAgents": {
|
|
3099
3942
|
type: "array",
|
|
3100
3943
|
default: [] as string[],
|
|
@@ -3109,9 +3952,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
3109
3952
|
type: "number",
|
|
3110
3953
|
default: 60,
|
|
3111
3954
|
ui: {
|
|
3112
|
-
tab: "
|
|
3113
|
-
|
|
3114
|
-
|
|
3955
|
+
tab: "tools",
|
|
3956
|
+
group: "Todos",
|
|
3957
|
+
label: "Todo Auto-Clear Delay",
|
|
3958
|
+
description: "Delay before completed or abandoned todos are removed from the todo widget",
|
|
3115
3959
|
options: [
|
|
3116
3960
|
{ value: "0", label: "Instant" },
|
|
3117
3961
|
{ value: "60", label: "1 minute", description: "Default" },
|
|
@@ -3129,6 +3973,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3129
3973
|
default: false,
|
|
3130
3974
|
ui: {
|
|
3131
3975
|
tab: "appearance",
|
|
3976
|
+
group: "Display",
|
|
3132
3977
|
label: "Show Resolved Model Badge",
|
|
3133
3978
|
description: "Display the actual model ID used by each subagent in the task widget status line",
|
|
3134
3979
|
},
|
|
@@ -3140,7 +3985,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3140
3985
|
"skills.enableSkillCommands": {
|
|
3141
3986
|
type: "boolean",
|
|
3142
3987
|
default: true,
|
|
3143
|
-
ui: {
|
|
3988
|
+
ui: {
|
|
3989
|
+
tab: "tasks",
|
|
3990
|
+
group: "Commands & Skills",
|
|
3991
|
+
label: "Skill Commands",
|
|
3992
|
+
description: "Register skills as /skill:name commands",
|
|
3993
|
+
},
|
|
3144
3994
|
},
|
|
3145
3995
|
|
|
3146
3996
|
"skills.enableCodexUser": { type: "boolean", default: true },
|
|
@@ -3149,9 +3999,13 @@ export const SETTINGS_SCHEMA = {
|
|
|
3149
3999
|
|
|
3150
4000
|
"skills.enableClaudeProject": { type: "boolean", default: true },
|
|
3151
4001
|
|
|
3152
|
-
"skills.
|
|
4002
|
+
"skills.enablePiUser": { type: "boolean", default: true },
|
|
4003
|
+
|
|
4004
|
+
"skills.enablePiProject": { type: "boolean", default: true },
|
|
4005
|
+
|
|
4006
|
+
"skills.enableAgentsUser": { type: "boolean", default: true },
|
|
3153
4007
|
|
|
3154
|
-
"skills.
|
|
4008
|
+
"skills.enableAgentsProject": { type: "boolean", default: true },
|
|
3155
4009
|
|
|
3156
4010
|
"skills.customDirectories": { type: "array", default: [] as string[] },
|
|
3157
4011
|
|
|
@@ -3163,13 +4017,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
3163
4017
|
"commands.enableClaudeUser": {
|
|
3164
4018
|
type: "boolean",
|
|
3165
4019
|
default: true,
|
|
3166
|
-
ui: {
|
|
4020
|
+
ui: {
|
|
4021
|
+
tab: "tasks",
|
|
4022
|
+
group: "Commands & Skills",
|
|
4023
|
+
label: "Claude User Commands",
|
|
4024
|
+
description: "Load commands from ~/.claude/commands/",
|
|
4025
|
+
},
|
|
3167
4026
|
},
|
|
3168
4027
|
|
|
3169
4028
|
"commands.enableClaudeProject": {
|
|
3170
4029
|
type: "boolean",
|
|
3171
4030
|
default: true,
|
|
3172
|
-
ui: {
|
|
4031
|
+
ui: {
|
|
4032
|
+
tab: "tasks",
|
|
4033
|
+
group: "Commands & Skills",
|
|
4034
|
+
label: "Claude Project Commands",
|
|
4035
|
+
description: "Load commands from .claude/commands/",
|
|
4036
|
+
},
|
|
3173
4037
|
},
|
|
3174
4038
|
|
|
3175
4039
|
"commands.enableOpencodeUser": {
|
|
@@ -3177,6 +4041,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3177
4041
|
default: true,
|
|
3178
4042
|
ui: {
|
|
3179
4043
|
tab: "tasks",
|
|
4044
|
+
group: "Commands & Skills",
|
|
3180
4045
|
label: "OpenCode User Commands",
|
|
3181
4046
|
description: "Load commands from ~/.config/opencode/commands/",
|
|
3182
4047
|
},
|
|
@@ -3185,7 +4050,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3185
4050
|
"commands.enableOpencodeProject": {
|
|
3186
4051
|
type: "boolean",
|
|
3187
4052
|
default: true,
|
|
3188
|
-
ui: {
|
|
4053
|
+
ui: {
|
|
4054
|
+
tab: "tasks",
|
|
4055
|
+
group: "Commands & Skills",
|
|
4056
|
+
label: "OpenCode Project Commands",
|
|
4057
|
+
description: "Load commands from .opencode/commands/",
|
|
4058
|
+
},
|
|
3189
4059
|
},
|
|
3190
4060
|
|
|
3191
4061
|
// ────────────────────────────────────────────────────────────────────────
|
|
@@ -3196,7 +4066,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3196
4066
|
"secrets.enabled": {
|
|
3197
4067
|
type: "boolean",
|
|
3198
4068
|
default: false,
|
|
3199
|
-
ui: {
|
|
4069
|
+
ui: {
|
|
4070
|
+
tab: "providers",
|
|
4071
|
+
group: "Privacy",
|
|
4072
|
+
label: "Hide Secrets",
|
|
4073
|
+
description: "Obfuscate secrets before sending to AI providers",
|
|
4074
|
+
},
|
|
3200
4075
|
},
|
|
3201
4076
|
|
|
3202
4077
|
// Provider selection
|
|
@@ -3206,8 +4081,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3206
4081
|
default: "auto",
|
|
3207
4082
|
ui: {
|
|
3208
4083
|
tab: "providers",
|
|
4084
|
+
group: "Services",
|
|
3209
4085
|
label: "Web Search Provider",
|
|
3210
|
-
description: "
|
|
4086
|
+
description: "Preferred provider for the web_search tool",
|
|
3211
4087
|
options: SEARCH_PROVIDER_OPTIONS,
|
|
3212
4088
|
},
|
|
3213
4089
|
},
|
|
@@ -3217,8 +4093,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3217
4093
|
default: "auto",
|
|
3218
4094
|
ui: {
|
|
3219
4095
|
tab: "providers",
|
|
4096
|
+
group: "Services",
|
|
3220
4097
|
label: "Image Provider",
|
|
3221
|
-
description: "
|
|
4098
|
+
description: "Preferred provider for image generation",
|
|
3222
4099
|
options: [
|
|
3223
4100
|
{
|
|
3224
4101
|
value: "auto",
|
|
@@ -3234,21 +4111,109 @@ export const SETTINGS_SCHEMA = {
|
|
|
3234
4111
|
{
|
|
3235
4112
|
value: "xai",
|
|
3236
4113
|
label: "xAI Grok Imagine",
|
|
3237
|
-
description: "Requires xAI Grok OAuth or
|
|
4114
|
+
description: "Requires xAI Grok OAuth or XAI_APROMETHEUS_KEY",
|
|
3238
4115
|
},
|
|
3239
|
-
{ value: "gemini", label: "Gemini", description: "Requires
|
|
3240
|
-
{ value: "openrouter", label: "OpenRouter", description: "Requires
|
|
4116
|
+
{ value: "gemini", label: "Gemini", description: "Requires GEMINI_APROMETHEUS_KEY" },
|
|
4117
|
+
{ value: "openrouter", label: "OpenRouter", description: "Requires OPENROUTER_APROMETHEUS_KEY" },
|
|
4118
|
+
],
|
|
4119
|
+
},
|
|
4120
|
+
},
|
|
4121
|
+
"providers.tts": {
|
|
4122
|
+
type: "enum",
|
|
4123
|
+
values: ["auto", "local", "xai"] as const,
|
|
4124
|
+
default: "auto",
|
|
4125
|
+
ui: {
|
|
4126
|
+
tab: "providers",
|
|
4127
|
+
group: "Services",
|
|
4128
|
+
label: "Text-to-Speech Provider",
|
|
4129
|
+
description: "Backend for the tts tool: local on-device neural TTS (Kokoro-82M) or xAI Grok Voice",
|
|
4130
|
+
options: [
|
|
4131
|
+
{
|
|
4132
|
+
value: "auto",
|
|
4133
|
+
label: "Auto",
|
|
4134
|
+
description: "Prefer local on-device TTS; route .mp3 output to xAI when credentials exist",
|
|
4135
|
+
},
|
|
4136
|
+
{ value: "local", label: "Local", description: "On-device neural TTS (Kokoro-82M); output is WAV/PCM16" },
|
|
4137
|
+
{
|
|
4138
|
+
value: "xai",
|
|
4139
|
+
label: "xAI Grok Voice",
|
|
4140
|
+
description: "Requires xAI Grok OAuth or XAI_APROMETHEUS_KEY; MP3 or WAV",
|
|
4141
|
+
},
|
|
4142
|
+
],
|
|
4143
|
+
},
|
|
4144
|
+
},
|
|
4145
|
+
"tts.localModel": {
|
|
4146
|
+
type: "enum",
|
|
4147
|
+
values: TTS_LOCAL_MODEL_VALUES,
|
|
4148
|
+
default: DEFAULT_TTS_LOCAL_MODEL_KEY,
|
|
4149
|
+
ui: {
|
|
4150
|
+
tab: "providers",
|
|
4151
|
+
group: "Services",
|
|
4152
|
+
label: "Local TTS Model",
|
|
4153
|
+
description: "On-device neural TTS model (Kokoro-82M) used by the local TTS backend",
|
|
4154
|
+
options: TTS_LOCAL_MODEL_OPTIONS,
|
|
4155
|
+
},
|
|
4156
|
+
},
|
|
4157
|
+
"tts.localVoice": {
|
|
4158
|
+
type: "enum",
|
|
4159
|
+
values: TTS_LOCAL_VOICE_VALUES,
|
|
4160
|
+
default: DEFAULT_TTS_VOICE,
|
|
4161
|
+
ui: {
|
|
4162
|
+
tab: "providers",
|
|
4163
|
+
group: "Services",
|
|
4164
|
+
label: "Local TTS Voice",
|
|
4165
|
+
description: "Kokoro voice used by the local TTS backend (American/British, female/male)",
|
|
4166
|
+
options: TTS_LOCAL_VOICE_OPTIONS,
|
|
4167
|
+
},
|
|
4168
|
+
},
|
|
4169
|
+
"speech.enabled": {
|
|
4170
|
+
type: "boolean",
|
|
4171
|
+
default: false,
|
|
4172
|
+
ui: {
|
|
4173
|
+
tab: "providers",
|
|
4174
|
+
group: "Services",
|
|
4175
|
+
label: "Speech Vocalization",
|
|
4176
|
+
description: "Speak the assistant's output aloud through the speakers as it streams",
|
|
4177
|
+
},
|
|
4178
|
+
},
|
|
4179
|
+
"speech.mode": {
|
|
4180
|
+
type: "enum",
|
|
4181
|
+
values: ["all", "assistant", "yield"] as const,
|
|
4182
|
+
default: "assistant",
|
|
4183
|
+
ui: {
|
|
4184
|
+
tab: "providers",
|
|
4185
|
+
group: "Services",
|
|
4186
|
+
label: "Speech Vocalization Mode",
|
|
4187
|
+
description:
|
|
4188
|
+
"What to speak: all = assistant messages + thinking; assistant = messages only; yield = only the final message at turn end",
|
|
4189
|
+
options: [
|
|
4190
|
+
{ value: "all", label: "All (messages + thinking)" },
|
|
4191
|
+
{ value: "assistant", label: "Assistant messages" },
|
|
4192
|
+
{ value: "yield", label: "Final message only" },
|
|
3241
4193
|
],
|
|
3242
4194
|
},
|
|
3243
4195
|
},
|
|
4196
|
+
"speech.voice": {
|
|
4197
|
+
type: "enum",
|
|
4198
|
+
values: TTS_LOCAL_VOICE_VALUES,
|
|
4199
|
+
default: DEFAULT_TTS_VOICE,
|
|
4200
|
+
ui: {
|
|
4201
|
+
tab: "providers",
|
|
4202
|
+
group: "Services",
|
|
4203
|
+
label: "Speech Vocalization Voice",
|
|
4204
|
+
description: "Kokoro voice used when speaking the assistant's output aloud",
|
|
4205
|
+
options: TTS_LOCAL_VOICE_OPTIONS,
|
|
4206
|
+
},
|
|
4207
|
+
},
|
|
3244
4208
|
"providers.tinyModel": {
|
|
3245
4209
|
type: "enum",
|
|
3246
4210
|
values: TINY_TITLE_MODEL_VALUES,
|
|
3247
4211
|
default: ONLINE_TINY_TITLE_MODEL_KEY,
|
|
3248
4212
|
ui: {
|
|
3249
4213
|
tab: "providers",
|
|
4214
|
+
group: "Tiny Model",
|
|
3250
4215
|
label: "Tiny Model",
|
|
3251
|
-
description: "Session-title model: online
|
|
4216
|
+
description: "Session-title model: online pi/smol by default, or a local on-device model",
|
|
3252
4217
|
options: TINY_TITLE_MODEL_OPTIONS,
|
|
3253
4218
|
},
|
|
3254
4219
|
},
|
|
@@ -3258,6 +4223,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3258
4223
|
default: TINY_MODEL_DEVICE_DEFAULT,
|
|
3259
4224
|
ui: {
|
|
3260
4225
|
tab: "providers",
|
|
4226
|
+
group: "Tiny Model",
|
|
3261
4227
|
label: "Tiny Model Device",
|
|
3262
4228
|
description:
|
|
3263
4229
|
"ONNX execution provider for local tiny models (titles + memory). Default uses CPU-only inference. The PROMETHEUS_TINY_DEVICE env var overrides this.",
|
|
@@ -3270,6 +4236,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3270
4236
|
default: TINY_MODEL_DTYPE_DEFAULT,
|
|
3271
4237
|
ui: {
|
|
3272
4238
|
tab: "providers",
|
|
4239
|
+
group: "Tiny Model",
|
|
3273
4240
|
label: "Tiny Model Precision",
|
|
3274
4241
|
description:
|
|
3275
4242
|
"ONNX quantization/precision for local tiny models. Default uses each model's shipped dtype (q4); lower precision is faster, higher is more faithful. The PROMETHEUS_TINY_DTYPE env var overrides this.",
|
|
@@ -3282,10 +4249,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
3282
4249
|
default: ONLINE_MEMORY_MODEL_KEY,
|
|
3283
4250
|
ui: {
|
|
3284
4251
|
tab: "memory",
|
|
4252
|
+
group: "General",
|
|
3285
4253
|
label: "Memory Model",
|
|
3286
4254
|
description:
|
|
3287
|
-
"
|
|
3288
|
-
condition: "
|
|
4255
|
+
"Mnemopi LLM for fact extraction + consolidation: online (smol/remote) by default, or a local on-device model",
|
|
4256
|
+
condition: "mnemopiActive",
|
|
3289
4257
|
options: TINY_MEMORY_MODEL_OPTIONS,
|
|
3290
4258
|
},
|
|
3291
4259
|
},
|
|
@@ -3296,6 +4264,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3296
4264
|
default: ONLINE_AUTO_THINKING_MODEL_KEY,
|
|
3297
4265
|
ui: {
|
|
3298
4266
|
tab: "model",
|
|
4267
|
+
group: "Thinking",
|
|
3299
4268
|
label: "Auto Thinking Model",
|
|
3300
4269
|
description:
|
|
3301
4270
|
"Difficulty classifier for the `auto` thinking level: online smol by default, or a local on-device model",
|
|
@@ -3310,6 +4279,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3310
4279
|
default: "anthropic",
|
|
3311
4280
|
ui: {
|
|
3312
4281
|
tab: "providers",
|
|
4282
|
+
group: "Protocol",
|
|
3313
4283
|
label: "Kimi API Format",
|
|
3314
4284
|
description: "API format for Kimi Code provider",
|
|
3315
4285
|
options: [
|
|
@@ -3325,6 +4295,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3325
4295
|
default: "auto",
|
|
3326
4296
|
ui: {
|
|
3327
4297
|
tab: "providers",
|
|
4298
|
+
group: "Protocol",
|
|
3328
4299
|
label: "OpenAI WebSockets",
|
|
3329
4300
|
description: "Websocket policy for OpenAI Codex models (auto uses model defaults, on forces, off disables)",
|
|
3330
4301
|
options: [
|
|
@@ -3341,6 +4312,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3341
4312
|
default: "default",
|
|
3342
4313
|
ui: {
|
|
3343
4314
|
tab: "providers",
|
|
4315
|
+
group: "Protocol",
|
|
3344
4316
|
label: "OpenRouter Routing",
|
|
3345
4317
|
description:
|
|
3346
4318
|
"Default routing-variant suffix appended to OpenRouter model IDs (overridden when the selector already names a variant)",
|
|
@@ -3357,13 +4329,70 @@ export const SETTINGS_SCHEMA = {
|
|
|
3357
4329
|
],
|
|
3358
4330
|
},
|
|
3359
4331
|
},
|
|
3360
|
-
"providers.
|
|
3361
|
-
type: "
|
|
3362
|
-
|
|
4332
|
+
"providers.fetch": {
|
|
4333
|
+
type: "enum",
|
|
4334
|
+
values: ["auto", "native", "trafilatura", "lynx", "parallel", "jina"] as const,
|
|
4335
|
+
default: "auto",
|
|
3363
4336
|
ui: {
|
|
3364
4337
|
tab: "providers",
|
|
3365
|
-
|
|
3366
|
-
|
|
4338
|
+
group: "Services",
|
|
4339
|
+
label: "Fetch Provider",
|
|
4340
|
+
description: "Reader backend priority for the fetch/read URL tool",
|
|
4341
|
+
options: [
|
|
4342
|
+
{
|
|
4343
|
+
value: "auto",
|
|
4344
|
+
label: "Auto",
|
|
4345
|
+
description: "Priority: native > trafilatura > lynx > parallel > jina",
|
|
4346
|
+
},
|
|
4347
|
+
{ value: "native", label: "Native", description: "In-process HTML→Markdown converter (always available)" },
|
|
4348
|
+
{ value: "trafilatura", label: "Trafilatura", description: "Auto-installs via uv/pip" },
|
|
4349
|
+
{ value: "lynx", label: "Lynx", description: "Requires lynx system package" },
|
|
4350
|
+
{ value: "parallel", label: "Parallel", description: "Requires PARALLEL_APROMETHEUS_KEY" },
|
|
4351
|
+
{ value: "jina", label: "Jina", description: "Uses r.jina.ai reader (JINA_APROMETHEUS_KEY optional)" },
|
|
4352
|
+
],
|
|
4353
|
+
},
|
|
4354
|
+
},
|
|
4355
|
+
// Codex saved rate-limit resets (auto-redeem)
|
|
4356
|
+
"codexResets.autoRedeem": {
|
|
4357
|
+
type: "enum",
|
|
4358
|
+
values: ["unset", "yes", "no"] as const,
|
|
4359
|
+
default: "unset" as const,
|
|
4360
|
+
ui: {
|
|
4361
|
+
tab: "providers",
|
|
4362
|
+
group: "Services",
|
|
4363
|
+
label: "Codex Auto-Redeem Saved Resets",
|
|
4364
|
+
description:
|
|
4365
|
+
"When a turn is blocked by the Codex weekly limit on the active account and no other account is available, run the conservative saved-reset check. unset asks before spending the first eligible reset, yes spends eligible resets without prompting, and no disables the check entirely. Requires retries enabled.",
|
|
4366
|
+
options: [
|
|
4367
|
+
{
|
|
4368
|
+
value: "unset",
|
|
4369
|
+
label: "Unset",
|
|
4370
|
+
description: "Check eligibility, then ask before spending the first saved reset.",
|
|
4371
|
+
},
|
|
4372
|
+
{ value: "yes", label: "Yes", description: "Spend eligible saved resets without prompting." },
|
|
4373
|
+
{ value: "no", label: "No", description: "Do not run the saved-reset auto-redeem check." },
|
|
4374
|
+
],
|
|
4375
|
+
},
|
|
4376
|
+
},
|
|
4377
|
+
"codexResets.minBlockedMinutes": {
|
|
4378
|
+
type: "number",
|
|
4379
|
+
default: 60,
|
|
4380
|
+
ui: {
|
|
4381
|
+
tab: "providers",
|
|
4382
|
+
group: "Services",
|
|
4383
|
+
label: "Codex Auto-Redeem Min Block",
|
|
4384
|
+
description:
|
|
4385
|
+
"Only auto-redeem when the natural weekly reset is at least this many minutes away (don't spend a ~30-day credit to save a short wait).",
|
|
4386
|
+
},
|
|
4387
|
+
},
|
|
4388
|
+
"codexResets.keepCredits": {
|
|
4389
|
+
type: "number",
|
|
4390
|
+
default: 0,
|
|
4391
|
+
ui: {
|
|
4392
|
+
tab: "providers",
|
|
4393
|
+
group: "Services",
|
|
4394
|
+
label: "Codex Auto-Redeem Reserve",
|
|
4395
|
+
description: "Never auto-spend below this many saved resets (0 = the last credit may be spent automatically).",
|
|
3367
4396
|
},
|
|
3368
4397
|
},
|
|
3369
4398
|
"provider.appendOnlyContext": {
|
|
@@ -3372,6 +4401,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3372
4401
|
default: "auto",
|
|
3373
4402
|
ui: {
|
|
3374
4403
|
tab: "providers",
|
|
4404
|
+
group: "Protocol",
|
|
3375
4405
|
label: "Append-Only Context",
|
|
3376
4406
|
description:
|
|
3377
4407
|
"Cache system prompt + tool specs and keep an append-only message log so provider prefix caches (DeepSeek, Xiaomi/SGLang, Anthropic) hit at maximum rate. Auto enables for known prefix-cache providers.",
|
|
@@ -3387,25 +4417,40 @@ export const SETTINGS_SCHEMA = {
|
|
|
3387
4417
|
"exa.enabled": {
|
|
3388
4418
|
type: "boolean",
|
|
3389
4419
|
default: true,
|
|
3390
|
-
ui: { tab: "providers", label: "Exa", description: "Master toggle for all Exa search tools" },
|
|
4420
|
+
ui: { tab: "providers", group: "Services", label: "Exa", description: "Master toggle for all Exa search tools" },
|
|
3391
4421
|
},
|
|
3392
4422
|
|
|
3393
4423
|
"exa.enableSearch": {
|
|
3394
4424
|
type: "boolean",
|
|
3395
4425
|
default: true,
|
|
3396
|
-
ui: {
|
|
4426
|
+
ui: {
|
|
4427
|
+
tab: "providers",
|
|
4428
|
+
group: "Services",
|
|
4429
|
+
label: "Exa Search",
|
|
4430
|
+
description: "Enable Exa basic search, deep search, code search, and crawl tools",
|
|
4431
|
+
},
|
|
3397
4432
|
},
|
|
3398
4433
|
|
|
3399
4434
|
"exa.enableResearcher": {
|
|
3400
4435
|
type: "boolean",
|
|
3401
4436
|
default: false,
|
|
3402
|
-
ui: {
|
|
4437
|
+
ui: {
|
|
4438
|
+
tab: "providers",
|
|
4439
|
+
group: "Services",
|
|
4440
|
+
label: "Exa Researcher",
|
|
4441
|
+
description: "Enable the Exa researcher tool for AI-powered deep research",
|
|
4442
|
+
},
|
|
3403
4443
|
},
|
|
3404
4444
|
|
|
3405
4445
|
"exa.enableWebsets": {
|
|
3406
4446
|
type: "boolean",
|
|
3407
4447
|
default: false,
|
|
3408
|
-
ui: {
|
|
4448
|
+
ui: {
|
|
4449
|
+
tab: "providers",
|
|
4450
|
+
group: "Services",
|
|
4451
|
+
label: "Exa Websets",
|
|
4452
|
+
description: "Enable Exa webset management and enrichment tools",
|
|
4453
|
+
},
|
|
3409
4454
|
},
|
|
3410
4455
|
|
|
3411
4456
|
// SearXNG
|
|
@@ -3414,8 +4459,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3414
4459
|
default: undefined,
|
|
3415
4460
|
ui: {
|
|
3416
4461
|
tab: "providers",
|
|
4462
|
+
group: "Services",
|
|
3417
4463
|
label: "SearXNG Endpoint",
|
|
3418
|
-
description: "
|
|
4464
|
+
description: "Base URL of a self-hosted SearXNG instance used for web search",
|
|
3419
4465
|
},
|
|
3420
4466
|
},
|
|
3421
4467
|
|
|
@@ -3461,6 +4507,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3461
4507
|
default: false,
|
|
3462
4508
|
ui: {
|
|
3463
4509
|
tab: "tools",
|
|
4510
|
+
group: "Developer",
|
|
3464
4511
|
label: "Auto QA",
|
|
3465
4512
|
description: "Enable automated tool issue reporting (report_tool_issue) for all agents",
|
|
3466
4513
|
},
|
|
@@ -3468,15 +4515,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3468
4515
|
|
|
3469
4516
|
"dev.autoqaPush.endpoint": {
|
|
3470
4517
|
type: "string",
|
|
3471
|
-
|
|
3472
|
-
// Override via `PROMETHEUS_AUTO_QA_PUSH_URL` or `dev.autoqaPush.endpoint`
|
|
3473
|
-
// in `config.yml` to point at a self-hosted instance.
|
|
3474
|
-
default: "https://qa.prometheus.trivlab.com/v1/grievances" as const,
|
|
4518
|
+
default: "https://qa.prometheus.sh/v1/grievances" as const,
|
|
3475
4519
|
ui: {
|
|
3476
4520
|
tab: "tools",
|
|
4521
|
+
group: "Developer",
|
|
3477
4522
|
label: "Auto QA Push Endpoint",
|
|
3478
|
-
description:
|
|
3479
|
-
"Full URL that receives the JSON payload (default ships to https://qa.prometheus.trivlab.com/v1/grievances)",
|
|
4523
|
+
description: "Full URL receiving Auto QA JSON reports (default https://qa.prometheus.sh/v1/grievances)",
|
|
3480
4524
|
},
|
|
3481
4525
|
},
|
|
3482
4526
|
|
|
@@ -3523,21 +4567,23 @@ type Schema = typeof SETTINGS_SCHEMA;
|
|
|
3523
4567
|
export type SettingPath = keyof Schema;
|
|
3524
4568
|
|
|
3525
4569
|
/** Infer the value type for a setting path */
|
|
3526
|
-
export type SettingValue<P extends SettingPath> = Schema[P] extends { type: "boolean" }
|
|
3527
|
-
? boolean
|
|
3528
|
-
: Schema[P] extends { type: "
|
|
3529
|
-
?
|
|
3530
|
-
: Schema[P] extends { type: "
|
|
3531
|
-
?
|
|
3532
|
-
: Schema[P] extends { type: "
|
|
3533
|
-
?
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
: Schema[P] extends { type: "
|
|
4570
|
+
export type SettingValue<P extends SettingPath> = Schema[P] extends { type: "boolean"; default: undefined }
|
|
4571
|
+
? boolean | undefined
|
|
4572
|
+
: Schema[P] extends { type: "boolean" }
|
|
4573
|
+
? boolean
|
|
4574
|
+
: Schema[P] extends { type: "string" }
|
|
4575
|
+
? string | undefined
|
|
4576
|
+
: Schema[P] extends { type: "number" }
|
|
4577
|
+
? number
|
|
4578
|
+
: Schema[P] extends { type: "enum"; values: infer V }
|
|
4579
|
+
? V extends readonly string[]
|
|
4580
|
+
? V[number]
|
|
4581
|
+
: never
|
|
4582
|
+
: Schema[P] extends { type: "array"; default: infer D }
|
|
3539
4583
|
? D
|
|
3540
|
-
:
|
|
4584
|
+
: Schema[P] extends { type: "record"; default: infer D }
|
|
4585
|
+
? D
|
|
4586
|
+
: never;
|
|
3541
4587
|
|
|
3542
4588
|
/** Get the default value for a setting path */
|
|
3543
4589
|
export function getDefault<P extends SettingPath>(path: P): SettingValue<P> {
|
|
@@ -3587,13 +4633,16 @@ export type StatusLineSeparatorStyle = SettingValue<"statusLine.separator">;
|
|
|
3587
4633
|
/** Tree selector filter mode - derived from schema */
|
|
3588
4634
|
export type TreeFilterMode = SettingValue<"treeFilterMode">;
|
|
3589
4635
|
|
|
4636
|
+
/** Personality preset - derived from schema */
|
|
4637
|
+
export type Personality = SettingValue<"personality">;
|
|
4638
|
+
|
|
3590
4639
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
3591
4640
|
// Typed Group Definitions
|
|
3592
4641
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
3593
4642
|
|
|
3594
4643
|
export interface CompactionSettings {
|
|
3595
4644
|
enabled: boolean;
|
|
3596
|
-
strategy: "context-full" | "handoff" | "shake" | "off";
|
|
4645
|
+
strategy: "context-full" | "handoff" | "shake" | "snapcompact" | "off";
|
|
3597
4646
|
thresholdPercent: number;
|
|
3598
4647
|
thresholdTokens: number;
|
|
3599
4648
|
reserveTokens: number;
|
|
@@ -3605,6 +4654,8 @@ export interface CompactionSettings {
|
|
|
3605
4654
|
idleEnabled: boolean;
|
|
3606
4655
|
idleThresholdTokens: number;
|
|
3607
4656
|
idleTimeoutSeconds: number;
|
|
4657
|
+
supersedeReads: boolean;
|
|
4658
|
+
dropUseless: boolean;
|
|
3608
4659
|
}
|
|
3609
4660
|
|
|
3610
4661
|
export interface ContextPromotionSettings {
|
|
@@ -3652,8 +4703,10 @@ export interface SkillsSettings {
|
|
|
3652
4703
|
enableCodexUser?: boolean;
|
|
3653
4704
|
enableClaudeUser?: boolean;
|
|
3654
4705
|
enableClaudeProject?: boolean;
|
|
3655
|
-
|
|
3656
|
-
|
|
4706
|
+
enablePiUser?: boolean;
|
|
4707
|
+
enablePiProject?: boolean;
|
|
4708
|
+
enableAgentsUser?: boolean;
|
|
4709
|
+
enableAgentsProject?: boolean;
|
|
3657
4710
|
customDirectories?: string[];
|
|
3658
4711
|
ignoredSkills?: string[];
|
|
3659
4712
|
includeSkills?: string[];
|
|
@@ -3692,6 +4745,7 @@ export interface StatusLineSettings {
|
|
|
3692
4745
|
preset: StatusLinePreset;
|
|
3693
4746
|
separator: StatusLineSeparatorStyle;
|
|
3694
4747
|
showHookStatus: boolean;
|
|
4748
|
+
transparent: boolean;
|
|
3695
4749
|
leftSegments: StatusLineSegmentId[];
|
|
3696
4750
|
rightSegments: StatusLineSegmentId[];
|
|
3697
4751
|
segmentOptions: Record<string, unknown>;
|
|
@@ -3709,8 +4763,7 @@ export interface SttSettings {
|
|
|
3709
4763
|
enabled: boolean;
|
|
3710
4764
|
language: string | undefined;
|
|
3711
4765
|
modelName: string;
|
|
3712
|
-
|
|
3713
|
-
modelPath: string | undefined;
|
|
4766
|
+
streaming: boolean;
|
|
3714
4767
|
}
|
|
3715
4768
|
|
|
3716
4769
|
export interface BashInterceptorRule {
|
|
@@ -3727,6 +4780,15 @@ export interface ShellMinimizerSettings {
|
|
|
3727
4780
|
only: string[];
|
|
3728
4781
|
except: string[];
|
|
3729
4782
|
maxCaptureBytes: number;
|
|
4783
|
+
sourceOutlineLevel: "default" | "aggressive";
|
|
4784
|
+
legacyFilters: boolean | undefined;
|
|
4785
|
+
}
|
|
4786
|
+
export type CodexAutoRedeemMode = "unset" | "yes" | "no";
|
|
4787
|
+
|
|
4788
|
+
export interface CodexResetsSettings {
|
|
4789
|
+
autoRedeem: CodexAutoRedeemMode;
|
|
4790
|
+
minBlockedMinutes: number;
|
|
4791
|
+
keepCredits: number;
|
|
3730
4792
|
}
|
|
3731
4793
|
|
|
3732
4794
|
/** Map group prefix -> typed settings interface */
|
|
@@ -3747,6 +4809,7 @@ export interface GroupTypeMap {
|
|
|
3747
4809
|
modelTags: ModelTagsSettings;
|
|
3748
4810
|
cycleOrder: string[];
|
|
3749
4811
|
shellMinimizer: ShellMinimizerSettings;
|
|
4812
|
+
codexResets: CodexResetsSettings;
|
|
3750
4813
|
}
|
|
3751
4814
|
|
|
3752
4815
|
export type GroupPrefix = keyof GroupTypeMap;
|