@vellumai/assistant 0.5.16 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -0
- package/ARCHITECTURE.md +69 -16
- package/Dockerfile +2 -5
- package/bun.lock +6 -2
- package/docker-entrypoint.sh +32 -1
- package/docs/architecture/integrations.md +1 -1
- package/docs/architecture/memory.md +21 -24
- package/knip.json +2 -1
- package/openapi.yaml +1198 -83
- package/package.json +5 -1
- package/src/__tests__/actor-token-service.test.ts +68 -0
- package/src/__tests__/agent-loop.test.ts +0 -32
- package/src/__tests__/always-loaded-tools-guard.test.ts +2 -2
- package/src/__tests__/anthropic-provider.test.ts +217 -98
- package/src/__tests__/app-compiler.test.ts +120 -0
- package/src/__tests__/app-dir-path-guard.test.ts +1 -0
- package/src/__tests__/app-executors.test.ts +47 -1
- package/src/__tests__/app-source-watcher.test.ts +159 -0
- package/src/__tests__/assistant-feature-flags-integration.test.ts +2 -2
- package/src/__tests__/call-conversation-messages.test.ts +2 -6
- package/src/__tests__/call-domain.test.ts +2 -6
- package/src/__tests__/call-pointer-messages.test.ts +2 -14
- package/src/__tests__/call-recovery.test.ts +2 -6
- package/src/__tests__/call-routes-http.test.ts +2 -6
- package/src/__tests__/call-store.test.ts +2 -6
- package/src/__tests__/cancel-resolves-conversation-key.test.ts +2 -6
- package/src/__tests__/canonical-guardian-store.test.ts +2 -6
- package/src/__tests__/channel-delivery-store.test.ts +2 -6
- package/src/__tests__/channel-retry-sweep.test.ts +2 -6
- package/src/__tests__/checker.test.ts +63 -9
- package/src/__tests__/clawhub.test.ts +54 -24
- package/src/__tests__/cli-command-risk-guard.test.ts +14 -0
- package/src/__tests__/config-schema.test.ts +6 -1
- package/src/__tests__/config-set-platform-guard.test.ts +302 -0
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -6
- package/src/__tests__/contacts-tools.test.ts +31 -0
- package/src/__tests__/context-overflow-reducer.test.ts +86 -0
- package/src/__tests__/context-token-estimator.test.ts +175 -10
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +13 -6
- package/src/__tests__/conversation-agent-loop.test.ts +13 -51
- package/src/__tests__/conversation-attachments.test.ts +2 -6
- package/src/__tests__/conversation-attention-store.test.ts +2 -6
- package/src/__tests__/conversation-clear-safety.test.ts +2 -6
- package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +4 -10
- package/src/__tests__/conversation-disk-view-integration.test.ts +2 -6
- package/src/__tests__/conversation-disk-view.test.ts +2 -6
- package/src/__tests__/conversation-error.test.ts +33 -2
- package/src/__tests__/conversation-fork-crud.test.ts +2 -6
- package/src/__tests__/conversation-history-web-search.test.ts +6 -1
- package/src/__tests__/conversation-load-history-repair.test.ts +5 -1
- package/src/__tests__/conversation-media-retry.test.ts +91 -0
- package/src/__tests__/conversation-runtime-assembly.test.ts +653 -832
- package/src/__tests__/conversation-runtime-workspace.test.ts +1 -93
- package/src/__tests__/conversation-starter-routes.test.ts +20 -11
- package/src/__tests__/conversation-store.test.ts +2 -6
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +17 -4
- package/src/__tests__/conversation-usage.test.ts +2 -6
- package/src/__tests__/conversation-wipe.test.ts +13 -414
- package/src/__tests__/conversation-workspace-cache-state.test.ts +6 -12
- package/src/__tests__/conversation-workspace-injection.test.ts +25 -26
- package/src/__tests__/conversation-workspace-tool-tracking.test.ts +1 -1
- package/src/__tests__/copy-composer-tc-templates.test.ts +335 -0
- package/src/__tests__/credential-execution-feature-gates.test.ts +3 -3
- package/src/__tests__/credential-execution-shell-lockdown.test.ts +2 -2
- package/src/__tests__/credential-security-e2e.test.ts +2 -0
- package/src/__tests__/date-context.test.ts +76 -210
- package/src/__tests__/db-schedule-syntax-migration.test.ts +16 -1
- package/src/__tests__/file-list-tool.test.ts +219 -0
- package/src/__tests__/first-greeting.test.ts +1 -1
- package/src/__tests__/followup-tools.test.ts +2 -6
- package/src/__tests__/graph-extraction-event-date.test.ts +186 -0
- package/src/__tests__/guardian-action-conversation-turn.test.ts +2 -6
- package/src/__tests__/guardian-action-followup-executor.test.ts +2 -6
- package/src/__tests__/guardian-action-followup-store.test.ts +2 -6
- package/src/__tests__/guardian-action-grant-mint-consume.test.ts +2 -6
- package/src/__tests__/guardian-action-late-reply.test.ts +2 -6
- package/src/__tests__/guardian-action-store.test.ts +2 -6
- package/src/__tests__/guardian-binding-drift-heal.test.ts +2 -6
- package/src/__tests__/guardian-decision-primitive-canonical.test.ts +8 -8
- package/src/__tests__/guardian-dispatch.test.ts +2 -6
- package/src/__tests__/guardian-grant-minting.test.ts +2 -14
- package/src/__tests__/guardian-principal-id-roundtrip.test.ts +2 -6
- package/src/__tests__/guardian-routing-invariants.test.ts +192 -6
- package/src/__tests__/guardian-routing-state.test.ts +2 -6
- package/src/__tests__/guardian-verification-voice-binding.test.ts +2 -6
- package/src/__tests__/heartbeat-service.test.ts +180 -3
- package/src/__tests__/identity-routes.test.ts +328 -0
- package/src/__tests__/inbound-invite-redemption.test.ts +2 -6
- package/src/__tests__/injection-block.test.ts +178 -0
- package/src/__tests__/install-meta.test.ts +506 -0
- package/src/__tests__/install-skill-routing.test.ts +293 -0
- package/src/__tests__/invite-redemption-service.test.ts +2 -6
- package/src/__tests__/invite-routes-http.test.ts +2 -6
- package/src/__tests__/jobs-store-qdrant-breaker.test.ts +17 -28
- package/src/__tests__/list-messages-attachments.test.ts +2 -6
- package/src/__tests__/list-messages-tool-merge.test.ts +300 -0
- package/src/__tests__/llm-context-normalization.test.ts +18 -18
- package/src/__tests__/llm-context-route-provider.test.ts +103 -6
- package/src/__tests__/llm-request-log-turn-query.test.ts +164 -6
- package/src/__tests__/llm-usage-store.test.ts +2 -6
- package/src/__tests__/log-export-workspace.test.ts +74 -111
- package/src/__tests__/managed-store.test.ts +38 -11
- package/src/__tests__/mcp-abort-signal.test.ts +5 -0
- package/src/__tests__/mcp-client-auth.test.ts +5 -0
- package/src/__tests__/memory-jobs-worker-backoff.test.ts +2 -8
- package/src/__tests__/memory-recall-log-store.test.ts +134 -6
- package/src/__tests__/memory-upsert-concurrency.test.ts +4 -112
- package/src/__tests__/migration-export-streaming.test.ts +304 -0
- package/src/__tests__/migration-import-commit-http.test.ts +11 -10
- package/src/__tests__/mock-fetch.ts +87 -0
- package/src/__tests__/non-member-access-request.test.ts +2 -6
- package/src/__tests__/notification-decision-recipient-context.test.ts +282 -0
- package/src/__tests__/notification-guardian-path.test.ts +2 -6
- package/src/__tests__/oauth-cli.test.ts +364 -2
- package/src/__tests__/oauth2-gateway-transport.test.ts +18 -3
- package/src/__tests__/onboarding-template-contract.test.ts +62 -14
- package/src/__tests__/outlook-attachments.test.ts +301 -0
- package/src/__tests__/outlook-automation-tools.test.ts +425 -0
- package/src/__tests__/outlook-categories.test.ts +212 -0
- package/src/__tests__/outlook-client-automation.test.ts +246 -0
- package/src/__tests__/outlook-compose-tools.test.ts +325 -0
- package/src/__tests__/outlook-declutter-tools.test.ts +585 -0
- package/src/__tests__/outlook-email-watcher.test.ts +322 -0
- package/src/__tests__/outlook-follow-up.test.ts +196 -0
- package/src/__tests__/outlook-messaging-provider.test.ts +498 -3
- package/src/__tests__/outlook-trash.test.ts +77 -0
- package/src/__tests__/outlook-unsubscribe.test.ts +250 -0
- package/src/__tests__/parser.test.ts +32 -0
- package/src/__tests__/permission-checker-host-gate.test.ts +452 -0
- package/src/__tests__/permission-controls-v2-flag.test.ts +55 -0
- package/src/__tests__/permission-mode-sse.test.ts +418 -0
- package/src/__tests__/permission-mode-store.test.ts +277 -0
- package/src/__tests__/permission-mode.test.ts +101 -0
- package/src/__tests__/platform-bash-auto-approve.test.ts +359 -0
- package/src/__tests__/platform-callback-registration.test.ts +4 -4
- package/src/__tests__/playbook-execution.test.ts +76 -80
- package/src/__tests__/playbook-tools.test.ts +5 -7
- package/src/__tests__/profiler-routes.test.ts +502 -0
- package/src/__tests__/profiler-run-store.test.ts +441 -0
- package/src/__tests__/provider-error-scenarios.test.ts +21 -0
- package/src/__tests__/proxy-approval-callback.test.ts +4 -75
- package/src/__tests__/rebuild-index-graph-nodes.test.ts +273 -0
- package/src/__tests__/registry.test.ts +3 -3
- package/src/__tests__/require-fresh-approval.test.ts +64 -2
- package/src/__tests__/runtime-events-sse-parity.test.ts +2 -6
- package/src/__tests__/runtime-events-sse.test.ts +2 -6
- package/src/__tests__/sandbox-host-parity.test.ts +5 -4
- package/src/__tests__/schedule-store.test.ts +2 -6
- package/src/__tests__/schedule-tools.test.ts +2 -6
- package/src/__tests__/scheduler-recurrence.test.ts +1 -5
- package/src/__tests__/scheduler-reuse-conversation.test.ts +368 -0
- package/src/__tests__/scoped-approval-grants.test.ts +2 -6
- package/src/__tests__/scoped-grant-security-matrix.test.ts +2 -6
- package/src/__tests__/scrub-corrupted-image-attachments.test.ts +278 -0
- package/src/__tests__/search-skills-unified.test.ts +422 -0
- package/src/__tests__/secret-onetime-send.test.ts +2 -0
- package/src/__tests__/send-endpoint-busy.test.ts +44 -9
- package/src/__tests__/sequence-store.test.ts +2 -6
- package/src/__tests__/server-history-render.test.ts +2 -6
- package/src/__tests__/set-permission-mode.test.ts +274 -0
- package/src/__tests__/skill-feature-flags-integration.test.ts +38 -31
- package/src/__tests__/skill-feature-flags.test.ts +6 -6
- package/src/__tests__/skill-load-feature-flag.test.ts +23 -11
- package/src/__tests__/skill-memory.test.ts +2 -741
- package/src/__tests__/skills-uninstall.test.ts +2 -2
- package/src/__tests__/skills.test.ts +1 -1
- package/src/__tests__/slack-inbound-verification.test.ts +2 -6
- package/src/__tests__/strip-memory-injections.test.ts +187 -0
- package/src/__tests__/subagent-detail.test.ts +84 -0
- package/src/__tests__/subagent-disposal.test.ts +308 -0
- package/src/__tests__/subagent-manager-notify.test.ts +19 -10
- package/src/__tests__/subagent-notify-parent.test.ts +390 -0
- package/src/__tests__/subagent-role-registry.test.ts +108 -0
- package/src/__tests__/subagent-tool-filtering.test.ts +71 -0
- package/src/__tests__/subagent-tools.test.ts +464 -4
- package/src/__tests__/system-prompt-ask-mode.test.ts +139 -0
- package/src/__tests__/task-compiler.test.ts +2 -6
- package/src/__tests__/task-management-tools.test.ts +2 -6
- package/src/__tests__/task-memory-cleanup.test.ts +185 -241
- package/src/__tests__/task-runner.test.ts +2 -6
- package/src/__tests__/task-scheduler.test.ts +2 -6
- package/src/__tests__/terminal-tools.test.ts +17 -27
- package/src/__tests__/test-preload.ts +7 -0
- package/src/__tests__/tool-approval-handler.test.ts +2 -6
- package/src/__tests__/tool-executor.test.ts +4 -26
- package/src/__tests__/tool-grant-request-escalation.test.ts +2 -6
- package/src/__tests__/tool-side-effects-slack-dm.test.ts +277 -0
- package/src/__tests__/top-level-renderer.test.ts +10 -13
- package/src/__tests__/trust-store.test.ts +1 -1
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +2 -6
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +118 -8
- package/src/__tests__/trusted-contact-multichannel.test.ts +2 -6
- package/src/__tests__/trusted-contact-verification.test.ts +2 -6
- package/src/__tests__/turn-boundary-resolution.test.ts +2 -6
- package/src/__tests__/usage-cache-backfill-migration.test.ts +1 -6
- package/src/__tests__/usage-routes.test.ts +2 -6
- package/src/__tests__/verification-control-plane-policy.test.ts +0 -2
- package/src/__tests__/voice-invite-redemption.test.ts +2 -6
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +2 -6
- package/src/__tests__/voice-session-bridge.test.ts +2 -6
- package/src/__tests__/volume-security-guard.test.ts +2 -0
- package/src/__tests__/workspace-lifecycle.test.ts +29 -1
- package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +2 -6
- package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +2 -6
- package/src/__tests__/workspace-migration-026-backfill-install-meta.test.ts +558 -0
- package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +387 -0
- package/src/__tests__/workspace-policy.test.ts +1 -1
- package/src/agent/attachments.ts +7 -2
- package/src/agent/image-optimize.ts +165 -0
- package/src/agent/loop.ts +7 -15
- package/src/approvals/guardian-request-resolvers.ts +24 -0
- package/src/avatar/traits-png-sync.ts +3 -3
- package/src/bundler/app-compiler.ts +179 -2
- package/src/bundler/package-resolver.ts +3 -5
- package/src/cli/__tests__/notifications.test.ts +1 -2
- package/src/cli/__tests__/run-assistant-command.ts +29 -0
- package/src/cli/commands/__tests__/email-download.test.ts +245 -0
- package/src/cli/commands/__tests__/email-list.test.ts +192 -0
- package/src/cli/commands/__tests__/email-register.test.ts +186 -0
- package/src/cli/commands/__tests__/email-send.test.ts +291 -0
- package/src/cli/commands/__tests__/email-status.test.ts +181 -0
- package/src/cli/commands/__tests__/email-unregister.test.ts +139 -0
- package/src/cli/commands/__tests__/routes.test.ts +562 -0
- package/src/cli/commands/avatar.ts +3 -3
- package/src/cli/commands/config.ts +26 -13
- package/src/cli/commands/conversations.ts +1 -8
- package/src/cli/commands/doctor.ts +2 -2
- package/src/cli/commands/email.ts +584 -835
- package/src/cli/commands/memory.ts +37 -84
- package/src/cli/commands/notifications.ts +7 -2
- package/src/cli/commands/oauth/__tests__/connect.test.ts +2 -2
- package/src/cli/commands/oauth/__tests__/disconnect.test.ts +2 -2
- package/src/cli/commands/oauth/__tests__/mode.test.ts +8 -1
- package/src/cli/commands/oauth/__tests__/status.test.ts +2 -2
- package/src/cli/commands/oauth/connect.ts +25 -11
- package/src/cli/commands/oauth/mode.ts +7 -0
- package/src/cli/commands/oauth/shared.ts +39 -3
- package/src/cli/commands/platform/__tests__/connect.test.ts +1 -1
- package/src/cli/commands/platform/__tests__/disconnect.test.ts +1 -1
- package/src/cli/commands/platform/__tests__/status.test.ts +5 -5
- package/src/cli/commands/platform/index.ts +16 -16
- package/src/cli/commands/routes.ts +396 -0
- package/src/cli/commands/skills.ts +218 -36
- package/src/cli/commands/trust.ts +2 -2
- package/src/cli/lib/daemon-credential-client.ts +2 -3
- package/src/cli/program.ts +2 -0
- package/src/cli.ts +1 -120
- package/src/config/bundled-skills/acp/TOOLS.json +1 -1
- package/src/config/bundled-skills/app-builder/SKILL.md +4 -1
- package/src/config/bundled-skills/contacts/SKILL.md +0 -1
- package/src/config/bundled-skills/contacts/TOOLS.json +0 -8
- package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +0 -4
- package/src/config/bundled-skills/gmail/SKILL.md +4 -12
- package/src/config/bundled-skills/google-calendar/SKILL.md +1 -9
- package/src/config/bundled-skills/messaging/SKILL.md +17 -18
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +40 -33
- package/src/config/bundled-skills/outlook/SKILL.md +189 -0
- package/src/config/bundled-skills/outlook/TOOLS.json +530 -0
- package/src/config/bundled-skills/outlook/tools/outlook-attachments.ts +85 -0
- package/src/config/bundled-skills/outlook/tools/outlook-categories.ts +77 -0
- package/src/config/bundled-skills/outlook/tools/outlook-draft.ts +84 -0
- package/src/config/bundled-skills/outlook/tools/outlook-follow-up.ts +94 -0
- package/src/config/bundled-skills/outlook/tools/outlook-forward.ts +49 -0
- package/src/config/bundled-skills/outlook/tools/outlook-outreach-scan.ts +237 -0
- package/src/config/bundled-skills/outlook/tools/outlook-rules.ts +161 -0
- package/src/config/bundled-skills/outlook/tools/outlook-send-draft.ts +32 -0
- package/src/config/bundled-skills/outlook/tools/outlook-sender-digest.ts +272 -0
- package/src/config/bundled-skills/outlook/tools/outlook-trash.ts +29 -0
- package/src/config/bundled-skills/outlook/tools/outlook-unsubscribe.ts +129 -0
- package/src/config/bundled-skills/outlook/tools/outlook-vacation.ts +87 -0
- package/src/config/bundled-skills/outlook/tools/shared.ts +20 -0
- package/src/config/bundled-skills/outlook-calendar/SKILL.md +51 -0
- package/src/config/bundled-skills/outlook-calendar/TOOLS.json +221 -0
- package/src/config/bundled-skills/outlook-calendar/calendar-client.ts +252 -0
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.ts +53 -0
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.ts +74 -0
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.ts +18 -0
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.ts +46 -0
- package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.ts +36 -0
- package/src/config/bundled-skills/outlook-calendar/tools/shared.ts +17 -0
- package/src/config/bundled-skills/outlook-calendar/types.ts +120 -0
- package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +47 -40
- package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +16 -29
- package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +16 -18
- package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +39 -47
- package/src/config/bundled-skills/schedule/SKILL.md +22 -2
- package/src/config/bundled-skills/schedule/TOOLS.json +8 -0
- package/src/config/bundled-skills/settings/tools/avatar-get.ts +3 -13
- package/src/config/bundled-skills/settings/tools/avatar-remove.ts +2 -4
- package/src/config/bundled-skills/settings/tools/avatar-update.ts +5 -2
- package/src/config/bundled-skills/slack/SKILL.md +3 -7
- package/src/config/bundled-skills/subagent/SKILL.md +43 -3
- package/src/config/bundled-skills/subagent/TOOLS.json +29 -4
- package/src/config/bundled-tool-registry.ts +56 -4
- package/src/config/env-registry.ts +78 -8
- package/src/config/feature-flag-registry.json +38 -125
- package/src/config/schema.ts +8 -0
- package/src/config/schemas/filing.ts +51 -0
- package/src/config/schemas/heartbeat.ts +15 -12
- package/src/config/schemas/memory-lifecycle.ts +12 -0
- package/src/config/schemas/platform.ts +8 -0
- package/src/config/schemas/security.ts +14 -0
- package/src/config/schemas/timeouts.ts +1 -1
- package/src/config/skills.ts +18 -7
- package/src/context/token-estimator.ts +25 -18
- package/src/context/window-manager.ts +6 -2
- package/src/credential-execution/process-manager.ts +3 -1
- package/src/daemon/app-source-watcher.ts +93 -0
- package/src/daemon/config-watcher.ts +79 -1
- package/src/daemon/context-overflow-reducer.ts +46 -2
- package/src/daemon/conversation-agent-loop-handlers.ts +143 -82
- package/src/daemon/conversation-agent-loop.ts +236 -108
- package/src/daemon/conversation-error.ts +31 -8
- package/src/daemon/conversation-history.ts +4 -19
- package/src/daemon/conversation-lifecycle.ts +36 -9
- package/src/daemon/conversation-media-retry.ts +85 -7
- package/src/daemon/conversation-notifiers.ts +4 -1
- package/src/daemon/conversation-process.ts +13 -7
- package/src/daemon/conversation-runtime-assembly.ts +305 -306
- package/src/daemon/conversation-tool-setup.ts +44 -14
- package/src/daemon/conversation-workspace.ts +1 -2
- package/src/daemon/conversation.ts +59 -2
- package/src/daemon/daemon-control.ts +8 -2
- package/src/daemon/date-context.ts +26 -53
- package/src/daemon/first-greeting.ts +1 -1
- package/src/daemon/handlers/conversations.ts +4 -7
- package/src/daemon/handlers/shared.test.ts +143 -0
- package/src/daemon/handlers/shared.ts +85 -17
- package/src/daemon/handlers/skills.ts +416 -209
- package/src/daemon/lifecycle.ts +212 -131
- package/src/daemon/main.ts +5 -1
- package/src/daemon/message-types/conversations.ts +29 -7
- package/src/daemon/message-types/messages.ts +12 -2
- package/src/daemon/message-types/schedules.ts +1 -0
- package/src/daemon/message-types/settings.ts +6 -0
- package/src/daemon/message-types/skills.ts +97 -36
- package/src/daemon/profiler-run-store.ts +557 -0
- package/src/daemon/providers-setup.ts +5 -0
- package/src/daemon/server.ts +100 -11
- package/src/daemon/shutdown-handlers.ts +5 -0
- package/src/daemon/tool-side-effects.ts +50 -8
- package/src/export/transcript-formatter.ts +148 -0
- package/src/filing/filing-service.ts +228 -0
- package/src/heartbeat/heartbeat-service.ts +97 -7
- package/src/hooks/cli.ts +2 -2
- package/src/hooks/runner.ts +15 -38
- package/src/inbound/platform-callback-registration.ts +14 -14
- package/src/mcp/client.ts +6 -0
- package/src/mcp/mcp-oauth-provider.ts +149 -27
- package/src/memory/admin.ts +42 -75
- package/src/memory/app-store.ts +69 -0
- package/src/memory/conversation-bootstrap.ts +3 -1
- package/src/memory/conversation-crud.ts +211 -288
- package/src/memory/conversation-group-migration.ts +157 -0
- package/src/memory/conversation-queries.ts +61 -13
- package/src/memory/conversation-title-service.ts +1 -0
- package/src/memory/db-init.ts +194 -361
- package/src/memory/embed.ts +73 -0
- package/src/memory/embedding-backend.ts +8 -14
- package/src/memory/embedding-runtime-manager.ts +12 -114
- package/src/memory/fingerprint.ts +2 -2
- package/src/memory/graph/bootstrap.ts +521 -0
- package/src/memory/graph/capability-seed.ts +449 -0
- package/src/memory/graph/consolidation.ts +725 -0
- package/src/memory/graph/conversation-graph-memory.ts +659 -0
- package/src/memory/graph/decay.test.ts +208 -0
- package/src/memory/graph/decay.ts +195 -0
- package/src/memory/graph/extraction-job.ts +74 -0
- package/src/memory/graph/extraction.test.ts +936 -0
- package/src/memory/graph/extraction.ts +1297 -0
- package/src/memory/graph/graph-memory-state-store.ts +37 -0
- package/src/memory/graph/graph-search.ts +280 -0
- package/src/memory/graph/image-ref-utils.ts +29 -0
- package/src/memory/graph/injection.test.ts +513 -0
- package/src/memory/graph/injection.ts +469 -0
- package/src/memory/graph/inspect.ts +543 -0
- package/src/memory/graph/narrative.ts +267 -0
- package/src/memory/graph/pattern-scan.ts +269 -0
- package/src/memory/graph/retriever.ts +1111 -0
- package/src/memory/graph/scoring.test.ts +548 -0
- package/src/memory/graph/scoring.ts +232 -0
- package/src/memory/graph/serendipity.ts +65 -0
- package/src/memory/graph/store.test.ts +1098 -0
- package/src/memory/graph/store.ts +838 -0
- package/src/memory/graph/tool-handlers.ts +301 -0
- package/src/memory/graph/tools.ts +97 -0
- package/src/memory/graph/triggers.test.ts +487 -0
- package/src/memory/graph/triggers.ts +223 -0
- package/src/memory/graph/types.ts +295 -0
- package/src/memory/group-crud.ts +191 -0
- package/src/memory/indexer.ts +37 -19
- package/src/memory/job-handlers/cleanup.ts +32 -42
- package/src/memory/job-handlers/conversation-starters.ts +91 -53
- package/src/memory/job-handlers/embedding.ts +5 -31
- package/src/memory/job-handlers/index-maintenance.ts +23 -11
- package/src/memory/job-handlers/summarization.ts +32 -17
- package/src/memory/job-utils.ts +1 -1
- package/src/memory/jobs-store.ts +21 -31
- package/src/memory/jobs-worker.ts +180 -129
- package/src/memory/llm-request-log-store.ts +96 -12
- package/src/memory/memory-recall-log-store.ts +49 -5
- package/src/memory/message-content.ts +1 -0
- package/src/memory/migrations/202-memory-graph-tables.ts +130 -0
- package/src/memory/migrations/203-drop-memory-items-tables.ts +55 -0
- package/src/memory/migrations/204-rename-memory-graph-type-values.ts +46 -0
- package/src/memory/migrations/205-memory-graph-image-refs.ts +11 -0
- package/src/memory/migrations/206-memory-graph-node-edits.ts +19 -0
- package/src/memory/migrations/206-scrub-corrupted-image-attachments.ts +131 -0
- package/src/memory/migrations/207-conversation-graph-memory-state.ts +20 -0
- package/src/memory/migrations/208-conversations-last-message-at.ts +35 -0
- package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +85 -0
- package/src/memory/migrations/210-schedule-reuse-conversation.ts +13 -0
- package/src/memory/migrations/211-memory-recall-logs-query-context.ts +21 -0
- package/src/memory/migrations/212-llm-request-logs-created-at-index.ts +19 -0
- package/src/memory/migrations/index.ts +12 -0
- package/src/memory/migrations/registry.ts +16 -0
- package/src/memory/qdrant-client.ts +44 -17
- package/src/memory/schema/conversations.ts +14 -0
- package/src/memory/schema/index.ts +1 -0
- package/src/memory/schema/infrastructure.ts +8 -1
- package/src/memory/schema/memory-core.ts +0 -51
- package/src/memory/schema/memory-graph.ts +154 -0
- package/src/memory/search/semantic.ts +47 -91
- package/src/memory/task-memory-cleanup.ts +58 -61
- package/src/messaging/providers/outlook/adapter.ts +8 -1
- package/src/messaging/providers/outlook/client.ts +299 -0
- package/src/messaging/providers/outlook/types.ts +118 -0
- package/src/notifications/adapters/macos.ts +1 -0
- package/src/notifications/copy-composer.ts +95 -0
- package/src/notifications/decision-engine.ts +35 -0
- package/src/notifications/signal.ts +16 -0
- package/src/oauth/seed-providers.ts +2 -1
- package/src/permissions/checker.ts +36 -4
- package/src/permissions/defaults.ts +4 -4
- package/src/permissions/permission-mode-store.ts +180 -0
- package/src/permissions/permission-mode.ts +31 -0
- package/src/permissions/workspace-policy.ts +10 -1
- package/src/playbooks/playbook-compiler.ts +19 -18
- package/src/playbooks/types.ts +4 -3
- package/src/prompts/system-prompt.ts +62 -36
- package/src/prompts/templates/BOOTSTRAP-REFERENCE.md +100 -0
- package/src/prompts/templates/BOOTSTRAP.md +70 -165
- package/src/prompts/templates/HEARTBEAT.md +3 -1
- package/src/prompts/templates/SOUL.md +25 -4
- package/src/prompts/templates/UPDATES.md +8 -0
- package/src/providers/anthropic/client.ts +136 -220
- package/src/providers/gemini/client.ts +1 -1
- package/src/providers/openai/client.ts +1 -1
- package/src/providers/registry.ts +1 -1
- package/src/providers/retry.ts +19 -3
- package/src/runtime/actor-trust-resolver.ts +5 -1
- package/src/runtime/auth/route-policy.ts +30 -0
- package/src/runtime/guardian-reply-router.ts +5 -1
- package/src/runtime/http-server.ts +55 -5
- package/src/runtime/http-types.ts +12 -1
- package/src/runtime/middleware/auth.ts +20 -0
- package/src/runtime/migrations/vbundle-builder.ts +389 -3
- package/src/runtime/migrations/vbundle-importer.ts +8 -6
- package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +378 -0
- package/src/runtime/routes/app-management-routes.ts +1 -11
- package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +26 -0
- package/src/runtime/routes/archive-utils.ts +29 -0
- package/src/runtime/routes/attachment-routes.test.ts +106 -0
- package/src/runtime/routes/attachment-routes.ts +106 -16
- package/src/runtime/routes/avatar-routes.ts +2 -9
- package/src/runtime/routes/brain-graph-routes.ts +21 -22
- package/src/runtime/routes/btw-routes.ts +22 -1
- package/src/runtime/routes/conversation-analysis-routes.ts +173 -0
- package/src/runtime/routes/conversation-management-routes.ts +3 -14
- package/src/runtime/routes/conversation-query-routes.ts +49 -3
- package/src/runtime/routes/conversation-routes.ts +264 -44
- package/src/runtime/routes/conversation-starter-routes.ts +2 -2
- package/src/runtime/routes/debug-routes.ts +1 -1
- package/src/runtime/routes/global-search-routes.ts +21 -19
- package/src/runtime/routes/group-routes.ts +207 -0
- package/src/runtime/routes/guardian-action-routes.ts +21 -10
- package/src/runtime/routes/guardian-bootstrap-routes.ts +23 -19
- package/src/runtime/routes/heartbeat-routes.ts +4 -10
- package/src/runtime/routes/identity-routes.ts +53 -18
- package/src/runtime/routes/inbound-message-handler.ts +19 -0
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +292 -0
- package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +207 -0
- package/src/runtime/routes/llm-context-normalization.ts +14 -10
- package/src/runtime/routes/log-export-routes.ts +23 -275
- package/src/runtime/routes/memory-item-routes.test.ts +170 -247
- package/src/runtime/routes/memory-item-routes.ts +341 -388
- package/src/runtime/routes/migration-routes.ts +18 -7
- package/src/runtime/routes/profiler-routes.ts +350 -0
- package/src/runtime/routes/schedule-routes.ts +28 -11
- package/src/runtime/routes/settings-routes.ts +95 -8
- package/src/runtime/routes/skills-routes.ts +103 -37
- package/src/runtime/routes/subagents-routes.ts +28 -7
- package/src/runtime/routes/user-route-dispatcher.ts +223 -0
- package/src/runtime/routes/user-routes.ts +41 -0
- package/src/runtime/routes/work-items-routes.test.ts +2 -6
- package/src/runtime/routes/workspace-routes.ts +0 -1
- package/src/schedule/schedule-store.ts +30 -0
- package/src/schedule/scheduler.ts +52 -18
- package/src/security/oauth2.ts +1 -1
- package/src/security/secure-keys.ts +4 -8
- package/src/shared/provider-env-vars.ts +19 -0
- package/src/skills/catalog-cache.ts +5 -0
- package/src/skills/catalog-install.ts +25 -16
- package/src/skills/clawhub.ts +134 -154
- package/src/skills/install-meta.ts +208 -0
- package/src/skills/managed-store.ts +29 -18
- package/src/skills/skill-memory.ts +12 -229
- package/src/skills/skillssh-registry.ts +19 -17
- package/src/subagent/index.ts +13 -3
- package/src/subagent/manager.ts +308 -29
- package/src/subagent/types.ts +68 -0
- package/src/tasks/task-runner.ts +7 -5
- package/src/telemetry/usage-telemetry-reporter.test.ts +3 -5
- package/src/tools/apps/executors.ts +29 -4
- package/src/tools/browser/runtime-check.ts +3 -1
- package/src/tools/filesystem/list.ts +93 -0
- package/src/tools/memory/register.ts +63 -46
- package/src/tools/permission-checker.ts +85 -1
- package/src/tools/registry.ts +4 -0
- package/src/tools/schedule/create.ts +3 -0
- package/src/tools/schedule/list.ts +1 -0
- package/src/tools/schedule/update.ts +6 -0
- package/src/tools/shared/filesystem/errors.ts +5 -0
- package/src/tools/shared/filesystem/file-ops-service.ts +90 -2
- package/src/tools/shared/filesystem/image-read.ts +22 -85
- package/src/tools/shared/filesystem/types.ts +17 -0
- package/src/tools/shared/shell-output.ts +31 -2
- package/src/tools/subagent/abort.ts +12 -2
- package/src/tools/subagent/message.ts +9 -2
- package/src/tools/subagent/notify-parent.ts +79 -0
- package/src/tools/subagent/read.ts +29 -8
- package/src/tools/subagent/resolve.ts +21 -0
- package/src/tools/subagent/spawn.ts +2 -0
- package/src/tools/subagent/status.ts +11 -1
- package/src/tools/system/avatar-generator.ts +3 -3
- package/src/tools/system/register.ts +23 -0
- package/src/tools/system/set-permission-mode.ts +103 -0
- package/src/tools/terminal/parser.ts +30 -5
- package/src/tools/terminal/safe-env.ts +17 -1
- package/src/tools/tool-manifest.ts +9 -3
- package/src/tools/types.ts +2 -0
- package/src/util/browser.ts +25 -10
- package/src/util/bun-runtime.ts +172 -0
- package/src/util/logger.ts +1 -1
- package/src/util/platform.ts +50 -17
- package/src/watcher/providers/outlook-calendar.ts +343 -0
- package/src/watcher/providers/outlook.ts +198 -0
- package/src/workspace/migrations/023-move-config-files-to-workspace.ts +2 -2
- package/src/workspace/migrations/024-move-runtime-files-to-workspace.ts +2 -2
- package/src/workspace/migrations/025-remove-oauth-app-setup-skills.ts +76 -0
- package/src/workspace/migrations/026-backfill-install-meta.ts +325 -0
- package/src/workspace/migrations/027-remove-orphaned-optimized-images-cache.ts +42 -0
- package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +270 -0
- package/src/workspace/migrations/029-seed-pkb.ts +84 -0
- package/src/workspace/migrations/registry.ts +10 -0
- package/src/workspace/top-level-renderer.ts +5 -9
- package/src/__tests__/cli-memory.test.ts +0 -372
- package/src/__tests__/clipboard.test.ts +0 -88
- package/src/__tests__/context-memory-e2e.test.ts +0 -415
- package/src/__tests__/journal-context.test.ts +0 -268
- package/src/__tests__/memory-context-benchmark.benchmark.test.ts +0 -297
- package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -459
- package/src/__tests__/memory-query-builder.test.ts +0 -59
- package/src/__tests__/memory-recall-quality.test.ts +0 -1046
- package/src/__tests__/memory-regressions.experimental.test.ts +0 -629
- package/src/__tests__/memory-regressions.test.ts +0 -3696
- package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -295
- package/src/cli/cli-memory.ts +0 -176
- package/src/daemon/conversation-memory.ts +0 -207
- package/src/memory/conversation-starters-cadence.ts +0 -74
- package/src/memory/items-extractor.ts +0 -860
- package/src/memory/job-handlers/batch-extraction.ts +0 -753
- package/src/memory/job-handlers/extraction.ts +0 -40
- package/src/memory/job-handlers/journal-carry-forward.test.ts +0 -355
- package/src/memory/job-handlers/journal-carry-forward.ts +0 -255
- package/src/memory/journal-memory.ts +0 -224
- package/src/memory/query-builder.ts +0 -47
- package/src/memory/query-expansion.ts +0 -83
- package/src/memory/retriever.test.ts +0 -1592
- package/src/memory/retriever.ts +0 -1331
- package/src/memory/search/formatting.test.ts +0 -140
- package/src/memory/search/formatting.ts +0 -262
- package/src/memory/search/mmr.ts +0 -139
- package/src/memory/search/ranking.ts +0 -15
- package/src/memory/search/staleness.ts +0 -40
- package/src/memory/search/tier-classifier.ts +0 -18
- package/src/memory/search/types.ts +0 -121
- package/src/prompts/journal-context.ts +0 -154
- package/src/tools/memory/definitions.ts +0 -69
- package/src/tools/memory/handlers.test.ts +0 -562
- package/src/tools/memory/handlers.ts +0 -434
- package/src/util/clipboard.ts +0 -34
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { existsSync, unlinkSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
2
|
|
|
4
3
|
import { buildAssistantEvent } from "../../../../runtime/assistant-event.js";
|
|
5
4
|
import { assistantEventHub } from "../../../../runtime/assistant-event-hub.js";
|
|
@@ -9,7 +8,7 @@ import type {
|
|
|
9
8
|
ToolExecutionResult,
|
|
10
9
|
} from "../../../../tools/types.js";
|
|
11
10
|
import { getLogger } from "../../../../util/logger.js";
|
|
12
|
-
import {
|
|
11
|
+
import { getAvatarImagePath } from "../../../../util/platform.js";
|
|
13
12
|
import { updateIdentityAvatarSection } from "./identity-avatar.js";
|
|
14
13
|
|
|
15
14
|
const log = getLogger("avatar-remove");
|
|
@@ -18,8 +17,7 @@ export async function run(
|
|
|
18
17
|
_input: Record<string, unknown>,
|
|
19
18
|
_context: ToolContext,
|
|
20
19
|
): Promise<ToolExecutionResult> {
|
|
21
|
-
const
|
|
22
|
-
const avatarPath = join(avatarDir, "avatar-image.png");
|
|
20
|
+
const avatarPath = getAvatarImagePath();
|
|
23
21
|
|
|
24
22
|
if (!existsSync(avatarPath)) {
|
|
25
23
|
return {
|
|
@@ -9,14 +9,17 @@ import type {
|
|
|
9
9
|
ToolExecutionResult,
|
|
10
10
|
} from "../../../../tools/types.js";
|
|
11
11
|
import { getLogger } from "../../../../util/logger.js";
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
getAvatarImagePath,
|
|
14
|
+
getWorkspaceDir,
|
|
15
|
+
} from "../../../../util/platform.js";
|
|
13
16
|
import { updateIdentityAvatarSection } from "./identity-avatar.js";
|
|
14
17
|
|
|
15
18
|
const log = getLogger("avatar-update");
|
|
16
19
|
|
|
17
20
|
/** Canonical path where the custom avatar PNG is stored. */
|
|
18
21
|
function getAvatarPath(): string {
|
|
19
|
-
return
|
|
22
|
+
return getAvatarImagePath();
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
export async function run(
|
|
@@ -68,13 +68,9 @@ When you need to send a DM or look up a Slack user by name, check contacts first
|
|
|
68
68
|
|
|
69
69
|
1. **Before calling `users.list`**: Use `contact_search` with `query: "<name>"` and `channel_type: "slack"`. If a matching contact has `externalUserId` (Slack user ID) and `externalChatId` (DM channel ID), skip the API lookups and use those IDs directly with `chat.postMessage`.
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
display_name: "<display name>"
|
|
75
|
-
channels: [{ type: "slack", address: "<slack handle>", external_user_id: "<U...>", external_chat_id: "<D...>" }]
|
|
76
|
-
}
|
|
77
|
-
```
|
|
71
|
+
When `contact_search` returns notes for the recipient, use them to inform the message's tone, formality, and content. Contact notes capture relationship context and communication preferences that should shape how you write to this person.
|
|
72
|
+
|
|
73
|
+
2. **After resolving via API**: When you had to call `users.list` or `conversations.open` to resolve a user, save the contact with `contact_upsert` so you can find them by name next time. External Slack IDs (user ID, DM channel ID) are cached automatically by the messaging layer and should not be passed through `contact_upsert`.
|
|
78
74
|
|
|
79
75
|
## Privacy Rules
|
|
80
76
|
|
|
@@ -6,6 +6,9 @@ metadata:
|
|
|
6
6
|
emoji: "🤖"
|
|
7
7
|
vellum:
|
|
8
8
|
display-name: "Subagent"
|
|
9
|
+
activation-hints:
|
|
10
|
+
- "Run tasks in parallel, delegate work to background agents, or do multiple things at once"
|
|
11
|
+
- "Spawn a researcher, coder, or planner agent for independent work"
|
|
9
12
|
---
|
|
10
13
|
|
|
11
14
|
Subagent orchestration -- spawn background agents to work on tasks in parallel.
|
|
@@ -14,9 +17,43 @@ Subagent orchestration -- spawn background agents to work on tasks in parallel.
|
|
|
14
17
|
|
|
15
18
|
Subagents follow this status flow: `pending` -> `running` -> `completed` / `failed` / `aborted`
|
|
16
19
|
|
|
17
|
-
- **Spawn**: Use `subagent_spawn` with a label and
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
+
- **Spawn**: Use `subagent_spawn` with a label, objective, and role. The subagent runs autonomously.
|
|
21
|
+
- **Mid-run communication**: Subagents can send notifications to the parent via `notify_parent` while still running -- useful for sharing interim findings or signaling that they are blocked.
|
|
22
|
+
- **Auto-notification**: The parent conversation is automatically notified when a subagent reaches a terminal status (completed/failed/aborted). Do NOT poll `subagent_status`.
|
|
23
|
+
- **Read output**: Use `subagent_read` after the subagent reaches a terminal status to retrieve its full output.
|
|
24
|
+
|
|
25
|
+
## Roles
|
|
26
|
+
|
|
27
|
+
Each subagent is spawned with a role that determines its tool access. Choose the most restrictive role that can accomplish the task.
|
|
28
|
+
|
|
29
|
+
| Role | Tools | When to use |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| `general` | Full tool access | Task genuinely needs unrestricted capabilities (rare -- prefer a specialized role) |
|
|
32
|
+
| `researcher` | `web_search`, `web_fetch`, `file_read`, `file_list`, `recall`, `notify_parent` | Information gathering, web research, codebase exploration, reading documentation |
|
|
33
|
+
| `coder` | `bash`, `file_read`, `file_write`, `file_edit`, `web_search`, `recall`, `notify_parent` | Code changes, file editing, running commands, build/test tasks |
|
|
34
|
+
| `planner` | `file_read`, `file_list`, `web_search`, `web_fetch`, `recall`, `notify_parent` | Analysis, planning, synthesizing information, reviewing approaches |
|
|
35
|
+
|
|
36
|
+
All specialized roles (`researcher`, `coder`, `planner`) include `notify_parent` for mid-run communication with the parent.
|
|
37
|
+
|
|
38
|
+
## Parent Communication
|
|
39
|
+
|
|
40
|
+
Subagents use `notify_parent` to send messages to the parent conversation while still running. Each notification has an urgency level:
|
|
41
|
+
|
|
42
|
+
- **`info`** -- Progress updates, minor findings. The parent is informed but does not need to act.
|
|
43
|
+
- **`important`** -- Key findings, significant results. The parent should review when convenient.
|
|
44
|
+
- **`blocked`** -- The subagent needs guidance or a decision from the parent to continue.
|
|
45
|
+
|
|
46
|
+
Use notifications judiciously -- one per major finding or milestone. Do not send a notification for every small step.
|
|
47
|
+
|
|
48
|
+
## Naming
|
|
49
|
+
|
|
50
|
+
Subagents can be referenced by label instead of UUID. The `label` parameter is accepted on `subagent_message`, `subagent_status`, `subagent_read`, and `subagent_abort` as an alternative to `subagent_id`. Label lookup is case-insensitive.
|
|
51
|
+
|
|
52
|
+
Use descriptive labels when spawning subagents (e.g., "research-auth-libraries", "implement-login-form") so they are easy to reference later.
|
|
53
|
+
|
|
54
|
+
## Reading Output
|
|
55
|
+
|
|
56
|
+
`subagent_read` returns the subagent's assistant text output. Use the `last_n` parameter to retrieve only the most recent N assistant messages instead of the full history. This is useful for large outputs where you only need the final result.
|
|
20
57
|
|
|
21
58
|
## Ownership
|
|
22
59
|
|
|
@@ -29,5 +66,8 @@ Set `send_result_to_user: false` when spawning a subagent whose result is for in
|
|
|
29
66
|
## Tips
|
|
30
67
|
|
|
31
68
|
- Do NOT poll `subagent_status` in a loop. You will be notified automatically when a subagent completes.
|
|
69
|
+
- Use roles to scope tool access and minimize blast radius. Default to the most restrictive role that works.
|
|
70
|
+
- Spawn a `researcher` and `coder` in parallel for research-then-implement workflows -- the researcher gathers context while the coder starts on the known parts.
|
|
71
|
+
- Use `notify_parent` for interim findings instead of waiting for completion. This lets the parent act on partial results early.
|
|
32
72
|
- Use `subagent_message` to send follow-up instructions to a running subagent.
|
|
33
73
|
- Use `subagent_abort` to cancel a subagent that is no longer needed.
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
"type": "boolean",
|
|
26
26
|
"description": "Whether to present the subagent's result to the user when it completes. Defaults to true. Set to false for internal/silent processing."
|
|
27
27
|
},
|
|
28
|
+
"role": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["general", "researcher", "coder", "planner"],
|
|
31
|
+
"description": "Agent specialization that controls tool access. 'researcher': read-only (web, files, memory). 'coder': file and bash access. 'planner': read-only analysis. 'general': full access (default)."
|
|
32
|
+
},
|
|
28
33
|
"activity": {
|
|
29
34
|
"type": "string",
|
|
30
35
|
"description": "Brief non-technical explanation of why this tool is being called"
|
|
@@ -47,6 +52,10 @@
|
|
|
47
52
|
"type": "string",
|
|
48
53
|
"description": "Optional subagent ID to query. If omitted, returns all subagents for this conversation."
|
|
49
54
|
},
|
|
55
|
+
"label": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "The label of the subagent (alternative to subagent_id). Case-insensitive."
|
|
58
|
+
},
|
|
50
59
|
"activity": {
|
|
51
60
|
"type": "string",
|
|
52
61
|
"description": "Brief non-technical explanation of why this tool is being called"
|
|
@@ -59,7 +68,7 @@
|
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"name": "subagent_abort",
|
|
62
|
-
"description": "Abort a running subagent by ID.",
|
|
71
|
+
"description": "Abort a running subagent by ID or label.",
|
|
63
72
|
"category": "orchestration",
|
|
64
73
|
"risk": "low",
|
|
65
74
|
"input_schema": {
|
|
@@ -69,12 +78,16 @@
|
|
|
69
78
|
"type": "string",
|
|
70
79
|
"description": "The ID of the subagent to abort."
|
|
71
80
|
},
|
|
81
|
+
"label": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "The label of the subagent (alternative to subagent_id). Case-insensitive."
|
|
84
|
+
},
|
|
72
85
|
"activity": {
|
|
73
86
|
"type": "string",
|
|
74
87
|
"description": "Brief non-technical explanation of why this tool is being called"
|
|
75
88
|
}
|
|
76
89
|
},
|
|
77
|
-
"required": [
|
|
90
|
+
"required": []
|
|
78
91
|
},
|
|
79
92
|
"executor": "tools/subagent-abort.ts",
|
|
80
93
|
"execution_target": "host"
|
|
@@ -91,6 +104,10 @@
|
|
|
91
104
|
"type": "string",
|
|
92
105
|
"description": "The ID of the subagent to send a message to."
|
|
93
106
|
},
|
|
107
|
+
"label": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"description": "The label of the subagent (alternative to subagent_id). Case-insensitive."
|
|
110
|
+
},
|
|
94
111
|
"content": {
|
|
95
112
|
"type": "string",
|
|
96
113
|
"description": "The message content to send to the subagent."
|
|
@@ -100,7 +117,7 @@
|
|
|
100
117
|
"description": "Brief non-technical explanation of why this tool is being called"
|
|
101
118
|
}
|
|
102
119
|
},
|
|
103
|
-
"required": ["
|
|
120
|
+
"required": ["content"]
|
|
104
121
|
},
|
|
105
122
|
"executor": "tools/subagent-message.ts",
|
|
106
123
|
"execution_target": "host"
|
|
@@ -117,12 +134,20 @@
|
|
|
117
134
|
"type": "string",
|
|
118
135
|
"description": "The ID of the subagent whose output to read."
|
|
119
136
|
},
|
|
137
|
+
"label": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"description": "The label of the subagent (alternative to subagent_id). Case-insensitive."
|
|
140
|
+
},
|
|
141
|
+
"last_n": {
|
|
142
|
+
"type": "integer",
|
|
143
|
+
"description": "Number of recent assistant messages to return. Omit to return all messages (current behavior)."
|
|
144
|
+
},
|
|
120
145
|
"activity": {
|
|
121
146
|
"type": "string",
|
|
122
147
|
"description": "Brief non-technical explanation of why this tool is being called"
|
|
123
148
|
}
|
|
124
149
|
},
|
|
125
|
-
"required": [
|
|
150
|
+
"required": []
|
|
126
151
|
},
|
|
127
152
|
"executor": "tools/subagent-read.ts",
|
|
128
153
|
"execution_target": "host"
|
|
@@ -56,7 +56,7 @@ import * as contactMerge from "./bundled-skills/contacts/tools/contact-merge.js"
|
|
|
56
56
|
import * as contactSearch from "./bundled-skills/contacts/tools/contact-search.js";
|
|
57
57
|
import * as contactUpsert from "./bundled-skills/contacts/tools/contact-upsert.js";
|
|
58
58
|
import * as googleContacts from "./bundled-skills/contacts/tools/google-contacts.js";
|
|
59
|
-
// ── conversations
|
|
59
|
+
// ── conversations ──────────────────────────────────────────────────────────────
|
|
60
60
|
import * as renameConversation from "./bundled-skills/conversations/tools/rename-conversation.js";
|
|
61
61
|
// ── document ───────────────────────────────────────────────────────────────────
|
|
62
62
|
import * as documentCreate from "./bundled-skills/document/tools/document-create.js";
|
|
@@ -107,6 +107,25 @@ import * as messagingSend from "./bundled-skills/messaging/tools/messaging-send.
|
|
|
107
107
|
import * as messagingSenderDigest from "./bundled-skills/messaging/tools/messaging-sender-digest.js";
|
|
108
108
|
// ── notifications ──────────────────────────────────────────────────────────────
|
|
109
109
|
import * as sendNotification from "./bundled-skills/notifications/tools/send-notification.js";
|
|
110
|
+
// ── outlook ────────────────────────────────────────────────────────────────────
|
|
111
|
+
import * as outlookAttachments from "./bundled-skills/outlook/tools/outlook-attachments.js";
|
|
112
|
+
import * as outlookCategories from "./bundled-skills/outlook/tools/outlook-categories.js";
|
|
113
|
+
import * as outlookDraft from "./bundled-skills/outlook/tools/outlook-draft.js";
|
|
114
|
+
import * as outlookFollowUp from "./bundled-skills/outlook/tools/outlook-follow-up.js";
|
|
115
|
+
import * as outlookForward from "./bundled-skills/outlook/tools/outlook-forward.js";
|
|
116
|
+
import * as outlookOutreachScan from "./bundled-skills/outlook/tools/outlook-outreach-scan.js";
|
|
117
|
+
import * as outlookRules from "./bundled-skills/outlook/tools/outlook-rules.js";
|
|
118
|
+
import * as outlookSendDraft from "./bundled-skills/outlook/tools/outlook-send-draft.js";
|
|
119
|
+
import * as outlookSenderDigest from "./bundled-skills/outlook/tools/outlook-sender-digest.js";
|
|
120
|
+
import * as outlookTrash from "./bundled-skills/outlook/tools/outlook-trash.js";
|
|
121
|
+
import * as outlookUnsubscribe from "./bundled-skills/outlook/tools/outlook-unsubscribe.js";
|
|
122
|
+
import * as outlookVacation from "./bundled-skills/outlook/tools/outlook-vacation.js";
|
|
123
|
+
// ── outlook-calendar ───────────────────────────────────────────────────────────
|
|
124
|
+
import * as outlookCalendarCheckAvailability from "./bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.js";
|
|
125
|
+
import * as outlookCalendarCreateEvent from "./bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.js";
|
|
126
|
+
import * as outlookCalendarGetEvent from "./bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.js";
|
|
127
|
+
import * as outlookCalendarListEvents from "./bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.js";
|
|
128
|
+
import * as outlookCalendarRsvp from "./bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.js";
|
|
110
129
|
// ── phone-calls ────────────────────────────────────────────────────────────────
|
|
111
130
|
import * as callEnd from "./bundled-skills/phone-calls/tools/call-end.js";
|
|
112
131
|
import * as callStart from "./bundled-skills/phone-calls/tools/call-start.js";
|
|
@@ -290,6 +309,39 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
290
309
|
// notifications
|
|
291
310
|
["notifications:tools/send-notification.ts", sendNotification],
|
|
292
311
|
|
|
312
|
+
// outlook
|
|
313
|
+
["outlook:tools/outlook-rules.ts", outlookRules],
|
|
314
|
+
["outlook:tools/outlook-vacation.ts", outlookVacation],
|
|
315
|
+
["outlook:tools/outlook-sender-digest.ts", outlookSenderDigest],
|
|
316
|
+
["outlook:tools/outlook-outreach-scan.ts", outlookOutreachScan],
|
|
317
|
+
["outlook:tools/outlook-draft.ts", outlookDraft],
|
|
318
|
+
["outlook:tools/outlook-send-draft.ts", outlookSendDraft],
|
|
319
|
+
["outlook:tools/outlook-forward.ts", outlookForward],
|
|
320
|
+
["outlook:tools/outlook-trash.ts", outlookTrash],
|
|
321
|
+
["outlook:tools/outlook-categories.ts", outlookCategories],
|
|
322
|
+
["outlook:tools/outlook-follow-up.ts", outlookFollowUp],
|
|
323
|
+
["outlook:tools/outlook-unsubscribe.ts", outlookUnsubscribe],
|
|
324
|
+
["outlook:tools/outlook-attachments.ts", outlookAttachments],
|
|
325
|
+
|
|
326
|
+
// outlook-calendar
|
|
327
|
+
[
|
|
328
|
+
"outlook-calendar:tools/outlook-calendar-list-events.ts",
|
|
329
|
+
outlookCalendarListEvents,
|
|
330
|
+
],
|
|
331
|
+
[
|
|
332
|
+
"outlook-calendar:tools/outlook-calendar-get-event.ts",
|
|
333
|
+
outlookCalendarGetEvent,
|
|
334
|
+
],
|
|
335
|
+
[
|
|
336
|
+
"outlook-calendar:tools/outlook-calendar-create-event.ts",
|
|
337
|
+
outlookCalendarCreateEvent,
|
|
338
|
+
],
|
|
339
|
+
[
|
|
340
|
+
"outlook-calendar:tools/outlook-calendar-check-availability.ts",
|
|
341
|
+
outlookCalendarCheckAvailability,
|
|
342
|
+
],
|
|
343
|
+
["outlook-calendar:tools/outlook-calendar-rsvp.ts", outlookCalendarRsvp],
|
|
344
|
+
|
|
293
345
|
// phone-calls
|
|
294
346
|
["phone-calls:tools/call-start.ts", callStart],
|
|
295
347
|
["phone-calls:tools/call-status.ts", callStatus],
|
|
@@ -322,12 +374,12 @@ export const bundledToolRegistry = new Map<string, SkillToolScript>([
|
|
|
322
374
|
["sequences:tools/sequence-analytics.ts", sequenceAnalytics],
|
|
323
375
|
|
|
324
376
|
// settings
|
|
325
|
-
["settings:tools/avatar-get.ts", avatarGet],
|
|
326
|
-
["settings:tools/avatar-update.ts", avatarUpdate],
|
|
327
|
-
["settings:tools/avatar-remove.ts", avatarRemove],
|
|
328
377
|
["settings:tools/voice-config-update.ts", voiceConfigUpdate],
|
|
329
378
|
["settings:tools/open-system-settings.ts", openSystemSettings],
|
|
330
379
|
["settings:tools/navigate-settings-tab.ts", navigateSettingsTab],
|
|
380
|
+
["settings:tools/avatar-update.ts", avatarUpdate],
|
|
381
|
+
["settings:tools/avatar-remove.ts", avatarRemove],
|
|
382
|
+
["settings:tools/avatar-get.ts", avatarGet],
|
|
331
383
|
|
|
332
384
|
// skill-management
|
|
333
385
|
["skill-management:tools/scaffold-managed.ts", scaffoldManaged],
|
|
@@ -24,6 +24,13 @@ function flag(name: string): boolean {
|
|
|
24
24
|
return raw === "true" || raw === "1";
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
function int(name: string): number | undefined {
|
|
28
|
+
const raw = str(name);
|
|
29
|
+
if (raw === undefined) return undefined;
|
|
30
|
+
const n = parseInt(raw, 10);
|
|
31
|
+
return Number.isFinite(n) ? n : undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
// ── Registry ─────────────────────────────────────────────────────────────────
|
|
28
35
|
// Each entry documents the env var name, type, default, and purpose.
|
|
29
36
|
|
|
@@ -45,17 +52,24 @@ export function getIsContainerized(): boolean {
|
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
/**
|
|
48
|
-
*
|
|
55
|
+
* IS_PLATFORM — boolean, default: false
|
|
56
|
+
* When true, indicates the assistant is running as a platform-managed
|
|
57
|
+
* remote instance. Controls platform-specific behaviors like webhook
|
|
58
|
+
* callback registration and blocking `platform disconnect`.
|
|
49
59
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
* Separate from IS_CONTAINERIZED because local Docker assistants are
|
|
61
|
+
* containerized (need CES sidecar, gateway trust store, etc.) but are
|
|
62
|
+
* not platform-managed.
|
|
63
|
+
*/
|
|
64
|
+
export function getIsPlatform(): boolean {
|
|
65
|
+
return flag("IS_PLATFORM");
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Whether this assistant is running as a platform-managed remote instance.
|
|
56
70
|
*/
|
|
57
71
|
export function isPlatformRemote(): boolean {
|
|
58
|
-
return
|
|
72
|
+
return getIsPlatform();
|
|
59
73
|
}
|
|
60
74
|
|
|
61
75
|
/**
|
|
@@ -67,6 +81,57 @@ export function getWorkspaceDirOverride(): string | undefined {
|
|
|
67
81
|
return str("VELLUM_WORKSPACE_DIR");
|
|
68
82
|
}
|
|
69
83
|
|
|
84
|
+
// ── Profiler env vars ───────────────────────────────────────────────────
|
|
85
|
+
// These are injected by the platform when running a managed assistant in
|
|
86
|
+
// profiler mode. The runtime uses them to locate, scope, and budget-limit
|
|
87
|
+
// profiler output on the workspace volume.
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* VELLUM_PROFILER_RUN_ID — string, default: undefined
|
|
91
|
+
* Unique identifier for the current profiler run. When set, the profiler
|
|
92
|
+
* run store treats this run as "active" and will never prune its directory.
|
|
93
|
+
*/
|
|
94
|
+
export function getProfilerRunId(): string | undefined {
|
|
95
|
+
return str("VELLUM_PROFILER_RUN_ID");
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* VELLUM_PROFILER_MODE — string, default: undefined
|
|
100
|
+
* The profiling mode to activate (e.g. "cpu", "heap", "cpu+heap").
|
|
101
|
+
* When unset, profiling is disabled.
|
|
102
|
+
*/
|
|
103
|
+
export function getProfilerMode(): string | undefined {
|
|
104
|
+
return str("VELLUM_PROFILER_MODE");
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* VELLUM_PROFILER_MAX_BYTES — integer, default: undefined
|
|
109
|
+
* Maximum total bytes retained across all profiler runs (including active).
|
|
110
|
+
* The startup sweep prunes oldest completed runs to stay within budget.
|
|
111
|
+
*/
|
|
112
|
+
export function getProfilerMaxBytes(): number | undefined {
|
|
113
|
+
return int("VELLUM_PROFILER_MAX_BYTES");
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* VELLUM_PROFILER_MAX_RUNS — integer, default: undefined
|
|
118
|
+
* Maximum number of completed profiler runs retained on disk.
|
|
119
|
+
* The startup sweep prunes oldest completed runs to stay within budget.
|
|
120
|
+
*/
|
|
121
|
+
export function getProfilerMaxRuns(): number | undefined {
|
|
122
|
+
return int("VELLUM_PROFILER_MAX_RUNS");
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* VELLUM_PROFILER_MIN_FREE_MB — integer, default: undefined
|
|
127
|
+
* Minimum free disk space (in megabytes) that must remain after profiler
|
|
128
|
+
* runs are accounted for. The startup sweep prunes oldest completed runs
|
|
129
|
+
* until at least this much free space is available.
|
|
130
|
+
*/
|
|
131
|
+
export function getProfilerMinFreeMb(): number | undefined {
|
|
132
|
+
return int("VELLUM_PROFILER_MIN_FREE_MB");
|
|
133
|
+
}
|
|
134
|
+
|
|
70
135
|
// ── Known env var names ──────────────────────────────────────────────────────
|
|
71
136
|
|
|
72
137
|
/**
|
|
@@ -90,6 +155,11 @@ const KNOWN_VELLUM_VARS = new Set([
|
|
|
90
155
|
"VELLUM_HOOK_SETTINGS",
|
|
91
156
|
"VELLUM_LOCKFILE_DIR",
|
|
92
157
|
"VELLUM_PLATFORM_URL",
|
|
158
|
+
"VELLUM_PROFILER_MAX_BYTES",
|
|
159
|
+
"VELLUM_PROFILER_MAX_RUNS",
|
|
160
|
+
"VELLUM_PROFILER_MIN_FREE_MB",
|
|
161
|
+
"VELLUM_PROFILER_MODE",
|
|
162
|
+
"VELLUM_PROFILER_RUN_ID",
|
|
93
163
|
"VELLUM_ROOT_DIR",
|
|
94
164
|
"VELLUM_SSH_USER",
|
|
95
165
|
"VELLUM_UNSAFE_AUTH_BYPASS",
|
|
@@ -17,14 +17,6 @@
|
|
|
17
17
|
"description": "Enable user-hosted onboarding flow",
|
|
18
18
|
"defaultEnabled": false
|
|
19
19
|
},
|
|
20
|
-
{
|
|
21
|
-
"id": "platform-hosted-enabled",
|
|
22
|
-
"scope": "macos",
|
|
23
|
-
"key": "platform-hosted-enabled",
|
|
24
|
-
"label": "Platform Hosted Assistants",
|
|
25
|
-
"description": "Enable the Vellum Cloud hosting option on the Hosting screen",
|
|
26
|
-
"defaultEnabled": false
|
|
27
|
-
},
|
|
28
20
|
{
|
|
29
21
|
"id": "local-docker-enabled",
|
|
30
22
|
"scope": "macos",
|
|
@@ -33,14 +25,6 @@
|
|
|
33
25
|
"description": "When enabled, the Local hosting option uses Docker under the hood for sandboxed execution, hiding the separate Docker card",
|
|
34
26
|
"defaultEnabled": false
|
|
35
27
|
},
|
|
36
|
-
{
|
|
37
|
-
"id": "contacts",
|
|
38
|
-
"scope": "assistant",
|
|
39
|
-
"key": "contacts",
|
|
40
|
-
"label": "Contacts",
|
|
41
|
-
"description": "Show the Contacts tab in Settings for viewing and managing contacts",
|
|
42
|
-
"defaultEnabled": true
|
|
43
|
-
},
|
|
44
28
|
{
|
|
45
29
|
"id": "email-channel",
|
|
46
30
|
"scope": "assistant",
|
|
@@ -137,6 +121,14 @@
|
|
|
137
121
|
"description": "Show the Billing tab in Settings when signed in, displaying credits balance and top-up",
|
|
138
122
|
"defaultEnabled": true
|
|
139
123
|
},
|
|
124
|
+
{
|
|
125
|
+
"id": "referral-codes",
|
|
126
|
+
"scope": "macos",
|
|
127
|
+
"key": "referral-codes",
|
|
128
|
+
"label": "Referral Codes",
|
|
129
|
+
"description": "Show the referral invite link and stats panel on the Billing tab in Settings",
|
|
130
|
+
"defaultEnabled": false
|
|
131
|
+
},
|
|
140
132
|
{
|
|
141
133
|
"id": "managed-sign-in",
|
|
142
134
|
"scope": "macos",
|
|
@@ -145,102 +137,6 @@
|
|
|
145
137
|
"description": "Enable managed (organization-hosted) sign-in flow in the onboarding experience",
|
|
146
138
|
"defaultEnabled": true
|
|
147
139
|
},
|
|
148
|
-
{
|
|
149
|
-
"id": "integration-twitter",
|
|
150
|
-
"scope": "assistant",
|
|
151
|
-
"key": "integration-twitter",
|
|
152
|
-
"label": "Twitter / X Integration",
|
|
153
|
-
"description": "Enable the Twitter / X OAuth setup skill for connecting to the Twitter API",
|
|
154
|
-
"defaultEnabled": false
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"id": "integration-github",
|
|
158
|
-
"scope": "assistant",
|
|
159
|
-
"key": "integration-github",
|
|
160
|
-
"label": "GitHub Integration",
|
|
161
|
-
"description": "Enable the GitHub OAuth setup skill for connecting to GitHub",
|
|
162
|
-
"defaultEnabled": false
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"id": "integration-linear",
|
|
166
|
-
"scope": "assistant",
|
|
167
|
-
"key": "integration-linear",
|
|
168
|
-
"label": "Linear Integration",
|
|
169
|
-
"description": "Enable the Linear OAuth setup skill for connecting to Linear",
|
|
170
|
-
"defaultEnabled": false
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"id": "integration-spotify",
|
|
174
|
-
"scope": "assistant",
|
|
175
|
-
"key": "integration-spotify",
|
|
176
|
-
"label": "Spotify Integration",
|
|
177
|
-
"description": "Enable the Spotify OAuth setup skill for connecting to the Spotify API",
|
|
178
|
-
"defaultEnabled": false
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"id": "integration-todoist",
|
|
182
|
-
"scope": "assistant",
|
|
183
|
-
"key": "integration-todoist",
|
|
184
|
-
"label": "Todoist Integration",
|
|
185
|
-
"description": "Enable the Todoist OAuth setup skill for connecting to Todoist",
|
|
186
|
-
"defaultEnabled": false
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
"id": "integration-discord",
|
|
190
|
-
"scope": "assistant",
|
|
191
|
-
"key": "integration-discord",
|
|
192
|
-
"label": "Discord Integration",
|
|
193
|
-
"description": "Enable the Discord OAuth setup skill for connecting to Discord",
|
|
194
|
-
"defaultEnabled": false
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"id": "integration-dropbox",
|
|
198
|
-
"scope": "assistant",
|
|
199
|
-
"key": "integration-dropbox",
|
|
200
|
-
"label": "Dropbox Integration",
|
|
201
|
-
"description": "Enable the Dropbox OAuth setup skill for connecting to Dropbox",
|
|
202
|
-
"defaultEnabled": false
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
"id": "integration-asana",
|
|
206
|
-
"scope": "assistant",
|
|
207
|
-
"key": "integration-asana",
|
|
208
|
-
"label": "Asana Integration",
|
|
209
|
-
"description": "Enable the Asana OAuth setup skill for connecting to Asana",
|
|
210
|
-
"defaultEnabled": false
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"id": "integration-airtable",
|
|
214
|
-
"scope": "assistant",
|
|
215
|
-
"key": "integration-airtable",
|
|
216
|
-
"label": "Airtable Integration",
|
|
217
|
-
"description": "Enable the Airtable OAuth setup skill for connecting to Airtable",
|
|
218
|
-
"defaultEnabled": false
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"id": "integration-hubspot",
|
|
222
|
-
"scope": "assistant",
|
|
223
|
-
"key": "integration-hubspot",
|
|
224
|
-
"label": "HubSpot Integration",
|
|
225
|
-
"description": "Enable the HubSpot OAuth setup skill for connecting to HubSpot CRM",
|
|
226
|
-
"defaultEnabled": false
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
"id": "integration-figma",
|
|
230
|
-
"scope": "assistant",
|
|
231
|
-
"key": "integration-figma",
|
|
232
|
-
"label": "Figma Integration",
|
|
233
|
-
"description": "Enable the Figma OAuth setup skill for connecting to Figma",
|
|
234
|
-
"defaultEnabled": false
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
"id": "integration-notion",
|
|
238
|
-
"scope": "assistant",
|
|
239
|
-
"key": "integration-notion",
|
|
240
|
-
"label": "Notion Integration",
|
|
241
|
-
"description": "Enable the Notion setup skill for connecting to Notion",
|
|
242
|
-
"defaultEnabled": false
|
|
243
|
-
},
|
|
244
140
|
{
|
|
245
141
|
"id": "conversation-starters",
|
|
246
142
|
"scope": "assistant",
|
|
@@ -281,6 +177,14 @@
|
|
|
281
177
|
"description": "Show the Schedules tab in Settings for viewing and managing schedules",
|
|
282
178
|
"defaultEnabled": false
|
|
283
179
|
},
|
|
180
|
+
{
|
|
181
|
+
"id": "settings-integrations-grid",
|
|
182
|
+
"scope": "assistant",
|
|
183
|
+
"key": "settings-integrations-grid",
|
|
184
|
+
"label": "Integrations Grid",
|
|
185
|
+
"description": "Show the Integrations grid in Models & Services settings, replacing individual OAuth provider cards",
|
|
186
|
+
"defaultEnabled": false
|
|
187
|
+
},
|
|
284
188
|
{
|
|
285
189
|
"id": "quick-input",
|
|
286
190
|
"scope": "macos",
|
|
@@ -303,7 +207,7 @@
|
|
|
303
207
|
"key": "show-thinking-blocks",
|
|
304
208
|
"label": "Show Thinking Blocks",
|
|
305
209
|
"description": "Display the assistant's thinking/reasoning inline in chat messages as collapsible blocks",
|
|
306
|
-
"defaultEnabled":
|
|
210
|
+
"defaultEnabled": true
|
|
307
211
|
},
|
|
308
212
|
{
|
|
309
213
|
"id": "inline-skill-commands",
|
|
@@ -345,14 +249,6 @@
|
|
|
345
249
|
"description": "Show older versions in the version picker, allowing rollback to previous releases",
|
|
346
250
|
"defaultEnabled": true
|
|
347
251
|
},
|
|
348
|
-
{
|
|
349
|
-
"id": "show-background-conversations",
|
|
350
|
-
"scope": "assistant",
|
|
351
|
-
"key": "show-background-conversations",
|
|
352
|
-
"label": "Show Background Conversations",
|
|
353
|
-
"description": "Include background conversations (heartbeat, tasks) in the sidebar conversation list",
|
|
354
|
-
"defaultEnabled": false
|
|
355
|
-
},
|
|
356
252
|
{
|
|
357
253
|
"id": "voice-mode",
|
|
358
254
|
"scope": "assistant",
|
|
@@ -370,12 +266,29 @@
|
|
|
370
266
|
"defaultEnabled": false
|
|
371
267
|
},
|
|
372
268
|
{
|
|
373
|
-
"id": "
|
|
269
|
+
"id": "conversation-groups-ui",
|
|
270
|
+
"scope": "assistant",
|
|
271
|
+
"key": "conversation-groups-ui",
|
|
272
|
+
"label": "Conversation Groups",
|
|
273
|
+
"description": "Enable custom conversation group creation, move-to-group, and group management in the sidebar",
|
|
274
|
+
"defaultEnabled": false
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "teleport",
|
|
278
|
+
"scope": "macos",
|
|
279
|
+
"key": "teleport",
|
|
280
|
+
"label": "Teleport",
|
|
281
|
+
"description": "Enable teleport UI in General settings for moving assistants between hosting environments",
|
|
282
|
+
"defaultEnabled": false
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"id": "permission-controls-v2",
|
|
374
286
|
"scope": "assistant",
|
|
375
|
-
"key": "
|
|
376
|
-
"label": "
|
|
377
|
-
"description": "
|
|
287
|
+
"key": "permission-controls-v2",
|
|
288
|
+
"label": "Permission Controls V2",
|
|
289
|
+
"description": "Replace risk-level permission system with two independent controls: 'Ask before acting' (LLM behavior toggle) and 'Host access' (system-enforced gate)",
|
|
378
290
|
"defaultEnabled": false
|
|
379
291
|
}
|
|
380
292
|
]
|
|
381
293
|
}
|
|
294
|
+
|