@vellumai/assistant 0.11.2 → 0.11.3-staging.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +58 -3
- 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 +39 -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 +39 -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 +39 -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 +589 -30
- package/package.json +1 -1
- 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-start-guardian-guard.test.ts +18 -4
- package/src/__tests__/canned-reply-release.test.ts +86 -0
- 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__/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 +57 -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 +183 -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-tool-annotations-risk.test.ts +133 -0
- package/src/__tests__/media-stream-server-integration.test.ts +36 -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__/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/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__/voice-session-bridge.test.ts +50 -0
- package/src/calls/media-stream-server.ts +9 -1
- package/src/calls/voice-session-bridge.ts +38 -0
- package/src/channels/__tests__/gateway-verification-sessions.test.ts +3 -3
- package/src/channels/config.ts +7 -2
- package/src/channels/gateway-verification-sessions.ts +7 -2
- package/src/channels/types.ts +7 -1
- 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 +4 -2
- 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/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 +122 -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 +18 -0
- package/src/cli.ts +1 -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/app-builder/SKILL.md +1 -1
- package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +3 -3
- 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 +2 -2
- 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/visualize/SKILL.md +1 -1
- package/src/config/default-profile-catalog.ts +6 -2
- package/src/config/feature-flag-registry.json +25 -17
- package/src/config/llm-resolver.ts +45 -15
- package/src/config/loader.ts +70 -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__/stt.test.ts +20 -5
- package/src/config/schemas/channels.ts +13 -0
- package/src/config/schemas/memory-retrospective.ts +25 -0
- package/src/config/schemas/plugin-updates.ts +55 -0
- package/src/config/schemas/services.ts +8 -4
- package/src/config/schemas/stt.ts +17 -5
- package/src/config/schemas/timeouts.ts +1 -1
- 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/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-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-integration.test.ts +7 -5
- package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +265 -0
- package/src/live-voice/__tests__/live-voice-stt.test.ts +6 -1
- package/src/live-voice/__tests__/live-voice-vad.test.ts +35 -15
- 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-photo.ts +169 -0
- package/src/live-voice/live-voice-session.ts +108 -4
- package/src/live-voice/protocol.ts +89 -1
- package/src/mcp/client.ts +10 -0
- 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 +332 -0
- package/src/monitoring/db-integrity-sample.ts +6 -1
- package/src/monitoring/plugin-auto-update.ts +359 -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 +12 -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/index.ts +8 -0
- package/src/plugin-api/webhook-url.ts +151 -0
- package/src/plugins/__tests__/installed-plugin-dirs.test.ts +82 -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/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 +17 -8
- package/src/plugins/installed-plugin-dirs.ts +101 -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 +67 -0
- 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__/resolve.test.ts +187 -6
- package/src/providers/speech-to-text/deepgram.ts +1 -0
- package/src/providers/speech-to-text/resolve.ts +80 -10
- 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/agent-wake.ts +63 -24
- package/src/runtime/assistant-event-hub.ts +87 -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 +11 -9
- 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 +173 -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__/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-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 +23 -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 +28 -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/notification-routes.ts +0 -14
- package/src/runtime/routes/oauth-providers.ts +1 -0
- package/src/runtime/routes/plugins-routes.ts +106 -1
- 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/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/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/daemon-batch-transcriber.ts +8 -6
- 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 +302 -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/usage/__tests__/subagent-attribution.test.ts +109 -0
- package/src/usage/subagent-attribution.ts +108 -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/schedule-source-key.ts +23 -0
- 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/__tests__/141-stt-english-default-to-multilingual.test.ts +126 -0
- package/src/workspace/migrations/registry.ts +4 -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/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
|
|
@@ -4615,6 +4615,43 @@ paths:
|
|
|
4615
4615
|
required:
|
|
4616
4616
|
- disconnected
|
|
4617
4617
|
additionalProperties: false
|
|
4618
|
+
/v1/clients/presence:
|
|
4619
|
+
post:
|
|
4620
|
+
operationId: clients_presence_post
|
|
4621
|
+
summary: Report desktop presence
|
|
4622
|
+
description: Record the desktop presence state reported by the client identified by the X-Vellum-Client-Id header.
|
|
4623
|
+
tags:
|
|
4624
|
+
- clients
|
|
4625
|
+
requestBody:
|
|
4626
|
+
required: true
|
|
4627
|
+
content:
|
|
4628
|
+
application/json:
|
|
4629
|
+
schema:
|
|
4630
|
+
type: object
|
|
4631
|
+
properties:
|
|
4632
|
+
state:
|
|
4633
|
+
type: string
|
|
4634
|
+
enum:
|
|
4635
|
+
- active
|
|
4636
|
+
- idle
|
|
4637
|
+
- away
|
|
4638
|
+
description: Reported desktop presence state.
|
|
4639
|
+
required:
|
|
4640
|
+
- state
|
|
4641
|
+
responses:
|
|
4642
|
+
"200":
|
|
4643
|
+
description: Successful response
|
|
4644
|
+
content:
|
|
4645
|
+
application/json:
|
|
4646
|
+
schema:
|
|
4647
|
+
type: object
|
|
4648
|
+
properties:
|
|
4649
|
+
recorded:
|
|
4650
|
+
type: boolean
|
|
4651
|
+
description: Whether a connected client matched the reporting clientId.
|
|
4652
|
+
required:
|
|
4653
|
+
- recorded
|
|
4654
|
+
additionalProperties: false
|
|
4618
4655
|
/v1/config:
|
|
4619
4656
|
get:
|
|
4620
4657
|
operationId: config_get
|
|
@@ -4737,6 +4774,8 @@ paths:
|
|
|
4737
4774
|
type: string
|
|
4738
4775
|
defaultProfile:
|
|
4739
4776
|
type: string
|
|
4777
|
+
shippedDefaultProfile:
|
|
4778
|
+
type: string
|
|
4740
4779
|
required:
|
|
4741
4780
|
- id
|
|
4742
4781
|
- displayName
|
|
@@ -6546,6 +6585,16 @@ paths:
|
|
|
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
|
|
@@ -6723,6 +6772,9 @@ paths:
|
|
|
6723
6772
|
- messageId
|
|
6724
6773
|
- title
|
|
6725
6774
|
additionalProperties: false
|
|
6775
|
+
historyOrphaned:
|
|
6776
|
+
type: boolean
|
|
6777
|
+
const: true
|
|
6726
6778
|
archivedAt:
|
|
6727
6779
|
type: number
|
|
6728
6780
|
surfacedAt:
|
|
@@ -6796,9 +6848,15 @@ paths:
|
|
|
6796
6848
|
`id`.
|
|
6797
6849
|
type: string
|
|
6798
6850
|
conversationType:
|
|
6799
|
-
description:
|
|
6851
|
+
description:
|
|
6852
|
+
Conversation type for the new row. "background" keeps it out of the foreground list and the sidebar's
|
|
6853
|
+
Recents grouping, used by internal side-channel flows (onboarding research, persona/identity
|
|
6854
|
+
rewrites) that mint a throwaway thread the user should never see. "scheduled" is not accepted here;
|
|
6855
|
+
scheduled rows are owned by the schedule pipeline.
|
|
6800
6856
|
type: string
|
|
6801
|
-
|
|
6857
|
+
enum:
|
|
6858
|
+
- standard
|
|
6859
|
+
- background
|
|
6802
6860
|
title:
|
|
6803
6861
|
description:
|
|
6804
6862
|
Explicit title for the conversation. When provided on creation, it is persisted as a user-set title (never
|
|
@@ -7077,6 +7135,9 @@ paths:
|
|
|
7077
7135
|
- messageId
|
|
7078
7136
|
- title
|
|
7079
7137
|
additionalProperties: false
|
|
7138
|
+
historyOrphaned:
|
|
7139
|
+
type: boolean
|
|
7140
|
+
const: true
|
|
7080
7141
|
archivedAt:
|
|
7081
7142
|
type: number
|
|
7082
7143
|
surfacedAt:
|
|
@@ -8287,6 +8348,9 @@ paths:
|
|
|
8287
8348
|
- messageId
|
|
8288
8349
|
- title
|
|
8289
8350
|
additionalProperties: false
|
|
8351
|
+
historyOrphaned:
|
|
8352
|
+
type: boolean
|
|
8353
|
+
const: true
|
|
8290
8354
|
archivedAt:
|
|
8291
8355
|
type: number
|
|
8292
8356
|
surfacedAt:
|
|
@@ -8420,7 +8484,8 @@ paths:
|
|
|
8420
8484
|
summary: Open an inference-profile session
|
|
8421
8485
|
description:
|
|
8422
8486
|
Open (or replace) a session-backed inference-profile override for a conversation. Supports an optional TTL
|
|
8423
|
-
— omit for a sticky (non-expiring) override.
|
|
8487
|
+
— omit for a sticky (non-expiring) override. A profile that provably cannot dispatch is rejected rather than
|
|
8488
|
+
pinned.
|
|
8424
8489
|
tags:
|
|
8425
8490
|
- conversations
|
|
8426
8491
|
requestBody:
|
|
@@ -9228,8 +9293,10 @@ paths:
|
|
|
9228
9293
|
/v1/conversations/reorder:
|
|
9229
9294
|
post:
|
|
9230
9295
|
operationId: conversations_reorder_post
|
|
9231
|
-
summary:
|
|
9232
|
-
description:
|
|
9296
|
+
summary: Move conversations between sections
|
|
9297
|
+
description:
|
|
9298
|
+
Batch-update which group holds each conversation, and its pin state. Lists are ordered by recency, so this
|
|
9299
|
+
sets placement, not order.
|
|
9233
9300
|
tags:
|
|
9234
9301
|
- conversations
|
|
9235
9302
|
requestBody:
|
|
@@ -9246,8 +9313,6 @@ paths:
|
|
|
9246
9313
|
properties:
|
|
9247
9314
|
conversationId:
|
|
9248
9315
|
type: string
|
|
9249
|
-
displayOrder:
|
|
9250
|
-
type: number
|
|
9251
9316
|
isPinned:
|
|
9252
9317
|
type: boolean
|
|
9253
9318
|
groupId:
|
|
@@ -9519,6 +9584,28 @@ paths:
|
|
|
9519
9584
|
required:
|
|
9520
9585
|
- ok
|
|
9521
9586
|
additionalProperties: false
|
|
9587
|
+
/v1/conversations/unread-count:
|
|
9588
|
+
get:
|
|
9589
|
+
operationId: conversations_unreadcount_get
|
|
9590
|
+
summary: Unread conversation count
|
|
9591
|
+
description:
|
|
9592
|
+
"Count of foreground conversations whose latest assistant message is unseen. Matches the sidebar's unread
|
|
9593
|
+
indicators: archived rows and non-surfaced background/scheduled rows are excluded."
|
|
9594
|
+
tags:
|
|
9595
|
+
- conversations
|
|
9596
|
+
responses:
|
|
9597
|
+
"200":
|
|
9598
|
+
description: Successful response
|
|
9599
|
+
content:
|
|
9600
|
+
application/json:
|
|
9601
|
+
schema:
|
|
9602
|
+
type: object
|
|
9603
|
+
properties:
|
|
9604
|
+
count:
|
|
9605
|
+
type: number
|
|
9606
|
+
required:
|
|
9607
|
+
- count
|
|
9608
|
+
additionalProperties: false
|
|
9522
9609
|
/v1/conversations/wake:
|
|
9523
9610
|
post:
|
|
9524
9611
|
operationId: conversations_wake_post
|
|
@@ -9545,6 +9632,9 @@ paths:
|
|
|
9545
9632
|
cronRunId:
|
|
9546
9633
|
type: string
|
|
9547
9634
|
minLength: 1
|
|
9635
|
+
scheduleId:
|
|
9636
|
+
type: string
|
|
9637
|
+
minLength: 1
|
|
9548
9638
|
persist:
|
|
9549
9639
|
type: boolean
|
|
9550
9640
|
externalContent:
|
|
@@ -14340,7 +14430,8 @@ paths:
|
|
|
14340
14430
|
description:
|
|
14341
14431
|
Set llm.activeProfile after validating the name against the effective profile catalog (provider-aware
|
|
14342
14432
|
default expansion included). Unknown or disabled profiles are rejected so the chat-model selection cannot be
|
|
14343
|
-
silently stripped on the next config load.
|
|
14433
|
+
silently stripped on the next config load. A profile that provably cannot dispatch is also rejected — there is
|
|
14434
|
+
no escape hatch, because an unusable active profile locks the user out of chat.
|
|
14344
14435
|
tags:
|
|
14345
14436
|
- inference
|
|
14346
14437
|
requestBody:
|
|
@@ -14373,7 +14464,7 @@ paths:
|
|
|
14373
14464
|
- activeProfile
|
|
14374
14465
|
additionalProperties: false
|
|
14375
14466
|
"400":
|
|
14376
|
-
description: Unknown or disabled profile name
|
|
14467
|
+
description: Unknown or disabled profile name, or a profile that cannot serve requests
|
|
14377
14468
|
/v1/inference/callsites:
|
|
14378
14469
|
get:
|
|
14379
14470
|
operationId: inference_callsites_get
|
|
@@ -14548,7 +14639,9 @@ paths:
|
|
|
14548
14639
|
summary: Create an inference profile
|
|
14549
14640
|
description:
|
|
14550
14641
|
Create a validated custom profile. The provider must be a known LLM provider, the model must be in the
|
|
14551
|
-
catalog (unless allowUnlisted),
|
|
14642
|
+
catalog (unless allowUnlisted), a referenced connection must exist, and the profile must be able to dispatch — a
|
|
14643
|
+
valid provider id with no credentialed connection behind it is rejected unless allowUnavailable is set, in which
|
|
14644
|
+
case it is created with a warning.
|
|
14552
14645
|
tags:
|
|
14553
14646
|
- inference
|
|
14554
14647
|
requestBody:
|
|
@@ -14587,6 +14680,8 @@ paths:
|
|
|
14587
14680
|
type: string
|
|
14588
14681
|
allowUnlisted:
|
|
14589
14682
|
type: boolean
|
|
14683
|
+
allowUnavailable:
|
|
14684
|
+
type: boolean
|
|
14590
14685
|
required:
|
|
14591
14686
|
- name
|
|
14592
14687
|
- provider
|
|
@@ -14599,7 +14694,7 @@ paths:
|
|
|
14599
14694
|
schema:
|
|
14600
14695
|
$ref: "#/components/schemas/InferenceProfileWriteResult"
|
|
14601
14696
|
"400":
|
|
14602
|
-
description: Invalid provider, uncataloged model, or
|
|
14697
|
+
description: Invalid provider, uncataloged model, missing connection, or a profile that cannot serve requests
|
|
14603
14698
|
"409":
|
|
14604
14699
|
description: A profile with this name already exists
|
|
14605
14700
|
/v1/inference/profiles/{name}:
|
|
@@ -14637,7 +14732,9 @@ paths:
|
|
|
14637
14732
|
"404":
|
|
14638
14733
|
description: Profile not found
|
|
14639
14734
|
"409":
|
|
14640
|
-
description:
|
|
14735
|
+
description:
|
|
14736
|
+
Profile is still referenced by activeProfile, advisorProfile, a call site, a default-tier override, or a
|
|
14737
|
+
mix arm
|
|
14641
14738
|
get:
|
|
14642
14739
|
operationId: inference_profiles_by_name_get
|
|
14643
14740
|
summary: Get an effective inference profile
|
|
@@ -14663,8 +14760,9 @@ paths:
|
|
|
14663
14760
|
operationId: inference_profiles_by_name_patch
|
|
14664
14761
|
summary: Update an inference profile
|
|
14665
14762
|
description:
|
|
14666
|
-
Partial update of a custom profile with the same write-time validation as create.
|
|
14667
|
-
|
|
14763
|
+
Partial update of a custom profile with the same write-time validation as create. The dispatch-availability
|
|
14764
|
+
guard (and its allowUnavailable escape hatch) applies when the update changes provider, model, or connection;
|
|
14765
|
+
metadata-only edits skip it. Managed default profiles are read-only.
|
|
14668
14766
|
tags:
|
|
14669
14767
|
- inference
|
|
14670
14768
|
parameters:
|
|
@@ -14706,6 +14804,8 @@ paths:
|
|
|
14706
14804
|
type: string
|
|
14707
14805
|
allowUnlisted:
|
|
14708
14806
|
type: boolean
|
|
14807
|
+
allowUnavailable:
|
|
14808
|
+
type: boolean
|
|
14709
14809
|
responses:
|
|
14710
14810
|
"200":
|
|
14711
14811
|
description: Successful response
|
|
@@ -14714,7 +14814,7 @@ paths:
|
|
|
14714
14814
|
schema:
|
|
14715
14815
|
$ref: "#/components/schemas/InferenceProfileWriteResult"
|
|
14716
14816
|
"400":
|
|
14717
|
-
description: Invalid fields, or attempt to edit a managed profile
|
|
14817
|
+
description: Invalid fields, a profile that cannot serve requests, or attempt to edit a managed profile
|
|
14718
14818
|
"404":
|
|
14719
14819
|
description: Profile not found
|
|
14720
14820
|
/v1/inference/provider-connections:
|
|
@@ -19052,6 +19152,76 @@ paths:
|
|
|
19052
19152
|
- requestId
|
|
19053
19153
|
- entries
|
|
19054
19154
|
additionalProperties: false
|
|
19155
|
+
answeredQuestion:
|
|
19156
|
+
type: object
|
|
19157
|
+
properties:
|
|
19158
|
+
requestId:
|
|
19159
|
+
type: string
|
|
19160
|
+
questions:
|
|
19161
|
+
type: array
|
|
19162
|
+
items:
|
|
19163
|
+
type: object
|
|
19164
|
+
properties:
|
|
19165
|
+
id:
|
|
19166
|
+
type: string
|
|
19167
|
+
question:
|
|
19168
|
+
type: string
|
|
19169
|
+
description:
|
|
19170
|
+
type: string
|
|
19171
|
+
options:
|
|
19172
|
+
type: array
|
|
19173
|
+
items:
|
|
19174
|
+
type: object
|
|
19175
|
+
properties:
|
|
19176
|
+
id:
|
|
19177
|
+
type: string
|
|
19178
|
+
label:
|
|
19179
|
+
type: string
|
|
19180
|
+
description:
|
|
19181
|
+
type: string
|
|
19182
|
+
required:
|
|
19183
|
+
- id
|
|
19184
|
+
- label
|
|
19185
|
+
additionalProperties: false
|
|
19186
|
+
freeTextPlaceholder:
|
|
19187
|
+
type: string
|
|
19188
|
+
required:
|
|
19189
|
+
- id
|
|
19190
|
+
- question
|
|
19191
|
+
- options
|
|
19192
|
+
additionalProperties: false
|
|
19193
|
+
responses:
|
|
19194
|
+
type: array
|
|
19195
|
+
items:
|
|
19196
|
+
type: object
|
|
19197
|
+
properties:
|
|
19198
|
+
questionId:
|
|
19199
|
+
type: string
|
|
19200
|
+
decision:
|
|
19201
|
+
type: string
|
|
19202
|
+
enum:
|
|
19203
|
+
- option
|
|
19204
|
+
- free_text
|
|
19205
|
+
- skipped
|
|
19206
|
+
optionId:
|
|
19207
|
+
type: string
|
|
19208
|
+
text:
|
|
19209
|
+
type: string
|
|
19210
|
+
required:
|
|
19211
|
+
- questionId
|
|
19212
|
+
- decision
|
|
19213
|
+
additionalProperties: false
|
|
19214
|
+
overall:
|
|
19215
|
+
type: string
|
|
19216
|
+
enum:
|
|
19217
|
+
- completed
|
|
19218
|
+
- closed
|
|
19219
|
+
required:
|
|
19220
|
+
- requestId
|
|
19221
|
+
- questions
|
|
19222
|
+
- responses
|
|
19223
|
+
- overall
|
|
19224
|
+
additionalProperties: false
|
|
19055
19225
|
required:
|
|
19056
19226
|
- name
|
|
19057
19227
|
- input
|
|
@@ -19491,6 +19661,76 @@ paths:
|
|
|
19491
19661
|
- requestId
|
|
19492
19662
|
- entries
|
|
19493
19663
|
additionalProperties: false
|
|
19664
|
+
answeredQuestion:
|
|
19665
|
+
type: object
|
|
19666
|
+
properties:
|
|
19667
|
+
requestId:
|
|
19668
|
+
type: string
|
|
19669
|
+
questions:
|
|
19670
|
+
type: array
|
|
19671
|
+
items:
|
|
19672
|
+
type: object
|
|
19673
|
+
properties:
|
|
19674
|
+
id:
|
|
19675
|
+
type: string
|
|
19676
|
+
question:
|
|
19677
|
+
type: string
|
|
19678
|
+
description:
|
|
19679
|
+
type: string
|
|
19680
|
+
options:
|
|
19681
|
+
type: array
|
|
19682
|
+
items:
|
|
19683
|
+
type: object
|
|
19684
|
+
properties:
|
|
19685
|
+
id:
|
|
19686
|
+
type: string
|
|
19687
|
+
label:
|
|
19688
|
+
type: string
|
|
19689
|
+
description:
|
|
19690
|
+
type: string
|
|
19691
|
+
required:
|
|
19692
|
+
- id
|
|
19693
|
+
- label
|
|
19694
|
+
additionalProperties: false
|
|
19695
|
+
freeTextPlaceholder:
|
|
19696
|
+
type: string
|
|
19697
|
+
required:
|
|
19698
|
+
- id
|
|
19699
|
+
- question
|
|
19700
|
+
- options
|
|
19701
|
+
additionalProperties: false
|
|
19702
|
+
responses:
|
|
19703
|
+
type: array
|
|
19704
|
+
items:
|
|
19705
|
+
type: object
|
|
19706
|
+
properties:
|
|
19707
|
+
questionId:
|
|
19708
|
+
type: string
|
|
19709
|
+
decision:
|
|
19710
|
+
type: string
|
|
19711
|
+
enum:
|
|
19712
|
+
- option
|
|
19713
|
+
- free_text
|
|
19714
|
+
- skipped
|
|
19715
|
+
optionId:
|
|
19716
|
+
type: string
|
|
19717
|
+
text:
|
|
19718
|
+
type: string
|
|
19719
|
+
required:
|
|
19720
|
+
- questionId
|
|
19721
|
+
- decision
|
|
19722
|
+
additionalProperties: false
|
|
19723
|
+
overall:
|
|
19724
|
+
type: string
|
|
19725
|
+
enum:
|
|
19726
|
+
- completed
|
|
19727
|
+
- closed
|
|
19728
|
+
required:
|
|
19729
|
+
- requestId
|
|
19730
|
+
- questions
|
|
19731
|
+
- responses
|
|
19732
|
+
- overall
|
|
19733
|
+
additionalProperties: false
|
|
19494
19734
|
required:
|
|
19495
19735
|
- name
|
|
19496
19736
|
- input
|
|
@@ -19836,8 +20076,8 @@ paths:
|
|
|
19836
20076
|
type: string
|
|
19837
20077
|
clientOs:
|
|
19838
20078
|
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.
|
|
20079
|
+
Client OS surface ("web" | "ios" | "macos" | "windows" | "android"), reported separately from `interface`.
|
|
20080
|
+
Drives the per-turn `client_os` context only; does not affect transport/host-proxy capabilities.
|
|
19841
20081
|
type: string
|
|
19842
20082
|
visibleAppId:
|
|
19843
20083
|
description:
|
|
@@ -20652,6 +20892,10 @@ paths:
|
|
|
20652
20892
|
responses:
|
|
20653
20893
|
"200":
|
|
20654
20894
|
description: Successful response
|
|
20895
|
+
"403":
|
|
20896
|
+
description: The queued message was enqueued by a different actor principal.
|
|
20897
|
+
"404":
|
|
20898
|
+
description: Conversation or queued message not found.
|
|
20655
20899
|
/v1/migrations/export:
|
|
20656
20900
|
post:
|
|
20657
20901
|
operationId: migrations_export_post
|
|
@@ -21767,8 +22011,6 @@ paths:
|
|
|
21767
22011
|
type: string
|
|
21768
22012
|
throwOnError:
|
|
21769
22013
|
type: boolean
|
|
21770
|
-
originatingConversationId:
|
|
21771
|
-
type: string
|
|
21772
22014
|
required:
|
|
21773
22015
|
- sourceEventName
|
|
21774
22016
|
- sourceChannel
|
|
@@ -21909,6 +22151,11 @@ paths:
|
|
|
21909
22151
|
anyOf:
|
|
21910
22152
|
- type: string
|
|
21911
22153
|
- type: "null"
|
|
22154
|
+
acts_as:
|
|
22155
|
+
type: string
|
|
22156
|
+
enum:
|
|
22157
|
+
- user
|
|
22158
|
+
- assistant
|
|
21912
22159
|
required:
|
|
21913
22160
|
- provider_key
|
|
21914
22161
|
- display_name
|
|
@@ -21920,6 +22167,7 @@ paths:
|
|
|
21920
22167
|
- supports_managed_mode
|
|
21921
22168
|
- managed_service_is_paid
|
|
21922
22169
|
- feature_flag
|
|
22170
|
+
- acts_as
|
|
21923
22171
|
additionalProperties: false
|
|
21924
22172
|
- type: "null"
|
|
21925
22173
|
apps:
|
|
@@ -22437,6 +22685,11 @@ paths:
|
|
|
22437
22685
|
anyOf:
|
|
22438
22686
|
- type: string
|
|
22439
22687
|
- type: "null"
|
|
22688
|
+
acts_as:
|
|
22689
|
+
type: string
|
|
22690
|
+
enum:
|
|
22691
|
+
- user
|
|
22692
|
+
- assistant
|
|
22440
22693
|
required:
|
|
22441
22694
|
- provider_key
|
|
22442
22695
|
- display_name
|
|
@@ -22448,6 +22701,7 @@ paths:
|
|
|
22448
22701
|
- supports_managed_mode
|
|
22449
22702
|
- managed_service_is_paid
|
|
22450
22703
|
- feature_flag
|
|
22704
|
+
- acts_as
|
|
22451
22705
|
additionalProperties: false
|
|
22452
22706
|
required:
|
|
22453
22707
|
- providers
|
|
@@ -24012,14 +24266,43 @@ paths:
|
|
|
24012
24266
|
description:
|
|
24013
24267
|
Registered tool names from `tools/<name>.{ts,js}` (filenames derived to tool names, e.g. `create-issue` →
|
|
24014
24268
|
`create_issue`).
|
|
24269
|
+
schedules:
|
|
24270
|
+
type: array
|
|
24271
|
+
items:
|
|
24272
|
+
type: object
|
|
24273
|
+
properties:
|
|
24274
|
+
name:
|
|
24275
|
+
type: string
|
|
24276
|
+
description: "Schedule name: the declaration directory's name."
|
|
24277
|
+
cadence:
|
|
24278
|
+
type: string
|
|
24279
|
+
description: Raw schedule `expression` string from the declaration's config.
|
|
24280
|
+
mode:
|
|
24281
|
+
type: string
|
|
24282
|
+
enum:
|
|
24283
|
+
- execute
|
|
24284
|
+
- script
|
|
24285
|
+
description: "`execute` for a markdown prompt entrypoint, `script` for `index.sh`."
|
|
24286
|
+
required:
|
|
24287
|
+
- name
|
|
24288
|
+
- cadence
|
|
24289
|
+
- mode
|
|
24290
|
+
additionalProperties: false
|
|
24291
|
+
description:
|
|
24292
|
+
Schedules declared under `schedules/`, each a `<name>/` directory with `config.json` plus one entrypoint.
|
|
24293
|
+
Display surface only; files directly under `schedules/` and unsupported declarations are
|
|
24294
|
+
omitted.
|
|
24015
24295
|
required:
|
|
24016
24296
|
- skills
|
|
24017
24297
|
- hooks
|
|
24018
24298
|
- tools
|
|
24299
|
+
- schedules
|
|
24019
24300
|
additionalProperties: false
|
|
24020
24301
|
description: Surfaces the installed copy contributes, read from its on-disk tree.
|
|
24021
24302
|
- type: "null"
|
|
24022
|
-
description:
|
|
24303
|
+
description:
|
|
24304
|
+
Surfaces the installed copy contributes (skills, hooks, tools, schedules); null when the plugin is not
|
|
24305
|
+
installed.
|
|
24023
24306
|
required:
|
|
24024
24307
|
- name
|
|
24025
24308
|
- installed
|
|
@@ -24957,8 +25240,9 @@ paths:
|
|
|
24957
25240
|
per conversation after activity (time/message thresholds, pre-compaction) — there is no global schedule, so
|
|
24958
25241
|
`nextRunAt` is always null and no run-now endpoint exists. `intervalMs` is the per-conversation time threshold
|
|
24959
25242
|
(`memory.retrospective.timeThresholdMs`), `lastRunAt` is the `createdAt` of the most recent retrospective
|
|
24960
|
-
conversation across both legacy and fork sources,
|
|
24961
|
-
`memory.v2.enabled`).
|
|
25243
|
+
conversation across both legacy and fork sources, `available` gates on `memory.enabled` (not
|
|
25244
|
+
`memory.v2.enabled`), and `enabled` narrows that by `memory.retrospective.enabled`, the per-pass kill switch
|
|
25245
|
+
that stops retrospectives without disabling the rest of memory.
|
|
24962
25246
|
tags:
|
|
24963
25247
|
- retrospective
|
|
24964
25248
|
responses:
|
|
@@ -25244,6 +25528,12 @@ paths:
|
|
|
25244
25528
|
schema:
|
|
25245
25529
|
type: string
|
|
25246
25530
|
description: When 'true', include deferred schedules that are normally hidden.
|
|
25531
|
+
- name: inference_profile
|
|
25532
|
+
in: query
|
|
25533
|
+
required: false
|
|
25534
|
+
schema:
|
|
25535
|
+
type: string
|
|
25536
|
+
description: Return only schedules pinned to this inference profile (llm.profiles key).
|
|
25247
25537
|
responses:
|
|
25248
25538
|
"200":
|
|
25249
25539
|
description: Successful response
|
|
@@ -25359,8 +25649,24 @@ paths:
|
|
|
25359
25649
|
anyOf:
|
|
25360
25650
|
- type: string
|
|
25361
25651
|
- type: "null"
|
|
25652
|
+
sourceKey:
|
|
25653
|
+
anyOf:
|
|
25654
|
+
- type: string
|
|
25655
|
+
- type: "null"
|
|
25656
|
+
description:
|
|
25657
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
25658
|
+
schedules
|
|
25659
|
+
userEnabled:
|
|
25660
|
+
anyOf:
|
|
25661
|
+
- type: boolean
|
|
25662
|
+
- type: "null"
|
|
25663
|
+
description:
|
|
25664
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
25665
|
+
applies. Always null for user-created schedules.
|
|
25362
25666
|
isOneShot:
|
|
25363
25667
|
type: boolean
|
|
25668
|
+
isDeferred:
|
|
25669
|
+
type: boolean
|
|
25364
25670
|
required:
|
|
25365
25671
|
- id
|
|
25366
25672
|
- name
|
|
@@ -25391,7 +25697,10 @@ paths:
|
|
|
25391
25697
|
- reuseConversation
|
|
25392
25698
|
- wakeConversationId
|
|
25393
25699
|
- workflowName
|
|
25700
|
+
- sourceKey
|
|
25701
|
+
- userEnabled
|
|
25394
25702
|
- isOneShot
|
|
25703
|
+
- isDeferred
|
|
25395
25704
|
additionalProperties: false
|
|
25396
25705
|
description: Schedule objects
|
|
25397
25706
|
required:
|
|
@@ -25453,8 +25762,10 @@ paths:
|
|
|
25453
25762
|
- type: string
|
|
25454
25763
|
- type: "null"
|
|
25455
25764
|
description:
|
|
25456
|
-
Inference profile (llm.profiles key) the schedule's runs use. Omitted or null
|
|
25457
|
-
|
|
25765
|
+
Inference profile (llm.profiles key) the schedule's runs use. Omitted or null pins the schedule to the
|
|
25766
|
+
currently resolved default profile, so its model does not move when that default changes.
|
|
25767
|
+
Workflow-mode schedules resolve a model per workflow step, so the pin is recorded but does not
|
|
25768
|
+
govern their runs.
|
|
25458
25769
|
required:
|
|
25459
25770
|
- name
|
|
25460
25771
|
- expression
|
|
@@ -25571,8 +25882,24 @@ paths:
|
|
|
25571
25882
|
anyOf:
|
|
25572
25883
|
- type: string
|
|
25573
25884
|
- type: "null"
|
|
25885
|
+
sourceKey:
|
|
25886
|
+
anyOf:
|
|
25887
|
+
- type: string
|
|
25888
|
+
- type: "null"
|
|
25889
|
+
description:
|
|
25890
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
25891
|
+
schedules
|
|
25892
|
+
userEnabled:
|
|
25893
|
+
anyOf:
|
|
25894
|
+
- type: boolean
|
|
25895
|
+
- type: "null"
|
|
25896
|
+
description:
|
|
25897
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
25898
|
+
applies. Always null for user-created schedules.
|
|
25574
25899
|
isOneShot:
|
|
25575
25900
|
type: boolean
|
|
25901
|
+
isDeferred:
|
|
25902
|
+
type: boolean
|
|
25576
25903
|
required:
|
|
25577
25904
|
- id
|
|
25578
25905
|
- name
|
|
@@ -25603,7 +25930,10 @@ paths:
|
|
|
25603
25930
|
- reuseConversation
|
|
25604
25931
|
- wakeConversationId
|
|
25605
25932
|
- workflowName
|
|
25933
|
+
- sourceKey
|
|
25934
|
+
- userEnabled
|
|
25606
25935
|
- isOneShot
|
|
25936
|
+
- isDeferred
|
|
25607
25937
|
additionalProperties: false
|
|
25608
25938
|
description: The created schedule
|
|
25609
25939
|
required:
|
|
@@ -25737,8 +26067,24 @@ paths:
|
|
|
25737
26067
|
anyOf:
|
|
25738
26068
|
- type: string
|
|
25739
26069
|
- type: "null"
|
|
26070
|
+
sourceKey:
|
|
26071
|
+
anyOf:
|
|
26072
|
+
- type: string
|
|
26073
|
+
- type: "null"
|
|
26074
|
+
description:
|
|
26075
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26076
|
+
schedules
|
|
26077
|
+
userEnabled:
|
|
26078
|
+
anyOf:
|
|
26079
|
+
- type: boolean
|
|
26080
|
+
- type: "null"
|
|
26081
|
+
description:
|
|
26082
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26083
|
+
applies. Always null for user-created schedules.
|
|
25740
26084
|
isOneShot:
|
|
25741
26085
|
type: boolean
|
|
26086
|
+
isDeferred:
|
|
26087
|
+
type: boolean
|
|
25742
26088
|
required:
|
|
25743
26089
|
- id
|
|
25744
26090
|
- name
|
|
@@ -25769,7 +26115,10 @@ paths:
|
|
|
25769
26115
|
- reuseConversation
|
|
25770
26116
|
- wakeConversationId
|
|
25771
26117
|
- workflowName
|
|
26118
|
+
- sourceKey
|
|
26119
|
+
- userEnabled
|
|
25772
26120
|
- isOneShot
|
|
26121
|
+
- isDeferred
|
|
25773
26122
|
additionalProperties: false
|
|
25774
26123
|
description: Updated schedule list
|
|
25775
26124
|
required:
|
|
@@ -25900,8 +26249,24 @@ paths:
|
|
|
25900
26249
|
anyOf:
|
|
25901
26250
|
- type: string
|
|
25902
26251
|
- type: "null"
|
|
26252
|
+
sourceKey:
|
|
26253
|
+
anyOf:
|
|
26254
|
+
- type: string
|
|
26255
|
+
- type: "null"
|
|
26256
|
+
description:
|
|
26257
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26258
|
+
schedules
|
|
26259
|
+
userEnabled:
|
|
26260
|
+
anyOf:
|
|
26261
|
+
- type: boolean
|
|
26262
|
+
- type: "null"
|
|
26263
|
+
description:
|
|
26264
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26265
|
+
applies. Always null for user-created schedules.
|
|
25903
26266
|
isOneShot:
|
|
25904
26267
|
type: boolean
|
|
26268
|
+
isDeferred:
|
|
26269
|
+
type: boolean
|
|
25905
26270
|
required:
|
|
25906
26271
|
- id
|
|
25907
26272
|
- name
|
|
@@ -25932,7 +26297,10 @@ paths:
|
|
|
25932
26297
|
- reuseConversation
|
|
25933
26298
|
- wakeConversationId
|
|
25934
26299
|
- workflowName
|
|
26300
|
+
- sourceKey
|
|
26301
|
+
- userEnabled
|
|
25935
26302
|
- isOneShot
|
|
26303
|
+
- isDeferred
|
|
25936
26304
|
additionalProperties: false
|
|
25937
26305
|
description: Schedule object
|
|
25938
26306
|
required:
|
|
@@ -26005,8 +26373,9 @@ paths:
|
|
|
26005
26373
|
- type: string
|
|
26006
26374
|
- type: "null"
|
|
26007
26375
|
description:
|
|
26008
|
-
Inference profile (llm.profiles key) the schedule's runs use; null
|
|
26009
|
-
|
|
26376
|
+
Inference profile (llm.profiles key) the schedule's runs use; null re-pins the schedule to the currently
|
|
26377
|
+
resolved default profile. Workflow-mode schedules resolve a model per workflow step, so the pin is
|
|
26378
|
+
recorded but does not govern their runs.
|
|
26010
26379
|
responses:
|
|
26011
26380
|
"200":
|
|
26012
26381
|
description: Successful response
|
|
@@ -26122,8 +26491,24 @@ paths:
|
|
|
26122
26491
|
anyOf:
|
|
26123
26492
|
- type: string
|
|
26124
26493
|
- type: "null"
|
|
26494
|
+
sourceKey:
|
|
26495
|
+
anyOf:
|
|
26496
|
+
- type: string
|
|
26497
|
+
- type: "null"
|
|
26498
|
+
description:
|
|
26499
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26500
|
+
schedules
|
|
26501
|
+
userEnabled:
|
|
26502
|
+
anyOf:
|
|
26503
|
+
- type: boolean
|
|
26504
|
+
- type: "null"
|
|
26505
|
+
description:
|
|
26506
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26507
|
+
applies. Always null for user-created schedules.
|
|
26125
26508
|
isOneShot:
|
|
26126
26509
|
type: boolean
|
|
26510
|
+
isDeferred:
|
|
26511
|
+
type: boolean
|
|
26127
26512
|
required:
|
|
26128
26513
|
- id
|
|
26129
26514
|
- name
|
|
@@ -26154,7 +26539,10 @@ paths:
|
|
|
26154
26539
|
- reuseConversation
|
|
26155
26540
|
- wakeConversationId
|
|
26156
26541
|
- workflowName
|
|
26542
|
+
- sourceKey
|
|
26543
|
+
- userEnabled
|
|
26157
26544
|
- isOneShot
|
|
26545
|
+
- isDeferred
|
|
26158
26546
|
additionalProperties: false
|
|
26159
26547
|
description: Updated schedule list
|
|
26160
26548
|
required:
|
|
@@ -26288,8 +26676,24 @@ paths:
|
|
|
26288
26676
|
anyOf:
|
|
26289
26677
|
- type: string
|
|
26290
26678
|
- type: "null"
|
|
26679
|
+
sourceKey:
|
|
26680
|
+
anyOf:
|
|
26681
|
+
- type: string
|
|
26682
|
+
- type: "null"
|
|
26683
|
+
description:
|
|
26684
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26685
|
+
schedules
|
|
26686
|
+
userEnabled:
|
|
26687
|
+
anyOf:
|
|
26688
|
+
- type: boolean
|
|
26689
|
+
- type: "null"
|
|
26690
|
+
description:
|
|
26691
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26692
|
+
applies. Always null for user-created schedules.
|
|
26291
26693
|
isOneShot:
|
|
26292
26694
|
type: boolean
|
|
26695
|
+
isDeferred:
|
|
26696
|
+
type: boolean
|
|
26293
26697
|
required:
|
|
26294
26698
|
- id
|
|
26295
26699
|
- name
|
|
@@ -26320,7 +26724,10 @@ paths:
|
|
|
26320
26724
|
- reuseConversation
|
|
26321
26725
|
- wakeConversationId
|
|
26322
26726
|
- workflowName
|
|
26727
|
+
- sourceKey
|
|
26728
|
+
- userEnabled
|
|
26323
26729
|
- isOneShot
|
|
26730
|
+
- isDeferred
|
|
26324
26731
|
additionalProperties: false
|
|
26325
26732
|
description: Updated schedule list
|
|
26326
26733
|
required:
|
|
@@ -26330,7 +26737,9 @@ paths:
|
|
|
26330
26737
|
post:
|
|
26331
26738
|
operationId: schedules_by_id_run_post
|
|
26332
26739
|
summary: Run schedule now
|
|
26333
|
-
description:
|
|
26740
|
+
description:
|
|
26741
|
+
Trigger an immediate execution of a schedule. A plugin-sourced schedule is rejected with a 400 when its
|
|
26742
|
+
plugin is disabled or no longer declares it.
|
|
26334
26743
|
tags:
|
|
26335
26744
|
- schedules
|
|
26336
26745
|
parameters:
|
|
@@ -26454,8 +26863,24 @@ paths:
|
|
|
26454
26863
|
anyOf:
|
|
26455
26864
|
- type: string
|
|
26456
26865
|
- type: "null"
|
|
26866
|
+
sourceKey:
|
|
26867
|
+
anyOf:
|
|
26868
|
+
- type: string
|
|
26869
|
+
- type: "null"
|
|
26870
|
+
description:
|
|
26871
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
26872
|
+
schedules
|
|
26873
|
+
userEnabled:
|
|
26874
|
+
anyOf:
|
|
26875
|
+
- type: boolean
|
|
26876
|
+
- type: "null"
|
|
26877
|
+
description:
|
|
26878
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
26879
|
+
applies. Always null for user-created schedules.
|
|
26457
26880
|
isOneShot:
|
|
26458
26881
|
type: boolean
|
|
26882
|
+
isDeferred:
|
|
26883
|
+
type: boolean
|
|
26459
26884
|
required:
|
|
26460
26885
|
- id
|
|
26461
26886
|
- name
|
|
@@ -26486,7 +26911,10 @@ paths:
|
|
|
26486
26911
|
- reuseConversation
|
|
26487
26912
|
- wakeConversationId
|
|
26488
26913
|
- workflowName
|
|
26914
|
+
- sourceKey
|
|
26915
|
+
- userEnabled
|
|
26489
26916
|
- isOneShot
|
|
26917
|
+
- isDeferred
|
|
26490
26918
|
additionalProperties: false
|
|
26491
26919
|
description: Updated schedule list
|
|
26492
26920
|
required:
|
|
@@ -26621,7 +27049,7 @@ paths:
|
|
|
26621
27049
|
post:
|
|
26622
27050
|
operationId: schedules_by_id_toggle_post
|
|
26623
27051
|
summary: Toggle schedule
|
|
26624
|
-
description: Enable or disable a schedule.
|
|
27052
|
+
description: Enable or disable a schedule. On a plugin-managed schedule this records the user's override (userEnabled).
|
|
26625
27053
|
tags:
|
|
26626
27054
|
- schedules
|
|
26627
27055
|
parameters:
|
|
@@ -26757,8 +27185,24 @@ paths:
|
|
|
26757
27185
|
anyOf:
|
|
26758
27186
|
- type: string
|
|
26759
27187
|
- type: "null"
|
|
27188
|
+
sourceKey:
|
|
27189
|
+
anyOf:
|
|
27190
|
+
- type: string
|
|
27191
|
+
- type: "null"
|
|
27192
|
+
description:
|
|
27193
|
+
Plugin declaration this schedule mirrors (plugin:<pluginName>/<scheduleName>); null for user-created
|
|
27194
|
+
schedules
|
|
27195
|
+
userEnabled:
|
|
27196
|
+
anyOf:
|
|
27197
|
+
- type: boolean
|
|
27198
|
+
- type: "null"
|
|
27199
|
+
description:
|
|
27200
|
+
User enable/disable override on a plugin-sourced schedule; null when the declaration's own enabled value
|
|
27201
|
+
applies. Always null for user-created schedules.
|
|
26760
27202
|
isOneShot:
|
|
26761
27203
|
type: boolean
|
|
27204
|
+
isDeferred:
|
|
27205
|
+
type: boolean
|
|
26762
27206
|
required:
|
|
26763
27207
|
- id
|
|
26764
27208
|
- name
|
|
@@ -26789,12 +27233,55 @@ paths:
|
|
|
26789
27233
|
- reuseConversation
|
|
26790
27234
|
- wakeConversationId
|
|
26791
27235
|
- workflowName
|
|
27236
|
+
- sourceKey
|
|
27237
|
+
- userEnabled
|
|
26792
27238
|
- isOneShot
|
|
27239
|
+
- isDeferred
|
|
26793
27240
|
additionalProperties: false
|
|
26794
27241
|
description: Updated schedule list
|
|
26795
27242
|
required:
|
|
26796
27243
|
- schedules
|
|
26797
27244
|
additionalProperties: false
|
|
27245
|
+
/v1/schedules/reassign-profile:
|
|
27246
|
+
post:
|
|
27247
|
+
operationId: schedules_reassignprofile_post
|
|
27248
|
+
summary: Reassign schedules to another inference profile
|
|
27249
|
+
description:
|
|
27250
|
+
Move schedules onto one inference profile. Pass 'from' to move only the schedules pinned to that profile,
|
|
27251
|
+
so deleting a profile does not leave its schedules pointing at a name that no longer exists. Omit 'from' to move
|
|
27252
|
+
every schedule, which re-pins the whole set onto one profile. Schedules already pinned to the target are
|
|
27253
|
+
skipped.
|
|
27254
|
+
tags:
|
|
27255
|
+
- schedules
|
|
27256
|
+
requestBody:
|
|
27257
|
+
required: true
|
|
27258
|
+
content:
|
|
27259
|
+
application/json:
|
|
27260
|
+
schema:
|
|
27261
|
+
type: object
|
|
27262
|
+
properties:
|
|
27263
|
+
from:
|
|
27264
|
+
description: Inference profile key the schedules are pinned to now; omit to select every schedule
|
|
27265
|
+
type: string
|
|
27266
|
+
to:
|
|
27267
|
+
type: string
|
|
27268
|
+
description: Inference profile key to move them to; must be configured
|
|
27269
|
+
required:
|
|
27270
|
+
- to
|
|
27271
|
+
responses:
|
|
27272
|
+
"200":
|
|
27273
|
+
description: Successful response
|
|
27274
|
+
content:
|
|
27275
|
+
application/json:
|
|
27276
|
+
schema:
|
|
27277
|
+
type: object
|
|
27278
|
+
properties:
|
|
27279
|
+
reassigned:
|
|
27280
|
+
type: number
|
|
27281
|
+
description: Number of schedules moved
|
|
27282
|
+
required:
|
|
27283
|
+
- reassigned
|
|
27284
|
+
additionalProperties: false
|
|
26798
27285
|
/v1/schedules/usage-summary:
|
|
26799
27286
|
get:
|
|
26800
27287
|
operationId: schedules_usagesummary_get
|
|
@@ -28940,6 +29427,73 @@ paths:
|
|
|
28940
29427
|
- isBinary
|
|
28941
29428
|
- content
|
|
28942
29429
|
additionalProperties: false
|
|
29430
|
+
/v1/skills/{id}/history:
|
|
29431
|
+
get:
|
|
29432
|
+
operationId: skills_by_id_history_get
|
|
29433
|
+
summary: Get skill revision history
|
|
29434
|
+
description:
|
|
29435
|
+
"Return a skill's recent updates, newest first, each with a combined diff across the skill directory.
|
|
29436
|
+
Read-only: revisions come from the workspace git repository, which already retains prior content. Commits whose
|
|
29437
|
+
only in-skill change is the `lastUsedAt` usage stamp are omitted, so entries are edits rather than loads."
|
|
29438
|
+
tags:
|
|
29439
|
+
- skills
|
|
29440
|
+
parameters:
|
|
29441
|
+
- name: id
|
|
29442
|
+
in: path
|
|
29443
|
+
required: true
|
|
29444
|
+
schema:
|
|
29445
|
+
type: string
|
|
29446
|
+
- name: limit
|
|
29447
|
+
in: query
|
|
29448
|
+
required: false
|
|
29449
|
+
schema:
|
|
29450
|
+
type: integer
|
|
29451
|
+
description: Maximum revisions to return, newest first. Defaults to 20 and is clamped to 100.
|
|
29452
|
+
responses:
|
|
29453
|
+
"200":
|
|
29454
|
+
description: Successful response
|
|
29455
|
+
content:
|
|
29456
|
+
application/json:
|
|
29457
|
+
schema:
|
|
29458
|
+
type: object
|
|
29459
|
+
properties:
|
|
29460
|
+
skillId:
|
|
29461
|
+
type: string
|
|
29462
|
+
description: The skill these revisions belong to
|
|
29463
|
+
revisions:
|
|
29464
|
+
type: array
|
|
29465
|
+
items:
|
|
29466
|
+
type: object
|
|
29467
|
+
properties:
|
|
29468
|
+
id:
|
|
29469
|
+
type: string
|
|
29470
|
+
description: Opaque revision identifier
|
|
29471
|
+
changedAt:
|
|
29472
|
+
type: string
|
|
29473
|
+
description: ISO-8601 time of the update
|
|
29474
|
+
files:
|
|
29475
|
+
type: array
|
|
29476
|
+
items:
|
|
29477
|
+
type: string
|
|
29478
|
+
description: Paths changed, relative to the skill directory
|
|
29479
|
+
diff:
|
|
29480
|
+
type: string
|
|
29481
|
+
description: Unified diff of this update, scoped to the skill
|
|
29482
|
+
required:
|
|
29483
|
+
- id
|
|
29484
|
+
- changedAt
|
|
29485
|
+
- files
|
|
29486
|
+
- diff
|
|
29487
|
+
additionalProperties: false
|
|
29488
|
+
description: Recent updates, newest first
|
|
29489
|
+
truncatedByCompaction:
|
|
29490
|
+
type: boolean
|
|
29491
|
+
description: Older history was squashed away, so the oldest entry is a floor rather than the skill's creation
|
|
29492
|
+
required:
|
|
29493
|
+
- skillId
|
|
29494
|
+
- revisions
|
|
29495
|
+
- truncatedByCompaction
|
|
29496
|
+
additionalProperties: false
|
|
28943
29497
|
/v1/skills/{id}/inspect:
|
|
28944
29498
|
get:
|
|
28945
29499
|
operationId: skills_by_id_inspect_get
|
|
@@ -34370,13 +34924,14 @@ components:
|
|
|
34370
34924
|
type: string
|
|
34371
34925
|
enum:
|
|
34372
34926
|
- ok
|
|
34373
|
-
-
|
|
34927
|
+
- incomplete
|
|
34374
34928
|
- missing_connection
|
|
34375
34929
|
- missing_credential
|
|
34376
34930
|
- provider_mismatch
|
|
34377
34931
|
- unsupported_auth
|
|
34378
34932
|
- vellum_unauthenticated
|
|
34379
34933
|
- unknown
|
|
34934
|
+
- missing_default
|
|
34380
34935
|
message:
|
|
34381
34936
|
type: string
|
|
34382
34937
|
required:
|
|
@@ -34602,6 +35157,7 @@ components:
|
|
|
34602
35157
|
type: string
|
|
34603
35158
|
enum:
|
|
34604
35159
|
- ok
|
|
35160
|
+
- incomplete
|
|
34605
35161
|
- missing_connection
|
|
34606
35162
|
- missing_credential
|
|
34607
35163
|
- provider_mismatch
|
|
@@ -34630,11 +35186,14 @@ components:
|
|
|
34630
35186
|
type: array
|
|
34631
35187
|
items:
|
|
34632
35188
|
type: string
|
|
35189
|
+
verify:
|
|
35190
|
+
type: string
|
|
34633
35191
|
required:
|
|
34634
35192
|
- ok
|
|
34635
35193
|
- name
|
|
34636
35194
|
- entry
|
|
34637
35195
|
- warnings
|
|
35196
|
+
- verify
|
|
34638
35197
|
additionalProperties: false
|
|
34639
35198
|
InferenceProfileDetail:
|
|
34640
35199
|
type: object
|