@vellumai/assistant 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +5 -0
- package/AGENTS.md +9 -1
- package/ARCHITECTURE.md +43 -49
- package/Dockerfile +17 -3
- package/README.md +3 -4
- package/__tests__/permissions/gateway-threshold-reader.test.ts +283 -0
- package/bun.lock +8 -3
- package/docs/architecture/integrations.md +33 -59
- package/docs/architecture/memory.md +25 -30
- package/docs/architecture/security.md +19 -18
- package/docs/browser-use-architecture-phase2.md +63 -20
- package/docs/error-handling.md +111 -0
- package/docs/plugins.md +761 -0
- package/docs/skills.md +10 -10
- package/docs/stt-provider-onboarding.md +2 -1
- package/examples/plugins/echo/README.md +132 -0
- package/examples/plugins/echo/package.json +17 -0
- package/examples/plugins/echo/register.ts +187 -0
- package/knip.json +9 -2
- package/node_modules/@vellumai/ces-contracts/package.json +2 -1
- package/node_modules/@vellumai/ces-contracts/src/__tests__/trust-rules.test.ts +471 -0
- package/node_modules/@vellumai/ces-contracts/src/trust-rules.ts +398 -4
- package/node_modules/@vellumai/credential-storage/bun.lock +2 -2
- package/node_modules/@vellumai/credential-storage/package.json +2 -2
- package/node_modules/@vellumai/credential-storage/src/oauth-runtime.ts +20 -2
- package/node_modules/@vellumai/egress-proxy/bun.lock +2 -2
- package/node_modules/@vellumai/egress-proxy/package.json +2 -2
- package/node_modules/@vellumai/egress-proxy/src/types.ts +19 -0
- package/openapi.yaml +334 -78
- package/package.json +6 -3
- package/scripts/generate-openapi.ts +50 -11
- package/src/__tests__/agent-loop-callsite-precedence.test.ts +318 -0
- package/src/__tests__/agent-loop-sentry-hygiene.test.ts +137 -0
- package/src/__tests__/agent-loop.test.ts +112 -1
- package/src/__tests__/anthropic-error-formatting.test.ts +98 -0
- package/src/__tests__/anthropic-provider.test.ts +171 -2
- package/src/__tests__/app-compiler.test.ts +57 -0
- package/src/__tests__/approval-cascade.test.ts +36 -10
- package/src/__tests__/approval-routes-http.test.ts +134 -10
- package/src/__tests__/assistant-attachments.test.ts +44 -0
- package/src/__tests__/assistant-feature-flags-integration.test.ts +29 -0
- package/src/__tests__/auto-analysis-end-to-end.test.ts +1 -0
- package/src/__tests__/avatar-generator.test.ts +4 -2
- package/src/__tests__/browser-fill-credential.test.ts +1 -1
- package/src/__tests__/browser-identifier-parity-guard.test.ts +53 -0
- package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +23 -33
- package/src/__tests__/browser-skill-endstate.test.ts +51 -182
- package/src/__tests__/btw-routes.test.ts +47 -1
- package/src/__tests__/bundled-asset.test.ts +6 -6
- package/src/__tests__/call-controller.test.ts +1 -2
- package/src/__tests__/call-site-routing-provider.test.ts +214 -0
- package/src/__tests__/catalog-cache.test.ts +96 -4
- package/src/__tests__/channel-approval-routes.test.ts +4 -4
- package/src/__tests__/channel-reply-delivery.test.ts +300 -2
- package/src/__tests__/checker.test.ts +870 -655
- package/src/__tests__/circuit-breaker-pipeline.test.ts +406 -0
- package/src/__tests__/cli-command-risk-guard.test.ts +30 -33
- package/src/__tests__/compaction-events.test.ts +501 -0
- package/src/__tests__/compaction-pipeline.test.ts +210 -0
- package/src/__tests__/compaction-strip-metadata-clear.test.ts +181 -0
- package/src/__tests__/compaction-timeout-recovery.test.ts +262 -0
- package/src/__tests__/compaction.benchmark.test.ts +1 -1
- package/src/__tests__/config-analysis.test.ts +11 -28
- package/src/__tests__/config-loader-backfill.test.ts +174 -0
- package/src/__tests__/config-loader-corrupt.test.ts +183 -0
- package/src/__tests__/config-loader-quarantine-bulletin.test.ts +202 -0
- package/src/__tests__/config-model-image-provider.test.ts +110 -0
- package/src/__tests__/config-schema-cmd.test.ts +11 -5
- package/src/__tests__/config-schema.test.ts +440 -114
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -4
- package/src/__tests__/config-watcher.test.ts +2 -2
- package/src/__tests__/contact-store-user-file.test.ts +72 -73
- package/src/__tests__/contacts-tools.test.ts +26 -0
- package/src/__tests__/contacts-write.test.ts +4 -4
- package/src/__tests__/context-overflow-policy.test.ts +7 -7
- package/src/__tests__/context-token-estimator.test.ts +191 -1
- package/src/__tests__/context-window-manager.test.ts +883 -4
- package/src/__tests__/conversation-abort-tool-results.test.ts +32 -15
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +86 -46
- package/src/__tests__/conversation-agent-loop.test.ts +435 -216
- package/src/__tests__/conversation-attachments.test.ts +1 -1
- package/src/__tests__/conversation-confirmation-signals.test.ts +36 -10
- package/src/__tests__/conversation-error.test.ts +37 -6
- package/src/__tests__/conversation-history-web-search.test.ts +7 -0
- package/src/__tests__/conversation-init.benchmark.test.ts +34 -12
- package/src/__tests__/conversation-lifecycle.test.ts +336 -0
- package/src/__tests__/conversation-load-history-repair.test.ts +27 -10
- package/src/__tests__/conversation-pairing.test.ts +174 -10
- package/src/__tests__/conversation-pre-run-repair.test.ts +32 -15
- package/src/__tests__/conversation-process-callsite.test.ts +309 -0
- package/src/__tests__/conversation-provider-retry-repair.test.ts +44 -21
- package/src/__tests__/conversation-queue.test.ts +68 -38
- package/src/__tests__/conversation-routes-disk-view.test.ts +36 -7
- package/src/__tests__/conversation-routes-slash-commands.test.ts +31 -3
- package/src/__tests__/conversation-runtime-assembly.test.ts +2877 -152
- package/src/__tests__/conversation-runtime-workspace.test.ts +35 -50
- package/src/__tests__/conversation-seed-composer.test.ts +2 -2
- package/src/__tests__/conversation-skill-tools.test.ts +12 -146
- package/src/__tests__/conversation-slash-queue.test.ts +39 -19
- package/src/__tests__/conversation-slash-unknown.test.ts +53 -16
- package/src/__tests__/conversation-speed-override.test.ts +36 -12
- package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +1035 -0
- package/src/__tests__/conversation-surfaces-standalone.test.ts +630 -0
- package/src/__tests__/conversation-title-service.test.ts +118 -2
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +41 -2
- package/src/__tests__/conversation-tool-setup-batch-authorized.test.ts +1 -1
- package/src/__tests__/conversation-unread-route.test.ts +2 -2
- package/src/__tests__/conversation-usage.test.ts +4 -2
- package/src/__tests__/conversation-workspace-cache-state.test.ts +33 -9
- package/src/__tests__/conversation-workspace-injection.test.ts +46 -15
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +46 -15
- package/src/__tests__/credential-broker-browser-fill.test.ts +110 -0
- package/src/__tests__/credential-health-service.test.ts +78 -9
- package/src/__tests__/credential-security-invariants.test.ts +5 -2
- package/src/__tests__/credential-storage-oauth-compat.test.ts +18 -0
- package/src/__tests__/credential-storage-static-compat.test.ts +28 -0
- package/src/__tests__/credential-vault-unit.test.ts +135 -19
- package/src/__tests__/credentials-cli.test.ts +1 -9
- package/src/__tests__/cross-provider-web-search.test.ts +84 -0
- package/src/__tests__/daemon-server-persist-and-process-callsite.test.ts +92 -0
- package/src/__tests__/db-schedule-syntax-migration.test.ts +1 -0
- package/src/__tests__/delete-propagation.test.ts +437 -0
- package/src/__tests__/dm-backfill.test.ts +417 -0
- package/src/__tests__/dm-persistence.test.ts +227 -0
- package/src/__tests__/edit-propagation.test.ts +280 -0
- package/src/__tests__/empty-response-pipeline.test.ts +305 -0
- package/src/__tests__/ephemeral-permissions.test.ts +93 -3
- package/src/__tests__/estimator-calibration-integration.test.ts +208 -0
- package/src/__tests__/estimator-calibration.test.ts +213 -0
- package/src/__tests__/extension-id-sync-guard.test.ts +29 -10
- package/src/__tests__/file-write-tool.test.ts +151 -1
- package/src/__tests__/filing-service.test.ts +255 -0
- package/src/__tests__/first-greeting.test.ts +247 -5
- package/src/__tests__/gemini-provider.test.ts +0 -3
- package/src/__tests__/guardian-grant-minting.test.ts +8 -0
- package/src/__tests__/headless-browser-interactions.test.ts +1 -1
- package/src/__tests__/headless-browser-mode.test.ts +57 -0
- package/src/__tests__/heartbeat-service.test.ts +96 -15
- package/src/__tests__/history-repair-pipeline.test.ts +399 -0
- package/src/__tests__/host-browser-e2e-cloud.test.ts +307 -0
- package/src/__tests__/host-browser-e2e-self-hosted.test.ts +3 -3
- package/src/__tests__/host-proxy-interface.test.ts +36 -2
- package/src/__tests__/host-shell-tool.test.ts +124 -18
- package/src/__tests__/http-user-message-parity.test.ts +29 -1
- package/src/__tests__/image-credentials.test.ts +137 -0
- package/src/__tests__/image-service-dispatcher.test.ts +186 -0
- package/src/__tests__/inbound-slack-persistence.test.ts +340 -0
- package/src/__tests__/injector-chain.test.ts +526 -0
- package/src/__tests__/intent-routing.test.ts +1 -66
- package/src/__tests__/llm-call-pipeline.test.ts +285 -0
- package/src/__tests__/llm-catalog-parity.test.ts +174 -0
- package/src/__tests__/llm-context-normalization.test.ts +121 -0
- package/src/__tests__/llm-resolver.test.ts +214 -0
- package/src/__tests__/llm-schema.test.ts +223 -0
- package/src/__tests__/managed-proxy-context.test.ts +6 -2
- package/src/__tests__/media-generate-image.test.ts +119 -13
- package/src/__tests__/memory-retrieval-pipeline.test.ts +401 -0
- package/src/__tests__/memory-upsert-concurrency.test.ts +1 -0
- package/src/__tests__/messaging-skill-split.test.ts +3 -34
- package/src/__tests__/migration-import-from-url.test.ts +621 -0
- package/src/__tests__/model-intents.test.ts +11 -83
- package/src/__tests__/notification-broadcaster.test.ts +3 -3
- package/src/__tests__/notification-decision-fallback.test.ts +0 -10
- package/src/__tests__/notification-decision-identity.test.ts +0 -9
- package/src/__tests__/notification-decision-recipient-context.test.ts +0 -9
- package/src/__tests__/notification-decision-strategy.test.ts +0 -11
- package/src/__tests__/notification-schedule-notify-dedup.test.ts +108 -0
- package/src/__tests__/oauth-apps-routes.test.ts +1 -1
- package/src/__tests__/oauth-cli.test.ts +14 -12
- package/src/__tests__/oauth-connect-orchestrator.test.ts +4 -13
- package/src/__tests__/oauth-provider-serializer.test.ts +6 -4
- package/src/__tests__/oauth-provider-visibility.test.ts +3 -5
- package/src/__tests__/oauth-providers-routes.test.ts +3 -2
- package/src/__tests__/oauth-store.test.ts +46 -78
- package/src/__tests__/oauth2-gateway-transport.test.ts +8 -3
- package/src/__tests__/oauth2-refresh-retry.test.ts +279 -0
- package/src/__tests__/onboarding-template-contract.test.ts +16 -64
- package/src/__tests__/openai-image-service.test.ts +368 -0
- package/src/__tests__/openai-provider.test.ts +7 -0
- package/src/__tests__/openai-responses-provider.test.ts +396 -0
- package/src/__tests__/openrouter-provider-only.test.ts +135 -0
- package/src/__tests__/outbound-slack-persistence.test.ts +293 -0
- package/src/__tests__/overflow-reduce-pipeline.test.ts +676 -0
- package/src/__tests__/permission-checker-host-gate.test.ts +1 -25
- package/src/__tests__/permission-mode.test.ts +16 -0
- package/src/__tests__/permission-types.test.ts +0 -1
- package/src/__tests__/persist-onboarding-artifacts.test.ts +266 -0
- package/src/__tests__/persistence-pipeline.test.ts +377 -0
- package/src/__tests__/persona-resolver.test.ts +13 -13
- package/src/__tests__/pipeline-runner.test.ts +565 -0
- package/src/__tests__/pkb-autoinject.test.ts +37 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +1 -1
- package/src/__tests__/platform.test.ts +5 -2
- package/src/__tests__/plugin-bootstrap.test.ts +483 -0
- package/src/__tests__/plugin-registry.test.ts +273 -0
- package/src/__tests__/plugin-route-contribution.test.ts +288 -0
- package/src/__tests__/plugin-skill-contribution.test.ts +367 -0
- package/src/__tests__/plugin-tool-contribution.test.ts +286 -0
- package/src/__tests__/plugin-types.test.ts +320 -0
- package/src/__tests__/pricing.test.ts +93 -14
- package/src/__tests__/profiler-routes.test.ts +1 -1
- package/src/__tests__/provider-commit-message-generator.test.ts +14 -84
- package/src/__tests__/provider-env-vars-scope.test.ts +52 -0
- package/src/__tests__/provider-error-scenarios.test.ts +135 -6
- package/src/__tests__/provider-managed-proxy-integration.test.ts +42 -11
- package/src/__tests__/provider-registry-ollama.test.ts +1 -2
- package/src/__tests__/proxy-approval-callback.test.ts +69 -9
- package/src/__tests__/reaction-persistence.test.ts +561 -0
- package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +1 -0
- package/src/__tests__/registry.test.ts +0 -2
- package/src/__tests__/relay-server.test.ts +1 -1
- package/src/__tests__/require-fresh-approval.test.ts +1 -1
- package/src/__tests__/retry-openrouter-only-normalization.test.ts +136 -0
- package/src/__tests__/retry-thinking-tool-choice.test.ts +226 -0
- package/src/__tests__/risk-classifier-parity.test.ts +230 -0
- package/src/__tests__/sanitize-config-for-transfer.test.ts +78 -1
- package/src/__tests__/schedule-routes.test.ts +131 -1
- package/src/__tests__/scheduler-recurrence.test.ts +14 -70
- package/src/__tests__/scheduler-reuse-conversation.test.ts +10 -50
- package/src/__tests__/secret-detection-handler.test.ts +0 -10
- package/src/__tests__/secret-ingress-http.test.ts +28 -0
- package/src/__tests__/secret-prompter-channel-fallback.test.ts +125 -0
- package/src/__tests__/secret-routes-managed-proxy.test.ts +2 -3
- package/src/__tests__/secret-scanner-executor.test.ts +1 -1
- package/src/__tests__/send-endpoint-busy.test.ts +29 -1
- package/src/__tests__/server-history-render.test.ts +31 -0
- package/src/__tests__/shell-identity.test.ts +0 -134
- package/src/__tests__/shell-parser-property.test.ts +13 -13
- package/src/__tests__/skill-cache-store.test.ts +182 -0
- package/src/__tests__/skills.test.ts +19 -33
- package/src/__tests__/slack-app-setup-skill-regression.test.ts +3 -1
- package/src/__tests__/slack-skill.test.ts +3 -8
- package/src/__tests__/starter-bundle.test.ts +35 -0
- package/src/__tests__/subagent-call-site-routing.test.ts +280 -0
- package/src/__tests__/suggestion-routes.test.ts +259 -3
- package/src/__tests__/system-prompt.test.ts +22 -35
- package/src/__tests__/task-memory-cleanup.test.ts +1 -0
- package/src/__tests__/task-runner.test.ts +3 -1
- package/src/__tests__/task-scheduler.test.ts +3 -15
- package/src/__tests__/tcc-sandbox-deny.test.ts +198 -0
- package/src/__tests__/terminal-tools.test.ts +8 -0
- package/src/__tests__/test-preload.ts +11 -0
- package/src/__tests__/test-support/browser-skill-harness.ts +2 -52
- package/src/__tests__/thread-backfill.test.ts +941 -0
- package/src/__tests__/title-generate-pipeline.test.ts +224 -0
- package/src/__tests__/token-estimate-pipeline.test.ts +431 -0
- package/src/__tests__/tool-error-pipeline.test.ts +244 -0
- package/src/__tests__/tool-execute-pipeline.test.ts +431 -0
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +2 -8
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +2 -2
- package/src/__tests__/tool-executor-shell-integration.test.ts +7 -10
- package/src/__tests__/tool-executor.test.ts +201 -94
- package/src/__tests__/tool-result-truncate-pipeline.test.ts +356 -0
- package/src/__tests__/tool-result-truncation.test.ts +0 -110
- package/src/__tests__/trust-store.test.ts +442 -109
- package/src/__tests__/update-bulletin-job.test.ts +389 -0
- package/src/__tests__/usage-cache-backfill-migration.test.ts +3 -1
- package/src/__tests__/user-plugin-loader.test.ts +191 -0
- package/src/__tests__/verification-control-plane-policy.test.ts +1 -22
- package/src/__tests__/voice-session-bridge.test.ts +39 -0
- package/src/__tests__/volume-security-guard.test.ts +3 -2
- package/src/__tests__/web-search-history.test.ts +337 -0
- package/src/__tests__/workspace-migration-039-drop-legacy-llm-keys.test.ts +343 -0
- package/src/__tests__/workspace-migration-043-release-notes-latex-rendering.test.ts +202 -0
- package/src/__tests__/workspace-migration-045-release-notes-meet-avatar.test.ts +210 -0
- package/src/__tests__/workspace-migration-046-seed-conversation-starters-callsite.test.ts +185 -0
- package/src/__tests__/workspace-migration-049-release-notes-default-sonnet.test.ts +100 -0
- package/src/__tests__/workspace-migration-050-seed-main-agent-opus-callsite.test.ts +171 -0
- package/src/__tests__/workspace-migration-051-seed-conversation-summarization-callsite.test.ts +252 -0
- package/src/__tests__/workspace-migration-drop-user-md.test.ts +11 -11
- package/src/__tests__/workspace-migration-remove-hooks.test.ts +99 -0
- package/src/__tests__/workspace-migration-unify-llm-callsite-configs.test.ts +841 -0
- package/src/__tests__/workspace-policy.test.ts +22 -16
- package/src/acp/client-handler.ts +1 -2
- package/src/agent/loop.ts +545 -115
- package/src/approvals/__tests__/guardian-feed-event.test.ts +304 -0
- package/src/approvals/guardian-request-resolvers.ts +80 -0
- package/src/avatar/resvg-lazy.test.ts +136 -0
- package/src/avatar/resvg-lazy.ts +82 -9
- package/src/avatar/traits-png-sync.ts +21 -1
- package/src/backup/__tests__/backup-worker.test.ts +2 -13
- package/src/backup/backup-worker.ts +3 -15
- package/src/browser/__tests__/operations.test.ts +163 -0
- package/src/browser/identifiers.ts +51 -0
- package/src/browser/operations.ts +660 -0
- package/src/browser/types.ts +81 -0
- package/src/bundler/app-compiler.ts +84 -1
- package/src/calls/call-state.ts +2 -2
- package/src/calls/guardian-question-copy.ts +2 -2
- package/src/calls/telephony-stt-routing.ts +1 -1
- package/src/calls/voice-session-bridge.ts +1 -0
- package/src/channels/__tests__/types.test.ts +3 -3
- package/src/channels/types.ts +6 -4
- package/src/cli/AGENTS.md +1 -1
- package/src/cli/__tests__/notifications.test.ts +87 -211
- package/src/cli/commands/__tests__/attachment.test.ts +438 -0
- package/src/cli/commands/__tests__/backup.test.ts +1 -1
- package/src/cli/commands/__tests__/browser.test.ts +554 -0
- package/src/cli/commands/__tests__/cache.test.ts +623 -0
- package/src/cli/commands/__tests__/email-list.test.ts +6 -0
- package/src/cli/commands/__tests__/email-send.test.ts +93 -1
- package/src/cli/commands/__tests__/image-generation.test.ts +886 -0
- package/src/cli/commands/__tests__/inference-send.test.ts +463 -0
- package/src/cli/commands/__tests__/stt-transcribe.test.ts +454 -0
- package/src/cli/commands/__tests__/task.test.ts +913 -0
- package/src/cli/commands/__tests__/tts-synthesize.test.ts +606 -0
- package/src/cli/commands/__tests__/ui-confirm.test.ts +650 -0
- package/src/cli/commands/__tests__/ui.test.ts +1215 -0
- package/src/cli/commands/__tests__/watchers.test.ts +716 -0
- package/src/cli/commands/attachment.ts +182 -0
- package/src/cli/commands/backup.ts +2 -2
- package/src/cli/commands/browser.ts +350 -0
- package/src/cli/commands/cache.ts +341 -0
- package/src/cli/commands/clients.ts +138 -0
- package/src/cli/commands/completions.ts +2 -12
- package/src/cli/commands/config.ts +6 -6
- package/src/cli/commands/conversations-import.ts +347 -0
- package/src/cli/commands/conversations.ts +69 -8
- package/src/cli/commands/email.ts +234 -194
- package/src/cli/commands/image-generation.ts +299 -0
- package/src/cli/commands/inference.ts +200 -0
- package/src/cli/commands/memory.ts +127 -17
- package/src/cli/commands/notifications.ts +68 -103
- package/src/cli/commands/oauth/__tests__/providers-register.test.ts +1 -1
- package/src/cli/commands/oauth/__tests__/providers-update.test.ts +1 -1
- package/src/cli/commands/oauth/connect.ts +2 -2
- package/src/cli/commands/oauth/providers.ts +176 -8
- package/src/cli/commands/oauth/status.ts +46 -36
- package/src/cli/commands/platform/__tests__/callback-routes-list.test.ts +0 -1
- package/src/cli/commands/platform/__tests__/connect.test.ts +0 -1
- package/src/cli/commands/platform/__tests__/disconnect.test.ts +0 -1
- package/src/cli/commands/platform/__tests__/status.test.ts +0 -1
- package/src/cli/commands/skills.ts +3 -4
- package/src/cli/commands/stt.ts +339 -0
- package/src/cli/commands/task.ts +795 -0
- package/src/cli/commands/trust.ts +50 -19
- package/src/cli/commands/tts.ts +273 -0
- package/src/cli/commands/ui.ts +670 -0
- package/src/cli/commands/watchers.ts +509 -0
- package/src/cli/lib/daemon-credential-client.ts +0 -19
- package/src/cli/program.ts +39 -24
- package/src/cli.ts +0 -37
- package/src/config/__tests__/backup-schema.test.ts +7 -2
- package/src/config/bundled-skills/app-builder/SKILL.md +2 -2
- package/src/config/bundled-skills/app-builder/references/WIDGETS.md +10 -10
- package/src/config/bundled-skills/contacts/tools/contact-merge.ts +66 -87
- package/src/config/bundled-skills/contacts/tools/contact-search.ts +28 -51
- package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +22 -40
- package/src/config/bundled-skills/image-studio/SKILL.md +2 -1
- package/src/config/bundled-skills/image-studio/TOOLS.json +2 -1
- package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +23 -39
- package/src/config/bundled-skills/media-processing/services/reduce.ts +1 -1
- package/src/config/bundled-skills/messaging/SKILL.md +5 -5
- package/src/config/bundled-skills/messaging/TOOLS.json +4 -0
- package/src/config/bundled-skills/messaging/tools/__tests__/messaging-feed-events.test.ts +207 -0
- package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +20 -1
- package/src/config/bundled-skills/messaging/tools/messaging-read.ts +15 -1
- package/src/config/bundled-skills/messaging/tools/messaging-search.ts +21 -1
- package/src/config/bundled-skills/messaging/tools/messaging-send.ts +69 -12
- package/src/config/bundled-skills/phone-calls/references/CONFIG.md +9 -8
- package/src/config/bundled-skills/schedule/SKILL.md +8 -3
- package/src/config/bundled-skills/schedule/TOOLS.json +15 -7
- package/src/config/bundled-skills/schedule/references/SCRIPT_MODE_PATTERNS.md +59 -0
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-tool-registry.ts +0 -190
- package/src/config/env.ts +7 -2
- package/src/config/feature-flag-registry.json +42 -10
- package/src/config/llm-resolver.ts +128 -0
- package/src/config/loader.ts +194 -10
- package/src/config/raw-config-utils.ts +30 -2
- package/src/config/sanitize-for-transfer.ts +35 -0
- package/src/config/schema.ts +49 -41
- package/src/config/schemas/analysis.ts +3 -22
- package/src/config/schemas/backup.ts +1 -1
- package/src/config/schemas/calls.ts +0 -4
- package/src/config/schemas/conversations.ts +16 -0
- package/src/config/schemas/filing.ts +2 -7
- package/src/config/schemas/heartbeat.ts +0 -5
- package/src/config/schemas/inference.ts +3 -23
- package/src/config/schemas/llm.ts +317 -0
- package/src/config/schemas/memory-processing.ts +1 -9
- package/src/config/schemas/notifications.ts +4 -11
- package/src/config/schemas/platform.ts +3 -9
- package/src/config/schemas/security.ts +33 -0
- package/src/config/schemas/services.ts +9 -4
- package/src/config/schemas/stt.ts +1 -0
- package/src/config/schemas/tts.ts +64 -0
- package/src/config/schemas/updates.ts +1 -1
- package/src/config/schemas/workspace-git.ts +3 -40
- package/src/config/skill-state.ts +6 -2
- package/src/config/skills.ts +96 -7
- package/src/context/__tests__/compact-prompt.test.ts +63 -0
- package/src/context/__tests__/microcompact.test.ts +805 -0
- package/src/context/estimator-calibration.ts +136 -0
- package/src/context/microcompact.ts +443 -0
- package/src/context/prompts/compact.md +26 -0
- package/src/context/token-estimator.ts +61 -3
- package/src/context/tool-result-truncation.ts +3 -63
- package/src/context/window-manager.ts +417 -39
- package/src/credential-execution/approval-bridge.ts +0 -1
- package/src/credential-execution/executable-discovery.ts +19 -8
- package/src/credential-execution/process-manager.test.ts +109 -0
- package/src/credential-execution/process-manager.ts +65 -2
- package/src/credential-health/credential-health-service.ts +19 -6
- package/src/daemon/__tests__/conversation-feed-event.test.ts +317 -0
- package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +4 -12
- package/src/daemon/__tests__/conversation-tool-setup.test.ts +14 -15
- package/src/daemon/approval-generators.ts +29 -4
- package/src/daemon/assistant-attachments.ts +24 -13
- package/src/daemon/classifier.ts +2 -2
- package/src/daemon/config-watcher.ts +0 -3
- package/src/daemon/context-overflow-policy.ts +4 -13
- package/src/daemon/context-overflow-reducer.ts +4 -1
- package/src/daemon/conversation-agent-loop-handlers.ts +162 -34
- package/src/daemon/conversation-agent-loop.ts +1282 -599
- package/src/daemon/conversation-attachments.ts +2 -6
- package/src/daemon/conversation-error.ts +36 -1
- package/src/daemon/conversation-history.ts +10 -19
- package/src/daemon/conversation-lifecycle.ts +59 -17
- package/src/daemon/conversation-messaging.ts +73 -4
- package/src/daemon/conversation-notifiers.ts +2 -110
- package/src/daemon/conversation-process.ts +24 -11
- package/src/daemon/conversation-queue-manager.ts +3 -0
- package/src/daemon/conversation-runtime-assembly.ts +1063 -211
- package/src/daemon/conversation-slash.ts +2 -2
- package/src/daemon/conversation-surfaces.ts +389 -1
- package/src/daemon/conversation-tool-setup.ts +51 -9
- package/src/daemon/conversation-usage.ts +1 -1
- package/src/daemon/conversation.ts +197 -64
- package/src/daemon/external-plugins-bootstrap.ts +478 -0
- package/src/daemon/external-skills-bootstrap.ts +41 -0
- package/src/daemon/first-greeting.ts +191 -14
- package/src/daemon/guardian-action-generators.ts +34 -14
- package/src/daemon/handlers/config-model.test.ts +86 -0
- package/src/daemon/handlers/config-model.ts +65 -12
- package/src/daemon/handlers/conversations.ts +9 -2
- package/src/daemon/handlers/shared.ts +39 -11
- package/src/daemon/handlers/skills.ts +7 -3
- package/src/daemon/handlers/slack-channel-oauth-install.ts +197 -0
- package/src/daemon/lifecycle.ts +109 -82
- package/src/daemon/message-types/computer-use.ts +2 -34
- package/src/daemon/message-types/conversations.ts +63 -0
- package/src/daemon/message-types/messages.ts +21 -1
- package/src/daemon/message-types/trust.ts +0 -2
- package/src/daemon/parse-actual-tokens-from-error.test.ts +57 -1
- package/src/daemon/parse-actual-tokens-from-error.ts +66 -0
- package/src/daemon/pkb-context-tracker.test.ts +169 -0
- package/src/daemon/pkb-context-tracker.ts +125 -0
- package/src/daemon/pkb-reminder-builder.test.ts +70 -0
- package/src/daemon/pkb-reminder-builder.ts +31 -0
- package/src/daemon/providers-setup.ts +6 -0
- package/src/daemon/server.ts +122 -12
- package/src/daemon/shutdown-handlers.ts +2 -12
- package/src/daemon/tool-side-effects.ts +14 -65
- package/src/daemon/web-search-history.ts +126 -0
- package/src/events/domain-events.ts +0 -1
- package/src/filing/filing-service.ts +9 -10
- package/src/heartbeat/__tests__/heartbeat-feed-event.test.ts +160 -0
- package/src/heartbeat/heartbeat-service.ts +99 -28
- package/src/home/__tests__/feed-population-integration.test.ts +312 -0
- package/src/home/__tests__/feed-scheduler.test.ts +39 -11
- package/src/home/__tests__/rollup-producer.test.ts +44 -0
- package/src/home/assistant-feed-authoring.ts +4 -0
- package/src/home/emit-feed-event.ts +11 -0
- package/src/home/feed-scheduler.ts +20 -4
- package/src/home/feed-types.ts +97 -4
- package/src/home/relationship-state-writer.ts +2 -2
- package/src/home/rewrite-command-preview.ts +66 -0
- package/src/home/rollup-producer.ts +34 -5
- package/src/home/suggested-prompts.ts +101 -0
- package/src/ipc/__tests__/attachment-ipc.test.ts +213 -0
- package/src/ipc/__tests__/browser-ipc.test.ts +339 -0
- package/src/ipc/__tests__/cache-ipc.test.ts +266 -0
- package/src/ipc/__tests__/socket-path.test.ts +34 -0
- package/src/ipc/__tests__/task-ipc.test.ts +577 -0
- package/src/ipc/__tests__/ui-request-route.test.ts +495 -0
- package/src/ipc/__tests__/watcher-ipc.test.ts +295 -0
- package/src/ipc/cli-client.ts +2 -1
- package/src/ipc/cli-server.ts +26 -8
- package/src/ipc/gateway-client.ts +6 -3
- package/src/ipc/routes/attachment.ts +114 -0
- package/src/ipc/routes/browser-context.ts +63 -0
- package/src/ipc/routes/browser.ts +97 -0
- package/src/ipc/routes/cache.ts +96 -0
- package/src/ipc/routes/get-contact.ts +16 -0
- package/src/ipc/routes/index.ts +31 -1
- package/src/ipc/routes/list-clients.ts +31 -0
- package/src/ipc/routes/merge-contacts.ts +17 -0
- package/src/ipc/routes/notification.ts +133 -0
- package/src/ipc/routes/rename-conversation.ts +59 -0
- package/src/ipc/routes/search-contacts.ts +19 -0
- package/src/ipc/routes/task-queue.ts +226 -0
- package/src/ipc/routes/task.ts +173 -0
- package/src/ipc/routes/ui-request.ts +50 -0
- package/src/ipc/routes/upsert-contact.ts +25 -0
- package/src/ipc/routes/watcher.ts +203 -0
- package/src/ipc/socket-path.ts +76 -0
- package/src/media/app-icon-generator.ts +23 -46
- package/src/media/avatar-router.ts +26 -41
- package/src/media/gemini-image-service.ts +8 -41
- package/src/media/image-credentials.ts +73 -0
- package/src/media/image-service.ts +85 -0
- package/src/media/openai-image-service.ts +131 -0
- package/src/media/types.ts +46 -0
- package/src/memory/__tests__/conversation-analyze-job.test.ts +9 -8
- package/src/memory/__tests__/conversation-group-migration.test.ts +99 -0
- package/src/memory/admin.ts +18 -0
- package/src/memory/conversation-analyze-job.ts +14 -13
- package/src/memory/conversation-attention-store.ts +13 -6
- package/src/memory/conversation-crud.ts +133 -3
- package/src/memory/conversation-group-migration.ts +38 -6
- package/src/memory/conversation-queries.ts +57 -4
- package/src/memory/conversation-title-service.ts +32 -4
- package/src/memory/db-init.ts +10 -0
- package/src/memory/embedding-backend.ts +1 -1
- package/src/memory/embedding-gemini.test.ts +41 -2
- package/src/memory/embedding-gemini.ts +6 -1
- package/src/memory/graph/bootstrap.test.ts +282 -0
- package/src/memory/graph/bootstrap.ts +8 -5
- package/src/memory/graph/compaction.ts +299 -0
- package/src/memory/graph/consolidation.ts +4 -4
- package/src/memory/graph/conversation-graph-memory.ts +89 -29
- package/src/memory/graph/extraction.test.ts +272 -2
- package/src/memory/graph/extraction.ts +183 -53
- package/src/memory/graph/graph-search.test.ts +93 -0
- package/src/memory/graph/graph-search.ts +4 -1
- package/src/memory/graph/inspect.ts +2 -2
- package/src/memory/graph/narrative.ts +2 -2
- package/src/memory/graph/pattern-scan.ts +2 -2
- package/src/memory/graph/retriever.test.ts +459 -0
- package/src/memory/graph/retriever.ts +237 -48
- package/src/memory/graph/store.ts +41 -0
- package/src/memory/graph/tool-handlers.ts +27 -0
- package/src/memory/graph/tools.ts +6 -1
- package/src/memory/indexer.ts +5 -5
- package/src/memory/job-handlers/conversation-starters.ts +23 -20
- package/src/memory/job-handlers/summarization.ts +2 -2
- package/src/memory/job-utils.ts +7 -1
- package/src/memory/jobs/embed-pkb-file.test.ts +168 -0
- package/src/memory/jobs/embed-pkb-file.ts +54 -0
- package/src/memory/jobs-store.ts +44 -3
- package/src/memory/jobs-worker.ts +4 -0
- package/src/memory/migrations/041-approval-prompt-ts-tracker.ts +26 -0
- package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +1 -1
- package/src/memory/migrations/149-oauth-tables.ts +1 -0
- package/src/memory/migrations/220-normalize-user-file-by-principal.ts +2 -2
- package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +82 -0
- package/src/memory/migrations/223-schedule-script-column.ts +11 -0
- package/src/memory/migrations/224-oauth-providers-managed-service-is-paid.ts +24 -0
- package/src/memory/migrations/225-oauth-providers-available-scopes.ts +13 -0
- package/src/memory/migrations/index.ts +5 -0
- package/src/memory/pkb/pkb-index.test.ts +369 -0
- package/src/memory/pkb/pkb-index.ts +255 -0
- package/src/memory/pkb/pkb-reconcile.test.ts +252 -0
- package/src/memory/pkb/pkb-reconcile.ts +148 -0
- package/src/memory/pkb/pkb-search.test.ts +499 -0
- package/src/memory/pkb/pkb-search.ts +159 -0
- package/src/memory/pkb/types.ts +53 -0
- package/src/memory/qdrant-client.test.ts +60 -0
- package/src/memory/qdrant-client.ts +147 -1
- package/src/memory/schema/infrastructure.ts +1 -0
- package/src/memory/schema/oauth.ts +4 -1
- package/src/memory/slack-thread-store.ts +37 -0
- package/src/messaging/providers/gmail/adapter.ts +6 -16
- package/src/messaging/providers/gmail/client.ts +22 -0
- package/src/messaging/providers/gmail/types.ts +7 -0
- package/src/messaging/providers/slack/adapter.ts +14 -2
- package/src/messaging/providers/slack/backfill.test.ts +257 -0
- package/src/messaging/providers/slack/backfill.ts +101 -0
- package/src/messaging/providers/slack/message-metadata.test.ts +316 -0
- package/src/messaging/providers/slack/message-metadata.ts +123 -0
- package/src/messaging/providers/slack/render-transcript.test.ts +1421 -0
- package/src/messaging/providers/slack/render-transcript.ts +501 -0
- package/src/messaging/style-analyzer.ts +5 -2
- package/src/notifications/README.md +9 -5
- package/src/notifications/conversation-pairing.ts +78 -19
- package/src/notifications/copy-composer.ts +0 -5
- package/src/notifications/decision-engine.ts +3 -9
- package/src/notifications/emit-signal.ts +1 -1
- package/src/notifications/preference-extractor.ts +2 -6
- package/src/notifications/signal.ts +1 -2
- package/src/oauth/AGENTS.md +1 -1
- package/src/oauth/__tests__/identity-verifier.test.ts +2 -1
- package/src/oauth/connect-orchestrator.ts +8 -34
- package/src/oauth/connect-types.ts +6 -10
- package/src/oauth/manual-token-connection.ts +23 -0
- package/src/oauth/oauth-store.ts +31 -14
- package/src/oauth/platform-connection.test.ts +47 -0
- package/src/oauth/platform-connection.ts +15 -5
- package/src/oauth/provider-serializer.ts +6 -1
- package/src/oauth/seed-providers.ts +56 -106
- package/src/outbound-proxy/http-forwarder.ts +9 -0
- package/src/permissions/approval-policy.test.ts +1223 -0
- package/src/permissions/approval-policy.ts +309 -0
- package/src/permissions/arg-parser.test.ts +161 -0
- package/src/permissions/arg-parser.ts +141 -0
- package/src/permissions/bash-risk-classifier.test.ts +1620 -0
- package/src/permissions/bash-risk-classifier.ts +950 -0
- package/src/permissions/checker.ts +348 -711
- package/src/permissions/command-registry.test.ts +774 -0
- package/src/permissions/command-registry.ts +1005 -0
- package/src/permissions/defaults.ts +28 -79
- package/src/permissions/file-risk-classifier.test.ts +535 -0
- package/src/permissions/file-risk-classifier.ts +274 -0
- package/src/permissions/gateway-threshold-reader.ts +196 -0
- package/src/permissions/prompter.ts +4 -0
- package/src/permissions/risk-types.ts +262 -0
- package/src/permissions/schedule-risk-classifier.test.ts +129 -0
- package/src/permissions/schedule-risk-classifier.ts +85 -0
- package/src/permissions/secret-prompter.ts +53 -2
- package/src/permissions/shell-identity.ts +2 -42
- package/src/permissions/skill-risk-classifier.test.ts +311 -0
- package/src/permissions/skill-risk-classifier.ts +214 -0
- package/src/permissions/trust-client.ts +52 -25
- package/src/permissions/trust-store-interface.ts +1 -6
- package/src/permissions/trust-store.ts +161 -62
- package/src/permissions/types.ts +25 -14
- package/src/permissions/web-risk-classifier.test.ts +170 -0
- package/src/permissions/web-risk-classifier.ts +89 -0
- package/src/permissions/workspace-policy.ts +9 -19
- package/src/platform/client.ts +19 -1
- package/src/plugins/defaults/circuit-breaker.ts +146 -0
- package/src/plugins/defaults/compaction.ts +145 -0
- package/src/plugins/defaults/empty-response.ts +126 -0
- package/src/plugins/defaults/history-repair.ts +85 -0
- package/src/plugins/defaults/index.ts +116 -0
- package/src/plugins/defaults/injectors.ts +491 -0
- package/src/plugins/defaults/llm-call.ts +82 -0
- package/src/plugins/defaults/memory-retrieval.ts +226 -0
- package/src/plugins/defaults/overflow-reduce.ts +181 -0
- package/src/plugins/defaults/persistence.ts +129 -0
- package/src/plugins/defaults/title-generate.ts +95 -0
- package/src/plugins/defaults/token-estimate.ts +104 -0
- package/src/plugins/defaults/tool-error.ts +126 -0
- package/src/plugins/defaults/tool-execute.ts +89 -0
- package/src/plugins/defaults/tool-result-truncate.ts +88 -0
- package/src/plugins/pipeline.ts +316 -0
- package/src/plugins/plugin-skill-contributions.ts +292 -0
- package/src/plugins/registry.ts +241 -0
- package/src/plugins/types.ts +1134 -0
- package/src/plugins/user-loader.ts +177 -0
- package/src/prompts/persona-resolver.ts +3 -3
- package/src/prompts/system-prompt.ts +19 -20
- package/src/prompts/templates/BOOTSTRAP.md +27 -77
- package/src/prompts/templates/SOUL.md +2 -2
- package/src/prompts/update-bulletin-job.ts +190 -0
- package/src/providers/__tests__/context-overflow-error.test.ts +328 -0
- package/src/providers/__tests__/provider-env-vars.test.ts +102 -0
- package/src/providers/__tests__/retry-callsite.test.ts +424 -0
- package/src/providers/anthropic/client.ts +183 -14
- package/src/providers/call-site-routing.ts +71 -0
- package/src/providers/gemini/client.ts +65 -2
- package/src/providers/managed-proxy/constants.ts +2 -1
- package/src/providers/model-catalog.ts +524 -33
- package/src/providers/model-intents.ts +4 -4
- package/src/providers/openai/chat-completions-provider.ts +57 -1
- package/src/providers/openai/responses-provider.ts +86 -9
- package/src/providers/openrouter/client.ts +80 -9
- package/src/providers/provider-env-vars.ts +56 -0
- package/src/providers/provider-send-message.ts +22 -5
- package/src/providers/ratelimit.ts +4 -0
- package/src/providers/registry.ts +19 -8
- package/src/providers/retry.ts +174 -39
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +55 -0
- package/src/providers/speech-to-text/deepgram-realtime.test.ts +61 -0
- package/src/providers/speech-to-text/deepgram-realtime.ts +57 -0
- package/src/providers/speech-to-text/google-gemini-live-stream.ts +4 -4
- package/src/providers/speech-to-text/provider-catalog.ts +17 -0
- package/src/providers/speech-to-text/resolve.ts +7 -0
- package/src/providers/speech-to-text/xai-realtime.test.ts +646 -0
- package/src/providers/speech-to-text/xai-realtime.ts +821 -0
- package/src/providers/speech-to-text/xai.test.ts +155 -0
- package/src/providers/speech-to-text/xai.ts +97 -0
- package/src/providers/types.ts +93 -3
- package/src/runtime/AGENTS.md +27 -18
- package/src/runtime/__tests__/agent-wake.test.ts +43 -2
- package/src/runtime/__tests__/browser-extension-pair-routes.test.ts +3 -3
- package/src/runtime/__tests__/client-registry.test.ts +293 -0
- package/src/runtime/__tests__/interactive-ui.test.ts +673 -0
- package/src/runtime/agent-wake.ts +63 -22
- package/src/runtime/auth/route-policy.ts +4 -0
- package/src/runtime/btw-sidechain.ts +13 -3
- package/src/runtime/channel-reply-delivery.ts +106 -2
- package/src/runtime/client-registry.ts +261 -0
- package/src/runtime/decision-token.ts +116 -0
- package/src/runtime/gateway-client.ts +2 -2
- package/src/runtime/http-router.ts +32 -0
- package/src/runtime/http-server.ts +129 -9
- package/src/runtime/http-types.ts +23 -3
- package/src/runtime/interactive-ui.ts +362 -0
- package/src/runtime/invite-instruction-generator.ts +2 -2
- package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +176 -0
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +390 -0
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +221 -0
- package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +1540 -0
- package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +453 -0
- package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +222 -0
- package/src/runtime/migrations/gcs-signed-url.ts +162 -0
- package/src/runtime/migrations/vbundle-builder.ts +1 -22
- package/src/runtime/migrations/vbundle-importer.ts +154 -9
- package/src/runtime/migrations/vbundle-metadata-merge.ts +124 -0
- package/src/runtime/migrations/vbundle-streaming-importer.ts +2522 -0
- package/src/runtime/migrations/vbundle-streaming-validator.ts +244 -0
- package/src/runtime/migrations/vbundle-tar-stream.ts +217 -0
- package/src/runtime/migrations/vbundle-validator.ts +15 -6
- package/src/runtime/routes/__tests__/home-feed-routes.test.ts +111 -0
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +114 -75
- package/src/runtime/routes/__tests__/migration-vellum-metadata-reconcile.test.ts +246 -0
- package/src/runtime/routes/approval-prompt-ts-tracker.ts +78 -0
- package/src/runtime/routes/approval-routes.ts +29 -17
- package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +9 -0
- package/src/runtime/routes/avatar-routes.ts +20 -4
- package/src/runtime/routes/browser-extension-pair-routes.ts +27 -8
- package/src/runtime/routes/btw-routes.ts +1 -4
- package/src/runtime/routes/conversation-management-routes.ts +20 -2
- package/src/runtime/routes/conversation-routes.ts +351 -138
- package/src/runtime/routes/debug-routes.ts +1 -1
- package/src/runtime/routes/diagnostics-routes.ts +6 -4
- package/src/runtime/routes/events-routes.ts +16 -0
- package/src/runtime/routes/guardian-approval-interception.ts +33 -3
- package/src/runtime/routes/guardian-approval-prompt.ts +13 -3
- package/src/runtime/routes/home-feed-routes.ts +120 -2
- package/src/runtime/routes/inbound-message-handler.ts +987 -2
- package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +113 -2
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +61 -3
- package/src/runtime/routes/inbound-stages/edit-intercept.ts +129 -6
- package/src/runtime/routes/integrations/slack/channel.ts +25 -3
- package/src/runtime/routes/llm-context-normalization.ts +23 -1
- package/src/runtime/routes/memory-item-routes.test.ts +1 -0
- package/src/runtime/routes/migration-routes.ts +720 -127
- package/src/runtime/routes/playground/__tests__/force-compact.test.ts +284 -0
- package/src/runtime/routes/playground/__tests__/guard.test.ts +80 -0
- package/src/runtime/routes/playground/__tests__/inject-failures.test.ts +294 -0
- package/src/runtime/routes/playground/__tests__/reset-circuit.test.ts +271 -0
- package/src/runtime/routes/playground/__tests__/seed-conversation.test.ts +202 -0
- package/src/runtime/routes/playground/__tests__/seeded-conversations.test.ts +309 -0
- package/src/runtime/routes/playground/__tests__/state.test.ts +224 -0
- package/src/runtime/routes/playground/conversation-not-found.ts +29 -0
- package/src/runtime/routes/playground/deps.ts +56 -0
- package/src/runtime/routes/playground/force-compact.ts +73 -0
- package/src/runtime/routes/playground/guard.ts +37 -0
- package/src/runtime/routes/playground/index.ts +28 -0
- package/src/runtime/routes/playground/inject-failures.ts +159 -0
- package/src/runtime/routes/playground/reset-circuit.ts +115 -0
- package/src/runtime/routes/playground/seed-conversation.ts +139 -0
- package/src/runtime/routes/playground/seeded-conversations.ts +78 -0
- package/src/runtime/routes/playground/state.ts +78 -0
- package/src/runtime/routes/schedule-routes.ts +89 -8
- package/src/runtime/routes/settings-routes.ts +4 -2
- package/src/runtime/routes/trust-rules-routes.ts +30 -14
- package/src/runtime/routes/work-items-routes.test.ts +1 -1
- package/src/runtime/routes/work-items-routes.ts +3 -2
- package/src/runtime/services/__tests__/analyze-conversation.test.ts +25 -43
- package/src/runtime/services/analyze-conversation.ts +12 -16
- package/src/runtime/skill-route-registry.ts +97 -15
- package/src/schedule/run-script.ts +68 -0
- package/src/schedule/schedule-store.ts +7 -1
- package/src/schedule/scheduler.ts +56 -8
- package/src/security/__tests__/provider-key-env-fallback.test.ts +119 -0
- package/src/security/__tests__/untrusted-content.test.ts +109 -0
- package/src/security/oauth2.ts +98 -35
- package/src/security/secure-keys.ts +7 -8
- package/src/security/token-manager.ts +27 -13
- package/src/security/untrusted-content.ts +102 -0
- package/src/skills/catalog-cache.ts +35 -9
- package/src/skills/catalog-install.ts +31 -3
- package/src/skills/skill-cache-store.ts +97 -0
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +76 -0
- package/src/stt/daemon-batch-transcriber.ts +33 -0
- package/src/stt/stt-stream-session.ts +8 -1
- package/src/stt/types.ts +5 -1
- package/src/subagent/manager.ts +41 -13
- package/src/tasks/ephemeral-permissions.ts +9 -4
- package/src/telemetry/usage-telemetry-reporter.ts +27 -5
- package/src/tools/browser/__tests__/browser-status.test.ts +234 -2
- package/src/tools/browser/browser-execution.ts +150 -54
- package/src/tools/browser/cdp-client/__tests__/extension-cdp-client.test.ts +230 -0
- package/src/tools/browser/cdp-client/__tests__/factory.test.ts +146 -3
- package/src/tools/browser/cdp-client/cdp-inspect/discovery.ts +22 -0
- package/src/tools/browser/cdp-client/extension-cdp-client.ts +54 -3
- package/src/tools/browser/cdp-client/factory.ts +15 -4
- package/src/tools/credentials/tool-policy.ts +39 -5
- package/src/tools/credentials/vault.ts +9 -4
- package/src/tools/executor.ts +129 -73
- package/src/tools/filesystem/write.ts +52 -0
- package/src/tools/host-terminal/host-shell.ts +45 -5
- package/src/tools/memory/register.test.ts +185 -0
- package/src/tools/memory/register.ts +3 -1
- package/src/tools/network/script-proxy/session-manager.ts +37 -1
- package/src/tools/network/web-fetch.ts +20 -10
- package/src/tools/network/web-search.ts +19 -4
- package/src/tools/permission-checker.ts +116 -46
- package/src/tools/policy-context.ts +29 -8
- package/src/tools/registry.ts +195 -6
- package/src/tools/schedule/create.ts +23 -8
- package/src/tools/schedule/update.ts +3 -1
- package/src/tools/secret-detection-handler.ts +0 -51
- package/src/tools/side-effects.ts +0 -11
- package/src/tools/skills/execute.ts +2 -2
- package/src/tools/skills/sandbox-runner.ts +5 -2
- package/src/tools/system/avatar-generator.ts +6 -2
- package/src/tools/terminal/backends/native.ts +51 -2
- package/src/tools/terminal/safe-env.ts +3 -2
- package/src/tools/terminal/shell.ts +1 -0
- package/src/tools/tool-manifest.ts +6 -21
- package/src/tools/types.ts +40 -5
- package/src/tools/verification-control-plane-policy.ts +1 -1
- package/src/tts/__tests__/provider-adapters.test.ts +240 -13
- package/src/tts/provider-catalog.ts +18 -0
- package/src/tts/providers/index.ts +2 -0
- package/src/tts/providers/xai-provider.ts +224 -0
- package/src/tts/types.ts +46 -0
- package/src/types/tar-stream.d.ts +66 -0
- package/src/util/json.ts +17 -0
- package/src/util/platform.ts +9 -4
- package/src/util/pricing.ts +41 -8
- package/src/watcher/engine.ts +1 -1
- package/src/watcher/providers/google-calendar.ts +134 -8
- package/src/watcher/providers/outlook-calendar.ts +42 -2
- package/src/workspace/git-service.ts +23 -4
- package/src/workspace/migrations/006-services-config.ts +2 -4
- package/src/workspace/migrations/022-move-hooks-to-workspace.ts +2 -3
- package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +516 -0
- package/src/workspace/migrations/039-drop-legacy-llm-keys.ts +171 -0
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +154 -0
- package/src/workspace/migrations/041-backfill-google-gmail-settings-scope.ts +56 -0
- package/src/workspace/migrations/042-fix-backfill-google-gmail-settings-scope.ts +70 -0
- package/src/workspace/migrations/043-release-notes-latex-rendering.ts +75 -0
- package/src/workspace/migrations/044-bump-stale-provider-stream-timeout.ts +51 -0
- package/src/workspace/migrations/045-release-notes-meet-avatar.ts +130 -0
- package/src/workspace/migrations/046-seed-conversation-starters-callsite.ts +108 -0
- package/src/workspace/migrations/047-remove-watch-callsites.ts +54 -0
- package/src/workspace/migrations/048-remove-workspace-hooks.ts +81 -0
- package/src/workspace/migrations/049-release-notes-default-sonnet.ts +80 -0
- package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +86 -0
- package/src/workspace/migrations/051-seed-conversation-summarization-callsite.ts +128 -0
- package/src/workspace/migrations/AGENTS.md +1 -1
- package/src/workspace/migrations/registry.ts +28 -0
- package/src/workspace/provider-commit-message-generator.ts +19 -38
- package/tsconfig.json +1 -1
- package/hook-templates/debug-prompt-logger/hook.json +0 -7
- package/hook-templates/debug-prompt-logger/run.sh +0 -66
- package/src/__tests__/context-overflow-approval.test.ts +0 -156
- package/src/__tests__/gmail-archive-fallback.test.ts +0 -193
- package/src/__tests__/gmail-archive-gate.test.ts +0 -246
- package/src/__tests__/gmail-preferences.test.ts +0 -117
- package/src/__tests__/hooks-blocking.test.ts +0 -178
- package/src/__tests__/hooks-cli.test.ts +0 -182
- package/src/__tests__/hooks-config.test.ts +0 -108
- package/src/__tests__/hooks-discovery.test.ts +0 -211
- package/src/__tests__/hooks-integration.test.ts +0 -196
- package/src/__tests__/hooks-manager.test.ts +0 -226
- package/src/__tests__/hooks-runner.test.ts +0 -175
- package/src/__tests__/hooks-settings.test.ts +0 -160
- package/src/__tests__/hooks-templates.test.ts +0 -169
- package/src/__tests__/hooks-ts-runner.test.ts +0 -170
- package/src/__tests__/hooks-watch.test.ts +0 -112
- package/src/__tests__/notification-schedule-dedup.test.ts +0 -213
- package/src/__tests__/oauth-scope-policy.test.ts +0 -180
- package/src/__tests__/outlook-attachments.test.ts +0 -301
- package/src/__tests__/outlook-automation-tools.test.ts +0 -425
- package/src/__tests__/outlook-categories.test.ts +0 -212
- package/src/__tests__/outlook-compose-tools.test.ts +0 -325
- package/src/__tests__/outlook-declutter-tools.test.ts +0 -585
- package/src/__tests__/outlook-follow-up.test.ts +0 -196
- package/src/__tests__/outlook-trash.test.ts +0 -77
- package/src/__tests__/outlook-unsubscribe.test.ts +0 -279
- package/src/__tests__/send-notification-tool.test.ts +0 -83
- package/src/__tests__/update-bulletin-format.test.ts +0 -181
- package/src/__tests__/update-bulletin-state.test.ts +0 -135
- package/src/__tests__/update-bulletin.test.ts +0 -478
- package/src/__tests__/update-template-contract.test.ts +0 -29
- package/src/cli/commands/doctor.ts +0 -341
- package/src/cli/commands/shotgun.ts +0 -266
- package/src/config/bundled-skills/browser/SKILL.md +0 -88
- package/src/config/bundled-skills/browser/TOOLS.json +0 -516
- package/src/config/bundled-skills/browser/tools/browser-attach.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-click.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-close.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-detach.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-extract.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-fill-credential.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-hover.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-navigate.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-press-key.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-screenshot.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-scroll.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-select-option.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-snapshot.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-status.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-type.ts +0 -12
- package/src/config/bundled-skills/browser/tools/browser-wait-for-download.ts +0 -49
- package/src/config/bundled-skills/browser/tools/browser-wait-for.ts +0 -12
- package/src/config/bundled-skills/chatgpt-import/SKILL.md +0 -27
- package/src/config/bundled-skills/chatgpt-import/TOOLS.json +0 -27
- package/src/config/bundled-skills/chatgpt-import/tools/chatgpt-import.ts +0 -378
- package/src/config/bundled-skills/conversations/SKILL.md +0 -20
- package/src/config/bundled-skills/conversations/TOOLS.json +0 -23
- package/src/config/bundled-skills/conversations/tools/rename-conversation.ts +0 -66
- package/src/config/bundled-skills/gmail/SKILL.md +0 -221
- package/src/config/bundled-skills/gmail/TOOLS.json +0 -588
- package/src/config/bundled-skills/gmail/tools/gmail-archive.ts +0 -256
- package/src/config/bundled-skills/gmail/tools/gmail-attachments.ts +0 -112
- package/src/config/bundled-skills/gmail/tools/gmail-draft.ts +0 -44
- package/src/config/bundled-skills/gmail/tools/gmail-filters.ts +0 -81
- package/src/config/bundled-skills/gmail/tools/gmail-follow-up.ts +0 -108
- package/src/config/bundled-skills/gmail/tools/gmail-forward.ts +0 -146
- package/src/config/bundled-skills/gmail/tools/gmail-label.ts +0 -53
- package/src/config/bundled-skills/gmail/tools/gmail-outreach-scan.ts +0 -347
- package/src/config/bundled-skills/gmail/tools/gmail-preferences-tool.ts +0 -59
- package/src/config/bundled-skills/gmail/tools/gmail-preferences.ts +0 -82
- package/src/config/bundled-skills/gmail/tools/gmail-send-draft.ts +0 -26
- package/src/config/bundled-skills/gmail/tools/gmail-sender-digest.ts +0 -347
- package/src/config/bundled-skills/gmail/tools/gmail-trash.ts +0 -29
- package/src/config/bundled-skills/gmail/tools/gmail-unsubscribe.ts +0 -122
- package/src/config/bundled-skills/gmail/tools/gmail-vacation.ts +0 -67
- package/src/config/bundled-skills/gmail/tools/scan-result-store.ts +0 -100
- package/src/config/bundled-skills/gmail/tools/shared.ts +0 -47
- package/src/config/bundled-skills/google-calendar/SKILL.md +0 -51
- package/src/config/bundled-skills/google-calendar/TOOLS.json +0 -226
- package/src/config/bundled-skills/google-calendar/calendar-client.ts +0 -223
- package/src/config/bundled-skills/google-calendar/tools/calendar-check-availability.ts +0 -27
- package/src/config/bundled-skills/google-calendar/tools/calendar-create-event.ts +0 -48
- package/src/config/bundled-skills/google-calendar/tools/calendar-get-event.ts +0 -19
- package/src/config/bundled-skills/google-calendar/tools/calendar-list-events.ts +0 -36
- package/src/config/bundled-skills/google-calendar/tools/calendar-rsvp.ts +0 -58
- package/src/config/bundled-skills/google-calendar/tools/shared.ts +0 -17
- package/src/config/bundled-skills/google-calendar/types.ts +0 -97
- package/src/config/bundled-skills/heartbeat/SKILL.md +0 -43
- package/src/config/bundled-skills/notifications/SKILL.md +0 -40
- package/src/config/bundled-skills/notifications/TOOLS.json +0 -80
- package/src/config/bundled-skills/notifications/tools/send-notification.ts +0 -152
- package/src/config/bundled-skills/notifications/tools/shared.ts +0 -13
- package/src/config/bundled-skills/outlook/SKILL.md +0 -196
- package/src/config/bundled-skills/outlook/TOOLS.json +0 -530
- package/src/config/bundled-skills/outlook/tools/outlook-attachments.ts +0 -85
- package/src/config/bundled-skills/outlook/tools/outlook-categories.ts +0 -77
- package/src/config/bundled-skills/outlook/tools/outlook-draft.ts +0 -84
- package/src/config/bundled-skills/outlook/tools/outlook-follow-up.ts +0 -94
- package/src/config/bundled-skills/outlook/tools/outlook-forward.ts +0 -49
- package/src/config/bundled-skills/outlook/tools/outlook-outreach-scan.ts +0 -237
- package/src/config/bundled-skills/outlook/tools/outlook-rules.ts +0 -161
- package/src/config/bundled-skills/outlook/tools/outlook-send-draft.ts +0 -32
- package/src/config/bundled-skills/outlook/tools/outlook-sender-digest.ts +0 -272
- package/src/config/bundled-skills/outlook/tools/outlook-trash.ts +0 -29
- package/src/config/bundled-skills/outlook/tools/outlook-unsubscribe.ts +0 -129
- package/src/config/bundled-skills/outlook/tools/outlook-vacation.ts +0 -87
- package/src/config/bundled-skills/outlook/tools/shared.ts +0 -20
- package/src/config/bundled-skills/outlook-calendar/SKILL.md +0 -51
- package/src/config/bundled-skills/outlook-calendar/TOOLS.json +0 -221
- package/src/config/bundled-skills/outlook-calendar/calendar-client.ts +0 -252
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.ts +0 -53
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.ts +0 -74
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.ts +0 -18
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.ts +0 -46
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.ts +0 -36
- package/src/config/bundled-skills/outlook-calendar/tools/shared.ts +0 -17
- package/src/config/bundled-skills/outlook-calendar/types.ts +0 -120
- package/src/config/bundled-skills/screen-watch/SKILL.md +0 -27
- package/src/config/bundled-skills/screen-watch/TOOLS.json +0 -35
- package/src/config/bundled-skills/screen-watch/tools/start-screen-watch.ts +0 -12
- package/src/config/bundled-skills/skills-catalog/SKILL.md +0 -84
- package/src/config/bundled-skills/slack/SKILL.md +0 -108
- package/src/config/bundled-skills/tasks/SKILL.md +0 -37
- package/src/config/bundled-skills/tasks/TOOLS.json +0 -353
- package/src/config/bundled-skills/tasks/icon.svg +0 -34
- package/src/config/bundled-skills/tasks/tools/task-delete.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-list-add.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-list-remove.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-list-show.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-list-update.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-list.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-queue-run.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-run.ts +0 -12
- package/src/config/bundled-skills/tasks/tools/task-save.ts +0 -12
- package/src/config/bundled-skills/watcher/SKILL.md +0 -31
- package/src/config/bundled-skills/watcher/TOOLS.json +0 -167
- package/src/config/bundled-skills/watcher/tools/watcher-create.ts +0 -12
- package/src/config/bundled-skills/watcher/tools/watcher-delete.ts +0 -12
- package/src/config/bundled-skills/watcher/tools/watcher-digest.ts +0 -12
- package/src/config/bundled-skills/watcher/tools/watcher-list.ts +0 -12
- package/src/config/bundled-skills/watcher/tools/watcher-update.ts +0 -12
- package/src/daemon/context-overflow-approval.ts +0 -52
- package/src/daemon/watch-handler.ts +0 -399
- package/src/hooks/cli.ts +0 -253
- package/src/hooks/config.ts +0 -100
- package/src/hooks/discovery.ts +0 -135
- package/src/hooks/manager.ts +0 -179
- package/src/hooks/runner.ts +0 -117
- package/src/hooks/templates.ts +0 -77
- package/src/hooks/types.ts +0 -75
- package/src/oauth/scope-policy.ts +0 -89
- package/src/prompts/templates/UPDATES.md +0 -50
- package/src/prompts/update-bulletin-format.ts +0 -85
- package/src/prompts/update-bulletin-state.ts +0 -58
- package/src/prompts/update-bulletin-template-path.ts +0 -13
- package/src/prompts/update-bulletin.ts +0 -139
- package/src/runtime/gateway-internal-client.ts +0 -94
- package/src/runtime/routes/watch-routes.ts +0 -156
- package/src/shared/provider-env-vars.ts +0 -19
- package/src/signals/shotgun.ts +0 -203
- package/src/tools/watch/screen-watch.ts +0 -144
- package/src/tools/watch/watch-state.ts +0 -142
- package/src/tools/watcher/create.ts +0 -86
- package/src/tools/watcher/delete.ts +0 -36
- package/src/tools/watcher/digest.ts +0 -54
- package/src/tools/watcher/list.ts +0 -83
- package/src/tools/watcher/update.ts +0 -71
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Script Mode Patterns
|
|
2
|
+
|
|
3
|
+
Script mode runs shell commands without LLM involvement, but scripts can escalate to the assistant or notify the user via CLI commands when conditions are met. This makes script mode a building block for conditional automation — fast, deterministic checks that only invoke heavier machinery when needed.
|
|
4
|
+
|
|
5
|
+
## Script → LLM Escalation
|
|
6
|
+
|
|
7
|
+
Use `assistant conversations wake` to hand off to the assistant when a script detects something that needs LLM reasoning. The wake command injects a hint into an existing conversation without creating a user-visible message.
|
|
8
|
+
|
|
9
|
+
Example: poll an API and wake the assistant only when results change.
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
LAST="/workspace/data/api-status-last.txt"
|
|
13
|
+
CURRENT=$(curl -sf https://api.example.com/status)
|
|
14
|
+
[ "$CURRENT" = "$(cat "$LAST" 2>/dev/null)" ] && exit 0
|
|
15
|
+
echo "$CURRENT" > "$LAST"
|
|
16
|
+
assistant conversations wake CONVERSATION_ID --hint "API status changed: $CURRENT" --source scheduled-poll
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Example: check disk usage and escalate to the assistant when it's high.
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
USAGE=$(df /workspace --output=pcent | tail -1 | tr -d ' %')
|
|
23
|
+
[ "$USAGE" -lt 90 ] && exit 0
|
|
24
|
+
assistant conversations wake CONVERSATION_ID --hint "Disk usage at ${USAGE}% — investigate and clean up" --source disk-monitor
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Script → Notification
|
|
28
|
+
|
|
29
|
+
Use `assistant notifications send` to alert the user directly when a script detects something noteworthy. No LLM is involved — the notification goes straight to the user's connected channels.
|
|
30
|
+
|
|
31
|
+
Example: check if a service is down and notify the user.
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
if ! curl -sf --max-time 5 https://myapp.example.com/health > /dev/null; then
|
|
35
|
+
assistant notifications send \
|
|
36
|
+
--source-channel scheduler \
|
|
37
|
+
--source-event-name schedule.notify \
|
|
38
|
+
--message "myapp.example.com health check failed" \
|
|
39
|
+
--urgency high \
|
|
40
|
+
--dedupe-key "myapp-health-$(date +%Y%m%d)"
|
|
41
|
+
fi
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Example: notify when a long-running background job finishes.
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
if [ -f /workspace/data/export-complete.flag ]; then
|
|
48
|
+
assistant notifications send \
|
|
49
|
+
--source-channel scheduler \
|
|
50
|
+
--source-event-name schedule.notify \
|
|
51
|
+
--message "Data export finished — file ready at /workspace/data/export.csv" \
|
|
52
|
+
--no-requires-action
|
|
53
|
+
rm /workspace/data/export-complete.flag
|
|
54
|
+
fi
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Tips
|
|
58
|
+
|
|
59
|
+
Both patterns keep scheduled runs fast and cheap — the script exits immediately when nothing interesting happens, and only reaches for the assistant or notification system when there's something to act on. Use `quiet: true` on the schedule to suppress the per-run completion noise.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"tools": [
|
|
4
4
|
{
|
|
5
5
|
"name": "voice_config_update",
|
|
6
|
-
"description": "Update a voice configuration setting. Use tts_provider to switch the global TTS provider (valid providers: elevenlabs, fish-audio, deepgram — defined by the provider catalog). Use tts_voice_id to set the ElevenLabs voice ID, fish_audio_reference_id for Fish Audio voice reference. Deepgram uses the same API key as speech-to-text and requires no additional voice config. Changes persist to services.tts config and take effect immediately.",
|
|
6
|
+
"description": "Update a voice configuration setting. Use tts_provider to switch the global TTS provider (valid providers: elevenlabs, fish-audio, deepgram, xai — defined by the provider catalog). Use tts_voice_id to set the ElevenLabs voice ID, fish_audio_reference_id for Fish Audio voice reference. Deepgram uses the same API key as speech-to-text and requires no additional voice config. Changes persist to services.tts config and take effect immediately.",
|
|
7
7
|
"category": "system",
|
|
8
8
|
"risk": "low",
|
|
9
9
|
"input_schema": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"tts_provider",
|
|
19
19
|
"tts_voice_id"
|
|
20
20
|
],
|
|
21
|
-
"description": "The voice setting to change. tts_provider selects the global TTS provider from the provider catalog (elevenlabs, fish-audio, deepgram). tts_voice_id sets the ElevenLabs voice. fish_audio_reference_id sets the Fish Audio voice reference. Deepgram uses its default model and shares the STT API key."
|
|
21
|
+
"description": "The voice setting to change. tts_provider selects the global TTS provider from the provider catalog (valid providers: elevenlabs, fish-audio, deepgram, xai). tts_voice_id sets the ElevenLabs voice. fish_audio_reference_id sets the Fish Audio voice reference. Deepgram uses its default model and shares the STT API key."
|
|
22
22
|
},
|
|
23
23
|
"value": {
|
|
24
|
-
"description": "The new value for the setting. For tts_provider:
|
|
24
|
+
"description": "The new value for the setting. For tts_provider: one of elevenlabs, fish-audio, deepgram, xai. For tts_voice_id: an alphanumeric ElevenLabs voice ID. For fish_audio_reference_id: a Fish Audio voice reference ID. For conversation_timeout: seconds (5, 10, 15, 30, or 60). For activation_key: key identifier string."
|
|
25
25
|
},
|
|
26
26
|
"activity": {
|
|
27
27
|
"type": "string",
|
|
@@ -22,26 +22,6 @@ import * as appCreate from "./bundled-skills/app-builder/tools/app-create.js";
|
|
|
22
22
|
import * as appDelete from "./bundled-skills/app-builder/tools/app-delete.js";
|
|
23
23
|
import * as appGenerateIcon from "./bundled-skills/app-builder/tools/app-generate-icon.js";
|
|
24
24
|
import * as appRefresh from "./bundled-skills/app-builder/tools/app-refresh.js";
|
|
25
|
-
// ── browser ────────────────────────────────────────────────────────────────────
|
|
26
|
-
import * as browserAttach from "./bundled-skills/browser/tools/browser-attach.js";
|
|
27
|
-
import * as browserClick from "./bundled-skills/browser/tools/browser-click.js";
|
|
28
|
-
import * as browserClose from "./bundled-skills/browser/tools/browser-close.js";
|
|
29
|
-
import * as browserDetach from "./bundled-skills/browser/tools/browser-detach.js";
|
|
30
|
-
import * as browserExtract from "./bundled-skills/browser/tools/browser-extract.js";
|
|
31
|
-
import * as browserFillCredential from "./bundled-skills/browser/tools/browser-fill-credential.js";
|
|
32
|
-
import * as browserHover from "./bundled-skills/browser/tools/browser-hover.js";
|
|
33
|
-
import * as browserNavigate from "./bundled-skills/browser/tools/browser-navigate.js";
|
|
34
|
-
import * as browserPressKey from "./bundled-skills/browser/tools/browser-press-key.js";
|
|
35
|
-
import * as browserScreenshot from "./bundled-skills/browser/tools/browser-screenshot.js";
|
|
36
|
-
import * as browserScroll from "./bundled-skills/browser/tools/browser-scroll.js";
|
|
37
|
-
import * as browserSelectOption from "./bundled-skills/browser/tools/browser-select-option.js";
|
|
38
|
-
import * as browserSnapshot from "./bundled-skills/browser/tools/browser-snapshot.js";
|
|
39
|
-
import * as browserStatus from "./bundled-skills/browser/tools/browser-status.js";
|
|
40
|
-
import * as browserType from "./bundled-skills/browser/tools/browser-type.js";
|
|
41
|
-
import * as browserWaitFor from "./bundled-skills/browser/tools/browser-wait-for.js";
|
|
42
|
-
import * as browserWaitForDownload from "./bundled-skills/browser/tools/browser-wait-for-download.js";
|
|
43
|
-
// ── chatgpt-import ─────────────────────────────────────────────────────────────
|
|
44
|
-
import * as chatgptImport from "./bundled-skills/chatgpt-import/tools/chatgpt-import.js";
|
|
45
25
|
// ── computer-use ───────────────────────────────────────────────────────────────
|
|
46
26
|
import * as computerUseClick from "./bundled-skills/computer-use/tools/computer-use-click.js";
|
|
47
27
|
import * as computerUseDone from "./bundled-skills/computer-use/tools/computer-use-done.js";
|
|
@@ -59,8 +39,6 @@ import * as contactMerge from "./bundled-skills/contacts/tools/contact-merge.js"
|
|
|
59
39
|
import * as contactSearch from "./bundled-skills/contacts/tools/contact-search.js";
|
|
60
40
|
import * as contactUpsert from "./bundled-skills/contacts/tools/contact-upsert.js";
|
|
61
41
|
import * as googleContacts from "./bundled-skills/contacts/tools/google-contacts.js";
|
|
62
|
-
// ── conversations ──────────────────────────────────────────────────────────────
|
|
63
|
-
import * as renameConversation from "./bundled-skills/conversations/tools/rename-conversation.js";
|
|
64
42
|
// ── document ───────────────────────────────────────────────────────────────────
|
|
65
43
|
import * as documentCreate from "./bundled-skills/document/tools/document-create.js";
|
|
66
44
|
import * as documentUpdate from "./bundled-skills/document/tools/document-update.js";
|
|
@@ -68,27 +46,6 @@ import * as documentUpdate from "./bundled-skills/document/tools/document-update
|
|
|
68
46
|
import * as followupCreate from "./bundled-skills/followups/tools/followup-create.js";
|
|
69
47
|
import * as followupList from "./bundled-skills/followups/tools/followup-list.js";
|
|
70
48
|
import * as followupResolve from "./bundled-skills/followups/tools/followup-resolve.js";
|
|
71
|
-
// ── gmail ──────────────────────────────────────────────────────────────────────
|
|
72
|
-
import * as gmailArchive from "./bundled-skills/gmail/tools/gmail-archive.js";
|
|
73
|
-
import * as gmailAttachments from "./bundled-skills/gmail/tools/gmail-attachments.js";
|
|
74
|
-
import * as gmailDraft from "./bundled-skills/gmail/tools/gmail-draft.js";
|
|
75
|
-
import * as gmailFilters from "./bundled-skills/gmail/tools/gmail-filters.js";
|
|
76
|
-
import * as gmailFollowUp from "./bundled-skills/gmail/tools/gmail-follow-up.js";
|
|
77
|
-
import * as gmailForward from "./bundled-skills/gmail/tools/gmail-forward.js";
|
|
78
|
-
import * as gmailLabel from "./bundled-skills/gmail/tools/gmail-label.js";
|
|
79
|
-
import * as gmailOutreachScan from "./bundled-skills/gmail/tools/gmail-outreach-scan.js";
|
|
80
|
-
import * as gmailPreferencesTool from "./bundled-skills/gmail/tools/gmail-preferences-tool.js";
|
|
81
|
-
import * as gmailSendDraft from "./bundled-skills/gmail/tools/gmail-send-draft.js";
|
|
82
|
-
import * as gmailSenderDigest from "./bundled-skills/gmail/tools/gmail-sender-digest.js";
|
|
83
|
-
import * as gmailTrash from "./bundled-skills/gmail/tools/gmail-trash.js";
|
|
84
|
-
import * as gmailUnsubscribe from "./bundled-skills/gmail/tools/gmail-unsubscribe.js";
|
|
85
|
-
import * as gmailVacation from "./bundled-skills/gmail/tools/gmail-vacation.js";
|
|
86
|
-
// ── google-calendar ────────────────────────────────────────────────────────────
|
|
87
|
-
import * as calendarCheckAvailability from "./bundled-skills/google-calendar/tools/calendar-check-availability.js";
|
|
88
|
-
import * as calendarCreateEvent from "./bundled-skills/google-calendar/tools/calendar-create-event.js";
|
|
89
|
-
import * as calendarGetEvent from "./bundled-skills/google-calendar/tools/calendar-get-event.js";
|
|
90
|
-
import * as calendarListEvents from "./bundled-skills/google-calendar/tools/calendar-list-events.js";
|
|
91
|
-
import * as calendarRsvp from "./bundled-skills/google-calendar/tools/calendar-rsvp.js";
|
|
92
49
|
// ── image-studio ───────────────────────────────────────────────────────────────
|
|
93
50
|
import * as mediaGenerateImage from "./bundled-skills/image-studio/tools/media-generate-image.js";
|
|
94
51
|
// ── media-processing ───────────────────────────────────────────────────────────
|
|
@@ -109,27 +66,6 @@ import * as messagingRead from "./bundled-skills/messaging/tools/messaging-read.
|
|
|
109
66
|
import * as messagingSearch from "./bundled-skills/messaging/tools/messaging-search.js";
|
|
110
67
|
import * as messagingSend from "./bundled-skills/messaging/tools/messaging-send.js";
|
|
111
68
|
import * as messagingSenderDigest from "./bundled-skills/messaging/tools/messaging-sender-digest.js";
|
|
112
|
-
// ── notifications ──────────────────────────────────────────────────────────────
|
|
113
|
-
import * as sendNotification from "./bundled-skills/notifications/tools/send-notification.js";
|
|
114
|
-
// ── outlook ────────────────────────────────────────────────────────────────────
|
|
115
|
-
import * as outlookAttachments from "./bundled-skills/outlook/tools/outlook-attachments.js";
|
|
116
|
-
import * as outlookCategories from "./bundled-skills/outlook/tools/outlook-categories.js";
|
|
117
|
-
import * as outlookDraft from "./bundled-skills/outlook/tools/outlook-draft.js";
|
|
118
|
-
import * as outlookFollowUp from "./bundled-skills/outlook/tools/outlook-follow-up.js";
|
|
119
|
-
import * as outlookForward from "./bundled-skills/outlook/tools/outlook-forward.js";
|
|
120
|
-
import * as outlookOutreachScan from "./bundled-skills/outlook/tools/outlook-outreach-scan.js";
|
|
121
|
-
import * as outlookRules from "./bundled-skills/outlook/tools/outlook-rules.js";
|
|
122
|
-
import * as outlookSendDraft from "./bundled-skills/outlook/tools/outlook-send-draft.js";
|
|
123
|
-
import * as outlookSenderDigest from "./bundled-skills/outlook/tools/outlook-sender-digest.js";
|
|
124
|
-
import * as outlookTrash from "./bundled-skills/outlook/tools/outlook-trash.js";
|
|
125
|
-
import * as outlookUnsubscribe from "./bundled-skills/outlook/tools/outlook-unsubscribe.js";
|
|
126
|
-
import * as outlookVacation from "./bundled-skills/outlook/tools/outlook-vacation.js";
|
|
127
|
-
// ── outlook-calendar ───────────────────────────────────────────────────────────
|
|
128
|
-
import * as outlookCalendarCheckAvailability from "./bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.js";
|
|
129
|
-
import * as outlookCalendarCreateEvent from "./bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.js";
|
|
130
|
-
import * as outlookCalendarGetEvent from "./bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.js";
|
|
131
|
-
import * as outlookCalendarListEvents from "./bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.js";
|
|
132
|
-
import * as outlookCalendarRsvp from "./bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.js";
|
|
133
69
|
// ── phone-calls ────────────────────────────────────────────────────────────────
|
|
134
70
|
import * as callEnd from "./bundled-skills/phone-calls/tools/call-end.js";
|
|
135
71
|
import * as callStart from "./bundled-skills/phone-calls/tools/call-start.js";
|
|
@@ -144,8 +80,6 @@ import * as scheduleCreate from "./bundled-skills/schedule/tools/schedule-create
|
|
|
144
80
|
import * as scheduleDelete from "./bundled-skills/schedule/tools/schedule-delete.js";
|
|
145
81
|
import * as scheduleList from "./bundled-skills/schedule/tools/schedule-list.js";
|
|
146
82
|
import * as scheduleUpdate from "./bundled-skills/schedule/tools/schedule-update.js";
|
|
147
|
-
// ── screen-watch ───────────────────────────────────────────────────────────────
|
|
148
|
-
import * as startScreenWatch from "./bundled-skills/screen-watch/tools/start-screen-watch.js";
|
|
149
83
|
// ── sequences ──────────────────────────────────────────────────────────────────
|
|
150
84
|
import * as sequenceAnalytics from "./bundled-skills/sequences/tools/sequence-analytics.js";
|
|
151
85
|
import * as sequenceCreate from "./bundled-skills/sequences/tools/sequence-create.js";
|
|
@@ -172,24 +106,8 @@ import * as subagentMessage from "./bundled-skills/subagent/tools/subagent-messa
|
|
|
172
106
|
import * as subagentRead from "./bundled-skills/subagent/tools/subagent-read.js";
|
|
173
107
|
import * as subagentSpawn from "./bundled-skills/subagent/tools/subagent-spawn.js";
|
|
174
108
|
import * as subagentStatus from "./bundled-skills/subagent/tools/subagent-status.js";
|
|
175
|
-
// ── tasks ──────────────────────────────────────────────────────────────────────
|
|
176
|
-
import * as taskDelete from "./bundled-skills/tasks/tools/task-delete.js";
|
|
177
|
-
import * as taskList from "./bundled-skills/tasks/tools/task-list.js";
|
|
178
|
-
import * as taskListAdd from "./bundled-skills/tasks/tools/task-list-add.js";
|
|
179
|
-
import * as taskListRemove from "./bundled-skills/tasks/tools/task-list-remove.js";
|
|
180
|
-
import * as taskListShow from "./bundled-skills/tasks/tools/task-list-show.js";
|
|
181
|
-
import * as taskListUpdate from "./bundled-skills/tasks/tools/task-list-update.js";
|
|
182
|
-
import * as taskQueueRun from "./bundled-skills/tasks/tools/task-queue-run.js";
|
|
183
|
-
import * as taskRun from "./bundled-skills/tasks/tools/task-run.js";
|
|
184
|
-
import * as taskSave from "./bundled-skills/tasks/tools/task-save.js";
|
|
185
109
|
// ── transcribe ─────────────────────────────────────────────────────────────────
|
|
186
110
|
import * as transcribeMedia from "./bundled-skills/transcribe/tools/transcribe-media.js";
|
|
187
|
-
// ── watcher ────────────────────────────────────────────────────────────────────
|
|
188
|
-
import * as watcherCreate from "./bundled-skills/watcher/tools/watcher-create.js";
|
|
189
|
-
import * as watcherDelete from "./bundled-skills/watcher/tools/watcher-delete.js";
|
|
190
|
-
import * as watcherDigest from "./bundled-skills/watcher/tools/watcher-digest.js";
|
|
191
|
-
import * as watcherList from "./bundled-skills/watcher/tools/watcher-list.js";
|
|
192
|
-
import * as watcherUpdate from "./bundled-skills/watcher/tools/watcher-update.js";
|
|
193
111
|
|
|
194
112
|
// ─── Registry ────────────────────────────────────────────────────────────────
|
|
195
113
|
|
|
@@ -206,28 +124,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
206
124
|
["app-builder:tools/app-refresh.ts", appRefresh],
|
|
207
125
|
["app-builder:tools/app-generate-icon.ts", appGenerateIcon],
|
|
208
126
|
|
|
209
|
-
// browser
|
|
210
|
-
["browser:tools/browser-navigate.ts", browserNavigate],
|
|
211
|
-
["browser:tools/browser-snapshot.ts", browserSnapshot],
|
|
212
|
-
["browser:tools/browser-screenshot.ts", browserScreenshot],
|
|
213
|
-
["browser:tools/browser-close.ts", browserClose],
|
|
214
|
-
["browser:tools/browser-attach.ts", browserAttach],
|
|
215
|
-
["browser:tools/browser-detach.ts", browserDetach],
|
|
216
|
-
["browser:tools/browser-click.ts", browserClick],
|
|
217
|
-
["browser:tools/browser-type.ts", browserType],
|
|
218
|
-
["browser:tools/browser-press-key.ts", browserPressKey],
|
|
219
|
-
["browser:tools/browser-scroll.ts", browserScroll],
|
|
220
|
-
["browser:tools/browser-select-option.ts", browserSelectOption],
|
|
221
|
-
["browser:tools/browser-hover.ts", browserHover],
|
|
222
|
-
["browser:tools/browser-wait-for.ts", browserWaitFor],
|
|
223
|
-
["browser:tools/browser-extract.ts", browserExtract],
|
|
224
|
-
["browser:tools/browser-wait-for-download.ts", browserWaitForDownload],
|
|
225
|
-
["browser:tools/browser-fill-credential.ts", browserFillCredential],
|
|
226
|
-
["browser:tools/browser-status.ts", browserStatus],
|
|
227
|
-
|
|
228
|
-
// chatgpt-import
|
|
229
|
-
["chatgpt-import:tools/chatgpt-import.ts", chatgptImport],
|
|
230
|
-
|
|
231
127
|
// computer-use
|
|
232
128
|
["computer-use:tools/computer-use-observe.ts", computerUseObserve],
|
|
233
129
|
["computer-use:tools/computer-use-click.ts", computerUseClick],
|
|
@@ -250,9 +146,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
250
146
|
["contacts:tools/contact-merge.ts", contactMerge],
|
|
251
147
|
["contacts:tools/google-contacts.ts", googleContacts],
|
|
252
148
|
|
|
253
|
-
// conversations
|
|
254
|
-
["conversations:tools/rename-conversation.ts", renameConversation],
|
|
255
|
-
|
|
256
149
|
// document
|
|
257
150
|
["document:tools/document-create.ts", documentCreate],
|
|
258
151
|
["document:tools/document-update.ts", documentUpdate],
|
|
@@ -262,32 +155,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
262
155
|
["followups:tools/followup-list.ts", followupList],
|
|
263
156
|
["followups:tools/followup-resolve.ts", followupResolve],
|
|
264
157
|
|
|
265
|
-
// gmail
|
|
266
|
-
["gmail:tools/gmail-archive.ts", gmailArchive],
|
|
267
|
-
["gmail:tools/gmail-label.ts", gmailLabel],
|
|
268
|
-
["gmail:tools/gmail-trash.ts", gmailTrash],
|
|
269
|
-
["gmail:tools/gmail-unsubscribe.ts", gmailUnsubscribe],
|
|
270
|
-
["gmail:tools/gmail-draft.ts", gmailDraft],
|
|
271
|
-
["gmail:tools/gmail-send-draft.ts", gmailSendDraft],
|
|
272
|
-
["gmail:tools/gmail-attachments.ts", gmailAttachments],
|
|
273
|
-
["gmail:tools/gmail-forward.ts", gmailForward],
|
|
274
|
-
["gmail:tools/gmail-follow-up.ts", gmailFollowUp],
|
|
275
|
-
["gmail:tools/gmail-filters.ts", gmailFilters],
|
|
276
|
-
["gmail:tools/gmail-vacation.ts", gmailVacation],
|
|
277
|
-
["gmail:tools/gmail-sender-digest.ts", gmailSenderDigest],
|
|
278
|
-
["gmail:tools/gmail-outreach-scan.ts", gmailOutreachScan],
|
|
279
|
-
["gmail:tools/gmail-preferences-tool.ts", gmailPreferencesTool],
|
|
280
|
-
|
|
281
|
-
// google-calendar
|
|
282
|
-
["google-calendar:tools/calendar-list-events.ts", calendarListEvents],
|
|
283
|
-
["google-calendar:tools/calendar-get-event.ts", calendarGetEvent],
|
|
284
|
-
["google-calendar:tools/calendar-create-event.ts", calendarCreateEvent],
|
|
285
|
-
[
|
|
286
|
-
"google-calendar:tools/calendar-check-availability.ts",
|
|
287
|
-
calendarCheckAvailability,
|
|
288
|
-
],
|
|
289
|
-
["google-calendar:tools/calendar-rsvp.ts", calendarRsvp],
|
|
290
|
-
|
|
291
158
|
// image-studio
|
|
292
159
|
["image-studio:tools/media-generate-image.ts", mediaGenerateImage],
|
|
293
160
|
|
|
@@ -314,42 +181,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
314
181
|
["messaging:tools/messaging-sender-digest.ts", messagingSenderDigest],
|
|
315
182
|
["messaging:tools/messaging-archive-by-sender.ts", messagingArchiveBySender],
|
|
316
183
|
|
|
317
|
-
// notifications
|
|
318
|
-
["notifications:tools/send-notification.ts", sendNotification],
|
|
319
|
-
|
|
320
|
-
// outlook
|
|
321
|
-
["outlook:tools/outlook-rules.ts", outlookRules],
|
|
322
|
-
["outlook:tools/outlook-vacation.ts", outlookVacation],
|
|
323
|
-
["outlook:tools/outlook-sender-digest.ts", outlookSenderDigest],
|
|
324
|
-
["outlook:tools/outlook-outreach-scan.ts", outlookOutreachScan],
|
|
325
|
-
["outlook:tools/outlook-draft.ts", outlookDraft],
|
|
326
|
-
["outlook:tools/outlook-send-draft.ts", outlookSendDraft],
|
|
327
|
-
["outlook:tools/outlook-forward.ts", outlookForward],
|
|
328
|
-
["outlook:tools/outlook-trash.ts", outlookTrash],
|
|
329
|
-
["outlook:tools/outlook-categories.ts", outlookCategories],
|
|
330
|
-
["outlook:tools/outlook-follow-up.ts", outlookFollowUp],
|
|
331
|
-
["outlook:tools/outlook-unsubscribe.ts", outlookUnsubscribe],
|
|
332
|
-
["outlook:tools/outlook-attachments.ts", outlookAttachments],
|
|
333
|
-
|
|
334
|
-
// outlook-calendar
|
|
335
|
-
[
|
|
336
|
-
"outlook-calendar:tools/outlook-calendar-list-events.ts",
|
|
337
|
-
outlookCalendarListEvents,
|
|
338
|
-
],
|
|
339
|
-
[
|
|
340
|
-
"outlook-calendar:tools/outlook-calendar-get-event.ts",
|
|
341
|
-
outlookCalendarGetEvent,
|
|
342
|
-
],
|
|
343
|
-
[
|
|
344
|
-
"outlook-calendar:tools/outlook-calendar-create-event.ts",
|
|
345
|
-
outlookCalendarCreateEvent,
|
|
346
|
-
],
|
|
347
|
-
[
|
|
348
|
-
"outlook-calendar:tools/outlook-calendar-check-availability.ts",
|
|
349
|
-
outlookCalendarCheckAvailability,
|
|
350
|
-
],
|
|
351
|
-
["outlook-calendar:tools/outlook-calendar-rsvp.ts", outlookCalendarRsvp],
|
|
352
|
-
|
|
353
184
|
// phone-calls
|
|
354
185
|
["phone-calls:tools/call-start.ts", callStart],
|
|
355
186
|
["phone-calls:tools/call-status.ts", callStatus],
|
|
@@ -367,9 +198,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
367
198
|
["schedule:tools/schedule-update.ts", scheduleUpdate],
|
|
368
199
|
["schedule:tools/schedule-delete.ts", scheduleDelete],
|
|
369
200
|
|
|
370
|
-
// screen-watch
|
|
371
|
-
["screen-watch:tools/start-screen-watch.ts", startScreenWatch],
|
|
372
|
-
|
|
373
201
|
// sequences
|
|
374
202
|
["sequences:tools/sequence-create.ts", sequenceCreate],
|
|
375
203
|
["sequences:tools/sequence-list.ts", sequenceList],
|
|
@@ -400,24 +228,6 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
400
228
|
["subagent:tools/subagent-message.ts", subagentMessage],
|
|
401
229
|
["subagent:tools/subagent-read.ts", subagentRead],
|
|
402
230
|
|
|
403
|
-
// tasks
|
|
404
|
-
["tasks:tools/task-save.ts", taskSave],
|
|
405
|
-
["tasks:tools/task-run.ts", taskRun],
|
|
406
|
-
["tasks:tools/task-list.ts", taskList],
|
|
407
|
-
["tasks:tools/task-delete.ts", taskDelete],
|
|
408
|
-
["tasks:tools/task-list-show.ts", taskListShow],
|
|
409
|
-
["tasks:tools/task-list-add.ts", taskListAdd],
|
|
410
|
-
["tasks:tools/task-list-update.ts", taskListUpdate],
|
|
411
|
-
["tasks:tools/task-list-remove.ts", taskListRemove],
|
|
412
|
-
["tasks:tools/task-queue-run.ts", taskQueueRun],
|
|
413
|
-
|
|
414
231
|
// transcribe
|
|
415
232
|
["transcribe:tools/transcribe-media.ts", transcribeMedia],
|
|
416
|
-
|
|
417
|
-
// watcher
|
|
418
|
-
["watcher:tools/watcher-create.ts", watcherCreate],
|
|
419
|
-
["watcher:tools/watcher-list.ts", watcherList],
|
|
420
|
-
["watcher:tools/watcher-update.ts", watcherUpdate],
|
|
421
|
-
["watcher:tools/watcher-delete.ts", watcherDelete],
|
|
422
|
-
["watcher:tools/watcher-digest.ts", watcherDigest],
|
|
423
233
|
]);
|
package/src/config/env.ts
CHANGED
|
@@ -153,14 +153,19 @@ export function getPlatformBaseUrl(): string {
|
|
|
153
153
|
// Config not yet available (early bootstrap) — fall through
|
|
154
154
|
}
|
|
155
155
|
// Resolve the default platform URL from VELLUM_ENVIRONMENT.
|
|
156
|
-
//
|
|
157
|
-
//
|
|
156
|
+
// `production`, `staging`, and `test` map to their respective hosted
|
|
157
|
+
// platforms, `local` points at a developer's locally running platform,
|
|
158
|
+
// and everything else (including unset) falls back to dev-platform.
|
|
158
159
|
const env = str("VELLUM_ENVIRONMENT")?.trim();
|
|
159
160
|
let defaultUrl: string;
|
|
160
161
|
if (env === "production") {
|
|
161
162
|
defaultUrl = "https://platform.vellum.ai";
|
|
162
163
|
} else if (env === "staging") {
|
|
163
164
|
defaultUrl = "https://staging-platform.vellum.ai";
|
|
165
|
+
} else if (env === "test") {
|
|
166
|
+
defaultUrl = "https://test-platform.vellum.ai";
|
|
167
|
+
} else if (env === "local") {
|
|
168
|
+
defaultUrl = "http://localhost:8000";
|
|
164
169
|
} else {
|
|
165
170
|
defaultUrl = "https://dev-platform.vellum.ai";
|
|
166
171
|
}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"scope": "assistant",
|
|
39
39
|
"key": "email-channel",
|
|
40
40
|
"label": "Email Channel",
|
|
41
|
-
"description": "Enable the entire email integration: email CLI commands, email channel, sequences, email readiness probes, invite adapters, and the email-setup skill",
|
|
41
|
+
"description": "Enable the entire email integration: email CLI commands, email channel, domain registration, sequences, email readiness probes, invite adapters, and the email-setup skill",
|
|
42
42
|
"defaultEnabled": false
|
|
43
43
|
},
|
|
44
44
|
{
|
|
@@ -321,21 +321,13 @@
|
|
|
321
321
|
"description": "Show the 'Fork from here' option in message overflow menus",
|
|
322
322
|
"defaultEnabled": false
|
|
323
323
|
},
|
|
324
|
-
{
|
|
325
|
-
"id": "managed-x-oauth-integration",
|
|
326
|
-
"scope": "assistant",
|
|
327
|
-
"key": "managed-x-oauth-integration",
|
|
328
|
-
"label": "Managed X/Twitter OAuth",
|
|
329
|
-
"description": "Enable platform-managed X/Twitter OAuth integration in Models & Services settings",
|
|
330
|
-
"defaultEnabled": false
|
|
331
|
-
},
|
|
332
324
|
{
|
|
333
325
|
"id": "onboarding-pre-chat",
|
|
334
326
|
"scope": "macos",
|
|
335
327
|
"key": "onboarding-pre-chat",
|
|
336
328
|
"label": "Pre-Chat Onboarding Flow",
|
|
337
329
|
"description": "Gates the 3-screen pre-chat onboarding flow (tools, tasks/tone, name exchange) shown before the first conversation",
|
|
338
|
-
"defaultEnabled":
|
|
330
|
+
"defaultEnabled": true
|
|
339
331
|
},
|
|
340
332
|
{
|
|
341
333
|
"id": "home-tab",
|
|
@@ -360,6 +352,46 @@
|
|
|
360
352
|
"label": "Google Meet",
|
|
361
353
|
"description": "Enables the Google Meet joining bot and the meet-join skill.",
|
|
362
354
|
"defaultEnabled": false
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"id": "compaction-v2",
|
|
358
|
+
"scope": "assistant",
|
|
359
|
+
"key": "compaction-v2",
|
|
360
|
+
"label": "Compaction v2",
|
|
361
|
+
"description": "Boundary-message-based compaction pipeline with forked prompt-cache-shared summarization and microcompact pre-pass. Replaces the four-tier overflow reducer and cursor-based storage.",
|
|
362
|
+
"defaultEnabled": false
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"id": "scroll-debug-overlay",
|
|
366
|
+
"scope": "macos",
|
|
367
|
+
"key": "scroll-debug-overlay",
|
|
368
|
+
"label": "Scroll Debug Overlay",
|
|
369
|
+
"description": "Show a live HUD in the top-right of the conversation with scroll geometry, velocity, update rate, and anchor-preserver activity. Developer diagnostic for investigating scroll jank.",
|
|
370
|
+
"defaultEnabled": false
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"id": "message-height-cache",
|
|
374
|
+
"scope": "macos",
|
|
375
|
+
"key": "message-height-cache",
|
|
376
|
+
"label": "Message Height Cache",
|
|
377
|
+
"description": "Swap the transcript's LazyVStack for a plain VStack so scrollContentHeight is the true sum of row heights (no LazyVStack estimator drift). Row frames are not pinned — the earlier frame-pinning approach was removed because it caused overlap when rows grew past their first measurement (streaming, expanding thinking blocks). Tradeoff: eager layout — every row measures up-front, which can stall for many seconds to minutes on very long conversations.",
|
|
378
|
+
"defaultEnabled": true
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "permission-controls-v3",
|
|
382
|
+
"scope": "assistant",
|
|
383
|
+
"key": "permission-controls-v3",
|
|
384
|
+
"label": "Permission Controls v3",
|
|
385
|
+
"description": "Enables permission controls v3: gateway-backed auto-approve thresholds, risk badges on tool results, simplified Allow/Deny permission prompt, and rule editor modal.",
|
|
386
|
+
"defaultEnabled": false
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "compaction-playground",
|
|
390
|
+
"scope": "assistant",
|
|
391
|
+
"key": "compaction-playground",
|
|
392
|
+
"label": "Compaction Playground",
|
|
393
|
+
"description": "Expose the developer-only Compaction Playground tab in macOS Settings and enable the /playground/* HTTP endpoints for exercising compaction conditions. Dev-only; default off.",
|
|
394
|
+
"defaultEnabled": false
|
|
363
395
|
}
|
|
364
396
|
]
|
|
365
397
|
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type LLMCallSite,
|
|
5
|
+
LLMConfigBase,
|
|
6
|
+
type LLMConfigFragment,
|
|
7
|
+
type LLMSchema,
|
|
8
|
+
} from "./schemas/llm.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resolves a fully-specified `LLMConfigBase` for a given call site by layering
|
|
12
|
+
* the call-site override on top of an optional named profile on top of the
|
|
13
|
+
* required `llm.default`.
|
|
14
|
+
*
|
|
15
|
+
* Resolution order (highest precedence wins):
|
|
16
|
+
* 1. `llm.callSites[callSite]` fields (call-site override)
|
|
17
|
+
* 2. `llm.profiles[site.profile]` fields (named profile)
|
|
18
|
+
* 3. `llm.default` fields (required base)
|
|
19
|
+
*
|
|
20
|
+
* Nested objects (`thinking`, `contextWindow`, and
|
|
21
|
+
* `contextWindow.overflowRecovery`) are deep-merged so partial overrides at
|
|
22
|
+
* any nesting level merge into — rather than replace — the corresponding
|
|
23
|
+
* base value.
|
|
24
|
+
*
|
|
25
|
+
* Pure & synchronous: no I/O, no async work.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveCallSiteConfig(
|
|
28
|
+
callSite: LLMCallSite,
|
|
29
|
+
llm: z.infer<typeof LLMSchema>,
|
|
30
|
+
): z.infer<typeof LLMConfigBase> {
|
|
31
|
+
const site = llm.callSites?.[callSite];
|
|
32
|
+
|
|
33
|
+
// No site-level entry: deep-merge `default` against an empty fragment so
|
|
34
|
+
// every code path goes through the same merge codepath.
|
|
35
|
+
if (site == null) {
|
|
36
|
+
return finalize(deepMerge(llm.default as Mergeable, {} as Mergeable));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let profileFragment: LLMConfigFragment | undefined;
|
|
40
|
+
if (site.profile != null) {
|
|
41
|
+
profileFragment = llm.profiles?.[site.profile];
|
|
42
|
+
if (profileFragment == null) {
|
|
43
|
+
// Defensive: `LLMSchema.superRefine` already rejects unknown profile
|
|
44
|
+
// references at config load, so this branch is unreachable for any
|
|
45
|
+
// config that survived schema validation. Throw a clear error in case
|
|
46
|
+
// a hand-crafted (un-parsed) config slips through.
|
|
47
|
+
throw new Error(
|
|
48
|
+
`LLM call site "${callSite}" references undefined profile "${site.profile}"`,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Strip the `profile` discriminator before merging — it isn't a
|
|
54
|
+
// `LLMConfigBase` field.
|
|
55
|
+
const { profile: _profile, ...siteFragment } = site;
|
|
56
|
+
|
|
57
|
+
const merged = deepMerge(
|
|
58
|
+
llm.default as Mergeable,
|
|
59
|
+
(profileFragment ?? {}) as Mergeable,
|
|
60
|
+
siteFragment as Mergeable,
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
return finalize(merged);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Internal helpers
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
|
|
70
|
+
type Mergeable = Record<string, unknown>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns true for objects we should recurse into during deep merge. We
|
|
74
|
+
* deliberately exclude arrays so that array-valued fields (e.g.
|
|
75
|
+
* `pricingOverrides` siblings) get full replacement semantics.
|
|
76
|
+
*/
|
|
77
|
+
function isPlainObject(value: unknown): value is Mergeable {
|
|
78
|
+
return (
|
|
79
|
+
typeof value === "object" &&
|
|
80
|
+
value !== null &&
|
|
81
|
+
!Array.isArray(value) &&
|
|
82
|
+
Object.getPrototypeOf(value) === Object.prototype
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Deep-merges a sequence of fragments where each rightward source overrides
|
|
88
|
+
* the previous. For nested plain objects, recurse so partial overrides merge
|
|
89
|
+
* leaf-by-leaf rather than wholesale-replacing the nested object.
|
|
90
|
+
*
|
|
91
|
+
* `undefined` values in a source are skipped (treated as "no opinion"); this
|
|
92
|
+
* matches Zod fragment semantics where unset optional fields are absent.
|
|
93
|
+
*
|
|
94
|
+
* Plain-object values are always cloned (via recursion) rather than aliased,
|
|
95
|
+
* so the returned config is an isolated snapshot — mutating any nested object
|
|
96
|
+
* on the result cannot affect `llm.default`, named profiles, or other call
|
|
97
|
+
* sites' resolutions. Arrays and primitives are copied by reference; the
|
|
98
|
+
* resolver does not return arrays, and primitives are immutable.
|
|
99
|
+
*/
|
|
100
|
+
function deepMerge(...sources: Mergeable[]): Mergeable {
|
|
101
|
+
const out: Mergeable = {};
|
|
102
|
+
for (const source of sources) {
|
|
103
|
+
for (const [key, value] of Object.entries(source)) {
|
|
104
|
+
if (value === undefined) continue;
|
|
105
|
+
const existing = out[key];
|
|
106
|
+
if (isPlainObject(value)) {
|
|
107
|
+
// Recurse for any plain-object source. Using `existing` as the base
|
|
108
|
+
// when it's also a plain object preserves leaf-by-leaf merge
|
|
109
|
+
// semantics; otherwise we recurse against an empty object so the
|
|
110
|
+
// result is a freshly-allocated clone rather than an alias.
|
|
111
|
+
const base = isPlainObject(existing) ? existing : ({} as Mergeable);
|
|
112
|
+
out[key] = deepMerge(base, value);
|
|
113
|
+
} else {
|
|
114
|
+
out[key] = value;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Cast helper that documents the intent: after merging `llm.default` (which
|
|
123
|
+
* is `LLMConfigBase`) with optional fragments, every required field is still
|
|
124
|
+
* present, so the result satisfies `LLMConfigBase`.
|
|
125
|
+
*/
|
|
126
|
+
function finalize(merged: Mergeable): z.infer<typeof LLMConfigBase> {
|
|
127
|
+
return merged as unknown as z.infer<typeof LLMConfigBase>;
|
|
128
|
+
}
|