@gajae-code/coding-agent 0.13.2 → 0.14.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 +215 -8
- package/README.md +2 -0
- package/bin/gajaessi.js +4 -0
- package/dist/types/async/job-manager.d.ts +55 -2
- package/dist/types/async/support.d.ts +14 -0
- package/dist/types/capability/mcp.d.ts +6 -0
- package/dist/types/capability/types.d.ts +6 -0
- package/dist/types/cli/accounts-cli.d.ts +19 -0
- package/dist/types/cli/args.d.ts +3 -0
- package/dist/types/cli/config-cli.d.ts +6 -0
- package/dist/types/cli/crash-cli.d.ts +10 -0
- package/dist/types/cli/customize-doctor.d.ts +145 -0
- package/dist/types/cli/daemon-cli.d.ts +3 -1
- package/dist/types/cli/mcp-cli.d.ts +11 -0
- package/dist/types/cli/notify-cli.d.ts +1 -1
- package/dist/types/cli/root-flags.d.ts +12 -0
- package/dist/types/cli/setup-cli.d.ts +3 -1
- package/dist/types/cli/skills-cli.d.ts +2 -1
- package/dist/types/cli/update-cli.d.ts +19 -1
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/commands/accounts.d.ts +40 -0
- package/dist/types/commands/crash.d.ts +24 -0
- package/dist/types/commands/customize.d.ts +22 -0
- package/dist/types/commands/daemon.d.ts +1 -1
- package/dist/types/commands/launch.d.ts +6 -0
- package/dist/types/commands/setup.d.ts +6 -0
- package/dist/types/commands/skills.d.ts +6 -1
- package/dist/types/commands/update.d.ts +7 -0
- package/dist/types/config/atomic-yaml-patch-worker.d.ts +25 -0
- package/dist/types/config/atomic-yaml-patch.d.ts +62 -2
- package/dist/types/config/config-schema-version.d.ts +10 -0
- package/dist/types/config/file-lock.d.ts +18 -0
- package/dist/types/config/model-profile-activation.d.ts +3 -1
- package/dist/types/config/model-registry.d.ts +10 -1
- package/dist/types/config/models-config-schema.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +73 -9
- package/dist/types/config/settings.d.ts +63 -0
- package/dist/types/config/skill-settings-defaults.d.ts +26 -0
- package/dist/types/config/task-delegation.d.ts +39 -0
- package/dist/types/config/update-channel.d.ts +10 -0
- package/dist/types/coordinator-mcp/server.d.ts +5 -1
- package/dist/types/crash/index-store.d.ts +87 -0
- package/dist/types/crash/nudge.d.ts +50 -0
- package/dist/types/crash/record-loader.d.ts +17 -0
- package/dist/types/crash/report.d.ts +134 -0
- package/dist/types/crash/sanitize.d.ts +25 -0
- package/dist/types/cursor.d.ts +13 -2
- package/dist/types/customization/import.d.ts +37 -0
- package/dist/types/customization/index.d.ts +4 -0
- package/dist/types/customization/inventory.d.ts +25 -0
- package/dist/types/customization/mutations.d.ts +32 -0
- package/dist/types/customization/types.d.ts +115 -0
- package/dist/types/daemon/control-types.d.ts +8 -1
- package/dist/types/daemon/operator-contract.d.ts +4 -4
- package/dist/types/discovery/claude.d.ts +39 -1
- package/dist/types/discovery/codex.d.ts +39 -1
- package/dist/types/discovery/index.d.ts +2 -0
- package/dist/types/discovery/mcp-compat.d.ts +30 -0
- package/dist/types/edit/renderer.d.ts +23 -0
- package/dist/types/extensibility/extensions/runner.d.ts +3 -0
- package/dist/types/extensibility/extensions/types.d.ts +21 -4
- package/dist/types/extensibility/gjc-plugins/observability.d.ts +6 -1
- package/dist/types/extensibility/gjc-plugins/registry.d.ts +8 -1
- package/dist/types/extensibility/hooks/loader.d.ts +19 -5
- package/dist/types/extensibility/runtime-skill-discovery.d.ts +22 -1
- package/dist/types/extensibility/skill-management.d.ts +107 -0
- package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +3 -1
- package/dist/types/gjc-runtime/launch-worktree.d.ts +8 -0
- package/dist/types/gjc-runtime/linux-proc.d.ts +3 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +10 -6
- package/dist/types/gjc-runtime/session-state-lock.d.ts +104 -0
- package/dist/types/gjc-runtime/session-state-sidecar.d.ts +120 -2
- package/dist/types/gjc-runtime/state-writer.d.ts +10 -1
- package/dist/types/gjc-runtime/ultragoal-guard.d.ts +4 -2
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +8 -6
- package/dist/types/gjc-runtime/workflow-settings.d.ts +109 -0
- package/dist/types/hooks/events.d.ts +60 -0
- package/dist/types/hooks/normalize.d.ts +83 -0
- package/dist/types/hooks/skill-state.d.ts +9 -2
- package/dist/types/main.d.ts +2 -1
- package/dist/types/modes/acp/abort-scope.d.ts +13 -0
- package/dist/types/modes/acp/acp-agent.d.ts +7 -4
- package/dist/types/modes/components/customization/customization-dashboard.d.ts +44 -0
- package/dist/types/modes/components/customization/import-wizard.d.ts +21 -0
- package/dist/types/modes/components/customization/index.d.ts +1 -0
- package/dist/types/modes/components/dynamic-theme-text.d.ts +9 -0
- package/dist/types/modes/components/gajae-pet-widget.d.ts +6 -28
- package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
- package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
- package/dist/types/modes/components/oauth-selector.d.ts +10 -4
- package/dist/types/modes/components/pet-capability.d.ts +7 -21
- package/dist/types/modes/components/settings-selector.d.ts +5 -0
- package/dist/types/modes/components/status-line/gh.d.ts +6 -2
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
- package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
- package/dist/types/modes/interactive-mode.d.ts +1 -0
- package/dist/types/modes/theme/defaults/index.d.ts +118 -0
- package/dist/types/modes/types.d.ts +1 -0
- package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
- package/dist/types/runtime-mcp/config.d.ts +9 -0
- package/dist/types/runtime-mcp/manager.d.ts +26 -1
- package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
- package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
- package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
- package/dist/types/runtime-mcp/protocol.d.ts +278 -0
- package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
- package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
- package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
- package/dist/types/runtime-mcp/types.d.ts +102 -10
- package/dist/types/sdk/acp/adapter.d.ts +26 -5
- package/dist/types/sdk/broker/broker.d.ts +3 -55
- package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
- package/dist/types/sdk/broker/session-index.d.ts +14 -5
- package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
- package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
- package/dist/types/sdk/bus/config.d.ts +11 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
- package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
- package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
- package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
- package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
- package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
- package/dist/types/sdk/bus/index.d.ts +85 -99
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
- package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
- package/dist/types/sdk/bus/notification-service.d.ts +52 -0
- package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
- package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
- package/dist/types/sdk/bus/session-control.d.ts +25 -1
- package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
- package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
- package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
- package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
- package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
- package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
- package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
- package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
- package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
- package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
- package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
- package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
- package/dist/types/sdk/cli/rows.d.ts +2 -11
- package/dist/types/sdk/cli/session-cli.d.ts +15 -25
- package/dist/types/sdk/client/client.d.ts +97 -1
- package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
- package/dist/types/sdk/host/control/index.d.ts +1 -1
- package/dist/types/sdk/host/control/operations.d.ts +18 -5
- package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
- package/dist/types/sdk/host/host.d.ts +15 -1
- package/dist/types/sdk/host/query/handlers.d.ts +5 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
- package/dist/types/sdk/host/session-runtime.d.ts +127 -7
- package/dist/types/sdk/host/types.d.ts +1 -1
- package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
- package/dist/types/sdk/index.d.ts +2 -1
- package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
- package/dist/types/sdk/lifecycle/client.d.ts +59 -0
- package/dist/types/sdk/lifecycle/index.d.ts +3 -0
- package/dist/types/sdk/lifecycle/service.d.ts +232 -0
- package/dist/types/sdk/mcp/server.d.ts +9 -6
- package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
- package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
- package/dist/types/sdk/prompt-status.d.ts +10 -3
- package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
- package/dist/types/sdk/receipt-state.d.ts +17 -0
- package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
- package/dist/types/sdk/router/index.d.ts +1 -0
- package/dist/types/sdk/router/session-router.d.ts +152 -0
- package/dist/types/sdk/session-list.d.ts +22 -0
- package/dist/types/sdk/session-reconnect.d.ts +43 -1
- package/dist/types/sdk/session.d.ts +34 -1
- package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
- package/dist/types/session/account-inventory.d.ts +86 -0
- package/dist/types/session/agent-session.d.ts +145 -6
- package/dist/types/session/agent-storage.d.ts +10 -0
- package/dist/types/session/coordinator-tool-label.d.ts +28 -0
- package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
- package/dist/types/session/messages.d.ts +1 -1
- package/dist/types/session/secure-token-file.d.ts +3 -0
- package/dist/types/session/session-manager.d.ts +47 -1
- package/dist/types/session/startup-auth-config.d.ts +44 -0
- package/dist/types/session/terminal-abort.d.ts +378 -0
- package/dist/types/session/yield-queue.d.ts +7 -0
- package/dist/types/session-import/claude.d.ts +26 -0
- package/dist/types/session-import/codex.d.ts +88 -0
- package/dist/types/session-import/command.d.ts +35 -0
- package/dist/types/session-import/detect.d.ts +22 -0
- package/dist/types/session-import/index.d.ts +7 -0
- package/dist/types/session-import/provider-codex.d.ts +22 -0
- package/dist/types/session-import/provider-service.d.ts +38 -0
- package/dist/types/session-import/redact.d.ts +23 -0
- package/dist/types/session-import/service.d.ts +47 -0
- package/dist/types/session-import/types.d.ts +120 -0
- package/dist/types/setup/paseo/check.d.ts +16 -0
- package/dist/types/setup/paseo/install-saga.d.ts +115 -0
- package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
- package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
- package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
- package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
- package/dist/types/setup/paseo/provider-config.d.ts +35 -0
- package/dist/types/setup/paseo/remove.d.ts +14 -0
- package/dist/types/setup/paseo/result-types.d.ts +59 -0
- package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
- package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
- package/dist/types/skill-state/active-state.d.ts +5 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
- package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
- package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
- package/dist/types/slash-commands/types.d.ts +7 -1
- package/dist/types/task/executor.d.ts +10 -0
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/tools/ask-answer-registry.d.ts +6 -3
- package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
- package/dist/types/tools/bash.d.ts +2 -6
- package/dist/types/tools/browser/attach.d.ts +11 -0
- package/dist/types/tools/browser/launch.d.ts +20 -0
- package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
- package/dist/types/tools/browser/render.d.ts +1 -0
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/image-gen.d.ts +10 -2
- package/dist/types/tools/index.d.ts +8 -0
- package/dist/types/tools/monitor.d.ts +1 -1
- package/dist/types/tools/skill-discovery.d.ts +8 -1
- package/dist/types/tools/subagent.d.ts +2 -0
- package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
- package/dist/types/utils/herdr-pane.d.ts +76 -0
- package/package.json +19 -9
- package/scripts/build-binary.ts +2 -1
- package/scripts/build-sdk-package-smoke.ts +2 -13
- package/scripts/capture-sticky-viewport-showcase.ts +0 -1
- package/scripts/compile-args.ts +2 -0
- package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
- package/scripts/generate-sdk-operation-inventory.ts +28 -0
- package/scripts/generate-telegram-baseline-manifest.ts +1 -0
- package/scripts/generate-tool-catalog.ts +6 -4
- package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
- package/src/async/job-manager.ts +352 -17
- package/src/async/support.ts +25 -0
- package/src/autoresearch/dashboard.ts +28 -13
- package/src/capability/index.ts +3 -1
- package/src/capability/mcp.ts +6 -0
- package/src/capability/types.ts +6 -0
- package/src/cli/accounts-cli.ts +395 -0
- package/src/cli/args.ts +23 -0
- package/src/cli/auth-broker-cli.ts +136 -66
- package/src/cli/auth-gateway-cli.ts +94 -70
- package/src/cli/config-cli.ts +27 -2
- package/src/cli/crash-cli.ts +78 -0
- package/src/cli/customize-doctor.ts +1605 -0
- package/src/cli/daemon-cli.ts +12 -3
- package/src/cli/fast-help.ts +1 -0
- package/src/cli/mcp-cli.ts +128 -60
- package/src/cli/notify-cli.ts +8 -14
- package/src/cli/root-flags.ts +8 -0
- package/src/cli/setup-cli.ts +145 -0
- package/src/cli/skills-cli.ts +38 -2
- package/src/cli/update-cli.ts +167 -12
- package/src/cli.ts +4 -0
- package/src/commands/accounts.ts +71 -0
- package/src/commands/crash.ts +35 -0
- package/src/commands/customize.ts +84 -0
- package/src/commands/daemon.ts +2 -2
- package/src/commands/deep-interview.ts +2 -0
- package/src/commands/launch.ts +1 -0
- package/src/commands/mcp.ts +12 -7
- package/src/commands/ralplan.ts +2 -0
- package/src/commands/sdk.ts +65 -32
- package/src/commands/setup.ts +5 -0
- package/src/commands/skills.ts +14 -4
- package/src/commands/ultragoal.ts +10 -1
- package/src/commands/update.ts +26 -15
- package/src/config/atomic-yaml-patch-worker.ts +57 -0
- package/src/config/atomic-yaml-patch.ts +769 -29
- package/src/config/config-schema-version.ts +10 -0
- package/src/config/file-lock.ts +70 -1
- package/src/config/mcp-schema.json +52 -14
- package/src/config/model-profile-activation.ts +23 -2
- package/src/config/model-profiles.ts +88 -21
- package/src/config/model-registry.ts +147 -21
- package/src/config/models-config-schema.ts +1 -1
- package/src/config/settings-schema.ts +77 -7
- package/src/config/settings.ts +4038 -199
- package/src/config/skill-settings-defaults.ts +41 -3
- package/src/config/task-delegation.ts +87 -0
- package/src/config/update-channel.ts +23 -0
- package/src/coordinator-mcp/server.ts +377 -308
- package/src/crash/index-store.ts +723 -0
- package/src/crash/nudge.ts +89 -0
- package/src/crash/record-loader.ts +149 -0
- package/src/crash/report.ts +551 -0
- package/src/crash/sanitize.ts +129 -0
- package/src/cursor.ts +36 -10
- package/src/customization/import.ts +946 -0
- package/src/customization/index.ts +4 -0
- package/src/customization/inventory.ts +335 -0
- package/src/customization/mutations.ts +141 -0
- package/src/customization/types.ts +223 -0
- package/src/daemon/control-types.ts +8 -1
- package/src/daemon/operator-contract.ts +6 -6
- package/src/defaults/gjc/extensions/grok-cli-vendor/src/models/catalog.ts +31 -6
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
- package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
- package/src/discovery/claude-hooks.ts +38 -0
- package/src/discovery/claude.ts +142 -209
- package/src/discovery/codex-hooks.ts +38 -0
- package/src/discovery/codex.ts +132 -198
- package/src/discovery/helpers.ts +8 -1
- package/src/discovery/index.ts +2 -0
- package/src/discovery/mcp-compat.ts +234 -0
- package/src/discovery/mcp-json.ts +6 -0
- package/src/edit/renderer.ts +40 -0
- package/src/edit/streaming.ts +4 -2
- package/src/exec/bash-executor.ts +24 -20
- package/src/export/html/index.ts +51 -2
- package/src/extensibility/extensions/loader.ts +9 -1
- package/src/extensibility/extensions/runner.ts +17 -4
- package/src/extensibility/extensions/types.ts +31 -6
- package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
- package/src/extensibility/gjc-plugins/installer.ts +9 -5
- package/src/extensibility/gjc-plugins/observability.ts +8 -2
- package/src/extensibility/gjc-plugins/registry.ts +13 -2
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
- package/src/extensibility/gjc-plugins/schema.ts +222 -39
- package/src/extensibility/hooks/loader.ts +154 -10
- package/src/extensibility/runtime-skill-discovery.ts +257 -60
- package/src/extensibility/skill-management.ts +368 -0
- package/src/extensibility/skills.ts +52 -16
- package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
- package/src/gjc-runtime/launch-worktree.ts +56 -2
- package/src/gjc-runtime/linux-proc.ts +7 -1
- package/src/gjc-runtime/ralplan-runtime.ts +100 -164
- package/src/gjc-runtime/session-state-lock.ts +992 -0
- package/src/gjc-runtime/session-state-sidecar.ts +644 -142
- package/src/gjc-runtime/state-writer.ts +39 -14
- package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
- package/src/gjc-runtime/ultragoal-guard.ts +11 -4
- package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
- package/src/gjc-runtime/workflow-settings.ts +596 -0
- package/src/goals/tools/goal-tool.ts +6 -1
- package/src/hooks/events.ts +291 -0
- package/src/hooks/native-skill-hook.ts +4 -0
- package/src/hooks/normalize.ts +369 -0
- package/src/hooks/skill-state.ts +165 -46
- package/src/internal-urls/docs-index.generated.ts +41 -32
- package/src/main.ts +36 -5
- package/src/migrate/mcp-mapper.ts +25 -2
- package/src/modes/acp/abort-scope.ts +29 -0
- package/src/modes/acp/acp-agent.ts +423 -98
- package/src/modes/components/assistant-message.ts +6 -1
- package/src/modes/components/chrome.ts +4 -3
- package/src/modes/components/customization/customization-dashboard.ts +443 -0
- package/src/modes/components/customization/import-wizard.ts +372 -0
- package/src/modes/components/customization/index.ts +1 -0
- package/src/modes/components/dynamic-theme-text.ts +22 -0
- package/src/modes/components/gajae-pet-widget.ts +607 -193
- package/src/modes/components/irc-sidebar.ts +11 -0
- package/src/modes/components/iterm-pet-transport.ts +585 -0
- package/src/modes/components/model-selector.ts +1 -6
- package/src/modes/components/oauth-selector.ts +277 -86
- package/src/modes/components/pet-capability.ts +35 -31
- package/src/modes/components/settings-selector.ts +29 -5
- package/src/modes/components/status-line/gh.ts +45 -1
- package/src/modes/components/status-line/segments.ts +19 -4
- package/src/modes/components/tool-status-header.ts +13 -3
- package/src/modes/controllers/command-controller.ts +20 -8
- package/src/modes/controllers/extension-ui-controller.ts +56 -257
- package/src/modes/controllers/input-controller.ts +10 -0
- package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
- package/src/modes/controllers/selector-controller.ts +238 -77
- package/src/modes/controllers/stt-controller.ts +3 -3
- package/src/modes/interactive-mode.ts +88 -16
- package/src/modes/print-mode.ts +35 -6
- package/src/modes/runtime-init.ts +21 -68
- package/src/modes/theme/defaults/index.ts +2 -0
- package/src/modes/theme/defaults/ouroboros.json +118 -0
- package/src/modes/types.ts +1 -0
- package/src/modes/utils/injected-user-submission.ts +25 -0
- package/src/modes/utils/terminal-bell.ts +15 -1
- package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
- package/src/prompts/agent-fragments/restricted-bash.md +1 -1
- package/src/prompts/agents/critic.md +1 -1
- package/src/prompts/system/rlm-research.md +1 -1
- package/src/prompts/system/system-prompt.md +0 -2
- package/src/prompts/tools/bash.md +7 -1
- package/src/prompts/tools/browser.md +1 -1
- package/src/prompts/tools/cron.md +6 -6
- package/src/prompts/tools/read.md +0 -2
- package/src/prompts/tools/skill-discovery.md +4 -2
- package/src/runtime-mcp/client.ts +427 -23
- package/src/runtime-mcp/config.ts +37 -5
- package/src/runtime-mcp/manager-pool.test.ts +56 -0
- package/src/runtime-mcp/manager.ts +52 -2
- package/src/runtime-mcp/oauth-discovery.ts +13 -0
- package/src/runtime-mcp/oauth-flow.ts +46 -1
- package/src/runtime-mcp/pool-key.ts +5 -1
- package/src/runtime-mcp/pool.test.ts +9 -0
- package/src/runtime-mcp/protocol.test.ts +353 -0
- package/src/runtime-mcp/protocol.ts +624 -0
- package/src/runtime-mcp/scope-config.ts +78 -0
- package/src/runtime-mcp/tool-bridge.ts +44 -10
- package/src/runtime-mcp/transports/http.ts +84 -13
- package/src/runtime-mcp/types.ts +123 -12
- package/src/sdk/acp/adapter.ts +328 -97
- package/src/sdk/broker/broker.ts +160 -741
- package/src/sdk/broker/ensure.ts +9 -1
- package/src/sdk/broker/lifecycle.ts +510 -116
- package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
- package/src/sdk/broker/process-incarnation.ts +19 -0
- package/src/sdk/broker/session-index.ts +516 -117
- package/src/sdk/broker/startup-failure.ts +28 -5
- package/src/sdk/broker/transport.ts +1 -13
- package/src/sdk/bus/chat-daemon-cli.ts +4 -2
- package/src/sdk/bus/chat-daemon-control.ts +67 -6
- package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
- package/src/sdk/bus/config.ts +13 -0
- package/src/sdk/bus/conversation-store.ts +59 -171
- package/src/sdk/bus/daemon-paths.ts +20 -0
- package/src/sdk/bus/discord-conversation.ts +2 -0
- package/src/sdk/bus/discord-daemon.ts +524 -126
- package/src/sdk/bus/discord-live-provider.ts +206 -79
- package/src/sdk/bus/existing-thread-readiness.ts +4 -97
- package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
- package/src/sdk/bus/index.ts +2480 -456
- package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
- package/src/sdk/bus/lifecycle-commands.ts +2 -2
- package/src/sdk/bus/managed-daemon.ts +2 -145
- package/src/sdk/bus/notification-service.ts +196 -0
- package/src/sdk/bus/operator-runtime.ts +1 -1
- package/src/sdk/bus/prompt-reconciliation.ts +24 -15
- package/src/sdk/bus/reconciliation-store.ts +553 -24
- package/src/sdk/bus/session-control.ts +49 -3
- package/src/sdk/bus/slack-conversation.ts +4 -0
- package/src/sdk/bus/slack-daemon.ts +733 -134
- package/src/sdk/bus/slack-live-provider.ts +65 -15
- package/src/sdk/bus/slack-provider.ts +4 -0
- package/src/sdk/bus/slack-thread-binding.ts +9 -104
- package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
- package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
- package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
- package/src/sdk/bus/telegram-daemon-control.ts +3 -13
- package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
- package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
- package/src/sdk/bus/telegram-daemon.ts +2552 -2280
- package/src/sdk/bus/telegram-reference.ts +1 -226
- package/src/sdk/bus/telegram-setup.ts +2 -2
- package/src/sdk/bus/threaded-render.ts +1 -0
- package/src/sdk/bus/topic-registry.ts +279 -146
- package/src/sdk/cli/rows.ts +2 -35
- package/src/sdk/cli/session-cli.ts +776 -700
- package/src/sdk/client/client.ts +892 -1
- package/src/sdk/host/control/dispatch.ts +93 -58
- package/src/sdk/host/control/index.ts +1 -1
- package/src/sdk/host/control/operations.ts +18 -10
- package/src/sdk/host/control/runtime-gate.ts +40 -0
- package/src/sdk/host/host.ts +63 -12
- package/src/sdk/host/query/handlers.ts +66 -7
- package/src/sdk/host/reverse-leases.ts +2 -2
- package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
- package/src/sdk/host/session-runtime.test.ts +2787 -34
- package/src/sdk/host/session-runtime.ts +1489 -101
- package/src/sdk/host/surface-policy.ts +12 -8
- package/src/sdk/host/types.ts +1 -1
- package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
- package/src/sdk/host/websocket-transport.ts +85 -50
- package/src/sdk/index.ts +2 -1
- package/src/sdk/lifecycle/broker-client.ts +53 -0
- package/src/sdk/lifecycle/client.ts +234 -0
- package/src/sdk/lifecycle/index.ts +3 -0
- package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
- package/src/sdk/lifecycle/service.ts +720 -0
- package/src/sdk/mcp/server.ts +226 -188
- package/src/sdk/prompt-deadline-lease.ts +55 -0
- package/src/sdk/prompt-deadline-manager.ts +148 -0
- package/src/sdk/prompt-status.ts +11 -3
- package/src/sdk/protocol/operation-inventory.generated.json +272 -129
- package/src/sdk/protocol/operation-registry.ts +71 -8
- package/src/sdk/receipt-state.ts +43 -0
- package/src/sdk/reconciliation-extensions.ts +14 -0
- package/src/sdk/router/index.ts +1 -0
- package/src/sdk/router/session-router.ts +1658 -0
- package/src/sdk/session-list.ts +93 -0
- package/src/sdk/session-reconnect.ts +45 -1
- package/src/sdk/session.ts +716 -120
- package/src/sdk/transport/serve-cli.ts +18 -34
- package/src/session/account-inventory.ts +603 -0
- package/src/session/agent-session.ts +2873 -559
- package/src/session/agent-storage.ts +35 -0
- package/src/session/blob-store.ts +32 -1
- package/src/session/coordinator-tool-label.ts +40 -0
- package/src/session/internal/managed-session-scope.ts +4 -0
- package/src/session/internal/managed-session-storage.ts +199 -31
- package/src/session/messages.ts +1 -1
- package/src/session/secure-token-file.ts +80 -0
- package/src/session/session-manager.ts +757 -57
- package/src/session/session-storage.ts +25 -16
- package/src/session/startup-auth-config.ts +297 -0
- package/src/session/terminal-abort.ts +1253 -0
- package/src/session/yield-queue.ts +57 -15
- package/src/session-import/claude.ts +334 -0
- package/src/session-import/codex.ts +1033 -0
- package/src/session-import/command.ts +77 -0
- package/src/session-import/detect.ts +133 -0
- package/src/session-import/index.ts +7 -0
- package/src/session-import/provider-codex.ts +327 -0
- package/src/session-import/provider-service.ts +457 -0
- package/src/session-import/redact.ts +128 -0
- package/src/session-import/service.ts +1264 -0
- package/src/session-import/types.ts +148 -0
- package/src/setup/paseo/check.ts +213 -0
- package/src/setup/paseo/install-saga.ts +293 -0
- package/src/setup/paseo/json-publisher.ts +263 -0
- package/src/setup/paseo/orchestration-preferences.ts +86 -0
- package/src/setup/paseo/paseo-ownership.ts +224 -0
- package/src/setup/paseo/paseo-setup.ts +253 -0
- package/src/setup/paseo/provider-config.ts +139 -0
- package/src/setup/paseo/remove.ts +183 -0
- package/src/setup/paseo/result-types.ts +79 -0
- package/src/setup/paseo/setup-deps.ts +175 -0
- package/src/setup/paseo/skills-bridge.ts +260 -0
- package/src/skill-state/active-state.ts +21 -11
- package/src/slash-commands/acp-builtins.ts +9 -1
- package/src/slash-commands/builtin-registry.ts +117 -19
- package/src/slash-commands/helpers/credential-switch.ts +143 -0
- package/src/slash-commands/helpers/mcp.ts +9 -3
- package/src/slash-commands/helpers/usage-report.ts +61 -56
- package/src/slash-commands/types.ts +7 -2
- package/src/task/executor.ts +30 -11
- package/src/task/index.ts +66 -7
- package/src/task/render.ts +23 -9
- package/src/tools/ask-answer-registry.ts +23 -7
- package/src/tools/ask.ts +8 -4
- package/src/tools/bash-sleep-advisory.ts +115 -0
- package/src/tools/bash.ts +98 -18
- package/src/tools/browser/attach.ts +71 -3
- package/src/tools/browser/launch.ts +86 -13
- package/src/tools/browser/profile-discovery.ts +57 -7
- package/src/tools/browser/render.ts +8 -1
- package/src/tools/browser.ts +130 -21
- package/src/tools/computer.enforcement.test.ts +1 -1
- package/src/tools/computer.ts +3 -2
- package/src/tools/cron.ts +12 -1
- package/src/tools/image-gen.ts +349 -142
- package/src/tools/index.ts +8 -0
- package/src/tools/job.ts +33 -6
- package/src/tools/monitor.ts +41 -2
- package/src/tools/skill-discovery.ts +21 -29
- package/src/tools/subagent.ts +142 -24
- package/src/tools/todo-contract.ts +55 -3
- package/src/tools/todo-write.ts +4 -3
- package/src/tools/tool-catalog.generated.ts +6 -6
- package/src/tools/ultragoal-ask-guard.ts +10 -3
- package/src/utils/herdr-pane.ts +345 -0
- package/src/utils/title-generator.ts +2 -0
- package/src/web/scrapers/index.ts +6 -4
- package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
- package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
- package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
- package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
- package/dist/types/runtime/lazy-service.test.d.ts +0 -1
- package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
- package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
- package/dist/types/runtime-mcp/config.test.d.ts +0 -1
- package/dist/types/runtime-mcp/http.test.d.ts +0 -1
- package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
- package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
- package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
- package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
- package/dist/types/sdk/elevation/audit.d.ts +0 -93
- package/dist/types/sdk/elevation/capability.d.ts +0 -3
- package/dist/types/sdk/elevation/digest.d.ts +0 -72
- package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
- package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
- package/dist/types/sdk/elevation/owner.d.ts +0 -48
- package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
- package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
- package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
- package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
- package/dist/types/session/auth-broker-config.d.ts +0 -13
- package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
- package/dist/types/skills/skills.test.d.ts +0 -1
- package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
- package/dist/types/task/token-log.test.d.ts +0 -1
- package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
- package/dist/types/tools/descriptors.test.d.ts +0 -1
- package/scripts/g005-daemon-smoke.ts +0 -180
- package/scripts/g011-daemon-path-smoke.ts +0 -153
- package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
- package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
- package/src/sdk/bus/telegram-cli.ts +0 -212
- package/src/sdk/elevation/allowlist.ts +0 -54
- package/src/sdk/elevation/audit.ts +0 -208
- package/src/sdk/elevation/capability.ts +0 -41
- package/src/sdk/elevation/digest.ts +0 -129
- package/src/sdk/elevation/dispatch-receipt.ts +0 -184
- package/src/sdk/elevation/grant-ledger.ts +0 -1142
- package/src/sdk/elevation/owner.ts +0 -109
- package/src/session/auth-broker-config.ts +0 -109
- /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
- /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
- /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The current settings/config schema version. A `config.yml` whose
|
|
3
|
+
* `configSchemaVersion` is newer is treated as read-only by Settings migrations
|
|
4
|
+
* (a future schema must not inherit stale keys); the workflow-settings
|
|
5
|
+
* resolver mirrors that guard when deciding whether a migration target is
|
|
6
|
+
* non-publishable (so the retained legacy fallback still applies). Defined in
|
|
7
|
+
* this dependency-light module so the resolver can import it without pulling in
|
|
8
|
+
* the TUI/AI-heavy settings schema.
|
|
9
|
+
*/
|
|
10
|
+
export const CONFIG_SCHEMA_VERSION = 1;
|
package/src/config/file-lock.ts
CHANGED
|
@@ -260,6 +260,27 @@ async function removeStaleLockForAcquire(lockPath: string, snapshot: LockStaleSn
|
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
+
/**
|
|
264
|
+
* @internal
|
|
265
|
+
* READ-ONLY verdict on an EXISTING generic `<file>.lock/` directory that another lock
|
|
266
|
+
* protocol has collided with: is its owner gone, by this protocol's own rules?
|
|
267
|
+
*
|
|
268
|
+
* Exposed so a foreign holder of the same path never has to reimplement this protocol's
|
|
269
|
+
* owner parsing or liveness rules. Reusing them is what makes the two implementations
|
|
270
|
+
* agree: `processStartTime` here is the portable `ps` value that `info.start_time` was
|
|
271
|
+
* written from, so a live owner is proved live rather than compared against a value from a
|
|
272
|
+
* different clock source and then reaped. A live owner is never reported stale by elapsed
|
|
273
|
+
* time alone.
|
|
274
|
+
*
|
|
275
|
+
* Deletion is deliberately NOT offered. This protocol can only re-read an owner token and
|
|
276
|
+
* then unlink a pathname, which a successor can take over in between; a caller that must
|
|
277
|
+
* remove the directory has to do it under an identity-bound primitive that refuses when
|
|
278
|
+
* the object is no longer the one that was judged.
|
|
279
|
+
*/
|
|
280
|
+
export async function genericFileLockDirIsStale(lockDir: string, staleMs: number): Promise<boolean> {
|
|
281
|
+
return (await staleLockSnapshot(lockDir, staleMs)).stale;
|
|
282
|
+
}
|
|
283
|
+
|
|
263
284
|
async function tryAcquireLock(
|
|
264
285
|
lockPath: string,
|
|
265
286
|
ownerHostId?: string,
|
|
@@ -310,6 +331,51 @@ async function releaseLock(lockPath: string, owner: FileLockOwnerToken): Promise
|
|
|
310
331
|
const outcome = await removeFileLockDirForGc(lockPath, owner);
|
|
311
332
|
if (outcome !== "removed") throw new Error(`Failed to release file lock: ${outcome}.`);
|
|
312
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Bounded, actionable description of who holds `lockPath` at exhaustion time.
|
|
336
|
+
* Never a stealing authority: purely diagnostic, read once after the last retry.
|
|
337
|
+
*/
|
|
338
|
+
async function lockHolderDescription(lockPath: string): Promise<string> {
|
|
339
|
+
try {
|
|
340
|
+
const info = await readLockInfo(lockPath);
|
|
341
|
+
if (info) {
|
|
342
|
+
// A lock record carrying a foreign owner_host_id belongs to another
|
|
343
|
+
// machine (shared-volume topic registry): its pid is meaningful only
|
|
344
|
+
// on that host, so probing the same numeric pid here could mislabel a
|
|
345
|
+
// coincident local process as the holder. Report the owner host with
|
|
346
|
+
// unknown liveness instead.
|
|
347
|
+
if (info.owner_host_id !== undefined) {
|
|
348
|
+
return (
|
|
349
|
+
`held by pid ${info.pid} on host ${info.owner_host_id} (liveness unknown from this host)` +
|
|
350
|
+
` since ${new Date(info.timestamp).toISOString()}`
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
// Same-host holder: use the full liveness proof (pid alive AND, when the
|
|
354
|
+
// record carries a start_time, the start-time identity match) so a dead
|
|
355
|
+
// holder whose pid was already reused is not mislabeled "(live)".
|
|
356
|
+
const alive = ownerIsAlive(info);
|
|
357
|
+
return (
|
|
358
|
+
`held by pid ${info.pid}` +
|
|
359
|
+
(alive
|
|
360
|
+
? " (live)"
|
|
361
|
+
: ownerLiveness(info.pid) === "dead"
|
|
362
|
+
? " (dead but not reaped)"
|
|
363
|
+
: " (liveness unknown)") +
|
|
364
|
+
` since ${new Date(info.timestamp).toISOString()}`
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
try {
|
|
368
|
+
await fs.stat(path.join(lockPath, "info"));
|
|
369
|
+
return "held by an owner whose metadata is not yet readable";
|
|
370
|
+
} catch (error) {
|
|
371
|
+
if (!isEnoent(error)) throw error;
|
|
372
|
+
}
|
|
373
|
+
return "held by an unrecognized owner record";
|
|
374
|
+
} catch (error) {
|
|
375
|
+
return `held by an unreadable owner (${(error as Error).message})`;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
313
379
|
async function acquireLock(filePath: string, options: FileLockOptions = {}): Promise<() => Promise<void>> {
|
|
314
380
|
if (options.ownerHostId !== undefined && !options.ownerHostId) throw new Error("ownerHostId must be non-empty");
|
|
315
381
|
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
@@ -335,7 +401,10 @@ async function acquireLock(filePath: string, options: FileLockOptions = {}): Pro
|
|
|
335
401
|
opts.signal.removeEventListener("abort", onAbort);
|
|
336
402
|
}
|
|
337
403
|
}
|
|
338
|
-
throw new Error(
|
|
404
|
+
throw new Error(
|
|
405
|
+
`Failed to acquire lock for ${filePath} after ${opts.retries} attempts: ${await lockHolderDescription(lockPath)} (${lockPath}); ` +
|
|
406
|
+
`a live owner is never displaced — if this is an SDK broker (gjc sdk status), it must finish or be stopped before retrying`,
|
|
407
|
+
);
|
|
339
408
|
}
|
|
340
409
|
|
|
341
410
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/packages/coding-agent/src/config/mcp-schema.json",
|
|
4
4
|
"title": "GJC MCP configuration",
|
|
5
|
-
"description": "Schema for stored MCP server definitions in mcp.json, .mcp.json, .gjc/mcp.json, and ~/.gjc/agent/mcp.json.
|
|
5
|
+
"description": "Schema for stored MCP server definitions in mcp.json, .mcp.json, .gjc/mcp.json, and ~/.gjc/agent/mcp.json. Ordinary standalone gjc sessions consume enabled registrations at startup (conventional autoload); --no-mcp opts a session out.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"properties": {
|
|
@@ -40,11 +40,16 @@
|
|
|
40
40
|
"authConfig": {
|
|
41
41
|
"type": "object",
|
|
42
42
|
"additionalProperties": false,
|
|
43
|
-
"required": [
|
|
43
|
+
"required": [
|
|
44
|
+
"type"
|
|
45
|
+
],
|
|
44
46
|
"properties": {
|
|
45
47
|
"type": {
|
|
46
48
|
"type": "string",
|
|
47
|
-
"enum": [
|
|
49
|
+
"enum": [
|
|
50
|
+
"oauth",
|
|
51
|
+
"apikey"
|
|
52
|
+
],
|
|
48
53
|
"description": "Auth strategy understood by GJC."
|
|
49
54
|
},
|
|
50
55
|
"credentialId": {
|
|
@@ -98,11 +103,14 @@
|
|
|
98
103
|
},
|
|
99
104
|
"autoload": {
|
|
100
105
|
"type": "boolean",
|
|
101
|
-
"description": "Whether an explicit runtime MCP consumer should connect this server automatically when that consumer starts (default: true).
|
|
106
|
+
"description": "Whether an explicit runtime MCP consumer should connect this server automatically when that consumer starts (default: true). Ordinary standalone gjc, gjc --tmux, and print-mode sessions honor autoload for conventional registrations; false keeps the server configured for on-demand /mcp connection, and --no-mcp opts a session out."
|
|
102
107
|
},
|
|
103
108
|
"sharing": {
|
|
104
109
|
"type": "string",
|
|
105
|
-
"enum": [
|
|
110
|
+
"enum": [
|
|
111
|
+
"per-session",
|
|
112
|
+
"shared"
|
|
113
|
+
],
|
|
106
114
|
"default": "per-session",
|
|
107
115
|
"description": "MCP connection pool identity mode; W2 defaults to one connection per session."
|
|
108
116
|
},
|
|
@@ -111,6 +119,16 @@
|
|
|
111
119
|
"exclusiveMinimum": 0,
|
|
112
120
|
"description": "Connection timeout in milliseconds."
|
|
113
121
|
},
|
|
122
|
+
"protocol": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"enum": [
|
|
125
|
+
"auto",
|
|
126
|
+
"2026-07-28",
|
|
127
|
+
"legacy"
|
|
128
|
+
],
|
|
129
|
+
"default": "auto",
|
|
130
|
+
"description": "Protocol preference for remote (http/sse) servers: auto negotiates MCP 2026-07-28 (stateless) first with a bounded observable legacy fallback; 2026-07-28 is strict modern-only; legacy forces the bounded compatibility handshake. Ignored by stdio servers."
|
|
131
|
+
},
|
|
114
132
|
"auth": {
|
|
115
133
|
"$ref": "#/$defs/authConfig"
|
|
116
134
|
},
|
|
@@ -127,11 +145,15 @@
|
|
|
127
145
|
"$ref": "#/$defs/serverBase"
|
|
128
146
|
},
|
|
129
147
|
{
|
|
130
|
-
"required": [
|
|
148
|
+
"required": [
|
|
149
|
+
"command"
|
|
150
|
+
],
|
|
131
151
|
"properties": {
|
|
132
152
|
"type": {
|
|
133
153
|
"type": "string",
|
|
134
|
-
"enum": [
|
|
154
|
+
"enum": [
|
|
155
|
+
"stdio"
|
|
156
|
+
],
|
|
135
157
|
"description": "Default transport when omitted."
|
|
136
158
|
},
|
|
137
159
|
"command": {
|
|
@@ -160,7 +182,9 @@
|
|
|
160
182
|
}
|
|
161
183
|
},
|
|
162
184
|
"not": {
|
|
163
|
-
"required": [
|
|
185
|
+
"required": [
|
|
186
|
+
"url"
|
|
187
|
+
]
|
|
164
188
|
}
|
|
165
189
|
}
|
|
166
190
|
]
|
|
@@ -173,11 +197,16 @@
|
|
|
173
197
|
"$ref": "#/$defs/serverBase"
|
|
174
198
|
},
|
|
175
199
|
{
|
|
176
|
-
"required": [
|
|
200
|
+
"required": [
|
|
201
|
+
"type",
|
|
202
|
+
"url"
|
|
203
|
+
],
|
|
177
204
|
"properties": {
|
|
178
205
|
"type": {
|
|
179
206
|
"type": "string",
|
|
180
|
-
"enum": [
|
|
207
|
+
"enum": [
|
|
208
|
+
"http"
|
|
209
|
+
],
|
|
181
210
|
"description": "Streamable HTTP transport."
|
|
182
211
|
},
|
|
183
212
|
"url": {
|
|
@@ -191,7 +220,9 @@
|
|
|
191
220
|
}
|
|
192
221
|
},
|
|
193
222
|
"not": {
|
|
194
|
-
"required": [
|
|
223
|
+
"required": [
|
|
224
|
+
"command"
|
|
225
|
+
]
|
|
195
226
|
}
|
|
196
227
|
}
|
|
197
228
|
]
|
|
@@ -204,11 +235,16 @@
|
|
|
204
235
|
"$ref": "#/$defs/serverBase"
|
|
205
236
|
},
|
|
206
237
|
{
|
|
207
|
-
"required": [
|
|
238
|
+
"required": [
|
|
239
|
+
"type",
|
|
240
|
+
"url"
|
|
241
|
+
],
|
|
208
242
|
"properties": {
|
|
209
243
|
"type": {
|
|
210
244
|
"type": "string",
|
|
211
|
-
"enum": [
|
|
245
|
+
"enum": [
|
|
246
|
+
"sse"
|
|
247
|
+
],
|
|
212
248
|
"description": "Legacy SSE transport kept for compatibility. Prefer http for new configs."
|
|
213
249
|
},
|
|
214
250
|
"url": {
|
|
@@ -222,7 +258,9 @@
|
|
|
222
258
|
}
|
|
223
259
|
},
|
|
224
260
|
"not": {
|
|
225
|
-
"required": [
|
|
261
|
+
"required": [
|
|
262
|
+
"command"
|
|
263
|
+
]
|
|
226
264
|
}
|
|
227
265
|
}
|
|
228
266
|
]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ThinkingLevel } from "@gajae-code/agent-core";
|
|
2
2
|
import type { Api, Model } from "@gajae-code/ai/core";
|
|
3
|
+
import { logger } from "@gajae-code/utils";
|
|
3
4
|
import type { AgentSession, DefaultFallbackRuntimeState } from "../session/agent-session";
|
|
4
5
|
import { clampExplicitThinkingLevelForModel, formatClampedModelSelector } from "../thinking";
|
|
5
6
|
import { validateModelProfileName } from "./model-profile-contract";
|
|
@@ -48,6 +49,8 @@ type ModelProfileActivationSession = Pick<
|
|
|
48
49
|
clearProfileInstalledOverrides?: () => void;
|
|
49
50
|
/** Current profile-installed override keys, for deriving the activation base. */
|
|
50
51
|
getProfileInstalledOverrideKeys?: () => { modelRoles: readonly string[]; agentModelOverrides: readonly string[] };
|
|
52
|
+
/** Re-apply vendor-separated delegation (task tool + prompt) after the role layer changed. */
|
|
53
|
+
syncEagerDelegation?: () => Promise<void>;
|
|
51
54
|
getSessionDefaultModelSelector?: () => string | undefined;
|
|
52
55
|
recordResumeDefaultModel?: (selector: string | undefined) => void;
|
|
53
56
|
seedDefaultFallbackResolution?: (activeIndex: number, skips: Array<{ selector: string; reason: string }>) => void;
|
|
@@ -92,6 +95,7 @@ export interface PrepareModelProfileActivationOptions {
|
|
|
92
95
|
Pick<
|
|
93
96
|
ModelRegistry,
|
|
94
97
|
| "getAvailable"
|
|
98
|
+
| "getAvailableForProfileActivation"
|
|
95
99
|
| "resolveModelByLookupAlias"
|
|
96
100
|
| "lookupAliasExists"
|
|
97
101
|
| "clearCanonicalVariant"
|
|
@@ -572,7 +576,9 @@ function rewriteSelectorForProxy(
|
|
|
572
576
|
const proxyModels = allModels.filter(model => model.provider === proxyProvider);
|
|
573
577
|
if (slash < 0) {
|
|
574
578
|
if (proxyMode === "fallback") return selector;
|
|
575
|
-
const
|
|
579
|
+
const exactMatches = proxyModels.filter(model => model.id === baseSelector);
|
|
580
|
+
const finalSegmentMatches = proxyModels.filter(model => model.id.split("/").at(-1) === baseSelector);
|
|
581
|
+
const matches = exactMatches.length > 0 ? exactMatches : finalSegmentMatches;
|
|
576
582
|
if (matches.length !== 1) {
|
|
577
583
|
throw new Error(
|
|
578
584
|
`Configured proxy "${proxyProvider}" does not expose an unambiguous model for "${baseSelector}"`,
|
|
@@ -950,7 +956,10 @@ export async function prepareModelProfileActivation(
|
|
|
950
956
|
);
|
|
951
957
|
}
|
|
952
958
|
|
|
953
|
-
const availableModels =
|
|
959
|
+
const availableModels =
|
|
960
|
+
options.modelRegistry.getAvailableForProfileActivation?.() ??
|
|
961
|
+
options.modelRegistry.getAvailable?.() ??
|
|
962
|
+
options.modelRegistry.getAll();
|
|
954
963
|
let bindings = resolveProfileBindings(profile);
|
|
955
964
|
if (missingProviders.length > 0 && alternativeGroups.length > 0) {
|
|
956
965
|
bindings = rewriteBindingsProviders(bindings, new Set(authenticatedProviders), alternativeGroups);
|
|
@@ -1296,6 +1305,18 @@ export async function applyPreparedModelProfileActivation(
|
|
|
1296
1305
|
}
|
|
1297
1306
|
throw error;
|
|
1298
1307
|
}
|
|
1308
|
+
// The installed role layer decides whether this profile is vendor-separated,
|
|
1309
|
+
// so delegation must be re-applied to the live session rather than only to
|
|
1310
|
+
// sessions started after activation. Activation itself already succeeded; a
|
|
1311
|
+
// failed refresh must not roll it back.
|
|
1312
|
+
try {
|
|
1313
|
+
await prepared.session.syncEagerDelegation?.();
|
|
1314
|
+
} catch (error) {
|
|
1315
|
+
logger.warn("Failed to sync eager delegation after model profile activation", {
|
|
1316
|
+
profile: prepared.profileName,
|
|
1317
|
+
error: error instanceof Error ? error.message : String(error),
|
|
1318
|
+
});
|
|
1319
|
+
}
|
|
1299
1320
|
}
|
|
1300
1321
|
|
|
1301
1322
|
export interface MaterializeModelProfileForDeletionResult {
|
|
@@ -106,6 +106,13 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
106
106
|
critic: "opencode-go/mimo-v2.5-pro",
|
|
107
107
|
architect: "opencode-go/deepseek-v4-pro",
|
|
108
108
|
}),
|
|
109
|
+
profile("commandcode-goat", ["commandcode-goat"], {
|
|
110
|
+
default: "commandcode-goat/zai-org/GLM-5.3",
|
|
111
|
+
executor: "commandcode-goat/deepseek/deepseek-v4-flash",
|
|
112
|
+
planner: "commandcode-goat/moonshotai/Kimi-K3",
|
|
113
|
+
critic: "commandcode-goat/zai-org/GLM-5.2",
|
|
114
|
+
architect: "commandcode-goat/deepseek/deepseek-v4-pro",
|
|
115
|
+
}),
|
|
109
116
|
profile("open-weights-glm", [], {
|
|
110
117
|
default: "glm-5.2:medium",
|
|
111
118
|
executor: "glm-5.2:low",
|
|
@@ -134,6 +141,27 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
134
141
|
critic: "gpt-5.6-luna:xhigh",
|
|
135
142
|
architect: "gpt-5.6-luna:xhigh",
|
|
136
143
|
}),
|
|
144
|
+
profile("open-weights-spark", [], {
|
|
145
|
+
default: "muse-spark-1.2:medium",
|
|
146
|
+
executor: "muse-spark-1.2:low",
|
|
147
|
+
planner: "muse-spark-1.2:high",
|
|
148
|
+
critic: "muse-spark-1.2:high",
|
|
149
|
+
architect: "muse-spark-1.2:xhigh",
|
|
150
|
+
}),
|
|
151
|
+
profile("open-weights-spark-deepseek", [], {
|
|
152
|
+
default: "muse-spark-1.2:medium",
|
|
153
|
+
executor: "deepseek-v4-flash:high",
|
|
154
|
+
planner: "muse-spark-1.2:high",
|
|
155
|
+
critic: "muse-spark-1.2:high",
|
|
156
|
+
architect: "muse-spark-1.2:xhigh",
|
|
157
|
+
}),
|
|
158
|
+
profile("open-weights-spark-luna", [], {
|
|
159
|
+
default: "muse-spark-1.2:medium",
|
|
160
|
+
executor: "gpt-5.6-luna:high",
|
|
161
|
+
planner: "muse-spark-1.2:high",
|
|
162
|
+
critic: "muse-spark-1.2:high",
|
|
163
|
+
architect: "muse-spark-1.2:xhigh",
|
|
164
|
+
}),
|
|
137
165
|
profile("open-weights-glm-deepseek", [], {
|
|
138
166
|
default: "glm-5.2:medium",
|
|
139
167
|
executor: "deepseek-v4-flash:high",
|
|
@@ -170,11 +198,11 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
170
198
|
architect: "gpt-5.6-luna:xhigh",
|
|
171
199
|
}),
|
|
172
200
|
profile("claude-opus", ["anthropic"], {
|
|
173
|
-
default: "anthropic/claude-opus-5:xhigh",
|
|
201
|
+
default: ["anthropic/claude-opus-5:xhigh", "anthropic/claude-opus-4-6:xhigh"],
|
|
174
202
|
executor: "anthropic/claude-sonnet-5",
|
|
175
|
-
planner: "anthropic/claude-opus-5:low",
|
|
176
|
-
critic: "anthropic/claude-opus-5:high",
|
|
177
|
-
architect: "anthropic/claude-opus-5:xhigh",
|
|
203
|
+
planner: ["anthropic/claude-opus-5:low", "anthropic/claude-opus-4-6:low"],
|
|
204
|
+
critic: ["anthropic/claude-opus-5:high", "anthropic/claude-opus-4-6:high"],
|
|
205
|
+
architect: ["anthropic/claude-opus-5:xhigh", "anthropic/claude-opus-4-6:xhigh"],
|
|
178
206
|
}),
|
|
179
207
|
profile("claude-fable", ["anthropic"], {
|
|
180
208
|
default: "anthropic/claude-fable-5:xhigh",
|
|
@@ -184,25 +212,25 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
184
212
|
architect: "anthropic/claude-fable-5:xhigh",
|
|
185
213
|
}),
|
|
186
214
|
profile("glm-eco", ["zai"], {
|
|
187
|
-
default: "zai/glm-5.
|
|
188
|
-
executor: "zai/glm-5.
|
|
189
|
-
planner: "zai/glm-5.
|
|
190
|
-
critic: "zai/glm-5.
|
|
191
|
-
architect: "zai/glm-5.
|
|
215
|
+
default: "zai/glm-5.3:low",
|
|
216
|
+
executor: "zai/glm-5.3:low",
|
|
217
|
+
planner: "zai/glm-5.3:low",
|
|
218
|
+
critic: "zai/glm-5.3:high",
|
|
219
|
+
architect: "zai/glm-5.3:high",
|
|
192
220
|
}),
|
|
193
221
|
profile("glm-medium", ["zai"], {
|
|
194
|
-
default: "zai/glm-5.
|
|
195
|
-
executor: "zai/glm-5.
|
|
196
|
-
planner: "zai/glm-5.
|
|
197
|
-
critic: "zai/glm-5.
|
|
198
|
-
architect: "zai/glm-5.
|
|
222
|
+
default: "zai/glm-5.3:high",
|
|
223
|
+
executor: "zai/glm-5.3:low",
|
|
224
|
+
planner: "zai/glm-5.3:high",
|
|
225
|
+
critic: "zai/glm-5.3:high",
|
|
226
|
+
architect: "zai/glm-5.3:max",
|
|
199
227
|
}),
|
|
200
228
|
profile("glm-pro", ["zai"], {
|
|
201
|
-
default: "zai/glm-5.
|
|
202
|
-
executor: "zai/glm-5.
|
|
203
|
-
planner: "zai/glm-5.
|
|
204
|
-
critic: "zai/glm-5.
|
|
205
|
-
architect: "zai/glm-5.
|
|
229
|
+
default: "zai/glm-5.3:max",
|
|
230
|
+
executor: "zai/glm-5.3:high",
|
|
231
|
+
planner: "zai/glm-5.3:high",
|
|
232
|
+
critic: "zai/glm-5.3:max",
|
|
233
|
+
architect: "zai/glm-5.3:max",
|
|
206
234
|
}),
|
|
207
235
|
profile("kimi-coding-plan-eco", ["kimi-code"], {
|
|
208
236
|
default: "kimi-code/k3:low",
|
|
@@ -279,7 +307,7 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
279
307
|
}),
|
|
280
308
|
profile("grok-45-eco", ["xai"], {
|
|
281
309
|
default: "xai/grok-4.5:low",
|
|
282
|
-
executor: "xai/grok-4.5:
|
|
310
|
+
executor: "xai/grok-4.5:low",
|
|
283
311
|
planner: "xai/grok-4.5:low",
|
|
284
312
|
critic: "xai/grok-4.5:medium",
|
|
285
313
|
architect: "xai/grok-4.5:high",
|
|
@@ -298,6 +326,27 @@ export const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[] = [
|
|
|
298
326
|
critic: "xai/grok-4.5:high",
|
|
299
327
|
architect: "xai/grok-4.5:high",
|
|
300
328
|
}),
|
|
329
|
+
profile("grok-46-eco", ["xai"], {
|
|
330
|
+
default: "xai/grok-4.6:low",
|
|
331
|
+
executor: "xai/grok-4.6:low",
|
|
332
|
+
planner: "xai/grok-4.6:low",
|
|
333
|
+
critic: "xai/grok-4.6:medium",
|
|
334
|
+
architect: "xai/grok-4.6:high",
|
|
335
|
+
}),
|
|
336
|
+
profile("grok-46-medium", ["xai"], {
|
|
337
|
+
default: "xai/grok-4.6:medium",
|
|
338
|
+
executor: "xai/grok-4.6:low",
|
|
339
|
+
planner: "xai/grok-4.6:medium",
|
|
340
|
+
critic: "xai/grok-4.6:high",
|
|
341
|
+
architect: "xai/grok-4.6:high",
|
|
342
|
+
}),
|
|
343
|
+
profile("grok-46-pro", ["xai"], {
|
|
344
|
+
default: "xai/grok-4.6:xhigh",
|
|
345
|
+
executor: "xai/grok-4.6:medium",
|
|
346
|
+
planner: "xai/grok-4.6:high",
|
|
347
|
+
critic: "xai/grok-4.6:xhigh",
|
|
348
|
+
architect: "xai/grok-4.6:xhigh",
|
|
349
|
+
}),
|
|
301
350
|
profile("grok-build-pro", ["grok-build"], {
|
|
302
351
|
default: "grok-build/grok-composer-2.5-fast",
|
|
303
352
|
executor: "grok-build/grok-build",
|
|
@@ -437,6 +486,7 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
|
|
|
437
486
|
"codex-pro": { displayName: "Codex Pro", providerGroup: "CODEX" },
|
|
438
487
|
lunamaxxing: { displayName: "LunaMaxxing", providerGroup: "CODEX" },
|
|
439
488
|
opencodego: { displayName: "OpenCodeGo", providerGroup: "OPENCODEGO" },
|
|
489
|
+
"commandcode-goat": { displayName: "Command Code GOAT", providerGroup: "COMMAND CODE GOAT" },
|
|
440
490
|
"open-weights-glm": { displayName: "GLM", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
|
|
441
491
|
"open-weights-deepseek": {
|
|
442
492
|
displayName: "DeepSeek",
|
|
@@ -444,6 +494,15 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
|
|
|
444
494
|
},
|
|
445
495
|
"open-weights-kimi": { displayName: "Kimi", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
|
|
446
496
|
"open-weights-luna": { displayName: "Luna", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
|
|
497
|
+
"open-weights-spark": { displayName: "Muse Spark", providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)" },
|
|
498
|
+
"open-weights-spark-deepseek": {
|
|
499
|
+
displayName: "Muse Spark + DeepSeek",
|
|
500
|
+
providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
|
|
501
|
+
},
|
|
502
|
+
"open-weights-spark-luna": {
|
|
503
|
+
displayName: "Muse Spark + Luna",
|
|
504
|
+
providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
|
|
505
|
+
},
|
|
447
506
|
"open-weights-glm-deepseek": {
|
|
448
507
|
displayName: "GLM + DeepSeek",
|
|
449
508
|
providerGroup: "OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
|
|
@@ -481,6 +540,9 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
|
|
|
481
540
|
"grok-45-eco": { displayName: "Grok 4.5 Eco", providerGroup: "GROK" },
|
|
482
541
|
"grok-45-medium": { displayName: "Grok 4.5 Medium", providerGroup: "GROK" },
|
|
483
542
|
"grok-45-pro": { displayName: "Grok 4.5 Pro", providerGroup: "GROK" },
|
|
543
|
+
"grok-46-eco": { displayName: "Grok 4.6 Eco", providerGroup: "GROK" },
|
|
544
|
+
"grok-46-medium": { displayName: "Grok 4.6 Medium", providerGroup: "GROK" },
|
|
545
|
+
"grok-46-pro": { displayName: "Grok 4.6 Pro", providerGroup: "GROK" },
|
|
484
546
|
"grok-build-pro": { displayName: "Grok Build Pro", providerGroup: "GROK" },
|
|
485
547
|
"cursor-eco": { displayName: "Cursor Eco", providerGroup: "CURSOR" },
|
|
486
548
|
"cursor-medium": { displayName: "Cursor Medium", providerGroup: "CURSOR" },
|
|
@@ -501,6 +563,7 @@ const PROFILE_PRESENTATION: Record<string, ModelProfilePresentation> = {
|
|
|
501
563
|
const PROFILE_GROUP_ORDER = [
|
|
502
564
|
"CODEX",
|
|
503
565
|
"OPENCODEGO",
|
|
566
|
+
"COMMAND CODE GOAT",
|
|
504
567
|
"OPEN WEIGHT MODELS (PROVIDER AGNOSTIC)",
|
|
505
568
|
"CLAUDE",
|
|
506
569
|
"GLM",
|
|
@@ -518,6 +581,9 @@ const OPEN_WEIGHT_PROFILE_ORDER = [
|
|
|
518
581
|
"open-weights-deepseek",
|
|
519
582
|
"open-weights-kimi",
|
|
520
583
|
"open-weights-luna",
|
|
584
|
+
"open-weights-spark",
|
|
585
|
+
"open-weights-spark-deepseek",
|
|
586
|
+
"open-weights-spark-luna",
|
|
521
587
|
"open-weights-glm-deepseek",
|
|
522
588
|
"open-weights-kimi-deepseek",
|
|
523
589
|
"open-weights-kimi-glm",
|
|
@@ -530,13 +596,14 @@ const PROFILE_RECOMMENDATIONS: Record<string, string> = {
|
|
|
530
596
|
"openai-codex": "codex-medium",
|
|
531
597
|
anthropic: "claude-opus",
|
|
532
598
|
"opencode-go": "opencodego",
|
|
599
|
+
"commandcode-goat": "commandcode-goat",
|
|
533
600
|
zai: "glm-medium",
|
|
534
601
|
"kimi-code": "kimi-coding-plan-medium",
|
|
535
602
|
xiaomi: "mimo-medium",
|
|
536
603
|
"xiaomi-token-plan-sgp": "mimo-medium",
|
|
537
604
|
"xiaomi-token-plan-ams": "mimo-medium",
|
|
538
605
|
"xiaomi-token-plan-cn": "mimo-medium",
|
|
539
|
-
xai: "grok-medium",
|
|
606
|
+
xai: "grok-46-medium",
|
|
540
607
|
"grok-build": "grok-build-pro",
|
|
541
608
|
cursor: "cursor-medium",
|
|
542
609
|
"minimax-code": "minimax-medium",
|