@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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@gajae-code/coding-agent",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.0",
|
|
5
5
|
"description": "Gajae Code CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://gajae-code.com",
|
|
7
7
|
"author": "Yeachan-Heo and Gajae Code Contributors",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"main": "./src/index.ts",
|
|
26
26
|
"types": "./dist/types/index.d.ts",
|
|
27
27
|
"bin": {
|
|
28
|
-
"gjc": "bin/gjc.js"
|
|
28
|
+
"gjc": "bin/gjc.js",
|
|
29
|
+
"가재씨": "bin/gajaessi.js"
|
|
29
30
|
},
|
|
30
31
|
"scripts": {
|
|
31
32
|
"build": "bun scripts/build-binary.ts",
|
|
@@ -54,13 +55,12 @@
|
|
|
54
55
|
"@agentclientprotocol/sdk": "1.3.0",
|
|
55
56
|
"@babel/parser": "^7.29.3",
|
|
56
57
|
"@mozilla/readability": "^0.6.0",
|
|
57
|
-
"@gajae-code/stats": "0.
|
|
58
|
-
"@gajae-code/agent-core": "0.
|
|
59
|
-
"@gajae-code/ai": "0.
|
|
60
|
-
"@gajae-code/
|
|
61
|
-
"@gajae-code/
|
|
62
|
-
"@gajae-code/
|
|
63
|
-
"@gajae-code/utils": "0.13.3",
|
|
58
|
+
"@gajae-code/stats": "0.14.0",
|
|
59
|
+
"@gajae-code/agent-core": "0.14.0",
|
|
60
|
+
"@gajae-code/ai": "0.14.0",
|
|
61
|
+
"@gajae-code/natives": "0.14.0",
|
|
62
|
+
"@gajae-code/tui": "0.14.0",
|
|
63
|
+
"@gajae-code/utils": "0.14.0",
|
|
64
64
|
"@puppeteer/browsers": "^2.13.0",
|
|
65
65
|
"@types/turndown": "5.0.6",
|
|
66
66
|
"@xterm/headless": "^6.0.0",
|
|
@@ -147,6 +147,16 @@
|
|
|
147
147
|
"types": "./dist/types/sdk/bus/*.d.ts",
|
|
148
148
|
"import": "./src/sdk/bus/*.ts"
|
|
149
149
|
},
|
|
150
|
+
"./sdk/host/control/runtime-gate.js": null,
|
|
151
|
+
"./sdk/host/control/runtime-gate": null,
|
|
152
|
+
"./sdk/host/control/runtime-gate/*": null,
|
|
153
|
+
"./sdk/lifecycle/broker-client.js": null,
|
|
154
|
+
"./sdk/lifecycle/broker-client": null,
|
|
155
|
+
"./sdk/lifecycle/broker-client/*": null,
|
|
156
|
+
"./sdk/broker": null,
|
|
157
|
+
"./sdk/broker/*": null,
|
|
158
|
+
"./sdk/client": null,
|
|
159
|
+
"./sdk/client/*": null,
|
|
150
160
|
"./session/internal/*": null,
|
|
151
161
|
"./config/model-auth": null,
|
|
152
162
|
"./config/model-auth.js": null,
|
package/scripts/build-binary.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
|
|
3
3
|
import * as path from "node:path";
|
|
4
|
+
import { signMacOSBinary } from "../../../scripts/macos-code-signing";
|
|
4
5
|
import { buildDevCompileArgs } from "./compile-args";
|
|
5
6
|
|
|
6
7
|
const packageDir = path.join(import.meta.dir, "..");
|
|
@@ -40,7 +41,7 @@ async function main(): Promise<void> {
|
|
|
40
41
|
await stageWorkspaceNativeAddons();
|
|
41
42
|
// Bun 1.3.12 emits a truncated Mach-O signature on darwin builds.
|
|
42
43
|
if (shouldAdhocSignDarwinBinary()) {
|
|
43
|
-
await
|
|
44
|
+
await signMacOSBinary(outputPath, runCommand);
|
|
44
45
|
}
|
|
45
46
|
} finally {
|
|
46
47
|
await runCommand(["bun", "--cwd=../natives", "run", "embed:native", "--reset"]);
|
|
@@ -8,7 +8,6 @@ const packageDir = path.resolve(import.meta.dir, "..");
|
|
|
8
8
|
const packageName = "@gajae-code/coding-agent";
|
|
9
9
|
const agentPackageDir = path.resolve(packageDir, "../agent");
|
|
10
10
|
const aiPackageDir = path.resolve(packageDir, "../ai");
|
|
11
|
-
const bridgeClientPackageDir = path.resolve(packageDir, "../bridge-client");
|
|
12
11
|
const tuiPackageDir = path.resolve(packageDir, "../tui");
|
|
13
12
|
const nativesPackageDir = path.resolve(packageDir, "../natives");
|
|
14
13
|
const linuxX64PackageDir = path.resolve(packageDir, "../natives-linux-x64");
|
|
@@ -47,10 +46,6 @@ async function runSmoke(): Promise<Surface> {
|
|
|
47
46
|
}
|
|
48
47
|
const agentTarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], agentPackageDir);
|
|
49
48
|
const aiTarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], aiPackageDir);
|
|
50
|
-
const bridgeClientTarball = run(
|
|
51
|
-
["bun", "pm", "pack", "--destination", tempDir, "--quiet"],
|
|
52
|
-
bridgeClientPackageDir,
|
|
53
|
-
);
|
|
54
49
|
const tuiTarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], tuiPackageDir);
|
|
55
50
|
const nativesTarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], nativesPackageDir);
|
|
56
51
|
const linuxX64Tarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], stagedLinuxX64Dir);
|
|
@@ -58,9 +53,6 @@ async function runSmoke(): Promise<Surface> {
|
|
|
58
53
|
const codingAgentTarball = run(["bun", "pm", "pack", "--destination", tempDir, "--quiet"], packageDir);
|
|
59
54
|
const agentTarballPath = path.isAbsolute(agentTarball) ? agentTarball : path.join(agentPackageDir, agentTarball);
|
|
60
55
|
const aiTarballPath = path.isAbsolute(aiTarball) ? aiTarball : path.join(aiPackageDir, aiTarball);
|
|
61
|
-
const bridgeClientTarballPath = path.isAbsolute(bridgeClientTarball)
|
|
62
|
-
? bridgeClientTarball
|
|
63
|
-
: path.join(bridgeClientPackageDir, bridgeClientTarball);
|
|
64
56
|
const tuiTarballPath = path.isAbsolute(tuiTarball) ? tuiTarball : path.join(tuiPackageDir, tuiTarball);
|
|
65
57
|
const nativesTarballPath = path.isAbsolute(nativesTarball)
|
|
66
58
|
? nativesTarball
|
|
@@ -81,7 +73,6 @@ async function runSmoke(): Promise<Surface> {
|
|
|
81
73
|
dependencies: {
|
|
82
74
|
"@gajae-code/agent-core": `file:${agentTarballPath}`,
|
|
83
75
|
"@gajae-code/ai": `file:${aiTarballPath}`,
|
|
84
|
-
"@gajae-code/bridge-client": `file:${bridgeClientTarballPath}`,
|
|
85
76
|
[packageName]: `file:${codingAgentTarballPath}`,
|
|
86
77
|
"@gajae-code/tui": `file:${tuiTarballPath}`,
|
|
87
78
|
"@gajae-code/natives": `file:${nativesTarballPath}`,
|
|
@@ -91,7 +82,6 @@ async function runSmoke(): Promise<Surface> {
|
|
|
91
82
|
overrides: {
|
|
92
83
|
"@gajae-code/agent-core": `file:${agentTarballPath}`,
|
|
93
84
|
"@gajae-code/ai": `file:${aiTarballPath}`,
|
|
94
|
-
"@gajae-code/bridge-client": `file:${bridgeClientTarballPath}`,
|
|
95
85
|
"@gajae-code/tui": `file:${tuiTarballPath}`,
|
|
96
86
|
"@gajae-code/natives": `file:${nativesTarballPath}`,
|
|
97
87
|
"@gajae-code/natives-linux-x64": `file:${linuxX64TarballPath}`,
|
|
@@ -160,15 +150,14 @@ async function runSmoke(): Promise<Surface> {
|
|
|
160
150
|
const probePath = path.join(tempDir, "probe.ts");
|
|
161
151
|
await fs.writeFile(
|
|
162
152
|
probePath,
|
|
163
|
-
`import * as fs from "node:fs/promises";\nimport * as path from "node:path";\nimport * as root from ${JSON.stringify(packageName)};\nimport * as sdk from ${JSON.stringify(`${packageName}/sdk`)};\nimport * as bus from ${JSON.stringify(`${packageName}/sdk/bus`)};\nconst required = [[root, "createAgentSession", "root"], [root, "SESSION_DIRECTORY_API_VERSION", "root"], [root, "resolveManagedSessionScope", "root"], [root, "listManagedSessionCandidates", "root"], [sdk, "createAgentSession", "sdk"], [bus, "createNotificationsExtension", "sdk/bus"], [sdk, "
|
|
153
|
+
`import * as fs from "node:fs/promises";\nimport * as path from "node:path";\nimport * as root from ${JSON.stringify(packageName)};\nimport * as sdk from ${JSON.stringify(`${packageName}/sdk`)};\nimport * as bus from ${JSON.stringify(`${packageName}/sdk/bus`)};\nconst required = [[root, "createAgentSession", "root"], [root, "SESSION_DIRECTORY_API_VERSION", "root"], [root, "resolveManagedSessionScope", "root"], [root, "listManagedSessionCandidates", "root"], [sdk, "createAgentSession", "sdk"], [bus, "createNotificationsExtension", "sdk/bus"], [sdk, "SESSION_DIRECTORY_API_VERSION", "sdk"], [sdk, "resolveManagedSessionScope", "sdk"], [sdk, "listManagedSessionCandidates", "sdk"]] as const;\nfor (const [module, name, subpath] of required) if (!(name in module)) throw new Error(subpath + " missing " + name);\nconst sandbox = path.join(process.cwd(), "managed-listing-smoke");\nconst cwd = path.join(sandbox, "workspace", "a-b", "c");\nconst agentDir = path.join(sandbox, "agent");\nconst sessionsRoot = path.join(agentDir, "sessions");\nawait fs.mkdir(cwd, { recursive: true });\nconst resolved = await sdk.resolveManagedSessionScope({ cwd, agentDir, sessionsRoot });\nif (resolved.kind !== "resolved") throw new Error("packed resolver failed: " + resolved.message);\nawait fs.mkdir(resolved.scope.directoryPath, { recursive: true, mode: 0o700 });\nawait fs.chmod(sessionsRoot, 0o700);\nawait fs.chmod(resolved.scope.directoryPath, 0o700);\nawait fs.writeFile(path.join(resolved.scope.directoryPath, ".gjc-managed-session-scope.v2.json"), JSON.stringify({ schemaVersion: 1, layoutVersion: 2, identityVersion: 1, platform: process.platform === "win32" ? "win32" : "posix", canonicalPath: resolved.scope.canonicalCwd, identityDigest: resolved.scope.directoryName.slice(3) }) + "\\n", { mode: 0o600 });\nconst transcriptPath = path.join(resolved.scope.directoryPath, "packed-session.jsonl");\nawait fs.writeFile(transcriptPath, JSON.stringify({ type: "session", id: "packed-session", cwd }) + "\\n", { mode: 0o600 });\nconst snapshot = async () => Promise.all((await fs.readdir(sandbox, { recursive: true })).sort().map(async name => { const pathname = path.join(sandbox, name); const stat = await fs.lstat(pathname); return [name, stat.mode, stat.size, stat.mtimeMs, stat.isFile() ? await fs.readFile(pathname, "utf8") : null]; }));\nconst before = JSON.stringify(await snapshot());\nconst listing = await sdk.listManagedSessionCandidates({ scope: resolved.scope });\nif (listing.kind !== "complete" || listing.owned.length !== 1 || listing.owned[0]?.sessionId !== "packed-session") throw new Error("packed readonly listing failed: " + JSON.stringify(listing));\nconst after = JSON.stringify(await snapshot());\nif (after !== before) throw new Error("packed readonly listing mutated the filesystem");\nconst privateSubpath = ${JSON.stringify(`${packageName}/session/internal/managed-session-scope`)};\ntry { await import(privateSubpath); throw new Error("private managed-session scope subpath resolved"); } catch (error) {\n\tif (error instanceof Error && error.message === "private managed-session scope subpath resolved") throw error;\n\tconst message = String(error);\n\tconst exportsRejected = /Package subpath .* is not defined by "exports"/.test(message);\n\tconst bunRejected = message.startsWith("ResolveMessage: Cannot find module '" + privateSubpath + "' from '") && message.endsWith("/probe.ts'");\n\tif (!exportsRejected && !bunRejected) throw new Error("private managed-session scope failed for an unexpected reason: " + message);\n}\nprocess.stdout.write(JSON.stringify({ root: Object.keys(root).sort(), sdk: Object.keys(sdk).sort() }));\n`,
|
|
164
154
|
);
|
|
165
155
|
await fs.appendFile(
|
|
166
156
|
probePath,
|
|
167
|
-
`\nconst rootBefore = JSON.stringify(await snapshot());\nconst rootListing = await root.listManagedSessionCandidates({ scope: resolved.scope });\nif (rootListing.kind !== "complete" || rootListing.owned.length !== listing.owned.length || rootListing.owned[0]?.sessionId !== listing.owned[0]?.sessionId || rootListing.owned[0]?.path !== listing.owned[0]?.path) throw new Error("packed root readonly listing diverged from SDK listing");\nconst rootAfter = JSON.stringify(await snapshot());\nif (rootAfter !== rootBefore) throw new Error("packed root readonly listing mutated the filesystem");\
|
|
157
|
+
`\nconst rootBefore = JSON.stringify(await snapshot());\nconst rootListing = await root.listManagedSessionCandidates({ scope: resolved.scope });\nif (rootListing.kind !== "complete" || rootListing.owned.length !== listing.owned.length || rootListing.owned[0]?.sessionId !== listing.owned[0]?.sessionId || rootListing.owned[0]?.path !== listing.owned[0]?.path) throw new Error("packed root readonly listing diverged from SDK listing");\nconst rootAfter = JSON.stringify(await snapshot());\nif (rootAfter !== rootBefore) throw new Error("packed root readonly listing mutated the filesystem");\n`,
|
|
168
158
|
);
|
|
169
159
|
const surface = JSON.parse(run(["bun", "run", probePath], tempDir)) as Surface;
|
|
170
160
|
assertExport(Object.fromEntries(surface.root.map(name => [name, true])), "createAgentSession", "root");
|
|
171
|
-
assertExport(Object.fromEntries(surface.sdk.map(name => [name, true])), "SdkClient", "sdk");
|
|
172
161
|
return { root: [...surface.root].sort(), sdk: [...surface.sdk].sort() };
|
|
173
162
|
} finally {
|
|
174
163
|
await fs.rm(tempDir, { recursive: true, force: true });
|
|
@@ -209,7 +209,6 @@ export const PROVENANCE_DIFF_SCOPE = [
|
|
|
209
209
|
|
|
210
210
|
"packages/agent/src",
|
|
211
211
|
"packages/ai/src",
|
|
212
|
-
"packages/bridge-client/src",
|
|
213
212
|
"packages/coding-agent/scripts/capture-sticky-viewport-showcase.ts",
|
|
214
213
|
"packages/coding-agent/scripts/verify-sticky-viewport-showcase.ts",
|
|
215
214
|
"packages/coding-agent/src",
|
package/scripts/compile-args.ts
CHANGED
|
@@ -25,6 +25,7 @@ export const releaseEntrypoints = [
|
|
|
25
25
|
"./packages/stats/src/sync-worker.ts",
|
|
26
26
|
"./packages/coding-agent/src/tools/browser/tab-worker-entry.ts",
|
|
27
27
|
"./packages/coding-agent/src/eval/js/worker-entry.ts",
|
|
28
|
+
"./packages/coding-agent/src/config/atomic-yaml-patch-worker.ts",
|
|
28
29
|
"./packages/natives/native/index.js",
|
|
29
30
|
"./packages/coding-agent/src/sdk/bus/telegram-daemon-cli.ts",
|
|
30
31
|
"./packages/coding-agent/src/sdk/bus/chat-daemon-cli.ts",
|
|
@@ -42,6 +43,7 @@ export const devEntrypoints = [
|
|
|
42
43
|
"../stats/src/sync-worker.ts",
|
|
43
44
|
"./src/tools/browser/tab-worker-entry.ts",
|
|
44
45
|
"./src/eval/js/worker-entry.ts",
|
|
46
|
+
"./src/config/atomic-yaml-patch-worker.ts",
|
|
45
47
|
// W5b: natives has no static importer anymore (global native gate), so the
|
|
46
48
|
// dev bundle must list it as an extra entrypoint like the release build or
|
|
47
49
|
// runtime import("@gajae-code/natives") fails inside the compiled bunfs.
|
|
@@ -6,36 +6,38 @@ import { type Manifest, type ManifestAdapterRow, validateManifest } from "./mani
|
|
|
6
6
|
|
|
7
7
|
const repoRoot = path.resolve(import.meta.dir, "..", "..", "..");
|
|
8
8
|
const manifestPath = path.join(repoRoot, "packages/coding-agent/test/manifests/sdk-adapter-parity-v1.json");
|
|
9
|
+
const chatDispositionFile = "packages/coding-agent/test/sdk-adapter-dispositions.test.ts";
|
|
10
|
+
const mcpDispositionFile = "packages/coding-agent/test/sdk-adapter-dispositions-mcp.test.ts";
|
|
11
|
+
const acpDispositionFile = "packages/coding-agent/test/sdk-adapter-dispositions-acp.test.ts";
|
|
12
|
+
const daemonCliDispositionFile = "packages/coding-agent/test/sdk-adapter-dispositions-daemon-cli.test.ts";
|
|
9
13
|
const adapterTests: Record<Adapter, string[]> = {
|
|
10
|
-
telegram: [
|
|
11
|
-
discord: [
|
|
12
|
-
slack: [
|
|
14
|
+
telegram: [chatDispositionFile],
|
|
15
|
+
discord: [chatDispositionFile],
|
|
16
|
+
slack: [chatDispositionFile],
|
|
13
17
|
mcp: [
|
|
14
18
|
"packages/coding-agent/test/sdk-mcp-adapter.test.ts",
|
|
15
19
|
"packages/coding-agent/test/sdk-mcp-entrypoint-e2e.test.ts",
|
|
16
|
-
|
|
20
|
+
mcpDispositionFile,
|
|
17
21
|
],
|
|
18
22
|
acp: [
|
|
19
23
|
"packages/coding-agent/test/sdk-acp-adapter.test.ts",
|
|
20
24
|
"packages/coding-agent/test/sdk-acp-two-client-race.test.ts",
|
|
21
25
|
"packages/coding-agent/test/sdk-acp-provider-reconnect.test.ts",
|
|
22
|
-
|
|
26
|
+
acpDispositionFile,
|
|
23
27
|
],
|
|
24
28
|
daemonCli: [
|
|
25
29
|
"packages/coding-agent/test/sdk-daemon-cli-e2e.test.ts",
|
|
26
30
|
"packages/coding-agent/test/sdk-client.test.ts",
|
|
27
|
-
|
|
31
|
+
daemonCliDispositionFile,
|
|
28
32
|
],
|
|
29
33
|
};
|
|
30
|
-
const
|
|
34
|
+
const dispositionChatFile = chatDispositionFile;
|
|
31
35
|
const commandFiles = [
|
|
32
36
|
...new Set([...Object.values(adapterTests).flat(), "packages/coding-agent/test/sdk-host-wiring.test.ts"]),
|
|
33
37
|
].sort();
|
|
34
38
|
const commands: Manifest["commands"] = commandFiles.flatMap(file =>
|
|
35
|
-
file ===
|
|
36
|
-
? ["
|
|
37
|
-
argv: ["bun", "test", file, "--test-name-pattern", pattern],
|
|
38
|
-
}))
|
|
39
|
+
file === dispositionChatFile
|
|
40
|
+
? [{ argv: ["bun", "test", file, "--test-name-pattern", "^AD-(T|D|S)-"] }]
|
|
39
41
|
: [{ argv: ["bun", "test", file] }],
|
|
40
42
|
);
|
|
41
43
|
const required = [...commandFiles];
|
|
@@ -63,19 +65,26 @@ function adapterTestPrefix(adapter: Adapter): string {
|
|
|
63
65
|
? "M"
|
|
64
66
|
: "A";
|
|
65
67
|
}
|
|
68
|
+
function dispositionFileFor(adapter: Adapter): string {
|
|
69
|
+
if (adapter === "mcp") return mcpDispositionFile;
|
|
70
|
+
if (adapter === "acp") return acpDispositionFile;
|
|
71
|
+
if (adapter === "daemonCli") return daemonCliDispositionFile;
|
|
72
|
+
return chatDispositionFile;
|
|
73
|
+
}
|
|
66
74
|
function row(adapter: Adapter, operation: (typeof OPERATIONS)[number], secret = false): ManifestAdapterRow {
|
|
67
75
|
const suffix = secret ? "-secret" : "";
|
|
76
|
+
const testFile = dispositionFileFor(adapter);
|
|
68
77
|
return {
|
|
69
78
|
adapterTestId: `AD-${adapterTestPrefix(adapter)}-${operation.id}${suffix}`,
|
|
70
79
|
sdkId: operation.sdkId,
|
|
71
80
|
adapter,
|
|
72
81
|
disposition: operation.adapterDispositions[adapter],
|
|
73
|
-
testFile
|
|
82
|
+
testFile,
|
|
74
83
|
testNamePattern: `AD-${adapterTestPrefix(adapter)}-${operation.id}${suffix}`,
|
|
75
84
|
argv: [
|
|
76
85
|
"bun",
|
|
77
86
|
"test",
|
|
78
|
-
|
|
87
|
+
testFile,
|
|
79
88
|
"--test-name-pattern",
|
|
80
89
|
`^AD-${adapterTestPrefix(adapter)}-${operation.id}${suffix}:`,
|
|
81
90
|
],
|
|
@@ -127,11 +136,17 @@ async function checkCoverage(manifest: Manifest): Promise<void> {
|
|
|
127
136
|
throw new Error(`${row.adapterTestId} must execute its exact test-name pattern.`);
|
|
128
137
|
const testPath = path.join(repoRoot, row.testFile);
|
|
129
138
|
const testFile = Bun.file(testPath);
|
|
130
|
-
if (!(await testFile.exists()))
|
|
139
|
+
if (!(await testFile.exists()))
|
|
140
|
+
throw new Error(`${row.adapterTestId} test file does not exist: ${row.testFile}.`);
|
|
131
141
|
const testText = await testFile.text();
|
|
132
142
|
// The disposition suite deliberately generates names from registry IDs. This source check
|
|
133
|
-
// confirms its name template and the concrete row ID are both present in the
|
|
134
|
-
|
|
143
|
+
// confirms its name template and the concrete row ID are both present in the test source.
|
|
144
|
+
// Chat adapters use chatPrefix; machine adapters use adapterPrefix (issue #4475 split).
|
|
145
|
+
const isChat = row.adapter === "telegram" || row.adapter === "discord" || row.adapter === "slack";
|
|
146
|
+
const nameTemplate = isChat
|
|
147
|
+
? "AD-$" + "{chatPrefix[adapter]}-$" + "{operation.id}"
|
|
148
|
+
: "AD-$" + "{adapterPrefix[adapter]}-$" + "{operation.id}";
|
|
149
|
+
if (!testText.includes(nameTemplate))
|
|
135
150
|
throw new Error(`${row.adapterTestId} test name template was not found in ${row.testFile}.`);
|
|
136
151
|
if (!OPERATIONS.some(operation => row.sdkId === operation.sdkId))
|
|
137
152
|
throw new Error(`${row.adapterTestId} references an unknown SDK ID.`);
|
|
@@ -11,6 +11,12 @@ const inventoryPath = process.env.GJC_SDK_OPERATION_INVENTORY
|
|
|
11
11
|
|
|
12
12
|
/** Reviewed seams deliberately excluded from the public SDK operation surface. */
|
|
13
13
|
const LOCKED_EXCLUSIONS: Readonly<Record<string, string>> = {
|
|
14
|
+
"agent_session:getTerminalTurnEpoch":
|
|
15
|
+
"internal terminal-abort bus seam (epoch only), threaded via terminalAbortSeams; not a user-facing SDK control seam",
|
|
16
|
+
"agent_session:cancelPendingPreflightForTerminalAbort":
|
|
17
|
+
"internal terminal-abort bus seam, threaded via terminalAbortSeams; not a user-facing SDK control seam",
|
|
18
|
+
"agent_session:abortPromptAndWaitWithTerminal":
|
|
19
|
+
"internal terminal-abort fencing seam, threaded via terminalAbortSeams; not a user-facing SDK control seam",
|
|
14
20
|
"slash_command:settings": "visual/local-only command, not a user-facing SDK control seam",
|
|
15
21
|
"slash_command:theme": "visual/local-only command, not a user-facing SDK control seam",
|
|
16
22
|
"slash_command:copy": "visual/local-only command, not a user-facing SDK control seam",
|
|
@@ -23,6 +29,8 @@ const LOCKED_EXCLUSIONS: Readonly<Record<string, string>> = {
|
|
|
23
29
|
"slash_command:provider": "visual/local-only command, not a user-facing SDK control seam",
|
|
24
30
|
"slash_command:logout": "visual/local-only command, not a user-facing SDK control seam",
|
|
25
31
|
"slash_command:ssh": "visual/local-only command, not a user-facing SDK control seam",
|
|
32
|
+
"slash_command:import-session":
|
|
33
|
+
"local transcript-file import into a new session; no SDK operation counterpart, not a user-facing SDK control seam",
|
|
26
34
|
"slash_command:drop": "visual/local-only command, not a user-facing SDK control seam",
|
|
27
35
|
"slash_command:contribute-pr": "visual/local-only command, not a user-facing SDK control seam",
|
|
28
36
|
"slash_command:btw": "visual/local-only command, not a user-facing SDK control seam",
|
|
@@ -31,10 +39,22 @@ const LOCKED_EXCLUSIONS: Readonly<Record<string, string>> = {
|
|
|
31
39
|
"slash_command:exit": "visual/local-only command, not a user-facing SDK control seam",
|
|
32
40
|
"slash_command:notify":
|
|
33
41
|
"interactive diagnostics command; session on/off delegate to the notifications extension, not an SDK ingress seam",
|
|
42
|
+
"slash_command:extensions":
|
|
43
|
+
"interactive local customization dashboard mutates trusted local skill, hook, and MCP configuration (including filesystem import/removal); ACP and local headless cannot dispatch it, while SDK extension list/enable operations do not expose this dashboard authority",
|
|
44
|
+
"slash_command:credential":
|
|
45
|
+
"interactive session credential selector; not a credential-free public SDK operation or independent control seam",
|
|
34
46
|
"slash_command:pet": "visual/local-only command, not a user-facing SDK control seam",
|
|
35
47
|
"slash_command:transcript": "visual/local-only transcript viewer, not a user-facing SDK control seam",
|
|
36
48
|
"slash_command:sessions": "visual/local-only sessions dashboard, not a user-facing SDK control seam",
|
|
37
49
|
"agent_session:constructor": "internal accessor/plumbing, not a user-facing control seam",
|
|
50
|
+
"agent_session:getSessionAgentDir":
|
|
51
|
+
"internal session-scoped agent-directory accessor, not a user-facing SDK control seam",
|
|
52
|
+
"agent_session:captureTerminalAbortSteeringSnapshot":
|
|
53
|
+
"internal terminal-abort steering snapshot, not a user-facing SDK control seam",
|
|
54
|
+
"agent_session:rebindTerminalAbortSteeringSnapshot":
|
|
55
|
+
"internal terminal-abort steering snapshot rebind, not a user-facing SDK control seam",
|
|
56
|
+
"agent_session:discardTerminalAbortSteeringSnapshot":
|
|
57
|
+
"internal terminal-abort steering snapshot cleanup, not a user-facing SDK control seam",
|
|
38
58
|
"agent_session:getConfiguredModelChainState":
|
|
39
59
|
"internal model-profile transaction snapshot, not a user-facing SDK control seam",
|
|
40
60
|
"agent_session:getDefaultFallbackRuntimeState":
|
|
@@ -82,6 +102,8 @@ const LOCKED_EXCLUSIONS: Readonly<Record<string, string>> = {
|
|
|
82
102
|
"internal CLI startup-readiness fence composition, not a user-facing SDK control seam",
|
|
83
103
|
"agent_session:awaitPendingContextTransformations":
|
|
84
104
|
"internal context-transformation lifecycle barrier, not a user-facing SDK control seam",
|
|
105
|
+
"agent_session:awaitSessionSettlement":
|
|
106
|
+
"internal agent-event settlement barrier, not a user-facing SDK control seam",
|
|
85
107
|
"agent_session:drainAsyncJobDeliveriesForAcp": "internal accessor/plumbing, not a user-facing control seam",
|
|
86
108
|
"agent_session:getAsyncDeliveryStateForAcp":
|
|
87
109
|
"internal ACP lifecycle quiescence plumbing, not a user-facing control seam",
|
|
@@ -217,8 +239,14 @@ const LOCKED_EXCLUSIONS: Readonly<Record<string, string>> = {
|
|
|
217
239
|
"internal profile and fallback-chain state, not a user-facing SDK control seam",
|
|
218
240
|
"agent_session:setDefaultFallbackRuntimeModel":
|
|
219
241
|
"internal fallback runtime bookkeeping, not a user-facing SDK control seam",
|
|
242
|
+
"agent_session:setCredentialPin":
|
|
243
|
+
"interactive session-scoped OAuth account selector mutation behind the locked /credential and OAuth selector surfaces; the public SDK has no credential-selection operation and must not gain credential authority implicitly",
|
|
244
|
+
"agent_session:setCredentialAuto":
|
|
245
|
+
"interactive session-scoped OAuth AUTO-ranking mutation behind the locked /credential and OAuth selector surfaces; the public SDK has no credential-selection operation and must not gain credential authority implicitly",
|
|
220
246
|
"agent_session:seedDefaultFallbackResolution":
|
|
221
247
|
"internal fallback resolution bookkeeping, not a user-facing SDK control seam",
|
|
248
|
+
"agent_session:syncEagerDelegation":
|
|
249
|
+
"internal profile-derived eager delegation synchronization, not a user-facing SDK control seam",
|
|
222
250
|
};
|
|
223
251
|
/** Maps reviewed source seams to registry SDK operation IDs. */
|
|
224
252
|
const SEAM_TO_SDK: Readonly<Record<string, string>> = {
|
|
@@ -18,6 +18,7 @@ const explicitTests = [
|
|
|
18
18
|
"telegram-send-tool.test.ts",
|
|
19
19
|
"telegram-onboarding-docs.test.ts",
|
|
20
20
|
"lifecycle-notification-docs.test.ts",
|
|
21
|
+
"sdk-lifecycle-telegram-integration.test.ts",
|
|
21
22
|
];
|
|
22
23
|
const requiredTests = [
|
|
23
24
|
"packages/coding-agent/test/daemon-control.test.ts",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import { toolWireSchema } from "@gajae-code/ai/utils/schema";
|
|
3
|
+
import { TaskTool } from "../src/task";
|
|
3
4
|
import { TOOL_CATALOG } from "../src/tools/tool-catalog.generated";
|
|
4
5
|
|
|
5
6
|
export interface GeneratedToolCatalogEntry {
|
|
@@ -26,6 +27,7 @@ export interface GeneratedToolCatalogEntry {
|
|
|
26
27
|
export interface ToolCatalogGenerationOptions {
|
|
27
28
|
platform?: NodeJS.Platform;
|
|
28
29
|
arch?: NodeJS.Architecture;
|
|
30
|
+
cwd?: string;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
type AuditedFallback = {
|
|
@@ -99,10 +101,10 @@ function makeSettings() {
|
|
|
99
101
|
};
|
|
100
102
|
}
|
|
101
103
|
|
|
102
|
-
function makeSession(): any {
|
|
104
|
+
function makeSession(cwd: string = path.resolve(import.meta.dir, "../..")): any {
|
|
103
105
|
const settings = makeSettings();
|
|
104
106
|
return {
|
|
105
|
-
cwd
|
|
107
|
+
cwd,
|
|
106
108
|
hasUI: false,
|
|
107
109
|
workflowGateEligible: true,
|
|
108
110
|
settings,
|
|
@@ -326,7 +328,7 @@ export async function generateToolCatalogData(
|
|
|
326
328
|
...HIDDEN_TOOL_DESCRIPTORS,
|
|
327
329
|
...PLATFORM_EXCLUDED_TOOL_DESCRIPTORS,
|
|
328
330
|
} as Record<string, any>;
|
|
329
|
-
const session = makeSession();
|
|
331
|
+
const session = makeSession(options.cwd);
|
|
330
332
|
const output: Record<string, GeneratedToolCatalogEntry> = {};
|
|
331
333
|
for (const [name, descriptor] of Object.entries(all)) {
|
|
332
334
|
let fallback: AuditedFallback | undefined;
|
|
@@ -334,7 +336,7 @@ export async function generateToolCatalogData(
|
|
|
334
336
|
const platformExcluded = excludedOnPlatform(descriptor.metadata.platformExclusions, platform, arch);
|
|
335
337
|
if (!platformExcluded) {
|
|
336
338
|
try {
|
|
337
|
-
tool = await descriptor.load(session);
|
|
339
|
+
tool = name === "task" ? await TaskTool.createForToolCatalog(session) : await descriptor.load(session);
|
|
338
340
|
} catch (cause) {
|
|
339
341
|
throw new ToolCatalogGenerationError(
|
|
340
342
|
`Failed to load descriptor "${name}": ${formatCause(cause)}`,
|
|
@@ -838,43 +838,8 @@ function rpcModeInvocationViolations(file: string, contents: string): string[] {
|
|
|
838
838
|
}
|
|
839
839
|
|
|
840
840
|
function bridgeClientPackageMetadataViolation(file: string, contents: string): string | undefined {
|
|
841
|
-
if (
|
|
842
|
-
|
|
843
|
-
(file !== bridgeClientPackageManifestPath && !contents.includes(bridgeClientPackageName))
|
|
844
|
-
)
|
|
845
|
-
return undefined;
|
|
846
|
-
try {
|
|
847
|
-
const manifest = JSON.parse(contents) as {
|
|
848
|
-
catalog?: Record<string, unknown>;
|
|
849
|
-
dependencies?: Record<string, unknown>;
|
|
850
|
-
name?: unknown;
|
|
851
|
-
optionalDependencies?: Record<string, unknown>;
|
|
852
|
-
peerDependencies?: Record<string, unknown>;
|
|
853
|
-
workspaces?: { catalog?: Record<string, unknown> };
|
|
854
|
-
};
|
|
855
|
-
if (file === bridgeClientPackageManifestPath) {
|
|
856
|
-
if (manifest.name !== bridgeClientPackageName)
|
|
857
|
-
return `${file}: is not the canonical bridge-client package manifest`;
|
|
858
|
-
if (
|
|
859
|
-
Object.keys(manifest.dependencies ?? {}).length > 0 ||
|
|
860
|
-
Object.keys(manifest.peerDependencies ?? {}).length > 0 ||
|
|
861
|
-
Object.keys(manifest.optionalDependencies ?? {}).length > 0
|
|
862
|
-
)
|
|
863
|
-
return `${file}: canonical bridge-client package must remain runtime-dependency-free`;
|
|
864
|
-
return undefined;
|
|
865
|
-
}
|
|
866
|
-
if (
|
|
867
|
-
file === "package.json" &&
|
|
868
|
-
(typeof manifest.catalog?.[bridgeClientPackageName] === "string" ||
|
|
869
|
-
typeof manifest.workspaces?.catalog?.[bridgeClientPackageName] === "string")
|
|
870
|
-
)
|
|
871
|
-
return undefined;
|
|
872
|
-
if (file === packageManifestPath && typeof manifest.dependencies?.[bridgeClientPackageName] === "string")
|
|
873
|
-
return undefined;
|
|
874
|
-
} catch {
|
|
875
|
-
return `${file}: declares unsupported bridge-client package metadata`;
|
|
876
|
-
}
|
|
877
|
-
|
|
841
|
+
if (!file.endsWith("package.json")) return undefined;
|
|
842
|
+
if (file !== bridgeClientPackageManifestPath && !contents.includes(bridgeClientPackageName)) return undefined;
|
|
878
843
|
return `${file}: declares unsupported bridge-client package metadata`;
|
|
879
844
|
}
|
|
880
845
|
|
|
@@ -2617,7 +2582,8 @@ async function selfTest(): Promise<void> {
|
|
|
2617
2582
|
"packages/coding-agent/src/sdk/client/client.ts":
|
|
2618
2583
|
'export { SdkClient } from "@gajae-code/bridge-client";\nexport type { SdkClientOptions } from "@gajae-code/bridge-client";\n',
|
|
2619
2584
|
},
|
|
2620
|
-
|
|
2585
|
+
1,
|
|
2586
|
+
"declares unsupported bridge-client package metadata",
|
|
2621
2587
|
);
|
|
2622
2588
|
await runSelfTestFixture(
|
|
2623
2589
|
{
|
|
@@ -2625,7 +2591,7 @@ async function selfTest(): Promise<void> {
|
|
|
2625
2591
|
'{"name":"@gajae-code/bridge-client","dependencies":{"unsafe":"1.0.0"}}\n',
|
|
2626
2592
|
},
|
|
2627
2593
|
1,
|
|
2628
|
-
"
|
|
2594
|
+
"declares unsupported bridge-client package metadata",
|
|
2629
2595
|
);
|
|
2630
2596
|
await runSelfTestFixture(
|
|
2631
2597
|
{
|