@mycadet/assistant 0.12.9 → 0.12.10
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/Dockerfile +0 -8
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +1 -1
- package/openapi.yaml +62 -910
- package/package.json +3 -7
- package/scripts/build-test-fixtures.ts +1 -1
- package/scripts/generate-openapi.ts +22 -6
- package/scripts/postinstall.ts +4 -10
- package/scripts/run-tests.ts +0 -21
- package/src/__tests__/adaptive-thinking-repair.test.ts +19 -57
- package/src/__tests__/agent-loop.test.ts +0 -76
- package/src/__tests__/anthropic-provider.test.ts +6 -6
- package/src/__tests__/assert-not-live-db.ts +1 -1
- package/src/__tests__/assistant-id-boundary-guard.test.ts +3 -3
- package/src/__tests__/attachments-store-heic-normalize.test.ts +1 -1
- package/src/__tests__/attachments-store.test.ts +1 -1
- package/src/__tests__/audit-log-rotation.test.ts +1 -1
- package/src/__tests__/btw-routes.test.ts +1 -1
- package/src/__tests__/byok-default-profile-ensure.test.ts +21 -27
- package/src/__tests__/call-conversation-messages.test.ts +0 -5
- package/src/__tests__/call-recovery.test.ts +2 -7
- package/src/__tests__/call-routes-http.test.ts +0 -12
- package/src/__tests__/call-store.test.ts +2 -7
- package/src/__tests__/catalog-files.test.ts +7 -5
- package/src/__tests__/checker.test.ts +1 -1
- package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +4 -4
- package/src/__tests__/cloud-client-verify-credential.test.ts +0 -4
- package/src/__tests__/cloud-credential-catalog-cli.test.ts +14 -14
- package/src/__tests__/cloud-profile-guard.test.ts +48 -401
- package/src/__tests__/compaction-events.test.ts +2 -2
- package/src/__tests__/config-loader-backfill.test.ts +74 -163
- package/src/__tests__/config-loader-cloud-defaults.test.ts +11 -11
- package/src/__tests__/config-loader-corrupt.test.ts +10 -10
- package/src/__tests__/config-loader-quarantine-notice.test.ts +7 -7
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +11 -11
- package/src/__tests__/config-schema.test.ts +26 -27
- package/src/__tests__/config-set-route.test.ts +2 -6
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +28 -300
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +39 -246
- package/src/__tests__/conversation-agent-loop.test.ts +2 -58
- package/src/__tests__/conversation-clear-safety.test.ts +0 -30
- package/src/__tests__/conversation-inference-profile-route.test.ts +1 -1
- package/src/__tests__/conversation-queue.test.ts +1 -1
- package/src/__tests__/conversation-runtime-assembly.test.ts +1 -1
- package/src/__tests__/conversation-skill-tools.test.ts +4 -444
- package/src/__tests__/conversation-slash-commands.test.ts +1 -1
- package/src/__tests__/conversation-store.test.ts +1 -84
- package/src/__tests__/conversation-surface-state.test.ts +0 -16
- package/src/__tests__/credential-health-service.test.ts +14 -1
- package/src/__tests__/credential-record-retire.test.ts +1 -1
- package/src/__tests__/credential-record-write-through.test.ts +1 -1
- package/src/__tests__/credential-security-invariants.test.ts +0 -145
- package/src/__tests__/custom-profile-ensure.test.ts +1 -1
- package/src/__tests__/default-profile-catalog-fallback.test.ts +5 -15
- package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -2
- package/src/__tests__/dictation-profile-store.test.ts +6 -6
- package/src/__tests__/disk-usage.test.ts +28 -164
- package/src/__tests__/docker-signing-key-bootstrap.test.ts +1 -1
- package/src/__tests__/embedding-cloud-proxy-selection.test.ts +1 -1
- package/src/__tests__/emit-event-signal.test.ts +1 -1
- package/src/__tests__/gateway-client-cloud-outbound.test.ts +3 -3
- package/src/__tests__/gateway-only-enforcement.test.ts +1 -1
- package/src/__tests__/guardian-dispatch.test.ts +0 -13
- package/src/__tests__/helpers/seed-app.ts +1 -1
- package/src/__tests__/host-cu-routes-targeted.test.ts +1 -1
- package/src/__tests__/host-shell-tool.test.ts +1 -1
- package/src/__tests__/identity-routes.test.ts +1 -1
- package/src/__tests__/inference-profile-session-handler.test.ts +1 -1
- package/src/__tests__/inference-profile-session-ipc.test.ts +1 -1
- package/src/__tests__/injector-chain.test.ts +1 -1
- package/src/__tests__/injector-config-quarantine-notice.test.ts +1 -1
- package/src/__tests__/injector-config-validation-reset-notice.test.ts +1 -1
- package/src/__tests__/injector-pkb-v2-silenced.test.ts +1 -1
- package/src/__tests__/{platform.test.ts → layout.test.ts} +1 -1
- package/src/__tests__/list-all-apps.test.ts +1 -1
- package/src/__tests__/live-workspace-guard.test.ts +2 -2
- package/src/__tests__/llm-resolver-override-or-default.test.ts +5 -6
- package/src/__tests__/llm-resolver.test.ts +7 -7
- package/src/__tests__/llm-schema-fallback-profile.test.ts +9 -10
- package/src/__tests__/llm-usage-store.test.ts +0 -495
- package/src/__tests__/log-export-routes.test.ts +1 -1
- package/src/__tests__/mcp-config-secret-boundary.test.ts +12 -53
- package/src/__tests__/mcp-list-plugin-servers.test.ts +1 -1
- package/src/__tests__/memory-config-file-parity.test.ts +1 -1
- package/src/__tests__/memory-v2-static-injector.test.ts +1 -1
- package/src/__tests__/messages-read-boundary-guard.test.ts +0 -2
- package/src/__tests__/notification-guardian-path.test.ts +0 -7
- package/src/__tests__/onboarding-persona-write.test.ts +1 -1
- package/src/__tests__/openai-provider.test.ts +8 -8
- package/src/__tests__/path-policy.test.ts +1 -1
- package/src/__tests__/persona-resolver.test.ts +1 -1
- package/src/__tests__/plugin-app-serve-routes.test.ts +1 -1
- package/src/__tests__/plugin-effective-enabled-set.test.ts +1 -1
- package/src/__tests__/plugin-import-boundary-guard.test.ts +4 -6
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -3
- package/src/__tests__/provider-cloud-proxy-integration.test.ts +1 -5
- package/src/__tests__/provider-connections-backfill.test.ts +10 -10
- package/src/__tests__/prune-old-conversations-job.test.ts +6 -31
- package/src/__tests__/resolve-app.test.ts +1 -1
- package/src/__tests__/run-due-schedules.test.ts +1 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +0 -53
- package/src/__tests__/schedule-routes.test.ts +1 -1
- package/src/__tests__/schedule-store.test.ts +1 -1
- package/src/__tests__/secret-routes-cloud-proxy.test.ts +1 -1
- package/src/__tests__/skill-load-plugin-scope.test.ts +1 -1
- package/src/__tests__/surface-completion-compaction-boundary.test.ts +1 -1
- package/src/__tests__/tool-approval-handler.test.ts +1 -1
- package/src/__tests__/tool-audit.test.ts +5 -235
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +54 -114
- package/src/__tests__/tools-get-route.test.ts +1 -1
- package/src/__tests__/turn-outcome-read.test.ts +1 -1
- package/src/__tests__/twilio-routes.test.ts +0 -1
- package/src/__tests__/usage-attribution.test.ts +0 -31
- package/src/__tests__/verification-control-plane-policy.test.ts +3 -10
- package/src/__tests__/visible-app-context.test.ts +1 -1
- package/src/__tests__/voice-ingress-preflight.test.ts +1 -1
- package/src/__tests__/workspace-git-service.test.ts +1 -1
- package/src/__tests__/workspace-greetings.test.ts +1 -1
- package/src/acp/__tests__/helpers/acp-config-stub.ts +1 -1
- package/src/activation/progress-store.ts +1 -1
- package/src/activation/turn-hooks.ts +1 -1
- package/src/agent/loop.ts +0 -51
- package/src/apps/app-store.ts +1 -1
- package/src/avatar/__tests__/avatar-store.test.ts +2 -172
- package/src/avatar/accent-backfill.ts +1 -1
- package/src/avatar/avatar-manifest.ts +1 -1
- package/src/avatar/avatar-store.ts +10 -69
- package/src/avatar/ensure-raster.ts +1 -1
- package/src/avatar/identity-avatar.ts +1 -1
- package/src/avatar/sync-avatar.ts +1 -1
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/bundler/compiler-tools.ts +1 -1
- package/src/bundler/package-resolver.ts +1 -1
- package/src/calls/__tests__/call-controller.test.ts +25 -27
- package/src/calls/active-call-lease.ts +1 -1
- package/src/calls/call-controller.ts +3 -3
- package/src/calls/call-domain.ts +4 -8
- package/src/calls/call-store.ts +2 -76
- package/src/calls/resolve-call-tts-provider.ts +3 -3
- package/src/calls/twilio-config.ts +3 -3
- package/src/calls/twilio-rest.ts +2 -2
- package/src/calls/voice-ingress-preflight.ts +2 -2
- package/src/cli/bundled-modules.ts +0 -2
- package/src/cli/commands/__tests__/apps.test.ts +1 -1
- package/src/cli/commands/__tests__/plugins.test.ts +9 -66
- package/src/cli/commands/__tests__/ps.test.ts +67 -0
- package/src/cli/commands/auth.help.ts +2 -2
- package/src/cli/commands/avatar.ts +1 -1
- package/src/cli/commands/changelog.ts +1 -1
- package/src/cli/commands/cloud/__tests__/subscription.test.ts +2 -2
- package/src/cli/commands/cloud/index.help.ts +1 -1
- package/src/cli/commands/cloud/index.ts +2 -2
- package/src/cli/commands/db/refresh.ts +1 -1
- package/src/cli/commands/db/repair-step-conversation-backfill.ts +1 -1
- package/src/cli/commands/db/repair.ts +1 -1
- package/src/cli/commands/db/status.ts +1 -1
- package/src/cli/commands/inference-profiles.ts +1 -12
- package/src/cli/commands/memory/__tests__/memory-v3.test.ts +1 -116
- package/src/cli/commands/memory/index.help.ts +1 -43
- package/src/cli/commands/memory/memory-v3.ts +0 -64
- package/src/cli/commands/plugins.ts +54 -205
- package/src/cli/commands/ps.ts +5 -2
- package/src/cli/commands/status.ts +1 -1
- package/src/cli/index.help.ts +0 -2
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +36 -66
- package/src/cli/lib/__tests__/install-from-cloud.test.ts +1 -1
- package/src/cli/lib/__tests__/install-from-github.test.ts +41 -117
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +2 -185
- package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +36 -66
- package/src/cli/lib/__tests__/plugin-catalog-visibility.test.ts +4 -6
- package/src/cli/lib/__tests__/plugin-details.test.ts +113 -96
- package/src/cli/lib/__tests__/search-plugins.test.ts +9 -16
- package/src/cli/lib/__tests__/uninstall-plugin.test.ts +1 -1
- package/src/cli/lib/__tests__/upgrade-plugin.test.ts +38 -15
- package/src/cli/lib/diff-plugin.ts +1 -1
- package/src/cli/lib/inspect-plugin.ts +13 -97
- package/src/cli/lib/install-from-cloud.ts +1 -1
- package/src/cli/lib/install-from-github.ts +75 -154
- package/src/cli/lib/install-plugin-dependencies.ts +1 -1
- package/src/cli/lib/list-installed-plugins.ts +1 -1
- package/src/cli/lib/open-browser.ts +1 -1
- package/src/cli/lib/plugin-catalog-cache.ts +8 -51
- package/src/cli/lib/plugin-catalog-resolve.ts +3 -22
- package/src/cli/lib/plugin-details.ts +5 -27
- package/src/cli/lib/plugin-marketplace.ts +18 -266
- package/src/cli/lib/search-plugins.ts +23 -43
- package/src/cli/lib/toggle-plugin.ts +1 -1
- package/src/cli/lib/uninstall-plugin.ts +1 -1
- package/src/cli/lib/upgrade-plugin.ts +3 -49
- package/src/cli/program.ts +1 -3
- package/src/cli.ts +1 -1
- package/src/cloud/client.ts +0 -6
- package/src/cloud/consent-cache.test.ts +22 -201
- package/src/cloud/consent-cache.ts +16 -111
- package/src/cloud/sync-identity.ts +1 -1
- package/src/config/__tests__/chat-settings.test.ts +1 -1
- package/src/config/__tests__/cloud-identity.test.ts +15 -2
- package/src/config/__tests__/default-plugin-skill-discovery.test.ts +1 -1
- package/src/config/__tests__/default-profile-catalog.test.ts +12 -51
- package/src/config/__tests__/deployment-context-defaults.test.ts +13 -13
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +4 -4
- package/src/config/__tests__/loader-last-known-good.test.ts +9 -9
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +7 -7
- package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +1 -1
- package/src/config/__tests__/profile-materialization.test.ts +2 -4
- package/src/config/__tests__/sync-gated-profiles.test.ts +1 -106
- package/src/config/acp-agent-write.ts +1 -1
- package/src/config/bundled-skills/settings/tools/open-system-settings.test.ts +1 -1
- package/src/config/bundled-skills/settings/tools/open-system-settings.ts +1 -1
- package/src/config/call-site-defaults.ts +0 -6
- package/src/config/cloud-identity.ts +12 -5
- package/src/config/composer-preferences.ts +1 -1
- package/src/config/default-profile-catalog.ts +8 -75
- package/src/config/default-profile-names.ts +2 -25
- package/src/config/env-registry.ts +1 -14
- package/src/config/env.ts +8 -6
- package/src/config/llm-resolver.ts +1 -2
- package/src/config/loader.ts +13 -17
- package/src/config/profile-materialization.ts +1 -1
- package/src/config/schema.ts +1 -7
- package/src/config/schemas/call-site-catalog.ts +0 -7
- package/src/config/schemas/llm.ts +22 -27
- package/src/config/seed-inference-profiles.ts +16 -17
- package/src/config/skills.ts +2 -2
- package/src/config/sync-gated-profiles.ts +6 -24
- package/src/credential-health/credential-health-service.ts +10 -3
- package/src/daemon/approval-generators.ts +3 -3
- package/src/daemon/config-watcher.ts +2 -2
- package/src/daemon/conversation-agent-loop-handlers.ts +0 -18
- package/src/daemon/conversation-agent-loop.ts +6 -97
- package/src/daemon/conversation-process.ts +1 -1
- package/src/daemon/conversation-skill-tools.ts +4 -72
- package/src/daemon/conversation-store.ts +1 -1
- package/src/daemon/conversation-surface-state.ts +0 -33
- package/src/daemon/conversation-surfaces.ts +1 -86
- package/src/daemon/conversation-tool-setup.test.ts +1 -1
- package/src/daemon/conversation-tool-setup.ts +0 -23
- package/src/daemon/conversation.ts +3 -5
- package/src/daemon/daemon-control.ts +3 -3
- package/src/daemon/dictation-profile-store.ts +3 -3
- package/src/daemon/event-loop-watchdog.test.ts +2 -198
- package/src/daemon/event-loop-watchdog.ts +0 -185
- package/src/daemon/external-plugins-bootstrap.ts +1 -1
- package/src/daemon/first-greeting.ts +1 -1
- package/src/daemon/handlers/skills.ts +1 -1
- package/src/daemon/host-app-control-proxy.ts +1 -1
- package/src/daemon/host-cu-proxy.ts +2 -2
- package/src/daemon/identity-helpers.ts +1 -1
- package/src/daemon/lifecycle.ts +11 -15
- package/src/daemon/main.ts +1 -1
- package/src/daemon/now-scratchpad.ts +1 -1
- package/src/daemon/process-message.ts +4 -4
- package/src/daemon/profiler-run-store.ts +2 -2
- package/src/daemon/providers-setup.ts +2 -2
- package/src/daemon/shutdown-handlers.ts +0 -10
- package/src/daemon/sqlite-corruption-watchdog.test.ts +2 -142
- package/src/daemon/sqlite-corruption-watchdog.ts +17 -81
- package/src/daemon/tool-side-effects.ts +1 -1
- package/src/desktop/desktop-session-manager.ts +1 -1
- package/src/desktop/desktop-wallpaper-renderer.ts +1 -1
- package/src/heartbeat/heartbeat-service.ts +1 -1
- package/src/home/feed-writer.ts +1 -1
- package/src/home/home-greeting-cache.ts +1 -1
- package/src/home/relationship-state-writer.ts +2 -2
- package/src/hooks/__tests__/hook-live-reload.test.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/oauth-callback-url.ts +3 -3
- package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
- package/src/ipc/socket-path.ts +1 -1
- package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -1
- package/src/live-voice/__tests__/live-voice-vad.test.ts +1 -1
- package/src/live-voice/live-voice-session.ts +3 -66
- package/src/mcp/__tests__/effective-config.test.ts +1 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +2 -2
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +2 -3
- package/src/mcp/__tests__/reload-signal-emission.test.ts +1 -1
- package/src/mcp/__tests__/reload-signal.test.ts +1 -1
- package/src/mcp/__tests__/workspace-mcp-config.test.ts +19 -21
- package/src/mcp/reload-signal.ts +1 -1
- package/src/mcp/workspace-mcp-config.ts +1 -23
- package/src/messaging/draft-store.ts +1 -1
- package/src/monitoring/__tests__/active-conversations.test.ts +1 -1
- package/src/monitoring/__tests__/page-cache.test.ts +1 -1
- package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
- package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +1 -1
- package/src/monitoring/active-conversations.ts +1 -1
- package/src/monitoring/control.ts +1 -1
- package/src/monitoring/daemon-boot-time.ts +1 -1
- package/src/monitoring/daemon-heartbeat.ts +1 -1
- package/src/monitoring/page-cache.ts +1 -1
- package/src/monitoring/plugin-auto-update.ts +1 -7
- package/src/monitoring/plugin-source-watch.ts +1 -1
- package/src/monitoring/recovery/db.ts +1 -1
- package/src/monitoring/recovery/inflight-content.ts +1 -1
- package/src/monitoring/resource-sampler.ts +3 -14
- package/src/monitoring/stall-capture.ts +1 -1
- package/src/monitoring/worker.ts +9 -76
- package/src/monitoring/workspace-git-heartbeat.ts +1 -1
- package/src/oauth/connect-orchestrator.ts +4 -4
- package/src/permissions/checker.ts +1 -1
- package/src/permissions/workspace-policy.ts +1 -1
- package/src/persistence/__tests__/main-db-readonly-probe.ts +27 -52
- package/src/persistence/__tests__/message-content-file.test.ts +1 -1
- package/src/persistence/__tests__/slow-sync-log.test.ts +0 -2
- package/src/persistence/attachments-store.ts +1 -1
- package/src/persistence/conversation-crud.ts +1 -38
- package/src/persistence/conversation-directories.ts +1 -1
- package/src/persistence/conversation-types.ts +0 -8
- package/src/persistence/db-async-query.ts +1 -1
- package/src/persistence/db-connection.ts +11 -1
- package/src/persistence/db-init.ts +1 -1
- package/src/persistence/db-maintenance.ts +1 -1
- package/src/persistence/embeddings/__tests__/embedding-local-lifecycle.test.ts +1 -1
- package/src/persistence/embeddings/embedding-local.ts +4 -4
- package/src/persistence/embeddings/embedding-runtime-manager.ts +1 -1
- package/src/persistence/embeddings/qdrant-client.ts +1 -1
- package/src/persistence/embeddings/qdrant-manager.ts +1 -1
- package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +1 -1
- package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +1 -1
- package/src/persistence/job-handlers/cleanup.ts +8 -17
- package/src/persistence/llm-usage-store.ts +2 -229
- package/src/persistence/message-content-file.ts +1 -1
- package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +1 -1
- package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/329-move-onboarding-events-to-telemetry-db.test.ts +13 -0
- package/src/persistence/migrations/330-move-auth-fallback-events-to-telemetry-db.test.ts +13 -0
- package/src/persistence/migrations/331-move-lifecycle-events-to-telemetry-db.test.ts +13 -0
- package/src/persistence/migrations/332-move-skill-loaded-events-to-telemetry-db.test.ts +13 -0
- package/src/persistence/migrations/333-create-telemetry-events-table.test.ts +7 -4
- package/src/persistence/migrations/334-backfill-telemetry-events-outbox.test.ts +13 -0
- package/src/persistence/migrations/387-drop-telemetry-tables.ts +51 -0
- package/src/persistence/migrations/__tests__/327-create-flush-checkpoints.test.ts +9 -1
- package/src/persistence/migrations/__tests__/387-drop-telemetry-tables.test.ts +79 -0
- package/src/persistence/migrations/helpers/relocation.ts +1 -1
- package/src/persistence/migrations/run-migrations.ts +1 -1
- package/src/persistence/migrations/validate-migration-state.ts +1 -1
- package/src/persistence/raw-query.ts +1 -29
- package/src/persistence/slow-sync-log.ts +0 -23
- package/src/persistence/steps.ts +2 -0
- package/src/{telemetry → persistence}/tool-audit.ts +6 -121
- package/src/plugin-api/index.ts +1 -1
- package/src/plugin-api/plugin-name-env.ts +1 -1
- package/src/plugins/__tests__/installed-plugin-dirs.test.ts +1 -1
- package/src/plugins/collect-source-versions.ts +1 -1
- package/src/plugins/defaults/channel/package.json +1 -1
- package/src/plugins/defaults/cloud-hosted/package.json +1 -1
- package/src/plugins/defaults/compaction/package.json +1 -1
- package/src/plugins/defaults/documents/package.json +1 -1
- package/src/plugins/defaults/empty-response/package.json +1 -1
- package/src/plugins/defaults/exploration-drift/package.json +1 -1
- package/src/plugins/defaults/image-fallback/package.json +1 -1
- package/src/plugins/defaults/image-recovery/package.json +1 -1
- package/src/plugins/defaults/max-tokens-continue/package.json +1 -1
- package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +0 -82
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +0 -41
- package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +0 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -52
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +0 -18
- package/src/plugins/defaults/memory/package.json +1 -1
- package/src/plugins/defaults/memory/paths.ts +4 -4
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/src/memory-v2-routes.ts +5 -5
- package/src/plugins/defaults/memory/src/memory-v3-routes.ts +0 -207
- package/src/plugins/defaults/memory/src/memory-worker-routes.ts +1 -1
- package/src/plugins/defaults/memory/startup.ts +1 -22
- package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +2 -253
- package/src/plugins/defaults/memory/v3/orchestrate.ts +5 -129
- package/src/plugins/defaults/memory/worker-control.ts +1 -1
- package/src/plugins/defaults/memory/worker.ts +2 -2
- package/src/plugins/defaults/session/package.json +1 -1
- package/src/plugins/defaults/surface-completion-nudge/package.json +1 -1
- package/src/plugins/defaults/task-progress/package.json +1 -1
- package/src/plugins/defaults/task-progress-nudge/package.json +1 -1
- package/src/plugins/defaults/title-generate/package.json +1 -1
- package/src/plugins/defaults/tool-error/package.json +1 -1
- package/src/plugins/defaults/tool-result-truncate/package.json +1 -1
- package/src/plugins/defaults/turn-context/package.json +1 -1
- package/src/plugins/defaults/workspace/injectors.ts +1 -1
- package/src/plugins/defaults/workspace/package.json +1 -1
- package/src/plugins/disabled-state.ts +1 -1
- package/src/plugins/ensure-plugin-api-shim.ts +1 -1
- package/src/plugins/ensure-shared-dep-links.ts +1 -1
- package/src/plugins/installed-plugin-dirs.ts +1 -1
- package/src/plugins/mcp-servers.ts +7 -9
- package/src/plugins/mtime-cache.ts +2 -2
- package/src/plugins/source-versions.ts +1 -1
- package/src/prompts/bootstrap-cleanup.ts +1 -1
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/sections.ts +2 -2
- package/src/prompts/system-prompt.ts +10 -42
- package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +0 -37
- package/src/providers/__tests__/cadet-connection-routing.test.ts +2 -2
- package/src/providers/cadet/client.ts +1 -1
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +1 -1
- package/src/providers/inference/adapter-factory.ts +1 -1
- package/src/providers/inference/backfill.ts +3 -10
- package/src/providers/inference/profile-probe.ts +1 -1
- package/src/providers/retry.ts +0 -2
- package/src/providers/types.ts +0 -7
- package/src/providers/usage-tracking.ts +1 -1
- package/src/routes/__tests__/route-host.test.ts +1 -1
- package/src/routes/control.ts +1 -1
- package/src/routes/route-host-client.ts +1 -1
- package/src/routes/worker.ts +2 -2
- package/src/runtime/agent-wake.ts +1 -1
- package/src/runtime/assistant-stream-state.ts +1 -1
- package/src/runtime/auth/token-service.ts +1 -1
- package/src/runtime/background-job-runner.ts +1 -1
- package/src/runtime/middleware/twilio-validation.ts +2 -2
- package/src/runtime/routes/__tests__/app-pin-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +1 -1
- package/src/runtime/routes/__tests__/avatar-state-routes.test.ts +3 -33
- package/src/runtime/routes/__tests__/cloud-credits-routes.test.ts +5 -4
- package/src/runtime/routes/__tests__/cloud-invoice-routes.test.ts +4 -3
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +59 -287
- package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/deprecated-route-context.test.ts +15 -62
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +105 -12
- package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +47 -211
- package/src/runtime/routes/__tests__/route-host-worker-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/schedule-routes-disarm-reason.test.ts +1 -1
- package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/user-route-dispatcher-host.test.ts +1 -1
- package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +1 -1
- package/src/runtime/routes/__tests__/user-routes-cli.test.ts +1 -1
- package/src/runtime/routes/__tests__/user-routes-notices.test.ts +1 -1
- package/src/runtime/routes/__tests__/user-routes-request.test.ts +1 -1
- package/src/runtime/routes/app-management-routes.ts +1 -1
- package/src/runtime/routes/attachment-routes.ts +1 -1
- package/src/runtime/routes/audit-routes.ts +1 -1
- package/src/runtime/routes/avatar-routes.ts +3 -10
- package/src/runtime/routes/cloud-routes.ts +3 -3
- package/src/runtime/routes/content-source-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +60 -621
- package/src/runtime/routes/conversation-routes.ts +1 -38
- package/src/runtime/routes/debug-routes.ts +1 -1
- package/src/runtime/routes/deprecated-route-context.ts +5 -61
- package/src/runtime/routes/heartbeat-routes.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +1 -1
- package/src/runtime/routes/index.ts +0 -6
- package/src/runtime/routes/inference-profile-session-handler.ts +3 -3
- package/src/runtime/routes/inference-profiles-routes.ts +48 -21
- package/src/runtime/routes/inference-provider-connection-routes.ts +0 -1
- package/src/runtime/routes/llm-call-sites-routes.ts +3 -3
- package/src/runtime/routes/log-export/__tests__/installed-inventory.test.ts +1 -1
- package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
- package/src/runtime/routes/log-export/__tests__/workspace-allowlist.test.ts +1 -1
- package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
- package/src/runtime/routes/log-export-routes.ts +17 -15
- package/src/runtime/routes/migration-rollback-routes.ts +1 -1
- package/src/runtime/routes/migration-routes.ts +2 -3
- package/src/runtime/routes/monitoring-routes.ts +2 -2
- package/src/runtime/routes/oauth-providers.ts +5 -5
- package/src/runtime/routes/plugins-routes.ts +38 -163
- package/src/runtime/routes/profiler-routes.ts +1 -1
- package/src/runtime/routes/route-host-worker-routes.ts +1 -1
- package/src/runtime/routes/sanity-routes.ts +1 -1
- package/src/runtime/routes/schedule-routes.ts +1 -1
- package/src/runtime/routes/schedule-worker-routes.ts +1 -1
- package/src/runtime/routes/settings-routes.ts +1 -1
- package/src/runtime/routes/sounds-config-routes.ts +1 -1
- package/src/runtime/routes/surface-conversation-resolver.ts +1 -7
- package/src/runtime/routes/user-route-dispatcher.ts +1 -3
- package/src/runtime/routes/user-route-import.ts +1 -1
- package/src/runtime/routes/user-route-resolution.ts +1 -1
- package/src/runtime/routes/user-routes-cli.ts +1 -1
- package/src/runtime/routes/workspace-commit-routes.ts +1 -1
- package/src/runtime/routes/workspace-greetings.ts +1 -1
- package/src/runtime/routes/workspace-routes.ts +1 -1
- package/src/runtime/routes/workspace-utils.ts +1 -1
- package/src/runtime/sync/resource-sync-events.ts +1 -1
- package/src/schedule/__tests__/plugin-schedule-declarations.test.ts +1 -1
- package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -1
- package/src/schedule/plugin-schedule-availability.ts +1 -1
- package/src/schedule/plugin-schedule-declarations.ts +1 -1
- package/src/schedule/run-script.ts +1 -1
- package/src/schedule/scheduler.ts +1 -11
- package/src/schedule/worker-control.ts +1 -1
- package/src/schedule/worker.ts +3 -3
- package/src/security/oauth2.ts +2 -2
- package/src/security/secret-allowlist.ts +1 -1
- package/src/signals/cancel.ts +1 -1
- package/src/signals/conversation-undo.ts +1 -1
- package/src/signals/emit-event.ts +1 -1
- package/src/signals/event-stream.ts +1 -1
- package/src/signals/user-message.ts +1 -1
- package/src/skills/catalog-install.ts +2 -1
- package/src/skills/clawhub.ts +1 -1
- package/src/skills/cloud-store.ts +1 -1
- package/src/skills/path-classifier.ts +1 -1
- package/src/skills/skill-history.ts +1 -1
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/skills/uninstall.ts +1 -1
- package/src/skills/workspace-skill-md-signature.ts +1 -1
- package/src/subagent/manager.ts +1 -1
- package/src/theme/workspace-theme.ts +1 -1
- package/src/tools/browser/auth-cache.ts +1 -1
- package/src/tools/browser/browser-manager.ts +1 -1
- package/src/tools/browser/runtime-check.ts +1 -1
- package/src/tools/executor.ts +4 -4
- package/src/tools/filesystem/write.ts +1 -1
- package/src/tools/permission-checker.ts +2 -51
- package/src/tools/run-standalone.ts +1 -1
- package/src/tools/skills/format-input-schema.ts +1 -1
- package/src/tools/skills/load.ts +1 -1
- package/src/tools/skills/scaffold-cloud.ts +0 -32
- package/src/tools/terminal/safe-env.ts +1 -2
- package/src/tools/terminal/sanitized-bash.ts +1 -1
- package/src/tools/terminal/shell.ts +1 -1
- package/src/tools/tool-approval-handler.ts +4 -1
- package/src/tools/workflows/manage-workflows.ts +2 -2
- package/src/tools/workflows/run-workflow.test.ts +1 -1
- package/src/tools/workspace-tools/loader.ts +1 -1
- package/src/tts/synthesis-stream.ts +2 -2
- package/src/usage/attribution.ts +1 -11
- package/src/util/browser.ts +1 -1
- package/src/util/bun-runtime.ts +2 -1
- package/src/util/device-id.ts +1 -1
- package/src/util/disk-usage.ts +4 -139
- package/src/util/layout.ts +3 -3
- package/src/util/logger.ts +1 -1
- package/src/util/logs-db-path.ts +1 -1
- package/src/util/memory-db-path.ts +1 -1
- package/src/util/{platform.ts → os.ts} +5 -30
- package/src/util/process-tree.ts +19 -0
- package/src/util/sqlite3-runtime.ts +1 -1
- package/src/util/telemetry-db-path.ts +1 -1
- package/src/watcher/__tests__/engine.test.ts +0 -23
- package/src/watcher/engine.ts +0 -7
- package/src/windows-compiled-cli.ts +0 -4
- package/src/windows-compiled-worker-entry.ts +0 -6
- package/src/workflows/leaf-runner.test.ts +1 -1
- package/src/workflows/leaf-runner.ts +1 -1
- package/src/workflows/library.ts +1 -1
- package/src/workspace/adaptive-thinking-repair.ts +5 -24
- package/src/workspace/byok-default-profile-ensure.ts +24 -26
- package/src/workspace/custom-profile-ensure.ts +2 -2
- package/src/workspace/git-service.ts +1 -1
- package/src/workspace/hatched-date.ts +1 -1
- package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +2 -2
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
- package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +1 -1
- package/src/workspace/migrations/077-seed-memory-router-callsite.ts +1 -1
- package/src/workspace/migrations/registry.ts +0 -4
- package/src/workspace/turn-commit.ts +1 -1
- package/docs/activation-funnel-telemetry.md +0 -324
- package/scripts/bundled-plugin-packages.ts +0 -154
- package/scripts/generate-bundled-plugin-packages.ts +0 -29
- package/src/__tests__/activation-early-marking.test.ts +0 -114
- package/src/__tests__/auth-fallback-events-store.test.ts +0 -99
- package/src/__tests__/config-get-vision-flag.test.ts +0 -139
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +0 -400
- package/src/__tests__/internal-telemetry-routes.test.ts +0 -213
- package/src/__tests__/telemetry-routes.test.ts +0 -182
- package/src/__tests__/turn-events-store.test.ts +0 -376
- package/src/__tests__/ui-channel-variants.test.ts +0 -53
- package/src/avatar/__tests__/avatar-changed-telemetry.test.ts +0 -217
- package/src/avatar/avatar-changed-telemetry.ts +0 -128
- package/src/calls/__tests__/call-funnel-telemetry.test.ts +0 -204
- package/src/cli/commands/telemetry.help.ts +0 -27
- package/src/cli/commands/telemetry.ts +0 -83
- package/src/cli/lib/__tests__/local-plugin-upgrade.test.ts +0 -251
- package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +0 -113
- package/src/cli/lib/__tests__/plugin-marketplace.test.ts +0 -384
- package/src/cli/lib/__tests__/plugin-pin-history.test.ts +0 -164
- package/src/cli/lib/__tests__/plugins-install-offline.test.ts +0 -228
- package/src/cli/lib/bundled-marketplace.json +0 -1575
- package/src/cli/lib/bundled-plugin-packages.json +0 -827
- package/src/cli/lib/bundled-plugin-packages.ts +0 -87
- package/src/cli/lib/plugin-catalog-local.ts +0 -94
- package/src/cli/lib/plugin-pin-history.ts +0 -276
- package/src/cloud/feature-gate.ts +0 -8
- package/src/config/__tests__/cloud-rehydration.test.ts +0 -180
- package/src/config/cloud-rehydration.ts +0 -35
- package/src/daemon/__tests__/auto-profile-router.test.ts +0 -380
- package/src/daemon/auto-profile-router.ts +0 -428
- package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +0 -391
- package/src/monitoring/__tests__/db-integrity-sample.test.ts +0 -113
- package/src/monitoring/__tests__/oom-kill-reporter.test.ts +0 -374
- package/src/monitoring/db-integrity-check.ts +0 -163
- package/src/monitoring/db-integrity-sample.ts +0 -176
- package/src/monitoring/oom-kill-reporter.ts +0 -469
- package/src/onboarding/__tests__/onboarding-events-store.test.ts +0 -158
- package/src/onboarding/onboarding-events-store.ts +0 -296
- package/src/persistence/__tests__/raw-query-telemetry.test.ts +0 -76
- package/src/persistence/lifecycle-events-store.test.ts +0 -134
- package/src/persistence/lifecycle-events-store.ts +0 -110
- package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +0 -76
- package/src/plugins/defaults/memory/activation-session-store.ts +0 -50
- package/src/plugins/defaults/memory/src/__tests__/memory-v3-gate-stats.test.ts +0 -281
- package/src/runtime/routes/auto-profile-routes.ts +0 -83
- package/src/runtime/routes/internal-telemetry-routes.ts +0 -142
- package/src/runtime/routes/telemetry-routes.ts +0 -274
- package/src/security/auth-fallback-events-store.ts +0 -57
- package/src/telemetry/__tests__/activation-funnel.test.ts +0 -95
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +0 -63
- package/src/telemetry/__tests__/config-setting-snapshot.test.ts +0 -143
- package/src/telemetry/__tests__/flush-checkpoints.test.ts +0 -56
- package/src/telemetry/__tests__/live-voice-funnel.test.ts +0 -174
- package/src/telemetry/__tests__/outbox-test-harness.ts +0 -85
- package/src/telemetry/__tests__/phone-call-funnel.test.ts +0 -72
- package/src/telemetry/__tests__/telemetry-event-fixtures.ts +0 -282
- package/src/telemetry/__tests__/watchdog-events-store.test.ts +0 -71
- package/src/telemetry/activation-funnel.ts +0 -172
- package/src/telemetry/config-setting-events-store.ts +0 -40
- package/src/telemetry/config-setting-snapshot.ts +0 -170
- package/src/telemetry/flush-checkpoints.ts +0 -70
- package/src/telemetry/live-voice-funnel.ts +0 -185
- package/src/telemetry/memory-corpus-size.test.ts +0 -120
- package/src/telemetry/memory-corpus-size.ts +0 -184
- package/src/telemetry/memory-tier-reporter.test.ts +0 -195
- package/src/telemetry/memory-tier-reporter.ts +0 -130
- package/src/telemetry/phone-call-funnel.ts +0 -144
- package/src/telemetry/skill-loaded-events-store.test.ts +0 -93
- package/src/telemetry/skill-loaded-events-store.ts +0 -39
- package/src/telemetry/telemetry-event-sources.test.ts +0 -223
- package/src/telemetry/telemetry-event-sources.ts +0 -597
- package/src/telemetry/telemetry-events-outbox.test.ts +0 -375
- package/src/telemetry/telemetry-events-outbox.ts +0 -237
- package/src/telemetry/telemetry-main-db.ts +0 -48
- package/src/telemetry/telemetry-wire-source.json +0 -4
- package/src/telemetry/telemetry-wire-validation.test.ts +0 -157
- package/src/telemetry/telemetry-wire-validation.ts +0 -162
- package/src/telemetry/telemetry-wire.generated.ts +0 -483
- package/src/telemetry/tool-executed-events-store.test.ts +0 -210
- package/src/telemetry/tool-executed-events-store.ts +0 -102
- package/src/telemetry/trace-collection-policy.test.ts +0 -28
- package/src/telemetry/trace-collection-policy.ts +0 -30
- package/src/telemetry/turn-events-store.ts +0 -216
- package/src/telemetry/turn-trace-store.test.ts +0 -884
- package/src/telemetry/turn-trace-store.ts +0 -399
- package/src/telemetry/types.test.ts +0 -38
- package/src/telemetry/types.ts +0 -780
- package/src/telemetry/usage-telemetry-reporter.test.ts +0 -3445
- package/src/telemetry/usage-telemetry-reporter.ts +0 -566
- package/src/telemetry/watchdog-direct-emit.test.ts +0 -112
- package/src/telemetry/watchdog-direct-emit.ts +0 -104
- package/src/telemetry/watchdog-events-store.ts +0 -31
- package/src/tools/ui-surface/channel-variants.ts +0 -52
- package/src/watcher/__tests__/telemetry.test.ts +0 -178
- package/src/watcher/telemetry.ts +0 -93
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +0 -165
- package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +0 -151
- /package/src/{telemetry → persistence}/tool-usage-store.ts +0 -0
- /package/src/{telemetry → persistence}/turn-outcome.ts +0 -0
|
@@ -81,7 +81,6 @@ function eraHatchBody(
|
|
|
81
81
|
) as Record<string, unknown>;
|
|
82
82
|
return {
|
|
83
83
|
...body,
|
|
84
|
-
source: "managed",
|
|
85
84
|
label: `${body.label} (Custom Provider)`,
|
|
86
85
|
model,
|
|
87
86
|
};
|
|
@@ -107,17 +106,17 @@ function uneditedByokConfig(): Record<string, unknown> {
|
|
|
107
106
|
},
|
|
108
107
|
profiles: {
|
|
109
108
|
balanced: {
|
|
110
|
-
|
|
109
|
+
provider: "cadet",
|
|
111
110
|
status: "disabled",
|
|
112
111
|
label: "Balanced (Managed)",
|
|
113
112
|
},
|
|
114
113
|
"quality-optimized": {
|
|
115
|
-
|
|
114
|
+
provider: "cadet",
|
|
116
115
|
status: "disabled",
|
|
117
116
|
label: "Quality (Managed)",
|
|
118
117
|
},
|
|
119
118
|
"cost-optimized": {
|
|
120
|
-
|
|
119
|
+
provider: "cadet",
|
|
121
120
|
status: "disabled",
|
|
122
121
|
label: "Speed (Managed)",
|
|
123
122
|
},
|
|
@@ -125,7 +124,6 @@ function uneditedByokConfig(): Record<string, unknown> {
|
|
|
125
124
|
"custom-quality-optimized": hatchBody("quality-optimized", "anthropic"),
|
|
126
125
|
"custom-cost-optimized": hatchBody("cost-optimized", "anthropic"),
|
|
127
126
|
"my-mix": {
|
|
128
|
-
source: "user",
|
|
129
127
|
label: "My Mix",
|
|
130
128
|
mix: [
|
|
131
129
|
{ profile: "custom-balanced", weight: 1 },
|
|
@@ -198,7 +196,6 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
198
196
|
"balanced",
|
|
199
197
|
{ provider: "anthropic" },
|
|
200
198
|
);
|
|
201
|
-
expect(resolved?.source).toBe("managed");
|
|
202
199
|
expect(resolved?.status).toBeUndefined();
|
|
203
200
|
expect(resolved?.provider).toBe("anthropic");
|
|
204
201
|
expect(resolved?.provider_connection).toBe("anthropic-personal");
|
|
@@ -417,7 +414,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
417
414
|
expectSecondRunNoop();
|
|
418
415
|
});
|
|
419
416
|
|
|
420
|
-
test("stubs carrying the
|
|
417
|
+
test("stubs carrying the repair thinking stamp are deleted (real-world shape)", () => {
|
|
421
418
|
const config = uneditedByokConfig();
|
|
422
419
|
const profs = (config.llm as Record<string, unknown>).profiles as Record<
|
|
423
420
|
string,
|
|
@@ -508,7 +505,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
508
505
|
|
|
509
506
|
expect(profiles()["custom-balanced"]).toBeUndefined();
|
|
510
507
|
expect(profiles().balanced).toEqual({
|
|
511
|
-
|
|
508
|
+
provider: "cadet",
|
|
512
509
|
label: "My Balanced",
|
|
513
510
|
});
|
|
514
511
|
expect(llm().activeProfile).toBe("balanced");
|
|
@@ -558,7 +555,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
558
555
|
|
|
559
556
|
expect(profiles()["custom-balanced"]).toBeUndefined();
|
|
560
557
|
expect(profiles().balanced).toEqual({
|
|
561
|
-
|
|
558
|
+
provider: "cadet",
|
|
562
559
|
status: "disabled",
|
|
563
560
|
});
|
|
564
561
|
expectSecondRunNoop();
|
|
@@ -572,7 +569,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
572
569
|
default: { provider: "anthropic" },
|
|
573
570
|
profiles: {
|
|
574
571
|
"quality-optimized": {
|
|
575
|
-
|
|
572
|
+
provider: "cadet",
|
|
576
573
|
status: "active",
|
|
577
574
|
label: "Quality (Managed)",
|
|
578
575
|
},
|
|
@@ -588,13 +585,13 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
588
585
|
|
|
589
586
|
test("a label-only hatch stub with no status key is deleted", () => {
|
|
590
587
|
// Installs that predate #30367's status seeding got only the label
|
|
591
|
-
// rewrite
|
|
588
|
+
// rewrite: thin provider-marked stubs with no status key.
|
|
592
589
|
writeConfig({
|
|
593
590
|
llm: {
|
|
594
591
|
default: { provider: "anthropic" },
|
|
595
592
|
profiles: {
|
|
596
|
-
balanced: {
|
|
597
|
-
"cost-optimized": {
|
|
593
|
+
balanced: { provider: "cadet", label: "Balanced (Managed)" },
|
|
594
|
+
"cost-optimized": { provider: "cadet", label: "Speed (Managed)" },
|
|
598
595
|
},
|
|
599
596
|
},
|
|
600
597
|
});
|
|
@@ -610,7 +607,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
610
607
|
const config = uneditedByokConfig();
|
|
611
608
|
const profileMap = (config.llm as Record<string, unknown>)
|
|
612
609
|
.profiles as Record<string, Record<string, unknown>>;
|
|
613
|
-
profileMap.balanced = {
|
|
610
|
+
profileMap.balanced = { provider: "cadet", label: "Balanced (Managed)" };
|
|
614
611
|
profileMap["custom-balanced"] = {
|
|
615
612
|
...profileMap["custom-balanced"],
|
|
616
613
|
status: "disabled",
|
|
@@ -621,7 +618,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
621
618
|
|
|
622
619
|
expect(profiles()["custom-balanced"]).toBeUndefined();
|
|
623
620
|
expect(profiles().balanced).toEqual({
|
|
624
|
-
|
|
621
|
+
provider: "cadet",
|
|
625
622
|
status: "disabled",
|
|
626
623
|
});
|
|
627
624
|
expectSecondRunNoop();
|
|
@@ -641,7 +638,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
641
638
|
|
|
642
639
|
expect(profiles()["custom-quality-optimized"]).toBeUndefined();
|
|
643
640
|
expect(profiles()["quality-optimized"]).toEqual({
|
|
644
|
-
|
|
641
|
+
provider: "cadet",
|
|
645
642
|
status: "disabled",
|
|
646
643
|
});
|
|
647
644
|
// The advisor pointed at the now-disabled default, so the same write
|
|
@@ -691,7 +688,6 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
691
688
|
activeProfile: "custom-cost-optimized",
|
|
692
689
|
profiles: {
|
|
693
690
|
"custom-cost-optimized": {
|
|
694
|
-
source: "user",
|
|
695
691
|
label: "Speed",
|
|
696
692
|
description: "Fastest responses at lower cost",
|
|
697
693
|
maxTokens: 8192,
|
|
@@ -769,7 +765,6 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
769
765
|
"balanced",
|
|
770
766
|
{ provider: "cadet" },
|
|
771
767
|
);
|
|
772
|
-
expect(resolved?.source).toBe("managed");
|
|
773
768
|
expect(resolved?.status).toBeUndefined();
|
|
774
769
|
expectSecondRunNoop();
|
|
775
770
|
});
|
|
@@ -838,7 +833,6 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
838
833
|
},
|
|
839
834
|
profiles: {
|
|
840
835
|
balanced: {
|
|
841
|
-
source: "user",
|
|
842
836
|
provider: "openai",
|
|
843
837
|
model: "gpt-5.4",
|
|
844
838
|
},
|
|
@@ -883,19 +877,19 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
883
877
|
},
|
|
884
878
|
profiles: {
|
|
885
879
|
balanced: {
|
|
886
|
-
|
|
880
|
+
provider: "cadet",
|
|
887
881
|
status: "active",
|
|
888
882
|
label: "Balanced (Managed)",
|
|
889
883
|
thinking: { enabled: true, streamThinking: true },
|
|
890
884
|
},
|
|
891
885
|
"quality-optimized": {
|
|
892
|
-
|
|
886
|
+
provider: "cadet",
|
|
893
887
|
status: "active",
|
|
894
888
|
label: "Quality (Managed)",
|
|
895
889
|
thinking: { enabled: true, streamThinking: true },
|
|
896
890
|
},
|
|
897
891
|
"cost-optimized": {
|
|
898
|
-
|
|
892
|
+
provider: "cadet",
|
|
899
893
|
status: "active",
|
|
900
894
|
label: "Speed (Managed)",
|
|
901
895
|
},
|
|
@@ -909,7 +903,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
909
903
|
),
|
|
910
904
|
"custom-cost-optimized": hatchBody("cost-optimized", "anthropic"),
|
|
911
905
|
"os-beta": {
|
|
912
|
-
|
|
906
|
+
provider: "cadet",
|
|
913
907
|
status: "active",
|
|
914
908
|
label: "OS Beta (Managed)",
|
|
915
909
|
},
|
|
@@ -953,7 +947,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
953
947
|
expectSecondRunNoop();
|
|
954
948
|
});
|
|
955
949
|
|
|
956
|
-
test("a
|
|
950
|
+
test("a cadet-provider default entry with body keys is left alone", () => {
|
|
957
951
|
writeConfig({
|
|
958
952
|
llm: {
|
|
959
953
|
default: {
|
|
@@ -961,7 +955,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
961
955
|
},
|
|
962
956
|
profiles: {
|
|
963
957
|
balanced: {
|
|
964
|
-
|
|
958
|
+
provider: "cadet",
|
|
965
959
|
status: "disabled",
|
|
966
960
|
label: "Balanced (Managed)",
|
|
967
961
|
model: "gpt-5.4",
|
|
@@ -1093,7 +1087,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
1093
1087
|
const profileMap = (config.llm as Record<string, unknown>)
|
|
1094
1088
|
.profiles as Record<string, Record<string, unknown>>;
|
|
1095
1089
|
profileMap["quality-optimized"] = {
|
|
1096
|
-
|
|
1090
|
+
provider: "cadet",
|
|
1097
1091
|
status: "active",
|
|
1098
1092
|
label: "Quality (Managed)",
|
|
1099
1093
|
};
|
|
@@ -1107,7 +1101,7 @@ describe("ensureByokDefaultProfiles", () => {
|
|
|
1107
1101
|
|
|
1108
1102
|
expect(profiles()["custom-quality-optimized"]).toBeUndefined();
|
|
1109
1103
|
expect(profiles()["quality-optimized"]).toEqual({
|
|
1110
|
-
|
|
1104
|
+
provider: "cadet",
|
|
1111
1105
|
status: "disabled",
|
|
1112
1106
|
});
|
|
1113
1107
|
expectSecondRunNoop();
|
|
@@ -102,7 +102,6 @@ describe("call-conversation-messages", () => {
|
|
|
102
102
|
const conversationId = "conv-call-msg-failed";
|
|
103
103
|
ensureConversation(conversationId);
|
|
104
104
|
const session = createCallSession({
|
|
105
|
-
direction: "inbound",
|
|
106
105
|
conversationId,
|
|
107
106
|
provider: "twilio",
|
|
108
107
|
fromNumber: "+15550001111",
|
|
@@ -123,7 +122,6 @@ describe("call-conversation-messages", () => {
|
|
|
123
122
|
const conversationId = "conv-call-msg-cancelled";
|
|
124
123
|
ensureConversation(conversationId);
|
|
125
124
|
const session = createCallSession({
|
|
126
|
-
direction: "inbound",
|
|
127
125
|
conversationId,
|
|
128
126
|
provider: "twilio",
|
|
129
127
|
fromNumber: "+15550001111",
|
|
@@ -144,7 +142,6 @@ describe("call-conversation-messages", () => {
|
|
|
144
142
|
const conversationId = "conv-call-msg-completed";
|
|
145
143
|
ensureConversation(conversationId);
|
|
146
144
|
const session = createCallSession({
|
|
147
|
-
direction: "inbound",
|
|
148
145
|
conversationId,
|
|
149
146
|
provider: "twilio",
|
|
150
147
|
fromNumber: "+15550001111",
|
|
@@ -174,7 +171,6 @@ describe("call-conversation-messages", () => {
|
|
|
174
171
|
const conversationId = "conv-call-msg-fallback";
|
|
175
172
|
ensureConversation(conversationId);
|
|
176
173
|
const session = createCallSession({
|
|
177
|
-
direction: "inbound",
|
|
178
174
|
conversationId,
|
|
179
175
|
provider: "twilio",
|
|
180
176
|
fromNumber: "+12025550101",
|
|
@@ -212,7 +208,6 @@ describe("call-conversation-messages", () => {
|
|
|
212
208
|
const conversationId = "conv-call-msg-schema";
|
|
213
209
|
ensureConversation(conversationId);
|
|
214
210
|
const session = createCallSession({
|
|
215
|
-
direction: "inbound",
|
|
216
211
|
conversationId,
|
|
217
212
|
provider: "twilio",
|
|
218
213
|
fromNumber: "+12025550101",
|
|
@@ -54,14 +54,9 @@ function resetTables() {
|
|
|
54
54
|
ensuredConvIds = new Set();
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
function createTestCallSession(
|
|
58
|
-
opts: Omit<Parameters<typeof createCallSession>[0], "direction"> & {
|
|
59
|
-
direction?: Parameters<typeof createCallSession>[0]["direction"];
|
|
60
|
-
},
|
|
61
|
-
) {
|
|
57
|
+
function createTestCallSession(opts: Parameters<typeof createCallSession>[0]) {
|
|
62
58
|
ensureConversation(opts.conversationId);
|
|
63
|
-
|
|
64
|
-
return createCallSession({ direction: "inbound", ...opts });
|
|
59
|
+
return createCallSession({ ...opts });
|
|
65
60
|
}
|
|
66
61
|
|
|
67
62
|
/** Backdate a session's createdAt so it appears older than the grace period. */
|
|
@@ -327,7 +327,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
327
327
|
ensureConversation("conv-get-1");
|
|
328
328
|
|
|
329
329
|
const session = createCallSession({
|
|
330
|
-
direction: "outbound",
|
|
331
330
|
conversationId: "conv-get-1",
|
|
332
331
|
provider: "twilio",
|
|
333
332
|
fromNumber: "+15550001111",
|
|
@@ -379,7 +378,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
379
378
|
ensureConversation("conv-cancel-1");
|
|
380
379
|
|
|
381
380
|
const session = createCallSession({
|
|
382
|
-
direction: "inbound",
|
|
383
381
|
conversationId: "conv-cancel-1",
|
|
384
382
|
provider: "twilio",
|
|
385
383
|
fromNumber: "+15550001111",
|
|
@@ -409,7 +407,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
409
407
|
ensureConversation("conv-cancel-2");
|
|
410
408
|
|
|
411
409
|
const session = createCallSession({
|
|
412
|
-
direction: "inbound",
|
|
413
410
|
conversationId: "conv-cancel-2",
|
|
414
411
|
provider: "twilio",
|
|
415
412
|
fromNumber: "+15550001111",
|
|
@@ -450,7 +447,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
450
447
|
ensureConversation("conv-answer-badjson");
|
|
451
448
|
|
|
452
449
|
const session = createCallSession({
|
|
453
|
-
direction: "inbound",
|
|
454
450
|
conversationId: "conv-answer-badjson",
|
|
455
451
|
provider: "twilio",
|
|
456
452
|
fromNumber: "+15550001111",
|
|
@@ -473,7 +469,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
473
469
|
ensureConversation("conv-answer-1");
|
|
474
470
|
|
|
475
471
|
const session = createCallSession({
|
|
476
|
-
direction: "inbound",
|
|
477
472
|
conversationId: "conv-answer-1",
|
|
478
473
|
provider: "twilio",
|
|
479
474
|
fromNumber: "+15550001111",
|
|
@@ -500,7 +495,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
500
495
|
ensureConversation("conv-answer-2");
|
|
501
496
|
|
|
502
497
|
const session = createCallSession({
|
|
503
|
-
direction: "inbound",
|
|
504
498
|
conversationId: "conv-answer-2",
|
|
505
499
|
provider: "twilio",
|
|
506
500
|
fromNumber: "+15550001111",
|
|
@@ -523,7 +517,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
523
517
|
ensureConversation("conv-answer-3");
|
|
524
518
|
|
|
525
519
|
const session = createCallSession({
|
|
526
|
-
direction: "inbound",
|
|
527
520
|
conversationId: "conv-answer-3",
|
|
528
521
|
provider: "twilio",
|
|
529
522
|
fromNumber: "+15550001111",
|
|
@@ -555,7 +548,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
555
548
|
ensureConversation("conv-instr-badjson");
|
|
556
549
|
|
|
557
550
|
const session = createCallSession({
|
|
558
|
-
direction: "inbound",
|
|
559
551
|
conversationId: "conv-instr-badjson",
|
|
560
552
|
provider: "twilio",
|
|
561
553
|
fromNumber: "+15550001111",
|
|
@@ -578,7 +570,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
578
570
|
ensureConversation("conv-instr-empty");
|
|
579
571
|
|
|
580
572
|
const session = createCallSession({
|
|
581
|
-
direction: "inbound",
|
|
582
573
|
conversationId: "conv-instr-empty",
|
|
583
574
|
provider: "twilio",
|
|
584
575
|
fromNumber: "+15550001111",
|
|
@@ -605,7 +596,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
605
596
|
ensureConversation("conv-instr-missing");
|
|
606
597
|
|
|
607
598
|
const session = createCallSession({
|
|
608
|
-
direction: "inbound",
|
|
609
599
|
conversationId: "conv-instr-missing",
|
|
610
600
|
provider: "twilio",
|
|
611
601
|
fromNumber: "+15550001111",
|
|
@@ -650,7 +640,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
650
640
|
ensureConversation("conv-instr-ended");
|
|
651
641
|
|
|
652
642
|
const session = createCallSession({
|
|
653
|
-
direction: "inbound",
|
|
654
643
|
conversationId: "conv-instr-ended",
|
|
655
644
|
provider: "twilio",
|
|
656
645
|
fromNumber: "+15550001111",
|
|
@@ -679,7 +668,6 @@ describe("runtime call routes — HTTP layer", () => {
|
|
|
679
668
|
ensureConversation("conv-instr-no-orch");
|
|
680
669
|
|
|
681
670
|
const session = createCallSession({
|
|
682
|
-
direction: "inbound",
|
|
683
671
|
conversationId: "conv-instr-no-orch",
|
|
684
672
|
provider: "twilio",
|
|
685
673
|
fromNumber: "+15550001111",
|
|
@@ -53,14 +53,9 @@ function resetTables() {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/** Wrapper that ensures the FK conversation row exists before creating a session. */
|
|
56
|
-
function createTestCallSession(
|
|
57
|
-
opts: Omit<Parameters<typeof createCallSession>[0], "direction"> & {
|
|
58
|
-
direction?: Parameters<typeof createCallSession>[0]["direction"];
|
|
59
|
-
},
|
|
60
|
-
) {
|
|
56
|
+
function createTestCallSession(opts: Parameters<typeof createCallSession>[0]) {
|
|
61
57
|
ensureConversation(opts.conversationId);
|
|
62
|
-
|
|
63
|
-
return createCallSession({ direction: "inbound", ...opts });
|
|
58
|
+
return createCallSession({ ...opts });
|
|
64
59
|
}
|
|
65
60
|
|
|
66
61
|
describe("call-store", () => {
|
|
@@ -152,7 +152,7 @@ beforeEach(() => {
|
|
|
152
152
|
fetchCalls = [];
|
|
153
153
|
mockCatalog = [];
|
|
154
154
|
mockRepoSkillsDir = undefined;
|
|
155
|
-
mockCloudBaseUrl = "https://
|
|
155
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
156
156
|
});
|
|
157
157
|
|
|
158
158
|
afterEach(() => {
|
|
@@ -314,7 +314,7 @@ describe("readCatalogSkillFiles (dev mode)", () => {
|
|
|
314
314
|
// called against the preview endpoint.
|
|
315
315
|
expect(fetchCalls.length).toBe(1);
|
|
316
316
|
expect(fetchCalls[0]!.url).toBe(
|
|
317
|
-
"https://
|
|
317
|
+
"https://test-cloud.mycadet.ai/v1/skills/my-skill/files/",
|
|
318
318
|
);
|
|
319
319
|
});
|
|
320
320
|
|
|
@@ -354,7 +354,9 @@ describe("readCatalogSkillFiles (dev mode)", () => {
|
|
|
354
354
|
expect(fetchCalls.length).toBe(1);
|
|
355
355
|
const url = fetchCalls[0]!.url;
|
|
356
356
|
expect(
|
|
357
|
-
url.startsWith(
|
|
357
|
+
url.startsWith(
|
|
358
|
+
"https://test-cloud.mycadet.ai/v1/skills/my-skill/files/content/",
|
|
359
|
+
),
|
|
358
360
|
).toBe(true);
|
|
359
361
|
});
|
|
360
362
|
|
|
@@ -430,7 +432,7 @@ describe("readCatalogSkillFiles (platform mode)", () => {
|
|
|
430
432
|
// URL + headers
|
|
431
433
|
expect(fetchCalls.length).toBe(1);
|
|
432
434
|
expect(fetchCalls[0]!.url).toBe(
|
|
433
|
-
"https://
|
|
435
|
+
"https://test-cloud.mycadet.ai/v1/skills/remote-skill/files/",
|
|
434
436
|
);
|
|
435
437
|
const headers = (fetchCalls[0]!.init?.headers ?? {}) as Record<
|
|
436
438
|
string,
|
|
@@ -734,7 +736,7 @@ describe("readCatalogSkillFileContent (platform mode)", () => {
|
|
|
734
736
|
const url = fetchCalls[0]!.url;
|
|
735
737
|
expect(
|
|
736
738
|
url.startsWith(
|
|
737
|
-
"https://
|
|
739
|
+
"https://test-cloud.mycadet.ai/v1/skills/remote-skill/files/content/",
|
|
738
740
|
),
|
|
739
741
|
).toBe(true);
|
|
740
742
|
expect(url).toContain("path=SKILL.md");
|
|
@@ -74,7 +74,7 @@ import { _clearGlobalCacheForTesting } from "../permissions/gateway-threshold-re
|
|
|
74
74
|
import { RiskLevel } from "../permissions/types.js";
|
|
75
75
|
import { registerSkillTools, registerTool } from "../tools/registry.js";
|
|
76
76
|
import type { Tool } from "../tools/types.js";
|
|
77
|
-
import * as platformModule from "../util/
|
|
77
|
+
import * as platformModule from "../util/layout.js";
|
|
78
78
|
|
|
79
79
|
/** Default gateway thresholds matching the old config fallback defaults. */
|
|
80
80
|
const DEFAULT_GATEWAY_THRESHOLDS = {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The CLI half mocks `cliIpcCall` and asserts the subcommand dispatches
|
|
6
6
|
* to `memory_v2_reembed_skills` with an empty body. The route half uses
|
|
7
|
-
* the real `
|
|
7
|
+
* the real `getConfig` — `memory.v2.enabled` is toggled via a per-test
|
|
8
8
|
* `config.json` fixture in the temp workspace. We mock only
|
|
9
9
|
* `seedV2SkillEntries` so we can assert it was invoked without actually
|
|
10
10
|
* embedding skills.
|
|
@@ -17,10 +17,10 @@ import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
|
|
|
17
17
|
import { Command } from "commander";
|
|
18
18
|
|
|
19
19
|
import { invalidateConfigCache } from "../config/loader.js";
|
|
20
|
-
import { getWorkspaceDir } from "../util/
|
|
20
|
+
import { getWorkspaceDir } from "../util/layout.js";
|
|
21
21
|
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
|
-
// Module-level mocks — kept minimal. `
|
|
23
|
+
// Module-level mocks — kept minimal. `getConfig` and `getLogger` use their
|
|
24
24
|
// real implementations because we have first-class test hooks (a per-test
|
|
25
25
|
// workspace `config.json` for config) that exercise the same code paths
|
|
26
26
|
// the route handler runs in production.
|
|
@@ -106,7 +106,7 @@ async function runCommand(args: string[]): Promise<{ exitCode: number }> {
|
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* Override `memory.v2.enabled` (and any other config paths) by writing a
|
|
109
|
-
* workspace `config.json` that the real `
|
|
109
|
+
* workspace `config.json` that the real `getConfig` will pick up.
|
|
110
110
|
*/
|
|
111
111
|
function writeWorkspaceConfig(json: Record<string, unknown>): void {
|
|
112
112
|
const workspace = getWorkspaceDir();
|
|
@@ -9,10 +9,6 @@ let fetchImpl: (
|
|
|
9
9
|
) => Promise<Response> = async () => new Response("{}", { status: 200 });
|
|
10
10
|
const fetchCalls: Array<{ url: string; init?: RequestInit }> = [];
|
|
11
11
|
|
|
12
|
-
mock.module("../cloud/feature-gate.js", () => ({
|
|
13
|
-
areCloudFeaturesEnabled: () => true,
|
|
14
|
-
}));
|
|
15
|
-
|
|
16
12
|
mock.module("../providers/cloud-proxy/context.js", () => ({
|
|
17
13
|
resolveCloudProxyContext: async () => ({
|
|
18
14
|
enabled: true,
|
|
@@ -89,7 +89,7 @@ describe("fetchCloudCatalog", () => {
|
|
|
89
89
|
});
|
|
90
90
|
|
|
91
91
|
test("returns empty descriptors when API key is missing", async () => {
|
|
92
|
-
mockCloudBaseUrl = "https://
|
|
92
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
93
93
|
secureKeys.delete(ASSISTANT_API_KEY);
|
|
94
94
|
|
|
95
95
|
const result = await fetchCloudCatalog();
|
|
@@ -98,7 +98,7 @@ describe("fetchCloudCatalog", () => {
|
|
|
98
98
|
});
|
|
99
99
|
|
|
100
100
|
test("returns empty descriptors when assistant ID is missing", async () => {
|
|
101
|
-
mockCloudBaseUrl = "https://
|
|
101
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
102
102
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
103
103
|
mockCloudAssistantId = "";
|
|
104
104
|
|
|
@@ -108,12 +108,12 @@ describe("fetchCloudCatalog", () => {
|
|
|
108
108
|
});
|
|
109
109
|
|
|
110
110
|
test("parses platform catalog response into descriptors with correct handles", async () => {
|
|
111
|
-
mockCloudBaseUrl = "https://
|
|
111
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
112
112
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
113
113
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
114
114
|
|
|
115
115
|
mockFetchResponses.set(
|
|
116
|
-
"https://
|
|
116
|
+
"https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/",
|
|
117
117
|
{
|
|
118
118
|
status: 200,
|
|
119
119
|
body: [
|
|
@@ -156,12 +156,12 @@ describe("fetchCloudCatalog", () => {
|
|
|
156
156
|
});
|
|
157
157
|
|
|
158
158
|
test("handles empty connections list from platform", async () => {
|
|
159
|
-
mockCloudBaseUrl = "https://
|
|
159
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
160
160
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
161
161
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
162
162
|
|
|
163
163
|
mockFetchResponses.set(
|
|
164
|
-
"https://
|
|
164
|
+
"https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/",
|
|
165
165
|
{
|
|
166
166
|
status: 200,
|
|
167
167
|
body: [],
|
|
@@ -174,12 +174,12 @@ describe("fetchCloudCatalog", () => {
|
|
|
174
174
|
});
|
|
175
175
|
|
|
176
176
|
test("handles platform returning HTTP error gracefully", async () => {
|
|
177
|
-
mockCloudBaseUrl = "https://
|
|
177
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
178
178
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
179
179
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
180
180
|
|
|
181
181
|
mockFetchResponses.set(
|
|
182
|
-
"https://
|
|
182
|
+
"https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/",
|
|
183
183
|
{
|
|
184
184
|
status: 500,
|
|
185
185
|
body: { detail: "Internal server error" },
|
|
@@ -193,12 +193,12 @@ describe("fetchCloudCatalog", () => {
|
|
|
193
193
|
});
|
|
194
194
|
|
|
195
195
|
test("handles platform returning unexpected format gracefully", async () => {
|
|
196
|
-
mockCloudBaseUrl = "https://
|
|
196
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
197
197
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
198
198
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
199
199
|
|
|
200
200
|
mockFetchResponses.set(
|
|
201
|
-
"https://
|
|
201
|
+
"https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/",
|
|
202
202
|
{
|
|
203
203
|
status: 200,
|
|
204
204
|
body: { unexpected: "shape" },
|
|
@@ -211,12 +211,12 @@ describe("fetchCloudCatalog", () => {
|
|
|
211
211
|
});
|
|
212
212
|
|
|
213
213
|
test("defaults missing optional fields in catalog entries", async () => {
|
|
214
|
-
mockCloudBaseUrl = "https://
|
|
214
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
215
215
|
secureKeys.set(ASSISTANT_API_KEY, "sk-test-key");
|
|
216
216
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
217
217
|
|
|
218
218
|
mockFetchResponses.set(
|
|
219
|
-
"https://
|
|
219
|
+
"https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/",
|
|
220
220
|
{
|
|
221
221
|
status: 200,
|
|
222
222
|
body: [
|
|
@@ -242,7 +242,7 @@ describe("fetchCloudCatalog", () => {
|
|
|
242
242
|
});
|
|
243
243
|
|
|
244
244
|
test("error messages never contain sensitive details", async () => {
|
|
245
|
-
mockCloudBaseUrl = "https://
|
|
245
|
+
mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
|
|
246
246
|
secureKeys.set(ASSISTANT_API_KEY, "sk-super-secret-key-12345");
|
|
247
247
|
mockCloudAssistantId = "ast-uuid-1234";
|
|
248
248
|
|
|
@@ -251,7 +251,7 @@ describe("fetchCloudCatalog", () => {
|
|
|
251
251
|
const errorFetch: typeof fetch = Object.assign(
|
|
252
252
|
async () => {
|
|
253
253
|
throw new Error(
|
|
254
|
-
"Connect failed to https://
|
|
254
|
+
"Connect failed to https://test-cloud.mycadet.ai/v1/assistants/ast-uuid-1234/oauth/managed/catalog/ with Bearer sk-super-secret-key-12345",
|
|
255
255
|
);
|
|
256
256
|
},
|
|
257
257
|
{ preconnect: savedFetch.preconnect },
|