@vellumai/assistant 0.12.0 → 0.12.1-dev.202609141913.5e16607
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +5 -1
- package/ARCHITECTURE.md +11 -12
- package/docs/architecture/turn-actor.md +15 -8
- package/docs/guardian-request-flow.md +16 -0
- package/openapi.yaml +292 -50
- package/package.json +1 -1
- package/scripts/smoke-desktop-window-theme.ts +186 -0
- package/src/__tests__/always-loaded-tools-guard.test.ts +18 -10
- package/src/__tests__/app-compiler.test.ts +6 -0
- package/src/__tests__/app-control-tool-schemas.test.ts +5 -2
- package/src/__tests__/app-dir-path-guard.test.ts +1 -3
- package/src/__tests__/computer-use-skill-proxy-bridge.test.ts +5 -2
- package/src/__tests__/computer-use-tools.test.ts +17 -5
- package/src/__tests__/config-schema-cmd.test.ts +2 -2
- package/src/__tests__/config-schema.test.ts +28 -29
- package/src/__tests__/config-watcher.test.ts +23 -8
- package/src/__tests__/connection-model-compat.test.ts +2 -2
- package/src/__tests__/conversation-key-store-disk-view.test.ts +1 -1
- package/src/__tests__/conversation-pairing.test.ts +26 -0
- package/src/__tests__/conversation-process-app-control-preactivation.test.ts +4 -10
- package/src/__tests__/conversation-queue.test.ts +48 -207
- package/src/__tests__/conversation-retry-discard.test.ts +54 -1
- package/src/__tests__/conversation-skill-tools.test.ts +27 -0
- package/src/__tests__/conversation-surfaces-app-control.test.ts +8 -3
- package/src/__tests__/conversation-surfaces-task-progress.test.ts +67 -0
- package/src/__tests__/conversation-title-service.test.ts +14 -10
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +3 -5
- package/src/__tests__/conversation-tool-setup-attribution.test.ts +51 -0
- package/src/__tests__/credential-record-retire.test.ts +171 -1
- package/src/__tests__/credential-routes.test.ts +212 -3
- package/src/__tests__/credential-security-invariants.test.ts +4 -2
- package/src/__tests__/cu-unified-flow.test.ts +8 -2
- package/src/__tests__/document-sync-tags.test.ts +25 -0
- package/src/__tests__/drain-kick-guard.test.ts +0 -2
- package/src/__tests__/drain-requeue-on-contention.test.ts +0 -6
- package/src/__tests__/evict-conversations-for-reload.test.ts +1 -1
- package/src/__tests__/git-porcelain.test.ts +47 -0
- package/src/__tests__/helpers/set-workspace-mcp.ts +11 -0
- package/src/__tests__/host-bash-proxy.test.ts +26 -45
- package/src/__tests__/host-browser-proxy.test.ts +6 -17
- package/src/__tests__/host-file-proxy-targeted.test.ts +23 -0
- package/src/__tests__/host-file-proxy.test.ts +11 -23
- package/src/__tests__/host-transfer-proxy-targeted.test.ts +30 -9
- package/src/__tests__/llm-catalog-parity.test.ts +25 -0
- package/src/__tests__/mcp-auth-routes.test.ts +6 -9
- package/src/__tests__/mcp-config-secret-boundary.test.ts +78 -136
- package/src/__tests__/mcp-health-check.test.ts +8 -11
- package/src/__tests__/mcp-list-plugin-servers.test.ts +8 -10
- package/src/__tests__/message-deleted-hook-dispatch.test.ts +119 -0
- package/src/__tests__/messages-after-tiebreaker.test.ts +91 -0
- package/src/__tests__/messages-read-boundary-guard.test.ts +1 -1
- package/src/__tests__/messaging-send-tool.test.ts +355 -548
- package/src/__tests__/model-intents.test.ts +3 -0
- package/src/__tests__/notification-vellum-adapter.test.ts +85 -2
- package/src/__tests__/outlook-messaging-provider.test.ts +6 -6
- package/src/__tests__/platform-callback-registration.test.ts +8 -16
- package/src/__tests__/platform-client-verify-credential.test.ts +2 -0
- package/src/__tests__/plugin-import-boundary-guard.test.ts +13 -0
- package/src/__tests__/resolve-app.test.ts +135 -0
- package/src/__tests__/script-proxy-certs.test.ts +35 -0
- package/src/__tests__/service-account-token.test.ts +247 -0
- package/src/__tests__/skill-feature-flags-integration.test.ts +1 -1
- package/src/__tests__/skill-feature-flags.test.ts +2 -2
- package/src/__tests__/source-fingerprint.test.ts +184 -0
- package/src/__tests__/subagent-tool-gate-mode.test.ts +19 -3
- package/src/__tests__/subagent-tools.test.ts +3 -2
- package/src/__tests__/telephony-tts-guard.test.ts +38 -3
- package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +4 -0
- package/src/__tests__/watch-retro-tool-availability.test.ts +8 -17
- package/src/__tests__/workspace-git-service.test.ts +26 -0
- package/src/__tests__/workspace-migration-154-repair-retired-codex-gpt-5-4-model-ids.test.ts +336 -0
- package/src/acp/__tests__/agent-process.test.ts +258 -4
- package/src/acp/__tests__/auth-required.test.ts +96 -0
- package/src/acp/__tests__/client-handler.test.ts +90 -2
- package/src/acp/__tests__/helpers/acp-model-option.ts +51 -0
- package/src/acp/__tests__/session-manager-persistence.test.ts +5 -1
- package/src/acp/__tests__/session-manager-resume.test.ts +270 -6
- package/src/acp/__tests__/session-manager-usage.test.ts +4 -2
- package/src/acp/__tests__/session-manager.test.ts +895 -4
- package/src/acp/agent-process.test.ts +4 -1
- package/src/acp/agent-process.ts +94 -9
- package/src/acp/auth-required.ts +50 -1
- package/src/acp/auto-install.test.ts +9 -7
- package/src/acp/client-handler.ts +16 -3
- package/src/acp/model-config.test.ts +166 -0
- package/src/acp/model-config.ts +138 -0
- package/src/acp/resolve-agent.test.ts +220 -6
- package/src/acp/resolve-agent.ts +88 -23
- package/src/acp/session-manager.test.ts +196 -3
- package/src/acp/session-manager.ts +441 -18
- package/src/acp/types.ts +50 -5
- package/src/api/events/acp-session-model-update.test.ts +88 -0
- package/src/api/events/acp-session-model-update.ts +46 -0
- package/src/api/events/app-files-changed.ts +4 -3
- package/src/api/events/notification-intent.ts +2 -0
- package/src/api/index.ts +6 -0
- package/src/apps/app-store.ts +1 -1
- package/src/apps/resolve-app.ts +81 -0
- package/src/apps/source-fingerprint.ts +266 -0
- package/src/bundler/app-compiler.ts +15 -0
- package/src/calls/__tests__/barge-in-guard.test.ts +81 -0
- package/src/{__tests__ → calls/__tests__}/call-controller.test.ts +503 -82
- package/src/{__tests__ → calls/__tests__}/media-stream-audio-transcode.test.ts +1 -1
- package/src/{__tests__ → calls/__tests__}/media-stream-output.test.ts +37 -8
- package/src/{__tests__ → calls/__tests__}/media-stream-parser.test.ts +1 -1
- package/src/{__tests__ → calls/__tests__}/media-stream-server-integration.test.ts +150 -57
- package/src/{__tests__ → calls/__tests__}/media-stream-stt-session.test.ts +5 -5
- package/src/{__tests__ → calls/__tests__}/media-turn-detector.test.ts +1 -1
- package/src/{live-voice → calls}/__tests__/progress-narration.test.ts +4 -4
- package/src/{live-voice → calls}/__tests__/progress-phrases.test.ts +1 -1
- package/src/calls/__tests__/voice-control-protocol.test.ts +58 -25
- package/src/calls/__tests__/voice-leg-coordinator.test.ts +229 -0
- package/src/calls/__tests__/voice-progress-cadence.test.ts +274 -0
- package/src/{__tests__/voice-session-bridge.test.ts → calls/__tests__/voice-session-bridge-turn-flow.test.ts} +20 -12
- package/src/calls/__tests__/voice-session-bridge.test.ts +37 -1
- package/src/calls/__tests__/voice-triage-escalate.test.ts +105 -0
- package/src/calls/barge-in-guard.ts +118 -0
- package/src/calls/call-constants.ts +24 -4
- package/src/calls/call-controller.ts +499 -199
- package/src/calls/call-transport.ts +16 -0
- package/src/calls/media-stream-output.ts +32 -0
- package/src/calls/media-stream-server.ts +82 -30
- package/src/calls/media-stream-stt-session.ts +15 -0
- package/src/{live-voice → calls}/progress-narration.ts +2 -2
- package/src/calls/resolve-call-tts-provider.ts +33 -2
- package/src/calls/tts-call-strategy.ts +9 -5
- package/src/calls/types.ts +2 -0
- package/src/calls/voice-control-protocol.ts +53 -21
- package/src/calls/voice-leg-coordinator.ts +189 -0
- package/src/calls/voice-progress-cadence.ts +423 -0
- package/src/calls/voice-session-bridge.ts +59 -46
- package/src/calls/voice-triage-escalate.ts +175 -56
- package/src/cli/commands/__tests__/apps.test.ts +245 -0
- package/src/cli/commands/__tests__/bash.test.ts +53 -0
- package/src/cli/commands/__tests__/roadmap.help.test.ts +19 -0
- package/src/cli/commands/apps.help.ts +67 -13
- package/src/cli/commands/apps.ts +183 -0
- package/src/cli/commands/bash.help.ts +8 -13
- package/src/cli/commands/bash.ts +7 -25
- package/src/cli/commands/channels/__tests__/send.test.ts +218 -0
- package/src/cli/commands/channels/index.help.ts +70 -2
- package/src/cli/commands/channels/index.ts +16 -3
- package/src/cli/commands/channels/send.ts +128 -0
- package/src/cli/commands/credentials.help.ts +6 -2
- package/src/cli/commands/credentials.ts +2 -2
- package/src/cli/commands/mcp.help.ts +8 -8
- package/src/cli/commands/mcp.ts +1 -1
- package/src/cli/commands/roadmap.help.ts +5 -1
- package/src/cli/commands/roadmap.ts +1 -1
- package/src/cli/lib/bundled-marketplace.json +103 -90
- package/src/config/__tests__/default-profile-catalog.test.ts +22 -0
- package/src/config/__tests__/memory-retrospective-schema.test.ts +15 -1
- package/src/config/__tests__/platform-identity.test.ts +255 -0
- package/src/config/__tests__/platform-rehydration.test.ts +99 -9
- package/src/config/acp-agent-write.ts +43 -0
- package/src/config/acp-defaults.test.ts +13 -3
- package/src/config/acp-defaults.ts +23 -6
- package/src/config/acp-schema.test.ts +81 -0
- package/src/config/acp-schema.ts +30 -2
- package/src/config/bundled-skills/acp/SKILL.md +22 -14
- package/src/config/bundled-skills/acp/TOOLS.json +5 -1
- package/src/config/bundled-skills/app-builder/SKILL.md +12 -9
- package/src/config/bundled-skills/app-builder/references/CUSTOM_ROUTES.md +1 -1
- package/src/config/bundled-skills/messaging/SKILL.md +3 -3
- package/src/config/bundled-skills/messaging/TOOLS.json +3 -3
- package/src/config/bundled-skills/messaging/tools/messaging-send.ts +67 -139
- package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +1 -1
- package/src/config/bundled-skills/schedule/SKILL.md +3 -4
- package/src/config/bundled-skills/screen-annotation/SKILL.md +8 -1
- package/src/config/bundled-skills/screen-annotation/tools/screen-annotation.test.ts +4 -1
- package/src/config/bundled-skills/skill-management/TOOLS.json +2 -2
- package/src/config/default-profile-catalog.ts +1 -1
- package/src/config/env.ts +2 -2
- package/src/config/feature-flag-registry.json +24 -12
- package/src/config/loader.ts +1 -0
- package/src/config/memory-v3-gate.test.ts +31 -0
- package/src/config/memory-v3-gate.ts +20 -16
- package/src/config/platform-identity.ts +201 -0
- package/src/config/platform-rehydration.ts +11 -27
- package/src/config/schema.ts +2 -2
- package/src/config/schemas/__tests__/live-voice.test.ts +8 -158
- package/src/config/schemas/__tests__/voice.test.ts +148 -0
- package/src/config/schemas/calls.ts +1 -28
- package/src/config/schemas/live-voice.ts +1 -173
- package/src/config/schemas/mcp.ts +1 -1
- package/src/config/schemas/memory-retrospective.ts +10 -0
- package/src/config/schemas/services.ts +8 -0
- package/src/config/schemas/skills.ts +0 -14
- package/src/config/schemas/voice.ts +150 -0
- package/src/credential-execution/process-manager.test.ts +18 -19
- package/src/daemon/__tests__/conversation-tool-setup.test.ts +66 -121
- package/src/daemon/__tests__/plugin-mcp-reconcile.test.ts +4 -1
- package/src/daemon/__tests__/skill-memory-refresh-mtime.test.ts +133 -0
- package/src/daemon/app-change-notify.ts +45 -0
- package/src/daemon/config-watcher.ts +13 -194
- package/src/daemon/conversation-process.ts +35 -64
- package/src/daemon/conversation-skill-tools.ts +13 -31
- package/src/daemon/conversation-store.ts +1 -1
- package/src/daemon/conversation-surfaces.ts +10 -8
- package/src/daemon/conversation-tool-setup.ts +37 -43
- package/src/daemon/conversation.ts +0 -3
- package/src/daemon/host-bash-proxy.ts +8 -12
- package/src/daemon/host-browser-proxy.ts +15 -1
- package/src/daemon/host-file-proxy.ts +8 -10
- package/src/daemon/host-transfer-proxy.ts +14 -18
- package/src/daemon/lifecycle.ts +0 -5
- package/src/daemon/mcp-reload-service.ts +5 -5
- package/src/daemon/message-types/sync.ts +1 -0
- package/src/daemon/orphan-reaper.ts +1 -1
- package/src/daemon/providers-setup.ts +1 -1
- package/src/daemon/shutdown-handlers.ts +1 -9
- package/src/daemon/skill-memory-refresh.ts +64 -0
- package/src/daemon/tool-side-effects.ts +7 -18
- package/src/desktop/__tests__/fake-desktop.ts +119 -0
- package/src/desktop/desktop-chrome-policy.test.ts +71 -0
- package/src/desktop/desktop-chrome-policy.ts +42 -0
- package/src/desktop/desktop-dependencies.test.ts +102 -0
- package/src/desktop/desktop-dependencies.ts +306 -0
- package/src/desktop/desktop-feature.test.ts +18 -0
- package/src/desktop/desktop-feature.ts +19 -0
- package/src/desktop/desktop-panel-config.test.ts +135 -0
- package/src/desktop/desktop-panel-config.ts +149 -0
- package/src/desktop/desktop-session-manager.test.ts +627 -0
- package/src/desktop/desktop-session-manager.ts +814 -0
- package/src/desktop/desktop-stream-bridge.test.ts +395 -0
- package/src/desktop/desktop-stream-bridge.ts +214 -0
- package/src/desktop/desktop-wallpaper.test.ts +191 -0
- package/src/desktop/desktop-wallpaper.ts +113 -0
- package/src/desktop/desktop-window-theme.ts +170 -0
- package/src/home/__tests__/feed-writer.test.ts +22 -0
- package/src/home/feed-writer.ts +11 -2
- package/src/hooks/types.ts +33 -0
- package/src/i18n/AGENTS.md +22 -0
- package/src/i18n/__tests__/i18n.test.ts +108 -0
- package/src/i18n/index.ts +16 -0
- package/src/i18n/locales.ts +93 -0
- package/src/i18n/messages.ts +61 -0
- package/src/i18n/title.ts +25 -0
- package/src/inbound/platform-callback-registration.ts +4 -5
- package/src/live-voice/__tests__/live-voice-metrics.test.ts +0 -3
- package/src/live-voice/__tests__/live-voice-progress.test.ts +15 -15
- package/src/live-voice/__tests__/live-voice-vad.test.ts +2 -2
- package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +13 -69
- package/src/live-voice/live-voice-session.ts +213 -693
- package/src/live-voice/protocol.ts +0 -2
- package/src/mcp/__tests__/effective-config.test.ts +2 -2
- package/src/mcp/__tests__/workspace-mcp-config.test.ts +135 -0
- package/src/mcp/effective-config.ts +3 -3
- package/src/mcp/mcp-header-store.ts +29 -45
- package/src/mcp/spec-schema.ts +111 -0
- package/src/mcp/startup.ts +8 -4
- package/src/mcp/workspace-mcp-config.ts +188 -0
- package/src/messaging/provider.ts +10 -3
- package/src/messaging/providers/__tests__/proactive-address.test.ts +95 -0
- package/src/messaging/providers/callback-routing.ts +18 -0
- package/src/messaging/providers/channel-transport.ts +56 -0
- package/src/messaging/providers/discord/transport.ts +17 -0
- package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +6 -17
- package/src/messaging/providers/slack/adapter.ts +7 -44
- package/src/messaging/providers/slack/transport.ts +16 -0
- package/src/messaging/providers/telegram-bot/adapter.ts +1 -48
- package/src/messaging/providers/telegram-bot/client.ts +0 -26
- package/src/messaging/providers/telegram-bot/transport.ts +20 -0
- package/src/messaging/providers/whatsapp/adapter.ts +1 -48
- package/src/messaging/providers/whatsapp/transport.ts +18 -0
- package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +8 -0
- package/src/notifications/__tests__/assistant-reply-producer.test.ts +55 -0
- package/src/notifications/__tests__/guardian-feed-projection.test.ts +158 -2
- package/src/notifications/__tests__/home-feed-side-effect.test.ts +153 -3
- package/src/notifications/__tests__/schedule-result-producer.test.ts +99 -3
- package/src/notifications/adapters/macos.ts +3 -0
- package/src/notifications/assistant-reply-producer.ts +8 -3
- package/src/notifications/conversation-pairing.ts +36 -16
- package/src/notifications/delivered-post-record.ts +11 -1
- package/src/notifications/guardian-feed-projection.ts +125 -5
- package/src/notifications/home-feed-side-effect.ts +55 -7
- package/src/notifications/schedule-result-producer.ts +66 -22
- package/src/oauth/__tests__/seed-providers-managed.test.ts +54 -0
- package/src/oauth/byo-connection.test.ts +45 -0
- package/src/oauth/byo-connection.ts +36 -6
- package/src/oauth/connection-resolver.test.ts +73 -0
- package/src/oauth/connection-resolver.ts +95 -2
- package/src/oauth/seed-providers.ts +165 -0
- package/src/outbound-proxy/certs.ts +3 -5
- package/src/permissions/checker.test.ts +11 -6
- package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
- package/src/persistence/conversation-crud.ts +71 -63
- package/src/persistence/conversation-lineage.ts +12 -4
- package/src/persistence/conversation-title-placeholders.ts +23 -0
- package/src/persistence/conversation-title-service.ts +9 -26
- package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
- package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
- package/src/persistence/message-cursor.ts +78 -0
- package/src/persistence/message-reads.ts +30 -0
- package/src/persistence/migrations/157-invite-contact-id.ts +18 -6
- package/src/persistence/migrations/__tests__/157-invite-contact-id.test.ts +149 -0
- package/src/persistence/schema/memory-core.ts +5 -0
- package/src/platform/client.test.ts +4 -2
- package/src/platform/client.ts +2 -10
- package/src/plugin-api/constants.ts +2 -0
- package/src/plugin-api/index.ts +1 -0
- package/src/plugin-api/types.ts +2 -0
- package/src/plugins/defaults/index.ts +2 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-accounting.test.ts +46 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-backfill.test.ts +118 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-preserve.test.ts +83 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +9 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +20 -10
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +219 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-sweep.test.ts +31 -0
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +63 -0
- package/src/plugins/defaults/memory/__tests__/shutdown-hook.test.ts +4 -0
- package/src/plugins/defaults/memory/graph/capability-seed.ts +4 -6
- package/src/plugins/defaults/memory/hooks/init.ts +10 -0
- package/src/plugins/defaults/memory/hooks/message-deleted.ts +21 -0
- package/src/plugins/defaults/memory/hooks/shutdown.ts +2 -0
- package/src/plugins/defaults/memory/jobs-worker.ts +13 -0
- package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +34 -60
- package/src/plugins/defaults/memory/memory-retrospective-cursor-backfill.ts +126 -0
- package/src/plugins/defaults/memory/memory-retrospective-cursor-preserve.ts +79 -0
- package/src/plugins/defaults/memory/memory-retrospective-cursor.ts +28 -0
- package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +3 -5
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +12 -3
- package/src/plugins/defaults/memory/memory-retrospective-state.ts +312 -71
- package/src/plugins/defaults/memory/memory-retrospective-sweep.ts +2 -1
- package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +5 -3
- package/src/plugins/defaults/memory/skill-md-mtime-poll.ts +9 -0
- package/src/plugins/defaults/memory/startup.ts +6 -1
- package/src/plugins/defaults/memory/substrate/__tests__/skill-content.test.ts +7 -9
- package/src/plugins/defaults/memory/substrate/skill-content.ts +2 -2
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +89 -0
- package/src/plugins/defaults/memory/worker.ts +6 -0
- package/src/plugins/mcp-servers.ts +15 -75
- package/src/providers/__tests__/connection-model-compat.test.ts +3 -3
- package/src/providers/gemini/client.ts +9 -23
- package/src/providers/gemini-thought-signature.test.ts +63 -0
- package/src/providers/gemini-thought-signature.ts +44 -0
- package/src/providers/inference/auth.ts +2 -3
- package/src/providers/inference/connection-availability.ts +27 -8
- package/src/providers/inference/resolve-auth.ts +22 -4
- package/src/providers/inference/service-account-token.ts +248 -0
- package/src/providers/model-catalog.ts +34 -0
- package/src/providers/model-intents.ts +10 -5
- package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +146 -18
- package/src/providers/openai/__tests__/chat-completions-provider-thought-signature.test.ts +613 -0
- package/src/providers/openai/__tests__/google-thought-signature.test.ts +235 -0
- package/src/providers/openai/__tests__/tool-choice-mapping.test.ts +83 -1
- package/src/providers/openai/chat-completions-provider.ts +192 -78
- package/src/providers/openai/codex-models.ts +0 -4
- package/src/providers/openai/google-thought-signature.ts +320 -0
- package/src/runtime/AGENTS.md +2 -0
- package/src/runtime/__tests__/channel-send.test.ts +443 -0
- package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +89 -0
- package/src/runtime/__tests__/live-voice-upgrade.test.ts +58 -0
- package/src/runtime/__tests__/runtime-ws-test-utils.ts +72 -0
- package/src/runtime/__tests__/watch-stream-upgrade.test.ts +59 -0
- package/src/runtime/auth/same-actor.ts +38 -3
- package/src/runtime/channel-send.ts +316 -0
- package/src/runtime/http-server.ts +160 -151
- package/src/runtime/routes/__tests__/acp-routes.test.ts +159 -4
- package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +205 -0
- package/src/runtime/routes/__tests__/channel-send-routes.test.ts +127 -0
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +108 -1
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +2 -2
- package/src/runtime/routes/__tests__/dictation-cleanup-guard.test.ts +107 -0
- package/src/runtime/routes/__tests__/mcp-add-default-risk.test.ts +16 -12
- package/src/runtime/routes/acp-routes.test.ts +15 -0
- package/src/runtime/routes/acp-routes.ts +72 -9
- package/src/runtime/routes/app-management-routes.ts +73 -0
- package/src/runtime/routes/app-routes.ts +1 -1
- package/src/runtime/routes/channel-send-routes.ts +85 -0
- package/src/runtime/routes/conversation-list-routes.ts +14 -3
- package/src/runtime/routes/conversation-query-routes.ts +40 -0
- package/src/runtime/routes/credential-routes.ts +19 -10
- package/src/runtime/routes/desktop-setup-routes.test.ts +74 -0
- package/src/runtime/routes/desktop-setup-routes.ts +35 -0
- package/src/runtime/routes/diagnostics-routes.ts +55 -3
- package/src/runtime/routes/index.ts +4 -2
- package/src/runtime/routes/log-export-routes.ts +2 -0
- package/src/runtime/routes/mcp-auth-routes.ts +39 -47
- package/src/runtime/routes/migration-routes.ts +6 -20
- package/src/runtime/routes/platform-routes.ts +18 -15
- package/src/runtime/services/__tests__/conversation-serializer.test.ts +28 -0
- package/src/runtime/services/conversation-serializer.ts +16 -3
- package/src/runtime/sync/resource-sync-events.ts +2 -1
- package/src/schedule/worker.ts +1 -1
- package/src/security/__tests__/ces-http-record-backend.test.ts +137 -0
- package/src/security/ces-http-record-backend.ts +120 -0
- package/src/security/ces-rpc-record-backend.ts +7 -0
- package/src/skills/__tests__/workspace-skill-md-signature.test.ts +60 -0
- package/src/skills/workspace-skill-md-signature.ts +50 -0
- package/src/subagent/consult-context.ts +12 -25
- package/src/tools/acp/list-agents.test.ts +3 -1
- package/src/tools/acp/spawn.test.ts +146 -11
- package/src/tools/acp/spawn.ts +21 -3
- package/src/tools/acp/status.test.ts +94 -0
- package/src/tools/acp/status.ts +40 -3
- package/src/tools/app-control/skill-proxy-bridge.ts +2 -1
- package/src/tools/capability-offer.test.ts +22 -2
- package/src/tools/capability-offer.ts +16 -1
- package/src/tools/computer-use/definitions.ts +4 -2
- package/src/tools/computer-use/skill-proxy-bridge.ts +2 -1
- package/src/tools/credentials/metadata-store.ts +100 -0
- package/src/tools/host-filesystem/edit.test.ts +2 -1
- package/src/tools/host-filesystem/edit.ts +2 -2
- package/src/tools/host-filesystem/read.test.ts +2 -1
- package/src/tools/host-filesystem/read.ts +2 -2
- package/src/tools/host-filesystem/transfer.test.ts +2 -1
- package/src/tools/host-filesystem/transfer.ts +2 -2
- package/src/tools/host-filesystem/write.test.ts +2 -1
- package/src/tools/host-filesystem/write.ts +2 -2
- package/src/tools/host-terminal/host-shell.test.ts +16 -0
- package/src/tools/host-terminal/host-shell.ts +4 -20
- package/src/tools/policy-context.ts +6 -7
- package/src/tools/subagent/spawn.ts +5 -8
- package/src/tools/terminal/__tests__/safe-env.test.ts +6 -6
- package/src/tools/terminal/__tests__/sanitized-bash.test.ts +57 -0
- package/src/tools/terminal/safe-env.ts +23 -3
- package/src/tools/terminal/sanitized-bash.ts +105 -0
- package/src/tools/watch/watch-retro-report.ts +0 -8
- package/src/util/__tests__/language-subtag.test.ts +23 -1
- package/src/util/ca-bundle.ts +13 -0
- package/src/util/language-subtag.ts +16 -0
- package/src/util/platform.ts +8 -0
- package/src/workspace/git-porcelain.ts +66 -0
- package/src/workspace/git-service.ts +5 -54
- package/src/workspace/migrations/154-repair-retired-codex-gpt-5-4-model-ids.ts +258 -0
- package/src/workspace/migrations/155-move-front-model-config-to-voice.ts +78 -0
- package/src/workspace/migrations/156-extract-workspace-mcp-json.ts +214 -0
- package/src/workspace/migrations/__tests__/155-move-front-model-config-to-voice.test.ts +102 -0
- package/src/workspace/migrations/__tests__/156-extract-workspace-mcp-json.test.ts +199 -0
- package/src/workspace/migrations/registry.ts +6 -0
- package/src/__tests__/app-source-watcher.test.ts +0 -218
- package/src/__tests__/config-watcher-skill-reseed.test.ts +0 -359
- package/src/__tests__/speaker-identification.test.ts +0 -56
- package/src/calls/speaker-identification.ts +0 -233
- package/src/daemon/app-source-watcher.ts +0 -218
- package/src/messaging/providers/whatsapp/client.ts +0 -29
- package/src/runtime/routes/debug-bash-routes.ts +0 -173
- package/src/util/fs-watcher-error.ts +0 -36
- /package/src/{live-voice → calls}/progress-phrases.ts +0 -0
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"category": "productivity",
|
|
17
17
|
"homepage": "https://github.com/vellum-ai/admin-copilot",
|
|
18
18
|
"license": "MIT",
|
|
19
|
-
"icon": "
|
|
19
|
+
"icon": "\ud83e\uddd1\u200d\ud83d\udcbc"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"name": "agent-wrapped",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"submittedBy": "marina",
|
|
32
32
|
"homepage": "https://agent-wrapped.com",
|
|
33
|
-
"icon": "
|
|
33
|
+
"icon": "\ud83c\udf81"
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"name": "ai-hero-engineer-kit",
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"repo": "marinatrajk/ai-hero-engineer-kit",
|
|
40
40
|
"ref": "18d33c62b15a3e2cc22dc070723fe3077749dcec"
|
|
41
41
|
},
|
|
42
|
-
"description": "Five engineering skills adapted from Matt Pocock's '5 Agent Skills I Use Every Day'
|
|
42
|
+
"description": "Five engineering skills adapted from Matt Pocock's '5 Agent Skills I Use Every Day' \u2014 plans, PRDs, vertical-slice issues, TDD loop, and codebase deepening in one install.",
|
|
43
43
|
"category": "developer",
|
|
44
44
|
"homepage": "https://github.com/marinatrajk/ai-hero-engineer-kit",
|
|
45
45
|
"license": "MIT",
|
|
46
|
-
"icon": "
|
|
46
|
+
"icon": "\ud83e\uddf0"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"name": "amex-perk-reminder",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"category": "lifestyle",
|
|
57
57
|
"homepage": "https://github.com/AnitaKirkovska/amex-perk-reminder",
|
|
58
58
|
"license": "MIT",
|
|
59
|
-
"icon": "
|
|
59
|
+
"icon": "\ud83d\udcb3"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"name": "astrology-horoscope",
|
|
@@ -69,7 +69,20 @@
|
|
|
69
69
|
"category": "hobby",
|
|
70
70
|
"homepage": "https://github.com/vellum-ai/astrology-horoscope",
|
|
71
71
|
"license": "MIT",
|
|
72
|
-
"icon": "
|
|
72
|
+
"icon": "\ud83d\udd2e"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "battleship",
|
|
76
|
+
"source": {
|
|
77
|
+
"source": "github",
|
|
78
|
+
"repo": "vellum-ai/battleship",
|
|
79
|
+
"ref": "32391ea3af71597b7507bb710bd29ab8308a4604"
|
|
80
|
+
},
|
|
81
|
+
"description": "Play Battleship against your assistant. Fire shots, track hits and misses, and sink the fleet before the assistant sinks yours.",
|
|
82
|
+
"category": "hobby",
|
|
83
|
+
"homepage": "https://github.com/vellum-ai/battleship",
|
|
84
|
+
"license": "MIT",
|
|
85
|
+
"icon": "\u2693"
|
|
73
86
|
},
|
|
74
87
|
{
|
|
75
88
|
"name": "caveman",
|
|
@@ -82,7 +95,7 @@
|
|
|
82
95
|
"category": "productivity",
|
|
83
96
|
"homepage": "https://github.com/JuliusBrussee/caveman",
|
|
84
97
|
"license": "MIT",
|
|
85
|
-
"icon": "
|
|
98
|
+
"icon": "\ud83e\uddb4"
|
|
86
99
|
},
|
|
87
100
|
{
|
|
88
101
|
"name": "coffee-aficionado",
|
|
@@ -107,7 +120,7 @@
|
|
|
107
120
|
"category": "productivity",
|
|
108
121
|
"homepage": "https://github.com/vellum-ai/cofounder",
|
|
109
122
|
"license": "MIT",
|
|
110
|
-
"icon": "
|
|
123
|
+
"icon": "\ud83e\udd1d"
|
|
111
124
|
},
|
|
112
125
|
{
|
|
113
126
|
"name": "cognee",
|
|
@@ -120,7 +133,7 @@
|
|
|
120
133
|
"description": "Cognee knowledge graph memory for Vellum Assistant: session-aware storage, auto-routing recall, and persistent learning across sessions. Supports local mode and Cognee Cloud.",
|
|
121
134
|
"category": "memory",
|
|
122
135
|
"homepage": "https://github.com/topoteretes/cognee-integrations/tree/main/integrations/vellum-assistant",
|
|
123
|
-
"icon": "
|
|
136
|
+
"icon": "\ud83d\udd78\ufe0f"
|
|
124
137
|
},
|
|
125
138
|
{
|
|
126
139
|
"name": "creatorland",
|
|
@@ -134,7 +147,7 @@
|
|
|
134
147
|
"category": "marketing",
|
|
135
148
|
"homepage": "https://github.com/creatorland/creatorland-mcp-skills/tree/main/plugins/creatorland-data",
|
|
136
149
|
"license": "MIT",
|
|
137
|
-
"icon": "
|
|
150
|
+
"icon": "\ud83c\udfa8"
|
|
138
151
|
},
|
|
139
152
|
{
|
|
140
153
|
"name": "dynamic-notch",
|
|
@@ -147,7 +160,7 @@
|
|
|
147
160
|
"category": "interface",
|
|
148
161
|
"homepage": "https://github.com/AnitaKirkovska/dynamic-notch",
|
|
149
162
|
"license": "MIT",
|
|
150
|
-
"icon": "
|
|
163
|
+
"icon": "\ud83d\udcbb"
|
|
151
164
|
},
|
|
152
165
|
{
|
|
153
166
|
"name": "family-briefing",
|
|
@@ -160,7 +173,7 @@
|
|
|
160
173
|
"category": "productivity",
|
|
161
174
|
"homepage": "https://github.com/AnitaKirkovska/family-briefing",
|
|
162
175
|
"license": "MIT",
|
|
163
|
-
"icon": "
|
|
176
|
+
"icon": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66"
|
|
164
177
|
},
|
|
165
178
|
{
|
|
166
179
|
"name": "fitness-companion",
|
|
@@ -173,7 +186,7 @@
|
|
|
173
186
|
"category": "health",
|
|
174
187
|
"homepage": "https://github.com/vellum-ai/fitness-companion",
|
|
175
188
|
"license": "MIT",
|
|
176
|
-
"icon": "
|
|
189
|
+
"icon": "\ud83d\udcaa"
|
|
177
190
|
},
|
|
178
191
|
{
|
|
179
192
|
"name": "git-workflow",
|
|
@@ -186,7 +199,7 @@
|
|
|
186
199
|
"category": "developer",
|
|
187
200
|
"homepage": "https://github.com/vellum-ai/git-workflow",
|
|
188
201
|
"license": "MIT",
|
|
189
|
-
"icon": "
|
|
202
|
+
"icon": "\ud83d\udd00"
|
|
190
203
|
},
|
|
191
204
|
{
|
|
192
205
|
"name": "google-drive-search",
|
|
@@ -199,20 +212,7 @@
|
|
|
199
212
|
"category": "productivity",
|
|
200
213
|
"homepage": "https://github.com/ZeebBoyBlue/google-drive-search",
|
|
201
214
|
"license": "Apache-2.0",
|
|
202
|
-
"icon": "
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
"name": "influencer-marketing",
|
|
206
|
-
"source": {
|
|
207
|
-
"source": "github",
|
|
208
|
-
"repo": "ZeebBoyBlue/influencer",
|
|
209
|
-
"ref": "8629b0dcfdacf62246122af2dcd7320baa6db04e"
|
|
210
|
-
},
|
|
211
|
-
"description": "Find and research influencers on Instagram, TikTok, and X/Twitter. Includes a strategy builder that walks from campaign brief to research criteria, a research skill that discovers real profiles via browser automation, scores candidates, and exports ranked shortlists, and a dashboard skill that turns the shortlist into an interactive outreach tracker.",
|
|
212
|
-
"category": "marketing",
|
|
213
|
-
"homepage": "https://github.com/ZeebBoyBlue/influencer",
|
|
214
|
-
"license": "MIT",
|
|
215
|
-
"icon": "📣"
|
|
215
|
+
"icon": "\ud83d\udd0d"
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"name": "imessage",
|
|
@@ -225,7 +225,20 @@
|
|
|
225
225
|
"category": "productivity",
|
|
226
226
|
"homepage": "https://github.com/vellum-ai/imessage",
|
|
227
227
|
"license": "MIT",
|
|
228
|
-
"icon": "
|
|
228
|
+
"icon": "\ud83d\udcf2"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"name": "influencer-marketing",
|
|
232
|
+
"source": {
|
|
233
|
+
"source": "github",
|
|
234
|
+
"repo": "ZeebBoyBlue/influencer",
|
|
235
|
+
"ref": "8629b0dcfdacf62246122af2dcd7320baa6db04e"
|
|
236
|
+
},
|
|
237
|
+
"description": "Find and research influencers on Instagram, TikTok, and X/Twitter. Includes a strategy builder that walks from campaign brief to research criteria, a research skill that discovers real profiles via browser automation, scores candidates, and exports ranked shortlists, and a dashboard skill that turns the shortlist into an interactive outreach tracker.",
|
|
238
|
+
"category": "marketing",
|
|
239
|
+
"homepage": "https://github.com/ZeebBoyBlue/influencer",
|
|
240
|
+
"license": "MIT",
|
|
241
|
+
"icon": "\ud83d\udce3"
|
|
229
242
|
},
|
|
230
243
|
{
|
|
231
244
|
"name": "kitchen-companion",
|
|
@@ -238,7 +251,20 @@
|
|
|
238
251
|
"category": "lifestyle",
|
|
239
252
|
"homepage": "https://github.com/vellum-ai/kitchen-companion",
|
|
240
253
|
"license": "MIT",
|
|
241
|
-
"icon": "
|
|
254
|
+
"icon": "\ud83c\udf73"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "ledger",
|
|
258
|
+
"source": {
|
|
259
|
+
"source": "github",
|
|
260
|
+
"repo": "simensgreen/ledger",
|
|
261
|
+
"ref": "7fc04fd77b20ad4b27ccd51be22c101274b370f6"
|
|
262
|
+
},
|
|
263
|
+
"description": "Structured storage for Vellum agents: tables via JSON Schema, query/aggregate via JSON, named saved queries.",
|
|
264
|
+
"category": "developer",
|
|
265
|
+
"homepage": "https://github.com/simensgreen/ledger",
|
|
266
|
+
"license": "MIT",
|
|
267
|
+
"icon": "\ud83d\uddc4\ufe0f"
|
|
242
268
|
},
|
|
243
269
|
{
|
|
244
270
|
"name": "level-up",
|
|
@@ -251,7 +277,7 @@
|
|
|
251
277
|
"category": "developer",
|
|
252
278
|
"homepage": "https://github.com/vellum-ai/level-up",
|
|
253
279
|
"license": "MIT",
|
|
254
|
-
"icon": "
|
|
280
|
+
"icon": "\ud83c\udd99"
|
|
255
281
|
},
|
|
256
282
|
{
|
|
257
283
|
"name": "marketing-expert",
|
|
@@ -264,7 +290,7 @@
|
|
|
264
290
|
"category": "marketing",
|
|
265
291
|
"homepage": "https://github.com/vellum-ai/marketing-expert",
|
|
266
292
|
"license": "MIT",
|
|
267
|
-
"icon": "
|
|
293
|
+
"icon": "\ud83d\udcc8"
|
|
268
294
|
},
|
|
269
295
|
{
|
|
270
296
|
"name": "markitdown-vellum",
|
|
@@ -273,11 +299,11 @@
|
|
|
273
299
|
"repo": "simensgreen/markitdown-vellum",
|
|
274
300
|
"ref": "5e5a4ecfd6c60d613778106442003a1ed302fc3c"
|
|
275
301
|
},
|
|
276
|
-
"description": "Convert workspace documents (PDF, DOCX, PPTX, XLSX, images, MSG,
|
|
302
|
+
"description": "Convert workspace documents (PDF, DOCX, PPTX, XLSX, images, MSG, \u2026) to markdown via @cognipeer/to-markdown, with Vellum vision OCR or Tesseract.",
|
|
277
303
|
"category": "productivity",
|
|
278
304
|
"homepage": "https://github.com/simensgreen/markitdown-vellum",
|
|
279
305
|
"license": "MIT",
|
|
280
|
-
"icon": "
|
|
306
|
+
"icon": "\ud83d\udcc4"
|
|
281
307
|
},
|
|
282
308
|
{
|
|
283
309
|
"name": "model-router",
|
|
@@ -290,7 +316,7 @@
|
|
|
290
316
|
"category": "productivity",
|
|
291
317
|
"homepage": "https://github.com/AnitaKirkovska/model-router",
|
|
292
318
|
"license": "MIT",
|
|
293
|
-
"icon": "
|
|
319
|
+
"icon": "\ud83d\udea6"
|
|
294
320
|
},
|
|
295
321
|
{
|
|
296
322
|
"name": "motion-design",
|
|
@@ -303,7 +329,7 @@
|
|
|
303
329
|
"category": "creative",
|
|
304
330
|
"homepage": "https://github.com/vellum-ai/motion-design",
|
|
305
331
|
"license": "MIT",
|
|
306
|
-
"icon": "
|
|
332
|
+
"icon": "\ud83c\udfac"
|
|
307
333
|
},
|
|
308
334
|
{
|
|
309
335
|
"name": "natural",
|
|
@@ -316,7 +342,19 @@
|
|
|
316
342
|
"category": "finance",
|
|
317
343
|
"homepage": "https://www.natural.com",
|
|
318
344
|
"license": "MIT",
|
|
319
|
-
"icon": "
|
|
345
|
+
"icon": "\ud83d\udcb3"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "octolens",
|
|
349
|
+
"source": {
|
|
350
|
+
"source": "github",
|
|
351
|
+
"repo": "vellum-ai/octolens",
|
|
352
|
+
"ref": "d9117f5c6b97b3bff75dec1a04bedc32571c6538"
|
|
353
|
+
},
|
|
354
|
+
"description": "Social listening plugin for Octolens. Monitor brand mentions, competitor activity, and industry conversations across 13+ platforms. Query mentions, run analytics, manage keywords and feeds via REST API tools, or connect the Octolens MCP server for natural-language workflows.",
|
|
355
|
+
"category": "growth",
|
|
356
|
+
"homepage": "https://github.com/vellum-ai/octolens",
|
|
357
|
+
"license": "MIT"
|
|
320
358
|
},
|
|
321
359
|
{
|
|
322
360
|
"name": "openseo",
|
|
@@ -330,7 +368,7 @@
|
|
|
330
368
|
"category": "marketing",
|
|
331
369
|
"homepage": "https://openseo.so",
|
|
332
370
|
"license": "MIT",
|
|
333
|
-
"icon": "
|
|
371
|
+
"icon": "\ud83d\udd0e"
|
|
334
372
|
},
|
|
335
373
|
{
|
|
336
374
|
"name": "originkit",
|
|
@@ -343,7 +381,7 @@
|
|
|
343
381
|
"category": "productivity",
|
|
344
382
|
"homepage": "https://github.com/vellum-ai/originkit",
|
|
345
383
|
"license": "MIT",
|
|
346
|
-
"icon": "
|
|
384
|
+
"icon": "\ud83e\uddf1"
|
|
347
385
|
},
|
|
348
386
|
{
|
|
349
387
|
"name": "personal-finance",
|
|
@@ -356,7 +394,7 @@
|
|
|
356
394
|
"category": "productivity",
|
|
357
395
|
"homepage": "https://github.com/AnitaKirkovska/personal-finance",
|
|
358
396
|
"license": "MIT",
|
|
359
|
-
"icon": "
|
|
397
|
+
"icon": "\ud83d\udcb0"
|
|
360
398
|
},
|
|
361
399
|
{
|
|
362
400
|
"name": "plant-doctor",
|
|
@@ -369,7 +407,7 @@
|
|
|
369
407
|
"category": "lifestyle",
|
|
370
408
|
"homepage": "https://github.com/vellum-ai/plant-doctor",
|
|
371
409
|
"license": "MIT",
|
|
372
|
-
"icon": "
|
|
410
|
+
"icon": "\ud83e\udeb4"
|
|
373
411
|
},
|
|
374
412
|
{
|
|
375
413
|
"name": "polyglot",
|
|
@@ -382,7 +420,7 @@
|
|
|
382
420
|
"category": "education",
|
|
383
421
|
"homepage": "https://github.com/vellum-ai/polyglot",
|
|
384
422
|
"license": "MIT",
|
|
385
|
-
"icon": "
|
|
423
|
+
"icon": "\ud83d\udde3\ufe0f"
|
|
386
424
|
},
|
|
387
425
|
{
|
|
388
426
|
"name": "proactive-slacks",
|
|
@@ -395,7 +433,7 @@
|
|
|
395
433
|
"category": "productivity",
|
|
396
434
|
"homepage": "https://github.com/AnitaKirkovska/proactive-slacks",
|
|
397
435
|
"license": "MIT",
|
|
398
|
-
"icon": "
|
|
436
|
+
"icon": "\ud83d\udcac"
|
|
399
437
|
},
|
|
400
438
|
{
|
|
401
439
|
"name": "reading-pal",
|
|
@@ -408,7 +446,20 @@
|
|
|
408
446
|
"category": "hobby",
|
|
409
447
|
"homepage": "https://github.com/vellum-ai/reading-pal",
|
|
410
448
|
"license": "MIT",
|
|
411
|
-
"icon": "
|
|
449
|
+
"icon": "\ud83d\udcda"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"name": "restaurant-invoice-auditor",
|
|
453
|
+
"description": "Audits restaurant food delivery slips in 14 seconds, flags silent price hikes and pack-size shrinkage, and stages approved bills in QuickBooks.",
|
|
454
|
+
"category": "commerce",
|
|
455
|
+
"icon": "\ud83e\uddfe",
|
|
456
|
+
"license": "MIT",
|
|
457
|
+
"homepage": "https://github.com/ZeebBoyBlue/restaurant-invoice-auditor",
|
|
458
|
+
"source": {
|
|
459
|
+
"source": "github",
|
|
460
|
+
"repo": "ZeebBoyBlue/restaurant-invoice-auditor",
|
|
461
|
+
"ref": "f1905e639941e98172c5032b6d722f668882d75d"
|
|
462
|
+
}
|
|
412
463
|
},
|
|
413
464
|
{
|
|
414
465
|
"name": "simple-memory",
|
|
@@ -421,7 +472,7 @@
|
|
|
421
472
|
"category": "memory",
|
|
422
473
|
"homepage": "https://github.com/vellum-ai/simple-memory",
|
|
423
474
|
"license": "MIT",
|
|
424
|
-
"icon": "
|
|
475
|
+
"icon": "\ud83e\udde0"
|
|
425
476
|
},
|
|
426
477
|
{
|
|
427
478
|
"name": "smb-inbox-brief",
|
|
@@ -434,7 +485,7 @@
|
|
|
434
485
|
"category": "productivity",
|
|
435
486
|
"homepage": "https://github.com/AnitaKirkovska/smb-inbox-brief",
|
|
436
487
|
"license": "MIT",
|
|
437
|
-
"icon": "
|
|
488
|
+
"icon": "\ud83d\udce7"
|
|
438
489
|
},
|
|
439
490
|
{
|
|
440
491
|
"name": "tennis-companion",
|
|
@@ -447,7 +498,7 @@
|
|
|
447
498
|
"category": "health",
|
|
448
499
|
"homepage": "https://github.com/vellum-ai/tennis-companion",
|
|
449
500
|
"license": "MIT",
|
|
450
|
-
"icon": "
|
|
501
|
+
"icon": "\ud83c\udfbe"
|
|
451
502
|
},
|
|
452
503
|
{
|
|
453
504
|
"name": "travel-planner",
|
|
@@ -460,7 +511,7 @@
|
|
|
460
511
|
"category": "lifestyle",
|
|
461
512
|
"homepage": "https://github.com/AnitaKirkovska/travel-planner",
|
|
462
513
|
"license": "MIT",
|
|
463
|
-
"icon": "
|
|
514
|
+
"icon": "\u2708\ufe0f"
|
|
464
515
|
},
|
|
465
516
|
{
|
|
466
517
|
"name": "unabyss",
|
|
@@ -473,7 +524,7 @@
|
|
|
473
524
|
"category": "memory",
|
|
474
525
|
"homepage": "https://unabyss.com",
|
|
475
526
|
"license": "MIT",
|
|
476
|
-
"icon": "
|
|
527
|
+
"icon": "\ud83c\udf0a"
|
|
477
528
|
},
|
|
478
529
|
{
|
|
479
530
|
"name": "vellum-client-qa",
|
|
@@ -486,20 +537,7 @@
|
|
|
486
537
|
"category": "developer",
|
|
487
538
|
"homepage": "https://github.com/vellum-ai/vellum-client-qa",
|
|
488
539
|
"license": "MIT",
|
|
489
|
-
"icon": "
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
"name": "ledger",
|
|
493
|
-
"source": {
|
|
494
|
-
"source": "github",
|
|
495
|
-
"repo": "simensgreen/ledger",
|
|
496
|
-
"ref": "7fc04fd77b20ad4b27ccd51be22c101274b370f6"
|
|
497
|
-
},
|
|
498
|
-
"description": "Structured storage for Vellum agents: tables via JSON Schema, query/aggregate via JSON, named saved queries.",
|
|
499
|
-
"category": "developer",
|
|
500
|
-
"homepage": "https://github.com/simensgreen/ledger",
|
|
501
|
-
"license": "MIT",
|
|
502
|
-
"icon": "🗄️"
|
|
540
|
+
"icon": "\ud83e\uddea"
|
|
503
541
|
},
|
|
504
542
|
{
|
|
505
543
|
"name": "virlo",
|
|
@@ -513,7 +551,7 @@
|
|
|
513
551
|
"category": "marketing",
|
|
514
552
|
"homepage": "https://github.com/Virlo-AI/virlo-integrations/tree/main/integrations/vellum",
|
|
515
553
|
"license": "MIT",
|
|
516
|
-
"icon": "
|
|
554
|
+
"icon": "\ud83d\udcf1"
|
|
517
555
|
},
|
|
518
556
|
{
|
|
519
557
|
"name": "writing-coach",
|
|
@@ -526,32 +564,7 @@
|
|
|
526
564
|
"category": "hobby",
|
|
527
565
|
"homepage": "https://github.com/vellum-ai/writing-coach",
|
|
528
566
|
"license": "MIT",
|
|
529
|
-
"icon": "
|
|
530
|
-
},
|
|
531
|
-
{
|
|
532
|
-
"name": "battleship",
|
|
533
|
-
"source": {
|
|
534
|
-
"source": "github",
|
|
535
|
-
"repo": "vellum-ai/battleship",
|
|
536
|
-
"ref": "32391ea3af71597b7507bb710bd29ab8308a4604"
|
|
537
|
-
},
|
|
538
|
-
"description": "Play Battleship against your assistant. Fire shots, track hits and misses, and sink the fleet before the assistant sinks yours.",
|
|
539
|
-
"category": "hobby",
|
|
540
|
-
"homepage": "https://github.com/vellum-ai/battleship",
|
|
541
|
-
"license": "MIT",
|
|
542
|
-
"icon": "⚓"
|
|
543
|
-
},
|
|
544
|
-
{
|
|
545
|
-
"name": "octolens",
|
|
546
|
-
"source": {
|
|
547
|
-
"source": "github",
|
|
548
|
-
"repo": "vellum-ai/octolens",
|
|
549
|
-
"ref": "d9117f5c6b97b3bff75dec1a04bedc32571c6538"
|
|
550
|
-
},
|
|
551
|
-
"description": "Social listening plugin for Octolens. Monitor brand mentions, competitor activity, and industry conversations across 13+ platforms. Query mentions, run analytics, manage keywords and feeds via REST API tools, or connect the Octolens MCP server for natural-language workflows.",
|
|
552
|
-
"category": "growth",
|
|
553
|
-
"homepage": "https://github.com/vellum-ai/octolens",
|
|
554
|
-
"license": "MIT"
|
|
567
|
+
"icon": "\u270d\ufe0f"
|
|
555
568
|
}
|
|
556
569
|
]
|
|
557
570
|
}
|
|
@@ -540,6 +540,28 @@ describe("resolveDefaultProfileForProvider", () => {
|
|
|
540
540
|
expect(entry).toBe(workspace.balanced);
|
|
541
541
|
});
|
|
542
542
|
|
|
543
|
+
// Google limits gemini-2.5-flash-lite to grandfathered accounts (other API
|
|
544
|
+
// keys get HTTP 404 "no longer available to new users"), so a default
|
|
545
|
+
// profile resolving to it lists as available and fails every request on a
|
|
546
|
+
// fresh BYOK key.
|
|
547
|
+
test("gemini BYOK defaults never resolve to a model Google refuses new keys", () => {
|
|
548
|
+
const budget = resolveDefaultProfileForProvider(
|
|
549
|
+
managedStubs(),
|
|
550
|
+
"cost-optimized",
|
|
551
|
+
dp("gemini"),
|
|
552
|
+
);
|
|
553
|
+
expect(budget?.provider).toBe("gemini");
|
|
554
|
+
expect(budget?.model).toBe("gemini-3.1-flash-lite");
|
|
555
|
+
for (const key of DEFAULT_PROFILE_KEYS) {
|
|
556
|
+
const entry = resolveDefaultProfileForProvider(
|
|
557
|
+
managedStubs(),
|
|
558
|
+
key,
|
|
559
|
+
dp("gemini"),
|
|
560
|
+
);
|
|
561
|
+
expect(entry?.model).not.toBe("gemini-2.5-flash-lite");
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
|
|
543
565
|
test("a managed-source stub contributes only label/status/topP over the provider-resolved body", () => {
|
|
544
566
|
const workspace: Record<string, ProfileEntry> = {
|
|
545
567
|
balanced: {
|
|
@@ -12,9 +12,10 @@ import { describe, expect, test } from "bun:test";
|
|
|
12
12
|
import { MemoryRetrospectiveConfigSchema } from "../schemas/memory-retrospective.js";
|
|
13
13
|
|
|
14
14
|
describe("memory.retrospective config schema", () => {
|
|
15
|
-
test("an empty block leaves retrospectives on", () => {
|
|
15
|
+
test("an empty block leaves retrospectives and skill improvement on", () => {
|
|
16
16
|
const parsed = MemoryRetrospectiveConfigSchema.parse({});
|
|
17
17
|
expect(parsed.enabled).toBe(true);
|
|
18
|
+
expect(parsed.skillImprovement).toBe(true);
|
|
18
19
|
expect(parsed).not.toHaveProperty("forkStrategy");
|
|
19
20
|
});
|
|
20
21
|
|
|
@@ -27,6 +28,19 @@ describe("memory.retrospective config schema", () => {
|
|
|
27
28
|
).toBe(false);
|
|
28
29
|
});
|
|
29
30
|
|
|
31
|
+
test("skillImprovement is an independent boolean-only authoring switch", () => {
|
|
32
|
+
const parsed = MemoryRetrospectiveConfigSchema.parse({
|
|
33
|
+
skillImprovement: false,
|
|
34
|
+
});
|
|
35
|
+
expect(parsed.enabled).toBe(true);
|
|
36
|
+
expect(parsed.skillImprovement).toBe(false);
|
|
37
|
+
expect(
|
|
38
|
+
MemoryRetrospectiveConfigSchema.safeParse({
|
|
39
|
+
skillImprovement: "false",
|
|
40
|
+
}).success,
|
|
41
|
+
).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
|
|
30
44
|
test("a leftover forkStrategy key is ignored", () => {
|
|
31
45
|
const parsed = MemoryRetrospectiveConfigSchema.parse({
|
|
32
46
|
forkStrategy: "cloning",
|