@sayknow-cli/coding-agent 0.4.7 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +97 -0
- package/dist/types/capability/index.d.ts +10 -20
- package/dist/types/capability/types.d.ts +3 -0
- package/dist/types/cli/args.d.ts +0 -2
- package/dist/types/cli/read-cli.d.ts +1 -0
- package/dist/types/cli.d.ts +9 -1
- package/dist/types/commands/daemon.d.ts +2 -2
- package/dist/types/commands/deep-interview.d.ts +9 -0
- package/dist/types/commands/harness.d.ts +22 -0
- package/dist/types/commands/read.d.ts +6 -0
- package/dist/types/commands/sdk.d.ts +20 -2
- package/dist/types/config/keybindings.d.ts +34 -4
- package/dist/types/config/model-profile-contract.d.ts +40 -0
- package/dist/types/config/model-profiles.d.ts +2 -3
- package/dist/types/config/model-registry.d.ts +5 -0
- package/dist/types/config/provider-auth-health.d.ts +14 -0
- package/dist/types/config/provider-ranking.d.ts +59 -0
- package/dist/types/config/settings-schema.d.ts +156 -10
- package/dist/types/config/settings.d.ts +3 -0
- package/dist/types/edit/modes/patch.d.ts +13 -0
- package/dist/types/edit/path-mutation-lock.d.ts +15 -0
- package/dist/types/eval/py/executor.d.ts +1 -1
- package/dist/types/eval/py/runner-artifact.d.ts +8 -0
- package/dist/types/eval/py/tool-bridge.d.ts +1 -2
- package/dist/types/extensibility/extensions/types.d.ts +43 -2
- package/dist/types/extensibility/shared-events.d.ts +6 -0
- package/dist/types/internal-urls/local-root-gc.d.ts +2 -0
- package/dist/types/main.d.ts +33 -2
- package/dist/types/memories/index.d.ts +2 -0
- package/dist/types/modes/acp/acp-agent.d.ts +22 -9
- package/dist/types/modes/components/assistant-message.d.ts +3 -1
- package/dist/types/modes/components/btw-panel.d.ts +1 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +41 -0
- package/dist/types/modes/components/queue-pane.d.ts +8 -0
- package/dist/types/modes/components/queued-message-selector.d.ts +6 -0
- package/dist/types/modes/components/read-tool-group.d.ts +4 -4
- package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +2 -1
- package/dist/types/modes/components/session-observer-overlay.d.ts +4 -0
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/tool-execution.d.ts +8 -0
- package/dist/types/modes/components/tool-status-header.d.ts +4 -2
- package/dist/types/modes/components/welcome.d.ts +5 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +5 -0
- package/dist/types/modes/controllers/command-controller.d.ts +2 -0
- package/dist/types/modes/controllers/event-controller.d.ts +3 -0
- package/dist/types/modes/interactive-mode.d.ts +13 -2
- package/dist/types/modes/irc-observation-ledger.d.ts +17 -1
- package/dist/types/modes/prompt-action-autocomplete.d.ts +6 -1
- package/dist/types/modes/prompt-suggestion-controller.d.ts +35 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +2 -2
- package/dist/types/modes/types.d.ts +6 -0
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +2 -1
- package/dist/types/modes/utils/ui-helpers.d.ts +16 -0
- package/dist/types/runtime/memory-domain.d.ts +9 -0
- package/dist/types/runtime/memory-guard-contract.d.ts +71 -0
- package/dist/types/runtime/memory-guard.d.ts +39 -0
- package/dist/types/runtime/memory-limit.d.ts +11 -0
- package/dist/types/runtime-mcp/content-limits.d.ts +7 -0
- package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +1 -1
- package/dist/types/runtime-mcp/manager.d.ts +9 -1
- package/dist/types/runtime-mcp/oauth-flow.d.ts +0 -5
- package/dist/types/runtime-mcp/plugin-network-boundary.d.ts +14 -0
- package/dist/types/runtime-mcp/redaction.d.ts +2 -0
- package/dist/types/runtime-mcp/smithery-auth.d.ts +5 -0
- package/dist/types/sdk/acp/final-text.d.ts +19 -0
- package/dist/types/sdk/acp/mcp.d.ts +23 -0
- package/dist/types/sdk/broker/broker.d.ts +2 -0
- package/dist/types/sdk/broker/lifecycle.d.ts +13 -0
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +9 -1
- package/dist/types/sdk/bus/config-commands.d.ts +2 -2
- package/dist/types/sdk/bus/config.d.ts +2 -0
- package/dist/types/sdk/bus/control-drain-lease.d.ts +52 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +1 -0
- package/dist/types/sdk/bus/daemon-paths.d.ts +1 -0
- package/dist/types/sdk/bus/index.d.ts +52 -4
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +37 -0
- package/dist/types/sdk/bus/lifecycle-commands.d.ts +5 -4
- package/dist/types/sdk/bus/notification-orchestration.d.ts +1 -0
- package/dist/types/sdk/bus/notification-service.d.ts +34 -0
- package/dist/types/sdk/bus/operator-runtime.d.ts +1 -0
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +106 -0
- package/dist/types/sdk/bus/rate-limit-pool.d.ts +2 -0
- package/dist/types/sdk/bus/reconciliation-store.d.ts +65 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +33 -9
- package/dist/types/sdk/bus/telegram-daemon-control.d.ts +5 -1
- package/dist/types/sdk/bus/telegram-daemon.d.ts +286 -12
- package/dist/types/sdk/bus/telegram-reference.d.ts +2 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +88 -2
- package/dist/types/sdk/client/discovery.d.ts +2 -0
- package/dist/types/sdk/client/liveness.d.ts +7 -0
- package/dist/types/sdk/host/control/operations.d.ts +3 -2
- package/dist/types/sdk/host/host.d.ts +3 -1
- package/dist/types/sdk/host/query/handlers.d.ts +14 -0
- package/dist/types/sdk/index.d.ts +2 -0
- package/dist/types/sdk/lifecycle-session.d.ts +10 -1
- package/dist/types/sdk/prompt-status.d.ts +88 -0
- package/dist/types/sdk/session-directory.d.ts +1 -1
- package/dist/types/sdk/session.d.ts +7 -0
- package/dist/types/sdk/startup-capability.d.ts +9 -0
- package/dist/types/sdk/transport/auth-preface.d.ts +9 -0
- package/dist/types/sdk/transport/index.d.ts +12 -0
- package/dist/types/sdk/transport/relay.d.ts +43 -0
- package/dist/types/sdk/transport/serve-cli.d.ts +4 -0
- package/dist/types/sdk/transport/socket.d.ts +7 -0
- package/dist/types/sdk/transport/stdio.d.ts +3 -0
- package/dist/types/session/agent-session.d.ts +83 -24
- package/dist/types/session/btw-contract.d.ts +16 -0
- package/dist/types/session/fallback-chain-controller.d.ts +18 -2
- package/dist/types/session/internal/managed-session-scope.d.ts +70 -10
- package/dist/types/session/internal/managed-session-storage.d.ts +34 -12
- package/dist/types/session/internal/native-publish-outcome.d.ts +48 -0
- package/dist/types/session/memory-guard-checkpoint-participant.d.ts +69 -0
- package/dist/types/session/session-manager.d.ts +89 -18
- package/dist/types/session/session-storage.d.ts +31 -0
- package/dist/types/session/streaming-output.d.ts +60 -5
- package/dist/types/setup/credential-import.d.ts +5 -1
- package/dist/types/setup/provider-onboarding.d.ts +2 -0
- package/dist/types/skc-runtime/deep-interview-runtime.d.ts +1 -1
- package/dist/types/skc-runtime/deep-interview-stage.d.ts +37 -0
- package/dist/types/skc-runtime/gc-runtime.d.ts +1 -1
- package/dist/types/skc-runtime/linux-proc.d.ts +22 -14
- package/dist/types/skc-runtime/memory-guard-owner-claims.d.ts +47 -0
- package/dist/types/skc-runtime/ralplan-runtime.d.ts +112 -1
- package/dist/types/skc-runtime/repository-binding.d.ts +63 -0
- package/dist/types/skc-runtime/state-runtime.d.ts +3 -1
- package/dist/types/skc-runtime/state-writer.d.ts +5 -1
- package/dist/types/skc-runtime/team-launch.d.ts +1 -1
- package/dist/types/skc-runtime/team-runtime.d.ts +9 -2
- package/dist/types/skc-runtime/team-store.d.ts +12 -0
- package/dist/types/skc-runtime/team-worker-memory-guard.d.ts +92 -0
- package/dist/types/skc-runtime/tmux-owner-isolation.d.ts +7 -0
- package/dist/types/skc-runtime/ultragoal-guard.d.ts +6 -5
- package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +28 -0
- package/dist/types/skc-runtime/ultragoal-runtime.d.ts +43 -5
- package/dist/types/skill-state/workflow-hud.d.ts +3 -0
- package/dist/types/ssh/utils.d.ts +1 -0
- package/dist/types/task/discovery.d.ts +3 -1
- package/dist/types/task/executor.d.ts +6 -0
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/task/provider-retry-status.d.ts +13 -0
- package/dist/types/task/receipt.d.ts +2 -0
- package/dist/types/task/types.d.ts +133 -0
- package/dist/types/task/ultragoal-redteam-activation.d.ts +33 -0
- package/dist/types/tools/browser/launch.d.ts +7 -0
- package/dist/types/tools/fetch.d.ts +22 -9
- package/dist/types/tools/image-gen.d.ts +63 -1
- package/dist/types/tools/index.d.ts +7 -1
- package/dist/types/tools/output-meta.d.ts +21 -1
- package/dist/types/tools/read-internals.d.ts +12 -0
- package/dist/types/tools/read.d.ts +45 -1
- package/dist/types/tools/resource-gc.d.ts +23 -0
- package/dist/types/tools/skill-discovery.d.ts +7 -0
- package/dist/types/tools/sqlite-reader.d.ts +7 -0
- package/dist/types/tools/tool-result.d.ts +7 -1
- package/dist/types/utils/prompt-suggestion.d.ts +33 -0
- package/dist/types/utils/shell-snapshot.d.ts +12 -0
- package/dist/types/web/insane/bridge.d.ts +1 -0
- package/dist/types/web/insane/url-guard.d.ts +17 -0
- package/package.json +8 -12
- package/scripts/benchmark-sticky-viewport-pr1.ts +239 -0
- package/scripts/capture-platform-shortcut-labels-showcase.ts +342 -0
- package/scripts/capture-sticky-viewport-showcase.ts +292 -0
- package/scripts/compile-args.ts +0 -1
- package/scripts/dogfood-repository-binding.ts +209 -0
- package/scripts/generate-docs-index.ts +4 -1
- package/scripts/generate-sdk-operation-inventory.ts +9 -0
- package/scripts/run-test-manifest.ts +6 -4
- package/scripts/verify-skc-sdk-canonicalization.ts +122 -18
- package/scripts/verify-sticky-viewport-showcase.ts +611 -0
- package/src/capability/index.ts +58 -42
- package/src/capability/types.ts +3 -0
- package/src/cli/args.ts +16 -100
- package/src/cli/fast-help.ts +1 -1
- package/src/cli/mcp-cli.ts +4 -21
- package/src/cli/notify-cli.ts +6 -38
- package/src/cli/read-cli.ts +2 -1
- package/src/cli/setup-cli.ts +10 -4
- package/src/cli.ts +133 -11
- package/src/commands/daemon.ts +22 -5
- package/src/commands/deep-interview.ts +26 -1
- package/src/commands/harness.ts +35 -12
- package/src/commands/read.ts +11 -2
- package/src/commands/sdk.ts +134 -17
- package/src/commands/team.ts +1 -1
- package/src/commit/agentic/index.ts +3 -3
- package/src/commit/map-reduce/index.ts +2 -2
- package/src/config/keybindings.ts +158 -25
- package/src/config/model-profile-contract.ts +174 -0
- package/src/config/model-profiles.ts +51 -10
- package/src/config/model-registry.ts +24 -4
- package/src/config/model-resolver.ts +2 -2
- package/src/config/provider-auth-health.ts +42 -0
- package/src/config/provider-ranking.ts +119 -0
- package/src/config/settings-schema.ts +157 -10
- package/src/config/settings.ts +254 -108
- package/src/coordinator-mcp/model-preset.ts +21 -74
- package/src/defaults/skc/skills/deep-interview/SKILL.md +147 -24
- package/src/defaults/skc/skills/ralplan/SKILL.md +91 -34
- package/src/defaults/skc/skills/team/SKILL.md +1 -1
- package/src/defaults/skc/skills/ultragoal/SKILL.md +68 -17
- package/src/discovery/ssh.ts +12 -1
- package/src/edit/index.ts +3 -6
- package/src/edit/modes/patch.ts +38 -1
- package/src/edit/modes/replace.ts +42 -0
- package/src/edit/path-mutation-lock.ts +112 -0
- package/src/eval/js/tool-bridge.ts +1 -1
- package/src/eval/py/executor.ts +37 -13
- package/src/eval/py/kernel.ts +1 -21
- package/src/eval/py/prelude.py +2 -2
- package/src/eval/py/runner-artifact.ts +84 -0
- package/src/eval/py/tool-bridge.ts +34 -18
- package/src/extensibility/extensions/runner.ts +4 -0
- package/src/extensibility/extensions/types.ts +42 -4
- package/src/extensibility/plugins/marketplace/fetcher.ts +191 -7
- package/src/extensibility/shared-events.ts +5 -0
- package/src/extensibility/skc-plugins/runtime-adapters.ts +2 -1
- package/src/hooks/native-skill-hook.ts +17 -4
- package/src/internal-urls/docs-index.generated.ts +17 -16
- package/src/internal-urls/local-protocol.ts +87 -25
- package/src/internal-urls/local-root-gc.ts +127 -0
- package/src/internal-urls/mcp-protocol.ts +73 -11
- package/src/main.ts +120 -42
- package/src/memories/index.ts +10 -0
- package/src/modes/DESIGN.md +52 -0
- package/src/modes/acp/acp-agent.ts +647 -83
- package/src/modes/acp/acp-event-mapper.ts +106 -12
- package/src/modes/acp/acp-mode.ts +39 -3
- package/src/modes/action-registry.ts +1 -1
- package/src/modes/components/assistant-message.ts +123 -22
- package/src/modes/components/btw-panel.ts +82 -16
- package/src/modes/components/irc-sidebar.ts +176 -62
- package/src/modes/components/model-selector.ts +61 -4
- package/src/modes/components/notifications-settings-editor.ts +1 -1
- package/src/modes/components/oauth-selector.ts +42 -12
- package/src/modes/components/plan-preview-overlay.ts +1 -1
- package/src/modes/components/queue-pane.ts +55 -9
- package/src/modes/components/queued-message-selector.ts +53 -10
- package/src/modes/components/read-tool-group.ts +82 -14
- package/src/modes/components/runtime-mcp-add-wizard.ts +5 -0
- package/src/modes/components/sayknow-pet-widget.ts +20 -8
- package/src/modes/components/session-observer-overlay.ts +187 -32
- package/src/modes/components/settings-selector.ts +60 -18
- package/src/modes/components/tool-execution.ts +138 -27
- package/src/modes/components/tool-status-header.ts +26 -8
- package/src/modes/components/welcome.ts +50 -23
- package/src/modes/controllers/btw-controller.ts +119 -36
- package/src/modes/controllers/command-controller.ts +101 -54
- package/src/modes/controllers/event-controller.ts +119 -27
- package/src/modes/controllers/extension-ui-controller.ts +23 -12
- package/src/modes/controllers/input-controller.ts +100 -8
- package/src/modes/controllers/runtime-mcp-command-controller.ts +29 -6
- package/src/modes/controllers/selector-controller.ts +4 -1
- package/src/modes/interactive-mode.ts +201 -60
- package/src/modes/irc-observation-ledger.ts +71 -15
- package/src/modes/prompt-action-autocomplete.ts +32 -13
- package/src/modes/prompt-suggestion-controller.ts +96 -0
- package/src/modes/runtime-init.ts +20 -2
- package/src/modes/shared/agent-wire/command-dispatch.ts +3 -3
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +2 -2
- package/src/modes/types.ts +6 -0
- package/src/modes/utils/hotkeys-markdown.ts +64 -36
- package/src/modes/utils/ui-helpers.ts +99 -4
- package/src/prompts/agent-fragments/restricted-bash.md +1 -1
- package/src/prompts/agents/architect.md +17 -3
- package/src/prompts/agents/critic.md +17 -2
- package/src/prompts/agents/executor.md +1 -1
- package/src/prompts/agents/planner.md +8 -1
- package/src/prompts/system/btw-user.md +3 -8
- package/src/prompts/system/prompt-suggestion-system.md +32 -0
- package/src/prompts/system/system-prompt.md +6 -3
- package/src/prompts/tools/cron.md +3 -1
- package/src/prompts/tools/read.md +4 -2
- package/src/prompts/tools/skill-discovery.md +1 -0
- package/src/runtime/memory-domain.ts +66 -0
- package/src/runtime/memory-guard-contract.ts +73 -0
- package/src/runtime/memory-guard.ts +292 -0
- package/src/runtime/memory-limit.ts +50 -0
- package/src/runtime-mcp/client.ts +41 -55
- package/src/runtime-mcp/content-limits.ts +71 -0
- package/src/runtime-mcp/discoverable-tool-metadata.ts +1 -1
- package/src/runtime-mcp/json-rpc.ts +28 -11
- package/src/runtime-mcp/manager.ts +77 -59
- package/src/runtime-mcp/oauth-flow.ts +0 -72
- package/src/runtime-mcp/plugin-network-boundary.ts +101 -0
- package/src/runtime-mcp/redaction.ts +30 -0
- package/src/runtime-mcp/smithery-auth.ts +17 -2
- package/src/runtime-mcp/smithery-connect.ts +11 -1
- package/src/runtime-mcp/transports/http.ts +63 -22
- package/src/sdk/acp/adapter.ts +8 -1
- package/src/sdk/acp/final-text.ts +40 -0
- package/src/sdk/acp/mcp.ts +26 -0
- package/src/sdk/broker/broker.ts +34 -20
- package/src/sdk/broker/identity.ts +22 -12
- package/src/sdk/broker/lifecycle.ts +293 -43
- package/src/sdk/broker/session-index.ts +11 -1
- package/src/sdk/bus/chat-daemon-cli.ts +2 -2
- package/src/sdk/bus/chat-daemon-control.ts +22 -5
- package/src/sdk/bus/config-commands.ts +2 -2
- package/src/sdk/bus/config.ts +10 -2
- package/src/sdk/bus/control-drain-lease.ts +104 -0
- package/src/sdk/bus/conversation-store.ts +40 -6
- package/src/sdk/bus/daemon-paths.ts +2 -0
- package/src/sdk/bus/index.ts +793 -121
- package/src/sdk/bus/kind-aware-reconciliation.ts +242 -0
- package/src/sdk/bus/lifecycle-commands.ts +63 -10
- package/src/sdk/bus/lifecycle-control-runtime.ts +11 -2
- package/src/sdk/bus/lifecycle-orchestrator.ts +32 -1
- package/src/sdk/bus/notification-orchestration.ts +12 -0
- package/src/sdk/bus/notification-service.ts +87 -25
- package/src/sdk/bus/operator-runtime.ts +31 -5
- package/src/sdk/bus/prompt-reconciliation.ts +240 -0
- package/src/sdk/bus/rate-limit-pool.ts +8 -0
- package/src/sdk/bus/recent-activity.ts +90 -26
- package/src/sdk/bus/reconciliation-store.ts +224 -0
- package/src/sdk/bus/telegram-cli.ts +6 -13
- package/src/sdk/bus/telegram-daemon-cli.ts +8 -3
- package/src/sdk/bus/telegram-daemon-contract.ts +34 -9
- package/src/sdk/bus/telegram-daemon-control.ts +161 -40
- package/src/sdk/bus/telegram-daemon.ts +3649 -593
- package/src/sdk/bus/telegram-reference.ts +20 -2
- package/src/sdk/bus/topic-registry.ts +451 -12
- package/src/sdk/cli/session-cli.ts +15 -2
- package/src/sdk/client/discovery.ts +19 -3
- package/src/sdk/client/liveness.ts +49 -0
- package/src/sdk/host/control/dispatch.ts +8 -2
- package/src/sdk/host/control/operations.ts +3 -2
- package/src/sdk/host/host.ts +27 -9
- package/src/sdk/host/query/handlers.ts +125 -5
- package/src/sdk/index.ts +12 -0
- package/src/sdk/lifecycle-session.ts +19 -3
- package/src/sdk/mcp/server.ts +46 -18
- package/src/sdk/prompt-status.ts +97 -0
- package/src/sdk/protocol/operation-inventory.generated.json +145 -0
- package/src/sdk/protocol/operation-registry.ts +24 -4
- package/src/sdk/session-directory.ts +5 -1
- package/src/sdk/session.ts +69 -8
- package/src/sdk/startup-capability.ts +15 -1
- package/src/sdk/transport/auth-preface.ts +82 -0
- package/src/sdk/transport/index.ts +18 -0
- package/src/sdk/transport/relay.ts +252 -0
- package/src/sdk/transport/serve-cli.ts +105 -0
- package/src/sdk/transport/socket.ts +197 -0
- package/src/sdk/transport/stdio.ts +17 -0
- package/src/session/agent-session.ts +1112 -314
- package/src/session/blob-store.ts +25 -7
- package/src/session/btw-contract.ts +59 -0
- package/src/session/fallback-chain-controller.ts +47 -8
- package/src/session/internal/managed-session-scope.ts +1426 -259
- package/src/session/internal/managed-session-storage.ts +414 -238
- package/src/session/internal/native-publish-outcome.ts +271 -0
- package/src/session/memory-guard-checkpoint-participant.ts +131 -0
- package/src/session/session-manager.ts +2079 -469
- package/src/session/session-storage.ts +151 -11
- package/src/session/streaming-output.ts +262 -43
- package/src/setup/credential-import.ts +28 -3
- package/src/setup/provider-onboarding.ts +49 -5
- package/src/setup/provider-presets.json +2 -1
- package/src/skc-runtime/deep-interview-runtime.ts +303 -36
- package/src/skc-runtime/deep-interview-stage.ts +1016 -0
- package/src/skc-runtime/deep-interview-state.ts +8 -5
- package/src/skc-runtime/gc-render.ts +1 -0
- package/src/skc-runtime/gc-runtime.ts +11 -1
- package/src/skc-runtime/linux-proc.ts +70 -36
- package/src/skc-runtime/managed-owner-supervisor.ts +83 -4
- package/src/skc-runtime/memory-guard-owner-claims.ts +389 -0
- package/src/skc-runtime/ralplan-runtime.ts +1057 -75
- package/src/skc-runtime/repository-binding.ts +267 -0
- package/src/skc-runtime/session-state-sidecar.ts +25 -9
- package/src/skc-runtime/state-runtime.ts +50 -12
- package/src/skc-runtime/state-writer.ts +68 -56
- package/src/skc-runtime/team-launch.ts +34 -5
- package/src/skc-runtime/team-runtime.ts +41 -1
- package/src/skc-runtime/team-store.ts +32 -0
- package/src/skc-runtime/team-worker-memory-guard.ts +363 -0
- package/src/skc-runtime/team-workers.ts +1 -0
- package/src/skc-runtime/tmux-common.ts +13 -2
- package/src/skc-runtime/tmux-owner-isolation.ts +20 -1
- package/src/skc-runtime/tmux-sessions.ts +45 -6
- package/src/skc-runtime/ultragoal-guard.ts +93 -15
- package/src/skc-runtime/ultragoal-receipt-freshness.ts +123 -0
- package/src/skc-runtime/ultragoal-runtime.ts +469 -38
- package/src/skc-runtime/workflow-manifest.generated.json +195 -5
- package/src/skc-runtime/workflow-manifest.ts +67 -3
- package/src/skill-state/workflow-hud.ts +25 -2
- package/src/skill-state/workflow-mutation-guard.ts +104 -12
- package/src/slash-commands/builtin-registry.ts +1 -1
- package/src/ssh/utils.ts +14 -0
- package/src/task/discovery.ts +8 -2
- package/src/task/executor.ts +165 -47
- package/src/task/index.ts +123 -15
- package/src/task/provider-retry-status.ts +88 -0
- package/src/task/receipt.ts +3 -0
- package/src/task/render.ts +45 -26
- package/src/task/skc-command.ts +2 -2
- package/src/task/types.ts +55 -10
- package/src/task/ultragoal-redteam-activation.ts +75 -0
- package/src/tools/ask.ts +1 -1
- package/src/tools/ast-edit.ts +2 -2
- package/src/tools/bash-allowed-prefixes.ts +45 -1
- package/src/tools/bash-pty-selection.ts +2 -2
- package/src/tools/browser/launch.ts +41 -6
- package/src/tools/browser/screenshot-format.ts +6 -1
- package/src/tools/cron.ts +1 -1
- package/src/tools/fetch.ts +127 -154
- package/src/tools/image-gen.ts +476 -23
- package/src/tools/index.ts +7 -1
- package/src/tools/output-meta.ts +176 -9
- package/src/tools/path-utils.ts +5 -1
- package/src/tools/read-internals.ts +44 -0
- package/src/tools/read.ts +1544 -310
- package/src/tools/resource-gc.ts +665 -125
- package/src/tools/skill-discovery.ts +39 -3
- package/src/tools/sqlite-reader.ts +63 -5
- package/src/tools/subagent-render.ts +74 -16
- package/src/tools/subagent.ts +2 -0
- package/src/tools/tool-result.ts +14 -1
- package/src/utils/edit-mode.ts +2 -2
- package/src/utils/pasted-image-path.ts +15 -6
- package/src/utils/prompt-suggestion.ts +265 -0
- package/src/utils/shell-snapshot.ts +173 -63
- package/src/utils/sixel.ts +3 -3
- package/src/web/insane/bridge.ts +5 -1
- package/src/web/insane/url-guard.ts +140 -27
- package/src/web/scrapers/docs-rs.ts +30 -5
- package/src/web/scrapers/types.ts +19 -49
- package/src/web/scrapers/utils.ts +12 -26
- package/src/web/search/providers/codex.ts +1 -1
- package/src/workflow/workflow-intent-diff.ts +4 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AuthStorage } from "@sayknow-cli/ai/auth-storage";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Most recent OAuth validation outcome per provider, used only as an ordering
|
|
5
|
+
* hint so `/model` can rank a provider whose stored credentials failed
|
|
6
|
+
* validation below one that is healthy, without re-running validation itself.
|
|
7
|
+
*
|
|
8
|
+
* Entries are scoped to the `AuthStorage` that produced them and to its
|
|
9
|
+
* credential generation, so any login, logout, import, or deletion discards the
|
|
10
|
+
* stale result instead of overriding current auth state.
|
|
11
|
+
*/
|
|
12
|
+
export type ProviderAuthHealth = "valid" | "invalid";
|
|
13
|
+
|
|
14
|
+
interface HealthEntry {
|
|
15
|
+
generation: number;
|
|
16
|
+
health: ProviderAuthHealth;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const healthByStorage = new WeakMap<AuthStorage, Map<string, HealthEntry>>();
|
|
20
|
+
|
|
21
|
+
export function recordProviderAuthHealth(
|
|
22
|
+
authStorage: AuthStorage,
|
|
23
|
+
providerId: string,
|
|
24
|
+
health: ProviderAuthHealth,
|
|
25
|
+
): void {
|
|
26
|
+
let entries = healthByStorage.get(authStorage);
|
|
27
|
+
if (!entries) {
|
|
28
|
+
entries = new Map();
|
|
29
|
+
healthByStorage.set(authStorage, entries);
|
|
30
|
+
}
|
|
31
|
+
entries.set(providerId, { generation: authStorage.getGeneration(), health });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function getProviderAuthHealth(authStorage: AuthStorage, providerId: string): ProviderAuthHealth | undefined {
|
|
35
|
+
const entry = healthByStorage.get(authStorage)?.get(providerId);
|
|
36
|
+
if (!entry || entry.generation !== authStorage.getGeneration()) return undefined;
|
|
37
|
+
return entry.health;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function clearProviderAuthHealth(authStorage: AuthStorage): void {
|
|
41
|
+
healthByStorage.delete(authStorage);
|
|
42
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared provider ordering used by every provider-facing selector (`/login`,
|
|
3
|
+
* `/model`, `/provider`).
|
|
4
|
+
*
|
|
5
|
+
* Providers the user already has come first, then a curated list of well-known
|
|
6
|
+
* providers, then everything else alphabetically. This is the single source of
|
|
7
|
+
* truth for that order — surfaces must not keep their own famous-provider list.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Auth/config state of a provider as seen by the calling surface.
|
|
12
|
+
*
|
|
13
|
+
* - `valid` — stored credentials that validated successfully.
|
|
14
|
+
* - `checking` — stored credentials whose async validation is still in flight.
|
|
15
|
+
* Ranked with `valid` so rows do not reflow when validation resolves.
|
|
16
|
+
* - `configured` — no OAuth record, but the provider is present in the model
|
|
17
|
+
* registry with a working API key (custom/API-compatible providers).
|
|
18
|
+
* - `invalid` — stored credentials that failed validation (problematic login).
|
|
19
|
+
* - `none` — nothing stored and nothing configured.
|
|
20
|
+
*/
|
|
21
|
+
export type ProviderAuthState = "valid" | "checking" | "configured" | "invalid" | "none";
|
|
22
|
+
|
|
23
|
+
export const PROVIDER_RANK_TIER = {
|
|
24
|
+
existing: 0,
|
|
25
|
+
problematic: 1,
|
|
26
|
+
famous: 2,
|
|
27
|
+
other: 3,
|
|
28
|
+
} as const;
|
|
29
|
+
|
|
30
|
+
export type ProviderRankTier = (typeof PROVIDER_RANK_TIER)[keyof typeof PROVIDER_RANK_TIER];
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Curated provider order for the famous tier. Regional and device variants sit
|
|
34
|
+
* immediately behind their primary so related entries stay grouped.
|
|
35
|
+
*/
|
|
36
|
+
export const FAMOUS_PROVIDER_ORDER: readonly string[] = [
|
|
37
|
+
"openai-codex",
|
|
38
|
+
"openai-codex-device",
|
|
39
|
+
"anthropic",
|
|
40
|
+
"xai",
|
|
41
|
+
"opencode-go",
|
|
42
|
+
"zai",
|
|
43
|
+
"glm-zcode",
|
|
44
|
+
"alibaba-token-plan",
|
|
45
|
+
"qwen-portal",
|
|
46
|
+
"kimi-code",
|
|
47
|
+
"moonshot",
|
|
48
|
+
"minimax-code",
|
|
49
|
+
"minimax-code-cn",
|
|
50
|
+
"xiaomi",
|
|
51
|
+
"xiaomi-token-plan-sgp",
|
|
52
|
+
"xiaomi-token-plan-ams",
|
|
53
|
+
"xiaomi-token-plan-cn",
|
|
54
|
+
"opengateway",
|
|
55
|
+
"bizrouter",
|
|
56
|
+
"github-copilot",
|
|
57
|
+
"cursor",
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
const FAMOUS_PROVIDER_INDEX = new Map(FAMOUS_PROVIDER_ORDER.map((id, index) => [id, index]));
|
|
61
|
+
|
|
62
|
+
/** A provider as ranked by a surface. `label` is what the user sees. */
|
|
63
|
+
export interface RankableProvider {
|
|
64
|
+
id: string;
|
|
65
|
+
label: string;
|
|
66
|
+
authState: ProviderAuthState;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** A provider's position in the ordering: its tier plus its rank inside that tier. */
|
|
70
|
+
export interface ProviderRank {
|
|
71
|
+
tier: ProviderRankTier;
|
|
72
|
+
intraTierRank: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The single ranking result for a provider. `intraTierRank` is the curated
|
|
77
|
+
* famous-list position, or `Number.MAX_SAFE_INTEGER` for providers that are not
|
|
78
|
+
* on the list and therefore order by display label.
|
|
79
|
+
*/
|
|
80
|
+
export function rankProvider(provider: RankableProvider): ProviderRank {
|
|
81
|
+
return {
|
|
82
|
+
tier: providerRankTier(provider.authState, provider.id),
|
|
83
|
+
intraTierRank: FAMOUS_PROVIDER_INDEX.get(provider.id) ?? Number.MAX_SAFE_INTEGER,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export function providerRankTier(authState: ProviderAuthState, id: string): ProviderRankTier {
|
|
88
|
+
if (authState === "valid" || authState === "checking" || authState === "configured") {
|
|
89
|
+
return PROVIDER_RANK_TIER.existing;
|
|
90
|
+
}
|
|
91
|
+
if (authState === "invalid") return PROVIDER_RANK_TIER.problematic;
|
|
92
|
+
return FAMOUS_PROVIDER_INDEX.has(id) ? PROVIDER_RANK_TIER.famous : PROVIDER_RANK_TIER.other;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Position within the famous list, or `undefined` for providers not on it. */
|
|
96
|
+
export function famousProviderIndex(id: string): number | undefined {
|
|
97
|
+
return FAMOUS_PROVIDER_INDEX.get(id);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Total order over providers: tier, then famous-list position, then display
|
|
102
|
+
* label, then id. The trailing id comparison guarantees no ties.
|
|
103
|
+
*/
|
|
104
|
+
export function compareRankedProviders(left: RankableProvider, right: RankableProvider): number {
|
|
105
|
+
const leftRank = rankProvider(left);
|
|
106
|
+
const rightRank = rankProvider(right);
|
|
107
|
+
if (leftRank.tier !== rightRank.tier) return leftRank.tier - rightRank.tier;
|
|
108
|
+
if (leftRank.intraTierRank !== rightRank.intraTierRank) return leftRank.intraTierRank - rightRank.intraTierRank;
|
|
109
|
+
|
|
110
|
+
const label = left.label.localeCompare(right.label);
|
|
111
|
+
if (label !== 0) return label;
|
|
112
|
+
|
|
113
|
+
return left.id.localeCompare(right.id);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Convenience wrapper returning a new array in ranked order. */
|
|
117
|
+
export function sortRankedProviders<T extends RankableProvider>(providers: readonly T[]): T[] {
|
|
118
|
+
return [...providers].sort(compareRankedProviders);
|
|
119
|
+
}
|
|
@@ -313,7 +313,7 @@ export const SETTINGS_SCHEMA = {
|
|
|
313
313
|
},
|
|
314
314
|
"notifications.telegram.toolActivity.enabled": {
|
|
315
315
|
type: "boolean",
|
|
316
|
-
default:
|
|
316
|
+
default: false,
|
|
317
317
|
ui: {
|
|
318
318
|
tab: "notifications",
|
|
319
319
|
label: "Telegram Tool Activity",
|
|
@@ -506,6 +506,16 @@ export const SETTINGS_SCHEMA = {
|
|
|
506
506
|
default: 0.05,
|
|
507
507
|
validate: (value: number) => Number.isFinite(value) && value > 0 && value <= 1,
|
|
508
508
|
},
|
|
509
|
+
"skc.ralplan.maxIterations": {
|
|
510
|
+
type: "number",
|
|
511
|
+
default: 5,
|
|
512
|
+
validate: (value: number) => Number.isInteger(value) && value >= 1 && value <= 20,
|
|
513
|
+
},
|
|
514
|
+
"skc.ralplan.maxReviewPassesPerLane": {
|
|
515
|
+
type: "number",
|
|
516
|
+
default: 1,
|
|
517
|
+
validate: (value: number) => Number.isInteger(value) && value >= 1 && value <= 10,
|
|
518
|
+
},
|
|
509
519
|
|
|
510
520
|
// ────────────────────────────────────────────────────────────────────────
|
|
511
521
|
// Appearance
|
|
@@ -845,6 +855,15 @@ export const SETTINGS_SCHEMA = {
|
|
|
845
855
|
type: "boolean",
|
|
846
856
|
default: true,
|
|
847
857
|
},
|
|
858
|
+
"statusLine.showActionHints": {
|
|
859
|
+
type: "boolean",
|
|
860
|
+
default: true,
|
|
861
|
+
ui: {
|
|
862
|
+
tab: "appearance",
|
|
863
|
+
label: "Status Line Action Hints",
|
|
864
|
+
description: "Show contextual keyboard shortcuts in the status line",
|
|
865
|
+
},
|
|
866
|
+
},
|
|
848
867
|
|
|
849
868
|
"statusLine.leftSegments": { type: "array", default: [] as StatusLineSegmentId[] },
|
|
850
869
|
|
|
@@ -1261,7 +1280,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
1261
1280
|
ui: {
|
|
1262
1281
|
tab: "interaction",
|
|
1263
1282
|
label: "Mouse Support",
|
|
1264
|
-
description:
|
|
1283
|
+
description:
|
|
1284
|
+
"Enable SKC session scrolling, drag-to-copy text selection, and overlay row selection with the mouse. Disabled by default to preserve native terminal or tmux scrollback and selection.",
|
|
1265
1285
|
},
|
|
1266
1286
|
},
|
|
1267
1287
|
// Conversation flow
|
|
@@ -1360,6 +1380,16 @@ export const SETTINGS_SCHEMA = {
|
|
|
1360
1380
|
description: "Suggest emojis from `:name:` shortcodes and expand text emoticons like `:D` or `:-)`",
|
|
1361
1381
|
},
|
|
1362
1382
|
},
|
|
1383
|
+
promptSuggestions: {
|
|
1384
|
+
type: "boolean",
|
|
1385
|
+
default: false,
|
|
1386
|
+
ui: {
|
|
1387
|
+
tab: "interaction",
|
|
1388
|
+
label: "Prompt Suggestions",
|
|
1389
|
+
description:
|
|
1390
|
+
"Predict your likely next prompt after each turn (smol-model call) and show it as ghost text; Tab accepts",
|
|
1391
|
+
},
|
|
1392
|
+
},
|
|
1363
1393
|
|
|
1364
1394
|
"startup.quiet": {
|
|
1365
1395
|
type: "boolean",
|
|
@@ -2055,7 +2085,8 @@ export const SETTINGS_SCHEMA = {
|
|
|
2055
2085
|
ui: {
|
|
2056
2086
|
tab: "editing",
|
|
2057
2087
|
label: "Default Read Limit",
|
|
2058
|
-
description:
|
|
2088
|
+
description:
|
|
2089
|
+
"Default collection/selection limit for read operations; bare local receipts use the separate 50-line / 10 KiB receipt budgets",
|
|
2059
2090
|
options: [
|
|
2060
2091
|
{ value: "200", label: "200 lines" },
|
|
2061
2092
|
{ value: "300", label: "300 lines" },
|
|
@@ -2095,6 +2126,22 @@ export const SETTINGS_SCHEMA = {
|
|
|
2095
2126
|
],
|
|
2096
2127
|
},
|
|
2097
2128
|
},
|
|
2129
|
+
"read.truncation": {
|
|
2130
|
+
type: "enum",
|
|
2131
|
+
values: ["head", "last", "both"] as const,
|
|
2132
|
+
default: "last",
|
|
2133
|
+
ui: {
|
|
2134
|
+
tab: "editing",
|
|
2135
|
+
label: "Read Truncation",
|
|
2136
|
+
description:
|
|
2137
|
+
"Configured default direction for routes that support directional truncation; bare local and archive reads use this value (factory default: last), while explicit truncation always wins",
|
|
2138
|
+
options: [
|
|
2139
|
+
{ value: "head", label: "Head", description: "Keep the first N lines" },
|
|
2140
|
+
{ value: "last", label: "Last", description: "Keep the last N lines (default)" },
|
|
2141
|
+
{ value: "both", label: "Both", description: "Keep the start and the end, elide the middle" },
|
|
2142
|
+
],
|
|
2143
|
+
},
|
|
2144
|
+
},
|
|
2098
2145
|
"read.summaryMaxBytes": {
|
|
2099
2146
|
type: "number",
|
|
2100
2147
|
default: 20,
|
|
@@ -2477,9 +2524,9 @@ export const SETTINGS_SCHEMA = {
|
|
|
2477
2524
|
default: false,
|
|
2478
2525
|
ui: {
|
|
2479
2526
|
tab: "tools",
|
|
2480
|
-
label: "Insane Search Fallback",
|
|
2527
|
+
label: "Insane Search Fallback (Compatibility)",
|
|
2481
2528
|
description:
|
|
2482
|
-
"
|
|
2529
|
+
"Compatibility-only preference. Remote renderer fallback stays disabled because it cannot preserve validated per-hop network routing.",
|
|
2483
2530
|
},
|
|
2484
2531
|
},
|
|
2485
2532
|
|
|
@@ -2660,6 +2707,47 @@ export const SETTINGS_SCHEMA = {
|
|
|
2660
2707
|
description: "How often the resource GC sweeps browser tabs and stale screenshot directories.",
|
|
2661
2708
|
},
|
|
2662
2709
|
},
|
|
2710
|
+
"memoryGuard.enabled": {
|
|
2711
|
+
type: "boolean",
|
|
2712
|
+
default: false,
|
|
2713
|
+
},
|
|
2714
|
+
"memoryGuard.checkIntervalMs": {
|
|
2715
|
+
type: "number",
|
|
2716
|
+
default: 30_000,
|
|
2717
|
+
validate: (value: number) => Number.isFinite(value) && value > 0,
|
|
2718
|
+
},
|
|
2719
|
+
"memoryGuard.gcThresholdPercent": {
|
|
2720
|
+
type: "number",
|
|
2721
|
+
default: 70,
|
|
2722
|
+
validate: (value: number) => Number.isFinite(value) && value >= 0 && value <= 100,
|
|
2723
|
+
},
|
|
2724
|
+
"memoryGuard.restartThresholdPercent": {
|
|
2725
|
+
type: "number",
|
|
2726
|
+
default: 85,
|
|
2727
|
+
validate: (value: number) => Number.isFinite(value) && value >= 0 && value <= 100,
|
|
2728
|
+
},
|
|
2729
|
+
"memoryGuard.restartThresholdWindowMs": {
|
|
2730
|
+
type: "number",
|
|
2731
|
+
default: 90_000,
|
|
2732
|
+
validate: (value: number) => Number.isFinite(value) && value > 0,
|
|
2733
|
+
},
|
|
2734
|
+
"memoryGuard.cooldownMs": {
|
|
2735
|
+
type: "number",
|
|
2736
|
+
default: 600_000,
|
|
2737
|
+
validate: (value: number) => Number.isFinite(value) && value >= 0,
|
|
2738
|
+
},
|
|
2739
|
+
"memoryGuard.parentReserveMb": {
|
|
2740
|
+
type: "number",
|
|
2741
|
+
default: 1024,
|
|
2742
|
+
validate: (value: number) =>
|
|
2743
|
+
Number.isFinite(value) && value >= 0 && value <= Number.MAX_SAFE_INTEGER / (1024 * 1024),
|
|
2744
|
+
},
|
|
2745
|
+
"memoryGuard.policyLimitMb": {
|
|
2746
|
+
type: "number",
|
|
2747
|
+
default: 0,
|
|
2748
|
+
validate: (value: number) =>
|
|
2749
|
+
Number.isFinite(value) && value >= 0 && value <= Number.MAX_SAFE_INTEGER / (1024 * 1024),
|
|
2750
|
+
},
|
|
2663
2751
|
|
|
2664
2752
|
"computer.enabled": {
|
|
2665
2753
|
type: "boolean",
|
|
@@ -3316,25 +3404,71 @@ export const SETTINGS_SCHEMA = {
|
|
|
3316
3404
|
},
|
|
3317
3405
|
"providers.image": {
|
|
3318
3406
|
type: "enum",
|
|
3319
|
-
values: ["auto", "openai", "gemini", "openrouter", "antigravity"] as const,
|
|
3407
|
+
values: ["auto", "openai", "gemini", "openrouter", "antigravity", "alibaba", "custom"] as const,
|
|
3320
3408
|
default: "auto",
|
|
3321
3409
|
ui: {
|
|
3322
3410
|
tab: "providers",
|
|
3323
|
-
label: "Image
|
|
3324
|
-
description: "Provider for image generation tool",
|
|
3411
|
+
label: "Image Generation",
|
|
3412
|
+
description: "Provider and model for image generation tool",
|
|
3325
3413
|
options: [
|
|
3326
3414
|
{
|
|
3327
3415
|
value: "auto",
|
|
3328
3416
|
label: "Auto",
|
|
3329
|
-
description: "Priority: GPT model image tool > Antigravity > OpenRouter > Gemini",
|
|
3417
|
+
description: "Priority: GPT model image tool > Antigravity > OpenRouter > Gemini > Alibaba",
|
|
3330
3418
|
},
|
|
3331
|
-
{ value: "openai", label: "OpenAI", description: "Uses
|
|
3419
|
+
{ value: "openai", label: "OpenAI", description: "Uses gpt-image-2 via OpenAI Responses/Codex" },
|
|
3332
3420
|
{ value: "gemini", label: "Gemini", description: "Requires GEMINI_API_KEY" },
|
|
3333
3421
|
{ value: "openrouter", label: "OpenRouter", description: "Requires OPENROUTER_API_KEY" },
|
|
3334
3422
|
{ value: "antigravity", label: "Antigravity", description: "Requires login with google-antigravity" },
|
|
3423
|
+
{
|
|
3424
|
+
value: "alibaba",
|
|
3425
|
+
label: "Alibaba Bailian",
|
|
3426
|
+
description: "Requires ALIBABA_TOKEN_PLAN_API_KEY (wan2.7-image via Token Plan)",
|
|
3427
|
+
},
|
|
3428
|
+
{
|
|
3429
|
+
value: "custom",
|
|
3430
|
+
label: "Custom",
|
|
3431
|
+
description: "OpenAI-compatible endpoint (set providers.imageCustomUrl)",
|
|
3432
|
+
},
|
|
3335
3433
|
],
|
|
3336
3434
|
},
|
|
3337
3435
|
},
|
|
3436
|
+
"providers.imageModel": {
|
|
3437
|
+
type: "string",
|
|
3438
|
+
default: undefined,
|
|
3439
|
+
ui: {
|
|
3440
|
+
tab: "providers",
|
|
3441
|
+
label: "Image Model",
|
|
3442
|
+
description: "Override the default image generation model for the selected provider",
|
|
3443
|
+
},
|
|
3444
|
+
},
|
|
3445
|
+
"providers.imageCustomUrl": {
|
|
3446
|
+
type: "string",
|
|
3447
|
+
default: undefined,
|
|
3448
|
+
ui: {
|
|
3449
|
+
tab: "providers",
|
|
3450
|
+
label: "Image Custom URL",
|
|
3451
|
+
description: "Base URL for custom OpenAI-compatible image endpoint",
|
|
3452
|
+
},
|
|
3453
|
+
},
|
|
3454
|
+
"providers.imageCustomKey": {
|
|
3455
|
+
type: "string",
|
|
3456
|
+
default: undefined,
|
|
3457
|
+
ui: {
|
|
3458
|
+
tab: "providers",
|
|
3459
|
+
label: "Image Custom API Key",
|
|
3460
|
+
description: "API key for custom OpenAI-compatible image endpoint",
|
|
3461
|
+
},
|
|
3462
|
+
},
|
|
3463
|
+
"providers.imageCustomKeyEnv": {
|
|
3464
|
+
type: "string",
|
|
3465
|
+
default: undefined,
|
|
3466
|
+
ui: {
|
|
3467
|
+
tab: "providers",
|
|
3468
|
+
label: "Image Custom API Key Env",
|
|
3469
|
+
description: "Environment variable name holding the API key for custom image endpoint",
|
|
3470
|
+
},
|
|
3471
|
+
},
|
|
3338
3472
|
|
|
3339
3473
|
"providers.kimiApiFormat": {
|
|
3340
3474
|
type: "enum",
|
|
@@ -3943,6 +4077,7 @@ export interface StatusLineSettings {
|
|
|
3943
4077
|
maxRows: number;
|
|
3944
4078
|
showHookStatus: boolean;
|
|
3945
4079
|
showSkillHud: boolean;
|
|
4080
|
+
showActionHints: boolean;
|
|
3946
4081
|
leftSegments: StatusLineSegmentId[];
|
|
3947
4082
|
rightSegments: StatusLineSegmentId[];
|
|
3948
4083
|
segmentOptions: Record<string, unknown>;
|
|
@@ -3981,6 +4116,17 @@ export interface ShellMinimizerSettings {
|
|
|
3981
4116
|
maxCaptureBytes: number;
|
|
3982
4117
|
}
|
|
3983
4118
|
|
|
4119
|
+
export interface MemoryGuardSettings {
|
|
4120
|
+
enabled: boolean;
|
|
4121
|
+
checkIntervalMs: number;
|
|
4122
|
+
gcThresholdPercent: number;
|
|
4123
|
+
restartThresholdPercent: number;
|
|
4124
|
+
restartThresholdWindowMs: number;
|
|
4125
|
+
cooldownMs: number;
|
|
4126
|
+
parentReserveMb: number;
|
|
4127
|
+
policyLimitMb: number;
|
|
4128
|
+
}
|
|
4129
|
+
|
|
3984
4130
|
export interface NotificationsSettings {
|
|
3985
4131
|
enabled: boolean;
|
|
3986
4132
|
telegram: {
|
|
@@ -4068,6 +4214,7 @@ export interface GroupTypeMap {
|
|
|
4068
4214
|
statusLine: StatusLineSettings;
|
|
4069
4215
|
thinkingBudgets: ThinkingBudgetsSettings;
|
|
4070
4216
|
stt: SttSettings;
|
|
4217
|
+
memoryGuard: MemoryGuardSettings;
|
|
4071
4218
|
modelRoles: Record<string, ModelSelectorValue>;
|
|
4072
4219
|
modelTags: ModelTagsSettings;
|
|
4073
4220
|
cycleOrder: string[];
|