@vellumai/assistant 0.8.5 → 0.8.6
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/AGENTS.md +33 -1
- package/ARCHITECTURE.md +1 -1
- package/bunfig.toml +6 -1
- package/docs/credential-execution-service.md +6 -6
- package/docs/plugins.md +4 -3
- package/node_modules/@vellumai/skill-host-contracts/src/client.ts +12 -13
- package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +4 -1
- package/node_modules/@vellumai/skill-host-contracts/src/tool-types.ts +16 -14
- package/openapi.yaml +1900 -166
- package/package.json +1 -1
- package/src/__tests__/actor-token-service.test.ts +3 -2
- package/src/__tests__/agent-loop-exit-reason.test.ts +102 -9
- package/src/__tests__/agent-loop-override-profile.test.ts +2 -1
- package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +1 -0
- package/src/__tests__/agent-wake-override-profile.test.ts +1 -0
- package/src/__tests__/always-loaded-tools-guard.test.ts +2 -2
- package/src/__tests__/annotate-risk-options.test.ts +1 -0
- package/src/__tests__/approval-cascade.test.ts +1 -0
- package/src/__tests__/approval-routes-http.test.ts +9 -13
- package/src/__tests__/assert-not-live-db.ts +79 -0
- package/src/__tests__/assistant-feature-flags-integration.test.ts +9 -25
- package/src/__tests__/audit-log-rotation.test.ts +2 -2
- package/src/__tests__/auto-analysis-end-to-end.test.ts +6 -6
- package/src/__tests__/background-workers-disk-pressure.test.ts +5 -8
- package/src/__tests__/browser-skill-endstate.test.ts +3 -3
- package/src/__tests__/btw-routes.test.ts +3 -2
- package/src/__tests__/call-controller.test.ts +3 -2
- package/src/__tests__/channel-approval-routes.test.ts +3 -2
- package/src/__tests__/channel-guardian.test.ts +3 -2
- package/src/__tests__/channel-readiness-slack-remote.test.ts +175 -0
- package/src/__tests__/channel-reply-delivery.test.ts +35 -0
- package/src/__tests__/channel-retry-sweep.test.ts +320 -3
- package/src/__tests__/checker.test.ts +12 -12
- package/src/__tests__/compaction-events.test.ts +1 -0
- package/src/__tests__/compaction-trail-store.test.ts +264 -0
- package/src/__tests__/compactor-call-site-logging.test.ts +1 -0
- package/src/__tests__/compactor-preserved-tail-count.test.ts +1 -0
- package/src/__tests__/computer-use-skill-manifest-regression.test.ts +7 -5
- package/src/__tests__/computer-use-tools.test.ts +12 -14
- package/src/__tests__/config-loader-backfill.test.ts +13 -28
- package/src/__tests__/config-loader-corrupt.test.ts +5 -5
- package/src/__tests__/config-loader-platform-defaults.test.ts +93 -26
- package/src/__tests__/config-loader-quarantine-bulletin.test.ts +3 -3
- package/src/__tests__/config-managed-gemini-defaults.test.ts +3 -4
- package/src/__tests__/config-schema.test.ts +10 -10
- package/src/__tests__/connection-model-compat.test.ts +83 -0
- package/src/__tests__/contacts-tools.test.ts +3 -2
- package/src/__tests__/context-token-estimator.test.ts +22 -0
- package/src/__tests__/conversation-abort-tool-results.test.ts +5 -0
- package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +1 -0
- package/src/__tests__/conversation-agent-loop-handlers-max-tokens.test.ts +55 -0
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +1 -0
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +34 -0
- package/src/__tests__/conversation-agent-loop.test.ts +488 -2
- package/src/__tests__/conversation-analysis-routes.test.ts +1 -0
- package/src/__tests__/conversation-app-control-instantiation.test.ts +29 -19
- package/src/__tests__/conversation-app-control-lifecycle.test.ts +1 -0
- package/src/__tests__/conversation-attention-store.test.ts +101 -0
- package/src/__tests__/conversation-attention-telegram.test.ts +3 -2
- package/src/__tests__/conversation-confirmation-signals.test.ts +1 -0
- package/src/__tests__/conversation-error.test.ts +30 -0
- package/src/__tests__/conversation-fork-crud.test.ts +69 -8
- package/src/__tests__/conversation-fork-route.test.ts +3 -2
- package/src/__tests__/conversation-history-web-search.test.ts +1 -0
- package/src/__tests__/conversation-inference-profile-list.test.ts +3 -2
- package/src/__tests__/conversation-inference-profile-route.test.ts +3 -2
- package/src/__tests__/conversation-lifecycle.test.ts +1 -0
- package/src/__tests__/conversation-list-source.test.ts +3 -2
- package/src/__tests__/conversation-load-history-repair.test.ts +2 -1
- package/src/__tests__/conversation-load-history-stripped.test.ts +1 -0
- package/src/__tests__/conversation-pairing.test.ts +53 -0
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +26 -7
- package/src/__tests__/conversation-process-callsite.test.ts +1 -0
- package/src/__tests__/conversation-provider-retry-repair.test.ts +5 -0
- package/src/__tests__/conversation-queue.test.ts +333 -291
- package/src/__tests__/conversation-routes-disk-view.test.ts +3 -18
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +33 -8
- package/src/__tests__/conversation-routes-slash-commands.test.ts +33 -2
- package/src/__tests__/conversation-runtime-assembly.test.ts +78 -0
- package/src/__tests__/conversation-skill-tools.test.ts +38 -142
- package/src/__tests__/conversation-slash-queue.test.ts +84 -32
- package/src/__tests__/conversation-slash-unknown.test.ts +5 -0
- package/src/__tests__/conversation-speed-override.test.ts +1 -0
- package/src/__tests__/conversation-surfaces-action-delivery.test.ts +46 -0
- package/src/__tests__/conversation-surfaces-data-persist.test.ts +1 -0
- package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +6 -3
- package/src/__tests__/conversation-surfaces-standalone.test.ts +6 -3
- package/src/__tests__/conversation-surfaces-state-update.test.ts +3 -3
- package/src/__tests__/conversation-surfaces-table-action.test.ts +7 -17
- package/src/__tests__/conversation-sync-tags.test.ts +128 -12
- package/src/__tests__/conversation-title-service.test.ts +1 -0
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +30 -0
- package/src/__tests__/conversation-usage.test.ts +1 -0
- package/src/__tests__/conversation-workspace-cache-state.test.ts +1 -0
- package/src/__tests__/conversation-workspace-injection.test.ts +5 -0
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +5 -0
- package/src/__tests__/credential-broker-browser-fill.test.ts +3 -3
- package/src/__tests__/credential-broker-server-use.test.ts +5 -5
- package/src/__tests__/credential-execution-client.test.ts +72 -1
- package/src/__tests__/credential-execution-feature-gates.test.ts +10 -12
- package/src/__tests__/credential-health-service.test.ts +252 -3
- package/src/__tests__/credential-security-invariants.test.ts +5 -5
- package/src/__tests__/credential-vault-unit.test.ts +19 -19
- package/src/__tests__/credential-vault.test.ts +5 -5
- package/src/__tests__/cross-provider-web-search.test.ts +56 -2
- package/src/__tests__/db-connection-isolation.test.ts +7 -6
- package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +8 -10
- package/src/__tests__/db-conversation-inference-profile-migration.test.ts +7 -10
- package/src/__tests__/db-llm-request-log-provider-migration.test.ts +9 -15
- package/src/__tests__/db-test-helpers.ts +58 -0
- package/src/__tests__/disk-pressure-guard.test.ts +58 -41
- package/src/__tests__/disk-pressure-lifecycle.test.ts +13 -10
- package/src/__tests__/disk-pressure-routes.test.ts +0 -33
- package/src/__tests__/disk-pressure-tools.test.ts +0 -4
- package/src/__tests__/dm-persistence.test.ts +26 -40
- package/src/__tests__/document-create-dedupe.test.ts +189 -0
- package/src/__tests__/document-find-replace.test.ts +3 -2
- package/src/__tests__/document-tool-security.test.ts +81 -2
- package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +5 -4
- package/src/__tests__/encrypted-store-test-helpers.ts +56 -0
- package/src/__tests__/encrypted-store.test.ts +11 -9
- package/src/__tests__/feature-flag-test-helpers.ts +53 -0
- package/src/__tests__/filing-service.test.ts +1 -0
- package/src/__tests__/first-greeting.test.ts +62 -12
- package/src/__tests__/gateway-flag-listener.test.ts +0 -1
- package/src/__tests__/gemini-provider.test.ts +26 -0
- package/src/__tests__/guardian-action-sweep.test.ts +3 -2
- package/src/__tests__/guardian-outbound-http.test.ts +3 -2
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +48 -3
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +1 -0
- package/src/__tests__/heartbeat-disk-pressure.test.ts +1 -0
- package/src/__tests__/heartbeat-service.test.ts +1 -0
- package/src/__tests__/helpers/mock-logger.ts +26 -0
- package/src/__tests__/host-bash-routes.test.ts +1 -0
- package/src/__tests__/host-cu-routes-targeted.test.ts +1 -0
- package/src/__tests__/host-file-routes-targeted.test.ts +1 -0
- package/src/__tests__/host-shell-tool.test.ts +5 -4
- package/src/__tests__/host-transfer-routes-targeted.test.ts +1 -0
- package/src/__tests__/http-conversation-lineage.test.ts +3 -2
- package/src/__tests__/http-user-message-parity.test.ts +29 -7
- package/src/__tests__/identity-intro-cache.test.ts +133 -22
- package/src/__tests__/inbound-slack-persistence.test.ts +44 -72
- package/src/__tests__/inference-profile-reaper.test.ts +3 -2
- package/src/__tests__/inference-profile-session-ipc.test.ts +3 -2
- package/src/__tests__/injector-disk-pressure.test.ts +3 -17
- package/src/__tests__/inline-skill-load-permissions.test.ts +4 -4
- package/src/__tests__/list-messages-hidden-metadata.test.ts +80 -0
- package/src/__tests__/llm-context-normalization.test.ts +42 -0
- package/src/__tests__/llm-resolver.test.ts +331 -0
- package/src/__tests__/llm-schema.test.ts +1 -1
- package/src/__tests__/manual-token-reconciliation.test.ts +76 -1
- package/src/__tests__/mcp-abort-signal.test.ts +14 -0
- package/src/__tests__/mcp-client-auth.test.ts +14 -0
- package/src/__tests__/messaging-send-tool.test.ts +1 -0
- package/src/__tests__/migration-import-from-url.test.ts +3 -3
- package/src/__tests__/mock-gateway-ipc.ts +18 -2
- package/src/__tests__/model-intents.test.ts +3 -3
- package/src/__tests__/native-web-search.test.ts +30 -2
- package/src/__tests__/notification-deep-link.test.ts +62 -0
- package/src/__tests__/oauth-commands-routes.test.ts +37 -0
- package/src/__tests__/oauth-provider-visibility.test.ts +8 -8
- package/src/__tests__/oauth-store.test.ts +3 -2
- package/src/__tests__/onboarding-template-contract.test.ts +3 -2
- package/src/__tests__/openai-provider.test.ts +8 -9
- package/src/__tests__/openai-responses-provider.test.ts +70 -10
- package/src/__tests__/openrouter-provider-only.test.ts +27 -5
- package/src/__tests__/outbound-slack-persistence.test.ts +46 -1
- package/src/__tests__/persistence-pipeline.test.ts +139 -1
- package/src/__tests__/persistence-secret-redaction.test.ts +83 -12
- package/src/__tests__/plugin-bootstrap.test.ts +9 -11
- package/src/__tests__/plugin-tool-contribution.test.ts +41 -38
- package/src/__tests__/process-message-background-slack.test.ts +21 -16
- package/src/__tests__/process-message-display-content.test.ts +19 -22
- package/src/__tests__/provider-catalog-visibility.test.ts +9 -9
- package/src/__tests__/provider-platform-proxy-integration.test.ts +216 -4
- package/src/__tests__/provider-registry-ollama.test.ts +45 -22
- package/src/__tests__/recording-handler.test.ts +1 -0
- package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +1 -0
- package/src/__tests__/registry.test.ts +82 -76
- package/src/__tests__/relay-server.test.ts +10 -10
- package/src/__tests__/runtime-attachment-metadata.test.ts +3 -2
- package/src/__tests__/schedule-store.test.ts +16 -1
- package/src/__tests__/scheduler-reuse-conversation.test.ts +48 -3
- package/src/__tests__/secret-ingress-http.test.ts +5 -1
- package/src/__tests__/secure-keys.test.ts +3 -3
- package/src/__tests__/send-endpoint-busy.test.ts +81 -42
- package/src/__tests__/server-history-render.test.ts +4 -1
- package/src/__tests__/skill-feature-flags-integration.test.ts +8 -10
- package/src/__tests__/skill-feature-flags.test.ts +14 -16
- package/src/__tests__/skill-load-feature-flag.test.ts +5 -5
- package/src/__tests__/skill-projection-feature-flag.test.ts +44 -30
- package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
- package/src/__tests__/skill-tool-factory.test.ts +96 -95
- package/src/__tests__/slack-channel-config.test.ts +3 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +11 -3
- package/src/__tests__/subagent-disposal.test.ts +27 -8
- package/src/__tests__/subagent-fork-notifications.test.ts +24 -9
- package/src/__tests__/subagent-fork-spawn.test.ts +13 -4
- package/src/__tests__/subagent-manager-notify.test.ts +20 -8
- package/src/__tests__/subagent-notify-parent.test.ts +5 -4
- package/src/__tests__/subagent-spawn-tool-fork.test.ts +58 -0
- package/src/__tests__/subagent-tools.test.ts +2 -1
- package/src/__tests__/suggestion-routes.test.ts +1 -0
- package/src/__tests__/system-prompt.test.ts +38 -0
- package/src/__tests__/test-preload-verifier.ts +68 -0
- package/src/__tests__/test-preload.ts +32 -39
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +20 -7
- package/src/__tests__/tool-executor.test.ts +55 -10
- package/src/__tests__/tool-preview-lifecycle.test.ts +1 -0
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +1 -0
- package/src/__tests__/twilio-routes.test.ts +3 -2
- package/src/__tests__/validate-input.test.ts +381 -0
- package/src/__tests__/verification-control-plane-policy.test.ts +1 -0
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +2 -1
- package/src/__tests__/voice-session-bridge.test.ts +37 -28
- package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +326 -0
- package/src/__tests__/workspace-migration-091-retighten-migration-onboarding-thread.test.ts +166 -0
- package/src/acp/session-manager.ts +5 -6
- package/src/agent/loop.ts +80 -0
- package/src/api/README.md +124 -2
- package/src/api/constants/call-sites.ts +27 -0
- package/src/api/events/assistant-outbound-attachment.ts +51 -0
- package/src/api/events/assistant-text-delta.ts +32 -0
- package/src/api/events/assistant-turn-start.ts +33 -0
- package/src/api/events/document-comment-created.ts +48 -0
- package/src/api/events/document-comment-deleted.ts +24 -0
- package/src/api/events/document-comment-reopened.ts +25 -0
- package/src/api/events/document-comment-resolved.ts +27 -0
- package/src/api/events/generation-cancelled.ts +24 -0
- package/src/api/events/generation-handoff.ts +41 -0
- package/src/api/events/message-complete.ts +42 -0
- package/src/api/events/open-url.ts +30 -0
- package/src/{events → api/events}/relationship-state-updated.ts +3 -3
- package/src/api/events/tool-use-start.ts +32 -0
- package/src/api/index.ts +128 -3
- package/src/api/responses/llm-context-response.ts +39 -0
- package/src/api/responses/llm-request-log-entry.ts +93 -0
- package/src/api/responses/memory-recall-log.ts +65 -0
- package/src/api/responses/memory-v2-activation-log.ts +78 -0
- package/src/background-wake/background-wake-routes.test.ts +687 -52
- package/src/background-wake/platform-client.test.ts +308 -0
- package/src/background-wake/platform-client.ts +167 -0
- package/src/background-wake/publisher.ts +91 -0
- package/src/background-wake/runtime-registry.ts +2 -2
- package/src/background-wake/wake-intent-hooks.test.ts +282 -0
- package/src/calls/guardian-dispatch.ts +1 -0
- package/src/calls/voice-session-bridge.ts +4 -4
- package/src/cli/commands/__tests__/conversations-slack.test.ts +16 -0
- package/src/cli/commands/__tests__/notifications.test.ts +184 -40
- package/src/cli/commands/channels/__tests__/channels.test.ts +143 -0
- package/src/cli/commands/channels/index.ts +229 -0
- package/src/cli/commands/memory-v3-render.ts +147 -0
- package/src/cli/commands/memory-v3.ts +255 -4
- package/src/cli/commands/notifications.ts +365 -55
- package/src/cli/lib/open-browser.ts +7 -2
- package/src/cli/program.ts +2 -0
- package/src/config/assistant-feature-flags.ts +23 -42
- package/src/config/bundled-skills/document-editor/SKILL.md +5 -1
- package/src/config/bundled-skills/schedule/SKILL.md +1 -1
- package/src/config/bundled-skills/schedule/TOOLS.json +2 -2
- package/src/config/bundled-skills/settings/tools/open-system-settings.ts +1 -0
- package/src/config/call-site-defaults.ts +1 -1
- package/src/config/feature-flag-cache.ts +86 -0
- package/src/config/feature-flag-registry.json +17 -17
- package/src/config/llm-context-resolution.ts +10 -1
- package/src/config/llm-resolver.ts +121 -15
- package/src/config/loader.ts +4 -5
- package/src/config/schemas/__tests__/memory-v2.test.ts +15 -0
- package/src/config/schemas/heartbeat.ts +1 -1
- package/src/config/schemas/llm.ts +90 -1
- package/src/config/schemas/memory-v2.ts +26 -0
- package/src/config/schemas/services.ts +6 -2
- package/src/config/seed-inference-profiles.ts +36 -16
- package/src/context/token-estimator.ts +10 -5
- package/src/credential-execution/executable-discovery.ts +40 -0
- package/src/credential-execution/process-manager.ts +6 -2
- package/src/credential-health/credential-health-service.ts +125 -40
- package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +3 -6
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +13 -15
- package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +1 -2
- package/src/daemon/__tests__/daemon-skill-host.test.ts +2 -0
- package/src/daemon/__tests__/meet-manifest-loader.test.ts +25 -12
- package/src/daemon/__tests__/native-web-search-metadata.test.ts +1 -0
- package/src/daemon/__tests__/switch-inference-profile-tool.test.ts +107 -0
- package/src/daemon/__tests__/web-search-status-text.test.ts +1 -0
- package/src/daemon/conversation-agent-loop-handlers.ts +389 -68
- package/src/daemon/conversation-agent-loop.ts +132 -28
- package/src/daemon/conversation-error.ts +33 -5
- package/src/daemon/conversation-messaging.ts +84 -43
- package/src/daemon/conversation-process.ts +74 -37
- package/src/daemon/conversation-runtime-assembly.ts +29 -9
- package/src/daemon/conversation-skill-tools.ts +14 -30
- package/src/daemon/conversation-surfaces.ts +69 -34
- package/src/daemon/conversation-tool-setup.ts +33 -48
- package/src/daemon/conversation.ts +26 -46
- package/src/daemon/daemon-control.ts +1 -1
- package/src/daemon/daemon-skill-host.ts +9 -2
- package/src/daemon/disk-pressure-guard.ts +27 -29
- package/src/daemon/first-greeting.ts +31 -13
- package/src/daemon/handlers/shared.ts +6 -1
- package/src/daemon/lifecycle.ts +12 -12
- package/src/daemon/mcp-reload-service.ts +1 -1
- package/src/daemon/meet-manifest-loader.ts +10 -17
- package/src/daemon/message-types/conversations.ts +20 -22
- package/src/daemon/message-types/document-comments.ts +8 -44
- package/src/daemon/message-types/home.ts +2 -2
- package/src/daemon/message-types/integrations.ts +2 -7
- package/src/daemon/message-types/messages.ts +23 -38
- package/src/daemon/message-types/subagents.ts +6 -0
- package/src/daemon/process-message.ts +9 -9
- package/src/daemon/providers-setup.ts +1 -1
- package/src/daemon/server.ts +16 -0
- package/src/daemon/switch-inference-profile-tool.ts +13 -3
- package/src/daemon/tool-setup-types.ts +0 -6
- package/src/daemon/wake-target-adapter.ts +10 -0
- package/src/documents/document-store.ts +38 -0
- package/src/export/__tests__/transcript-formatter.test.ts +1 -0
- package/src/heartbeat/__tests__/heartbeat-service.test.ts +29 -0
- package/src/heartbeat/heartbeat-service.ts +63 -0
- package/src/home/__tests__/feed-writer.test.ts +161 -0
- package/src/home/__tests__/post-connect-feed.test.ts +1 -0
- package/src/home/__tests__/suggested-prompts.test.ts +55 -59
- package/src/home/feed-writer.ts +146 -7
- package/src/home/suggested-prompts.ts +27 -145
- package/src/ipc/__tests__/cli-ipc.test.ts +1 -0
- package/src/ipc/gateway-client.test.ts +4 -1
- package/src/ipc/skill-routes/__tests__/memory.test.ts +1 -0
- package/src/ipc/skill-routes/__tests__/registries.test.ts +36 -7
- package/src/ipc/skill-routes/memory.ts +4 -3
- package/src/ipc/skill-routes/registries.ts +28 -29
- package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +1 -0
- package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +26 -5
- package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +1 -0
- package/src/memory/__tests__/memory-retrospective-job.test.ts +1 -0
- package/src/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +1 -0
- package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +31 -0
- package/src/memory/conversation-attention-store.ts +17 -3
- package/src/memory/conversation-crud.ts +352 -112
- package/src/memory/db-connection.ts +29 -19
- package/src/memory/db-init.ts +4 -0
- package/src/memory/db-singleton.ts +77 -0
- package/src/memory/delivery-channels.ts +82 -0
- package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +2 -4
- package/src/memory/graph/retriever.test.ts +3 -3
- package/src/memory/job-handlers/embedding.test.ts +3 -2
- package/src/memory/jobs/__tests__/embed-concept-page.test.ts +5 -2
- package/src/memory/jobs-worker.ts +12 -1
- package/src/memory/llm-request-log-source-clickhouse.ts +80 -0
- package/src/memory/llm-request-log-source-local.ts +24 -0
- package/src/memory/llm-request-log-source.ts +31 -0
- package/src/memory/llm-request-log-store.ts +188 -3
- package/src/memory/memory-v2-activation-log-store.ts +95 -1
- package/src/memory/migrations/265-drop-provider-connection-status.ts +26 -0
- package/src/memory/migrations/266-messages-client-message-id.ts +43 -0
- package/src/memory/migrations/index.ts +2 -0
- package/src/memory/schema/conversations.ts +9 -1
- package/src/memory/schema/inference.ts +0 -1
- package/src/memory/v2/__tests__/backfill-jobs.test.ts +5 -2
- package/src/memory/v2/__tests__/harness-metrics.test.ts +9 -0
- package/src/memory/v2/__tests__/harness-replay-input.test.ts +9 -4
- package/src/memory/v2/__tests__/harness-runner.test.ts +26 -0
- package/src/memory/v2/__tests__/sweep-job.test.ts +6 -3
- package/src/memory/v2/harness/metrics.ts +5 -1
- package/src/memory/v2/harness/replay-input.ts +19 -3
- package/src/memory/v2/harness/runner.ts +6 -0
- package/src/memory/v2/harness/trace.ts +6 -0
- package/src/memory/v3/__tests__/consolidation-job.test.ts +2 -4
- package/src/memory/v3/__tests__/coretrieval-seed.test.ts +270 -0
- package/src/memory/v3/__tests__/edges.test.ts +144 -1
- package/src/memory/v3/__tests__/filter.test.ts +48 -0
- package/src/memory/v3/__tests__/gate.test.ts +96 -33
- package/src/memory/v3/__tests__/index-composition.test.ts +58 -0
- package/src/memory/v3/__tests__/loop.test.ts +250 -5
- package/src/memory/v3/__tests__/scouts.test.ts +49 -0
- package/src/memory/v3/__tests__/shadow-diff.test.ts +225 -0
- package/src/memory/v3/__tests__/shadow-middleware.test.ts +88 -2
- package/src/memory/v3/__tests__/traversal.test.ts +39 -0
- package/src/memory/v3/__tests__/tree-walk.test.ts +77 -0
- package/src/memory/v3/__tests__/validate.test.ts +32 -0
- package/src/memory/v3/coretrieval-seed.ts +240 -0
- package/src/memory/v3/edges.ts +58 -21
- package/src/memory/v3/filter.ts +27 -22
- package/src/memory/v3/gate.ts +51 -36
- package/src/memory/v3/index-composition.ts +18 -5
- package/src/memory/v3/loop.ts +65 -17
- package/src/memory/v3/scouts.ts +15 -4
- package/src/memory/v3/shadow-diff.ts +287 -0
- package/src/memory/v3/shadow-middleware.ts +44 -2
- package/src/memory/v3/traversal.ts +6 -1
- package/src/memory/v3/tree-walk.ts +6 -1
- package/src/memory/v3/validate.ts +56 -33
- package/src/notifications/__tests__/emit-signal-home-feed.test.ts +1 -0
- package/src/notifications/__tests__/home-feed-side-effect.test.ts +1 -0
- package/src/notifications/adapters/slack.ts +45 -11
- package/src/notifications/broadcaster.ts +114 -63
- package/src/notifications/conversation-pairing.ts +23 -3
- package/src/notifications/decisions-store.ts +32 -1
- package/src/notifications/deliveries-store.ts +45 -0
- package/src/notifications/edit-notification.ts +201 -0
- package/src/notifications/emit-signal.ts +11 -1
- package/src/notifications/signal.ts +10 -0
- package/src/notifications/types.ts +37 -0
- package/src/oauth/byo-connection.test.ts +67 -3
- package/src/oauth/byo-connection.ts +32 -5
- package/src/oauth/connect-orchestrator.ts +9 -0
- package/src/oauth/connection-resolver.test.ts +76 -0
- package/src/oauth/connection-resolver.ts +49 -10
- package/src/oauth/manual-token-connection.ts +51 -3
- package/src/oauth/seed-providers.ts +3 -0
- package/src/permissions/approval-policy.test.ts +19 -5
- package/src/permissions/approval-policy.ts +14 -3
- package/src/permissions/checker.ts +21 -8
- package/src/platform/client.test.ts +24 -1
- package/src/platform/client.ts +8 -0
- package/src/platform/feature-gate.ts +15 -0
- package/src/plugins/defaults/injectors.ts +2 -8
- package/src/plugins/defaults/persistence.ts +25 -6
- package/src/plugins/types.ts +57 -13
- package/src/proactive-artifact/job.test.ts +1 -0
- package/src/prompts/__tests__/system-prompt.test.ts +4 -4
- package/src/prompts/system-prompt.ts +38 -40
- package/src/prompts/template-detection.ts +10 -4
- package/src/prompts/templates/BOOTSTRAP.md +7 -11
- package/src/prompts/templates/IDENTITY.md +0 -2
- package/src/providers/__tests__/connection-model-compat.test.ts +3 -4
- package/src/providers/__tests__/registry-native-web-search.test.ts +122 -0
- package/src/providers/call-site-routing.ts +33 -9
- package/src/providers/connection-model-compat.ts +23 -0
- package/src/providers/connection-resolution.ts +39 -20
- package/src/providers/fireworks/client.ts +1 -0
- package/src/providers/gemini/client.ts +24 -3
- package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +0 -2
- package/src/providers/inference/__tests__/base-url-security.test.ts +2 -3
- package/src/providers/inference/__tests__/{connections-status-label.test.ts → connections-label.test.ts} +12 -111
- package/src/providers/inference/auth.ts +0 -8
- package/src/providers/inference/connections.ts +3 -66
- package/src/providers/inference/resolve-auth.ts +2 -3
- package/src/providers/model-catalog.ts +35 -1
- package/src/providers/model-intents.ts +3 -3
- package/src/providers/openai/__tests__/api-error-detail.test.ts +120 -0
- package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +157 -5
- package/src/providers/openai/chat-completions-provider.ts +110 -12
- package/src/providers/openai/codex-models.ts +2 -0
- package/src/providers/openai/responses-provider.ts +53 -53
- package/src/providers/openrouter/client.ts +13 -8
- package/src/providers/provider-send-message.ts +18 -9
- package/src/providers/registry.ts +48 -8
- package/src/providers/retry.ts +16 -4
- package/src/providers/search-provider-catalog.ts +17 -9
- package/src/providers/types.ts +9 -0
- package/src/runtime/__tests__/agent-wake.test.ts +1 -0
- package/src/runtime/__tests__/background-job-runner.test.ts +1 -0
- package/src/runtime/access-request-helper.ts +1 -0
- package/src/runtime/auth/route-policy.ts +10 -0
- package/src/runtime/channel-readiness-service.ts +68 -0
- package/src/runtime/channel-reply-delivery.ts +23 -0
- package/src/runtime/channel-retry-sweep.ts +47 -14
- package/src/runtime/confirmation-request-guardian-bridge.ts +1 -1
- package/src/runtime/migrations/vbundle-builder.ts +3 -2
- package/src/runtime/routes/__tests__/bookmark-routes.test.ts +1 -0
- package/src/runtime/routes/__tests__/conversation-compaction-routes.test.ts +406 -0
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +98 -0
- package/src/runtime/routes/__tests__/heartbeat-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/home-feed-routes.test.ts +209 -1
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +13 -50
- package/src/runtime/routes/__tests__/memory-v2-simulate-route.test.ts +51 -3
- package/src/runtime/routes/__tests__/memory-v3-simulate-params.test.ts +35 -0
- package/src/runtime/routes/__tests__/slack-channel-routes.test.ts +3 -2
- package/src/runtime/routes/__tests__/surface-content-routes.test.ts +294 -0
- package/src/runtime/routes/__tests__/task-routes.test.ts +48 -3
- package/src/runtime/routes/acp-routes-list.test.ts +3 -0
- package/src/runtime/routes/app-management-routes.ts +111 -4
- package/src/runtime/routes/background-wake-routes.ts +188 -20
- package/src/runtime/routes/btw-routes.ts +4 -4
- package/src/runtime/routes/conversation-analysis-routes.ts +6 -0
- package/src/runtime/routes/conversation-compaction-routes.ts +263 -0
- package/src/runtime/routes/conversation-list-routes.ts +147 -0
- package/src/runtime/routes/conversation-management-routes.ts +39 -14
- package/src/runtime/routes/conversation-query-routes.ts +60 -10
- package/src/runtime/routes/conversation-routes.ts +186 -140
- package/src/runtime/routes/conversations-import-routes.ts +19 -6
- package/src/runtime/routes/documents-routes.ts +10 -1
- package/src/runtime/routes/group-routes.ts +11 -0
- package/src/runtime/routes/home-feed-routes.ts +129 -0
- package/src/runtime/routes/identity-intro-cache.ts +61 -16
- package/src/runtime/routes/identity-routes.ts +30 -9
- package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +530 -6
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +57 -8
- package/src/runtime/routes/index.ts +2 -0
- package/src/runtime/routes/inference-provider-connection-routes.ts +5 -26
- package/src/runtime/routes/integrations/vercel.ts +15 -0
- package/src/runtime/routes/llm-context-normalization.ts +7 -2
- package/src/runtime/routes/memory-v3-routes.ts +160 -2
- package/src/runtime/routes/migration-routes.ts +20 -13
- package/src/runtime/routes/notification-routes.ts +63 -1
- package/src/runtime/routes/oauth-commands-routes.ts +6 -1
- package/src/runtime/routes/surface-action-routes.ts +1 -38
- package/src/runtime/routes/surface-content-routes.ts +12 -5
- package/src/runtime/routes/surface-conversation-resolver.ts +65 -0
- package/src/runtime/routes/wipe-conversation-routes.ts +3 -0
- package/src/runtime/services/__tests__/analyze-conversation.test.ts +2 -0
- package/src/runtime/slack-dm-text-delivery.ts +177 -0
- package/src/runtime/sync/resource-sync-events.ts +1 -1
- package/src/runtime/tool-grant-request-helper.ts +1 -0
- package/src/schedule/schedule-store.ts +8 -1
- package/src/schedule/scheduler.ts +111 -15
- package/src/security/__tests__/provider-key-env-fallback.test.ts +3 -3
- package/src/security/encrypted-store.ts +7 -16
- package/src/security/store-path-override.ts +61 -0
- package/src/signals/user-message.ts +5 -8
- package/src/skills/validate-input.ts +177 -0
- package/src/subagent/manager.ts +13 -13
- package/src/subagent/types.ts +6 -0
- package/src/tasks/tool-sanitizer.ts +2 -2
- package/src/tools/apps/definitions.ts +35 -21
- package/src/tools/browser/__tests__/browser-execution-acquire.test.ts +2 -8
- package/src/tools/computer-use/definitions.ts +268 -266
- package/src/tools/document/document-tool.ts +131 -8
- package/src/tools/execution-target.ts +2 -5
- package/src/tools/executor.ts +18 -55
- package/src/tools/host-filesystem/edit.test.ts +1 -0
- package/src/tools/host-filesystem/read.test.ts +1 -0
- package/src/tools/host-filesystem/transfer.test.ts +31 -6
- package/src/tools/host-filesystem/write.test.ts +1 -0
- package/src/tools/mcp/mcp-tool-factory.ts +0 -2
- package/src/tools/network/__tests__/managed-search-proxy.test.ts +282 -0
- package/src/tools/network/__tests__/web-search.test.ts +211 -3
- package/src/tools/network/managed-search-proxy.ts +183 -0
- package/src/tools/network/web-search.ts +199 -44
- package/src/tools/policy-context.ts +3 -1
- package/src/tools/registry.ts +146 -103
- package/src/tools/schedule/create.ts +1 -1
- package/src/tools/skills/skill-tool-factory.ts +17 -36
- package/src/tools/subagent/spawn.ts +3 -0
- package/src/tools/tool-approval-handler.ts +10 -4
- package/src/tools/tool-name-aliases.ts +72 -14
- package/src/tools/types.ts +17 -15
- package/src/tools/ui-surface/definitions.ts +98 -86
- package/src/types/onboarding-context.ts +6 -0
- package/src/usage/attribution.ts +32 -1
- package/src/util/browser.ts +7 -2
- package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +109 -0
- package/src/workspace/migrations/091-retighten-migration-onboarding-thread.ts +41 -0
- package/src/workspace/migrations/registry.ts +4 -0
package/src/api/index.ts
CHANGED
|
@@ -1,4 +1,129 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import { AssistantTextDeltaEventSchema } from "./events/assistant-text-delta.js";
|
|
4
|
+
import { AssistantTurnStartEventSchema } from "./events/assistant-turn-start.js";
|
|
5
|
+
import { DocumentCommentCreatedEventSchema } from "./events/document-comment-created.js";
|
|
6
|
+
import { DocumentCommentDeletedEventSchema } from "./events/document-comment-deleted.js";
|
|
7
|
+
import { DocumentCommentReopenedEventSchema } from "./events/document-comment-reopened.js";
|
|
8
|
+
import { DocumentCommentResolvedEventSchema } from "./events/document-comment-resolved.js";
|
|
9
|
+
import { GenerationCancelledEventSchema } from "./events/generation-cancelled.js";
|
|
10
|
+
import { GenerationHandoffEventSchema } from "./events/generation-handoff.js";
|
|
11
|
+
import { MessageCompleteEventSchema } from "./events/message-complete.js";
|
|
12
|
+
import { OpenUrlEventSchema } from "./events/open-url.js";
|
|
13
|
+
import { RelationshipStateUpdatedEventSchema } from "./events/relationship-state-updated.js";
|
|
14
|
+
import { ToolUseStartEventSchema } from "./events/tool-use-start.js";
|
|
15
|
+
|
|
16
|
+
export { CALL_SITE_SYNTHETIC_AGENT_ERROR_MESSAGE } from "./constants/call-sites.js";
|
|
1
17
|
export {
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
} from "
|
|
18
|
+
type AssistantOutboundAttachment,
|
|
19
|
+
AssistantOutboundAttachmentSchema,
|
|
20
|
+
} from "./events/assistant-outbound-attachment.js";
|
|
21
|
+
export {
|
|
22
|
+
type AssistantTextDeltaEvent,
|
|
23
|
+
AssistantTextDeltaEventSchema,
|
|
24
|
+
} from "./events/assistant-text-delta.js";
|
|
25
|
+
export {
|
|
26
|
+
type AssistantTurnStartEvent,
|
|
27
|
+
AssistantTurnStartEventSchema,
|
|
28
|
+
} from "./events/assistant-turn-start.js";
|
|
29
|
+
export {
|
|
30
|
+
type DocumentCommentCreatedEvent,
|
|
31
|
+
DocumentCommentCreatedEventSchema,
|
|
32
|
+
} from "./events/document-comment-created.js";
|
|
33
|
+
export {
|
|
34
|
+
type DocumentCommentDeletedEvent,
|
|
35
|
+
DocumentCommentDeletedEventSchema,
|
|
36
|
+
} from "./events/document-comment-deleted.js";
|
|
37
|
+
export {
|
|
38
|
+
type DocumentCommentReopenedEvent,
|
|
39
|
+
DocumentCommentReopenedEventSchema,
|
|
40
|
+
} from "./events/document-comment-reopened.js";
|
|
41
|
+
export {
|
|
42
|
+
type DocumentCommentResolvedEvent,
|
|
43
|
+
DocumentCommentResolvedEventSchema,
|
|
44
|
+
} from "./events/document-comment-resolved.js";
|
|
45
|
+
export {
|
|
46
|
+
type GenerationCancelledEvent,
|
|
47
|
+
GenerationCancelledEventSchema,
|
|
48
|
+
} from "./events/generation-cancelled.js";
|
|
49
|
+
export {
|
|
50
|
+
type GenerationHandoffEvent,
|
|
51
|
+
GenerationHandoffEventSchema,
|
|
52
|
+
} from "./events/generation-handoff.js";
|
|
53
|
+
export {
|
|
54
|
+
type MessageCompleteEvent,
|
|
55
|
+
MessageCompleteEventSchema,
|
|
56
|
+
} from "./events/message-complete.js";
|
|
57
|
+
export { type OpenUrlEvent, OpenUrlEventSchema } from "./events/open-url.js";
|
|
58
|
+
export {
|
|
59
|
+
type RelationshipStateUpdatedEvent,
|
|
60
|
+
RelationshipStateUpdatedEventSchema,
|
|
61
|
+
} from "./events/relationship-state-updated.js";
|
|
62
|
+
export {
|
|
63
|
+
type ToolUseStartEvent,
|
|
64
|
+
ToolUseStartEventSchema,
|
|
65
|
+
} from "./events/tool-use-start.js";
|
|
66
|
+
export {
|
|
67
|
+
type LlmContextResponse,
|
|
68
|
+
LlmContextResponseSchema,
|
|
69
|
+
} from "./responses/llm-context-response.js";
|
|
70
|
+
export {
|
|
71
|
+
type LLMCallSummary,
|
|
72
|
+
LLMCallSummarySchema,
|
|
73
|
+
type LLMContextSection,
|
|
74
|
+
LLMContextSectionSchema,
|
|
75
|
+
type LLMRequestLogEntry,
|
|
76
|
+
LLMRequestLogEntrySchema,
|
|
77
|
+
} from "./responses/llm-request-log-entry.js";
|
|
78
|
+
export {
|
|
79
|
+
type MemoryCandidate,
|
|
80
|
+
MemoryCandidateSchema,
|
|
81
|
+
type MemoryDegradation,
|
|
82
|
+
MemoryDegradationSchema,
|
|
83
|
+
type MemoryRecallLog,
|
|
84
|
+
MemoryRecallLogSchema,
|
|
85
|
+
} from "./responses/memory-recall-log.js";
|
|
86
|
+
export {
|
|
87
|
+
type MemoryV2ActivationLog,
|
|
88
|
+
MemoryV2ActivationLogSchema,
|
|
89
|
+
type MemoryV2ConceptRow,
|
|
90
|
+
MemoryV2ConceptRowSchema,
|
|
91
|
+
type MemoryV2ConfigSnapshot,
|
|
92
|
+
MemoryV2ConfigSnapshotSchema,
|
|
93
|
+
} from "./responses/memory-v2-activation-log.js";
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Canonical SSE event schema for the assistant runtime.
|
|
97
|
+
*
|
|
98
|
+
* Discriminated union over the `type` field. Each member is the
|
|
99
|
+
* canonical wire-contract schema for a single event type, defined
|
|
100
|
+
* alongside the daemon code that emits it. Consumers (web client,
|
|
101
|
+
* gateway, evals) parse incoming events with this single schema
|
|
102
|
+
* rather than maintaining their own dispatch table.
|
|
103
|
+
*
|
|
104
|
+
* Add new events by exporting their schema from `./events/` and
|
|
105
|
+
* appending them to the union below. See `./README.md` for the full
|
|
106
|
+
* migration recipe.
|
|
107
|
+
*/
|
|
108
|
+
export const AssistantEventSchema = z.discriminatedUnion("type", [
|
|
109
|
+
AssistantTextDeltaEventSchema,
|
|
110
|
+
AssistantTurnStartEventSchema,
|
|
111
|
+
DocumentCommentCreatedEventSchema,
|
|
112
|
+
DocumentCommentDeletedEventSchema,
|
|
113
|
+
DocumentCommentReopenedEventSchema,
|
|
114
|
+
DocumentCommentResolvedEventSchema,
|
|
115
|
+
GenerationCancelledEventSchema,
|
|
116
|
+
GenerationHandoffEventSchema,
|
|
117
|
+
MessageCompleteEventSchema,
|
|
118
|
+
OpenUrlEventSchema,
|
|
119
|
+
RelationshipStateUpdatedEventSchema,
|
|
120
|
+
ToolUseStartEventSchema,
|
|
121
|
+
]);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Inferred TypeScript union for every event currently covered by
|
|
125
|
+
* `AssistantEventSchema`. Consumers should reference this single type
|
|
126
|
+
* rather than re-listing the individual member types — as each new
|
|
127
|
+
* event migrates into the schema, it appears here automatically.
|
|
128
|
+
*/
|
|
129
|
+
export type AssistantEvent = z.infer<typeof AssistantEventSchema>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract for the full payload returned by
|
|
3
|
+
* `GET /v1/conversations/llm-context`. Hydrates the Overview / Memory
|
|
4
|
+
* / Prompt / Response tabs from a single fetch.
|
|
5
|
+
*
|
|
6
|
+
* Canonical wire-contract source. Assistant code imports the types
|
|
7
|
+
* directly from this file via relative paths; external consumers
|
|
8
|
+
* (web client, gateway, evals) import via `@vellumai/assistant-api`.
|
|
9
|
+
*
|
|
10
|
+
* The route is reachable on web through the gateway's runtime-proxy
|
|
11
|
+
* wildcard at
|
|
12
|
+
* `/v1/assistants/{assistantId}/conversations/llm-context/`. The
|
|
13
|
+
* response is built in `assistant/src/runtime/routes/conversation-query-routes.ts`.
|
|
14
|
+
*
|
|
15
|
+
* `conversationTotalEstimatedCostUsd` is the running total of priced
|
|
16
|
+
* LLM costs across every call in the conversation, sourced from the
|
|
17
|
+
* daemon's `conversations.total_estimated_cost` column. The field is
|
|
18
|
+
* optional because older daemons predate it — treat undefined / null
|
|
19
|
+
* as "unavailable".
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { z } from "zod";
|
|
23
|
+
|
|
24
|
+
import { LLMRequestLogEntrySchema } from "./llm-request-log-entry.js";
|
|
25
|
+
import { MemoryRecallLogSchema } from "./memory-recall-log.js";
|
|
26
|
+
import { MemoryV2ActivationLogSchema } from "./memory-v2-activation-log.js";
|
|
27
|
+
|
|
28
|
+
export const LlmContextResponseSchema = z.object({
|
|
29
|
+
messageId: z.string().nullish(),
|
|
30
|
+
conversationKey: z.string().nullish(),
|
|
31
|
+
conversationId: z.string().nullish(),
|
|
32
|
+
conversationKind: z.string(),
|
|
33
|
+
conversationTotalEstimatedCostUsd: z.number().nullish(),
|
|
34
|
+
logs: z.array(LLMRequestLogEntrySchema),
|
|
35
|
+
memoryRecall: MemoryRecallLogSchema.nullable(),
|
|
36
|
+
memoryV2Activation: MemoryV2ActivationLogSchema.nullable(),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export type LlmContextResponse = z.infer<typeof LlmContextResponseSchema>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract for a single LLM request log row, as returned by
|
|
3
|
+
* `GET /v1/conversations/llm-context`. Hydrates each call rail entry
|
|
4
|
+
* + tab in the inspector.
|
|
5
|
+
*
|
|
6
|
+
* Canonical wire-contract source. Assistant code imports the types
|
|
7
|
+
* directly from this file via relative paths; external consumers (web
|
|
8
|
+
* client, gateway, evals) import via `@vellumai/assistant-api`.
|
|
9
|
+
*
|
|
10
|
+
* The route is implemented in
|
|
11
|
+
* `assistant/src/runtime/routes/conversation-query-routes.ts` and the
|
|
12
|
+
* row shape is constructed by `normalizeLlmContextLog` there. Keep the
|
|
13
|
+
* schemas here aligned with that constructor — the schema IS the
|
|
14
|
+
* contract; types are `z.infer`-derived.
|
|
15
|
+
*
|
|
16
|
+
* `requestPayload` / `responsePayload` are always `null` on the list
|
|
17
|
+
* endpoint; raw JSON is fetched lazily through
|
|
18
|
+
* `/v1/llm-request-logs/{logId}/payload`.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { z } from "zod";
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Provider-normalized summary attached to each request log. `null` /
|
|
25
|
+
* missing fields are common — formatters fall back to a shared
|
|
26
|
+
* "Unavailable" placeholder.
|
|
27
|
+
*
|
|
28
|
+
* `durationMs` isn't in the macOS reference shape today but the daemon
|
|
29
|
+
* already populates it for some providers — surfaced when present so
|
|
30
|
+
* web debugging gets the extra signal.
|
|
31
|
+
*/
|
|
32
|
+
export const LLMCallSummarySchema = z.object({
|
|
33
|
+
provider: z.string().nullish(),
|
|
34
|
+
model: z.string().nullish(),
|
|
35
|
+
status: z.string().nullish(),
|
|
36
|
+
inputTokens: z.number().nullish(),
|
|
37
|
+
outputTokens: z.number().nullish(),
|
|
38
|
+
cacheCreationInputTokens: z.number().nullish(),
|
|
39
|
+
cacheReadInputTokens: z.number().nullish(),
|
|
40
|
+
stopReason: z.string().nullish(),
|
|
41
|
+
requestMessageCount: z.number().nullish(),
|
|
42
|
+
requestToolCount: z.number().nullish(),
|
|
43
|
+
responseMessageCount: z.number().nullish(),
|
|
44
|
+
responseToolCallCount: z.number().nullish(),
|
|
45
|
+
responsePreview: z.string().nullish(),
|
|
46
|
+
toolCallNames: z.array(z.string()).nullish(),
|
|
47
|
+
estimatedCostUsd: z.number().nullish(),
|
|
48
|
+
durationMs: z.number().nullish(),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export type LLMCallSummary = z.infer<typeof LLMCallSummarySchema>;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A single normalized request- or response-side section. The daemon
|
|
55
|
+
* splits a provider payload into kind-tagged blocks before returning;
|
|
56
|
+
* each block becomes one card in the Prompt / Response tabs.
|
|
57
|
+
*/
|
|
58
|
+
export const LLMContextSectionSchema = z.object({
|
|
59
|
+
kind: z.string(),
|
|
60
|
+
label: z.string().nullish(),
|
|
61
|
+
role: z.string().nullish(),
|
|
62
|
+
text: z.string().nullish(),
|
|
63
|
+
toolName: z.string().nullish(),
|
|
64
|
+
data: z.unknown().optional(),
|
|
65
|
+
language: z.string().nullish(),
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
export type LLMContextSection = z.infer<typeof LLMContextSectionSchema>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* One LLM request log row.
|
|
72
|
+
*
|
|
73
|
+
* `callSite` is the logical call site that produced this row —
|
|
74
|
+
* `mainAgent`, `compactionAgent`, `syntheticAgentErrorMessage`, etc.
|
|
75
|
+
* `null` on pre-migration-264 rows or callers that hadn't been wired
|
|
76
|
+
* through yet. The inspector branches on this value alone to
|
|
77
|
+
* distinguish real LLM calls from synthetic error-message rows. See
|
|
78
|
+
* `../constants/call-sites.ts` for the canonical identifiers.
|
|
79
|
+
*/
|
|
80
|
+
export const LLMRequestLogEntrySchema = z.object({
|
|
81
|
+
id: z.string(),
|
|
82
|
+
createdAt: z.number(),
|
|
83
|
+
requestPayload: z.null(),
|
|
84
|
+
responsePayload: z.null(),
|
|
85
|
+
provider: z.string().nullish(),
|
|
86
|
+
summary: LLMCallSummarySchema.nullish(),
|
|
87
|
+
requestSections: z.array(LLMContextSectionSchema).nullish(),
|
|
88
|
+
responseSections: z.array(LLMContextSectionSchema).nullish(),
|
|
89
|
+
agentLoopExitReason: z.string().nullish(),
|
|
90
|
+
callSite: z.string().nullish(),
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
export type LLMRequestLogEntry = z.infer<typeof LLMRequestLogEntrySchema>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract for the memory-recall log surfaced in the inspector's
|
|
3
|
+
* Memory tab. Mirrors `MemoryRecallLog` from
|
|
4
|
+
* `assistant/src/memory/memory-recall-log-store.ts`.
|
|
5
|
+
*
|
|
6
|
+
* Canonical wire-contract source. Assistant code imports the types
|
|
7
|
+
* directly from this file via relative paths; external consumers
|
|
8
|
+
* (web client, gateway, evals) import via `@vellumai/assistant-api`.
|
|
9
|
+
*
|
|
10
|
+
* Returned as part of `LlmContextResponse` — see
|
|
11
|
+
* `./llm-context-response.ts`.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A single recalled memory candidate, normalized by the daemon from
|
|
18
|
+
* the SSE-event format into inspector format.
|
|
19
|
+
*/
|
|
20
|
+
export const MemoryCandidateSchema = z.object({
|
|
21
|
+
nodeId: z.string(),
|
|
22
|
+
score: z.number(),
|
|
23
|
+
semanticSimilarity: z.number(),
|
|
24
|
+
recencyBoost: z.number(),
|
|
25
|
+
type: z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export type MemoryCandidate = z.infer<typeof MemoryCandidateSchema>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Degradation details when memory recall ran in a degraded mode.
|
|
32
|
+
*/
|
|
33
|
+
export const MemoryDegradationSchema = z.object({
|
|
34
|
+
reason: z.string(),
|
|
35
|
+
semanticUnavailable: z.boolean(),
|
|
36
|
+
fallbackSources: z.array(z.string()),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export type MemoryDegradation = z.infer<typeof MemoryDegradationSchema>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Memory recall log shape.
|
|
43
|
+
*/
|
|
44
|
+
export const MemoryRecallLogSchema = z.object({
|
|
45
|
+
enabled: z.boolean(),
|
|
46
|
+
degraded: z.boolean(),
|
|
47
|
+
provider: z.string().nullable(),
|
|
48
|
+
model: z.string().nullable(),
|
|
49
|
+
degradation: MemoryDegradationSchema.nullable(),
|
|
50
|
+
semanticHits: z.number().nullish(),
|
|
51
|
+
mergedCount: z.number().nullish(),
|
|
52
|
+
selectedCount: z.number().nullish(),
|
|
53
|
+
tier1Count: z.number().nullish(),
|
|
54
|
+
tier2Count: z.number().nullish(),
|
|
55
|
+
hybridSearchLatencyMs: z.number().nullish(),
|
|
56
|
+
sparseVectorUsed: z.boolean().nullish(),
|
|
57
|
+
injectedTokens: z.number().nullish(),
|
|
58
|
+
latencyMs: z.number().nullish(),
|
|
59
|
+
topCandidates: z.array(MemoryCandidateSchema),
|
|
60
|
+
injectedText: z.string().nullable(),
|
|
61
|
+
reason: z.string().nullable(),
|
|
62
|
+
queryContext: z.string().nullable(),
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
export type MemoryRecallLog = z.infer<typeof MemoryRecallLogSchema>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract for the memory v2 activation log surfaced in the
|
|
3
|
+
* inspector's Memory tab. Mirrors the return value of
|
|
4
|
+
* `getMemoryV2ActivationLogByMessageIds` in
|
|
5
|
+
* `assistant/src/memory/memory-v2-activation-log-store.ts`.
|
|
6
|
+
*
|
|
7
|
+
* Canonical wire-contract source. Assistant code imports the types
|
|
8
|
+
* directly from this file via relative paths; external consumers
|
|
9
|
+
* (web client, gateway, evals) import via `@vellumai/assistant-api`.
|
|
10
|
+
*
|
|
11
|
+
* Returned as part of `LlmContextResponse` — see
|
|
12
|
+
* `./llm-context-response.ts`.
|
|
13
|
+
*
|
|
14
|
+
* Note: daemon emits the `config` block with snake_case keys; the
|
|
15
|
+
* schema below preserves that on the wire.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { z } from "zod";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* One concept row in the V2 activation log. Mirrors
|
|
22
|
+
* `MemoryV2ConceptRowRecord` from
|
|
23
|
+
* `assistant/src/memory/memory-v2-activation-log-store.ts`.
|
|
24
|
+
*
|
|
25
|
+
* `source` and `status` are open-ended strings on the wire — the
|
|
26
|
+
* daemon emits known values like `prior_state`, `ann_top50`, `both`
|
|
27
|
+
* for `source` and `in_context`, `injected`, `not_injected`,
|
|
28
|
+
* `page_missing` for `status`, but the schema stays permissive so a
|
|
29
|
+
* new daemon value doesn't break parsing on the FE.
|
|
30
|
+
*/
|
|
31
|
+
export const MemoryV2ConceptRowSchema = z.object({
|
|
32
|
+
slug: z.string(),
|
|
33
|
+
finalActivation: z.number(),
|
|
34
|
+
ownActivation: z.number(),
|
|
35
|
+
priorActivation: z.number(),
|
|
36
|
+
simUser: z.number(),
|
|
37
|
+
simAssistant: z.number(),
|
|
38
|
+
simNow: z.number(),
|
|
39
|
+
simUserRerankBoost: z.number().optional(),
|
|
40
|
+
simAssistantRerankBoost: z.number().optional(),
|
|
41
|
+
inRerankPool: z.boolean().optional(),
|
|
42
|
+
spreadContribution: z.number(),
|
|
43
|
+
source: z.string(),
|
|
44
|
+
status: z.string(),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
export type MemoryV2ConceptRow = z.infer<typeof MemoryV2ConceptRowSchema>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Config snapshot used when the V2 activation ran. Mirrors
|
|
51
|
+
* `MemoryV2ConfigSnapshot` (daemon uses snake_case keys).
|
|
52
|
+
*/
|
|
53
|
+
export const MemoryV2ConfigSnapshotSchema = z.object({
|
|
54
|
+
d: z.number(),
|
|
55
|
+
c_user: z.number(),
|
|
56
|
+
c_assistant: z.number(),
|
|
57
|
+
c_now: z.number(),
|
|
58
|
+
k: z.number(),
|
|
59
|
+
hops: z.number(),
|
|
60
|
+
top_k: z.number(),
|
|
61
|
+
epsilon: z.number(),
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
export type MemoryV2ConfigSnapshot = z.infer<
|
|
65
|
+
typeof MemoryV2ConfigSnapshotSchema
|
|
66
|
+
>;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Memory v2 activation log shape.
|
|
70
|
+
*/
|
|
71
|
+
export const MemoryV2ActivationLogSchema = z.object({
|
|
72
|
+
turn: z.number(),
|
|
73
|
+
mode: z.string(),
|
|
74
|
+
concepts: z.array(MemoryV2ConceptRowSchema),
|
|
75
|
+
config: MemoryV2ConfigSnapshotSchema,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
export type MemoryV2ActivationLog = z.infer<typeof MemoryV2ActivationLogSchema>;
|