@gajae-code/coding-agent 0.13.3 → 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 +184 -2
- 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 +9 -1
- package/dist/types/config/models-config-schema.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +70 -6
- 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 +1 -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/gajae-pet-widget.d.ts +8 -30
- 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 +11 -25
- 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/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 +40 -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 +9 -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 +20 -1
- package/src/config/model-profiles.ts +29 -19
- package/src/config/model-registry.ts +132 -21
- package/src/config/models-config-schema.ts +1 -1
- package/src/config/settings-schema.ts +76 -6
- 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/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 +40 -32
- package/src/main.ts +32 -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/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/gajae-pet-widget.ts +539 -213
- package/src/modes/components/irc-sidebar.ts +11 -0
- package/src/modes/components/iterm-pet-transport.ts +585 -0
- package/src/modes/components/oauth-selector.ts +277 -86
- package/src/modes/components/pet-capability.ts +39 -40
- package/src/modes/components/settings-selector.ts +9 -0
- package/src/modes/components/status-line/gh.ts +45 -1
- package/src/modes/components/status-line/segments.ts +16 -1
- 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 +177 -72
- 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/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 +2857 -582
- 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 +173 -12
- package/src/session/messages.ts +1 -1
- package/src/session/secure-token-file.ts +80 -0
- package/src/session/session-manager.ts +730 -58
- 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 +98 -16
- 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 +27 -16
- 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/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,87 @@
|
|
|
1
|
+
import { type CrashEvent } from "@gajae-code/utils";
|
|
2
|
+
export declare const CRASH_INDEX_VERSION = 1;
|
|
3
|
+
/** Per-entry message preview cap. */
|
|
4
|
+
export declare const CRASH_INDEX_MESSAGE_MAX_BYTES = 512;
|
|
5
|
+
/** Per-entry serialized cap. */
|
|
6
|
+
export declare const CRASH_INDEX_ENTRY_MAX_BYTES = 1024;
|
|
7
|
+
/** Whole-index serialized cap. */
|
|
8
|
+
export declare const CRASH_INDEX_MAX_BYTES: number;
|
|
9
|
+
/** Entry-count cap; with the per-entry cap this keeps the file under the byte cap. */
|
|
10
|
+
export declare const CRASH_INDEX_MAX_SIGNATURES = 128;
|
|
11
|
+
/** How many `.corrupt-*` siblings are kept before the oldest are deleted. */
|
|
12
|
+
export declare const CRASH_INDEX_MAX_QUARANTINE = 3;
|
|
13
|
+
export interface CrashSignatureEntry {
|
|
14
|
+
fpv: number;
|
|
15
|
+
errorName: string;
|
|
16
|
+
messageClass: string;
|
|
17
|
+
/** Occurrences ever journaled for this signature. Never decreases. */
|
|
18
|
+
lifetimeCount: number;
|
|
19
|
+
/** Occurrences whose record is still present in the current crash log. */
|
|
20
|
+
retainedCount: number;
|
|
21
|
+
firstSeen: number;
|
|
22
|
+
lastSeen: number;
|
|
23
|
+
lastRecordId: string;
|
|
24
|
+
reportedAt?: number;
|
|
25
|
+
reportedIssueUrl?: string;
|
|
26
|
+
acknowledgedAt?: number;
|
|
27
|
+
/** Issues this install already "+1"ed, so re-invocations cannot spam comments. */
|
|
28
|
+
commentedIssues?: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface CrashIndex {
|
|
31
|
+
version: number;
|
|
32
|
+
updatedAt: number;
|
|
33
|
+
/** Epoch ms of the last startup nudge, or 0. */
|
|
34
|
+
lastNudgedAt: number;
|
|
35
|
+
/** True when a new signature could not be stored because nothing was evictable. */
|
|
36
|
+
overflow: boolean;
|
|
37
|
+
recentEventIds: string[];
|
|
38
|
+
recentJournalDigests: string[];
|
|
39
|
+
/** Log-recovered occurrence ids awaiting a possibly delayed journal event. */
|
|
40
|
+
recoveredRecordIds: string[];
|
|
41
|
+
/** Reported or acknowledged signatures evicted from the index; never recovered from the log. */
|
|
42
|
+
retiredFingerprints: string[];
|
|
43
|
+
signatures: Record<string, CrashSignatureEntry>;
|
|
44
|
+
}
|
|
45
|
+
export interface CrashStatePaths {
|
|
46
|
+
index: string;
|
|
47
|
+
events: string;
|
|
48
|
+
crashLog: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function resolveCrashStatePaths(agentDir?: string): CrashStatePaths;
|
|
51
|
+
export declare function emptyCrashIndex(): CrashIndex;
|
|
52
|
+
/**
|
|
53
|
+
* Strict index parse. Any deviation — unknown key, wrong alphabet, control
|
|
54
|
+
* character, out-of-range timestamp, count overflow — rejects the whole file so
|
|
55
|
+
* it is quarantined and rebuilt from the journal rather than trusted.
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseCrashIndex(raw: string, now?: number): CrashIndex | undefined;
|
|
58
|
+
/** Apply one journal event to the in-memory index. Returns whether it changed anything. */
|
|
59
|
+
export declare function applyCrashEvent(index: CrashIndex, event: CrashEvent, now: number): boolean;
|
|
60
|
+
export interface CompactCrashIndexOptions {
|
|
61
|
+
paths?: CrashStatePaths;
|
|
62
|
+
now?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Merge journal events into the index under the cross-process file lock.
|
|
66
|
+
*
|
|
67
|
+
* Bounded and idempotent: the journal is rotated aside before it is read (so a
|
|
68
|
+
* concurrent fatal append lands in a fresh file rather than being lost to a
|
|
69
|
+
* truncate), occurrence ids are deduped, and a crashed compaction's leftover
|
|
70
|
+
* file is picked up by the next run.
|
|
71
|
+
*/
|
|
72
|
+
export declare function compactCrashIndex(options?: CompactCrashIndexOptions): Promise<CrashIndex>;
|
|
73
|
+
/** Read the index without compacting. Missing or invalid files read as empty. */
|
|
74
|
+
export declare function readCrashIndex(paths?: CrashStatePaths): Promise<CrashIndex>;
|
|
75
|
+
/**
|
|
76
|
+
* Record a state change through the journal, then compact.
|
|
77
|
+
*
|
|
78
|
+
* Writing through the journal (rather than editing the index directly) is what
|
|
79
|
+
* makes concurrent writers safe: two processes stamping `reportedAt` at the
|
|
80
|
+
* same moment both land an event, and the compactor merges them.
|
|
81
|
+
*/
|
|
82
|
+
export declare function recordCrashStateEvent(event: CrashEvent, options?: CompactCrashIndexOptions): Promise<CrashIndex>;
|
|
83
|
+
export interface CrashSignatureView extends CrashSignatureEntry {
|
|
84
|
+
fingerprint: string;
|
|
85
|
+
}
|
|
86
|
+
/** Signatures newest-first, which is the order both the CLI and the nudge use. */
|
|
87
|
+
export declare function listCrashSignatures(index: CrashIndex): CrashSignatureView[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup crash nudge.
|
|
3
|
+
*
|
|
4
|
+
* One rate-limited status line saying unreported crash signatures exist.
|
|
5
|
+
* **Nothing is ever transmitted by this piece** — it reads local state only and
|
|
6
|
+
* points at `gjc crash report`, which has its own consent flow.
|
|
7
|
+
*
|
|
8
|
+
* Honest default statement: this is on by default and it *does* change startup
|
|
9
|
+
* output by design (one bounded line, at most once per 24h per agent dir).
|
|
10
|
+
* `crashReport.nudge: false` disables it.
|
|
11
|
+
*/
|
|
12
|
+
import { type CrashIndex, type CrashStatePaths } from "./index-store";
|
|
13
|
+
export declare const CRASH_NUDGE_INTERVAL_MS: number;
|
|
14
|
+
export interface CrashNudgeGateInput {
|
|
15
|
+
/** The `crashReport.nudge` setting. */
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
/** True only for a real interactive TUI launch. */
|
|
18
|
+
interactive: boolean;
|
|
19
|
+
/** The `startup.quiet` setting. */
|
|
20
|
+
quiet: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Pure gate for the launch wiring. Print mode, SDK/ACP hosts, workers, daemons
|
|
24
|
+
* and `--version`/`--help` never reach interactive launch, so gating on the
|
|
25
|
+
* interactive surface is what suppresses them.
|
|
26
|
+
*/
|
|
27
|
+
export declare function crashNudgeGate(input: CrashNudgeGateInput): boolean;
|
|
28
|
+
export interface CrashNudgeDecision {
|
|
29
|
+
show: boolean;
|
|
30
|
+
message?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Decide whether to nudge from the compacted index alone.
|
|
34
|
+
*
|
|
35
|
+
* Fires when an unreported, unacknowledged signature gained records since
|
|
36
|
+
* `lastNudgedAt`, at most once per 24h. Acknowledgement is explicit (the
|
|
37
|
+
* dismiss action in `gjc crash report`); an ignored line never counts as one.
|
|
38
|
+
*/
|
|
39
|
+
export declare function decideCrashNudge(index: CrashIndex, now: number): CrashNudgeDecision;
|
|
40
|
+
export interface CrashNudgeDeps {
|
|
41
|
+
paths: CrashStatePaths;
|
|
42
|
+
index: CrashIndex;
|
|
43
|
+
now?: () => Date;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Emit the nudge through the caller's status surface and persist the rate-limit
|
|
47
|
+
* stamp through the journal, so a rebuilt index cannot reset it within the
|
|
48
|
+
* journal window. Never throws.
|
|
49
|
+
*/
|
|
50
|
+
export declare function maybeShowCrashNudge(showStatus: (message: string) => void, deps: CrashNudgeDeps): Promise<boolean>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface LoadedCrashRecord {
|
|
2
|
+
readonly fingerprint: string;
|
|
3
|
+
readonly fpv: number;
|
|
4
|
+
readonly recordId: string;
|
|
5
|
+
readonly at: number;
|
|
6
|
+
readonly errorName: string;
|
|
7
|
+
readonly messageClass: string;
|
|
8
|
+
/** Record body without the header line and without the identity line. */
|
|
9
|
+
readonly body: string;
|
|
10
|
+
/** The `Name: message` part of the header line. */
|
|
11
|
+
readonly headline: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseCrashRecords(contents: string): LoadedCrashRecord[];
|
|
14
|
+
/** Complete v1 records whose marker fingerprint is recomputed from their diagnostic text. */
|
|
15
|
+
export declare function parseRecoverableCrashRecords(contents: string): LoadedCrashRecord[];
|
|
16
|
+
/** Newest identity-bearing record for a fingerprint, or `undefined` when unmatchable. */
|
|
17
|
+
export declare function findLatestRecord(contents: string, fingerprint: string): LoadedCrashRecord | undefined;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { RunGh } from "../utils/gh";
|
|
2
|
+
import { type CrashSignatureView, type CrashStatePaths } from "./index-store";
|
|
3
|
+
import { type LoadedCrashRecord } from "./record-loader";
|
|
4
|
+
import { type SanitizeVerdict } from "./sanitize";
|
|
5
|
+
/** The one repository this command may ever target. */
|
|
6
|
+
export declare const CRASH_REPORT_REPO = "Yeachan-Heo/gajae-code";
|
|
7
|
+
export declare const CRASH_REPORT_ISSUE_PREFIX = "https://github.com/Yeachan-Heo/gajae-code/issues/";
|
|
8
|
+
export interface CrashReportEnvironment {
|
|
9
|
+
platform: string;
|
|
10
|
+
gjcVersion: string;
|
|
11
|
+
bunVersion: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CrashReportAnswers {
|
|
14
|
+
steps: string;
|
|
15
|
+
expected: string;
|
|
16
|
+
provider: string;
|
|
17
|
+
area: string;
|
|
18
|
+
additional: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function defaultCrashReportEnvironment(): CrashReportEnvironment;
|
|
21
|
+
/** Generic title built from normalized inputs only — never from raw crash text. */
|
|
22
|
+
export declare function buildCrashReportTitle(signature: CrashSignatureView, record: LoadedCrashRecord): string;
|
|
23
|
+
export interface BuildCrashReportBodyInput {
|
|
24
|
+
signature: CrashSignatureView;
|
|
25
|
+
record: LoadedCrashRecord;
|
|
26
|
+
answers: CrashReportAnswers;
|
|
27
|
+
environment: CrashReportEnvironment;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Render the full issue body. Every `bug_report.yml` required field is present:
|
|
31
|
+
* crash-derived fields prefilled, non-derivable fields carried through from the
|
|
32
|
+
* interactive answers (or an explicit "not captured" prompt).
|
|
33
|
+
*
|
|
34
|
+
* All crash-derived text lives inside fenced blocks with backticks neutralized
|
|
35
|
+
* and `@` de-fanged; the machine marker is emitted outside those blocks so a
|
|
36
|
+
* forged marker inside crash text cannot impersonate one.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildCrashReportBody(input: BuildCrashReportBodyInput): SanitizeVerdict;
|
|
39
|
+
export interface CrashReportSnapshot {
|
|
40
|
+
path: string;
|
|
41
|
+
digest: string;
|
|
42
|
+
byteLength: number;
|
|
43
|
+
title: string;
|
|
44
|
+
body: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Freeze the exact bytes that may be submitted into a 0600 file.
|
|
48
|
+
*
|
|
49
|
+
* `wx` refuses to follow or clobber an existing path, so a planted symlink
|
|
50
|
+
* cannot redirect the snapshot, and the digest shown to the user is verified
|
|
51
|
+
* again immediately before submission.
|
|
52
|
+
*/
|
|
53
|
+
export declare function writeCrashReportSnapshot(dir: string, title: string, body: string): Promise<CrashReportSnapshot>;
|
|
54
|
+
/**
|
|
55
|
+
* Prefilled issue URL for installs without `gh`.
|
|
56
|
+
*
|
|
57
|
+
* Built with `URL`/`URLSearchParams` against a fixed allowlisted origin and
|
|
58
|
+
* carrying only bounded-grammar fields — never message or stack content. Never
|
|
59
|
+
* auto-opened.
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildPrefillUrl(title: string, fingerprint: string, version: string): string | undefined;
|
|
62
|
+
export interface DuplicateCandidate {
|
|
63
|
+
url: string;
|
|
64
|
+
title: string;
|
|
65
|
+
author: string;
|
|
66
|
+
}
|
|
67
|
+
export type DuplicateCheck = {
|
|
68
|
+
status: "none";
|
|
69
|
+
} | {
|
|
70
|
+
status: "candidate";
|
|
71
|
+
candidate: DuplicateCandidate;
|
|
72
|
+
} | {
|
|
73
|
+
status: "uncertain";
|
|
74
|
+
reason: string;
|
|
75
|
+
};
|
|
76
|
+
/** Validate that a `gh`-returned URL really points at the canonical repository. */
|
|
77
|
+
export declare function isCanonicalIssueUrl(value: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Read-only duplicate search, always `--repo` pinned. Any timeout, auth failure
|
|
80
|
+
* or unparseable result is `uncertain`, which refuses creation unless the user
|
|
81
|
+
* explicitly overrides.
|
|
82
|
+
*/
|
|
83
|
+
export declare function checkForDuplicateIssue(runGh: RunGh, fingerprint: string): Promise<DuplicateCheck>;
|
|
84
|
+
export interface CrashReportIo {
|
|
85
|
+
print(text: string): void;
|
|
86
|
+
/** Returns the chosen index, or undefined when cancelled. */
|
|
87
|
+
select(prompt: string, options: string[]): Promise<number | undefined>;
|
|
88
|
+
input(prompt: string): Promise<string>;
|
|
89
|
+
confirm(prompt: string): Promise<boolean>;
|
|
90
|
+
}
|
|
91
|
+
export interface CrashReportDeps {
|
|
92
|
+
io: CrashReportIo;
|
|
93
|
+
paths: CrashStatePaths;
|
|
94
|
+
snapshotDir: string;
|
|
95
|
+
runGh: RunGh;
|
|
96
|
+
interactive: boolean;
|
|
97
|
+
environment?: CrashReportEnvironment;
|
|
98
|
+
now?: () => Date;
|
|
99
|
+
}
|
|
100
|
+
export type CrashReportOutcome = {
|
|
101
|
+
status: "no-signatures";
|
|
102
|
+
} | {
|
|
103
|
+
status: "non-interactive";
|
|
104
|
+
snapshotPath?: string;
|
|
105
|
+
} | {
|
|
106
|
+
status: "cancelled";
|
|
107
|
+
} | {
|
|
108
|
+
status: "acknowledged";
|
|
109
|
+
fingerprint: string;
|
|
110
|
+
} | {
|
|
111
|
+
status: "refused";
|
|
112
|
+
reason: string;
|
|
113
|
+
} | {
|
|
114
|
+
status: "unmatchable";
|
|
115
|
+
fingerprint: string;
|
|
116
|
+
} | {
|
|
117
|
+
status: "manual";
|
|
118
|
+
snapshotPath: string;
|
|
119
|
+
prefillUrl?: string;
|
|
120
|
+
} | {
|
|
121
|
+
status: "duplicate";
|
|
122
|
+
url: string;
|
|
123
|
+
} | {
|
|
124
|
+
status: "commented";
|
|
125
|
+
url: string;
|
|
126
|
+
} | {
|
|
127
|
+
status: "created";
|
|
128
|
+
url: string;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* The whole flow. Steps 1–4 are strictly local; `deps.runGh` is first reachable
|
|
132
|
+
* at step 5, after the digest-confirmed consent gate.
|
|
133
|
+
*/
|
|
134
|
+
export declare function runCrashReportFlow(deps: CrashReportDeps): Promise<CrashReportOutcome>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Whole-body cap for a generated issue body. */
|
|
2
|
+
export declare const CRASH_BODY_MAX_BYTES: number;
|
|
3
|
+
/** Per-field cap for crash-derived text. */
|
|
4
|
+
export declare const CRASH_FIELD_MAX_BYTES: number;
|
|
5
|
+
export type SanitizeVerdict = {
|
|
6
|
+
ok: true;
|
|
7
|
+
value: string;
|
|
8
|
+
} | {
|
|
9
|
+
ok: false;
|
|
10
|
+
reason: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Sanitize one crash-derived field. Returns a verdict: `ok:false` means the
|
|
14
|
+
* residual scanner still found something it cannot vouch for, and the caller
|
|
15
|
+
* must refuse to submit.
|
|
16
|
+
*/
|
|
17
|
+
export declare function sanitizeExternalCrashV1(text: string, maxBytes?: number): SanitizeVerdict;
|
|
18
|
+
/**
|
|
19
|
+
* Wrap already-sanitized crash-derived text for a fenced Markdown block:
|
|
20
|
+
* backticks are neutralized so the fence cannot be escaped, and `@` is de-fanged
|
|
21
|
+
* so a crash message can never notify a GitHub user or team.
|
|
22
|
+
*/
|
|
23
|
+
export declare function fenceCrashText(value: string): string;
|
|
24
|
+
/** Sanitize a label (field name / heading) with the same rules as a value. */
|
|
25
|
+
export declare function sanitizeLabel(label: string): SanitizeVerdict;
|
package/dist/types/cursor.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgentEvent, type AgentTool, type AgentToolContext } from "@gajae-code/agent-core";
|
|
2
2
|
import type { CursorMcpCall, CursorShellStreamCallbacks, CursorExecHandlers as ICursorExecHandlers, ToolResultMessage } from "@gajae-code/ai/core";
|
|
3
|
+
/**
|
|
4
|
+
* Emitter for events this bridge produces.
|
|
5
|
+
*
|
|
6
|
+
* `dispatchedTool` is the tool object the bridge SELECTED and is about to execute — passed
|
|
7
|
+
* alongside the event, never inside it, so the object never reaches an AgentEvent field, a
|
|
8
|
+
* serialized payload, or any wire envelope. The handler binds it as provenance (object
|
|
9
|
+
* identity only) at this producer boundary, because it is the only place that knows which
|
|
10
|
+
* object actually ran: a consumer re-resolving `toolName` later reads a mutable registry.
|
|
11
|
+
* Synthetic operations that execute no AgentTool pass nothing and stay unbound.
|
|
12
|
+
*/
|
|
13
|
+
type CursorExecEventEmitter = (event: AgentEvent, dispatchedTool?: AgentTool) => void;
|
|
3
14
|
interface CursorExecBridgeOptions {
|
|
4
15
|
cwd: string;
|
|
5
16
|
tools: Map<string, AgentTool>;
|
|
6
17
|
getToolContext?: () => AgentToolContext | undefined;
|
|
7
|
-
emitEvent?:
|
|
18
|
+
emitEvent?: CursorExecEventEmitter;
|
|
8
19
|
createEventEmitter?: () => ((event: AgentEvent) => void) | undefined;
|
|
9
20
|
}
|
|
10
21
|
export declare class CursorExecHandlers implements ICursorExecHandlers {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ImportCollisionPolicy, ImportPlan, ImportProduct, ImportResult, ImportSourceScope } from "./types";
|
|
2
|
+
export interface BuildImportPreviewOptions {
|
|
3
|
+
product: ImportProduct;
|
|
4
|
+
sourceScope: ImportSourceScope;
|
|
5
|
+
destinationScope: "project" | "global";
|
|
6
|
+
surfaces?: readonly ("skills" | "hooks" | "mcps")[];
|
|
7
|
+
collisionPolicy: ImportCollisionPolicy;
|
|
8
|
+
cwd: string;
|
|
9
|
+
homeDir: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Read the selected source product/scope, normalize every candidate through
|
|
13
|
+
* the sibling contracts, and produce a redacted preview plus an opaque apply
|
|
14
|
+
* plan. Pure reads only — nothing is written until `applyImport`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildImportPreview(options: BuildImportPreviewOptions): Promise<ImportPlan>;
|
|
17
|
+
/**
|
|
18
|
+
* Apply a confirmed plan. The transaction contract:
|
|
19
|
+
*
|
|
20
|
+
* 1. Pre-validation — every destination path is derived from validated plan
|
|
21
|
+
* identities (never raw payload names), containment-checked beneath the
|
|
22
|
+
* canonical scope directories, and walked for symlinked ancestors; the
|
|
23
|
+
* destination MCP config shape is validated; add/rename destinations are
|
|
24
|
+
* revalidated against the preview decision (stale previews fail closed).
|
|
25
|
+
* Any problem aborts the whole apply before a single write.
|
|
26
|
+
* 2. Publication — each skill/hook file is written to a same-directory temp
|
|
27
|
+
* file (0600) and atomically renamed into place; MCP entries merge into one
|
|
28
|
+
* in-memory config written once via the canonical atomic writer. Only
|
|
29
|
+
* files this transaction actually publishes enter the rollback journal.
|
|
30
|
+
* 3. Verification — persisted state is re-read inside the transaction; a
|
|
31
|
+
* verification mismatch rolls back exactly like a write failure.
|
|
32
|
+
* 4. Rollback — restores journal snapshots (or removes created files) and
|
|
33
|
+
* reports every restore failure honestly instead of claiming success.
|
|
34
|
+
*/
|
|
35
|
+
export declare function applyImport(plan: ImportPlan, options: {
|
|
36
|
+
cwd: string;
|
|
37
|
+
}): Promise<ImportResult>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type SkillManagementPolicy } from "../extensibility/skill-management";
|
|
2
|
+
import type { CustomizationSurface, GjcScope, InventoryRow } from "./types";
|
|
3
|
+
/** Frontmatter key written by the import flow to record provenance. */
|
|
4
|
+
export declare const IMPORTED_FROM_FRONTMATTER_KEY = "x-gjc-imported-from";
|
|
5
|
+
export interface LoadCustomizationInventoryOptions {
|
|
6
|
+
cwd: string;
|
|
7
|
+
/** Runtime home override (tests); defaults to the process home. */
|
|
8
|
+
home?: string;
|
|
9
|
+
/** Skill management policy snapshot (trust, include/ignore, disabledExtensions). */
|
|
10
|
+
policy?: SkillManagementPolicy;
|
|
11
|
+
/** Disabled extension ids (`skill:<name>` / `mcp:<name>`) from settings. */
|
|
12
|
+
disabledExtensions?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface CustomizationInventory {
|
|
15
|
+
rows: InventoryRow[];
|
|
16
|
+
warnings: string[];
|
|
17
|
+
}
|
|
18
|
+
/** Stable row identity used for selection and mutations. */
|
|
19
|
+
export declare function inventoryRowId(surface: CustomizationSurface, scope: GjcScope, rowPath: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Load the full Skills/Hooks/MCPs inventory for the `/extensions` dashboard.
|
|
22
|
+
* Reads only the canonical `.gjc` scopes; foreign Claude/Codex layouts are
|
|
23
|
+
* import sources handled by the explicit import flow, never managed entries.
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadCustomizationInventory(options: LoadCustomizationInventoryOptions): Promise<CustomizationInventory>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type MutationResult = {
|
|
2
|
+
ok: true;
|
|
3
|
+
} | {
|
|
4
|
+
ok: false;
|
|
5
|
+
reason: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Toggle a native skill through the authoritative policy contract. Returns
|
|
9
|
+
* the updated `disabledExtensions` list; the caller persists it via Settings.
|
|
10
|
+
* Bundled workflow skill names cannot be disabled.
|
|
11
|
+
*/
|
|
12
|
+
export declare function setSkillEnabled(name: string, enabled: boolean, disabledExtensions: string[]): MutationResult & {
|
|
13
|
+
disabledExtensions?: string[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Remove a native skill by its exact discovered SKILL.md path identity.
|
|
17
|
+
* Fails when the discovered file is absent, refuses symlinked directories or
|
|
18
|
+
* files, and never removes protected bundled workflow skill names.
|
|
19
|
+
*/
|
|
20
|
+
export declare function removeSkill(record: {
|
|
21
|
+
name: string;
|
|
22
|
+
path: string;
|
|
23
|
+
}): Promise<MutationResult>;
|
|
24
|
+
/** Toggle a server through the canonical disabledServers denylist. */
|
|
25
|
+
export declare function setMcpServerEnabled(mcpConfigPath: string, name: string, enabled: boolean, disabledExtensions?: string[]): Promise<MutationResult>;
|
|
26
|
+
/** Remove a server via the canonical config writer. */
|
|
27
|
+
export declare function removeMcpServerEntry(mcpConfigPath: string, name: string): Promise<MutationResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Remove a hook by its exact discovered path. Refuses symlinks, non-files,
|
|
30
|
+
* and paths that do not exist (no silent success).
|
|
31
|
+
*/
|
|
32
|
+
export declare function removeHookFile(hookPath: string): Promise<MutationResult>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { MigrateSource } from "../migrate/types";
|
|
2
|
+
import type { MCPServerConfig } from "../runtime-mcp/types";
|
|
3
|
+
export type GjcScope = "project" | "global";
|
|
4
|
+
export interface GjcScopePaths {
|
|
5
|
+
scope: GjcScope;
|
|
6
|
+
/** Root directory: `<project>/.gjc` or `~/.gjc/agent` */
|
|
7
|
+
root: string;
|
|
8
|
+
/** MCP config: `<root>/mcp.json` */
|
|
9
|
+
mcpConfigPath: string;
|
|
10
|
+
/** Skills directory: `<root>/skills/` */
|
|
11
|
+
skillsDir: string;
|
|
12
|
+
/** Hooks directory: `<root>/hooks/` */
|
|
13
|
+
hooksDir: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function resolveScopePaths(scope: GjcScope, projectCwd: string): GjcScopePaths;
|
|
16
|
+
export declare function scopeLabel(scope: GjcScope): string;
|
|
17
|
+
export type CustomizationSurface = "skills" | "hooks" | "mcps";
|
|
18
|
+
export declare const CUSTOMIZATION_SURFACES: readonly CustomizationSurface[];
|
|
19
|
+
export declare function surfaceLabel(surface: CustomizationSurface): string;
|
|
20
|
+
export type ImportProduct = Exclude<MigrateSource, "opencode">;
|
|
21
|
+
export type ImportSourceScope = "project" | "user";
|
|
22
|
+
export declare const IMPORT_PRODUCTS: readonly ImportProduct[];
|
|
23
|
+
export declare const IMPORT_SOURCE_SCOPES: readonly ImportSourceScope[];
|
|
24
|
+
export declare function productLabel(product: ImportProduct): string;
|
|
25
|
+
export declare function sourceScopeLabel(scope: ImportSourceScope): string;
|
|
26
|
+
export declare function sourceConfigDir(product: ImportProduct, sourceScope: ImportSourceScope, projectCwd: string, homeDir: string): string;
|
|
27
|
+
export type InventoryStatus = "enabled" | "disabled" | "invalid" | "shadowed" | "quarantined" | "imported" | "restart-required";
|
|
28
|
+
export interface InventoryRow {
|
|
29
|
+
/** Stable row identity: `<surface>:<scope>:<path>` */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Surface kind */
|
|
32
|
+
surface: CustomizationSurface;
|
|
33
|
+
/** Entry name */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Display name */
|
|
36
|
+
displayName: string;
|
|
37
|
+
/** Effective status */
|
|
38
|
+
status: InventoryStatus;
|
|
39
|
+
/** Provenance — which scope/convention discovered it */
|
|
40
|
+
provenance: string;
|
|
41
|
+
/** Absolute discovered path — the exact identity mutations act on */
|
|
42
|
+
path: string;
|
|
43
|
+
/** Scope that persists this row (project `.gjc` or global `.gjc`) */
|
|
44
|
+
scope: GjcScope;
|
|
45
|
+
/** Short description (no secrets) */
|
|
46
|
+
description?: string;
|
|
47
|
+
/** Diagnostics/remediation detail for invalid/conflicted rows */
|
|
48
|
+
diagnostics?: string[];
|
|
49
|
+
/** Redacted inspector payload (never contains secret values) */
|
|
50
|
+
raw: unknown;
|
|
51
|
+
}
|
|
52
|
+
export type ImportCollisionPolicy = "skip" | "rename" | "overwrite";
|
|
53
|
+
export type ImportEntryStatus = "add" | "conflict" | "unsupported" | "redacted" | "overwrite";
|
|
54
|
+
export interface ImportPreviewEntry {
|
|
55
|
+
surface: CustomizationSurface;
|
|
56
|
+
/** Source name in the foreign layout */
|
|
57
|
+
sourceName: string;
|
|
58
|
+
/** Destination name in `.gjc` (may differ under rename policy) */
|
|
59
|
+
destinationName: string;
|
|
60
|
+
status: ImportEntryStatus;
|
|
61
|
+
/** Source path category (file, section, etc.) */
|
|
62
|
+
sourceCategory: string;
|
|
63
|
+
/** Redacted description for the preview UI */
|
|
64
|
+
description: string;
|
|
65
|
+
/** Reason for conflict/unsupported/redaction if applicable */
|
|
66
|
+
reason?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface NormalizedPayload {
|
|
69
|
+
mcp?: {
|
|
70
|
+
name: string;
|
|
71
|
+
config: MCPServerConfig;
|
|
72
|
+
};
|
|
73
|
+
skill?: {
|
|
74
|
+
slug: string;
|
|
75
|
+
content: string;
|
|
76
|
+
};
|
|
77
|
+
hook?: {
|
|
78
|
+
phase: "pre" | "post";
|
|
79
|
+
fileName: string;
|
|
80
|
+
content: string;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface ImportPreview {
|
|
84
|
+
product: ImportProduct;
|
|
85
|
+
sourceScope: ImportSourceScope;
|
|
86
|
+
destinationScope: GjcScope;
|
|
87
|
+
surfaces: CustomizationSurface[];
|
|
88
|
+
entries: ImportPreviewEntry[];
|
|
89
|
+
/** Aggregate warnings across all entries */
|
|
90
|
+
warnings: string[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Validated apply plan produced alongside the redacted preview. `payloads` is
|
|
94
|
+
* parallel to `preview.entries` (undefined for entries that carry no write).
|
|
95
|
+
* It is deliberately separate from the preview DTO: the preview is safe to
|
|
96
|
+
* serialize and display, while the plan holds full file contents and MCP
|
|
97
|
+
* secret values and is only consumed by the apply transaction.
|
|
98
|
+
*/
|
|
99
|
+
export interface ImportPlan {
|
|
100
|
+
preview: ImportPreview;
|
|
101
|
+
payloads: readonly (NormalizedPayload | undefined)[];
|
|
102
|
+
}
|
|
103
|
+
export type ImportOutcome = "imported" | "skipped" | "renamed" | "overwritten" | "failed";
|
|
104
|
+
export interface ImportResultEntry {
|
|
105
|
+
surface: CustomizationSurface;
|
|
106
|
+
sourceName: string;
|
|
107
|
+
destinationName: string;
|
|
108
|
+
outcome: ImportOutcome;
|
|
109
|
+
reason?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface ImportResult {
|
|
112
|
+
entries: ImportResultEntry[];
|
|
113
|
+
/** True if all entries succeeded (imported/skipped/renamed/overwritten) */
|
|
114
|
+
ok: boolean;
|
|
115
|
+
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* a richer registry is intentionally deferred until a second kind exists.
|
|
7
7
|
*/
|
|
8
8
|
export type DaemonKind = "telegram" | "discord" | "slack";
|
|
9
|
-
|
|
9
|
+
/** `reload` remains the controller result verb; `restart` is the CLI canonical action. */
|
|
10
|
+
export type DaemonAction = "list" | "status" | "stop" | "restart" | "reload";
|
|
10
11
|
export type DaemonHealth = "not_configured" | "stopped" | "running" | "stale" | "stopping" | "error";
|
|
11
12
|
export interface DaemonRuntimeInfo {
|
|
12
13
|
/** `source` when respawn goes through bun/node + the entry script; `compiled` for a single-file binary. */
|
|
@@ -39,6 +40,12 @@ export interface DaemonOperationOptions {
|
|
|
39
40
|
force?: boolean;
|
|
40
41
|
/** For reload: spawn a fresh owner even when none is currently running. */
|
|
41
42
|
spawnIfStopped?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* A post-update recovery has already force-stopped every selected daemon.
|
|
45
|
+
* When global delivery is disabled, acknowledge its canonical restart stage
|
|
46
|
+
* without spawning a transport that would resume delivery.
|
|
47
|
+
*/
|
|
48
|
+
allowDisabledNoop?: boolean;
|
|
42
49
|
}
|
|
43
50
|
export interface DaemonRecovery {
|
|
44
51
|
/** Machine-readable recovery category for automation branching. */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* One source of truth for the beginner-safe operational vocabulary so the
|
|
5
5
|
* guided human surface and the machine-readable JSON never drift:
|
|
6
|
-
* - the terse action verbs plus
|
|
6
|
+
* - the terse action verbs plus the retired `reload` operator alias,
|
|
7
7
|
* - process exit codes,
|
|
8
8
|
* - concise vs. `--verbose` human rendering of statuses and results, and
|
|
9
9
|
* - actionable recovery guidance for a token/chat ownership mismatch.
|
|
@@ -15,9 +15,9 @@ import type { DaemonAction, DaemonOperationResult, DaemonRecovery, DaemonStatus
|
|
|
15
15
|
/** Canonical daemon actions accepted as the leading verb. */
|
|
16
16
|
export declare const DAEMON_CANONICAL_ACTIONS: readonly DaemonAction[];
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* `restart` is the routine "reload if running, otherwise start" verb. Keep
|
|
19
|
+
* `reload` only as an input compatibility token; internal callers must use
|
|
20
|
+
* the canonical restart action.
|
|
21
21
|
*/
|
|
22
22
|
export declare const DAEMON_ACTION_ALIASES: Readonly<Record<string, DaemonAction>>;
|
|
23
23
|
/** Every token accepted in the leading action position (canonical + aliases). */
|
|
@@ -1 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ExtensionModule } from "../capability/extension-module";
|
|
2
|
+
import type { Hook } from "../capability/hook";
|
|
3
|
+
import type { MCPServer } from "../capability/mcp";
|
|
4
|
+
import type { Skill } from "../capability/skill";
|
|
5
|
+
import type { SlashCommand } from "../capability/slash-command";
|
|
6
|
+
import type { CustomTool } from "../capability/tool";
|
|
7
|
+
import type { LoadContext, LoadResult } from "../capability/types";
|
|
8
|
+
export declare const CLAUDE_PROVIDER_ID = "claude";
|
|
9
|
+
export declare const CLAUDE_DISPLAY_NAME = "Claude Code";
|
|
10
|
+
export declare const CLAUDE_CONFIG_DIR = ".claude";
|
|
11
|
+
/**
|
|
12
|
+
* Enumerate `.claude/skills` from every ancestor of `cwd` up to the repo root
|
|
13
|
+
* (closest first) — the Claude Code project convention.
|
|
14
|
+
*/
|
|
15
|
+
export declare function scanClaudeProjectSkills(ctx: LoadContext): Promise<LoadResult<Skill>>;
|
|
16
|
+
/**
|
|
17
|
+
* Enumerate the user-global `~/.claude/skills` layout. This is an explicit
|
|
18
|
+
* import candidate only; GJC never loads it without an explicit import action.
|
|
19
|
+
*/
|
|
20
|
+
export declare function scanClaudeUserSkills(ctx: LoadContext): Promise<LoadResult<Skill>>;
|
|
21
|
+
export declare function claudeSkillSourceMeta(filePath: string, level: "user" | "project"): import(".").SourceMeta;
|
|
22
|
+
export interface ClaudeConventionInspection {
|
|
23
|
+
mcps: LoadResult<MCPServer>;
|
|
24
|
+
skills: LoadResult<Skill>;
|
|
25
|
+
hooks: LoadResult<Hook>;
|
|
26
|
+
tools: LoadResult<CustomTool>;
|
|
27
|
+
extensions: LoadResult<ExtensionModule>;
|
|
28
|
+
commands: LoadResult<SlashCommand>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Inspect what the Claude Code project convention (.claude/) would surface.
|
|
32
|
+
*
|
|
33
|
+
* Reuses the shared discovery scan helpers without registering any provider,
|
|
34
|
+
* so diagnostics can report the convention's files while keeping the runtime
|
|
35
|
+
* load path exactly as configured (none of these surfaces are registered for
|
|
36
|
+
* session loading; hooks are covered by the separate registered claude-hooks
|
|
37
|
+
* provider).
|
|
38
|
+
*/
|
|
39
|
+
export declare function inspectClaudeConvention(ctx: LoadContext): Promise<ClaudeConventionInspection>;
|