@vellumai/assistant 0.4.43 → 0.4.45
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 +4 -0
- package/ARCHITECTURE.md +46 -44
- package/README.md +15 -16
- package/bun.lock +10 -35
- package/docs/architecture/integrations.md +102 -215
- package/docs/architecture/keychain-broker.md +1 -1
- package/docs/architecture/memory.md +2 -2
- package/docs/architecture/scheduling.md +1 -1
- package/docs/architecture/security.md +11 -11
- package/docs/error-handling.md +1 -1
- package/docs/trusted-contact-access.md +3 -3
- package/drizzle/meta/0000_snapshot.json +34 -100
- package/drizzle/meta/_journal.json +1 -1
- package/drizzle.config.ts +4 -4
- package/package.json +3 -2
- package/scripts/capture-x-graphql.ts +237 -141
- package/scripts/generate-bundled-tool-registry.ts +223 -0
- package/src/__tests__/access-request-decision.test.ts +0 -1
- package/src/__tests__/actor-token-service.test.ts +23 -24
- package/src/__tests__/agent-loop.test.ts +0 -131
- package/src/__tests__/always-loaded-tools-guard.test.ts +71 -0
- package/src/__tests__/amazon-cdp-integration.test.ts +11 -9
- package/src/__tests__/approval-primitive.test.ts +0 -1
- package/src/__tests__/approval-routes-http.test.ts +11 -3
- package/src/__tests__/asset-materialize-tool.test.ts +0 -1
- package/src/__tests__/asset-search-tool.test.ts +0 -1
- package/src/__tests__/assistant-attachment-directive.test.ts +1 -1
- package/src/__tests__/assistant-events-sse-hardening.test.ts +0 -1
- package/src/__tests__/assistant-feature-flag-guardrails.test.ts +0 -2
- package/src/__tests__/assistant-feature-flags-integration.test.ts +70 -18
- package/src/__tests__/assistant-id-boundary-guard.test.ts +6 -6
- package/src/__tests__/attachments-store.test.ts +0 -1
- package/src/__tests__/avatar-e2e.test.ts +74 -115
- package/src/__tests__/avatar-router.test.ts +25 -62
- package/src/__tests__/browser-manager.test.ts +24 -0
- package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +4 -3
- package/src/__tests__/browser-skill-endstate.test.ts +8 -11
- package/src/__tests__/btw-routes.test.ts +326 -0
- package/src/__tests__/bundled-asset.test.ts +1 -1
- package/src/__tests__/bundled-skill-retrieval-guard.test.ts +23 -9
- package/src/__tests__/call-controller.test.ts +0 -1
- package/src/__tests__/call-conversation-messages.test.ts +0 -1
- package/src/__tests__/call-domain.test.ts +0 -1
- package/src/__tests__/call-pointer-messages.test.ts +0 -1
- package/src/__tests__/call-recovery.test.ts +0 -1
- package/src/__tests__/call-routes-http.test.ts +0 -1
- package/src/__tests__/call-store.test.ts +0 -1
- package/src/__tests__/canonical-guardian-store.test.ts +0 -1
- package/src/__tests__/channel-approval-routes.test.ts +1 -1
- package/src/__tests__/channel-approvals.test.ts +1 -1
- package/src/__tests__/channel-delivery-store.test.ts +0 -1
- package/src/__tests__/channel-guardian.test.ts +5 -7
- package/src/__tests__/channel-retry-sweep.test.ts +0 -1
- package/src/__tests__/checker.test.ts +32 -36
- package/src/__tests__/compaction.benchmark.test.ts +16 -14
- package/src/__tests__/computer-use-session-lifecycle.test.ts +10 -11
- package/src/__tests__/computer-use-session-working-dir.test.ts +2 -6
- package/src/__tests__/computer-use-skill-lifecycle-cleanup.test.ts +2 -5
- package/src/__tests__/computer-use-tools.test.ts +35 -31
- package/src/__tests__/config-schema.test.ts +11 -15
- package/src/__tests__/config-watcher.test.ts +0 -1
- package/src/__tests__/confirmation-request-guardian-bridge.test.ts +0 -1
- package/src/__tests__/conflict-store.test.ts +0 -1
- package/src/__tests__/connection-policy.test.ts +4 -7
- package/src/__tests__/contacts-tools.test.ts +0 -1
- package/src/__tests__/context-memory-e2e.test.ts +2 -4
- package/src/__tests__/context-overflow-reducer.test.ts +2 -4
- package/src/__tests__/context-window-manager.test.ts +147 -60
- package/src/__tests__/contradiction-checker.test.ts +0 -1
- package/src/__tests__/conversation-attention-store.test.ts +0 -1
- package/src/__tests__/conversation-attention-telegram.test.ts +1 -1
- package/src/__tests__/conversation-pairing.test.ts +2 -2
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +31 -7
- package/src/__tests__/conversation-routes-slash-commands.test.ts +381 -0
- package/src/__tests__/conversation-store.test.ts +0 -1
- package/src/__tests__/conversation-unread-route.test.ts +1 -2
- package/src/__tests__/credential-security-invariants.test.ts +8 -8
- package/src/__tests__/cross-provider-web-search.test.ts +353 -0
- package/src/__tests__/daemon-assistant-events.test.ts +6 -7
- package/src/__tests__/db-schedule-syntax-migration.test.ts +15 -3
- package/src/__tests__/delete-managed-skill-tool.test.ts +5 -9
- package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -1
- package/src/__tests__/diagnostics-export.test.ts +189 -0
- package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +0 -1
- package/src/__tests__/emit-signal-routing-intent.test.ts +3 -3
- package/src/__tests__/entity-extractor.test.ts +0 -1
- package/src/__tests__/entity-search.test.ts +0 -1
- package/src/__tests__/ephemeral-permissions.test.ts +2 -4
- package/src/__tests__/error-handler-friendly-messages.test.ts +46 -0
- package/src/__tests__/file-read-tool.test.ts +86 -0
- package/src/__tests__/followup-tools.test.ts +0 -1
- package/src/__tests__/frontmatter.test.ts +77 -34
- package/src/__tests__/gateway-only-enforcement.test.ts +0 -1
- package/src/__tests__/gateway-only-guard.test.ts +1 -1
- package/src/__tests__/guardian-action-conversation-turn.test.ts +0 -1
- package/src/__tests__/guardian-action-followup-executor.test.ts +0 -1
- package/src/__tests__/guardian-action-followup-store.test.ts +0 -1
- package/src/__tests__/guardian-action-grant-mint-consume.test.ts +0 -1
- package/src/__tests__/guardian-action-late-reply.test.ts +0 -1
- package/src/__tests__/guardian-action-store.test.ts +0 -1
- package/src/__tests__/guardian-action-sweep.test.ts +0 -1
- package/src/__tests__/guardian-decision-primitive-canonical.test.ts +0 -1
- package/src/__tests__/guardian-dispatch.test.ts +1 -2
- package/src/__tests__/guardian-grant-minting.test.ts +1 -1
- package/src/__tests__/guardian-outbound-http.test.ts +0 -1
- package/src/__tests__/guardian-principal-id-roundtrip.test.ts +0 -1
- package/src/__tests__/guardian-routing-invariants.test.ts +1 -1
- package/src/__tests__/guardian-routing-state.test.ts +0 -1
- package/src/__tests__/guardian-verification-voice-binding.test.ts +0 -1
- package/src/__tests__/guardian-verify-setup-skill-regression.test.ts +3 -5
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +28 -426
- package/src/__tests__/host-bash-proxy.test.ts +335 -0
- package/src/__tests__/host-file-proxy.test.ts +374 -0
- package/src/__tests__/host-shell-tool.test.ts +147 -1
- package/src/__tests__/http-user-message-parity.test.ts +361 -0
- package/src/__tests__/inbound-invite-redemption.test.ts +0 -1
- package/src/__tests__/integration-status.test.ts +3 -8
- package/src/__tests__/intent-routing.test.ts +7 -46
- package/src/__tests__/invite-redemption-service.test.ts +0 -1
- package/src/__tests__/invite-routes-http.test.ts +0 -1
- package/src/__tests__/llm-usage-store.test.ts +0 -1
- package/src/__tests__/managed-avatar-client.test.ts +101 -55
- package/src/__tests__/managed-skill-lifecycle.test.ts +9 -18
- package/src/__tests__/managed-store.test.ts +94 -21
- package/src/__tests__/media-reuse-story.e2e.test.ts +0 -1
- package/src/__tests__/memory-context-benchmark.benchmark.test.ts +2 -4
- package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -1
- package/src/__tests__/memory-recall-quality.test.ts +0 -1
- package/src/__tests__/memory-regressions.experimental.test.ts +0 -1
- package/src/__tests__/memory-regressions.test.ts +0 -1
- package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -1
- package/src/__tests__/memory-upsert-concurrency.test.ts +0 -1
- package/src/__tests__/messaging-send-tool.test.ts +35 -0
- package/src/__tests__/messaging-skill-split.test.ts +138 -0
- package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -1
- package/src/__tests__/migration-export-http.test.ts +2 -3
- package/src/__tests__/migration-import-commit-http.test.ts +1 -2
- package/src/__tests__/migration-import-preflight-http.test.ts +1 -2
- package/src/__tests__/migration-validate-http.test.ts +1 -2
- package/src/__tests__/native-web-search.test.ts +475 -0
- package/src/__tests__/navigate-settings-tab.test.ts +84 -0
- package/src/__tests__/non-member-access-request.test.ts +0 -1
- package/src/__tests__/notification-broadcaster.test.ts +15 -15
- package/src/__tests__/notification-decision-strategy.test.ts +6 -6
- package/src/__tests__/notification-deep-link.test.ts +7 -7
- package/src/__tests__/notification-guardian-path.test.ts +2 -3
- package/src/__tests__/notification-telegram-adapter.test.ts +1 -1
- package/src/__tests__/notification-thread-candidates.test.ts +4 -4
- package/src/__tests__/onboarding-starter-tasks.test.ts +0 -1
- package/src/__tests__/onboarding-template-contract.test.ts +0 -10
- package/src/__tests__/playbook-execution.test.ts +0 -1
- package/src/__tests__/playbook-tools.test.ts +0 -1
- package/src/__tests__/profile-compiler.test.ts +0 -1
- package/src/__tests__/provider-fail-open-selection.test.ts +12 -2
- package/src/__tests__/provider-managed-proxy-integration.test.ts +25 -0
- package/src/__tests__/qdrant-collection-migration.test.ts +223 -0
- package/src/__tests__/recording-handler.test.ts +30 -94
- package/src/__tests__/registry.test.ts +28 -35
- package/src/__tests__/relay-server.test.ts +0 -1
- package/src/__tests__/ride-shotgun-handler.test.ts +4 -20
- package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
- package/src/__tests__/runtime-events-sse-parity.test.ts +3 -4
- package/src/__tests__/runtime-events-sse.test.ts +0 -1
- package/src/__tests__/sandbox-diagnostics.test.ts +0 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +30 -28
- package/src/__tests__/schedule-store.test.ts +441 -1
- package/src/__tests__/schedule-tools.test.ts +468 -7
- package/src/__tests__/scheduler-recurrence.test.ts +196 -23
- package/src/__tests__/scoped-approval-grants.test.ts +0 -1
- package/src/__tests__/scoped-grant-security-matrix.test.ts +0 -1
- package/src/__tests__/secret-prompt-log-hygiene.test.ts +6 -3
- package/src/__tests__/secret-response-routing.test.ts +4 -1
- package/src/__tests__/send-endpoint-busy.test.ts +14 -5
- package/src/__tests__/send-notification-tool.test.ts +0 -7
- package/src/__tests__/sequence-store.test.ts +0 -1
- package/src/__tests__/server-history-render.test.ts +1 -2
- package/src/__tests__/session-abort-tool-results.test.ts +0 -1
- package/src/__tests__/session-agent-loop.test.ts +46 -6
- package/src/__tests__/session-confirmation-signals.test.ts +7 -46
- package/src/__tests__/session-conflict-gate.test.ts +2 -6
- package/src/__tests__/session-error.test.ts +5 -14
- package/src/__tests__/session-init.benchmark.test.ts +3 -5
- package/src/__tests__/session-load-history-repair.test.ts +0 -1
- package/src/__tests__/session-media-retry.test.ts +12 -74
- package/src/__tests__/session-pre-run-repair.test.ts +0 -1
- package/src/__tests__/session-profile-injection.test.ts +2 -6
- package/src/__tests__/session-provider-retry-repair.test.ts +2 -6
- package/src/__tests__/session-queue.test.ts +94 -139
- package/src/__tests__/session-skill-tools.test.ts +115 -115
- package/src/__tests__/session-slash-known.test.ts +0 -1
- package/src/__tests__/session-slash-queue.test.ts +0 -1
- package/src/__tests__/session-slash-unknown.test.ts +0 -1
- package/src/__tests__/session-surfaces-task-progress.test.ts +34 -0
- package/src/__tests__/session-usage.test.ts +0 -1
- package/src/__tests__/session-workspace-cache-state.test.ts +2 -6
- package/src/__tests__/session-workspace-injection.test.ts +2 -6
- package/src/__tests__/session-workspace-tool-tracking.test.ts +2 -6
- package/src/__tests__/skill-feature-flags-integration.test.ts +180 -184
- package/src/__tests__/skill-feature-flags.test.ts +125 -18
- package/src/__tests__/skill-load-feature-flag.test.ts +1 -2
- package/src/__tests__/skill-load-tool.test.ts +194 -2
- package/src/__tests__/skill-projection-feature-flag.test.ts +27 -16
- package/src/__tests__/skill-projection.benchmark.test.ts +15 -14
- package/src/__tests__/skills.test.ts +14 -53
- package/src/__tests__/slack-channel-config.test.ts +0 -1
- package/src/__tests__/slack-inbound-verification.test.ts +0 -1
- package/src/__tests__/slack-skill.test.ts +1 -1
- package/src/__tests__/starter-task-flow.test.ts +9 -19
- package/src/__tests__/subagent-tools.test.ts +2 -2
- package/src/__tests__/system-prompt.test.ts +7 -7
- package/src/__tests__/task-compiler.test.ts +0 -1
- package/src/__tests__/task-management-tools.test.ts +0 -1
- package/src/__tests__/task-memory-cleanup.test.ts +0 -1
- package/src/__tests__/task-runner.test.ts +0 -1
- package/src/__tests__/task-scheduler.test.ts +0 -1
- package/src/__tests__/terminal-tools.test.ts +0 -1
- package/src/__tests__/test-support/computer-use-skill-harness.ts +2 -4
- package/src/__tests__/thread-seed-composer.test.ts +5 -5
- package/src/__tests__/tool-approval-handler.test.ts +0 -1
- package/src/__tests__/tool-execution-abort-cleanup.test.ts +0 -1
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +0 -1
- package/src/__tests__/tool-executor.test.ts +8 -86
- package/src/__tests__/tool-grant-request-escalation.test.ts +0 -1
- package/src/__tests__/tool-notification-listener.test.ts +1 -1
- package/src/__tests__/tool-preview-lifecycle.test.ts +416 -0
- package/src/__tests__/trust-store.test.ts +84 -8
- package/src/__tests__/trusted-contact-approval-notifier.test.ts +0 -1
- package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +0 -1
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +0 -1
- package/src/__tests__/trusted-contact-multichannel.test.ts +0 -1
- package/src/__tests__/trusted-contact-verification.test.ts +0 -1
- package/src/__tests__/twilio-provider.test.ts +0 -1
- package/src/__tests__/twilio-routes.test.ts +0 -1
- package/src/__tests__/{request-file-tool.test.ts → ui-file-upload-surface.test.ts} +11 -72
- package/src/__tests__/update-bulletin.test.ts +0 -1
- package/src/__tests__/usage-cache-backfill-migration.test.ts +0 -1
- package/src/__tests__/usage-routes.test.ts +0 -1
- package/src/__tests__/verification-control-plane-policy.test.ts +4 -4
- package/src/__tests__/voice-invite-redemption.test.ts +0 -1
- package/src/__tests__/voice-scoped-grant-consumer.test.ts +0 -1
- package/src/__tests__/voice-session-bridge.test.ts +9 -1
- package/src/__tests__/web-fetch.test.ts +57 -0
- package/src/__tests__/workspace-git-service.test.ts +5 -14
- package/src/__tests__/workspace-policy.test.ts +0 -1
- package/src/agent/loop.ts +22 -34
- package/src/bundler/bundle-signer.ts +4 -4
- package/src/calls/call-controller.ts +1 -1
- package/src/calls/relay-server.ts +1 -1
- package/src/calls/twilio-rest.ts +1 -1
- package/src/calls/voice-session-bridge.ts +3 -1
- package/src/cli/__tests__/notifications.test.ts +3 -4
- package/src/cli/commands/map.ts +2 -6
- package/src/cli/commands/mcp.ts +73 -15
- package/src/cli/commands/notifications.ts +4 -4
- package/src/cli/commands/sessions.ts +9 -1
- package/src/cli/commands/skills.ts +6 -10
- package/src/cli/http-client.ts +2 -3
- package/src/cli/main-screen.tsx +10 -10
- package/src/cli/program.ts +0 -4
- package/src/cli/reference.ts +0 -2
- package/src/cli.ts +15 -9
- package/src/config/__tests__/bundled-tool-registry-guard.test.ts +120 -0
- package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +11 -0
- package/src/config/bundled-skills/app-builder/SKILL.md +6 -7
- package/src/config/bundled-skills/app-builder/TOOLS.json +0 -4
- package/src/config/bundled-skills/browser/SKILL.md +6 -1
- package/src/config/bundled-skills/chatgpt-import/SKILL.md +5 -1
- package/src/config/bundled-skills/claude-code/SKILL.md +5 -1
- package/src/config/bundled-skills/computer-use/SKILL.md +6 -1
- package/src/config/bundled-skills/computer-use/TOOLS.json +6 -69
- package/src/config/bundled-skills/computer-use/tools/computer-use-click.ts +10 -1
- package/src/config/bundled-skills/contacts/SKILL.md +10 -1
- package/src/config/bundled-skills/contacts/TOOLS.json +35 -0
- package/src/config/bundled-skills/{messaging → contacts}/tools/google-contacts.ts +9 -2
- package/src/config/bundled-skills/document/SKILL.md +4 -1
- package/src/config/bundled-skills/doordash/SKILL.md +8 -2
- package/src/config/bundled-skills/doordash/__tests__/doordash-session.test.ts +1 -82
- package/src/config/bundled-skills/doordash/doordash-cli.ts +17 -28
- package/src/config/bundled-skills/doordash/lib/session.ts +21 -17
- package/src/config/bundled-skills/doordash/lib/shared/platform.ts +4 -1
- package/src/config/bundled-skills/followups/SKILL.md +4 -1
- package/src/config/bundled-skills/gmail/SKILL.md +180 -0
- package/src/config/bundled-skills/gmail/TOOLS.json +506 -0
- package/src/config/bundled-skills/gmail/tools/gmail-archive.ts +149 -0
- package/src/config/bundled-skills/gmail/tools/gmail-attachments.ts +110 -0
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-draft.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-filters.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-follow-up.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-forward.ts +1 -1
- package/src/config/bundled-skills/gmail/tools/gmail-label.ts +50 -0
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-outreach-scan.ts +8 -90
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-send-draft.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-sender-digest.ts +2 -2
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-trash.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-unsubscribe.ts +1 -1
- package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-vacation.ts +1 -1
- package/src/config/bundled-skills/gmail/tools/shared.ts +47 -0
- package/src/config/bundled-skills/google-calendar/SKILL.md +5 -1
- package/src/config/bundled-skills/image-studio/SKILL.md +5 -1
- package/src/config/bundled-skills/knowledge-graph/SKILL.md +4 -1
- package/src/config/bundled-skills/media-processing/SKILL.md +7 -13
- package/src/config/bundled-skills/media-processing/TOOLS.json +0 -22
- package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +12 -1
- package/src/config/bundled-skills/messaging/SKILL.md +23 -139
- package/src/config/bundled-skills/messaging/TOOLS.json +33 -1215
- package/src/config/bundled-skills/messaging/tools/gmail-mime-helpers.ts +42 -0
- package/src/config/bundled-skills/messaging/tools/messaging-send.ts +165 -2
- package/src/config/bundled-skills/messaging/tools/messaging-sender-digest.ts +1 -13
- package/src/config/bundled-skills/messaging/tools/shared.ts +81 -34
- package/src/config/bundled-skills/notifications/SKILL.md +5 -1
- package/src/config/bundled-skills/orchestration/SKILL.md +30 -0
- package/src/config/bundled-skills/orchestration/TOOLS.json +35 -0
- package/src/config/bundled-skills/{reminder/tools/reminder-cancel.ts → orchestration/tools/swarm-delegate.ts} +3 -3
- package/src/config/bundled-skills/phone-calls/SKILL.md +9 -1
- package/src/config/bundled-skills/playbooks/SKILL.md +4 -1
- package/src/config/bundled-skills/schedule/SKILL.md +70 -9
- package/src/config/bundled-skills/schedule/TOOLS.json +38 -6
- package/src/config/bundled-skills/screen-watch/SKILL.md +28 -0
- package/src/config/bundled-skills/screen-watch/TOOLS.json +35 -0
- package/src/config/bundled-skills/{reminder/tools/reminder-create.ts → screen-watch/tools/start-screen-watch.ts} +3 -3
- package/src/config/bundled-skills/sequences/SKILL.md +47 -0
- package/src/config/bundled-skills/sequences/TOOLS.json +340 -0
- package/src/config/bundled-skills/sequences/tools/sequence-update.ts +128 -0
- package/src/config/bundled-skills/sequences/tools/shared.ts +9 -0
- package/src/config/bundled-skills/settings/SKILL.md +12 -0
- package/src/config/bundled-skills/settings/TOOLS.json +112 -0
- package/src/config/bundled-skills/settings/tools/navigate-settings-tab.ts +43 -0
- package/src/config/bundled-skills/settings/tools/open-system-settings.ts +52 -0
- package/src/config/bundled-skills/{computer-use/tools/computer-use-right-click.ts → settings/tools/set-avatar.ts} +2 -6
- package/src/{tools/system/voice-config.ts → config/bundled-skills/settings/tools/voice-config-update.ts} +59 -96
- package/src/config/bundled-skills/skill-management/SKILL.md +18 -0
- package/src/config/bundled-skills/skill-management/TOOLS.json +90 -0
- package/src/config/bundled-skills/{computer-use/tools/computer-use-double-click.ts → skill-management/tools/delete-managed.ts} +2 -6
- package/src/config/bundled-skills/skill-management/tools/scaffold-managed.ts +12 -0
- package/src/config/bundled-skills/slack/SKILL.md +5 -1
- package/src/config/bundled-skills/subagent/SKILL.md +4 -1
- package/src/config/bundled-skills/tasks/SKILL.md +5 -2
- package/src/config/bundled-skills/transcribe/SKILL.md +4 -1
- package/src/config/bundled-skills/watcher/SKILL.md +4 -1
- package/src/config/bundled-tool-registry.ts +118 -107
- package/src/config/env.ts +5 -2
- package/src/config/feature-flag-registry.json +33 -9
- package/src/config/loader.ts +10 -2
- package/src/config/schema.ts +19 -16
- package/src/config/schemas/inference.ts +12 -22
- package/src/config/schemas/memory-storage.ts +19 -1
- package/src/config/schemas/platform.ts +0 -16
- package/src/config/skill-state.ts +11 -8
- package/src/config/skills.ts +83 -32
- package/src/context/token-estimator.ts +11 -0
- package/src/context/window-manager.ts +180 -151
- package/src/daemon/computer-use-session.ts +11 -43
- package/src/daemon/daemon-control.ts +4 -1
- package/src/daemon/handlers/config-channels.ts +5 -9
- package/src/daemon/handlers/config-ingress.ts +0 -4
- package/src/daemon/handlers/config-model.ts +7 -13
- package/src/daemon/handlers/config-telegram.ts +4 -8
- package/src/daemon/handlers/config-voice.ts +2 -5
- package/src/daemon/handlers/dictation.ts +2 -12
- package/src/daemon/handlers/identity.ts +0 -105
- package/src/daemon/handlers/recording.ts +3 -23
- package/src/daemon/handlers/session-history.ts +42 -10
- package/src/daemon/handlers/sessions.ts +53 -72
- package/src/daemon/handlers/shared.ts +7 -28
- package/src/daemon/handlers/skills.ts +31 -27
- package/src/daemon/host-bash-proxy.ts +148 -0
- package/src/daemon/host-file-proxy.ts +135 -0
- package/src/daemon/lifecycle.ts +53 -41
- package/src/daemon/mcp-reload-service.ts +123 -0
- package/src/daemon/message-protocol.ts +6 -0
- package/src/daemon/message-types/apps.ts +0 -25
- package/src/daemon/message-types/browser.ts +1 -1
- package/src/daemon/message-types/computer-use.ts +1 -4
- package/src/daemon/message-types/guardian-actions.ts +1 -1
- package/src/daemon/message-types/host-bash.ts +18 -0
- package/src/daemon/message-types/host-file.ts +44 -0
- package/src/daemon/message-types/integrations.ts +1 -73
- package/src/daemon/message-types/messages.ts +15 -0
- package/src/daemon/message-types/schedules.ts +11 -27
- package/src/daemon/message-types/sessions.ts +8 -2
- package/src/daemon/message-types/settings.ts +1 -1
- package/src/daemon/message-types/shared.ts +1 -1
- package/src/daemon/message-types/surfaces.ts +2 -0
- package/src/daemon/ride-shotgun-handler.ts +35 -43
- package/src/daemon/seed-files.ts +3 -27
- package/src/daemon/server.ts +45 -28
- package/src/daemon/session-agent-loop-handlers.ts +72 -9
- package/src/daemon/session-agent-loop.ts +97 -66
- package/src/daemon/session-attachments.ts +1 -1
- package/src/daemon/session-error.ts +17 -16
- package/src/daemon/session-lifecycle.ts +20 -1
- package/src/daemon/session-media-retry.ts +1 -15
- package/src/daemon/session-messaging.ts +14 -6
- package/src/daemon/session-process.ts +36 -7
- package/src/daemon/session-queue-manager.ts +62 -103
- package/src/daemon/session-runtime-assembly.ts +27 -7
- package/src/daemon/session-skill-tools.ts +12 -11
- package/src/daemon/session-slash.ts +7 -0
- package/src/daemon/session-surfaces.ts +192 -118
- package/src/daemon/session-tool-setup.ts +146 -6
- package/src/daemon/session.ts +75 -37
- package/src/errors.ts +0 -2
- package/src/export/formatter.ts +6 -0
- package/src/mcp/mcp-oauth-provider.ts +1 -3
- package/src/media/avatar-router.ts +20 -28
- package/src/media/avatar-types.ts +7 -14
- package/src/media/managed-avatar-client.ts +70 -34
- package/src/memory/app-store.ts +0 -18
- package/src/memory/conversation-title-service.ts +1 -2
- package/src/memory/db-init.ts +16 -0
- package/src/memory/embedding-backend.ts +129 -27
- package/src/memory/embedding-gemini.test.ts +256 -0
- package/src/memory/embedding-gemini.ts +47 -13
- package/src/memory/embedding-local.ts +14 -2
- package/src/memory/embedding-ollama.ts +15 -2
- package/src/memory/embedding-openai.ts +15 -2
- package/src/memory/embedding-types.test.ts +116 -0
- package/src/memory/embedding-types.ts +61 -0
- package/src/memory/fingerprint.ts +1 -1
- package/src/memory/indexer.ts +25 -1
- package/src/memory/job-handlers/embedding.test.ts +258 -0
- package/src/memory/job-handlers/embedding.ts +81 -1
- package/src/memory/job-handlers/index-maintenance.ts +35 -1
- package/src/memory/job-handlers/media-processing.ts +11 -1
- package/src/memory/job-utils.ts +21 -6
- package/src/memory/jobs-store.ts +5 -1
- package/src/memory/jobs-worker.ts +8 -0
- package/src/memory/message-content.ts +66 -0
- package/src/memory/migrations/100-core-tables.ts +1 -31
- package/src/memory/migrations/104-core-indexes.ts +0 -11
- package/src/memory/migrations/145-drop-accounts-table.ts +19 -0
- package/src/memory/migrations/146-schedule-oneshot-routing.ts +94 -0
- package/src/memory/migrations/147-migrate-reminders-to-schedules.ts +129 -0
- package/src/memory/migrations/148-drop-reminders-table.ts +18 -0
- package/src/memory/migrations/index.ts +4 -0
- package/src/memory/migrations/registry.ts +19 -0
- package/src/memory/qdrant-client.ts +158 -43
- package/src/memory/retriever.test.ts +0 -1
- package/src/memory/retriever.ts +12 -2
- package/src/memory/schema/infrastructure.ts +5 -37
- package/src/memory/search/formatting.ts +34 -9
- package/src/memory/search/semantic.ts +57 -2
- package/src/memory/search/types.ts +2 -1
- package/src/notifications/AGENTS.md +2 -2
- package/src/notifications/README.md +59 -58
- package/src/notifications/adapters/macos.ts +1 -1
- package/src/notifications/broadcaster.ts +5 -5
- package/src/notifications/copy-composer.ts +1 -1
- package/src/notifications/decision-engine.ts +2 -2
- package/src/notifications/destination-resolver.ts +2 -2
- package/src/notifications/emit-signal.ts +8 -8
- package/src/notifications/signal.ts +1 -1
- package/src/notifications/thread-seed-composer.ts +1 -1
- package/src/oauth/connect-orchestrator.ts +1 -1
- package/src/oauth/token-persistence.ts +1 -1
- package/src/permissions/checker.ts +12 -1
- package/src/permissions/defaults.ts +13 -17
- package/src/permissions/trust-store.ts +37 -0
- package/src/permissions/workspace-policy.ts +0 -1
- package/src/prompts/__tests__/build-cli-reference-section.test.ts +11 -0
- package/src/prompts/computer-use-prompt.ts +1 -1
- package/src/prompts/system-prompt.ts +33 -35
- package/src/prompts/templates/BOOTSTRAP.md +0 -3
- package/src/prompts/templates/SOUL.md +1 -2
- package/src/prompts/templates/UPDATES.md +16 -7
- package/src/providers/anthropic/client.ts +87 -33
- package/src/providers/gemini/client.ts +6 -0
- package/src/providers/managed-proxy/constants.ts +5 -0
- package/src/providers/openai/client.ts +15 -0
- package/src/providers/registry.ts +4 -6
- package/src/providers/types.ts +24 -2
- package/src/runtime/AGENTS.md +18 -0
- package/src/runtime/assistant-event-hub.ts +2 -3
- package/src/runtime/assistant-event.ts +4 -4
- package/src/runtime/auth/__tests__/context.test.ts +5 -5
- package/src/runtime/auth/__tests__/credential-service.test.ts +0 -1
- package/src/runtime/auth/__tests__/guard-tests.test.ts +3 -2
- package/src/runtime/auth/__tests__/{ipc-auth-context.test.ts → local-auth-context.test.ts} +21 -21
- package/src/runtime/auth/__tests__/route-policy.test.ts +2 -2
- package/src/runtime/auth/__tests__/scopes.test.ts +9 -8
- package/src/runtime/auth/__tests__/subject.test.ts +8 -8
- package/src/runtime/auth/__tests__/token-service.test.ts +0 -1
- package/src/runtime/auth/route-policy.ts +8 -8
- package/src/runtime/auth/scopes.ts +2 -1
- package/src/runtime/auth/subject.ts +4 -4
- package/src/runtime/auth/token-service.ts +1 -24
- package/src/runtime/auth/types.ts +3 -3
- package/src/runtime/guardian-action-followup-executor.ts +1 -1
- package/src/runtime/guardian-action-grant-minter.ts +1 -1
- package/src/runtime/guardian-action-service.ts +3 -3
- package/src/runtime/http-server.ts +15 -2
- package/src/runtime/http-types.ts +10 -0
- package/src/runtime/invite-service.ts +3 -3
- package/src/runtime/local-actor-identity.ts +17 -22
- package/src/runtime/middleware/error-handler.ts +14 -1
- package/src/runtime/pending-interactions.ts +21 -9
- package/src/runtime/routes/app-management-routes.ts +63 -67
- package/src/runtime/routes/approval-routes.ts +1 -3
- package/src/runtime/routes/brain-graph/brain-graph.html +1845 -0
- package/src/runtime/routes/brain-graph-routes.ts +4 -42
- package/src/runtime/routes/btw-routes.ts +155 -0
- package/src/runtime/routes/computer-use-routes.ts +77 -31
- package/src/runtime/routes/conversation-routes.ts +234 -47
- package/src/runtime/routes/diagnostics-routes.ts +154 -43
- package/src/runtime/routes/documents-routes.ts +2 -2
- package/src/runtime/routes/global-search-routes.ts +1 -1
- package/src/runtime/routes/host-bash-routes.ts +83 -0
- package/src/runtime/routes/host-file-routes.ts +79 -0
- package/src/runtime/routes/integrations/slack/share.ts +1 -1
- package/src/runtime/routes/log-export-routes.ts +120 -0
- package/src/runtime/routes/mcp-routes.ts +20 -0
- package/src/runtime/routes/migration-routes.ts +3 -3
- package/src/runtime/routes/pairing-routes.ts +1 -1
- package/src/runtime/routes/recording-routes.ts +6 -4
- package/src/runtime/routes/schedule-routes.ts +31 -5
- package/src/runtime/routes/session-management-routes.ts +2 -6
- package/src/runtime/routes/session-query-routes.ts +18 -15
- package/src/runtime/routes/settings-routes.ts +7 -351
- package/src/runtime/routes/skills-routes.ts +7 -6
- package/src/runtime/routes/subagents-routes.ts +4 -10
- package/src/runtime/routes/surface-action-routes.ts +3 -14
- package/src/runtime/routes/surface-content-routes.ts +22 -5
- package/src/runtime/routes/work-items-routes.ts +21 -25
- package/src/runtime/routes/workspace-routes.test.ts +3 -3
- package/src/runtime/routes/workspace-utils.ts +1 -1
- package/src/runtime/telegram-streaming-delivery.ts +3 -0
- package/src/runtime/verification-outbound-actions.ts +2 -2
- package/src/schedule/integration-status.ts +0 -6
- package/src/schedule/schedule-store.ts +234 -43
- package/src/schedule/scheduler.ts +73 -74
- package/src/security/oauth2.ts +1 -1
- package/src/sequence/store.ts +12 -2
- package/src/skills/frontmatter.ts +19 -77
- package/src/skills/managed-store.ts +11 -2
- package/src/subagent/manager.ts +5 -3
- package/src/tasks/ephemeral-permissions.ts +3 -5
- package/src/tools/AGENTS.md +37 -0
- package/src/tools/apps/executors.ts +0 -6
- package/src/tools/browser/browser-manager.ts +17 -11
- package/src/tools/browser/jit-auth.ts +4 -1
- package/src/tools/claude-code/claude-code.ts +1 -1
- package/src/tools/computer-use/definitions.ts +48 -60
- package/src/tools/document/document-tool.ts +6 -6
- package/src/tools/document/editor-template.ts +10 -8
- package/src/tools/filesystem/edit.ts +2 -1
- package/src/tools/filesystem/read.ts +20 -2
- package/src/tools/filesystem/write.ts +2 -1
- package/src/tools/host-filesystem/edit.ts +17 -1
- package/src/tools/host-filesystem/read.ts +16 -1
- package/src/tools/host-filesystem/write.ts +15 -1
- package/src/tools/host-terminal/host-shell.ts +24 -0
- package/src/tools/memory/definitions.ts +45 -81
- package/src/tools/memory/handlers.test.ts +0 -1
- package/src/tools/memory/handlers.ts +1 -1
- package/src/tools/memory/register.ts +26 -60
- package/src/tools/network/script-proxy/session-manager.ts +6 -8
- package/src/tools/network/web-fetch.ts +7 -1
- package/src/tools/network/web-search.ts +2 -1
- package/src/tools/registry.ts +23 -0
- package/src/tools/schedule/create.ts +113 -5
- package/src/tools/schedule/list.ts +57 -15
- package/src/tools/schedule/update.ts +73 -3
- package/src/tools/shared/filesystem/image-read.ts +192 -0
- package/src/tools/side-effects.ts +1 -7
- package/src/tools/skills/delete-managed.ts +27 -64
- package/src/tools/skills/execute.ts +54 -0
- package/src/tools/skills/load.ts +127 -5
- package/src/tools/skills/scaffold-managed.ts +93 -172
- package/src/tools/subagent/message.ts +0 -7
- package/src/tools/subagent/spawn.ts +1 -1
- package/src/tools/swarm/delegate.ts +0 -3
- package/src/tools/system/avatar-generator.ts +13 -19
- package/src/tools/system/request-permission.ts +2 -1
- package/src/tools/terminal/safe-env.ts +1 -0
- package/src/tools/tool-manifest.ts +41 -47
- package/src/tools/types.ts +6 -2
- package/src/tools/ui-surface/definitions.ts +0 -55
- package/src/util/errors.ts +12 -10
- package/src/workspace/git-service.ts +0 -2
- package/src/__tests__/account-registry.test.ts +0 -258
- package/src/__tests__/email-classifier.test.ts +0 -25
- package/src/__tests__/gmail-integration.test.ts +0 -97
- package/src/__tests__/handle-user-message-secret-resume.test.ts +0 -172
- package/src/__tests__/home-base-bootstrap.test.ts +0 -84
- package/src/__tests__/managed-twitter-guardrails.test.ts +0 -353
- package/src/__tests__/prebuilt-home-base-seed.test.ts +0 -79
- package/src/__tests__/recording-intent-fallback.test.ts +0 -199
- package/src/__tests__/recording-intent.test.ts +0 -985
- package/src/__tests__/recording-state-machine.test.ts +0 -1574
- package/src/__tests__/reminder-store.test.ts +0 -350
- package/src/__tests__/reminder.test.ts +0 -337
- package/src/__tests__/scan-result-store.test.ts +0 -121
- package/src/__tests__/twitter-platform-proxy-client.test.ts +0 -450
- package/src/__tests__/view-image-tool.test.ts +0 -241
- package/src/cli/commands/amazon/cart.ts +0 -513
- package/src/cli/commands/amazon/checkout.ts +0 -394
- package/src/cli/commands/amazon/client.ts +0 -513
- package/src/cli/commands/amazon/index.ts +0 -920
- package/src/cli/commands/amazon/product-details.ts +0 -145
- package/src/cli/commands/amazon/request-extractor.ts +0 -187
- package/src/cli/commands/amazon/search.ts +0 -76
- package/src/cli/commands/amazon/session.ts +0 -116
- package/src/cli/commands/twitter/__tests__/cli-error-shaping.test.ts +0 -265
- package/src/cli/commands/twitter/__tests__/cli-read-routing.test.ts +0 -483
- package/src/cli/commands/twitter/__tests__/cli-routing.test.ts +0 -412
- package/src/cli/commands/twitter/__tests__/oauth-client.test.ts +0 -197
- package/src/cli/commands/twitter/client.ts +0 -989
- package/src/cli/commands/twitter/index.ts +0 -1160
- package/src/cli/commands/twitter/oauth-client.ts +0 -94
- package/src/cli/commands/twitter/router.ts +0 -396
- package/src/cli/commands/twitter/session.ts +0 -121
- package/src/config/bundled-skills/agentmail/SKILL.md +0 -132
- package/src/config/bundled-skills/agentmail/icon.svg +0 -21
- package/src/config/bundled-skills/amazon/SKILL.md +0 -137
- package/src/config/bundled-skills/amazon/icon.svg +0 -13
- package/src/config/bundled-skills/api-mapping/SKILL.md +0 -78
- package/src/config/bundled-skills/api-mapping/icon.svg +0 -18
- package/src/config/bundled-skills/cli-discover/SKILL.md +0 -68
- package/src/config/bundled-skills/deploy-fullstack-vercel/SKILL.md +0 -179
- package/src/config/bundled-skills/document-writer/SKILL.md +0 -195
- package/src/config/bundled-skills/elevenlabs-voice/SKILL.md +0 -140
- package/src/config/bundled-skills/email-setup/SKILL.md +0 -68
- package/src/config/bundled-skills/frontend-design/SKILL.md +0 -44
- package/src/config/bundled-skills/frontend-design/icon.svg +0 -16
- package/src/config/bundled-skills/google-oauth-setup/SKILL.md +0 -452
- package/src/config/bundled-skills/guardian-verify-setup/SKILL.md +0 -203
- package/src/config/bundled-skills/influencer/SKILL.md +0 -144
- package/src/config/bundled-skills/influencer/scripts/client.ts +0 -1269
- package/src/config/bundled-skills/influencer/scripts/influencer.ts +0 -267
- package/src/config/bundled-skills/macos-automation/SKILL.md +0 -65
- package/src/config/bundled-skills/macos-automation/icon.svg +0 -12
- package/src/config/bundled-skills/mcp-setup/SKILL.md +0 -75
- package/src/config/bundled-skills/media-processing/tools/media-diagnostics.ts +0 -184
- package/src/config/bundled-skills/messaging/tools/gmail-archive-by-query.ts +0 -80
- package/src/config/bundled-skills/messaging/tools/gmail-archive.ts +0 -29
- package/src/config/bundled-skills/messaging/tools/gmail-batch-archive.ts +0 -56
- package/src/config/bundled-skills/messaging/tools/gmail-batch-label.ts +0 -34
- package/src/config/bundled-skills/messaging/tools/gmail-download-attachment.ts +0 -47
- package/src/config/bundled-skills/messaging/tools/gmail-label.ts +0 -31
- package/src/config/bundled-skills/messaging/tools/gmail-list-attachments.ts +0 -67
- package/src/config/bundled-skills/messaging/tools/gmail-send-with-attachments.ts +0 -97
- package/src/config/bundled-skills/messaging/tools/gmail-summarize-thread.ts +0 -87
- package/src/config/bundled-skills/messaging/tools/gmail-triage.ts +0 -135
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-activity.ts +0 -24
- package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +0 -201
- package/src/config/bundled-skills/messaging/tools/send-notification.ts +0 -1
- package/src/config/bundled-skills/messaging/tools/sequence-cancel.ts +0 -27
- package/src/config/bundled-skills/messaging/tools/sequence-pause.ts +0 -48
- package/src/config/bundled-skills/messaging/tools/sequence-resume.ts +0 -27
- package/src/config/bundled-skills/messaging/tools/sequence-update.ts +0 -56
- package/src/config/bundled-skills/notion/SKILL.md +0 -240
- package/src/config/bundled-skills/notion-oauth-setup/SKILL.md +0 -126
- package/src/config/bundled-skills/oauth-setup/SKILL.md +0 -143
- package/src/config/bundled-skills/public-ingress/SKILL.md +0 -258
- package/src/config/bundled-skills/reminder/SKILL.md +0 -79
- package/src/config/bundled-skills/reminder/TOOLS.json +0 -89
- package/src/config/bundled-skills/reminder/tools/reminder-list.ts +0 -12
- package/src/config/bundled-skills/restaurant-reservation/SKILL.md +0 -141
- package/src/config/bundled-skills/screen-recording/SKILL.md +0 -148
- package/src/config/bundled-skills/self-upgrade/SKILL.md +0 -69
- package/src/config/bundled-skills/skills-catalog/SKILL.md +0 -78
- package/src/config/bundled-skills/slack-app-setup/SKILL.md +0 -178
- package/src/config/bundled-skills/slack-digest-setup/SKILL.md +0 -163
- package/src/config/bundled-skills/slack-oauth-setup/SKILL.md +0 -157
- package/src/config/bundled-skills/start-the-day/SKILL.md +0 -70
- package/src/config/bundled-skills/start-the-day/icon.svg +0 -13
- package/src/config/bundled-skills/telegram-setup/SKILL.md +0 -105
- package/src/config/bundled-skills/time-based-actions/SKILL.md +0 -142
- package/src/config/bundled-skills/twilio-setup/SKILL.md +0 -232
- package/src/config/bundled-skills/twitter/SKILL.md +0 -319
- package/src/config/bundled-skills/twitter/icon.svg +0 -14
- package/src/config/bundled-skills/typescript-eval/SKILL.md +0 -60
- package/src/config/bundled-skills/vercel-token-setup/SKILL.md +0 -214
- package/src/config/bundled-skills/voice-setup/SKILL.md +0 -131
- package/src/config/bundled-skills/voice-setup/icon.svg +0 -20
- package/src/daemon/handlers/pairing.ts +0 -119
- package/src/daemon/handlers/session-user-message.ts +0 -961
- package/src/daemon/recording-executor.ts +0 -180
- package/src/daemon/recording-intent-fallback.ts +0 -162
- package/src/daemon/recording-intent.ts +0 -493
- package/src/home-base/app-link-store.ts +0 -78
- package/src/home-base/bootstrap.ts +0 -74
- package/src/home-base/prebuilt/brain-graph.html +0 -1483
- package/src/home-base/prebuilt/index.html +0 -702
- package/src/home-base/prebuilt/seed-metadata.json +0 -21
- package/src/home-base/prebuilt/seed.ts +0 -122
- package/src/home-base/prebuilt-home-base-updater.ts +0 -36
- package/src/memory/account-store.ts +0 -117
- package/src/messaging/activity-analyzer.ts +0 -76
- package/src/messaging/email-classifier.ts +0 -208
- package/src/messaging/index.ts +0 -2
- package/src/messaging/outreach-classifier.ts +0 -185
- package/src/messaging/thread-summarizer.ts +0 -346
- package/src/messaging/types.ts +0 -17
- package/src/tools/browser/x-auto-navigate.ts +0 -254
- package/src/tools/credentials/account-registry.ts +0 -144
- package/src/tools/filesystem/view-image.ts +0 -244
- package/src/tools/reminder/reminder-store.ts +0 -194
- package/src/tools/reminder/reminder.ts +0 -158
- package/src/tools/system/navigate-settings.ts +0 -74
- package/src/tools/system/open-system-settings.ts +0 -85
- package/src/tools/system/version.ts +0 -54
- package/src/twitter/platform-proxy-client.ts +0 -405
- package/src/util/cookie-session.ts +0 -98
- /package/src/config/bundled-skills/{messaging → gmail}/tools/scan-result-store.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-analytics.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-create.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-delete.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enroll.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enrollment-list.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-get.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-import.ts +0 -0
- /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-list.ts +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared MCP reload business logic.
|
|
3
|
+
*
|
|
4
|
+
* Used by the HTTP route (`runtime/routes/mcp-routes.ts`) so the reload
|
|
5
|
+
* behaviour is defined in exactly one place.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { getConfig, invalidateConfigCache } from "../config/loader.js";
|
|
9
|
+
import { getMcpServerManager } from "../mcp/manager.js";
|
|
10
|
+
import { createMcpToolsFromServer } from "../tools/mcp/mcp-tool-factory.js";
|
|
11
|
+
import { registerMcpTools, unregisterAllMcpTools } from "../tools/registry.js";
|
|
12
|
+
import { getLogger } from "../util/logger.js";
|
|
13
|
+
|
|
14
|
+
const log = getLogger("mcp-reload-service");
|
|
15
|
+
|
|
16
|
+
/** Per-server reload result. */
|
|
17
|
+
export interface McpReloadServerResult {
|
|
18
|
+
id: string;
|
|
19
|
+
connected: boolean;
|
|
20
|
+
/** True when the server is explicitly disabled in config. */
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
toolCount: number;
|
|
23
|
+
tools: string[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface McpReloadResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
serverCount?: number;
|
|
29
|
+
toolCount?: number;
|
|
30
|
+
servers?: McpReloadServerResult[];
|
|
31
|
+
error?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
let reloadInProgress: Promise<McpReloadResult> | null = null;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Stop all MCP servers, reload configuration from disk, and restart
|
|
38
|
+
* servers with the updated config. Returns a summary of the reload.
|
|
39
|
+
*
|
|
40
|
+
* Concurrent calls are serialized — if a reload is already in progress
|
|
41
|
+
* the caller receives the same promise instead of starting a second one.
|
|
42
|
+
*/
|
|
43
|
+
export function reloadMcpServers(): Promise<McpReloadResult> {
|
|
44
|
+
if (reloadInProgress) {
|
|
45
|
+
log.info("MCP reload already in progress, awaiting existing operation");
|
|
46
|
+
return reloadInProgress;
|
|
47
|
+
}
|
|
48
|
+
reloadInProgress = doReload().finally(() => {
|
|
49
|
+
reloadInProgress = null;
|
|
50
|
+
});
|
|
51
|
+
return reloadInProgress;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function doReload(): Promise<McpReloadResult> {
|
|
55
|
+
try {
|
|
56
|
+
const manager = getMcpServerManager();
|
|
57
|
+
|
|
58
|
+
// 1. Validate new config before tearing down existing servers.
|
|
59
|
+
// If the config is broken we abort early, preserving the current
|
|
60
|
+
// working MCP setup instead of leaving zero servers.
|
|
61
|
+
invalidateConfigCache();
|
|
62
|
+
const config = getConfig();
|
|
63
|
+
|
|
64
|
+
// 2. Stop existing MCP servers + unregister their tools
|
|
65
|
+
await manager.stop();
|
|
66
|
+
unregisterAllMcpTools();
|
|
67
|
+
const serverIds = config.mcp?.servers
|
|
68
|
+
? Object.keys(config.mcp.servers)
|
|
69
|
+
: [];
|
|
70
|
+
|
|
71
|
+
// 3. Restart MCP servers
|
|
72
|
+
let serverCount = 0;
|
|
73
|
+
let toolCount = 0;
|
|
74
|
+
const servers: McpReloadServerResult[] = [];
|
|
75
|
+
|
|
76
|
+
if (config.mcp?.servers && Object.keys(config.mcp.servers).length > 0) {
|
|
77
|
+
const serverToolInfos = await manager.start(config.mcp);
|
|
78
|
+
for (const { serverId, serverConfig, tools } of serverToolInfos) {
|
|
79
|
+
const mcpTools = createMcpToolsFromServer(
|
|
80
|
+
tools,
|
|
81
|
+
serverId,
|
|
82
|
+
serverConfig,
|
|
83
|
+
manager,
|
|
84
|
+
);
|
|
85
|
+
const accepted = registerMcpTools(mcpTools);
|
|
86
|
+
const acceptedNames = accepted.map((t) => t.name);
|
|
87
|
+
toolCount += accepted.length;
|
|
88
|
+
servers.push({
|
|
89
|
+
id: serverId,
|
|
90
|
+
connected: true,
|
|
91
|
+
toolCount: accepted.length,
|
|
92
|
+
tools: acceptedNames,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// Include servers that were configured but failed to connect or are disabled
|
|
96
|
+
for (const id of serverIds) {
|
|
97
|
+
if (!servers.some((s) => s.id === id)) {
|
|
98
|
+
const serverConfig = config.mcp!.servers![id];
|
|
99
|
+
const isDisabled = serverConfig?.enabled === false;
|
|
100
|
+
servers.push({
|
|
101
|
+
id,
|
|
102
|
+
connected: false,
|
|
103
|
+
disabled: isDisabled || undefined,
|
|
104
|
+
toolCount: 0,
|
|
105
|
+
tools: [],
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
serverCount = servers.length;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Sessions pick up new MCP tools automatically on their next turn
|
|
113
|
+
// via the dynamic resolver in createResolveToolsCallback — no need
|
|
114
|
+
// to evict sessions.
|
|
115
|
+
|
|
116
|
+
log.info({ serverCount, toolCount }, "MCP servers reloaded");
|
|
117
|
+
return { success: true, serverCount, toolCount, servers };
|
|
118
|
+
} catch (err) {
|
|
119
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
120
|
+
log.error({ err }, "MCP reload failed");
|
|
121
|
+
return { success: false, error };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -20,6 +20,8 @@ export * from "./message-types/contacts.js";
|
|
|
20
20
|
export * from "./message-types/diagnostics.js";
|
|
21
21
|
export * from "./message-types/documents.js";
|
|
22
22
|
export * from "./message-types/guardian-actions.js";
|
|
23
|
+
export * from "./message-types/host-bash.js";
|
|
24
|
+
export * from "./message-types/host-file.js";
|
|
23
25
|
export * from "./message-types/inbox.js";
|
|
24
26
|
export * from "./message-types/integrations.js";
|
|
25
27
|
export * from "./message-types/memory.js";
|
|
@@ -66,6 +68,8 @@ import type {
|
|
|
66
68
|
_GuardianActionsClientMessages,
|
|
67
69
|
_GuardianActionsServerMessages,
|
|
68
70
|
} from "./message-types/guardian-actions.js";
|
|
71
|
+
import type { _HostBashServerMessages } from "./message-types/host-bash.js";
|
|
72
|
+
import type { _HostFileServerMessages } from "./message-types/host-file.js";
|
|
69
73
|
import type {
|
|
70
74
|
_InboxClientMessages,
|
|
71
75
|
_InboxServerMessages,
|
|
@@ -175,6 +179,8 @@ export type ServerMessage =
|
|
|
175
179
|
| _SubagentsServerMessages
|
|
176
180
|
| _DocumentsServerMessages
|
|
177
181
|
| _GuardianActionsServerMessages
|
|
182
|
+
| _HostBashServerMessages
|
|
183
|
+
| _HostFileServerMessages
|
|
178
184
|
| _MemoryServerMessages
|
|
179
185
|
| _WorkspaceServerMessages
|
|
180
186
|
| _SchedulesServerMessages
|
|
@@ -18,12 +18,6 @@ export interface AppsListRequest {
|
|
|
18
18
|
type: "apps_list";
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export interface HomeBaseGetRequest {
|
|
22
|
-
type: "home_base_get";
|
|
23
|
-
/** If true, daemon ensures a durable Home Base link exists before responding. */
|
|
24
|
-
ensureLinked?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
21
|
export interface AppOpenRequest {
|
|
28
22
|
type: "app_open_request";
|
|
29
23
|
appId: string;
|
|
@@ -176,23 +170,6 @@ export interface AppsListResponse {
|
|
|
176
170
|
}>;
|
|
177
171
|
}
|
|
178
172
|
|
|
179
|
-
export interface HomeBaseGetResponse {
|
|
180
|
-
type: "home_base_get_response";
|
|
181
|
-
homeBase: {
|
|
182
|
-
appId: string;
|
|
183
|
-
source: string;
|
|
184
|
-
starterTasks: string[];
|
|
185
|
-
onboardingTasks: string[];
|
|
186
|
-
preview: {
|
|
187
|
-
title: string;
|
|
188
|
-
subtitle: string;
|
|
189
|
-
description: string;
|
|
190
|
-
icon: string;
|
|
191
|
-
metrics: Array<{ label: string; value: string }>;
|
|
192
|
-
};
|
|
193
|
-
} | null;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
173
|
export interface SharedAppsListResponse {
|
|
197
174
|
type: "shared_apps_list_response";
|
|
198
175
|
apps: Array<{
|
|
@@ -361,7 +338,6 @@ export interface AppFilesChanged {
|
|
|
361
338
|
export type _AppsClientMessages =
|
|
362
339
|
| AppDataRequest
|
|
363
340
|
| AppsListRequest
|
|
364
|
-
| HomeBaseGetRequest
|
|
365
341
|
| AppOpenRequest
|
|
366
342
|
| SharedAppsListRequest
|
|
367
343
|
| AppDeleteRequest
|
|
@@ -386,7 +362,6 @@ export type _AppsClientMessages =
|
|
|
386
362
|
export type _AppsServerMessages =
|
|
387
363
|
| AppDataResponse
|
|
388
364
|
| AppsListResponse
|
|
389
|
-
| HomeBaseGetResponse
|
|
390
365
|
| SharedAppsListResponse
|
|
391
366
|
| AppDeleteResponse
|
|
392
367
|
| SharedAppDeleteResponse
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Browser interaction types.
|
|
2
|
-
// CDP request/response
|
|
2
|
+
// CDP request/response messaging was removed — Playwright's connectOverCDP is broken
|
|
3
3
|
// under Bun's runtime. Browser is now launched directly via Playwright.
|
|
4
4
|
|
|
5
5
|
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
// Computer use, task routing, ride shotgun, and watch observation types.
|
|
2
2
|
|
|
3
|
-
import type {
|
|
4
|
-
CommandIntent,
|
|
5
|
-
UserMessageAttachment,
|
|
6
|
-
} from "./shared.js";
|
|
3
|
+
import type { CommandIntent, UserMessageAttachment } from "./shared.js";
|
|
7
4
|
|
|
8
5
|
// === Client → Server ===
|
|
9
6
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Host bash proxy types.
|
|
2
|
+
// Enables proxying shell commands to the desktop client (host machine)
|
|
3
|
+
// when running as a managed assistant.
|
|
4
|
+
|
|
5
|
+
// === Server → Client ===
|
|
6
|
+
|
|
7
|
+
export interface HostBashRequest {
|
|
8
|
+
type: "host_bash_request";
|
|
9
|
+
requestId: string;
|
|
10
|
+
sessionId: string;
|
|
11
|
+
command: string;
|
|
12
|
+
working_dir?: string;
|
|
13
|
+
timeout_seconds?: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
17
|
+
|
|
18
|
+
export type _HostBashServerMessages = HostBashRequest;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Host file proxy types.
|
|
2
|
+
// Enables proxying file operations to the desktop client (host machine)
|
|
3
|
+
// when running as a managed assistant.
|
|
4
|
+
|
|
5
|
+
// === Server → Client ===
|
|
6
|
+
|
|
7
|
+
export interface HostFileReadRequest {
|
|
8
|
+
type: "host_file_request";
|
|
9
|
+
requestId: string;
|
|
10
|
+
sessionId: string;
|
|
11
|
+
operation: "read";
|
|
12
|
+
path: string;
|
|
13
|
+
offset?: number;
|
|
14
|
+
limit?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface HostFileWriteRequest {
|
|
18
|
+
type: "host_file_request";
|
|
19
|
+
requestId: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
operation: "write";
|
|
22
|
+
path: string;
|
|
23
|
+
content: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface HostFileEditRequest {
|
|
27
|
+
type: "host_file_request";
|
|
28
|
+
requestId: string;
|
|
29
|
+
sessionId: string;
|
|
30
|
+
operation: "edit";
|
|
31
|
+
path: string;
|
|
32
|
+
old_string: string;
|
|
33
|
+
new_string: string;
|
|
34
|
+
replace_all?: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type HostFileRequest =
|
|
38
|
+
| HostFileReadRequest
|
|
39
|
+
| HostFileWriteRequest
|
|
40
|
+
| HostFileEditRequest;
|
|
41
|
+
|
|
42
|
+
// --- Domain-level union aliases (consumed by the barrel file) ---
|
|
43
|
+
|
|
44
|
+
export type _HostFileServerMessages = HostFileRequest;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// External service integrations: Slack, Telegram,
|
|
1
|
+
// External service integrations: Slack, Telegram, Vercel, ingress, guardian.
|
|
2
2
|
|
|
3
3
|
import type { ChannelId } from "../../channels/types.js";
|
|
4
4
|
|
|
@@ -29,22 +29,6 @@ export interface VercelApiConfigRequest {
|
|
|
29
29
|
apiToken?: string;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export interface TwitterIntegrationConfigRequest {
|
|
33
|
-
type: "twitter_integration_config";
|
|
34
|
-
action:
|
|
35
|
-
| "get"
|
|
36
|
-
| "set_mode"
|
|
37
|
-
| "set_local_client"
|
|
38
|
-
| "clear_local_client"
|
|
39
|
-
| "disconnect"
|
|
40
|
-
| "get_strategy"
|
|
41
|
-
| "set_strategy";
|
|
42
|
-
mode?: "local_byo" | "managed";
|
|
43
|
-
clientId?: string;
|
|
44
|
-
clientSecret?: string;
|
|
45
|
-
strategy?: string;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
32
|
export interface TelegramConfigRequest {
|
|
49
33
|
type: "telegram_config";
|
|
50
34
|
action: "get" | "set" | "clear" | "set_commands" | "setup";
|
|
@@ -73,14 +57,6 @@ export interface ChannelVerificationSessionRequest {
|
|
|
73
57
|
contactChannelId?: string;
|
|
74
58
|
}
|
|
75
59
|
|
|
76
|
-
export interface TwitterAuthStartRequest {
|
|
77
|
-
type: "twitter_auth_start";
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface TwitterAuthStatusRequest {
|
|
81
|
-
type: "twitter_auth_status";
|
|
82
|
-
}
|
|
83
|
-
|
|
84
60
|
export interface IntegrationListRequest {
|
|
85
61
|
type: "integration_list";
|
|
86
62
|
}
|
|
@@ -140,31 +116,6 @@ export interface VercelApiConfigResponse {
|
|
|
140
116
|
error?: string;
|
|
141
117
|
}
|
|
142
118
|
|
|
143
|
-
export interface ManagedPrerequisites {
|
|
144
|
-
/** Whether twitter.integrationMode is set to "managed" in config. */
|
|
145
|
-
integrationModeManaged: boolean;
|
|
146
|
-
/** Whether the assistant API key credential exists in secure storage. */
|
|
147
|
-
assistantApiKeyPresent: boolean;
|
|
148
|
-
/** Whether the platform base URL is configured (platform registration resolvable). */
|
|
149
|
-
platformAssistantIdResolvable: boolean;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export interface TwitterIntegrationConfigResponse {
|
|
153
|
-
type: "twitter_integration_config_response";
|
|
154
|
-
success: boolean;
|
|
155
|
-
mode?: "local_byo" | "managed";
|
|
156
|
-
managedAvailable: boolean;
|
|
157
|
-
/** Detailed prerequisite status for managed Twitter availability. */
|
|
158
|
-
managedPrerequisites?: ManagedPrerequisites;
|
|
159
|
-
localClientConfigured: boolean;
|
|
160
|
-
connected: boolean;
|
|
161
|
-
accountInfo?: string;
|
|
162
|
-
strategy?: "oauth" | "browser" | "auto";
|
|
163
|
-
/** Whether the user has explicitly set a strategy (vs. relying on the default 'auto'). */
|
|
164
|
-
strategyConfigured?: boolean;
|
|
165
|
-
error?: string;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
119
|
export interface TelegramConfigResponse {
|
|
169
120
|
type: "telegram_config_response";
|
|
170
121
|
success: boolean;
|
|
@@ -217,23 +168,6 @@ export interface ChannelVerificationSessionResponse {
|
|
|
217
168
|
pendingBootstrap?: boolean;
|
|
218
169
|
}
|
|
219
170
|
|
|
220
|
-
export interface TwitterAuthResult {
|
|
221
|
-
type: "twitter_auth_result";
|
|
222
|
-
success: boolean;
|
|
223
|
-
accountInfo?: string;
|
|
224
|
-
/** Machine-readable error code for programmatic handling (e.g. "managed_missing_api_key", "managed_auth_via_platform"). */
|
|
225
|
-
errorCode?: string;
|
|
226
|
-
error?: string;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
export interface TwitterAuthStatusResponse {
|
|
230
|
-
type: "twitter_auth_status_response";
|
|
231
|
-
connected: boolean;
|
|
232
|
-
accountInfo?: string;
|
|
233
|
-
mode?: "local_byo" | "managed";
|
|
234
|
-
error?: string;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
171
|
export interface IntegrationListResponse {
|
|
238
172
|
type: "integration_list_response";
|
|
239
173
|
integrations: Array<{
|
|
@@ -283,11 +217,8 @@ export type _IntegrationsClientMessages =
|
|
|
283
217
|
| IngressConfigRequest
|
|
284
218
|
| PlatformConfigRequest
|
|
285
219
|
| VercelApiConfigRequest
|
|
286
|
-
| TwitterIntegrationConfigRequest
|
|
287
220
|
| TelegramConfigRequest
|
|
288
221
|
| ChannelVerificationSessionRequest
|
|
289
|
-
| TwitterAuthStartRequest
|
|
290
|
-
| TwitterAuthStatusRequest
|
|
291
222
|
| IntegrationListRequest
|
|
292
223
|
| IntegrationConnectRequest
|
|
293
224
|
| IntegrationDisconnectRequest
|
|
@@ -299,11 +230,8 @@ export type _IntegrationsServerMessages =
|
|
|
299
230
|
| IngressConfigResponse
|
|
300
231
|
| PlatformConfigResponse
|
|
301
232
|
| VercelApiConfigResponse
|
|
302
|
-
| TwitterIntegrationConfigResponse
|
|
303
233
|
| TelegramConfigResponse
|
|
304
234
|
| ChannelVerificationSessionResponse
|
|
305
|
-
| TwitterAuthResult
|
|
306
|
-
| TwitterAuthStatusResponse
|
|
307
235
|
| IntegrationListResponse
|
|
308
236
|
| IntegrationConnectResult
|
|
309
237
|
| OAuthConnectResultResponse
|
|
@@ -95,11 +95,20 @@ export interface ToolOutputChunk {
|
|
|
95
95
|
subToolId?: string;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
export interface ToolUsePreviewStart {
|
|
99
|
+
type: "tool_use_preview_start";
|
|
100
|
+
toolUseId: string;
|
|
101
|
+
toolName: string;
|
|
102
|
+
sessionId?: string;
|
|
103
|
+
}
|
|
104
|
+
|
|
98
105
|
export interface ToolInputDelta {
|
|
99
106
|
type: "tool_input_delta";
|
|
100
107
|
toolName: string;
|
|
101
108
|
content: string;
|
|
102
109
|
sessionId?: string;
|
|
110
|
+
/** The tool_use block ID for client-side correlation. */
|
|
111
|
+
toolUseId?: string;
|
|
103
112
|
}
|
|
104
113
|
|
|
105
114
|
export interface ToolResult {
|
|
@@ -117,6 +126,8 @@ export interface ToolResult {
|
|
|
117
126
|
sessionId?: string;
|
|
118
127
|
/** Base64-encoded image data extracted from contentBlocks (e.g. browser_screenshot). */
|
|
119
128
|
imageData?: string;
|
|
129
|
+
/** The tool_use block ID for client-side correlation. */
|
|
130
|
+
toolUseId?: string;
|
|
120
131
|
}
|
|
121
132
|
|
|
122
133
|
export interface ConfirmationRequest {
|
|
@@ -169,6 +180,8 @@ export interface MessageComplete {
|
|
|
169
180
|
type: "message_complete";
|
|
170
181
|
sessionId?: string;
|
|
171
182
|
attachments?: UserMessageAttachment[];
|
|
183
|
+
/** Database ID of the persisted assistant message, if any. */
|
|
184
|
+
messageId?: string;
|
|
172
185
|
}
|
|
173
186
|
|
|
174
187
|
export interface ErrorMessage {
|
|
@@ -270,6 +283,7 @@ export interface AssistantActivityState {
|
|
|
270
283
|
| "thinking_delta"
|
|
271
284
|
| "first_text_delta"
|
|
272
285
|
| "tool_use_start"
|
|
286
|
+
| "preview_start"
|
|
273
287
|
| "tool_result_received"
|
|
274
288
|
| "confirmation_requested"
|
|
275
289
|
| "confirmation_resolved"
|
|
@@ -325,6 +339,7 @@ export type _MessagesServerMessages =
|
|
|
325
339
|
| AssistantTextDelta
|
|
326
340
|
| AssistantThinkingDelta
|
|
327
341
|
| ToolUseStart
|
|
342
|
+
| ToolUsePreviewStart
|
|
328
343
|
| ToolOutputChunk
|
|
329
344
|
| ToolInputDelta
|
|
330
345
|
| ToolResult
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Schedule,
|
|
1
|
+
// Schedule, watcher, and heartbeat types.
|
|
2
2
|
|
|
3
3
|
// === Client → Server ===
|
|
4
4
|
|
|
@@ -6,15 +6,6 @@ export interface SchedulesList {
|
|
|
6
6
|
type: "schedules_list";
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export interface RemindersList {
|
|
10
|
-
type: "reminders_list";
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface ReminderCancel {
|
|
14
|
-
type: "reminder_cancel";
|
|
15
|
-
id: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
9
|
export interface ScheduleToggle {
|
|
19
10
|
type: "schedule_toggle";
|
|
20
11
|
id: string;
|
|
@@ -26,6 +17,11 @@ export interface ScheduleRemove {
|
|
|
26
17
|
id: string;
|
|
27
18
|
}
|
|
28
19
|
|
|
20
|
+
export interface ScheduleCancel {
|
|
21
|
+
type: "schedule_cancel";
|
|
22
|
+
id: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
29
25
|
export interface ScheduleRunNow {
|
|
30
26
|
type: "schedule_run_now";
|
|
31
27
|
id: string;
|
|
@@ -67,28 +63,18 @@ export interface SchedulesListResponse {
|
|
|
67
63
|
name: string;
|
|
68
64
|
enabled: boolean;
|
|
69
65
|
syntax: string;
|
|
70
|
-
expression: string;
|
|
71
|
-
cronExpression: string;
|
|
66
|
+
expression: string | null;
|
|
67
|
+
cronExpression: string | null;
|
|
72
68
|
timezone: string | null;
|
|
73
69
|
message: string;
|
|
74
70
|
nextRunAt: number;
|
|
75
71
|
lastRunAt: number | null;
|
|
76
72
|
lastStatus: string | null;
|
|
77
73
|
description: string;
|
|
78
|
-
}>;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface RemindersListResponse {
|
|
82
|
-
type: "reminders_list_response";
|
|
83
|
-
reminders: Array<{
|
|
84
|
-
id: string;
|
|
85
|
-
label: string;
|
|
86
|
-
message: string;
|
|
87
|
-
fireAt: number;
|
|
88
74
|
mode: string;
|
|
89
75
|
status: string;
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
routingIntent: string;
|
|
77
|
+
isOneShot: boolean;
|
|
92
78
|
}>;
|
|
93
79
|
}
|
|
94
80
|
|
|
@@ -144,9 +130,8 @@ export type _SchedulesClientMessages =
|
|
|
144
130
|
| SchedulesList
|
|
145
131
|
| ScheduleToggle
|
|
146
132
|
| ScheduleRemove
|
|
133
|
+
| ScheduleCancel
|
|
147
134
|
| ScheduleRunNow
|
|
148
|
-
| RemindersList
|
|
149
|
-
| ReminderCancel
|
|
150
135
|
| HeartbeatConfig
|
|
151
136
|
| HeartbeatRunsList
|
|
152
137
|
| HeartbeatRunNow
|
|
@@ -155,7 +140,6 @@ export type _SchedulesClientMessages =
|
|
|
155
140
|
|
|
156
141
|
export type _SchedulesServerMessages =
|
|
157
142
|
| SchedulesListResponse
|
|
158
|
-
| RemindersListResponse
|
|
159
143
|
| HeartbeatAlert
|
|
160
144
|
| HeartbeatConfigResponse
|
|
161
145
|
| HeartbeatRunsListResponse
|
|
@@ -273,6 +273,8 @@ export interface GenerationHandoff {
|
|
|
273
273
|
requestId?: string;
|
|
274
274
|
queuedCount: number;
|
|
275
275
|
attachments?: UserMessageAttachment[];
|
|
276
|
+
/** Database ID of the persisted assistant message, if any. */
|
|
277
|
+
messageId?: string;
|
|
276
278
|
}
|
|
277
279
|
|
|
278
280
|
export interface ModelInfo {
|
|
@@ -304,7 +306,12 @@ export interface HistoryResponseSurface {
|
|
|
304
306
|
surfaceType: string;
|
|
305
307
|
title?: string;
|
|
306
308
|
data: Record<string, unknown>;
|
|
307
|
-
actions?: Array<{
|
|
309
|
+
actions?: Array<{
|
|
310
|
+
id: string;
|
|
311
|
+
label: string;
|
|
312
|
+
style?: string;
|
|
313
|
+
data?: Record<string, unknown>;
|
|
314
|
+
}>;
|
|
308
315
|
display?: string;
|
|
309
316
|
}
|
|
310
317
|
|
|
@@ -388,7 +395,6 @@ export type SessionErrorCode =
|
|
|
388
395
|
| "PROVIDER_API"
|
|
389
396
|
| "PROVIDER_BILLING"
|
|
390
397
|
| "CONTEXT_TOO_LARGE"
|
|
391
|
-
| "QUEUE_FULL"
|
|
392
398
|
| "SESSION_ABORTED"
|
|
393
399
|
| "SESSION_PROCESSING_FAILED"
|
|
394
400
|
| "REGENERATE_FAILED"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// === Client → Server ===
|
|
4
4
|
|
|
5
|
-
/** Request from a session or
|
|
5
|
+
/** Request from a session or client to change the voice activation key. */
|
|
6
6
|
export interface VoiceConfigUpdateRequest {
|
|
7
7
|
type: "voice_config_update";
|
|
8
8
|
/** The desired activation key (enum value or natural-language name). */
|
|
@@ -23,6 +23,8 @@ export interface SurfaceAction {
|
|
|
23
23
|
id: string;
|
|
24
24
|
label: string;
|
|
25
25
|
style?: "primary" | "secondary" | "destructive";
|
|
26
|
+
/** Optional data payload returned to the daemon when this action is clicked. */
|
|
27
|
+
data?: Record<string, unknown>;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export interface CardSurfaceData {
|