@prometheus-ai/agent 0.5.4 → 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 +30 -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/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/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 +1202 -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/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/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/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 +1441 -387
- 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/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 +9 -7
- 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/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,6 +399,7 @@ 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
|
},
|
|
@@ -340,6 +409,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
340
409
|
default: undefined,
|
|
341
410
|
ui: {
|
|
342
411
|
tab: "channels",
|
|
412
|
+
group: "Telegram",
|
|
343
413
|
label: "Telegram Allowed Chats",
|
|
344
414
|
description: "Comma-separated Telegram chat IDs allowed to use the gateway",
|
|
345
415
|
},
|
|
@@ -350,6 +420,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
350
420
|
default: "shared",
|
|
351
421
|
ui: {
|
|
352
422
|
tab: "channels",
|
|
423
|
+
group: "Telegram",
|
|
353
424
|
label: "Telegram Group Scope",
|
|
354
425
|
description: "Session sharing for non-threaded group chats",
|
|
355
426
|
options: [
|
|
@@ -364,6 +435,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
364
435
|
default: "shared",
|
|
365
436
|
ui: {
|
|
366
437
|
tab: "channels",
|
|
438
|
+
group: "Telegram",
|
|
367
439
|
label: "Telegram Thread Scope",
|
|
368
440
|
description: "Session sharing for Telegram topics and direct-message topics",
|
|
369
441
|
options: [
|
|
@@ -378,6 +450,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
378
450
|
default: "none",
|
|
379
451
|
ui: {
|
|
380
452
|
tab: "channels",
|
|
453
|
+
group: "Telegram",
|
|
381
454
|
label: "Telegram Parse Mode",
|
|
382
455
|
description: "Telegram parse_mode for bot replies",
|
|
383
456
|
options: [
|
|
@@ -393,6 +466,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
393
466
|
default: false,
|
|
394
467
|
ui: {
|
|
395
468
|
tab: "channels",
|
|
469
|
+
group: "Telegram",
|
|
396
470
|
label: "Telegram Silent Replies",
|
|
397
471
|
description: "Send Telegram replies without notification sound",
|
|
398
472
|
},
|
|
@@ -402,6 +476,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
402
476
|
default: true,
|
|
403
477
|
ui: {
|
|
404
478
|
tab: "channels",
|
|
479
|
+
group: "Telegram",
|
|
405
480
|
label: "Telegram HD Previews",
|
|
406
481
|
description: "Ask Telegram to use larger media previews where the Bot API supports it",
|
|
407
482
|
},
|
|
@@ -411,6 +486,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
411
486
|
default: false,
|
|
412
487
|
ui: {
|
|
413
488
|
tab: "channels",
|
|
489
|
+
group: "Telegram",
|
|
414
490
|
label: "Telegram Bot Messages",
|
|
415
491
|
description: "Allow Telegram messages sent by bot accounts",
|
|
416
492
|
},
|
|
@@ -420,6 +496,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
420
496
|
default: false,
|
|
421
497
|
ui: {
|
|
422
498
|
tab: "channels",
|
|
499
|
+
group: "Telegram",
|
|
423
500
|
label: "Telegram Raw Payloads",
|
|
424
501
|
description: "Attach raw Telegram update payloads to gateway events for debugging",
|
|
425
502
|
},
|
|
@@ -429,6 +506,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
429
506
|
default: true,
|
|
430
507
|
ui: {
|
|
431
508
|
tab: "channels",
|
|
509
|
+
group: "Telegram",
|
|
432
510
|
label: "Telegram Expressions",
|
|
433
511
|
description: "Allow Prometheus to attach matching Telegram expression intents to replies",
|
|
434
512
|
},
|
|
@@ -438,6 +516,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
438
516
|
default: 2,
|
|
439
517
|
ui: {
|
|
440
518
|
tab: "channels",
|
|
519
|
+
group: "Telegram",
|
|
441
520
|
label: "Telegram Expression Match",
|
|
442
521
|
description: "Minimum local catalog match score before attaching a Telegram expression",
|
|
443
522
|
options: [
|
|
@@ -452,6 +531,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
452
531
|
default: EMPTY_UNKNOWN_RECORD,
|
|
453
532
|
ui: {
|
|
454
533
|
tab: "channels",
|
|
534
|
+
group: "Telegram",
|
|
455
535
|
label: "Telegram Expression Catalog",
|
|
456
536
|
description: "Searchable Telegram expression intents with sticker/GIF variants",
|
|
457
537
|
},
|
|
@@ -461,6 +541,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
461
541
|
default: undefined,
|
|
462
542
|
ui: {
|
|
463
543
|
tab: "channels",
|
|
544
|
+
group: "Telegram",
|
|
464
545
|
label: "Telegram Expression File",
|
|
465
546
|
description: "Optional JSON catalog path for Telegram expression intents",
|
|
466
547
|
},
|
|
@@ -471,6 +552,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
471
552
|
default: false,
|
|
472
553
|
ui: {
|
|
473
554
|
tab: "interaction",
|
|
555
|
+
group: "Startup & Updates",
|
|
474
556
|
label: "Auto Resume",
|
|
475
557
|
description: "Automatically resume the most recent session in the current directory",
|
|
476
558
|
},
|
|
@@ -482,8 +564,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
482
564
|
default: true,
|
|
483
565
|
ui: {
|
|
484
566
|
tab: "interaction",
|
|
485
|
-
|
|
486
|
-
|
|
567
|
+
group: "Power (macOS)",
|
|
568
|
+
label: "Prevent Idle Sleep",
|
|
569
|
+
description: "Keep the system awake while a session is open (caffeinate -i)",
|
|
487
570
|
},
|
|
488
571
|
},
|
|
489
572
|
"power.preventSystemSleep": {
|
|
@@ -491,8 +574,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
491
574
|
default: false,
|
|
492
575
|
ui: {
|
|
493
576
|
tab: "interaction",
|
|
494
|
-
|
|
495
|
-
|
|
577
|
+
group: "Power (macOS)",
|
|
578
|
+
label: "Prevent System Sleep on AC",
|
|
579
|
+
description: "Block all system sleep while on AC power (caffeinate -s)",
|
|
496
580
|
},
|
|
497
581
|
},
|
|
498
582
|
"power.declareUserActive": {
|
|
@@ -500,8 +584,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
500
584
|
default: false,
|
|
501
585
|
ui: {
|
|
502
586
|
tab: "interaction",
|
|
503
|
-
|
|
504
|
-
|
|
587
|
+
group: "Power (macOS)",
|
|
588
|
+
label: "Declare User Active",
|
|
589
|
+
description: "Keep the display lit and treat the user as active (caffeinate -u)",
|
|
505
590
|
},
|
|
506
591
|
},
|
|
507
592
|
"power.preventDisplaySleep": {
|
|
@@ -509,30 +594,15 @@ export const SETTINGS_SCHEMA = {
|
|
|
509
594
|
default: false,
|
|
510
595
|
ui: {
|
|
511
596
|
tab: "interaction",
|
|
512
|
-
|
|
513
|
-
|
|
597
|
+
group: "Power (macOS)",
|
|
598
|
+
label: "Prevent Display Sleep",
|
|
599
|
+
description: "Keep the display from idle-sleeping while a session is open (caffeinate -d)",
|
|
514
600
|
},
|
|
515
601
|
},
|
|
516
602
|
shellPath: { type: "string", default: undefined },
|
|
517
603
|
|
|
518
604
|
extensions: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
519
605
|
|
|
520
|
-
"marketplace.autoUpdate": {
|
|
521
|
-
type: "enum",
|
|
522
|
-
values: ["off", "notify", "auto"] as const,
|
|
523
|
-
default: "notify",
|
|
524
|
-
ui: {
|
|
525
|
-
tab: "tools",
|
|
526
|
-
label: "Marketplace Auto-Update",
|
|
527
|
-
description: "Check for plugin updates on startup (off/notify/auto)",
|
|
528
|
-
options: [
|
|
529
|
-
{ value: "off", label: "Off", description: "Don't check for plugin updates" },
|
|
530
|
-
{ value: "notify", label: "Notify", description: "Check on startup and notify when updates are available" },
|
|
531
|
-
{ value: "auto", label: "Auto", description: "Check on startup and auto-install updates" },
|
|
532
|
-
],
|
|
533
|
-
},
|
|
534
|
-
},
|
|
535
|
-
|
|
536
606
|
enabledModels: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
537
607
|
|
|
538
608
|
disabledProviders: { type: "array", default: EMPTY_STRING_ARRAY },
|
|
@@ -557,8 +627,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
557
627
|
default: "titanium",
|
|
558
628
|
ui: {
|
|
559
629
|
tab: "appearance",
|
|
630
|
+
group: "Theme",
|
|
560
631
|
label: "Dark Theme",
|
|
561
|
-
description: "Theme used when terminal has dark background",
|
|
632
|
+
description: "Theme used when the terminal has a dark background",
|
|
562
633
|
options: "runtime",
|
|
563
634
|
},
|
|
564
635
|
},
|
|
@@ -568,8 +639,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
568
639
|
default: "light",
|
|
569
640
|
ui: {
|
|
570
641
|
tab: "appearance",
|
|
642
|
+
group: "Theme",
|
|
571
643
|
label: "Light Theme",
|
|
572
|
-
description: "Theme used when terminal has light background",
|
|
644
|
+
description: "Theme used when the terminal has a light background",
|
|
573
645
|
options: "runtime",
|
|
574
646
|
},
|
|
575
647
|
},
|
|
@@ -580,8 +652,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
580
652
|
default: "unicode",
|
|
581
653
|
ui: {
|
|
582
654
|
tab: "appearance",
|
|
655
|
+
group: "Theme",
|
|
583
656
|
label: "Symbol Preset",
|
|
584
|
-
description: "
|
|
657
|
+
description: "Glyph set for icons and symbols (Unicode, Nerd Font, or ASCII)",
|
|
585
658
|
options: [
|
|
586
659
|
{ value: "unicode", label: "Unicode", description: "Standard symbols (default)" },
|
|
587
660
|
{ value: "nerd", label: "Nerd Font", description: "Requires Nerd Font" },
|
|
@@ -595,6 +668,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
595
668
|
default: false,
|
|
596
669
|
ui: {
|
|
597
670
|
tab: "appearance",
|
|
671
|
+
group: "Theme",
|
|
598
672
|
label: "Color-Blind Mode",
|
|
599
673
|
description: "Use blue instead of green for diff additions",
|
|
600
674
|
},
|
|
@@ -607,6 +681,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
607
681
|
default: "default",
|
|
608
682
|
ui: {
|
|
609
683
|
tab: "appearance",
|
|
684
|
+
group: "Status Line",
|
|
610
685
|
label: "Status Line Preset",
|
|
611
686
|
description: "Pre-built status line configurations",
|
|
612
687
|
options: [
|
|
@@ -627,6 +702,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
627
702
|
default: "powerline-thin",
|
|
628
703
|
ui: {
|
|
629
704
|
tab: "appearance",
|
|
705
|
+
group: "Status Line",
|
|
630
706
|
label: "Status Line Separator",
|
|
631
707
|
description: "Style of separators between segments",
|
|
632
708
|
options: [
|
|
@@ -646,16 +722,30 @@ export const SETTINGS_SCHEMA = {
|
|
|
646
722
|
default: true,
|
|
647
723
|
ui: {
|
|
648
724
|
tab: "appearance",
|
|
725
|
+
group: "Status Line",
|
|
649
726
|
label: "Session Accent",
|
|
650
727
|
description: "Use the session name color for the editor border and status line gap",
|
|
651
728
|
},
|
|
652
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
|
+
},
|
|
653
742
|
"tools.artifactSpillThreshold": {
|
|
654
743
|
type: "number",
|
|
655
744
|
default: 50,
|
|
656
745
|
ui: {
|
|
657
746
|
tab: "tools",
|
|
658
|
-
|
|
747
|
+
group: "Output Limits",
|
|
748
|
+
label: "Artifact Spill Threshold (KB)",
|
|
659
749
|
description: "Tool output above this size is saved as an artifact; tail is kept inline",
|
|
660
750
|
options: [
|
|
661
751
|
{ value: "1", label: "1 KB", description: "~250 tokens" },
|
|
@@ -678,7 +768,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
678
768
|
default: 20,
|
|
679
769
|
ui: {
|
|
680
770
|
tab: "tools",
|
|
681
|
-
|
|
771
|
+
group: "Output Limits",
|
|
772
|
+
label: "Artifact Tail Size (KB)",
|
|
682
773
|
description: "Amount of tail content kept inline when output spills to artifact",
|
|
683
774
|
options: [
|
|
684
775
|
{ value: "1", label: "1 KB", description: "~250 tokens" },
|
|
@@ -697,7 +788,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
697
788
|
default: 20,
|
|
698
789
|
ui: {
|
|
699
790
|
tab: "tools",
|
|
700
|
-
|
|
791
|
+
group: "Output Limits",
|
|
792
|
+
label: "Artifact Head Size (KB)",
|
|
701
793
|
description:
|
|
702
794
|
"Amount of head content kept inline alongside the tail when output spills to artifact (middle elision). 0 disables — keep tail only.",
|
|
703
795
|
options: [
|
|
@@ -718,7 +810,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
718
810
|
default: 768,
|
|
719
811
|
ui: {
|
|
720
812
|
tab: "tools",
|
|
721
|
-
|
|
813
|
+
group: "Output Limits",
|
|
814
|
+
label: "Output Column Cap",
|
|
722
815
|
description:
|
|
723
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.",
|
|
724
817
|
options: [
|
|
@@ -737,7 +830,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
737
830
|
default: 500,
|
|
738
831
|
ui: {
|
|
739
832
|
tab: "tools",
|
|
740
|
-
|
|
833
|
+
group: "Output Limits",
|
|
834
|
+
label: "Artifact Tail Lines",
|
|
741
835
|
description: "Maximum lines of tail content kept inline when output spills to artifact",
|
|
742
836
|
options: [
|
|
743
837
|
{ value: "50", label: "50 lines", description: "~250 tokens" },
|
|
@@ -756,8 +850,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
756
850
|
default: true,
|
|
757
851
|
ui: {
|
|
758
852
|
tab: "appearance",
|
|
853
|
+
group: "Status Line",
|
|
759
854
|
label: "Show Hook Status",
|
|
760
|
-
description: "Display hook status messages below status line",
|
|
855
|
+
description: "Display hook status messages below the status line",
|
|
761
856
|
},
|
|
762
857
|
},
|
|
763
858
|
|
|
@@ -773,8 +868,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
773
868
|
default: true,
|
|
774
869
|
ui: {
|
|
775
870
|
tab: "appearance",
|
|
871
|
+
group: "Images",
|
|
776
872
|
label: "Show Inline Images",
|
|
777
|
-
description: "Render images inline in terminal",
|
|
873
|
+
description: "Render images inline in the terminal",
|
|
778
874
|
condition: "hasImageProtocol",
|
|
779
875
|
},
|
|
780
876
|
},
|
|
@@ -784,6 +880,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
784
880
|
default: true,
|
|
785
881
|
ui: {
|
|
786
882
|
tab: "appearance",
|
|
883
|
+
group: "Images",
|
|
787
884
|
label: "Auto-Resize Images",
|
|
788
885
|
description: "Resize large images to 2000x2000 max for better model compatibility",
|
|
789
886
|
},
|
|
@@ -792,7 +889,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
792
889
|
"images.blockImages": {
|
|
793
890
|
type: "boolean",
|
|
794
891
|
default: false,
|
|
795
|
-
ui: {
|
|
892
|
+
ui: {
|
|
893
|
+
tab: "appearance",
|
|
894
|
+
group: "Images",
|
|
895
|
+
label: "Block Images",
|
|
896
|
+
description: "Prevent images from being sent to LLM providers",
|
|
897
|
+
},
|
|
796
898
|
},
|
|
797
899
|
|
|
798
900
|
"tui.maxInlineImageColumns": {
|
|
@@ -821,6 +923,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
821
923
|
default: false,
|
|
822
924
|
ui: {
|
|
823
925
|
tab: "appearance",
|
|
926
|
+
group: "Display",
|
|
824
927
|
label: "Large Headings (Kitty)",
|
|
825
928
|
description:
|
|
826
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.",
|
|
@@ -833,6 +936,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
833
936
|
default: "auto",
|
|
834
937
|
ui: {
|
|
835
938
|
tab: "appearance",
|
|
939
|
+
group: "Display",
|
|
836
940
|
label: "Terminal Hyperlinks",
|
|
837
941
|
description:
|
|
838
942
|
"Wrap paths and URLs in OSC 8 hyperlinks for terminal-native click-to-open (auto: detect support; off: never; always: unconditional)",
|
|
@@ -850,6 +954,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
850
954
|
default: "classic",
|
|
851
955
|
ui: {
|
|
852
956
|
tab: "appearance",
|
|
957
|
+
group: "Display",
|
|
853
958
|
label: "Shimmer",
|
|
854
959
|
description: "Animation style for working/loading messages",
|
|
855
960
|
options: [
|
|
@@ -860,11 +965,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
860
965
|
},
|
|
861
966
|
},
|
|
862
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
|
+
|
|
863
979
|
"display.showTokenUsage": {
|
|
864
980
|
type: "boolean",
|
|
865
981
|
default: false,
|
|
866
982
|
ui: {
|
|
867
983
|
tab: "appearance",
|
|
984
|
+
group: "Display",
|
|
868
985
|
label: "Show Token Usage",
|
|
869
986
|
description: "Show per-turn token usage on assistant messages",
|
|
870
987
|
},
|
|
@@ -873,16 +990,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
873
990
|
showHardwareCursor: {
|
|
874
991
|
type: "boolean",
|
|
875
992
|
default: true, // will be computed based on platform if undefined
|
|
876
|
-
ui: { tab: "appearance", label: "Show Hardware Cursor", description: "Show terminal cursor for IME support" },
|
|
877
|
-
},
|
|
878
|
-
|
|
879
|
-
clearOnShrink: {
|
|
880
|
-
type: "boolean",
|
|
881
|
-
default: false,
|
|
882
993
|
ui: {
|
|
883
994
|
tab: "appearance",
|
|
884
|
-
|
|
885
|
-
|
|
995
|
+
group: "Display",
|
|
996
|
+
label: "Show Hardware Cursor",
|
|
997
|
+
description: "Show terminal cursor for IME support",
|
|
886
998
|
},
|
|
887
999
|
},
|
|
888
1000
|
|
|
@@ -897,6 +1009,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
897
1009
|
default: "high",
|
|
898
1010
|
ui: {
|
|
899
1011
|
tab: "model",
|
|
1012
|
+
group: "Thinking",
|
|
900
1013
|
label: "Thinking Level",
|
|
901
1014
|
description: "Reasoning depth for thinking-capable models",
|
|
902
1015
|
options: [
|
|
@@ -909,7 +1022,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
909
1022
|
hideThinkingBlock: {
|
|
910
1023
|
type: "boolean",
|
|
911
1024
|
default: false,
|
|
912
|
-
ui: {
|
|
1025
|
+
ui: {
|
|
1026
|
+
tab: "model",
|
|
1027
|
+
group: "Thinking",
|
|
1028
|
+
label: "Hide Thinking Blocks",
|
|
1029
|
+
description: "Hide thinking blocks in assistant responses",
|
|
1030
|
+
},
|
|
913
1031
|
},
|
|
914
1032
|
|
|
915
1033
|
repeatToolDescriptions: {
|
|
@@ -917,6 +1035,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
917
1035
|
default: false,
|
|
918
1036
|
ui: {
|
|
919
1037
|
tab: "model",
|
|
1038
|
+
group: "Prompt",
|
|
920
1039
|
label: "Repeat Tool Descriptions",
|
|
921
1040
|
description: "Render full tool descriptions in the system prompt instead of a tool name list",
|
|
922
1041
|
},
|
|
@@ -927,17 +1046,49 @@ export const SETTINGS_SCHEMA = {
|
|
|
927
1046
|
default: true,
|
|
928
1047
|
ui: {
|
|
929
1048
|
tab: "model",
|
|
930
|
-
|
|
1049
|
+
group: "Prompt",
|
|
1050
|
+
label: "Include Model in Prompt",
|
|
931
1051
|
description: "Surface the active model identifier in the system prompt so the agent knows which model it is",
|
|
932
1052
|
},
|
|
933
1053
|
},
|
|
934
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
|
+
|
|
935
1085
|
// Sampling
|
|
936
1086
|
temperature: {
|
|
937
1087
|
type: "number",
|
|
938
1088
|
default: -1,
|
|
939
1089
|
ui: {
|
|
940
1090
|
tab: "model",
|
|
1091
|
+
group: "Sampling",
|
|
941
1092
|
label: "Temperature",
|
|
942
1093
|
description: "Sampling temperature (0 = deterministic, 1 = creative, -1 = provider default)",
|
|
943
1094
|
options: [
|
|
@@ -956,6 +1107,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
956
1107
|
default: -1,
|
|
957
1108
|
ui: {
|
|
958
1109
|
tab: "model",
|
|
1110
|
+
group: "Sampling",
|
|
959
1111
|
label: "Top P",
|
|
960
1112
|
description: "Nucleus sampling cutoff (0-1, -1 = provider default)",
|
|
961
1113
|
options: [
|
|
@@ -974,6 +1126,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
974
1126
|
default: -1,
|
|
975
1127
|
ui: {
|
|
976
1128
|
tab: "model",
|
|
1129
|
+
group: "Sampling",
|
|
977
1130
|
label: "Top K",
|
|
978
1131
|
description: "Sample from top-K tokens (-1 = provider default)",
|
|
979
1132
|
options: [
|
|
@@ -991,6 +1144,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
991
1144
|
default: -1,
|
|
992
1145
|
ui: {
|
|
993
1146
|
tab: "model",
|
|
1147
|
+
group: "Sampling",
|
|
994
1148
|
label: "Min P",
|
|
995
1149
|
description: "Minimum probability threshold (0-1, -1 = provider default)",
|
|
996
1150
|
options: [
|
|
@@ -1007,6 +1161,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1007
1161
|
default: -1,
|
|
1008
1162
|
ui: {
|
|
1009
1163
|
tab: "model",
|
|
1164
|
+
group: "Sampling",
|
|
1010
1165
|
label: "Presence Penalty",
|
|
1011
1166
|
description: "Penalty for introducing already-present tokens (-1 = provider default)",
|
|
1012
1167
|
options: [
|
|
@@ -1024,6 +1179,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1024
1179
|
default: -1,
|
|
1025
1180
|
ui: {
|
|
1026
1181
|
tab: "model",
|
|
1182
|
+
group: "Sampling",
|
|
1027
1183
|
label: "Repetition Penalty",
|
|
1028
1184
|
description: "Penalty for repeated tokens (-1 = provider default)",
|
|
1029
1185
|
options: [
|
|
@@ -1043,6 +1199,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1043
1199
|
default: "none",
|
|
1044
1200
|
ui: {
|
|
1045
1201
|
tab: "model",
|
|
1202
|
+
group: "Sampling",
|
|
1046
1203
|
label: "Service Tier",
|
|
1047
1204
|
description:
|
|
1048
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.',
|
|
@@ -1071,14 +1228,41 @@ export const SETTINGS_SCHEMA = {
|
|
|
1071
1228
|
},
|
|
1072
1229
|
},
|
|
1073
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
|
+
|
|
1074
1257
|
// Retries
|
|
1075
1258
|
"retry.enabled": { type: "boolean", default: true },
|
|
1076
1259
|
|
|
1077
1260
|
"retry.maxRetries": {
|
|
1078
1261
|
type: "number",
|
|
1079
|
-
default:
|
|
1262
|
+
default: 10,
|
|
1080
1263
|
ui: {
|
|
1081
1264
|
tab: "model",
|
|
1265
|
+
group: "Retry & Fallback",
|
|
1082
1266
|
label: "Retry Attempts",
|
|
1083
1267
|
description: "Maximum retry attempts on API errors",
|
|
1084
1268
|
options: [
|
|
@@ -1091,12 +1275,13 @@ export const SETTINGS_SCHEMA = {
|
|
|
1091
1275
|
},
|
|
1092
1276
|
},
|
|
1093
1277
|
|
|
1094
|
-
"retry.baseDelayMs": { type: "number", default:
|
|
1278
|
+
"retry.baseDelayMs": { type: "number", default: 500 },
|
|
1095
1279
|
"retry.maxDelayMs": {
|
|
1096
1280
|
type: "number",
|
|
1097
1281
|
default: 5 * 60 * 1000,
|
|
1098
1282
|
ui: {
|
|
1099
1283
|
tab: "model",
|
|
1284
|
+
group: "Retry & Fallback",
|
|
1100
1285
|
label: "Max Retry Delay",
|
|
1101
1286
|
description:
|
|
1102
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).",
|
|
@@ -1107,6 +1292,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1107
1292
|
default: true,
|
|
1108
1293
|
ui: {
|
|
1109
1294
|
tab: "model",
|
|
1295
|
+
group: "Retry & Fallback",
|
|
1110
1296
|
label: "Retry Model Fallback",
|
|
1111
1297
|
description: "Allow retry recovery to switch to configured fallback models",
|
|
1112
1298
|
},
|
|
@@ -1118,6 +1304,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1118
1304
|
default: "cooldown-expiry",
|
|
1119
1305
|
ui: {
|
|
1120
1306
|
tab: "model",
|
|
1307
|
+
group: "Retry & Fallback",
|
|
1121
1308
|
label: "Fallback Revert Policy",
|
|
1122
1309
|
description: "When to return to the primary model after a fallback",
|
|
1123
1310
|
options: [
|
|
@@ -1142,6 +1329,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1142
1329
|
default: "one-at-a-time",
|
|
1143
1330
|
ui: {
|
|
1144
1331
|
tab: "interaction",
|
|
1332
|
+
group: "Input",
|
|
1145
1333
|
label: "Steering Mode",
|
|
1146
1334
|
description: "How to process queued messages while agent is working",
|
|
1147
1335
|
},
|
|
@@ -1153,6 +1341,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1153
1341
|
default: "one-at-a-time",
|
|
1154
1342
|
ui: {
|
|
1155
1343
|
tab: "interaction",
|
|
1344
|
+
group: "Input",
|
|
1156
1345
|
label: "Follow-Up Mode",
|
|
1157
1346
|
description: "How to drain follow-up messages after a turn completes",
|
|
1158
1347
|
},
|
|
@@ -1164,6 +1353,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1164
1353
|
default: "immediate",
|
|
1165
1354
|
ui: {
|
|
1166
1355
|
tab: "interaction",
|
|
1356
|
+
group: "Input",
|
|
1167
1357
|
label: "Interrupt Mode",
|
|
1168
1358
|
description: "When steering messages interrupt tool execution",
|
|
1169
1359
|
},
|
|
@@ -1175,6 +1365,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1175
1365
|
default: "prompt",
|
|
1176
1366
|
ui: {
|
|
1177
1367
|
tab: "interaction",
|
|
1368
|
+
group: "Input",
|
|
1178
1369
|
label: "Loop Mode",
|
|
1179
1370
|
description: "What happens between /loop iterations before re-submitting the prompt",
|
|
1180
1371
|
options: [
|
|
@@ -1200,6 +1391,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1200
1391
|
default: "tree",
|
|
1201
1392
|
ui: {
|
|
1202
1393
|
tab: "interaction",
|
|
1394
|
+
group: "Input",
|
|
1203
1395
|
label: "Double-Escape Action",
|
|
1204
1396
|
description: "Action when pressing Escape twice with empty editor",
|
|
1205
1397
|
},
|
|
@@ -1211,6 +1403,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1211
1403
|
default: "default",
|
|
1212
1404
|
ui: {
|
|
1213
1405
|
tab: "interaction",
|
|
1406
|
+
group: "Input",
|
|
1214
1407
|
label: "Session Tree Filter",
|
|
1215
1408
|
description: "Default filter mode when opening the session tree",
|
|
1216
1409
|
},
|
|
@@ -1221,6 +1414,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1221
1414
|
default: 5,
|
|
1222
1415
|
ui: {
|
|
1223
1416
|
tab: "interaction",
|
|
1417
|
+
group: "Input",
|
|
1224
1418
|
label: "Autocomplete Items",
|
|
1225
1419
|
description: "Max visible items in autocomplete dropdown (3-20)",
|
|
1226
1420
|
options: [
|
|
@@ -1239,16 +1433,37 @@ export const SETTINGS_SCHEMA = {
|
|
|
1239
1433
|
default: true,
|
|
1240
1434
|
ui: {
|
|
1241
1435
|
tab: "interaction",
|
|
1436
|
+
group: "Input",
|
|
1242
1437
|
label: "Emoji Autocomplete",
|
|
1243
1438
|
description: "Suggest emojis from `:name:` shortcodes and expand text emoticons like `:D` or `:-)`",
|
|
1244
1439
|
},
|
|
1245
1440
|
},
|
|
1246
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
|
+
|
|
1247
1461
|
"startup.quiet": {
|
|
1248
1462
|
type: "boolean",
|
|
1249
1463
|
default: false,
|
|
1250
1464
|
ui: {
|
|
1251
1465
|
tab: "interaction",
|
|
1466
|
+
group: "Startup & Updates",
|
|
1252
1467
|
label: "Quiet Startup",
|
|
1253
1468
|
description: "Skip welcome screen and startup status messages",
|
|
1254
1469
|
},
|
|
@@ -1259,6 +1474,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1259
1474
|
default: true,
|
|
1260
1475
|
ui: {
|
|
1261
1476
|
tab: "interaction",
|
|
1477
|
+
group: "Startup & Updates",
|
|
1262
1478
|
label: "Setup Wizard",
|
|
1263
1479
|
description: "Show newly added onboarding steps once per setup version",
|
|
1264
1480
|
},
|
|
@@ -1269,15 +1485,82 @@ export const SETTINGS_SCHEMA = {
|
|
|
1269
1485
|
default: true,
|
|
1270
1486
|
ui: {
|
|
1271
1487
|
tab: "interaction",
|
|
1488
|
+
group: "Startup & Updates",
|
|
1272
1489
|
label: "Check for Updates",
|
|
1273
|
-
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
|
+
],
|
|
1274
1508
|
},
|
|
1275
1509
|
},
|
|
1276
1510
|
|
|
1277
1511
|
collapseChangelog: {
|
|
1278
1512
|
type: "boolean",
|
|
1279
1513
|
default: false,
|
|
1280
|
-
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
|
+
},
|
|
1281
1564
|
},
|
|
1282
1565
|
|
|
1283
1566
|
// Notifications
|
|
@@ -1285,7 +1568,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
1285
1568
|
type: "enum",
|
|
1286
1569
|
values: ["on", "off"] as const,
|
|
1287
1570
|
default: "on",
|
|
1288
|
-
ui: {
|
|
1571
|
+
ui: {
|
|
1572
|
+
tab: "interaction",
|
|
1573
|
+
group: "Notifications",
|
|
1574
|
+
label: "Completion Notification",
|
|
1575
|
+
description: "Notify when the agent finishes a turn",
|
|
1576
|
+
},
|
|
1289
1577
|
},
|
|
1290
1578
|
|
|
1291
1579
|
"ask.timeout": {
|
|
@@ -1293,8 +1581,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
1293
1581
|
default: 0,
|
|
1294
1582
|
ui: {
|
|
1295
1583
|
tab: "interaction",
|
|
1584
|
+
group: "Notifications",
|
|
1296
1585
|
label: "Ask Timeout",
|
|
1297
|
-
description: "Auto-select recommended option after
|
|
1586
|
+
description: "Auto-select the recommended ask option after this many seconds (0 disables)",
|
|
1298
1587
|
options: [
|
|
1299
1588
|
{ value: "0", label: "Disabled" },
|
|
1300
1589
|
{ value: "15", label: "15 seconds" },
|
|
@@ -1309,14 +1598,70 @@ export const SETTINGS_SCHEMA = {
|
|
|
1309
1598
|
type: "enum",
|
|
1310
1599
|
values: ["on", "off"] as const,
|
|
1311
1600
|
default: "on",
|
|
1312
|
-
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
|
+
},
|
|
1313
1653
|
},
|
|
1314
1654
|
|
|
1315
1655
|
// Speech-to-text
|
|
1316
1656
|
"stt.enabled": {
|
|
1317
1657
|
type: "boolean",
|
|
1318
1658
|
default: false,
|
|
1319
|
-
ui: {
|
|
1659
|
+
ui: {
|
|
1660
|
+
tab: "interaction",
|
|
1661
|
+
group: "Speech",
|
|
1662
|
+
label: "Speech-to-Text",
|
|
1663
|
+
description: "Enable speech-to-text input via microphone",
|
|
1664
|
+
},
|
|
1320
1665
|
},
|
|
1321
1666
|
|
|
1322
1667
|
"stt.language": {
|
|
@@ -1326,23 +1671,15 @@ export const SETTINGS_SCHEMA = {
|
|
|
1326
1671
|
|
|
1327
1672
|
"stt.modelName": {
|
|
1328
1673
|
type: "enum",
|
|
1329
|
-
values:
|
|
1330
|
-
default:
|
|
1674
|
+
values: STT_MODEL_VALUES,
|
|
1675
|
+
default: DEFAULT_STT_MODEL_KEY,
|
|
1331
1676
|
ui: {
|
|
1332
1677
|
tab: "interaction",
|
|
1678
|
+
group: "Speech",
|
|
1333
1679
|
label: "Speech Model",
|
|
1334
|
-
description:
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
{ value: "tiny.en", label: "tiny.en", description: "English-only; fastest" },
|
|
1338
|
-
{ value: "base", label: "base", description: "Multilingual; small and fast" },
|
|
1339
|
-
{ value: "base.en", label: "base.en", description: "English-only; default" },
|
|
1340
|
-
{ value: "small", label: "small", description: "Multilingual; balanced" },
|
|
1341
|
-
{ value: "small.en", label: "small.en", description: "English-only; balanced" },
|
|
1342
|
-
{ value: "medium", label: "medium", description: "Multilingual; accurate but slower" },
|
|
1343
|
-
{ value: "medium.en", label: "medium.en", description: "English-only; accurate but slower" },
|
|
1344
|
-
{ value: "large", label: "large", description: "Multilingual; most accurate" },
|
|
1345
|
-
],
|
|
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,
|
|
1346
1683
|
},
|
|
1347
1684
|
},
|
|
1348
1685
|
|
|
@@ -1356,6 +1693,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1356
1693
|
default: true,
|
|
1357
1694
|
ui: {
|
|
1358
1695
|
tab: "context",
|
|
1696
|
+
group: "General",
|
|
1359
1697
|
label: "Auto-Promote Context",
|
|
1360
1698
|
description: "Promote to a larger-context model on context overflow instead of compacting",
|
|
1361
1699
|
},
|
|
@@ -1367,6 +1705,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1367
1705
|
default: true,
|
|
1368
1706
|
ui: {
|
|
1369
1707
|
tab: "context",
|
|
1708
|
+
group: "Compaction",
|
|
1370
1709
|
label: "Auto-Compact",
|
|
1371
1710
|
description: "Automatically compact context when it gets too large",
|
|
1372
1711
|
},
|
|
@@ -1374,13 +1713,14 @@ export const SETTINGS_SCHEMA = {
|
|
|
1374
1713
|
|
|
1375
1714
|
"compaction.strategy": {
|
|
1376
1715
|
type: "enum",
|
|
1377
|
-
values: ["context-full", "handoff", "shake", "off"] as const,
|
|
1716
|
+
values: ["context-full", "handoff", "shake", "snapcompact", "off"] as const,
|
|
1378
1717
|
default: "context-full",
|
|
1379
1718
|
ui: {
|
|
1380
1719
|
tab: "context",
|
|
1720
|
+
group: "Compaction",
|
|
1381
1721
|
label: "Compaction Strategy",
|
|
1382
1722
|
description:
|
|
1383
|
-
"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)",
|
|
1384
1724
|
options: [
|
|
1385
1725
|
{
|
|
1386
1726
|
value: "context-full",
|
|
@@ -1393,6 +1733,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
1393
1733
|
label: "Shake",
|
|
1394
1734
|
description: "Drop heavy content (tool results + large blocks) in place; recover via artifact",
|
|
1395
1735
|
},
|
|
1736
|
+
{
|
|
1737
|
+
value: "snapcompact",
|
|
1738
|
+
label: "Snapcompact",
|
|
1739
|
+
description: "Archive history onto dense bitmap images the model reads back; no LLM call",
|
|
1740
|
+
},
|
|
1396
1741
|
{
|
|
1397
1742
|
value: "off",
|
|
1398
1743
|
label: "Off",
|
|
@@ -1407,6 +1752,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1407
1752
|
default: -1,
|
|
1408
1753
|
ui: {
|
|
1409
1754
|
tab: "context",
|
|
1755
|
+
group: "Compaction",
|
|
1410
1756
|
label: "Compaction Threshold",
|
|
1411
1757
|
description: "Percent threshold for context maintenance; set to Default to use legacy reserve-based behavior",
|
|
1412
1758
|
options: [
|
|
@@ -1431,6 +1777,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1431
1777
|
default: -1,
|
|
1432
1778
|
ui: {
|
|
1433
1779
|
tab: "context",
|
|
1780
|
+
group: "Compaction",
|
|
1434
1781
|
label: "Compaction Token Limit",
|
|
1435
1782
|
description: "Fixed token limit for context maintenance; overrides percentage if set",
|
|
1436
1783
|
options: [
|
|
@@ -1451,6 +1798,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1451
1798
|
default: false,
|
|
1452
1799
|
ui: {
|
|
1453
1800
|
tab: "context",
|
|
1801
|
+
group: "Compaction",
|
|
1454
1802
|
label: "Save Handoff Docs",
|
|
1455
1803
|
description: "Save generated handoff documents to markdown files for the auto-handoff flow",
|
|
1456
1804
|
},
|
|
@@ -1461,6 +1809,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1461
1809
|
default: true,
|
|
1462
1810
|
ui: {
|
|
1463
1811
|
tab: "context",
|
|
1812
|
+
group: "Compaction",
|
|
1464
1813
|
label: "Remote Compaction",
|
|
1465
1814
|
description: "Use remote compaction endpoints when available instead of local summarization",
|
|
1466
1815
|
},
|
|
@@ -1480,6 +1829,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1480
1829
|
default: false,
|
|
1481
1830
|
ui: {
|
|
1482
1831
|
tab: "context",
|
|
1832
|
+
group: "Compaction",
|
|
1483
1833
|
label: "Idle Compaction",
|
|
1484
1834
|
description: "Compact context while idle when token count exceeds threshold",
|
|
1485
1835
|
},
|
|
@@ -1490,6 +1840,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1490
1840
|
default: 200000,
|
|
1491
1841
|
ui: {
|
|
1492
1842
|
tab: "context",
|
|
1843
|
+
group: "Compaction",
|
|
1493
1844
|
label: "Idle Compaction Threshold",
|
|
1494
1845
|
description: "Token count above which idle compaction triggers",
|
|
1495
1846
|
options: [
|
|
@@ -1511,6 +1862,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1511
1862
|
default: 300,
|
|
1512
1863
|
ui: {
|
|
1513
1864
|
tab: "context",
|
|
1865
|
+
group: "Compaction",
|
|
1514
1866
|
label: "Idle Compaction Delay",
|
|
1515
1867
|
description: "Seconds to wait while idle before compacting",
|
|
1516
1868
|
options: [
|
|
@@ -1523,93 +1875,294 @@ export const SETTINGS_SCHEMA = {
|
|
|
1523
1875
|
],
|
|
1524
1876
|
},
|
|
1525
1877
|
},
|
|
1526
|
-
|
|
1527
|
-
"
|
|
1878
|
+
|
|
1879
|
+
"compaction.supersedeReads": {
|
|
1528
1880
|
type: "boolean",
|
|
1529
|
-
default:
|
|
1530
|
-
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
|
+
},
|
|
1531
1888
|
},
|
|
1532
1889
|
|
|
1533
|
-
"
|
|
1534
|
-
|
|
1535
|
-
// Memories
|
|
1536
|
-
// Legacy local-memory enable flag kept only for back-compat migration.
|
|
1537
|
-
// Hidden from UI — users should use `memory.backend` instead.
|
|
1538
|
-
"memories.enabled": {
|
|
1890
|
+
"compaction.dropUseless": {
|
|
1539
1891
|
type: "boolean",
|
|
1540
|
-
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
|
+
},
|
|
1541
1900
|
},
|
|
1542
1901
|
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
"memories.maxRolloutAgeDays": { type: "number", default: 30 },
|
|
1546
|
-
|
|
1547
|
-
"memories.minRolloutIdleHours": { type: "number", default: 12 },
|
|
1548
|
-
|
|
1549
|
-
"memories.threadScanLimit": { type: "number", default: 300 },
|
|
1550
|
-
|
|
1551
|
-
"memories.maxRawMemoriesForGlobal": { type: "number", default: 200 },
|
|
1552
|
-
|
|
1553
|
-
"memories.stage1Concurrency": { type: "number", default: 8 },
|
|
1554
|
-
|
|
1555
|
-
"memories.stage1LeaseSeconds": { type: "number", default: 120 },
|
|
1556
|
-
|
|
1557
|
-
"memories.stage1RetryDelaySeconds": { type: "number", default: 120 },
|
|
1558
|
-
|
|
1559
|
-
"memories.phase2LeaseSeconds": { type: "number", default: 180 },
|
|
1560
|
-
|
|
1561
|
-
"memories.phase2RetryDelaySeconds": { type: "number", default: 180 },
|
|
1562
|
-
|
|
1563
|
-
"memories.phase2HeartbeatSeconds": { type: "number", default: 30 },
|
|
1564
|
-
|
|
1565
|
-
"memories.rolloutPayloadPercent": { type: "number", default: 0.7 },
|
|
1566
|
-
|
|
1567
|
-
"memories.phase1InputTokenLimit": { type: "number", default: 4000 },
|
|
1568
|
-
|
|
1569
|
-
"memories.fallbackTokenLimit": { type: "number", default: 16000 },
|
|
1570
|
-
|
|
1571
|
-
"memories.summaryInjectionTokenLimit": { type: "number", default: 5000 },
|
|
1572
|
-
|
|
1573
|
-
// Memory backend selector — picks between local memories pipeline,
|
|
1574
|
-
// Prometheus Memory local SQLite, Hindsight remote memory, or off. Legacy
|
|
1575
|
-
// `memories.enabled` keeps gating the local backend; see config/settings.ts
|
|
1576
|
-
// migration for details.
|
|
1577
|
-
"memory.backend": {
|
|
1902
|
+
// Experimental: snapcompact inline imaging (transient, per-request; never persisted)
|
|
1903
|
+
"snapcompact.systemPrompt": {
|
|
1578
1904
|
type: "enum",
|
|
1579
|
-
values: ["
|
|
1580
|
-
default: "
|
|
1905
|
+
values: ["none", "agents-md", "all"] as const,
|
|
1906
|
+
default: "none",
|
|
1581
1907
|
ui: {
|
|
1582
|
-
tab: "
|
|
1583
|
-
|
|
1584
|
-
|
|
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.",
|
|
1585
1913
|
options: [
|
|
1586
|
-
{ value: "
|
|
1587
|
-
{ value: "local", label: "Local", description: "Local rollout summarisation pipeline (memory_summary.md)" },
|
|
1588
|
-
{ value: "hindsight", label: "Hindsight", description: "Vectorize Hindsight remote memory service" },
|
|
1914
|
+
{ value: "none", label: "None", description: "Keep the system prompt as text." },
|
|
1589
1915
|
{
|
|
1590
|
-
value: "
|
|
1591
|
-
label: "
|
|
1592
|
-
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.",
|
|
1593
1924
|
},
|
|
1594
1925
|
],
|
|
1595
1926
|
},
|
|
1596
1927
|
},
|
|
1597
1928
|
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
"selfImprovement.mode": {
|
|
1602
|
-
type: "enum",
|
|
1603
|
-
values: ["memory-and-skills", "off"] as const,
|
|
1604
|
-
default: "memory-and-skills",
|
|
1929
|
+
"snapcompact.toolResults": {
|
|
1930
|
+
type: "boolean",
|
|
1931
|
+
default: false,
|
|
1605
1932
|
ui: {
|
|
1606
|
-
tab: "
|
|
1607
|
-
|
|
1933
|
+
tab: "context",
|
|
1934
|
+
group: "Experimental",
|
|
1935
|
+
label: "Snapcompact Tool Results",
|
|
1608
1936
|
description:
|
|
1609
|
-
"
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
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",
|
|
2160
|
+
label: "Self Improvement",
|
|
2161
|
+
description:
|
|
2162
|
+
"Hermes-style native learning: memory, user profile, and skills update automatically; SOUL stays stable",
|
|
2163
|
+
options: [
|
|
2164
|
+
{
|
|
2165
|
+
value: "memory-and-skills",
|
|
1613
2166
|
label: "Memory and Skills",
|
|
1614
2167
|
description: "Allow the local memory backend to maintain MEMORY.md, USER.md, and generated skills",
|
|
1615
2168
|
},
|
|
@@ -1623,6 +2176,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1623
2176
|
default: "memory-and-skills",
|
|
1624
2177
|
ui: {
|
|
1625
2178
|
tab: "memory",
|
|
2179
|
+
group: "Self Improvement",
|
|
1626
2180
|
label: "Post-Turn Review",
|
|
1627
2181
|
description:
|
|
1628
2182
|
"Hermes-style background review after settled turns, routed through the native Prometheus memory pipeline",
|
|
@@ -1642,6 +2196,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1642
2196
|
default: 10,
|
|
1643
2197
|
ui: {
|
|
1644
2198
|
tab: "memory",
|
|
2199
|
+
group: "Self Improvement",
|
|
1645
2200
|
label: "Review Turn Interval",
|
|
1646
2201
|
description: "User turns between post-turn self-improvement reviews; 10 mirrors Hermes",
|
|
1647
2202
|
},
|
|
@@ -1652,6 +2207,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1652
2207
|
default: "propose",
|
|
1653
2208
|
ui: {
|
|
1654
2209
|
tab: "memory",
|
|
2210
|
+
group: "Self Improvement",
|
|
1655
2211
|
label: "Identity Review",
|
|
1656
2212
|
description: "Proposal-only SOUL review; never rewrites SOUL.md automatically",
|
|
1657
2213
|
options: [
|
|
@@ -1670,6 +2226,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1670
2226
|
default: "dry-run",
|
|
1671
2227
|
ui: {
|
|
1672
2228
|
tab: "memory",
|
|
2229
|
+
group: "Self Improvement",
|
|
1673
2230
|
label: "Skill Curator",
|
|
1674
2231
|
description: "Report-only generated-skill curation with recoverable archive lifecycle",
|
|
1675
2232
|
options: [
|
|
@@ -1687,6 +2244,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1687
2244
|
default: 30,
|
|
1688
2245
|
ui: {
|
|
1689
2246
|
tab: "memory",
|
|
2247
|
+
group: "Self Improvement",
|
|
1690
2248
|
label: "Skill Stale Days",
|
|
1691
2249
|
description: "Days of no generated-skill activity before the dry-run curator marks it stale",
|
|
1692
2250
|
},
|
|
@@ -1696,51 +2254,55 @@ export const SETTINGS_SCHEMA = {
|
|
|
1696
2254
|
default: 90,
|
|
1697
2255
|
ui: {
|
|
1698
2256
|
tab: "memory",
|
|
2257
|
+
group: "Self Improvement",
|
|
1699
2258
|
label: "Skill Archive Days",
|
|
1700
2259
|
description: "Days of no generated-skill activity before the dry-run curator suggests archive",
|
|
1701
2260
|
},
|
|
1702
2261
|
},
|
|
1703
2262
|
|
|
1704
|
-
//
|
|
1705
|
-
"
|
|
2263
|
+
// Mnemopi local SQLite memory backend.
|
|
2264
|
+
"mnemopi.dbPath": {
|
|
1706
2265
|
type: "string",
|
|
1707
2266
|
default: undefined,
|
|
1708
2267
|
ui: {
|
|
1709
2268
|
tab: "memory",
|
|
1710
|
-
|
|
2269
|
+
group: "Mnemopi",
|
|
2270
|
+
label: "Mnemopi DB Path",
|
|
1711
2271
|
description: "Optional SQLite DB path. Defaults to the agent memories directory.",
|
|
1712
|
-
condition: "
|
|
2272
|
+
condition: "mnemopiActive",
|
|
1713
2273
|
},
|
|
1714
2274
|
},
|
|
1715
|
-
"
|
|
2275
|
+
"mnemopi.bank": {
|
|
1716
2276
|
type: "string",
|
|
1717
2277
|
default: undefined,
|
|
1718
2278
|
ui: {
|
|
1719
2279
|
tab: "memory",
|
|
1720
|
-
|
|
2280
|
+
group: "Mnemopi",
|
|
2281
|
+
label: "Mnemopi Bank",
|
|
1721
2282
|
description: "Optional shared bank base name. Per-project modes derive project-local banks from it.",
|
|
1722
|
-
condition: "
|
|
2283
|
+
condition: "mnemopiActive",
|
|
1723
2284
|
},
|
|
1724
2285
|
},
|
|
1725
|
-
"
|
|
2286
|
+
"mnemopi.scoping": {
|
|
1726
2287
|
type: "enum",
|
|
1727
2288
|
values: ["global", "per-project", "per-project-tagged"] as const,
|
|
1728
2289
|
default: "per-project",
|
|
1729
2290
|
ui: {
|
|
1730
2291
|
tab: "memory",
|
|
1731
|
-
|
|
2292
|
+
group: "Mnemopi",
|
|
2293
|
+
label: "Mnemopi Scoping",
|
|
1732
2294
|
description:
|
|
1733
2295
|
"global = one shared bank; per-project = isolated bank per cwd; per-project-tagged = project-local writes plus global recall visibility",
|
|
1734
2296
|
options: [
|
|
1735
2297
|
{
|
|
1736
2298
|
value: "global",
|
|
1737
2299
|
label: "Global",
|
|
1738
|
-
description: "One shared
|
|
2300
|
+
description: "One shared Mnemopi bank for every project",
|
|
1739
2301
|
},
|
|
1740
2302
|
{
|
|
1741
2303
|
value: "per-project",
|
|
1742
2304
|
label: "Per project",
|
|
1743
|
-
description: "Project-local
|
|
2305
|
+
description: "Project-local Mnemopi bank per cwd basename",
|
|
1744
2306
|
},
|
|
1745
2307
|
{
|
|
1746
2308
|
value: "per-project-tagged",
|
|
@@ -1748,121 +2310,179 @@ export const SETTINGS_SCHEMA = {
|
|
|
1748
2310
|
description: "Write to a project-local bank but merge project + shared recall results",
|
|
1749
2311
|
},
|
|
1750
2312
|
],
|
|
1751
|
-
condition: "
|
|
2313
|
+
condition: "mnemopiActive",
|
|
2314
|
+
},
|
|
2315
|
+
},
|
|
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",
|
|
1752
2339
|
},
|
|
1753
2340
|
},
|
|
1754
|
-
"
|
|
2341
|
+
"mnemopi.autoRecall": {
|
|
1755
2342
|
type: "boolean",
|
|
1756
2343
|
default: true,
|
|
1757
2344
|
ui: {
|
|
1758
2345
|
tab: "memory",
|
|
1759
|
-
|
|
2346
|
+
group: "Mnemopi",
|
|
2347
|
+
label: "Mnemopi Auto Recall",
|
|
1760
2348
|
description: "Recall local memories into the first turn of each session",
|
|
1761
|
-
condition: "
|
|
2349
|
+
condition: "mnemopiActive",
|
|
1762
2350
|
},
|
|
1763
2351
|
},
|
|
1764
|
-
"
|
|
2352
|
+
"mnemopi.autoRetain": {
|
|
1765
2353
|
type: "boolean",
|
|
1766
2354
|
default: true,
|
|
1767
2355
|
ui: {
|
|
1768
2356
|
tab: "memory",
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
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",
|
|
1772
2372
|
},
|
|
1773
2373
|
},
|
|
1774
|
-
"
|
|
2374
|
+
"mnemopi.enhancedRecall": {
|
|
1775
2375
|
type: "boolean",
|
|
1776
2376
|
default: false,
|
|
1777
2377
|
ui: {
|
|
1778
2378
|
tab: "memory",
|
|
1779
|
-
|
|
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",
|
|
2383
|
+
},
|
|
2384
|
+
},
|
|
2385
|
+
"mnemopi.noEmbeddings": {
|
|
2386
|
+
type: "boolean",
|
|
2387
|
+
default: false,
|
|
2388
|
+
ui: {
|
|
2389
|
+
tab: "memory",
|
|
2390
|
+
group: "Mnemopi",
|
|
2391
|
+
label: "Mnemopi Disable Embeddings",
|
|
1780
2392
|
description: "Force deterministic FTS-only recall instead of vector embeddings",
|
|
1781
|
-
condition: "
|
|
2393
|
+
condition: "mnemopiActive",
|
|
1782
2394
|
},
|
|
1783
2395
|
},
|
|
1784
|
-
"
|
|
2396
|
+
"mnemopi.embeddingModel": {
|
|
1785
2397
|
type: "string",
|
|
1786
2398
|
default: undefined,
|
|
1787
2399
|
ui: {
|
|
1788
2400
|
tab: "memory",
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
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",
|
|
1792
2406
|
},
|
|
1793
2407
|
},
|
|
1794
|
-
"
|
|
2408
|
+
"mnemopi.embeddingApiUrl": {
|
|
1795
2409
|
type: "string",
|
|
1796
2410
|
default: undefined,
|
|
1797
2411
|
ui: {
|
|
1798
2412
|
tab: "memory",
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
2413
|
+
group: "Mnemopi",
|
|
2414
|
+
label: "Mnemopi Embedding API URL",
|
|
2415
|
+
description: "Optional OpenAI-compatible embedding endpoint passed to Mnemopi",
|
|
2416
|
+
condition: "mnemopiActive",
|
|
1802
2417
|
},
|
|
1803
2418
|
},
|
|
1804
|
-
"
|
|
2419
|
+
"mnemopi.embeddingApiKey": {
|
|
1805
2420
|
type: "string",
|
|
1806
2421
|
default: undefined,
|
|
1807
2422
|
ui: {
|
|
1808
2423
|
tab: "memory",
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
2424
|
+
group: "Mnemopi",
|
|
2425
|
+
label: "Mnemopi Embedding API Key",
|
|
2426
|
+
description: "Optional embedding API key passed to Mnemopi",
|
|
2427
|
+
condition: "mnemopiActive",
|
|
1812
2428
|
},
|
|
1813
2429
|
},
|
|
1814
|
-
"
|
|
2430
|
+
"mnemopi.llmMode": {
|
|
1815
2431
|
type: "enum",
|
|
1816
2432
|
values: ["none", "smol", "remote"] as const,
|
|
1817
2433
|
default: "smol",
|
|
1818
2434
|
ui: {
|
|
1819
2435
|
tab: "memory",
|
|
1820
|
-
|
|
2436
|
+
group: "Mnemopi",
|
|
2437
|
+
label: "Mnemopi LLM Mode",
|
|
1821
2438
|
description: "Use no LLM, the configured smol model, or a remote OpenAI-compatible endpoint",
|
|
1822
|
-
condition: "
|
|
2439
|
+
condition: "mnemopiActive",
|
|
1823
2440
|
options: [
|
|
1824
|
-
{ value: "none", label: "None", description: "Disable
|
|
2441
|
+
{ value: "none", label: "None", description: "Disable Mnemopi LLM-backed extraction" },
|
|
1825
2442
|
{ value: "smol", label: "Smol", description: "Use the configured Prometheus smol model" },
|
|
1826
|
-
{ value: "remote", label: "Remote", description: "Use the
|
|
2443
|
+
{ value: "remote", label: "Remote", description: "Use the Mnemopi remote LLM settings below" },
|
|
1827
2444
|
],
|
|
1828
2445
|
},
|
|
1829
2446
|
},
|
|
1830
|
-
"
|
|
2447
|
+
"mnemopi.llmBaseUrl": {
|
|
1831
2448
|
type: "string",
|
|
1832
2449
|
default: undefined,
|
|
1833
2450
|
ui: {
|
|
1834
2451
|
tab: "memory",
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
2452
|
+
group: "Mnemopi",
|
|
2453
|
+
label: "Mnemopi LLM Base URL",
|
|
2454
|
+
description: "Optional OpenAI-compatible LLM endpoint for Mnemopi remote mode",
|
|
2455
|
+
condition: "mnemopiActive",
|
|
1838
2456
|
},
|
|
1839
2457
|
},
|
|
1840
|
-
"
|
|
2458
|
+
"mnemopi.llmApiKey": {
|
|
1841
2459
|
type: "string",
|
|
1842
2460
|
default: undefined,
|
|
1843
2461
|
ui: {
|
|
1844
2462
|
tab: "memory",
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
2463
|
+
group: "Mnemopi",
|
|
2464
|
+
label: "Mnemopi LLM API Key",
|
|
2465
|
+
description: "Optional LLM API key for Mnemopi remote mode",
|
|
2466
|
+
condition: "mnemopiActive",
|
|
1848
2467
|
},
|
|
1849
2468
|
},
|
|
1850
|
-
"
|
|
2469
|
+
"mnemopi.llmModel": {
|
|
1851
2470
|
type: "string",
|
|
1852
2471
|
default: undefined,
|
|
1853
2472
|
ui: {
|
|
1854
2473
|
tab: "memory",
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
2474
|
+
group: "Mnemopi",
|
|
2475
|
+
label: "Mnemopi LLM Model",
|
|
2476
|
+
description: "Optional LLM model name for Mnemopi remote mode",
|
|
2477
|
+
condition: "mnemopiActive",
|
|
1858
2478
|
},
|
|
1859
2479
|
},
|
|
1860
|
-
"
|
|
1861
|
-
"
|
|
1862
|
-
"
|
|
1863
|
-
"
|
|
1864
|
-
"
|
|
1865
|
-
"
|
|
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 },
|
|
1866
2486
|
|
|
1867
2487
|
// Hindsight (https://hindsight.vectorize.io)
|
|
1868
2488
|
"hindsight.apiUrl": {
|
|
@@ -1870,6 +2490,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1870
2490
|
default: "http://localhost:8888",
|
|
1871
2491
|
ui: {
|
|
1872
2492
|
tab: "memory",
|
|
2493
|
+
group: "Hindsight",
|
|
1873
2494
|
label: "Hindsight API URL",
|
|
1874
2495
|
description: "Hindsight server URL (Cloud or self-hosted)",
|
|
1875
2496
|
condition: "hindsightActive",
|
|
@@ -1883,6 +2504,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1883
2504
|
default: undefined,
|
|
1884
2505
|
ui: {
|
|
1885
2506
|
tab: "memory",
|
|
2507
|
+
group: "Hindsight",
|
|
1886
2508
|
label: "Hindsight Bank ID",
|
|
1887
2509
|
description: "Memory bank identifier (default: project name)",
|
|
1888
2510
|
condition: "hindsightActive",
|
|
@@ -1896,6 +2518,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1896
2518
|
default: "per-project-tagged",
|
|
1897
2519
|
ui: {
|
|
1898
2520
|
tab: "memory",
|
|
2521
|
+
group: "Hindsight",
|
|
1899
2522
|
label: "Hindsight Scoping",
|
|
1900
2523
|
description:
|
|
1901
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",
|
|
@@ -1928,6 +2551,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1928
2551
|
default: true,
|
|
1929
2552
|
ui: {
|
|
1930
2553
|
tab: "memory",
|
|
2554
|
+
group: "Hindsight",
|
|
1931
2555
|
label: "Hindsight Auto Recall",
|
|
1932
2556
|
description: "Recall memories on the first turn of each session",
|
|
1933
2557
|
condition: "hindsightActive",
|
|
@@ -1938,6 +2562,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1938
2562
|
default: true,
|
|
1939
2563
|
ui: {
|
|
1940
2564
|
tab: "memory",
|
|
2565
|
+
group: "Hindsight",
|
|
1941
2566
|
label: "Hindsight Auto Retain",
|
|
1942
2567
|
description: "Retain transcript every N turns and at session boundaries",
|
|
1943
2568
|
condition: "hindsightActive",
|
|
@@ -1950,6 +2575,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1950
2575
|
default: "full-session",
|
|
1951
2576
|
ui: {
|
|
1952
2577
|
tab: "memory",
|
|
2578
|
+
group: "Hindsight",
|
|
1953
2579
|
label: "Hindsight Retain Mode",
|
|
1954
2580
|
description: "full-session = upsert one document per session, last-turn = chunked",
|
|
1955
2581
|
options: [
|
|
@@ -1984,6 +2610,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1984
2610
|
default: true,
|
|
1985
2611
|
ui: {
|
|
1986
2612
|
tab: "memory",
|
|
2613
|
+
group: "Hindsight",
|
|
1987
2614
|
label: "Hindsight Mental Models",
|
|
1988
2615
|
description:
|
|
1989
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.",
|
|
@@ -1995,6 +2622,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
1995
2622
|
default: true,
|
|
1996
2623
|
ui: {
|
|
1997
2624
|
tab: "memory",
|
|
2625
|
+
group: "Hindsight",
|
|
1998
2626
|
label: "Hindsight Mental Model Auto-Seed",
|
|
1999
2627
|
description:
|
|
2000
2628
|
"At session start, create any built-in mental models (project-conventions, project-decisions, user-preferences) that do not yet exist on the bank.",
|
|
@@ -2010,8 +2638,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2010
2638
|
default: true,
|
|
2011
2639
|
ui: {
|
|
2012
2640
|
tab: "context",
|
|
2641
|
+
group: "Rules (TTSR)",
|
|
2013
2642
|
label: "TTSR",
|
|
2014
|
-
description: "
|
|
2643
|
+
description: "Interrupt the agent mid-stream when output matches rule patterns (Time-Traveling Stream Rules)",
|
|
2015
2644
|
},
|
|
2016
2645
|
},
|
|
2017
2646
|
|
|
@@ -2021,6 +2650,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2021
2650
|
default: "discard",
|
|
2022
2651
|
ui: {
|
|
2023
2652
|
tab: "context",
|
|
2653
|
+
group: "Rules (TTSR)",
|
|
2024
2654
|
label: "TTSR Context Mode",
|
|
2025
2655
|
description: "What to do with partial output when TTSR triggers",
|
|
2026
2656
|
},
|
|
@@ -2032,6 +2662,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2032
2662
|
default: "always",
|
|
2033
2663
|
ui: {
|
|
2034
2664
|
tab: "context",
|
|
2665
|
+
group: "Rules (TTSR)",
|
|
2035
2666
|
label: "TTSR Interrupt Mode",
|
|
2036
2667
|
description: "When to interrupt mid-stream vs inject warning after completion",
|
|
2037
2668
|
options: [
|
|
@@ -2049,6 +2680,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2049
2680
|
default: "once",
|
|
2050
2681
|
ui: {
|
|
2051
2682
|
tab: "context",
|
|
2683
|
+
group: "Rules (TTSR)",
|
|
2052
2684
|
label: "TTSR Repeat Mode",
|
|
2053
2685
|
description: "How rules can repeat: once per session or after a message gap",
|
|
2054
2686
|
},
|
|
@@ -2059,6 +2691,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2059
2691
|
default: 10,
|
|
2060
2692
|
ui: {
|
|
2061
2693
|
tab: "context",
|
|
2694
|
+
group: "Rules (TTSR)",
|
|
2062
2695
|
label: "TTSR Repeat Gap",
|
|
2063
2696
|
description: "Messages before a rule can trigger again",
|
|
2064
2697
|
options: [
|
|
@@ -2076,7 +2709,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2076
2709
|
default: true,
|
|
2077
2710
|
ui: {
|
|
2078
2711
|
tab: "context",
|
|
2079
|
-
|
|
2712
|
+
group: "Rules (TTSR)",
|
|
2713
|
+
label: "Built-in Rules",
|
|
2080
2714
|
description: "Load the default rules shipped with the agent (override individually with ttsr.disabledRules)",
|
|
2081
2715
|
},
|
|
2082
2716
|
},
|
|
@@ -2086,6 +2720,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2086
2720
|
default: [] as string[],
|
|
2087
2721
|
ui: {
|
|
2088
2722
|
tab: "context",
|
|
2723
|
+
group: "Rules (TTSR)",
|
|
2089
2724
|
label: "Disabled Rules",
|
|
2090
2725
|
description: "Rule names to ignore entirely (applies to bundled defaults and your own rules)",
|
|
2091
2726
|
},
|
|
@@ -2101,7 +2736,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2101
2736
|
values: EDIT_MODES,
|
|
2102
2737
|
default: "hashline",
|
|
2103
2738
|
ui: {
|
|
2104
|
-
tab: "
|
|
2739
|
+
tab: "files",
|
|
2740
|
+
group: "Editing",
|
|
2105
2741
|
label: "Edit Mode",
|
|
2106
2742
|
description: "Select the edit tool variant (replace, patch, hashline, or apply_patch)",
|
|
2107
2743
|
},
|
|
@@ -2111,7 +2747,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2111
2747
|
type: "boolean",
|
|
2112
2748
|
default: true,
|
|
2113
2749
|
ui: {
|
|
2114
|
-
tab: "
|
|
2750
|
+
tab: "files",
|
|
2751
|
+
group: "Editing",
|
|
2115
2752
|
label: "Fuzzy Match",
|
|
2116
2753
|
description: "Accept high-confidence fuzzy matches for whitespace differences",
|
|
2117
2754
|
},
|
|
@@ -2121,9 +2758,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2121
2758
|
type: "number",
|
|
2122
2759
|
default: 0.95,
|
|
2123
2760
|
ui: {
|
|
2124
|
-
tab: "
|
|
2761
|
+
tab: "files",
|
|
2762
|
+
group: "Editing",
|
|
2125
2763
|
label: "Fuzzy Match Threshold",
|
|
2126
|
-
description: "Similarity threshold for fuzzy matches",
|
|
2764
|
+
description: "Similarity threshold (0-1) for accepting fuzzy matches",
|
|
2127
2765
|
options: [
|
|
2128
2766
|
{ value: "0.85", label: "0.85", description: "Lenient" },
|
|
2129
2767
|
{ value: "0.90", label: "0.90", description: "Moderate" },
|
|
@@ -2137,7 +2775,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2137
2775
|
type: "boolean",
|
|
2138
2776
|
default: false,
|
|
2139
2777
|
ui: {
|
|
2140
|
-
tab: "
|
|
2778
|
+
tab: "files",
|
|
2779
|
+
group: "Editing",
|
|
2141
2780
|
label: "Abort on Failed Preview",
|
|
2142
2781
|
description: "Abort streaming edit tool calls when patch preview fails",
|
|
2143
2782
|
},
|
|
@@ -2147,7 +2786,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2147
2786
|
type: "boolean",
|
|
2148
2787
|
default: true,
|
|
2149
2788
|
ui: {
|
|
2150
|
-
tab: "
|
|
2789
|
+
tab: "files",
|
|
2790
|
+
group: "Editing",
|
|
2151
2791
|
label: "Block Auto-Generated Files",
|
|
2152
2792
|
description: "Prevent editing of files that appear to be auto-generated (protoc, sqlc, swagger, etc.)",
|
|
2153
2793
|
},
|
|
@@ -2157,7 +2797,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2157
2797
|
type: "boolean",
|
|
2158
2798
|
default: false,
|
|
2159
2799
|
ui: {
|
|
2160
|
-
tab: "
|
|
2800
|
+
tab: "files",
|
|
2801
|
+
group: "Reading",
|
|
2161
2802
|
label: "Line Numbers",
|
|
2162
2803
|
description: "Prepend line numbers to read tool output by default",
|
|
2163
2804
|
},
|
|
@@ -2167,7 +2808,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2167
2808
|
type: "boolean",
|
|
2168
2809
|
default: true,
|
|
2169
2810
|
ui: {
|
|
2170
|
-
tab: "
|
|
2811
|
+
tab: "files",
|
|
2812
|
+
group: "Reading",
|
|
2171
2813
|
label: "Hash Lines",
|
|
2172
2814
|
description:
|
|
2173
2815
|
"Include snapshot-tag headers and line numbers in read output for hashline edit mode ([PATH#TAG] plus LINE:content)",
|
|
@@ -2178,7 +2820,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2178
2820
|
type: "number",
|
|
2179
2821
|
default: 300,
|
|
2180
2822
|
ui: {
|
|
2181
|
-
tab: "
|
|
2823
|
+
tab: "files",
|
|
2824
|
+
group: "Reading",
|
|
2182
2825
|
label: "Default Read Limit",
|
|
2183
2826
|
description: "Default number of lines returned when agent calls read without a limit",
|
|
2184
2827
|
options: [
|
|
@@ -2195,7 +2838,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2195
2838
|
type: "boolean",
|
|
2196
2839
|
default: true,
|
|
2197
2840
|
ui: {
|
|
2198
|
-
tab: "
|
|
2841
|
+
tab: "files",
|
|
2842
|
+
group: "Read Summaries",
|
|
2199
2843
|
label: "Read Summaries",
|
|
2200
2844
|
description: "Return structural code summaries when read is called without an explicit selector",
|
|
2201
2845
|
},
|
|
@@ -2205,7 +2849,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2205
2849
|
type: "boolean",
|
|
2206
2850
|
default: false,
|
|
2207
2851
|
ui: {
|
|
2208
|
-
tab: "
|
|
2852
|
+
tab: "files",
|
|
2853
|
+
group: "Read Summaries",
|
|
2209
2854
|
label: "Prose Summaries",
|
|
2210
2855
|
description: "Return structural summaries for Markdown and plain text reads",
|
|
2211
2856
|
},
|
|
@@ -2215,7 +2860,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2215
2860
|
type: "number",
|
|
2216
2861
|
default: 4,
|
|
2217
2862
|
ui: {
|
|
2218
|
-
tab: "
|
|
2863
|
+
tab: "files",
|
|
2864
|
+
group: "Read Summaries",
|
|
2219
2865
|
label: "Read Summary Body Lines",
|
|
2220
2866
|
description: "Minimum multiline body or literal length before read summaries collapse it",
|
|
2221
2867
|
},
|
|
@@ -2225,7 +2871,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2225
2871
|
type: "number",
|
|
2226
2872
|
default: 6,
|
|
2227
2873
|
ui: {
|
|
2228
|
-
tab: "
|
|
2874
|
+
tab: "files",
|
|
2875
|
+
group: "Read Summaries",
|
|
2229
2876
|
label: "Read Summary Comment Lines",
|
|
2230
2877
|
description: "Minimum multiline block comment length before read summaries collapse it",
|
|
2231
2878
|
},
|
|
@@ -2235,7 +2882,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2235
2882
|
type: "number",
|
|
2236
2883
|
default: 100,
|
|
2237
2884
|
ui: {
|
|
2238
|
-
tab: "
|
|
2885
|
+
tab: "files",
|
|
2886
|
+
group: "Read Summaries",
|
|
2239
2887
|
label: "Read Summary Minimum File Length",
|
|
2240
2888
|
description: "Files with fewer total lines are read verbatim instead of structurally summarized",
|
|
2241
2889
|
},
|
|
@@ -2245,7 +2893,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2245
2893
|
type: "number",
|
|
2246
2894
|
default: 50,
|
|
2247
2895
|
ui: {
|
|
2248
|
-
tab: "
|
|
2896
|
+
tab: "files",
|
|
2897
|
+
group: "Read Summaries",
|
|
2249
2898
|
label: "Read Summary Unfold Target",
|
|
2250
2899
|
description:
|
|
2251
2900
|
"BFS-unfold elidable spans until the summary is at least this many visible lines. 0 keeps only the outermost elisions.",
|
|
@@ -2256,7 +2905,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2256
2905
|
type: "number",
|
|
2257
2906
|
default: 100,
|
|
2258
2907
|
ui: {
|
|
2259
|
-
tab: "
|
|
2908
|
+
tab: "files",
|
|
2909
|
+
group: "Read Summaries",
|
|
2260
2910
|
label: "Read Summary Unfold Ceiling",
|
|
2261
2911
|
description:
|
|
2262
2912
|
"Hard ceiling on summary size while BFS-unfolding. An unfold that would exceed this is reverted and unfolding stops.",
|
|
@@ -2267,7 +2917,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2267
2917
|
type: "boolean",
|
|
2268
2918
|
default: false,
|
|
2269
2919
|
ui: {
|
|
2270
|
-
tab: "
|
|
2920
|
+
tab: "files",
|
|
2921
|
+
group: "Reading",
|
|
2271
2922
|
label: "Inline Read Previews",
|
|
2272
2923
|
description: "Render read tool results inline in the transcript instead of summary rows",
|
|
2273
2924
|
},
|
|
@@ -2277,14 +2928,32 @@ export const SETTINGS_SCHEMA = {
|
|
|
2277
2928
|
"lsp.enabled": {
|
|
2278
2929
|
type: "boolean",
|
|
2279
2930
|
default: true,
|
|
2280
|
-
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
|
+
},
|
|
2281
2949
|
},
|
|
2282
2950
|
|
|
2283
2951
|
"lsp.formatOnWrite": {
|
|
2284
2952
|
type: "boolean",
|
|
2285
2953
|
default: false,
|
|
2286
2954
|
ui: {
|
|
2287
|
-
tab: "
|
|
2955
|
+
tab: "files",
|
|
2956
|
+
group: "LSP",
|
|
2288
2957
|
label: "Format on Write",
|
|
2289
2958
|
description: "Automatically format code files using LSP after writing",
|
|
2290
2959
|
},
|
|
@@ -2294,7 +2963,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2294
2963
|
type: "boolean",
|
|
2295
2964
|
default: true,
|
|
2296
2965
|
ui: {
|
|
2297
|
-
tab: "
|
|
2966
|
+
tab: "files",
|
|
2967
|
+
group: "LSP",
|
|
2298
2968
|
label: "Diagnostics on Write",
|
|
2299
2969
|
description: "Return LSP diagnostics after writing code files",
|
|
2300
2970
|
},
|
|
@@ -2304,7 +2974,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2304
2974
|
type: "boolean",
|
|
2305
2975
|
default: false,
|
|
2306
2976
|
ui: {
|
|
2307
|
-
tab: "
|
|
2977
|
+
tab: "files",
|
|
2978
|
+
group: "LSP",
|
|
2308
2979
|
label: "Diagnostics on Edit",
|
|
2309
2980
|
description: "Return LSP diagnostics after editing code files",
|
|
2310
2981
|
},
|
|
@@ -2314,17 +2985,45 @@ export const SETTINGS_SCHEMA = {
|
|
|
2314
2985
|
type: "boolean",
|
|
2315
2986
|
default: true,
|
|
2316
2987
|
ui: {
|
|
2317
|
-
tab: "
|
|
2988
|
+
tab: "files",
|
|
2989
|
+
group: "LSP",
|
|
2318
2990
|
label: "Deduplicate Diagnostics",
|
|
2319
2991
|
description: "Suppress post-edit LSP diagnostics already shown for a file; only surface new or changed ones",
|
|
2320
2992
|
},
|
|
2321
2993
|
},
|
|
2322
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
|
+
|
|
2323
3017
|
// Bash interceptor
|
|
2324
3018
|
"bashInterceptor.enabled": {
|
|
2325
3019
|
type: "boolean",
|
|
2326
3020
|
default: false,
|
|
2327
|
-
ui: {
|
|
3021
|
+
ui: {
|
|
3022
|
+
tab: "shell",
|
|
3023
|
+
group: "Bash",
|
|
3024
|
+
label: "Bash Interceptor",
|
|
3025
|
+
description: "Block shell commands that have dedicated tools",
|
|
3026
|
+
},
|
|
2328
3027
|
},
|
|
2329
3028
|
"bashInterceptor.patterns": { type: "array", default: DEFAULT_BASH_INTERCEPTOR_RULES },
|
|
2330
3029
|
|
|
@@ -2332,8 +3031,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2332
3031
|
type: "boolean",
|
|
2333
3032
|
default: true,
|
|
2334
3033
|
ui: {
|
|
2335
|
-
tab: "
|
|
2336
|
-
|
|
3034
|
+
tab: "shell",
|
|
3035
|
+
group: "Bash",
|
|
3036
|
+
label: "Strip head/tail Pipes",
|
|
2337
3037
|
description:
|
|
2338
3038
|
"Silently drop trailing `| head`/`| tail` pipes from single-line bash commands. Output is already truncated automatically.",
|
|
2339
3039
|
},
|
|
@@ -2344,7 +3044,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2344
3044
|
type: "boolean",
|
|
2345
3045
|
default: true,
|
|
2346
3046
|
ui: {
|
|
2347
|
-
tab: "
|
|
3047
|
+
tab: "shell",
|
|
3048
|
+
group: "Bash",
|
|
2348
3049
|
label: "Shell Minimizer",
|
|
2349
3050
|
description: "Compress verbose shell output (git, npm, cargo, etc.) before returning it to the agent",
|
|
2350
3051
|
},
|
|
@@ -2359,15 +3060,31 @@ export const SETTINGS_SCHEMA = {
|
|
|
2359
3060
|
type: "number",
|
|
2360
3061
|
default: 4 * 1024 * 1024,
|
|
2361
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
|
+
},
|
|
2362
3078
|
|
|
2363
3079
|
// Eval (per-backend toggles; add more as new backends ship, e.g. eval.ts)
|
|
2364
3080
|
"eval.py": {
|
|
2365
3081
|
type: "boolean",
|
|
2366
3082
|
default: true,
|
|
2367
3083
|
ui: {
|
|
2368
|
-
tab: "
|
|
2369
|
-
|
|
2370
|
-
|
|
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",
|
|
2371
3088
|
},
|
|
2372
3089
|
},
|
|
2373
3090
|
|
|
@@ -2375,9 +3092,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2375
3092
|
type: "boolean",
|
|
2376
3093
|
default: true,
|
|
2377
3094
|
ui: {
|
|
2378
|
-
tab: "
|
|
2379
|
-
|
|
2380
|
-
|
|
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",
|
|
2381
3099
|
},
|
|
2382
3100
|
},
|
|
2383
3101
|
|
|
@@ -2387,9 +3105,21 @@ export const SETTINGS_SCHEMA = {
|
|
|
2387
3105
|
values: ["session", "per-call"] as const,
|
|
2388
3106
|
default: "session",
|
|
2389
3107
|
ui: {
|
|
2390
|
-
tab: "
|
|
3108
|
+
tab: "shell",
|
|
3109
|
+
group: "Eval & Python",
|
|
2391
3110
|
label: "Python Kernel Mode",
|
|
2392
|
-
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.",
|
|
2393
3123
|
},
|
|
2394
3124
|
},
|
|
2395
3125
|
|
|
@@ -2402,7 +3132,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2402
3132
|
type: "record",
|
|
2403
3133
|
default: {},
|
|
2404
3134
|
ui: {
|
|
2405
|
-
tab: "
|
|
3135
|
+
tab: "interaction",
|
|
3136
|
+
group: "Approvals",
|
|
2406
3137
|
label: "Tool Approval Policies",
|
|
2407
3138
|
description:
|
|
2408
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.",
|
|
@@ -2419,9 +3150,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2419
3150
|
default: "yolo",
|
|
2420
3151
|
ui: {
|
|
2421
3152
|
tab: "interaction",
|
|
3153
|
+
group: "Approvals",
|
|
2422
3154
|
label: "Tool Approval",
|
|
2423
3155
|
description:
|
|
2424
|
-
"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.",
|
|
2425
3157
|
options: [
|
|
2426
3158
|
{
|
|
2427
3159
|
value: "always-ask",
|
|
@@ -2448,13 +3180,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2448
3180
|
"todo.enabled": {
|
|
2449
3181
|
type: "boolean",
|
|
2450
3182
|
default: true,
|
|
2451
|
-
ui: {
|
|
3183
|
+
ui: {
|
|
3184
|
+
tab: "tools",
|
|
3185
|
+
group: "Available Tools",
|
|
3186
|
+
label: "Todos",
|
|
3187
|
+
description: "Enable the todo tool for task tracking",
|
|
3188
|
+
},
|
|
2452
3189
|
},
|
|
2453
3190
|
|
|
2454
3191
|
"todo.reminders": {
|
|
2455
3192
|
type: "boolean",
|
|
2456
3193
|
default: true,
|
|
2457
|
-
ui: {
|
|
3194
|
+
ui: {
|
|
3195
|
+
tab: "tools",
|
|
3196
|
+
group: "Todos",
|
|
3197
|
+
label: "Todo Reminders",
|
|
3198
|
+
description: "Remind the agent to complete todos before stopping",
|
|
3199
|
+
},
|
|
2458
3200
|
},
|
|
2459
3201
|
|
|
2460
3202
|
"todo.reminders.max": {
|
|
@@ -2462,8 +3204,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2462
3204
|
default: 3,
|
|
2463
3205
|
ui: {
|
|
2464
3206
|
tab: "tools",
|
|
3207
|
+
group: "Todos",
|
|
2465
3208
|
label: "Todo Reminder Limit",
|
|
2466
|
-
description: "Maximum
|
|
3209
|
+
description: "Maximum number of todo reminders before giving up",
|
|
2467
3210
|
options: [
|
|
2468
3211
|
{ value: "1", label: "1 reminder" },
|
|
2469
3212
|
{ value: "2", label: "2 reminders" },
|
|
@@ -2474,12 +3217,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2474
3217
|
},
|
|
2475
3218
|
|
|
2476
3219
|
"todo.eager": {
|
|
2477
|
-
type: "
|
|
2478
|
-
|
|
3220
|
+
type: "enum",
|
|
3221
|
+
values: ["default", "preferred", "always"] as const,
|
|
3222
|
+
default: "default",
|
|
2479
3223
|
ui: {
|
|
2480
3224
|
tab: "tools",
|
|
3225
|
+
group: "Todos",
|
|
2481
3226
|
label: "Create Todos Automatically",
|
|
2482
|
-
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
|
+
],
|
|
2483
3237
|
},
|
|
2484
3238
|
},
|
|
2485
3239
|
|
|
@@ -2487,13 +3241,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
2487
3241
|
"find.enabled": {
|
|
2488
3242
|
type: "boolean",
|
|
2489
3243
|
default: true,
|
|
2490
|
-
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
|
+
},
|
|
2491
3250
|
},
|
|
2492
3251
|
|
|
2493
3252
|
"search.enabled": {
|
|
2494
3253
|
type: "boolean",
|
|
2495
3254
|
default: true,
|
|
2496
|
-
ui: {
|
|
3255
|
+
ui: {
|
|
3256
|
+
tab: "tools",
|
|
3257
|
+
group: "Available Tools",
|
|
3258
|
+
label: "Search",
|
|
3259
|
+
description: "Enable the search tool for regex content search",
|
|
3260
|
+
},
|
|
2497
3261
|
},
|
|
2498
3262
|
|
|
2499
3263
|
"search.contextBefore": {
|
|
@@ -2501,6 +3265,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2501
3265
|
default: 1,
|
|
2502
3266
|
ui: {
|
|
2503
3267
|
tab: "tools",
|
|
3268
|
+
group: "Search & Browser",
|
|
2504
3269
|
label: "Search Context Before",
|
|
2505
3270
|
description: "Lines of context before each search match",
|
|
2506
3271
|
options: [
|
|
@@ -2518,6 +3283,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2518
3283
|
default: 3,
|
|
2519
3284
|
ui: {
|
|
2520
3285
|
tab: "tools",
|
|
3286
|
+
group: "Search & Browser",
|
|
2521
3287
|
label: "Search Context After",
|
|
2522
3288
|
description: "Lines of context after each search match",
|
|
2523
3289
|
options: [
|
|
@@ -2536,6 +3302,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2536
3302
|
default: true,
|
|
2537
3303
|
ui: {
|
|
2538
3304
|
tab: "tools",
|
|
3305
|
+
group: "Available Tools",
|
|
2539
3306
|
label: "AST Grep",
|
|
2540
3307
|
description: "Enable the ast_grep tool for structural AST search",
|
|
2541
3308
|
},
|
|
@@ -2546,39 +3313,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2546
3313
|
default: true,
|
|
2547
3314
|
ui: {
|
|
2548
3315
|
tab: "tools",
|
|
3316
|
+
group: "Available Tools",
|
|
2549
3317
|
label: "AST Edit",
|
|
2550
3318
|
description: "Enable the ast_edit tool for structural AST rewrites",
|
|
2551
3319
|
},
|
|
2552
3320
|
},
|
|
2553
3321
|
|
|
2554
|
-
"irc.enabled": {
|
|
2555
|
-
type: "boolean",
|
|
2556
|
-
default: true,
|
|
2557
|
-
ui: {
|
|
2558
|
-
tab: "tools",
|
|
2559
|
-
label: "IRC",
|
|
2560
|
-
description: "Enable agent-to-agent IRC messaging via the irc tool",
|
|
2561
|
-
},
|
|
2562
|
-
},
|
|
2563
|
-
|
|
2564
|
-
"irc.timeoutMs": {
|
|
2565
|
-
type: "number",
|
|
2566
|
-
default: 120_000,
|
|
2567
|
-
ui: {
|
|
2568
|
-
tab: "tools",
|
|
2569
|
-
label: "IRC Timeout",
|
|
2570
|
-
description:
|
|
2571
|
-
"Drop IRC messages whose recipient does not respond within this many milliseconds (0 disables the timeout)",
|
|
2572
|
-
options: [
|
|
2573
|
-
{ value: "0", label: "Disabled" },
|
|
2574
|
-
{ value: "30000", label: "30 seconds" },
|
|
2575
|
-
{ value: "60000", label: "1 minute" },
|
|
2576
|
-
{ value: "120000", label: "2 minutes" },
|
|
2577
|
-
{ value: "300000", label: "5 minutes" },
|
|
2578
|
-
],
|
|
2579
|
-
},
|
|
2580
|
-
},
|
|
2581
|
-
|
|
2582
3322
|
// Optional tools
|
|
2583
3323
|
|
|
2584
3324
|
"renderMermaid.enabled": {
|
|
@@ -2586,6 +3326,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2586
3326
|
default: false,
|
|
2587
3327
|
ui: {
|
|
2588
3328
|
tab: "tools",
|
|
3329
|
+
group: "Available Tools",
|
|
2589
3330
|
label: "Render Mermaid",
|
|
2590
3331
|
description: "Enable the render_mermaid tool for Mermaid-to-ASCII rendering",
|
|
2591
3332
|
},
|
|
@@ -2596,18 +3337,20 @@ export const SETTINGS_SCHEMA = {
|
|
|
2596
3337
|
default: true,
|
|
2597
3338
|
ui: {
|
|
2598
3339
|
tab: "tools",
|
|
3340
|
+
group: "Available Tools",
|
|
2599
3341
|
label: "Debug",
|
|
2600
3342
|
description: "Enable the debug tool for DAP-based debugging",
|
|
2601
3343
|
},
|
|
2602
3344
|
},
|
|
2603
3345
|
|
|
2604
|
-
"
|
|
3346
|
+
"speechgen.enabled": {
|
|
2605
3347
|
type: "boolean",
|
|
2606
3348
|
default: false,
|
|
2607
3349
|
ui: {
|
|
2608
3350
|
tab: "tools",
|
|
2609
|
-
|
|
2610
|
-
|
|
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",
|
|
2611
3354
|
},
|
|
2612
3355
|
},
|
|
2613
3356
|
|
|
@@ -2616,6 +3359,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2616
3359
|
default: false,
|
|
2617
3360
|
ui: {
|
|
2618
3361
|
tab: "tools",
|
|
3362
|
+
group: "Available Tools",
|
|
2619
3363
|
label: "Inspect Image",
|
|
2620
3364
|
description: "Enable the inspect_image tool, delegating image understanding to a vision-capable model",
|
|
2621
3365
|
},
|
|
@@ -2626,6 +3370,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2626
3370
|
default: false,
|
|
2627
3371
|
ui: {
|
|
2628
3372
|
tab: "tools",
|
|
3373
|
+
group: "Available Tools",
|
|
2629
3374
|
label: "Checkpoint/Rewind",
|
|
2630
3375
|
description: "Enable the checkpoint and rewind tools for context checkpointing",
|
|
2631
3376
|
},
|
|
@@ -2635,7 +3380,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2635
3380
|
"fetch.enabled": {
|
|
2636
3381
|
type: "boolean",
|
|
2637
3382
|
default: true,
|
|
2638
|
-
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
|
+
},
|
|
2639
3389
|
},
|
|
2640
3390
|
|
|
2641
3391
|
"vault.enabled": {
|
|
@@ -2643,6 +3393,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2643
3393
|
default: false,
|
|
2644
3394
|
ui: {
|
|
2645
3395
|
tab: "tools",
|
|
3396
|
+
group: "Available Tools",
|
|
2646
3397
|
label: "Obsidian Vault",
|
|
2647
3398
|
description:
|
|
2648
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.",
|
|
@@ -2654,6 +3405,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2654
3405
|
default: false,
|
|
2655
3406
|
ui: {
|
|
2656
3407
|
tab: "tools",
|
|
3408
|
+
group: "Available Tools",
|
|
2657
3409
|
label: "GitHub CLI",
|
|
2658
3410
|
description:
|
|
2659
3411
|
"Enable the github tool (op-based dispatch for repository, issue, pull request, diff, search, checkout, push, and Actions watch workflows)",
|
|
@@ -2665,7 +3417,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2665
3417
|
default: true,
|
|
2666
3418
|
ui: {
|
|
2667
3419
|
tab: "tools",
|
|
2668
|
-
|
|
3420
|
+
group: "GitHub",
|
|
3421
|
+
label: "GitHub View Cache",
|
|
2669
3422
|
description:
|
|
2670
3423
|
"Cache rendered issue/PR view output in ~/.prometheus/cache/github-cache.db so repeated reads are free",
|
|
2671
3424
|
},
|
|
@@ -2676,8 +3429,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2676
3429
|
default: 300,
|
|
2677
3430
|
ui: {
|
|
2678
3431
|
tab: "tools",
|
|
2679
|
-
|
|
2680
|
-
|
|
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)",
|
|
2681
3436
|
},
|
|
2682
3437
|
},
|
|
2683
3438
|
|
|
@@ -2686,16 +3441,22 @@ export const SETTINGS_SCHEMA = {
|
|
|
2686
3441
|
default: 604800,
|
|
2687
3442
|
ui: {
|
|
2688
3443
|
tab: "tools",
|
|
2689
|
-
|
|
3444
|
+
group: "GitHub",
|
|
3445
|
+
label: "GitHub Cache Hard TTL",
|
|
2690
3446
|
description:
|
|
2691
|
-
"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)",
|
|
2692
3448
|
},
|
|
2693
3449
|
},
|
|
2694
3450
|
|
|
2695
3451
|
"web_search.enabled": {
|
|
2696
3452
|
type: "boolean",
|
|
2697
3453
|
default: true,
|
|
2698
|
-
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
|
+
},
|
|
2699
3460
|
},
|
|
2700
3461
|
|
|
2701
3462
|
"browser.enabled": {
|
|
@@ -2703,8 +3464,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2703
3464
|
default: true,
|
|
2704
3465
|
ui: {
|
|
2705
3466
|
tab: "tools",
|
|
3467
|
+
group: "Available Tools",
|
|
2706
3468
|
label: "Browser",
|
|
2707
|
-
description: "Enable the browser tool (
|
|
3469
|
+
description: "Enable the browser tool for scripted Chromium automation (puppeteer)",
|
|
2708
3470
|
},
|
|
2709
3471
|
},
|
|
2710
3472
|
|
|
@@ -2713,16 +3475,30 @@ export const SETTINGS_SCHEMA = {
|
|
|
2713
3475
|
default: true,
|
|
2714
3476
|
ui: {
|
|
2715
3477
|
tab: "tools",
|
|
3478
|
+
group: "Search & Browser",
|
|
2716
3479
|
label: "Headless Browser",
|
|
2717
3480
|
description: "Launch browser in headless mode (disable to show browser UI)",
|
|
2718
3481
|
},
|
|
2719
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
|
+
},
|
|
2720
3495
|
"browser.screenshotDir": {
|
|
2721
3496
|
type: "string",
|
|
2722
3497
|
default: undefined,
|
|
2723
3498
|
ui: {
|
|
2724
3499
|
tab: "tools",
|
|
2725
|
-
|
|
3500
|
+
group: "Search & Browser",
|
|
3501
|
+
label: "Screenshot Directory",
|
|
2726
3502
|
description:
|
|
2727
3503
|
"Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)",
|
|
2728
3504
|
},
|
|
@@ -2734,6 +3510,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2734
3510
|
default: true,
|
|
2735
3511
|
ui: {
|
|
2736
3512
|
tab: "tools",
|
|
3513
|
+
group: "Execution",
|
|
2737
3514
|
label: "Intent Tracing",
|
|
2738
3515
|
description: "Ask the agent to describe the intent of each tool call before executing it",
|
|
2739
3516
|
},
|
|
@@ -2744,6 +3521,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2744
3521
|
default: 0,
|
|
2745
3522
|
ui: {
|
|
2746
3523
|
tab: "tools",
|
|
3524
|
+
group: "Execution",
|
|
2747
3525
|
label: "Max Tool Timeout",
|
|
2748
3526
|
description: "Maximum timeout in seconds the agent can set for any tool (0 = no limit)",
|
|
2749
3527
|
options: [
|
|
@@ -2760,9 +3538,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2760
3538
|
// Async jobs
|
|
2761
3539
|
"async.enabled": {
|
|
2762
3540
|
type: "boolean",
|
|
2763
|
-
default:
|
|
3541
|
+
default: true,
|
|
2764
3542
|
ui: {
|
|
2765
3543
|
tab: "tools",
|
|
3544
|
+
group: "Execution",
|
|
2766
3545
|
label: "Async Execution",
|
|
2767
3546
|
description: "Enable async bash commands and background task execution",
|
|
2768
3547
|
},
|
|
@@ -2775,29 +3554,40 @@ export const SETTINGS_SCHEMA = {
|
|
|
2775
3554
|
|
|
2776
3555
|
"async.pollWaitDuration": {
|
|
2777
3556
|
type: "enum",
|
|
2778
|
-
values: ["5s", "10s", "30s", "1m", "5m"] as const,
|
|
2779
|
-
default: "
|
|
3557
|
+
values: ["5s", "10s", "30s", "1m", "5m", "smart"] as const,
|
|
3558
|
+
default: "smart",
|
|
2780
3559
|
ui: {
|
|
2781
3560
|
tab: "tools",
|
|
2782
|
-
|
|
2783
|
-
|
|
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.",
|
|
2784
3565
|
options: [
|
|
2785
3566
|
{ value: "5s", label: "5 seconds" },
|
|
2786
3567
|
{ value: "10s", label: "10 seconds" },
|
|
2787
|
-
{ value: "30s", label: "30 seconds"
|
|
3568
|
+
{ value: "30s", label: "30 seconds" },
|
|
2788
3569
|
{ value: "1m", label: "1 minute" },
|
|
2789
3570
|
{ value: "5m", label: "5 minutes" },
|
|
3571
|
+
{ value: "smart", label: "Smart", description: "Default — adaptive 5s→5m, resets when you stop polling" },
|
|
2790
3572
|
],
|
|
2791
3573
|
},
|
|
2792
3574
|
},
|
|
2793
3575
|
|
|
2794
|
-
"
|
|
2795
|
-
type: "
|
|
2796
|
-
default:
|
|
3576
|
+
"irc.timeoutMs": {
|
|
3577
|
+
type: "number",
|
|
3578
|
+
default: 120_000,
|
|
2797
3579
|
ui: {
|
|
2798
3580
|
tab: "tools",
|
|
2799
|
-
|
|
2800
|
-
|
|
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
|
+
],
|
|
2801
3591
|
},
|
|
2802
3592
|
},
|
|
2803
3593
|
|
|
@@ -2813,6 +3603,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2813
3603
|
default: "auto",
|
|
2814
3604
|
ui: {
|
|
2815
3605
|
tab: "tools",
|
|
3606
|
+
group: "Discovery & MCP",
|
|
2816
3607
|
label: "Tool Discovery",
|
|
2817
3608
|
description:
|
|
2818
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.",
|
|
@@ -2824,6 +3615,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2824
3615
|
default: [] as string[],
|
|
2825
3616
|
ui: {
|
|
2826
3617
|
tab: "tools",
|
|
3618
|
+
group: "Discovery & MCP",
|
|
2827
3619
|
label: "Essential Tools Override",
|
|
2828
3620
|
description:
|
|
2829
3621
|
"Override the always-loaded built-in tools (default: read, bash, edit). Leave empty to use defaults.",
|
|
@@ -2834,7 +3626,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
2834
3626
|
"mcp.enableProjectConfig": {
|
|
2835
3627
|
type: "boolean",
|
|
2836
3628
|
default: true,
|
|
2837
|
-
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
|
+
},
|
|
2838
3635
|
},
|
|
2839
3636
|
|
|
2840
3637
|
"mcp.discoveryMode": {
|
|
@@ -2842,6 +3639,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2842
3639
|
default: false,
|
|
2843
3640
|
ui: {
|
|
2844
3641
|
tab: "tools",
|
|
3642
|
+
group: "Discovery & MCP",
|
|
2845
3643
|
label: "MCP Tool Discovery",
|
|
2846
3644
|
description: "Hide MCP tools by default and expose them through a tool discovery tool",
|
|
2847
3645
|
},
|
|
@@ -2852,6 +3650,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2852
3650
|
default: [] as string[],
|
|
2853
3651
|
ui: {
|
|
2854
3652
|
tab: "tools",
|
|
3653
|
+
group: "Discovery & MCP",
|
|
2855
3654
|
label: "MCP Discovery Default Servers",
|
|
2856
3655
|
description: "Keep MCP tools from these servers visible while discovery mode hides other MCP tools",
|
|
2857
3656
|
},
|
|
@@ -2862,6 +3661,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2862
3661
|
default: false,
|
|
2863
3662
|
ui: {
|
|
2864
3663
|
tab: "tools",
|
|
3664
|
+
group: "Discovery & MCP",
|
|
2865
3665
|
label: "MCP Update Injection",
|
|
2866
3666
|
description: "Inject MCP resource updates into the agent conversation",
|
|
2867
3667
|
},
|
|
@@ -2872,8 +3672,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
2872
3672
|
default: 500,
|
|
2873
3673
|
ui: {
|
|
2874
3674
|
tab: "tools",
|
|
3675
|
+
group: "Discovery & MCP",
|
|
2875
3676
|
label: "MCP Notification Debounce",
|
|
2876
|
-
description:
|
|
3677
|
+
description:
|
|
3678
|
+
"Debounce window in milliseconds for MCP resource updates before injecting them into the conversation",
|
|
2877
3679
|
},
|
|
2878
3680
|
},
|
|
2879
3681
|
|
|
@@ -2887,6 +3689,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2887
3689
|
default: true,
|
|
2888
3690
|
ui: {
|
|
2889
3691
|
tab: "tasks",
|
|
3692
|
+
group: "Modes",
|
|
2890
3693
|
label: "Plan Mode",
|
|
2891
3694
|
description: "Enable plan mode for read-only exploration and planning before execution",
|
|
2892
3695
|
},
|
|
@@ -2897,6 +3700,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2897
3700
|
default: true,
|
|
2898
3701
|
ui: {
|
|
2899
3702
|
tab: "tasks",
|
|
3703
|
+
group: "Modes",
|
|
2900
3704
|
label: "Goal Mode",
|
|
2901
3705
|
description: "Enable per-session goal mode and the hidden goal tool",
|
|
2902
3706
|
},
|
|
@@ -2907,7 +3711,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2907
3711
|
default: true,
|
|
2908
3712
|
ui: {
|
|
2909
3713
|
tab: "tasks",
|
|
2910
|
-
|
|
3714
|
+
group: "Modes",
|
|
3715
|
+
label: "Goal Status in Footer",
|
|
2911
3716
|
description: "Show token budget alongside the goal indicator in the status line",
|
|
2912
3717
|
},
|
|
2913
3718
|
},
|
|
@@ -2917,6 +3722,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2917
3722
|
default: ["interactive"],
|
|
2918
3723
|
ui: {
|
|
2919
3724
|
tab: "tasks",
|
|
3725
|
+
group: "Modes",
|
|
2920
3726
|
label: "Goal Continuation Modes",
|
|
2921
3727
|
description: "Run modes where active goals may auto-continue between turns",
|
|
2922
3728
|
},
|
|
@@ -2940,6 +3746,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2940
3746
|
default: "none",
|
|
2941
3747
|
ui: {
|
|
2942
3748
|
tab: "tasks",
|
|
3749
|
+
group: "Isolation",
|
|
2943
3750
|
label: "Isolation Mode",
|
|
2944
3751
|
description:
|
|
2945
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).',
|
|
@@ -2976,6 +3783,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2976
3783
|
default: "patch",
|
|
2977
3784
|
ui: {
|
|
2978
3785
|
tab: "tasks",
|
|
3786
|
+
group: "Isolation",
|
|
2979
3787
|
label: "Isolation Merge Strategy",
|
|
2980
3788
|
description: "How isolated task changes are integrated (patch apply or branch merge)",
|
|
2981
3789
|
options: [
|
|
@@ -2991,6 +3799,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
2991
3799
|
default: "generic",
|
|
2992
3800
|
ui: {
|
|
2993
3801
|
tab: "tasks",
|
|
3802
|
+
group: "Isolation",
|
|
2994
3803
|
label: "Isolation Commit Style",
|
|
2995
3804
|
description: "Commit message style for nested repo changes (generic or AI-generated)",
|
|
2996
3805
|
options: [
|
|
@@ -3001,40 +3810,31 @@ export const SETTINGS_SCHEMA = {
|
|
|
3001
3810
|
},
|
|
3002
3811
|
|
|
3003
3812
|
"task.eager": {
|
|
3004
|
-
type: "
|
|
3005
|
-
|
|
3813
|
+
type: "enum",
|
|
3814
|
+
values: ["default", "preferred", "always"] as const,
|
|
3815
|
+
default: "default",
|
|
3006
3816
|
ui: {
|
|
3007
3817
|
tab: "tasks",
|
|
3818
|
+
group: "Subagents",
|
|
3008
3819
|
label: "Prefer Task Delegation",
|
|
3009
|
-
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
|
+
],
|
|
3010
3826
|
},
|
|
3011
3827
|
},
|
|
3012
3828
|
|
|
3013
|
-
"task.
|
|
3014
|
-
type: "
|
|
3015
|
-
|
|
3016
|
-
default: "schema-free",
|
|
3829
|
+
"task.batch": {
|
|
3830
|
+
type: "boolean",
|
|
3831
|
+
default: true,
|
|
3017
3832
|
ui: {
|
|
3018
3833
|
tab: "tasks",
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
{
|
|
3023
|
-
value: "default",
|
|
3024
|
-
label: "Default",
|
|
3025
|
-
description: "Shared context and custom task schema are available",
|
|
3026
|
-
},
|
|
3027
|
-
{
|
|
3028
|
-
value: "schema-free",
|
|
3029
|
-
label: "Schema-free",
|
|
3030
|
-
description: "Shared context stays available, but custom task schema is disabled",
|
|
3031
|
-
},
|
|
3032
|
-
{
|
|
3033
|
-
value: "independent",
|
|
3034
|
-
label: "Independent",
|
|
3035
|
-
description: "No shared context or custom task schema; each task must stand alone",
|
|
3036
|
-
},
|
|
3037
|
-
],
|
|
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.",
|
|
3038
3838
|
},
|
|
3039
3839
|
},
|
|
3040
3840
|
|
|
@@ -3043,8 +3843,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3043
3843
|
default: 32,
|
|
3044
3844
|
ui: {
|
|
3045
3845
|
tab: "tasks",
|
|
3846
|
+
group: "Subagents",
|
|
3046
3847
|
label: "Max Concurrent Tasks",
|
|
3047
|
-
description: "
|
|
3848
|
+
description: "Maximum number of subagents running concurrently",
|
|
3048
3849
|
options: [
|
|
3049
3850
|
{ value: "0", label: "Unlimited" },
|
|
3050
3851
|
{ value: "1", label: "1 task" },
|
|
@@ -3063,6 +3864,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3063
3864
|
default: false,
|
|
3064
3865
|
ui: {
|
|
3065
3866
|
tab: "tasks",
|
|
3867
|
+
group: "Subagents",
|
|
3066
3868
|
label: "LSP in Subagents",
|
|
3067
3869
|
description:
|
|
3068
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.",
|
|
@@ -3074,6 +3876,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3074
3876
|
default: 2,
|
|
3075
3877
|
ui: {
|
|
3076
3878
|
tab: "tasks",
|
|
3879
|
+
group: "Subagents",
|
|
3077
3880
|
label: "Max Task Recursion",
|
|
3078
3881
|
description: "How many levels deep subagents can spawn their own subagents",
|
|
3079
3882
|
options: [
|
|
@@ -3091,6 +3894,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3091
3894
|
default: 0,
|
|
3092
3895
|
ui: {
|
|
3093
3896
|
tab: "tasks",
|
|
3897
|
+
group: "Subagents",
|
|
3094
3898
|
label: "Max Subagent Runtime",
|
|
3095
3899
|
description:
|
|
3096
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.",
|
|
@@ -3104,6 +3908,36 @@ export const SETTINGS_SCHEMA = {
|
|
|
3104
3908
|
},
|
|
3105
3909
|
},
|
|
3106
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
|
+
|
|
3107
3941
|
"task.disabledAgents": {
|
|
3108
3942
|
type: "array",
|
|
3109
3943
|
default: [] as string[],
|
|
@@ -3118,9 +3952,10 @@ export const SETTINGS_SCHEMA = {
|
|
|
3118
3952
|
type: "number",
|
|
3119
3953
|
default: 60,
|
|
3120
3954
|
ui: {
|
|
3121
|
-
tab: "
|
|
3122
|
-
|
|
3123
|
-
|
|
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",
|
|
3124
3959
|
options: [
|
|
3125
3960
|
{ value: "0", label: "Instant" },
|
|
3126
3961
|
{ value: "60", label: "1 minute", description: "Default" },
|
|
@@ -3138,6 +3973,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3138
3973
|
default: false,
|
|
3139
3974
|
ui: {
|
|
3140
3975
|
tab: "appearance",
|
|
3976
|
+
group: "Display",
|
|
3141
3977
|
label: "Show Resolved Model Badge",
|
|
3142
3978
|
description: "Display the actual model ID used by each subagent in the task widget status line",
|
|
3143
3979
|
},
|
|
@@ -3149,7 +3985,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3149
3985
|
"skills.enableSkillCommands": {
|
|
3150
3986
|
type: "boolean",
|
|
3151
3987
|
default: true,
|
|
3152
|
-
ui: {
|
|
3988
|
+
ui: {
|
|
3989
|
+
tab: "tasks",
|
|
3990
|
+
group: "Commands & Skills",
|
|
3991
|
+
label: "Skill Commands",
|
|
3992
|
+
description: "Register skills as /skill:name commands",
|
|
3993
|
+
},
|
|
3153
3994
|
},
|
|
3154
3995
|
|
|
3155
3996
|
"skills.enableCodexUser": { type: "boolean", default: true },
|
|
@@ -3158,9 +3999,13 @@ export const SETTINGS_SCHEMA = {
|
|
|
3158
3999
|
|
|
3159
4000
|
"skills.enableClaudeProject": { type: "boolean", default: true },
|
|
3160
4001
|
|
|
3161
|
-
"skills.
|
|
4002
|
+
"skills.enablePiUser": { type: "boolean", default: true },
|
|
4003
|
+
|
|
4004
|
+
"skills.enablePiProject": { type: "boolean", default: true },
|
|
3162
4005
|
|
|
3163
|
-
"skills.
|
|
4006
|
+
"skills.enableAgentsUser": { type: "boolean", default: true },
|
|
4007
|
+
|
|
4008
|
+
"skills.enableAgentsProject": { type: "boolean", default: true },
|
|
3164
4009
|
|
|
3165
4010
|
"skills.customDirectories": { type: "array", default: [] as string[] },
|
|
3166
4011
|
|
|
@@ -3172,13 +4017,23 @@ export const SETTINGS_SCHEMA = {
|
|
|
3172
4017
|
"commands.enableClaudeUser": {
|
|
3173
4018
|
type: "boolean",
|
|
3174
4019
|
default: true,
|
|
3175
|
-
ui: {
|
|
4020
|
+
ui: {
|
|
4021
|
+
tab: "tasks",
|
|
4022
|
+
group: "Commands & Skills",
|
|
4023
|
+
label: "Claude User Commands",
|
|
4024
|
+
description: "Load commands from ~/.claude/commands/",
|
|
4025
|
+
},
|
|
3176
4026
|
},
|
|
3177
4027
|
|
|
3178
4028
|
"commands.enableClaudeProject": {
|
|
3179
4029
|
type: "boolean",
|
|
3180
4030
|
default: true,
|
|
3181
|
-
ui: {
|
|
4031
|
+
ui: {
|
|
4032
|
+
tab: "tasks",
|
|
4033
|
+
group: "Commands & Skills",
|
|
4034
|
+
label: "Claude Project Commands",
|
|
4035
|
+
description: "Load commands from .claude/commands/",
|
|
4036
|
+
},
|
|
3182
4037
|
},
|
|
3183
4038
|
|
|
3184
4039
|
"commands.enableOpencodeUser": {
|
|
@@ -3186,6 +4041,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3186
4041
|
default: true,
|
|
3187
4042
|
ui: {
|
|
3188
4043
|
tab: "tasks",
|
|
4044
|
+
group: "Commands & Skills",
|
|
3189
4045
|
label: "OpenCode User Commands",
|
|
3190
4046
|
description: "Load commands from ~/.config/opencode/commands/",
|
|
3191
4047
|
},
|
|
@@ -3194,7 +4050,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3194
4050
|
"commands.enableOpencodeProject": {
|
|
3195
4051
|
type: "boolean",
|
|
3196
4052
|
default: true,
|
|
3197
|
-
ui: {
|
|
4053
|
+
ui: {
|
|
4054
|
+
tab: "tasks",
|
|
4055
|
+
group: "Commands & Skills",
|
|
4056
|
+
label: "OpenCode Project Commands",
|
|
4057
|
+
description: "Load commands from .opencode/commands/",
|
|
4058
|
+
},
|
|
3198
4059
|
},
|
|
3199
4060
|
|
|
3200
4061
|
// ────────────────────────────────────────────────────────────────────────
|
|
@@ -3205,7 +4066,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3205
4066
|
"secrets.enabled": {
|
|
3206
4067
|
type: "boolean",
|
|
3207
4068
|
default: false,
|
|
3208
|
-
ui: {
|
|
4069
|
+
ui: {
|
|
4070
|
+
tab: "providers",
|
|
4071
|
+
group: "Privacy",
|
|
4072
|
+
label: "Hide Secrets",
|
|
4073
|
+
description: "Obfuscate secrets before sending to AI providers",
|
|
4074
|
+
},
|
|
3209
4075
|
},
|
|
3210
4076
|
|
|
3211
4077
|
// Provider selection
|
|
@@ -3215,8 +4081,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3215
4081
|
default: "auto",
|
|
3216
4082
|
ui: {
|
|
3217
4083
|
tab: "providers",
|
|
4084
|
+
group: "Services",
|
|
3218
4085
|
label: "Web Search Provider",
|
|
3219
|
-
description: "
|
|
4086
|
+
description: "Preferred provider for the web_search tool",
|
|
3220
4087
|
options: SEARCH_PROVIDER_OPTIONS,
|
|
3221
4088
|
},
|
|
3222
4089
|
},
|
|
@@ -3226,8 +4093,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3226
4093
|
default: "auto",
|
|
3227
4094
|
ui: {
|
|
3228
4095
|
tab: "providers",
|
|
4096
|
+
group: "Services",
|
|
3229
4097
|
label: "Image Provider",
|
|
3230
|
-
description: "
|
|
4098
|
+
description: "Preferred provider for image generation",
|
|
3231
4099
|
options: [
|
|
3232
4100
|
{
|
|
3233
4101
|
value: "auto",
|
|
@@ -3243,21 +4111,109 @@ export const SETTINGS_SCHEMA = {
|
|
|
3243
4111
|
{
|
|
3244
4112
|
value: "xai",
|
|
3245
4113
|
label: "xAI Grok Imagine",
|
|
3246
|
-
description: "Requires xAI Grok OAuth or
|
|
4114
|
+
description: "Requires xAI Grok OAuth or XAI_APROMETHEUS_KEY",
|
|
4115
|
+
},
|
|
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",
|
|
3247
4141
|
},
|
|
3248
|
-
{ value: "gemini", label: "Gemini", description: "Requires GEMINI_API_KEY" },
|
|
3249
|
-
{ value: "openrouter", label: "OpenRouter", description: "Requires OPENROUTER_API_KEY" },
|
|
3250
4142
|
],
|
|
3251
4143
|
},
|
|
3252
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" },
|
|
4193
|
+
],
|
|
4194
|
+
},
|
|
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
|
+
},
|
|
3253
4208
|
"providers.tinyModel": {
|
|
3254
4209
|
type: "enum",
|
|
3255
4210
|
values: TINY_TITLE_MODEL_VALUES,
|
|
3256
4211
|
default: ONLINE_TINY_TITLE_MODEL_KEY,
|
|
3257
4212
|
ui: {
|
|
3258
4213
|
tab: "providers",
|
|
4214
|
+
group: "Tiny Model",
|
|
3259
4215
|
label: "Tiny Model",
|
|
3260
|
-
description: "Session-title model: online
|
|
4216
|
+
description: "Session-title model: online pi/smol by default, or a local on-device model",
|
|
3261
4217
|
options: TINY_TITLE_MODEL_OPTIONS,
|
|
3262
4218
|
},
|
|
3263
4219
|
},
|
|
@@ -3267,6 +4223,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3267
4223
|
default: TINY_MODEL_DEVICE_DEFAULT,
|
|
3268
4224
|
ui: {
|
|
3269
4225
|
tab: "providers",
|
|
4226
|
+
group: "Tiny Model",
|
|
3270
4227
|
label: "Tiny Model Device",
|
|
3271
4228
|
description:
|
|
3272
4229
|
"ONNX execution provider for local tiny models (titles + memory). Default uses CPU-only inference. The PROMETHEUS_TINY_DEVICE env var overrides this.",
|
|
@@ -3279,6 +4236,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3279
4236
|
default: TINY_MODEL_DTYPE_DEFAULT,
|
|
3280
4237
|
ui: {
|
|
3281
4238
|
tab: "providers",
|
|
4239
|
+
group: "Tiny Model",
|
|
3282
4240
|
label: "Tiny Model Precision",
|
|
3283
4241
|
description:
|
|
3284
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.",
|
|
@@ -3291,10 +4249,11 @@ export const SETTINGS_SCHEMA = {
|
|
|
3291
4249
|
default: ONLINE_MEMORY_MODEL_KEY,
|
|
3292
4250
|
ui: {
|
|
3293
4251
|
tab: "memory",
|
|
4252
|
+
group: "General",
|
|
3294
4253
|
label: "Memory Model",
|
|
3295
4254
|
description:
|
|
3296
|
-
"
|
|
3297
|
-
condition: "
|
|
4255
|
+
"Mnemopi LLM for fact extraction + consolidation: online (smol/remote) by default, or a local on-device model",
|
|
4256
|
+
condition: "mnemopiActive",
|
|
3298
4257
|
options: TINY_MEMORY_MODEL_OPTIONS,
|
|
3299
4258
|
},
|
|
3300
4259
|
},
|
|
@@ -3305,6 +4264,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3305
4264
|
default: ONLINE_AUTO_THINKING_MODEL_KEY,
|
|
3306
4265
|
ui: {
|
|
3307
4266
|
tab: "model",
|
|
4267
|
+
group: "Thinking",
|
|
3308
4268
|
label: "Auto Thinking Model",
|
|
3309
4269
|
description:
|
|
3310
4270
|
"Difficulty classifier for the `auto` thinking level: online smol by default, or a local on-device model",
|
|
@@ -3319,6 +4279,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3319
4279
|
default: "anthropic",
|
|
3320
4280
|
ui: {
|
|
3321
4281
|
tab: "providers",
|
|
4282
|
+
group: "Protocol",
|
|
3322
4283
|
label: "Kimi API Format",
|
|
3323
4284
|
description: "API format for Kimi Code provider",
|
|
3324
4285
|
options: [
|
|
@@ -3334,6 +4295,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3334
4295
|
default: "auto",
|
|
3335
4296
|
ui: {
|
|
3336
4297
|
tab: "providers",
|
|
4298
|
+
group: "Protocol",
|
|
3337
4299
|
label: "OpenAI WebSockets",
|
|
3338
4300
|
description: "Websocket policy for OpenAI Codex models (auto uses model defaults, on forces, off disables)",
|
|
3339
4301
|
options: [
|
|
@@ -3350,6 +4312,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3350
4312
|
default: "default",
|
|
3351
4313
|
ui: {
|
|
3352
4314
|
tab: "providers",
|
|
4315
|
+
group: "Protocol",
|
|
3353
4316
|
label: "OpenRouter Routing",
|
|
3354
4317
|
description:
|
|
3355
4318
|
"Default routing-variant suffix appended to OpenRouter model IDs (overridden when the selector already names a variant)",
|
|
@@ -3366,13 +4329,70 @@ export const SETTINGS_SCHEMA = {
|
|
|
3366
4329
|
],
|
|
3367
4330
|
},
|
|
3368
4331
|
},
|
|
3369
|
-
"providers.
|
|
3370
|
-
type: "
|
|
3371
|
-
|
|
4332
|
+
"providers.fetch": {
|
|
4333
|
+
type: "enum",
|
|
4334
|
+
values: ["auto", "native", "trafilatura", "lynx", "parallel", "jina"] as const,
|
|
4335
|
+
default: "auto",
|
|
3372
4336
|
ui: {
|
|
3373
4337
|
tab: "providers",
|
|
3374
|
-
|
|
3375
|
-
|
|
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).",
|
|
3376
4396
|
},
|
|
3377
4397
|
},
|
|
3378
4398
|
"provider.appendOnlyContext": {
|
|
@@ -3381,6 +4401,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3381
4401
|
default: "auto",
|
|
3382
4402
|
ui: {
|
|
3383
4403
|
tab: "providers",
|
|
4404
|
+
group: "Protocol",
|
|
3384
4405
|
label: "Append-Only Context",
|
|
3385
4406
|
description:
|
|
3386
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.",
|
|
@@ -3396,25 +4417,40 @@ export const SETTINGS_SCHEMA = {
|
|
|
3396
4417
|
"exa.enabled": {
|
|
3397
4418
|
type: "boolean",
|
|
3398
4419
|
default: true,
|
|
3399
|
-
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" },
|
|
3400
4421
|
},
|
|
3401
4422
|
|
|
3402
4423
|
"exa.enableSearch": {
|
|
3403
4424
|
type: "boolean",
|
|
3404
4425
|
default: true,
|
|
3405
|
-
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
|
+
},
|
|
3406
4432
|
},
|
|
3407
4433
|
|
|
3408
4434
|
"exa.enableResearcher": {
|
|
3409
4435
|
type: "boolean",
|
|
3410
4436
|
default: false,
|
|
3411
|
-
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
|
+
},
|
|
3412
4443
|
},
|
|
3413
4444
|
|
|
3414
4445
|
"exa.enableWebsets": {
|
|
3415
4446
|
type: "boolean",
|
|
3416
4447
|
default: false,
|
|
3417
|
-
ui: {
|
|
4448
|
+
ui: {
|
|
4449
|
+
tab: "providers",
|
|
4450
|
+
group: "Services",
|
|
4451
|
+
label: "Exa Websets",
|
|
4452
|
+
description: "Enable Exa webset management and enrichment tools",
|
|
4453
|
+
},
|
|
3418
4454
|
},
|
|
3419
4455
|
|
|
3420
4456
|
// SearXNG
|
|
@@ -3423,8 +4459,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
3423
4459
|
default: undefined,
|
|
3424
4460
|
ui: {
|
|
3425
4461
|
tab: "providers",
|
|
4462
|
+
group: "Services",
|
|
3426
4463
|
label: "SearXNG Endpoint",
|
|
3427
|
-
description: "
|
|
4464
|
+
description: "Base URL of a self-hosted SearXNG instance used for web search",
|
|
3428
4465
|
},
|
|
3429
4466
|
},
|
|
3430
4467
|
|
|
@@ -3470,6 +4507,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
3470
4507
|
default: false,
|
|
3471
4508
|
ui: {
|
|
3472
4509
|
tab: "tools",
|
|
4510
|
+
group: "Developer",
|
|
3473
4511
|
label: "Auto QA",
|
|
3474
4512
|
description: "Enable automated tool issue reporting (report_tool_issue) for all agents",
|
|
3475
4513
|
},
|
|
@@ -3477,15 +4515,12 @@ export const SETTINGS_SCHEMA = {
|
|
|
3477
4515
|
|
|
3478
4516
|
"dev.autoqaPush.endpoint": {
|
|
3479
4517
|
type: "string",
|
|
3480
|
-
|
|
3481
|
-
// Override via `PROMETHEUS_AUTO_QA_PUSH_URL` or `dev.autoqaPush.endpoint`
|
|
3482
|
-
// in `config.yml` to point at a self-hosted instance.
|
|
3483
|
-
default: "https://qa.prometheus.trivlab.com/v1/grievances" as const,
|
|
4518
|
+
default: "https://qa.prometheus.sh/v1/grievances" as const,
|
|
3484
4519
|
ui: {
|
|
3485
4520
|
tab: "tools",
|
|
4521
|
+
group: "Developer",
|
|
3486
4522
|
label: "Auto QA Push Endpoint",
|
|
3487
|
-
description:
|
|
3488
|
-
"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)",
|
|
3489
4524
|
},
|
|
3490
4525
|
},
|
|
3491
4526
|
|
|
@@ -3532,21 +4567,23 @@ type Schema = typeof SETTINGS_SCHEMA;
|
|
|
3532
4567
|
export type SettingPath = keyof Schema;
|
|
3533
4568
|
|
|
3534
4569
|
/** Infer the value type for a setting path */
|
|
3535
|
-
export type SettingValue<P extends SettingPath> = Schema[P] extends { type: "boolean" }
|
|
3536
|
-
? boolean
|
|
3537
|
-
: Schema[P] extends { type: "
|
|
3538
|
-
?
|
|
3539
|
-
: Schema[P] extends { type: "
|
|
3540
|
-
?
|
|
3541
|
-
: Schema[P] extends { type: "
|
|
3542
|
-
?
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
: 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 }
|
|
3548
4583
|
? D
|
|
3549
|
-
:
|
|
4584
|
+
: Schema[P] extends { type: "record"; default: infer D }
|
|
4585
|
+
? D
|
|
4586
|
+
: never;
|
|
3550
4587
|
|
|
3551
4588
|
/** Get the default value for a setting path */
|
|
3552
4589
|
export function getDefault<P extends SettingPath>(path: P): SettingValue<P> {
|
|
@@ -3596,13 +4633,16 @@ export type StatusLineSeparatorStyle = SettingValue<"statusLine.separator">;
|
|
|
3596
4633
|
/** Tree selector filter mode - derived from schema */
|
|
3597
4634
|
export type TreeFilterMode = SettingValue<"treeFilterMode">;
|
|
3598
4635
|
|
|
4636
|
+
/** Personality preset - derived from schema */
|
|
4637
|
+
export type Personality = SettingValue<"personality">;
|
|
4638
|
+
|
|
3599
4639
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
3600
4640
|
// Typed Group Definitions
|
|
3601
4641
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
3602
4642
|
|
|
3603
4643
|
export interface CompactionSettings {
|
|
3604
4644
|
enabled: boolean;
|
|
3605
|
-
strategy: "context-full" | "handoff" | "shake" | "off";
|
|
4645
|
+
strategy: "context-full" | "handoff" | "shake" | "snapcompact" | "off";
|
|
3606
4646
|
thresholdPercent: number;
|
|
3607
4647
|
thresholdTokens: number;
|
|
3608
4648
|
reserveTokens: number;
|
|
@@ -3614,6 +4654,8 @@ export interface CompactionSettings {
|
|
|
3614
4654
|
idleEnabled: boolean;
|
|
3615
4655
|
idleThresholdTokens: number;
|
|
3616
4656
|
idleTimeoutSeconds: number;
|
|
4657
|
+
supersedeReads: boolean;
|
|
4658
|
+
dropUseless: boolean;
|
|
3617
4659
|
}
|
|
3618
4660
|
|
|
3619
4661
|
export interface ContextPromotionSettings {
|
|
@@ -3661,8 +4703,10 @@ export interface SkillsSettings {
|
|
|
3661
4703
|
enableCodexUser?: boolean;
|
|
3662
4704
|
enableClaudeUser?: boolean;
|
|
3663
4705
|
enableClaudeProject?: boolean;
|
|
3664
|
-
|
|
3665
|
-
|
|
4706
|
+
enablePiUser?: boolean;
|
|
4707
|
+
enablePiProject?: boolean;
|
|
4708
|
+
enableAgentsUser?: boolean;
|
|
4709
|
+
enableAgentsProject?: boolean;
|
|
3666
4710
|
customDirectories?: string[];
|
|
3667
4711
|
ignoredSkills?: string[];
|
|
3668
4712
|
includeSkills?: string[];
|
|
@@ -3701,6 +4745,7 @@ export interface StatusLineSettings {
|
|
|
3701
4745
|
preset: StatusLinePreset;
|
|
3702
4746
|
separator: StatusLineSeparatorStyle;
|
|
3703
4747
|
showHookStatus: boolean;
|
|
4748
|
+
transparent: boolean;
|
|
3704
4749
|
leftSegments: StatusLineSegmentId[];
|
|
3705
4750
|
rightSegments: StatusLineSegmentId[];
|
|
3706
4751
|
segmentOptions: Record<string, unknown>;
|
|
@@ -3718,8 +4763,7 @@ export interface SttSettings {
|
|
|
3718
4763
|
enabled: boolean;
|
|
3719
4764
|
language: string | undefined;
|
|
3720
4765
|
modelName: string;
|
|
3721
|
-
|
|
3722
|
-
modelPath: string | undefined;
|
|
4766
|
+
streaming: boolean;
|
|
3723
4767
|
}
|
|
3724
4768
|
|
|
3725
4769
|
export interface BashInterceptorRule {
|
|
@@ -3736,6 +4780,15 @@ export interface ShellMinimizerSettings {
|
|
|
3736
4780
|
only: string[];
|
|
3737
4781
|
except: string[];
|
|
3738
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;
|
|
3739
4792
|
}
|
|
3740
4793
|
|
|
3741
4794
|
/** Map group prefix -> typed settings interface */
|
|
@@ -3756,6 +4809,7 @@ export interface GroupTypeMap {
|
|
|
3756
4809
|
modelTags: ModelTagsSettings;
|
|
3757
4810
|
cycleOrder: string[];
|
|
3758
4811
|
shellMinimizer: ShellMinimizerSettings;
|
|
4812
|
+
codexResets: CodexResetsSettings;
|
|
3759
4813
|
}
|
|
3760
4814
|
|
|
3761
4815
|
export type GroupPrefix = keyof GroupTypeMap;
|