@vellumai/assistant 0.10.2-dev.202606250318.5e7cfb0 → 0.10.2
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/bun.lock +0 -20
- package/docs/workspace-tools.md +33 -42
- package/eslint-rules/cli-no-daemon-internals.js +0 -6
- package/node_modules/@vellumai/gateway-client/src/__tests__/trust-verdict-contract.test.ts +0 -31
- package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +0 -44
- package/node_modules/@vellumai/gateway-client/src/index.ts +0 -14
- package/node_modules/@vellumai/gateway-client/src/trust-verdict-contract.ts +0 -17
- package/node_modules/@vellumai/service-contracts/package.json +0 -1
- package/node_modules/@vellumai/service-contracts/src/index.ts +0 -1
- package/openapi.yaml +0 -155
- package/package.json +1 -4
- package/scripts/test.sh +15 -36
- package/src/__tests__/actor-token-service.test.ts +14 -36
- package/src/__tests__/agent-loop-override-profile.test.ts +0 -1
- package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +0 -2
- package/src/__tests__/agent-wake-override-profile.test.ts +0 -2
- package/src/__tests__/annotate-activity-metadata.test.ts +0 -2
- package/src/__tests__/annotate-risk-options.test.ts +0 -2
- package/src/__tests__/approval-cascade.test.ts +0 -2
- package/src/__tests__/assistant-attachments.test.ts +0 -42
- package/src/__tests__/background-workers-disk-pressure.test.ts +0 -2
- package/src/__tests__/btw-routes.test.ts +0 -2
- package/src/__tests__/build-persisted-content.test.ts +0 -2
- package/src/__tests__/call-controller.test.ts +0 -19
- package/src/__tests__/channel-guardian.test.ts +58 -94
- package/src/__tests__/channel-reply-delivery.test.ts +0 -2
- package/src/__tests__/compaction-events.test.ts +0 -2
- package/src/__tests__/compaction.benchmark.test.ts +0 -2
- package/src/__tests__/compactor-call-site-logging.test.ts +0 -2
- package/src/__tests__/compactor-low-watermark-cut.test.ts +0 -2
- package/src/__tests__/compactor-preserved-tail-count.test.ts +0 -2
- package/src/__tests__/compactor-summary-call-truncation.test.ts +0 -2
- package/src/__tests__/compactor-web-search-strip.test.ts +0 -2
- package/src/__tests__/config-loader-backfill.test.ts +10 -123
- package/src/__tests__/config-schema.test.ts +0 -1
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +29 -31
- package/src/__tests__/contacts-relay-reads.test.ts +15 -13
- package/src/__tests__/conversation-abort-tool-results.test.ts +0 -2
- package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +0 -2
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +0 -2
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +0 -2
- package/src/__tests__/conversation-agent-loop.test.ts +0 -134
- package/src/__tests__/conversation-analysis-routes.test.ts +0 -2
- package/src/__tests__/conversation-app-control-lifecycle.test.ts +0 -2
- package/src/__tests__/conversation-confirmation-signals.test.ts +0 -2
- package/src/__tests__/conversation-history-web-search.test.ts +0 -2
- package/src/__tests__/conversation-load-history-repair.test.ts +0 -2
- package/src/__tests__/conversation-load-history-stripped.test.ts +0 -2
- package/src/__tests__/conversation-pairing.test.ts +0 -2
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +0 -2
- package/src/__tests__/conversation-process-callsite.test.ts +0 -2
- package/src/__tests__/conversation-provider-retry-repair.test.ts +0 -2
- package/src/__tests__/conversation-queue.test.ts +0 -91
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +0 -14
- package/src/__tests__/conversation-routes-slash-commands.test.ts +0 -14
- package/src/__tests__/conversation-slash-queue.test.ts +0 -2
- package/src/__tests__/conversation-slash-unknown.test.ts +0 -2
- package/src/__tests__/conversation-speed-override.test.ts +0 -2
- package/src/__tests__/conversation-surfaces-task-progress.test.ts +0 -29
- package/src/__tests__/conversation-title-service.test.ts +0 -2
- package/src/__tests__/conversation-tool-setup-attribution.test.ts +0 -47
- package/src/__tests__/conversation-usage.test.ts +0 -2
- package/src/__tests__/conversation-workspace-cache-state.test.ts +0 -2
- package/src/__tests__/conversation-workspace-injection.test.ts +0 -2
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +0 -2
- package/src/__tests__/credential-security-invariants.test.ts +1 -1
- package/src/__tests__/db-migration-rollback.test.ts +171 -205
- package/src/__tests__/db-test-helpers.ts +4 -5
- package/src/__tests__/deterministic-verification-control-plane.test.ts +2 -4
- package/src/__tests__/disk-pressure-guard.test.ts +0 -41
- package/src/__tests__/dm-persistence.test.ts +0 -2
- package/src/__tests__/emit-signal-routing-intent.test.ts +5 -10
- package/src/__tests__/events-dev-bypass-actor.test.ts +1 -7
- package/src/__tests__/exploration-drift-hook.test.ts +2 -3
- package/src/__tests__/filing-service.test.ts +0 -2
- package/src/__tests__/guardian-binding-drift-heal.test.ts +10 -75
- package/src/__tests__/guardian-dispatch.test.ts +1 -95
- package/src/__tests__/guardian-outbound-http.test.ts +0 -13
- package/src/__tests__/heartbeat-disk-pressure.test.ts +0 -2
- package/src/__tests__/heartbeat-service.test.ts +0 -2
- package/src/__tests__/helpers/channel-test-adapter.ts +7 -1
- package/src/__tests__/host-app-control-routes.test.ts +30 -24
- package/src/__tests__/host-bash-routes.test.ts +41 -31
- package/src/__tests__/host-browser-routes.test.ts +32 -26
- package/src/__tests__/host-cu-routes-targeted.test.ts +33 -25
- package/src/__tests__/host-file-routes-targeted.test.ts +52 -40
- package/src/__tests__/host-transfer-routes-targeted.test.ts +43 -31
- package/src/__tests__/http-user-message-parity.test.ts +8 -290
- package/src/__tests__/inbound-invite-redemption.test.ts +0 -28
- package/src/__tests__/inbound-slack-persistence.test.ts +0 -2
- package/src/__tests__/invite-redemption-service.test.ts +0 -198
- package/src/__tests__/llm-context-normalization.test.ts +0 -105
- package/src/__tests__/llm-request-log-error-payload.test.ts +9 -71
- package/src/__tests__/llm-usage-store.test.ts +0 -25
- package/src/__tests__/mcp-health-check.test.ts +1 -2
- package/src/__tests__/media-stream-server-integration.test.ts +0 -127
- package/src/__tests__/memory-retrieval-hook.test.ts +0 -2
- package/src/__tests__/messaging-send-tool.test.ts +0 -2
- package/src/__tests__/migration-import-from-url.test.ts +2 -2
- package/src/__tests__/mtime-cache.test.ts +5 -146
- package/src/__tests__/native-web-search.test.ts +0 -2
- package/src/__tests__/non-member-access-request.test.ts +17 -189
- package/src/__tests__/notification-broadcaster.test.ts +0 -4
- package/src/__tests__/notification-decision-recipient-context.test.ts +32 -33
- package/src/__tests__/notification-deep-link.test.ts +0 -6
- package/src/__tests__/notification-guardian-path.test.ts +0 -19
- package/src/__tests__/openai-provider.test.ts +12 -22
- package/src/__tests__/openai-responses-provider.test.ts +2 -12
- package/src/__tests__/outbound-slack-persistence.test.ts +0 -2
- package/src/__tests__/pending-interactions-resolved-event.test.ts +4 -7
- package/src/__tests__/persistence-secret-redaction.test.ts +0 -2
- package/src/__tests__/plugin-bootstrap.test.ts +73 -3
- package/src/__tests__/plugin-route-contribution.test.ts +17 -4
- package/src/__tests__/plugin-tool-contribution.test.ts +18 -3
- package/src/__tests__/plugin-types.test.ts +2 -0
- package/src/__tests__/process-message-background-slack.test.ts +0 -2
- package/src/__tests__/process-message-display-content.test.ts +0 -2
- package/src/__tests__/provider-error-scenarios.test.ts +4 -5
- package/src/__tests__/provider-usage-tracking.test.ts +0 -39
- package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +0 -2
- package/src/__tests__/registry.test.ts +1 -4
- package/src/__tests__/relay-server.test.ts +25 -694
- package/src/__tests__/runtime-attachment-metadata.test.ts +1 -0
- package/src/__tests__/secret-ingress-http.test.ts +0 -14
- package/src/__tests__/send-endpoint-busy.test.ts +8 -30
- package/src/__tests__/skills.test.ts +0 -44
- package/src/__tests__/slack-inbound-verification.test.ts +2 -47
- package/src/__tests__/stt-hints.test.ts +13 -44
- package/src/__tests__/subagent-detail.test.ts +0 -27
- package/src/__tests__/subagent-disposal.test.ts +0 -65
- package/src/__tests__/subagent-notify-parent.test.ts +0 -2
- package/src/__tests__/subagent-role-registry.test.ts +2 -7
- package/src/__tests__/subagent-spawn-tool-fork.test.ts +0 -2
- package/src/__tests__/subagent-tools.test.ts +0 -2
- package/src/__tests__/suggestion-routes.test.ts +0 -2
- package/src/__tests__/title-generate-hook.test.ts +0 -2
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +0 -2
- package/src/__tests__/tool-executor.test.ts +11 -16
- package/src/__tests__/tool-preview-lifecycle.test.ts +0 -2
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +0 -2
- package/src/__tests__/tool-start-timestamp.test.ts +0 -2
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +10 -10
- package/src/__tests__/twilio-routes.test.ts +0 -96
- package/src/__tests__/ui-file-upload-surface.test.ts +0 -86
- package/src/__tests__/verification-control-plane-policy.test.ts +0 -2
- package/src/__tests__/voice-invite-redemption.test.ts +0 -33
- package/src/__tests__/web-search-backend-failure.test.ts +0 -2
- package/src/__tests__/workspace-migration-remove-hooks.test.ts +35 -14
- package/src/__tests__/workspace-tool-loader.test.ts +2 -195
- package/src/__tests__/workspace-tools-watcher-flag.test.ts +70 -0
- package/src/agent/loop.ts +0 -56
- package/src/api/index.ts +1 -19
- package/src/api/responses/llm-request-log-entry.ts +0 -29
- package/src/api/responses/subagent-detail.ts +0 -17
- package/src/api/surfaces.ts +3 -39
- package/src/approvals/guardian-request-resolvers.ts +11 -1
- package/src/calls/__tests__/relay-setup-router.test.ts +4 -262
- package/src/calls/call-domain.ts +3 -3
- package/src/calls/guardian-dispatch.ts +8 -10
- package/src/calls/inbound-trust-reader.ts +1 -17
- package/src/calls/media-stream-server.ts +0 -21
- package/src/calls/relay-server.ts +50 -167
- package/src/calls/relay-setup-router.ts +7 -37
- package/src/calls/relay-verification.ts +4 -4
- package/src/calls/stt-hints.ts +12 -9
- package/src/calls/twilio-routes.ts +4 -14
- package/src/channels/types.ts +20 -10
- package/src/cli/commands/__tests__/cache.test.ts +1 -8
- package/src/cli/commands/cache.ts +181 -194
- package/src/cli/commands/db/__tests__/repair.test.ts +5 -6
- package/src/cli/commands/db/status.ts +1 -37
- package/src/cli/commands/mcp.ts +218 -252
- package/src/cli/commands/memory/index.ts +0 -2
- package/src/cli/commands/plugins.ts +3 -75
- package/src/cli/lib/__tests__/install-from-github.test.ts +0 -102
- package/src/cli/lib/__tests__/list-installed-plugins.test.ts +1 -160
- package/src/cli/lib/list-installed-plugins.ts +1 -179
- package/src/config/__tests__/sync-gated-profiles.test.ts +3 -11
- package/src/config/bundled-skills/contacts/tools/contact-merge.ts +17 -27
- package/src/config/bundled-skills/contacts/tools/contact-search.ts +3 -13
- package/src/config/bundled-skills/subagent/SKILL.md +1 -1
- package/src/config/bundled-skills/subagent/TOOLS.json +1 -1
- package/src/config/feature-flag-registry.json +13 -5
- package/src/config/loader.ts +5 -38
- package/src/config/schemas/__tests__/memory-v3.test.ts +0 -1
- package/src/config/schemas/memory-lifecycle.ts +0 -12
- package/src/config/schemas/memory-v3.ts +0 -7
- package/src/config/schemas/memory.ts +0 -4
- package/src/config/schemas/timeouts.ts +0 -8
- package/src/config/seed-inference-profiles.ts +11 -21
- package/src/config/skills.ts +5 -27
- package/src/config/sync-gated-profiles.ts +13 -12
- package/src/contacts/contacts-write.ts +0 -3
- package/src/daemon/assistant-attachments.ts +4 -27
- package/src/daemon/conversation-agent-loop.ts +0 -28
- package/src/daemon/conversation-process.ts +16 -35
- package/src/daemon/conversation-surfaces.ts +38 -111
- package/src/daemon/conversation-tool-setup.ts +16 -50
- package/src/daemon/conversation.ts +1 -13
- package/src/daemon/disk-pressure-guard.ts +2 -12
- package/src/daemon/event-loop-watchdog.ts +1 -28
- package/src/daemon/external-plugins-bootstrap.ts +34 -4
- package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +0 -25
- package/src/daemon/handlers/config-a2a.ts +14 -6
- package/src/daemon/handlers/config-channels.ts +22 -78
- package/src/daemon/handlers/conversations.ts +0 -77
- package/src/daemon/lifecycle.ts +0 -4
- package/src/daemon/mcp-reload-service.ts +0 -10
- package/src/daemon/memory-v2-startup.test.ts +0 -72
- package/src/daemon/memory-v2-startup.ts +19 -87
- package/src/daemon/message-types/conversations.ts +0 -2
- package/src/daemon/message-types/surfaces.ts +12 -12
- package/src/daemon/server.ts +4 -0
- package/src/daemon/shutdown-handlers.ts +0 -20
- package/src/daemon/tool-setup-types.ts +0 -9
- package/src/daemon/workspace-tools-watcher.ts +328 -0
- package/src/ipc/__tests__/clients-list-ipc.test.ts +1 -1
- package/src/ipc/assistant-server.ts +2 -2
- package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +0 -1
- package/src/mcp/client.ts +1 -15
- package/src/mcp/mcp-auth-orchestrator.ts +1 -6
- package/src/mcp/mcp-oauth-provider.ts +8 -19
- package/src/memory/__tests__/memory-retrospective-job.test.ts +0 -8
- package/src/memory/conversation-crud.ts +0 -38
- package/src/memory/db-connection.ts +3 -22
- package/src/memory/db-init.ts +502 -36
- package/src/memory/db-singleton.ts +4 -6
- package/src/memory/jobs-worker.ts +0 -58
- package/src/memory/llm-request-log-store.ts +1 -26
- package/src/memory/llm-usage-store.ts +20 -48
- package/src/memory/memory-retrospective-job.ts +8 -9
- package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +56 -130
- package/src/memory/migrations/__tests__/run-migrations.test.ts +2 -2
- package/src/memory/migrations/registry.ts +573 -0
- package/src/memory/migrations/run-migrations.ts +6 -90
- package/src/memory/migrations/validate-migration-state.ts +66 -101
- package/src/memory/schema/conversations.ts +0 -9
- package/src/memory/schema/infrastructure.ts +0 -20
- package/src/memory/v2/__tests__/cli-command-store.test.ts +0 -25
- package/src/memory/v2/__tests__/skill-store.test.ts +0 -80
- package/src/memory/v2/cli-command-store.ts +38 -75
- package/src/memory/v2/prompts/consolidation.ts +82 -13
- package/src/memory/v2/prompts/router.ts +93 -21
- package/src/memory/v2/skill-store.ts +31 -68
- package/src/notifications/__tests__/broadcaster.test.ts +8 -16
- package/src/notifications/__tests__/decision-engine.test.ts +9 -78
- package/src/notifications/broadcaster.ts +1 -8
- package/src/notifications/decision-engine.ts +7 -15
- package/src/notifications/destination-resolver.ts +24 -68
- package/src/notifications/emit-signal.ts +14 -39
- package/src/permissions/question-prompter.test.ts +1 -1
- package/src/permissions/question-prompter.ts +4 -7
- package/src/plugin-api/index.ts +6 -6
- package/src/plugin-api/types.ts +5 -3
- package/src/plugin-api/vision-support.test.ts +4 -28
- package/src/plugin-api/vision-support.ts +31 -66
- package/src/plugins/defaults/advisor/__tests__/consult.test.ts +0 -161
- package/src/plugins/defaults/advisor/consult.ts +6 -110
- package/src/plugins/defaults/advisor/steering.ts +2 -14
- package/src/plugins/defaults/advisor/tools/advisor.ts +5 -32
- package/src/plugins/defaults/exploration-drift/hooks/post-tool-use.ts +1 -2
- package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +7 -47
- package/src/plugins/defaults/image-fallback/hooks/post-tool-use.ts +11 -10
- package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +20 -12
- package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +11 -42
- package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +3 -33
- package/src/plugins/defaults/memory-v3-shadow/__tests__/pool-select.test.ts +4 -48
- package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +8 -4
- package/src/plugins/defaults/memory-v3-shadow/injector.ts +15 -43
- package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +2 -11
- package/src/plugins/defaults/memory-v3-shadow/pool-select.ts +13 -77
- package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +11 -12
- package/src/plugins/mtime-cache.ts +291 -76
- package/src/plugins/pipeline.ts +13 -111
- package/src/plugins/types.ts +2 -0
- package/src/providers/anthropic/client.ts +0 -5
- package/src/providers/call-site-routing.ts +0 -4
- package/src/providers/model-catalog.ts +0 -16
- package/src/providers/openai/__tests__/api-error-detail.test.ts +120 -0
- package/src/providers/openai/chat-completions-provider.ts +83 -37
- package/src/providers/openai/responses-provider.ts +46 -50
- package/src/providers/openrouter/client.ts +0 -5
- package/src/providers/provider-send-message.ts +0 -4
- package/src/providers/ratelimit.ts +0 -4
- package/src/providers/retry.ts +0 -4
- package/src/providers/types.ts +0 -9
- package/src/providers/usage-tracking.ts +0 -4
- package/src/runtime/__tests__/trust-verdict-consumer.test.ts +3 -335
- package/src/runtime/access-request-helper.ts +39 -19
- package/src/runtime/actor-trust-resolver.ts +2 -2
- package/src/runtime/assistant-event-hub.ts +1 -1
- package/src/runtime/assistant-stream-state.ts +2 -9
- package/src/runtime/auth/require-bound-guardian.ts +11 -21
- package/src/runtime/channel-verification-service.ts +31 -56
- package/src/runtime/confirmation-request-guardian-bridge.ts +3 -3
- package/src/runtime/guardian-vellum-migration.ts +7 -66
- package/src/runtime/invite-redemption-service.ts +187 -198
- package/src/runtime/local-actor-identity.ts +11 -76
- package/src/runtime/pending-interactions.ts +1 -11
- package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +5 -56
- package/src/runtime/routes/__tests__/channel-verification-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/surface-action-routes.test.ts +0 -187
- package/src/runtime/routes/browser-routes.ts +1 -1
- package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +5 -13
- package/src/runtime/routes/channel-verification-routes.ts +3 -3
- package/src/runtime/routes/contact-routes.ts +32 -8
- package/src/runtime/routes/conversation-cli-routes.ts +5 -4
- package/src/runtime/routes/conversation-list-routes.ts +7 -4
- package/src/runtime/routes/conversation-query-routes.ts +0 -72
- package/src/runtime/routes/conversation-routes.ts +85 -84
- package/src/runtime/routes/events-routes.ts +2 -2
- package/src/runtime/routes/global-search-routes.ts +1 -3
- package/src/runtime/routes/guardian-action-routes.ts +5 -4
- package/src/runtime/routes/host-app-control-routes.ts +4 -5
- package/src/runtime/routes/host-bash-routes.ts +4 -5
- package/src/runtime/routes/host-browser-routes.ts +11 -9
- package/src/runtime/routes/host-cu-routes.ts +4 -5
- package/src/runtime/routes/host-file-routes.ts +4 -5
- package/src/runtime/routes/host-transfer-routes.ts +6 -6
- package/src/runtime/routes/http-adapter.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +2 -3
- package/src/runtime/routes/inbound-message-handler.ts +5 -5
- package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +5 -97
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +49 -61
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +4 -16
- package/src/runtime/routes/inbound-stages/escalation-intercept.ts +7 -7
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +8 -21
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +3 -14
- package/src/runtime/routes/index.ts +0 -2
- package/src/runtime/routes/llm-context-normalization.ts +0 -83
- package/src/runtime/routes/mcp-auth-routes.ts +19 -171
- package/src/runtime/routes/migration-rollback-routes.ts +3 -4
- package/src/runtime/routes/migration-routes.ts +1 -4
- package/src/runtime/routes/subagents-routes.ts +0 -5
- package/src/runtime/routes/surface-action-routes.ts +56 -42
- package/src/runtime/services/__tests__/conversation-serializer.test.ts +0 -1
- package/src/runtime/services/conversation-serializer.ts +9 -7
- package/src/runtime/tool-grant-request-helper.ts +3 -3
- package/src/runtime/trust-verdict-consumer.ts +9 -85
- package/src/runtime/verification-outbound-actions.ts +18 -18
- package/src/signals/user-message.ts +0 -16
- package/src/subagent/manager.ts +0 -9
- package/src/subagent/types.ts +3 -3
- package/src/telemetry/types.ts +1 -34
- package/src/telemetry/usage-telemetry-reporter.test.ts +2 -3
- package/src/telemetry/usage-telemetry-reporter.ts +3 -87
- package/src/tools/ask-question/ask-question-tool.test.ts +0 -29
- package/src/tools/ask-question/ask-question-tool.ts +0 -13
- package/src/tools/executor.ts +4 -4
- package/src/tools/registry.ts +0 -18
- package/src/tools/shared/filesystem/path-policy.ts +5 -12
- package/src/tools/tool-approval-handler.ts +1 -1
- package/src/tools/tool-defaults.ts +2 -9
- package/src/tools/tool-manifest.ts +0 -3
- package/src/tools/types.ts +2 -17
- package/src/tools/workspace-tools/loader.ts +244 -348
- package/src/util/errors.ts +1 -26
- package/src/util/platform.ts +0 -5
- package/src/workflows/library.test.ts +0 -140
- package/src/workflows/library.ts +28 -82
- package/src/workspace/migrations/017-seed-persona-dirs.ts +34 -3
- package/src/workspace/migrations/019-scope-journal-to-guardian.ts +24 -3
- package/src/workspace/migrations/048-remove-workspace-hooks.ts +66 -14
- package/src/workspace/migrations/registry.ts +0 -2
- package/node_modules/@vellumai/gateway-client/src/__tests__/guardian-delivery-contract.test.ts +0 -91
- package/node_modules/@vellumai/gateway-client/src/guardian-delivery-contract.ts +0 -48
- package/node_modules/@vellumai/service-contracts/src/__tests__/channels.test.ts +0 -28
- package/node_modules/@vellumai/service-contracts/src/channels.ts +0 -41
- package/src/__tests__/code-search-tool.test.ts +0 -585
- package/src/__tests__/guardian-expiry-notifier.test.ts +0 -282
- package/src/__tests__/mcp-config-secret-boundary.test.ts +0 -390
- package/src/__tests__/plugin-pipeline.test.ts +0 -96
- package/src/__tests__/sse-actor-principal-guardian-source.test.ts +0 -102
- package/src/__tests__/steer-on-enqueue-question.test.ts +0 -181
- package/src/__tests__/workspace-migration-111-prune-seeded-callsite-defaults.test.ts +0 -208
- package/src/agent/loop-exclusive-tool.test.ts +0 -150
- package/src/api/constants/sse-replay.ts +0 -41
- package/src/api/events/conversation-notice.ts +0 -26
- package/src/approvals/guardian-channel-delivery.ts +0 -30
- package/src/approvals/guardian-expiry-notifier.ts +0 -148
- package/src/cli/commands/memory/__tests__/worker.test.ts +0 -302
- package/src/cli/commands/memory/worker.ts +0 -175
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +0 -143
- package/src/config/prune-seeded-callsite-defaults.ts +0 -110
- package/src/contacts/__tests__/contacts-write-revoke-relay.test.ts +0 -129
- package/src/contacts/__tests__/guardian-delivery-reader.test.ts +0 -312
- package/src/contacts/__tests__/member-write-relay.test.ts +0 -202
- package/src/contacts/guardian-delivery-reader.ts +0 -223
- package/src/contacts/member-write-relay.ts +0 -189
- package/src/daemon/conversation-notices.ts +0 -60
- package/src/daemon/handlers/__tests__/config-channels.test.ts +0 -225
- package/src/hooks/hook-loader.ts +0 -341
- package/src/mcp/mcp-header-store.ts +0 -134
- package/src/memory/__tests__/301-create-watchdog-events.test.ts +0 -110
- package/src/memory/__tests__/prompt-override.test.ts +0 -192
- package/src/memory/__tests__/watchdog-events-store.test.ts +0 -161
- package/src/memory/migrations/300-add-processing-started-at.ts +0 -30
- package/src/memory/migrations/301-create-watchdog-events.ts +0 -45
- package/src/memory/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +0 -224
- package/src/memory/prompt-override.ts +0 -129
- package/src/memory/steps.ts +0 -573
- package/src/memory/watchdog-events-store.ts +0 -87
- package/src/memory/worker-control.ts +0 -118
- package/src/memory/worker-process.ts +0 -72
- package/src/notifications/__tests__/connected-channels.test.ts +0 -114
- package/src/notifications/__tests__/destination-resolver.test.ts +0 -256
- package/src/onboarding/checkin-event.test.ts +0 -222
- package/src/onboarding/checkin-event.ts +0 -321
- package/src/onboarding/schedule-checkin.ts +0 -190
- package/src/plugins/defaults/advisor/__tests__/context-pack-gating.test.ts +0 -106
- package/src/plugins/defaults/advisor/__tests__/context-pack.test.ts +0 -60
- package/src/plugins/defaults/advisor/context-pack.ts +0 -288
- package/src/plugins/defaults/memory-v3-shadow/pool-select.test.ts +0 -146
- package/src/plugins/surface-import.ts +0 -121
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +0 -321
- package/src/providers/openai/api-error-normalization.ts +0 -270
- package/src/runtime/__tests__/channel-verification-service.test.ts +0 -133
- package/src/runtime/__tests__/guardian-vellum-migration.test.ts +0 -181
- package/src/runtime/__tests__/is-guardian-bound-for-channel.test.ts +0 -66
- package/src/runtime/__tests__/local-principal-trust.test.ts +0 -164
- package/src/runtime/anchored-guardian.test.ts +0 -156
- package/src/runtime/anchored-guardian.ts +0 -135
- package/src/runtime/auth/__tests__/require-bound-guardian.test.ts +0 -99
- package/src/runtime/local-principal-trust.ts +0 -52
- package/src/runtime/routes/__tests__/contact-routes.test.ts +0 -212
- package/src/runtime/routes/__tests__/global-search-routes.test.ts +0 -93
- package/src/runtime/routes/onboarding-checkin-routes.ts +0 -86
- package/src/tools/filesystem/search.ts +0 -543
- package/src/util/telemetry-db-path.ts +0 -24
- package/src/workspace/migrations/111-prune-seeded-callsite-defaults.ts +0 -134
package/bun.lock
CHANGED
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"playwright": "1.58.2",
|
|
39
39
|
"postgres": "3.4.8",
|
|
40
40
|
"quickjs-emscripten": "0.32.0",
|
|
41
|
-
"re2js": "2.8.3",
|
|
42
41
|
"rrule": "2.8.1",
|
|
43
42
|
"semver": "7.8.0",
|
|
44
43
|
"stemmer": "2.0.1",
|
|
@@ -55,7 +54,6 @@
|
|
|
55
54
|
"@types/node": "25.5.0",
|
|
56
55
|
"@types/semver": "7.5.8",
|
|
57
56
|
"@types/uuid": "10.0.0",
|
|
58
|
-
"@typescript/native-preview": "7.0.0-dev.20260624.1",
|
|
59
57
|
"ajv": "8.18.0",
|
|
60
58
|
"drizzle-kit": "0.31.10",
|
|
61
59
|
"eslint": "10.0.3",
|
|
@@ -456,22 +454,6 @@
|
|
|
456
454
|
|
|
457
455
|
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.57.0", "", { "dependencies": { "@typescript-eslint/types": "8.57.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg=="],
|
|
458
456
|
|
|
459
|
-
"@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260624.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260624.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260624.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260624.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260624.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260624.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260624.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260624.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-ogwfNo1xuAutOF8RbTCo3Ut0q/65u2ucOeHizi6O14q+3vnelNS+u8qVC2QWXubMcwtuN5E9cbfPslvGC4kdwA=="],
|
|
460
|
-
|
|
461
|
-
"@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260624.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-g8CqDkYCHTCYdhBHXs5cMraBurOS+KrcMFxE0SsaKZoI6Tnp+le1aWvxUBbzNKJYyThHJqb/1mLopzEJxJCuKA=="],
|
|
462
|
-
|
|
463
|
-
"@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260624.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-P00JVvSV90eioYDuINAKmOSA8yhFTWLq6RvS5lrCfUuDlcgr2kSOgZAfFHIksHBVz6ZXpAXpa0dHPmc5SJ3Ymw=="],
|
|
464
|
-
|
|
465
|
-
"@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260624.1", "", { "os": "linux", "cpu": "arm" }, "sha512-eWHELvfQMkVRjafMd+3ATgM9p9yAergJaM4AOY8AekCNWnHFwUrp/ohh+ryyMUIqque5jjb/kuTiOiGj728I2Q=="],
|
|
466
|
-
|
|
467
|
-
"@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260624.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-cppM2yTZ/Gd1hOXy8NEJcUBxJ0O0zl9CU3OU1ZWZ/OHWWX/ukEzCCr94SUwJhjIWOylBCpIYkrvYoTwxNa94XQ=="],
|
|
468
|
-
|
|
469
|
-
"@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260624.1", "", { "os": "linux", "cpu": "x64" }, "sha512-FaB8rS+rKYz4nDrEsHsF3b4cn7eCKCYroMJReA375OuQ6PHcmCNQ6QlVetA0dfFBxTTgejmoKyfw9xgAA5P4Yw=="],
|
|
470
|
-
|
|
471
|
-
"@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260624.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-BgkqbCmSHDb5UxqWaFlFFJ/DHNT3lEUO4W8627ap6+QthJZuXk2imiHAX3PgYXC6en9fLLyR6jjcseAa4CCshg=="],
|
|
472
|
-
|
|
473
|
-
"@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260624.1", "", { "os": "win32", "cpu": "x64" }, "sha512-WaZ+ue63NgB2j/lqjirfevh/TqcsCxSqnKhGGiRnlxHyYIBcoq+x7KngyEnyGIaywJE1PcFeXA+2EMSIPlSEiQ=="],
|
|
474
|
-
|
|
475
457
|
"@vellumai/ces-client": ["@vellumai/ces-client@file:../packages/ces-client", { "dependencies": { "@vellumai/service-contracts": "file:../service-contracts" }, "devDependencies": { "@types/bun": "1.2.4", "typescript": "5.7.3" } }],
|
|
476
458
|
|
|
477
459
|
"@vellumai/credential-storage": ["@vellumai/credential-storage@file:../packages/credential-storage", { "devDependencies": { "@types/bun": "1.3.10", "typescript": "5.9.3" } }],
|
|
@@ -1058,8 +1040,6 @@
|
|
|
1058
1040
|
|
|
1059
1041
|
"rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="],
|
|
1060
1042
|
|
|
1061
|
-
"re2js": ["re2js@2.8.3", "", {}, "sha512-lUKeXVwMqU302DM/WaOm33XF2hhzjGUZ8CbLg4zSAMpW2PPkJ2+is25AROevNiw+DytFmKU5gsQ92cB1Kxy+fA=="],
|
|
1062
|
-
|
|
1063
1043
|
"readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
|
|
1064
1044
|
|
|
1065
1045
|
"real-require": ["real-require@0.2.0", "", {}, "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="],
|
package/docs/workspace-tools.md
CHANGED
|
@@ -5,9 +5,9 @@ add a brand-new one) by dropping a single file under their
|
|
|
5
5
|
`<workspaceDir>/tools/` directory. The override survives assistant restarts,
|
|
6
6
|
takes effect during the same startup phase as core tool initialization,
|
|
7
7
|
and is recoverable: removing the file restores the original core behavior.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
When the `workspace-tools-watcher` feature flag is enabled, overrides are
|
|
9
|
+
also hot-reloaded by a filesystem watcher (no restart required after the
|
|
10
|
+
initial boot).
|
|
11
11
|
|
|
12
12
|
This page explains the file convention, lifecycle position, and the
|
|
13
13
|
"single canonical source per name" invariant the design is built around.
|
|
@@ -100,8 +100,8 @@ Workspace tools are the highest-priority origin in the tool registry:
|
|
|
100
100
|
|
|
101
101
|
- **Same name as a core tool** → the original core tool is moved into an
|
|
102
102
|
internal stash (`getCoreToolOverride(name)`) and the workspace tool takes
|
|
103
|
-
its place. Removing the workspace file
|
|
104
|
-
|
|
103
|
+
its place. Removing the workspace file causes the watcher to restore
|
|
104
|
+
the original — workspace tools are not destructive to the core baseline.
|
|
105
105
|
- **Brand-new name** → registers as a net-new entry. No stash.
|
|
106
106
|
- **`<name>.removed` sentinel for a core tool** → the core tool is
|
|
107
107
|
stripped (stashed in the same map as override-style stashing) and no
|
|
@@ -128,44 +128,35 @@ on the incoming tool.
|
|
|
128
128
|
|
|
129
129
|
```
|
|
130
130
|
initializeTools() # core tools register
|
|
131
|
-
→ loadWorkspaceTools() # initial workspace tool
|
|
131
|
+
→ loadWorkspaceTools() # initial workspace tool scan
|
|
132
132
|
→ MCP tool registration
|
|
133
133
|
→ loadUserPlugins()
|
|
134
134
|
→ bootstrapPlugins()
|
|
135
135
|
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
→
|
|
139
|
-
→ getWorkspaceToolDefinitions() # re-read workspace tools from the registry
|
|
140
|
-
→ getMcpToolDefinitions() # re-read MCP tools (same pattern)
|
|
136
|
+
# after providers-setup completes:
|
|
137
|
+
DaemonServer.start()
|
|
138
|
+
→ WorkspaceToolsWatcher.getInstance().start() # hot register/unregister via fs.watch
|
|
141
139
|
```
|
|
142
140
|
|
|
143
141
|
Workspace tools register _after_ core tools and _before_ every other
|
|
144
|
-
extension surface during the initial
|
|
145
|
-
registration sees the workspace tool as already-owned. The initial
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
turn. Unchanged files are skipped via an mtime cache, so a no-op reconcile
|
|
163
|
-
costs one `readdir` plus a `stat` per file and never re-imports. Concurrent
|
|
164
|
-
callers coalesce onto a single in-flight reconcile so their
|
|
165
|
-
unregister/register sequences never interleave. This is the same
|
|
166
|
-
eventual-consistency, re-derive-from-disk approach the plugin loader's
|
|
167
|
-
mtime cache uses, with the per-turn tool read — rather than a watcher —
|
|
168
|
-
kicking the reconcile.
|
|
142
|
+
extension surface during the initial scan so that every subsequent
|
|
143
|
+
registration sees the workspace tool as already-owned. The initial scan
|
|
144
|
+
(`loadWorkspaceTools()`) always runs, so workspace tools load from disk
|
|
145
|
+
at every boot regardless of the flag.
|
|
146
|
+
|
|
147
|
+
The filesystem watcher is gated on the `workspace-tools-watcher` feature
|
|
148
|
+
flag (default off). When enabled, it runs for the lifetime of the
|
|
149
|
+
assistant, picking up add/change/delete events on `<workspaceDir>/tools/`
|
|
150
|
+
and reconciling the registry without requiring a restart. When disabled,
|
|
151
|
+
no watch loop is mounted and live edits to `<workspaceDir>/tools/` take
|
|
152
|
+
effect only on the next daemon restart. The flag is read at startup, so
|
|
153
|
+
toggling it takes effect on restart rather than mid-process.
|
|
154
|
+
|
|
155
|
+
The watcher debounces per filename stem and reconciles by re-deriving
|
|
156
|
+
the world from disk ("given what's on disk right now for `<stem>.*`,
|
|
157
|
+
what registry state should the assistant be in?") rather than routing
|
|
158
|
+
on `fs.watch`'s unreliable add/change/rename event types. This is the
|
|
159
|
+
same eventual-consistency pattern the plugin source watcher uses.
|
|
169
160
|
|
|
170
161
|
## Per-tool isolation
|
|
171
162
|
|
|
@@ -191,15 +182,15 @@ the whole call without partially populating the registry.
|
|
|
191
182
|
|
|
192
183
|
## Unregistering
|
|
193
184
|
|
|
194
|
-
Deleting `<workspaceDir>/tools/<name>.{ts,js,json}`
|
|
195
|
-
|
|
196
|
-
the stashed core tool when one exists, or simply deletes the
|
|
197
|
-
the workspace tool was net-new.
|
|
198
|
-
|
|
185
|
+
Deleting `<workspaceDir>/tools/<name>.{ts,js,json}` triggers the file
|
|
186
|
+
watcher's reconcile, which calls `unregisterWorkspaceTool(name)` and
|
|
187
|
+
restores the stashed core tool when one exists, or simply deletes the
|
|
188
|
+
entry when the workspace tool was net-new. No assistant restart is
|
|
189
|
+
required.
|
|
199
190
|
|
|
200
191
|
To strip a core tool without substituting a replacement, drop an empty
|
|
201
192
|
`<workspaceDir>/tools/<name>.removed` file. Removing that sentinel
|
|
202
193
|
restores the core tool on the next reconcile. The two states (override
|
|
203
194
|
vs. strip) are mutually exclusive — placing both `<name>.ts` and
|
|
204
|
-
`<name>.removed` for the same stem causes the
|
|
195
|
+
`<name>.removed` for the same stem causes the watcher to tear down
|
|
205
196
|
both states until the conflict is resolved on disk.
|
|
@@ -51,17 +51,11 @@ const ALLOWED_PREFIXES = {
|
|
|
51
51
|
"../../config/schema",
|
|
52
52
|
"../../config/env",
|
|
53
53
|
"../../util/platform",
|
|
54
|
-
"../../../util/platform",
|
|
55
54
|
// Memory retrospective — the retrospective CLI runs the fork-based
|
|
56
55
|
// retrospective in-process (no daemon, no IPC), so it imports the
|
|
57
56
|
// job handler directly. Depth-2 for commands/memory/ nesting.
|
|
58
57
|
"../../memory/memory-retrospective-job",
|
|
59
58
|
"../../../memory/memory-retrospective-job",
|
|
60
|
-
// Memory worker control — the `memory worker` CLI spawns/probes/stops
|
|
61
|
-
// the worker OS process directly (no daemon, no IPC), so it imports the
|
|
62
|
-
// shared PID-file control helpers. Depth-2 for commands/memory/ nesting.
|
|
63
|
-
"../../memory/worker-control",
|
|
64
|
-
"../../../memory/worker-control",
|
|
65
59
|
"../logger",
|
|
66
60
|
"../output",
|
|
67
61
|
"../../logger",
|
|
@@ -7,7 +7,6 @@ import { describe, expect, test } from "bun:test";
|
|
|
7
7
|
|
|
8
8
|
import { SourceMetadataSchema } from "../inbound-contract.js";
|
|
9
9
|
import {
|
|
10
|
-
makeResolutionFailedVerdict,
|
|
11
10
|
TrustVerdictSchema,
|
|
12
11
|
type TrustVerdict,
|
|
13
12
|
} from "../trust-verdict-contract.js";
|
|
@@ -44,36 +43,6 @@ describe("TrustVerdictSchema", () => {
|
|
|
44
43
|
expect(TrustVerdictSchema.parse(minimal)).toEqual(minimal);
|
|
45
44
|
});
|
|
46
45
|
|
|
47
|
-
test("parses a verdict carrying resolutionFailed", () => {
|
|
48
|
-
const verdict = {
|
|
49
|
-
trustClass: "unknown",
|
|
50
|
-
canonicalSenderId: null,
|
|
51
|
-
resolutionFailed: true,
|
|
52
|
-
} satisfies TrustVerdict;
|
|
53
|
-
expect(TrustVerdictSchema.parse(verdict)).toEqual(verdict);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test("leaves resolutionFailed undefined when absent", () => {
|
|
57
|
-
const parsed = TrustVerdictSchema.parse({
|
|
58
|
-
trustClass: "unknown",
|
|
59
|
-
canonicalSenderId: null,
|
|
60
|
-
});
|
|
61
|
-
expect(parsed.resolutionFailed).toBeUndefined();
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
test("makeResolutionFailedVerdict builds an unknown sentinel", () => {
|
|
65
|
-
expect(makeResolutionFailedVerdict("+15555550100")).toEqual({
|
|
66
|
-
trustClass: "unknown",
|
|
67
|
-
canonicalSenderId: "+15555550100",
|
|
68
|
-
resolutionFailed: true,
|
|
69
|
-
});
|
|
70
|
-
expect(makeResolutionFailedVerdict(null)).toEqual({
|
|
71
|
-
trustClass: "unknown",
|
|
72
|
-
canonicalSenderId: null,
|
|
73
|
-
resolutionFailed: true,
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
46
|
test("rejects an invalid trustClass", () => {
|
|
78
47
|
expect(() =>
|
|
79
48
|
TrustVerdictSchema.parse({
|
|
@@ -137,50 +137,6 @@ export type MarkChannelVerifiedIpcResponse = z.infer<
|
|
|
137
137
|
typeof MarkChannelVerifiedIpcResponseSchema
|
|
138
138
|
>;
|
|
139
139
|
|
|
140
|
-
export const UpsertVerifiedChannelIpcParamsSchema = z.object({
|
|
141
|
-
type: z.string().min(1),
|
|
142
|
-
address: z.string().min(1),
|
|
143
|
-
externalChatId: z.string().min(1),
|
|
144
|
-
displayName: z.string().optional(),
|
|
145
|
-
username: z.string().optional(),
|
|
146
|
-
// Audit source for the verification. Free text (DB column is text) so the
|
|
147
|
-
// invite-activation path can pass "invite"; do not narrow to an enum.
|
|
148
|
-
verifiedVia: z.string().optional(),
|
|
149
|
-
// Target contact to bind the channel to (invite redemption). When set, an
|
|
150
|
-
// existing channel for the same (type,address) under a different contact is
|
|
151
|
-
// reassigned to this contact, mirroring the assistant's
|
|
152
|
-
// reassignConflictingChannels.
|
|
153
|
-
contactId: z.string().min(1).optional(),
|
|
154
|
-
// Relax the revoked refusal guard so a valid invite can reactivate a revoked
|
|
155
|
-
// member. Blocked actors are refused regardless.
|
|
156
|
-
allowRevokedReactivation: z.boolean().optional(),
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
export type UpsertVerifiedChannelIpcParams = z.infer<
|
|
160
|
-
typeof UpsertVerifiedChannelIpcParamsSchema
|
|
161
|
-
>;
|
|
162
|
-
|
|
163
|
-
export const UpsertVerifiedChannelIpcResponseSchema = z.object({
|
|
164
|
-
ok: z.boolean(),
|
|
165
|
-
verified: z.boolean(),
|
|
166
|
-
// Present only when verified — a blocked/revoked skip omits the channel.
|
|
167
|
-
channel: z
|
|
168
|
-
.object({
|
|
169
|
-
id: z.string(),
|
|
170
|
-
contactId: z.string(),
|
|
171
|
-
type: z.string(),
|
|
172
|
-
address: z.string(),
|
|
173
|
-
status: z.string(),
|
|
174
|
-
verifiedAt: z.number().nullable(),
|
|
175
|
-
verifiedVia: z.string().nullable(),
|
|
176
|
-
})
|
|
177
|
-
.optional(),
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
export type UpsertVerifiedChannelIpcResponse = z.infer<
|
|
181
|
-
typeof UpsertVerifiedChannelIpcResponseSchema
|
|
182
|
-
>;
|
|
183
|
-
|
|
184
140
|
export const MarkChannelRevokedIpcParamsSchema = z.object({
|
|
185
141
|
contactChannelId: z.string().min(1),
|
|
186
142
|
// Audit reason for the downgrade. The verification-revoke flow passes
|
|
@@ -73,7 +73,6 @@ export type { AdmissionPolicy } from "./admission-policy-contract.js";
|
|
|
73
73
|
|
|
74
74
|
// Trust verdict contract (gateway → daemon) — Zod schemas + derived types
|
|
75
75
|
export {
|
|
76
|
-
makeResolutionFailedVerdict,
|
|
77
76
|
ResolveInboundTrustRequestSchema,
|
|
78
77
|
TRUST_CLASS_VALUES,
|
|
79
78
|
TrustClassSchema,
|
|
@@ -85,16 +84,3 @@ export type {
|
|
|
85
84
|
TrustClass,
|
|
86
85
|
TrustVerdict,
|
|
87
86
|
} from "./trust-verdict-contract.js";
|
|
88
|
-
|
|
89
|
-
// Guardian delivery contract (daemon → gateway pull) — Zod schemas + derived types
|
|
90
|
-
export {
|
|
91
|
-
GuardianDeliverySchema,
|
|
92
|
-
ResolveGuardianDeliveryRequestSchema,
|
|
93
|
-
ResolveGuardianDeliveryResponseSchema,
|
|
94
|
-
} from "./guardian-delivery-contract.js";
|
|
95
|
-
|
|
96
|
-
export type {
|
|
97
|
-
GuardianDelivery,
|
|
98
|
-
ResolveGuardianDeliveryRequest,
|
|
99
|
-
ResolveGuardianDeliveryResponse,
|
|
100
|
-
} from "./guardian-delivery-contract.js";
|
|
@@ -42,11 +42,6 @@ export const TrustVerdictSchema = z.object({
|
|
|
42
42
|
trustClass: TrustClassSchema,
|
|
43
43
|
canonicalSenderId: z.string().nullable(),
|
|
44
44
|
|
|
45
|
-
// Present+true ⇒ gateway attempted resolution but failed (DB error);
|
|
46
|
-
// consumer treats it as "could not vouch", distinct from a real `unknown`
|
|
47
|
-
// stranger.
|
|
48
|
-
resolutionFailed: z.boolean().optional(),
|
|
49
|
-
|
|
50
45
|
// Guardian binding — present only when a guardian binding matches.
|
|
51
46
|
guardianExternalUserId: z.string().optional(),
|
|
52
47
|
guardianDeliveryChatId: z.string().nullable().optional(),
|
|
@@ -68,18 +63,6 @@ export const TrustVerdictSchema = z.object({
|
|
|
68
63
|
|
|
69
64
|
export type TrustVerdict = z.infer<typeof TrustVerdictSchema>;
|
|
70
65
|
|
|
71
|
-
/**
|
|
72
|
-
* Sentinel for a gateway resolver failure; consumers treat it as
|
|
73
|
-
* could-not-vouch (distinct from a real `unknown` stranger). Takes the
|
|
74
|
-
* already-canonicalized sender id so this module stays free of the gateway's
|
|
75
|
-
* canonicalization util.
|
|
76
|
-
*/
|
|
77
|
-
export function makeResolutionFailedVerdict(
|
|
78
|
-
canonicalSenderId: string | null,
|
|
79
|
-
): TrustVerdict {
|
|
80
|
-
return { trustClass: "unknown", canonicalSenderId, resolutionFailed: true };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
66
|
/**
|
|
84
67
|
* IPC request for `resolve_inbound_trust`. Per-actor identity keys the
|
|
85
68
|
* gateway resolver needs to classify the inbound sender. The response reuses
|
package/openapi.yaml
CHANGED
|
@@ -3973,8 +3973,6 @@ paths:
|
|
|
3973
3973
|
anyOf:
|
|
3974
3974
|
- type: string
|
|
3975
3975
|
- type: "null"
|
|
3976
|
-
resolutionFailed:
|
|
3977
|
-
type: boolean
|
|
3978
3976
|
guardianExternalUserId:
|
|
3979
3977
|
type: string
|
|
3980
3978
|
guardianDeliveryChatId:
|
|
@@ -8408,22 +8406,6 @@ paths:
|
|
|
8408
8406
|
anyOf:
|
|
8409
8407
|
- type: number
|
|
8410
8408
|
- type: "null"
|
|
8411
|
-
apiErrorCode:
|
|
8412
|
-
anyOf:
|
|
8413
|
-
- type: string
|
|
8414
|
-
- type: "null"
|
|
8415
|
-
apiErrorType:
|
|
8416
|
-
anyOf:
|
|
8417
|
-
- type: string
|
|
8418
|
-
- type: "null"
|
|
8419
|
-
apiErrorParam:
|
|
8420
|
-
anyOf:
|
|
8421
|
-
- type: string
|
|
8422
|
-
- type: "null"
|
|
8423
|
-
requestId:
|
|
8424
|
-
anyOf:
|
|
8425
|
-
- type: string
|
|
8426
|
-
- type: "null"
|
|
8427
8409
|
additionalProperties: false
|
|
8428
8410
|
- type: "null"
|
|
8429
8411
|
required:
|
|
@@ -14727,49 +14709,12 @@ paths:
|
|
|
14727
14709
|
type: string
|
|
14728
14710
|
disabled:
|
|
14729
14711
|
type: boolean
|
|
14730
|
-
headers:
|
|
14731
|
-
type: object
|
|
14732
|
-
propertyNames:
|
|
14733
|
-
type: string
|
|
14734
|
-
additionalProperties:
|
|
14735
|
-
type: string
|
|
14736
14712
|
required:
|
|
14737
14713
|
- name
|
|
14738
14714
|
- transportType
|
|
14739
14715
|
responses:
|
|
14740
14716
|
"200":
|
|
14741
14717
|
description: Successful response
|
|
14742
|
-
/v1/internal/mcp/auth/revoke:
|
|
14743
|
-
post:
|
|
14744
|
-
operationId: internal_mcp_auth_revoke_post
|
|
14745
|
-
summary: Revoke MCP OAuth credentials
|
|
14746
|
-
description: Deletes stored OAuth tokens for an MCP server and triggers a reload.
|
|
14747
|
-
tags:
|
|
14748
|
-
- internal
|
|
14749
|
-
requestBody:
|
|
14750
|
-
required: true
|
|
14751
|
-
content:
|
|
14752
|
-
application/json:
|
|
14753
|
-
schema:
|
|
14754
|
-
type: object
|
|
14755
|
-
properties:
|
|
14756
|
-
serverId:
|
|
14757
|
-
type: string
|
|
14758
|
-
required:
|
|
14759
|
-
- serverId
|
|
14760
|
-
responses:
|
|
14761
|
-
"200":
|
|
14762
|
-
description: Successful response
|
|
14763
|
-
content:
|
|
14764
|
-
application/json:
|
|
14765
|
-
schema:
|
|
14766
|
-
type: object
|
|
14767
|
-
properties:
|
|
14768
|
-
revoked:
|
|
14769
|
-
type: boolean
|
|
14770
|
-
required:
|
|
14771
|
-
- revoked
|
|
14772
|
-
additionalProperties: false
|
|
14773
14718
|
/v1/internal/mcp/auth/start:
|
|
14774
14719
|
post:
|
|
14775
14720
|
operationId: internal_mcp_auth_start_post
|
|
@@ -14849,8 +14794,6 @@ paths:
|
|
|
14849
14794
|
type: boolean
|
|
14850
14795
|
defaultRiskLevel:
|
|
14851
14796
|
type: string
|
|
14852
|
-
hasOAuth:
|
|
14853
|
-
type: boolean
|
|
14854
14797
|
allowedTools:
|
|
14855
14798
|
type: array
|
|
14856
14799
|
items:
|
|
@@ -14865,7 +14808,6 @@ paths:
|
|
|
14865
14808
|
- transport
|
|
14866
14809
|
- enabled
|
|
14867
14810
|
- defaultRiskLevel
|
|
14868
|
-
- hasOAuth
|
|
14869
14811
|
additionalProperties: false
|
|
14870
14812
|
required:
|
|
14871
14813
|
- servers
|
|
@@ -14994,14 +14936,6 @@ paths:
|
|
|
14994
14936
|
items:
|
|
14995
14937
|
type: string
|
|
14996
14938
|
- type: "null"
|
|
14997
|
-
headers:
|
|
14998
|
-
anyOf:
|
|
14999
|
-
- type: object
|
|
15000
|
-
propertyNames:
|
|
15001
|
-
type: string
|
|
15002
|
-
additionalProperties:
|
|
15003
|
-
type: string
|
|
15004
|
-
- type: "null"
|
|
15005
14939
|
required:
|
|
15006
14940
|
- name
|
|
15007
14941
|
responses:
|
|
@@ -15402,22 +15336,6 @@ paths:
|
|
|
15402
15336
|
anyOf:
|
|
15403
15337
|
- type: number
|
|
15404
15338
|
- type: "null"
|
|
15405
|
-
apiErrorCode:
|
|
15406
|
-
anyOf:
|
|
15407
|
-
- type: string
|
|
15408
|
-
- type: "null"
|
|
15409
|
-
apiErrorType:
|
|
15410
|
-
anyOf:
|
|
15411
|
-
- type: string
|
|
15412
|
-
- type: "null"
|
|
15413
|
-
apiErrorParam:
|
|
15414
|
-
anyOf:
|
|
15415
|
-
- type: string
|
|
15416
|
-
- type: "null"
|
|
15417
|
-
requestId:
|
|
15418
|
-
anyOf:
|
|
15419
|
-
- type: string
|
|
15420
|
-
- type: "null"
|
|
15421
15339
|
additionalProperties: false
|
|
15422
15340
|
- type: "null"
|
|
15423
15341
|
required:
|
|
@@ -17875,22 +17793,6 @@ paths:
|
|
|
17875
17793
|
anyOf:
|
|
17876
17794
|
- type: number
|
|
17877
17795
|
- type: "null"
|
|
17878
|
-
apiErrorCode:
|
|
17879
|
-
anyOf:
|
|
17880
|
-
- type: string
|
|
17881
|
-
- type: "null"
|
|
17882
|
-
apiErrorType:
|
|
17883
|
-
anyOf:
|
|
17884
|
-
- type: string
|
|
17885
|
-
- type: "null"
|
|
17886
|
-
apiErrorParam:
|
|
17887
|
-
anyOf:
|
|
17888
|
-
- type: string
|
|
17889
|
-
- type: "null"
|
|
17890
|
-
requestId:
|
|
17891
|
-
anyOf:
|
|
17892
|
-
- type: string
|
|
17893
|
-
- type: "null"
|
|
17894
17796
|
additionalProperties: false
|
|
17895
17797
|
- type: "null"
|
|
17896
17798
|
required:
|
|
@@ -19703,56 +19605,6 @@ paths:
|
|
|
19703
19605
|
responses:
|
|
19704
19606
|
"200":
|
|
19705
19607
|
description: Successful response
|
|
19706
|
-
/v1/onboarding/checkin:
|
|
19707
|
-
post:
|
|
19708
|
-
operationId: onboarding_checkin_post
|
|
19709
|
-
summary: Schedule the onboarding Day 2 check-in
|
|
19710
|
-
description:
|
|
19711
|
-
"Find the first open 15-minute slot between 12pm and 5pm tomorrow (widening to 8am–8pm if booked) on the
|
|
19712
|
-
user's Google Calendar and create the Day 2 Check-in event. Best-effort: returns scheduled=false when no
|
|
19713
|
-
calendar is connected or the calendar scope wasn't granted."
|
|
19714
|
-
tags:
|
|
19715
|
-
- onboarding
|
|
19716
|
-
requestBody:
|
|
19717
|
-
required: true
|
|
19718
|
-
content:
|
|
19719
|
-
application/json:
|
|
19720
|
-
schema:
|
|
19721
|
-
type: object
|
|
19722
|
-
properties:
|
|
19723
|
-
userName:
|
|
19724
|
-
type: string
|
|
19725
|
-
assistantName:
|
|
19726
|
-
type: string
|
|
19727
|
-
timezone:
|
|
19728
|
-
type: string
|
|
19729
|
-
responses:
|
|
19730
|
-
"200":
|
|
19731
|
-
description: Successful response
|
|
19732
|
-
content:
|
|
19733
|
-
application/json:
|
|
19734
|
-
schema:
|
|
19735
|
-
type: object
|
|
19736
|
-
properties:
|
|
19737
|
-
scheduled:
|
|
19738
|
-
type: boolean
|
|
19739
|
-
reason:
|
|
19740
|
-
type: string
|
|
19741
|
-
eventId:
|
|
19742
|
-
type: string
|
|
19743
|
-
htmlLink:
|
|
19744
|
-
anyOf:
|
|
19745
|
-
- type: string
|
|
19746
|
-
- type: "null"
|
|
19747
|
-
start:
|
|
19748
|
-
type: string
|
|
19749
|
-
end:
|
|
19750
|
-
type: string
|
|
19751
|
-
timeZone:
|
|
19752
|
-
type: string
|
|
19753
|
-
required:
|
|
19754
|
-
- scheduled
|
|
19755
|
-
additionalProperties: false
|
|
19756
19608
|
/v1/pages/{appId}:
|
|
19757
19609
|
get:
|
|
19758
19610
|
operationId: pages_by_appId_get
|
|
@@ -26126,13 +25978,6 @@ paths:
|
|
|
26126
25978
|
type: boolean
|
|
26127
25979
|
messageId:
|
|
26128
25980
|
type: string
|
|
26129
|
-
toolUseId:
|
|
26130
|
-
type: string
|
|
26131
|
-
input:
|
|
26132
|
-
type: object
|
|
26133
|
-
propertyNames:
|
|
26134
|
-
type: string
|
|
26135
|
-
additionalProperties: {}
|
|
26136
25981
|
required:
|
|
26137
25982
|
- type
|
|
26138
25983
|
- content
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vellumai/assistant",
|
|
3
|
-
"version": "0.10.2
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -24,7 +24,6 @@
|
|
|
24
24
|
"lint:circular": "bun run scripts/check-circular-deps.ts",
|
|
25
25
|
"lint:unused:production": "knip --production --include exports",
|
|
26
26
|
"typecheck": "bunx tsc --noEmit",
|
|
27
|
-
"typecheck:fast": "bunx tsgo --noEmit",
|
|
28
27
|
"test": "bash scripts/test.sh",
|
|
29
28
|
"test:coverage": "COVERAGE=true bash scripts/test.sh",
|
|
30
29
|
"test:stable": "EXCLUDE_EXPERIMENTAL=true bash scripts/test.sh",
|
|
@@ -67,7 +66,6 @@
|
|
|
67
66
|
"playwright": "1.58.2",
|
|
68
67
|
"postgres": "3.4.8",
|
|
69
68
|
"quickjs-emscripten": "0.32.0",
|
|
70
|
-
"re2js": "2.8.3",
|
|
71
69
|
"rrule": "2.8.1",
|
|
72
70
|
"semver": "7.8.0",
|
|
73
71
|
"stemmer": "2.0.1",
|
|
@@ -107,7 +105,6 @@
|
|
|
107
105
|
"@types/node": "25.5.0",
|
|
108
106
|
"@types/semver": "7.5.8",
|
|
109
107
|
"@types/uuid": "10.0.0",
|
|
110
|
-
"@typescript/native-preview": "7.0.0-dev.20260624.1",
|
|
111
108
|
"ajv": "8.18.0",
|
|
112
109
|
"drizzle-kit": "0.31.10",
|
|
113
110
|
"eslint": "10.0.3",
|