@mycadet/assistant 0.12.7 → 0.12.8
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 +1 -1
- 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/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 +1 -1
- 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 +1 -1
- 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 +6815 -794
- 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} +60 -60
- 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-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 +27 -41
- 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 +9 -8
- 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 +2 -2
- package/src/__tests__/mcp-client-auth.test.ts +2 -2
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -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-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 +12 -12
- package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
- 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-platform-login.ts → show-cloud-login.ts} +3 -5
- 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__/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/config.ts +1 -1
- 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__/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 +23 -21
- 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 +1 -12
- package/src/config/schemas/llm.ts +45 -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/sync-gated-profiles.ts +8 -8
- 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 +6 -18
- package/src/credential-health/credential-health-service.ts +61 -76
- 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 +21 -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/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 +26 -25
- 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} +83 -116
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +82 -282
- 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 +29 -55
- 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 +6 -15
- 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/oom-priority.ts +1 -1
- package/src/util/platform.ts +5 -5
- 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 +4 -4
- 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/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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { getRawShareAnalytics } from "../cloud/consent-cache.js";
|
|
1
2
|
import { getConfigReadOnly } from "../config/loader.js";
|
|
2
3
|
import { memoryTier } from "../config/memory-tier.js";
|
|
3
|
-
import { getRawShareAnalytics } from "../platform/consent-cache.js";
|
|
4
4
|
import { getLogger } from "../util/logger.js";
|
|
5
5
|
import { measureMemoryCorpusSize } from "./memory-corpus-size.js";
|
|
6
6
|
import { recordWatchdogEvent } from "./watchdog-events-store.js";
|
|
@@ -10,7 +10,7 @@ const log = getLogger("memory-tier-reporter");
|
|
|
10
10
|
/**
|
|
11
11
|
* How often each assistant re-asserts its coarse memory tier as a
|
|
12
12
|
* `memory_tier` watchdog event. Unlike the config-setting snapshot this emits
|
|
13
|
-
* UNCONDITIONALLY every cycle (no memo): the
|
|
13
|
+
* UNCONDITIONALLY every cycle (no memo): the cloud-side query wants a
|
|
14
14
|
* periodic per-assistant heartbeat of the current tier, so a gap in the series
|
|
15
15
|
* is meaningful (assistant offline) rather than "value unchanged". Six-hourly
|
|
16
16
|
* keeps the volume trivial while giving a same-day read on the fleet's tier
|
|
@@ -38,7 +38,7 @@ const BOOT_RETRY_INTERVAL_MS = 60_000;
|
|
|
38
38
|
* Emit one `memory_tier` watchdog event for this assistant's current tier.
|
|
39
39
|
*
|
|
40
40
|
* Consent-gated like the config-setting snapshot but with NO memo: every
|
|
41
|
-
* invocation emits, so the
|
|
41
|
+
* invocation emits, so the cloud sees a periodic heartbeat of the current
|
|
42
42
|
* tier rather than only edges. An UNKNOWN consent state skips entirely
|
|
43
43
|
* (consent resolves asynchronously after boot; the boot-retry loop re-invokes
|
|
44
44
|
* once it lands) — deferring loses nothing since the tier is re-derivable
|
|
@@ -155,7 +155,7 @@ describe("onboarding_research source: flushes via the default outbox source", ()
|
|
|
155
155
|
|
|
156
156
|
test("ships pending rows regardless of diagnostics consent, like every other outbox event", () => {
|
|
157
157
|
// No flush-time diagnostics gate: the daemon rides `share_analytics`
|
|
158
|
-
// only and leaves the diagnostics decision to the
|
|
158
|
+
// only and leaves the diagnostics decision to the cloud's
|
|
159
159
|
// authoritative server-side ingest gate. Diagnostics off (and even a
|
|
160
160
|
// stale accepted version) must not hold the row back.
|
|
161
161
|
setShareDiagnostics(false, "2000-01-01");
|
|
@@ -190,7 +190,7 @@ describe("orphan-drain source", () => {
|
|
|
190
190
|
|
|
191
191
|
test("drains rows for a type no longer in the wire contract, then self-heals on ack", () => {
|
|
192
192
|
// A row whose name isn't a current outbox event type — e.g. recorded before
|
|
193
|
-
// the
|
|
193
|
+
// the cloud removed the type. No per-type source queries it.
|
|
194
194
|
const orphanName = "removed_legacy_event";
|
|
195
195
|
insertOutboxRow(orphanName, "orphan-row-1");
|
|
196
196
|
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* which sources its reporter instance is constructed with.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { queryUnreportedUsageEvents } from "../persistence/llm-usage-store.js";
|
|
13
12
|
import {
|
|
14
13
|
getCachedShareDiagnostics,
|
|
15
14
|
getCachedShareDiagnosticsVersion,
|
|
16
|
-
} from "../
|
|
15
|
+
} from "../cloud/consent-cache.js";
|
|
16
|
+
import { queryUnreportedUsageEvents } from "../persistence/llm-usage-store.js";
|
|
17
17
|
import type { UsageAttributionProfileSource } from "../usage/types.js";
|
|
18
18
|
import { getLogger } from "../util/logger.js";
|
|
19
19
|
import { APP_VERSION } from "../version.js";
|
|
@@ -209,12 +209,12 @@ export const ORPHAN_OUTBOX_DRAIN_SOURCE_ID = "__orphan_outbox_drain";
|
|
|
209
209
|
|
|
210
210
|
/**
|
|
211
211
|
* Synthetic ack-mode source that drains outbox rows whose `name` is no longer a
|
|
212
|
-
* current outbox event type — e.g. rows recorded before the
|
|
212
|
+
* current outbox event type — e.g. rows recorded before the cloud removed or
|
|
213
213
|
* renamed a type, still pending on a client that has since upgraded. The
|
|
214
214
|
* derived per-type sources ({@link OUTBOX_TELEMETRY_EVENT_NAMES}) never query
|
|
215
215
|
* those names, so without this the rows would sit in the outbox forever.
|
|
216
216
|
*
|
|
217
|
-
* Draining is send-then-ack: the
|
|
217
|
+
* Draining is send-then-ack: the cloud skips an unknown event type but still
|
|
218
218
|
* returns 2xx, after which the row is deleted. This is safe against a stale
|
|
219
219
|
* local wire copy — a name merely missing from a lagging wire still ships and
|
|
220
220
|
* lands rather than being purged and lost — and rides `share_analytics` like
|
|
@@ -304,7 +304,7 @@ const usageSource = simpleSource(
|
|
|
304
304
|
// Record-time version when present; otherwise the running
|
|
305
305
|
// binary's `APP_VERSION` (a legacy row from before
|
|
306
306
|
// migration 267 ran). We deliberately don't emit explicit
|
|
307
|
-
// `null` — under the
|
|
307
|
+
// `null` — under the cloud contract a present-but-null
|
|
308
308
|
// per-event value would override the envelope, and we'd
|
|
309
309
|
// rather have a concrete version than no version.
|
|
310
310
|
assistant_version: e.assistantVersion ?? APP_VERSION,
|
|
@@ -345,12 +345,12 @@ const turnSource: TelemetryEventSource = {
|
|
|
345
345
|
// deferred turn (and everything after it) is picked up on a later flush
|
|
346
346
|
// once its response settles.
|
|
347
347
|
//
|
|
348
|
-
// Trace eligibility is composed daemon-side to mirror the
|
|
348
|
+
// Trace eligibility is composed daemon-side to mirror the cloud's
|
|
349
349
|
// authoritative owner-based ingest gate, so traces for ineligible owners
|
|
350
350
|
// never leave the device. Two parts, fail-closed (both must be true):
|
|
351
351
|
// 1. the owner's cached `share_diagnostics` consent, and
|
|
352
352
|
// 2. the owner's cached `share_diagnostics_accepted_version` being at or
|
|
353
|
-
// past the disclosing version — the
|
|
353
|
+
// past the disclosing version — the cloud applies the identical
|
|
354
354
|
// check, so an old consent never yields a trace here or there.
|
|
355
355
|
const traceEligible =
|
|
356
356
|
getCachedShareDiagnostics() &&
|
|
@@ -467,7 +467,7 @@ const turnSource: TelemetryEventSource = {
|
|
|
467
467
|
// to `messages` is a separate (larger) migration; until
|
|
468
468
|
// then we stamp the running binary's `APP_VERSION` so the
|
|
469
469
|
// wire value is concrete (matches what the envelope would
|
|
470
|
-
// have provided, but per-event so it survives the
|
|
470
|
+
// have provided, but per-event so it survives the cloud
|
|
471
471
|
// contract that treats present per-event values as winning
|
|
472
472
|
// over the envelope).
|
|
473
473
|
assistant_version: APP_VERSION,
|
|
@@ -517,7 +517,7 @@ const toolExecutedSource = simpleSource(
|
|
|
517
517
|
// `tool_invocations` has no record-time version column — stamp
|
|
518
518
|
// the running binary's `APP_VERSION` so the wire value is
|
|
519
519
|
// concrete rather than an explicit null that would override the
|
|
520
|
-
// envelope under the
|
|
520
|
+
// envelope under the cloud's per-event-wins contract.
|
|
521
521
|
assistant_version: APP_VERSION,
|
|
522
522
|
}),
|
|
523
523
|
);
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
import { asc, eq, inArray } from "drizzle-orm";
|
|
10
10
|
import { v4 as uuid } from "uuid";
|
|
11
11
|
|
|
12
|
+
import { getRawShareAnalytics } from "../cloud/consent-cache.js";
|
|
12
13
|
import { getSqliteFrom, getTelemetryDb } from "../persistence/db-connection.js";
|
|
13
14
|
import { telemetryEvents } from "../persistence/schema/index.js";
|
|
14
|
-
import { getRawShareAnalytics } from "../platform/consent-cache.js";
|
|
15
15
|
import { APP_VERSION } from "../version.js";
|
|
16
16
|
import type {
|
|
17
17
|
OutboxTelemetryEventName,
|
|
@@ -221,7 +221,7 @@ export function discardPendingTelemetryOutboxEvents(name: string): void {
|
|
|
221
221
|
/**
|
|
222
222
|
* Distinct event names with at least one pending row in the outbox. Used by the
|
|
223
223
|
* orphan-drain source to find rows whose type is no longer in the wire contract
|
|
224
|
-
* (e.g. recorded before the
|
|
224
|
+
* (e.g. recorded before the cloud removed/renamed a type) so they can be
|
|
225
225
|
* flushed instead of stranded. Empty when the telemetry DB is unavailable.
|
|
226
226
|
*/
|
|
227
227
|
export function queryDistinctOutboxEventNames(): string[] {
|
|
@@ -131,7 +131,7 @@ describe("validateWireEvents", () => {
|
|
|
131
131
|
});
|
|
132
132
|
|
|
133
133
|
test("unknown event types are reported and warned once per process per type", () => {
|
|
134
|
-
// A type the
|
|
134
|
+
// A type the cloud ingest endpoint has no serializer for: the server
|
|
135
135
|
// silently skips it. Uses a synthetic never-shipped discriminant so the
|
|
136
136
|
// test stays valid as real event types graduate into the wire contract.
|
|
137
137
|
const unknownEvent = {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Pre-flush validation of outgoing telemetry events against the
|
|
3
3
|
* platform-generated wire schemas (`telemetry-wire.generated.ts`).
|
|
4
4
|
*
|
|
5
|
-
* The
|
|
5
|
+
* The cloud ingest endpoint rejects individual events that violate its
|
|
6
6
|
* serializer bounds and skips event types it has no serializer for — both
|
|
7
7
|
* silently from the daemon's point of view (the batch still 2xxes). This
|
|
8
8
|
* module surfaces those would-be-silent drops as structured warnings at the
|
|
@@ -73,7 +73,7 @@ export function getWireSchemaForType(type: string): z.ZodObject | undefined {
|
|
|
73
73
|
* the refined wire schemas; this drops the claims/suggestions byte-bound
|
|
74
74
|
* superRefines, which aren't expressible in the request type anyway — the
|
|
75
75
|
* handler still validates the assembled event against the full wire schema
|
|
76
|
-
* ({@link getWireSchemaForType}) for those bounds. Undefined when the
|
|
76
|
+
* ({@link getWireSchemaForType}) for those bounds. Undefined when the cloud
|
|
77
77
|
* contract has no serializer for `type`.
|
|
78
78
|
*/
|
|
79
79
|
export function getWireFieldsSchema(type: string): z.ZodObject | undefined {
|
|
@@ -113,7 +113,7 @@ interface WireValidationResult {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
/**
|
|
116
|
-
* Validate a batch of outgoing telemetry events against the
|
|
116
|
+
* Validate a batch of outgoing telemetry events against the cloud wire
|
|
117
117
|
* schemas, logging a structured warning for each event the server would
|
|
118
118
|
* silently drop. Warn payloads carry the event `type` and issue
|
|
119
119
|
* `{ path, code }` shapes only — never field values, and never dynamic key
|
|
@@ -442,7 +442,7 @@ export const telemetryEventSchema = z.discriminatedUnion("type", [
|
|
|
442
442
|
]);
|
|
443
443
|
export type TelemetryEvent = z.infer<typeof telemetryEventSchema>;
|
|
444
444
|
|
|
445
|
-
// Event types recorded SERVER-SIDE by the
|
|
445
|
+
// Event types recorded SERVER-SIDE by the cloud. A daemon-sent
|
|
446
446
|
// event of one of these types is rejected (dropped) by ingest.
|
|
447
447
|
export const PLATFORM_MANAGED_EVENT_TYPES = [
|
|
448
448
|
"credit_balance_depleted",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
* are unaffected — `tool_invocations` is a local always-on audit log.
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
+
import { getRawShareAnalytics } from "../cloud/consent-cache.js";
|
|
29
30
|
import {
|
|
30
31
|
type LifecycleEventAttributes,
|
|
31
32
|
recordLifecycleEvent,
|
|
32
33
|
} from "../persistence/lifecycle-events-store.js";
|
|
33
|
-
import { getRawShareAnalytics } from "../platform/consent-cache.js";
|
|
34
34
|
import { redactJsonStringLeaves } from "../security/redact-json.js";
|
|
35
35
|
import { redactSensitiveFields } from "../security/redaction.js";
|
|
36
36
|
import { redactSecrets } from "../security/secret-scanner.js";
|
|
@@ -4,7 +4,7 @@ import { beforeEach, describe, expect, mock, test } from "bun:test";
|
|
|
4
4
|
// when populating the telemetry columns.
|
|
5
5
|
let shareAnalytics = true;
|
|
6
6
|
|
|
7
|
-
mock.module("../
|
|
7
|
+
mock.module("../cloud/consent-cache.js", () => ({
|
|
8
8
|
getRawShareAnalytics: () => shareAnalytics,
|
|
9
9
|
}));
|
|
10
10
|
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
* collected from owners who accepted the diagnostics-sharing consent copy that
|
|
6
6
|
* *discloses* trace collection — identified by its accepted version.
|
|
7
7
|
*
|
|
8
|
-
* This mirrors the
|
|
8
|
+
* This mirrors the cloud's authoritative ingest gate in
|
|
9
9
|
* `mycadet-platform`:
|
|
10
10
|
* - `django/app/core/trace_collection.py` (`is_trace_collection_enabled`)
|
|
11
11
|
* - `config.settings.TRACE_COLLECTION_MIN_DIAGNOSTICS_CONSENT_VERSION`
|
|
12
12
|
*
|
|
13
13
|
* The daemon applies the same `share_diagnostics_accepted_version >= threshold`
|
|
14
|
-
* check the
|
|
15
|
-
* device. (The
|
|
14
|
+
* check the cloud does, so traces for ineligible owners never leave the
|
|
15
|
+
* device. (The cloud would drop them anyway, but checking here keeps the PII
|
|
16
16
|
* local — data minimization.)
|
|
17
17
|
*
|
|
18
|
-
* Keep this constant in lockstep with the
|
|
18
|
+
* Keep this constant in lockstep with the cloud setting. Versions are
|
|
19
19
|
* "YYYY-MM-DD" strings, so the lexicographic compare is chronological; ""
|
|
20
20
|
* (never accepted) and older versions fail closed.
|
|
21
21
|
*/
|
|
@@ -179,7 +179,7 @@ export function queryUnreportedTurnEvents(
|
|
|
179
179
|
// sqlite's `json_extract` yields 1/0 for JSON booleans, not true/false,
|
|
180
180
|
// and SQL NULL when the path is absent (rows predating the field). Kept
|
|
181
181
|
// numeric here and converted below. A raw pass-through would put `1`
|
|
182
|
-
// on the wire, which the
|
|
182
|
+
// on the wire, which the cloud's BooleanField would reject.
|
|
183
183
|
scripted: sql<
|
|
184
184
|
number | null
|
|
185
185
|
>`json_extract(${messages.metadata}, '$.scripted')`.as("scripted"),
|
|
@@ -71,7 +71,7 @@ export function stampTurnOutcome(
|
|
|
71
71
|
try {
|
|
72
72
|
// The failure* keys are read back by `readTurnFailure` only; the turn
|
|
73
73
|
// telemetry projection (`queryUnreportedTurnEvents`) extracts none of
|
|
74
|
-
// them, so nothing here changes the
|
|
74
|
+
// them, so nothing here changes the cloud wire contract.
|
|
75
75
|
updateMessageMetadata(userMessageId, {
|
|
76
76
|
turnOutcome: outcome,
|
|
77
77
|
...(extras.batchedInto ? { turnBatchedInto: extras.batchedInto } : {}),
|
|
@@ -345,9 +345,9 @@ export function assembleTurnTrace(boundary: TurnTraceBoundary): TurnTrace {
|
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
/**
|
|
348
|
-
* Maximum serialized size of a trace the
|
|
348
|
+
* Maximum serialized size of a trace the cloud will accept (it drops traces
|
|
349
349
|
* whose JSON exceeds ~256 KiB). Keep the daemon-side cap a touch under that so
|
|
350
|
-
* we never ship a trace the
|
|
350
|
+
* we never ship a trace the cloud will silently drop. A trace over the cap
|
|
351
351
|
* is omitted entirely (the trace-free turn row still flushes).
|
|
352
352
|
*/
|
|
353
353
|
export const MAX_TRACE_SERIALIZED_BYTES = 256 * 1024;
|
|
@@ -9,7 +9,7 @@ import type { TurnTelemetryEvent } from "./types.js";
|
|
|
9
9
|
|
|
10
10
|
// Runtime contract test: events constructed with the daemon's types (the
|
|
11
11
|
// shared fixtures are annotated with them) must parse against the generated
|
|
12
|
-
// wire schemas — the same validation the
|
|
12
|
+
// wire schemas — the same validation the cloud's ingest serializers
|
|
13
13
|
// apply. A daemon type whose values can't round-trip through
|
|
14
14
|
// `telemetryEventSchema` produces events the server silently drops.
|
|
15
15
|
|
package/src/telemetry/types.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface TelemetryEventBase {
|
|
|
16
16
|
* back-compat with platforms that haven't deployed the per-event
|
|
17
17
|
* handling.
|
|
18
18
|
*
|
|
19
|
-
* The
|
|
19
|
+
* The cloud's `TelemetryIngestView` prefers per-event over
|
|
20
20
|
* envelope: when a per-event value is present (including explicit
|
|
21
21
|
* `null`) it wins. When the field is omitted on the event entirely
|
|
22
22
|
* (old assistant), the envelope value is the back-compat fallback.
|
|
@@ -30,7 +30,7 @@ export interface TelemetryEventBase {
|
|
|
30
30
|
* stamp the flushing binary's `APP_VERSION`. Stamping `APP_VERSION`
|
|
31
31
|
* instead of emitting explicit `null` preserves envelope-equivalent
|
|
32
32
|
* behavior under the per-event-wins contract. The type allows
|
|
33
|
-
* `null` for parity with the
|
|
33
|
+
* `null` for parity with the cloud contract; in practice the
|
|
34
34
|
* daemon never sends it.
|
|
35
35
|
*/
|
|
36
36
|
assistant_version: string | null;
|
|
@@ -44,7 +44,7 @@ export interface TelemetryEventBase {
|
|
|
44
44
|
*
|
|
45
45
|
* `provider`/`model` are nullable on the wire because rows persisted before
|
|
46
46
|
* the attribution columns existed, and rows whose attribution resolution
|
|
47
|
-
* failed, must still ship; the
|
|
47
|
+
* failed, must still ship; the cloud serializer accepts null.
|
|
48
48
|
*/
|
|
49
49
|
export interface ModelTelemetryEventBase extends TelemetryEventBase {
|
|
50
50
|
/** Provider serving the call, e.g. "anthropic", "fireworks". */
|
|
@@ -61,7 +61,7 @@ export interface ModelTelemetryEventBase extends TelemetryEventBase {
|
|
|
61
61
|
* Applies the daemon's record-time guarantee to a wire-derived event type.
|
|
62
62
|
*
|
|
63
63
|
* The wire contract marks `assistant_version` optional for back-compat with
|
|
64
|
-
* old daemons; under the
|
|
64
|
+
* old daemons; under the cloud's per-event-wins contract a present
|
|
65
65
|
* per-event value (including explicit `null`) beats the envelope fallback.
|
|
66
66
|
* This daemon always stamps the field at record time (see
|
|
67
67
|
* {@link TelemetryEventBase.assistant_version} for the full contract), so
|
|
@@ -204,7 +204,7 @@ export interface TurnTelemetryClientInfo {
|
|
|
204
204
|
* role `"user"` keep that role here so the transcript is faithful to what was
|
|
205
205
|
* sent to the model. `content` is the parsed `messages.content` — either the
|
|
206
206
|
* modern `ContentBlock[]` (text / tool_use / tool_result / thinking / image /
|
|
207
|
-
* file blocks) or a legacy plain string. Stored verbatim by the
|
|
207
|
+
* file blocks) or a legacy plain string. Stored verbatim by the cloud as an
|
|
208
208
|
* opaque JSON column, so the shape is self-describing rather than normalized.
|
|
209
209
|
*/
|
|
210
210
|
export interface TurnTraceMessage {
|
|
@@ -259,7 +259,7 @@ export interface TurnTraceToolCall {
|
|
|
259
259
|
* turn and the next real user turn. Attached to the turn telemetry event's
|
|
260
260
|
* `trace` field ONLY when trace collection is enabled — the owner's
|
|
261
261
|
* `share_diagnostics` consent at an eligible accepted version.
|
|
262
|
-
* The
|
|
262
|
+
* The cloud stores this verbatim as an opaque JSON column, so the daemon
|
|
263
263
|
* owns the shape.
|
|
264
264
|
*
|
|
265
265
|
* Each turn's trace is its natural window. A turn whose window holds no
|
|
@@ -278,7 +278,7 @@ export interface TurnTraceToolDefinition {
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
export interface TurnTrace {
|
|
281
|
-
/** Shape version so the
|
|
281
|
+
/** Shape version so the cloud/dbt can evolve parsing without ambiguity. */
|
|
282
282
|
schema_version: 3;
|
|
283
283
|
/**
|
|
284
284
|
* Ordered message rows for the turn (the user message first, then assistant
|
|
@@ -424,7 +424,7 @@ export interface TurnTelemetryEvent extends TelemetryEventBase {
|
|
|
424
424
|
* composes the gate itself from the owner's cached `share_diagnostics`
|
|
425
425
|
* consent AND the accepted consent version being at or past the disclosing
|
|
426
426
|
* version. Fail-closed: when either is off (or unknown) no trace
|
|
427
|
-
* is attached. The
|
|
427
|
+
* is attached. The cloud dual-writes consented traces into a separate PII
|
|
428
428
|
* table and keeps the trace-free turn row; downstream consumers that don't
|
|
429
429
|
* read traces ignore this field. Null / absent when the gate is off or the
|
|
430
430
|
* serialized trace exceeded the size cap.
|
|
@@ -479,7 +479,7 @@ export interface SkillLoadedTelemetryEvent extends ModelTelemetryEventBase {
|
|
|
479
479
|
* watchdog observes liveness/health signals (event-loop block, stream-idle
|
|
480
480
|
* stalls, restarts, ...) and emits one event per check firing.
|
|
481
481
|
*
|
|
482
|
-
* Deliberately minimal and forward-compatible, mirroring the
|
|
482
|
+
* Deliberately minimal and forward-compatible, mirroring the cloud
|
|
483
483
|
* `WatchdogTelemetryEventSerializer`:
|
|
484
484
|
*
|
|
485
485
|
* - `check_name` — which watchdog check fired. Open string set (not a
|
|
@@ -488,7 +488,7 @@ export interface SkillLoadedTelemetryEvent extends ModelTelemetryEventBase {
|
|
|
488
488
|
* downstream. The infrastructure admin chart filters this to
|
|
489
489
|
* `event_loop_blocked`.
|
|
490
490
|
* - `value` — the single measured magnitude for the check (block ms, idle
|
|
491
|
-
* ms, ...). Nullable: not every check carries a scalar. The
|
|
491
|
+
* ms, ...). Nullable: not every check carries a scalar. The cloud
|
|
492
492
|
* coerces ints to float, so the daemon need not distinguish.
|
|
493
493
|
* - `detail` — open JSON bag for any extra fields the daemon attaches
|
|
494
494
|
* (reason codes, secondary numbers, a human message) without a
|
|
@@ -576,13 +576,13 @@ type Overrides = {
|
|
|
576
576
|
};
|
|
577
577
|
|
|
578
578
|
/**
|
|
579
|
-
* Daemon-only event types not (yet) in the
|
|
579
|
+
* Daemon-only event types not (yet) in the cloud wire contract — i.e. types
|
|
580
580
|
* the daemon emits but `POST /v1/telemetry/ingest/` would silently skip because
|
|
581
|
-
* they have no serializer in the
|
|
581
|
+
* they have no serializer in the cloud's `TELEMETRY_EVENT_SERIALIZERS`.
|
|
582
582
|
*
|
|
583
583
|
* Currently EMPTY: every emitted type is in the wire contract. When the daemon
|
|
584
|
-
* needs to emit a type before the
|
|
585
|
-
* its wire `type`). Once the
|
|
584
|
+
* needs to emit a type before the cloud accepts it, add it here (keyed by
|
|
585
|
+
* its wire `type`). Once the cloud adds the serializer and the wire sync
|
|
586
586
|
* lands, the key must leave `Extensions` — into `Overrides` if the daemon type
|
|
587
587
|
* stays narrower than the wire, or plain wire flow-through otherwise. The
|
|
588
588
|
* `_extensionsDontCollide` guard below turns red until that move is made.
|
|
@@ -596,7 +596,7 @@ export type TelemetryEvent = EventMap[keyof EventMap];
|
|
|
596
596
|
|
|
597
597
|
/**
|
|
598
598
|
* Lifecycle event — app_open, hatch, etc. 1:1 with the wire contract:
|
|
599
|
-
* `telemetry-wire.generated.ts` (from the
|
|
599
|
+
* `telemetry-wire.generated.ts` (from the cloud's
|
|
600
600
|
* `LifecycleTelemetryEventSerializer`) is the source of truth.
|
|
601
601
|
*/
|
|
602
602
|
export type LifecycleTelemetryEvent = EventMap["lifecycle"];
|
|
@@ -604,7 +604,7 @@ export type LifecycleTelemetryEvent = EventMap["lifecycle"];
|
|
|
604
604
|
/**
|
|
605
605
|
* Onboarding event — pre-chat selections, Google connect status, and
|
|
606
606
|
* activation-funnel steps. 1:1 with the wire contract
|
|
607
|
-
* (`OnboardingTelemetryEventSerializer`); the
|
|
607
|
+
* (`OnboardingTelemetryEventSerializer`); the cloud accepts either the
|
|
608
608
|
* legacy `screen` shape or the complete funnel step field set — see the wire
|
|
609
609
|
* schema's superRefine.
|
|
610
610
|
*/
|
|
@@ -634,7 +634,7 @@ export type AvatarChangedTelemetryEvent = EventMap["avatar_changed"];
|
|
|
634
634
|
|
|
635
635
|
// ---- Compile-time drift guards ----
|
|
636
636
|
// Each `Overrides` entry is pinned to its wire type in BOTH directions, so a
|
|
637
|
-
// wire sync PR that moves the
|
|
637
|
+
// wire sync PR that moves the cloud contract turns red here instead of
|
|
638
638
|
// drifting silently:
|
|
639
639
|
//
|
|
640
640
|
// - `_*Narrows` — the daemon type stays assignable to the wire type, i.e.
|
|
@@ -689,7 +689,7 @@ type _watchdogNarrows = AssertNarrows<
|
|
|
689
689
|
// opaque-JSON fields are NOT excluded here: opacity is about a field's
|
|
690
690
|
// SHAPE (the daemon's richer types aren't assignable to `JsonValue`), but
|
|
691
691
|
// key PRESENCE is part of the typed contract — the generated wire types
|
|
692
|
-
// declare `raw_usage`/`trace`/`client`/`detail`, and a
|
|
692
|
+
// declare `raw_usage`/`trace`/`client`/`detail`, and a cloud sync that
|
|
693
693
|
// removed or renamed one of them would otherwise leave every guard green
|
|
694
694
|
// while the daemon kept emitting a field the server discards.
|
|
695
695
|
type _llmUsageKeysExist = AssertNarrows<
|
|
@@ -757,7 +757,7 @@ export type WatermarkTelemetryEventName =
|
|
|
757
757
|
/**
|
|
758
758
|
* Event names backed by the `telemetry_events` outbox: every wire event type
|
|
759
759
|
* that is not watermark-flushed. Derived from the generated wire contract, so a
|
|
760
|
-
* new event type added on the
|
|
760
|
+
* new event type added on the cloud side flows onto the outbox — and gets a
|
|
761
761
|
* flush source (`telemetry-event-sources.ts`) and a fully-typed
|
|
762
762
|
* `recordTelemetryEvent` call — with NO edit here. Each name doubles as the
|
|
763
763
|
* wire `type` discriminant and the flush-group key.
|