@vellumai/assistant 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +6 -7
- package/Dockerfile +1 -0
- package/README.md +2 -2
- package/__tests__/permissions/gateway-threshold-reader.test.ts +79 -139
- package/bun.lock +3 -0
- package/docs/architecture/security.md +18 -16
- package/knip.json +1 -0
- package/node_modules/@vellumai/skill-host-contracts/__tests__/client.test.ts +1 -5
- package/node_modules/@vellumai/skill-host-contracts/src/assistant-event.ts +0 -5
- package/node_modules/@vellumai/skill-host-contracts/src/client.ts +10 -16
- package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +1 -9
- package/node_modules/@vellumai/skill-host-contracts/src/tool-types.ts +12 -12
- package/node_modules/@vellumai/slack-text/bun.lock +24 -0
- package/node_modules/@vellumai/slack-text/package.json +18 -0
- package/node_modules/@vellumai/slack-text/src/index.test.ts +153 -0
- package/node_modules/@vellumai/slack-text/src/index.ts +235 -0
- package/node_modules/@vellumai/slack-text/tsconfig.json +20 -0
- package/openapi.yaml +294 -107
- package/package.json +4 -2
- package/scripts/generate-openapi.ts +16 -111
- package/src/__tests__/agent-wake-override-profile.test.ts +23 -1
- package/src/__tests__/anthropic-provider.test.ts +56 -13
- package/src/__tests__/app-conversation-ids-backfill.test.ts +278 -0
- package/src/__tests__/app-conversation-ids.test.ts +151 -0
- package/src/__tests__/approval-cascade.test.ts +0 -15
- package/src/__tests__/approval-routes-http.test.ts +6 -17
- package/src/__tests__/assistant-event-hub.test.ts +126 -77
- package/src/__tests__/assistant-event.test.ts +0 -5
- package/src/__tests__/assistant-events-sse-hardening.test.ts +37 -15
- package/src/__tests__/assistant-feature-flags-integration.test.ts +0 -29
- package/src/__tests__/background-shell-host-bash.test.ts +34 -43
- package/src/__tests__/call-controller.test.ts +1 -1
- package/src/__tests__/call-site-routing-provider.test.ts +193 -0
- package/src/__tests__/channel-approval-routes.test.ts +10 -296
- package/src/__tests__/channel-approvals.test.ts +25 -17
- package/src/__tests__/channel-guardian.test.ts +100 -146
- package/src/__tests__/checker.test.ts +20 -34
- package/src/__tests__/compact-event-conversation-id-guard.test.ts +50 -0
- package/src/__tests__/compaction-events.test.ts +2 -0
- package/src/__tests__/config-schema.test.ts +6 -48
- package/src/__tests__/config-watcher.test.ts +12 -0
- package/src/__tests__/connection-policy.test.ts +1 -52
- package/src/__tests__/contacts-write.test.ts +2 -64
- package/src/__tests__/context-image-dimensions.test.ts +1 -1
- package/src/__tests__/context-search-memory-source.test.ts +120 -1
- package/src/__tests__/context-search-memory-v2-source.test.ts +383 -0
- package/src/__tests__/context-search-pkb-source.test.ts +49 -0
- package/src/__tests__/context-search-workspace-source.test.ts +9 -22
- package/src/__tests__/context-window-manager.test.ts +46 -0
- package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +2 -0
- package/src/__tests__/conversation-agent-loop-overflow.test.ts +102 -29
- package/src/__tests__/conversation-agent-loop.test.ts +980 -13
- package/src/__tests__/conversation-analysis-routes.test.ts +12 -10
- package/src/__tests__/conversation-attention-telegram.test.ts +11 -3
- package/src/__tests__/conversation-confirmation-signals.test.ts +0 -291
- package/src/__tests__/conversation-history-web-search.test.ts +4 -3
- package/src/__tests__/conversation-inference-profile-route.test.ts +12 -23
- package/src/__tests__/conversation-lifecycle.test.ts +4 -4
- package/src/__tests__/conversation-process-callsite.test.ts +79 -2
- package/src/__tests__/conversation-queue.test.ts +3 -8
- package/src/__tests__/conversation-routes-disk-view.test.ts +1 -161
- package/src/__tests__/conversation-routes-guardian-reply.test.ts +0 -32
- package/src/__tests__/conversation-routes-slash-commands.test.ts +75 -66
- package/src/__tests__/conversation-runtime-assembly.test.ts +257 -3
- package/src/__tests__/conversation-slash-commands.test.ts +24 -4
- package/src/__tests__/conversation-slash-queue.test.ts +2 -0
- package/src/__tests__/conversation-speed-override.test.ts +0 -3
- package/src/__tests__/conversation-starter-routes.test.ts +79 -2
- package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +12 -5
- package/src/__tests__/conversation-surfaces-standalone.test.ts +18 -14
- package/src/__tests__/conversation-surfaces-state-update.test.ts +3 -2
- package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +8 -46
- package/src/__tests__/conversation-usage.test.ts +253 -3
- package/src/__tests__/credential-execution-shell-lockdown.test.ts +0 -39
- package/src/__tests__/credential-health-service.test.ts +68 -0
- package/src/__tests__/credential-security-e2e.test.ts +4 -3
- package/src/__tests__/credential-security-invariants.test.ts +1 -5
- package/src/__tests__/credential-token-resolver.test.ts +180 -0
- package/src/__tests__/cu-unified-flow.test.ts +33 -16
- package/src/__tests__/daemon-assistant-events.test.ts +34 -21
- package/src/__tests__/daemon-credential-client.test.ts +4 -1
- package/src/__tests__/db-connection-isolation.test.ts +125 -0
- package/src/__tests__/db-migration-rollback.test.ts +101 -0
- package/src/__tests__/db-slack-compaction-watermark-migration.test.ts +169 -0
- package/src/__tests__/deterministic-verification-control-plane.test.ts +7 -80
- package/src/__tests__/document-conversations.test.ts +332 -0
- package/src/__tests__/embedding-managed-proxy-selection.test.ts +2 -2
- package/src/__tests__/emit-event-signal.test.ts +4 -6
- package/src/__tests__/events-client-registration.test.ts +193 -49
- package/src/__tests__/filing-service.test.ts +58 -7
- package/src/__tests__/first-greeting.test.ts +156 -150
- package/src/__tests__/fixtures/mock-chrome-extension.ts +108 -66
- package/src/__tests__/get-skill-detail-audit.test.ts +3 -8
- package/src/__tests__/guardian-binding-drift-heal.test.ts +1 -1
- package/src/__tests__/guardian-dispatch.test.ts +1 -1
- package/src/__tests__/guardian-grant-minting.test.ts +7 -2
- package/src/__tests__/guardian-routing-invariants.test.ts +7 -2
- package/src/__tests__/guardian-routing-state.test.ts +1 -1
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +32 -11
- package/src/__tests__/handlers-user-message-approval-consumption.test.ts +2 -83
- package/src/__tests__/headless-browser-mode.test.ts +4 -9
- package/src/__tests__/headless-browser-navigate.test.ts +21 -20
- package/src/__tests__/heartbeat-service.test.ts +289 -7
- package/src/__tests__/helpers/channel-test-adapter.ts +2 -2
- package/src/__tests__/helpers/create-guardian-binding.ts +91 -0
- package/src/__tests__/host-bash-proxy.test.ts +46 -122
- package/src/__tests__/host-browser-e2e-cloud.test.ts +36 -497
- package/src/__tests__/host-browser-e2e-self-hosted-capability.test.ts +26 -96
- package/src/__tests__/host-browser-proxy.test.ts +111 -185
- package/src/__tests__/host-browser-routes.test.ts +45 -75
- package/src/__tests__/host-browser-ws-events-e2e.test.ts +26 -30
- package/src/__tests__/host-cu-proxy.test.ts +56 -111
- package/src/__tests__/host-file-proxy.test.ts +44 -98
- package/src/__tests__/host-file-read-tool.test.ts +42 -21
- package/src/__tests__/host-shell-tool.test.ts +33 -68
- package/src/__tests__/host-transfer-pending-interactions.test.ts +2 -18
- package/src/__tests__/host-transfer-proxy.test.ts +43 -53
- package/src/__tests__/http-user-message-parity.test.ts +0 -6
- package/src/__tests__/inbound-slack-persistence.test.ts +31 -0
- package/src/__tests__/injector-chain.test.ts +10 -5
- package/src/__tests__/injector-pkb-v2-silenced.test.ts +124 -0
- package/src/__tests__/inline-command-runner.test.ts +0 -66
- package/src/__tests__/inline-skill-load-permissions.test.ts +0 -2
- package/src/__tests__/install-skill-routing.test.ts +1 -13
- package/src/__tests__/llm-callsite-catalog.test.ts +34 -0
- package/src/__tests__/llm-catalog-parity.test.ts +90 -0
- package/src/__tests__/llm-context-resolution.test.ts +180 -0
- package/src/__tests__/llm-resolver.test.ts +80 -12
- package/src/__tests__/llm-usage-store.test.ts +269 -4
- package/src/__tests__/log-export-routes.test.ts +89 -0
- package/src/__tests__/managed-profile-guard.test.ts +225 -0
- package/src/__tests__/managed-skill-lifecycle.test.ts +0 -10
- package/src/__tests__/manual-token-reconciliation.test.ts +334 -0
- package/src/__tests__/memory-v2-static-injector.test.ts +95 -0
- package/src/__tests__/migration-cross-version-compatibility.test.ts +197 -291
- package/src/__tests__/migration-export-http.test.ts +33 -26
- package/src/__tests__/migration-export-streaming.test.ts +18 -10
- package/src/__tests__/migration-export-to-gcs.test.ts +49 -9
- package/src/__tests__/migration-import-commit-http.test.ts +66 -21
- package/src/__tests__/migration-import-from-gcs.test.ts +50 -9
- package/src/__tests__/migration-import-from-url.test.ts +20 -6
- package/src/__tests__/migration-import-preflight-http.test.ts +95 -95
- package/src/__tests__/migration-parity-persistence.test.ts +62 -25
- package/src/__tests__/migration-transport.test.ts +115 -23
- package/src/__tests__/migration-validate-http.test.ts +105 -80
- package/src/__tests__/migration-wizard.test.ts +133 -27
- package/src/__tests__/non-member-access-request.test.ts +1 -1
- package/src/__tests__/notification-guardian-path.test.ts +1 -1
- package/src/__tests__/oauth-store.test.ts +19 -0
- package/src/__tests__/platform-bash-auto-approve.test.ts +21 -12
- package/src/__tests__/prechat-onboarding-contract.test.ts +31 -7
- package/src/__tests__/pricing.test.ts +68 -4
- package/src/__tests__/process-message-background-slack.test.ts +331 -0
- package/src/__tests__/provider-managed-proxy-integration.test.ts +153 -17
- package/src/__tests__/provider-send-message-override-profile.test.ts +50 -0
- package/src/__tests__/provider-usage-tracking.test.ts +208 -0
- package/src/__tests__/reaction-persistence.test.ts +9 -6
- package/src/__tests__/rebind-secrets-screen.test.ts +53 -16
- package/src/__tests__/recording-handler.test.ts +64 -81
- package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +4 -3
- package/src/__tests__/relay-server.test.ts +18 -13
- package/src/__tests__/require-fresh-approval.test.ts +13 -22
- package/src/__tests__/runtime-attachment-metadata.test.ts +1 -1
- package/src/__tests__/runtime-events-sse-parity.test.ts +3 -4
- package/src/__tests__/runtime-events-sse.test.ts +3 -12
- package/src/__tests__/search-skills-unified.test.ts +9 -15
- package/src/__tests__/secret-ingress-cli.test.ts +2 -5
- package/src/__tests__/secret-ingress-http.test.ts +0 -4
- package/src/__tests__/secret-onetime-send.test.ts +4 -2
- package/src/__tests__/secret-prompt-log-hygiene.test.ts +24 -7
- package/src/__tests__/secret-prompter-channel-fallback.test.ts +42 -47
- package/src/__tests__/secret-response-routing.test.ts +29 -15
- package/src/__tests__/secret-routes-managed-proxy.test.ts +5 -1
- package/src/__tests__/secret-scanner.test.ts +2 -545
- package/src/__tests__/send-endpoint-busy.test.ts +9 -24
- package/src/__tests__/settings-routes.test.ts +1 -1
- package/src/__tests__/shell-credential-ref.test.ts +0 -8
- package/src/__tests__/shell-tool-proxy-mode.test.ts +0 -56
- package/src/__tests__/skill-script-runner-sandbox.test.ts +0 -11
- package/src/__tests__/skill-tool-factory.test.ts +97 -0
- package/src/__tests__/skills-file-content-endpoint.test.ts +9 -30
- package/src/__tests__/skills-files-catalog-fallback.test.ts +11 -17
- package/src/__tests__/slack-inbound-verification.test.ts +1 -62
- package/src/__tests__/subagent-fork-notifications.test.ts +57 -47
- package/src/__tests__/subagent-manager-notify.test.ts +70 -70
- package/src/__tests__/subagent-notify-parent.test.ts +80 -83
- package/src/__tests__/system-prompt.test.ts +115 -13
- package/src/__tests__/terminal-tools.test.ts +0 -89
- package/src/__tests__/thread-backfill.test.ts +945 -31
- package/src/__tests__/tool-domain-event-publisher.test.ts +0 -36
- package/src/__tests__/tool-execute-pipeline.test.ts +0 -6
- package/src/__tests__/tool-execution-abort-cleanup.test.ts +0 -16
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +9 -19
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +4 -7
- package/src/__tests__/tool-executor.test.ts +12 -19
- package/src/__tests__/tool-metrics-listener.test.ts +0 -35
- package/src/__tests__/tool-side-effects-slack-dm.test.ts +1 -0
- package/src/__tests__/tool-trace-listener.test.ts +0 -17
- package/src/__tests__/transfer-progress-screen.test.ts +63 -26
- package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +2 -149
- package/src/__tests__/trusted-contact-multichannel.test.ts +2 -4
- package/src/__tests__/trusted-contact-verification.test.ts +1 -1
- package/src/__tests__/tts-catalog-parity.test.ts +16 -5
- package/src/__tests__/usage-attribution.test.ts +247 -0
- package/src/__tests__/usage-cli.test.ts +143 -0
- package/src/__tests__/usage-grouped-buckets.test.ts +155 -0
- package/src/__tests__/usage-routes.test.ts +150 -0
- package/src/__tests__/validation-results-screen.test.ts +39 -16
- package/src/__tests__/vbundle-pax-and-symlink.test.ts +12 -3
- package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +49 -137
- package/src/__tests__/verification-control-plane-policy.test.ts +4 -7
- package/src/__tests__/voice-session-bridge.test.ts +5 -5
- package/src/__tests__/workspace-migration-062-drop-memory-v2-edges-json.test.ts +103 -0
- package/src/__tests__/workspace-migration-063-release-notes-dynamic-model-context.test.ts +77 -0
- package/src/__tests__/workspace-migration-064-unwind-main-agent-opus-seed.test.ts +225 -0
- package/src/__tests__/workspace-migration-memory-v2-init.test.ts +8 -30
- package/src/acp/index.ts +0 -15
- package/src/acp/session-manager.ts +37 -34
- package/src/agent/loop.ts +16 -1
- package/src/approvals/AGENTS.md +4 -0
- package/src/approvals/__tests__/guardian-feed-event.test.ts +10 -3
- package/src/approvals/guardian-request-resolvers.ts +10 -2
- package/src/backup/__tests__/backup-worker.test.ts +36 -8
- package/src/backup/__tests__/paths.test.ts +2 -2
- package/src/backup/__tests__/restore.test.ts +45 -28
- package/src/backup/backup-worker.ts +36 -2
- package/src/backup/paths.ts +9 -6
- package/src/browser-session/events.ts +0 -9
- package/src/calls/call-store.ts +1 -34
- package/src/calls/guardian-question-copy.ts +0 -108
- package/src/calls/relay-server.ts +0 -24
- package/src/calls/twilio-rest.ts +0 -38
- package/src/calls/twilio-routes.ts +1 -1
- package/src/calls/voice-session-bridge.ts +7 -38
- package/src/channels/types.ts +1 -36
- package/src/cli/commands/__tests__/cache.test.ts +152 -5
- package/src/cli/commands/__tests__/memory-v2.test.ts +14 -28
- package/src/cli/commands/__tests__/trust.test.ts +21 -387
- package/src/cli/commands/backup.ts +4 -4
- package/src/cli/commands/cache-fs.ts +8 -0
- package/src/cli/commands/cache.ts +153 -82
- package/src/cli/commands/clients.ts +63 -5
- package/src/cli/commands/completions.ts +3 -3
- package/src/cli/commands/contacts.ts +231 -76
- package/src/cli/commands/keys.ts +4 -1
- package/src/cli/commands/memory-v2.ts +24 -52
- package/src/cli/commands/oauth/shared.ts +2 -29
- package/src/cli/commands/pending.ts +102 -0
- package/src/cli/commands/skills.ts +77 -35
- package/src/cli/commands/trust.ts +70 -430
- package/src/cli/commands/usage.ts +25 -16
- package/src/cli/lib/daemon-credential-client.ts +14 -0
- package/src/cli/program.ts +2 -0
- package/src/cli.ts +0 -21
- package/src/config/__tests__/feature-flag-registry-guard.test.ts +2 -2
- package/src/config/bundled-skills/messaging/TOOLS.json +14 -4
- package/src/config/env-registry.ts +12 -2
- package/src/config/env.ts +3 -14
- package/src/config/feature-flag-registry.json +30 -30
- package/src/config/llm-callsite-catalog.ts +12 -0
- package/src/config/llm-context-resolution.ts +80 -0
- package/src/config/llm-resolver.ts +58 -22
- package/src/config/loader.ts +3 -3
- package/src/config/schema.ts +2 -158
- package/src/config/schemas/__tests__/memory-v2.test.ts +1 -0
- package/src/config/schemas/call-site-catalog.ts +271 -0
- package/src/config/schemas/calls.ts +5 -5
- package/src/config/schemas/inference.ts +1 -1
- package/src/config/schemas/ingress.ts +1 -1
- package/src/config/schemas/llm.ts +31 -3
- package/src/config/schemas/memory-retrieval.ts +2 -2
- package/src/config/schemas/memory-v2.ts +9 -0
- package/src/config/schemas/security.ts +1 -42
- package/src/config/schemas/services.ts +6 -6
- package/src/config/schemas/skills.ts +5 -5
- package/src/config/schemas/tts.ts +1 -1
- package/src/config/seed-inference-profiles.ts +117 -0
- package/src/config/skills.ts +0 -90
- package/src/config/types.ts +3 -6
- package/src/contacts/contact-store.ts +0 -17
- package/src/contacts/contacts-write.ts +1 -105
- package/src/context/window-manager.ts +44 -5
- package/src/credential-execution/process-manager.ts +34 -10
- package/src/credential-health/credential-health-service.ts +21 -16
- package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +75 -82
- package/src/daemon/__tests__/daemon-skill-host.test.ts +2 -9
- package/src/daemon/connection-policy.ts +1 -26
- package/src/daemon/conversation-agent-loop-handlers.ts +53 -4
- package/src/daemon/conversation-agent-loop.ts +277 -36
- package/src/daemon/conversation-history.ts +8 -8
- package/src/daemon/conversation-launch.ts +20 -135
- package/src/daemon/conversation-lifecycle.ts +1 -1
- package/src/daemon/conversation-messaging.ts +1 -0
- package/src/daemon/conversation-process.ts +83 -163
- package/src/daemon/conversation-runtime-assembly.ts +219 -76
- package/src/daemon/conversation-slash.ts +47 -5
- package/src/daemon/conversation-store.ts +7 -31
- package/src/daemon/conversation-surfaces.ts +22 -28
- package/src/daemon/conversation-tool-setup.ts +3 -33
- package/src/daemon/conversation-usage.ts +36 -0
- package/src/daemon/conversation.ts +117 -233
- package/src/daemon/daemon-control.ts +3 -71
- package/src/daemon/daemon-skill-host.ts +8 -11
- package/src/daemon/dictation-profile-store.ts +2 -26
- package/src/daemon/first-greeting.ts +44 -156
- package/src/daemon/handlers/config-channels.ts +12 -12
- package/src/daemon/handlers/config-ingress.ts +4 -165
- package/src/daemon/handlers/config-model.ts +1 -1
- package/src/daemon/handlers/config-voice.ts +0 -42
- package/src/daemon/handlers/conversations.ts +11 -190
- package/src/daemon/handlers/recording.ts +26 -158
- package/src/daemon/handlers/shared.ts +23 -71
- package/src/daemon/handlers/skills.ts +42 -93
- package/src/daemon/host-bash-proxy.ts +67 -45
- package/src/daemon/host-browser-proxy.ts +65 -27
- package/src/daemon/host-cu-proxy.ts +40 -39
- package/src/daemon/host-file-proxy.ts +58 -37
- package/src/daemon/host-transfer-proxy.ts +84 -46
- package/src/daemon/lifecycle.ts +49 -15
- package/src/daemon/message-types/conversations.ts +7 -0
- package/src/daemon/message-types/host-bash.ts +1 -0
- package/src/daemon/message-types/host-cu.ts +1 -0
- package/src/daemon/message-types/host-file.ts +1 -0
- package/src/daemon/message-types/host-transfer.ts +1 -0
- package/src/daemon/message-types/messages.ts +10 -9
- package/src/daemon/message-types/workspace.ts +1 -1
- package/src/daemon/process-message.ts +102 -239
- package/src/daemon/server.ts +13 -462
- package/src/daemon/shutdown-handlers.ts +2 -2
- package/src/daemon/tool-side-effects.ts +125 -107
- package/src/daemon/trust-context.ts +13 -0
- package/src/daemon/wake-target-adapter.ts +4 -9
- package/src/events/domain-events.ts +0 -8
- package/src/events/tool-audit-listener.ts +3 -1
- package/src/events/tool-domain-event-publisher.ts +0 -10
- package/src/events/tool-metrics-listener.ts +0 -17
- package/src/events/tool-trace-listener.ts +0 -14
- package/src/filing/filing-service.ts +13 -1
- package/src/heartbeat/__tests__/heartbeat-feed-event.test.ts +6 -2
- package/src/heartbeat/heartbeat-service.ts +23 -5
- package/src/home/__tests__/feed-writer.test.ts +0 -4
- package/src/home/__tests__/relationship-state-writer.test.ts +30 -0
- package/src/home/feed-writer.ts +1 -2
- package/src/home/relationship-state-writer.ts +16 -3
- package/src/ipc/__tests__/browser-ipc.test.ts +2 -12
- package/src/ipc/__tests__/skill-server-bidirectional.test.ts +0 -1
- package/src/ipc/assistant-server.ts +3 -10
- package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +39 -20
- package/src/ipc/routes/route-adapter.ts +1 -1
- package/src/ipc/routes/trust-rules.test.ts +0 -95
- package/src/ipc/skill-ipc-types.ts +41 -0
- package/src/ipc/skill-routes/__tests__/events-ipc.test.ts +13 -27
- package/src/ipc/skill-routes/__tests__/identity.test.ts +4 -23
- package/src/ipc/skill-routes/events.ts +12 -23
- package/src/ipc/skill-routes/identity.ts +4 -17
- package/src/ipc/skill-routes/index.ts +1 -1
- package/src/ipc/skill-server.ts +6 -39
- package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +0 -8
- package/src/live-voice/protocol.ts +4 -13
- package/src/mcp/manager.ts +0 -5
- package/src/memory/__tests__/fixtures/memory-v2-activation-fixtures.ts +55 -0
- package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +127 -0
- package/src/memory/app-git-service.ts +0 -32
- package/src/memory/app-store.ts +154 -0
- package/src/memory/attachments-store.ts +6 -0
- package/src/memory/context-search/sources/memory-v2.ts +578 -0
- package/src/memory/context-search/sources/memory.ts +5 -0
- package/src/memory/context-search/sources/pkb.ts +10 -1
- package/src/memory/context-search/sources/workspace.ts +3 -2
- package/src/memory/conversation-crud.ts +29 -4
- package/src/memory/conversation-disk-view.ts +1 -5
- package/src/memory/conversation-starter-checkpoints.ts +63 -0
- package/src/memory/db-connection.ts +62 -0
- package/src/memory/db-init.ts +14 -0
- package/src/memory/embedding-backend.ts +3 -21
- package/src/memory/embedding-gemini.ts +0 -2
- package/src/memory/embedding-local.ts +6 -6
- package/src/memory/embedding-ollama.ts +6 -6
- package/src/memory/embedding-openai.ts +6 -6
- package/src/memory/embedding-types.ts +21 -0
- package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +3 -7
- package/src/memory/graph/conversation-graph-memory.ts +35 -13
- package/src/memory/graph/injection.test.ts +2 -2
- package/src/memory/graph/injection.ts +1 -1
- package/src/memory/guardian-action-store.ts +0 -83
- package/src/memory/guardian-approvals.ts +0 -48
- package/src/memory/indexer.ts +1 -15
- package/src/memory/job-handlers/conversation-starters.ts +36 -53
- package/src/memory/job-utils.ts +0 -6
- package/src/memory/jobs-store.ts +0 -1
- package/src/memory/jobs-worker.ts +2 -16
- package/src/memory/llm-request-log-store.ts +0 -41
- package/src/memory/llm-usage-store.ts +129 -43
- package/src/memory/memory-v2-activation-log-store.ts +115 -0
- package/src/memory/migrations/233-document-conversations.ts +54 -0
- package/src/memory/migrations/234-memory-v2-activation-logs.ts +55 -0
- package/src/memory/migrations/235-llm-usage-attribution.ts +31 -0
- package/src/memory/migrations/235-slack-compaction-watermark.ts +44 -0
- package/src/memory/migrations/236-tool-invocations-matched-rule-id.ts +26 -0
- package/src/memory/migrations/__tests__/234-memory-v2-activation-logs.test.ts +182 -0
- package/src/memory/migrations/index.ts +14 -0
- package/src/memory/migrations/registry.ts +24 -0
- package/src/memory/raw-query.ts +2 -68
- package/src/memory/schema/conversations.ts +7 -0
- package/src/memory/schema/infrastructure.ts +25 -0
- package/src/memory/search/semantic.ts +5 -16
- package/src/memory/tool-usage-store.ts +2 -0
- package/src/memory/usage-buckets.ts +40 -1
- package/src/memory/usage-grouped-buckets.ts +127 -0
- package/src/memory/v2/__tests__/activation.test.ts +289 -90
- package/src/memory/v2/__tests__/backfill-jobs.test.ts +2 -129
- package/src/memory/v2/__tests__/consolidation-job.test.ts +28 -11
- package/src/memory/v2/__tests__/edge-index.test.ts +278 -0
- package/src/memory/v2/__tests__/injection.test.ts +384 -15
- package/src/memory/v2/__tests__/migration.test.ts +64 -36
- package/src/memory/v2/__tests__/page-store.test.ts +191 -8
- package/src/memory/v2/__tests__/prompts-consolidation.test.ts +181 -0
- package/src/memory/v2/__tests__/skill-store.test.ts +115 -3
- package/src/memory/v2/__tests__/static-context.test.ts +153 -0
- package/src/memory/v2/activation.ts +168 -97
- package/src/memory/v2/backfill-jobs.ts +15 -100
- package/src/memory/v2/consolidation-job.ts +14 -12
- package/src/memory/v2/edge-index.ts +191 -0
- package/src/memory/v2/injection.ts +182 -58
- package/src/memory/v2/migration.ts +57 -64
- package/src/memory/v2/now-text.ts +2 -3
- package/src/memory/v2/page-store.ts +168 -31
- package/src/memory/v2/prompts/consolidation.ts +118 -42
- package/src/memory/v2/prompts/sweep.ts +3 -3
- package/src/memory/v2/skill-store.ts +55 -7
- package/src/memory/v2/static-context.ts +62 -0
- package/src/memory/v2/types.ts +10 -20
- package/src/memory/validation.ts +0 -11
- package/src/messaging/draft-store.ts +0 -6
- package/src/messaging/provider-types.ts +8 -0
- package/src/messaging/provider.ts +7 -0
- package/src/messaging/providers/gmail/client.ts +1 -121
- package/src/messaging/providers/outlook/client.ts +0 -73
- package/src/messaging/providers/slack/__tests__/adapter-mention-rendering.test.ts +226 -0
- package/src/messaging/providers/slack/adapter.ts +122 -21
- package/src/messaging/providers/slack/backfill.test.ts +95 -6
- package/src/messaging/providers/slack/backfill.ts +89 -11
- package/src/messaging/providers/slack/client.ts +10 -124
- package/src/messaging/providers/slack/message-metadata.ts +12 -2
- package/src/messaging/providers/slack/render-transcript.test.ts +56 -0
- package/src/messaging/providers/slack/render-transcript.ts +126 -25
- package/src/messaging/providers/slack/types.ts +1 -0
- package/src/oauth/connection-resolver.test.ts +8 -0
- package/src/oauth/connection-resolver.ts +8 -16
- package/src/oauth/credential-token-resolver.ts +97 -0
- package/src/oauth/manual-token-connection.ts +30 -34
- package/src/oauth/oauth-store.ts +6 -4
- package/src/outbound-proxy/certs.ts +0 -7
- package/src/outbound-proxy/config.ts +0 -74
- package/src/outbound-proxy/health.ts +0 -44
- package/src/outbound-proxy/index.ts +0 -22
- package/src/permissions/approval-provenance.test.ts +184 -0
- package/src/permissions/approval-provenance.ts +70 -0
- package/src/permissions/checker.ts +4 -1
- package/src/permissions/gateway-threshold-reader.ts +4 -1
- package/src/permissions/prompter.ts +9 -2
- package/src/permissions/secret-prompter.ts +21 -48
- package/src/permissions/types.ts +33 -0
- package/src/permissions/workspace-policy.ts +0 -5
- package/src/platform/sync-identity.ts +0 -8
- package/src/plugins/defaults/injectors.ts +69 -2
- package/src/plugins/defaults/overflow-reduce.ts +3 -2
- package/src/plugins/types.ts +8 -0
- package/src/prompts/system-prompt.ts +34 -70
- package/src/prompts/templates/BOOTSTRAP.md +52 -6
- package/src/prompts/update-bulletin-job.ts +2 -0
- package/src/providers/__tests__/retry-callsite.test.ts +138 -1
- package/src/providers/anthropic/client.ts +72 -33
- package/src/providers/call-site-routing.ts +42 -3
- package/src/providers/gemini/client.ts +18 -2
- package/src/providers/managed-proxy/context.ts +0 -5
- package/src/providers/model-catalog.ts +105 -19
- package/src/providers/openai/chat-completions-provider.ts +6 -0
- package/src/providers/openai/responses-provider.ts +7 -1
- package/src/providers/provider-send-message.ts +45 -2
- package/src/providers/ratelimit.ts +7 -2
- package/src/providers/registry.ts +14 -9
- package/src/providers/retry.ts +96 -8
- package/src/providers/types.ts +13 -0
- package/src/providers/usage-tracking.ts +96 -0
- package/src/runtime/AGENTS.md +10 -6
- package/src/runtime/__tests__/agent-wake.test.ts +89 -0
- package/src/runtime/agent-wake.ts +39 -2
- package/src/runtime/assistant-event-hub.ts +541 -45
- package/src/runtime/assistant-event.ts +1 -6
- package/src/runtime/auth/context.ts +0 -9
- package/src/runtime/auth/middleware.ts +1 -1
- package/src/runtime/auth/route-policy.ts +11 -9
- package/src/runtime/auth/token-service.ts +0 -11
- package/src/runtime/channel-approvals.ts +6 -2
- package/src/runtime/channel-verification-service.ts +3 -5
- package/src/runtime/http-errors.ts +0 -34
- package/src/runtime/http-router.ts +6 -3
- package/src/runtime/http-server.ts +22 -82
- package/src/runtime/http-types.ts +5 -0
- package/src/runtime/interactive-ui.ts +0 -1
- package/src/runtime/middleware/auth.ts +0 -20
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +112 -0
- package/src/runtime/migrations/__tests__/vbundle-builder-credentials.test.ts +11 -4
- package/src/runtime/migrations/__tests__/vbundle-builder-v1-shape.test.ts +253 -0
- package/src/runtime/migrations/__tests__/vbundle-import-credentials.test.ts +19 -6
- package/src/runtime/migrations/__tests__/vbundle-legacy-user-md.test.ts +71 -27
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +41 -2
- package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +143 -79
- package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +143 -23
- package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +2 -2
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +371 -0
- package/src/runtime/migrations/migration-transport.ts +46 -13
- package/src/runtime/migrations/migration-wizard.ts +2 -2
- package/src/runtime/migrations/origin-mode.ts +40 -0
- package/src/runtime/migrations/vbundle-builder.ts +133 -79
- package/src/runtime/migrations/vbundle-import-analyzer.ts +9 -7
- package/src/runtime/migrations/vbundle-importer.ts +7 -7
- package/src/runtime/migrations/vbundle-metadata-merge.ts +1 -1
- package/src/runtime/migrations/vbundle-streaming-importer.ts +3 -3
- package/src/runtime/migrations/vbundle-streaming-validator.ts +48 -26
- package/src/runtime/migrations/vbundle-validator.ts +214 -41
- package/src/runtime/pending-interactions.ts +13 -4
- package/src/runtime/routes/__tests__/acp-routes.test.ts +0 -1
- package/src/runtime/routes/__tests__/backup-routes.test.ts +28 -19
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +235 -0
- package/src/runtime/routes/__tests__/llm-call-sites-routes.test.ts +58 -0
- package/src/runtime/routes/__tests__/migration-export-secrets-redacted.test.ts +54 -0
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -6
- package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +7 -7
- package/src/runtime/routes/acp-routes.test.ts +0 -3
- package/src/runtime/routes/acp-routes.ts +3 -7
- package/src/runtime/routes/app-management-routes.ts +18 -9
- package/src/runtime/routes/approval-routes.ts +55 -14
- package/src/runtime/routes/avatar-routes.ts +3 -5
- package/src/runtime/routes/browser-routes.ts +1 -15
- package/src/runtime/routes/channel-guardian-routes.ts +1 -5
- package/src/runtime/routes/channel-readiness-routes.ts +3 -7
- package/src/runtime/routes/channel-route-shared.ts +2 -28
- package/src/runtime/routes/client-routes.ts +45 -12
- package/src/runtime/routes/consolidation-routes.ts +115 -0
- package/src/runtime/routes/conversation-list-routes.ts +12 -29
- package/src/runtime/routes/conversation-management-routes.ts +14 -51
- package/src/runtime/routes/conversation-query-routes.ts +120 -8
- package/src/runtime/routes/conversation-routes.ts +44 -528
- package/src/runtime/routes/conversation-starter-routes.ts +19 -40
- package/src/runtime/routes/documents-routes.ts +53 -18
- package/src/runtime/routes/events-routes.ts +59 -91
- package/src/runtime/routes/filing-routes.ts +18 -1
- package/src/runtime/routes/guardian-action-routes.ts +4 -9
- package/src/runtime/routes/host-bash-routes.ts +3 -2
- package/src/runtime/routes/host-browser-routes.ts +9 -33
- package/src/runtime/routes/host-cu-routes.ts +6 -1
- package/src/runtime/routes/host-file-routes.ts +3 -2
- package/src/runtime/routes/host-transfer-routes.ts +11 -15
- package/src/runtime/routes/identity-routes.ts +78 -6
- package/src/runtime/routes/inbound-message-handler.ts +580 -137
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +2 -88
- package/src/runtime/routes/inbound-stages/background-dispatch.ts +3 -0
- package/src/runtime/routes/index.ts +4 -0
- package/src/runtime/routes/integrations/slack/channel.ts +0 -24
- package/src/runtime/routes/llm-call-sites-routes.ts +22 -0
- package/src/runtime/routes/memory-v2-routes.ts +10 -15
- package/src/runtime/routes/migration-routes.ts +188 -31
- package/src/runtime/routes/playground/guard.ts +1 -1
- package/src/runtime/routes/playground/index.ts +0 -2
- package/src/runtime/routes/recording-routes.ts +4 -24
- package/src/runtime/routes/rename-conversation-routes.ts +2 -6
- package/src/runtime/routes/schedule-routes.ts +3 -6
- package/src/runtime/routes/secret-routes.ts +87 -18
- package/src/runtime/routes/settings-routes.ts +29 -28
- package/src/runtime/routes/skills-routes.ts +12 -31
- package/src/runtime/routes/suggest-trust-rule-routes.ts +32 -1
- package/src/runtime/routes/task-routes.ts +6 -6
- package/src/runtime/routes/trust-rules-routes.ts +3 -94
- package/src/runtime/routes/types.ts +4 -4
- package/src/runtime/routes/upgrade-broadcast-routes.ts +3 -10
- package/src/runtime/routes/usage-routes.ts +87 -10
- package/src/runtime/routes/user-routes.ts +17 -31
- package/src/runtime/routes/work-items-routes.ts +1 -4
- package/src/runtime/services/__tests__/analyze-conversation.test.ts +2 -2
- package/src/runtime/services/analyze-conversation.ts +7 -17
- package/src/runtime/services/conversation-serializer.ts +2 -4
- package/src/runtime/verification-outbound-actions.ts +1 -1
- package/src/runtime/verification-rate-limiter.ts +1 -1
- package/src/schedule/schedule-store.ts +0 -16
- package/src/security/secret-scanner.ts +14 -547
- package/src/security/secure-keys.ts +31 -11
- package/src/security/token-manager.ts +7 -3
- package/src/signals/cancel.ts +16 -25
- package/src/signals/conversation-undo.ts +2 -27
- package/src/signals/emit-event.ts +1 -2
- package/src/signals/user-message.ts +108 -22
- package/src/skills/catalog-install.ts +1 -0
- package/src/skills/clawhub.ts +2 -2
- package/src/skills/inline-command-runner.ts +1 -7
- package/src/subagent/manager.ts +67 -84
- package/src/tasks/task-store.ts +1 -28
- package/src/telemetry/types.ts +6 -0
- package/src/telemetry/usage-telemetry-reporter.test.ts +38 -15
- package/src/telemetry/usage-telemetry-reporter.ts +3 -5
- package/src/tools/acp/spawn.test.ts +1 -2
- package/src/tools/acp/steer.test.ts +1 -2
- package/src/tools/browser/__tests__/browser-status.test.ts +44 -127
- package/src/tools/browser/browser-execution.ts +31 -147
- package/src/tools/browser/cdp-client/__tests__/factory.test.ts +92 -68
- package/src/tools/browser/cdp-client/factory.ts +48 -76
- package/src/tools/browser/cdp-client/index.ts +1 -14
- package/src/tools/executor.ts +44 -31
- package/src/tools/host-filesystem/edit.ts +3 -2
- package/src/tools/host-filesystem/read.ts +3 -2
- package/src/tools/host-filesystem/transfer.test.ts +45 -42
- package/src/tools/host-filesystem/transfer.ts +4 -3
- package/src/tools/host-filesystem/write.ts +3 -2
- package/src/tools/host-terminal/host-shell.ts +4 -3
- package/src/tools/network/script-proxy/index.ts +1 -10
- package/src/tools/permission-checker.ts +66 -1
- package/src/tools/skills/sandbox-runner.ts +1 -6
- package/src/tools/skills/skill-tool-factory.ts +32 -0
- package/src/tools/terminal/safe-env.ts +1 -0
- package/src/tools/terminal/shell.ts +2 -78
- package/src/tools/types.ts +12 -39
- package/src/tts/__tests__/provider-catalog.test.ts +2 -2
- package/src/tts/provider-catalog.ts +1 -1
- package/src/usage/actors.ts +2 -1
- package/src/usage/attribution.ts +185 -0
- package/src/usage/pricing.ts +166 -0
- package/src/usage/types.ts +14 -0
- package/src/util/json.ts +13 -0
- package/src/util/logger.ts +3 -3
- package/src/util/pricing.ts +50 -3
- package/src/work-items/work-item-runner.ts +15 -42
- package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +4 -3
- package/src/workspace/migrations/052-seed-default-inference-profiles.ts +3 -3
- package/src/workspace/migrations/060-memory-v2-init.ts +2 -18
- package/src/workspace/migrations/061-move-backup-key-to-workspace.ts +59 -0
- package/src/workspace/migrations/062-drop-memory-v2-edges-json.ts +27 -0
- package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +70 -0
- package/src/workspace/migrations/064-unwind-main-agent-opus-seed.ts +64 -0
- package/src/workspace/migrations/registry.ts +8 -0
- package/src/workspace/provider-commit-message-generator.ts +3 -3
- package/src/__tests__/sandbox-diagnostics.test.ts +0 -138
- package/src/__tests__/sandbox-host-parity.test.ts +0 -1024
- package/src/__tests__/secret-detection-handler.test.ts +0 -67
- package/src/__tests__/secret-scanner-executor.test.ts +0 -450
- package/src/__tests__/tcc-sandbox-deny.test.ts +0 -198
- package/src/__tests__/terminal-sandbox.test.ts +0 -374
- package/src/__tests__/tool-notification-listener.test.ts +0 -65
- package/src/context/__tests__/microcompact.test.ts +0 -805
- package/src/context/microcompact.ts +0 -443
- package/src/daemon/handlers/slack-channel-oauth-install.ts +0 -197
- package/src/events/tool-notification-listener.ts +0 -17
- package/src/ipc/routes/__tests__/memory-v2-validate.test.ts +0 -219
- package/src/memory/v2/__tests__/edges.test.ts +0 -435
- package/src/memory/v2/edges.ts +0 -217
- package/src/prompts/__tests__/system-prompt-memory-v2.test.ts +0 -197
- package/src/runtime/__tests__/chrome-extension-registry.test.ts +0 -518
- package/src/runtime/__tests__/client-registry.test.ts +0 -271
- package/src/runtime/chrome-extension-registry.ts +0 -368
- package/src/runtime/client-registry.ts +0 -254
- package/src/runtime/routes/inbound-stages/verification-intercept.ts +0 -329
- package/src/tools/secret-detection-handler.ts +0 -269
- package/src/tools/terminal/backends/native.ts +0 -327
- package/src/tools/terminal/backends/types.ts +0 -37
- package/src/tools/terminal/sandbox-diagnostics.ts +0 -87
- package/src/tools/terminal/sandbox.ts +0 -40
package/src/config/schema.ts
CHANGED
|
@@ -2,173 +2,17 @@ import { z } from "zod";
|
|
|
2
2
|
|
|
3
3
|
import { getDataDir } from "../util/platform.js";
|
|
4
4
|
|
|
5
|
-
// Re-export
|
|
5
|
+
// Re-export domain schemas that have external consumers
|
|
6
6
|
export { AnalysisConfigSchema } from "./schemas/analysis.js";
|
|
7
7
|
export type { BackupConfig, BackupDestination } from "./schemas/backup.js";
|
|
8
8
|
export { BackupConfigSchema } from "./schemas/backup.js";
|
|
9
9
|
export { VALID_CALLER_IDENTITY_MODES } from "./schemas/calls.js";
|
|
10
10
|
export { DEFAULT_ELEVENLABS_VOICE_ID } from "./schemas/elevenlabs.js";
|
|
11
11
|
export type {
|
|
12
|
-
ContextOverflowRecoveryConfig,
|
|
13
12
|
ContextWindowConfig,
|
|
14
13
|
ModelPricingOverride,
|
|
15
|
-
ThinkingConfig,
|
|
16
14
|
} from "./schemas/inference.js";
|
|
17
|
-
export {
|
|
18
|
-
ContextOverflowRecoveryConfigSchema,
|
|
19
|
-
ContextWindowConfigSchema,
|
|
20
|
-
ModelPricingOverrideSchema,
|
|
21
|
-
ThinkingConfigSchema,
|
|
22
|
-
} from "./schemas/inference.js";
|
|
23
|
-
export type {
|
|
24
|
-
IngressConfig,
|
|
25
|
-
IngressRateLimitConfig,
|
|
26
|
-
IngressWebhookConfig,
|
|
27
|
-
} from "./schemas/ingress.js";
|
|
28
|
-
export {
|
|
29
|
-
IngressConfigSchema,
|
|
30
|
-
IngressRateLimitConfigSchema,
|
|
31
|
-
} from "./schemas/ingress.js";
|
|
32
|
-
export type { JournalConfig } from "./schemas/journal.js";
|
|
33
|
-
export { JournalConfigSchema } from "./schemas/journal.js";
|
|
34
|
-
export type {
|
|
35
|
-
LLMCallSite,
|
|
36
|
-
LLMCallSiteConfig,
|
|
37
|
-
LLMConfig,
|
|
38
|
-
LLMConfigBase,
|
|
39
|
-
LLMConfigFragment,
|
|
40
|
-
} from "./schemas/llm.js";
|
|
41
|
-
export { LLMCallSiteEnum, LLMSchema } from "./schemas/llm.js";
|
|
42
|
-
export type { AuditLogConfig, LogFileConfig } from "./schemas/logging.js";
|
|
43
|
-
export {
|
|
44
|
-
AuditLogConfigSchema,
|
|
45
|
-
LogFileConfigSchema,
|
|
46
|
-
} from "./schemas/logging.js";
|
|
47
|
-
export type {
|
|
48
|
-
McpConfig,
|
|
49
|
-
McpServerConfig,
|
|
50
|
-
McpTransport,
|
|
51
|
-
} from "./schemas/mcp.js";
|
|
52
|
-
export {
|
|
53
|
-
McpConfigSchema,
|
|
54
|
-
McpServerConfigSchema,
|
|
55
|
-
McpTransportSchema,
|
|
56
|
-
} from "./schemas/mcp.js";
|
|
57
|
-
export type { MemoryConfig } from "./schemas/memory.js";
|
|
58
|
-
export { MemoryConfigSchema } from "./schemas/memory.js";
|
|
59
|
-
export type {
|
|
60
|
-
MemoryCleanupConfig,
|
|
61
|
-
MemoryJobsConfig,
|
|
62
|
-
MemoryRetentionConfig,
|
|
63
|
-
} from "./schemas/memory-lifecycle.js";
|
|
64
|
-
export {
|
|
65
|
-
MemoryCleanupConfigSchema,
|
|
66
|
-
MemoryJobsConfigSchema,
|
|
67
|
-
MemoryRetentionConfigSchema,
|
|
68
|
-
} from "./schemas/memory-lifecycle.js";
|
|
69
|
-
export type {
|
|
70
|
-
MemoryExtractionConfig,
|
|
71
|
-
MemorySummarizationConfig,
|
|
72
|
-
} from "./schemas/memory-processing.js";
|
|
73
|
-
export {
|
|
74
|
-
MemoryExtractionConfigSchema,
|
|
75
|
-
MemorySummarizationConfigSchema,
|
|
76
|
-
} from "./schemas/memory-processing.js";
|
|
77
|
-
export type { MemoryRetrievalConfig } from "./schemas/memory-retrieval.js";
|
|
78
|
-
export {
|
|
79
|
-
MemoryDynamicBudgetConfigSchema,
|
|
80
|
-
MemoryInjectionConfigSchema,
|
|
81
|
-
MemoryRetrievalConfigSchema,
|
|
82
|
-
} from "./schemas/memory-retrieval.js";
|
|
83
|
-
export type {
|
|
84
|
-
MemoryEmbeddingsConfig,
|
|
85
|
-
MemorySegmentationConfig,
|
|
86
|
-
QdrantConfig,
|
|
87
|
-
} from "./schemas/memory-storage.js";
|
|
88
|
-
export {
|
|
89
|
-
MemoryEmbeddingsConfigSchema,
|
|
90
|
-
MemorySegmentationConfigSchema,
|
|
91
|
-
QdrantConfigSchema,
|
|
92
|
-
} from "./schemas/memory-storage.js";
|
|
93
|
-
export type { NotificationsConfig } from "./schemas/notifications.js";
|
|
94
|
-
export { NotificationsConfigSchema } from "./schemas/notifications.js";
|
|
95
|
-
export type {
|
|
96
|
-
DaemonConfig,
|
|
97
|
-
PlatformConfig,
|
|
98
|
-
UiConfig,
|
|
99
|
-
} from "./schemas/platform.js";
|
|
100
|
-
export {
|
|
101
|
-
DaemonConfigSchema,
|
|
102
|
-
PlatformConfigSchema,
|
|
103
|
-
UiConfigSchema,
|
|
104
|
-
} from "./schemas/platform.js";
|
|
105
|
-
export type { SecretDetectionConfig } from "./schemas/security.js";
|
|
106
|
-
export { SecretDetectionConfigSchema } from "./schemas/security.js";
|
|
107
|
-
export type {
|
|
108
|
-
ImageGenerationService,
|
|
109
|
-
InferenceService,
|
|
110
|
-
ServiceMode,
|
|
111
|
-
Services,
|
|
112
|
-
WebSearchService,
|
|
113
|
-
} from "./schemas/services.js";
|
|
114
|
-
export {
|
|
115
|
-
ImageGenerationServiceSchema,
|
|
116
|
-
InferenceServiceSchema,
|
|
117
|
-
ServiceModeSchema,
|
|
118
|
-
ServicesSchema,
|
|
119
|
-
VALID_IMAGE_GEN_PROVIDERS,
|
|
120
|
-
VALID_INFERENCE_PROVIDERS,
|
|
121
|
-
VALID_WEB_SEARCH_PROVIDERS,
|
|
122
|
-
WebSearchServiceSchema,
|
|
123
|
-
} from "./schemas/services.js";
|
|
124
|
-
export type {
|
|
125
|
-
RemotePolicyConfig,
|
|
126
|
-
RemoteProviderConfig,
|
|
127
|
-
RemoteProvidersConfig,
|
|
128
|
-
SkillEntryConfig,
|
|
129
|
-
SkillsConfig,
|
|
130
|
-
SkillsInstallConfig,
|
|
131
|
-
SkillsLoadConfig,
|
|
132
|
-
} from "./schemas/skills.js";
|
|
133
|
-
export {
|
|
134
|
-
RemotePolicyConfigSchema,
|
|
135
|
-
RemoteProviderConfigSchema,
|
|
136
|
-
RemoteProvidersConfigSchema,
|
|
137
|
-
SkillEntryConfigSchema,
|
|
138
|
-
SkillsConfigSchema,
|
|
139
|
-
SkillsInstallConfigSchema,
|
|
140
|
-
SkillsLoadConfigSchema,
|
|
141
|
-
} from "./schemas/skills.js";
|
|
142
|
-
export type { SttProviders, SttService } from "./schemas/stt.js";
|
|
143
|
-
export {
|
|
144
|
-
SttProvidersSchema,
|
|
145
|
-
SttServiceSchema,
|
|
146
|
-
VALID_STT_PROVIDERS,
|
|
147
|
-
} from "./schemas/stt.js";
|
|
148
|
-
export type { RateLimitConfig, TimeoutConfig } from "./schemas/timeouts.js";
|
|
149
|
-
export {
|
|
150
|
-
RateLimitConfigSchema,
|
|
151
|
-
TimeoutConfigSchema,
|
|
152
|
-
} from "./schemas/timeouts.js";
|
|
153
|
-
export type {
|
|
154
|
-
TtsDeepgramProviderConfig,
|
|
155
|
-
TtsElevenLabsProviderConfig,
|
|
156
|
-
TtsFishAudioProviderConfig,
|
|
157
|
-
TtsProviders,
|
|
158
|
-
TtsService,
|
|
159
|
-
} from "./schemas/tts.js";
|
|
160
|
-
export {
|
|
161
|
-
TtsDeepgramProviderConfigSchema,
|
|
162
|
-
TtsElevenLabsProviderConfigSchema,
|
|
163
|
-
TtsFishAudioProviderConfigSchema,
|
|
164
|
-
TtsProvidersSchema,
|
|
165
|
-
TtsServiceSchema,
|
|
166
|
-
VALID_TTS_PROVIDERS as VALID_TTS_SERVICE_PROVIDERS,
|
|
167
|
-
} from "./schemas/tts.js";
|
|
168
|
-
export type { UpdatesConfig } from "./schemas/updates.js";
|
|
169
|
-
export { UpdatesConfigSchema } from "./schemas/updates.js";
|
|
170
|
-
export type { WorkspaceGitConfig } from "./schemas/workspace-git.js";
|
|
171
|
-
export { WorkspaceGitConfigSchema } from "./schemas/workspace-git.js";
|
|
15
|
+
export type { SkillEntryConfig } from "./schemas/skills.js";
|
|
172
16
|
|
|
173
17
|
// Imports for AssistantConfigSchema composition
|
|
174
18
|
import { AcpConfigSchema } from "./acp-schema.js";
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { type LLMCallSite } from "./llm.js";
|
|
2
|
+
|
|
3
|
+
export const CALL_SITE_DOMAINS = [
|
|
4
|
+
{ id: "agentLoop", displayName: "Agent Loop" },
|
|
5
|
+
{ id: "memory", displayName: "Memory" },
|
|
6
|
+
{ id: "workspace", displayName: "Workspace" },
|
|
7
|
+
{ id: "ui", displayName: "UI" },
|
|
8
|
+
{ id: "notifications", displayName: "Notifications" },
|
|
9
|
+
{ id: "skills", displayName: "Skills" },
|
|
10
|
+
] as const;
|
|
11
|
+
|
|
12
|
+
export type CallSiteDomainId = (typeof CALL_SITE_DOMAINS)[number]["id"];
|
|
13
|
+
|
|
14
|
+
export interface CallSiteDomainEntry {
|
|
15
|
+
id: CallSiteDomainId;
|
|
16
|
+
displayName: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface CallSiteEntry {
|
|
20
|
+
id: LLMCallSite;
|
|
21
|
+
displayName: string;
|
|
22
|
+
description: string;
|
|
23
|
+
domain: CallSiteDomainId;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Keyed by every member of LLMCallSite. TypeScript enforces exhaustiveness:
|
|
28
|
+
* adding or removing a value from LLMCallSiteEnum without updating this object
|
|
29
|
+
* is a compile error — no runtime drift guard needed.
|
|
30
|
+
*/
|
|
31
|
+
type CatalogRecord = {
|
|
32
|
+
[K in LLMCallSite]: {
|
|
33
|
+
id: K;
|
|
34
|
+
displayName: string;
|
|
35
|
+
description: string;
|
|
36
|
+
domain: CallSiteDomainId;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const CATALOG_RECORD: CatalogRecord = {
|
|
41
|
+
// agentLoop
|
|
42
|
+
mainAgent: {
|
|
43
|
+
id: "mainAgent",
|
|
44
|
+
displayName: "Main Agent",
|
|
45
|
+
description: "The primary conversation agent that handles user messages.",
|
|
46
|
+
domain: "agentLoop",
|
|
47
|
+
},
|
|
48
|
+
subagentSpawn: {
|
|
49
|
+
id: "subagentSpawn",
|
|
50
|
+
displayName: "Subagent Spawn",
|
|
51
|
+
description: "Spawns a subagent to handle a delegated subtask.",
|
|
52
|
+
domain: "agentLoop",
|
|
53
|
+
},
|
|
54
|
+
heartbeatAgent: {
|
|
55
|
+
id: "heartbeatAgent",
|
|
56
|
+
displayName: "Heartbeat Agent",
|
|
57
|
+
description: "Runs background tasks and proactive checks on a schedule.",
|
|
58
|
+
domain: "agentLoop",
|
|
59
|
+
},
|
|
60
|
+
filingAgent: {
|
|
61
|
+
id: "filingAgent",
|
|
62
|
+
displayName: "Filing Agent",
|
|
63
|
+
description:
|
|
64
|
+
"Files memories and updates the knowledge base after conversations.",
|
|
65
|
+
domain: "agentLoop",
|
|
66
|
+
},
|
|
67
|
+
compactionAgent: {
|
|
68
|
+
id: "compactionAgent",
|
|
69
|
+
displayName: "Compaction Agent",
|
|
70
|
+
description: "Compacts conversation history to stay within context limits.",
|
|
71
|
+
domain: "agentLoop",
|
|
72
|
+
},
|
|
73
|
+
analyzeConversation: {
|
|
74
|
+
id: "analyzeConversation",
|
|
75
|
+
displayName: "Analyze Conversation",
|
|
76
|
+
description: "Analyzes conversation content for summaries and insights.",
|
|
77
|
+
domain: "agentLoop",
|
|
78
|
+
},
|
|
79
|
+
callAgent: {
|
|
80
|
+
id: "callAgent",
|
|
81
|
+
displayName: "Call Agent",
|
|
82
|
+
description: "Handles voice call conversations.",
|
|
83
|
+
domain: "agentLoop",
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// memory
|
|
87
|
+
memoryExtraction: {
|
|
88
|
+
id: "memoryExtraction",
|
|
89
|
+
displayName: "Memory Extraction",
|
|
90
|
+
description: "Extracts memorable facts from conversation turns.",
|
|
91
|
+
domain: "memory",
|
|
92
|
+
},
|
|
93
|
+
memoryConsolidation: {
|
|
94
|
+
id: "memoryConsolidation",
|
|
95
|
+
displayName: "Memory Consolidation",
|
|
96
|
+
description: "Merges and deduplicates related memories.",
|
|
97
|
+
domain: "memory",
|
|
98
|
+
},
|
|
99
|
+
memoryRetrieval: {
|
|
100
|
+
id: "memoryRetrieval",
|
|
101
|
+
displayName: "Memory Retrieval",
|
|
102
|
+
description: "Retrieves relevant memories to augment the agent context.",
|
|
103
|
+
domain: "memory",
|
|
104
|
+
},
|
|
105
|
+
memoryV2Migration: {
|
|
106
|
+
id: "memoryV2Migration",
|
|
107
|
+
displayName: "Memory V2 Migration",
|
|
108
|
+
description: "One-time migration of memories to the V2 storage format.",
|
|
109
|
+
domain: "memory",
|
|
110
|
+
},
|
|
111
|
+
memoryV2Sweep: {
|
|
112
|
+
id: "memoryV2Sweep",
|
|
113
|
+
displayName: "Memory V2 Sweep",
|
|
114
|
+
description: "Background sweep pass for V2 memory maintenance.",
|
|
115
|
+
domain: "memory",
|
|
116
|
+
},
|
|
117
|
+
recall: {
|
|
118
|
+
id: "recall",
|
|
119
|
+
displayName: "Recall",
|
|
120
|
+
description: "Searches memory to answer a specific question during a turn.",
|
|
121
|
+
domain: "memory",
|
|
122
|
+
},
|
|
123
|
+
narrativeRefinement: {
|
|
124
|
+
id: "narrativeRefinement",
|
|
125
|
+
displayName: "Narrative Refinement",
|
|
126
|
+
description: "Refines the autobiographical narrative stored in memory.",
|
|
127
|
+
domain: "memory",
|
|
128
|
+
},
|
|
129
|
+
patternScan: {
|
|
130
|
+
id: "patternScan",
|
|
131
|
+
displayName: "Pattern Scan",
|
|
132
|
+
description: "Scans memories for recurring behavioral patterns.",
|
|
133
|
+
domain: "memory",
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
// workspace
|
|
137
|
+
conversationSummarization: {
|
|
138
|
+
id: "conversationSummarization",
|
|
139
|
+
displayName: "Conversation Summarization",
|
|
140
|
+
description: "Generates a summary of a completed conversation.",
|
|
141
|
+
domain: "workspace",
|
|
142
|
+
},
|
|
143
|
+
commitMessage: {
|
|
144
|
+
id: "commitMessage",
|
|
145
|
+
displayName: "Commit Message",
|
|
146
|
+
description: "Generates a git commit message for staged changes.",
|
|
147
|
+
domain: "workspace",
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
// ui
|
|
151
|
+
conversationStarters: {
|
|
152
|
+
id: "conversationStarters",
|
|
153
|
+
displayName: "Conversation Starters",
|
|
154
|
+
description:
|
|
155
|
+
"Generates suggested conversation openers for the home screen.",
|
|
156
|
+
domain: "ui",
|
|
157
|
+
},
|
|
158
|
+
conversationTitle: {
|
|
159
|
+
id: "conversationTitle",
|
|
160
|
+
displayName: "Conversation Title",
|
|
161
|
+
description: "Generates a title for a conversation from its content.",
|
|
162
|
+
domain: "ui",
|
|
163
|
+
},
|
|
164
|
+
identityIntro: {
|
|
165
|
+
id: "identityIntro",
|
|
166
|
+
displayName: "Identity Intro",
|
|
167
|
+
description: "Generates the assistant's introductory identity text.",
|
|
168
|
+
domain: "ui",
|
|
169
|
+
},
|
|
170
|
+
emptyStateGreeting: {
|
|
171
|
+
id: "emptyStateGreeting",
|
|
172
|
+
displayName: "Empty State Greeting",
|
|
173
|
+
description: "Generates a greeting shown on the empty conversation screen.",
|
|
174
|
+
domain: "ui",
|
|
175
|
+
},
|
|
176
|
+
guardianQuestionCopy: {
|
|
177
|
+
id: "guardianQuestionCopy",
|
|
178
|
+
displayName: "Guardian Question Copy",
|
|
179
|
+
description: "Generates copy for guardian onboarding questions.",
|
|
180
|
+
domain: "ui",
|
|
181
|
+
},
|
|
182
|
+
approvalCopy: {
|
|
183
|
+
id: "approvalCopy",
|
|
184
|
+
displayName: "Approval Copy",
|
|
185
|
+
description: "Generates copy for tool approval prompts shown to the user.",
|
|
186
|
+
domain: "ui",
|
|
187
|
+
},
|
|
188
|
+
approvalConversation: {
|
|
189
|
+
id: "approvalConversation",
|
|
190
|
+
displayName: "Approval Conversation",
|
|
191
|
+
description: "Handles conversational approval flows.",
|
|
192
|
+
domain: "ui",
|
|
193
|
+
},
|
|
194
|
+
feedEventCopy: {
|
|
195
|
+
id: "feedEventCopy",
|
|
196
|
+
displayName: "Feed Event Copy",
|
|
197
|
+
description: "Generates copy for home feed event cards.",
|
|
198
|
+
domain: "ui",
|
|
199
|
+
},
|
|
200
|
+
trustRuleSuggestion: {
|
|
201
|
+
id: "trustRuleSuggestion",
|
|
202
|
+
displayName: "Trust Rule Suggestion",
|
|
203
|
+
description:
|
|
204
|
+
"Suggests a trust rule pattern when the user creates a new rule.",
|
|
205
|
+
domain: "ui",
|
|
206
|
+
},
|
|
207
|
+
|
|
208
|
+
// notifications
|
|
209
|
+
notificationDecision: {
|
|
210
|
+
id: "notificationDecision",
|
|
211
|
+
displayName: "Notification Decision",
|
|
212
|
+
description:
|
|
213
|
+
"Decides whether a background event warrants sending a notification.",
|
|
214
|
+
domain: "notifications",
|
|
215
|
+
},
|
|
216
|
+
preferenceExtraction: {
|
|
217
|
+
id: "preferenceExtraction",
|
|
218
|
+
displayName: "Preference Extraction",
|
|
219
|
+
description:
|
|
220
|
+
"Extracts notification and communication preferences from messages.",
|
|
221
|
+
domain: "notifications",
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
// skills
|
|
225
|
+
interactionClassifier: {
|
|
226
|
+
id: "interactionClassifier",
|
|
227
|
+
displayName: "Interaction Classifier",
|
|
228
|
+
description: "Classifies the type of interaction to route it correctly.",
|
|
229
|
+
domain: "skills",
|
|
230
|
+
},
|
|
231
|
+
styleAnalyzer: {
|
|
232
|
+
id: "styleAnalyzer",
|
|
233
|
+
displayName: "Style Analyzer",
|
|
234
|
+
description: "Analyzes the user's communication style for personalization.",
|
|
235
|
+
domain: "skills",
|
|
236
|
+
},
|
|
237
|
+
inviteInstructionGenerator: {
|
|
238
|
+
id: "inviteInstructionGenerator",
|
|
239
|
+
displayName: "Invite Instruction Generator",
|
|
240
|
+
description: "Generates setup instructions for new skill invites.",
|
|
241
|
+
domain: "skills",
|
|
242
|
+
},
|
|
243
|
+
skillCategoryInference: {
|
|
244
|
+
id: "skillCategoryInference",
|
|
245
|
+
displayName: "Skill Category Inference",
|
|
246
|
+
description: "Infers the category of a skill from its description.",
|
|
247
|
+
domain: "skills",
|
|
248
|
+
},
|
|
249
|
+
meetConsentMonitor: {
|
|
250
|
+
id: "meetConsentMonitor",
|
|
251
|
+
displayName: "Meet Consent Monitor",
|
|
252
|
+
description: "Monitors meeting consent signals during live calls.",
|
|
253
|
+
domain: "skills",
|
|
254
|
+
},
|
|
255
|
+
meetChatOpportunity: {
|
|
256
|
+
id: "meetChatOpportunity",
|
|
257
|
+
displayName: "Meet Chat Opportunity",
|
|
258
|
+
description: "Identifies opportunities to engage in meeting chat.",
|
|
259
|
+
domain: "skills",
|
|
260
|
+
},
|
|
261
|
+
inference: {
|
|
262
|
+
id: "inference",
|
|
263
|
+
displayName: "Inference",
|
|
264
|
+
description: "General-purpose LLM inference call site for skill use.",
|
|
265
|
+
domain: "skills",
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// Source of truth for call-site display metadata. API responses and usage
|
|
270
|
+
// display paths should reuse this catalog instead of defining separate labels.
|
|
271
|
+
export const CALL_SITE_CATALOG: CallSiteEntry[] = Object.values(CATALOG_RECORD);
|
|
@@ -5,7 +5,7 @@ export const VALID_CALLER_IDENTITY_MODES = [
|
|
|
5
5
|
"assistant_number",
|
|
6
6
|
"user_number",
|
|
7
7
|
] as const;
|
|
8
|
-
|
|
8
|
+
const CallsDisclosureConfigSchema = z
|
|
9
9
|
.object({
|
|
10
10
|
enabled: z
|
|
11
11
|
.boolean({ error: "calls.disclosure.enabled must be a boolean" })
|
|
@@ -26,7 +26,7 @@ export const CallsDisclosureConfigSchema = z
|
|
|
26
26
|
"Controls whether and how the assistant discloses its nature at the start of a phone call",
|
|
27
27
|
);
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
const CallsSafetyConfigSchema = z
|
|
30
30
|
.object({
|
|
31
31
|
denyCategories: z
|
|
32
32
|
.array(
|
|
@@ -41,7 +41,7 @@ export const CallsSafetyConfigSchema = z
|
|
|
41
41
|
})
|
|
42
42
|
.describe("Safety guardrails for phone calls");
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
const CallsVoiceConfigSchema = z
|
|
45
45
|
.object({
|
|
46
46
|
language: z
|
|
47
47
|
.string({ error: "calls.voice.language must be a string" })
|
|
@@ -65,7 +65,7 @@ export const CallsVoiceConfigSchema = z
|
|
|
65
65
|
})
|
|
66
66
|
.describe("Voice and speech settings for phone calls");
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
const CallerIdentityConfigSchema = z
|
|
69
69
|
.object({
|
|
70
70
|
allowPerCallOverride: z
|
|
71
71
|
.boolean({
|
|
@@ -82,7 +82,7 @@ export const CallerIdentityConfigSchema = z
|
|
|
82
82
|
})
|
|
83
83
|
.describe("Controls which phone number is shown as the caller ID");
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
const CallsVerificationConfigSchema = z
|
|
86
86
|
.object({
|
|
87
87
|
enabled: z
|
|
88
88
|
.boolean({ error: "calls.verification.enabled must be a boolean" })
|
|
@@ -98,7 +98,7 @@ export const ContextWindowConfigSchema = z
|
|
|
98
98
|
.positive("contextWindow.maxInputTokens must be a positive integer")
|
|
99
99
|
.default(200000)
|
|
100
100
|
.describe(
|
|
101
|
-
"Conservative cap on input tokens allowed in the context window. Acts as an override that further constrains the model's catalog `contextWindow`; the effective budget is `min(catalog.contextWindow, maxInputTokens)`.
|
|
101
|
+
"Conservative cap on input tokens allowed in the context window. Acts as an override that further constrains the model's catalog `contextWindow`; the effective budget is `min(catalog.contextWindow, maxInputTokens)`. Increase this value to opt into larger model-native windows where supported.",
|
|
102
102
|
),
|
|
103
103
|
targetBudgetRatio: z
|
|
104
104
|
.number({ error: "contextWindow.targetBudgetRatio must be a number" })
|
|
@@ -193,6 +193,8 @@ const ContextOverflowRecoveryFragmentSchema = z.object({
|
|
|
193
193
|
|
|
194
194
|
// Leaf primitives for context-window fields.
|
|
195
195
|
const ContextEnabledSchema = z.boolean();
|
|
196
|
+
export const DEFAULT_CONTEXT_WINDOW_MAX_INPUT_TOKENS = 200000;
|
|
197
|
+
|
|
196
198
|
const ContextMaxInputTokensSchema = z.number().int().positive();
|
|
197
199
|
const ContextTargetBudgetRatioSchema = z.number().finite().gt(0).lte(1);
|
|
198
200
|
const ContextCompactThresholdSchema = z.number().finite().gt(0).lte(1);
|
|
@@ -200,7 +202,9 @@ const ContextSummaryBudgetRatioSchema = z.number().finite().gt(0).lte(1);
|
|
|
200
202
|
|
|
201
203
|
const ContextWindowSchema = z.object({
|
|
202
204
|
enabled: ContextEnabledSchema.default(true),
|
|
203
|
-
maxInputTokens: ContextMaxInputTokensSchema.default(
|
|
205
|
+
maxInputTokens: ContextMaxInputTokensSchema.default(
|
|
206
|
+
DEFAULT_CONTEXT_WINDOW_MAX_INPUT_TOKENS,
|
|
207
|
+
),
|
|
204
208
|
targetBudgetRatio: ContextTargetBudgetRatioSchema.default(0.3),
|
|
205
209
|
compactThreshold: ContextCompactThresholdSchema.default(0.8),
|
|
206
210
|
summaryBudgetRatio: ContextSummaryBudgetRatioSchema.default(0.05),
|
|
@@ -245,6 +249,17 @@ const OpenRouterDeepPartialSchema = z.object({
|
|
|
245
249
|
only: z.array(OpenRouterOnlyItemSchema).optional(),
|
|
246
250
|
});
|
|
247
251
|
|
|
252
|
+
// ---------------------------------------------------------------------------
|
|
253
|
+
// Profile metadata
|
|
254
|
+
// ---------------------------------------------------------------------------
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Distinguishes daemon-managed profiles (overwritten on every startup) from
|
|
258
|
+
* user-created ones (never touched by the daemon).
|
|
259
|
+
*/
|
|
260
|
+
export const ProfileSource = z.enum(["managed", "user"]);
|
|
261
|
+
export type ProfileSource = z.infer<typeof ProfileSource>;
|
|
262
|
+
|
|
248
263
|
// ---------------------------------------------------------------------------
|
|
249
264
|
// Pricing overrides
|
|
250
265
|
// ---------------------------------------------------------------------------
|
|
@@ -301,12 +316,25 @@ export const LLMConfigFragment = z.object({
|
|
|
301
316
|
});
|
|
302
317
|
export type LLMConfigFragment = z.infer<typeof LLMConfigFragment>;
|
|
303
318
|
|
|
319
|
+
/**
|
|
320
|
+
* A named profile entry: an `LLMConfigFragment` augmented with
|
|
321
|
+
* presentation/ownership metadata. These fields are intentionally kept off
|
|
322
|
+
* `LLMConfigFragment` so they don't leak into `LLMCallSiteConfig` or the
|
|
323
|
+
* resolver's deep-merge output.
|
|
324
|
+
*/
|
|
325
|
+
export const ProfileEntry = LLMConfigFragment.extend({
|
|
326
|
+
source: ProfileSource.optional(),
|
|
327
|
+
label: z.string().min(1).optional(),
|
|
328
|
+
description: z.string().optional(),
|
|
329
|
+
});
|
|
330
|
+
export type ProfileEntry = z.infer<typeof ProfileEntry>;
|
|
331
|
+
|
|
304
332
|
/**
|
|
305
333
|
* Per-call-site config: a fragment plus an optional `profile` reference.
|
|
306
334
|
* The resolver merges in the named profile (if any) before applying
|
|
307
335
|
* call-site-level overrides.
|
|
308
336
|
*/
|
|
309
|
-
|
|
337
|
+
const LLMCallSiteConfig = LLMConfigFragment.extend({
|
|
310
338
|
profile: z.string().min(1).optional(),
|
|
311
339
|
});
|
|
312
340
|
export type LLMCallSiteConfig = z.infer<typeof LLMCallSiteConfig>;
|
|
@@ -318,7 +346,7 @@ export type LLMCallSiteConfig = z.infer<typeof LLMCallSiteConfig>;
|
|
|
318
346
|
export const LLMSchema = z
|
|
319
347
|
.object({
|
|
320
348
|
default: LLMConfigBase.default(LLMConfigBase.parse({})),
|
|
321
|
-
profiles: z.record(z.string().min(1),
|
|
349
|
+
profiles: z.record(z.string().min(1), ProfileEntry).default({}),
|
|
322
350
|
// Presentation-only order for named profiles. The resolver ignores this;
|
|
323
351
|
// clients use it to render profile pickers consistently.
|
|
324
352
|
profileOrder: z.array(z.string().min(1)).default([]),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const MemoryDynamicBudgetConfigSchema = z
|
|
4
4
|
.object({
|
|
5
5
|
enabled: z
|
|
6
6
|
.boolean({
|
|
@@ -271,7 +271,7 @@ const MemoryPerTurnInjectionSchema = z
|
|
|
271
271
|
})
|
|
272
272
|
.describe("Memory injection limits for mid-conversation turns");
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
const MemoryInjectionConfigSchema = z
|
|
275
275
|
.object({
|
|
276
276
|
contextLoad: MemoryContextLoadInjectionSchema.default(
|
|
277
277
|
MemoryContextLoadInjectionSchema.parse({}),
|
|
@@ -139,6 +139,15 @@ export const MemoryV2ConfigSchema = z
|
|
|
139
139
|
.describe(
|
|
140
140
|
"Soft upper bound on concept-page body length — pages exceeding this are flagged for split during consolidation",
|
|
141
141
|
),
|
|
142
|
+
consolidation_prompt_path: z
|
|
143
|
+
.string({
|
|
144
|
+
error: "memory.v2.consolidation_prompt_path must be a string",
|
|
145
|
+
})
|
|
146
|
+
.nullable()
|
|
147
|
+
.default(null)
|
|
148
|
+
.describe(
|
|
149
|
+
"Optional path to a file whose contents replace the bundled consolidation prompt. Absolute paths are used as-is, a leading `~/` is expanded to the home directory, otherwise the path is resolved under the workspace root. The loaded contents may include `{{CUTOFF}}`, which is substituted with the run's ISO-8601 cutoff timestamp. If the file is missing, unreadable, or empty, the bundled prompt is used and a warning is logged.",
|
|
150
|
+
),
|
|
142
151
|
})
|
|
143
152
|
.describe(
|
|
144
153
|
"Memory v2 — concept-page activation model with hourly LLM-driven consolidation",
|
|
@@ -1,46 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
|
-
const VALID_SECRET_ACTIONS = ["redact", "warn", "block", "prompt"] as const;
|
|
4
|
-
|
|
5
|
-
const CustomSecretPatternSchema = z
|
|
6
|
-
.object({
|
|
7
|
-
label: z
|
|
8
|
-
.string({
|
|
9
|
-
error: "secretDetection.customPatterns[].label must be a string",
|
|
10
|
-
})
|
|
11
|
-
.describe("Human-readable label for this secret pattern"),
|
|
12
|
-
pattern: z
|
|
13
|
-
.string({
|
|
14
|
-
error: "secretDetection.customPatterns[].pattern must be a string",
|
|
15
|
-
})
|
|
16
|
-
.describe("Regular expression pattern to match secrets"),
|
|
17
|
-
})
|
|
18
|
-
.describe("Custom pattern for detecting secrets in messages");
|
|
19
|
-
|
|
20
3
|
export const SecretDetectionConfigSchema = z
|
|
21
4
|
.object({
|
|
22
5
|
enabled: z
|
|
23
6
|
.boolean({ error: "secretDetection.enabled must be a boolean" })
|
|
24
7
|
.default(true)
|
|
25
8
|
.describe("Whether automatic secret detection is enabled"),
|
|
26
|
-
action: z
|
|
27
|
-
.enum(VALID_SECRET_ACTIONS, {
|
|
28
|
-
error: `secretDetection.action must be one of: ${VALID_SECRET_ACTIONS.join(
|
|
29
|
-
", ",
|
|
30
|
-
)}`,
|
|
31
|
-
})
|
|
32
|
-
.default("redact")
|
|
33
|
-
.describe(
|
|
34
|
-
"Action to take when a secret is detected: redact (replace with placeholder), warn (log a warning), block (reject the message), or prompt (ask the user)",
|
|
35
|
-
),
|
|
36
|
-
entropyThreshold: z
|
|
37
|
-
.number({ error: "secretDetection.entropyThreshold must be a number" })
|
|
38
|
-
.finite("secretDetection.entropyThreshold must be finite")
|
|
39
|
-
.positive("secretDetection.entropyThreshold must be a positive number")
|
|
40
|
-
.default(4.0)
|
|
41
|
-
.describe(
|
|
42
|
-
"Shannon entropy threshold for detecting high-entropy strings as potential secrets",
|
|
43
|
-
),
|
|
44
9
|
blockIngress: z
|
|
45
10
|
.boolean({ error: "secretDetection.blockIngress must be a boolean" })
|
|
46
11
|
.default(true)
|
|
@@ -53,15 +18,9 @@ export const SecretDetectionConfigSchema = z
|
|
|
53
18
|
.describe(
|
|
54
19
|
"Whether to allow sending a detected secret once (with user confirmation) before redacting future occurrences",
|
|
55
20
|
),
|
|
56
|
-
customPatterns: z
|
|
57
|
-
.array(CustomSecretPatternSchema)
|
|
58
|
-
.optional()
|
|
59
|
-
.describe(
|
|
60
|
-
"Additional regex patterns for detecting domain-specific secrets",
|
|
61
|
-
),
|
|
62
21
|
})
|
|
63
22
|
.describe(
|
|
64
|
-
"
|
|
23
|
+
"Prefix-based secret detection at user-message ingress, plus one-time-send override for the secure credential prompt",
|
|
65
24
|
);
|
|
66
25
|
|
|
67
26
|
export type SecretDetectionConfig = z.infer<typeof SecretDetectionConfigSchema>;
|