@mycadet/assistant 0.12.9 → 0.12.11
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/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +1 -1
- package/node_modules/@mycadet/ces-client/src/http-credentials.ts +18 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
- package/node_modules/@mycadet/service-contracts/src/ingress.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 +87 -404
- 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 +25 -32
- 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 +72 -298
- 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 +49 -706
- 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
|
@@ -23,7 +23,7 @@ import type { TrustContext } from "../../../daemon/trust-context-types.js";
|
|
|
23
23
|
import {
|
|
24
24
|
getConfigQuarantineNoticePath,
|
|
25
25
|
getConfigValidationResetNoticePath,
|
|
26
|
-
} from "../../../util/
|
|
26
|
+
} from "../../../util/layout.js";
|
|
27
27
|
import {
|
|
28
28
|
type InjectionBlock,
|
|
29
29
|
type Injector,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { existsSync } from "node:fs";
|
|
16
16
|
import { join } from "node:path";
|
|
17
17
|
|
|
18
|
-
import { getWorkspacePluginsDir } from "../util/
|
|
18
|
+
import { getWorkspacePluginsDir } from "../util/layout.js";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Return `true` when the `.disabled` sentinel exists for `pluginName`.
|
|
@@ -42,8 +42,8 @@ import {
|
|
|
42
42
|
PLUGIN_API_EXPORTS,
|
|
43
43
|
PLUGIN_API_REGISTRY_KEY,
|
|
44
44
|
} from "../embedded/plugin-api.js";
|
|
45
|
+
import { getWorkspaceDir } from "../util/layout.js";
|
|
45
46
|
import { getLogger } from "../util/logger.js";
|
|
46
|
-
import { getWorkspaceDir } from "../util/platform.js";
|
|
47
47
|
|
|
48
48
|
const log = getLogger("plugin-api-shim");
|
|
49
49
|
|
|
@@ -56,8 +56,8 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
56
56
|
import { mkdir, symlink } from "node:fs/promises";
|
|
57
57
|
import { dirname, join } from "node:path";
|
|
58
58
|
|
|
59
|
+
import { getWorkspaceDir } from "../util/layout.js";
|
|
59
60
|
import { getLogger } from "../util/logger.js";
|
|
60
|
-
import { getWorkspaceDir } from "../util/platform.js";
|
|
61
61
|
|
|
62
62
|
const log = getLogger("shared-dep-links");
|
|
63
63
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
import { readdirSync, realpathSync, statSync } from "node:fs";
|
|
22
22
|
import { join, sep } from "node:path";
|
|
23
23
|
|
|
24
|
-
import { getWorkspacePluginsDir } from "../util/
|
|
24
|
+
import { getWorkspacePluginsDir } from "../util/layout.js";
|
|
25
25
|
import { hasPluginManifest } from "../util/plugin-manifest.js";
|
|
26
26
|
|
|
27
27
|
export interface InstalledPluginDir {
|
|
@@ -54,17 +54,15 @@ export const PLUGIN_MCP_MANIFEST = "mcp.json";
|
|
|
54
54
|
* `mcp.json` has no risk field, since the spec defines none, so a host
|
|
55
55
|
* default applies.
|
|
56
56
|
*
|
|
57
|
-
* The review happens earlier: the
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* the user installed the plugin to get.
|
|
57
|
+
* The review happens earlier: the installable catalog is the Cadet Cloud
|
|
58
|
+
* marketplace's reviewed entries, and installing a plugin is itself the
|
|
59
|
+
* user's decision to run the code it ships. Gating every call afterwards
|
|
60
|
+
* prompts on the tools the user installed the plugin to get.
|
|
62
61
|
*
|
|
63
62
|
* The gap this leaves is deliberate and known: a plugin installed
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* rather than blanket. A workspace entry of the same id replaces the
|
|
63
|
+
* straight from a GitHub URL gets the same default, and nothing recorded
|
|
64
|
+
* at install time distinguishes the two afterwards. A provenance signal
|
|
65
|
+
* is what would let this default be curation-gated rather than blanket. A workspace entry of the same id replaces the
|
|
68
66
|
* plugin server wholesale (transport included) and uses the workspace
|
|
69
67
|
* origin risk.
|
|
70
68
|
*/
|
|
@@ -54,11 +54,11 @@ import {
|
|
|
54
54
|
} from "../security/plugin-secret-patterns.js";
|
|
55
55
|
import { finalizeTool } from "../tools/tool-defaults.js";
|
|
56
56
|
import type { Tool, ToolDefinition } from "../tools/types.js";
|
|
57
|
-
import { getLogger } from "../util/logger.js";
|
|
58
57
|
import {
|
|
59
58
|
getWorkspaceHooksDir,
|
|
60
59
|
getWorkspacePluginsDir,
|
|
61
|
-
} from "../util/
|
|
60
|
+
} from "../util/layout.js";
|
|
61
|
+
import { getLogger } from "../util/logger.js";
|
|
62
62
|
import { hasPluginManifest } from "../util/plugin-manifest.js";
|
|
63
63
|
import { collectSourceVersions } from "./collect-source-versions.js";
|
|
64
64
|
import {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
import { readFileSync } from "node:fs";
|
|
22
22
|
import { join } from "node:path";
|
|
23
23
|
|
|
24
|
-
import { getMonitoringDataDir } from "../util/
|
|
24
|
+
import { getMonitoringDataDir } from "../util/layout.js";
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Sentinel filename, under the monitoring data directory
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, unlinkSync } from "node:fs";
|
|
2
2
|
|
|
3
|
+
import { getWorkspacePromptPath } from "../util/layout.js";
|
|
3
4
|
import { getLogger } from "../util/logger.js";
|
|
4
|
-
import { getWorkspacePromptPath } from "../util/platform.js";
|
|
5
5
|
|
|
6
6
|
const log = getLogger("bootstrap-cleanup");
|
|
7
7
|
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
} from "../contacts/guardian-delivery-reader.js";
|
|
12
12
|
import type { ChannelCapabilities } from "../daemon/conversation-runtime-assembly.js";
|
|
13
13
|
import type { TrustContext } from "../daemon/trust-context-types.js";
|
|
14
|
+
import { getWorkspaceDir, getWorkspacePromptPath } from "../util/layout.js";
|
|
14
15
|
import { getLogger } from "../util/logger.js";
|
|
15
|
-
import { getWorkspaceDir, getWorkspacePromptPath } from "../util/platform.js";
|
|
16
16
|
import { stripCommentLines } from "../util/strip-comment-lines.js";
|
|
17
17
|
import type { NormalizedOnboarding } from "./normalize-onboarding.js";
|
|
18
18
|
|
package/src/prompts/sections.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
|
|
4
4
|
import { parseFrontmatterFields } from "../skills/frontmatter.js";
|
|
5
|
-
import { getLogger } from "../util/logger.js";
|
|
6
5
|
import {
|
|
7
6
|
getWorkspacePromptPath,
|
|
8
7
|
getWorkspaceSystemPromptDir,
|
|
9
|
-
} from "../util/
|
|
8
|
+
} from "../util/layout.js";
|
|
9
|
+
import { getLogger } from "../util/logger.js";
|
|
10
10
|
import { stripCommentLines } from "../util/strip-comment-lines.js";
|
|
11
11
|
import {
|
|
12
12
|
BUNDLED_SYSTEM_SECTIONS,
|
|
@@ -12,17 +12,15 @@ import { getIsContainerized } from "../config/env-registry.js";
|
|
|
12
12
|
import type { ChannelCapabilities } from "../daemon/conversation-runtime-assembly.js";
|
|
13
13
|
import { resolveTrustClass } from "../daemon/trust-context.js";
|
|
14
14
|
import type { TrustContext } from "../daemon/trust-context-types.js";
|
|
15
|
-
import { markActivationSession } from "../plugins/defaults/memory/activation-session-store.js";
|
|
16
15
|
import { derivePersonaTrustFlags } from "../runtime/trust-class.js";
|
|
17
|
-
import { ACTIVATION_RAIL_BOOTSTRAP_TEMPLATE } from "../telemetry/activation-funnel.js";
|
|
18
16
|
import type { OnboardingContext } from "../types/onboarding-context.js";
|
|
19
17
|
import { resolveBundledDir } from "../util/bundled-asset.js";
|
|
20
|
-
import { getLogger } from "../util/logger.js";
|
|
21
18
|
import {
|
|
22
19
|
getConversationsDir,
|
|
23
20
|
getWorkspaceDir,
|
|
24
21
|
getWorkspacePromptPath,
|
|
25
|
-
} from "../util/
|
|
22
|
+
} from "../util/layout.js";
|
|
23
|
+
import { getLogger } from "../util/logger.js";
|
|
26
24
|
import { stripCommentLines } from "../util/strip-comment-lines.js";
|
|
27
25
|
import { cleanupBootstrapFiles } from "./bootstrap-cleanup.js";
|
|
28
26
|
import { SYSTEM_PROMPT_CACHE_BOUNDARY } from "./cache-boundary.js";
|
|
@@ -336,40 +334,11 @@ export function maybeReseedBootstrap(templateFileName: string): boolean {
|
|
|
336
334
|
|
|
337
335
|
/**
|
|
338
336
|
* Reseed BOOTSTRAP.md from the requested onboarding template (one-shot,
|
|
339
|
-
* idempotent)
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
* Marking happens here — at the single point where the bootstrap selection is
|
|
343
|
-
* known — so it lands BEFORE the agent loop resolves tools and BEFORE the model
|
|
344
|
-
* can call the emit tool on the first activation-rail turn. (`resolveTools`
|
|
345
|
-
* runs before the system-prompt build in the loop, so the system-prompt build is
|
|
346
|
-
* too late to be the *only* marking site.) The marker write is best-effort and
|
|
347
|
-
* idempotent (`markActivationSession` swallows errors and dedups on the PK), so
|
|
348
|
-
* calling this from both `setOnboardingContext` and `buildSystemPrompt` is safe.
|
|
349
|
-
*
|
|
350
|
-
* The activation mark is gated on the rail actually being the active bootstrap —
|
|
351
|
-
* either this call just installed it, OR BOOTSTRAP.md already holds the
|
|
352
|
-
* activation-rail template. When the reseed no-ops because BOOTSTRAP.md is
|
|
353
|
-
* missing or customized to something else, the rail is NOT active, so we must
|
|
354
|
-
* NOT mark (otherwise non-rail conversations would pollute activation
|
|
355
|
-
* telemetry).
|
|
337
|
+
* idempotent). No-op when the workspace's BOOTSTRAP.md is missing or has been
|
|
338
|
+
* customized away from the generic template.
|
|
356
339
|
*/
|
|
357
|
-
export function applyBootstrapTemplate(
|
|
358
|
-
bootstrapTemplate
|
|
359
|
-
conversationId?: string,
|
|
360
|
-
): void {
|
|
361
|
-
const installedActivationRail = maybeReseedBootstrap(bootstrapTemplate);
|
|
362
|
-
if (
|
|
363
|
-
bootstrapTemplate === ACTIVATION_RAIL_BOOTSTRAP_TEMPLATE &&
|
|
364
|
-
conversationId &&
|
|
365
|
-
(installedActivationRail ||
|
|
366
|
-
isTemplateContent(
|
|
367
|
-
readPromptFile(getWorkspacePromptPath("BOOTSTRAP.md")),
|
|
368
|
-
ACTIVATION_RAIL_BOOTSTRAP_TEMPLATE,
|
|
369
|
-
))
|
|
370
|
-
) {
|
|
371
|
-
markActivationSession(conversationId);
|
|
372
|
-
}
|
|
340
|
+
export function applyBootstrapTemplate(bootstrapTemplate: string): void {
|
|
341
|
+
maybeReseedBootstrap(bootstrapTemplate);
|
|
373
342
|
}
|
|
374
343
|
|
|
375
344
|
/**
|
|
@@ -460,13 +429,12 @@ export interface BuildSystemPromptOptions {
|
|
|
460
429
|
* file-backed bodies, and runtime-computed transforms.
|
|
461
430
|
*/
|
|
462
431
|
export function buildSystemPrompt(options?: BuildSystemPromptOptions): string {
|
|
463
|
-
// One-shot bootstrap reseed
|
|
464
|
-
//
|
|
465
|
-
//
|
|
466
|
-
// harmless idempotent backstop for prompt builds outside that path.
|
|
432
|
+
// One-shot bootstrap reseed, at prompt build for prompt paths outside the
|
|
433
|
+
// onboarding-context entry point (idempotent — no-op once BOOTSTRAP.md is
|
|
434
|
+
// customized).
|
|
467
435
|
const bootstrapTemplate = options?.onboardingContext?.bootstrapTemplate;
|
|
468
436
|
if (bootstrapTemplate) {
|
|
469
|
-
applyBootstrapTemplate(bootstrapTemplate
|
|
437
|
+
applyBootstrapTemplate(bootstrapTemplate);
|
|
470
438
|
}
|
|
471
439
|
|
|
472
440
|
// Slugs used by the persona sections (`10-user-persona`,
|
|
@@ -16,8 +16,6 @@ The prompt itself must be one-click copyable. Inline paragraph text the user has
|
|
|
16
16
|
|
|
17
17
|
DONE: the user has the copyable prompt in hand (or you've explicitly backfilled/skipped Port per the task-first opener below).
|
|
18
18
|
|
|
19
|
-
<!-- Funnel: segment activation events by port_accepted vs port_declined so the no-port branch can be tuned separately. Instrumentation is a follow-up; this template only defines the branch. -->
|
|
20
|
-
|
|
21
19
|
_If the user declines the port (`port_declined`)._ Don't re-pitch and don't ask two questions to make up for the missing paste. Ask exactly ONE question — the one that buys the most signal for Propose ("what's the one thing you most want off your plate this week?"). Their answer is the Moment 1 output that Port would have produced. Stay in a bounded context loop: at most two context-gathering turns total. If you still don't have a surface to point at after that, propose anyway with what you have — a thin proposal beats stalling for more input.
|
|
22
20
|
|
|
23
21
|
On `port_declined`, render exactly ONE small structured intake surface before moving to Propose — a `ui_show` `choice` surface (`display: "inline"`, single-select) whose options are a short background list (Founder / Engineer / Creative / Operator / Investor / Student / Other), so the no-port branch still hands Propose a structured signal. (A `form` with one short field, or a `choice` phrased as a single top-of-mind question, is an acceptable substitute — pick one; the background `choice` is the default.) This is the deliberate structured-intake exception to the "don't enumerate options / the recommendation IS the click" guidance — scoped to the no-port branch only, where there's no paste to infer from, so a small menu is the cheapest way to get traction. The port (paste) branch is unchanged: it never renders this surface.
|
|
@@ -85,41 +83,6 @@ Identity writes (IDENTITY.md, SOUL.md), user-profile writes, journal entries: al
|
|
|
85
83
|
|
|
86
84
|
Your opener is the Port pitch — no other intake surface precedes it.
|
|
87
85
|
|
|
88
|
-
## Telemetry: tag your `ui_show` surfaces
|
|
89
|
-
|
|
90
|
-
The activation funnel is measured passively — there is no separate tool to call.
|
|
91
|
-
When you render the `ui_show` surface for a rail move that IS a funnel moment,
|
|
92
|
-
add the optional `activation_moment` parameter to that same `ui_show` call. It's
|
|
93
|
-
a tag on a surface you're already showing, not extra work.
|
|
94
|
-
|
|
95
|
-
Most moments record when the user COMMITS the tagged surface (clicks an action /
|
|
96
|
-
submits / selects). The one exception is `first_wow_executed`, which records the
|
|
97
|
-
moment the surface RENDERS — because the wow has already happened by the time you
|
|
98
|
-
show its result, and a result card is often display-only with nothing to commit.
|
|
99
|
-
|
|
100
|
-
Which surface to tag with which moment:
|
|
101
|
-
|
|
102
|
-
- `moment_1` — the no-port intake `choice` surface, OR the Port-summary card
|
|
103
|
-
(background + top-of-mind captured, or the user explicitly skipped). Records on
|
|
104
|
-
commit (when the intake resolves).
|
|
105
|
-
- `moment_2` — the Propose offer surface (the `ui_show` offer card/choice where
|
|
106
|
-
the user picks an outcome). Records on commit.
|
|
107
|
-
- `moment_3` — the task-selection surface (the specific thing you're about to
|
|
108
|
-
run is chosen). Records on commit.
|
|
109
|
-
- `first_wow_executed` — the Run result surface (e.g. `work_result` / the result
|
|
110
|
-
the user sees after the wow ran against real data). Records on RENDER — you do
|
|
111
|
-
not need the user to click anything; just tag the result surface.
|
|
112
|
-
- `first_wow_interacted` — the user's first engagement AFTER the wow. Tag the
|
|
113
|
-
surface they act on (a result-card action button, or the follow-through
|
|
114
|
-
`choice` you render next). Records on commit. Don't put this on the same
|
|
115
|
-
surface as `first_wow_executed` — one tag per surface, and that surface already
|
|
116
|
-
records "executed" on render.
|
|
117
|
-
|
|
118
|
-
A surface carries at most one `activation_moment`. The milestone no-ops outside
|
|
119
|
-
an activation session, and a missing or mistimed tag is non-fatal — but accurate,
|
|
120
|
-
move-bound tags are what make the funnel meaningful. Omit `activation_moment` on
|
|
121
|
-
every non-funnel surface.
|
|
122
|
-
|
|
123
86
|
## Wrap
|
|
124
87
|
|
|
125
88
|
<!-- Open question: the default wrap tone below is opinionated (brisk, dataset-first). Whether that's the right note to end the activation rail on is a conscious call we haven't made yet — flag, don't silently change. -->
|
|
@@ -39,7 +39,7 @@ const cadetConnection = {
|
|
|
39
39
|
const resolvedAuth: ResolvedAuth = {
|
|
40
40
|
kind: "header",
|
|
41
41
|
headers: { Authorization: "Bearer test-key" },
|
|
42
|
-
baseUrl: "https://
|
|
42
|
+
baseUrl: "https://test-cloud.mycadet.ai/v1/runtime-proxy/fireworks",
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
describe("cadet connection routing", () => {
|
|
@@ -76,7 +76,7 @@ describe("cadet connection routing", () => {
|
|
|
76
76
|
{
|
|
77
77
|
kind: "header",
|
|
78
78
|
headers: { Authorization: "Bearer test-key" },
|
|
79
|
-
baseUrl: "https://
|
|
79
|
+
baseUrl: "https://test-cloud.mycadet.ai/v1/runtime-proxy/cadet",
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
model: "qwen/qwen3-8b",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getWorkspaceDir } from "../../util/
|
|
1
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
2
2
|
import { OpenAIChatCompletionsProvider } from "../openai/chat-completions-provider.js";
|
|
3
3
|
import type { SendMessageOptions } from "../types.js";
|
|
4
4
|
import { hostedDirectionsExtraBody } from "./personality-directions.js";
|
|
@@ -42,7 +42,7 @@ mock.module("../../../config/assistant-feature-flags.js", () => ({
|
|
|
42
42
|
|
|
43
43
|
// Mock platform detection: tests default to platform mode (SSRF enforced).
|
|
44
44
|
// Individual tests can override via `mockIsPlatform = false`. Spread the real
|
|
45
|
-
// module so the config loader's transitive `util/
|
|
45
|
+
// module so the config loader's transitive `util/layout` imports still
|
|
46
46
|
// resolve — only `getIsCloud` is overridden.
|
|
47
47
|
let mockIsPlatform = true;
|
|
48
48
|
|
|
@@ -371,7 +371,7 @@ export function createAdapterFromConnection(
|
|
|
371
371
|
}
|
|
372
372
|
const expectedFallback = FALLBACK_PROFILE_BY_KEY[primaryProfile];
|
|
373
373
|
if (
|
|
374
|
-
winner.entry?.
|
|
374
|
+
winner.entry?.provider !== "cadet" ||
|
|
375
375
|
winner.entry.fallbackProfile !== expectedFallback
|
|
376
376
|
) {
|
|
377
377
|
return null;
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
* default profile and on any legacy bare-`provider` callsite override.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import { MANAGED_PROFILE_NAMES } from "../../config/default-profile-catalog.js";
|
|
21
20
|
import { getIsCloud } from "../../config/env-registry.js";
|
|
22
21
|
import { loadRawConfig, saveRawConfig } from "../../config/loader.js";
|
|
23
22
|
import type { DrizzleDb } from "../../persistence/db-connection.js";
|
|
@@ -207,17 +206,11 @@ function ensureProviderConnection(
|
|
|
207
206
|
// custom-named connection already exists.
|
|
208
207
|
//
|
|
209
208
|
// Managed-owned entries are excluded: a cloud preset must stay on the
|
|
210
|
-
// cloud route, not start dispatching against a key the user
|
|
211
|
-
//
|
|
212
|
-
// or a canonical managed name without an explicit `source: "user"` —
|
|
213
|
-
// legacy seeders wrote canonical entries source-less, and only an explicit
|
|
214
|
-
// user source marks a shadow the user took ownership of (mirrors
|
|
215
|
-
// workspace migration 109). `entryLabel` is the profile name for the
|
|
209
|
+
// cloud route, not start dispatching against a key the user brought for
|
|
210
|
+
// their own profiles. `entryLabel` is the profile name for the
|
|
216
211
|
// `llm.profiles.*` walk; the other walks pass bracketed labels that never
|
|
217
212
|
// collide with canonical names.
|
|
218
|
-
const isManagedOwned =
|
|
219
|
-
entry.source === "managed" ||
|
|
220
|
-
(entry.source !== "user" && MANAGED_PROFILE_NAMES.has(entryLabel));
|
|
213
|
+
const isManagedOwned = entry.provider === "cadet";
|
|
221
214
|
const entryModel = typeof entry.model === "string" ? entry.model : undefined;
|
|
222
215
|
const existingForProvider = isManagedOwned
|
|
223
216
|
? undefined
|
|
@@ -127,7 +127,7 @@ export async function probeInferenceProfile(
|
|
|
127
127
|
): Promise<ProfileCheck | null> {
|
|
128
128
|
const { llm } = getConfigReadOnly();
|
|
129
129
|
const entry = llm.profiles?.[name] as Record<string, unknown> | undefined;
|
|
130
|
-
if (!entry || entry.status === "disabled" || entry.
|
|
130
|
+
if (!entry || entry.status === "disabled" || entry.provider === "cadet") {
|
|
131
131
|
return null;
|
|
132
132
|
}
|
|
133
133
|
|
package/src/providers/retry.ts
CHANGED
|
@@ -710,7 +710,6 @@ function normalizeSendMessageOptions(
|
|
|
710
710
|
// (after the `openai` promptCacheKey copy above) so they never leak into
|
|
711
711
|
// provider request bodies even when callers set them without a `callSite`.
|
|
712
712
|
delete nextConfig.overrideProfile;
|
|
713
|
-
delete nextConfig.overrideProfileOrigin;
|
|
714
713
|
delete nextConfig.forceOverrideProfile;
|
|
715
714
|
delete nextConfig.selectionSeed;
|
|
716
715
|
delete nextConfig.conversationId;
|
|
@@ -725,7 +724,6 @@ function normalizeSendMessageOptions(
|
|
|
725
724
|
const attribution = resolveUsageAttribution({
|
|
726
725
|
callSite: config.callSite,
|
|
727
726
|
overrideProfile: config.overrideProfile,
|
|
728
|
-
overrideProfileOrigin: config.overrideProfileOrigin,
|
|
729
727
|
forceOverrideProfile: config.forceOverrideProfile,
|
|
730
728
|
selectionSeed: config.selectionSeed,
|
|
731
729
|
});
|
package/src/providers/types.ts
CHANGED
|
@@ -346,13 +346,6 @@ export interface SendMessageConfig {
|
|
|
346
346
|
* silently fall through.
|
|
347
347
|
*/
|
|
348
348
|
overrideProfile?: string;
|
|
349
|
-
/**
|
|
350
|
-
* Who chose `overrideProfile`: `"auto"` when the Auto profile's router
|
|
351
|
-
* picked it for the turn. Usage attribution reports it as the profile
|
|
352
|
-
* source so a routed turn is not counted as a user pin. A routing-time
|
|
353
|
-
* concern only; stripped before any provider wire request.
|
|
354
|
-
*/
|
|
355
|
-
overrideProfileOrigin?: "auto";
|
|
356
349
|
/**
|
|
357
350
|
* When true, the resolver floats `overrideProfile` above the call-site
|
|
358
351
|
* layers (named site profile + call-site override) for non-main-agent call
|
|
@@ -80,7 +80,7 @@ export class UsageTrackingProvider implements Provider {
|
|
|
80
80
|
// A rerouted serve ran on the backup the wrapper chose, not on the
|
|
81
81
|
// router's pick, so the origin applies only to the original route.
|
|
82
82
|
...(response.actualInferenceProfile === undefined
|
|
83
|
-
? {
|
|
83
|
+
? {}
|
|
84
84
|
: { forceOverrideProfile: true }),
|
|
85
85
|
});
|
|
86
86
|
const providerName = response.actualProvider ?? this.inner.name;
|
package/src/routes/control.ts
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import { getConfigReadOnly } from "../config/loader.js";
|
|
20
|
+
import { getProcPidPath } from "../util/layout.js";
|
|
20
21
|
import { getLogger } from "../util/logger.js";
|
|
21
|
-
import { getProcPidPath } from "../util/platform.js";
|
|
22
22
|
import {
|
|
23
23
|
probeWorkerPidFile,
|
|
24
24
|
spawnWorkerProcess,
|
|
@@ -23,8 +23,8 @@ import { connect, type Socket } from "node:net";
|
|
|
23
23
|
import type { IpcEnvelope } from "@mycadet/ipc-server-utils";
|
|
24
24
|
import { IpcFrameReader, writeMessage } from "@mycadet/ipc-server-utils";
|
|
25
25
|
|
|
26
|
+
import { getProcPidPath, getProcSocketPath } from "../util/layout.js";
|
|
26
27
|
import { getLogger } from "../util/logger.js";
|
|
27
|
-
import { getProcPidPath, getProcSocketPath } from "../util/platform.js";
|
|
28
28
|
import { spawnWorkerProcess } from "../util/worker-process.js";
|
|
29
29
|
import {
|
|
30
30
|
ROUTE_HOST_PROC_NAME,
|
package/src/routes/worker.ts
CHANGED
|
@@ -31,12 +31,12 @@ import {
|
|
|
31
31
|
importRouteModule,
|
|
32
32
|
sourceRootForHandler,
|
|
33
33
|
} from "../runtime/routes/user-route-import.js";
|
|
34
|
-
import { getLogger } from "../util/logger.js";
|
|
35
34
|
import {
|
|
36
35
|
ensureProcDir,
|
|
37
36
|
getProcPidPath,
|
|
38
37
|
getProcSocketPath,
|
|
39
|
-
} from "../util/
|
|
38
|
+
} from "../util/layout.js";
|
|
39
|
+
import { getLogger } from "../util/logger.js";
|
|
40
40
|
import {
|
|
41
41
|
cleanupWorkerPidFile,
|
|
42
42
|
startWorkerPidFileGuard,
|
|
@@ -120,6 +120,7 @@ import {
|
|
|
120
120
|
recordRequestLog,
|
|
121
121
|
setAgentLoopExitReasonOnLatestLog,
|
|
122
122
|
} from "../persistence/llm-request-log-store.js";
|
|
123
|
+
import { stampTurnOutcome } from "../persistence/turn-outcome.js";
|
|
123
124
|
import type { SystemPromptPersonaOverride } from "../prompts/system-prompt.js";
|
|
124
125
|
import type { Message, ToolDefinition } from "../providers/types.js";
|
|
125
126
|
import { getScheduleRunStatus } from "../schedule/schedule-store.js";
|
|
@@ -127,7 +128,6 @@ import {
|
|
|
127
128
|
type UntrustedContentSource,
|
|
128
129
|
wrapUntrustedContent,
|
|
129
130
|
} from "../security/untrusted-content.js";
|
|
130
|
-
import { stampTurnOutcome } from "../telemetry/turn-outcome.js";
|
|
131
131
|
import type { CompletedBackgroundTool } from "../tools/background-tool-registry.js";
|
|
132
132
|
import { getLogger } from "../util/logger.js";
|
|
133
133
|
import { safeStringSlice } from "../util/unicode.js";
|
|
@@ -68,8 +68,8 @@ import {
|
|
|
68
68
|
SSE_REPLAY_RING_COUNT_LIMIT,
|
|
69
69
|
} from "../api/constants/sse-replay.js";
|
|
70
70
|
import type { AssistantEventEnvelope } from "../api/index.js";
|
|
71
|
+
import { getWorkspaceDir } from "../util/layout.js";
|
|
71
72
|
import { getLogger } from "../util/logger.js";
|
|
72
|
-
import { getWorkspaceDir } from "../util/platform.js";
|
|
73
73
|
import type { AssistantEventPublishOptions } from "./assistant-event-publish-options.js";
|
|
74
74
|
import {
|
|
75
75
|
matchesTargeting,
|
|
@@ -22,8 +22,8 @@ import {
|
|
|
22
22
|
import { dirname, join } from "node:path";
|
|
23
23
|
|
|
24
24
|
import { getIsContainerized } from "../../config/env-registry.js";
|
|
25
|
+
import { getDeprecatedDir } from "../../util/layout.js";
|
|
25
26
|
import { getLogger } from "../../util/logger.js";
|
|
26
|
-
import { getDeprecatedDir } from "../../util/platform.js";
|
|
27
27
|
import { isStaleEpoch } from "./policy.js";
|
|
28
28
|
import type { ScopeProfile, TokenAudience, TokenClaims } from "./types.js";
|
|
29
29
|
|
|
@@ -28,8 +28,8 @@ import { emitBackgroundFailureSignal } from "../notifications/background-failure
|
|
|
28
28
|
import { bootstrapConversation } from "../persistence/conversation-bootstrap.js";
|
|
29
29
|
import { addMessage } from "../persistence/conversation-crud.js";
|
|
30
30
|
import type { TitleOrigin } from "../persistence/conversation-title-service.js";
|
|
31
|
+
import type { TurnFailure } from "../persistence/turn-outcome.js";
|
|
31
32
|
import { dispatchProviderResolvable } from "../providers/provider-resolvability.js";
|
|
32
|
-
import type { TurnFailure } from "../telemetry/turn-outcome.js";
|
|
33
33
|
import { getLogger } from "../util/logger.js";
|
|
34
34
|
import { hasReceivedUserMessage } from "./pre-first-message-gate.js";
|
|
35
35
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { TwilioVoiceProvider } from "../../calls/twilio-provider.js";
|
|
6
|
-
import {
|
|
6
|
+
import { getConfig } from "../../config/loader.js";
|
|
7
7
|
import { getPublicBaseUrl } from "../../inbound/public-ingress-urls.js";
|
|
8
8
|
import { getLogger } from "../../util/logger.js";
|
|
9
9
|
import { httpError } from "../http-errors.js";
|
|
@@ -84,7 +84,7 @@ export async function validateTwilioWebhook(
|
|
|
84
84
|
// signature.
|
|
85
85
|
let publicBaseUrl: string | undefined;
|
|
86
86
|
try {
|
|
87
|
-
publicBaseUrl = getPublicBaseUrl(
|
|
87
|
+
publicBaseUrl = getPublicBaseUrl(getConfig());
|
|
88
88
|
} catch {
|
|
89
89
|
// No webhook base URL configured -- fall back to using req.url as-is
|
|
90
90
|
}
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
import { getDb } from "../../../persistence/db-connection.js";
|
|
30
30
|
import { initializeDb } from "../../../persistence/db-init.js";
|
|
31
31
|
import { appPins } from "../../../persistence/schema/index.js";
|
|
32
|
-
import { getWorkspacePluginsDir } from "../../../util/
|
|
32
|
+
import { getWorkspacePluginsDir } from "../../../util/layout.js";
|
|
33
33
|
import { ROUTES as APP_ROUTES } from "../app-management-routes.js";
|
|
34
34
|
import { BadRequestError } from "../errors.js";
|
|
35
35
|
import type { RouteDefinition, RouteHandlerArgs } from "../types.js";
|
|
@@ -84,7 +84,7 @@ mock.module("../../../apps/app-pin-store.js", () => ({
|
|
|
84
84
|
}));
|
|
85
85
|
|
|
86
86
|
const { createApp } = await import("../../../apps/app-store.js");
|
|
87
|
-
const { getWorkspacePluginsDir } = await import("../../../util/
|
|
87
|
+
const { getWorkspacePluginsDir } = await import("../../../util/layout.js");
|
|
88
88
|
const { ROUTES } = await import("../app-management-routes.js");
|
|
89
89
|
|
|
90
90
|
function findHandler(operationId: string) {
|
|
@@ -22,15 +22,6 @@ mock.module("../../sync/resource-sync-events.js", () => ({
|
|
|
22
22
|
},
|
|
23
23
|
}));
|
|
24
24
|
|
|
25
|
-
/** Every telemetry event the store records, in order. */
|
|
26
|
-
const recorded: Array<{ name: string; fields: Record<string, unknown> }> = [];
|
|
27
|
-
mock.module("../../../telemetry/telemetry-events-outbox.js", () => ({
|
|
28
|
-
recordTelemetryEvent: (name: string, fields: Record<string, unknown>) => {
|
|
29
|
-
recorded.push({ name, fields });
|
|
30
|
-
return { id: "evt", createdAt: 0 };
|
|
31
|
-
},
|
|
32
|
-
}));
|
|
33
|
-
|
|
34
25
|
import type { AvatarState } from "../../../avatar/avatar-manifest.js";
|
|
35
26
|
import { writeManifest } from "../../../avatar/avatar-manifest.js";
|
|
36
27
|
import { ROUTES } from "../avatar-routes.js";
|
|
@@ -253,7 +244,6 @@ describe("avatar write/remove handlers", () => {
|
|
|
253
244
|
prevWorkspaceDir = process.env.CADET_WORKSPACE_DIR;
|
|
254
245
|
process.env.CADET_WORKSPACE_DIR = workspaceDir;
|
|
255
246
|
publishedOrigins.length = 0;
|
|
256
|
-
recorded.length = 0;
|
|
257
247
|
});
|
|
258
248
|
|
|
259
249
|
afterEach(() => {
|
|
@@ -585,30 +575,10 @@ describe("avatar write/remove handlers", () => {
|
|
|
585
575
|
});
|
|
586
576
|
});
|
|
587
577
|
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
await uploadRed({ "x-cadet-client-os": " macOS " });
|
|
591
|
-
|
|
592
|
-
expect(recorded).toHaveLength(1);
|
|
593
|
-
expect(recorded[0]!.name).toBe("avatar_changed");
|
|
594
|
-
expect(recorded[0]!.fields).toMatchObject({
|
|
595
|
-
action: "upload_image",
|
|
596
|
-
client_os: "macos",
|
|
597
|
-
});
|
|
598
|
-
});
|
|
578
|
+
test("the client id reaches the fan-out", async () => {
|
|
579
|
+
await uploadRed({ "x-cadet-client-id": "web-1" });
|
|
599
580
|
|
|
600
|
-
|
|
601
|
-
await uploadRed({ "x-cadet-client-os": "a".repeat(65) });
|
|
602
|
-
|
|
603
|
-
expect(recorded).toHaveLength(1);
|
|
604
|
-
expect(recorded[0]!.fields).not.toHaveProperty("client_os");
|
|
605
|
-
});
|
|
606
|
-
|
|
607
|
-
test("the client id reaches the fan-out", async () => {
|
|
608
|
-
await uploadRed({ "x-cadet-client-id": "web-1" });
|
|
609
|
-
|
|
610
|
-
expect(publishedOrigins).toEqual(["web-1"]);
|
|
611
|
-
});
|
|
581
|
+
expect(publishedOrigins).toEqual(["web-1"]);
|
|
612
582
|
});
|
|
613
583
|
});
|
|
614
584
|
|