@vellumai/assistant 0.11.7 → 0.11.8-staging.1
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 +10 -10
- package/Dockerfile +1 -0
- package/docs/architecture/security.md +1 -1
- package/docs/error-handling.md +1 -2
- package/docs/guardian-request-flow.md +51 -5
- package/docs/trusted-contact-access.md +13 -12
- package/knip.json +1 -0
- package/node_modules/@vellumai/avatar-catalog/package.json +19 -0
- package/{src/avatar/character-components.ts → node_modules/@vellumai/avatar-catalog/src/catalog.ts} +12 -44
- package/node_modules/@vellumai/avatar-catalog/src/colors.ts +19 -0
- package/node_modules/@vellumai/avatar-catalog/src/index.ts +25 -0
- package/node_modules/@vellumai/avatar-catalog/src/types.ts +47 -0
- package/node_modules/@vellumai/avatar-catalog/tsconfig.json +20 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/channels.ts +7 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/index.ts +1 -0
- package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/no-response.ts +84 -0
- package/node_modules/@vellumai/credential-storage/src/static-credentials.ts +43 -12
- package/node_modules/@vellumai/environments/package.json +2 -1
- package/node_modules/@vellumai/environments/src/__tests__/test-path-guard.test.ts +89 -0
- package/node_modules/@vellumai/environments/src/test-path-guard.ts +113 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/channels.ts +7 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/index.ts +1 -0
- package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/no-response.ts +84 -0
- package/node_modules/@vellumai/gateway-client/src/__tests__/guardian-request-contract.test.ts +8 -18
- package/node_modules/@vellumai/gateway-client/src/__tests__/inbound-event-kind.test.ts +46 -0
- package/node_modules/@vellumai/gateway-client/src/__tests__/invite-contract.test.ts +1 -0
- package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +46 -0
- package/node_modules/@vellumai/gateway-client/src/guardian-request-contract.ts +62 -21
- package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +14 -0
- package/node_modules/@vellumai/gateway-client/src/inbound-event-kind.ts +53 -0
- package/node_modules/@vellumai/gateway-client/src/index.ts +11 -5
- package/node_modules/@vellumai/gateway-client/src/invite-contract.ts +1 -0
- package/node_modules/@vellumai/service-contracts/package.json +1 -0
- package/node_modules/@vellumai/service-contracts/src/channels.ts +7 -0
- package/node_modules/@vellumai/service-contracts/src/index.ts +1 -0
- package/node_modules/@vellumai/service-contracts/src/no-response.ts +84 -0
- package/openapi.yaml +481 -9
- package/package.json +3 -1
- package/scripts/sync-llm-catalog.ts +3 -0
- package/src/__tests__/agent-loop-callsite-precedence.test.ts +16 -0
- package/src/__tests__/agent-loop-compacted-history-transform.test.ts +304 -0
- package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +3 -0
- package/src/__tests__/agent-wake-override-profile.test.ts +3 -0
- package/src/__tests__/anthropic-provider.test.ts +56 -0
- package/src/__tests__/approval-cascade.test.ts +0 -13
- package/src/__tests__/attachments-store.test.ts +117 -6
- package/src/__tests__/attachments.test.ts +122 -0
- package/src/__tests__/bundled-asset.test.ts +22 -1
- package/src/__tests__/channel-approval.test.ts +14 -7
- package/src/__tests__/channel-approvals.test.ts +3 -3
- package/src/__tests__/channel-delivery-store.test.ts +58 -0
- package/src/__tests__/channel-inbound-disk-pressure.test.ts +1 -0
- package/src/__tests__/channel-invite-transport.test.ts +1 -0
- package/src/__tests__/channel-readiness-slack-remote.test.ts +3 -3
- package/src/__tests__/compaction-events.test.ts +0 -12
- package/src/__tests__/compactor-call-site-logging.test.ts +7 -1
- package/src/__tests__/compactor-retained-image-validation.test.ts +15 -0
- package/src/__tests__/config-schema.test.ts +35 -0
- package/src/__tests__/contacts-write.test.ts +141 -3
- package/src/__tests__/conversation-abort-tool-results.test.ts +0 -13
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +0 -12
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +0 -13
- package/src/__tests__/conversation-agent-loop.test.ts +95 -13
- package/src/__tests__/conversation-confirmation-signals.test.ts +0 -13
- package/src/__tests__/conversation-load-history-repair.test.ts +418 -0
- package/src/__tests__/conversation-media-retry.test.ts +33 -2
- package/src/__tests__/conversation-pairing.test.ts +54 -0
- package/src/__tests__/conversation-process-callsite.test.ts +0 -12
- package/src/__tests__/conversation-provider-retry-repair.test.ts +0 -13
- package/src/__tests__/conversation-queue.test.ts +4 -13
- package/src/__tests__/conversation-retry-route.test.ts +5 -0
- package/src/__tests__/conversation-routes-disk-view.test.ts +1 -1
- package/src/__tests__/conversation-routes-enabled-plugins.test.ts +1 -1
- package/src/__tests__/conversation-routes-hidden-queue.test.ts +1 -1
- package/src/__tests__/conversation-routes-slash-commands.test.ts +1 -1
- package/src/__tests__/conversation-sight-frames.test.ts +615 -0
- package/src/__tests__/conversation-slash-queue.test.ts +0 -13
- package/src/__tests__/conversation-slash-unknown.test.ts +0 -13
- package/src/__tests__/conversation-speed-override.test.ts +0 -12
- package/src/__tests__/conversation-store-ephemeral.test.ts +0 -12
- package/src/__tests__/conversation-summarize-route.test.ts +5 -0
- package/src/__tests__/conversation-summarize-up-to.test.ts +102 -0
- package/src/__tests__/conversation-wait-for-idle.test.ts +0 -12
- package/src/__tests__/conversation-workspace-cache-state.test.ts +0 -5
- package/src/__tests__/conversation-workspace-injection.test.ts +0 -17
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +0 -17
- package/src/__tests__/credential-health-service.test.ts +45 -0
- package/src/__tests__/credential-record-retire.test.ts +256 -0
- package/src/__tests__/credential-record-write-through.test.ts +8 -4
- package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +0 -4
- package/src/__tests__/db-conversation-inference-profile-migration.test.ts +0 -4
- package/src/__tests__/db-llm-request-log-provider-migration.test.ts +0 -8
- package/src/__tests__/delete-propagation.test.ts +121 -3
- package/src/__tests__/evict-conversations-for-reload.test.ts +46 -6
- package/src/__tests__/file-ops-service.test.ts +8 -3
- package/src/__tests__/gemini-provider.test.ts +64 -0
- package/src/__tests__/guardian-action-service-scope.test.ts +118 -0
- package/src/__tests__/guardian-card-withdrawal.test.ts +299 -5
- package/src/__tests__/guardian-expiry-notifier.test.ts +117 -13
- package/src/__tests__/guardian-gateway-sim.test.ts +119 -0
- package/src/__tests__/guardian-gateway-sim.ts +56 -20
- package/src/__tests__/guardian-reply-router-answer-mode.test.ts +6 -0
- package/src/__tests__/guardian-request-status-sync.test.ts +162 -0
- package/src/__tests__/guardian-wait-controller.test.ts +6 -0
- package/src/__tests__/headless-browser-mode.test.ts +27 -0
- package/src/__tests__/helpers/mock-conversation.ts +2 -0
- package/src/__tests__/list-messages-system-card.test.ts +70 -0
- package/src/__tests__/llm-catalog-parity.test.ts +2 -0
- package/src/__tests__/managed-profile-guard.test.ts +2 -2
- package/src/__tests__/media-resolve-image-validation.test.ts +106 -0
- package/src/__tests__/media-stream-server-integration.test.ts +6 -0
- package/src/__tests__/non-member-access-request.test.ts +12 -0
- package/src/__tests__/notification-discord-adapter.test.ts +76 -4
- package/src/__tests__/oauth-commands-routes.test.ts +21 -0
- package/src/__tests__/openai-provider.test.ts +63 -0
- package/src/__tests__/outbound-slack-persistence.test.ts +114 -2
- package/src/__tests__/persist-unsendable-image-downscale.test.ts +63 -1
- package/src/__tests__/persist-unsendable-image.test.ts +19 -0
- package/src/__tests__/plugin-app-serve-routes.test.ts +2 -2
- package/src/__tests__/plugin-import-boundary-guard.test.ts +1 -0
- package/src/__tests__/process-message-background-slack.test.ts +1 -1
- package/src/__tests__/process-message-display-content.test.ts +1 -1
- package/src/__tests__/processing-flag-persist-failure.test.ts +0 -5
- package/src/__tests__/prompt-cache-cross-turn-stability.test.ts +0 -17
- package/src/__tests__/qdrant-manager.test.ts +6 -0
- package/src/__tests__/reaction-persistence.test.ts +58 -62
- package/src/__tests__/retry-thinking-adaptive-only.test.ts +67 -0
- package/src/__tests__/server-history-render.test.ts +22 -0
- package/src/__tests__/sight-frame-retention.test.ts +362 -0
- package/src/__tests__/slack-reaction-approvals.test.ts +44 -24
- package/src/__tests__/slack-reaction-guardian-approval.test.ts +29 -1
- package/src/__tests__/subagent-fork-notifications.test.ts +2 -0
- package/src/__tests__/subagent-manager-notify.test.ts +2 -0
- package/src/__tests__/subagent-notify-parent.test.ts +2 -0
- package/src/__tests__/subagent-notify-stale-rebuild.test.ts +85 -0
- package/src/__tests__/subagent-tool-gate-mode.test.ts +4 -4
- package/src/__tests__/terminal-tools.test.ts +9 -9
- package/src/__tests__/tool-result-spool.test.ts +5 -8
- package/src/__tests__/usage-attribution.test.ts +26 -0
- package/src/acp/__tests__/acp-auth-marker-store.test.ts +191 -0
- package/src/acp/__tests__/acp-claude-oauth.test.ts +262 -0
- package/src/acp/__tests__/acp-connect-card-state.test.ts +17 -0
- package/src/acp/__tests__/helpers/acp-history-db.ts +10 -3
- package/src/acp/acp-auth-marker-store.ts +196 -0
- package/src/acp/acp-claude-oauth.ts +154 -4
- package/src/acp/acp-connect-card-state.ts +49 -8
- package/src/acp/agent-process.ts +1 -0
- package/src/acp/auto-install.ts +1 -0
- package/src/acp/client-handler.ts +1 -0
- package/src/acp/prepare-agent-env.ts +79 -1
- package/src/acp/resolve-agent.ts +12 -0
- package/src/acp/session-manager.test.ts +183 -0
- package/src/acp/session-manager.ts +110 -6
- package/src/acp/types.ts +17 -0
- package/src/agent/attachments.ts +7 -2
- package/src/agent/loop.ts +59 -1
- package/src/api/events/contact-form-closed.ts +32 -0
- package/src/api/events/contact-record-request.ts +63 -0
- package/src/api/events/contact-request.ts +10 -3
- package/src/api/index.ts +20 -0
- package/src/api/responses/conversation-message.ts +20 -0
- package/src/api/responses/home.ts +101 -0
- package/src/approvals/AGENTS.md +1 -1
- package/src/approvals/guardian-card-withdrawal.ts +127 -30
- package/src/approvals/guardian-decision-primitive.ts +9 -0
- package/src/approvals/guardian-expiry-notifier.ts +22 -16
- package/src/approvals/guardian-request-status-sync.ts +98 -0
- package/src/avatar/svg-compositor.ts +1 -1
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/bundler/app-compiler.ts +1 -0
- package/src/bundler/compiler-tools.ts +1 -0
- package/src/bundler/package-resolver.ts +1 -0
- package/src/calls/__tests__/voice-session-bridge.test.ts +183 -3
- package/src/calls/guardian-action-sweep.ts +6 -1
- package/src/calls/voice-session-bridge.ts +46 -1
- package/src/channels/__tests__/gateway-guardian-requests.test.ts +13 -18
- package/src/channels/gateway-guardian-requests.ts +37 -18
- package/src/cli/__tests__/contacts-record-prompt-cli.test.ts +329 -0
- package/src/cli/commands/__tests__/browser.test.ts +65 -1
- package/src/cli/commands/browser.ts +30 -10
- package/src/cli/commands/contacts.help.ts +173 -11
- package/src/cli/commands/contacts.ts +343 -4
- package/src/cli/commands/db/refresh.ts +1 -0
- package/src/cli/commands/oauth/index.help.ts +6 -3
- package/src/cli/commands/oauth/request.test.ts +37 -0
- package/src/cli/commands/oauth/request.ts +7 -6
- package/src/cli/lib/bundled-marketplace.json +1 -1
- package/src/cli/lib/install-from-github.ts +20 -19
- package/src/cli/lib/install-plugin-dependencies.ts +3 -5
- package/src/cli/lib/merge-plugin-tree.ts +1 -0
- package/src/cli/lib/publish-plugin.ts +4 -1
- package/src/config/__tests__/balanced-model-experiment.test.ts +63 -31
- package/src/config/__tests__/default-profile-catalog.test.ts +2 -2
- package/src/config/balanced-model-experiment.ts +15 -9
- package/src/config/bundled-skills/contacts/SKILL.md +61 -18
- package/src/config/default-profile-catalog.ts +12 -11
- package/src/config/feature-flag-registry.json +22 -13
- package/src/config/schema.ts +2 -0
- package/src/config/schemas/__tests__/live-voice.test.ts +13 -0
- package/src/config/schemas/live-voice.ts +7 -0
- package/src/config/schemas/sight.ts +45 -0
- package/src/config/skills.ts +2 -1
- package/src/contacts/__tests__/mirror-reconciler.test.ts +352 -0
- package/src/contacts/contact-store.ts +47 -4
- package/src/contacts/contacts-write.ts +5 -2
- package/src/contacts/mirror-reconciler.ts +210 -0
- package/src/contacts/mirror-tombstones.ts +42 -0
- package/src/contacts/notify-contacts-changed.ts +11 -2
- package/src/context/compactor.ts +47 -19
- package/src/context/tool-result-spool.ts +21 -14
- package/src/conversations/message-consolidation.ts +2 -2
- package/src/credential-health/credential-health-service.ts +37 -6
- package/src/daemon/conversation-agent-loop-handlers.ts +19 -2
- package/src/daemon/conversation-agent-loop.ts +100 -1
- package/src/daemon/conversation-media-retry.ts +11 -6
- package/src/daemon/conversation-messaging.ts +293 -30
- package/src/daemon/conversation-runtime-assembly.ts +67 -0
- package/src/daemon/conversation-sight-frames.ts +187 -0
- package/src/daemon/conversation-store.ts +18 -28
- package/src/daemon/conversation-surfaces.ts +12 -2
- package/src/daemon/conversation-tool-setup.ts +39 -10
- package/src/daemon/conversation.ts +159 -16
- package/src/daemon/daemon-control.ts +6 -17
- package/src/daemon/handlers/config-model.test.ts +1 -0
- package/src/daemon/handlers/conversations.ts +10 -11
- package/src/daemon/install-assistant-command.ts +1 -0
- package/src/daemon/lifecycle.ts +10 -13
- package/src/daemon/message-types/sync.ts +4 -0
- package/src/daemon/process-message.ts +2 -17
- package/src/daemon/reaction-history-render.test.ts +162 -0
- package/src/daemon/reaction-history-render.ts +115 -0
- package/src/daemon/reaction-record.test.ts +162 -0
- package/src/daemon/reaction-record.ts +83 -0
- package/src/daemon/shutdown-handlers.ts +0 -2
- package/src/daemon/summarize-boundary.ts +12 -0
- package/src/daemon/video-thumbnail.ts +1 -1
- package/src/home/feed-types.ts +4 -0
- package/src/home/feed-writer.ts +25 -0
- package/src/live-voice/__tests__/live-voice-attach-frame.test.ts +679 -0
- package/src/live-voice/__tests__/live-voice-attach-image.test.ts +8 -5
- package/src/live-voice/__tests__/live-voice-photo.test.ts +637 -1
- package/src/live-voice/__tests__/live-voice-sight-frame-inline.test.ts +787 -0
- package/src/live-voice/__tests__/live-voice-sight-frame.test.ts +347 -0
- package/src/live-voice/__tests__/live-voice-vad.test.ts +109 -0
- package/src/live-voice/live-voice-photo.ts +420 -65
- package/src/live-voice/live-voice-session.ts +311 -27
- package/src/live-voice/protocol.ts +147 -11
- package/src/messaging/provider-message-metadata.ts +7 -0
- package/src/messaging/providers/__tests__/transport-dispatch.test.ts +113 -1
- package/src/messaging/providers/channel-transport.ts +37 -0
- package/src/messaging/providers/discord/api.ts +4 -4
- package/src/messaging/providers/discord/send.test.ts +177 -2
- package/src/messaging/providers/discord/send.ts +197 -10
- package/src/messaging/providers/discord/transport.ts +10 -0
- package/src/messaging/providers/index.ts +42 -0
- package/src/messaging/providers/slack/__tests__/adapter-mention-rendering.test.ts +129 -3
- package/src/messaging/providers/slack/__tests__/auth.test.ts +35 -0
- package/src/messaging/providers/slack/__tests__/message-content.test.ts +152 -0
- package/src/messaging/providers/slack/adapter.ts +112 -27
- package/src/messaging/providers/slack/api.test.ts +10 -0
- package/src/messaging/providers/slack/auth.ts +32 -6
- package/src/messaging/providers/slack/client.ts +0 -15
- package/src/messaging/providers/slack/message-content.ts +137 -0
- package/src/messaging/providers/slack/send.test.ts +43 -2
- package/src/messaging/providers/slack/send.ts +18 -5
- package/src/messaging/providers/slack/transport.ts +10 -0
- package/src/messaging/providers/slack/types.ts +21 -2
- package/src/messaging/providers/telegram-bot/adapter.ts +5 -1
- package/src/messaging/providers/telegram-bot/send.test.ts +49 -2
- package/src/messaging/providers/telegram-bot/send.ts +41 -1
- package/src/messaging/providers/telegram-bot/transport.ts +10 -0
- package/src/messaging/providers/telegram-bot/withdraw.ts +13 -5
- package/src/messaging/reaction-envelopes.ts +79 -0
- package/src/monitoring/control.ts +2 -2
- package/src/monitoring/page-cache.ts +5 -1
- package/src/notifications/AGENTS.md +1 -1
- package/src/notifications/__tests__/guardian-feed-projection.test.ts +360 -0
- package/src/notifications/__tests__/home-feed-side-effect.test.ts +8 -0
- package/src/notifications/adapters/discord.ts +62 -9
- package/src/notifications/conversation-pairing.ts +31 -4
- package/src/notifications/emit-signal.ts +8 -5
- package/src/notifications/guardian-delivery-recorder.ts +47 -6
- package/src/notifications/guardian-feed-projection.ts +492 -0
- package/src/notifications/home-feed-side-effect.ts +59 -11
- package/src/oauth/byo-connection.test.ts +22 -0
- package/src/oauth/byo-connection.ts +11 -5
- package/src/oauth/connection.ts +3 -2
- package/src/oauth/platform-connection.test.ts +35 -0
- package/src/oauth/platform-connection.ts +18 -13
- package/src/oauth/scope-utils.ts +48 -0
- package/src/oauth/seed-providers.ts +12 -0
- package/src/outbound-proxy/certs.ts +5 -4
- package/src/permissions/question-guardian-request.test.ts +7 -1
- package/src/persistence/attachments-store.ts +134 -31
- package/src/persistence/conversation-crud.ts +137 -4
- package/src/persistence/conversation-types.ts +109 -0
- package/src/persistence/db-connection.ts +3 -21
- package/src/persistence/delivery-crud.ts +42 -12
- package/src/persistence/embeddings/__tests__/embedding-local-lifecycle.test.ts +15 -2
- package/src/persistence/embeddings/embedding-local.ts +7 -112
- package/src/persistence/embeddings/qdrant-manager.ts +4 -1
- package/src/persistence/llm-request-log-store.ts +1 -1
- package/src/persistence/migrations/370-acp-session-history-auth-error-code.ts +36 -0
- package/src/persistence/migrations/371-acp-session-history-auth-error-credential.ts +40 -0
- package/src/persistence/migrations/372-create-acp-refused-credentials.ts +34 -0
- package/src/persistence/migrations/373-acp-auth-marker-index.ts +27 -0
- package/src/persistence/migrations/__tests__/370-acp-session-history-auth-error-code.test.ts +65 -0
- package/src/persistence/migrations/__tests__/371-acp-session-history-auth-error-credential.test.ts +68 -0
- package/src/persistence/migrations/__tests__/372-create-acp-refused-credentials.test.ts +64 -0
- package/src/persistence/migrations/__tests__/373-acp-auth-marker-index.test.ts +82 -0
- package/src/persistence/schema/acp.ts +25 -0
- package/src/persistence/steps.ts +8 -0
- package/src/platform/platform-patch-queue.test.ts +43 -41
- package/src/plugin-api/index.ts +12 -0
- package/src/plugins/defaults/compaction/window-manager.ts +2 -0
- package/src/plugins/defaults/image-recovery/recover.ts +12 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-accounting.test.ts +166 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +3 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-wake-chain.test.ts +3 -0
- package/src/plugins/defaults/memory/jobs-worker.ts +1 -2
- package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +53 -9
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +4 -7
- package/src/plugins/defaults/memory/src/memory-worker-routes.ts +1 -1
- package/src/plugins/defaults/memory/v1/job-handlers/index-maintenance.ts +15 -1
- package/src/plugins/defaults/memory/worker-control.ts +1 -2
- package/src/providers/content-block-schema.ts +1 -0
- package/src/providers/fireworks/client.ts +9 -1
- package/src/providers/gemini/client.ts +22 -15
- package/src/providers/media-resolve.ts +24 -10
- package/src/providers/model-catalog.ts +91 -0
- package/src/providers/openai/chat-completions-provider.ts +44 -5
- package/src/providers/retry.ts +16 -11
- package/src/providers/types.ts +56 -0
- package/src/routes/__tests__/control.test.ts +4 -3
- package/src/routes/control.ts +1 -1
- package/src/routes/route-host-client.ts +1 -1
- package/src/runtime/AGENTS.md +30 -12
- package/src/runtime/__tests__/agent-wake.test.ts +71 -6
- package/src/runtime/__tests__/guardian-form-registry.test.ts +242 -0
- package/src/runtime/access-request-helper.ts +15 -7
- package/src/runtime/agent-wake.ts +16 -4
- package/src/runtime/channel-approval-types.ts +8 -5
- package/src/runtime/channel-invite-transport.ts +2 -0
- package/src/runtime/channel-invite-transports/discord.ts +27 -0
- package/src/runtime/channel-readiness-service.ts +4 -4
- package/src/runtime/channel-reply-delivery.ts +72 -28
- package/src/runtime/guardian-action-service.ts +9 -5
- package/src/runtime/guardian-form-registry.ts +256 -0
- package/src/runtime/guardian-reply-router.ts +33 -14
- package/src/runtime/invite-instruction-generator.ts +14 -2
- package/src/runtime/migrations/vbundle-metadata-merge.ts +4 -7
- package/src/runtime/no-response.ts +13 -74
- package/src/runtime/routes/__tests__/acp-routes.test.ts +527 -0
- package/src/runtime/routes/__tests__/app-management-shared-apps.test.ts +74 -0
- package/src/runtime/routes/__tests__/contact-form-kinds.test.ts +22 -0
- package/src/runtime/routes/__tests__/contact-record-prompt-route.test.ts +303 -0
- package/src/runtime/routes/__tests__/monitoring-routes.test.ts +3 -4
- package/src/runtime/routes/__tests__/pending-interactions-route.test.ts +6 -0
- package/src/runtime/routes/__tests__/route-host-worker-routes.test.ts +3 -4
- package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +5 -6
- package/src/runtime/routes/acp-routes-list.test.ts +58 -0
- package/src/runtime/routes/acp-routes.ts +253 -47
- package/src/runtime/routes/app-management-routes.ts +80 -47
- package/src/runtime/routes/approval-routes.ts +9 -0
- package/src/runtime/routes/archive-utils.ts +6 -1
- package/src/runtime/routes/avatar-routes.ts +1 -1
- package/src/runtime/routes/channel-route-shared.ts +18 -20
- package/src/runtime/routes/contact-prompt-routes.ts +271 -105
- package/src/runtime/routes/conversation-routes.ts +41 -32
- package/src/runtime/routes/credential-prompt-routes.ts +10 -1
- package/src/runtime/routes/debug-bash-routes.ts +1 -0
- package/src/runtime/routes/guardian-expiry-sweep.ts +89 -31
- package/src/runtime/routes/guardian-form-routes.ts +115 -0
- package/src/runtime/routes/inbound-message-handler.ts +82 -29
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +16 -3
- package/src/runtime/routes/inbound-stages/edit-intercept.ts +6 -0
- package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +6 -0
- package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +6 -1
- package/src/runtime/routes/inbound-stages/reaction-intercept.test.ts +50 -17
- package/src/runtime/routes/inbound-stages/reaction-intercept.ts +97 -94
- package/src/runtime/routes/index.ts +2 -0
- package/src/runtime/routes/integrations/slack/channel.ts +39 -18
- package/src/runtime/routes/migration-routes.ts +1 -3
- package/src/runtime/routes/monitoring-routes.ts +0 -3
- package/src/runtime/routes/oauth-commands-routes.ts +18 -5
- package/src/runtime/routes/route-host-worker-routes.ts +1 -1
- package/src/runtime/routes/schedule-worker-routes.ts +1 -1
- package/src/runtime/tool-grant-request-helper.ts +4 -0
- package/src/schedule/run-script.ts +1 -0
- package/src/schedule/scheduler.ts +1 -1
- package/src/schedule/worker-control.ts +2 -2
- package/src/security/oauth2.ts +2 -11
- package/src/security/secure-keys.ts +55 -8
- package/src/skills/catalog-install.ts +7 -4
- package/src/skills/clawhub.ts +1 -0
- package/src/skills/inline-command-runner.ts +1 -0
- package/src/stt/__tests__/room-noise-floor.test.ts +108 -0
- package/src/stt/room-noise-floor.ts +140 -0
- package/src/subagent/notify.ts +49 -3
- package/src/tools/__tests__/tool-input-schemas.test.ts +2 -0
- package/src/tools/acp/spawn.ts +2 -2
- package/src/tools/browser/__tests__/browser-status.test.ts +9 -0
- package/src/tools/browser/browser-execution.ts +10 -43
- package/src/tools/browser/browser-manager.ts +1 -0
- package/src/tools/browser/browser-status-constants.ts +6 -5
- package/src/tools/browser/runtime-check.ts +2 -0
- package/src/tools/channel/react-to-message.test.ts +193 -0
- package/src/tools/channel/react-to-message.ts +159 -0
- package/src/tools/credentials/metadata-store.ts +115 -19
- package/src/tools/credentials/store.ts +0 -2
- package/src/tools/filesystem/read.ts +2 -2
- package/src/tools/host-filesystem/read.ts +2 -2
- package/src/tools/host-terminal/host-shell.test.ts +24 -0
- package/src/tools/host-terminal/host-shell.ts +11 -38
- package/src/tools/shared/filesystem/file-ops-service.ts +10 -7
- package/src/tools/shared/shell-output.test.ts +104 -0
- package/src/tools/shared/shell-output.ts +112 -39
- package/src/tools/skills/sandbox-runner.ts +1 -0
- package/src/tools/system/request-permission.test.ts +34 -0
- package/src/tools/system/request-permission.ts +29 -5
- package/src/tools/terminal/shell.test.ts +63 -0
- package/src/tools/terminal/shell.ts +12 -44
- package/src/tools/tool-input-schemas.ts +2 -0
- package/src/tools/tool-manifest.ts +2 -0
- package/src/usage/attribution.ts +12 -4
- package/src/util/__tests__/worker-ownership.test.ts +77 -0
- package/src/util/__tests__/worker-process-command.test.ts +246 -1
- package/src/util/bun-runtime.ts +44 -13
- package/src/util/bundled-asset.ts +9 -1
- package/src/util/disk-usage.ts +1 -0
- package/src/util/file-use.ts +4 -1
- package/src/util/guardian-form-timeouts.ts +50 -0
- package/src/util/image-conversion.ts +1 -0
- package/src/util/oauth-request-body.test.ts +59 -0
- package/src/util/oauth-request-body.ts +56 -5
- package/src/util/platform.ts +69 -73
- package/src/util/process-table.ts +16 -5
- package/src/util/read-stdin.ts +5 -0
- package/src/util/spawn.ts +1 -0
- package/src/util/sqlite3-runtime.ts +25 -5
- package/src/util/worker-ownership.ts +193 -0
- package/src/util/worker-process.ts +375 -37
- package/src/workspace/git-service.ts +4 -12
- package/src/workspace/migrations/010-app-dir-rename.ts +1 -0
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.8
|
|
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
|
|
@@ -467,6 +467,8 @@ paths:
|
|
|
467
467
|
type: string
|
|
468
468
|
parentToolUseId:
|
|
469
469
|
type: string
|
|
470
|
+
authErrorCode:
|
|
471
|
+
type: string
|
|
470
472
|
usedTokens:
|
|
471
473
|
type: number
|
|
472
474
|
contextSize:
|
|
@@ -4198,6 +4200,22 @@ paths:
|
|
|
4198
4200
|
- delete
|
|
4199
4201
|
- reaction
|
|
4200
4202
|
- button
|
|
4203
|
+
reaction:
|
|
4204
|
+
type: object
|
|
4205
|
+
properties:
|
|
4206
|
+
op:
|
|
4207
|
+
type: string
|
|
4208
|
+
enum:
|
|
4209
|
+
- added
|
|
4210
|
+
- removed
|
|
4211
|
+
emoji:
|
|
4212
|
+
type: string
|
|
4213
|
+
targetMessageId:
|
|
4214
|
+
type: string
|
|
4215
|
+
required:
|
|
4216
|
+
- op
|
|
4217
|
+
- emoji
|
|
4218
|
+
- targetMessageId
|
|
4201
4219
|
isEdit:
|
|
4202
4220
|
type: boolean
|
|
4203
4221
|
callbackQueryId:
|
|
@@ -4366,6 +4384,8 @@ paths:
|
|
|
4366
4384
|
required:
|
|
4367
4385
|
- trustClass
|
|
4368
4386
|
- canonicalSenderId
|
|
4387
|
+
actorUnattributed:
|
|
4388
|
+
type: boolean
|
|
4369
4389
|
emailProvider:
|
|
4370
4390
|
type: string
|
|
4371
4391
|
emailSubject:
|
|
@@ -5539,6 +5559,49 @@ paths:
|
|
|
5539
5559
|
- runs
|
|
5540
5560
|
- nextCursor
|
|
5541
5561
|
additionalProperties: false
|
|
5562
|
+
/v1/contact_prompt_claim:
|
|
5563
|
+
post:
|
|
5564
|
+
operationId: contact_prompt_claim_post
|
|
5565
|
+
summary: Claim a pending contact form for one submission
|
|
5566
|
+
description:
|
|
5567
|
+
Marks a pending form as answered so a second client submitting the same form writes nothing. Returns
|
|
5568
|
+
claimed=false with reason 'already_claimed' when somebody got there first, or 'unknown' when no such form is
|
|
5569
|
+
pending. A granted claim carries the window its write has to report back in.
|
|
5570
|
+
tags:
|
|
5571
|
+
- contacts
|
|
5572
|
+
requestBody:
|
|
5573
|
+
required: true
|
|
5574
|
+
content:
|
|
5575
|
+
application/json:
|
|
5576
|
+
schema:
|
|
5577
|
+
type: object
|
|
5578
|
+
properties:
|
|
5579
|
+
requestId:
|
|
5580
|
+
type: string
|
|
5581
|
+
description: The pending contact_request id.
|
|
5582
|
+
required:
|
|
5583
|
+
- requestId
|
|
5584
|
+
responses:
|
|
5585
|
+
"200":
|
|
5586
|
+
description: Successful response
|
|
5587
|
+
content:
|
|
5588
|
+
application/json:
|
|
5589
|
+
schema:
|
|
5590
|
+
type: object
|
|
5591
|
+
properties:
|
|
5592
|
+
claimed:
|
|
5593
|
+
type: boolean
|
|
5594
|
+
reason:
|
|
5595
|
+
type: string
|
|
5596
|
+
enum:
|
|
5597
|
+
- already_claimed
|
|
5598
|
+
- unknown
|
|
5599
|
+
settleMs:
|
|
5600
|
+
description: How long a granted claim has to report its write back before the waiting call gives up.
|
|
5601
|
+
type: number
|
|
5602
|
+
required:
|
|
5603
|
+
- claimed
|
|
5604
|
+
additionalProperties: false
|
|
5542
5605
|
/v1/contact_prompt_flags:
|
|
5543
5606
|
post:
|
|
5544
5607
|
operationId: contact_prompt_flags_post
|
|
@@ -6462,7 +6525,7 @@ paths:
|
|
|
6462
6525
|
summary: Prompt user to register a contact channel
|
|
6463
6526
|
description:
|
|
6464
6527
|
Broadcasts a contact_request to connected clients, waits for the user to submit an address via the gateway.
|
|
6465
|
-
The gateway owns the contact write and
|
|
6528
|
+
The gateway owns the contact write and reports it back via resolve_contact_prompt.
|
|
6466
6529
|
tags:
|
|
6467
6530
|
- contacts
|
|
6468
6531
|
requestBody:
|
|
@@ -6496,8 +6559,17 @@ paths:
|
|
|
6496
6559
|
- trusted-contact
|
|
6497
6560
|
- unknown
|
|
6498
6561
|
verify:
|
|
6499
|
-
description:
|
|
6562
|
+
description:
|
|
6563
|
+
Pre-check the form's 'mark verified' box. The guardian's answer on submit decides the attest, so an
|
|
6564
|
+
unchecked box leaves the channel unverified.
|
|
6500
6565
|
type: boolean
|
|
6566
|
+
timeoutMs:
|
|
6567
|
+
description:
|
|
6568
|
+
How long to hold the form open (ms). The caller waits slightly longer than this, so the form closing is
|
|
6569
|
+
what ends the wait. Defaults to 300000.
|
|
6570
|
+
type: integer
|
|
6571
|
+
exclusiveMinimum: 0
|
|
6572
|
+
maximum: 3600000
|
|
6501
6573
|
responses:
|
|
6502
6574
|
"200":
|
|
6503
6575
|
description: Successful response
|
|
@@ -6518,6 +6590,106 @@ paths:
|
|
|
6518
6590
|
type: string
|
|
6519
6591
|
address:
|
|
6520
6592
|
type: string
|
|
6593
|
+
verified:
|
|
6594
|
+
type: boolean
|
|
6595
|
+
required:
|
|
6596
|
+
- ok
|
|
6597
|
+
additionalProperties: false
|
|
6598
|
+
/v1/contacts/record-prompt:
|
|
6599
|
+
post:
|
|
6600
|
+
operationId: contacts_recordprompt_post
|
|
6601
|
+
summary: Ask the guardian to confirm a contact record write
|
|
6602
|
+
description:
|
|
6603
|
+
Broadcasts a contact_record_request to connected clients and waits for the guardian to submit the form. The
|
|
6604
|
+
gateway owns the write and reports it back via resolve_contact_prompt. Nothing is written if nobody answers.
|
|
6605
|
+
tags:
|
|
6606
|
+
- contacts
|
|
6607
|
+
requestBody:
|
|
6608
|
+
required: true
|
|
6609
|
+
content:
|
|
6610
|
+
application/json:
|
|
6611
|
+
schema:
|
|
6612
|
+
type: object
|
|
6613
|
+
properties:
|
|
6614
|
+
operation:
|
|
6615
|
+
type: string
|
|
6616
|
+
enum:
|
|
6617
|
+
- create
|
|
6618
|
+
- update
|
|
6619
|
+
- delete
|
|
6620
|
+
description: Which record write the guardian is being asked to confirm.
|
|
6621
|
+
contactId:
|
|
6622
|
+
description: Target contact. Required for update and delete.
|
|
6623
|
+
type: string
|
|
6624
|
+
currentDisplayName:
|
|
6625
|
+
description:
|
|
6626
|
+
The target's current name, resolved by the caller, so the form can show what is changing. Gateway-owned
|
|
6627
|
+
facts are not read here.
|
|
6628
|
+
type: string
|
|
6629
|
+
currentNotes:
|
|
6630
|
+
description:
|
|
6631
|
+
The target's current notes, resolved by the caller. The form submits a field only when it differs from what
|
|
6632
|
+
is stored.
|
|
6633
|
+
type: string
|
|
6634
|
+
channels:
|
|
6635
|
+
description:
|
|
6636
|
+
The target's channels, resolved by the caller, so a delete confirmation can identify the contact and show
|
|
6637
|
+
what access is about to be lost.
|
|
6638
|
+
type: array
|
|
6639
|
+
items:
|
|
6640
|
+
type: object
|
|
6641
|
+
properties:
|
|
6642
|
+
type:
|
|
6643
|
+
type: string
|
|
6644
|
+
address:
|
|
6645
|
+
type: string
|
|
6646
|
+
required:
|
|
6647
|
+
- type
|
|
6648
|
+
- address
|
|
6649
|
+
displayName:
|
|
6650
|
+
description: Proposed name, prefilled into the form. The guardian can edit it.
|
|
6651
|
+
type: string
|
|
6652
|
+
notes:
|
|
6653
|
+
description: Proposed notes, prefilled into the form. The guardian can edit them.
|
|
6654
|
+
type: string
|
|
6655
|
+
notesProposed:
|
|
6656
|
+
description:
|
|
6657
|
+
Whether the caller asked for these notes explicitly, so the form submits them even when they match what is
|
|
6658
|
+
stored.
|
|
6659
|
+
type: boolean
|
|
6660
|
+
label:
|
|
6661
|
+
description: Display label shown in the form.
|
|
6662
|
+
type: string
|
|
6663
|
+
description:
|
|
6664
|
+
description: Longer description shown in the form.
|
|
6665
|
+
type: string
|
|
6666
|
+
timeoutMs:
|
|
6667
|
+
description:
|
|
6668
|
+
How long to hold the form open (ms). The caller waits slightly longer than this, so the form closing is
|
|
6669
|
+
what ends the wait. Defaults to 300000.
|
|
6670
|
+
type: integer
|
|
6671
|
+
exclusiveMinimum: 0
|
|
6672
|
+
maximum: 3600000
|
|
6673
|
+
required:
|
|
6674
|
+
- operation
|
|
6675
|
+
responses:
|
|
6676
|
+
"200":
|
|
6677
|
+
description: Successful response
|
|
6678
|
+
content:
|
|
6679
|
+
application/json:
|
|
6680
|
+
schema:
|
|
6681
|
+
type: object
|
|
6682
|
+
properties:
|
|
6683
|
+
ok:
|
|
6684
|
+
type: boolean
|
|
6685
|
+
error:
|
|
6686
|
+
type: string
|
|
6687
|
+
contactId:
|
|
6688
|
+
type: string
|
|
6689
|
+
notesSaved:
|
|
6690
|
+
type: boolean
|
|
6691
|
+
nothingWritten:
|
|
6692
|
+
type: boolean
|
|
6521
6693
|
required:
|
|
6522
6694
|
- ok
|
|
6523
6695
|
additionalProperties: false
|
|
@@ -12634,6 +12806,56 @@ paths:
|
|
|
12634
12806
|
additionalProperties: false
|
|
12635
12807
|
"403":
|
|
12636
12808
|
description: Cannot reorder system groups
|
|
12809
|
+
/v1/guardian_form_claim:
|
|
12810
|
+
post:
|
|
12811
|
+
operationId: guardian_form_claim_post
|
|
12812
|
+
summary: Claim a pending guardian form for one submission
|
|
12813
|
+
description:
|
|
12814
|
+
Marks a pending form as answered so a second client submitting the same form writes nothing. Returns
|
|
12815
|
+
claimed=false with reason 'already_claimed' when somebody got there first, 'unknown' when no such form is
|
|
12816
|
+
pending, or 'wrong_kind' when the id belongs to a different form than the caller named. A granted claim carries
|
|
12817
|
+
the window its write has to report back in.
|
|
12818
|
+
tags:
|
|
12819
|
+
- guardian-forms
|
|
12820
|
+
requestBody:
|
|
12821
|
+
required: true
|
|
12822
|
+
content:
|
|
12823
|
+
application/json:
|
|
12824
|
+
schema:
|
|
12825
|
+
type: object
|
|
12826
|
+
properties:
|
|
12827
|
+
requestId:
|
|
12828
|
+
type: string
|
|
12829
|
+
description: The pending form's id.
|
|
12830
|
+
kind:
|
|
12831
|
+
description:
|
|
12832
|
+
The form the caller believes it is writing for. Rejected when it is not what the id is holding. Omitted by
|
|
12833
|
+
callers that predate the check.
|
|
12834
|
+
type: string
|
|
12835
|
+
required:
|
|
12836
|
+
- requestId
|
|
12837
|
+
responses:
|
|
12838
|
+
"200":
|
|
12839
|
+
description: Successful response
|
|
12840
|
+
content:
|
|
12841
|
+
application/json:
|
|
12842
|
+
schema:
|
|
12843
|
+
type: object
|
|
12844
|
+
properties:
|
|
12845
|
+
claimed:
|
|
12846
|
+
type: boolean
|
|
12847
|
+
reason:
|
|
12848
|
+
type: string
|
|
12849
|
+
enum:
|
|
12850
|
+
- already_claimed
|
|
12851
|
+
- unknown
|
|
12852
|
+
- wrong_kind
|
|
12853
|
+
settleMs:
|
|
12854
|
+
description: How long a granted claim has to report its write back before the waiting call gives up.
|
|
12855
|
+
type: number
|
|
12856
|
+
required:
|
|
12857
|
+
- claimed
|
|
12858
|
+
additionalProperties: false
|
|
12637
12859
|
/v1/guardian-actions/decision:
|
|
12638
12860
|
post:
|
|
12639
12861
|
operationId: guardianactions_decision_post
|
|
@@ -13540,6 +13762,54 @@ paths:
|
|
|
13540
13762
|
required:
|
|
13541
13763
|
- kind
|
|
13542
13764
|
additionalProperties: false
|
|
13765
|
+
guardianRequest:
|
|
13766
|
+
type: object
|
|
13767
|
+
properties:
|
|
13768
|
+
requestId:
|
|
13769
|
+
type: string
|
|
13770
|
+
kind:
|
|
13771
|
+
type: string
|
|
13772
|
+
intent:
|
|
13773
|
+
type: string
|
|
13774
|
+
enum:
|
|
13775
|
+
- approval
|
|
13776
|
+
- question
|
|
13777
|
+
status:
|
|
13778
|
+
type: string
|
|
13779
|
+
enum:
|
|
13780
|
+
- pending
|
|
13781
|
+
- approved
|
|
13782
|
+
- denied
|
|
13783
|
+
- expired
|
|
13784
|
+
- cancelled
|
|
13785
|
+
requesterLabel:
|
|
13786
|
+
type: string
|
|
13787
|
+
toolName:
|
|
13788
|
+
type: string
|
|
13789
|
+
sourceChannel:
|
|
13790
|
+
type: string
|
|
13791
|
+
sourceContextLabel:
|
|
13792
|
+
type: string
|
|
13793
|
+
sourceUrl:
|
|
13794
|
+
type: string
|
|
13795
|
+
slackCardUrl:
|
|
13796
|
+
type: string
|
|
13797
|
+
slackCardAppUrl:
|
|
13798
|
+
type: string
|
|
13799
|
+
decidedAction:
|
|
13800
|
+
type: string
|
|
13801
|
+
decidedByLabel:
|
|
13802
|
+
type: string
|
|
13803
|
+
decidedAt:
|
|
13804
|
+
type: string
|
|
13805
|
+
terminalReason:
|
|
13806
|
+
type: string
|
|
13807
|
+
required:
|
|
13808
|
+
- requestId
|
|
13809
|
+
- kind
|
|
13810
|
+
- intent
|
|
13811
|
+
- status
|
|
13812
|
+
additionalProperties: false
|
|
13543
13813
|
category:
|
|
13544
13814
|
type: string
|
|
13545
13815
|
enum:
|
|
@@ -13733,6 +14003,54 @@ paths:
|
|
|
13733
14003
|
required:
|
|
13734
14004
|
- kind
|
|
13735
14005
|
additionalProperties: false
|
|
14006
|
+
guardianRequest:
|
|
14007
|
+
type: object
|
|
14008
|
+
properties:
|
|
14009
|
+
requestId:
|
|
14010
|
+
type: string
|
|
14011
|
+
kind:
|
|
14012
|
+
type: string
|
|
14013
|
+
intent:
|
|
14014
|
+
type: string
|
|
14015
|
+
enum:
|
|
14016
|
+
- approval
|
|
14017
|
+
- question
|
|
14018
|
+
status:
|
|
14019
|
+
type: string
|
|
14020
|
+
enum:
|
|
14021
|
+
- pending
|
|
14022
|
+
- approved
|
|
14023
|
+
- denied
|
|
14024
|
+
- expired
|
|
14025
|
+
- cancelled
|
|
14026
|
+
requesterLabel:
|
|
14027
|
+
type: string
|
|
14028
|
+
toolName:
|
|
14029
|
+
type: string
|
|
14030
|
+
sourceChannel:
|
|
14031
|
+
type: string
|
|
14032
|
+
sourceContextLabel:
|
|
14033
|
+
type: string
|
|
14034
|
+
sourceUrl:
|
|
14035
|
+
type: string
|
|
14036
|
+
slackCardUrl:
|
|
14037
|
+
type: string
|
|
14038
|
+
slackCardAppUrl:
|
|
14039
|
+
type: string
|
|
14040
|
+
decidedAction:
|
|
14041
|
+
type: string
|
|
14042
|
+
decidedByLabel:
|
|
14043
|
+
type: string
|
|
14044
|
+
decidedAt:
|
|
14045
|
+
type: string
|
|
14046
|
+
terminalReason:
|
|
14047
|
+
type: string
|
|
14048
|
+
required:
|
|
14049
|
+
- requestId
|
|
14050
|
+
- kind
|
|
14051
|
+
- intent
|
|
14052
|
+
- status
|
|
14053
|
+
additionalProperties: false
|
|
13736
14054
|
category:
|
|
13737
14055
|
type: string
|
|
13738
14056
|
enum:
|
|
@@ -14020,6 +14338,54 @@ paths:
|
|
|
14020
14338
|
required:
|
|
14021
14339
|
- kind
|
|
14022
14340
|
additionalProperties: false
|
|
14341
|
+
guardianRequest:
|
|
14342
|
+
type: object
|
|
14343
|
+
properties:
|
|
14344
|
+
requestId:
|
|
14345
|
+
type: string
|
|
14346
|
+
kind:
|
|
14347
|
+
type: string
|
|
14348
|
+
intent:
|
|
14349
|
+
type: string
|
|
14350
|
+
enum:
|
|
14351
|
+
- approval
|
|
14352
|
+
- question
|
|
14353
|
+
status:
|
|
14354
|
+
type: string
|
|
14355
|
+
enum:
|
|
14356
|
+
- pending
|
|
14357
|
+
- approved
|
|
14358
|
+
- denied
|
|
14359
|
+
- expired
|
|
14360
|
+
- cancelled
|
|
14361
|
+
requesterLabel:
|
|
14362
|
+
type: string
|
|
14363
|
+
toolName:
|
|
14364
|
+
type: string
|
|
14365
|
+
sourceChannel:
|
|
14366
|
+
type: string
|
|
14367
|
+
sourceContextLabel:
|
|
14368
|
+
type: string
|
|
14369
|
+
sourceUrl:
|
|
14370
|
+
type: string
|
|
14371
|
+
slackCardUrl:
|
|
14372
|
+
type: string
|
|
14373
|
+
slackCardAppUrl:
|
|
14374
|
+
type: string
|
|
14375
|
+
decidedAction:
|
|
14376
|
+
type: string
|
|
14377
|
+
decidedByLabel:
|
|
14378
|
+
type: string
|
|
14379
|
+
decidedAt:
|
|
14380
|
+
type: string
|
|
14381
|
+
terminalReason:
|
|
14382
|
+
type: string
|
|
14383
|
+
required:
|
|
14384
|
+
- requestId
|
|
14385
|
+
- kind
|
|
14386
|
+
- intent
|
|
14387
|
+
- status
|
|
14388
|
+
additionalProperties: false
|
|
14023
14389
|
category:
|
|
14024
14390
|
type: string
|
|
14025
14391
|
enum:
|
|
@@ -16233,14 +16599,14 @@ paths:
|
|
|
16233
16599
|
type: object
|
|
16234
16600
|
properties:
|
|
16235
16601
|
botToken:
|
|
16236
|
-
type: string
|
|
16237
16602
|
description: Slack bot token
|
|
16238
|
-
appToken:
|
|
16239
16603
|
type: string
|
|
16604
|
+
appToken:
|
|
16240
16605
|
description: Slack app-level token
|
|
16241
|
-
|
|
16242
|
-
|
|
16243
|
-
|
|
16606
|
+
type: string
|
|
16607
|
+
userToken:
|
|
16608
|
+
description: Slack user token, for reading channels the bot is not in
|
|
16609
|
+
type: string
|
|
16244
16610
|
responses:
|
|
16245
16611
|
"200":
|
|
16246
16612
|
description: Successful response
|
|
@@ -20608,6 +20974,29 @@ paths:
|
|
|
20608
20974
|
additionalProperties: false
|
|
20609
20975
|
systemCard:
|
|
20610
20976
|
type: boolean
|
|
20977
|
+
noResponse:
|
|
20978
|
+
type: boolean
|
|
20979
|
+
reaction:
|
|
20980
|
+
type: object
|
|
20981
|
+
properties:
|
|
20982
|
+
emoji:
|
|
20983
|
+
type: string
|
|
20984
|
+
op:
|
|
20985
|
+
type: string
|
|
20986
|
+
enum:
|
|
20987
|
+
- added
|
|
20988
|
+
- removed
|
|
20989
|
+
targetMessageId:
|
|
20990
|
+
type: string
|
|
20991
|
+
actorDisplayName:
|
|
20992
|
+
type: string
|
|
20993
|
+
selfAuthored:
|
|
20994
|
+
type: boolean
|
|
20995
|
+
required:
|
|
20996
|
+
- emoji
|
|
20997
|
+
- op
|
|
20998
|
+
- targetMessageId
|
|
20999
|
+
additionalProperties: false
|
|
20611
21000
|
providerError:
|
|
20612
21001
|
type: object
|
|
20613
21002
|
properties:
|
|
@@ -22586,6 +22975,54 @@ paths:
|
|
|
22586
22975
|
required:
|
|
22587
22976
|
- kind
|
|
22588
22977
|
additionalProperties: false
|
|
22978
|
+
guardianRequest:
|
|
22979
|
+
type: object
|
|
22980
|
+
properties:
|
|
22981
|
+
requestId:
|
|
22982
|
+
type: string
|
|
22983
|
+
kind:
|
|
22984
|
+
type: string
|
|
22985
|
+
intent:
|
|
22986
|
+
type: string
|
|
22987
|
+
enum:
|
|
22988
|
+
- approval
|
|
22989
|
+
- question
|
|
22990
|
+
status:
|
|
22991
|
+
type: string
|
|
22992
|
+
enum:
|
|
22993
|
+
- pending
|
|
22994
|
+
- approved
|
|
22995
|
+
- denied
|
|
22996
|
+
- expired
|
|
22997
|
+
- cancelled
|
|
22998
|
+
requesterLabel:
|
|
22999
|
+
type: string
|
|
23000
|
+
toolName:
|
|
23001
|
+
type: string
|
|
23002
|
+
sourceChannel:
|
|
23003
|
+
type: string
|
|
23004
|
+
sourceContextLabel:
|
|
23005
|
+
type: string
|
|
23006
|
+
sourceUrl:
|
|
23007
|
+
type: string
|
|
23008
|
+
slackCardUrl:
|
|
23009
|
+
type: string
|
|
23010
|
+
slackCardAppUrl:
|
|
23011
|
+
type: string
|
|
23012
|
+
decidedAction:
|
|
23013
|
+
type: string
|
|
23014
|
+
decidedByLabel:
|
|
23015
|
+
type: string
|
|
23016
|
+
decidedAt:
|
|
23017
|
+
type: string
|
|
23018
|
+
terminalReason:
|
|
23019
|
+
type: string
|
|
23020
|
+
required:
|
|
23021
|
+
- requestId
|
|
23022
|
+
- kind
|
|
23023
|
+
- intent
|
|
23024
|
+
- status
|
|
23025
|
+
additionalProperties: false
|
|
22589
23026
|
category:
|
|
22590
23027
|
type: string
|
|
22591
23028
|
enum:
|
|
@@ -26006,12 +26443,47 @@ paths:
|
|
|
26006
26443
|
post:
|
|
26007
26444
|
operationId: resolve_contact_prompt_post
|
|
26008
26445
|
summary: "Gateway callback: resolve a pending contact prompt"
|
|
26009
|
-
description: Called by the gateway after it writes the contact and channel. Unblocks the waiting contacts/prompt
|
|
26446
|
+
description: Called by the gateway after it writes the contact and channel. Unblocks the waiting contacts/prompt call.
|
|
26010
26447
|
tags:
|
|
26011
26448
|
- contacts
|
|
26012
26449
|
responses:
|
|
26013
26450
|
"200":
|
|
26014
26451
|
description: Successful response
|
|
26452
|
+
/v1/resolve_guardian_form:
|
|
26453
|
+
post:
|
|
26454
|
+
operationId: resolve_guardian_form_post
|
|
26455
|
+
summary: Report a guardian form's outcome back to the waiting command
|
|
26456
|
+
description:
|
|
26457
|
+
Called by the writer once it has committed (or failed). Fields other than requestId and error are passed
|
|
26458
|
+
through to the parked caller untouched; an error makes the outcome a failure.
|
|
26459
|
+
tags:
|
|
26460
|
+
- guardian-forms
|
|
26461
|
+
requestBody:
|
|
26462
|
+
required: true
|
|
26463
|
+
content:
|
|
26464
|
+
application/json:
|
|
26465
|
+
schema:
|
|
26466
|
+
type: object
|
|
26467
|
+
properties:
|
|
26468
|
+
requestId:
|
|
26469
|
+
type: string
|
|
26470
|
+
description: The pending form's id.
|
|
26471
|
+
required:
|
|
26472
|
+
- requestId
|
|
26473
|
+
additionalProperties: {}
|
|
26474
|
+
responses:
|
|
26475
|
+
"200":
|
|
26476
|
+
description: Successful response
|
|
26477
|
+
content:
|
|
26478
|
+
application/json:
|
|
26479
|
+
schema:
|
|
26480
|
+
type: object
|
|
26481
|
+
properties:
|
|
26482
|
+
resolved:
|
|
26483
|
+
type: boolean
|
|
26484
|
+
required:
|
|
26485
|
+
- resolved
|
|
26486
|
+
additionalProperties: false
|
|
26015
26487
|
/v1/resource-pressure/status:
|
|
26016
26488
|
get:
|
|
26017
26489
|
operationId: resourcepressure_status_get
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vellumai/assistant",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.8-staging.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"@qdrant/js-client-rest": "1.17.0",
|
|
44
44
|
"@resvg/resvg-js": "2.6.2",
|
|
45
45
|
"@slack/types": "2.22.0",
|
|
46
|
+
"@vellumai/avatar-catalog": "file:../packages/avatar-catalog",
|
|
46
47
|
"@vellumai/avatar-manifest": "file:../packages/avatar-manifest",
|
|
47
48
|
"@vellumai/ces-client": "file:../packages/ces-client",
|
|
48
49
|
"@vellumai/credential-storage": "file:../packages/credential-storage",
|
|
@@ -87,6 +88,7 @@
|
|
|
87
88
|
"node": ">=20.12.0"
|
|
88
89
|
},
|
|
89
90
|
"bundledDependencies": [
|
|
91
|
+
"@vellumai/avatar-catalog",
|
|
90
92
|
"@vellumai/avatar-manifest",
|
|
91
93
|
"@vellumai/ces-client",
|
|
92
94
|
"@vellumai/credential-storage",
|
|
@@ -74,6 +74,9 @@ function projectModel(model: CatalogModel): Record<string, unknown> {
|
|
|
74
74
|
if (model.adaptiveThinkingOnly !== undefined) {
|
|
75
75
|
projected.adaptiveThinkingOnly = model.adaptiveThinkingOnly;
|
|
76
76
|
}
|
|
77
|
+
if (model.thinkingFloor !== undefined) {
|
|
78
|
+
projected.thinkingFloor = model.thinkingFloor;
|
|
79
|
+
}
|
|
77
80
|
if (model.supportsCaching !== undefined) {
|
|
78
81
|
projected.supportsCaching = model.supportsCaching;
|
|
79
82
|
}
|
|
@@ -175,6 +175,22 @@ describe("AgentLoop — call-site precedence", () => {
|
|
|
175
175
|
|
|
176
176
|
test("call-site thinking wins over conversation default when callSite is set", async () => {
|
|
177
177
|
setLlmConfig({
|
|
178
|
+
// Pinned to a model that can actually be told not to think. Without an
|
|
179
|
+
// active profile the call site resolves the shipped Balanced body, and
|
|
180
|
+
// the disabled shape asserted below only exists for models whose
|
|
181
|
+
// reasoning can be turned off: the normalizer drops a disabled thinking
|
|
182
|
+
// config for adaptive-thinking-only models (they always reason and 4xx
|
|
183
|
+
// the opt-out), so this test would assert the Balanced pin's capabilities
|
|
184
|
+
// rather than call-site precedence.
|
|
185
|
+
profiles: {
|
|
186
|
+
"test-anthropic": {
|
|
187
|
+
source: "user",
|
|
188
|
+
provider: "anthropic",
|
|
189
|
+
model: "claude-sonnet-5",
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
profileOrder: ["test-anthropic"],
|
|
193
|
+
activeProfile: "test-anthropic",
|
|
178
194
|
default: {
|
|
179
195
|
provider: "anthropic",
|
|
180
196
|
model: "claude-default",
|