@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
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { INTEGRATION_CATEGORIES } from "@mycadet/service-contracts/integration-categories";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { getConfig } from "../../config/loader.js";
|
|
13
13
|
import { getOAuthCallbackUrl } from "../../inbound/public-ingress-urls.js";
|
|
14
14
|
import {
|
|
15
15
|
deleteApp,
|
|
@@ -66,7 +66,7 @@ function serializeProviderFull(row: ReturnType<typeof getProvider>) {
|
|
|
66
66
|
|
|
67
67
|
function handleListProviders({ queryParams = {} }: RouteHandlerArgs) {
|
|
68
68
|
const rows = listProviders();
|
|
69
|
-
const config =
|
|
69
|
+
const config = getConfig();
|
|
70
70
|
const visibleRows = rows.filter((r) => isProviderVisible(r, config));
|
|
71
71
|
let serialized = visibleRows
|
|
72
72
|
.map((row) => serializeProviderSummary(row))
|
|
@@ -91,7 +91,7 @@ function handleGetProvider({ pathParams = {} }: RouteHandlerArgs) {
|
|
|
91
91
|
);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
const config =
|
|
94
|
+
const config = getConfig();
|
|
95
95
|
if (!isProviderVisible(row, config)) {
|
|
96
96
|
throw new NotFoundError(
|
|
97
97
|
`No OAuth provider registered for "${providerKey}"`,
|
|
@@ -203,7 +203,7 @@ function handleUpdateProvider({
|
|
|
203
203
|
);
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
if (!isProviderVisible(existing,
|
|
206
|
+
if (!isProviderVisible(existing, getConfig())) {
|
|
207
207
|
throw new NotFoundError(
|
|
208
208
|
`No OAuth provider registered for "${providerKey}"`,
|
|
209
209
|
);
|
|
@@ -341,7 +341,7 @@ async function handleDeleteProvider({
|
|
|
341
341
|
);
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
if (!isProviderVisible(existing,
|
|
344
|
+
if (!isProviderVisible(existing, getConfig())) {
|
|
345
345
|
throw new NotFoundError(
|
|
346
346
|
`No OAuth provider registered for "${providerKey}"`,
|
|
347
347
|
);
|
|
@@ -54,7 +54,6 @@ import {
|
|
|
54
54
|
} from "../../cli/lib/plugin-catalog-cache.js";
|
|
55
55
|
import { resolvePluginSourceFromCatalog } from "../../cli/lib/plugin-catalog-resolve.js";
|
|
56
56
|
import {
|
|
57
|
-
DEFAULT_PIN_HISTORY_LIMIT,
|
|
58
57
|
DEFAULT_PLUGIN_REF,
|
|
59
58
|
type PluginUpgradeStrategy,
|
|
60
59
|
} from "../../cli/lib/plugin-constants.js";
|
|
@@ -63,11 +62,6 @@ import {
|
|
|
63
62
|
PluginDetailsNotFoundError,
|
|
64
63
|
} from "../../cli/lib/plugin-details.js";
|
|
65
64
|
import { readValidatedPluginIcon } from "../../cli/lib/plugin-icon-file.js";
|
|
66
|
-
import {
|
|
67
|
-
listPinHistory,
|
|
68
|
-
PluginPinHistoryError,
|
|
69
|
-
resolvePinToMarketplaceCommit,
|
|
70
|
-
} from "../../cli/lib/plugin-pin-history.js";
|
|
71
65
|
import {
|
|
72
66
|
assertValidSearchPattern,
|
|
73
67
|
filterPluginCatalog,
|
|
@@ -101,8 +95,8 @@ import {
|
|
|
101
95
|
reconcilePluginSourcesNow,
|
|
102
96
|
} from "../../plugins/mtime-cache.js";
|
|
103
97
|
import { getLocalCategorySlugs } from "../../skills/categories-cache.js";
|
|
98
|
+
import { getWorkspacePluginsDir } from "../../util/layout.js";
|
|
104
99
|
import { getLogger } from "../../util/logger.js";
|
|
105
|
-
import { getWorkspacePluginsDir } from "../../util/platform.js";
|
|
106
100
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
107
101
|
import {
|
|
108
102
|
getOriginClientId,
|
|
@@ -383,7 +377,7 @@ const pluginInstallRequestSchema = z.object({
|
|
|
383
377
|
.string()
|
|
384
378
|
.optional()
|
|
385
379
|
.describe(
|
|
386
|
-
"Install a specific reviewed
|
|
380
|
+
"Install a specific reviewed pin (full commit SHA). The pin must be the revision the catalog currently holds for the plugin; an unreviewed or older SHA is rejected.",
|
|
387
381
|
),
|
|
388
382
|
});
|
|
389
383
|
|
|
@@ -399,32 +393,6 @@ const pluginInstallResponseSchema = z.object({
|
|
|
399
393
|
ref: z.string().describe("Git ref the plugin was fetched from."),
|
|
400
394
|
});
|
|
401
395
|
|
|
402
|
-
const pluginPinHistoryEntrySchema = z.object({
|
|
403
|
-
pin: z
|
|
404
|
-
.string()
|
|
405
|
-
.describe("Plugin commit SHA pinned at this point in marketplace history."),
|
|
406
|
-
marketplaceCommit: z
|
|
407
|
-
.string()
|
|
408
|
-
.describe(
|
|
409
|
-
"Marketplace-manifest commit to install this pin from (the newest commit carrying it).",
|
|
410
|
-
),
|
|
411
|
-
promotedAt: z
|
|
412
|
-
.string()
|
|
413
|
-
.nullable()
|
|
414
|
-
.describe(
|
|
415
|
-
"ISO-8601 committer date (UTC) of the marketplace commit that promoted this pin; null when unreadable.",
|
|
416
|
-
),
|
|
417
|
-
current: z
|
|
418
|
-
.boolean()
|
|
419
|
-
.describe("True for the pin currently active on the default branch."),
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
const pluginVersionsResponseSchema = z
|
|
423
|
-
.array(pluginPinHistoryEntrySchema)
|
|
424
|
-
.describe(
|
|
425
|
-
"Distinct marketplace pins a plugin has been promoted to, newest first; the first entry is the current pin. Empty when the plugin has no resolvable history.",
|
|
426
|
-
);
|
|
427
|
-
|
|
428
396
|
const fingerprintComparisonSchema = z
|
|
429
397
|
.object({
|
|
430
398
|
modified: z
|
|
@@ -1227,32 +1195,6 @@ async function handleGetPluginDetails({
|
|
|
1227
1195
|
// Handler — install
|
|
1228
1196
|
// ---------------------------------------------------------------------------
|
|
1229
1197
|
|
|
1230
|
-
/**
|
|
1231
|
-
* Resolve the marketplace ref an install should read from. With no `pin`, that
|
|
1232
|
-
* is the default reviewed branch. With a `pin`, it is the marketplace commit
|
|
1233
|
-
* that introduced that pin — but only when the pin appears in the plugin's
|
|
1234
|
-
* reviewed history; an unreviewed SHA is rejected as a bad request so the route
|
|
1235
|
-
* never installs an unvetted revision.
|
|
1236
|
-
*/
|
|
1237
|
-
async function resolveInstallMarketplaceRef(
|
|
1238
|
-
name: string,
|
|
1239
|
-
pin: string | undefined,
|
|
1240
|
-
): Promise<string> {
|
|
1241
|
-
if (!pin) {
|
|
1242
|
-
return DEFAULT_PLUGIN_REF;
|
|
1243
|
-
}
|
|
1244
|
-
const entry = await resolvePinToMarketplaceCommit(name, pin, {
|
|
1245
|
-
fetch: globalThis.fetch.bind(globalThis),
|
|
1246
|
-
});
|
|
1247
|
-
if (!entry) {
|
|
1248
|
-
throw new BadRequestError(
|
|
1249
|
-
`"${pin}" is not a reviewed marketplace pin for "${name}". ` +
|
|
1250
|
-
`Use GET /v1/plugins/${name}/versions to list installable pins.`,
|
|
1251
|
-
);
|
|
1252
|
-
}
|
|
1253
|
-
return entry.marketplaceCommit;
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
1198
|
async function handleInstallPlugin({ body = {}, headers }: RouteHandlerArgs) {
|
|
1257
1199
|
const rawName = typeof body.name === "string" ? body.name : "";
|
|
1258
1200
|
if (!rawName) {
|
|
@@ -1264,15 +1206,14 @@ async function handleInstallPlugin({ body = {}, headers }: RouteHandlerArgs) {
|
|
|
1264
1206
|
// The install source is never taken raw from the request: a caller-supplied
|
|
1265
1207
|
// ref would let any `settings.write` principal install from an unreviewed
|
|
1266
1208
|
// revision (a PR branch, fork ref, ...) whose manifest could carry attacker
|
|
1267
|
-
// code the loader then dynamically imports.
|
|
1268
|
-
//
|
|
1269
|
-
//
|
|
1270
|
-
//
|
|
1271
|
-
//
|
|
1272
|
-
//
|
|
1273
|
-
//
|
|
1274
|
-
//
|
|
1275
|
-
// CLI's `assistant plugins install --pin <sha> --allow-unreviewed`.
|
|
1209
|
+
// code the loader then dynamically imports. Every install resolves
|
|
1210
|
+
// owner/repo/ref from the gated catalog — the same reviewed source of truth
|
|
1211
|
+
// `handleSearchPlugins` advertises — and installs via a trusted
|
|
1212
|
+
// pre-resolved source. A `pin` is accepted only when it is the revision the
|
|
1213
|
+
// catalog currently holds; older reviewed pins cannot be resolved without
|
|
1214
|
+
// the retired local marketplace manifest, so they are refused. Operators who
|
|
1215
|
+
// need an unreviewed revision use the local
|
|
1216
|
+
// CLI's `assistant plugins install <owner/repo> --pin <sha> --allow-unreviewed`.
|
|
1276
1217
|
//
|
|
1277
1218
|
// No `confirmStaged` consent gate: the daemon route is unattended by design
|
|
1278
1219
|
// (there is no interactive surface to prompt on). Declared schedules the
|
|
@@ -1286,9 +1227,29 @@ async function handleInstallPlugin({ body = {}, headers }: RouteHandlerArgs) {
|
|
|
1286
1227
|
const name = sanitizePluginName(rawName);
|
|
1287
1228
|
let result;
|
|
1288
1229
|
if (pin) {
|
|
1289
|
-
|
|
1230
|
+
// Without the old local marketplace manifest there is no pin history to
|
|
1231
|
+
// resolve against: the only reviewed revision is the one the live
|
|
1232
|
+
// catalog currently pins, so a mismatched SHA is refused outright.
|
|
1233
|
+
const source = await resolvePluginSourceFromCatalog(name, {
|
|
1234
|
+
fetch: globalThis.fetch.bind(globalThis),
|
|
1235
|
+
});
|
|
1236
|
+
if (!source || source.kind !== "github" || source.ref !== pin) {
|
|
1237
|
+
throw new BadRequestError(
|
|
1238
|
+
`"${pin}" is not the pin the catalog currently holds for "${name}". ` +
|
|
1239
|
+
"Rolling back to older reviewed pins is no longer supported.",
|
|
1240
|
+
);
|
|
1241
|
+
}
|
|
1290
1242
|
result = await installPlugin(
|
|
1291
|
-
{
|
|
1243
|
+
{
|
|
1244
|
+
name,
|
|
1245
|
+
force,
|
|
1246
|
+
trustedSource: {
|
|
1247
|
+
owner: source.owner,
|
|
1248
|
+
repo: source.repo,
|
|
1249
|
+
rootPath: source.path,
|
|
1250
|
+
ref: source.ref,
|
|
1251
|
+
},
|
|
1252
|
+
},
|
|
1292
1253
|
{ fetch: globalThis.fetch.bind(globalThis) },
|
|
1293
1254
|
);
|
|
1294
1255
|
} else {
|
|
@@ -1302,15 +1263,12 @@ async function handleInstallPlugin({ body = {}, headers }: RouteHandlerArgs) {
|
|
|
1302
1263
|
{
|
|
1303
1264
|
name,
|
|
1304
1265
|
force,
|
|
1305
|
-
trustedSource:
|
|
1306
|
-
source.
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
rootPath: source.path,
|
|
1312
|
-
ref: source.ref,
|
|
1313
|
-
},
|
|
1266
|
+
trustedSource: {
|
|
1267
|
+
owner: source.owner,
|
|
1268
|
+
repo: source.repo,
|
|
1269
|
+
rootPath: source.path,
|
|
1270
|
+
ref: source.ref,
|
|
1271
|
+
},
|
|
1314
1272
|
},
|
|
1315
1273
|
{ fetch: globalThis.fetch.bind(globalThis) },
|
|
1316
1274
|
);
|
|
@@ -1349,10 +1307,6 @@ async function handleInstallPlugin({ body = {}, headers }: RouteHandlerArgs) {
|
|
|
1349
1307
|
if (err instanceof PluginSourceUnavailableError) {
|
|
1350
1308
|
throw new ServiceUnavailableError(err.message);
|
|
1351
1309
|
}
|
|
1352
|
-
// The pin-history read hits GitHub too; treat its failures as retryable.
|
|
1353
|
-
if (err instanceof PluginPinHistoryError) {
|
|
1354
|
-
throw new ServiceUnavailableError(err.message);
|
|
1355
|
-
}
|
|
1356
1310
|
// A rate-limited or unavailable platform catalog (no stale fallback) is
|
|
1357
1311
|
// transient — surface it as retryable rather than a misleading 500.
|
|
1358
1312
|
if (err instanceof PluginCatalogUnavailableError) {
|
|
@@ -1393,45 +1347,6 @@ async function handleInspectPlugin({ pathParams = {} }: RouteHandlerArgs) {
|
|
|
1393
1347
|
}
|
|
1394
1348
|
}
|
|
1395
1349
|
|
|
1396
|
-
// ---------------------------------------------------------------------------
|
|
1397
|
-
// Handler — versions (marketplace pin history)
|
|
1398
|
-
// ---------------------------------------------------------------------------
|
|
1399
|
-
|
|
1400
|
-
async function handlePluginVersions({
|
|
1401
|
-
pathParams = {},
|
|
1402
|
-
queryParams = {},
|
|
1403
|
-
}: RouteHandlerArgs) {
|
|
1404
|
-
const rawName = pathParams.name ?? "";
|
|
1405
|
-
|
|
1406
|
-
let limit: number | undefined;
|
|
1407
|
-
if (queryParams.limit !== undefined) {
|
|
1408
|
-
const parsed = Number.parseInt(queryParams.limit, 10);
|
|
1409
|
-
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
1410
|
-
throw new BadRequestError("`limit` must be a positive integer.");
|
|
1411
|
-
}
|
|
1412
|
-
limit = parsed;
|
|
1413
|
-
}
|
|
1414
|
-
|
|
1415
|
-
try {
|
|
1416
|
-
return await listPinHistory(
|
|
1417
|
-
rawName,
|
|
1418
|
-
{ fetch: globalThis.fetch.bind(globalThis) },
|
|
1419
|
-
limit !== undefined ? { limit } : {},
|
|
1420
|
-
);
|
|
1421
|
-
} catch (err) {
|
|
1422
|
-
if (err instanceof InvalidPluginNameError) {
|
|
1423
|
-
throw new BadRequestError(err.message);
|
|
1424
|
-
}
|
|
1425
|
-
// The history read hits GitHub; its failures are retryable upstream errors.
|
|
1426
|
-
if (err instanceof PluginPinHistoryError) {
|
|
1427
|
-
throw new ServiceUnavailableError(err.message);
|
|
1428
|
-
}
|
|
1429
|
-
throw new InternalError(
|
|
1430
|
-
err instanceof Error ? err.message : "plugin versions failed",
|
|
1431
|
-
);
|
|
1432
|
-
}
|
|
1433
|
-
}
|
|
1434
|
-
|
|
1435
1350
|
// ---------------------------------------------------------------------------
|
|
1436
1351
|
// Handler — diff
|
|
1437
1352
|
// ---------------------------------------------------------------------------
|
|
@@ -2004,46 +1919,6 @@ export const ROUTES: RouteDefinition[] = [
|
|
|
2004
1919
|
},
|
|
2005
1920
|
handler: handleInspectPlugin,
|
|
2006
1921
|
},
|
|
2007
|
-
{
|
|
2008
|
-
operationId: "plugins_versions",
|
|
2009
|
-
endpoint: "plugins/:name/versions",
|
|
2010
|
-
method: "GET",
|
|
2011
|
-
policy: {
|
|
2012
|
-
requiredScopes: ["settings.read"],
|
|
2013
|
-
allowedPrincipalTypes: ACTOR_PRINCIPALS,
|
|
2014
|
-
},
|
|
2015
|
-
summary: "List a plugin's reviewed marketplace pins",
|
|
2016
|
-
description: `Report the distinct marketplace pins a plugin has been promoted to over time, newest first (the first entry is the current pin), capped at \`limit\` (default ${DEFAULT_PIN_HISTORY_LIMIT}). The curated \`marketplace.json\` stores only the current pin, so this is reconstructed from the manifest's own commit history on the default branch — every entry is therefore a reviewed, known-good revision. Pair with \`POST /v1/plugins/install\`'s \`pin\` field to roll a plugin back to an older reviewed version. An unknown name (never in the manifest) returns an empty array, not 404.`,
|
|
2017
|
-
tags: ["plugins"],
|
|
2018
|
-
pathParams: [
|
|
2019
|
-
{
|
|
2020
|
-
name: "name",
|
|
2021
|
-
type: "string",
|
|
2022
|
-
description:
|
|
2023
|
-
"Install name. Must match the kebab-case name accepted by `assistant plugins install`.",
|
|
2024
|
-
},
|
|
2025
|
-
],
|
|
2026
|
-
queryParams: [
|
|
2027
|
-
{
|
|
2028
|
-
name: "limit",
|
|
2029
|
-
type: "string",
|
|
2030
|
-
required: false,
|
|
2031
|
-
description: `Maximum number of pins to return (positive integer; default ${DEFAULT_PIN_HISTORY_LIMIT}).`,
|
|
2032
|
-
},
|
|
2033
|
-
],
|
|
2034
|
-
responseBody: pluginVersionsResponseSchema,
|
|
2035
|
-
additionalResponses: {
|
|
2036
|
-
"400": {
|
|
2037
|
-
description:
|
|
2038
|
-
"The plugin name failed sanitization, or `limit` was not a positive integer.",
|
|
2039
|
-
},
|
|
2040
|
-
"503": {
|
|
2041
|
-
description:
|
|
2042
|
-
"The marketplace pin history could not be read from GitHub (rate-limited or upstream error); retryable.",
|
|
2043
|
-
},
|
|
2044
|
-
},
|
|
2045
|
-
handler: handlePluginVersions,
|
|
2046
|
-
},
|
|
2047
1922
|
{
|
|
2048
1923
|
operationId: "plugins_diff",
|
|
2049
1924
|
endpoint: "plugins/:name/diff",
|
|
@@ -35,8 +35,8 @@ import {
|
|
|
35
35
|
rescanRuns,
|
|
36
36
|
runProfilerSweep,
|
|
37
37
|
} from "../../daemon/profiler-run-store.js";
|
|
38
|
+
import { getProfilerRunDir } from "../../util/layout.js";
|
|
38
39
|
import { getLogger } from "../../util/logger.js";
|
|
39
|
-
import { getProfilerRunDir } from "../../util/platform.js";
|
|
40
40
|
import { GATEWAY_PRINCIPALS } from "../auth/route-policy.js";
|
|
41
41
|
import { createTarGz, MAX_ARCHIVE_BYTES } from "./archive-utils.js";
|
|
42
42
|
import {
|
|
@@ -22,8 +22,8 @@ import {
|
|
|
22
22
|
stopRouteHostWorkerProcess,
|
|
23
23
|
} from "../../routes/control.js";
|
|
24
24
|
import { ROUTE_HOST_PROC_NAME } from "../../routes/route-host-protocol.js";
|
|
25
|
+
import { getProcPidPath } from "../../util/layout.js";
|
|
25
26
|
import { getLogger } from "../../util/logger.js";
|
|
26
|
-
import { getProcPidPath } from "../../util/platform.js";
|
|
27
27
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
28
28
|
import { InternalError } from "./errors.js";
|
|
29
29
|
import type { RouteDefinition } from "./types.js";
|
|
@@ -15,7 +15,7 @@ import { z } from "zod";
|
|
|
15
15
|
|
|
16
16
|
import { credentialKey } from "../../security/credential-key.js";
|
|
17
17
|
import { getSecureKeyAsync } from "../../security/secure-keys.js";
|
|
18
|
-
import { getWorkspaceDir } from "../../util/
|
|
18
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
19
19
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
20
20
|
import { BadRequestError } from "./errors.js";
|
|
21
21
|
import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
|
|
@@ -54,8 +54,8 @@ import { getScheduleUsageSummaries } from "../../schedule/schedule-usage-store.j
|
|
|
54
54
|
import { buildWakeScheduleOptions } from "../../schedule/wake-schedule-options.js";
|
|
55
55
|
import { initializeTools } from "../../tools/registry.js";
|
|
56
56
|
import { UserError } from "../../util/errors.js";
|
|
57
|
+
import { getWorkspacePluginsDir } from "../../util/layout.js";
|
|
57
58
|
import { getLogger } from "../../util/logger.js";
|
|
58
|
-
import { getWorkspacePluginsDir } from "../../util/platform.js";
|
|
59
59
|
import { normalizeCapabilityManifest } from "../../workflows/capabilities.js";
|
|
60
60
|
import { getWorkflowRunManager } from "../../workflows/run-manager.js";
|
|
61
61
|
import { isOwnerCaller } from "../auth/owner-caller.js";
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
spawnScheduleWorkerProcess,
|
|
19
19
|
stopScheduleWorkerProcess,
|
|
20
20
|
} from "../../schedule/worker-control.js";
|
|
21
|
+
import { getScheduleWorkerPidPath } from "../../util/layout.js";
|
|
21
22
|
import { getLogger } from "../../util/logger.js";
|
|
22
|
-
import { getScheduleWorkerPidPath } from "../../util/platform.js";
|
|
23
23
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
24
24
|
import { InternalError } from "./errors.js";
|
|
25
25
|
import type { RouteDefinition } from "./types.js";
|
|
@@ -69,8 +69,8 @@ import {
|
|
|
69
69
|
injectActivityField,
|
|
70
70
|
} from "../../tools/schema-transforms.js";
|
|
71
71
|
import { pathExists } from "../../util/fs.js";
|
|
72
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
72
73
|
import { getLogger } from "../../util/logger.js";
|
|
73
|
-
import { getWorkspaceDir } from "../../util/platform.js";
|
|
74
74
|
import { broadcastMessage } from "../assistant-event-hub.js";
|
|
75
75
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
76
76
|
import { BadRequestError, InternalError, NotFoundError } from "./errors.js";
|
|
@@ -18,7 +18,7 @@ import { join } from "node:path";
|
|
|
18
18
|
|
|
19
19
|
import { z } from "zod";
|
|
20
20
|
|
|
21
|
-
import { getSoundsDir } from "../../util/
|
|
21
|
+
import { getSoundsDir } from "../../util/layout.js";
|
|
22
22
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
23
23
|
import { publishSoundsConfigUpdated } from "../sync/resource-sync-events.js";
|
|
24
24
|
import { BadRequestError } from "./errors.js";
|
|
@@ -22,13 +22,11 @@ import {
|
|
|
22
22
|
} from "../../daemon/conversation-registry.js";
|
|
23
23
|
import { getOrCreateConversation } from "../../daemon/conversation-store.js";
|
|
24
24
|
import {
|
|
25
|
-
parseActivationMomentTag,
|
|
26
25
|
parseStoredActions,
|
|
27
26
|
type StoredSurfaceAction,
|
|
28
27
|
} from "../../daemon/conversation-surface-state.js";
|
|
29
28
|
import { isRowVisibleToUntrustedActor } from "../../daemon/message-provenance.js";
|
|
30
29
|
import { rawAll, rawGet } from "../../persistence/raw-query.js";
|
|
31
|
-
import type { ActivationMomentParam } from "../../telemetry/activation-funnel.js";
|
|
32
30
|
|
|
33
31
|
/**
|
|
34
32
|
* Resolve the {@link Conversation} that owns the given surface.
|
|
@@ -97,7 +95,6 @@ export interface PersistedSurfaceState {
|
|
|
97
95
|
data: Record<string, unknown>;
|
|
98
96
|
title?: string;
|
|
99
97
|
actions?: StoredSurfaceAction[];
|
|
100
|
-
activationMoment?: ActivationMomentParam;
|
|
101
98
|
}
|
|
102
99
|
|
|
103
100
|
/**
|
|
@@ -193,16 +190,13 @@ export function findPersistedSurfaceState(
|
|
|
193
190
|
}
|
|
194
191
|
// Serve verbatim: preserve the persisted `surfaceType` string and
|
|
195
192
|
// `data` object as-is (the client parses them), applying only the same
|
|
196
|
-
// light shared parsing for `actions`
|
|
197
|
-
// `activationMoment` tag that the live restore uses.
|
|
198
|
-
const activationMoment = parseActivationMomentTag(b.activationMoment);
|
|
193
|
+
// light shared parsing for `actions` that the live restore uses.
|
|
199
194
|
return {
|
|
200
195
|
surfaceType:
|
|
201
196
|
typeof b.surfaceType === "string" ? b.surfaceType : "dynamic_page",
|
|
202
197
|
data: coerceSurfaceDataRecord(b.data),
|
|
203
198
|
title: typeof b.title === "string" ? b.title : undefined,
|
|
204
199
|
actions: parseStoredActions(b.actions),
|
|
205
|
-
...(activationMoment ? { activationMoment } : {}),
|
|
206
200
|
};
|
|
207
201
|
}
|
|
208
202
|
}
|
|
@@ -339,9 +339,7 @@ export class UserRouteDispatcher {
|
|
|
339
339
|
): Promise<Response> {
|
|
340
340
|
try {
|
|
341
341
|
return await Promise.race([
|
|
342
|
-
Promise.resolve(
|
|
343
|
-
handler(request, buildDeprecatedRouteContext(routePath)),
|
|
344
|
-
),
|
|
342
|
+
Promise.resolve(handler(request, buildDeprecatedRouteContext())),
|
|
345
343
|
new Promise<never>((_, reject) =>
|
|
346
344
|
setTimeout(
|
|
347
345
|
() => reject(new Error("Handler timed out")),
|
|
@@ -19,7 +19,7 @@ import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
19
19
|
|
|
20
20
|
import { snapshotPluginSource } from "../../plugins/source-fingerprint.js";
|
|
21
21
|
import { evictModule } from "../../plugins/surface-import.js";
|
|
22
|
-
import { getWorkspaceRoutesDir } from "../../util/
|
|
22
|
+
import { getWorkspaceRoutesDir } from "../../util/layout.js";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Directory whose source files must stay mutually consistent with this
|
|
@@ -35,7 +35,7 @@ import { isPluginDisabled } from "../../plugins/disabled-state.js";
|
|
|
35
35
|
import {
|
|
36
36
|
getWorkspacePluginsDir,
|
|
37
37
|
getWorkspaceRoutesDir,
|
|
38
|
-
} from "../../util/
|
|
38
|
+
} from "../../util/layout.js";
|
|
39
39
|
|
|
40
40
|
/** Supported file extensions for handler modules (`.js` preferred over `.ts`). */
|
|
41
41
|
export const HANDLER_EXTENSIONS = [".ts", ".js"] as const;
|
|
@@ -13,7 +13,7 @@ import { z } from "zod";
|
|
|
13
13
|
|
|
14
14
|
import { getConfig } from "../../config/loader.js";
|
|
15
15
|
import { getPublicBaseUrl } from "../../inbound/public-ingress-urls.js";
|
|
16
|
-
import { getWorkspaceDir, getWorkspaceRoutesDir } from "../../util/
|
|
16
|
+
import { getWorkspaceDir, getWorkspaceRoutesDir } from "../../util/layout.js";
|
|
17
17
|
import { LOCAL_PRINCIPALS } from "../auth/route-policy.js";
|
|
18
18
|
import { NotFoundError } from "./errors.js";
|
|
19
19
|
import { parseBody } from "./parse-body.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
|
|
8
|
-
import { getWorkspaceDir } from "../../util/
|
|
8
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
9
9
|
import { getWorkspaceGitService } from "../../workspace/git-service.js";
|
|
10
10
|
import { GATEWAY_PRINCIPALS } from "../auth/route-policy.js";
|
|
11
11
|
import { BadRequestError } from "./errors.js";
|
|
@@ -19,7 +19,7 @@ import { basename, dirname, join } from "node:path";
|
|
|
19
19
|
|
|
20
20
|
import { z } from "zod";
|
|
21
21
|
|
|
22
|
-
import { getWorkspaceDir } from "../../util/
|
|
22
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
23
23
|
import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
|
|
24
24
|
import { publishSoundsConfigUpdated } from "../sync/resource-sync-events.js";
|
|
25
25
|
import {
|
|
@@ -10,7 +10,7 @@ import { dirname, resolve, sep } from "node:path";
|
|
|
10
10
|
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
|
|
13
|
-
import { getWorkspaceDir } from "../../util/
|
|
13
|
+
import { getWorkspaceDir } from "../../util/layout.js";
|
|
14
14
|
import { BadRequestError, ConflictError } from "./errors.js";
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
SYNC_TAGS,
|
|
7
7
|
} from "../../daemon/message-types/sync.js";
|
|
8
8
|
import { resolveConversationTitle } from "../../i18n/index.js";
|
|
9
|
-
import { getAvatarImagePath } from "../../util/
|
|
9
|
+
import { getAvatarImagePath } from "../../util/layout.js";
|
|
10
10
|
import { broadcastMessage } from "../assistant-event-hub.js";
|
|
11
11
|
import { isStreamSeqStampingDisabled } from "../assistant-stream-state.js";
|
|
12
12
|
import { publishSyncInvalidation } from "./sync-publisher.js";
|
|
@@ -68,7 +68,7 @@ import { setOverridesForTesting } from "../../__tests__/feature-flag-test-helper
|
|
|
68
68
|
import { getDb } from "../../persistence/db-connection.js";
|
|
69
69
|
import { initializeDb } from "../../persistence/db-init.js";
|
|
70
70
|
import { listInstalledPluginDirs } from "../../plugins/installed-plugin-dirs.js";
|
|
71
|
-
import { getWorkspacePluginsDir } from "../../util/
|
|
71
|
+
import { getWorkspacePluginsDir } from "../../util/layout.js";
|
|
72
72
|
import {
|
|
73
73
|
reconcilePluginSchedules,
|
|
74
74
|
resetDefinitionErrorEmitGuardForTests,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
import { join } from "node:path";
|
|
30
30
|
|
|
31
31
|
import { isPluginDirActivated } from "../plugins/mtime-cache.js";
|
|
32
|
-
import { getWorkspacePluginsDir } from "../util/
|
|
32
|
+
import { getWorkspacePluginsDir } from "../util/layout.js";
|
|
33
33
|
import { declarationExistsOnDisk } from "./plugin-schedule-declarations.js";
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -31,7 +31,7 @@ import { isPluginDisabled } from "../plugins/disabled-state.js";
|
|
|
31
31
|
import { parsePluginManifest } from "../plugins/external-plugin-loader.js";
|
|
32
32
|
import { isInsidePluginRoot } from "../plugins/installed-plugin-dirs.js";
|
|
33
33
|
import { FRONTMATTER_REGEX } from "../skills/frontmatter.js";
|
|
34
|
-
import { getWorkspacePluginsDir } from "../util/
|
|
34
|
+
import { getWorkspacePluginsDir } from "../util/layout.js";
|
|
35
35
|
import {
|
|
36
36
|
computeNextRunAt,
|
|
37
37
|
isSingleFireRRule,
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
buildShellSpawnFlags,
|
|
5
5
|
terminateProcessTree,
|
|
6
6
|
} from "../util/host-process.js";
|
|
7
|
+
import { getWorkspaceDir } from "../util/layout.js";
|
|
7
8
|
import { getLogger } from "../util/logger.js";
|
|
8
|
-
import { getWorkspaceDir } from "../util/platform.js";
|
|
9
9
|
import { safeStringSlice } from "../util/unicode.js";
|
|
10
10
|
|
|
11
11
|
const log = getLogger("run-script");
|
|
@@ -14,6 +14,7 @@ import { emitNotificationSignal } from "../notifications/emit-signal.js";
|
|
|
14
14
|
import { emitScheduleResultNotification } from "../notifications/schedule-result-producer.js";
|
|
15
15
|
import { getConversation } from "../persistence/conversation-crud.js";
|
|
16
16
|
import { isLifecycleQuiesced } from "../persistence/lifecycle-quiesce.js";
|
|
17
|
+
import type { TurnFailure } from "../persistence/turn-outcome.js";
|
|
17
18
|
import { invalidateAssistantInferredItemsForConversation } from "../plugins/defaults/memory/task-memory-cleanup.js";
|
|
18
19
|
import { dispatchProviderResolvable } from "../providers/provider-resolvability.js";
|
|
19
20
|
import {
|
|
@@ -28,8 +29,6 @@ import {
|
|
|
28
29
|
import { publishConversationListChanged } from "../runtime/sync/resource-sync-events.js";
|
|
29
30
|
import { runSequencesOnce } from "../sequence/engine.js";
|
|
30
31
|
import { getSubagentManager } from "../subagent/index.js";
|
|
31
|
-
import type { TurnFailure } from "../telemetry/turn-outcome.js";
|
|
32
|
-
import { recordWatchdogEvent } from "../telemetry/watchdog-events-store.js";
|
|
33
32
|
import {
|
|
34
33
|
cancelBackgroundTools,
|
|
35
34
|
hasBackgroundToolWork,
|
|
@@ -506,21 +505,12 @@ export function startScheduler(): SchedulerHandle {
|
|
|
506
505
|
{ pid },
|
|
507
506
|
"Schedule worker was not running — respawned by watchdog",
|
|
508
507
|
);
|
|
509
|
-
recordWatchdogEvent({
|
|
510
|
-
checkName: "schedule_worker_respawn",
|
|
511
|
-
detail: { pid },
|
|
512
|
-
});
|
|
513
508
|
},
|
|
514
509
|
onPersistentFailure: (consecutiveFailures, err) => {
|
|
515
510
|
log.error(
|
|
516
511
|
{ err, consecutiveFailures },
|
|
517
512
|
"Schedule worker repeatedly failed to respawn — schedules are paused",
|
|
518
513
|
);
|
|
519
|
-
recordWatchdogEvent({
|
|
520
|
-
checkName: "schedule_worker_down",
|
|
521
|
-
value: consecutiveFailures,
|
|
522
|
-
detail: { consecutiveFailures },
|
|
523
|
-
});
|
|
524
514
|
emitScheduleWorkerDownNotification(consecutiveFailures);
|
|
525
515
|
},
|
|
526
516
|
});
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* path and entry point.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import { getScheduleWorkerPidPath } from "../util/layout.js";
|
|
11
12
|
import { getLogger } from "../util/logger.js";
|
|
12
|
-
import { getScheduleWorkerPidPath } from "../util/platform.js";
|
|
13
13
|
import {
|
|
14
14
|
probeWorkerPidFile,
|
|
15
15
|
spawnWorkerProcess,
|