@vellumai/assistant 0.11.2 → 0.11.3-dev.202608080427.92f668a
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/ARCHITECTURE.md +69 -9
- package/docs/flux-turn-detection-spike.md +243 -0
- package/docs/stt-provider-onboarding.md +3 -1
- package/docs/trusted-contact-access.md +9 -5
- package/docs/vellum-doctor.md +195 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/channels.ts +50 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/ingress.ts +10 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/remote-web-pairing.ts +6 -0
- package/node_modules/@vellumai/ces-client/src/index.ts +1 -0
- package/node_modules/@vellumai/ces-client/src/rpc-client.ts +19 -2
- package/node_modules/@vellumai/environments/package.json +2 -1
- package/node_modules/@vellumai/environments/src/__tests__/cloud-assistant-hub-url.test.ts +38 -0
- package/node_modules/@vellumai/environments/src/__tests__/install-layout.test.ts +98 -0
- package/node_modules/@vellumai/environments/src/__tests__/package-boundary.test.ts +5 -5
- package/node_modules/@vellumai/environments/src/index.ts +17 -6
- package/node_modules/@vellumai/environments/src/install-layout.ts +49 -0
- package/node_modules/@vellumai/environments/src/seeds.ts +29 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/channels.ts +50 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/ingress.ts +10 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/remote-web-pairing.ts +6 -0
- package/node_modules/@vellumai/gateway-client/src/index.ts +4 -0
- package/node_modules/@vellumai/gateway-client/src/verification-session-contract.ts +91 -6
- package/node_modules/@vellumai/ipc-server-utils/src/endpoint.test.ts +36 -0
- package/node_modules/@vellumai/ipc-server-utils/src/endpoint.ts +142 -0
- package/node_modules/@vellumai/ipc-server-utils/src/index.ts +2 -0
- package/node_modules/@vellumai/ipc-server-utils/src/listen-options.ts +3 -0
- package/node_modules/@vellumai/ipc-server-utils/src/socket-watchdog.test.ts +15 -1
- package/node_modules/@vellumai/ipc-server-utils/src/socket-watchdog.ts +17 -2
- package/node_modules/@vellumai/service-contracts/src/channels.ts +50 -0
- package/node_modules/@vellumai/service-contracts/src/ingress.ts +10 -0
- package/node_modules/@vellumai/service-contracts/src/remote-web-pairing.ts +6 -0
- package/node_modules/@vellumai/slack-text/src/index.ts +16 -2
- package/openapi.yaml +619 -47
- package/package.json +1 -1
- package/scripts/voice-ttft-spike.ts +3 -3
- package/src/__tests__/agent-image-optimize.test.ts +4 -4
- package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +113 -66
- package/src/__tests__/agent-loop-override-profile.test.ts +38 -48
- package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +166 -0
- 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__/answered-question-persistence.test.ts +240 -0
- package/src/__tests__/anthropic-provider.test.ts +165 -30
- package/src/__tests__/app-control-flow.test.ts +9 -8
- package/src/__tests__/assistant-event-hub.test.ts +48 -0
- package/src/__tests__/attachments-store-heic-normalize.test.ts +16 -12
- package/src/__tests__/attachments-store.test.ts +130 -68
- package/src/__tests__/attachments.test.ts +36 -36
- package/src/__tests__/background-workers-disk-pressure.test.ts +1 -1
- package/src/__tests__/call-controller.test.ts +120 -0
- package/src/__tests__/call-start-guardian-guard.test.ts +18 -4
- package/src/__tests__/canned-reply-release.test.ts +86 -0
- package/src/__tests__/channel-availability-routes.test.ts +14 -1
- package/src/__tests__/channel-guardian.test.ts +59 -29
- package/src/__tests__/channel-readiness-telegram-remote.test.ts +154 -0
- package/src/__tests__/channel-setup-panel-ack.test.ts +6 -5
- package/src/__tests__/client-os-metadata-persistence.test.ts +103 -4
- package/src/__tests__/compactor-image-manifest-trust.test.ts +1 -1
- package/src/__tests__/config-loader-backfill.test.ts +19 -0
- package/src/__tests__/config-schema.test.ts +150 -7
- package/src/__tests__/consult-deadline.test.ts +65 -0
- package/src/__tests__/conversation-agent-loop.test.ts +438 -2
- package/src/__tests__/conversation-disk-view-integration.test.ts +5 -1
- package/src/__tests__/conversation-disk-view.test.ts +4 -4
- package/src/__tests__/conversation-error.test.ts +22 -3
- package/src/__tests__/conversation-fork-crud.test.ts +5 -1
- package/src/__tests__/conversation-fork-referential.test.ts +352 -0
- package/src/__tests__/conversation-fork-retrospective.test.ts +5 -1
- package/src/__tests__/conversation-group-tools.test.ts +32 -2
- package/src/__tests__/conversation-inference-profile-route.test.ts +27 -1
- package/src/__tests__/conversation-initial-prompt.test.ts +51 -22
- package/src/__tests__/conversation-key-store-bootstrap-cleanup.test.ts +119 -0
- package/src/__tests__/conversation-key-store-origin.test.ts +105 -0
- package/src/__tests__/conversation-list-recency-ordering.test.ts +104 -0
- package/src/__tests__/conversation-origin-at-creation.test.ts +153 -0
- package/src/__tests__/conversation-origin-channel-filter.test.ts +95 -0
- package/src/__tests__/conversation-placement-promotion.test.ts +172 -0
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +123 -0
- package/src/__tests__/conversation-queue.test.ts +433 -1
- package/src/__tests__/conversation-retry-route.test.ts +3 -1
- package/src/__tests__/conversation-routes-hidden-queue.test.ts +64 -1
- package/src/__tests__/conversation-store-ephemeral.test.ts +4 -0
- package/src/__tests__/conversation-store.test.ts +26 -10
- package/src/__tests__/conversation-summarize-route.test.ts +1 -1
- package/src/__tests__/conversation-surfaces-action-delivery.test.ts +15 -6
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +6 -5
- package/src/__tests__/conversation-surfaces-app-control.test.ts +12 -11
- package/src/__tests__/conversation-surfaces-app-open.test.ts +11 -5
- package/src/__tests__/conversation-surfaces-data-persist.test.ts +5 -4
- package/src/__tests__/conversation-surfaces-history-restored-completion.test.ts +967 -0
- package/src/__tests__/conversation-surfaces-persisted-info.test.ts +312 -0
- package/src/__tests__/conversation-surfaces-queued-emit.test.ts +6 -5
- package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +12 -8
- package/src/__tests__/conversation-surfaces-standalone.test.ts +21 -11
- package/src/__tests__/conversation-surfaces-state-update.test.ts +7 -11
- package/src/__tests__/conversation-surfaces-table-action.test.ts +7 -6
- package/src/__tests__/conversation-surfaces-task-progress.test.ts +11 -6
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +9 -6
- package/src/__tests__/conversation-tool-setup-attribution.test.ts +70 -7
- package/src/__tests__/conversation-wait-for-idle.test.ts +6 -11
- package/src/__tests__/credential-prompt-route.test.ts +54 -7
- package/src/__tests__/credential-security-invariants.test.ts +1 -0
- package/src/__tests__/cu-unified-flow.test.ts +89 -28
- package/src/__tests__/custom-group-listing-visibility.test.ts +1 -1
- package/src/__tests__/db-schedule-syntax-migration.test.ts +4 -1
- package/src/__tests__/discord-access-request-privacy.test.ts +366 -0
- package/src/__tests__/discord-requester-notice-privacy.test.ts +87 -0
- package/src/__tests__/disk-pressure-guard.test.ts +55 -55
- package/src/__tests__/disk-pressure-routes.test.ts +10 -10
- package/src/__tests__/disk-pressure-tools.test.ts +2 -2
- package/src/__tests__/disk-usage.test.ts +35 -20
- package/src/__tests__/document-sync-tags.test.ts +379 -0
- package/src/__tests__/document-update-default-surface.test.ts +28 -0
- package/src/__tests__/dynamic-skill-background-guard.test.ts +2 -2
- package/src/__tests__/emit-signal-routing-intent.test.ts +3 -4
- package/src/__tests__/ensure-conversation-exists.test.ts +8 -5
- package/src/__tests__/events-dev-bypass-actor.test.ts +294 -1
- package/src/__tests__/evict-conversations-for-reload.test.ts +90 -0
- package/src/__tests__/file-list-tool.test.ts +12 -10
- package/src/__tests__/file-ops-service.test.ts +151 -44
- package/src/__tests__/file-read-container-boundary.test.ts +137 -0
- package/src/__tests__/file-read-tool.test.ts +21 -9
- package/src/__tests__/file-url-path-guard.test.ts +83 -0
- package/src/__tests__/filesystem-tools.test.ts +82 -66
- package/src/__tests__/guardian-outbound-http.test.ts +8 -8
- package/src/__tests__/helpers/gateway-verification-sessions-stub.ts +14 -1
- package/src/__tests__/helpers/hub-clients.ts +42 -0
- package/src/__tests__/helpers/mock-conversation.ts +46 -0
- package/src/__tests__/helpers/verification-sessions-ipc-sim.ts +61 -57
- package/src/__tests__/history-repair.test.ts +112 -12
- package/src/__tests__/host-bash-proxy.test.ts +10 -5
- package/src/__tests__/host-bash-routes.test.ts +67 -0
- package/src/__tests__/host-browser-proxy.test.ts +2 -2
- package/src/__tests__/host-cu-proxy.test.ts +3 -7
- package/src/__tests__/host-file-proxy.test.ts +3 -7
- package/src/__tests__/host-file-read-tool.test.ts +5 -1
- package/src/__tests__/host-transfer-proxy-targeted.test.ts +6 -4
- package/src/__tests__/http-conversation-lineage.test.ts +2 -5
- package/src/__tests__/http-user-message-parity.test.ts +44 -0
- package/src/__tests__/identity-routes.test.ts +13 -13
- package/src/__tests__/image-conversion.test.ts +29 -26
- package/src/__tests__/image-source-path-reinject.test.ts +2 -2
- package/src/__tests__/inference-profile-session-handler.test.ts +95 -0
- package/src/__tests__/inference-profile-session-ipc.test.ts +25 -0
- package/src/__tests__/introduction-card-resolver.test.ts +6 -1
- package/src/__tests__/list-messages-attachments.test.ts +56 -32
- package/src/__tests__/list-messages-background-tool-completion.test.ts +4 -4
- package/src/__tests__/list-messages-client-message-id.test.ts +2 -2
- package/src/__tests__/list-messages-hidden-metadata.test.ts +16 -16
- package/src/__tests__/list-messages-page-latest.test.ts +61 -61
- package/src/__tests__/list-messages-provider-error.test.ts +6 -6
- package/src/__tests__/list-messages-queued.test.ts +49 -6
- package/src/__tests__/list-messages-system-card.test.ts +4 -4
- package/src/__tests__/list-messages-tool-merge.test.ts +9 -9
- package/src/__tests__/llm-resolver-override-or-default.test.ts +141 -0
- package/src/__tests__/llm-usage-store.test.ts +55 -0
- package/src/__tests__/manual-token-reconciliation.test.ts +45 -0
- package/src/__tests__/mcp-list-plugin-servers.test.ts +250 -0
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +133 -0
- package/src/__tests__/media-stream-output.test.ts +175 -0
- package/src/__tests__/media-stream-server-integration.test.ts +36 -0
- package/src/__tests__/media-stream-stt-session.test.ts +67 -0
- package/src/__tests__/migration-export-http.test.ts +1 -1
- package/src/__tests__/migration-import-commit-http.test.ts +1 -1
- package/src/__tests__/migration-import-preflight-http.test.ts +1 -1
- package/src/__tests__/migration-validate-http.test.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +65 -3
- package/src/__tests__/notification-platform-adapter.test.ts +104 -0
- package/src/__tests__/notification-schedule-notify-dedup.test.ts +1 -1
- package/src/__tests__/oauth-provider-profiles.test.ts +4 -2
- package/src/__tests__/oauth-provider-seed-logos.test.ts +65 -0
- package/src/__tests__/oauth-provider-serializer.test.ts +17 -0
- package/src/__tests__/oauth-providers-routes.test.ts +1 -0
- package/src/__tests__/openai-responses-prompt-cache.test.ts +5 -2
- package/src/__tests__/path-policy.test.ts +164 -1
- package/src/__tests__/persist-media-references.test.ts +2 -2
- package/src/__tests__/persist-unsendable-image-downscale.test.ts +5 -5
- package/src/__tests__/persist-unsendable-image.test.ts +23 -23
- package/src/__tests__/persona-resolver.test.ts +154 -0
- package/src/__tests__/plugin-api-webhook-url.test.ts +170 -0
- package/src/__tests__/plugin-import-boundary-guard.test.ts +6 -0
- package/src/__tests__/processing-flag-persist-failure.test.ts +15 -10
- package/src/__tests__/profile-availability-incomplete.test.ts +113 -0
- package/src/__tests__/profiler-routes.test.ts +13 -13
- package/src/__tests__/prompt-cache-cross-turn-stability.test.ts +593 -0
- package/src/__tests__/proxy-approval-callback.test.ts +3 -3
- package/src/__tests__/queued-message-cancel-and-steer.test.ts +189 -0
- package/src/__tests__/queued-message-steer-actor-scoping.test.ts +164 -0
- package/src/__tests__/resolve-trust-class.test.ts +20 -0
- package/src/__tests__/run-conversation-turn-persistence.test.ts +1 -1
- package/src/__tests__/run-due-schedules.test.ts +174 -0
- package/src/__tests__/runtime-attachment-metadata.test.ts +15 -7
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +166 -0
- package/src/__tests__/schedule-routes.test.ts +730 -8
- package/src/__tests__/schedule-store.test.ts +540 -0
- package/src/__tests__/schedule-tools.test.ts +103 -0
- package/src/__tests__/scheduler-wake.test.ts +5 -0
- package/src/__tests__/secret-routes-platform-proxy.test.ts +29 -1
- package/src/__tests__/secure-keys.test.ts +91 -0
- package/src/__tests__/server-history-render.test.ts +97 -7
- package/src/__tests__/size-guard.test.ts +8 -8
- package/src/__tests__/skill-docs-sync-guard.test.ts +3 -2
- package/src/__tests__/skill-tool-factory.test.ts +247 -0
- package/src/__tests__/skills-install-staging.test.ts +15 -6
- package/src/__tests__/skills.test.ts +32 -0
- package/src/__tests__/slack-edit-ordering-characterization.test.ts +103 -0
- package/src/__tests__/slack-inbound-verification.test.ts +4 -1
- package/src/__tests__/slack-mention-binding-invariance.test.ts +103 -0
- package/src/__tests__/slack-mention-provider-leak-audit.test.ts +135 -0
- package/src/__tests__/starter-task-flow.test.ts +5 -4
- package/src/__tests__/steer-on-enqueue-question.test.ts +3 -2
- package/src/__tests__/stt-language-catalog-parity.test.ts +38 -0
- package/src/__tests__/subagent-allowlist-validation.test.ts +26 -4
- package/src/__tests__/subagent-cron-run-attribution.test.ts +301 -0
- package/src/__tests__/subagent-disposal.test.ts +10 -0
- package/src/__tests__/subagent-fork-notifications.test.ts +10 -0
- package/src/__tests__/subagent-fork-prompt-role.test.ts +85 -11
- package/src/__tests__/subagent-fork-spawn.test.ts +15 -7
- package/src/__tests__/subagent-manager-notify.test.ts +148 -0
- package/src/__tests__/subagent-notify-parent.test.ts +1 -1
- package/src/__tests__/subagent-persistence.test.ts +141 -0
- package/src/__tests__/subagent-role-registry.test.ts +172 -63
- package/src/__tests__/subagent-role-resolution.test.ts +88 -0
- package/src/__tests__/subagent-spawn-and-await.test.ts +48 -0
- package/src/__tests__/subagent-spawn-tool-fork.test.ts +111 -10
- package/src/__tests__/subagent-terminal-message.test.ts +88 -1
- package/src/__tests__/subagent-tool-gate-mode.test.ts +225 -10
- package/src/__tests__/subagent-tools.test.ts +1901 -108
- package/src/__tests__/surface-completion-compaction-boundary.test.ts +124 -0
- package/src/__tests__/surface-completion-in-flight-snapshot.test.ts +298 -0
- package/src/__tests__/system-prompt.test.ts +82 -7
- package/src/__tests__/tool-grant-request-escalation.test.ts +40 -1
- package/src/__tests__/tool-result-spool.test.ts +74 -18
- package/src/__tests__/tool-side-effects-documents.test.ts +174 -0
- package/src/__tests__/tool-side-effects-hook-failures.test.ts +129 -0
- package/src/__tests__/tools-audio-read.test.ts +10 -10
- package/src/__tests__/tools-get-route.test.ts +85 -12
- package/src/__tests__/tools-list-cli.test.ts +171 -0
- package/src/__tests__/top-level-renderer.test.ts +54 -1
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +68 -1
- package/src/__tests__/trusted-contact-multichannel.test.ts +4 -1
- package/src/__tests__/turn-tail-chain.test.ts +135 -0
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +6 -4
- package/src/__tests__/ui-visual-surface.test.ts +5 -4
- package/src/__tests__/ui-work-result-surface.test.ts +5 -4
- package/src/__tests__/unified-turn-context-visible-app.test.ts +7 -8
- package/src/__tests__/usage-routes.test.ts +62 -0
- package/src/__tests__/verification-outbound-delivery.test.ts +176 -0
- package/src/__tests__/visible-app-context.test.ts +20 -4
- package/src/__tests__/web-search-history.test.ts +96 -0
- package/src/__tests__/workspace-migration-139-clear-renamed-cost-profile-label.test.ts +6 -6
- package/src/__tests__/workspace-migration-140-repair-seed-pinned-memory-v3-live.test.ts +330 -0
- package/src/__tests__/workspace-migration-142-consolidate-voice-front-door.test.ts +150 -0
- package/src/acp/failure-error.ts +3 -5
- package/src/agent/attachments.ts +26 -24
- package/src/agent/history-repair/history-repair.ts +27 -26
- package/src/agent/image-optimize.ts +6 -6
- package/src/agent/loop.ts +40 -22
- package/src/agent/message-types.ts +3 -3
- package/src/api/constants/document-tools.ts +55 -0
- package/src/api/events/question-answered.ts +53 -0
- package/src/api/events/tool-result.ts +7 -0
- package/src/api/index.ts +13 -0
- package/src/api/responses/conversation-message.ts +11 -0
- package/src/api/surfaces-oauth-connect.test.ts +96 -0
- package/src/api/surfaces.ts +36 -8
- package/src/approvals/guardian-channel-delivery.ts +83 -0
- package/src/approvals/guardian-expiry-notifier.ts +13 -11
- package/src/approvals/guardian-request-resolvers.ts +222 -135
- package/src/calls/__tests__/tts-text-sanitizer.test.ts +13 -0
- package/src/calls/__tests__/voice-session-bridge.test.ts +131 -12
- package/src/calls/__tests__/voice-triage-escalate.test.ts +106 -0
- package/src/calls/call-controller.ts +30 -2
- package/src/calls/call-speech-output.ts +12 -4
- package/src/calls/call-transport.ts +18 -1
- package/src/calls/media-stream-output.ts +53 -5
- package/src/calls/media-stream-server.ts +21 -1
- package/src/calls/media-stream-stt-session.ts +49 -0
- package/src/calls/telephony-synthesis-language.ts +84 -0
- package/src/calls/tts-text-sanitizer.ts +12 -5
- package/src/calls/voice-session-bridge.ts +86 -17
- package/src/calls/voice-triage-escalate.ts +54 -7
- package/src/channels/__tests__/gateway-verification-sessions.test.ts +3 -3
- package/src/channels/__tests__/plugin-channel-declarations.test.ts +161 -0
- package/src/channels/config.ts +20 -2
- package/src/channels/gateway-verification-sessions.ts +7 -2
- package/src/channels/plugin-channel-declarations.ts +108 -0
- package/src/channels/types.ts +37 -1
- package/src/cli/AGENTS.md +5 -2
- package/src/cli/commands/__tests__/cache.test.ts +7 -4
- package/src/cli/commands/__tests__/cli-test-harness.ts +82 -0
- package/src/cli/commands/__tests__/conversations-wake.test.ts +51 -6
- package/src/cli/commands/__tests__/inference-models.test.ts +14 -0
- package/src/cli/commands/__tests__/inference-profiles.test.ts +44 -1
- package/src/cli/commands/__tests__/inference-providers.test.ts +7 -0
- package/src/cli/commands/__tests__/plugins.test.ts +692 -0
- package/src/cli/commands/__tests__/schedules.test.ts +136 -37
- package/src/cli/commands/conversations.ts +7 -3
- package/src/cli/commands/credentials.help.ts +7 -0
- package/src/cli/commands/inference-profiles.ts +9 -3
- package/src/cli/commands/inference.help.ts +16 -2
- package/src/cli/commands/mcp.help.ts +17 -6
- package/src/cli/commands/mcp.ts +9 -0
- package/src/cli/commands/memory/memory-retrospective.ts +18 -0
- package/src/cli/commands/notifications.ts +3 -6
- package/src/cli/commands/oauth/connect-surface-guidance.test.ts +16 -0
- package/src/cli/commands/oauth/connect-surface-guidance.ts +25 -7
- package/src/cli/commands/oauth/connect.test.ts +26 -1
- package/src/cli/commands/oauth/connect.ts +4 -1
- package/src/cli/commands/oauth/index.help.ts +3 -1
- package/src/cli/commands/oauth/providers.ts +3 -0
- package/src/cli/commands/plugins.help.ts +25 -2
- package/src/cli/commands/plugins.ts +289 -10
- package/src/cli/commands/schedules.help.ts +14 -12
- package/src/cli/commands/schedules.ts +19 -5
- package/src/cli/commands/stt.help.ts +27 -2
- package/src/cli/commands/tools.help.ts +4 -2
- package/src/cli/commands/tools.ts +38 -0
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +1 -0
- package/src/cli/lib/__tests__/install-from-github.test.ts +79 -0
- package/src/cli/lib/__tests__/install-from-platform.test.ts +47 -1
- package/src/cli/lib/__tests__/plugin-surfaces.test.ts +86 -7
- package/src/cli/lib/__tests__/upgrade-plugin.test.ts +161 -0
- package/src/cli/lib/install-from-github.ts +61 -0
- package/src/cli/lib/install-from-platform.ts +13 -2
- package/src/cli/lib/plugin-surfaces.ts +124 -4
- package/src/cli/lib/upgrade-plugin.ts +60 -0
- package/src/cli.ts +1 -1
- package/src/config/__tests__/default-profile-catalog.test.ts +11 -1
- package/src/config/__tests__/deployment-context-defaults.test.ts +73 -0
- package/src/config/__tests__/memory-retrospective-schema.test.ts +40 -0
- package/src/config/__tests__/plugin-updates-schema.test.ts +43 -0
- package/src/config/__tests__/profile-tool-support.test.ts +131 -0
- package/src/config/bundled-skills/AGENTS.md +1 -1
- package/src/config/bundled-skills/acp/SKILL.md +6 -7
- package/src/config/bundled-skills/app-builder/SKILL.md +1 -1
- package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +3 -3
- package/src/config/bundled-skills/media-processing/services/preprocess.ts +14 -4
- package/src/config/bundled-skills/phone-calls/references/CONFIG.md +15 -15
- package/src/config/bundled-skills/schedule/SKILL.md +5 -1
- package/src/config/bundled-skills/schedule/TOOLS.json +2 -2
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +1 -0
- package/src/config/bundled-skills/subagent/SKILL.md +53 -22
- package/src/config/bundled-skills/subagent/TOOLS.json +14 -13
- package/src/config/bundled-skills/transcribe/tools/transcribe-media.test.ts +22 -1
- package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +9 -2
- package/src/config/bundled-skills/visualize/SKILL.md +1 -1
- package/src/config/call-site-defaults.ts +4 -5
- package/src/config/default-profile-catalog.ts +9 -5
- package/src/config/feature-flag-registry.json +25 -17
- package/src/config/llm-resolver.ts +45 -15
- package/src/config/loader.ts +75 -1
- package/src/config/profile-tool-support.ts +110 -0
- package/src/config/sanitize-for-transfer.ts +11 -0
- package/src/config/schema.ts +4 -0
- package/src/config/schemas/__tests__/live-voice.test.ts +142 -4
- package/src/config/schemas/__tests__/stt.test.ts +20 -5
- package/src/config/schemas/call-site-catalog.ts +4 -4
- package/src/config/schemas/calls.ts +0 -4
- package/src/config/schemas/channels.ts +13 -0
- package/src/config/schemas/live-voice.ts +82 -23
- package/src/config/schemas/llm.ts +1 -1
- package/src/config/schemas/memory-retrospective.ts +25 -0
- package/src/config/schemas/plugin-updates.ts +59 -0
- package/src/config/schemas/services.ts +8 -4
- package/src/config/schemas/stt.ts +18 -5
- package/src/config/schemas/timeouts.ts +1 -1
- package/src/config/schemas/tts.ts +63 -0
- package/src/contacts/__tests__/guardian-delivery-reader.test.ts +16 -0
- package/src/contacts/guardian-delivery-reader.ts +29 -2
- package/src/context/compactor.ts +4 -4
- package/src/context/post-turn-tool-result-truncation.ts +32 -16
- package/src/context/strip-injections.ts +42 -0
- package/src/context/tool-result-spool.ts +32 -18
- package/src/credential-execution/ces-runtime.ts +3 -0
- package/src/credential-execution/client.ts +22 -1
- package/src/credential-execution/process-manager.test.ts +99 -0
- package/src/credential-execution/process-manager.ts +62 -16
- package/src/daemon/__tests__/abort-null-controller.test.ts +141 -5
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +8 -12
- package/src/daemon/__tests__/install-assistant-command.test.ts +234 -0
- package/src/daemon/__tests__/turn-tail-assistant-reply-notify.test.ts +2 -4
- package/src/daemon/__tests__/turn-tail-deleted-conversation.test.ts +20 -29
- package/src/daemon/channel-ui-capability.ts +4 -4
- package/src/daemon/conversation-agent-loop-handlers.ts +117 -61
- package/src/daemon/conversation-agent-loop.ts +318 -148
- package/src/daemon/conversation-attachments.ts +1 -1
- package/src/daemon/conversation-error.ts +8 -1
- package/src/daemon/conversation-initial-prompt.ts +16 -38
- package/src/daemon/conversation-lifecycle.ts +154 -32
- package/src/daemon/conversation-messaging.ts +106 -43
- package/src/daemon/conversation-process.ts +131 -33
- package/src/daemon/conversation-queue-manager.ts +10 -0
- package/src/daemon/conversation-runtime-assembly.ts +9 -4
- package/src/daemon/conversation-store.ts +52 -3
- package/src/daemon/conversation-surface-state.ts +9 -0
- package/src/daemon/conversation-surfaces.ts +403 -210
- package/src/daemon/conversation-tool-setup.ts +56 -7
- package/src/daemon/conversation-turn-finalize.ts +134 -89
- package/src/daemon/conversation.ts +111 -27
- package/src/daemon/disk-pressure-guard-lifecycle.ts +2 -2
- package/src/daemon/disk-pressure-guard.ts +3 -3
- package/src/daemon/doordash-steps.ts +5 -5
- package/src/daemon/external-plugins-bootstrap.ts +7 -1
- package/src/daemon/handlers/config-channels.ts +48 -5
- package/src/daemon/handlers/conversation-history.ts +1 -1
- package/src/daemon/handlers/conversations.ts +62 -17
- package/src/daemon/handlers/shared.ts +12 -0
- package/src/daemon/handlers/skills.ts +11 -1
- package/src/daemon/identity-helpers.ts +38 -10
- package/src/daemon/install-assistant-command.ts +322 -0
- package/src/daemon/lifecycle.ts +14 -3
- package/src/daemon/message-types/conversations.ts +6 -7
- package/src/daemon/message-types/sync.ts +1 -0
- package/src/daemon/persist-media-references.ts +23 -14
- package/src/daemon/process-message.ts +6 -6
- package/src/daemon/tool-setup-types.ts +19 -122
- package/src/daemon/tool-side-effects.ts +17 -94
- package/src/daemon/trust-context-types.ts +39 -0
- package/src/daemon/trust-context.ts +14 -6
- package/src/daemon/turn-tail-chain.ts +73 -0
- package/src/daemon/web-search-history.ts +47 -33
- package/src/heartbeat/heartbeat-service.ts +6 -6
- package/src/inbound/__tests__/oauth-callback-url.test.ts +83 -0
- package/src/inbound/oauth-callback-url.ts +61 -0
- package/src/ipc/__tests__/socket-path.test.ts +21 -0
- package/src/ipc/assistant-server.ts +17 -10
- package/src/ipc/cli-client.ts +10 -1
- package/src/ipc/routes/__tests__/documents-sync-ipc-routes.test.ts +56 -0
- package/src/ipc/routes/documents-sync-ipc-routes.ts +42 -0
- package/src/ipc/socket-cleanup.ts +9 -7
- package/src/ipc/socket-path.ts +4 -96
- package/src/live-voice/__tests__/live-voice-agent-turn.test.ts +1 -104
- package/src/live-voice/__tests__/live-voice-archive.test.ts +16 -16
- package/src/live-voice/__tests__/live-voice-attach-image.test.ts +209 -0
- package/src/live-voice/__tests__/live-voice-connection.test.ts +20 -0
- package/src/live-voice/__tests__/live-voice-events.test.ts +7 -8
- package/src/live-voice/__tests__/live-voice-flux-turn-end.test.ts +932 -0
- package/src/live-voice/__tests__/live-voice-integration.test.ts +12 -5
- package/src/live-voice/__tests__/live-voice-metrics.test.ts +115 -8
- package/src/live-voice/__tests__/live-voice-photo.test.ts +100 -0
- package/src/live-voice/__tests__/live-voice-progress.test.ts +179 -146
- package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +265 -0
- package/src/live-voice/__tests__/live-voice-stt.test.ts +324 -2
- package/src/live-voice/__tests__/live-voice-triage-escalate.test.ts +131 -2
- package/src/live-voice/__tests__/live-voice-tts-session.test.ts +0 -483
- package/src/live-voice/__tests__/live-voice-tts.test.ts +148 -2
- package/src/live-voice/__tests__/live-voice-vad.test.ts +313 -32
- package/src/live-voice/__tests__/progress-narration.test.ts +214 -0
- package/src/live-voice/__tests__/progress-phrases.test.ts +167 -0
- package/src/live-voice/__tests__/protocol.test.ts +52 -0
- package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +3 -0
- package/src/live-voice/live-voice-archive.ts +13 -13
- package/src/live-voice/live-voice-connection.ts +7 -1
- package/src/live-voice/live-voice-metrics.ts +57 -32
- package/src/live-voice/live-voice-photo.ts +168 -0
- package/src/live-voice/live-voice-session.ts +1137 -351
- package/src/live-voice/live-voice-tts.ts +18 -2
- package/src/live-voice/progress-narration.ts +277 -0
- package/src/live-voice/progress-phrases.ts +105 -2
- package/src/live-voice/protocol.ts +110 -2
- package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +0 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +196 -0
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +9 -9
- package/src/mcp/client.ts +14 -7
- package/src/mcp/mcp-auth-orchestrator.ts +13 -22
- package/src/mcp/mcp-oauth-provider.ts +195 -240
- package/src/messaging/providers/__tests__/callback-routing.test.ts +5 -1
- package/src/messaging/providers/__tests__/transport-dispatch.test.ts +66 -4
- package/src/messaging/providers/callback-routing.ts +1 -0
- package/src/messaging/providers/discord/api.ts +312 -0
- package/src/messaging/providers/discord/dm-delivery.test.ts +204 -0
- package/src/messaging/providers/discord/render.test.ts +204 -0
- package/src/messaging/providers/discord/render.ts +195 -0
- package/src/messaging/providers/discord/send.test.ts +179 -0
- package/src/messaging/providers/discord/send.ts +212 -0
- package/src/messaging/providers/discord/transport.ts +81 -0
- package/src/messaging/providers/index.ts +3 -1
- package/src/messaging/providers/retry-policy.test.ts +247 -0
- package/src/messaging/providers/retry-policy.ts +206 -0
- package/src/messaging/providers/slack/mention-source.test.ts +285 -0
- package/src/messaging/providers/slack/mention-source.ts +287 -0
- package/src/messaging/providers/telegram-bot/api.ts +47 -130
- package/src/messaging/providers/whatsapp/api.ts +47 -136
- package/src/monitoring/__tests__/db-integrity-sample.test.ts +4 -1
- package/src/monitoring/__tests__/plugin-auto-update.test.ts +495 -0
- package/src/monitoring/db-integrity-sample.ts +6 -1
- package/src/monitoring/plugin-auto-update.ts +463 -0
- package/src/monitoring/resource-sampler.ts +21 -5
- package/src/monitoring/worker.ts +13 -0
- package/src/notifications/__tests__/assistant-reply-producer.test.ts +375 -2
- package/src/notifications/__tests__/broadcaster.test.ts +37 -1
- package/src/notifications/__tests__/copy-composer.test.ts +165 -0
- package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +205 -0
- package/src/notifications/__tests__/notification-utils.test.ts +249 -0
- package/src/notifications/adapters/platform.ts +31 -2
- package/src/notifications/assistant-reply-producer.ts +79 -32
- package/src/notifications/broadcaster.ts +30 -10
- package/src/notifications/copy-composer.ts +69 -0
- package/src/notifications/emit-signal.ts +82 -15
- package/src/notifications/events-store.ts +10 -2
- package/src/notifications/home-feed-side-effect.ts +6 -3
- package/src/notifications/notification-utils.ts +173 -5
- package/src/notifications/signal.ts +13 -0
- package/src/oauth/AGENTS.md +4 -2
- package/src/oauth/byo-connection.ts +6 -1
- package/src/oauth/credential-token-resolver.ts +3 -10
- package/src/oauth/manual-token-connection.ts +29 -64
- package/src/oauth/manual-token-providers.ts +62 -0
- package/src/oauth/provider-serializer.ts +13 -0
- package/src/oauth/seed-providers.ts +62 -11
- package/src/onboarding/onboarding-events-store.ts +91 -1
- package/src/permissions/question-prompter.test.ts +4 -0
- package/src/permissions/question-prompter.ts +21 -4
- package/src/persistence/__tests__/conversation-lineage.test.ts +248 -0
- package/src/persistence/attachments-store.ts +15 -15
- package/src/persistence/conversation-attention-store.ts +30 -10
- package/src/persistence/conversation-bootstrap.ts +17 -0
- package/src/persistence/conversation-crud.ts +363 -97
- package/src/persistence/conversation-group-migration.ts +1 -1
- package/src/persistence/conversation-key-store.ts +38 -10
- package/src/persistence/conversation-lineage.ts +226 -0
- package/src/persistence/conversation-plugin-facade.ts +28 -3
- package/src/persistence/conversation-queries.ts +207 -33
- package/src/persistence/conversation-types.ts +107 -1
- package/src/persistence/jobs-store.ts +32 -8
- package/src/persistence/llm-usage-store.ts +22 -0
- package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +168 -0
- package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +76 -0
- package/src/persistence/migrations/362-add-conversation-subagent-kind.test.ts +187 -0
- package/src/persistence/migrations/362-add-conversation-subagent-kind.ts +93 -0
- package/src/persistence/migrations/363-backfill-schedule-inference-profile.test.ts +229 -0
- package/src/persistence/migrations/363-backfill-schedule-inference-profile.ts +127 -0
- package/src/persistence/migrations/364-add-schedule-source-key.test.ts +120 -0
- package/src/persistence/migrations/364-add-schedule-source-key.ts +43 -0
- package/src/persistence/migrations/365-add-conversation-fork-strategy.ts +27 -0
- package/src/persistence/schema/conversations.ts +32 -0
- package/src/persistence/schema/infrastructure.ts +3 -0
- package/src/persistence/steps.ts +30 -0
- package/src/persistence/subagent-store.ts +148 -6
- package/src/platform/managed-speech.test.ts +20 -0
- package/src/platform/managed-speech.ts +9 -0
- package/src/plugin-api/__tests__/oauth-callback-url-export.test.ts +29 -0
- package/src/plugin-api/index.ts +28 -5
- package/src/plugin-api/webhook-url.ts +151 -0
- package/src/plugins/__tests__/installed-plugin-dirs.test.ts +82 -0
- package/src/plugins/__tests__/mcp-servers.test.ts +370 -0
- package/src/plugins/__tests__/source-fingerprint.test.ts +5 -1
- package/src/plugins/collect-source-versions.ts +4 -27
- package/src/plugins/defaults/exploration-drift/hooks/post-tool-use.ts +5 -5
- package/src/plugins/defaults/exploration-drift/package.json +1 -1
- package/src/plugins/defaults/image-recovery/hooks/post-model-call.ts +4 -2
- package/src/plugins/defaults/image-recovery/recover.ts +67 -57
- package/src/plugins/defaults/index.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/conversation-queries.test.ts +64 -18
- package/src/plugins/defaults/memory/__tests__/jobs-worker-outcome-contract.test.ts +242 -0
- package/src/plugins/defaults/memory/__tests__/jobs-worker-retrospective-sweep.test.ts +24 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +48 -3
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +511 -19
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +39 -3
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +493 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-wake-chain.test.ts +5 -4
- package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +5 -1
- package/src/plugins/defaults/memory/job-handlers.ts +87 -5
- package/src/plugins/defaults/memory/jobs-worker.ts +60 -6
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +11 -0
- package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +29 -0
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +342 -60
- package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +23 -3
- package/src/plugins/defaults/memory/substrate/consolidation-lock.ts +9 -4
- package/src/plugins/defaults/memory/substrate/skill-content.ts +8 -1
- package/src/plugins/defaults/memory/substrate/sweep-job.ts +7 -0
- package/src/plugins/defaults/memory/v1/graph/injection.ts +1 -1
- package/src/plugins/defaults/memory/v2/router.ts +8 -0
- package/src/plugins/defaults/turn-context/unified-turn-context.ts +1 -2
- package/src/plugins/external-plugin-loader.ts +64 -8
- package/src/plugins/installed-plugin-dirs.ts +101 -0
- package/src/plugins/mcp-servers.ts +343 -0
- package/src/plugins/mtime-cache.ts +34 -22
- package/src/plugins/types.ts +69 -8
- package/src/prompts/persona-resolver.ts +6 -2
- package/src/prompts/system-prompt.ts +72 -17
- package/src/providers/__tests__/inference.test.ts +40 -0
- package/src/providers/__tests__/preflight-resolved-config.test.ts +58 -1
- package/src/providers/__tests__/retry-callsite.test.ts +72 -2
- package/src/providers/__tests__/vellum-connection-routing.test.ts +42 -11
- package/src/providers/anthropic/client.ts +112 -95
- package/src/providers/connection-resolution.ts +35 -1
- package/src/providers/gemini/client.ts +5 -5
- package/src/providers/inference/adapter-factory.ts +16 -10
- package/src/providers/inference/auth.ts +16 -0
- package/src/providers/inference/connection-availability.ts +164 -12
- package/src/providers/inference/connections.ts +25 -1
- package/src/providers/media-resolve.ts +21 -11
- package/src/providers/model-catalog.ts +15 -0
- package/src/providers/openai/chat-completions-provider.ts +4 -4
- package/src/providers/openai/responses-provider.ts +12 -25
- package/src/providers/registry.ts +9 -4
- package/src/providers/retry.ts +25 -0
- package/src/providers/server-tool-pairing.ts +134 -0
- package/src/providers/speech-to-text/__tests__/deepgram-flux-frames.test.ts +433 -0
- package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +620 -0
- package/src/providers/speech-to-text/__tests__/provider-catalog.test.ts +34 -0
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +472 -12
- package/src/providers/speech-to-text/deepgram-flux-frames.ts +395 -0
- package/src/providers/speech-to-text/deepgram-flux-realtime.ts +719 -0
- package/src/providers/speech-to-text/deepgram-realtime.test.ts +283 -1
- package/src/providers/speech-to-text/deepgram-realtime.ts +117 -3
- package/src/providers/speech-to-text/deepgram.ts +1 -0
- package/src/providers/speech-to-text/provider-catalog.ts +137 -8
- package/src/providers/speech-to-text/resolve.ts +105 -12
- package/src/providers/speech-to-text/vellum-managed.ts +7 -1
- package/src/providers/speech-to-text/vellum-speech-relay-connection.ts +3 -1
- package/src/providers/types.ts +26 -6
- package/src/providers/vellum-model-routing.ts +6 -7
- package/src/runtime/AGENTS.md +2 -0
- package/src/runtime/__tests__/agent-wake.test.ts +16 -16
- package/src/runtime/__tests__/background-job-runner.test.ts +0 -144
- package/src/runtime/__tests__/desktop-presence.test.ts +162 -0
- package/src/runtime/__tests__/local-actor-identity-force-refresh.test.ts +104 -0
- package/src/runtime/agent-wake.ts +63 -24
- package/src/runtime/assistant-event-hub.ts +110 -12
- package/src/runtime/auth/__tests__/guard-tests.test.ts +2 -0
- package/src/runtime/auth/__tests__/scopes.test.ts +20 -0
- package/src/runtime/auth/same-actor.ts +56 -8
- package/src/runtime/auth/scopes.ts +12 -0
- package/src/runtime/auth/types.ts +2 -0
- package/src/runtime/background-job-runner.ts +5 -27
- package/src/runtime/channel-readiness-service.ts +59 -3
- package/src/runtime/channel-readiness-types.ts +18 -0
- package/src/runtime/desktop-presence.ts +69 -0
- package/src/runtime/http-server.ts +12 -0
- package/src/runtime/local-actor-identity.ts +29 -14
- package/src/runtime/migrations/__tests__/vbundle-symlink-streaming-importer.test.ts +0 -0
- package/src/runtime/routes/__tests__/channel-verification-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/client-routes.test.ts +186 -14
- package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +547 -1
- package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +162 -7
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +14 -10
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +340 -3
- package/src/runtime/routes/__tests__/llm-call-sites-routes.test.ts +28 -1
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +217 -1
- package/src/runtime/routes/__tests__/question-routes.test.ts +64 -0
- package/src/runtime/routes/__tests__/retrospective-routes.test.ts +20 -0
- package/src/runtime/routes/__tests__/skill-history-route.test.ts +116 -0
- package/src/runtime/routes/__tests__/sse-actor-principal-heal.test.ts +165 -0
- package/src/runtime/routes/__tests__/stt-routes.test.ts +25 -0
- package/src/runtime/routes/__tests__/surface-action-routes.test.ts +2 -0
- package/src/runtime/routes/__tests__/wake-conversation-routes.test.ts +60 -2
- package/src/runtime/routes/archive-utils.ts +16 -12
- package/src/runtime/routes/attachment-routes.ts +13 -6
- package/src/runtime/routes/canned-reply-release.ts +54 -0
- package/src/runtime/routes/channel-availability-routes.ts +32 -14
- package/src/runtime/routes/channel-verification-routes.ts +2 -27
- package/src/runtime/routes/chatgpt-subscription-auth-routes.ts +5 -0
- package/src/runtime/routes/client-routes.ts +114 -2
- package/src/runtime/routes/conversation-cli-routes.ts +10 -12
- package/src/runtime/routes/conversation-list-routes.ts +59 -10
- package/src/runtime/routes/conversation-management-routes.ts +47 -18
- package/src/runtime/routes/conversation-query-routes.ts +32 -53
- package/src/runtime/routes/conversation-routes.ts +360 -293
- package/src/runtime/routes/credential-prompt-routes.ts +20 -2
- package/src/runtime/routes/debug-routes.ts +4 -1
- package/src/runtime/routes/default-provider-routes.ts +7 -11
- package/src/runtime/routes/documents-routes.ts +44 -1
- package/src/runtime/routes/events-routes.ts +29 -1
- package/src/runtime/routes/host-app-control-routes.ts +2 -0
- package/src/runtime/routes/host-bash-routes.ts +2 -0
- package/src/runtime/routes/host-browser-routes.ts +2 -0
- package/src/runtime/routes/host-cu-routes.ts +2 -0
- package/src/runtime/routes/host-file-routes.ts +2 -0
- package/src/runtime/routes/host-transfer-routes.ts +4 -0
- package/src/runtime/routes/identity-routes.ts +6 -6
- package/src/runtime/routes/inbound-message-handler.ts +5 -5
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +7 -3
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +14 -0
- package/src/runtime/routes/inbound-stages/bootstrap-intercept.ts +2 -2
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +14 -11
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +14 -17
- package/src/runtime/routes/inference-profile-availability-guard.ts +171 -0
- package/src/runtime/routes/inference-profile-session-handler.ts +26 -2
- package/src/runtime/routes/inference-profile-session-routes.ts +2 -1
- package/src/runtime/routes/inference-profiles-routes.ts +152 -73
- package/src/runtime/routes/inference-provider-connection-routes.ts +0 -16
- package/src/runtime/routes/llm-call-sites-routes.ts +13 -0
- package/src/runtime/routes/log-export-routes.ts +1 -1
- package/src/runtime/routes/mcp-auth-routes.ts +141 -57
- package/src/runtime/routes/notification-routes.ts +0 -14
- package/src/runtime/routes/oauth-providers.ts +1 -0
- package/src/runtime/routes/plugins-routes.ts +127 -4
- package/src/runtime/routes/profiler-routes.ts +4 -2
- package/src/runtime/routes/question-routes.ts +28 -10
- package/src/runtime/routes/retrospective-routes.ts +9 -3
- package/src/runtime/routes/schedule-routes.ts +210 -12
- package/src/runtime/routes/secret-routes.ts +40 -23
- package/src/runtime/routes/settings-routes.ts +41 -13
- package/src/runtime/routes/skills-routes.ts +79 -0
- package/src/runtime/routes/sse-actor-principal-heal.ts +113 -0
- package/src/runtime/routes/stt-routes.ts +31 -25
- package/src/runtime/routes/ui-snapshot-routes.ts +1 -0
- package/src/runtime/routes/wake-conversation-routes.ts +23 -0
- package/src/runtime/services/__tests__/conversation-serializer.test.ts +1 -0
- package/src/runtime/services/conversation-serializer.ts +24 -9
- package/src/runtime/sync/documents-sidecar-publish.test.ts +101 -0
- package/src/runtime/sync/resource-sync-events.ts +79 -1
- package/src/runtime/sync/worker-daemon-notify.test.ts +34 -0
- package/src/runtime/sync/worker-daemon-notify.ts +44 -6
- package/src/runtime/verification-outbound-actions.ts +250 -222
- package/src/runtime/verification-templates.ts +41 -30
- package/src/schedule/__tests__/plugin-schedule-declarations.test.ts +614 -0
- package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1066 -0
- package/src/schedule/inference-profile.ts +64 -3
- package/src/schedule/plugin-schedule-declarations.ts +518 -0
- package/src/schedule/plugin-schedule-reconciler.ts +605 -0
- package/src/schedule/plugin-schedules-gate.ts +23 -0
- package/src/schedule/schedule-store.ts +520 -26
- package/src/schedule/scheduler.ts +38 -0
- package/src/security/credential-backend.ts +51 -4
- package/src/security/encrypted-store.ts +64 -42
- package/src/security/oauth2.ts +6 -22
- package/src/security/secure-keys.ts +55 -7
- package/src/skills/catalog-install.ts +20 -7
- package/src/skills/inline-command-runner.ts +2 -7
- package/src/skills/skill-history.test.ts +269 -0
- package/src/skills/skill-history.ts +250 -0
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +22 -0
- package/src/stt/__tests__/language-metadata.test.ts +85 -0
- package/src/stt/__tests__/speech-energy.test.ts +79 -0
- package/src/stt/__tests__/types.test.ts +94 -0
- package/src/stt/daemon-batch-transcriber.ts +18 -6
- package/src/stt/language-metadata.ts +65 -0
- package/src/stt/speech-energy.ts +115 -12
- package/src/stt/stt-stream-session.ts +8 -4
- package/src/stt/types.ts +119 -0
- package/src/subagent/__tests__/consult-prompt.test.ts +25 -0
- package/src/subagent/consult-prompt.ts +3 -1
- package/src/subagent/consult-transcript.ts +1 -1
- package/src/subagent/manager.ts +304 -44
- package/src/subagent/progress-events.ts +35 -0
- package/src/subagent/role-resolution.ts +88 -0
- package/src/subagent/types.ts +303 -67
- package/src/subagent/validate-allowlists.ts +3 -4
- package/src/telegram/__tests__/webhook-health.test.ts +73 -1
- package/src/telegram/webhook-health.ts +101 -3
- package/src/telemetry/__tests__/telemetry-event-fixtures.ts +2 -0
- package/src/telemetry/activation-funnel.ts +6 -1
- package/src/telemetry/live-voice-funnel.ts +75 -0
- package/src/telemetry/telemetry-event-sources.ts +6 -0
- package/src/telemetry/telemetry-wire-source.json +1 -1
- package/src/telemetry/telemetry-wire.generated.ts +2 -0
- package/src/telemetry/types.ts +23 -4
- package/src/telemetry/usage-telemetry-reporter.test.ts +4 -0
- package/src/tools/__tests__/subagent-workflow-tool-input-schemas.test.ts +1 -1
- package/src/tools/ask-question/ask-question-tool.test.ts +118 -3
- package/src/tools/ask-question/ask-question-tool.ts +56 -2
- package/src/tools/browser/browser-execution.ts +1 -1
- package/src/tools/calls/call-start.ts +8 -5
- package/src/tools/conversation-groups/move_to_group.ts +10 -12
- package/src/tools/document/document-tool.ts +11 -4
- package/src/tools/execution-timeout.ts +9 -2
- package/src/tools/executor.ts +7 -6
- package/src/tools/filesystem/edit.ts +1 -1
- package/src/tools/filesystem/list.ts +1 -1
- package/src/tools/filesystem/read.ts +7 -13
- package/src/tools/filesystem/search.ts +23 -21
- package/src/tools/filesystem/write.ts +4 -1
- package/src/tools/host-filesystem/edit.ts +7 -2
- package/src/tools/host-filesystem/read.ts +21 -8
- package/src/tools/host-filesystem/write.ts +10 -2
- package/src/tools/host-terminal/host-shell.ts +2 -2
- package/src/tools/mcp/mcp-tool-factory.ts +25 -1
- package/src/tools/permission-checker.ts +8 -3
- package/src/tools/schedule/delete.ts +13 -1
- package/src/tools/schedule/list.ts +14 -3
- package/src/tools/schedule/update.ts +56 -33
- package/src/tools/shared/filesystem/audio-read.ts +6 -4
- package/src/tools/shared/filesystem/file-ops-service.ts +176 -116
- package/src/tools/shared/filesystem/image-read.ts +12 -12
- package/src/tools/shared/filesystem/path-policy.ts +70 -5
- package/src/tools/shared/filesystem/size-guard.ts +6 -6
- package/src/tools/shared/input-misuse.ts +72 -0
- package/src/tools/skills/scaffold-managed.ts +82 -0
- package/src/tools/skills/skill-tool-factory.ts +14 -1
- package/src/tools/subagent/consult-deadline.ts +12 -7
- package/src/tools/subagent/message.ts +3 -1
- package/src/tools/subagent/read.ts +66 -4
- package/src/tools/subagent/spawn.ts +500 -78
- package/src/tools/tool-approval-handler.ts +45 -4
- package/src/tools/types.ts +22 -3
- package/src/tools/ui-surface/surface-shape-docs.ts +1 -1
- package/src/tools/ui-surface/visual-validation.ts +2 -0
- package/src/tts/__tests__/provider-adapters.test.ts +147 -0
- package/src/tts/__tests__/speakable-segments.test.ts +470 -0
- package/src/tts/language-voices.ts +23 -0
- package/src/tts/providers/deepgram-provider.ts +3 -1
- package/src/tts/providers/elevenlabs-provider.ts +73 -1
- package/src/tts/providers/xai-provider.ts +28 -2
- package/src/tts/speakable-segments.ts +293 -23
- package/src/tts/synthesis-stream.ts +7 -0
- package/src/tts/types.ts +7 -0
- package/src/usage/__tests__/subagent-attribution.test.ts +109 -0
- package/src/usage/subagent-attribution.ts +108 -0
- package/src/util/__tests__/language-subtag.test.ts +54 -0
- package/src/util/__tests__/sqlite-retry.test.ts +112 -0
- package/src/util/abort-reasons.ts +16 -0
- package/src/util/ansi.ts +44 -0
- package/src/util/disk-usage.ts +17 -13
- package/src/util/image-conversion.ts +20 -13
- package/src/util/language-subtag.ts +43 -0
- package/src/util/schedule-source-key.ts +23 -0
- package/src/util/unicode.ts +1 -1
- package/src/util/worker-process.ts +7 -1
- package/src/workspace/git-service.ts +33 -9
- package/src/workspace/migrations/140-repair-seed-pinned-memory-v3-live.ts +260 -0
- package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +111 -0
- package/src/workspace/migrations/142-consolidate-voice-front-door.ts +70 -0
- package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +116 -0
- package/src/workspace/migrations/registry.ts +6 -0
- package/src/workspace/top-level-renderer.ts +15 -2
- package/src/__tests__/tool-side-effects-slack-dm.test.ts +0 -357
- package/src/daemon/install-symlink.ts +0 -207
- package/src/live-voice/__tests__/front-decision.test.ts +0 -525
- package/src/live-voice/front-decision.ts +0 -429
- package/src/notifications/deferred-emit.ts +0 -147
package/openapi.yaml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
openapi: 3.1.0
|
|
4
4
|
info:
|
|
5
5
|
title: Vellum Assistant API
|
|
6
|
-
version: 0.11.
|
|
6
|
+
version: 0.11.3
|
|
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
|
|
@@ -4017,8 +4017,8 @@ paths:
|
|
|
4017
4017
|
summary: Get available channels
|
|
4018
4018
|
description:
|
|
4019
4019
|
Return the channels this assistant can surface to clients, with display metadata (label, icon, verification
|
|
4020
|
-
capability, setup copy).
|
|
4021
|
-
|
|
4020
|
+
capability, setup copy). A fixed base list plus `email` when an inbox is registered, plus the channels installed
|
|
4021
|
+
plugins bring by declaring ingress routes. Each carries a `source` saying which of those it is.
|
|
4022
4022
|
tags:
|
|
4023
4023
|
- channels
|
|
4024
4024
|
responses:
|
|
@@ -4036,16 +4036,9 @@ paths:
|
|
|
4036
4036
|
properties:
|
|
4037
4037
|
id:
|
|
4038
4038
|
type: string
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
- vellum
|
|
4043
|
-
- whatsapp
|
|
4044
|
-
- slack
|
|
4045
|
-
- email
|
|
4046
|
-
- platform
|
|
4047
|
-
- a2a
|
|
4048
|
-
- discord
|
|
4039
|
+
source:
|
|
4040
|
+
type: string
|
|
4041
|
+
description: "`default` for a channel the assistant ships, `plugin:<name>` for one an installed plugin brings"
|
|
4049
4042
|
label:
|
|
4050
4043
|
type: string
|
|
4051
4044
|
subtitle:
|
|
@@ -4067,13 +4060,16 @@ paths:
|
|
|
4067
4060
|
additionalProperties: false
|
|
4068
4061
|
required:
|
|
4069
4062
|
- id
|
|
4063
|
+
- source
|
|
4070
4064
|
- label
|
|
4071
4065
|
- subtitle
|
|
4072
4066
|
- icon
|
|
4073
4067
|
- supportsVerification
|
|
4074
4068
|
- setupMessages
|
|
4075
4069
|
additionalProperties: false
|
|
4076
|
-
description:
|
|
4070
|
+
description:
|
|
4071
|
+
"Available channels in display order: the ones the assistant ships, then the ones installed plugins bring
|
|
4072
|
+
by declaring ingress routes. `source` distinguishes them."
|
|
4077
4073
|
required:
|
|
4078
4074
|
- channels
|
|
4079
4075
|
additionalProperties: false
|
|
@@ -4358,6 +4354,7 @@ paths:
|
|
|
4358
4354
|
- platform
|
|
4359
4355
|
- a2a
|
|
4360
4356
|
- discord
|
|
4357
|
+
- plugin
|
|
4361
4358
|
ready:
|
|
4362
4359
|
type: boolean
|
|
4363
4360
|
setupStatus:
|
|
@@ -4448,6 +4445,7 @@ paths:
|
|
|
4448
4445
|
- platform
|
|
4449
4446
|
- a2a
|
|
4450
4447
|
- discord
|
|
4448
|
+
- plugin
|
|
4451
4449
|
includeRemote:
|
|
4452
4450
|
description: Include remote checks (default true)
|
|
4453
4451
|
type: boolean
|
|
@@ -4478,6 +4476,7 @@ paths:
|
|
|
4478
4476
|
- platform
|
|
4479
4477
|
- a2a
|
|
4480
4478
|
- discord
|
|
4479
|
+
- plugin
|
|
4481
4480
|
ready:
|
|
4482
4481
|
type: boolean
|
|
4483
4482
|
setupStatus:
|
|
@@ -4615,6 +4614,43 @@ paths:
|
|
|
4615
4614
|
required:
|
|
4616
4615
|
- disconnected
|
|
4617
4616
|
additionalProperties: false
|
|
4617
|
+
/v1/clients/presence:
|
|
4618
|
+
post:
|
|
4619
|
+
operationId: clients_presence_post
|
|
4620
|
+
summary: Report desktop presence
|
|
4621
|
+
description: Record the desktop presence state reported by the client identified by the X-Vellum-Client-Id header.
|
|
4622
|
+
tags:
|
|
4623
|
+
- clients
|
|
4624
|
+
requestBody:
|
|
4625
|
+
required: true
|
|
4626
|
+
content:
|
|
4627
|
+
application/json:
|
|
4628
|
+
schema:
|
|
4629
|
+
type: object
|
|
4630
|
+
properties:
|
|
4631
|
+
state:
|
|
4632
|
+
type: string
|
|
4633
|
+
enum:
|
|
4634
|
+
- active
|
|
4635
|
+
- idle
|
|
4636
|
+
- away
|
|
4637
|
+
description: Reported desktop presence state.
|
|
4638
|
+
required:
|
|
4639
|
+
- state
|
|
4640
|
+
responses:
|
|
4641
|
+
"200":
|
|
4642
|
+
description: Successful response
|
|
4643
|
+
content:
|
|
4644
|
+
application/json:
|
|
4645
|
+
schema:
|
|
4646
|
+
type: object
|
|
4647
|
+
properties:
|
|
4648
|
+
recorded:
|
|
4649
|
+
type: boolean
|
|
4650
|
+
description: Whether a connected client matched the reporting clientId.
|
|
4651
|
+
required:
|
|
4652
|
+
- recorded
|
|
4653
|
+
additionalProperties: false
|
|
4618
4654
|
/v1/config:
|
|
4619
4655
|
get:
|
|
4620
4656
|
operationId: config_get
|
|
@@ -4737,6 +4773,8 @@ paths:
|
|
|
4737
4773
|
type: string
|
|
4738
4774
|
defaultProfile:
|
|
4739
4775
|
type: string
|
|
4776
|
+
shippedDefaultProfile:
|
|
4777
|
+
type: string
|
|
4740
4778
|
required:
|
|
4741
4779
|
- id
|
|
4742
4780
|
- displayName
|
|
@@ -6543,9 +6581,20 @@ paths:
|
|
|
6543
6581
|
- platform
|
|
6544
6582
|
- a2a
|
|
6545
6583
|
- discord
|
|
6584
|
+
- plugin
|
|
6546
6585
|
description:
|
|
6547
6586
|
Filter by origin channel. When provided, only conversations with this exact origin_channel value are
|
|
6548
6587
|
returned. Omit to include all channels.
|
|
6588
|
+
- name: groupId
|
|
6589
|
+
in: query
|
|
6590
|
+
required: false
|
|
6591
|
+
schema:
|
|
6592
|
+
type: string
|
|
6593
|
+
description:
|
|
6594
|
+
Filter to a single group, so each sidebar section can load independently of the paginated list. Pass
|
|
6595
|
+
"system:all" for conversations in no group, "system:pinned" for the Pinned section, or a custom group id. A
|
|
6596
|
+
group-scoped request is ordered by the user's arrangement (display order, then recency) and never has pinned
|
|
6597
|
+
rows appended to it. Omit to span every group.
|
|
6549
6598
|
responses:
|
|
6550
6599
|
"200":
|
|
6551
6600
|
description: Successful response
|
|
@@ -6669,6 +6718,7 @@ paths:
|
|
|
6669
6718
|
- platform
|
|
6670
6719
|
- a2a
|
|
6671
6720
|
- discord
|
|
6721
|
+
- plugin
|
|
6672
6722
|
- type: "null"
|
|
6673
6723
|
assistantAttention:
|
|
6674
6724
|
type: object
|
|
@@ -6723,6 +6773,9 @@ paths:
|
|
|
6723
6773
|
- messageId
|
|
6724
6774
|
- title
|
|
6725
6775
|
additionalProperties: false
|
|
6776
|
+
historyOrphaned:
|
|
6777
|
+
type: boolean
|
|
6778
|
+
const: true
|
|
6726
6779
|
archivedAt:
|
|
6727
6780
|
type: number
|
|
6728
6781
|
surfacedAt:
|
|
@@ -6796,9 +6849,15 @@ paths:
|
|
|
6796
6849
|
`id`.
|
|
6797
6850
|
type: string
|
|
6798
6851
|
conversationType:
|
|
6799
|
-
description:
|
|
6852
|
+
description:
|
|
6853
|
+
Conversation type for the new row. "background" keeps it out of the foreground list and the sidebar's
|
|
6854
|
+
Recents grouping, used by internal side-channel flows (onboarding research, persona/identity
|
|
6855
|
+
rewrites) that mint a throwaway thread the user should never see. "scheduled" is not accepted here;
|
|
6856
|
+
scheduled rows are owned by the schedule pipeline.
|
|
6800
6857
|
type: string
|
|
6801
|
-
|
|
6858
|
+
enum:
|
|
6859
|
+
- standard
|
|
6860
|
+
- background
|
|
6802
6861
|
title:
|
|
6803
6862
|
description:
|
|
6804
6863
|
Explicit title for the conversation. When provided on creation, it is persisted as a user-set title (never
|
|
@@ -7023,6 +7082,7 @@ paths:
|
|
|
7023
7082
|
- platform
|
|
7024
7083
|
- a2a
|
|
7025
7084
|
- discord
|
|
7085
|
+
- plugin
|
|
7026
7086
|
- type: "null"
|
|
7027
7087
|
assistantAttention:
|
|
7028
7088
|
type: object
|
|
@@ -7077,6 +7137,9 @@ paths:
|
|
|
7077
7137
|
- messageId
|
|
7078
7138
|
- title
|
|
7079
7139
|
additionalProperties: false
|
|
7140
|
+
historyOrphaned:
|
|
7141
|
+
type: boolean
|
|
7142
|
+
const: true
|
|
7080
7143
|
archivedAt:
|
|
7081
7144
|
type: number
|
|
7082
7145
|
surfacedAt:
|
|
@@ -8233,6 +8296,7 @@ paths:
|
|
|
8233
8296
|
- platform
|
|
8234
8297
|
- a2a
|
|
8235
8298
|
- discord
|
|
8299
|
+
- plugin
|
|
8236
8300
|
- type: "null"
|
|
8237
8301
|
assistantAttention:
|
|
8238
8302
|
type: object
|
|
@@ -8287,6 +8351,9 @@ paths:
|
|
|
8287
8351
|
- messageId
|
|
8288
8352
|
- title
|
|
8289
8353
|
additionalProperties: false
|
|
8354
|
+
historyOrphaned:
|
|
8355
|
+
type: boolean
|
|
8356
|
+
const: true
|
|
8290
8357
|
archivedAt:
|
|
8291
8358
|
type: number
|
|
8292
8359
|
surfacedAt:
|
|
@@ -8420,7 +8487,8 @@ paths:
|
|
|
8420
8487
|
summary: Open an inference-profile session
|
|
8421
8488
|
description:
|
|
8422
8489
|
Open (or replace) a session-backed inference-profile override for a conversation. Supports an optional TTL
|
|
8423
|
-
— omit for a sticky (non-expiring) override.
|
|
8490
|
+
— omit for a sticky (non-expiring) override. A profile that provably cannot dispatch is rejected rather than
|
|
8491
|
+
pinned.
|
|
8424
8492
|
tags:
|
|
8425
8493
|
- conversations
|
|
8426
8494
|
requestBody:
|
|
@@ -9228,8 +9296,10 @@ paths:
|
|
|
9228
9296
|
/v1/conversations/reorder:
|
|
9229
9297
|
post:
|
|
9230
9298
|
operationId: conversations_reorder_post
|
|
9231
|
-
summary:
|
|
9232
|
-
description:
|
|
9299
|
+
summary: Move conversations between sections
|
|
9300
|
+
description:
|
|
9301
|
+
Batch-update which group holds each conversation, and its pin state. Lists are ordered by recency, so this
|
|
9302
|
+
sets placement, not order.
|
|
9233
9303
|
tags:
|
|
9234
9304
|
- conversations
|
|
9235
9305
|
requestBody:
|
|
@@ -9246,8 +9316,6 @@ paths:
|
|
|
9246
9316
|
properties:
|
|
9247
9317
|
conversationId:
|
|
9248
9318
|
type: string
|
|
9249
|
-
displayOrder:
|
|
9250
|
-
type: number
|
|
9251
9319
|
isPinned:
|
|
9252
9320
|
type: boolean
|
|
9253
9321
|
groupId:
|
|
@@ -9519,6 +9587,28 @@ paths:
|
|
|
9519
9587
|
required:
|
|
9520
9588
|
- ok
|
|
9521
9589
|
additionalProperties: false
|
|
9590
|
+
/v1/conversations/unread-count:
|
|
9591
|
+
get:
|
|
9592
|
+
operationId: conversations_unreadcount_get
|
|
9593
|
+
summary: Unread conversation count
|
|
9594
|
+
description:
|
|
9595
|
+
"Count of foreground conversations whose latest assistant message is unseen. Matches the sidebar's unread
|
|
9596
|
+
indicators: archived rows and non-surfaced background/scheduled rows are excluded."
|
|
9597
|
+
tags:
|
|
9598
|
+
- conversations
|
|
9599
|
+
responses:
|
|
9600
|
+
"200":
|
|
9601
|
+
description: Successful response
|
|
9602
|
+
content:
|
|
9603
|
+
application/json:
|
|
9604
|
+
schema:
|
|
9605
|
+
type: object
|
|
9606
|
+
properties:
|
|
9607
|
+
count:
|
|
9608
|
+
type: number
|
|
9609
|
+
required:
|
|
9610
|
+
- count
|
|
9611
|
+
additionalProperties: false
|
|
9522
9612
|
/v1/conversations/wake:
|
|
9523
9613
|
post:
|
|
9524
9614
|
operationId: conversations_wake_post
|
|
@@ -9545,6 +9635,9 @@ paths:
|
|
|
9545
9635
|
cronRunId:
|
|
9546
9636
|
type: string
|
|
9547
9637
|
minLength: 1
|
|
9638
|
+
scheduleId:
|
|
9639
|
+
type: string
|
|
9640
|
+
minLength: 1
|
|
9548
9641
|
persist:
|
|
9549
9642
|
type: boolean
|
|
9550
9643
|
externalContent:
|
|
@@ -14340,7 +14433,8 @@ paths:
|
|
|
14340
14433
|
description:
|
|
14341
14434
|
Set llm.activeProfile after validating the name against the effective profile catalog (provider-aware
|
|
14342
14435
|
default expansion included). Unknown or disabled profiles are rejected so the chat-model selection cannot be
|
|
14343
|
-
silently stripped on the next config load.
|
|
14436
|
+
silently stripped on the next config load. A profile that provably cannot dispatch is also rejected — there is
|
|
14437
|
+
no escape hatch, because an unusable active profile locks the user out of chat.
|
|
14344
14438
|
tags:
|
|
14345
14439
|
- inference
|
|
14346
14440
|
requestBody:
|
|
@@ -14373,7 +14467,7 @@ paths:
|
|
|
14373
14467
|
- activeProfile
|
|
14374
14468
|
additionalProperties: false
|
|
14375
14469
|
"400":
|
|
14376
|
-
description: Unknown or disabled profile name
|
|
14470
|
+
description: Unknown or disabled profile name, or a profile that cannot serve requests
|
|
14377
14471
|
/v1/inference/callsites:
|
|
14378
14472
|
get:
|
|
14379
14473
|
operationId: inference_callsites_get
|
|
@@ -14548,7 +14642,9 @@ paths:
|
|
|
14548
14642
|
summary: Create an inference profile
|
|
14549
14643
|
description:
|
|
14550
14644
|
Create a validated custom profile. The provider must be a known LLM provider, the model must be in the
|
|
14551
|
-
catalog (unless allowUnlisted),
|
|
14645
|
+
catalog (unless allowUnlisted), a referenced connection must exist, and the profile must be able to dispatch — a
|
|
14646
|
+
valid provider id with no credentialed connection behind it is rejected unless allowUnavailable is set, in which
|
|
14647
|
+
case it is created with a warning.
|
|
14552
14648
|
tags:
|
|
14553
14649
|
- inference
|
|
14554
14650
|
requestBody:
|
|
@@ -14587,6 +14683,8 @@ paths:
|
|
|
14587
14683
|
type: string
|
|
14588
14684
|
allowUnlisted:
|
|
14589
14685
|
type: boolean
|
|
14686
|
+
allowUnavailable:
|
|
14687
|
+
type: boolean
|
|
14590
14688
|
required:
|
|
14591
14689
|
- name
|
|
14592
14690
|
- provider
|
|
@@ -14599,7 +14697,7 @@ paths:
|
|
|
14599
14697
|
schema:
|
|
14600
14698
|
$ref: "#/components/schemas/InferenceProfileWriteResult"
|
|
14601
14699
|
"400":
|
|
14602
|
-
description: Invalid provider, uncataloged model, or
|
|
14700
|
+
description: Invalid provider, uncataloged model, missing connection, or a profile that cannot serve requests
|
|
14603
14701
|
"409":
|
|
14604
14702
|
description: A profile with this name already exists
|
|
14605
14703
|
/v1/inference/profiles/{name}:
|
|
@@ -14637,7 +14735,9 @@ paths:
|
|
|
14637
14735
|
"404":
|
|
14638
14736
|
description: Profile not found
|
|
14639
14737
|
"409":
|
|
14640
|
-
description:
|
|
14738
|
+
description:
|
|
14739
|
+
Profile is still referenced by activeProfile, advisorProfile, a call site, a default-tier override, or a
|
|
14740
|
+
mix arm
|
|
14641
14741
|
get:
|
|
14642
14742
|
operationId: inference_profiles_by_name_get
|
|
14643
14743
|
summary: Get an effective inference profile
|
|
@@ -14663,8 +14763,9 @@ paths:
|
|
|
14663
14763
|
operationId: inference_profiles_by_name_patch
|
|
14664
14764
|
summary: Update an inference profile
|
|
14665
14765
|
description:
|
|
14666
|
-
Partial update of a custom profile with the same write-time validation as create.
|
|
14667
|
-
|
|
14766
|
+
Partial update of a custom profile with the same write-time validation as create. The dispatch-availability
|
|
14767
|
+
guard (and its allowUnavailable escape hatch) applies when the update changes provider, model, or connection;
|
|
14768
|
+
metadata-only edits skip it. Managed default profiles are read-only.
|
|
14668
14769
|
tags:
|
|
14669
14770
|
- inference
|
|
14670
14771
|
parameters:
|
|
@@ -14706,6 +14807,8 @@ paths:
|
|
|
14706
14807
|
type: string
|
|
14707
14808
|
allowUnlisted:
|
|
14708
14809
|
type: boolean
|
|
14810
|
+
allowUnavailable:
|
|
14811
|
+
type: boolean
|
|
14709
14812
|
responses:
|
|
14710
14813
|
"200":
|
|
14711
14814
|
description: Successful response
|
|
@@ -14714,7 +14817,7 @@ paths:
|
|
|
14714
14817
|
schema:
|
|
14715
14818
|
$ref: "#/components/schemas/InferenceProfileWriteResult"
|
|
14716
14819
|
"400":
|
|
14717
|
-
description: Invalid fields, or attempt to edit a managed profile
|
|
14820
|
+
description: Invalid fields, a profile that cannot serve requests, or attempt to edit a managed profile
|
|
14718
14821
|
"404":
|
|
14719
14822
|
description: Profile not found
|
|
14720
14823
|
/v1/inference/provider-connections:
|
|
@@ -19052,6 +19155,76 @@ paths:
|
|
|
19052
19155
|
- requestId
|
|
19053
19156
|
- entries
|
|
19054
19157
|
additionalProperties: false
|
|
19158
|
+
answeredQuestion:
|
|
19159
|
+
type: object
|
|
19160
|
+
properties:
|
|
19161
|
+
requestId:
|
|
19162
|
+
type: string
|
|
19163
|
+
questions:
|
|
19164
|
+
type: array
|
|
19165
|
+
items:
|
|
19166
|
+
type: object
|
|
19167
|
+
properties:
|
|
19168
|
+
id:
|
|
19169
|
+
type: string
|
|
19170
|
+
question:
|
|
19171
|
+
type: string
|
|
19172
|
+
description:
|
|
19173
|
+
type: string
|
|
19174
|
+
options:
|
|
19175
|
+
type: array
|
|
19176
|
+
items:
|
|
19177
|
+
type: object
|
|
19178
|
+
properties:
|
|
19179
|
+
id:
|
|
19180
|
+
type: string
|
|
19181
|
+
label:
|
|
19182
|
+
type: string
|
|
19183
|
+
description:
|
|
19184
|
+
type: string
|
|
19185
|
+
required:
|
|
19186
|
+
- id
|
|
19187
|
+
- label
|
|
19188
|
+
additionalProperties: false
|
|
19189
|
+
freeTextPlaceholder:
|
|
19190
|
+
type: string
|
|
19191
|
+
required:
|
|
19192
|
+
- id
|
|
19193
|
+
- question
|
|
19194
|
+
- options
|
|
19195
|
+
additionalProperties: false
|
|
19196
|
+
responses:
|
|
19197
|
+
type: array
|
|
19198
|
+
items:
|
|
19199
|
+
type: object
|
|
19200
|
+
properties:
|
|
19201
|
+
questionId:
|
|
19202
|
+
type: string
|
|
19203
|
+
decision:
|
|
19204
|
+
type: string
|
|
19205
|
+
enum:
|
|
19206
|
+
- option
|
|
19207
|
+
- free_text
|
|
19208
|
+
- skipped
|
|
19209
|
+
optionId:
|
|
19210
|
+
type: string
|
|
19211
|
+
text:
|
|
19212
|
+
type: string
|
|
19213
|
+
required:
|
|
19214
|
+
- questionId
|
|
19215
|
+
- decision
|
|
19216
|
+
additionalProperties: false
|
|
19217
|
+
overall:
|
|
19218
|
+
type: string
|
|
19219
|
+
enum:
|
|
19220
|
+
- completed
|
|
19221
|
+
- closed
|
|
19222
|
+
required:
|
|
19223
|
+
- requestId
|
|
19224
|
+
- questions
|
|
19225
|
+
- responses
|
|
19226
|
+
- overall
|
|
19227
|
+
additionalProperties: false
|
|
19055
19228
|
required:
|
|
19056
19229
|
- name
|
|
19057
19230
|
- input
|
|
@@ -19491,6 +19664,76 @@ paths:
|
|
|
19491
19664
|
- requestId
|
|
19492
19665
|
- entries
|
|
19493
19666
|
additionalProperties: false
|
|
19667
|
+
answeredQuestion:
|
|
19668
|
+
type: object
|
|
19669
|
+
properties:
|
|
19670
|
+
requestId:
|
|
19671
|
+
type: string
|
|
19672
|
+
questions:
|
|
19673
|
+
type: array
|
|
19674
|
+
items:
|
|
19675
|
+
type: object
|
|
19676
|
+
properties:
|
|
19677
|
+
id:
|
|
19678
|
+
type: string
|
|
19679
|
+
question:
|
|
19680
|
+
type: string
|
|
19681
|
+
description:
|
|
19682
|
+
type: string
|
|
19683
|
+
options:
|
|
19684
|
+
type: array
|
|
19685
|
+
items:
|
|
19686
|
+
type: object
|
|
19687
|
+
properties:
|
|
19688
|
+
id:
|
|
19689
|
+
type: string
|
|
19690
|
+
label:
|
|
19691
|
+
type: string
|
|
19692
|
+
description:
|
|
19693
|
+
type: string
|
|
19694
|
+
required:
|
|
19695
|
+
- id
|
|
19696
|
+
- label
|
|
19697
|
+
additionalProperties: false
|
|
19698
|
+
freeTextPlaceholder:
|
|
19699
|
+
type: string
|
|
19700
|
+
required:
|
|
19701
|
+
- id
|
|
19702
|
+
- question
|
|
19703
|
+
- options
|
|
19704
|
+
additionalProperties: false
|
|
19705
|
+
responses:
|
|
19706
|
+
type: array
|
|
19707
|
+
items:
|
|
19708
|
+
type: object
|
|
19709
|
+
properties:
|
|
19710
|
+
questionId:
|
|
19711
|
+
type: string
|
|
19712
|
+
decision:
|
|
19713
|
+
type: string
|
|
19714
|
+
enum:
|
|
19715
|
+
- option
|
|
19716
|
+
- free_text
|
|
19717
|
+
- skipped
|
|
19718
|
+
optionId:
|
|
19719
|
+
type: string
|
|
19720
|
+
text:
|
|
19721
|
+
type: string
|
|
19722
|
+
required:
|
|
19723
|
+
- questionId
|
|
19724
|
+
- decision
|
|
19725
|
+
additionalProperties: false
|
|
19726
|
+
overall:
|
|
19727
|
+
type: string
|
|
19728
|
+
enum:
|
|
19729
|
+
- completed
|
|
19730
|
+
- closed
|
|
19731
|
+
required:
|
|
19732
|
+
- requestId
|
|
19733
|
+
- questions
|
|
19734
|
+
- responses
|
|
19735
|
+
- overall
|
|
19736
|
+
additionalProperties: false
|
|
19494
19737
|
required:
|
|
19495
19738
|
- name
|
|
19496
19739
|
- input
|
|
@@ -19836,8 +20079,8 @@ paths:
|
|
|
19836
20079
|
type: string
|
|
19837
20080
|
clientOs:
|
|
19838
20081
|
description:
|
|
19839
|
-
Client OS surface ("web" | "ios" | "macos" | "android"), reported separately from `interface`.
|
|
19840
|
-
per-turn `client_os` context only; does not affect transport/host-proxy capabilities.
|
|
20082
|
+
Client OS surface ("web" | "ios" | "macos" | "windows" | "android"), reported separately from `interface`.
|
|
20083
|
+
Drives the per-turn `client_os` context only; does not affect transport/host-proxy capabilities.
|
|
19841
20084
|
type: string
|
|
19842
20085
|
visibleAppId:
|
|
19843
20086
|
description:
|
|
@@ -20652,6 +20895,10 @@ paths:
|
|
|
20652
20895
|
responses:
|
|
20653
20896
|
"200":
|
|
20654
20897
|
description: Successful response
|
|
20898
|
+
"403":
|
|
20899
|
+
description: The queued message was enqueued by a different actor principal.
|
|
20900
|
+
"404":
|
|
20901
|
+
description: Conversation or queued message not found.
|
|
20655
20902
|
/v1/migrations/export:
|
|
20656
20903
|
post:
|
|
20657
20904
|
operationId: migrations_export_post
|
|
@@ -21718,6 +21965,7 @@ paths:
|
|
|
21718
21965
|
- platform
|
|
21719
21966
|
- a2a
|
|
21720
21967
|
- discord
|
|
21968
|
+
- plugin
|
|
21721
21969
|
- scheduler
|
|
21722
21970
|
- watcher
|
|
21723
21971
|
sourceContextId:
|
|
@@ -21767,8 +22015,6 @@ paths:
|
|
|
21767
22015
|
type: string
|
|
21768
22016
|
throwOnError:
|
|
21769
22017
|
type: boolean
|
|
21770
|
-
originatingConversationId:
|
|
21771
|
-
type: string
|
|
21772
22018
|
required:
|
|
21773
22019
|
- sourceEventName
|
|
21774
22020
|
- sourceChannel
|
|
@@ -21909,6 +22155,11 @@ paths:
|
|
|
21909
22155
|
anyOf:
|
|
21910
22156
|
- type: string
|
|
21911
22157
|
- type: "null"
|
|
22158
|
+
acts_as:
|
|
22159
|
+
type: string
|
|
22160
|
+
enum:
|
|
22161
|
+
- user
|
|
22162
|
+
- assistant
|
|
21912
22163
|
required:
|
|
21913
22164
|
- provider_key
|
|
21914
22165
|
- display_name
|
|
@@ -21920,6 +22171,7 @@ paths:
|
|
|
21920
22171
|
- supports_managed_mode
|
|
21921
22172
|
- managed_service_is_paid
|
|
21922
22173
|
- feature_flag
|
|
22174
|
+
- acts_as
|
|
21923
22175
|
additionalProperties: false
|
|
21924
22176
|
- type: "null"
|
|
21925
22177
|
apps:
|
|
@@ -22437,6 +22689,11 @@ paths:
|
|
|
22437
22689
|
anyOf:
|
|
22438
22690
|
- type: string
|
|
22439
22691
|
- type: "null"
|
|
22692
|
+
acts_as:
|
|
22693
|
+
type: string
|
|
22694
|
+
enum:
|
|
22695
|
+
- user
|
|
22696
|
+
- assistant
|
|
22440
22697
|
required:
|
|
22441
22698
|
- provider_key
|
|
22442
22699
|
- display_name
|
|
@@ -22448,6 +22705,7 @@ paths:
|
|
|
22448
22705
|
- supports_managed_mode
|
|
22449
22706
|
- managed_service_is_paid
|
|
22450
22707
|
- feature_flag
|
|
22708
|
+
- acts_as
|
|
22451
22709
|
additionalProperties: false
|
|
22452
22710
|
required:
|
|
22453
22711
|
- providers
|
|
@@ -24012,14 +24270,43 @@ paths:
|
|
|
24012
24270
|
description:
|
|
24013
24271
|
Registered tool names from `tools/<name>.{ts,js}` (filenames derived to tool names, e.g. `create-issue` →
|
|
24014
24272
|
`create_issue`).
|
|
24273
|
+
schedules:
|
|
24274
|
+
type: array
|
|
24275
|
+
items:
|
|
24276
|
+
type: object
|
|
24277
|
+
properties:
|
|
24278
|
+
name:
|
|
24279
|
+
type: string
|
|
24280
|
+
description: "Schedule name: the declaration directory's name."
|
|
24281
|
+
cadence:
|
|
24282
|
+
type: string
|
|
24283
|
+
description: Raw schedule `expression` string from the declaration's config.
|
|
24284
|
+
mode:
|
|
24285
|
+
type: string
|
|
24286
|
+
enum:
|
|
24287
|
+
- execute
|
|
24288
|
+
- script
|
|
24289
|
+
description: "`execute` for a markdown prompt entrypoint, `script` for `index.sh`."
|
|
24290
|
+
required:
|
|
24291
|
+
- name
|
|
24292
|
+
- cadence
|
|
24293
|
+
- mode
|
|
24294
|
+
additionalProperties: false
|
|
24295
|
+
description:
|
|
24296
|
+
Schedules declared under `schedules/`, each a `<name>/` directory with `config.json` plus one entrypoint.
|
|
24297
|
+
Display surface only; files directly under `schedules/` and unsupported declarations are
|
|
24298
|
+
omitted.
|
|
24015
24299
|
required:
|
|
24016
24300
|
- skills
|
|
24017
24301
|
- hooks
|
|
24018
24302
|
- tools
|
|
24303
|
+
- schedules
|
|
24019
24304
|
additionalProperties: false
|
|
24020
24305
|
description: Surfaces the installed copy contributes, read from its on-disk tree.
|
|
24021
24306
|
- type: "null"
|
|
24022
|
-
description:
|
|
24307
|
+
description:
|
|
24308
|
+
Surfaces the installed copy contributes (skills, hooks, tools, schedules); null when the plugin is not
|
|
24309
|
+
installed.
|
|
24023
24310
|
required:
|
|
24024
24311
|
- name
|
|
24025
24312
|
- installed
|
|
@@ -24052,8 +24339,9 @@ paths:
|
|
|
24052
24339
|
non-conflicting edits from both sides forward and resolving conflicting hunks toward the local edit (`ours`) or
|
|
24053
24340
|
the target (`theirs`), or writing git conflict markers into the file and reporting them in
|
|
24054
24341
|
`conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge strategy whose install-time
|
|
24055
|
-
baseline cannot be reconstructed returns 409.
|
|
24056
|
-
|
|
24342
|
+
baseline cannot be reconstructed returns 409. Pass `marketplaceOnly` to refuse the untrusted direct path
|
|
24343
|
+
outright (409), which is what the unattended auto-update sweep does. Mirrors the CLI''s `assistant plugins
|
|
24344
|
+
upgrade <name> [--strategy <s>]`.'
|
|
24057
24345
|
tags:
|
|
24058
24346
|
- plugins
|
|
24059
24347
|
parameters:
|
|
@@ -24083,6 +24371,13 @@ paths:
|
|
|
24083
24371
|
- theirs
|
|
24084
24372
|
- overwrite
|
|
24085
24373
|
- assistant
|
|
24374
|
+
marketplaceOnly:
|
|
24375
|
+
description:
|
|
24376
|
+
Refuse the upgrade (409) when the marketplace does not claim this plugin, instead of advancing it to
|
|
24377
|
+
whatever its recorded GitHub ref now resolves to. Set by unattended callers such as the automatic
|
|
24378
|
+
update sweep, for which running code no curator reviewed is never an acceptable outcome. Defaults to
|
|
24379
|
+
false.
|
|
24380
|
+
type: boolean
|
|
24086
24381
|
responses:
|
|
24087
24382
|
"200":
|
|
24088
24383
|
description: Successful response
|
|
@@ -24182,8 +24477,9 @@ paths:
|
|
|
24182
24477
|
description: No copy of the plugin is installed, or its source resolves to nothing.
|
|
24183
24478
|
"409":
|
|
24184
24479
|
description:
|
|
24185
|
-
The install has neither a marketplace entry nor a recorded GitHub source to advance to,
|
|
24186
|
-
was requested
|
|
24480
|
+
The install has neither a marketplace entry nor a recorded GitHub source to advance to, a `marketplaceOnly`
|
|
24481
|
+
upgrade was requested for an install the marketplace does not claim, or a merge strategy was requested whose
|
|
24482
|
+
install-time baseline cannot be reconstructed.
|
|
24187
24483
|
"503":
|
|
24188
24484
|
description: The plugin source (GitHub) was temporarily unavailable; the upgrade is retryable.
|
|
24189
24485
|
/v1/plugins/{name}/versions:
|
|
@@ -24957,8 +25253,9 @@ paths:
|
|
|
24957
25253
|
per conversation after activity (time/message thresholds, pre-compaction) — there is no global schedule, so
|
|
24958
25254
|
`nextRunAt` is always null and no run-now endpoint exists. `intervalMs` is the per-conversation time threshold
|
|
24959
25255
|
(`memory.retrospective.timeThresholdMs`), `lastRunAt` is the `createdAt` of the most recent retrospective
|
|
24960
|
-
conversation across both legacy and fork sources,
|
|
24961
|
-
`memory.v2.enabled`).
|
|
25256
|
+
conversation across both legacy and fork sources, `available` gates on `memory.enabled` (not
|
|
25257
|
+
`memory.v2.enabled`), and `enabled` narrows that by `memory.retrospective.enabled`, the per-pass kill switch
|
|
25258
|
+
that stops retrospectives without disabling the rest of memory.
|
|
24962
25259
|
tags:
|
|
24963
25260
|
- retrospective
|
|
24964
25261
|
responses:
|
|
@@ -25244,6 +25541,12 @@ paths:
|
|
|
25244
25541
|
schema:
|
|
25245
25542
|
type: string
|
|
25246
25543
|
description: When 'true', include deferred schedules that are normally hidden.
|
|
25544
|
+
- name: inference_profile
|
|
25545
|
+
in: query
|
|
25546
|
+
required: false
|
|
25547
|
+
schema:
|
|
25548
|
+
type: string
|
|
25549
|
+
description: Return only schedules pinned to this inference profile (llm.profiles key).
|
|
25247
25550
|
responses:
|
|
25248
25551
|
"200":
|
|
25249
25552
|
description: Successful response
|
|
@@ -25359,8 +25662,24 @@ paths:
|
|
|
25359
25662
|
anyOf:
|
|
25360
25663
|
- type: string
|
|
25361
25664
|
- type: "null"
|
|
25665
|
+
sourceKey:
|
|
25666
|
+
anyOf:
|
|
25667
|
+
- type: string
|
|
25668
|
+
- type: "null"
|
|
25669
|
+
description:
|
|
25670
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
25671
|
+
schedules
|
|
25672
|
+
userEnabled:
|
|
25673
|
+
anyOf:
|
|
25674
|
+
- type: boolean
|
|
25675
|
+
- type: "null"
|
|
25676
|
+
description:
|
|
25677
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
25678
|
+
applies. Always null for user-created schedules.
|
|
25362
25679
|
isOneShot:
|
|
25363
25680
|
type: boolean
|
|
25681
|
+
isDeferred:
|
|
25682
|
+
type: boolean
|
|
25364
25683
|
required:
|
|
25365
25684
|
- id
|
|
25366
25685
|
- name
|
|
@@ -25391,7 +25710,10 @@ paths:
|
|
|
25391
25710
|
- reuseConversation
|
|
25392
25711
|
- wakeConversationId
|
|
25393
25712
|
- workflowName
|
|
25713
|
+
- sourceKey
|
|
25714
|
+
- userEnabled
|
|
25394
25715
|
- isOneShot
|
|
25716
|
+
- isDeferred
|
|
25395
25717
|
additionalProperties: false
|
|
25396
25718
|
description: Schedule objects
|
|
25397
25719
|
required:
|
|
@@ -25453,8 +25775,10 @@ paths:
|
|
|
25453
25775
|
- type: string
|
|
25454
25776
|
- type: "null"
|
|
25455
25777
|
description:
|
|
25456
|
-
Inference profile (llm.profiles key) the schedule's runs use. Omitted or null
|
|
25457
|
-
|
|
25778
|
+
Inference profile (llm.profiles key) the schedule's runs use. Omitted or null pins the schedule to the
|
|
25779
|
+
currently resolved default profile, so its model does not move when that default changes.
|
|
25780
|
+
Workflow-mode schedules resolve a model per workflow step, so the pin is recorded but does not
|
|
25781
|
+
govern their runs.
|
|
25458
25782
|
required:
|
|
25459
25783
|
- name
|
|
25460
25784
|
- expression
|
|
@@ -25571,8 +25895,24 @@ paths:
|
|
|
25571
25895
|
anyOf:
|
|
25572
25896
|
- type: string
|
|
25573
25897
|
- type: "null"
|
|
25898
|
+
sourceKey:
|
|
25899
|
+
anyOf:
|
|
25900
|
+
- type: string
|
|
25901
|
+
- type: "null"
|
|
25902
|
+
description:
|
|
25903
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
25904
|
+
schedules
|
|
25905
|
+
userEnabled:
|
|
25906
|
+
anyOf:
|
|
25907
|
+
- type: boolean
|
|
25908
|
+
- type: "null"
|
|
25909
|
+
description:
|
|
25910
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
25911
|
+
applies. Always null for user-created schedules.
|
|
25574
25912
|
isOneShot:
|
|
25575
25913
|
type: boolean
|
|
25914
|
+
isDeferred:
|
|
25915
|
+
type: boolean
|
|
25576
25916
|
required:
|
|
25577
25917
|
- id
|
|
25578
25918
|
- name
|
|
@@ -25603,7 +25943,10 @@ paths:
|
|
|
25603
25943
|
- reuseConversation
|
|
25604
25944
|
- wakeConversationId
|
|
25605
25945
|
- workflowName
|
|
25946
|
+
- sourceKey
|
|
25947
|
+
- userEnabled
|
|
25606
25948
|
- isOneShot
|
|
25949
|
+
- isDeferred
|
|
25607
25950
|
additionalProperties: false
|
|
25608
25951
|
description: The created schedule
|
|
25609
25952
|
required:
|
|
@@ -25737,8 +26080,24 @@ paths:
|
|
|
25737
26080
|
anyOf:
|
|
25738
26081
|
- type: string
|
|
25739
26082
|
- type: "null"
|
|
26083
|
+
sourceKey:
|
|
26084
|
+
anyOf:
|
|
26085
|
+
- type: string
|
|
26086
|
+
- type: "null"
|
|
26087
|
+
description:
|
|
26088
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26089
|
+
schedules
|
|
26090
|
+
userEnabled:
|
|
26091
|
+
anyOf:
|
|
26092
|
+
- type: boolean
|
|
26093
|
+
- type: "null"
|
|
26094
|
+
description:
|
|
26095
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26096
|
+
applies. Always null for user-created schedules.
|
|
25740
26097
|
isOneShot:
|
|
25741
26098
|
type: boolean
|
|
26099
|
+
isDeferred:
|
|
26100
|
+
type: boolean
|
|
25742
26101
|
required:
|
|
25743
26102
|
- id
|
|
25744
26103
|
- name
|
|
@@ -25769,7 +26128,10 @@ paths:
|
|
|
25769
26128
|
- reuseConversation
|
|
25770
26129
|
- wakeConversationId
|
|
25771
26130
|
- workflowName
|
|
26131
|
+
- sourceKey
|
|
26132
|
+
- userEnabled
|
|
25772
26133
|
- isOneShot
|
|
26134
|
+
- isDeferred
|
|
25773
26135
|
additionalProperties: false
|
|
25774
26136
|
description: Updated schedule list
|
|
25775
26137
|
required:
|
|
@@ -25900,8 +26262,24 @@ paths:
|
|
|
25900
26262
|
anyOf:
|
|
25901
26263
|
- type: string
|
|
25902
26264
|
- type: "null"
|
|
26265
|
+
sourceKey:
|
|
26266
|
+
anyOf:
|
|
26267
|
+
- type: string
|
|
26268
|
+
- type: "null"
|
|
26269
|
+
description:
|
|
26270
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26271
|
+
schedules
|
|
26272
|
+
userEnabled:
|
|
26273
|
+
anyOf:
|
|
26274
|
+
- type: boolean
|
|
26275
|
+
- type: "null"
|
|
26276
|
+
description:
|
|
26277
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26278
|
+
applies. Always null for user-created schedules.
|
|
25903
26279
|
isOneShot:
|
|
25904
26280
|
type: boolean
|
|
26281
|
+
isDeferred:
|
|
26282
|
+
type: boolean
|
|
25905
26283
|
required:
|
|
25906
26284
|
- id
|
|
25907
26285
|
- name
|
|
@@ -25932,7 +26310,10 @@ paths:
|
|
|
25932
26310
|
- reuseConversation
|
|
25933
26311
|
- wakeConversationId
|
|
25934
26312
|
- workflowName
|
|
26313
|
+
- sourceKey
|
|
26314
|
+
- userEnabled
|
|
25935
26315
|
- isOneShot
|
|
26316
|
+
- isDeferred
|
|
25936
26317
|
additionalProperties: false
|
|
25937
26318
|
description: Schedule object
|
|
25938
26319
|
required:
|
|
@@ -26005,8 +26386,9 @@ paths:
|
|
|
26005
26386
|
- type: string
|
|
26006
26387
|
- type: "null"
|
|
26007
26388
|
description:
|
|
26008
|
-
Inference profile (llm.profiles key) the schedule's runs use; null
|
|
26009
|
-
|
|
26389
|
+
Inference profile (llm.profiles key) the schedule's runs use; null re-pins the schedule to the currently
|
|
26390
|
+
resolved default profile. Workflow-mode schedules resolve a model per workflow step, so the pin is
|
|
26391
|
+
recorded but does not govern their runs.
|
|
26010
26392
|
responses:
|
|
26011
26393
|
"200":
|
|
26012
26394
|
description: Successful response
|
|
@@ -26122,8 +26504,24 @@ paths:
|
|
|
26122
26504
|
anyOf:
|
|
26123
26505
|
- type: string
|
|
26124
26506
|
- type: "null"
|
|
26507
|
+
sourceKey:
|
|
26508
|
+
anyOf:
|
|
26509
|
+
- type: string
|
|
26510
|
+
- type: "null"
|
|
26511
|
+
description:
|
|
26512
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26513
|
+
schedules
|
|
26514
|
+
userEnabled:
|
|
26515
|
+
anyOf:
|
|
26516
|
+
- type: boolean
|
|
26517
|
+
- type: "null"
|
|
26518
|
+
description:
|
|
26519
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26520
|
+
applies. Always null for user-created schedules.
|
|
26125
26521
|
isOneShot:
|
|
26126
26522
|
type: boolean
|
|
26523
|
+
isDeferred:
|
|
26524
|
+
type: boolean
|
|
26127
26525
|
required:
|
|
26128
26526
|
- id
|
|
26129
26527
|
- name
|
|
@@ -26154,7 +26552,10 @@ paths:
|
|
|
26154
26552
|
- reuseConversation
|
|
26155
26553
|
- wakeConversationId
|
|
26156
26554
|
- workflowName
|
|
26555
|
+
- sourceKey
|
|
26556
|
+
- userEnabled
|
|
26157
26557
|
- isOneShot
|
|
26558
|
+
- isDeferred
|
|
26158
26559
|
additionalProperties: false
|
|
26159
26560
|
description: Updated schedule list
|
|
26160
26561
|
required:
|
|
@@ -26288,8 +26689,24 @@ paths:
|
|
|
26288
26689
|
anyOf:
|
|
26289
26690
|
- type: string
|
|
26290
26691
|
- type: "null"
|
|
26692
|
+
sourceKey:
|
|
26693
|
+
anyOf:
|
|
26694
|
+
- type: string
|
|
26695
|
+
- type: "null"
|
|
26696
|
+
description:
|
|
26697
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26698
|
+
schedules
|
|
26699
|
+
userEnabled:
|
|
26700
|
+
anyOf:
|
|
26701
|
+
- type: boolean
|
|
26702
|
+
- type: "null"
|
|
26703
|
+
description:
|
|
26704
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26705
|
+
applies. Always null for user-created schedules.
|
|
26291
26706
|
isOneShot:
|
|
26292
26707
|
type: boolean
|
|
26708
|
+
isDeferred:
|
|
26709
|
+
type: boolean
|
|
26293
26710
|
required:
|
|
26294
26711
|
- id
|
|
26295
26712
|
- name
|
|
@@ -26320,7 +26737,10 @@ paths:
|
|
|
26320
26737
|
- reuseConversation
|
|
26321
26738
|
- wakeConversationId
|
|
26322
26739
|
- workflowName
|
|
26740
|
+
- sourceKey
|
|
26741
|
+
- userEnabled
|
|
26323
26742
|
- isOneShot
|
|
26743
|
+
- isDeferred
|
|
26324
26744
|
additionalProperties: false
|
|
26325
26745
|
description: Updated schedule list
|
|
26326
26746
|
required:
|
|
@@ -26330,7 +26750,9 @@ paths:
|
|
|
26330
26750
|
post:
|
|
26331
26751
|
operationId: schedules_by_id_run_post
|
|
26332
26752
|
summary: Run schedule now
|
|
26333
|
-
description:
|
|
26753
|
+
description:
|
|
26754
|
+
Trigger an immediate execution of a schedule. A plugin-sourced schedule is rejected with a 400 when its
|
|
26755
|
+
plugin is disabled or no longer declares it.
|
|
26334
26756
|
tags:
|
|
26335
26757
|
- schedules
|
|
26336
26758
|
parameters:
|
|
@@ -26454,8 +26876,24 @@ paths:
|
|
|
26454
26876
|
anyOf:
|
|
26455
26877
|
- type: string
|
|
26456
26878
|
- type: "null"
|
|
26879
|
+
sourceKey:
|
|
26880
|
+
anyOf:
|
|
26881
|
+
- type: string
|
|
26882
|
+
- type: "null"
|
|
26883
|
+
description:
|
|
26884
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26885
|
+
schedules
|
|
26886
|
+
userEnabled:
|
|
26887
|
+
anyOf:
|
|
26888
|
+
- type: boolean
|
|
26889
|
+
- type: "null"
|
|
26890
|
+
description:
|
|
26891
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26892
|
+
applies. Always null for user-created schedules.
|
|
26457
26893
|
isOneShot:
|
|
26458
26894
|
type: boolean
|
|
26895
|
+
isDeferred:
|
|
26896
|
+
type: boolean
|
|
26459
26897
|
required:
|
|
26460
26898
|
- id
|
|
26461
26899
|
- name
|
|
@@ -26486,7 +26924,10 @@ paths:
|
|
|
26486
26924
|
- reuseConversation
|
|
26487
26925
|
- wakeConversationId
|
|
26488
26926
|
- workflowName
|
|
26927
|
+
- sourceKey
|
|
26928
|
+
- userEnabled
|
|
26489
26929
|
- isOneShot
|
|
26930
|
+
- isDeferred
|
|
26490
26931
|
additionalProperties: false
|
|
26491
26932
|
description: Updated schedule list
|
|
26492
26933
|
required:
|
|
@@ -26621,7 +27062,7 @@ paths:
|
|
|
26621
27062
|
post:
|
|
26622
27063
|
operationId: schedules_by_id_toggle_post
|
|
26623
27064
|
summary: Toggle schedule
|
|
26624
|
-
description: Enable or disable a schedule.
|
|
27065
|
+
description: Enable or disable a schedule. On a plugin-managed schedule this records the user's override (userEnabled).
|
|
26625
27066
|
tags:
|
|
26626
27067
|
- schedules
|
|
26627
27068
|
parameters:
|
|
@@ -26757,8 +27198,24 @@ paths:
|
|
|
26757
27198
|
anyOf:
|
|
26758
27199
|
- type: string
|
|
26759
27200
|
- type: "null"
|
|
27201
|
+
sourceKey:
|
|
27202
|
+
anyOf:
|
|
27203
|
+
- type: string
|
|
27204
|
+
- type: "null"
|
|
27205
|
+
description:
|
|
27206
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
27207
|
+
schedules
|
|
27208
|
+
userEnabled:
|
|
27209
|
+
anyOf:
|
|
27210
|
+
- type: boolean
|
|
27211
|
+
- type: "null"
|
|
27212
|
+
description:
|
|
27213
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
27214
|
+
applies. Always null for user-created schedules.
|
|
26760
27215
|
isOneShot:
|
|
26761
27216
|
type: boolean
|
|
27217
|
+
isDeferred:
|
|
27218
|
+
type: boolean
|
|
26762
27219
|
required:
|
|
26763
27220
|
- id
|
|
26764
27221
|
- name
|
|
@@ -26789,12 +27246,55 @@ paths:
|
|
|
26789
27246
|
- reuseConversation
|
|
26790
27247
|
- wakeConversationId
|
|
26791
27248
|
- workflowName
|
|
27249
|
+
- sourceKey
|
|
27250
|
+
- userEnabled
|
|
26792
27251
|
- isOneShot
|
|
27252
|
+
- isDeferred
|
|
26793
27253
|
additionalProperties: false
|
|
26794
27254
|
description: Updated schedule list
|
|
26795
27255
|
required:
|
|
26796
27256
|
- schedules
|
|
26797
27257
|
additionalProperties: false
|
|
27258
|
+
/v1/schedules/reassign-profile:
|
|
27259
|
+
post:
|
|
27260
|
+
operationId: schedules_reassignprofile_post
|
|
27261
|
+
summary: Reassign schedules to another inference profile
|
|
27262
|
+
description:
|
|
27263
|
+
Move schedules onto one inference profile. Pass 'from' to move only the schedules pinned to that profile,
|
|
27264
|
+
so deleting a profile does not leave its schedules pointing at a name that no longer exists. Omit 'from' to move
|
|
27265
|
+
every schedule, which re-pins the whole set onto one profile. Schedules already pinned to the target are
|
|
27266
|
+
skipped.
|
|
27267
|
+
tags:
|
|
27268
|
+
- schedules
|
|
27269
|
+
requestBody:
|
|
27270
|
+
required: true
|
|
27271
|
+
content:
|
|
27272
|
+
application/json:
|
|
27273
|
+
schema:
|
|
27274
|
+
type: object
|
|
27275
|
+
properties:
|
|
27276
|
+
from:
|
|
27277
|
+
description: Inference profile key the schedules are pinned to now; omit to select every schedule
|
|
27278
|
+
type: string
|
|
27279
|
+
to:
|
|
27280
|
+
type: string
|
|
27281
|
+
description: Inference profile key to move them to; must be configured
|
|
27282
|
+
required:
|
|
27283
|
+
- to
|
|
27284
|
+
responses:
|
|
27285
|
+
"200":
|
|
27286
|
+
description: Successful response
|
|
27287
|
+
content:
|
|
27288
|
+
application/json:
|
|
27289
|
+
schema:
|
|
27290
|
+
type: object
|
|
27291
|
+
properties:
|
|
27292
|
+
reassigned:
|
|
27293
|
+
type: number
|
|
27294
|
+
description: Number of schedules moved
|
|
27295
|
+
required:
|
|
27296
|
+
- reassigned
|
|
27297
|
+
additionalProperties: false
|
|
26798
27298
|
/v1/schedules/usage-summary:
|
|
26799
27299
|
get:
|
|
26800
27300
|
operationId: schedules_usagesummary_get
|
|
@@ -28940,6 +29440,73 @@ paths:
|
|
|
28940
29440
|
- isBinary
|
|
28941
29441
|
- content
|
|
28942
29442
|
additionalProperties: false
|
|
29443
|
+
/v1/skills/{id}/history:
|
|
29444
|
+
get:
|
|
29445
|
+
operationId: skills_by_id_history_get
|
|
29446
|
+
summary: Get skill revision history
|
|
29447
|
+
description:
|
|
29448
|
+
"Return a skill's recent updates, newest first, each with a combined diff across the skill directory.
|
|
29449
|
+
Read-only: revisions come from the workspace git repository, which already retains prior content. Commits whose
|
|
29450
|
+
only in-skill change is the `lastUsedAt` usage stamp are omitted, so entries are edits rather than loads."
|
|
29451
|
+
tags:
|
|
29452
|
+
- skills
|
|
29453
|
+
parameters:
|
|
29454
|
+
- name: id
|
|
29455
|
+
in: path
|
|
29456
|
+
required: true
|
|
29457
|
+
schema:
|
|
29458
|
+
type: string
|
|
29459
|
+
- name: limit
|
|
29460
|
+
in: query
|
|
29461
|
+
required: false
|
|
29462
|
+
schema:
|
|
29463
|
+
type: integer
|
|
29464
|
+
description: Maximum revisions to return, newest first. Defaults to 20 and is clamped to 100.
|
|
29465
|
+
responses:
|
|
29466
|
+
"200":
|
|
29467
|
+
description: Successful response
|
|
29468
|
+
content:
|
|
29469
|
+
application/json:
|
|
29470
|
+
schema:
|
|
29471
|
+
type: object
|
|
29472
|
+
properties:
|
|
29473
|
+
skillId:
|
|
29474
|
+
type: string
|
|
29475
|
+
description: The skill these revisions belong to
|
|
29476
|
+
revisions:
|
|
29477
|
+
type: array
|
|
29478
|
+
items:
|
|
29479
|
+
type: object
|
|
29480
|
+
properties:
|
|
29481
|
+
id:
|
|
29482
|
+
type: string
|
|
29483
|
+
description: Opaque revision identifier
|
|
29484
|
+
changedAt:
|
|
29485
|
+
type: string
|
|
29486
|
+
description: ISO-8601 time of the update
|
|
29487
|
+
files:
|
|
29488
|
+
type: array
|
|
29489
|
+
items:
|
|
29490
|
+
type: string
|
|
29491
|
+
description: Paths changed, relative to the skill directory
|
|
29492
|
+
diff:
|
|
29493
|
+
type: string
|
|
29494
|
+
description: Unified diff of this update, scoped to the skill
|
|
29495
|
+
required:
|
|
29496
|
+
- id
|
|
29497
|
+
- changedAt
|
|
29498
|
+
- files
|
|
29499
|
+
- diff
|
|
29500
|
+
additionalProperties: false
|
|
29501
|
+
description: Recent updates, newest first
|
|
29502
|
+
truncatedByCompaction:
|
|
29503
|
+
type: boolean
|
|
29504
|
+
description: Older history was squashed away, so the oldest entry is a floor rather than the skill's creation
|
|
29505
|
+
required:
|
|
29506
|
+
- skillId
|
|
29507
|
+
- revisions
|
|
29508
|
+
- truncatedByCompaction
|
|
29509
|
+
additionalProperties: false
|
|
28943
29510
|
/v1/skills/{id}/inspect:
|
|
28944
29511
|
get:
|
|
28945
29512
|
operationId: skills_by_id_inspect_get
|
|
@@ -34370,13 +34937,14 @@ components:
|
|
|
34370
34937
|
type: string
|
|
34371
34938
|
enum:
|
|
34372
34939
|
- ok
|
|
34373
|
-
-
|
|
34940
|
+
- incomplete
|
|
34374
34941
|
- missing_connection
|
|
34375
34942
|
- missing_credential
|
|
34376
34943
|
- provider_mismatch
|
|
34377
34944
|
- unsupported_auth
|
|
34378
34945
|
- vellum_unauthenticated
|
|
34379
34946
|
- unknown
|
|
34947
|
+
- missing_default
|
|
34380
34948
|
message:
|
|
34381
34949
|
type: string
|
|
34382
34950
|
required:
|
|
@@ -34602,6 +35170,7 @@ components:
|
|
|
34602
35170
|
type: string
|
|
34603
35171
|
enum:
|
|
34604
35172
|
- ok
|
|
35173
|
+
- incomplete
|
|
34605
35174
|
- missing_connection
|
|
34606
35175
|
- missing_credential
|
|
34607
35176
|
- provider_mismatch
|
|
@@ -34630,11 +35199,14 @@ components:
|
|
|
34630
35199
|
type: array
|
|
34631
35200
|
items:
|
|
34632
35201
|
type: string
|
|
35202
|
+
verify:
|
|
35203
|
+
type: string
|
|
34633
35204
|
required:
|
|
34634
35205
|
- ok
|
|
34635
35206
|
- name
|
|
34636
35207
|
- entry
|
|
34637
35208
|
- warnings
|
|
35209
|
+
- verify
|
|
34638
35210
|
additionalProperties: false
|
|
34639
35211
|
InferenceProfileDetail:
|
|
34640
35212
|
type: object
|