@vellumai/assistant 0.8.4 → 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 +3 -3
- package/bunfig.toml +6 -1
- package/docs/browser-use-architecture-phase2.md +1 -1
- package/docs/credential-execution-service.md +6 -6
- package/docs/plugins.md +4 -3
- package/knip.json +2 -1
- 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 +2748 -216
- 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__/anthropic-provider.test.ts +34 -37
- 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-event-hub-self-exclusion.test.ts +293 -0
- package/src/__tests__/assistant-feature-flags-integration.test.ts +12 -28
- package/src/__tests__/audit-log-rotation.test.ts +72 -18
- package/src/__tests__/auto-analysis-end-to-end.test.ts +6 -6
- package/src/__tests__/background-workers-disk-pressure.test.ts +8 -11
- package/src/__tests__/browser-skill-endstate.test.ts +3 -3
- package/src/__tests__/btw-routes.test.ts +5 -5
- package/src/__tests__/call-controller.test.ts +3 -3
- package/src/__tests__/cancel-resolves-conversation-key.test.ts +1 -1
- package/src/__tests__/channel-approval-routes.test.ts +3 -2
- package/src/__tests__/channel-guardian.test.ts +6 -5
- 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 +18 -27
- package/src/__tests__/compaction-events.test.ts +2 -0
- package/src/__tests__/compaction-trail-store.test.ts +264 -0
- package/src/__tests__/compactor-call-site-logging.test.ts +215 -0
- package/src/__tests__/compactor-preserved-tail-count.test.ts +1 -0
- package/src/__tests__/computer-use-skill-manifest-regression.test.ts +12 -16
- package/src/__tests__/computer-use-tools.test.ts +14 -18
- 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__/confirmation-request-guardian-bridge.test.ts +0 -1
- 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 +2 -1
- package/src/__tests__/conversation-agent-loop-handlers-max-tokens.test.ts +55 -0
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +2 -1
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +231 -2
- package/src/__tests__/conversation-agent-loop.test.ts +581 -54
- package/src/__tests__/conversation-analysis-routes.test.ts +1 -0
- package/src/__tests__/conversation-app-control-instantiation.test.ts +31 -24
- 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-clear-safety.test.ts +25 -25
- package/src/__tests__/conversation-confirmation-signals.test.ts +1 -0
- package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +1 -1
- package/src/__tests__/conversation-disk-view-integration.test.ts +2 -2
- package/src/__tests__/conversation-error.test.ts +61 -0
- package/src/__tests__/conversation-fork-crud.test.ts +239 -15
- 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 +53 -11
- 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-cleaned-at.test.ts → conversation-load-history-stripped.test.ts} +14 -13
- 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 +6 -0
- package/src/__tests__/conversation-queue.test.ts +333 -291
- package/src/__tests__/conversation-routes-disk-view.test.ts +112 -18
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +33 -8
- package/src/__tests__/conversation-routes-slash-commands.test.ts +68 -2
- package/src/__tests__/conversation-runtime-assembly.test.ts +78 -0
- package/src/__tests__/conversation-skill-tools.test.ts +40 -147
- 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-store.test.ts +1 -1
- 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 +218 -35
- 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 +2 -0
- package/src/__tests__/conversation-workspace-injection.test.ts +6 -1
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +6 -1
- 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 +19 -19
- package/src/__tests__/credential-execution-tools.test.ts +6 -6
- package/src/__tests__/credential-health-service.test.ts +252 -3
- package/src/__tests__/credential-security-invariants.test.ts +6 -5
- package/src/__tests__/credential-vault-unit.test.ts +21 -21
- 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-page-surface.test.ts +2 -2
- package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +5 -4
- package/src/__tests__/email-html-renderer.test.ts +12 -0
- 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 +236 -0
- package/src/__tests__/gemini-provider.test.ts +104 -0
- package/src/__tests__/guardian-action-sweep.test.ts +3 -2
- package/src/__tests__/guardian-dispatch.test.ts +0 -1
- package/src/__tests__/guardian-outbound-http.test.ts +10 -7
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +48 -3
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +2 -1
- package/src/__tests__/heartbeat-disk-pressure.test.ts +5 -0
- package/src/__tests__/heartbeat-service.test.ts +5 -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 +6 -5
- 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__/init-feature-flag-overrides.test.ts +5 -6
- 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__/list-messages-tool-merge.test.ts +70 -11
- package/src/__tests__/llm-context-normalization.test.ts +42 -0
- package/src/__tests__/llm-request-log-call-site.test.ts +136 -0
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +26 -0
- package/src/__tests__/llm-resolver.test.ts +408 -9
- package/src/__tests__/llm-schema.test.ts +1 -1
- package/src/__tests__/llm-usage-store.test.ts +66 -0
- package/src/__tests__/logger.test.ts +89 -0
- package/src/__tests__/manual-token-reconciliation.test.ts +76 -1
- package/src/__tests__/mcp-abort-signal.test.ts +16 -2
- package/src/__tests__/mcp-client-auth.test.ts +14 -0
- package/src/__tests__/media-generate-image.test.ts +31 -0
- package/src/__tests__/memory-v2-static-injector.test.ts +7 -7
- 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 +4 -6
- package/src/__tests__/native-web-search.test.ts +30 -2
- package/src/__tests__/notification-deep-link.test.ts +62 -0
- package/src/__tests__/notification-guardian-path.test.ts +0 -1
- 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 +4 -3
- package/src/__tests__/openai-provider.test.ts +54 -9
- package/src/__tests__/openai-responses-provider.test.ts +176 -14
- package/src/__tests__/openrouter-provider-only.test.ts +27 -5
- package/src/__tests__/outbound-slack-persistence.test.ts +46 -1
- package/src/__tests__/pending-interactions-resolved-event.test.ts +0 -1
- package/src/__tests__/persistence-pipeline.test.ts +139 -1
- package/src/__tests__/persistence-secret-redaction.test.ts +83 -12
- package/src/__tests__/platform-bash-auto-approve.test.ts +2 -2
- package/src/__tests__/platform.test.ts +2 -2
- package/src/__tests__/plugin-api-tool-definition.test.ts +92 -0
- package/src/__tests__/plugin-bootstrap.test.ts +11 -13
- package/src/__tests__/plugin-tool-contribution.test.ts +50 -40
- package/src/__tests__/plugin-types.test.ts +3 -2
- package/src/__tests__/prechat-onboarding-contract.test.ts +131 -98
- package/src/__tests__/pricing.test.ts +12 -0
- 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__/prune-jobs-changes-parser.test.ts +61 -0
- 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 +84 -84
- package/src/__tests__/relay-server.test.ts +10 -10
- package/src/__tests__/require-fresh-approval.test.ts +2 -2
- package/src/__tests__/runtime-attachment-metadata.test.ts +3 -2
- package/src/__tests__/runtime-events-sse-bilingual.test.ts +154 -0
- 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__/shell-tool-proxy-mode.test.ts +1 -1
- package/src/__tests__/skill-feature-flags-integration.test.ts +8 -10
- package/src/__tests__/skill-feature-flags.test.ts +16 -18
- package/src/__tests__/skill-load-feature-flag.test.ts +5 -5
- package/src/__tests__/skill-projection-feature-flag.test.ts +48 -37
- package/src/__tests__/skill-projection.benchmark.test.ts +7 -13
- package/src/__tests__/skill-tool-factory.test.ts +97 -96
- 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 +6 -5
- 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 +2 -0
- package/src/__tests__/sync-message-contract.test.ts +59 -0
- package/src/__tests__/system-prompt.test.ts +183 -131
- package/src/__tests__/terminal-tools.test.ts +1 -1
- package/src/__tests__/test-preload-verifier.ts +68 -0
- package/src/__tests__/test-preload.ts +32 -39
- package/src/__tests__/tool-approval-handler.test.ts +1 -5
- package/src/__tests__/tool-execute-pipeline.test.ts +2 -2
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +2 -5
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +35 -12
- package/src/__tests__/tool-executor.test.ts +64 -72
- package/src/__tests__/tool-grant-request-escalation.test.ts +1 -6
- package/src/__tests__/tool-preview-lifecycle.test.ts +1 -0
- package/src/__tests__/tool-result-metadata-plumbing.test.ts +1 -0
- package/src/__tests__/trusted-contact-approval-notifier.test.ts +0 -1
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +1 -6
- package/src/__tests__/trusted-contact-multichannel.test.ts +0 -1
- package/src/__tests__/twilio-routes.test.ts +3 -2
- package/src/__tests__/ui-file-upload-surface.test.ts +2 -2
- package/src/__tests__/usage-routes.test.ts +3 -0
- package/src/__tests__/validate-input.test.ts +381 -0
- package/src/__tests__/verification-control-plane-policy.test.ts +3 -2
- 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-git-service.test.ts +6 -5
- package/src/__tests__/workspace-migration-089-move-memory-tree-out-of-v3.test.ts +86 -0
- 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/__tests__/prepare-agent-env.test.ts +146 -0
- package/src/acp/prepare-agent-env.ts +78 -0
- package/src/acp/session-manager.ts +6 -7
- package/src/agent/loop.ts +88 -0
- package/src/api/README.md +127 -0
- 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/api/events/relationship-state-updated.ts +25 -0
- package/src/api/events/tool-use-start.ts +32 -0
- package/src/api/index.ts +129 -0
- package/src/api/package.json +10 -0
- 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 +868 -0
- 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 +24 -0
- 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__/browser.test.ts +23 -5
- package/src/cli/commands/__tests__/conversations-slack.test.ts +16 -0
- package/src/cli/commands/__tests__/domain-register.test.ts +110 -0
- package/src/cli/commands/__tests__/domain-status.test.ts +33 -33
- package/src/cli/commands/__tests__/inference-send.test.ts +108 -5
- package/src/cli/commands/__tests__/memory-v2-compare-render.test.ts +98 -0
- package/src/cli/commands/__tests__/memory-v2.test.ts +1 -0
- package/src/cli/commands/__tests__/memory-v3-render.test.ts +340 -0
- package/src/cli/commands/__tests__/notifications.test.ts +184 -40
- package/src/cli/commands/browser.ts +247 -0
- package/src/cli/commands/channels/__tests__/channels.test.ts +143 -0
- package/src/cli/commands/channels/index.ts +229 -0
- package/src/cli/commands/domain.ts +91 -41
- package/src/cli/commands/inference.ts +93 -40
- package/src/cli/commands/memory-v2-compare-render.ts +115 -0
- package/src/cli/commands/memory-v2.ts +176 -1
- package/src/cli/commands/memory-v3-render.ts +491 -0
- package/src/cli/commands/memory-v3.ts +567 -0
- package/src/cli/commands/notifications.ts +365 -55
- package/src/cli/lib/open-browser.ts +7 -2
- package/src/cli/program.ts +4 -0
- package/src/config/assistant-feature-flags.ts +39 -46
- package/src/config/bundled-skills/document-editor/SKILL.md +16 -3
- package/src/config/bundled-skills/document-editor/TOOLS.json +18 -0
- package/src/config/bundled-skills/document-editor/tools/document-open.ts +12 -0
- package/src/config/bundled-skills/image-studio/SKILL.md +4 -0
- package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +2 -2
- package/src/config/bundled-skills/media-processing/tools/ingest-media.ts +13 -8
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +10 -3
- package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +16 -14
- package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +7 -2
- package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +7 -2
- 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/bundled-tool-registry.ts +2 -0
- package/src/config/call-site-defaults.ts +8 -7
- package/src/config/feature-flag-cache.ts +86 -0
- package/src/config/feature-flag-registry.json +33 -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 +228 -1
- package/src/config/schemas/call-site-catalog.ts +21 -7
- package/src/config/schemas/heartbeat.ts +1 -1
- package/src/config/schemas/llm.ts +102 -2
- package/src/config/schemas/memory-v2.ts +272 -0
- package/src/config/schemas/memory.ts +2 -1
- package/src/config/schemas/services.ts +6 -2
- package/src/config/seed-inference-profiles.ts +36 -16
- package/src/context/compactor.ts +52 -0
- package/src/context/token-estimator.ts +10 -5
- package/src/conversations/__tests__/message-consolidation.test.ts +350 -0
- package/src/conversations/message-consolidation.ts +404 -0
- 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 +2 -3
- 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 +390 -80
- package/src/daemon/conversation-agent-loop.ts +244 -90
- package/src/daemon/conversation-error.ts +64 -6
- package/src/daemon/conversation-lifecycle.ts +27 -22
- package/src/daemon/conversation-messaging.ts +84 -43
- package/src/daemon/conversation-process.ts +74 -37
- package/src/daemon/conversation-runtime-assembly.ts +38 -17
- package/src/daemon/conversation-skill-tools.ts +14 -30
- package/src/daemon/conversation-surfaces.ts +69 -34
- package/src/daemon/conversation-tool-setup.ts +77 -32
- package/src/daemon/conversation-usage.ts +2 -0
- package/src/daemon/conversation.ts +40 -75
- package/src/daemon/daemon-control.ts +1 -1
- package/src/daemon/daemon-skill-host.ts +9 -2
- package/src/daemon/disk-pressure-guard.ts +39 -29
- package/src/daemon/first-greeting.ts +31 -13
- package/src/daemon/handlers/config-model.test.ts +1 -0
- package/src/daemon/handlers/conversations.ts +11 -3
- package/src/daemon/handlers/shared.ts +6 -1
- package/src/daemon/host-browser-proxy.ts +5 -5
- package/src/daemon/host-cu-proxy.ts +4 -4
- package/src/daemon/host-file-proxy.ts +4 -4
- package/src/daemon/host-proxy-base.ts +4 -4
- package/src/daemon/host-transfer-proxy.ts +10 -10
- package/src/daemon/lifecycle.ts +29 -26
- package/src/daemon/mcp-reload-service.ts +1 -1
- package/src/daemon/meet-manifest-loader.ts +11 -24
- package/src/daemon/message-types/conversations.ts +22 -27
- package/src/daemon/message-types/document-comments.ts +8 -44
- package/src/daemon/message-types/home.ts +2 -14
- package/src/daemon/message-types/integrations.ts +2 -7
- package/src/daemon/message-types/messages.ts +25 -48
- package/src/daemon/message-types/subagents.ts +6 -0
- package/src/daemon/message-types/sync.ts +14 -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/shutdown-handlers.ts +24 -5
- package/src/daemon/switch-inference-profile-tool.ts +62 -0
- package/src/daemon/tool-setup-types.ts +7 -0
- 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 +30 -1
- 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/home-greeting.ts +0 -9
- package/src/home/suggested-prompts.ts +27 -154
- package/src/ipc/__tests__/cli-ipc.test.ts +1 -0
- package/src/ipc/gateway-client.test.ts +4 -1
- package/src/ipc/gateway-flag-listener.ts +123 -0
- 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 +35 -40
- package/src/memory/__tests__/db-async-query.test.ts +165 -0
- package/src/memory/__tests__/db-maintenance.test.ts +115 -0
- package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +242 -0
- package/src/memory/__tests__/jobs-store-job-classes.test.ts +28 -1
- 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 +8 -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/auto-analysis-enqueue.ts +5 -1
- package/src/memory/conversation-attention-store.ts +17 -3
- package/src/memory/conversation-crud.ts +423 -182
- package/src/memory/conversation-starters-cadence.ts +3 -1
- package/src/memory/conversation-title-service.ts +19 -3
- package/src/memory/db-async-query.ts +214 -0
- package/src/memory/db-connection.ts +29 -19
- package/src/memory/db-init.ts +14 -0
- package/src/memory/db-maintenance.ts +30 -21
- 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/bootstrap.ts +8 -1
- package/src/memory/graph/capability-seed.ts +7 -3
- package/src/memory/graph/conversation-graph-memory.ts +100 -17
- package/src/memory/graph/extraction.ts +1 -5
- package/src/memory/graph/graph-search.ts +7 -1
- package/src/memory/graph/retriever.test.ts +3 -3
- package/src/memory/indexer.ts +28 -18
- package/src/memory/job-handlers/cleanup.ts +76 -18
- package/src/memory/job-handlers/conversation-starters.ts +1 -4
- 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/embed-pkb-file.ts +6 -1
- package/src/memory/jobs-store.ts +14 -0
- package/src/memory/jobs-worker.ts +66 -22
- package/src/memory/llm-request-log-source-clickhouse.ts +122 -2
- package/src/memory/llm-request-log-source-local.ts +31 -0
- package/src/memory/llm-request-log-source.ts +40 -2
- package/src/memory/llm-request-log-store.ts +228 -1
- package/src/memory/llm-usage-store.ts +24 -0
- package/src/memory/memory-retrospective-enqueue.ts +8 -1
- package/src/memory/memory-retrospective-job.ts +5 -0
- package/src/memory/memory-v2-activation-log-store.ts +110 -7
- package/src/memory/migrations/260-rename-cleaned-at.ts +44 -0
- package/src/memory/migrations/261-llm-usage-add-raw-usage.ts +36 -0
- package/src/memory/migrations/262-memory-v3-coactivation.ts +57 -0
- package/src/memory/migrations/263-memory-v3-auto-edges.ts +50 -0
- package/src/memory/migrations/264-llm-request-log-call-site.ts +29 -0
- 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 +19 -0
- package/src/memory/migrations/registry.ts +33 -0
- package/src/memory/schema/conversations.ts +10 -2
- package/src/memory/schema/inference.ts +0 -1
- package/src/memory/schema/infrastructure.ts +21 -0
- package/src/memory/tool-usage-store.ts +36 -8
- package/src/memory/v2/__tests__/backfill-jobs.test.ts +5 -2
- package/src/memory/v2/__tests__/consolidation-job.test.ts +1 -0
- package/src/memory/v2/__tests__/harness-compare.test.ts +186 -0
- package/src/memory/v2/__tests__/harness-metrics.test.ts +83 -0
- package/src/memory/v2/__tests__/harness-oracle.test.ts +257 -0
- package/src/memory/v2/__tests__/harness-replay-input.test.ts +230 -0
- package/src/memory/v2/__tests__/harness-runner.test.ts +135 -0
- package/src/memory/v2/__tests__/injection.test.ts +127 -98
- package/src/memory/v2/__tests__/qdrant.test.ts +36 -0
- package/src/memory/v2/__tests__/router.test.ts +171 -3
- package/src/memory/v2/__tests__/sweep-job.test.ts +6 -3
- package/src/memory/v2/harness/compare.ts +57 -0
- package/src/memory/v2/harness/metrics.ts +128 -0
- package/src/memory/v2/harness/oracle.ts +145 -0
- package/src/memory/v2/harness/replay-input.ts +240 -0
- package/src/memory/v2/harness/retriever.ts +74 -0
- package/src/memory/v2/harness/router-retriever.ts +43 -0
- package/src/memory/v2/harness/runner.ts +112 -0
- package/src/memory/v2/harness/trace.ts +64 -0
- package/src/memory/v2/injection.ts +21 -15
- package/src/memory/v2/prompts/router.ts +26 -1
- package/src/memory/v2/qdrant.ts +14 -2
- package/src/memory/v2/router.ts +171 -18
- package/src/memory/v3/__tests__/coactivation-store.test.ts +422 -0
- package/src/memory/v3/__tests__/consolidation-job.test.ts +466 -0
- package/src/memory/v3/__tests__/coretrieval-seed.test.ts +270 -0
- package/src/memory/v3/__tests__/edge-learning-job.test.ts +324 -0
- package/src/memory/v3/__tests__/edges.test.ts +706 -0
- package/src/memory/v3/__tests__/filter.test.ts +560 -0
- package/src/memory/v3/__tests__/gate.test.ts +637 -0
- package/src/memory/v3/__tests__/index-composition.test.ts +291 -0
- package/src/memory/v3/__tests__/loop.test.ts +775 -0
- package/src/memory/v3/__tests__/retriever.test.ts +226 -0
- package/src/memory/v3/__tests__/scouts.test.ts +489 -0
- package/src/memory/v3/__tests__/shadow-diff.test.ts +225 -0
- package/src/memory/v3/__tests__/shadow-middleware.test.ts +398 -0
- package/src/memory/v3/__tests__/system-prompts.test.ts +154 -0
- package/src/memory/v3/__tests__/traversal.test.ts +508 -0
- package/src/memory/v3/__tests__/tree-index.test.ts +280 -0
- package/src/memory/v3/__tests__/tree-store.test.ts +529 -0
- package/src/memory/v3/__tests__/tree-walk.test.ts +784 -0
- package/src/memory/v3/__tests__/validate.test.ts +277 -0
- package/src/memory/v3/auto-edges.ts +223 -0
- package/src/memory/v3/coactivation-store.ts +124 -0
- package/src/memory/v3/consolidation-job.ts +323 -0
- package/src/memory/v3/coretrieval-seed.ts +240 -0
- package/src/memory/v3/edge-learning-job.ts +160 -0
- package/src/memory/v3/edges.ts +286 -0
- package/src/memory/v3/filter.ts +286 -0
- package/src/memory/v3/gate.ts +349 -0
- package/src/memory/v3/index-composition.ts +126 -0
- package/src/memory/v3/llm-capture.ts +46 -0
- package/src/memory/v3/loop.ts +430 -0
- package/src/memory/v3/maintenance.ts +144 -0
- package/src/memory/v3/prompt-context.ts +33 -0
- package/src/memory/v3/prompts/consolidation.ts +458 -0
- package/src/memory/v3/prompts/system-prompts.ts +196 -0
- package/src/memory/v3/retriever.ts +33 -0
- package/src/memory/v3/scouts.ts +431 -0
- package/src/memory/v3/shadow-diff.ts +287 -0
- package/src/memory/v3/shadow-middleware.ts +347 -0
- package/src/memory/v3/traversal.ts +211 -0
- package/src/memory/v3/tree-index.ts +237 -0
- package/src/memory/v3/tree-store.ts +394 -0
- package/src/memory/v3/tree-walk.ts +356 -0
- package/src/memory/v3/types.ts +65 -0
- package/src/memory/v3/validate.ts +323 -0
- 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/macos.ts +18 -1
- package/src/notifications/adapters/platform.ts +1 -1
- 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/decision-engine.ts +1 -4
- 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 +40 -50
- 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/permissions/prompter.ts +3 -3
- package/src/permissions/question-prompter.ts +5 -2
- package/src/permissions/secret-prompter.ts +2 -2
- 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/plugin-api/index.ts +4 -0
- package/src/plugin-api/types.ts +7 -33
- package/src/plugins/defaults/index.ts +6 -0
- package/src/plugins/defaults/injectors.ts +20 -19
- package/src/plugins/defaults/persistence.ts +25 -6
- package/src/plugins/external-plugin-loader.ts +5 -68
- package/src/plugins/types.ts +68 -29
- package/src/proactive-artifact/aux-message-injector.ts +17 -4
- package/src/proactive-artifact/job.test.ts +1 -0
- package/src/prompts/__tests__/system-prompt.test.ts +4 -4
- package/src/prompts/__tests__/task-progress-hint-section.test.ts +3 -9
- package/src/prompts/persona-resolver.ts +36 -21
- package/src/prompts/sections.ts +39 -7
- package/src/prompts/system-prompt.ts +84 -221
- package/src/prompts/template-detection.ts +10 -4
- package/src/prompts/templates/BOOTSTRAP.md +9 -13
- package/src/prompts/templates/IDENTITY.md +0 -2
- package/src/prompts/templates/system-sections.ts +230 -8
- package/src/providers/__tests__/connection-model-compat.test.ts +233 -0
- package/src/providers/__tests__/registry-native-web-search.test.ts +122 -0
- package/src/providers/__tests__/retry-callsite.test.ts +85 -5
- package/src/providers/anthropic/client.ts +32 -66
- package/src/providers/call-site-routing.ts +42 -6
- package/src/providers/connection-model-compat.ts +61 -0
- package/src/providers/connection-resolution.ts +47 -14
- package/src/providers/fireworks/client.ts +1 -0
- package/src/providers/gemini/client.ts +70 -6
- 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/adapter-factory.ts +3 -0
- 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/minimax/client.ts +106 -0
- package/src/providers/model-catalog.ts +78 -1
- package/src/providers/model-intents.ts +4 -4
- 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 +116 -15
- package/src/providers/openai/codex-models.ts +20 -0
- package/src/providers/openai/responses-provider.ts +87 -30
- package/src/providers/openrouter/client.ts +13 -8
- package/src/providers/provider-send-message.ts +20 -5
- package/src/providers/registry.ts +48 -8
- package/src/providers/retry.ts +50 -7
- package/src/providers/search-provider-catalog.ts +17 -9
- package/src/providers/thinking-config.ts +26 -1
- package/src/providers/types.ts +9 -0
- package/src/providers/usage-tracking.ts +2 -0
- package/src/runtime/AGENTS.md +2 -2
- 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/agent-wake.ts +1 -0
- package/src/runtime/assistant-event-hub.ts +76 -6
- package/src/runtime/auth/route-policy.ts +46 -0
- package/src/runtime/btw-sidechain.ts +0 -6
- 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/http-types.ts +0 -2
- package/src/runtime/migrations/vbundle-builder.ts +12 -4
- package/src/runtime/pending-interactions.ts +0 -1
- 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 +204 -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 +76 -9
- package/src/runtime/routes/__tests__/memory-v3-simulate-params.test.ts +35 -0
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +512 -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/acp-routes.test.ts +255 -6
- package/src/runtime/routes/acp-routes.ts +8 -1
- package/src/runtime/routes/app-management-routes.ts +111 -4
- package/src/runtime/routes/avatar-routes.ts +10 -10
- package/src/runtime/routes/background-wake-routes.ts +356 -0
- package/src/runtime/routes/browser-tabs-routes.ts +200 -0
- package/src/runtime/routes/btw-routes.ts +4 -10
- package/src/runtime/routes/conversation-analysis-routes.ts +6 -0
- package/src/runtime/routes/conversation-cli-routes.ts +1 -1
- package/src/runtime/routes/conversation-compaction-routes.ts +263 -0
- package/src/runtime/routes/conversation-list-routes.ts +159 -4
- package/src/runtime/routes/conversation-management-routes.ts +108 -26
- package/src/runtime/routes/conversation-query-routes.ts +200 -44
- package/src/runtime/routes/conversation-routes.ts +409 -521
- package/src/runtime/routes/conversation-starter-routes.ts +6 -3
- package/src/runtime/routes/conversations-import-routes.ts +19 -6
- package/src/runtime/routes/disk-pressure-routes.ts +1 -1
- package/src/runtime/routes/documents-routes.ts +10 -1
- package/src/runtime/routes/domain-routes.ts +60 -10
- package/src/runtime/routes/email-routes.ts +5 -2
- package/src/runtime/routes/events-routes.ts +54 -10
- package/src/runtime/routes/group-routes.ts +35 -8
- package/src/runtime/routes/home-feed-routes.ts +129 -0
- package/src/runtime/routes/host-browser-routes.ts +10 -2
- package/src/runtime/routes/host-cu-routes.ts +2 -2
- 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/acl-enforcement.ts +96 -3
- 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 +10 -0
- package/src/runtime/routes/inference-profile-session-handler.ts +22 -12
- package/src/runtime/routes/inference-profile-session-routes.ts +7 -1
- 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-call-sites-routes.ts +32 -5
- package/src/runtime/routes/llm-context-normalization.ts +7 -2
- package/src/runtime/routes/memory-item-routes.ts +8 -3
- package/src/runtime/routes/memory-v2-routes.ts +215 -5
- package/src/runtime/routes/memory-v3-routes.ts +474 -0
- package/src/runtime/routes/migration-routes.ts +32 -28
- package/src/runtime/routes/notification-routes.ts +63 -1
- package/src/runtime/routes/oauth-commands-routes.ts +6 -1
- package/src/runtime/routes/plugins-routes.ts +337 -0
- package/src/runtime/routes/rename-conversation-routes.ts +6 -2
- package/src/runtime/routes/secret-routes.ts +25 -5
- package/src/runtime/routes/settings-routes.ts +12 -11
- package/src/runtime/routes/slack-channel-routes.ts +5 -4
- 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/routes/workspace-routes.ts +25 -10
- 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 +106 -38
- package/src/runtime/sync/sync-publisher.test.ts +49 -0
- package/src/runtime/sync/sync-publisher.ts +2 -1
- package/src/runtime/tool-grant-request-helper.ts +1 -0
- package/src/runtime/verification-outbound-actions.ts +73 -1
- 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/telemetry/types.ts +12 -0
- package/src/telemetry/usage-telemetry-reporter.test.ts +48 -0
- package/src/telemetry/usage-telemetry-reporter.ts +1 -0
- package/src/tools/acp/spawn.test.ts +119 -0
- package/src/tools/acp/spawn.ts +15 -2
- package/src/tools/apps/definitions.ts +36 -28
- package/src/tools/ask-question/ask-question-tool.test.ts +3 -3
- package/src/tools/ask-question/ask-question-tool.ts +38 -45
- package/src/tools/browser/__tests__/browser-execution-acquire.test.ts +2 -8
- package/src/tools/browser/__tests__/pinned-tabs.test.ts +70 -0
- package/src/tools/browser/browser-execution.ts +16 -3
- package/src/tools/browser/cdp-client/__tests__/browser-tabs-factory.test.ts +402 -0
- package/src/tools/browser/cdp-client/__tests__/types.test.ts +3 -0
- package/src/tools/browser/cdp-client/cdp-inspect-client.ts +12 -0
- package/src/tools/browser/cdp-client/extension-cdp-client.ts +27 -1
- package/src/tools/browser/cdp-client/factory.ts +100 -17
- package/src/tools/browser/cdp-client/local-cdp-client.ts +12 -0
- package/src/tools/browser/cdp-client/types.ts +65 -0
- package/src/tools/browser/pinned-tabs.ts +96 -40
- package/src/tools/computer-use/definitions.ts +282 -336
- package/src/tools/credential-execution/make-authenticated-request.ts +3 -9
- package/src/tools/credential-execution/manage-secure-command-tool.ts +3 -9
- package/src/tools/credential-execution/run-authenticated-command.ts +3 -9
- package/src/tools/credentials/vault.ts +3 -9
- package/src/tools/document/document-tool.ts +189 -7
- package/src/tools/execution-target.ts +18 -23
- package/src/tools/executor.ts +24 -56
- package/src/tools/filesystem/edit.ts +3 -9
- package/src/tools/filesystem/list.ts +3 -9
- package/src/tools/filesystem/read.ts +3 -9
- package/src/tools/filesystem/write.ts +3 -9
- package/src/tools/host-filesystem/edit.test.ts +1 -0
- package/src/tools/host-filesystem/edit.ts +3 -9
- package/src/tools/host-filesystem/read.test.ts +1 -0
- package/src/tools/host-filesystem/read.ts +3 -9
- package/src/tools/host-filesystem/transfer.test.ts +31 -6
- package/src/tools/host-filesystem/transfer.ts +3 -9
- package/src/tools/host-filesystem/write.test.ts +1 -0
- package/src/tools/host-filesystem/write.ts +3 -9
- package/src/tools/host-terminal/host-shell.ts +3 -9
- package/src/tools/mcp/mcp-tool-factory.ts +1 -10
- package/src/tools/memory/register.test.ts +1 -1
- package/src/tools/memory/register.ts +4 -9
- 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-fetch.ts +3 -9
- package/src/tools/network/web-search.ts +224 -76
- package/src/tools/policy-context.ts +3 -1
- package/src/tools/registry.ts +150 -123
- package/src/tools/schedule/create.ts +1 -1
- package/src/tools/schema-transforms.ts +1 -1
- package/src/tools/skills/execute.ts +3 -9
- package/src/tools/skills/load.ts +3 -9
- package/src/tools/skills/skill-tool-factory.ts +18 -44
- package/src/tools/subagent/notify-parent.ts +3 -9
- package/src/tools/subagent/spawn.ts +3 -0
- package/src/tools/system/request-permission.ts +3 -9
- package/src/tools/terminal/shell.ts +3 -9
- package/src/tools/tool-approval-handler.ts +10 -4
- package/src/tools/tool-defaults.ts +94 -0
- package/src/tools/tool-name-aliases.ts +72 -14
- package/src/tools/types.ts +32 -101
- package/src/tools/ui-surface/definitions.ts +104 -108
- package/src/types/onboarding-context.ts +6 -0
- package/src/usage/attribution.ts +32 -1
- package/src/usage/pricing.ts +23 -0
- package/src/usage/types.ts +12 -0
- package/src/util/browser.ts +7 -2
- package/src/util/logger.ts +16 -7
- package/src/util/platform.ts +7 -2
- package/src/util/sqlite3-runtime.ts +65 -0
- package/src/workspace/migrations/086-revert-stale-gemini-mis-rewrites.ts +1 -0
- package/src/workspace/migrations/089-move-memory-tree-out-of-v3.ts +86 -0
- 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 +6 -0
- package/src/__tests__/compaction-strip-metadata-clear.test.ts +0 -206
- package/src/__tests__/message-complete-display-id.test.ts +0 -175
- package/src/daemon/query-complexity-router.ts +0 -75
- package/src/prompts/cache-boundary.ts +0 -8
package/openapi.yaml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
openapi: 3.0.0
|
|
4
4
|
info:
|
|
5
5
|
title: Vellum Assistant API
|
|
6
|
-
version: 0.8.
|
|
6
|
+
version: 0.8.6
|
|
7
7
|
description: Auto-generated OpenAPI specification for the Vellum Assistant runtime HTTP server.
|
|
8
8
|
servers:
|
|
9
9
|
- url: http://127.0.0.1:7821
|
|
@@ -460,8 +460,30 @@ paths:
|
|
|
460
460
|
properties:
|
|
461
461
|
apps:
|
|
462
462
|
type: array
|
|
463
|
-
items:
|
|
464
|
-
|
|
463
|
+
items:
|
|
464
|
+
type: object
|
|
465
|
+
properties:
|
|
466
|
+
id:
|
|
467
|
+
type: string
|
|
468
|
+
name:
|
|
469
|
+
type: string
|
|
470
|
+
description:
|
|
471
|
+
type: string
|
|
472
|
+
icon:
|
|
473
|
+
type: string
|
|
474
|
+
createdAt:
|
|
475
|
+
type: number
|
|
476
|
+
version:
|
|
477
|
+
type: string
|
|
478
|
+
contentId:
|
|
479
|
+
type: string
|
|
480
|
+
required:
|
|
481
|
+
- id
|
|
482
|
+
- name
|
|
483
|
+
- createdAt
|
|
484
|
+
- version
|
|
485
|
+
- contentId
|
|
486
|
+
additionalProperties: false
|
|
465
487
|
required:
|
|
466
488
|
- apps
|
|
467
489
|
additionalProperties: false
|
|
@@ -540,6 +562,18 @@ paths:
|
|
|
540
562
|
responses:
|
|
541
563
|
"200":
|
|
542
564
|
description: Successful response
|
|
565
|
+
content:
|
|
566
|
+
application/json:
|
|
567
|
+
schema:
|
|
568
|
+
type: object
|
|
569
|
+
properties:
|
|
570
|
+
success:
|
|
571
|
+
type: boolean
|
|
572
|
+
result: {}
|
|
573
|
+
required:
|
|
574
|
+
- success
|
|
575
|
+
- result
|
|
576
|
+
additionalProperties: false
|
|
543
577
|
parameters:
|
|
544
578
|
- name: id
|
|
545
579
|
in: path
|
|
@@ -560,6 +594,18 @@ paths:
|
|
|
560
594
|
responses:
|
|
561
595
|
"200":
|
|
562
596
|
description: Successful response
|
|
597
|
+
content:
|
|
598
|
+
application/json:
|
|
599
|
+
schema:
|
|
600
|
+
type: object
|
|
601
|
+
properties:
|
|
602
|
+
success:
|
|
603
|
+
type: boolean
|
|
604
|
+
result: {}
|
|
605
|
+
required:
|
|
606
|
+
- success
|
|
607
|
+
- result
|
|
608
|
+
additionalProperties: false
|
|
563
609
|
parameters:
|
|
564
610
|
- name: id
|
|
565
611
|
in: path
|
|
@@ -597,6 +643,16 @@ paths:
|
|
|
597
643
|
responses:
|
|
598
644
|
"200":
|
|
599
645
|
description: Successful response
|
|
646
|
+
content:
|
|
647
|
+
application/json:
|
|
648
|
+
schema:
|
|
649
|
+
type: object
|
|
650
|
+
properties:
|
|
651
|
+
success:
|
|
652
|
+
type: boolean
|
|
653
|
+
required:
|
|
654
|
+
- success
|
|
655
|
+
additionalProperties: false
|
|
600
656
|
parameters:
|
|
601
657
|
- name: id
|
|
602
658
|
in: path
|
|
@@ -613,6 +669,19 @@ paths:
|
|
|
613
669
|
responses:
|
|
614
670
|
"200":
|
|
615
671
|
description: Successful response
|
|
672
|
+
content:
|
|
673
|
+
application/json:
|
|
674
|
+
schema:
|
|
675
|
+
type: object
|
|
676
|
+
properties:
|
|
677
|
+
appId:
|
|
678
|
+
type: string
|
|
679
|
+
diff:
|
|
680
|
+
type: string
|
|
681
|
+
required:
|
|
682
|
+
- appId
|
|
683
|
+
- diff
|
|
684
|
+
additionalProperties: false
|
|
616
685
|
parameters:
|
|
617
686
|
- name: id
|
|
618
687
|
in: path
|
|
@@ -648,7 +717,20 @@ paths:
|
|
|
648
717
|
type: string
|
|
649
718
|
versions:
|
|
650
719
|
type: array
|
|
651
|
-
items:
|
|
720
|
+
items:
|
|
721
|
+
type: object
|
|
722
|
+
properties:
|
|
723
|
+
commitHash:
|
|
724
|
+
type: string
|
|
725
|
+
message:
|
|
726
|
+
type: string
|
|
727
|
+
timestamp:
|
|
728
|
+
type: number
|
|
729
|
+
required:
|
|
730
|
+
- commitHash
|
|
731
|
+
- message
|
|
732
|
+
- timestamp
|
|
733
|
+
additionalProperties: false
|
|
652
734
|
required:
|
|
653
735
|
- appId
|
|
654
736
|
- versions
|
|
@@ -709,6 +791,21 @@ paths:
|
|
|
709
791
|
responses:
|
|
710
792
|
"200":
|
|
711
793
|
description: Successful response
|
|
794
|
+
content:
|
|
795
|
+
application/json:
|
|
796
|
+
schema:
|
|
797
|
+
type: object
|
|
798
|
+
properties:
|
|
799
|
+
appId:
|
|
800
|
+
type: string
|
|
801
|
+
preview:
|
|
802
|
+
anyOf:
|
|
803
|
+
- type: string
|
|
804
|
+
- type: "null"
|
|
805
|
+
required:
|
|
806
|
+
- appId
|
|
807
|
+
- preview
|
|
808
|
+
additionalProperties: false
|
|
712
809
|
parameters:
|
|
713
810
|
- name: id
|
|
714
811
|
in: path
|
|
@@ -724,6 +821,19 @@ paths:
|
|
|
724
821
|
responses:
|
|
725
822
|
"200":
|
|
726
823
|
description: Successful response
|
|
824
|
+
content:
|
|
825
|
+
application/json:
|
|
826
|
+
schema:
|
|
827
|
+
type: object
|
|
828
|
+
properties:
|
|
829
|
+
success:
|
|
830
|
+
type: boolean
|
|
831
|
+
appId:
|
|
832
|
+
type: string
|
|
833
|
+
required:
|
|
834
|
+
- success
|
|
835
|
+
- appId
|
|
836
|
+
additionalProperties: false
|
|
727
837
|
parameters:
|
|
728
838
|
- name: id
|
|
729
839
|
in: path
|
|
@@ -819,6 +929,16 @@ paths:
|
|
|
819
929
|
responses:
|
|
820
930
|
"200":
|
|
821
931
|
description: Successful response
|
|
932
|
+
content:
|
|
933
|
+
application/json:
|
|
934
|
+
schema:
|
|
935
|
+
type: object
|
|
936
|
+
properties:
|
|
937
|
+
success:
|
|
938
|
+
type: boolean
|
|
939
|
+
required:
|
|
940
|
+
- success
|
|
941
|
+
additionalProperties: false
|
|
822
942
|
parameters:
|
|
823
943
|
- name: id
|
|
824
944
|
in: path
|
|
@@ -907,6 +1027,23 @@ paths:
|
|
|
907
1027
|
responses:
|
|
908
1028
|
"200":
|
|
909
1029
|
description: Successful response
|
|
1030
|
+
content:
|
|
1031
|
+
application/json:
|
|
1032
|
+
schema:
|
|
1033
|
+
type: object
|
|
1034
|
+
properties:
|
|
1035
|
+
success:
|
|
1036
|
+
type: boolean
|
|
1037
|
+
const: true
|
|
1038
|
+
appId:
|
|
1039
|
+
type: string
|
|
1040
|
+
name:
|
|
1041
|
+
type: string
|
|
1042
|
+
required:
|
|
1043
|
+
- success
|
|
1044
|
+
- appId
|
|
1045
|
+
- name
|
|
1046
|
+
additionalProperties: false
|
|
910
1047
|
requestBody:
|
|
911
1048
|
required: true
|
|
912
1049
|
content:
|
|
@@ -936,9 +1073,61 @@ paths:
|
|
|
936
1073
|
type: object
|
|
937
1074
|
properties:
|
|
938
1075
|
gallery:
|
|
939
|
-
type:
|
|
940
|
-
|
|
941
|
-
|
|
1076
|
+
type: object
|
|
1077
|
+
properties:
|
|
1078
|
+
version:
|
|
1079
|
+
type: number
|
|
1080
|
+
updatedAt:
|
|
1081
|
+
type: string
|
|
1082
|
+
categories:
|
|
1083
|
+
type: array
|
|
1084
|
+
items:
|
|
1085
|
+
type: object
|
|
1086
|
+
properties:
|
|
1087
|
+
id:
|
|
1088
|
+
type: string
|
|
1089
|
+
name:
|
|
1090
|
+
type: string
|
|
1091
|
+
icon:
|
|
1092
|
+
type: string
|
|
1093
|
+
required:
|
|
1094
|
+
- id
|
|
1095
|
+
- name
|
|
1096
|
+
- icon
|
|
1097
|
+
additionalProperties: false
|
|
1098
|
+
apps:
|
|
1099
|
+
type: array
|
|
1100
|
+
items:
|
|
1101
|
+
type: object
|
|
1102
|
+
properties:
|
|
1103
|
+
id:
|
|
1104
|
+
type: string
|
|
1105
|
+
name:
|
|
1106
|
+
type: string
|
|
1107
|
+
description:
|
|
1108
|
+
type: string
|
|
1109
|
+
icon:
|
|
1110
|
+
type: string
|
|
1111
|
+
category:
|
|
1112
|
+
type: string
|
|
1113
|
+
version:
|
|
1114
|
+
type: string
|
|
1115
|
+
featured:
|
|
1116
|
+
type: boolean
|
|
1117
|
+
required:
|
|
1118
|
+
- id
|
|
1119
|
+
- name
|
|
1120
|
+
- description
|
|
1121
|
+
- icon
|
|
1122
|
+
- category
|
|
1123
|
+
- version
|
|
1124
|
+
additionalProperties: false
|
|
1125
|
+
required:
|
|
1126
|
+
- version
|
|
1127
|
+
- updatedAt
|
|
1128
|
+
- categories
|
|
1129
|
+
- apps
|
|
1130
|
+
additionalProperties: false
|
|
942
1131
|
required:
|
|
943
1132
|
- gallery
|
|
944
1133
|
additionalProperties: false
|
|
@@ -952,6 +1141,23 @@ paths:
|
|
|
952
1141
|
responses:
|
|
953
1142
|
"200":
|
|
954
1143
|
description: Successful response
|
|
1144
|
+
content:
|
|
1145
|
+
application/json:
|
|
1146
|
+
schema:
|
|
1147
|
+
type: object
|
|
1148
|
+
properties:
|
|
1149
|
+
success:
|
|
1150
|
+
type: boolean
|
|
1151
|
+
const: true
|
|
1152
|
+
appId:
|
|
1153
|
+
type: string
|
|
1154
|
+
name:
|
|
1155
|
+
type: string
|
|
1156
|
+
required:
|
|
1157
|
+
- success
|
|
1158
|
+
- appId
|
|
1159
|
+
- name
|
|
1160
|
+
additionalProperties: false
|
|
955
1161
|
requestBody:
|
|
956
1162
|
required: true
|
|
957
1163
|
content:
|
|
@@ -1034,6 +1240,55 @@ paths:
|
|
|
1034
1240
|
responses:
|
|
1035
1241
|
"200":
|
|
1036
1242
|
description: Successful response
|
|
1243
|
+
content:
|
|
1244
|
+
application/json:
|
|
1245
|
+
schema:
|
|
1246
|
+
type: object
|
|
1247
|
+
properties:
|
|
1248
|
+
manifest:
|
|
1249
|
+
type: object
|
|
1250
|
+
properties: {}
|
|
1251
|
+
additionalProperties: {}
|
|
1252
|
+
scanResult:
|
|
1253
|
+
type: object
|
|
1254
|
+
properties:
|
|
1255
|
+
passed:
|
|
1256
|
+
type: boolean
|
|
1257
|
+
blocked:
|
|
1258
|
+
type: array
|
|
1259
|
+
items:
|
|
1260
|
+
type: string
|
|
1261
|
+
warnings:
|
|
1262
|
+
type: array
|
|
1263
|
+
items:
|
|
1264
|
+
type: string
|
|
1265
|
+
required:
|
|
1266
|
+
- passed
|
|
1267
|
+
- blocked
|
|
1268
|
+
- warnings
|
|
1269
|
+
additionalProperties: false
|
|
1270
|
+
signatureResult:
|
|
1271
|
+
type: object
|
|
1272
|
+
properties:
|
|
1273
|
+
trustTier:
|
|
1274
|
+
type: string
|
|
1275
|
+
signerKeyId:
|
|
1276
|
+
type: string
|
|
1277
|
+
signerDisplayName:
|
|
1278
|
+
type: string
|
|
1279
|
+
signerAccount:
|
|
1280
|
+
type: string
|
|
1281
|
+
required:
|
|
1282
|
+
- trustTier
|
|
1283
|
+
additionalProperties: false
|
|
1284
|
+
bundleSizeBytes:
|
|
1285
|
+
type: number
|
|
1286
|
+
required:
|
|
1287
|
+
- manifest
|
|
1288
|
+
- scanResult
|
|
1289
|
+
- signatureResult
|
|
1290
|
+
- bundleSizeBytes
|
|
1291
|
+
additionalProperties: false
|
|
1037
1292
|
requestBody:
|
|
1038
1293
|
required: true
|
|
1039
1294
|
content:
|
|
@@ -1090,29 +1345,64 @@ paths:
|
|
|
1090
1345
|
properties:
|
|
1091
1346
|
apps:
|
|
1092
1347
|
type: array
|
|
1093
|
-
items:
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1348
|
+
items:
|
|
1349
|
+
type: object
|
|
1350
|
+
properties:
|
|
1351
|
+
uuid:
|
|
1352
|
+
type: string
|
|
1353
|
+
name:
|
|
1354
|
+
type: string
|
|
1355
|
+
description:
|
|
1356
|
+
type: string
|
|
1357
|
+
icon:
|
|
1358
|
+
type: string
|
|
1359
|
+
preview:
|
|
1360
|
+
type: string
|
|
1361
|
+
entry:
|
|
1362
|
+
type: string
|
|
1363
|
+
trustTier:
|
|
1364
|
+
type: string
|
|
1365
|
+
signerDisplayName:
|
|
1366
|
+
type: string
|
|
1367
|
+
bundleSizeBytes:
|
|
1368
|
+
type: number
|
|
1369
|
+
installedAt:
|
|
1370
|
+
type: string
|
|
1371
|
+
version:
|
|
1372
|
+
type: string
|
|
1373
|
+
contentId:
|
|
1374
|
+
type: string
|
|
1375
|
+
updateAvailable:
|
|
1376
|
+
type: boolean
|
|
1377
|
+
required:
|
|
1378
|
+
- uuid
|
|
1379
|
+
- name
|
|
1380
|
+
- entry
|
|
1381
|
+
- trustTier
|
|
1382
|
+
- bundleSizeBytes
|
|
1383
|
+
- installedAt
|
|
1384
|
+
additionalProperties: false
|
|
1385
|
+
required:
|
|
1386
|
+
- apps
|
|
1387
|
+
additionalProperties: false
|
|
1388
|
+
/v1/apps/shared/{token}:
|
|
1389
|
+
delete:
|
|
1390
|
+
operationId: apps_shared_by_token_delete
|
|
1391
|
+
summary: Delete shared app
|
|
1392
|
+
description: Remove a shared app link.
|
|
1393
|
+
tags:
|
|
1394
|
+
- apps
|
|
1395
|
+
responses:
|
|
1396
|
+
"200":
|
|
1397
|
+
description: Successful response
|
|
1398
|
+
content:
|
|
1399
|
+
application/json:
|
|
1400
|
+
schema:
|
|
1401
|
+
type: object
|
|
1402
|
+
properties:
|
|
1403
|
+
success:
|
|
1404
|
+
type: boolean
|
|
1405
|
+
required:
|
|
1116
1406
|
- success
|
|
1117
1407
|
additionalProperties: false
|
|
1118
1408
|
parameters:
|
|
@@ -1181,6 +1471,22 @@ paths:
|
|
|
1181
1471
|
responses:
|
|
1182
1472
|
"200":
|
|
1183
1473
|
description: Successful response
|
|
1474
|
+
content:
|
|
1475
|
+
application/json:
|
|
1476
|
+
schema:
|
|
1477
|
+
type: object
|
|
1478
|
+
properties:
|
|
1479
|
+
signed:
|
|
1480
|
+
type: boolean
|
|
1481
|
+
signatureJson:
|
|
1482
|
+
type: object
|
|
1483
|
+
properties: {}
|
|
1484
|
+
additionalProperties: {}
|
|
1485
|
+
payload:
|
|
1486
|
+
type: string
|
|
1487
|
+
message:
|
|
1488
|
+
type: string
|
|
1489
|
+
additionalProperties: false
|
|
1184
1490
|
requestBody:
|
|
1185
1491
|
required: true
|
|
1186
1492
|
content:
|
|
@@ -1210,6 +1516,16 @@ paths:
|
|
|
1210
1516
|
responses:
|
|
1211
1517
|
"200":
|
|
1212
1518
|
description: Successful response
|
|
1519
|
+
content:
|
|
1520
|
+
application/json:
|
|
1521
|
+
schema:
|
|
1522
|
+
type: object
|
|
1523
|
+
properties:
|
|
1524
|
+
message:
|
|
1525
|
+
type: string
|
|
1526
|
+
required:
|
|
1527
|
+
- message
|
|
1528
|
+
additionalProperties: false
|
|
1213
1529
|
/v1/attachments:
|
|
1214
1530
|
delete:
|
|
1215
1531
|
operationId: attachments_delete
|
|
@@ -1823,6 +2139,202 @@ paths:
|
|
|
1823
2139
|
required:
|
|
1824
2140
|
- id
|
|
1825
2141
|
additionalProperties: false
|
|
2142
|
+
/v1/background-wake/drain-due:
|
|
2143
|
+
post:
|
|
2144
|
+
operationId: backgroundwake_draindue_post
|
|
2145
|
+
summary: Drain due background wake work
|
|
2146
|
+
description: Run due heartbeat and scheduler work for a background wake lease.
|
|
2147
|
+
tags:
|
|
2148
|
+
- background-wake
|
|
2149
|
+
responses:
|
|
2150
|
+
"200":
|
|
2151
|
+
description: Successful response
|
|
2152
|
+
content:
|
|
2153
|
+
application/json:
|
|
2154
|
+
schema:
|
|
2155
|
+
type: object
|
|
2156
|
+
properties:
|
|
2157
|
+
accepted:
|
|
2158
|
+
type: boolean
|
|
2159
|
+
leaseId:
|
|
2160
|
+
type: string
|
|
2161
|
+
reason:
|
|
2162
|
+
type: string
|
|
2163
|
+
sourceGeneration:
|
|
2164
|
+
type: string
|
|
2165
|
+
startedAt:
|
|
2166
|
+
type: number
|
|
2167
|
+
deadlineAt:
|
|
2168
|
+
type: number
|
|
2169
|
+
required:
|
|
2170
|
+
- accepted
|
|
2171
|
+
- leaseId
|
|
2172
|
+
- reason
|
|
2173
|
+
- sourceGeneration
|
|
2174
|
+
- startedAt
|
|
2175
|
+
- deadlineAt
|
|
2176
|
+
additionalProperties: false
|
|
2177
|
+
requestBody:
|
|
2178
|
+
required: true
|
|
2179
|
+
content:
|
|
2180
|
+
application/json:
|
|
2181
|
+
schema:
|
|
2182
|
+
anyOf:
|
|
2183
|
+
- type: object
|
|
2184
|
+
properties:
|
|
2185
|
+
leaseId:
|
|
2186
|
+
type: string
|
|
2187
|
+
minLength: 1
|
|
2188
|
+
reason:
|
|
2189
|
+
type: string
|
|
2190
|
+
minLength: 1
|
|
2191
|
+
sourceGeneration:
|
|
2192
|
+
type: string
|
|
2193
|
+
minLength: 1
|
|
2194
|
+
startedAt:
|
|
2195
|
+
anyOf:
|
|
2196
|
+
- type: number
|
|
2197
|
+
- type: string
|
|
2198
|
+
deadlineAt:
|
|
2199
|
+
anyOf:
|
|
2200
|
+
- type: number
|
|
2201
|
+
- type: string
|
|
2202
|
+
required:
|
|
2203
|
+
- leaseId
|
|
2204
|
+
- reason
|
|
2205
|
+
- sourceGeneration
|
|
2206
|
+
- startedAt
|
|
2207
|
+
- deadlineAt
|
|
2208
|
+
additionalProperties: false
|
|
2209
|
+
- type: object
|
|
2210
|
+
properties:
|
|
2211
|
+
lease_id:
|
|
2212
|
+
type: string
|
|
2213
|
+
minLength: 1
|
|
2214
|
+
reason:
|
|
2215
|
+
type: string
|
|
2216
|
+
minLength: 1
|
|
2217
|
+
source_generation:
|
|
2218
|
+
type: string
|
|
2219
|
+
minLength: 1
|
|
2220
|
+
started_at:
|
|
2221
|
+
anyOf:
|
|
2222
|
+
- type: number
|
|
2223
|
+
- type: string
|
|
2224
|
+
deadline_at:
|
|
2225
|
+
anyOf:
|
|
2226
|
+
- type: number
|
|
2227
|
+
- type: string
|
|
2228
|
+
required:
|
|
2229
|
+
- lease_id
|
|
2230
|
+
- reason
|
|
2231
|
+
- source_generation
|
|
2232
|
+
- started_at
|
|
2233
|
+
- deadline_at
|
|
2234
|
+
additionalProperties: false
|
|
2235
|
+
/v1/background-wake/intent:
|
|
2236
|
+
get:
|
|
2237
|
+
operationId: backgroundwake_intent_get
|
|
2238
|
+
summary: Get background wake intent
|
|
2239
|
+
description: Return the current computed background wake intent.
|
|
2240
|
+
tags:
|
|
2241
|
+
- background-wake
|
|
2242
|
+
responses:
|
|
2243
|
+
"200":
|
|
2244
|
+
description: Successful response
|
|
2245
|
+
content:
|
|
2246
|
+
application/json:
|
|
2247
|
+
schema:
|
|
2248
|
+
type: object
|
|
2249
|
+
properties:
|
|
2250
|
+
intent:
|
|
2251
|
+
anyOf:
|
|
2252
|
+
- type: object
|
|
2253
|
+
properties:
|
|
2254
|
+
nextWakeAt:
|
|
2255
|
+
type: number
|
|
2256
|
+
actualNextDueAt:
|
|
2257
|
+
type: number
|
|
2258
|
+
reason:
|
|
2259
|
+
type: string
|
|
2260
|
+
enum:
|
|
2261
|
+
- heartbeat
|
|
2262
|
+
- schedule
|
|
2263
|
+
- mixed
|
|
2264
|
+
sourceGeneration:
|
|
2265
|
+
type: string
|
|
2266
|
+
computedAt:
|
|
2267
|
+
type: number
|
|
2268
|
+
sourcePayload:
|
|
2269
|
+
type: object
|
|
2270
|
+
propertyNames:
|
|
2271
|
+
type: string
|
|
2272
|
+
additionalProperties: {}
|
|
2273
|
+
required:
|
|
2274
|
+
- nextWakeAt
|
|
2275
|
+
- actualNextDueAt
|
|
2276
|
+
- reason
|
|
2277
|
+
- sourceGeneration
|
|
2278
|
+
- computedAt
|
|
2279
|
+
- sourcePayload
|
|
2280
|
+
additionalProperties: false
|
|
2281
|
+
- type: "null"
|
|
2282
|
+
required:
|
|
2283
|
+
- intent
|
|
2284
|
+
additionalProperties: false
|
|
2285
|
+
/v1/background-wake/prepare-sleep:
|
|
2286
|
+
post:
|
|
2287
|
+
operationId: backgroundwake_preparesleep_post
|
|
2288
|
+
summary: Prepare for assistant sleep
|
|
2289
|
+
description: Return the current background wake intent and whether sleep should be deferred.
|
|
2290
|
+
tags:
|
|
2291
|
+
- background-wake
|
|
2292
|
+
responses:
|
|
2293
|
+
"200":
|
|
2294
|
+
description: Successful response
|
|
2295
|
+
content:
|
|
2296
|
+
application/json:
|
|
2297
|
+
schema:
|
|
2298
|
+
type: object
|
|
2299
|
+
properties:
|
|
2300
|
+
intent:
|
|
2301
|
+
anyOf:
|
|
2302
|
+
- type: object
|
|
2303
|
+
properties:
|
|
2304
|
+
nextWakeAt:
|
|
2305
|
+
type: number
|
|
2306
|
+
actualNextDueAt:
|
|
2307
|
+
type: number
|
|
2308
|
+
reason:
|
|
2309
|
+
type: string
|
|
2310
|
+
enum:
|
|
2311
|
+
- heartbeat
|
|
2312
|
+
- schedule
|
|
2313
|
+
- mixed
|
|
2314
|
+
sourceGeneration:
|
|
2315
|
+
type: string
|
|
2316
|
+
computedAt:
|
|
2317
|
+
type: number
|
|
2318
|
+
sourcePayload:
|
|
2319
|
+
type: object
|
|
2320
|
+
propertyNames:
|
|
2321
|
+
type: string
|
|
2322
|
+
additionalProperties: {}
|
|
2323
|
+
required:
|
|
2324
|
+
- nextWakeAt
|
|
2325
|
+
- actualNextDueAt
|
|
2326
|
+
- reason
|
|
2327
|
+
- sourceGeneration
|
|
2328
|
+
- computedAt
|
|
2329
|
+
- sourcePayload
|
|
2330
|
+
additionalProperties: false
|
|
2331
|
+
- type: "null"
|
|
2332
|
+
deferSleep:
|
|
2333
|
+
type: boolean
|
|
2334
|
+
required:
|
|
2335
|
+
- intent
|
|
2336
|
+
- deferSleep
|
|
2337
|
+
additionalProperties: false
|
|
1826
2338
|
/v1/backup/destinations:
|
|
1827
2339
|
get:
|
|
1828
2340
|
operationId: backup_destinations_get
|
|
@@ -2552,6 +3064,85 @@ paths:
|
|
|
2552
3064
|
required:
|
|
2553
3065
|
- operation
|
|
2554
3066
|
additionalProperties: false
|
|
3067
|
+
/v1/browser/tabs:
|
|
3068
|
+
post:
|
|
3069
|
+
operationId: browser_tabs_post
|
|
3070
|
+
summary: Manage browser tabs
|
|
3071
|
+
description: List, create, select, or close browser tabs via the Chrome extension backend.
|
|
3072
|
+
tags:
|
|
3073
|
+
- browser
|
|
3074
|
+
responses:
|
|
3075
|
+
"200":
|
|
3076
|
+
description: Successful response
|
|
3077
|
+
content:
|
|
3078
|
+
application/json:
|
|
3079
|
+
schema:
|
|
3080
|
+
type: object
|
|
3081
|
+
properties:
|
|
3082
|
+
ok:
|
|
3083
|
+
type: boolean
|
|
3084
|
+
tabs:
|
|
3085
|
+
type: array
|
|
3086
|
+
items:
|
|
3087
|
+
type: object
|
|
3088
|
+
properties:
|
|
3089
|
+
tabId:
|
|
3090
|
+
type: number
|
|
3091
|
+
windowId:
|
|
3092
|
+
type: number
|
|
3093
|
+
url:
|
|
3094
|
+
type: string
|
|
3095
|
+
title:
|
|
3096
|
+
type: string
|
|
3097
|
+
active:
|
|
3098
|
+
type: boolean
|
|
3099
|
+
pinned:
|
|
3100
|
+
type: boolean
|
|
3101
|
+
required:
|
|
3102
|
+
- active
|
|
3103
|
+
- pinned
|
|
3104
|
+
additionalProperties: false
|
|
3105
|
+
tab: {}
|
|
3106
|
+
tabId:
|
|
3107
|
+
type: number
|
|
3108
|
+
clientId:
|
|
3109
|
+
type: string
|
|
3110
|
+
closed:
|
|
3111
|
+
type: boolean
|
|
3112
|
+
required:
|
|
3113
|
+
- ok
|
|
3114
|
+
additionalProperties: false
|
|
3115
|
+
requestBody:
|
|
3116
|
+
required: true
|
|
3117
|
+
content:
|
|
3118
|
+
application/json:
|
|
3119
|
+
schema:
|
|
3120
|
+
type: object
|
|
3121
|
+
properties:
|
|
3122
|
+
command:
|
|
3123
|
+
type: string
|
|
3124
|
+
enum:
|
|
3125
|
+
- list
|
|
3126
|
+
- select
|
|
3127
|
+
- new
|
|
3128
|
+
- close
|
|
3129
|
+
sessionId:
|
|
3130
|
+
default: default
|
|
3131
|
+
type: string
|
|
3132
|
+
minLength: 1
|
|
3133
|
+
conversationId:
|
|
3134
|
+
type: string
|
|
3135
|
+
minLength: 1
|
|
3136
|
+
tabId:
|
|
3137
|
+
type: number
|
|
3138
|
+
url:
|
|
3139
|
+
type: string
|
|
3140
|
+
targetClientId:
|
|
3141
|
+
type: string
|
|
3142
|
+
minLength: 1
|
|
3143
|
+
required:
|
|
3144
|
+
- command
|
|
3145
|
+
additionalProperties: false
|
|
2555
3146
|
/v1/btw:
|
|
2556
3147
|
post:
|
|
2557
3148
|
operationId: btw_post
|
|
@@ -3411,6 +4002,19 @@ paths:
|
|
|
3411
4002
|
responses:
|
|
3412
4003
|
"200":
|
|
3413
4004
|
description: Successful response
|
|
4005
|
+
/v1/config/llm/profiles:
|
|
4006
|
+
get:
|
|
4007
|
+
operationId: config_llm_profiles_get
|
|
4008
|
+
summary: List defined LLM profiles
|
|
4009
|
+
description:
|
|
4010
|
+
Returns the sorted list of profile names defined in `llm.profiles` plus the workspace-wide active profile.
|
|
4011
|
+
Used to populate per-call profile dropdowns (e.g. memory router playground) without requiring the caller to type
|
|
4012
|
+
profile names.
|
|
4013
|
+
tags:
|
|
4014
|
+
- config
|
|
4015
|
+
responses:
|
|
4016
|
+
"200":
|
|
4017
|
+
description: Successful response
|
|
3414
4018
|
/v1/config/llm/profiles/{name}:
|
|
3415
4019
|
put:
|
|
3416
4020
|
operationId: config_llm_profiles_by_name_put
|
|
@@ -4341,15 +4945,6 @@ paths:
|
|
|
4341
4945
|
operationId: conversations_get
|
|
4342
4946
|
summary: List conversations
|
|
4343
4947
|
description: Paginated list of conversations with attention state and display metadata.
|
|
4344
|
-
tags:
|
|
4345
|
-
- conversations
|
|
4346
|
-
responses:
|
|
4347
|
-
"200":
|
|
4348
|
-
description: Successful response
|
|
4349
|
-
post:
|
|
4350
|
-
operationId: conversations_post
|
|
4351
|
-
summary: Create a conversation
|
|
4352
|
-
description: Create or get an existing conversation by key.
|
|
4353
4948
|
tags:
|
|
4354
4949
|
- conversations
|
|
4355
4950
|
responses:
|
|
@@ -4360,10 +4955,248 @@ paths:
|
|
|
4360
4955
|
schema:
|
|
4361
4956
|
type: object
|
|
4362
4957
|
properties:
|
|
4363
|
-
|
|
4958
|
+
conversations:
|
|
4959
|
+
type: array
|
|
4960
|
+
items:
|
|
4961
|
+
type: object
|
|
4962
|
+
properties:
|
|
4963
|
+
id:
|
|
4964
|
+
type: string
|
|
4965
|
+
title:
|
|
4966
|
+
type: string
|
|
4967
|
+
createdAt:
|
|
4968
|
+
type: number
|
|
4969
|
+
updatedAt:
|
|
4970
|
+
type: number
|
|
4971
|
+
lastMessageAt:
|
|
4972
|
+
anyOf:
|
|
4973
|
+
- type: number
|
|
4974
|
+
- type: "null"
|
|
4975
|
+
conversationType:
|
|
4976
|
+
type: string
|
|
4977
|
+
enum:
|
|
4978
|
+
- standard
|
|
4979
|
+
- background
|
|
4980
|
+
- scheduled
|
|
4981
|
+
source:
|
|
4982
|
+
type: string
|
|
4983
|
+
scheduleJobId:
|
|
4984
|
+
type: string
|
|
4985
|
+
channelBinding:
|
|
4986
|
+
type: object
|
|
4987
|
+
properties:
|
|
4988
|
+
sourceChannel:
|
|
4989
|
+
type: string
|
|
4990
|
+
externalChatId:
|
|
4991
|
+
type: string
|
|
4992
|
+
externalChatName:
|
|
4993
|
+
type: string
|
|
4994
|
+
externalThreadId:
|
|
4995
|
+
type: string
|
|
4996
|
+
externalUserId:
|
|
4997
|
+
anyOf:
|
|
4998
|
+
- type: string
|
|
4999
|
+
- type: "null"
|
|
5000
|
+
displayName:
|
|
5001
|
+
anyOf:
|
|
5002
|
+
- type: string
|
|
5003
|
+
- type: "null"
|
|
5004
|
+
username:
|
|
5005
|
+
anyOf:
|
|
5006
|
+
- type: string
|
|
5007
|
+
- type: "null"
|
|
5008
|
+
slackThread:
|
|
5009
|
+
type: object
|
|
5010
|
+
properties:
|
|
5011
|
+
channelId:
|
|
5012
|
+
type: string
|
|
5013
|
+
threadTs:
|
|
5014
|
+
type: string
|
|
5015
|
+
link:
|
|
5016
|
+
type: object
|
|
5017
|
+
properties:
|
|
5018
|
+
appUrl:
|
|
5019
|
+
type: string
|
|
5020
|
+
webUrl:
|
|
5021
|
+
type: string
|
|
5022
|
+
additionalProperties: false
|
|
5023
|
+
required:
|
|
5024
|
+
- channelId
|
|
5025
|
+
- threadTs
|
|
5026
|
+
additionalProperties: false
|
|
5027
|
+
slackChannel:
|
|
5028
|
+
type: object
|
|
5029
|
+
properties:
|
|
5030
|
+
channelId:
|
|
5031
|
+
type: string
|
|
5032
|
+
name:
|
|
5033
|
+
type: string
|
|
5034
|
+
link:
|
|
5035
|
+
type: object
|
|
5036
|
+
properties:
|
|
5037
|
+
webUrl:
|
|
5038
|
+
type: string
|
|
5039
|
+
required:
|
|
5040
|
+
- webUrl
|
|
5041
|
+
additionalProperties: false
|
|
5042
|
+
required:
|
|
5043
|
+
- channelId
|
|
5044
|
+
additionalProperties: false
|
|
5045
|
+
required:
|
|
5046
|
+
- sourceChannel
|
|
5047
|
+
- externalChatId
|
|
5048
|
+
- externalUserId
|
|
5049
|
+
- displayName
|
|
5050
|
+
- username
|
|
5051
|
+
additionalProperties: false
|
|
5052
|
+
conversationOriginChannel:
|
|
5053
|
+
anyOf:
|
|
5054
|
+
- type: string
|
|
5055
|
+
enum:
|
|
5056
|
+
- telegram
|
|
5057
|
+
- phone
|
|
5058
|
+
- vellum
|
|
5059
|
+
- whatsapp
|
|
5060
|
+
- slack
|
|
5061
|
+
- email
|
|
5062
|
+
- platform
|
|
5063
|
+
- a2a
|
|
5064
|
+
- type: "null"
|
|
5065
|
+
assistantAttention:
|
|
5066
|
+
type: object
|
|
5067
|
+
properties:
|
|
5068
|
+
hasUnseenLatestAssistantMessage:
|
|
5069
|
+
type: boolean
|
|
5070
|
+
latestAssistantMessageAt:
|
|
5071
|
+
type: number
|
|
5072
|
+
lastSeenAssistantMessageAt:
|
|
5073
|
+
type: number
|
|
5074
|
+
lastSeenConfidence:
|
|
5075
|
+
type: string
|
|
5076
|
+
enum:
|
|
5077
|
+
- explicit
|
|
5078
|
+
- inferred
|
|
5079
|
+
lastSeenSignalType:
|
|
5080
|
+
type: string
|
|
5081
|
+
enum:
|
|
5082
|
+
- macos_notification_view
|
|
5083
|
+
- macos_conversation_opened
|
|
5084
|
+
- ios_conversation_opened
|
|
5085
|
+
- telegram_inbound_message
|
|
5086
|
+
- telegram_callback
|
|
5087
|
+
- slack_inbound_message
|
|
5088
|
+
- slack_callback
|
|
5089
|
+
required:
|
|
5090
|
+
- hasUnseenLatestAssistantMessage
|
|
5091
|
+
additionalProperties: false
|
|
5092
|
+
isPinned:
|
|
5093
|
+
type: boolean
|
|
5094
|
+
const: true
|
|
5095
|
+
displayOrder:
|
|
5096
|
+
anyOf:
|
|
5097
|
+
- type: number
|
|
5098
|
+
- type: "null"
|
|
5099
|
+
groupId:
|
|
5100
|
+
anyOf:
|
|
5101
|
+
- type: string
|
|
5102
|
+
- type: "null"
|
|
5103
|
+
forkParent:
|
|
5104
|
+
type: object
|
|
5105
|
+
properties:
|
|
5106
|
+
conversationId:
|
|
5107
|
+
type: string
|
|
5108
|
+
messageId:
|
|
5109
|
+
type: string
|
|
5110
|
+
title:
|
|
5111
|
+
type: string
|
|
5112
|
+
required:
|
|
5113
|
+
- conversationId
|
|
5114
|
+
- messageId
|
|
5115
|
+
- title
|
|
5116
|
+
additionalProperties: false
|
|
5117
|
+
archivedAt:
|
|
5118
|
+
type: number
|
|
5119
|
+
inferenceProfile:
|
|
5120
|
+
type: string
|
|
5121
|
+
required:
|
|
5122
|
+
- id
|
|
5123
|
+
- title
|
|
5124
|
+
- createdAt
|
|
5125
|
+
- updatedAt
|
|
5126
|
+
- lastMessageAt
|
|
5127
|
+
- conversationType
|
|
5128
|
+
- source
|
|
5129
|
+
- groupId
|
|
5130
|
+
additionalProperties: false
|
|
5131
|
+
nextOffset:
|
|
5132
|
+
type: number
|
|
5133
|
+
hasMore:
|
|
5134
|
+
type: boolean
|
|
5135
|
+
groups:
|
|
5136
|
+
type: array
|
|
5137
|
+
items:
|
|
5138
|
+
type: object
|
|
5139
|
+
properties:
|
|
5140
|
+
id:
|
|
5141
|
+
type: string
|
|
5142
|
+
name:
|
|
5143
|
+
type: string
|
|
5144
|
+
sortPosition:
|
|
5145
|
+
type: number
|
|
5146
|
+
isSystemGroup:
|
|
5147
|
+
type: boolean
|
|
5148
|
+
required:
|
|
5149
|
+
- id
|
|
5150
|
+
- name
|
|
5151
|
+
- sortPosition
|
|
5152
|
+
- isSystemGroup
|
|
5153
|
+
additionalProperties: false
|
|
5154
|
+
required:
|
|
5155
|
+
- conversations
|
|
5156
|
+
- nextOffset
|
|
5157
|
+
- hasMore
|
|
5158
|
+
additionalProperties: false
|
|
5159
|
+
parameters:
|
|
5160
|
+
- name: limit
|
|
5161
|
+
in: query
|
|
5162
|
+
required: false
|
|
5163
|
+
schema:
|
|
5164
|
+
type: integer
|
|
5165
|
+
description: Maximum number of conversations to return (default 50).
|
|
5166
|
+
- name: offset
|
|
5167
|
+
in: query
|
|
5168
|
+
required: false
|
|
5169
|
+
schema:
|
|
5170
|
+
type: integer
|
|
5171
|
+
description: Number of conversations to skip (default 0).
|
|
5172
|
+
- name: conversationType
|
|
5173
|
+
in: query
|
|
5174
|
+
required: false
|
|
5175
|
+
schema:
|
|
5176
|
+
type: string
|
|
5177
|
+
enum:
|
|
5178
|
+
- background
|
|
5179
|
+
description: Filter by conversation type. Pass "background" to list only background/scheduled conversations.
|
|
5180
|
+
post:
|
|
5181
|
+
operationId: conversations_post
|
|
5182
|
+
summary: Create a conversation
|
|
5183
|
+
description: Create or get an existing conversation by key.
|
|
5184
|
+
tags:
|
|
5185
|
+
- conversations
|
|
5186
|
+
responses:
|
|
5187
|
+
"200":
|
|
5188
|
+
description: Successful response
|
|
5189
|
+
content:
|
|
5190
|
+
application/json:
|
|
5191
|
+
schema:
|
|
5192
|
+
type: object
|
|
5193
|
+
properties:
|
|
5194
|
+
id:
|
|
4364
5195
|
type: string
|
|
5196
|
+
description: Assistant-minted internal conversation id. The authoritative identifier for the conversation.
|
|
4365
5197
|
conversationKey:
|
|
4366
5198
|
type: string
|
|
5199
|
+
description: Echo of the optional external key supplied by the client.
|
|
4367
5200
|
conversationType:
|
|
4368
5201
|
type: string
|
|
4369
5202
|
created:
|
|
@@ -4382,14 +5215,15 @@ paths:
|
|
|
4382
5215
|
type: object
|
|
4383
5216
|
properties:
|
|
4384
5217
|
conversationKey:
|
|
5218
|
+
description:
|
|
5219
|
+
Optional external key. Echoed back in the response. Non-vellum channels (Telegram, WhatsApp) use this to
|
|
5220
|
+
scope to a logical channel thread; vellum-web clients can omit it and rely on the assistant-minted
|
|
5221
|
+
`id`.
|
|
4385
5222
|
type: string
|
|
4386
|
-
description: Idempotency key for the conversation
|
|
4387
5223
|
conversationType:
|
|
4388
5224
|
description: Only standard conversations are created by this endpoint
|
|
4389
5225
|
type: string
|
|
4390
5226
|
const: standard
|
|
4391
|
-
required:
|
|
4392
|
-
- conversationKey
|
|
4393
5227
|
additionalProperties: false
|
|
4394
5228
|
/v1/conversations/{conversationId}/slack-channel/resolve:
|
|
4395
5229
|
post:
|
|
@@ -4426,57 +5260,415 @@ paths:
|
|
|
4426
5260
|
- rate_limit
|
|
4427
5261
|
- slack_error
|
|
4428
5262
|
required:
|
|
4429
|
-
- channelId
|
|
4430
|
-
- cached
|
|
4431
|
-
- resolved
|
|
5263
|
+
- channelId
|
|
5264
|
+
- cached
|
|
5265
|
+
- resolved
|
|
5266
|
+
additionalProperties: false
|
|
5267
|
+
parameters:
|
|
5268
|
+
- name: conversationId
|
|
5269
|
+
in: path
|
|
5270
|
+
required: true
|
|
5271
|
+
schema:
|
|
5272
|
+
type: string
|
|
5273
|
+
/v1/conversations/{id}:
|
|
5274
|
+
delete:
|
|
5275
|
+
operationId: conversations_by_id_delete
|
|
5276
|
+
summary: Delete a conversation
|
|
5277
|
+
description: Permanently delete a single conversation and its messages.
|
|
5278
|
+
tags:
|
|
5279
|
+
- conversations
|
|
5280
|
+
responses:
|
|
5281
|
+
"204":
|
|
5282
|
+
description: Successful response
|
|
5283
|
+
parameters:
|
|
5284
|
+
- name: id
|
|
5285
|
+
in: path
|
|
5286
|
+
required: true
|
|
5287
|
+
schema:
|
|
5288
|
+
type: string
|
|
5289
|
+
get:
|
|
5290
|
+
operationId: conversations_by_id_get
|
|
5291
|
+
summary: Get conversation detail
|
|
5292
|
+
description: Retrieve a single conversation with full metadata.
|
|
5293
|
+
tags:
|
|
5294
|
+
- conversations
|
|
5295
|
+
responses:
|
|
5296
|
+
"200":
|
|
5297
|
+
description: Successful response
|
|
5298
|
+
content:
|
|
5299
|
+
application/json:
|
|
5300
|
+
schema:
|
|
5301
|
+
type: object
|
|
5302
|
+
properties:
|
|
5303
|
+
conversation:
|
|
5304
|
+
type: object
|
|
5305
|
+
properties:
|
|
5306
|
+
id:
|
|
5307
|
+
type: string
|
|
5308
|
+
title:
|
|
5309
|
+
type: string
|
|
5310
|
+
createdAt:
|
|
5311
|
+
type: number
|
|
5312
|
+
updatedAt:
|
|
5313
|
+
type: number
|
|
5314
|
+
lastMessageAt:
|
|
5315
|
+
anyOf:
|
|
5316
|
+
- type: number
|
|
5317
|
+
- type: "null"
|
|
5318
|
+
conversationType:
|
|
5319
|
+
type: string
|
|
5320
|
+
enum:
|
|
5321
|
+
- standard
|
|
5322
|
+
- background
|
|
5323
|
+
- scheduled
|
|
5324
|
+
source:
|
|
5325
|
+
type: string
|
|
5326
|
+
scheduleJobId:
|
|
5327
|
+
type: string
|
|
5328
|
+
channelBinding:
|
|
5329
|
+
type: object
|
|
5330
|
+
properties:
|
|
5331
|
+
sourceChannel:
|
|
5332
|
+
type: string
|
|
5333
|
+
externalChatId:
|
|
5334
|
+
type: string
|
|
5335
|
+
externalChatName:
|
|
5336
|
+
type: string
|
|
5337
|
+
externalThreadId:
|
|
5338
|
+
type: string
|
|
5339
|
+
externalUserId:
|
|
5340
|
+
anyOf:
|
|
5341
|
+
- type: string
|
|
5342
|
+
- type: "null"
|
|
5343
|
+
displayName:
|
|
5344
|
+
anyOf:
|
|
5345
|
+
- type: string
|
|
5346
|
+
- type: "null"
|
|
5347
|
+
username:
|
|
5348
|
+
anyOf:
|
|
5349
|
+
- type: string
|
|
5350
|
+
- type: "null"
|
|
5351
|
+
slackThread:
|
|
5352
|
+
type: object
|
|
5353
|
+
properties:
|
|
5354
|
+
channelId:
|
|
5355
|
+
type: string
|
|
5356
|
+
threadTs:
|
|
5357
|
+
type: string
|
|
5358
|
+
link:
|
|
5359
|
+
type: object
|
|
5360
|
+
properties:
|
|
5361
|
+
appUrl:
|
|
5362
|
+
type: string
|
|
5363
|
+
webUrl:
|
|
5364
|
+
type: string
|
|
5365
|
+
additionalProperties: false
|
|
5366
|
+
required:
|
|
5367
|
+
- channelId
|
|
5368
|
+
- threadTs
|
|
5369
|
+
additionalProperties: false
|
|
5370
|
+
slackChannel:
|
|
5371
|
+
type: object
|
|
5372
|
+
properties:
|
|
5373
|
+
channelId:
|
|
5374
|
+
type: string
|
|
5375
|
+
name:
|
|
5376
|
+
type: string
|
|
5377
|
+
link:
|
|
5378
|
+
type: object
|
|
5379
|
+
properties:
|
|
5380
|
+
webUrl:
|
|
5381
|
+
type: string
|
|
5382
|
+
required:
|
|
5383
|
+
- webUrl
|
|
5384
|
+
additionalProperties: false
|
|
5385
|
+
required:
|
|
5386
|
+
- channelId
|
|
5387
|
+
additionalProperties: false
|
|
5388
|
+
required:
|
|
5389
|
+
- sourceChannel
|
|
5390
|
+
- externalChatId
|
|
5391
|
+
- externalUserId
|
|
5392
|
+
- displayName
|
|
5393
|
+
- username
|
|
5394
|
+
additionalProperties: false
|
|
5395
|
+
conversationOriginChannel:
|
|
5396
|
+
anyOf:
|
|
5397
|
+
- type: string
|
|
5398
|
+
enum:
|
|
5399
|
+
- telegram
|
|
5400
|
+
- phone
|
|
5401
|
+
- vellum
|
|
5402
|
+
- whatsapp
|
|
5403
|
+
- slack
|
|
5404
|
+
- email
|
|
5405
|
+
- platform
|
|
5406
|
+
- a2a
|
|
5407
|
+
- type: "null"
|
|
5408
|
+
assistantAttention:
|
|
5409
|
+
type: object
|
|
5410
|
+
properties:
|
|
5411
|
+
hasUnseenLatestAssistantMessage:
|
|
5412
|
+
type: boolean
|
|
5413
|
+
latestAssistantMessageAt:
|
|
5414
|
+
type: number
|
|
5415
|
+
lastSeenAssistantMessageAt:
|
|
5416
|
+
type: number
|
|
5417
|
+
lastSeenConfidence:
|
|
5418
|
+
type: string
|
|
5419
|
+
enum:
|
|
5420
|
+
- explicit
|
|
5421
|
+
- inferred
|
|
5422
|
+
lastSeenSignalType:
|
|
5423
|
+
type: string
|
|
5424
|
+
enum:
|
|
5425
|
+
- macos_notification_view
|
|
5426
|
+
- macos_conversation_opened
|
|
5427
|
+
- ios_conversation_opened
|
|
5428
|
+
- telegram_inbound_message
|
|
5429
|
+
- telegram_callback
|
|
5430
|
+
- slack_inbound_message
|
|
5431
|
+
- slack_callback
|
|
5432
|
+
required:
|
|
5433
|
+
- hasUnseenLatestAssistantMessage
|
|
5434
|
+
additionalProperties: false
|
|
5435
|
+
isPinned:
|
|
5436
|
+
type: boolean
|
|
5437
|
+
const: true
|
|
5438
|
+
displayOrder:
|
|
5439
|
+
anyOf:
|
|
5440
|
+
- type: number
|
|
5441
|
+
- type: "null"
|
|
5442
|
+
groupId:
|
|
5443
|
+
anyOf:
|
|
5444
|
+
- type: string
|
|
5445
|
+
- type: "null"
|
|
5446
|
+
forkParent:
|
|
5447
|
+
type: object
|
|
5448
|
+
properties:
|
|
5449
|
+
conversationId:
|
|
5450
|
+
type: string
|
|
5451
|
+
messageId:
|
|
5452
|
+
type: string
|
|
5453
|
+
title:
|
|
5454
|
+
type: string
|
|
5455
|
+
required:
|
|
5456
|
+
- conversationId
|
|
5457
|
+
- messageId
|
|
5458
|
+
- title
|
|
5459
|
+
additionalProperties: false
|
|
5460
|
+
archivedAt:
|
|
5461
|
+
type: number
|
|
5462
|
+
inferenceProfile:
|
|
5463
|
+
type: string
|
|
5464
|
+
required:
|
|
5465
|
+
- id
|
|
5466
|
+
- title
|
|
5467
|
+
- createdAt
|
|
5468
|
+
- updatedAt
|
|
5469
|
+
- lastMessageAt
|
|
5470
|
+
- conversationType
|
|
5471
|
+
- source
|
|
5472
|
+
- groupId
|
|
5473
|
+
additionalProperties: false
|
|
5474
|
+
required:
|
|
5475
|
+
- conversation
|
|
5476
|
+
additionalProperties: false
|
|
5477
|
+
parameters:
|
|
5478
|
+
- name: id
|
|
5479
|
+
in: path
|
|
5480
|
+
required: true
|
|
5481
|
+
schema:
|
|
5482
|
+
type: string
|
|
5483
|
+
/v1/conversations/{id}/analyze:
|
|
5484
|
+
post:
|
|
5485
|
+
operationId: conversations_by_id_analyze_post
|
|
5486
|
+
summary: Analyze a conversation
|
|
5487
|
+
description: Create a new conversation with a structured self-assessment of an existing conversation.
|
|
5488
|
+
tags:
|
|
5489
|
+
- conversations
|
|
5490
|
+
responses:
|
|
5491
|
+
"200":
|
|
5492
|
+
description: Successful response
|
|
5493
|
+
content:
|
|
5494
|
+
application/json:
|
|
5495
|
+
schema:
|
|
5496
|
+
type: object
|
|
5497
|
+
properties:
|
|
5498
|
+
conversation:
|
|
5499
|
+
type: object
|
|
5500
|
+
properties:
|
|
5501
|
+
id:
|
|
5502
|
+
type: string
|
|
5503
|
+
title:
|
|
5504
|
+
type: string
|
|
5505
|
+
createdAt:
|
|
5506
|
+
type: number
|
|
5507
|
+
updatedAt:
|
|
5508
|
+
type: number
|
|
5509
|
+
lastMessageAt:
|
|
5510
|
+
anyOf:
|
|
5511
|
+
- type: number
|
|
5512
|
+
- type: "null"
|
|
5513
|
+
conversationType:
|
|
5514
|
+
type: string
|
|
5515
|
+
enum:
|
|
5516
|
+
- standard
|
|
5517
|
+
- background
|
|
5518
|
+
- scheduled
|
|
5519
|
+
source:
|
|
5520
|
+
type: string
|
|
5521
|
+
scheduleJobId:
|
|
5522
|
+
type: string
|
|
5523
|
+
channelBinding:
|
|
5524
|
+
type: object
|
|
5525
|
+
properties:
|
|
5526
|
+
sourceChannel:
|
|
5527
|
+
type: string
|
|
5528
|
+
externalChatId:
|
|
5529
|
+
type: string
|
|
5530
|
+
externalChatName:
|
|
5531
|
+
type: string
|
|
5532
|
+
externalThreadId:
|
|
5533
|
+
type: string
|
|
5534
|
+
externalUserId:
|
|
5535
|
+
anyOf:
|
|
5536
|
+
- type: string
|
|
5537
|
+
- type: "null"
|
|
5538
|
+
displayName:
|
|
5539
|
+
anyOf:
|
|
5540
|
+
- type: string
|
|
5541
|
+
- type: "null"
|
|
5542
|
+
username:
|
|
5543
|
+
anyOf:
|
|
5544
|
+
- type: string
|
|
5545
|
+
- type: "null"
|
|
5546
|
+
slackThread:
|
|
5547
|
+
type: object
|
|
5548
|
+
properties:
|
|
5549
|
+
channelId:
|
|
5550
|
+
type: string
|
|
5551
|
+
threadTs:
|
|
5552
|
+
type: string
|
|
5553
|
+
link:
|
|
5554
|
+
type: object
|
|
5555
|
+
properties:
|
|
5556
|
+
appUrl:
|
|
5557
|
+
type: string
|
|
5558
|
+
webUrl:
|
|
5559
|
+
type: string
|
|
5560
|
+
additionalProperties: false
|
|
5561
|
+
required:
|
|
5562
|
+
- channelId
|
|
5563
|
+
- threadTs
|
|
5564
|
+
additionalProperties: false
|
|
5565
|
+
slackChannel:
|
|
5566
|
+
type: object
|
|
5567
|
+
properties:
|
|
5568
|
+
channelId:
|
|
5569
|
+
type: string
|
|
5570
|
+
name:
|
|
5571
|
+
type: string
|
|
5572
|
+
link:
|
|
5573
|
+
type: object
|
|
5574
|
+
properties:
|
|
5575
|
+
webUrl:
|
|
5576
|
+
type: string
|
|
5577
|
+
required:
|
|
5578
|
+
- webUrl
|
|
5579
|
+
additionalProperties: false
|
|
5580
|
+
required:
|
|
5581
|
+
- channelId
|
|
5582
|
+
additionalProperties: false
|
|
5583
|
+
required:
|
|
5584
|
+
- sourceChannel
|
|
5585
|
+
- externalChatId
|
|
5586
|
+
- externalUserId
|
|
5587
|
+
- displayName
|
|
5588
|
+
- username
|
|
5589
|
+
additionalProperties: false
|
|
5590
|
+
conversationOriginChannel:
|
|
5591
|
+
anyOf:
|
|
5592
|
+
- type: string
|
|
5593
|
+
enum:
|
|
5594
|
+
- telegram
|
|
5595
|
+
- phone
|
|
5596
|
+
- vellum
|
|
5597
|
+
- whatsapp
|
|
5598
|
+
- slack
|
|
5599
|
+
- email
|
|
5600
|
+
- platform
|
|
5601
|
+
- a2a
|
|
5602
|
+
- type: "null"
|
|
5603
|
+
assistantAttention:
|
|
5604
|
+
type: object
|
|
5605
|
+
properties:
|
|
5606
|
+
hasUnseenLatestAssistantMessage:
|
|
5607
|
+
type: boolean
|
|
5608
|
+
latestAssistantMessageAt:
|
|
5609
|
+
type: number
|
|
5610
|
+
lastSeenAssistantMessageAt:
|
|
5611
|
+
type: number
|
|
5612
|
+
lastSeenConfidence:
|
|
5613
|
+
type: string
|
|
5614
|
+
enum:
|
|
5615
|
+
- explicit
|
|
5616
|
+
- inferred
|
|
5617
|
+
lastSeenSignalType:
|
|
5618
|
+
type: string
|
|
5619
|
+
enum:
|
|
5620
|
+
- macos_notification_view
|
|
5621
|
+
- macos_conversation_opened
|
|
5622
|
+
- ios_conversation_opened
|
|
5623
|
+
- telegram_inbound_message
|
|
5624
|
+
- telegram_callback
|
|
5625
|
+
- slack_inbound_message
|
|
5626
|
+
- slack_callback
|
|
5627
|
+
required:
|
|
5628
|
+
- hasUnseenLatestAssistantMessage
|
|
5629
|
+
additionalProperties: false
|
|
5630
|
+
isPinned:
|
|
5631
|
+
type: boolean
|
|
5632
|
+
const: true
|
|
5633
|
+
displayOrder:
|
|
5634
|
+
anyOf:
|
|
5635
|
+
- type: number
|
|
5636
|
+
- type: "null"
|
|
5637
|
+
groupId:
|
|
5638
|
+
anyOf:
|
|
5639
|
+
- type: string
|
|
5640
|
+
- type: "null"
|
|
5641
|
+
forkParent:
|
|
5642
|
+
type: object
|
|
5643
|
+
properties:
|
|
5644
|
+
conversationId:
|
|
5645
|
+
type: string
|
|
5646
|
+
messageId:
|
|
5647
|
+
type: string
|
|
5648
|
+
title:
|
|
5649
|
+
type: string
|
|
5650
|
+
required:
|
|
5651
|
+
- conversationId
|
|
5652
|
+
- messageId
|
|
5653
|
+
- title
|
|
5654
|
+
additionalProperties: false
|
|
5655
|
+
archivedAt:
|
|
5656
|
+
type: number
|
|
5657
|
+
inferenceProfile:
|
|
5658
|
+
type: string
|
|
5659
|
+
required:
|
|
5660
|
+
- id
|
|
5661
|
+
- title
|
|
5662
|
+
- createdAt
|
|
5663
|
+
- updatedAt
|
|
5664
|
+
- lastMessageAt
|
|
5665
|
+
- conversationType
|
|
5666
|
+
- source
|
|
5667
|
+
- groupId
|
|
5668
|
+
additionalProperties: false
|
|
5669
|
+
required:
|
|
5670
|
+
- conversation
|
|
4432
5671
|
additionalProperties: false
|
|
4433
|
-
parameters:
|
|
4434
|
-
- name: conversationId
|
|
4435
|
-
in: path
|
|
4436
|
-
required: true
|
|
4437
|
-
schema:
|
|
4438
|
-
type: string
|
|
4439
|
-
/v1/conversations/{id}:
|
|
4440
|
-
delete:
|
|
4441
|
-
operationId: conversations_by_id_delete
|
|
4442
|
-
summary: Delete a conversation
|
|
4443
|
-
description: Permanently delete a single conversation and its messages.
|
|
4444
|
-
tags:
|
|
4445
|
-
- conversations
|
|
4446
|
-
responses:
|
|
4447
|
-
"204":
|
|
4448
|
-
description: Successful response
|
|
4449
|
-
parameters:
|
|
4450
|
-
- name: id
|
|
4451
|
-
in: path
|
|
4452
|
-
required: true
|
|
4453
|
-
schema:
|
|
4454
|
-
type: string
|
|
4455
|
-
get:
|
|
4456
|
-
operationId: conversations_by_id_get
|
|
4457
|
-
summary: Get conversation detail
|
|
4458
|
-
description: Retrieve a single conversation with full metadata.
|
|
4459
|
-
tags:
|
|
4460
|
-
- conversations
|
|
4461
|
-
responses:
|
|
4462
|
-
"200":
|
|
4463
|
-
description: Successful response
|
|
4464
|
-
parameters:
|
|
4465
|
-
- name: id
|
|
4466
|
-
in: path
|
|
4467
|
-
required: true
|
|
4468
|
-
schema:
|
|
4469
|
-
type: string
|
|
4470
|
-
/v1/conversations/{id}/analyze:
|
|
4471
|
-
post:
|
|
4472
|
-
operationId: conversations_by_id_analyze_post
|
|
4473
|
-
summary: Analyze a conversation
|
|
4474
|
-
description: Create a new conversation with a structured self-assessment of an existing conversation.
|
|
4475
|
-
tags:
|
|
4476
|
-
- conversations
|
|
4477
|
-
responses:
|
|
4478
|
-
"200":
|
|
4479
|
-
description: Successful response
|
|
4480
5672
|
parameters:
|
|
4481
5673
|
- name: id
|
|
4482
5674
|
in: path
|
|
@@ -4493,6 +5685,19 @@ paths:
|
|
|
4493
5685
|
responses:
|
|
4494
5686
|
"200":
|
|
4495
5687
|
description: Successful response
|
|
5688
|
+
content:
|
|
5689
|
+
application/json:
|
|
5690
|
+
schema:
|
|
5691
|
+
type: object
|
|
5692
|
+
properties:
|
|
5693
|
+
ok:
|
|
5694
|
+
type: boolean
|
|
5695
|
+
conversationId:
|
|
5696
|
+
type: string
|
|
5697
|
+
required:
|
|
5698
|
+
- ok
|
|
5699
|
+
- conversationId
|
|
5700
|
+
additionalProperties: false
|
|
4496
5701
|
parameters:
|
|
4497
5702
|
- name: id
|
|
4498
5703
|
in: path
|
|
@@ -4531,6 +5736,105 @@ paths:
|
|
|
4531
5736
|
required: true
|
|
4532
5737
|
schema:
|
|
4533
5738
|
type: string
|
|
5739
|
+
/v1/conversations/{id}/compaction:
|
|
5740
|
+
get:
|
|
5741
|
+
operationId: conversations_by_id_compaction_get
|
|
5742
|
+
summary: Get the compaction trail leading up to an LLM call
|
|
5743
|
+
description:
|
|
5744
|
+
Return the chronological list of compaction events that ran in this conversation in the open window between
|
|
5745
|
+
the previous non-`compactionAgent` LLM call and the call identified by `callId`. Projected from
|
|
5746
|
+
`llm_request_logs` rows where `call_site = "compactionAgent"`. When the selected call is the first real call in
|
|
5747
|
+
the conversation, every preceding compaction is in scope. Drives the Inspector's Compaction tab.
|
|
5748
|
+
tags:
|
|
5749
|
+
- conversations
|
|
5750
|
+
responses:
|
|
5751
|
+
"200":
|
|
5752
|
+
description: Successful response
|
|
5753
|
+
content:
|
|
5754
|
+
application/json:
|
|
5755
|
+
schema:
|
|
5756
|
+
type: object
|
|
5757
|
+
properties:
|
|
5758
|
+
conversationId:
|
|
5759
|
+
type: string
|
|
5760
|
+
events:
|
|
5761
|
+
type: array
|
|
5762
|
+
items:
|
|
5763
|
+
type: object
|
|
5764
|
+
properties:
|
|
5765
|
+
id:
|
|
5766
|
+
type: string
|
|
5767
|
+
createdAt:
|
|
5768
|
+
type: number
|
|
5769
|
+
model:
|
|
5770
|
+
anyOf:
|
|
5771
|
+
- type: string
|
|
5772
|
+
- type: "null"
|
|
5773
|
+
provider:
|
|
5774
|
+
anyOf:
|
|
5775
|
+
- type: string
|
|
5776
|
+
- type: "null"
|
|
5777
|
+
inputTokens:
|
|
5778
|
+
anyOf:
|
|
5779
|
+
- type: number
|
|
5780
|
+
- type: "null"
|
|
5781
|
+
outputTokens:
|
|
5782
|
+
anyOf:
|
|
5783
|
+
- type: number
|
|
5784
|
+
- type: "null"
|
|
5785
|
+
durationMs:
|
|
5786
|
+
anyOf:
|
|
5787
|
+
- type: number
|
|
5788
|
+
- type: "null"
|
|
5789
|
+
responsePreview:
|
|
5790
|
+
anyOf:
|
|
5791
|
+
- type: string
|
|
5792
|
+
- type: "null"
|
|
5793
|
+
requestMessageCount:
|
|
5794
|
+
anyOf:
|
|
5795
|
+
- type: number
|
|
5796
|
+
- type: "null"
|
|
5797
|
+
stopReason:
|
|
5798
|
+
anyOf:
|
|
5799
|
+
- type: string
|
|
5800
|
+
- type: "null"
|
|
5801
|
+
estimatedCostUsd:
|
|
5802
|
+
anyOf:
|
|
5803
|
+
- type: number
|
|
5804
|
+
- type: "null"
|
|
5805
|
+
required:
|
|
5806
|
+
- id
|
|
5807
|
+
- createdAt
|
|
5808
|
+
- model
|
|
5809
|
+
- provider
|
|
5810
|
+
- inputTokens
|
|
5811
|
+
- outputTokens
|
|
5812
|
+
- durationMs
|
|
5813
|
+
- responsePreview
|
|
5814
|
+
- requestMessageCount
|
|
5815
|
+
- stopReason
|
|
5816
|
+
- estimatedCostUsd
|
|
5817
|
+
additionalProperties: false
|
|
5818
|
+
required:
|
|
5819
|
+
- conversationId
|
|
5820
|
+
- events
|
|
5821
|
+
additionalProperties: false
|
|
5822
|
+
"400":
|
|
5823
|
+
description: Returned when the callId is missing or refers to a call in a different conversation.
|
|
5824
|
+
"404":
|
|
5825
|
+
description: Returned when the conversation or the referenced LLM call does not exist.
|
|
5826
|
+
parameters:
|
|
5827
|
+
- name: id
|
|
5828
|
+
in: path
|
|
5829
|
+
required: true
|
|
5830
|
+
schema:
|
|
5831
|
+
type: string
|
|
5832
|
+
- name: callId
|
|
5833
|
+
in: query
|
|
5834
|
+
required: true
|
|
5835
|
+
schema:
|
|
5836
|
+
type: string
|
|
5837
|
+
description: ID of the selected LLM call from the rail. Defines the chronological cutoff for the trail.
|
|
4534
5838
|
/v1/conversations/{id}/inference-profile:
|
|
4535
5839
|
put:
|
|
4536
5840
|
operationId: conversations_by_id_inferenceprofile_put
|
|
@@ -4634,6 +5938,16 @@ paths:
|
|
|
4634
5938
|
responses:
|
|
4635
5939
|
"200":
|
|
4636
5940
|
description: Successful response
|
|
5941
|
+
content:
|
|
5942
|
+
application/json:
|
|
5943
|
+
schema:
|
|
5944
|
+
type: object
|
|
5945
|
+
properties:
|
|
5946
|
+
ok:
|
|
5947
|
+
type: boolean
|
|
5948
|
+
required:
|
|
5949
|
+
- ok
|
|
5950
|
+
additionalProperties: false
|
|
4637
5951
|
parameters:
|
|
4638
5952
|
- name: id
|
|
4639
5953
|
in: path
|
|
@@ -4754,6 +6068,19 @@ paths:
|
|
|
4754
6068
|
responses:
|
|
4755
6069
|
"200":
|
|
4756
6070
|
description: Successful response
|
|
6071
|
+
content:
|
|
6072
|
+
application/json:
|
|
6073
|
+
schema:
|
|
6074
|
+
type: object
|
|
6075
|
+
properties:
|
|
6076
|
+
ok:
|
|
6077
|
+
type: boolean
|
|
6078
|
+
conversationId:
|
|
6079
|
+
type: string
|
|
6080
|
+
required:
|
|
6081
|
+
- ok
|
|
6082
|
+
- conversationId
|
|
6083
|
+
additionalProperties: false
|
|
4757
6084
|
parameters:
|
|
4758
6085
|
- name: id
|
|
4759
6086
|
in: path
|
|
@@ -5087,38 +6414,217 @@ paths:
|
|
|
5087
6414
|
conversationId:
|
|
5088
6415
|
type: string
|
|
5089
6416
|
required:
|
|
5090
|
-
- detached
|
|
5091
|
-
- channelId
|
|
5092
|
-
- threadTs
|
|
5093
|
-
- source
|
|
6417
|
+
- detached
|
|
6418
|
+
- channelId
|
|
6419
|
+
- threadTs
|
|
6420
|
+
- source
|
|
6421
|
+
additionalProperties: false
|
|
6422
|
+
requestBody:
|
|
6423
|
+
required: true
|
|
6424
|
+
content:
|
|
6425
|
+
application/json:
|
|
6426
|
+
schema:
|
|
6427
|
+
type: object
|
|
6428
|
+
properties:
|
|
6429
|
+
conversationId:
|
|
6430
|
+
type: string
|
|
6431
|
+
minLength: 1
|
|
6432
|
+
channelId:
|
|
6433
|
+
type: string
|
|
6434
|
+
minLength: 1
|
|
6435
|
+
threadTs:
|
|
6436
|
+
type: string
|
|
6437
|
+
minLength: 1
|
|
6438
|
+
additionalProperties: false
|
|
6439
|
+
/v1/conversations/fork:
|
|
6440
|
+
post:
|
|
6441
|
+
operationId: conversations_fork_post
|
|
6442
|
+
summary: Fork a conversation
|
|
6443
|
+
description: Create a copy of a conversation, optionally truncated at a specific message.
|
|
6444
|
+
tags:
|
|
6445
|
+
- conversations
|
|
6446
|
+
responses:
|
|
6447
|
+
"200":
|
|
6448
|
+
description: Successful response
|
|
6449
|
+
content:
|
|
6450
|
+
application/json:
|
|
6451
|
+
schema:
|
|
6452
|
+
type: object
|
|
6453
|
+
properties:
|
|
6454
|
+
conversation:
|
|
6455
|
+
type: object
|
|
6456
|
+
properties:
|
|
6457
|
+
id:
|
|
6458
|
+
type: string
|
|
6459
|
+
title:
|
|
6460
|
+
type: string
|
|
6461
|
+
createdAt:
|
|
6462
|
+
type: number
|
|
6463
|
+
updatedAt:
|
|
6464
|
+
type: number
|
|
6465
|
+
lastMessageAt:
|
|
6466
|
+
anyOf:
|
|
6467
|
+
- type: number
|
|
6468
|
+
- type: "null"
|
|
6469
|
+
conversationType:
|
|
6470
|
+
type: string
|
|
6471
|
+
enum:
|
|
6472
|
+
- standard
|
|
6473
|
+
- background
|
|
6474
|
+
- scheduled
|
|
6475
|
+
source:
|
|
6476
|
+
type: string
|
|
6477
|
+
scheduleJobId:
|
|
6478
|
+
type: string
|
|
6479
|
+
channelBinding:
|
|
6480
|
+
type: object
|
|
6481
|
+
properties:
|
|
6482
|
+
sourceChannel:
|
|
6483
|
+
type: string
|
|
6484
|
+
externalChatId:
|
|
6485
|
+
type: string
|
|
6486
|
+
externalChatName:
|
|
6487
|
+
type: string
|
|
6488
|
+
externalThreadId:
|
|
6489
|
+
type: string
|
|
6490
|
+
externalUserId:
|
|
6491
|
+
anyOf:
|
|
6492
|
+
- type: string
|
|
6493
|
+
- type: "null"
|
|
6494
|
+
displayName:
|
|
6495
|
+
anyOf:
|
|
6496
|
+
- type: string
|
|
6497
|
+
- type: "null"
|
|
6498
|
+
username:
|
|
6499
|
+
anyOf:
|
|
6500
|
+
- type: string
|
|
6501
|
+
- type: "null"
|
|
6502
|
+
slackThread:
|
|
6503
|
+
type: object
|
|
6504
|
+
properties:
|
|
6505
|
+
channelId:
|
|
6506
|
+
type: string
|
|
6507
|
+
threadTs:
|
|
6508
|
+
type: string
|
|
6509
|
+
link:
|
|
6510
|
+
type: object
|
|
6511
|
+
properties:
|
|
6512
|
+
appUrl:
|
|
6513
|
+
type: string
|
|
6514
|
+
webUrl:
|
|
6515
|
+
type: string
|
|
6516
|
+
additionalProperties: false
|
|
6517
|
+
required:
|
|
6518
|
+
- channelId
|
|
6519
|
+
- threadTs
|
|
6520
|
+
additionalProperties: false
|
|
6521
|
+
slackChannel:
|
|
6522
|
+
type: object
|
|
6523
|
+
properties:
|
|
6524
|
+
channelId:
|
|
6525
|
+
type: string
|
|
6526
|
+
name:
|
|
6527
|
+
type: string
|
|
6528
|
+
link:
|
|
6529
|
+
type: object
|
|
6530
|
+
properties:
|
|
6531
|
+
webUrl:
|
|
6532
|
+
type: string
|
|
6533
|
+
required:
|
|
6534
|
+
- webUrl
|
|
6535
|
+
additionalProperties: false
|
|
6536
|
+
required:
|
|
6537
|
+
- channelId
|
|
6538
|
+
additionalProperties: false
|
|
6539
|
+
required:
|
|
6540
|
+
- sourceChannel
|
|
6541
|
+
- externalChatId
|
|
6542
|
+
- externalUserId
|
|
6543
|
+
- displayName
|
|
6544
|
+
- username
|
|
6545
|
+
additionalProperties: false
|
|
6546
|
+
conversationOriginChannel:
|
|
6547
|
+
anyOf:
|
|
6548
|
+
- type: string
|
|
6549
|
+
enum:
|
|
6550
|
+
- telegram
|
|
6551
|
+
- phone
|
|
6552
|
+
- vellum
|
|
6553
|
+
- whatsapp
|
|
6554
|
+
- slack
|
|
6555
|
+
- email
|
|
6556
|
+
- platform
|
|
6557
|
+
- a2a
|
|
6558
|
+
- type: "null"
|
|
6559
|
+
assistantAttention:
|
|
6560
|
+
type: object
|
|
6561
|
+
properties:
|
|
6562
|
+
hasUnseenLatestAssistantMessage:
|
|
6563
|
+
type: boolean
|
|
6564
|
+
latestAssistantMessageAt:
|
|
6565
|
+
type: number
|
|
6566
|
+
lastSeenAssistantMessageAt:
|
|
6567
|
+
type: number
|
|
6568
|
+
lastSeenConfidence:
|
|
6569
|
+
type: string
|
|
6570
|
+
enum:
|
|
6571
|
+
- explicit
|
|
6572
|
+
- inferred
|
|
6573
|
+
lastSeenSignalType:
|
|
6574
|
+
type: string
|
|
6575
|
+
enum:
|
|
6576
|
+
- macos_notification_view
|
|
6577
|
+
- macos_conversation_opened
|
|
6578
|
+
- ios_conversation_opened
|
|
6579
|
+
- telegram_inbound_message
|
|
6580
|
+
- telegram_callback
|
|
6581
|
+
- slack_inbound_message
|
|
6582
|
+
- slack_callback
|
|
6583
|
+
required:
|
|
6584
|
+
- hasUnseenLatestAssistantMessage
|
|
6585
|
+
additionalProperties: false
|
|
6586
|
+
isPinned:
|
|
6587
|
+
type: boolean
|
|
6588
|
+
const: true
|
|
6589
|
+
displayOrder:
|
|
6590
|
+
anyOf:
|
|
6591
|
+
- type: number
|
|
6592
|
+
- type: "null"
|
|
6593
|
+
groupId:
|
|
6594
|
+
anyOf:
|
|
6595
|
+
- type: string
|
|
6596
|
+
- type: "null"
|
|
6597
|
+
forkParent:
|
|
6598
|
+
type: object
|
|
6599
|
+
properties:
|
|
6600
|
+
conversationId:
|
|
6601
|
+
type: string
|
|
6602
|
+
messageId:
|
|
6603
|
+
type: string
|
|
6604
|
+
title:
|
|
6605
|
+
type: string
|
|
6606
|
+
required:
|
|
6607
|
+
- conversationId
|
|
6608
|
+
- messageId
|
|
6609
|
+
- title
|
|
6610
|
+
additionalProperties: false
|
|
6611
|
+
archivedAt:
|
|
6612
|
+
type: number
|
|
6613
|
+
inferenceProfile:
|
|
6614
|
+
type: string
|
|
6615
|
+
required:
|
|
6616
|
+
- id
|
|
6617
|
+
- title
|
|
6618
|
+
- createdAt
|
|
6619
|
+
- updatedAt
|
|
6620
|
+
- lastMessageAt
|
|
6621
|
+
- conversationType
|
|
6622
|
+
- source
|
|
6623
|
+
- groupId
|
|
6624
|
+
additionalProperties: false
|
|
6625
|
+
required:
|
|
6626
|
+
- conversation
|
|
5094
6627
|
additionalProperties: false
|
|
5095
|
-
requestBody:
|
|
5096
|
-
required: true
|
|
5097
|
-
content:
|
|
5098
|
-
application/json:
|
|
5099
|
-
schema:
|
|
5100
|
-
type: object
|
|
5101
|
-
properties:
|
|
5102
|
-
conversationId:
|
|
5103
|
-
type: string
|
|
5104
|
-
minLength: 1
|
|
5105
|
-
channelId:
|
|
5106
|
-
type: string
|
|
5107
|
-
minLength: 1
|
|
5108
|
-
threadTs:
|
|
5109
|
-
type: string
|
|
5110
|
-
minLength: 1
|
|
5111
|
-
additionalProperties: false
|
|
5112
|
-
/v1/conversations/fork:
|
|
5113
|
-
post:
|
|
5114
|
-
operationId: conversations_fork_post
|
|
5115
|
-
summary: Fork a conversation
|
|
5116
|
-
description: Create a copy of a conversation, optionally truncated at a specific message.
|
|
5117
|
-
tags:
|
|
5118
|
-
- conversations
|
|
5119
|
-
responses:
|
|
5120
|
-
"200":
|
|
5121
|
-
description: Successful response
|
|
5122
6628
|
requestBody:
|
|
5123
6629
|
required: true
|
|
5124
6630
|
content:
|
|
@@ -5432,6 +6938,76 @@ paths:
|
|
|
5432
6938
|
schema:
|
|
5433
6939
|
type: string
|
|
5434
6940
|
description: Optional conversation ID filter
|
|
6941
|
+
/v1/conversations/llm-context:
|
|
6942
|
+
get:
|
|
6943
|
+
operationId: conversations_llmcontext_get
|
|
6944
|
+
summary: Get LLM context for a conversation
|
|
6945
|
+
description: Returns normalized LLM request/response logs for an entire conversation.
|
|
6946
|
+
tags:
|
|
6947
|
+
- conversations
|
|
6948
|
+
responses:
|
|
6949
|
+
"200":
|
|
6950
|
+
description: Successful response
|
|
6951
|
+
content:
|
|
6952
|
+
application/json:
|
|
6953
|
+
schema:
|
|
6954
|
+
type: object
|
|
6955
|
+
properties:
|
|
6956
|
+
conversationKey:
|
|
6957
|
+
anyOf:
|
|
6958
|
+
- type: string
|
|
6959
|
+
- type: "null"
|
|
6960
|
+
conversationId:
|
|
6961
|
+
anyOf:
|
|
6962
|
+
- type: string
|
|
6963
|
+
- type: "null"
|
|
6964
|
+
conversationKind:
|
|
6965
|
+
type: string
|
|
6966
|
+
enum:
|
|
6967
|
+
- user
|
|
6968
|
+
- background
|
|
6969
|
+
- background_memory_consolidation
|
|
6970
|
+
- scheduled
|
|
6971
|
+
conversationTotalEstimatedCostUsd:
|
|
6972
|
+
anyOf:
|
|
6973
|
+
- type: number
|
|
6974
|
+
- type: "null"
|
|
6975
|
+
logs:
|
|
6976
|
+
type: array
|
|
6977
|
+
items: {}
|
|
6978
|
+
memoryRecall:
|
|
6979
|
+
anyOf:
|
|
6980
|
+
- type: object
|
|
6981
|
+
properties: {}
|
|
6982
|
+
additionalProperties: {}
|
|
6983
|
+
- type: "null"
|
|
6984
|
+
memoryV2Activation:
|
|
6985
|
+
anyOf:
|
|
6986
|
+
- type: object
|
|
6987
|
+
properties: {}
|
|
6988
|
+
additionalProperties: {}
|
|
6989
|
+
- type: "null"
|
|
6990
|
+
required:
|
|
6991
|
+
- conversationId
|
|
6992
|
+
- conversationKind
|
|
6993
|
+
- conversationTotalEstimatedCostUsd
|
|
6994
|
+
- logs
|
|
6995
|
+
- memoryRecall
|
|
6996
|
+
- memoryV2Activation
|
|
6997
|
+
additionalProperties: false
|
|
6998
|
+
parameters:
|
|
6999
|
+
- name: conversationKey
|
|
7000
|
+
in: query
|
|
7001
|
+
required: false
|
|
7002
|
+
schema:
|
|
7003
|
+
type: string
|
|
7004
|
+
description: Stable external conversation key.
|
|
7005
|
+
- name: conversationId
|
|
7006
|
+
in: query
|
|
7007
|
+
required: false
|
|
7008
|
+
schema:
|
|
7009
|
+
type: string
|
|
7010
|
+
description: Internal conversation identifier.
|
|
5435
7011
|
/v1/conversations/rename:
|
|
5436
7012
|
post:
|
|
5437
7013
|
operationId: conversations_rename_post
|
|
@@ -5469,6 +7045,16 @@ paths:
|
|
|
5469
7045
|
responses:
|
|
5470
7046
|
"200":
|
|
5471
7047
|
description: Successful response
|
|
7048
|
+
content:
|
|
7049
|
+
application/json:
|
|
7050
|
+
schema:
|
|
7051
|
+
type: object
|
|
7052
|
+
properties:
|
|
7053
|
+
ok:
|
|
7054
|
+
type: boolean
|
|
7055
|
+
required:
|
|
7056
|
+
- ok
|
|
7057
|
+
additionalProperties: false
|
|
5472
7058
|
requestBody:
|
|
5473
7059
|
required: true
|
|
5474
7060
|
content:
|
|
@@ -5478,8 +7064,22 @@ paths:
|
|
|
5478
7064
|
properties:
|
|
5479
7065
|
updates:
|
|
5480
7066
|
type: array
|
|
5481
|
-
items:
|
|
5482
|
-
|
|
7067
|
+
items:
|
|
7068
|
+
type: object
|
|
7069
|
+
properties:
|
|
7070
|
+
conversationId:
|
|
7071
|
+
type: string
|
|
7072
|
+
displayOrder:
|
|
7073
|
+
type: number
|
|
7074
|
+
isPinned:
|
|
7075
|
+
type: boolean
|
|
7076
|
+
groupId:
|
|
7077
|
+
anyOf:
|
|
7078
|
+
- type: string
|
|
7079
|
+
- type: "null"
|
|
7080
|
+
required:
|
|
7081
|
+
- conversationId
|
|
7082
|
+
additionalProperties: false
|
|
5483
7083
|
required:
|
|
5484
7084
|
- updates
|
|
5485
7085
|
additionalProperties: false
|
|
@@ -5536,6 +7136,48 @@ paths:
|
|
|
5536
7136
|
responses:
|
|
5537
7137
|
"200":
|
|
5538
7138
|
description: Successful response
|
|
7139
|
+
content:
|
|
7140
|
+
application/json:
|
|
7141
|
+
schema:
|
|
7142
|
+
type: object
|
|
7143
|
+
properties:
|
|
7144
|
+
ok:
|
|
7145
|
+
type: boolean
|
|
7146
|
+
required:
|
|
7147
|
+
- ok
|
|
7148
|
+
additionalProperties: false
|
|
7149
|
+
requestBody:
|
|
7150
|
+
required: true
|
|
7151
|
+
content:
|
|
7152
|
+
application/json:
|
|
7153
|
+
schema:
|
|
7154
|
+
type: object
|
|
7155
|
+
properties:
|
|
7156
|
+
conversationId:
|
|
7157
|
+
type: string
|
|
7158
|
+
sourceChannel:
|
|
7159
|
+
type: string
|
|
7160
|
+
signalType:
|
|
7161
|
+
type: string
|
|
7162
|
+
confidence:
|
|
7163
|
+
type: string
|
|
7164
|
+
enum:
|
|
7165
|
+
- explicit
|
|
7166
|
+
- inferred
|
|
7167
|
+
source:
|
|
7168
|
+
type: string
|
|
7169
|
+
evidenceText:
|
|
7170
|
+
type: string
|
|
7171
|
+
metadata:
|
|
7172
|
+
type: object
|
|
7173
|
+
propertyNames:
|
|
7174
|
+
type: string
|
|
7175
|
+
additionalProperties: {}
|
|
7176
|
+
observedAt:
|
|
7177
|
+
type: number
|
|
7178
|
+
required:
|
|
7179
|
+
- conversationId
|
|
7180
|
+
additionalProperties: false
|
|
5539
7181
|
/v1/conversations/switch:
|
|
5540
7182
|
post:
|
|
5541
7183
|
operationId: conversations_switch_post
|
|
@@ -5589,6 +7231,28 @@ paths:
|
|
|
5589
7231
|
responses:
|
|
5590
7232
|
"200":
|
|
5591
7233
|
description: Successful response
|
|
7234
|
+
content:
|
|
7235
|
+
application/json:
|
|
7236
|
+
schema:
|
|
7237
|
+
type: object
|
|
7238
|
+
properties:
|
|
7239
|
+
ok:
|
|
7240
|
+
type: boolean
|
|
7241
|
+
required:
|
|
7242
|
+
- ok
|
|
7243
|
+
additionalProperties: false
|
|
7244
|
+
requestBody:
|
|
7245
|
+
required: true
|
|
7246
|
+
content:
|
|
7247
|
+
application/json:
|
|
7248
|
+
schema:
|
|
7249
|
+
type: object
|
|
7250
|
+
properties:
|
|
7251
|
+
conversationId:
|
|
7252
|
+
type: string
|
|
7253
|
+
required:
|
|
7254
|
+
- conversationId
|
|
7255
|
+
additionalProperties: false
|
|
5592
7256
|
/v1/conversations/wake:
|
|
5593
7257
|
post:
|
|
5594
7258
|
operationId: conversations_wake_post
|
|
@@ -6338,6 +8002,7 @@ paths:
|
|
|
6338
8002
|
enum:
|
|
6339
8003
|
- disabled
|
|
6340
8004
|
- ok
|
|
8005
|
+
- warning
|
|
6341
8006
|
- critical
|
|
6342
8007
|
- unknown
|
|
6343
8008
|
locked:
|
|
@@ -6423,6 +8088,7 @@ paths:
|
|
|
6423
8088
|
enum:
|
|
6424
8089
|
- disabled
|
|
6425
8090
|
- ok
|
|
8091
|
+
- warning
|
|
6426
8092
|
- critical
|
|
6427
8093
|
- unknown
|
|
6428
8094
|
locked:
|
|
@@ -6524,6 +8190,7 @@ paths:
|
|
|
6524
8190
|
enum:
|
|
6525
8191
|
- disabled
|
|
6526
8192
|
- ok
|
|
8193
|
+
- warning
|
|
6527
8194
|
- critical
|
|
6528
8195
|
- unknown
|
|
6529
8196
|
locked:
|
|
@@ -6599,8 +8266,29 @@ paths:
|
|
|
6599
8266
|
properties:
|
|
6600
8267
|
documents:
|
|
6601
8268
|
type: array
|
|
6602
|
-
items:
|
|
6603
|
-
|
|
8269
|
+
items:
|
|
8270
|
+
type: object
|
|
8271
|
+
properties:
|
|
8272
|
+
surfaceId:
|
|
8273
|
+
type: string
|
|
8274
|
+
conversationId:
|
|
8275
|
+
type: string
|
|
8276
|
+
title:
|
|
8277
|
+
type: string
|
|
8278
|
+
wordCount:
|
|
8279
|
+
type: number
|
|
8280
|
+
createdAt:
|
|
8281
|
+
type: number
|
|
8282
|
+
updatedAt:
|
|
8283
|
+
type: number
|
|
8284
|
+
required:
|
|
8285
|
+
- surfaceId
|
|
8286
|
+
- conversationId
|
|
8287
|
+
- title
|
|
8288
|
+
- wordCount
|
|
8289
|
+
- createdAt
|
|
8290
|
+
- updatedAt
|
|
8291
|
+
additionalProperties: false
|
|
6604
8292
|
required:
|
|
6605
8293
|
- documents
|
|
6606
8294
|
additionalProperties: false
|
|
@@ -7006,6 +8694,15 @@ paths:
|
|
|
7006
8694
|
responses:
|
|
7007
8695
|
"200":
|
|
7008
8696
|
description: Successful response
|
|
8697
|
+
/v1/domain/verification-status:
|
|
8698
|
+
post:
|
|
8699
|
+
operationId: domain_verificationstatus_post
|
|
8700
|
+
summary: Get live DNS verification status for a domain
|
|
8701
|
+
tags:
|
|
8702
|
+
- domain
|
|
8703
|
+
responses:
|
|
8704
|
+
"200":
|
|
8705
|
+
description: Successful response
|
|
7009
8706
|
/v1/email/attachment-get:
|
|
7010
8707
|
get:
|
|
7011
8708
|
operationId: email_attachmentget_get
|
|
@@ -7327,12 +9024,20 @@ paths:
|
|
|
7327
9024
|
"200":
|
|
7328
9025
|
description: Successful response
|
|
7329
9026
|
parameters:
|
|
9027
|
+
- name: conversationId
|
|
9028
|
+
in: query
|
|
9029
|
+
required: false
|
|
9030
|
+
schema:
|
|
9031
|
+
type: string
|
|
9032
|
+
description: Scope to a single conversation by its assistant-minted internal id. 404s if no such conversation exists.
|
|
7330
9033
|
- name: conversationKey
|
|
7331
9034
|
in: query
|
|
7332
9035
|
required: false
|
|
7333
9036
|
schema:
|
|
7334
9037
|
type: string
|
|
7335
|
-
description:
|
|
9038
|
+
description:
|
|
9039
|
+
Scope to a single conversation by an external key (non-vellum channels) or the web idempotency key.
|
|
9040
|
+
Materializes a row on first use. Ignored when conversationId is also provided.
|
|
7336
9041
|
/v1/events/emit:
|
|
7337
9042
|
post:
|
|
7338
9043
|
operationId: events_emit_post
|
|
@@ -7508,6 +9213,33 @@ paths:
|
|
|
7508
9213
|
responses:
|
|
7509
9214
|
"200":
|
|
7510
9215
|
description: Successful response
|
|
9216
|
+
content:
|
|
9217
|
+
application/json:
|
|
9218
|
+
schema:
|
|
9219
|
+
type: object
|
|
9220
|
+
properties:
|
|
9221
|
+
groups:
|
|
9222
|
+
type: array
|
|
9223
|
+
items:
|
|
9224
|
+
type: object
|
|
9225
|
+
properties:
|
|
9226
|
+
id:
|
|
9227
|
+
type: string
|
|
9228
|
+
name:
|
|
9229
|
+
type: string
|
|
9230
|
+
sortPosition:
|
|
9231
|
+
type: number
|
|
9232
|
+
isSystemGroup:
|
|
9233
|
+
type: boolean
|
|
9234
|
+
required:
|
|
9235
|
+
- id
|
|
9236
|
+
- name
|
|
9237
|
+
- sortPosition
|
|
9238
|
+
- isSystemGroup
|
|
9239
|
+
additionalProperties: false
|
|
9240
|
+
required:
|
|
9241
|
+
- groups
|
|
9242
|
+
additionalProperties: false
|
|
7511
9243
|
post:
|
|
7512
9244
|
operationId: groups_post
|
|
7513
9245
|
summary: Create group
|
|
@@ -7517,6 +9249,25 @@ paths:
|
|
|
7517
9249
|
responses:
|
|
7518
9250
|
"201":
|
|
7519
9251
|
description: Successful response
|
|
9252
|
+
content:
|
|
9253
|
+
application/json:
|
|
9254
|
+
schema:
|
|
9255
|
+
type: object
|
|
9256
|
+
properties:
|
|
9257
|
+
id:
|
|
9258
|
+
type: string
|
|
9259
|
+
name:
|
|
9260
|
+
type: string
|
|
9261
|
+
sortPosition:
|
|
9262
|
+
type: number
|
|
9263
|
+
isSystemGroup:
|
|
9264
|
+
type: boolean
|
|
9265
|
+
required:
|
|
9266
|
+
- id
|
|
9267
|
+
- name
|
|
9268
|
+
- sortPosition
|
|
9269
|
+
- isSystemGroup
|
|
9270
|
+
additionalProperties: false
|
|
7520
9271
|
"400":
|
|
7521
9272
|
description: Missing or invalid name, or sort_position ceiling reached
|
|
7522
9273
|
requestBody:
|
|
@@ -7561,6 +9312,25 @@ paths:
|
|
|
7561
9312
|
responses:
|
|
7562
9313
|
"200":
|
|
7563
9314
|
description: Successful response
|
|
9315
|
+
content:
|
|
9316
|
+
application/json:
|
|
9317
|
+
schema:
|
|
9318
|
+
type: object
|
|
9319
|
+
properties:
|
|
9320
|
+
id:
|
|
9321
|
+
type: string
|
|
9322
|
+
name:
|
|
9323
|
+
type: string
|
|
9324
|
+
sortPosition:
|
|
9325
|
+
type: number
|
|
9326
|
+
isSystemGroup:
|
|
9327
|
+
type: boolean
|
|
9328
|
+
required:
|
|
9329
|
+
- id
|
|
9330
|
+
- name
|
|
9331
|
+
- sortPosition
|
|
9332
|
+
- isSystemGroup
|
|
9333
|
+
additionalProperties: false
|
|
7564
9334
|
"403":
|
|
7565
9335
|
description: System group sort position cannot be changed
|
|
7566
9336
|
"404":
|
|
@@ -7593,6 +9363,16 @@ paths:
|
|
|
7593
9363
|
responses:
|
|
7594
9364
|
"200":
|
|
7595
9365
|
description: Successful response
|
|
9366
|
+
content:
|
|
9367
|
+
application/json:
|
|
9368
|
+
schema:
|
|
9369
|
+
type: object
|
|
9370
|
+
properties:
|
|
9371
|
+
ok:
|
|
9372
|
+
type: boolean
|
|
9373
|
+
required:
|
|
9374
|
+
- ok
|
|
9375
|
+
additionalProperties: false
|
|
7596
9376
|
"403":
|
|
7597
9377
|
description: Cannot reorder system groups
|
|
7598
9378
|
requestBody:
|
|
@@ -8605,6 +10385,197 @@ paths:
|
|
|
8605
10385
|
required: true
|
|
8606
10386
|
schema:
|
|
8607
10387
|
type: string
|
|
10388
|
+
/v1/home/feed/query:
|
|
10389
|
+
post:
|
|
10390
|
+
operationId: home_feed_query_post
|
|
10391
|
+
summary: List home feed items with filters
|
|
10392
|
+
description:
|
|
10393
|
+
Return home feed items filtered by status, urgency, category, conversation, and date range. Defaults to
|
|
10394
|
+
excluding dismissed items. Used by the assistant CLI to inspect what notifications have been surfaced to the
|
|
10395
|
+
user.
|
|
10396
|
+
tags:
|
|
10397
|
+
- home
|
|
10398
|
+
responses:
|
|
10399
|
+
"200":
|
|
10400
|
+
description: Successful response
|
|
10401
|
+
content:
|
|
10402
|
+
application/json:
|
|
10403
|
+
schema:
|
|
10404
|
+
type: object
|
|
10405
|
+
properties:
|
|
10406
|
+
items:
|
|
10407
|
+
type: array
|
|
10408
|
+
items:
|
|
10409
|
+
type: object
|
|
10410
|
+
properties:
|
|
10411
|
+
id:
|
|
10412
|
+
type: string
|
|
10413
|
+
type:
|
|
10414
|
+
type: string
|
|
10415
|
+
const: notification
|
|
10416
|
+
priority:
|
|
10417
|
+
type: integer
|
|
10418
|
+
minimum: 0
|
|
10419
|
+
maximum: 100
|
|
10420
|
+
title:
|
|
10421
|
+
type: string
|
|
10422
|
+
summary:
|
|
10423
|
+
type: string
|
|
10424
|
+
timestamp:
|
|
10425
|
+
type: string
|
|
10426
|
+
status:
|
|
10427
|
+
default: new
|
|
10428
|
+
type: string
|
|
10429
|
+
enum:
|
|
10430
|
+
- new
|
|
10431
|
+
- seen
|
|
10432
|
+
- acted_on
|
|
10433
|
+
- dismissed
|
|
10434
|
+
expiresAt:
|
|
10435
|
+
type: string
|
|
10436
|
+
actions:
|
|
10437
|
+
type: array
|
|
10438
|
+
items:
|
|
10439
|
+
type: object
|
|
10440
|
+
properties:
|
|
10441
|
+
id:
|
|
10442
|
+
type: string
|
|
10443
|
+
label:
|
|
10444
|
+
type: string
|
|
10445
|
+
prompt:
|
|
10446
|
+
type: string
|
|
10447
|
+
required:
|
|
10448
|
+
- id
|
|
10449
|
+
- label
|
|
10450
|
+
- prompt
|
|
10451
|
+
additionalProperties: false
|
|
10452
|
+
urgency:
|
|
10453
|
+
type: string
|
|
10454
|
+
enum:
|
|
10455
|
+
- low
|
|
10456
|
+
- medium
|
|
10457
|
+
- high
|
|
10458
|
+
- critical
|
|
10459
|
+
conversationId:
|
|
10460
|
+
type: string
|
|
10461
|
+
detailPanel:
|
|
10462
|
+
type: object
|
|
10463
|
+
properties:
|
|
10464
|
+
kind:
|
|
10465
|
+
type: string
|
|
10466
|
+
enum:
|
|
10467
|
+
- emailDraft
|
|
10468
|
+
- documentPreview
|
|
10469
|
+
- permissionChat
|
|
10470
|
+
- paymentAuth
|
|
10471
|
+
- toolPermission
|
|
10472
|
+
- updatesList
|
|
10473
|
+
required:
|
|
10474
|
+
- kind
|
|
10475
|
+
additionalProperties: false
|
|
10476
|
+
category:
|
|
10477
|
+
type: string
|
|
10478
|
+
enum:
|
|
10479
|
+
- security
|
|
10480
|
+
- scheduling
|
|
10481
|
+
- background
|
|
10482
|
+
- email
|
|
10483
|
+
- system
|
|
10484
|
+
noteworthy:
|
|
10485
|
+
type: boolean
|
|
10486
|
+
fromAssistant:
|
|
10487
|
+
type: boolean
|
|
10488
|
+
metadata:
|
|
10489
|
+
type: object
|
|
10490
|
+
propertyNames:
|
|
10491
|
+
type: string
|
|
10492
|
+
additionalProperties: {}
|
|
10493
|
+
createdAt:
|
|
10494
|
+
type: string
|
|
10495
|
+
required:
|
|
10496
|
+
- id
|
|
10497
|
+
- type
|
|
10498
|
+
- priority
|
|
10499
|
+
- summary
|
|
10500
|
+
- timestamp
|
|
10501
|
+
- status
|
|
10502
|
+
- createdAt
|
|
10503
|
+
additionalProperties: false
|
|
10504
|
+
total:
|
|
10505
|
+
type: integer
|
|
10506
|
+
minimum: 0
|
|
10507
|
+
maximum: 9007199254740991
|
|
10508
|
+
returned:
|
|
10509
|
+
type: integer
|
|
10510
|
+
minimum: 0
|
|
10511
|
+
maximum: 9007199254740991
|
|
10512
|
+
hasMore:
|
|
10513
|
+
type: boolean
|
|
10514
|
+
updatedAt:
|
|
10515
|
+
type: string
|
|
10516
|
+
required:
|
|
10517
|
+
- items
|
|
10518
|
+
- total
|
|
10519
|
+
- returned
|
|
10520
|
+
- hasMore
|
|
10521
|
+
- updatedAt
|
|
10522
|
+
additionalProperties: false
|
|
10523
|
+
requestBody:
|
|
10524
|
+
required: true
|
|
10525
|
+
content:
|
|
10526
|
+
application/json:
|
|
10527
|
+
schema:
|
|
10528
|
+
type: object
|
|
10529
|
+
properties:
|
|
10530
|
+
includeDismissed:
|
|
10531
|
+
type: boolean
|
|
10532
|
+
statuses:
|
|
10533
|
+
type: array
|
|
10534
|
+
items:
|
|
10535
|
+
type: string
|
|
10536
|
+
enum:
|
|
10537
|
+
- new
|
|
10538
|
+
- seen
|
|
10539
|
+
- acted_on
|
|
10540
|
+
- dismissed
|
|
10541
|
+
before:
|
|
10542
|
+
type: string
|
|
10543
|
+
after:
|
|
10544
|
+
type: string
|
|
10545
|
+
urgencies:
|
|
10546
|
+
type: array
|
|
10547
|
+
items:
|
|
10548
|
+
type: string
|
|
10549
|
+
enum:
|
|
10550
|
+
- low
|
|
10551
|
+
- medium
|
|
10552
|
+
- high
|
|
10553
|
+
- critical
|
|
10554
|
+
categories:
|
|
10555
|
+
type: array
|
|
10556
|
+
items:
|
|
10557
|
+
type: string
|
|
10558
|
+
enum:
|
|
10559
|
+
- security
|
|
10560
|
+
- scheduling
|
|
10561
|
+
- background
|
|
10562
|
+
- email
|
|
10563
|
+
- system
|
|
10564
|
+
conversationId:
|
|
10565
|
+
type: string
|
|
10566
|
+
fromAssistant:
|
|
10567
|
+
type: boolean
|
|
10568
|
+
noteworthy:
|
|
10569
|
+
type: boolean
|
|
10570
|
+
limit:
|
|
10571
|
+
type: integer
|
|
10572
|
+
exclusiveMinimum: 0
|
|
10573
|
+
maximum: 200
|
|
10574
|
+
offset:
|
|
10575
|
+
type: integer
|
|
10576
|
+
minimum: 0
|
|
10577
|
+
maximum: 9007199254740991
|
|
10578
|
+
additionalProperties: false
|
|
8608
10579
|
/v1/home/state:
|
|
8609
10580
|
get:
|
|
8610
10581
|
operationId: home_state_get
|
|
@@ -8967,6 +10938,9 @@ paths:
|
|
|
8967
10938
|
reason:
|
|
8968
10939
|
description: Detach reason
|
|
8969
10940
|
type: string
|
|
10941
|
+
clientId:
|
|
10942
|
+
description: Extension client ID that reported the invalidation
|
|
10943
|
+
type: string
|
|
8970
10944
|
additionalProperties: false
|
|
8971
10945
|
/v1/host-cu-result:
|
|
8972
10946
|
post:
|
|
@@ -9174,10 +11148,8 @@ paths:
|
|
|
9174
11148
|
/v1/identity/intro:
|
|
9175
11149
|
get:
|
|
9176
11150
|
operationId: identity_intro_get
|
|
9177
|
-
summary: Get identity
|
|
9178
|
-
description:
|
|
9179
|
-
Returns a deterministic greeting derived from the assistant name in IDENTITY.md, falling back to
|
|
9180
|
-
LLM-generated cache.
|
|
11151
|
+
summary: Get identity greetings
|
|
11152
|
+
description: Returns an array of greetings sourced from SOUL.md, LLM cache, or static fallbacks.
|
|
9181
11153
|
tags:
|
|
9182
11154
|
- identity
|
|
9183
11155
|
responses:
|
|
@@ -9188,9 +11160,14 @@ paths:
|
|
|
9188
11160
|
schema:
|
|
9189
11161
|
type: object
|
|
9190
11162
|
properties:
|
|
11163
|
+
greetings:
|
|
11164
|
+
type: array
|
|
11165
|
+
items:
|
|
11166
|
+
type: string
|
|
9191
11167
|
text:
|
|
9192
11168
|
type: string
|
|
9193
11169
|
required:
|
|
11170
|
+
- greetings
|
|
9194
11171
|
- text
|
|
9195
11172
|
additionalProperties: false
|
|
9196
11173
|
/v1/image-generation/generate:
|
|
@@ -9298,6 +11275,7 @@ paths:
|
|
|
9298
11275
|
- fireworks
|
|
9299
11276
|
- openrouter
|
|
9300
11277
|
- openai-compatible
|
|
11278
|
+
- minimax
|
|
9301
11279
|
auth:
|
|
9302
11280
|
oneOf:
|
|
9303
11281
|
- type: object
|
|
@@ -9352,11 +11330,6 @@ paths:
|
|
|
9352
11330
|
- type
|
|
9353
11331
|
- credential
|
|
9354
11332
|
additionalProperties: false
|
|
9355
|
-
status:
|
|
9356
|
-
type: string
|
|
9357
|
-
enum:
|
|
9358
|
-
- active
|
|
9359
|
-
- disabled
|
|
9360
11333
|
label:
|
|
9361
11334
|
anyOf:
|
|
9362
11335
|
- type: string
|
|
@@ -9397,7 +11370,6 @@ paths:
|
|
|
9397
11370
|
- name
|
|
9398
11371
|
- provider
|
|
9399
11372
|
- auth
|
|
9400
|
-
- status
|
|
9401
11373
|
- label
|
|
9402
11374
|
- baseUrl
|
|
9403
11375
|
- models
|
|
@@ -9414,7 +11386,9 @@ paths:
|
|
|
9414
11386
|
required: false
|
|
9415
11387
|
schema:
|
|
9416
11388
|
type: string
|
|
9417
|
-
description:
|
|
11389
|
+
description:
|
|
11390
|
+
"Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, openrouter, openai-compatible,
|
|
11391
|
+
minimax"
|
|
9418
11392
|
post:
|
|
9419
11393
|
operationId: inference_providerconnections_post
|
|
9420
11394
|
summary: Create a provider connection
|
|
@@ -9442,6 +11416,7 @@ paths:
|
|
|
9442
11416
|
- fireworks
|
|
9443
11417
|
- openrouter
|
|
9444
11418
|
- openai-compatible
|
|
11419
|
+
- minimax
|
|
9445
11420
|
auth:
|
|
9446
11421
|
oneOf:
|
|
9447
11422
|
- type: object
|
|
@@ -9493,14 +11468,9 @@ paths:
|
|
|
9493
11468
|
type: string
|
|
9494
11469
|
minLength: 1
|
|
9495
11470
|
required:
|
|
9496
|
-
- type
|
|
9497
|
-
- credential
|
|
9498
|
-
additionalProperties: false
|
|
9499
|
-
status:
|
|
9500
|
-
type: string
|
|
9501
|
-
enum:
|
|
9502
|
-
- active
|
|
9503
|
-
- disabled
|
|
11471
|
+
- type
|
|
11472
|
+
- credential
|
|
11473
|
+
additionalProperties: false
|
|
9504
11474
|
label:
|
|
9505
11475
|
anyOf:
|
|
9506
11476
|
- type: string
|
|
@@ -9541,7 +11511,6 @@ paths:
|
|
|
9541
11511
|
- name
|
|
9542
11512
|
- provider
|
|
9543
11513
|
- auth
|
|
9544
|
-
- status
|
|
9545
11514
|
- label
|
|
9546
11515
|
- baseUrl
|
|
9547
11516
|
- models
|
|
@@ -9573,6 +11542,7 @@ paths:
|
|
|
9573
11542
|
- fireworks
|
|
9574
11543
|
- openrouter
|
|
9575
11544
|
- openai-compatible
|
|
11545
|
+
- minimax
|
|
9576
11546
|
auth:
|
|
9577
11547
|
oneOf:
|
|
9578
11548
|
- type: object
|
|
@@ -9630,11 +11600,6 @@ paths:
|
|
|
9630
11600
|
label:
|
|
9631
11601
|
type: string
|
|
9632
11602
|
minLength: 1
|
|
9633
|
-
status:
|
|
9634
|
-
type: string
|
|
9635
|
-
enum:
|
|
9636
|
-
- active
|
|
9637
|
-
- disabled
|
|
9638
11603
|
base_url:
|
|
9639
11604
|
anyOf:
|
|
9640
11605
|
- type: string
|
|
@@ -9724,6 +11689,7 @@ paths:
|
|
|
9724
11689
|
- fireworks
|
|
9725
11690
|
- openrouter
|
|
9726
11691
|
- openai-compatible
|
|
11692
|
+
- minimax
|
|
9727
11693
|
auth:
|
|
9728
11694
|
oneOf:
|
|
9729
11695
|
- type: object
|
|
@@ -9778,11 +11744,6 @@ paths:
|
|
|
9778
11744
|
- type
|
|
9779
11745
|
- credential
|
|
9780
11746
|
additionalProperties: false
|
|
9781
|
-
status:
|
|
9782
|
-
type: string
|
|
9783
|
-
enum:
|
|
9784
|
-
- active
|
|
9785
|
-
- disabled
|
|
9786
11747
|
label:
|
|
9787
11748
|
anyOf:
|
|
9788
11749
|
- type: string
|
|
@@ -9823,7 +11784,6 @@ paths:
|
|
|
9823
11784
|
- name
|
|
9824
11785
|
- provider
|
|
9825
11786
|
- auth
|
|
9826
|
-
- status
|
|
9827
11787
|
- label
|
|
9828
11788
|
- baseUrl
|
|
9829
11789
|
- models
|
|
@@ -9844,8 +11804,7 @@ paths:
|
|
|
9844
11804
|
summary: Update a provider connection
|
|
9845
11805
|
description:
|
|
9846
11806
|
Update an existing connection. Cannot rename or change the provider. For managed connections
|
|
9847
|
-
(anthropic-managed, openai-managed, gemini-managed) the auth is locked to platform; label
|
|
9848
|
-
editable.
|
|
11807
|
+
(anthropic-managed, openai-managed, gemini-managed) the auth is locked to platform; label remains editable.
|
|
9849
11808
|
tags:
|
|
9850
11809
|
- inference
|
|
9851
11810
|
responses:
|
|
@@ -9869,6 +11828,7 @@ paths:
|
|
|
9869
11828
|
- fireworks
|
|
9870
11829
|
- openrouter
|
|
9871
11830
|
- openai-compatible
|
|
11831
|
+
- minimax
|
|
9872
11832
|
auth:
|
|
9873
11833
|
oneOf:
|
|
9874
11834
|
- type: object
|
|
@@ -9923,11 +11883,6 @@ paths:
|
|
|
9923
11883
|
- type
|
|
9924
11884
|
- credential
|
|
9925
11885
|
additionalProperties: false
|
|
9926
|
-
status:
|
|
9927
|
-
type: string
|
|
9928
|
-
enum:
|
|
9929
|
-
- active
|
|
9930
|
-
- disabled
|
|
9931
11886
|
label:
|
|
9932
11887
|
anyOf:
|
|
9933
11888
|
- type: string
|
|
@@ -9968,7 +11923,6 @@ paths:
|
|
|
9968
11923
|
- name
|
|
9969
11924
|
- provider
|
|
9970
11925
|
- auth
|
|
9971
|
-
- status
|
|
9972
11926
|
- label
|
|
9973
11927
|
- baseUrl
|
|
9974
11928
|
- models
|
|
@@ -10047,11 +12001,6 @@ paths:
|
|
|
10047
12001
|
- type
|
|
10048
12002
|
- credential
|
|
10049
12003
|
additionalProperties: false
|
|
10050
|
-
status:
|
|
10051
|
-
type: string
|
|
10052
|
-
enum:
|
|
10053
|
-
- active
|
|
10054
|
-
- disabled
|
|
10055
12004
|
label:
|
|
10056
12005
|
anyOf:
|
|
10057
12006
|
- type: string
|
|
@@ -10447,6 +12396,21 @@ paths:
|
|
|
10447
12396
|
responses:
|
|
10448
12397
|
"200":
|
|
10449
12398
|
description: Successful response
|
|
12399
|
+
content:
|
|
12400
|
+
application/json:
|
|
12401
|
+
schema:
|
|
12402
|
+
type: object
|
|
12403
|
+
properties:
|
|
12404
|
+
hasToken:
|
|
12405
|
+
type: boolean
|
|
12406
|
+
success:
|
|
12407
|
+
type: boolean
|
|
12408
|
+
error:
|
|
12409
|
+
type: string
|
|
12410
|
+
required:
|
|
12411
|
+
- hasToken
|
|
12412
|
+
- success
|
|
12413
|
+
additionalProperties: false
|
|
10450
12414
|
get:
|
|
10451
12415
|
operationId: integrations_vercel_config_get
|
|
10452
12416
|
summary: Get Vercel config
|
|
@@ -10456,6 +12420,21 @@ paths:
|
|
|
10456
12420
|
responses:
|
|
10457
12421
|
"200":
|
|
10458
12422
|
description: Successful response
|
|
12423
|
+
content:
|
|
12424
|
+
application/json:
|
|
12425
|
+
schema:
|
|
12426
|
+
type: object
|
|
12427
|
+
properties:
|
|
12428
|
+
hasToken:
|
|
12429
|
+
type: boolean
|
|
12430
|
+
success:
|
|
12431
|
+
type: boolean
|
|
12432
|
+
error:
|
|
12433
|
+
type: string
|
|
12434
|
+
required:
|
|
12435
|
+
- hasToken
|
|
12436
|
+
- success
|
|
12437
|
+
additionalProperties: false
|
|
10459
12438
|
post:
|
|
10460
12439
|
operationId: integrations_vercel_config_post
|
|
10461
12440
|
summary: Set or delete Vercel config
|
|
@@ -10465,6 +12444,37 @@ paths:
|
|
|
10465
12444
|
responses:
|
|
10466
12445
|
"200":
|
|
10467
12446
|
description: Successful response
|
|
12447
|
+
content:
|
|
12448
|
+
application/json:
|
|
12449
|
+
schema:
|
|
12450
|
+
type: object
|
|
12451
|
+
properties:
|
|
12452
|
+
hasToken:
|
|
12453
|
+
type: boolean
|
|
12454
|
+
success:
|
|
12455
|
+
type: boolean
|
|
12456
|
+
error:
|
|
12457
|
+
type: string
|
|
12458
|
+
required:
|
|
12459
|
+
- hasToken
|
|
12460
|
+
- success
|
|
12461
|
+
additionalProperties: false
|
|
12462
|
+
requestBody:
|
|
12463
|
+
required: true
|
|
12464
|
+
content:
|
|
12465
|
+
application/json:
|
|
12466
|
+
schema:
|
|
12467
|
+
type: object
|
|
12468
|
+
properties:
|
|
12469
|
+
action:
|
|
12470
|
+
type: string
|
|
12471
|
+
enum:
|
|
12472
|
+
- get
|
|
12473
|
+
- set
|
|
12474
|
+
- delete
|
|
12475
|
+
apiToken:
|
|
12476
|
+
type: string
|
|
12477
|
+
additionalProperties: false
|
|
10468
12478
|
/v1/internal/mcp/add:
|
|
10469
12479
|
post:
|
|
10470
12480
|
operationId: internal_mcp_add_post
|
|
@@ -11000,6 +13010,50 @@ paths:
|
|
|
11000
13010
|
required:
|
|
11001
13011
|
- op
|
|
11002
13012
|
additionalProperties: false
|
|
13013
|
+
/v1/memory/v2/compare-retrievers:
|
|
13014
|
+
post:
|
|
13015
|
+
operationId: memory_v2_compareretrievers_post
|
|
13016
|
+
summary: Compare retrievers against the router's logged selections (read-only)
|
|
13017
|
+
description:
|
|
13018
|
+
Runs one or more retrievers over a sample of historical turns (memory_v2_activation_logs, mode='router')
|
|
13019
|
+
and scores their selected pages against the logged selections as ground truth, reconstructing each turn's inputs
|
|
13020
|
+
from the messages table + current NOW. Read-only — writes nothing. Each scored turn re-runs the router (one LLM
|
|
13021
|
+
call), so keep `limit` modest. Today the only retriever is the router itself, so this is the harness self-test.
|
|
13022
|
+
tags:
|
|
13023
|
+
- memory
|
|
13024
|
+
responses:
|
|
13025
|
+
"200":
|
|
13026
|
+
description: Successful response
|
|
13027
|
+
requestBody:
|
|
13028
|
+
required: true
|
|
13029
|
+
content:
|
|
13030
|
+
application/json:
|
|
13031
|
+
schema:
|
|
13032
|
+
type: object
|
|
13033
|
+
properties:
|
|
13034
|
+
limit:
|
|
13035
|
+
type: integer
|
|
13036
|
+
exclusiveMinimum: 0
|
|
13037
|
+
maximum: 9007199254740991
|
|
13038
|
+
strategy:
|
|
13039
|
+
type: string
|
|
13040
|
+
enum:
|
|
13041
|
+
- recent
|
|
13042
|
+
- random
|
|
13043
|
+
conversationIds:
|
|
13044
|
+
type: array
|
|
13045
|
+
items:
|
|
13046
|
+
type: string
|
|
13047
|
+
minLength: 1
|
|
13048
|
+
ks:
|
|
13049
|
+
type: array
|
|
13050
|
+
items:
|
|
13051
|
+
type: integer
|
|
13052
|
+
exclusiveMinimum: 0
|
|
13053
|
+
maximum: 9007199254740991
|
|
13054
|
+
includeNotInjected:
|
|
13055
|
+
type: boolean
|
|
13056
|
+
additionalProperties: false
|
|
11003
13057
|
/v1/memory/v2/concept-frequency:
|
|
11004
13058
|
post:
|
|
11005
13059
|
operationId: memory_v2_conceptfrequency_post
|
|
@@ -11096,6 +13150,18 @@ paths:
|
|
|
11096
13150
|
type: object
|
|
11097
13151
|
properties: {}
|
|
11098
13152
|
additionalProperties: false
|
|
13153
|
+
/v1/memory/v2/now-text:
|
|
13154
|
+
get:
|
|
13155
|
+
operationId: memory_v2_nowtext_get
|
|
13156
|
+
summary: Return the current rendered `<now>` body
|
|
13157
|
+
description:
|
|
13158
|
+
Returns the current NOW.md (autoloaded essentials/threads/recent). Used by the memory router playground to
|
|
13159
|
+
seed its `<now>` text area with a production-like default so callers can edit from a realistic baseline.
|
|
13160
|
+
tags:
|
|
13161
|
+
- memory
|
|
13162
|
+
responses:
|
|
13163
|
+
"200":
|
|
13164
|
+
description: Successful response
|
|
11099
13165
|
/v1/memory/v2/reembed-skills:
|
|
11100
13166
|
post:
|
|
11101
13167
|
operationId: memory_v2_reembedskills_post
|
|
@@ -11112,17 +13178,236 @@ paths:
|
|
|
11112
13178
|
application/json:
|
|
11113
13179
|
schema:
|
|
11114
13180
|
type: object
|
|
11115
|
-
properties: {}
|
|
13181
|
+
properties: {}
|
|
13182
|
+
additionalProperties: false
|
|
13183
|
+
/v1/memory/v2/router-prompt-template:
|
|
13184
|
+
get:
|
|
13185
|
+
operationId: memory_v2_routerprompttemplate_get
|
|
13186
|
+
summary: Return the bundled router system-prompt template
|
|
13187
|
+
description:
|
|
13188
|
+
Returns the bundled `ROUTER_PROMPT` body with placeholders intact (`{{ASSISTANT_NAME}}`, `{{USER_NAME}}`,
|
|
13189
|
+
`{{PAGE_INDEX}}`). Used by the memory router playground's 'Load default' affordance so users have a known-good
|
|
13190
|
+
starting point when authoring an inline prompt override.
|
|
13191
|
+
tags:
|
|
13192
|
+
- memory
|
|
13193
|
+
responses:
|
|
13194
|
+
"200":
|
|
13195
|
+
description: Successful response
|
|
13196
|
+
/v1/memory/v2/simulate-router:
|
|
13197
|
+
post:
|
|
13198
|
+
operationId: memory_v2_simulaterouter_post
|
|
13199
|
+
summary: Dry-run the v4 router with config overrides (read-only)
|
|
13200
|
+
description:
|
|
13201
|
+
Runs the memory router against the live page index + EMA scores with optional tier_size / batch_size
|
|
13202
|
+
overrides, without recording an injection event or writing an activation log. Returns the slugs that would have
|
|
13203
|
+
been selected, per-slug tier provenance, EMA scores, and the effective router config so operators can validate
|
|
13204
|
+
knob changes before flipping them in workspace config.
|
|
13205
|
+
tags:
|
|
13206
|
+
- memory
|
|
13207
|
+
responses:
|
|
13208
|
+
"200":
|
|
13209
|
+
description: Successful response
|
|
13210
|
+
requestBody:
|
|
13211
|
+
required: true
|
|
13212
|
+
content:
|
|
13213
|
+
application/json:
|
|
13214
|
+
schema:
|
|
13215
|
+
type: object
|
|
13216
|
+
properties:
|
|
13217
|
+
recentTurnPairs:
|
|
13218
|
+
minItems: 1
|
|
13219
|
+
type: array
|
|
13220
|
+
items:
|
|
13221
|
+
type: object
|
|
13222
|
+
properties:
|
|
13223
|
+
assistantMessage:
|
|
13224
|
+
type: string
|
|
13225
|
+
userMessage:
|
|
13226
|
+
type: string
|
|
13227
|
+
required:
|
|
13228
|
+
- assistantMessage
|
|
13229
|
+
- userMessage
|
|
13230
|
+
additionalProperties: false
|
|
13231
|
+
nowText:
|
|
13232
|
+
type: string
|
|
13233
|
+
configOverrides:
|
|
13234
|
+
type: object
|
|
13235
|
+
properties:
|
|
13236
|
+
tier1_size:
|
|
13237
|
+
anyOf:
|
|
13238
|
+
- type: integer
|
|
13239
|
+
minimum: 1
|
|
13240
|
+
maximum: 9007199254740991
|
|
13241
|
+
- type: "null"
|
|
13242
|
+
tier2_size:
|
|
13243
|
+
anyOf:
|
|
13244
|
+
- type: integer
|
|
13245
|
+
minimum: 1
|
|
13246
|
+
maximum: 9007199254740991
|
|
13247
|
+
- type: "null"
|
|
13248
|
+
batch_size:
|
|
13249
|
+
anyOf:
|
|
13250
|
+
- type: integer
|
|
13251
|
+
minimum: 1
|
|
13252
|
+
maximum: 9007199254740991
|
|
13253
|
+
- type: "null"
|
|
13254
|
+
additionalProperties: false
|
|
13255
|
+
profileOverride:
|
|
13256
|
+
type: string
|
|
13257
|
+
minLength: 1
|
|
13258
|
+
routerPromptOverride:
|
|
13259
|
+
type: string
|
|
13260
|
+
maxLength: 1000000
|
|
13261
|
+
required:
|
|
13262
|
+
- recentTurnPairs
|
|
13263
|
+
additionalProperties: false
|
|
13264
|
+
/v1/memory/v2/validate:
|
|
13265
|
+
post:
|
|
13266
|
+
operationId: memory_v2_validate_post
|
|
13267
|
+
summary: Validate memory v2 workspace state
|
|
13268
|
+
description:
|
|
13269
|
+
Read-only structural validation of the v2 workspace — reports orphan edges, oversized pages, and parse
|
|
13270
|
+
failures. Runnable regardless of memory.v2.enabled so operators can dry-run validation before flipping the flag.
|
|
13271
|
+
tags:
|
|
13272
|
+
- memory
|
|
13273
|
+
responses:
|
|
13274
|
+
"200":
|
|
13275
|
+
description: Successful response
|
|
13276
|
+
requestBody:
|
|
13277
|
+
required: true
|
|
13278
|
+
content:
|
|
13279
|
+
application/json:
|
|
13280
|
+
schema:
|
|
13281
|
+
type: object
|
|
13282
|
+
properties: {}
|
|
13283
|
+
additionalProperties: false
|
|
13284
|
+
/v1/memory/v3/seed-edges:
|
|
13285
|
+
post:
|
|
13286
|
+
operationId: memory_v3_seededges_post
|
|
13287
|
+
summary: Seed the learned co-retrieval edge graph from v2 router history
|
|
13288
|
+
description:
|
|
13289
|
+
Builds an NPMI-scored co-retrieval graph from the v2 router's per-turn selections
|
|
13290
|
+
(memory_v2_activation_logs, status='injected') and persists it into memory_v3_auto_edges, warm-starting the
|
|
13291
|
+
learned edge graph that the v3 edge-expansion lane merges with curated edges when
|
|
13292
|
+
memory.v3.edges.learnedAdjacencyThreshold > 0. NPMI plus a min co-occurrence floor and an always-on frequency
|
|
13293
|
+
ceiling keep the neighborhoods associative rather than base-rate noise. Idempotent (upserts to a flat seed
|
|
13294
|
+
weight). Runs no LLM; the only write among the v3 routes.
|
|
13295
|
+
tags:
|
|
13296
|
+
- memory
|
|
13297
|
+
responses:
|
|
13298
|
+
"200":
|
|
13299
|
+
description: Successful response
|
|
13300
|
+
requestBody:
|
|
13301
|
+
required: true
|
|
13302
|
+
content:
|
|
13303
|
+
application/json:
|
|
13304
|
+
schema:
|
|
13305
|
+
type: object
|
|
13306
|
+
properties:
|
|
13307
|
+
minCount:
|
|
13308
|
+
type: integer
|
|
13309
|
+
exclusiveMinimum: 0
|
|
13310
|
+
maximum: 9007199254740991
|
|
13311
|
+
topK:
|
|
13312
|
+
type: integer
|
|
13313
|
+
exclusiveMinimum: 0
|
|
13314
|
+
maximum: 9007199254740991
|
|
13315
|
+
maxNeighborFreqRatio:
|
|
13316
|
+
type: number
|
|
13317
|
+
exclusiveMinimum: 0
|
|
13318
|
+
maximum: 1
|
|
13319
|
+
seedWeight:
|
|
13320
|
+
type: number
|
|
13321
|
+
exclusiveMinimum: 0
|
|
13322
|
+
additionalProperties: false
|
|
13323
|
+
/v1/memory/v3/shadow-diff:
|
|
13324
|
+
post:
|
|
13325
|
+
operationId: memory_v3_shadowdiff_post
|
|
13326
|
+
summary: Diff v3 shadow selections against live v2 router selections (read-only)
|
|
13327
|
+
description:
|
|
13328
|
+
Compares the v3 shadow-mode selections against the live v2 router selections turn-for-turn, from the memory
|
|
13329
|
+
activation log. Pairs each v3_shadow row with the nearest v2 router row in the same conversation (by timestamp,
|
|
13330
|
+
within a tolerance — the turn columns use different counters), then reports per-turn and aggregate overlap, what
|
|
13331
|
+
v3 surfaced that v2 did not, and what v2 had that v3 dropped, broken down by v3 provenance lane. The v2
|
|
13332
|
+
comparand is the router's fresh per-turn pick (status='injected'), not its accumulated in-context set. Requires
|
|
13333
|
+
that v3 shadow mode has been running so v3_shadow rows exist; the route runs no LLM and writes nothing.
|
|
13334
|
+
tags:
|
|
13335
|
+
- memory
|
|
13336
|
+
responses:
|
|
13337
|
+
"200":
|
|
13338
|
+
description: Successful response
|
|
13339
|
+
requestBody:
|
|
13340
|
+
required: true
|
|
13341
|
+
content:
|
|
13342
|
+
application/json:
|
|
13343
|
+
schema:
|
|
13344
|
+
type: object
|
|
13345
|
+
properties:
|
|
13346
|
+
sinceDays:
|
|
13347
|
+
type: number
|
|
13348
|
+
exclusiveMinimum: 0
|
|
13349
|
+
toleranceSec:
|
|
13350
|
+
type: number
|
|
13351
|
+
exclusiveMinimum: 0
|
|
13352
|
+
limit:
|
|
13353
|
+
type: integer
|
|
13354
|
+
exclusiveMinimum: 0
|
|
13355
|
+
maximum: 9007199254740991
|
|
13356
|
+
additionalProperties: false
|
|
13357
|
+
/v1/memory/v3/simulate:
|
|
13358
|
+
post:
|
|
13359
|
+
operationId: memory_v3_simulate_post
|
|
13360
|
+
summary: Dry-run the v3 retrieval loop against an ad-hoc query (read-only)
|
|
13361
|
+
description:
|
|
13362
|
+
Runs the v3 multi-lane bounded-descent retrieval loop read-only against a single synthetic turn built from
|
|
13363
|
+
the supplied query plus the live (or supplied) NOW context. Returns the selected page slugs, per-lane
|
|
13364
|
+
provenance, the full multi-pass descent trace, and accumulated cost. Optional passCap / lane-allowlist overrides
|
|
13365
|
+
apply on top of live config. Invoked directly (not gated by memory.v3.enabled/shadow) so operators can probe v3
|
|
13366
|
+
retrieval before flipping the flags; writes nothing (co-activation persistence is forced off), though each pass
|
|
13367
|
+
still spends the loop's filter + gate LLM calls.
|
|
13368
|
+
tags:
|
|
13369
|
+
- memory
|
|
13370
|
+
responses:
|
|
13371
|
+
"200":
|
|
13372
|
+
description: Successful response
|
|
13373
|
+
requestBody:
|
|
13374
|
+
required: true
|
|
13375
|
+
content:
|
|
13376
|
+
application/json:
|
|
13377
|
+
schema:
|
|
13378
|
+
type: object
|
|
13379
|
+
properties:
|
|
13380
|
+
query:
|
|
13381
|
+
type: string
|
|
13382
|
+
minLength: 1
|
|
13383
|
+
nowText:
|
|
13384
|
+
type: string
|
|
13385
|
+
passCap:
|
|
13386
|
+
type: integer
|
|
13387
|
+
exclusiveMinimum: 0
|
|
13388
|
+
maximum: 9007199254740991
|
|
13389
|
+
lanes:
|
|
13390
|
+
minItems: 1
|
|
13391
|
+
type: array
|
|
13392
|
+
items:
|
|
13393
|
+
type: string
|
|
13394
|
+
enum:
|
|
13395
|
+
- hot
|
|
13396
|
+
- sparse
|
|
13397
|
+
- dense
|
|
13398
|
+
- tree
|
|
13399
|
+
- edges
|
|
13400
|
+
required:
|
|
13401
|
+
- query
|
|
11116
13402
|
additionalProperties: false
|
|
11117
|
-
/v1/memory/
|
|
13403
|
+
/v1/memory/v3/tree:
|
|
11118
13404
|
post:
|
|
11119
|
-
operationId:
|
|
11120
|
-
summary:
|
|
13405
|
+
operationId: memory_v3_tree_post
|
|
13406
|
+
summary: Return a serializable view of the memory v3 tree DAG (read-only)
|
|
11121
13407
|
description:
|
|
11122
|
-
|
|
11123
|
-
|
|
11124
|
-
|
|
11125
|
-
knob changes before flipping them in workspace config.
|
|
13408
|
+
Returns the v3 tree root id plus every node and its ordered child refs (page:/node:) as a JSON-serializable
|
|
13409
|
+
projection of the in-memory TreeIndex. Read-only; the CLI uses it to print an indented tree with shared-DAG
|
|
13410
|
+
re-entries marked.
|
|
11126
13411
|
tags:
|
|
11127
13412
|
- memory
|
|
11128
13413
|
responses:
|
|
@@ -11134,42 +13419,16 @@ paths:
|
|
|
11134
13419
|
application/json:
|
|
11135
13420
|
schema:
|
|
11136
13421
|
type: object
|
|
11137
|
-
properties:
|
|
11138
|
-
query:
|
|
11139
|
-
type: string
|
|
11140
|
-
minLength: 1
|
|
11141
|
-
configOverrides:
|
|
11142
|
-
type: object
|
|
11143
|
-
properties:
|
|
11144
|
-
tier1_size:
|
|
11145
|
-
anyOf:
|
|
11146
|
-
- type: integer
|
|
11147
|
-
minimum: 1
|
|
11148
|
-
maximum: 9007199254740991
|
|
11149
|
-
- type: "null"
|
|
11150
|
-
tier2_size:
|
|
11151
|
-
anyOf:
|
|
11152
|
-
- type: integer
|
|
11153
|
-
minimum: 1
|
|
11154
|
-
maximum: 9007199254740991
|
|
11155
|
-
- type: "null"
|
|
11156
|
-
batch_size:
|
|
11157
|
-
anyOf:
|
|
11158
|
-
- type: integer
|
|
11159
|
-
minimum: 1
|
|
11160
|
-
maximum: 9007199254740991
|
|
11161
|
-
- type: "null"
|
|
11162
|
-
additionalProperties: false
|
|
11163
|
-
required:
|
|
11164
|
-
- query
|
|
13422
|
+
properties: {}
|
|
11165
13423
|
additionalProperties: false
|
|
11166
|
-
/v1/memory/
|
|
13424
|
+
/v1/memory/v3/validate:
|
|
11167
13425
|
post:
|
|
11168
|
-
operationId:
|
|
11169
|
-
summary: Validate memory
|
|
13426
|
+
operationId: memory_v3_validate_post
|
|
13427
|
+
summary: Validate the memory v3 tree structure (read-only)
|
|
11170
13428
|
description:
|
|
11171
|
-
Read-only structural validation of the
|
|
11172
|
-
|
|
13429
|
+
Read-only structural validation of the hand-authored v3 tree DAG. Reports dangling child refs, orphan
|
|
13430
|
+
pages, cycles, stale compositional indexes, and unknown edge targets. Writes nothing and runs no LLM — operators
|
|
13431
|
+
dry-run it while the v2 → v3 migration is in flight.
|
|
11173
13432
|
tags:
|
|
11174
13433
|
- memory
|
|
11175
13434
|
responses:
|
|
@@ -11813,6 +14072,92 @@ paths:
|
|
|
11813
14072
|
required:
|
|
11814
14073
|
- deliveryId
|
|
11815
14074
|
additionalProperties: false
|
|
14075
|
+
/v1/notifications/edit:
|
|
14076
|
+
post:
|
|
14077
|
+
operationId: notifications_edit_post
|
|
14078
|
+
summary: Edit an already-sent notification
|
|
14079
|
+
description:
|
|
14080
|
+
Patch the home-feed entry for a notification and, where supported (Slack today), update the delivered
|
|
14081
|
+
message in place.
|
|
14082
|
+
tags:
|
|
14083
|
+
- notifications
|
|
14084
|
+
responses:
|
|
14085
|
+
"200":
|
|
14086
|
+
description: Successful response
|
|
14087
|
+
content:
|
|
14088
|
+
application/json:
|
|
14089
|
+
schema:
|
|
14090
|
+
type: object
|
|
14091
|
+
properties:
|
|
14092
|
+
ok:
|
|
14093
|
+
type: boolean
|
|
14094
|
+
feedItem:
|
|
14095
|
+
type: object
|
|
14096
|
+
propertyNames:
|
|
14097
|
+
type: string
|
|
14098
|
+
additionalProperties: {}
|
|
14099
|
+
channels:
|
|
14100
|
+
type: array
|
|
14101
|
+
items:
|
|
14102
|
+
type: object
|
|
14103
|
+
properties:
|
|
14104
|
+
channel:
|
|
14105
|
+
type: string
|
|
14106
|
+
deliveryId:
|
|
14107
|
+
type: string
|
|
14108
|
+
outcome:
|
|
14109
|
+
type: string
|
|
14110
|
+
enum:
|
|
14111
|
+
- updated
|
|
14112
|
+
- unsupported
|
|
14113
|
+
- skipped
|
|
14114
|
+
- failed
|
|
14115
|
+
reason:
|
|
14116
|
+
type: string
|
|
14117
|
+
required:
|
|
14118
|
+
- channel
|
|
14119
|
+
- deliveryId
|
|
14120
|
+
- outcome
|
|
14121
|
+
additionalProperties: false
|
|
14122
|
+
required:
|
|
14123
|
+
- ok
|
|
14124
|
+
- feedItem
|
|
14125
|
+
- channels
|
|
14126
|
+
additionalProperties: false
|
|
14127
|
+
"404":
|
|
14128
|
+
description: No notification found for the supplied id
|
|
14129
|
+
requestBody:
|
|
14130
|
+
required: true
|
|
14131
|
+
content:
|
|
14132
|
+
application/json:
|
|
14133
|
+
schema:
|
|
14134
|
+
type: object
|
|
14135
|
+
properties:
|
|
14136
|
+
id:
|
|
14137
|
+
type: string
|
|
14138
|
+
minLength: 1
|
|
14139
|
+
description: Feed item id (notif:<uuid>) or bare uuid
|
|
14140
|
+
title:
|
|
14141
|
+
type: string
|
|
14142
|
+
body:
|
|
14143
|
+
type: string
|
|
14144
|
+
urgency:
|
|
14145
|
+
type: string
|
|
14146
|
+
enum:
|
|
14147
|
+
- low
|
|
14148
|
+
- medium
|
|
14149
|
+
- high
|
|
14150
|
+
- critical
|
|
14151
|
+
status:
|
|
14152
|
+
type: string
|
|
14153
|
+
enum:
|
|
14154
|
+
- new
|
|
14155
|
+
- seen
|
|
14156
|
+
- acted_on
|
|
14157
|
+
- dismissed
|
|
14158
|
+
required:
|
|
14159
|
+
- id
|
|
14160
|
+
additionalProperties: false
|
|
11816
14161
|
/v1/notifications/emit:
|
|
11817
14162
|
post:
|
|
11818
14163
|
operationId: notifications_emit_post
|
|
@@ -12522,6 +14867,168 @@ paths:
|
|
|
12522
14867
|
required: true
|
|
12523
14868
|
schema:
|
|
12524
14869
|
type: string
|
|
14870
|
+
/v1/plugins:
|
|
14871
|
+
get:
|
|
14872
|
+
operationId: plugins_get
|
|
14873
|
+
summary: List installed plugins
|
|
14874
|
+
description:
|
|
14875
|
+
Return one entry per directory under `<workspaceDir>/plugins/`, sorted alphabetically. Matches the CLI's
|
|
14876
|
+
`assistant plugins list`. Supports `?q=<text>` for case-insensitive substring matching across plugin id, name,
|
|
14877
|
+
and description.
|
|
14878
|
+
tags:
|
|
14879
|
+
- plugins
|
|
14880
|
+
responses:
|
|
14881
|
+
"200":
|
|
14882
|
+
description: Successful response
|
|
14883
|
+
content:
|
|
14884
|
+
application/json:
|
|
14885
|
+
schema:
|
|
14886
|
+
type: object
|
|
14887
|
+
properties:
|
|
14888
|
+
plugins:
|
|
14889
|
+
type: array
|
|
14890
|
+
items:
|
|
14891
|
+
type: object
|
|
14892
|
+
properties:
|
|
14893
|
+
id:
|
|
14894
|
+
type: string
|
|
14895
|
+
description: Plugin's directory name (kebab-case). Matches `assistant plugins install <id>`.
|
|
14896
|
+
name:
|
|
14897
|
+
type: string
|
|
14898
|
+
description: Display name. Equal to `id` today.
|
|
14899
|
+
description:
|
|
14900
|
+
anyOf:
|
|
14901
|
+
- type: string
|
|
14902
|
+
- type: "null"
|
|
14903
|
+
description: From `package.json#description`; `null` when unknown.
|
|
14904
|
+
version:
|
|
14905
|
+
anyOf:
|
|
14906
|
+
- type: string
|
|
14907
|
+
- type: "null"
|
|
14908
|
+
description: From `package.json#version`; `null` when unknown.
|
|
14909
|
+
path:
|
|
14910
|
+
description: Absolute path to the plugin directory on the assistant host.
|
|
14911
|
+
type: string
|
|
14912
|
+
issues:
|
|
14913
|
+
description: Non-fatal issues with this entry (missing `package.json`, malformed JSON, ...). Omitted when clean.
|
|
14914
|
+
type: array
|
|
14915
|
+
items:
|
|
14916
|
+
type: string
|
|
14917
|
+
required:
|
|
14918
|
+
- id
|
|
14919
|
+
- name
|
|
14920
|
+
- description
|
|
14921
|
+
- version
|
|
14922
|
+
additionalProperties: false
|
|
14923
|
+
required:
|
|
14924
|
+
- plugins
|
|
14925
|
+
additionalProperties: false
|
|
14926
|
+
parameters:
|
|
14927
|
+
- name: q
|
|
14928
|
+
in: query
|
|
14929
|
+
required: false
|
|
14930
|
+
schema:
|
|
14931
|
+
type: string
|
|
14932
|
+
description: Optional substring filter applied to plugin id, name, and description.
|
|
14933
|
+
/v1/plugins/{name}:
|
|
14934
|
+
delete:
|
|
14935
|
+
operationId: plugins_by_name_delete
|
|
14936
|
+
summary: Uninstall a plugin
|
|
14937
|
+
description:
|
|
14938
|
+
Remove the directory at `<workspaceDir>/plugins/<name>/`. Mirrors the CLI's `assistant plugins uninstall
|
|
14939
|
+
<name>` (without the interactive confirmation — the API caller is responsible for any prompt). The plugin name
|
|
14940
|
+
is sanitized by the same regex the CLI uses; `../escape`-style values, hidden names, and absolute paths return
|
|
14941
|
+
400. Missing plugins return 404. The assistant must be restarted to drop the plugin from the running runtime.
|
|
14942
|
+
tags:
|
|
14943
|
+
- plugins
|
|
14944
|
+
responses:
|
|
14945
|
+
"200":
|
|
14946
|
+
description: Successful response
|
|
14947
|
+
content:
|
|
14948
|
+
application/json:
|
|
14949
|
+
schema:
|
|
14950
|
+
type: object
|
|
14951
|
+
properties:
|
|
14952
|
+
name:
|
|
14953
|
+
type: string
|
|
14954
|
+
description: Directory name that was removed. Echoes the request's `:name` path parameter after sanitization.
|
|
14955
|
+
target:
|
|
14956
|
+
type: string
|
|
14957
|
+
description: Absolute path that was removed on the assistant host. Useful for audit logs and confirmation toasts.
|
|
14958
|
+
required:
|
|
14959
|
+
- name
|
|
14960
|
+
- target
|
|
14961
|
+
additionalProperties: false
|
|
14962
|
+
"400":
|
|
14963
|
+
description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
|
|
14964
|
+
"404":
|
|
14965
|
+
description: No plugin directory exists with the given name.
|
|
14966
|
+
parameters:
|
|
14967
|
+
- name: name
|
|
14968
|
+
in: path
|
|
14969
|
+
required: true
|
|
14970
|
+
schema:
|
|
14971
|
+
type: string
|
|
14972
|
+
/v1/plugins/search:
|
|
14973
|
+
get:
|
|
14974
|
+
operationId: plugins_search_get
|
|
14975
|
+
summary: Search the plugin catalog
|
|
14976
|
+
description:
|
|
14977
|
+
List installable plugins from the canonical `vellum-ai/vellum-assistant` catalog at
|
|
14978
|
+
`experimental/plugins/`. The query is an ECMAScript regex matched case-insensitively against the directory name
|
|
14979
|
+
(e.g. `memory`, `^simple`). Empty query returns every entry. Mirrors the CLI's `assistant plugins search`.
|
|
14980
|
+
tags:
|
|
14981
|
+
- plugins
|
|
14982
|
+
responses:
|
|
14983
|
+
"200":
|
|
14984
|
+
description: Successful response
|
|
14985
|
+
content:
|
|
14986
|
+
application/json:
|
|
14987
|
+
schema:
|
|
14988
|
+
type: object
|
|
14989
|
+
properties:
|
|
14990
|
+
query:
|
|
14991
|
+
type: string
|
|
14992
|
+
description: Echo of the requested query (ECMAScript regex source).
|
|
14993
|
+
ref:
|
|
14994
|
+
type: string
|
|
14995
|
+
description: Git ref the catalog was listed at.
|
|
14996
|
+
matches:
|
|
14997
|
+
type: array
|
|
14998
|
+
items:
|
|
14999
|
+
type: object
|
|
15000
|
+
properties:
|
|
15001
|
+
name:
|
|
15002
|
+
type: string
|
|
15003
|
+
description: Directory name under `experimental/plugins/`. Matches `assistant plugins install <name>`.
|
|
15004
|
+
path:
|
|
15005
|
+
type: string
|
|
15006
|
+
description: Repo-relative path of the match (e.g. `experimental/plugins/<name>`).
|
|
15007
|
+
required:
|
|
15008
|
+
- name
|
|
15009
|
+
- path
|
|
15010
|
+
additionalProperties: false
|
|
15011
|
+
description: Directory matches, sorted alphabetically by name.
|
|
15012
|
+
required:
|
|
15013
|
+
- query
|
|
15014
|
+
- ref
|
|
15015
|
+
- matches
|
|
15016
|
+
additionalProperties: false
|
|
15017
|
+
parameters:
|
|
15018
|
+
- name: q
|
|
15019
|
+
in: query
|
|
15020
|
+
required: false
|
|
15021
|
+
schema:
|
|
15022
|
+
type: string
|
|
15023
|
+
description:
|
|
15024
|
+
ECMAScript regex pattern matched case-insensitively against catalog directory names. Empty/missing matches
|
|
15025
|
+
everything.
|
|
15026
|
+
- name: ref
|
|
15027
|
+
in: query
|
|
15028
|
+
required: false
|
|
15029
|
+
schema:
|
|
15030
|
+
type: string
|
|
15031
|
+
description: Optional git ref to list the catalog at. Defaults to the CLI's `DEFAULT_PLUGIN_REF` (typically `main`).
|
|
12525
15032
|
/v1/profiler/runs:
|
|
12526
15033
|
get:
|
|
12527
15034
|
operationId: profiler_runs_get
|
|
@@ -15437,16 +17944,41 @@ paths:
|
|
|
15437
17944
|
type: object
|
|
15438
17945
|
properties:
|
|
15439
17946
|
suggestion:
|
|
15440
|
-
|
|
17947
|
+
anyOf:
|
|
17948
|
+
- type: string
|
|
17949
|
+
- type: "null"
|
|
15441
17950
|
messageId:
|
|
15442
|
-
|
|
17951
|
+
anyOf:
|
|
17952
|
+
- type: string
|
|
17953
|
+
- type: "null"
|
|
15443
17954
|
source:
|
|
15444
17955
|
type: string
|
|
17956
|
+
stale:
|
|
17957
|
+
type: boolean
|
|
15445
17958
|
required:
|
|
15446
17959
|
- suggestion
|
|
15447
17960
|
- messageId
|
|
15448
17961
|
- source
|
|
15449
17962
|
additionalProperties: false
|
|
17963
|
+
parameters:
|
|
17964
|
+
- name: conversationId
|
|
17965
|
+
in: query
|
|
17966
|
+
required: false
|
|
17967
|
+
schema:
|
|
17968
|
+
type: string
|
|
17969
|
+
description: Conversation ID to fetch a suggestion for. Either this or conversationKey is required.
|
|
17970
|
+
- name: conversationKey
|
|
17971
|
+
in: query
|
|
17972
|
+
required: false
|
|
17973
|
+
schema:
|
|
17974
|
+
type: string
|
|
17975
|
+
description: Legacy conversation key. Either this or conversationId is required.
|
|
17976
|
+
- name: messageId
|
|
17977
|
+
in: query
|
|
17978
|
+
required: false
|
|
17979
|
+
schema:
|
|
17980
|
+
type: string
|
|
17981
|
+
description: Optional. Latest assistant message ID the client has seen — used to detect staleness.
|
|
15450
17982
|
/v1/surface-actions:
|
|
15451
17983
|
post:
|
|
15452
17984
|
operationId: surfaceactions_post
|