@mycadet/assistant 0.12.7 → 0.12.9
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/README.md +1 -1
- package/docs/activation-funnel-telemetry.md +6 -6
- package/docs/cadet-doctor.md +7 -7
- package/docs/desktop-browser-cli.md +7 -7
- package/docs/skills.md +2 -2
- package/docs/voice-input-diagnostics.md +1 -1
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
- package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
- package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +2 -2
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/ces-client/package.json +1 -1
- package/node_modules/@mycadet/ces-client/src/__tests__/ces-client.test.ts +14 -14
- package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
- package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
- package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
- package/node_modules/@mycadet/environments/src/types.ts +6 -6
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +2 -2
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
- package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
- package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
- package/node_modules/@mycadet/service-contracts/package.json +2 -2
- package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/openapi.yaml +6804 -799
- package/package.json +2 -2
- package/scripts/build-test-fixtures.ts +1 -1
- package/scripts/probe-skill-retrieval.ts +1 -1
- package/scripts/sync-llm-catalog.ts +2 -2
- package/scripts/voice-ttft-spike.ts +2 -2
- package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
- package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
- package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
- package/src/__tests__/anthropic-provider.test.ts +2 -2
- package/src/__tests__/available-skills.test.ts +11 -12
- package/src/__tests__/avatar-identity-sync.test.ts +1 -1
- package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
- package/src/__tests__/call-domain.test.ts +1 -1
- package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
- package/src/__tests__/catalog-files.test.ts +10 -10
- package/src/__tests__/catalog-install-normalize.test.ts +3 -3
- package/src/__tests__/channel-availability-routes.test.ts +8 -8
- package/src/__tests__/channel-readiness-routes.test.ts +4 -4
- package/src/__tests__/channel-readiness-service.test.ts +14 -14
- package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
- package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
- package/src/__tests__/checker.test.ts +6 -6
- package/src/__tests__/clawhub.test.ts +1 -1
- package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
- package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
- package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
- package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
- package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +77 -75
- package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
- package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
- package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
- package/src/__tests__/compaction-events.test.ts +7 -5
- package/src/__tests__/config-loader-backfill.test.ts +65 -65
- package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
- package/src/__tests__/config-loader-corrupt.test.ts +1 -1
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
- package/src/__tests__/config-schema.test.ts +3 -3
- package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
- package/src/__tests__/config-set-route.test.ts +12 -8
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
- package/src/__tests__/config-watcher.test.ts +1 -1
- package/src/__tests__/contacts-write.test.ts +1 -1
- package/src/__tests__/conversation-agent-loop.test.ts +2 -2
- package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
- package/src/__tests__/conversation-error.test.ts +45 -45
- package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
- package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
- package/src/__tests__/conversation-skill-tools.test.ts +7 -8
- package/src/__tests__/conversation-slash.test.ts +2 -2
- package/src/__tests__/conversation-speed-override.test.ts +8 -10
- package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
- package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
- package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
- package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
- package/src/__tests__/credential-health-service.test.ts +28 -40
- package/src/__tests__/credential-routes.test.ts +85 -165
- package/src/__tests__/credential-security-invariants.test.ts +6 -7
- package/src/__tests__/custom-profile-ensure.test.ts +1 -1
- package/src/__tests__/date-context.test.ts +1 -1
- package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
- package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
- package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
- package/src/__tests__/disk-usage.test.ts +3 -3
- package/src/__tests__/email-invite-adapter.test.ts +5 -5
- package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
- package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
- package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
- package/src/__tests__/fallback-breaker.test.ts +7 -7
- package/src/__tests__/feature-flag-test-helpers.ts +106 -0
- package/src/__tests__/gateway-flag-listener.test.ts +1 -1
- package/src/__tests__/gemini-image-service.test.ts +2 -2
- package/src/__tests__/gemini-provider.test.ts +5 -5
- package/src/__tests__/get-skill-detail-audit.test.ts +134 -288
- package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
- package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
- package/src/__tests__/image-credentials.test.ts +13 -13
- package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
- package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
- package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
- package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
- package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
- package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
- package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
- package/src/__tests__/input-repairs.test.ts +1 -1
- package/src/__tests__/install-skill-routing.test.ts +10 -8
- package/src/__tests__/integration-status.test.ts +5 -5
- package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
- package/src/__tests__/invite-routes-http.test.ts +1 -1
- package/src/__tests__/llm-catalog-parity.test.ts +5 -7
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
- package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
- package/src/__tests__/llm-resolver.test.ts +1 -1
- package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
- package/src/__tests__/llm-usage-store.test.ts +1 -1
- package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
- package/src/__tests__/mcp-abort-signal.test.ts +1 -2
- package/src/__tests__/mcp-client-auth.test.ts +1 -2
- package/src/__tests__/mcp-config-secret-boundary.test.ts +44 -40
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +1 -2
- package/src/__tests__/media-generate-image.test.ts +30 -30
- package/src/__tests__/memory-config-file-parity.test.ts +6 -6
- package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
- package/src/__tests__/migration-import-commit-http.test.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +2 -2
- package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
- package/src/__tests__/notification-deep-link.test.ts +40 -40
- package/src/__tests__/oauth-apps-routes.test.ts +3 -3
- package/src/__tests__/oauth-cli.test.ts +9 -9
- package/src/__tests__/oauth-commands-routes.test.ts +16 -16
- package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
- package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
- package/src/__tests__/oauth-providers-routes.test.ts +12 -12
- package/src/__tests__/oauth-store.test.ts +1 -1
- package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
- package/src/__tests__/onboarding-persona-write.test.ts +2 -2
- package/src/__tests__/openai-image-service.test.ts +2 -2
- package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
- package/src/__tests__/openai-responses-provider.test.ts +1 -1
- package/src/__tests__/path-policy.test.ts +4 -4
- package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
- package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
- package/src/__tests__/plugin-api-provider.test.ts +1 -1
- package/src/__tests__/plugin-api-store-credential.test.ts +4 -1
- package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
- package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
- package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
- package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
- package/src/__tests__/provider-connections-backfill.test.ts +9 -9
- package/src/__tests__/provider-error-scenarios.test.ts +8 -8
- package/src/__tests__/provider-registry-ollama.test.ts +1 -1
- package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
- package/src/__tests__/registry.test.ts +3 -3
- package/src/__tests__/requests-mock.ts +972 -0
- package/src/__tests__/resolve-trust-class.test.ts +1 -1
- package/src/__tests__/resource-pressure-guard.test.ts +6 -6
- package/src/__tests__/resource-pressure-routes.test.ts +5 -5
- package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
- package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
- package/src/__tests__/schedule-store.test.ts +1 -1
- package/src/__tests__/search-skills-unified.test.ts +9 -7
- package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
- package/src/__tests__/secret-routes-scrub.test.ts +2 -59
- package/src/__tests__/secure-keys.test.ts +1 -1
- package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
- package/src/__tests__/skill-load-tool.test.ts +1 -1
- package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
- package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
- package/src/__tests__/skill-tool-factory.test.ts +1 -1
- package/src/__tests__/skills-file-content-endpoint.test.ts +222 -536
- package/src/__tests__/skills-files-catalog-fallback.test.ts +259 -577
- package/src/__tests__/skills.test.ts +1 -1
- package/src/__tests__/slim-skill-category.test.ts +11 -9
- package/src/__tests__/stt-stream-session.test.ts +3 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
- package/src/__tests__/subagent-disposal.test.ts +5 -5
- package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
- package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
- package/src/__tests__/subagent-manager-notify.test.ts +5 -5
- package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
- package/src/__tests__/system-prompt.test.ts +1 -1
- package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
- package/src/__tests__/telegram-config.test.ts +16 -16
- package/src/__tests__/telephony-tts-guard.test.ts +13 -13
- package/src/__tests__/test-preload.ts +17 -7
- package/src/__tests__/tool-audit.test.ts +1 -1
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
- package/src/__tests__/turn-events-store.test.ts +1 -1
- package/src/__tests__/twilio-routes.test.ts +2 -1
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
- package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
- package/src/__tests__/validate-input.test.ts +5 -5
- package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
- package/src/__tests__/voice-config-update.test.ts +15 -15
- package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
- package/src/__tests__/web-search.test.ts +340 -859
- package/src/__tests__/workspace-git-service.test.ts +1 -1
- package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
- package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
- package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
- package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
- package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
- package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
- package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
- package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
- package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
- package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
- package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
- package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
- package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
- package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
- package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
- package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
- package/src/api/events/cloud-disconnected.ts +21 -0
- package/src/api/events/host-bash.ts +1 -1
- package/src/api/events/host-cu.ts +1 -1
- package/src/api/events/host-file.ts +1 -1
- package/src/api/events/notification-intent.ts +1 -1
- package/src/api/events/show-cloud-login.ts +18 -0
- package/src/api/index.ts +11 -11
- package/src/api/responses/home.ts +1 -1
- package/src/api/surfaces.ts +4 -4
- package/src/approvals/guardian-request-resolvers.ts +2 -2
- package/src/avatar/accent-backfill.ts +1 -1
- package/src/avatar/identity-avatar.ts +1 -1
- package/src/avatar/notification-avatar.test.ts +2 -2
- package/src/avatar/notification-avatar.ts +2 -2
- package/src/avatar/resvg-lazy.test.ts +1 -1
- package/src/avatar/resvg-lazy.ts +3 -3
- package/src/avatar/sync-avatar.test.ts +76 -76
- package/src/avatar/sync-avatar.ts +15 -15
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/background-wake/background-wake-routes.test.ts +39 -39
- package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
- package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
- package/src/background-wake/publisher.ts +4 -4
- package/src/background-wake/wake-intent-hooks.test.ts +3 -3
- package/src/calls/__tests__/call-controller.test.ts +2 -2
- package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
- package/src/calls/call-domain.ts +1 -1
- package/src/calls/resolve-call-tts-provider.ts +6 -6
- package/src/calls/telephony-credential-preflight.ts +3 -3
- package/src/calls/telephony-tts-capability.ts +5 -6
- package/src/calls/tts-call-strategy.ts +1 -1
- package/src/calls/voice-escalation-judge.ts +1 -1
- package/src/calls/voice-ingress-preflight.ts +4 -4
- package/src/cli/bundled-modules.ts +1 -1
- package/src/cli/commands/__tests__/apps.test.ts +18 -53
- package/src/cli/commands/__tests__/plugins.test.ts +13 -13
- package/src/cli/commands/__tests__/tts.test.ts +1 -1
- package/src/cli/commands/auth.help.ts +3 -3
- package/src/cli/commands/auth.ts +2 -4
- package/src/cli/commands/browser.help.ts +2 -2
- package/src/cli/commands/channels/index.help.ts +2 -2
- package/src/cli/commands/channels/index.ts +1 -1
- package/src/cli/commands/channels/send.ts +1 -1
- package/src/cli/commands/cloud/__tests__/callback-routes-list.test.ts +2 -2
- package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
- package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
- package/src/cli/commands/cloud/connect.ts +2 -2
- package/src/cli/commands/cloud/credits-format.ts +1 -1
- package/src/cli/commands/cloud/index.help.ts +35 -35
- package/src/cli/commands/cloud/index.ts +1 -1
- package/src/cli/commands/config.ts +2 -2
- package/src/cli/commands/credentials.ts +10 -12
- package/src/cli/commands/domain.ts +1 -1
- package/src/cli/commands/email.help.ts +1 -1
- package/src/cli/commands/email.ts +2 -2
- package/src/cli/commands/gateway.help.ts +1 -1
- package/src/cli/commands/gateway.ts +1 -1
- package/src/cli/commands/image-generation.help.ts +1 -1
- package/src/cli/commands/inference-providers.ts +1 -1
- package/src/cli/commands/inference.help.ts +2 -2
- package/src/cli/commands/memory/index.help.ts +1 -1
- package/src/cli/commands/oauth/connect.test.ts +2 -2
- package/src/cli/commands/oauth/connect.ts +1 -1
- package/src/cli/commands/oauth/index.help.ts +5 -5
- package/src/cli/commands/oauth/providers.ts +2 -2
- package/src/cli/commands/oauth/shared.ts +3 -3
- package/src/cli/commands/plugins.help.ts +2 -3
- package/src/cli/commands/plugins.ts +5 -5
- package/src/cli/commands/roadmap.help.ts +1 -1
- package/src/cli/commands/telemetry.help.ts +2 -2
- package/src/cli/commands/telemetry.ts +2 -2
- package/src/cli/commands/tts.help.ts +3 -3
- package/src/cli/commands/webhooks.help.ts +9 -9
- package/src/cli/commands/webhooks.ts +1 -1
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
- package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
- package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
- package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
- package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
- package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
- package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
- package/src/cli/lib/bundled-marketplace.json +1 -1
- package/src/cli/lib/inspect-plugin.ts +2 -2
- package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
- package/src/cli/lib/install-from-github.ts +4 -4
- package/src/cli/lib/plugin-catalog-cache.ts +7 -7
- package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
- package/src/cli/lib/plugin-catalog-local.ts +2 -2
- package/src/cli/lib/publish-plugin.ts +9 -10
- package/src/cli/lib/search-plugins.ts +2 -2
- package/src/{platform → cloud}/client.test.ts +85 -86
- package/src/{platform → cloud}/client.ts +38 -46
- package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
- package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
- package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
- package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
- package/src/{platform → cloud}/consent-cache.test.ts +5 -5
- package/src/{platform → cloud}/consent-cache.ts +8 -8
- package/src/cloud/feature-gate.ts +8 -0
- package/src/{platform → cloud}/sync-identity.test.ts +4 -4
- package/src/{platform → cloud}/sync-identity.ts +6 -6
- package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
- package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
- package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
- package/src/config/__tests__/default-provider.test.ts +4 -4
- package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
- package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
- package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
- package/src/config/__tests__/profile-materialization.test.ts +7 -7
- package/src/config/__tests__/seed-default-provider.test.ts +17 -17
- package/src/config/__tests__/substrate-twin-shadowing.test.ts +36 -26
- package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
- package/src/config/__tests__/webhook-routing.test.ts +51 -51
- package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
- package/src/config/bundled-skills/messaging/SKILL.md +8 -8
- package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
- package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
- package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
- package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
- package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
- package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
- package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
- package/src/config/call-site-defaults.ts +6 -6
- package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
- package/src/config/cloud-rehydration.ts +35 -0
- package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
- package/src/config/default-profile-catalog.ts +36 -38
- package/src/config/default-profile-names.ts +11 -11
- package/src/config/default-provider-resolution.ts +2 -2
- package/src/config/default-provider.ts +1 -1
- package/src/config/env-registry.ts +21 -26
- package/src/config/env.ts +33 -46
- package/src/config/feature-flag-registry.json +5 -5
- package/src/config/inference-profile-validation.ts +1 -1
- package/src/config/llm-resolver.ts +9 -10
- package/src/config/loader.ts +33 -17
- package/src/config/profile-materialization.ts +8 -8
- package/src/config/profile-text-generation.test.ts +1 -1
- package/src/config/sanitize-for-transfer.ts +1 -1
- package/src/config/schema.ts +6 -6
- package/src/config/schemas/__tests__/stt.test.ts +2 -2
- package/src/config/schemas/call-site-catalog.ts +1 -1
- package/src/config/schemas/channels.ts +8 -0
- package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
- package/src/config/schemas/host-browser.ts +1 -0
- package/src/config/schemas/ingress.ts +29 -10
- package/src/config/schemas/llm.ts +36 -36
- package/src/config/schemas/memory-lifecycle.ts +11 -1
- package/src/config/schemas/services.ts +4 -4
- package/src/config/schemas/stt.ts +3 -3
- package/src/config/schemas/tts.ts +10 -5
- package/src/config/schemas/voice.ts +1 -1
- package/src/config/seed-inference-profiles.ts +19 -19
- package/src/config/skill-state.ts +2 -2
- package/src/config/skills.ts +4 -4
- package/src/config/substrate-twin-shadowing.ts +12 -17
- package/src/config/sync-gated-profiles.ts +8 -9
- package/src/config/webhook-routing.ts +19 -19
- package/src/contacts/contacts-write.ts +1 -1
- package/src/credential-execution/ces-runtime.ts +6 -6
- package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
- package/src/credential-execution/prompted-credential.ts +2 -23
- package/src/credential-health/credential-health-service.ts +59 -70
- package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
- package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
- package/src/daemon/config-watcher.ts +2 -2
- package/src/daemon/conversation-agent-loop.ts +9 -9
- package/src/daemon/conversation-error.ts +36 -36
- package/src/daemon/conversation-skill-tools.ts +7 -7
- package/src/daemon/conversation-surfaces.ts +1 -1
- package/src/daemon/conversation-tool-setup.ts +2 -2
- package/src/daemon/conversation-turn-finalize.ts +1 -1
- package/src/daemon/conversation-workspace.ts +1 -1
- package/src/daemon/conversation.ts +1 -1
- package/src/daemon/credential-transcript-scrub.ts +32 -35
- package/src/daemon/daemon-readiness.ts +1 -1
- package/src/daemon/event-loop-watchdog.ts +2 -2
- package/src/daemon/handlers/config-ingress.ts +9 -9
- package/src/daemon/handlers/config-telegram.ts +6 -6
- package/src/daemon/handlers/skills.ts +20 -20
- package/src/daemon/host-cu-proxy.ts +1 -1
- package/src/daemon/lifecycle.ts +19 -19
- package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
- package/src/daemon/providers-setup.ts +6 -6
- package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
- package/src/daemon/resource-pressure-guard.ts +6 -6
- package/src/daemon/shutdown-handlers.ts +1 -1
- package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
- package/src/daemon/trust-context.ts +1 -1
- package/src/desktop/desktop-automation-lease.ts +1 -1
- package/src/desktop/desktop-browser-endpoint.ts +2 -4
- package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
- package/src/desktop/desktop-stream-bridge.test.ts +4 -4
- package/src/desktop/desktop-stream-bridge.ts +1 -1
- package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
- package/src/desktop/virtual-desktop-feature.ts +7 -7
- package/src/email/byo-email-credential.ts +1 -1
- package/src/email/registered-inbox.test.ts +16 -16
- package/src/email/registered-inbox.ts +20 -20
- package/src/heartbeat/heartbeat-service.ts +1 -1
- package/src/hooks/hook-loader.ts +2 -2
- package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
- package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
- package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
- package/src/inbound/oauth-callback-url.ts +6 -6
- package/src/inbound/pod-webhook-claim.ts +2 -2
- package/src/inbound/public-ingress-urls.ts +3 -3
- package/src/inbound/tunnel-probe.ts +21 -15
- package/src/inbound/tunnel-webhooks-gate.ts +3 -3
- package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
- package/src/ipc/__tests__/email-ipc.test.ts +8 -8
- package/src/ipc/gateway-client.test.ts +55 -59
- package/src/ipc/gateway-flag-listener.ts +3 -3
- package/src/ipc/routes/db-proxy.ts +1 -1
- package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
- package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
- package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
- package/src/live-voice/live-activity-reporter.ts +7 -7
- package/src/live-voice/live-voice-credential-preflight.ts +6 -6
- package/src/live-voice/live-voice-session.ts +3 -3
- package/src/live-voice/live-voice-tts.ts +1 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
- package/src/mcp/mcp-oauth-provider.ts +2 -2
- package/src/media/gemini-image-service.ts +11 -13
- package/src/media/image-credentials.ts +9 -9
- package/src/media/openai-image-service.ts +1 -1
- package/src/media/types.ts +3 -3
- package/src/messaging/providers/channel-transport.ts +1 -1
- package/src/messaging/providers/discord/transport.ts +1 -1
- package/src/messaging/providers/gmail/adapter.ts +1 -1
- package/src/messaging/providers/gmail/client.ts +4 -4
- package/src/messaging/providers/outlook/adapter.ts +1 -1
- package/src/messaging/providers/slack/adapter.ts +1 -1
- package/src/messaging/providers/slack/transport.ts +1 -1
- package/src/messaging/providers/telegram-bot/transport.ts +1 -1
- package/src/monitoring/db-integrity-check.ts +1 -1
- package/src/monitoring/db-integrity-sample.ts +2 -2
- package/src/monitoring/mount-watch.ts +1 -1
- package/src/monitoring/oom-kill-reporter.ts +1 -1
- package/src/monitoring/worker.ts +5 -5
- package/src/notifications/README.md +2 -2
- package/src/notifications/__tests__/broadcaster.test.ts +9 -9
- package/src/notifications/__tests__/completion-policy.test.ts +1 -1
- package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
- package/src/notifications/activity-failed-dedupe.ts +1 -1
- package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
- package/src/notifications/broadcaster.ts +10 -10
- package/src/notifications/decision-engine.ts +1 -1
- package/src/notifications/destination-resolver.ts +1 -1
- package/src/notifications/emit-signal.ts +6 -6
- package/src/notifications/types.ts +2 -2
- package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
- package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
- package/src/oauth/byo-connection.test.ts +2 -2
- package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
- package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
- package/src/oauth/connection-resolver.test.ts +59 -61
- package/src/oauth/connection-resolver.ts +22 -22
- package/src/oauth/connection.ts +1 -1
- package/src/oauth/oauth-store.ts +8 -8
- package/src/oauth/provider-serializer.ts +4 -4
- package/src/oauth/revoke.ts +1 -1
- package/src/oauth/seed-providers.ts +32 -32
- package/src/permissions/approval-provenance.ts +1 -1
- package/src/permissions/checker.test.ts +18 -16
- package/src/permissions/checker.ts +3 -3
- package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
- package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
- package/src/persistence/embeddings/embedding-backend.ts +13 -13
- package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
- package/src/persistence/embeddings/embedding-gemini.ts +11 -11
- package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
- package/src/persistence/jobs-store.ts +1 -1
- package/src/persistence/lifecycle-events-store.ts +1 -1
- package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
- package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
- package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
- package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
- package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
- package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
- package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
- package/src/persistence/schema/oauth.ts +1 -1
- package/src/plugin-api/index.ts +4 -4
- package/src/plugin-api/model-profiles.test.ts +1 -1
- package/src/plugin-api/model-profiles.ts +1 -1
- package/src/plugin-api/transcription-session.ts +1 -1
- package/src/plugin-api/vision-support.test.ts +1 -1
- package/src/plugin-api/webhook-url.ts +12 -12
- package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
- package/src/plugins/defaults/cloud-hosted/package.json +14 -0
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
- package/src/plugins/defaults/index.ts +6 -6
- package/src/plugins/defaults/main.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +5 -0
- package/src/plugins/defaults/memory/config.ts +4 -4
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
- package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
- package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
- package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
- package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
- package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
- package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
- package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
- package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
- package/src/plugins/defaults/memory/worker.ts +5 -5
- package/src/plugins/defaults/workspace/injectors.ts +2 -2
- package/src/plugins/mtime-cache.ts +1 -1
- package/src/plugins/source-versions.ts +1 -1
- package/src/plugins/types.ts +1 -1
- package/src/prompts/__tests__/system-prompt.test.ts +1 -1
- package/src/prompts/normalize-onboarding.ts +1 -1
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/templates/system-sections.ts +3 -3
- package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
- package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
- package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
- package/src/providers/__tests__/inference.test.ts +2 -2
- package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
- package/src/providers/__tests__/retry-callsite.test.ts +1 -1
- package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
- package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
- package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
- package/src/providers/anthropic/client.ts +1 -1
- package/src/providers/cadet/client.ts +1 -1
- package/src/providers/cadet-model-routing.test.ts +19 -19
- package/src/providers/cadet-model-routing.ts +23 -23
- package/src/providers/call-site-routing.ts +10 -10
- package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
- package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
- package/src/providers/connection-resolution.ts +43 -43
- package/src/providers/fallback-breaker.ts +2 -2
- package/src/providers/fetch-provider-catalog.ts +3 -3
- package/src/providers/gemini/client.ts +5 -5
- package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
- package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
- package/src/providers/inference/adapter-factory.ts +35 -35
- package/src/providers/inference/auth.ts +10 -10
- package/src/providers/inference/backfill.ts +11 -11
- package/src/providers/inference/connection-availability.ts +24 -24
- package/src/providers/inference/connections.ts +18 -20
- package/src/providers/inference/profile-probe.ts +4 -4
- package/src/providers/inference/resolve-auth.ts +8 -8
- package/src/providers/jev/ask.test.ts +1 -1
- package/src/providers/jev/ask.ts +2 -2
- package/src/providers/model-catalog.ts +8 -9
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
- package/src/providers/openai/api-error-normalization.ts +2 -2
- package/src/providers/provider-availability.ts +4 -4
- package/src/providers/provider-env-vars.ts +1 -1
- package/src/providers/provider-secret-catalog.ts +1 -1
- package/src/providers/registry.ts +20 -20
- package/src/providers/retry.ts +26 -26
- package/src/providers/routing-identity.ts +10 -10
- package/src/providers/search-provider-catalog.ts +2 -2
- package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
- package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
- package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
- package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
- package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
- package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
- package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
- package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
- package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
- package/src/providers/speech-to-text/provider-catalog.ts +3 -3
- package/src/providers/speech-to-text/resolve.ts +26 -28
- package/src/providers/together/client.ts +1 -1
- package/src/providers/types.ts +4 -4
- package/src/providers/voice-error-copy.ts +1 -1
- package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
- package/src/runtime/agent-wake.ts +1 -1
- package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
- package/src/runtime/auth/middleware.ts +1 -1
- package/src/runtime/auth/scopes.ts +1 -1
- package/src/runtime/capabilities.ts +1 -1
- package/src/runtime/channel-invite-transports/discord.ts +1 -1
- package/src/runtime/channel-invite-transports/email.ts +2 -2
- package/src/runtime/channel-readiness-service.ts +15 -13
- package/src/runtime/channel-reply-session.test.ts +1 -1
- package/src/runtime/channel-reply-session.ts +1 -1
- package/src/runtime/http-server.ts +4 -4
- package/src/runtime/introduction-policy.ts +4 -4
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
- package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
- package/src/runtime/migrations/migration-transport.ts +3 -3
- package/src/runtime/migrations/origin-mode.ts +6 -9
- package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
- package/src/runtime/migrations/vbundle-importer.ts +4 -4
- package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
- package/src/runtime/migrations/vbundle-validator.ts +1 -1
- package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
- package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +126 -82
- package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
- package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
- package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
- package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
- package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
- package/src/runtime/routes/app-management-routes.ts +1 -1
- package/src/runtime/routes/attachment-routes.ts +1 -1
- package/src/runtime/routes/auth-routes.ts +14 -14
- package/src/runtime/routes/avatar-routes.ts +0 -14
- package/src/runtime/routes/background-wake-routes.ts +4 -4
- package/src/runtime/routes/channel-availability-routes.ts +4 -4
- package/src/runtime/routes/client-routes.ts +5 -5
- package/src/runtime/routes/cloud-credentials.ts +45 -0
- package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +86 -119
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +345 -667
- package/src/runtime/routes/credential-routes.ts +28 -30
- package/src/runtime/routes/default-provider-routes.ts +1 -1
- package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
- package/src/runtime/routes/desktop-setup-routes.ts +1 -1
- package/src/runtime/routes/domain-routes.ts +15 -21
- package/src/runtime/routes/email-routes.ts +13 -13
- package/src/runtime/routes/errors.ts +1 -1
- package/src/runtime/routes/gateway-status-routes.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +3 -3
- package/src/runtime/routes/inbound-message-handler.ts +1 -1
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
- package/src/runtime/routes/index.ts +1 -1
- package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
- package/src/runtime/routes/inference-profiles-routes.ts +11 -11
- package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
- package/src/runtime/routes/ingress-status-routes.ts +1 -1
- package/src/runtime/routes/integrations/a2a.ts +2 -2
- package/src/runtime/routes/integrations/twilio.ts +21 -35
- package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
- package/src/runtime/routes/live-voice-routes.test.ts +4 -4
- package/src/runtime/routes/live-voice-routes.ts +6 -6
- package/src/runtime/routes/migration-routes.ts +34 -40
- package/src/runtime/routes/oauth-commands-routes.ts +31 -31
- package/src/runtime/routes/oauth-providers.ts +5 -5
- package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
- package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
- package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
- package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
- package/src/runtime/routes/oauth-request-hints.ts +1 -1
- package/src/runtime/routes/plugins-routes.ts +9 -9
- package/src/runtime/routes/profiler-routes.ts +1 -1
- package/src/runtime/routes/ps-routes.ts +4 -0
- package/src/runtime/routes/roadmap-routes.ts +18 -20
- package/src/runtime/routes/secret-routes.ts +20 -61
- package/src/runtime/routes/settings-routes.ts +18 -23
- package/src/runtime/routes/telemetry-routes.ts +4 -4
- package/src/runtime/routes/tts-routes.ts +4 -4
- package/src/runtime/routes/user-route-resolution.ts +1 -1
- package/src/runtime/routes/webhook-routes.ts +18 -18
- package/src/runtime/routes/workflow-routes.ts +5 -5
- package/src/runtime/sync/resource-sync-events.ts +2 -2
- package/src/runtime/verification-outbound-actions.ts +4 -4
- package/src/schedule/integration-status.ts +6 -6
- package/src/schedule/run-script.ts +1 -1
- package/src/schedule/schedule-timezone.ts +1 -1
- package/src/schedule/worker.ts +5 -5
- package/src/security/auth-fallback-events-store.ts +1 -1
- package/src/security/oauth2.ts +4 -4
- package/src/skills/available-skills.ts +4 -4
- package/src/skills/catalog-files.ts +8 -8
- package/src/skills/catalog-install.ts +12 -12
- package/src/skills/categories-cache.ts +3 -3
- package/src/skills/clawhub.ts +1 -1
- package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
- package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
- package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
- package/src/skills/inline-command-runner.ts +1 -1
- package/src/skills/install-meta.ts +1 -1
- package/src/skills/path-classifier.ts +4 -4
- package/src/skills/skill-history.ts +4 -4
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
- package/src/stt/daemon-batch-transcriber.ts +7 -7
- package/src/stt/types.ts +3 -3
- package/src/subagent/manager.ts +15 -15
- package/src/subagent/types.ts +1 -1
- package/src/telegram/__tests__/webhook-health.test.ts +16 -16
- package/src/telegram/webhook-health.ts +10 -10
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
- package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
- package/src/telemetry/config-setting-events-store.ts +1 -1
- package/src/telemetry/config-setting-snapshot.ts +1 -1
- package/src/telemetry/memory-corpus-size.ts +1 -1
- package/src/telemetry/memory-tier-reporter.test.ts +2 -2
- package/src/telemetry/memory-tier-reporter.ts +3 -3
- package/src/telemetry/telemetry-event-sources.test.ts +2 -2
- package/src/telemetry/telemetry-event-sources.ts +9 -9
- package/src/telemetry/telemetry-events-outbox.ts +2 -2
- package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
- package/src/telemetry/telemetry-wire-validation.ts +3 -3
- package/src/telemetry/telemetry-wire.generated.ts +1 -1
- package/src/telemetry/tool-audit.ts +1 -1
- package/src/telemetry/tool-executed-events-store.test.ts +1 -1
- package/src/telemetry/trace-collection-policy.ts +4 -4
- package/src/telemetry/turn-events-store.ts +1 -1
- package/src/telemetry/turn-outcome.ts +1 -1
- package/src/telemetry/turn-trace-store.ts +2 -2
- package/src/telemetry/types.test.ts +1 -1
- package/src/telemetry/types.ts +19 -19
- package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
- package/src/telemetry/usage-telemetry-reporter.ts +17 -17
- package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
- package/src/telemetry/watchdog-direct-emit.ts +10 -10
- package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
- package/src/tools/browser/cdp-client/factory.ts +1 -1
- package/src/tools/computer-use/target.ts +2 -2
- package/src/tools/credentials/store.ts +2 -20
- package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
- package/src/tools/network/__tests__/web-search.test.ts +14 -14
- package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
- package/src/tools/network/web-search.ts +9 -9
- package/src/tools/permission-checker.ts +2 -2
- package/src/tools/shared/input-misuse.ts +1 -1
- package/src/tools/shared/input-repairs.ts +4 -4
- package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
- package/src/tools/skills/find-similar-skills.test.ts +7 -7
- package/src/tools/skills/find-similar-skills.ts +15 -15
- package/src/tools/skills/load.ts +6 -6
- package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
- package/src/tools/skills/skill-script-runner.ts +2 -2
- package/src/tools/terminal/safe-env.ts +3 -3
- package/src/tools/tool-types.ts +2 -2
- package/src/tools/types.ts +2 -2
- package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
- package/src/tools/workflows/manage-workflows.ts +1 -1
- package/src/tools/workspace-tools/loader.ts +1 -1
- package/src/tts/__tests__/cadet-provider.test.ts +5 -5
- package/src/tts/provider-catalog.ts +1 -1
- package/src/tts/providers/cadet-provider.ts +23 -23
- package/src/tts/providers/cadet-tts-socket.ts +2 -2
- package/src/tts/tts-config-resolver.ts +1 -1
- package/src/tts/tts-voice-field.ts +3 -3
- package/src/usage/subagent-attribution.ts +1 -1
- package/src/util/__tests__/process-table.test.ts +47 -0
- package/src/util/canonicalize-identity.ts +1 -1
- package/src/util/cgroup-cpu.ts +5 -5
- package/src/util/cgroup-memory.ts +2 -2
- package/src/util/container-cpu-sampler.ts +4 -4
- package/src/util/disk-usage.ts +4 -4
- package/src/util/errors.ts +3 -3
- package/src/util/layout.ts +479 -0
- package/src/util/oom-priority.ts +1 -1
- package/src/util/platform.ts +12 -468
- package/src/util/process-table.ts +39 -5
- package/src/util/provider-error-patterns.ts +2 -2
- package/src/watch/__tests__/watch-retro.test.ts +2 -2
- package/src/watch/watch-retro.ts +1 -1
- package/src/watcher/__tests__/telemetry.test.ts +2 -2
- package/src/watcher/telemetry.ts +1 -1
- package/src/windows-compiled-cli.ts +1 -1
- package/src/workspace/adaptive-thinking-repair.ts +4 -4
- package/src/workspace/byok-default-profile-ensure.ts +7 -7
- package/src/workspace/git-service.ts +2 -2
- package/src/workspace/migrations/006-services-config.ts +1 -1
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
- package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
- package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
- package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
- package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
- package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
- package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
- package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
- package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
- package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
- package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
- package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
- package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
- package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
- package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
- package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
- package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
- package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
- package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
- package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
- package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
- package/src/workspace/migrations/127-backfill-default-provider.ts +6 -6
- package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
- package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
- package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
- package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
- package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
- package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
- package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
- package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
- package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
- package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
- package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
- package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
- package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
- package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
- package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
- package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
- package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
- package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
- package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
- package/src/workspace/migrations/registry.ts +6 -6
- package/src/workspace/top-level-renderer.ts +1 -1
- package/src/workspace/turn-commit.ts +2 -2
- package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
- package/src/__tests__/mock-gateway-ipc.ts +0 -260
- package/src/api/events/platform-disconnected.ts +0 -21
- package/src/api/events/show-platform-login.ts +0 -20
- package/src/config/platform-rehydration.ts +0 -60
- package/src/platform/feature-gate.ts +0 -8
- package/src/plugins/defaults/platform-hosted/package.json +0 -14
- package/src/runtime/routes/platform-managed-credentials.ts +0 -50
- /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
- /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
package/src/util/platform.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Platform detection and environment-shaping helpers.
|
|
3
|
+
*
|
|
4
|
+
* Directory-layout helpers (every canonical path under the workspace and
|
|
5
|
+
* its data dir) live in `util/layout.ts` — they were never platform
|
|
6
|
+
* concerns. This module re-exports that module for backward compatibility;
|
|
7
|
+
* new code should import layout helpers from `./layout.js` directly.
|
|
8
|
+
*/
|
|
9
|
+
|
|
2
10
|
import { homedir } from "node:os";
|
|
3
|
-
import { delimiter,
|
|
11
|
+
import { delimiter, join } from "node:path";
|
|
4
12
|
|
|
5
|
-
|
|
6
|
-
AVATAR_IMAGE_FILENAME,
|
|
7
|
-
AVATAR_MANIFEST_FILENAME,
|
|
8
|
-
resolveAvatarDir,
|
|
9
|
-
} from "@mycadet/avatar-manifest";
|
|
10
|
-
import { assertTestPathIsEphemeral as assertEphemeralInTests } from "@mycadet/environments/test-path-guard";
|
|
13
|
+
export * from "./layout.js";
|
|
11
14
|
|
|
12
15
|
export function isMacOS(): boolean {
|
|
13
16
|
return process.platform === "darwin";
|
|
@@ -52,7 +55,7 @@ export function getExtraToolPathDirs(): string[] {
|
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
/**
|
|
55
|
-
* Add missing `dirs` to the PATH entry of `env` in place, using the
|
|
58
|
+
* Add missing `dirs` to the PATH entry of `env` in place, using the cloud
|
|
56
59
|
* delimiter. Windows keys the variable as `Path`, so the existing key is
|
|
57
60
|
* matched case-insensitively rather than assuming `PATH`.
|
|
58
61
|
*/
|
|
@@ -108,462 +111,3 @@ export function normalizeAssistantId(assistantId: string): string {
|
|
|
108
111
|
|
|
109
112
|
return assistantId;
|
|
110
113
|
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Returns the internal data directory ($CADET_WORKSPACE_DIR/data). Runtime
|
|
114
|
-
* databases, logs, memory indices, and other internal state live here.
|
|
115
|
-
*/
|
|
116
|
-
export function getDataDir(): string {
|
|
117
|
-
return join(getWorkspaceDir(), "data");
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Returns the path to the config-quarantine notice sentinel
|
|
122
|
-
* (`<workspace>/data/config-quarantine-notice.json`).
|
|
123
|
-
*
|
|
124
|
-
* Written by the config loader when a corrupt `config.json` is quarantined and
|
|
125
|
-
* read by the per-turn `config-quarantine-notice` injector. Lives under the
|
|
126
|
-
* internal data dir (runtime state, config-free to resolve) rather than the
|
|
127
|
-
* user-facing workspace root because it is daemon-written bookkeeping, not a
|
|
128
|
-
* file the user edits. The path resolves without loading config, so it is safe
|
|
129
|
-
* to call during early-boot config load before the DB or `getConfig().dataDir`
|
|
130
|
-
* exist.
|
|
131
|
-
*/
|
|
132
|
-
export function getConfigQuarantineNoticePath(): string {
|
|
133
|
-
return join(getDataDir(), "config-quarantine-notice.json");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Returns the path to the config-validation-reset notice sentinel
|
|
138
|
-
* (`<workspace>/data/config-validation-reset-notice.json`).
|
|
139
|
-
*
|
|
140
|
-
* Written by the config loader when `config.json` parses as JSON but fails
|
|
141
|
-
* schema validation so hard that the loader falls back to *full* defaults
|
|
142
|
-
* (e.g. an unknown key that masks a `superRefine` violation until the offending
|
|
143
|
-
* key is stripped). Unlike a quarantine, the on-disk file is left untouched —
|
|
144
|
-
* the user's customized values are still present but inactive until the invalid
|
|
145
|
-
* entries are fixed. Read by the per-turn `config-validation-reset-notice`
|
|
146
|
-
* injector so the agent can explain a settings/connection change the user did
|
|
147
|
-
* not make. Lives beside the quarantine sentinel under the internal data dir
|
|
148
|
-
* for the same reasons (daemon-written bookkeeping; resolves without loading
|
|
149
|
-
* config, so it is safe during early-boot config load).
|
|
150
|
-
*/
|
|
151
|
-
export function getConfigValidationResetNoticePath(): string {
|
|
152
|
-
return join(getDataDir(), "config-validation-reset-notice.json");
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Returns the embedding models directory ($CADET_WORKSPACE_DIR/embedding-models).
|
|
157
|
-
* Downloaded embedding runtime (onnxruntime-node, transformers bundle, model weights)
|
|
158
|
-
* is stored here, downloaded post-hatch rather than shipped with the app.
|
|
159
|
-
*/
|
|
160
|
-
export function getEmbeddingModelsDir(): string {
|
|
161
|
-
return join(getWorkspaceDir(), "embedding-models");
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Returns the sandbox root directory (<workspace>/data/sandbox).
|
|
166
|
-
* Global sandbox state lives under this directory.
|
|
167
|
-
*/
|
|
168
|
-
export function getSandboxRootDir(): string {
|
|
169
|
-
return join(getDataDir(), "sandbox");
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Returns the default sandbox working directory ($CADET_WORKSPACE_DIR).
|
|
174
|
-
* This is the workspace root — tool working directories should use this
|
|
175
|
-
* path unless explicitly overridden.
|
|
176
|
-
*/
|
|
177
|
-
export function getSandboxWorkingDir(): string {
|
|
178
|
-
return getWorkspaceDir();
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Returns the sounds directory ($CADET_WORKSPACE_DIR/data/sounds).
|
|
183
|
-
* Custom sound files and sound configuration live here.
|
|
184
|
-
*/
|
|
185
|
-
export function getSoundsDir(): string {
|
|
186
|
-
return join(getWorkspaceDir(), "data", "sounds");
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/** Returns the avatar directory ($CADET_WORKSPACE_DIR/data/avatar). */
|
|
190
|
-
export function getAvatarDir(): string {
|
|
191
|
-
return resolveAvatarDir(getWorkspaceDir());
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/** Returns the canonical avatar image path ($CADET_WORKSPACE_DIR/data/avatar/avatar-image.png). */
|
|
195
|
-
export function getAvatarImagePath(): string {
|
|
196
|
-
return join(getAvatarDir(), AVATAR_IMAGE_FILENAME);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/** Returns the canonical avatar manifest path ($CADET_WORKSPACE_DIR/data/avatar/avatar.json). */
|
|
200
|
-
export function getAvatarManifestPath(): string {
|
|
201
|
-
return join(getAvatarDir(), AVATAR_MANIFEST_FILENAME);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export function getPidPath(): string {
|
|
205
|
-
return join(getWorkspaceDir(), "cadet.pid");
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export function getDbPath(): string {
|
|
209
|
-
return join(getDataDir(), "db", "assistant.db");
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Returns the directory where logs live: `<dataDir>/logs/`. Files rotate
|
|
214
|
-
* daily (`assistant-YYYY-MM-DD.log`), so callers ask for the directory and
|
|
215
|
-
* let the logger own the filename.
|
|
216
|
-
*/
|
|
217
|
-
export function getLogsDir(): string {
|
|
218
|
-
return join(getDataDir(), "logs");
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
export function getHistoryPath(): string {
|
|
222
|
-
return join(getDataDir(), "history");
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/** Returns $CADET_WORKSPACE_DIR/signals — the directory for IPC signal files. */
|
|
226
|
-
export function getSignalsDir(): string {
|
|
227
|
-
return join(getWorkspaceDir(), "signals");
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// These expose specific root-level file paths so callers don't need to
|
|
231
|
-
// import getRootDir() directly. getRootDir() is intentionally unexported.
|
|
232
|
-
|
|
233
|
-
/** Returns the path to the daemon stderr log ($CADET_WORKSPACE_DIR/logs/daemon-stderr.log). */
|
|
234
|
-
export function getDaemonStderrLogPath(): string {
|
|
235
|
-
return join(getWorkspaceDir(), "logs", "daemon-stderr.log");
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/** Returns the path to the daemon startup lock file ($CADET_WORKSPACE_DIR/daemon-startup.lock). */
|
|
239
|
-
export function getDaemonStartupLockPath(): string {
|
|
240
|
-
return join(getWorkspaceDir(), "daemon-startup.lock");
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/** Returns the directory for externally-installed packages ($CADET_WORKSPACE_DIR/external). */
|
|
244
|
-
export function getExternalDir(): string {
|
|
245
|
-
return join(getWorkspaceDir(), "external");
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/** Returns the directory for installed binaries ($CADET_WORKSPACE_DIR/bin). */
|
|
249
|
-
export function getBinDir(): string {
|
|
250
|
-
return join(getWorkspaceDir(), "bin");
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Returns the path to the dot-env file (`<cadetRoot>/.env`, the parent of
|
|
255
|
-
* the workspace directory). Stays outside the workspace sandbox boundary
|
|
256
|
-
* because it contains secrets.
|
|
257
|
-
*/
|
|
258
|
-
export function getDotEnvPath(): string {
|
|
259
|
-
return join(dirname(getWorkspaceDir()), ".env");
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/** Returns the path to the embed-worker PID file ($CADET_WORKSPACE_DIR/embed-worker.pid). */
|
|
263
|
-
export function getEmbedWorkerPidPath(): string {
|
|
264
|
-
return join(getWorkspaceDir(), "embed-worker.pid");
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/** Returns the path to the memory-worker PID file ($CADET_WORKSPACE_DIR/memory-worker.pid). */
|
|
268
|
-
export function getMemoryWorkerPidPath(): string {
|
|
269
|
-
return join(getWorkspaceDir(), "memory-worker.pid");
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/** Returns the path to the schedule-worker PID file ($CADET_WORKSPACE_DIR/schedule-worker.pid). */
|
|
273
|
-
export function getScheduleWorkerPidPath(): string {
|
|
274
|
-
return join(getWorkspaceDir(), "schedule-worker.pid");
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Returns the directory where the resource monitor persists its forensics
|
|
279
|
-
* ($CADET_WORKSPACE_DIR/data/monitoring). Lives on the workspace volume (the
|
|
280
|
-
* PVC) so the sample ring buffer and high-memory snapshots survive an OOM
|
|
281
|
-
* SIGKILL that resets all in-process state. Git-ignored from the workspace
|
|
282
|
-
* tree (see `data/monitoring/` in git-service.ts) so the assistant's own
|
|
283
|
-
* telemetry is not auto-committed as user changes.
|
|
284
|
-
*/
|
|
285
|
-
export function getMonitoringDataDir(): string {
|
|
286
|
-
return join(getDataDir(), "monitoring");
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/** Returns the path to the monitoring PID file, under the monitor data dir. */
|
|
290
|
-
export function getMonitoringPidPath(): string {
|
|
291
|
-
return join(getMonitoringDataDir(), "monitoring.pid");
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Root holding every daemon-managed subprocess's runtime directory
|
|
296
|
-
* ($CADET_WORKSPACE_DIR/procs). Each managed subprocess keeps its IPC socket,
|
|
297
|
-
* PID file, and per-process scratch under `procs/<name>/`, so `ls procs` is a
|
|
298
|
-
* census of managed subprocesses and cleanup is one `rm -rf` of the subdir.
|
|
299
|
-
*/
|
|
300
|
-
export function getProcsDir(): string {
|
|
301
|
-
return join(getWorkspaceDir(), "procs");
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/** The runtime directory for one managed subprocess: `procs/<name>/`. */
|
|
305
|
-
export function getProcDir(name: string): string {
|
|
306
|
-
return join(getProcsDir(), name);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/** Create (if needed) and return a managed subprocess's runtime directory. */
|
|
310
|
-
export function ensureProcDir(name: string): string {
|
|
311
|
-
const dir = getProcDir(name);
|
|
312
|
-
mkdirSync(dir, { recursive: true });
|
|
313
|
-
return dir;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* The IPC socket a managed subprocess binds and the daemon connects to
|
|
318
|
-
* (`procs/<name>/ipc.sock`). The basename is fixed — the directory already
|
|
319
|
-
* carries the subprocess name. Keep it short: Unix `sun_path` is ~104–108 bytes.
|
|
320
|
-
*/
|
|
321
|
-
export function getProcSocketPath(name: string): string {
|
|
322
|
-
return join(getProcDir(name), "ipc.sock");
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/** The PID file a managed subprocess writes on readiness (`procs/<name>/<name>.pid`). */
|
|
326
|
-
export function getProcPidPath(name: string): string {
|
|
327
|
-
return join(getProcDir(name), `${name}.pid`);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// --- Live-workspace guard for test processes --------------------------------
|
|
331
|
-
//
|
|
332
|
-
// A test process must never resolve the workspace (or the cadet root) to a
|
|
333
|
-
// real, non-temp directory: production code exercised by a test would then
|
|
334
|
-
// read and destructively write live state. The containment assertion is
|
|
335
|
-
// shared with the gateway via @mycadet/environments/test-path-guard;
|
|
336
|
-
// src/__tests__/assert-not-live-db.ts keeps its own containment check
|
|
337
|
-
// because test machinery must not import production dependencies.
|
|
338
|
-
|
|
339
|
-
function assertTestPathIsEphemeral(dir: string): void {
|
|
340
|
-
assertEphemeralInTests(dir, {
|
|
341
|
-
// Shared with assertTestDbIsIsolated() in persistence/db-connection.ts.
|
|
342
|
-
allowEnvVar: "CADET_ALLOW_REAL_WORKSPACE_IN_TESTS",
|
|
343
|
-
runHint: "Run tests from the assistant package root.",
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* Returns the workspace root for user-facing state.
|
|
349
|
-
*
|
|
350
|
-
* When the CADET_WORKSPACE_DIR env var is set, returns that value (used in
|
|
351
|
-
* containerized deployments where the workspace is a separate volume).
|
|
352
|
-
* Otherwise falls back to `<cwd>/workspace`.
|
|
353
|
-
*
|
|
354
|
-
* In test processes the resolved directory must live under `os.tmpdir()`
|
|
355
|
-
* (see the live-workspace guard above); anything else throws.
|
|
356
|
-
*/
|
|
357
|
-
export function getWorkspaceDir(): string {
|
|
358
|
-
const dir =
|
|
359
|
-
process.env.CADET_WORKSPACE_DIR?.trim() || join(process.cwd(), "workspace");
|
|
360
|
-
assertTestPathIsEphemeral(dir);
|
|
361
|
-
return dir;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
* Returns a display-friendly workspace path for embedding in agent-facing text
|
|
366
|
-
* (skill bodies, tool descriptions). Replaces the home directory prefix with `~`
|
|
367
|
-
* so paths stay concise and portable across machines.
|
|
368
|
-
*
|
|
369
|
-
* Examples:
|
|
370
|
-
* /Users/alice/.local/share/cadet/workspace → ~/.local/share/cadet/workspace
|
|
371
|
-
* /workspace → /workspace
|
|
372
|
-
*/
|
|
373
|
-
export function getWorkspaceDirDisplay(): string {
|
|
374
|
-
return formatHomeRelativePath(getWorkspaceDir(), homedir());
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
interface PathOperations {
|
|
378
|
-
isAbsolute(path: string): boolean;
|
|
379
|
-
relative(from: string, to: string): string;
|
|
380
|
-
sep: string;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
export function formatHomeRelativePath(
|
|
384
|
-
absolutePath: string,
|
|
385
|
-
homePath: string,
|
|
386
|
-
pathOperations: PathOperations = { isAbsolute, relative, sep },
|
|
387
|
-
): string {
|
|
388
|
-
const relativeToHome = pathOperations.relative(homePath, absolutePath);
|
|
389
|
-
if (relativeToHome === "") {
|
|
390
|
-
return "~";
|
|
391
|
-
}
|
|
392
|
-
if (
|
|
393
|
-
relativeToHome !== ".." &&
|
|
394
|
-
!relativeToHome.startsWith(`..${pathOperations.sep}`) &&
|
|
395
|
-
!pathOperations.isAbsolute(relativeToHome)
|
|
396
|
-
) {
|
|
397
|
-
return `~${pathOperations.sep}${relativeToHome}`;
|
|
398
|
-
}
|
|
399
|
-
return absolutePath;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
/** Returns $CADET_WORKSPACE_DIR/config.json */
|
|
403
|
-
export function getWorkspaceConfigPath(): string {
|
|
404
|
-
return join(getWorkspaceDir(), "config.json");
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/** Filename for the user-owned Agent Plugins MCP document. */
|
|
408
|
-
export const WORKSPACE_MCP_FILENAME = "mcp.json";
|
|
409
|
-
|
|
410
|
-
/** Returns $CADET_WORKSPACE_DIR/mcp.json */
|
|
411
|
-
export function getWorkspaceMcpConfigPath(): string {
|
|
412
|
-
return join(getWorkspaceDir(), WORKSPACE_MCP_FILENAME);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/** Returns $CADET_WORKSPACE_DIR/skills */
|
|
416
|
-
export function getWorkspaceSkillsDir(): string {
|
|
417
|
-
return join(getWorkspaceDir(), "skills");
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/** Returns $CADET_WORKSPACE_DIR/hooks */
|
|
421
|
-
export function getWorkspaceHooksDir(): string {
|
|
422
|
-
return join(getWorkspaceDir(), "hooks");
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
/**
|
|
426
|
-
* Returns `<workspaceDir>/plugins` — the directory scanned by the user plugin
|
|
427
|
-
* loader at daemon startup. Writes here are security-sensitive: any
|
|
428
|
-
* `register.{ts,js}` will be dynamic-imported on next restart, so the file
|
|
429
|
-
* risk classifier escalates writes under this path to High.
|
|
430
|
-
*/
|
|
431
|
-
export function getWorkspacePluginsDir(): string {
|
|
432
|
-
return join(getWorkspaceDir(), "plugins");
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Returns $CADET_WORKSPACE_DIR/tools — user-defined tool overrides.
|
|
437
|
-
*
|
|
438
|
-
* Each subdirectory `<name>/` provides either an override of a core tool of
|
|
439
|
-
* the same name or a net-new tool. The single canonical location removes
|
|
440
|
-
* the "which plugin wins" ambiguity that would arise if multiple plugins
|
|
441
|
-
* could register competing overrides for the same tool.
|
|
442
|
-
*
|
|
443
|
-
* Files under this directory are dynamic-imported by the workspace-tool
|
|
444
|
-
* loader on daemon start; the file risk classifier escalates writes under
|
|
445
|
-
* this path to High for the same reason `plugins/` is escalated.
|
|
446
|
-
*/
|
|
447
|
-
export function getWorkspaceToolsDir(): string {
|
|
448
|
-
return join(getWorkspaceDir(), "tools");
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* Returns $CADET_WORKSPACE_DIR/routes — user-defined HTTP route handlers.
|
|
453
|
-
*
|
|
454
|
-
* Handler modules under this directory are dynamic-imported by the user-route
|
|
455
|
-
* dispatcher and their exported HTTP-method functions are executed on the
|
|
456
|
-
* next matching request, so the file risk classifier escalates writes under
|
|
457
|
-
* this path to High for the same reason `plugins/` and `tools/` are escalated.
|
|
458
|
-
*/
|
|
459
|
-
export function getWorkspaceRoutesDir(): string {
|
|
460
|
-
return join(getWorkspaceDir(), "routes");
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Returns $CADET_WORKSPACE_DIR/workflows — saved (named) workflow scripts.
|
|
465
|
-
*
|
|
466
|
-
* A file here becomes a saved workflow whose source is executed (in the sandbox,
|
|
467
|
-
* and unattended when triggered by a schedule), so the file risk classifier
|
|
468
|
-
* escalates writes under this path to High like `tools/` and `routes/`.
|
|
469
|
-
*/
|
|
470
|
-
export function getWorkspaceWorkflowsDir(): string {
|
|
471
|
-
return join(getWorkspaceDir(), "workflows");
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
/** Returns $CADET_WORKSPACE_DIR/deprecated — transitional files slated for removal. */
|
|
475
|
-
export function getDeprecatedDir(): string {
|
|
476
|
-
return join(getWorkspaceDir(), "deprecated");
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
/** Returns $CADET_WORKSPACE_DIR/conversations */
|
|
480
|
-
export function getConversationsDir(): string {
|
|
481
|
-
return join(getWorkspaceDir(), "conversations");
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/** Returns the workspace path for a prompt file (e.g. IDENTITY.md, SOUL.md). */
|
|
485
|
-
export function getWorkspacePromptPath(file: string): string {
|
|
486
|
-
return join(getWorkspaceDir(), file);
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
/**
|
|
490
|
-
* Returns `<workspaceDir>/prompts/system` — the workspace override layer for
|
|
491
|
-
* system prompt sections. Layout: `prompts/system/<NN-name>.md`.
|
|
492
|
-
*
|
|
493
|
-
* The bundled section registry (`prompts/templates/system-sections.ts`) is
|
|
494
|
-
* the source of default truth; a file here with the same id replaces the
|
|
495
|
-
* bundled body (or, stripped to nothing, silences it), and a brand-new
|
|
496
|
-
* `<NN-name>` adds a workspace-only section. Because that includes the
|
|
497
|
-
* security-policy sections, writes under this directory are gated as a
|
|
498
|
-
* control-plane prompt surface (`permissions/workspace-policy.ts`).
|
|
499
|
-
*/
|
|
500
|
-
export function getWorkspaceSystemPromptDir(): string {
|
|
501
|
-
return join(getWorkspaceDir(), "prompts", "system");
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
// Managed profiler runs live under <workspace>/data/profiler/. These
|
|
505
|
-
// helpers enforce a single canonical layout so every runtime caller
|
|
506
|
-
// resolves the same paths.
|
|
507
|
-
|
|
508
|
-
/**
|
|
509
|
-
* Returns the profiler root directory (<workspace>/data/profiler).
|
|
510
|
-
* All profiler state (runs directory, global metadata) lives here.
|
|
511
|
-
*/
|
|
512
|
-
export function getProfilerRootDir(): string {
|
|
513
|
-
return join(getDataDir(), "profiler");
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
* Returns the profiler runs directory (<workspace>/data/profiler/runs).
|
|
518
|
-
* Each completed or active profiler run gets its own sub-directory here.
|
|
519
|
-
*/
|
|
520
|
-
export function getProfilerRunsDir(): string {
|
|
521
|
-
return join(getProfilerRootDir(), "runs");
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* Returns the directory for a specific profiler run by ID
|
|
526
|
-
* (<workspace>/data/profiler/runs/<runId>).
|
|
527
|
-
*/
|
|
528
|
-
export function getProfilerRunDir(runId: string): string {
|
|
529
|
-
return join(getProfilerRunsDir(), runId);
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
export function ensureDataDir(): void {
|
|
533
|
-
const workspace = getWorkspaceDir();
|
|
534
|
-
const wsData = join(workspace, "data");
|
|
535
|
-
const dirs = [
|
|
536
|
-
// Workspace dirs
|
|
537
|
-
workspace,
|
|
538
|
-
join(workspace, "signals"),
|
|
539
|
-
join(workspace, "skills"),
|
|
540
|
-
join(workspace, "routes"),
|
|
541
|
-
join(workspace, "embedding-models"),
|
|
542
|
-
join(workspace, "conversations"),
|
|
543
|
-
join(workspace, "logs"),
|
|
544
|
-
join(workspace, "external"),
|
|
545
|
-
join(workspace, "bin"),
|
|
546
|
-
// Data sub-dirs under workspace
|
|
547
|
-
wsData,
|
|
548
|
-
join(wsData, "db"),
|
|
549
|
-
join(wsData, "qdrant"),
|
|
550
|
-
join(wsData, "logs"),
|
|
551
|
-
join(wsData, "memory"),
|
|
552
|
-
join(wsData, "memory", "knowledge"),
|
|
553
|
-
join(wsData, "apps"),
|
|
554
|
-
join(wsData, "attachments"),
|
|
555
|
-
join(wsData, "sounds"),
|
|
556
|
-
];
|
|
557
|
-
for (const dir of dirs) {
|
|
558
|
-
if (!existsSync(dir)) {
|
|
559
|
-
mkdirSync(dir, { recursive: true });
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
// Lock down the root directory so only the owner can traverse it.
|
|
563
|
-
// Runtime files (socket, session token, PID) live directly under root.
|
|
564
|
-
try {
|
|
565
|
-
chmodSync(dirname(workspace), 0o700);
|
|
566
|
-
} catch {
|
|
567
|
-
// Non-fatal: some filesystems don't support Unix permissions
|
|
568
|
-
}
|
|
569
|
-
}
|
|
@@ -179,14 +179,48 @@ async function runProcessTableCommandAsync(
|
|
|
179
179
|
return parser(stdout);
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
/**
|
|
183
|
+
* The enumeration subprocess appears in its own snapshot: `ps -A` lists every
|
|
184
|
+
* process on the machine — including the `ps` child this module just spawned
|
|
185
|
+
* (parented to the caller) — and the PowerShell Win32_Process query includes
|
|
186
|
+
* the powershell.exe running it. Drop those self rows so a tree built from
|
|
187
|
+
* the table does not report the enumerator as one of the caller's subsystems.
|
|
188
|
+
*/
|
|
189
|
+
export function dropProcessTableSelfRows(
|
|
190
|
+
rows: ProcessTableRow[],
|
|
191
|
+
): ProcessTableRow[] {
|
|
192
|
+
return rows.filter((row) => !isProcessTableSelfRow(row.command));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
function isProcessTableSelfRow(command: string): boolean {
|
|
196
|
+
const normalized = command.toLowerCase();
|
|
197
|
+
return (
|
|
198
|
+
(normalized.startsWith("ps ") && normalized.includes("pid=,ppid=")) ||
|
|
199
|
+
(normalized.includes("powershell") && normalized.includes("win32_process"))
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function parsePsProcessTableWithoutSelfRows(output: string): ProcessTableRow[] {
|
|
204
|
+
return dropProcessTableSelfRows(parsePsProcessTable(output));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function parseWindowsProcessTableWithoutSelfRows(
|
|
208
|
+
output: string,
|
|
209
|
+
): ProcessTableRow[] {
|
|
210
|
+
return dropProcessTableSelfRows(parseWindowsProcessTable(output));
|
|
211
|
+
}
|
|
212
|
+
|
|
182
213
|
function listProcessesFromPs(): ProcessTableRow[] {
|
|
183
|
-
return runProcessTableCommand(
|
|
214
|
+
return runProcessTableCommand(
|
|
215
|
+
PS_PROCESS_TABLE_COMMAND,
|
|
216
|
+
parsePsProcessTableWithoutSelfRows,
|
|
217
|
+
);
|
|
184
218
|
}
|
|
185
219
|
|
|
186
220
|
function listProcessesFromPowerShell(): ProcessTableRow[] {
|
|
187
221
|
return runProcessTableCommand(
|
|
188
222
|
WINDOWS_PROCESS_TABLE_COMMAND,
|
|
189
|
-
|
|
223
|
+
parseWindowsProcessTableWithoutSelfRows,
|
|
190
224
|
);
|
|
191
225
|
}
|
|
192
226
|
|
|
@@ -212,7 +246,7 @@ export async function listProcessTableAsync(
|
|
|
212
246
|
if (platform === "win32") {
|
|
213
247
|
return runProcessTableCommandAsync(
|
|
214
248
|
WINDOWS_PROCESS_TABLE_COMMAND,
|
|
215
|
-
|
|
249
|
+
parseWindowsProcessTableWithoutSelfRows,
|
|
216
250
|
);
|
|
217
251
|
}
|
|
218
252
|
if (platform === "linux") {
|
|
@@ -221,13 +255,13 @@ export async function listProcessTableAsync(
|
|
|
221
255
|
} catch {
|
|
222
256
|
return runProcessTableCommandAsync(
|
|
223
257
|
PS_PROCESS_TABLE_COMMAND,
|
|
224
|
-
|
|
258
|
+
parsePsProcessTableWithoutSelfRows,
|
|
225
259
|
);
|
|
226
260
|
}
|
|
227
261
|
}
|
|
228
262
|
return runProcessTableCommandAsync(
|
|
229
263
|
PS_PROCESS_TABLE_COMMAND,
|
|
230
|
-
|
|
264
|
+
parsePsProcessTableWithoutSelfRows,
|
|
231
265
|
);
|
|
232
266
|
}
|
|
233
267
|
|
|
@@ -94,14 +94,14 @@ export const INSUFFICIENT_CREDITS_PATTERNS = [
|
|
|
94
94
|
/key limit (?:has been )?(?:exceeded|reached)/i,
|
|
95
95
|
];
|
|
96
96
|
|
|
97
|
-
// Managed-proxy daily-credit-limit rejection: the
|
|
97
|
+
// Managed-proxy daily-credit-limit rejection: the cloud emits a 402 whose
|
|
98
98
|
// body carries `"code": "daily_limit_reached"`. More specific than the generic
|
|
99
99
|
// credit-exhaustion prose above — both are 402s from the same proxy — so
|
|
100
100
|
// classification sites must test this before INSUFFICIENT_CREDITS_PATTERNS.
|
|
101
101
|
export const DAILY_LIMIT_PATTERNS = [/"code"\s*:\s*"daily_limit_reached"/i];
|
|
102
102
|
|
|
103
103
|
// Managed-proxy free-tier daily usage-credit cap: a 402 whose body carries
|
|
104
|
-
// `"code": "free_tier_daily_limit_reached"`. The
|
|
104
|
+
// `"code": "free_tier_daily_limit_reached"`. The cloud imposes it on a
|
|
105
105
|
// cohort of free-tier orgs (it is not the user-configured daily limit above,
|
|
106
106
|
// which caps purchased spend), so it gets its own reason and copy: there is
|
|
107
107
|
// no limit for the user to raise, only the UTC reset, an upgrade, or extra
|
|
@@ -374,7 +374,7 @@ describe("watch retrospective", () => {
|
|
|
374
374
|
await runWatchRetro(summary, { dispatch });
|
|
375
375
|
|
|
376
376
|
const { prompt } = calls[0]!;
|
|
377
|
-
// `skill-management` is a selector, and a
|
|
377
|
+
// `skill-management` is a selector, and a cloud or workspace skill of the
|
|
378
378
|
// same id replaces the bundled one in the catalog. Putting the load ahead
|
|
379
379
|
// of the card is what lets a shadow, or the refusal a clientless wake
|
|
380
380
|
// gives an inline-command load, land before the user has been told
|
|
@@ -396,7 +396,7 @@ describe("watch retrospective", () => {
|
|
|
396
396
|
expect(prompt).toContain("Do not author or scaffold a skill yet");
|
|
397
397
|
// The retro delegates authoring to the skill-management flow rather than
|
|
398
398
|
// naming the tool that writes a skill, so nothing here can reach it.
|
|
399
|
-
expect(prompt).not.toContain("
|
|
399
|
+
expect(prompt).not.toContain("scaffold_cloud_skill");
|
|
400
400
|
});
|
|
401
401
|
|
|
402
402
|
test("draws the card from the turn's report call", async () => {
|
package/src/watch/watch-retro.ts
CHANGED
|
@@ -140,7 +140,7 @@ const WATCH_RETRO_WAKE_SOURCE = "watch-retro";
|
|
|
140
140
|
* after it would read as a sign-off nobody asked for.
|
|
141
141
|
*
|
|
142
142
|
* **The card does not depend on the load succeeding.** `skill-management` is a
|
|
143
|
-
* selector, not a fixed definition: `loadSkillCatalog` lets a
|
|
143
|
+
* selector, not a fixed definition: `loadSkillCatalog` lets a cloud or
|
|
144
144
|
* workspace skill of the same id replace the bundled one, and
|
|
145
145
|
* `resolveSkillSelector` hands back whichever entry won. So the load can come
|
|
146
146
|
* back as someone else's skill, or as a refusal, and putting it ahead of the
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
import { beforeEach, describe, expect, mock, test } from "bun:test";
|
|
10
10
|
|
|
11
|
+
import type { ConsentState } from "../../cloud/consent-cache.js";
|
|
11
12
|
import type { LifecycleEvent } from "../../persistence/lifecycle-events-store.js";
|
|
12
|
-
import type { ConsentState } from "../../platform/consent-cache.js";
|
|
13
13
|
|
|
14
14
|
const checkpoints = new Map<string, string>();
|
|
15
15
|
const recordedEvents: string[] = [];
|
|
@@ -32,7 +32,7 @@ mock.module("../../persistence/lifecycle-events-store.js", () => ({
|
|
|
32
32
|
recordLifecycleEvent: (name: string) => recordImpl(name),
|
|
33
33
|
}));
|
|
34
34
|
|
|
35
|
-
mock.module("../../
|
|
35
|
+
mock.module("../../cloud/consent-cache.js", () => ({
|
|
36
36
|
getRawShareAnalytics: () => shareAnalytics,
|
|
37
37
|
}));
|
|
38
38
|
|
package/src/watcher/telemetry.ts
CHANGED
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
* swallows storage errors.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
import { getRawShareAnalytics } from "../cloud/consent-cache.js";
|
|
22
23
|
import {
|
|
23
24
|
getMemoryCheckpoint,
|
|
24
25
|
setMemoryCheckpoint,
|
|
25
26
|
} from "../persistence/checkpoints.js";
|
|
26
27
|
import { recordLifecycleEvent } from "../persistence/lifecycle-events-store.js";
|
|
27
|
-
import { getRawShareAnalytics } from "../platform/consent-cache.js";
|
|
28
28
|
import { getLogger } from "../util/logger.js";
|
|
29
29
|
import { listWatchers } from "./watcher-store.js";
|
|
30
30
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { setBundledCliModules } from "./cli/bundled-modules.js";
|
|
2
2
|
import * as pluginDiff from "./cli/lib/diff-plugin.js";
|
|
3
3
|
import * as pluginInspect from "./cli/lib/inspect-plugin.js";
|
|
4
|
+
import * as pluginInstallPlatform from "./cli/lib/install-from-cloud.js";
|
|
4
5
|
import * as pluginInstallGitHub from "./cli/lib/install-from-github.js";
|
|
5
|
-
import * as pluginInstallPlatform from "./cli/lib/install-from-platform.js";
|
|
6
6
|
import * as pluginInstalled from "./cli/lib/list-installed-plugins.js";
|
|
7
7
|
import * as pluginCatalogCache from "./cli/lib/plugin-catalog-cache.js";
|
|
8
8
|
import * as pluginCatalogLocal from "./cli/lib/plugin-catalog-local.js";
|