@aitne/daemon 0.1.7 → 0.1.9
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/dist/adapters/composite-dashboard-stream.d.ts +8 -11
- package/dist/adapters/composite-dashboard-stream.js +8 -11
- package/dist/adapters/dashboard-adapter.d.ts +18 -6
- package/dist/adapters/dashboard-adapter.js +101 -55
- package/dist/adapters/discord.d.ts +10 -3
- package/dist/adapters/discord.js +102 -26
- package/dist/adapters/docs-qa-adapter.d.ts +15 -16
- package/dist/adapters/docs-qa-adapter.js +14 -15
- package/dist/adapters/message-hub.d.ts +2 -3
- package/dist/adapters/message-hub.js +9 -3
- package/dist/adapters/notification-manager.d.ts +100 -3
- package/dist/adapters/notification-manager.js +244 -23
- package/dist/adapters/outbound-text.d.ts +17 -4
- package/dist/adapters/outbound-text.js +119 -5
- package/dist/adapters/primary-platform-resolver.d.ts +68 -0
- package/dist/adapters/primary-platform-resolver.js +54 -0
- package/dist/adapters/slack-adapter.d.ts +32 -5
- package/dist/adapters/slack-adapter.js +146 -58
- package/dist/adapters/telegram-adapter.d.ts +11 -8
- package/dist/adapters/telegram-adapter.js +63 -42
- package/dist/adapters/types.d.ts +3 -4
- package/dist/adapters/types.js +0 -1
- package/dist/adapters/whatsapp-adapter.d.ts +104 -18
- package/dist/adapters/whatsapp-adapter.js +305 -69
- package/dist/api/chat-binding-query.d.ts +0 -1
- package/dist/api/chat-binding-query.js +0 -1
- package/dist/api/chat-session-resume.d.ts +0 -1
- package/dist/api/chat-session-resume.js +0 -1
- package/dist/api/directory-picker.d.ts +0 -1
- package/dist/api/directory-picker.js +14 -1
- package/dist/api/env-writer.d.ts +0 -1
- package/dist/api/env-writer.js +108 -5
- package/dist/api/helpers/agent-errors-envelope.d.ts +116 -0
- package/dist/api/helpers/agent-errors-envelope.js +165 -0
- package/dist/api/helpers/agent-errors-registry.d.ts +2290 -0
- package/dist/api/helpers/agent-errors-registry.js +2197 -0
- package/dist/api/helpers/agent-errors-types.d.ts +193 -0
- package/dist/api/helpers/agent-errors-types.js +15 -0
- package/dist/api/helpers/agent-errors-zod.d.ts +33 -0
- package/dist/api/helpers/agent-errors-zod.js +138 -0
- package/dist/api/helpers/agent-errors.d.ts +4 -0
- package/dist/api/helpers/agent-errors.js +17 -0
- package/dist/api/integration-route-gate.d.ts +0 -1
- package/dist/api/integration-route-gate.js +10 -4
- package/dist/api/json-body.d.ts +3 -4
- package/dist/api/json-body.js +3 -4
- package/dist/api/routes/activity-sources.d.ts +1 -2
- package/dist/api/routes/activity-sources.js +0 -1
- package/dist/api/routes/agent-schedule-plan-match.d.ts +4 -0
- package/dist/api/routes/agent-schedule-plan-match.js +100 -0
- package/dist/api/routes/agent-schedule.d.ts +3 -0
- package/dist/api/routes/agent-schedule.js +790 -0
- package/dist/api/routes/agent.d.ts +0 -1
- package/dist/api/routes/agent.js +233 -367
- package/dist/api/routes/agents/index.d.ts +3 -0
- package/dist/api/routes/agents/index.js +404 -0
- package/dist/api/routes/agents/views.d.ts +185 -0
- package/dist/api/routes/agents/views.js +514 -0
- package/dist/api/routes/apple-calendar.d.ts +1 -2
- package/dist/api/routes/apple-calendar.js +110 -29
- package/dist/api/routes/attachments.d.ts +0 -1
- package/dist/api/routes/attachments.js +113 -22
- package/dist/api/routes/backends.d.ts +0 -1
- package/dist/api/routes/backends.js +144 -40
- package/dist/api/routes/books.d.ts +0 -1
- package/dist/api/routes/books.js +65 -26
- package/dist/api/routes/browser-automation-purchase.d.ts +31 -0
- package/dist/api/routes/browser-automation-purchase.js +251 -0
- package/dist/api/routes/browser-automation-sites.d.ts +22 -0
- package/dist/api/routes/browser-automation-sites.js +238 -0
- package/dist/api/routes/browser-history-managed.d.ts +23 -0
- package/dist/api/routes/browser-history-managed.js +202 -0
- package/dist/api/routes/browser-history.d.ts +3 -0
- package/dist/api/routes/browser-history.js +433 -0
- package/dist/api/routes/browser-task.d.ts +43 -0
- package/dist/api/routes/browser-task.js +617 -0
- package/dist/api/routes/calendar.d.ts +3 -3
- package/dist/api/routes/calendar.js +330 -56
- package/dist/api/routes/commands.d.ts +0 -1
- package/dist/api/routes/commands.js +27 -2
- package/dist/api/routes/context/frontmatter-merge.d.ts +28 -0
- package/dist/api/routes/context/frontmatter-merge.js +56 -0
- package/dist/api/routes/context/index.d.ts +40 -0
- package/dist/api/routes/context/index.js +174 -0
- package/dist/api/routes/context/locks.d.ts +3 -0
- package/dist/api/routes/context/locks.js +136 -0
- package/dist/api/routes/context/path-resolve.d.ts +26 -0
- package/dist/api/routes/context/path-resolve.js +125 -0
- package/dist/api/routes/context/permissions.d.ts +58 -0
- package/dist/api/routes/context/permissions.js +234 -0
- package/dist/api/routes/context/read.d.ts +3 -0
- package/dist/api/routes/context/read.js +306 -0
- package/dist/api/routes/context/repair.d.ts +3 -0
- package/dist/api/routes/context/repair.js +114 -0
- package/dist/api/routes/context/snapshots.d.ts +3 -0
- package/dist/api/routes/context/snapshots.js +208 -0
- package/dist/api/routes/context/write-step.d.ts +132 -0
- package/dist/api/routes/context/write-step.js +151 -0
- package/dist/api/routes/context/write.d.ts +3 -0
- package/dist/api/routes/context/write.js +781 -0
- package/dist/api/routes/dashboard/config.d.ts +3 -0
- package/dist/api/routes/dashboard/config.js +507 -0
- package/dist/api/routes/dashboard/conversations.d.ts +3 -0
- package/dist/api/routes/dashboard/conversations.js +308 -0
- package/dist/api/routes/dashboard/cost-approvals.d.ts +28 -0
- package/dist/api/routes/dashboard/cost-approvals.js +258 -0
- package/dist/api/routes/dashboard/index.d.ts +26 -0
- package/dist/api/routes/dashboard/index.js +46 -0
- package/dist/api/routes/dashboard/messaging.d.ts +3 -0
- package/dist/api/routes/dashboard/messaging.js +349 -0
- package/dist/api/routes/dashboard/notifications.d.ts +3 -0
- package/dist/api/routes/dashboard/notifications.js +108 -0
- package/dist/api/routes/dashboard/oauth-google.d.ts +3 -0
- package/dist/api/routes/dashboard/oauth-google.js +288 -0
- package/dist/api/routes/dashboard/schedule-readonly.d.ts +3 -0
- package/dist/api/routes/dashboard/schedule-readonly.js +54 -0
- package/dist/api/routes/dashboard/secrets.d.ts +23 -0
- package/dist/api/routes/dashboard/secrets.js +306 -0
- package/dist/api/routes/dashboard/snapshots.d.ts +3 -0
- package/dist/api/routes/dashboard/snapshots.js +32 -0
- package/dist/api/routes/delegated-sync.d.ts +0 -1
- package/dist/api/routes/delegated-sync.js +0 -1
- package/dist/api/routes/delegated.d.ts +5 -5
- package/dist/api/routes/delegated.js +6 -6
- package/dist/api/routes/docs.d.ts +0 -1
- package/dist/api/routes/docs.js +72 -10
- package/dist/api/routes/entities.d.ts +0 -1
- package/dist/api/routes/entities.js +114 -45
- package/dist/api/routes/fs.d.ts +0 -1
- package/dist/api/routes/fs.js +27 -13
- package/dist/api/routes/fs.logic.d.ts +0 -1
- package/dist/api/routes/fs.logic.js +6 -2
- package/dist/api/routes/git-accounts.d.ts +0 -1
- package/dist/api/routes/git-accounts.js +0 -1
- package/dist/api/routes/git-templates.d.ts +0 -1
- package/dist/api/routes/git-templates.js +113 -28
- package/dist/api/routes/git.d.ts +0 -1
- package/dist/api/routes/git.js +65 -16
- package/dist/api/routes/github.d.ts +0 -1
- package/dist/api/routes/github.js +130 -24
- package/dist/api/routes/health.d.ts +0 -1
- package/dist/api/routes/health.js +4 -3
- package/dist/api/routes/integrations/crud-patch.d.ts +16 -0
- package/dist/api/routes/integrations/crud-patch.js +638 -0
- package/dist/api/routes/integrations/crud.d.ts +15 -0
- package/dist/api/routes/integrations/crud.js +157 -0
- package/dist/api/routes/integrations/exec.d.ts +22 -0
- package/dist/api/routes/integrations/exec.js +349 -0
- package/dist/api/routes/integrations/index.d.ts +61 -0
- package/dist/api/routes/integrations/index.js +69 -0
- package/dist/api/routes/integrations/probe.d.ts +20 -0
- package/dist/api/routes/integrations/probe.js +246 -0
- package/dist/api/routes/integrations-reconcile.d.ts +0 -1
- package/dist/api/routes/integrations-reconcile.js +0 -1
- package/dist/api/routes/knowledge.d.ts +0 -1
- package/dist/api/routes/knowledge.js +14 -4
- package/dist/api/routes/mail/accounts.d.ts +3 -0
- package/dist/api/routes/mail/accounts.js +288 -0
- package/dist/api/routes/mail/app-password.d.ts +3 -0
- package/dist/api/routes/mail/app-password.js +191 -0
- package/dist/api/routes/mail/body-helpers.d.ts +55 -0
- package/dist/api/routes/mail/body-helpers.js +90 -0
- package/dist/api/routes/mail/dependencies.d.ts +35 -0
- package/dist/api/routes/mail/dependencies.js +1 -0
- package/dist/api/routes/mail/drafts.d.ts +4 -0
- package/dist/api/routes/mail/drafts.js +138 -0
- package/dist/api/routes/mail/gating.d.ts +44 -0
- package/dist/api/routes/mail/gating.js +98 -0
- package/dist/api/routes/mail/index.d.ts +17 -0
- package/dist/api/routes/mail/index.js +39 -0
- package/dist/api/routes/mail/messages.d.ts +14 -0
- package/dist/api/routes/mail/messages.js +238 -0
- package/dist/api/routes/mail/outlook-config.d.ts +3 -0
- package/dist/api/routes/mail/outlook-config.js +72 -0
- package/dist/api/routes/mail/provider-resolver.d.ts +63 -0
- package/dist/api/routes/mail/provider-resolver.js +285 -0
- package/dist/api/routes/mail/providers.d.ts +3 -0
- package/dist/api/routes/mail/providers.js +72 -0
- package/dist/api/routes/mail/search-health.d.ts +3 -0
- package/dist/api/routes/mail/search-health.js +130 -0
- package/dist/api/routes/mail/tags-folders.d.ts +4 -0
- package/dist/api/routes/mail/tags-folders.js +34 -0
- package/dist/api/routes/mail/validators.d.ts +22 -0
- package/dist/api/routes/mail/validators.js +130 -0
- package/dist/api/routes/managed-tasks.d.ts +0 -1
- package/dist/api/routes/managed-tasks.js +154 -63
- package/dist/api/routes/mcp.d.ts +0 -1
- package/dist/api/routes/mcp.js +115 -48
- package/dist/api/routes/metrics.d.ts +1 -2
- package/dist/api/routes/metrics.js +2 -3
- package/dist/api/routes/notion.d.ts +0 -1
- package/dist/api/routes/notion.js +234 -55
- package/dist/api/routes/observations.d.ts +0 -1
- package/dist/api/routes/observations.js +53 -184
- package/dist/api/routes/obsidian.d.ts +0 -1
- package/dist/api/routes/obsidian.js +193 -33
- package/dist/api/routes/profile-questions.d.ts +0 -1
- package/dist/api/routes/profile-questions.js +26 -5
- package/dist/api/routes/receipts.d.ts +0 -1
- package/dist/api/routes/receipts.js +64 -25
- package/dist/api/routes/recurring-schedules.d.ts +0 -1
- package/dist/api/routes/recurring-schedules.js +288 -15
- package/dist/api/routes/repositories.d.ts +0 -1
- package/dist/api/routes/repositories.js +278 -105
- package/dist/api/routes/schedule-model-resolver.d.ts +152 -0
- package/dist/api/routes/schedule-model-resolver.js +285 -0
- package/dist/api/routes/schedule-options.d.ts +24 -0
- package/dist/api/routes/schedule-options.js +76 -0
- package/dist/api/routes/schedule-validation.d.ts +145 -0
- package/dist/api/routes/schedule-validation.js +152 -0
- package/dist/api/routes/setup-migrate.d.ts +0 -1
- package/dist/api/routes/setup-migrate.js +6 -4
- package/dist/api/routes/setup.d.ts +0 -1
- package/dist/api/routes/setup.js +142 -27
- package/dist/api/routes/skill-curation.d.ts +0 -1
- package/dist/api/routes/skill-curation.js +0 -1
- package/dist/api/routes/skills.d.ts +2 -1
- package/dist/api/routes/skills.js +92 -33
- package/dist/api/routes/sot-bindings.d.ts +1 -2
- package/dist/api/routes/sot-bindings.js +46 -12
- package/dist/api/routes/sse.d.ts +0 -1
- package/dist/api/routes/sse.js +6 -2
- package/dist/api/routes/system.d.ts +0 -1
- package/dist/api/routes/system.js +15 -3
- package/dist/api/routes/task-flows.d.ts +0 -1
- package/dist/api/routes/task-flows.js +0 -1
- package/dist/api/routes/travel-bookings.d.ts +0 -1
- package/dist/api/routes/travel-bookings.js +26 -10
- package/dist/api/routes/triggers.d.ts +0 -1
- package/dist/api/routes/triggers.js +0 -1
- package/dist/api/routes/voice.d.ts +0 -1
- package/dist/api/routes/voice.js +0 -1
- package/dist/api/routes/wiki.d.ts +0 -1
- package/dist/api/routes/wiki.js +84 -17
- package/dist/api/server.d.ts +55 -6
- package/dist/api/server.js +76 -22
- package/dist/bootstrap/adapters.d.ts +0 -1
- package/dist/bootstrap/adapters.js +7 -5
- package/dist/bootstrap/api.d.ts +219 -0
- package/dist/bootstrap/api.js +502 -0
- package/dist/bootstrap/catchup.d.ts +0 -1
- package/dist/bootstrap/catchup.js +1 -2
- package/dist/bootstrap/db.d.ts +213 -0
- package/dist/bootstrap/db.js +617 -0
- package/dist/bootstrap/event-pipeline.d.ts +329 -0
- package/dist/bootstrap/event-pipeline.js +1203 -0
- package/dist/bootstrap/managed-chromium.d.ts +26 -0
- package/dist/bootstrap/managed-chromium.js +66 -0
- package/dist/bootstrap/observers.d.ts +147 -0
- package/dist/bootstrap/observers.js +586 -0
- package/dist/bootstrap/schedule-helpers.d.ts +122 -1
- package/dist/bootstrap/schedule-helpers.js +206 -6
- package/dist/bootstrap/services.d.ts +0 -1
- package/dist/bootstrap/services.js +1 -11
- package/dist/config.d.ts +1 -2
- package/dist/config.js +32 -15
- package/dist/core/abort-utils.d.ts +13 -0
- package/dist/core/abort-utils.js +35 -0
- package/dist/core/agent-core.d.ts +36 -4
- package/dist/core/agent-core.js +3 -2
- package/dist/core/agent-execution-recorder.d.ts +78 -0
- package/dist/core/agent-execution-recorder.js +60 -0
- package/dist/core/agents/agent-execution-tracker.d.ts +91 -0
- package/dist/core/agents/agent-execution-tracker.js +226 -0
- package/dist/core/agents/agent-frontmatter.d.ts +57 -0
- package/dist/core/agents/agent-frontmatter.js +74 -0
- package/dist/core/agents/agent-id-resolver.d.ts +47 -0
- package/dist/core/agents/agent-id-resolver.js +61 -0
- package/dist/core/agents/builtin-registry.d.ts +156 -0
- package/dist/core/agents/builtin-registry.js +257 -0
- package/dist/core/agents/cron-substitute.d.ts +60 -0
- package/dist/core/agents/cron-substitute.js +100 -0
- package/dist/core/agents/definition-criteria.d.ts +14 -0
- package/dist/core/agents/definition-criteria.js +25 -0
- package/dist/core/agents/effective-definition.d.ts +47 -0
- package/dist/core/agents/effective-definition.js +101 -0
- package/dist/core/agents/firing-blocked.d.ts +28 -0
- package/dist/core/agents/firing-blocked.js +27 -0
- package/dist/core/agents/loader-boot.d.ts +26 -0
- package/dist/core/agents/loader-boot.js +98 -0
- package/dist/core/agents/loader-watcher.d.ts +23 -0
- package/dist/core/agents/loader-watcher.js +84 -0
- package/dist/core/agents/loader.d.ts +188 -0
- package/dist/core/agents/loader.js +754 -0
- package/dist/core/agents/override-merge.d.ts +57 -0
- package/dist/core/agents/override-merge.js +131 -0
- package/dist/core/agents/recurrence-convert.d.ts +92 -0
- package/dist/core/agents/recurrence-convert.js +207 -0
- package/dist/core/agents/recurring-schedule-adapter.d.ts +24 -0
- package/dist/core/agents/recurring-schedule-adapter.js +157 -0
- package/dist/core/agents/success-criteria.d.ts +60 -0
- package/dist/core/agents/success-criteria.js +139 -0
- package/dist/core/agents/validate-agent-md.d.ts +17 -0
- package/dist/core/agents/validate-agent-md.js +64 -0
- package/dist/core/alerts.d.ts +0 -1
- package/dist/core/alerts.js +0 -1
- package/dist/core/atomic-write.d.ts +0 -1
- package/dist/core/atomic-write.js +17 -4
- package/dist/core/backends/api-key-probe.d.ts +0 -1
- package/dist/core/backends/api-key-probe.js +0 -1
- package/dist/core/backends/auth-health-monitor.d.ts +0 -1
- package/dist/core/backends/auth-health-monitor.js +31 -5
- package/dist/core/backends/auth-recovery.d.ts +0 -1
- package/dist/core/backends/auth-recovery.js +17 -4
- package/dist/core/backends/auth-telemetry.d.ts +0 -1
- package/dist/core/backends/auth-telemetry.js +0 -1
- package/dist/core/backends/backend-router.d.ts +44 -3
- package/dist/core/backends/backend-router.js +230 -3
- package/dist/core/backends/claude-auth.d.ts +0 -1
- package/dist/core/backends/claude-auth.js +0 -1
- package/dist/core/backends/claude-code-core.d.ts +53 -2
- package/dist/core/backends/claude-code-core.js +202 -29
- package/dist/core/backends/claude-credentials-store.d.ts +0 -1
- package/dist/core/backends/claude-credentials-store.js +0 -1
- package/dist/core/backends/claude-delegated.d.ts +0 -1
- package/dist/core/backends/claude-delegated.js +14 -15
- package/dist/core/backends/claude-errors.d.ts +0 -1
- package/dist/core/backends/claude-errors.js +0 -1
- package/dist/core/backends/claude-probe.d.ts +0 -1
- package/dist/core/backends/claude-probe.js +0 -1
- package/dist/core/backends/claude-tool-collection.d.ts +0 -1
- package/dist/core/backends/claude-tool-collection.js +177 -32
- package/dist/core/backends/cli-quota-guards.d.ts +100 -0
- package/dist/core/backends/cli-quota-guards.js +95 -0
- package/dist/core/backends/cli-utils.d.ts +26 -2
- package/dist/core/backends/cli-utils.js +133 -15
- package/dist/core/backends/codex-core.d.ts +13 -2
- package/dist/core/backends/codex-core.js +470 -63
- package/dist/core/backends/gemini-cli-core.d.ts +5 -2
- package/dist/core/backends/gemini-cli-core.js +348 -68
- package/dist/core/backends/idle-watchdog.d.ts +0 -1
- package/dist/core/backends/idle-watchdog.js +0 -1
- package/dist/core/backends/install-methods.d.ts +0 -1
- package/dist/core/backends/install-methods.js +22 -1
- package/dist/core/backends/model-registry.d.ts +10 -6
- package/dist/core/backends/model-registry.js +204 -34
- package/dist/core/backends/native-skill-discovery-probe.d.ts +77 -0
- package/dist/core/backends/native-skill-discovery-probe.js +172 -0
- package/dist/core/backends/opencode-basic-auth-fetch.d.ts +26 -0
- package/dist/core/backends/opencode-basic-auth-fetch.js +39 -0
- package/dist/core/backends/opencode-config-builder.d.ts +113 -0
- package/dist/core/backends/opencode-config-builder.js +184 -0
- package/dist/core/backends/opencode-core.d.ts +315 -0
- package/dist/core/backends/opencode-core.js +1508 -0
- package/dist/core/backends/opencode-event-mapper.d.ts +132 -0
- package/dist/core/backends/opencode-event-mapper.js +197 -0
- package/dist/core/backends/opencode-mcp.d.ts +81 -0
- package/dist/core/backends/opencode-mcp.js +157 -0
- package/dist/core/backends/opencode-server-manager.d.ts +113 -0
- package/dist/core/backends/opencode-server-manager.js +221 -0
- package/dist/core/backends/opencode-types.d.ts +45 -0
- package/dist/core/backends/opencode-types.js +13 -0
- package/dist/core/backends/plan-presets.d.ts +18 -6
- package/dist/core/backends/plan-presets.js +191 -24
- package/dist/core/backends/price-fetcher.d.ts +0 -1
- package/dist/core/backends/price-fetcher.js +0 -1
- package/dist/core/backends/process-config-cascade.d.ts +35 -1
- package/dist/core/backends/process-config-cascade.js +35 -2
- package/dist/core/backends/prompt-utils.d.ts +0 -1
- package/dist/core/backends/prompt-utils.js +0 -3
- package/dist/core/backends/proxy-model-registry.d.ts +0 -1
- package/dist/core/backends/proxy-model-registry.js +0 -1
- package/dist/core/backends/quota-reset-hints.d.ts +43 -0
- package/dist/core/backends/quota-reset-hints.js +116 -0
- package/dist/core/backends/silent-api-error-detector.d.ts +0 -1
- package/dist/core/backends/silent-api-error-detector.js +0 -1
- package/dist/core/bang-commands/commands-checks.d.ts +16 -0
- package/dist/core/bang-commands/commands-checks.js +58 -0
- package/dist/core/bang-commands/commands-close.d.ts +23 -0
- package/dist/core/bang-commands/commands-close.js +23 -0
- package/dist/core/bang-commands/commands-cost.d.ts +0 -1
- package/dist/core/bang-commands/commands-cost.js +13 -1
- package/dist/core/bang-commands/commands-help.d.ts +0 -1
- package/dist/core/bang-commands/commands-help.js +44 -6
- package/dist/core/bang-commands/commands-report.d.ts +0 -1
- package/dist/core/bang-commands/commands-report.js +1 -1
- package/dist/core/bang-commands/commands-research.d.ts +36 -0
- package/dist/core/bang-commands/commands-research.js +284 -0
- package/dist/core/bang-commands/commands-stop-start.d.ts +0 -1
- package/dist/core/bang-commands/commands-stop-start.js +2 -1
- package/dist/core/bang-commands/commands-wiki.d.ts +0 -1
- package/dist/core/bang-commands/commands-wiki.js +53 -14
- package/dist/core/bang-commands/format-utils.d.ts +15 -3
- package/dist/core/bang-commands/format-utils.js +23 -4
- package/dist/core/bang-commands/index.d.ts +3 -1
- package/dist/core/bang-commands/index.js +14 -1
- package/dist/core/bang-commands/registry.d.ts +59 -1
- package/dist/core/bang-commands/registry.js +175 -23
- package/dist/core/bang-commands/user-commands.d.ts +0 -1
- package/dist/core/bang-commands/user-commands.js +0 -1
- package/dist/core/browser-history/pre-morning-digest-job.d.ts +79 -0
- package/dist/core/browser-history/pre-morning-digest-job.js +89 -0
- package/dist/core/browser-history/research-cluster-fanout.d.ts +40 -0
- package/dist/core/browser-history/research-cluster-fanout.js +47 -0
- package/dist/core/browser-history/research-events.d.ts +37 -0
- package/dist/core/browser-history/research-events.js +70 -0
- package/dist/core/channel-timeline.d.ts +18 -2
- package/dist/core/channel-timeline.js +44 -1
- package/dist/core/character-block.d.ts +0 -1
- package/dist/core/character-block.js +0 -1
- package/dist/core/context/activity-sources.d.ts +3 -4
- package/dist/core/context/activity-sources.js +0 -1
- package/dist/core/context/activity-view-reconciler.d.ts +1 -2
- package/dist/core/context/activity-view-reconciler.js +10 -10
- package/dist/core/context/activity-view-runner.d.ts +0 -1
- package/dist/core/context/activity-view-runner.js +11 -3
- package/dist/core/context/default-schedules-reconciler.d.ts +1 -2
- package/dist/core/context/default-schedules-reconciler.js +1 -2
- package/dist/core/context/default-schedules-runner.d.ts +0 -1
- package/dist/core/context/default-schedules-runner.js +44 -5
- package/dist/core/context/domain-index-reconciler.d.ts +3 -1
- package/dist/core/context/domain-index-reconciler.js +11 -5
- package/dist/core/context/domain-index-runner.d.ts +0 -1
- package/dist/core/context/domain-index-runner.js +9 -2
- package/dist/core/context/entity-mirror.d.ts +9 -7
- package/dist/core/context/entity-mirror.js +21 -9
- package/dist/core/context/entity-source-rename.d.ts +0 -1
- package/dist/core/context/entity-source-rename.js +9 -2
- package/dist/core/context/index-reconciler.d.ts +26 -5
- package/dist/core/context/index-reconciler.js +110 -56
- package/dist/core/context/policy-index-reconciler.d.ts +6 -7
- package/dist/core/context/policy-index-reconciler.js +6 -7
- package/dist/core/context/policy-index-runner.d.ts +2 -3
- package/dist/core/context/policy-index-runner.js +10 -3
- package/dist/core/context/reconciler-runner.d.ts +0 -1
- package/dist/core/context/reconciler-runner.js +46 -6
- package/dist/core/context/reconciler-section.d.ts +30 -0
- package/dist/core/context/reconciler-section.js +39 -0
- package/dist/core/context-builder-calendar.d.ts +36 -0
- package/dist/core/context-builder-calendar.js +245 -0
- package/dist/core/context-builder-conversation.d.ts +95 -0
- package/dist/core/context-builder-conversation.js +444 -0
- package/dist/core/context-builder-format.d.ts +8 -0
- package/dist/core/context-builder-format.js +22 -0
- package/dist/core/context-builder-projects.d.ts +11 -0
- package/dist/core/context-builder-projects.js +102 -0
- package/dist/core/context-builder-yesterday.d.ts +30 -0
- package/dist/core/context-builder-yesterday.js +198 -0
- package/dist/core/context-builder.d.ts +73 -124
- package/dist/core/context-builder.js +272 -903
- package/dist/core/context-file-serializer.d.ts +92 -0
- package/dist/core/context-file-serializer.js +126 -0
- package/dist/core/context-frontmatter-extract.d.ts +32 -0
- package/dist/core/context-frontmatter-extract.js +98 -0
- package/dist/core/context-frontmatter.d.ts +14 -1
- package/dist/core/context-frontmatter.js +180 -109
- package/dist/core/context-health.d.ts +0 -1
- package/dist/core/context-health.js +25 -14
- package/dist/core/context-paths.d.ts +128 -85
- package/dist/core/context-paths.js +190 -108
- package/dist/core/context-staleness.d.ts +0 -1
- package/dist/core/context-staleness.js +2 -3
- package/dist/core/context-validation/frontmatter.d.ts +73 -0
- package/dist/core/context-validation/frontmatter.js +216 -0
- package/dist/core/context-validation/index.d.ts +19 -0
- package/dist/core/context-validation/index.js +19 -0
- package/dist/core/context-validation/prepare-write.d.ts +94 -0
- package/dist/core/context-validation/prepare-write.js +145 -0
- package/dist/core/context-validation/routine-rulebook.d.ts +59 -0
- package/dist/core/context-validation/routine-rulebook.js +155 -0
- package/dist/core/context-validation/section.d.ts +40 -0
- package/dist/core/context-validation/section.js +90 -0
- package/dist/core/context-validation/snapshot-debounce.d.ts +51 -0
- package/dist/core/context-validation/snapshot-debounce.js +109 -0
- package/dist/core/context-validation/today.d.ts +84 -0
- package/dist/core/context-validation/today.js +167 -0
- package/dist/core/context-vault-aliases.d.ts +107 -0
- package/dist/core/context-vault-aliases.js +253 -0
- package/dist/core/custom-routine-scheduler.d.ts +5 -6
- package/dist/core/custom-routine-scheduler.js +3 -4
- package/dist/core/daemon-api-cli.d.ts +6 -6
- package/dist/core/daemon-api-cli.js +132 -33
- package/dist/core/dashboard-session-cleanup.d.ts +0 -1
- package/dist/core/dashboard-session-cleanup.js +0 -1
- package/dist/core/dashboard-session-controls.d.ts +0 -1
- package/dist/core/dashboard-session-controls.js +0 -1
- package/dist/core/delegated-connector-health.d.ts +0 -1
- package/dist/core/delegated-connector-health.js +0 -1
- package/dist/core/dispatcher-date-utils.d.ts +0 -1
- package/dist/core/dispatcher-date-utils.js +0 -1
- package/dist/core/dispatcher-error-handling.d.ts +13 -1
- package/dist/core/dispatcher-error-handling.js +69 -1
- package/dist/core/dispatcher-hourly-check.d.ts +73 -2
- package/dist/core/dispatcher-hourly-check.js +258 -153
- package/dist/core/dispatcher-message-handler.d.ts +32 -2
- package/dist/core/dispatcher-message-handler.js +310 -53
- package/dist/core/dispatcher-morning-routine.d.ts +38 -31
- package/dist/core/dispatcher-morning-routine.js +238 -156
- package/dist/core/dispatcher-prompt.d.ts +4 -2
- package/dist/core/dispatcher-prompt.js +19 -4
- package/dist/core/dispatcher-repository-helpers.d.ts +0 -1
- package/dist/core/dispatcher-repository-helpers.js +5 -2
- package/dist/core/dispatcher-result-processor.d.ts +20 -1
- package/dist/core/dispatcher-result-processor.js +94 -5
- package/dist/core/dispatcher-scheduled-browser-task.d.ts +91 -0
- package/dist/core/dispatcher-scheduled-browser-task.js +228 -0
- package/dist/core/dispatcher-scheduled-tasks.d.ts +69 -2
- package/dist/core/dispatcher-scheduled-tasks.js +452 -29
- package/dist/core/dispatcher-types.d.ts +140 -13
- package/dist/core/dispatcher-types.js +0 -1
- package/dist/core/dispatcher.d.ts +194 -5
- package/dist/core/dispatcher.js +487 -11
- package/dist/core/dm-freshness-metrics.d.ts +6 -6
- package/dist/core/dm-freshness-metrics.js +7 -7
- package/dist/core/dm-token-router.d.ts +58 -0
- package/dist/core/dm-token-router.js +58 -0
- package/dist/core/docs/citation-validator.d.ts +0 -1
- package/dist/core/docs/citation-validator.js +0 -1
- package/dist/core/docs/extract-terms.d.ts +0 -1
- package/dist/core/docs/extract-terms.js +0 -1
- package/dist/core/docs/indexer.d.ts +0 -1
- package/dist/core/docs/indexer.js +0 -1
- package/dist/core/drift-effects.d.ts +0 -1
- package/dist/core/drift-effects.js +6 -3
- package/dist/core/evening-review-verify.d.ts +163 -0
- package/dist/core/evening-review-verify.js +636 -0
- package/dist/core/event-bus.d.ts +0 -1
- package/dist/core/event-bus.js +0 -1
- package/dist/core/fetch-window-prompt-loader.d.ts +46 -0
- package/dist/core/fetch-window-prompt-loader.js +71 -0
- package/dist/core/git-project-docs.d.ts +0 -1
- package/dist/core/git-project-docs.js +13 -6
- package/dist/core/health-monitor.d.ts +2 -2
- package/dist/core/health-monitor.js +6 -3
- package/dist/core/heartbeat.d.ts +0 -1
- package/dist/core/heartbeat.js +0 -1
- package/dist/core/injection-policy.d.ts +107 -0
- package/dist/core/injection-policy.js +117 -0
- package/dist/core/integration-health.d.ts +0 -1
- package/dist/core/integration-health.js +1 -2
- package/dist/core/integration-lifecycle.d.ts +0 -1
- package/dist/core/integration-lifecycle.js +0 -1
- package/dist/core/integration-main-backend.d.ts +0 -1
- package/dist/core/integration-main-backend.js +11 -4
- package/dist/core/integration-probe.d.ts +0 -1
- package/dist/core/integration-probe.js +0 -1
- package/dist/core/management-md-write-lock.d.ts +1 -2
- package/dist/core/management-md-write-lock.js +1 -2
- package/dist/core/management-md.d.ts +24 -10
- package/dist/core/management-md.js +65 -33
- package/dist/core/management-registry.d.ts +16 -25
- package/dist/core/management-registry.js +32 -54
- package/dist/core/management-telemetry.d.ts +1 -2
- package/dist/core/management-telemetry.js +1 -2
- package/dist/core/message-recorder.d.ts +3 -4
- package/dist/core/message-recorder.js +3 -4
- package/dist/core/metrics.d.ts +88 -2
- package/dist/core/metrics.js +78 -3
- package/dist/core/migration-backup.d.ts +0 -1
- package/dist/core/migration-backup.js +11 -1
- package/dist/core/morning/agent-journal-appender.d.ts +264 -0
- package/dist/core/morning/agent-journal-appender.js +632 -0
- package/dist/core/morning/daily-journal-composer.d.ts +183 -0
- package/dist/core/morning/daily-journal-composer.js +421 -0
- package/dist/core/morning/handoff-parser.d.ts +43 -0
- package/dist/core/morning/handoff-parser.js +115 -0
- package/dist/core/morning/journal-skeleton-builder.d.ts +155 -0
- package/dist/core/morning/journal-skeleton-builder.js +301 -0
- package/dist/core/morning/orchestrator.d.ts +424 -0
- package/dist/core/morning/orchestrator.js +1230 -0
- package/dist/core/morning/parent-audit-emitter.d.ts +80 -0
- package/dist/core/morning/parent-audit-emitter.js +118 -0
- package/dist/core/morning/partial-extract-streak.d.ts +76 -0
- package/dist/core/morning/partial-extract-streak.js +165 -0
- package/dist/core/morning/roadmap-skeleton-builder.d.ts +158 -0
- package/dist/core/morning/roadmap-skeleton-builder.js +337 -0
- package/dist/core/output-language-policy.d.ts +0 -1
- package/dist/core/output-language-policy.js +7 -8
- package/dist/core/overview-write-lock.d.ts +0 -1
- package/dist/core/overview-write-lock.js +0 -1
- package/dist/core/path-compat.d.ts +0 -1
- package/dist/core/path-compat.js +0 -1
- package/dist/core/path-rewrite.d.ts +1 -2
- package/dist/core/path-rewrite.js +0 -1
- package/dist/core/policy-files.d.ts +39 -13
- package/dist/core/policy-files.js +62 -12
- package/dist/core/pre-pass-freshness.d.ts +27 -0
- package/dist/core/pre-pass-freshness.js +9 -0
- package/dist/core/previous-week-digest.d.ts +129 -0
- package/dist/core/previous-week-digest.js +256 -0
- package/dist/core/profile-questions/seed.d.ts +2 -3
- package/dist/core/profile-questions/seed.js +4 -4
- package/dist/core/profile-questions/slot-filled.d.ts +0 -1
- package/dist/core/profile-questions/slot-filled.js +0 -1
- package/dist/core/prompts.d.ts +0 -1
- package/dist/core/prompts.js +6 -7
- package/dist/core/quiet-hours-sync.d.ts +0 -1
- package/dist/core/quiet-hours-sync.js +7 -1
- package/dist/core/quiet-hours.d.ts +35 -0
- package/dist/core/quiet-hours.js +93 -0
- package/dist/core/read-sensitive-token-manager.d.ts +0 -1
- package/dist/core/read-sensitive-token-manager.js +0 -1
- package/dist/core/recurrence.d.ts +13 -1
- package/dist/core/recurrence.js +108 -14
- package/dist/core/reinstall.d.ts +5 -1
- package/dist/core/reinstall.js +12 -2
- package/dist/core/release-assets.d.ts +39 -4
- package/dist/core/release-assets.js +83 -8
- package/dist/core/repository-management-docs.d.ts +0 -1
- package/dist/core/repository-management-docs.js +32 -11
- package/dist/core/retention.d.ts +49 -4
- package/dist/core/retention.js +218 -5
- package/dist/core/review-context.d.ts +10 -1
- package/dist/core/review-context.js +51 -6
- package/dist/core/roadmap-horizon.d.ts +0 -1
- package/dist/core/roadmap-horizon.js +0 -1
- package/dist/core/roadmap-ids.d.ts +4 -6
- package/dist/core/roadmap-ids.js +4 -6
- package/dist/core/roadmap-maintenance.d.ts +212 -0
- package/dist/core/roadmap-maintenance.js +732 -0
- package/dist/core/roadmap-refresh-triggers.d.ts +0 -1
- package/dist/core/roadmap-refresh-triggers.js +0 -1
- package/dist/core/roadmap-truncate.d.ts +0 -1
- package/dist/core/roadmap-truncate.js +0 -1
- package/dist/core/roadmap-validate.d.ts +5 -1
- package/dist/core/roadmap-validate.js +12 -75
- package/dist/core/roadmap-write-lock.d.ts +0 -1
- package/dist/core/roadmap-write-lock.js +0 -1
- package/dist/core/routine-acquisition-plan.d.ts +43 -8
- package/dist/core/routine-acquisition-plan.js +99 -9
- package/dist/core/routine-fetch-window-retry.d.ts +40 -3
- package/dist/core/routine-fetch-window-retry.js +90 -9
- package/dist/core/routine-fetch-window-runner.d.ts +55 -22
- package/dist/core/routine-fetch-window-runner.js +287 -41
- package/dist/core/routine-windows.d.ts +17 -19
- package/dist/core/routine-windows.js +80 -44
- package/dist/core/schedule-insert-helper.d.ts +0 -1
- package/dist/core/schedule-insert-helper.js +0 -1
- package/dist/core/schedule-maintenance.d.ts +0 -1
- package/dist/core/schedule-maintenance.js +0 -1
- package/dist/core/scheduler.d.ts +179 -37
- package/dist/core/scheduler.js +614 -91
- package/dist/core/semaphore.d.ts +0 -1
- package/dist/core/semaphore.js +0 -1
- package/dist/core/session-gate.d.ts +0 -1
- package/dist/core/session-gate.js +0 -1
- package/dist/core/session-manager.d.ts +25 -7
- package/dist/core/session-manager.js +32 -16
- package/dist/core/signal-detector.d.ts +2 -3
- package/dist/core/signal-detector.js +3 -4
- package/dist/core/skeleton.d.ts +1 -2
- package/dist/core/skeleton.js +31 -32
- package/dist/core/skill-curation/apply-proposal.d.ts +0 -1
- package/dist/core/skill-curation/apply-proposal.js +0 -1
- package/dist/core/skill-curation/auto-revert.d.ts +0 -1
- package/dist/core/skill-curation/auto-revert.js +4 -5
- package/dist/core/skill-curation/classify-diff.d.ts +0 -1
- package/dist/core/skill-curation/classify-diff.js +0 -0
- package/dist/core/skill-curation/declarations.d.ts +0 -1
- package/dist/core/skill-curation/declarations.js +0 -1
- package/dist/core/skill-curation/knowledge-map.d.ts +0 -1
- package/dist/core/skill-curation/knowledge-map.js +0 -1
- package/dist/core/skill-curation/orphan-overlay.d.ts +2 -3
- package/dist/core/skill-curation/orphan-overlay.js +5 -6
- package/dist/core/skill-curation/overlay-store.d.ts +6 -4
- package/dist/core/skill-curation/overlay-store.js +12 -7
- package/dist/core/skill-curation/render/convention-notes.d.ts +0 -1
- package/dist/core/skill-curation/render/convention-notes.js +0 -1
- package/dist/core/skill-curation/render/cross-references.d.ts +0 -1
- package/dist/core/skill-curation/render/cross-references.js +0 -1
- package/dist/core/skill-curation/render/frontmatter-schema.d.ts +0 -1
- package/dist/core/skill-curation/render/frontmatter-schema.js +0 -1
- package/dist/core/skill-curation/render/index.d.ts +0 -1
- package/dist/core/skill-curation/render/index.js +0 -1
- package/dist/core/skill-curation/render/knowledge-layout.d.ts +0 -1
- package/dist/core/skill-curation/render/knowledge-layout.js +0 -1
- package/dist/core/skill-curation/render/routing-table.d.ts +0 -1
- package/dist/core/skill-curation/render/routing-table.js +0 -1
- package/dist/core/skill-curation/render/search-recipes.d.ts +0 -1
- package/dist/core/skill-curation/render/search-recipes.js +0 -1
- package/dist/core/skill-curation/run-token.d.ts +0 -1
- package/dist/core/skill-curation/run-token.js +0 -1
- package/dist/core/skill-curation/signals.d.ts +0 -1
- package/dist/core/skill-curation/signals.js +0 -1
- package/dist/core/skill-curation/smoke-test.d.ts +0 -1
- package/dist/core/skill-curation/smoke-test.js +0 -1
- package/dist/core/skill-curation/splicer.d.ts +0 -1
- package/dist/core/skill-curation/splicer.js +0 -1
- package/dist/core/skill-curation/workdir.d.ts +0 -1
- package/dist/core/skill-curation/workdir.js +0 -1
- package/dist/core/skill-source-paths.d.ts +0 -1
- package/dist/core/skill-source-paths.js +0 -1
- package/dist/core/skills-compiler-cli-renderer.d.ts +79 -0
- package/dist/core/skills-compiler-cli-renderer.js +289 -0
- package/dist/core/skills-compiler-denied-tools.d.ts +57 -0
- package/dist/core/skills-compiler-denied-tools.js +204 -0
- package/dist/core/skills-compiler-skill-index.d.ts +117 -0
- package/dist/core/skills-compiler-skill-index.js +262 -0
- package/dist/core/skills-compiler-tree.d.ts +38 -0
- package/dist/core/skills-compiler-tree.js +157 -0
- package/dist/core/skills-compiler-types.d.ts +46 -0
- package/dist/core/skills-compiler-types.js +1 -0
- package/dist/core/skills-compiler-variants.d.ts +117 -0
- package/dist/core/skills-compiler-variants.js +337 -0
- package/dist/core/skills-compiler.d.ts +169 -217
- package/dist/core/skills-compiler.js +385 -940
- package/dist/core/skills-manifest.d.ts +133 -1
- package/dist/core/skills-manifest.js +507 -40
- package/dist/core/system-reset.d.ts +1 -2
- package/dist/core/system-reset.js +1 -2
- package/dist/core/template-store.d.ts +2 -3
- package/dist/core/template-store.js +7 -4
- package/dist/core/template-versions.d.ts +1 -2
- package/dist/core/template-versions.js +1 -2
- package/dist/core/today-agent-plan.d.ts +0 -1
- package/dist/core/today-agent-plan.js +0 -1
- package/dist/core/today-direct-writer.d.ts +11 -2
- package/dist/core/today-direct-writer.js +42 -27
- package/dist/core/today-write-lock.d.ts +0 -1
- package/dist/core/today-write-lock.js +0 -1
- package/dist/core/trigger-dispatch.d.ts +0 -1
- package/dist/core/trigger-dispatch.js +0 -1
- package/dist/core/trigger-evaluator.d.ts +0 -1
- package/dist/core/trigger-evaluator.js +0 -1
- package/dist/core/user-skills-root.d.ts +24 -0
- package/dist/core/user-skills-root.js +29 -0
- package/dist/core/wiki/approval-queue.d.ts +0 -1
- package/dist/core/wiki/approval-queue.js +7 -3
- package/dist/core/wiki/bridge.d.ts +0 -1
- package/dist/core/wiki/bridge.js +0 -1
- package/dist/core/wiki/compile-lock.d.ts +0 -1
- package/dist/core/wiki/compile-lock.js +0 -1
- package/dist/core/wiki/compile-preview.d.ts +0 -1
- package/dist/core/wiki/compile-preview.js +0 -1
- package/dist/core/wiki/cost-estimate.d.ts +0 -1
- package/dist/core/wiki/cost-estimate.js +23 -3
- package/dist/core/wiki/dispatcher.d.ts +1 -21
- package/dist/core/wiki/dispatcher.js +0 -26
- package/dist/core/wiki/git-precompile.d.ts +9 -1
- package/dist/core/wiki/git-precompile.js +7 -2
- package/dist/core/wiki/import-migrate.d.ts +0 -1
- package/dist/core/wiki/import-migrate.js +0 -1
- package/dist/core/wiki/import-probe.d.ts +0 -1
- package/dist/core/wiki/import-probe.js +7 -5
- package/dist/core/wiki/index-cache.d.ts +0 -1
- package/dist/core/wiki/index-cache.js +0 -1
- package/dist/core/wiki/multi-url-dispatch.d.ts +0 -1
- package/dist/core/wiki/multi-url-dispatch.js +19 -9
- package/dist/core/wiki/wiki-fts.d.ts +0 -1
- package/dist/core/wiki/wiki-fts.js +0 -1
- package/dist/core/wiki/workspaces.d.ts +17 -2
- package/dist/core/wiki/workspaces.js +28 -17
- package/dist/core/wiki/write-strategy.d.ts +0 -1
- package/dist/core/wiki/write-strategy.js +19 -3
- package/dist/core/workdir.d.ts +38 -2
- package/dist/core/workdir.js +159 -17
- package/dist/db/agent-executions-store.d.ts +149 -0
- package/dist/db/agent-executions-store.js +209 -0
- package/dist/db/agents-store.d.ts +179 -0
- package/dist/db/agents-store.js +264 -0
- package/dist/db/automation-triggers.d.ts +0 -1
- package/dist/db/automation-triggers.js +0 -1
- package/dist/db/browser-automation-b4-config-store.d.ts +68 -0
- package/dist/db/browser-automation-b4-config-store.js +111 -0
- package/dist/db/browser-automation-purchase-primary-channels-store.d.ts +48 -0
- package/dist/db/browser-automation-purchase-primary-channels-store.js +88 -0
- package/dist/db/browser-automation-purchase-replies-store.d.ts +48 -0
- package/dist/db/browser-automation-purchase-replies-store.js +71 -0
- package/dist/db/browser-automation-purchase-tokens-store.d.ts +276 -0
- package/dist/db/browser-automation-purchase-tokens-store.js +483 -0
- package/dist/db/browser-automation-store.d.ts +37 -0
- package/dist/db/browser-automation-store.js +41 -0
- package/dist/db/browser-history-store.d.ts +231 -0
- package/dist/db/browser-history-store.js +601 -0
- package/dist/db/browser-task-action-log-store.d.ts +41 -0
- package/dist/db/browser-task-action-log-store.js +74 -0
- package/dist/db/browser-task-clarifications-store.d.ts +67 -0
- package/dist/db/browser-task-clarifications-store.js +118 -0
- package/dist/db/browser-task-final-confirm-tokens-store.d.ts +108 -0
- package/dist/db/browser-task-final-confirm-tokens-store.js +251 -0
- package/dist/db/browser-task-store.d.ts +114 -0
- package/dist/db/browser-task-store.js +250 -0
- package/dist/db/client.d.ts +0 -1
- package/dist/db/client.js +0 -1
- package/dist/db/entities-store.d.ts +6 -7
- package/dist/db/entities-store.js +5 -6
- package/dist/db/hourly-check-signals.d.ts +0 -1
- package/dist/db/hourly-check-signals.js +121 -36
- package/dist/db/integration-probe-store.d.ts +0 -1
- package/dist/db/integration-probe-store.js +0 -1
- package/dist/db/integrations-store.d.ts +0 -1
- package/dist/db/integrations-store.js +0 -1
- package/dist/db/managed-chromium-sites-store.d.ts +110 -0
- package/dist/db/managed-chromium-sites-store.js +174 -0
- package/dist/db/managed-chromium-state.d.ts +58 -0
- package/dist/db/managed-chromium-state.js +104 -0
- package/dist/db/managed-tasks-store.d.ts +0 -1
- package/dist/db/managed-tasks-store.js +0 -1
- package/dist/db/management-parse-failures-store.d.ts +0 -1
- package/dist/db/management-parse-failures-store.js +0 -1
- package/dist/db/migrations/context-vault-restructure.d.ts +263 -0
- package/dist/db/migrations/context-vault-restructure.js +1384 -0
- package/dist/db/migrations.d.ts +111 -0
- package/dist/db/migrations.js +476 -0
- package/dist/db/observations.d.ts +1 -2
- package/dist/db/observations.js +13 -4
- package/dist/db/recurring-schedules.d.ts +44 -3
- package/dist/db/recurring-schedules.js +116 -21
- package/dist/db/repositories-store.d.ts +2 -2
- package/dist/db/repositories-store.js +41 -4
- package/dist/db/runtime-state.d.ts +32 -2
- package/dist/db/runtime-state.js +33 -2
- package/dist/db/schema.d.ts +0 -1
- package/dist/db/schema.js +923 -54
- package/dist/db/sot-bindings-store.d.ts +0 -1
- package/dist/db/sot-bindings-store.js +0 -1
- package/dist/db/voice-transcripts-store.d.ts +0 -1
- package/dist/db/voice-transcripts-store.js +0 -1
- package/dist/db/wiki-store.d.ts +0 -1
- package/dist/db/wiki-store.js +3 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +408 -1522
- package/dist/init.d.ts +0 -1
- package/dist/init.js +0 -2
- package/dist/log-buffer.d.ts +0 -1
- package/dist/log-buffer.js +0 -2
- package/dist/logging.d.ts +0 -1
- package/dist/logging.js +0 -2
- package/dist/management-rules.d.ts +0 -1
- package/dist/management-rules.js +0 -1
- package/dist/messaging/browser-task-mcp-notifier.d.ts +77 -0
- package/dist/messaging/browser-task-mcp-notifier.js +164 -0
- package/dist/messaging/browser-task-screenshot-attachment.d.ts +62 -0
- package/dist/messaging/browser-task-screenshot-attachment.js +115 -0
- package/dist/messaging/constants.d.ts +0 -1
- package/dist/messaging/constants.js +0 -1
- package/dist/messaging/final-confirm-system-message-sender.d.ts +53 -0
- package/dist/messaging/final-confirm-system-message-sender.js +165 -0
- package/dist/messaging/magic-phrase.d.ts +16 -1
- package/dist/messaging/magic-phrase.js +60 -3
- package/dist/messaging/owner-channels.d.ts +40 -1
- package/dist/messaging/owner-channels.js +59 -1
- package/dist/messaging/purchase-system-message-sender.d.ts +54 -0
- package/dist/messaging/purchase-system-message-sender.js +213 -0
- package/dist/messaging/setup-welcome-dm.d.ts +0 -1
- package/dist/messaging/setup-welcome-dm.js +0 -1
- package/dist/messaging/url-extract.d.ts +0 -1
- package/dist/messaging/url-extract.js +5 -1
- package/dist/observers/browser-history-poller.d.ts +113 -0
- package/dist/observers/browser-history-poller.js +404 -0
- package/dist/observers/calendar-poller.d.ts +2 -1
- package/dist/observers/calendar-poller.js +76 -55
- package/dist/observers/context-index-reconciler-observer.d.ts +0 -1
- package/dist/observers/context-index-reconciler-observer.js +0 -1
- package/dist/observers/delegated-probe-observer.d.ts +0 -1
- package/dist/observers/delegated-probe-observer.js +0 -1
- package/dist/observers/delegated-sync-worker.d.ts +70 -10
- package/dist/observers/delegated-sync-worker.js +138 -12
- package/dist/observers/entity-mirror-observer.d.ts +0 -1
- package/dist/observers/entity-mirror-observer.js +0 -1
- package/dist/observers/git-delegated-cron.d.ts +0 -1
- package/dist/observers/git-delegated-cron.js +0 -1
- package/dist/observers/git-event-classifier.d.ts +0 -1
- package/dist/observers/git-event-classifier.js +0 -1
- package/dist/observers/git-watcher.d.ts +22 -1
- package/dist/observers/git-watcher.js +38 -9
- package/dist/observers/github-poller-classifier.d.ts +0 -1
- package/dist/observers/github-poller-classifier.js +0 -1
- package/dist/observers/github-poller.d.ts +3 -1
- package/dist/observers/github-poller.js +28 -3
- package/dist/observers/imminent-event-scheduler.d.ts +2 -1
- package/dist/observers/imminent-event-scheduler.js +30 -2
- package/dist/observers/mail-poller.d.ts +0 -1
- package/dist/observers/mail-poller.js +45 -18
- package/dist/observers/mail-reconciliation.d.ts +1 -2
- package/dist/observers/mail-reconciliation.js +1 -2
- package/dist/observers/manager.d.ts +7 -8
- package/dist/observers/manager.js +7 -8
- package/dist/observers/notion-poller.d.ts +2 -1
- package/dist/observers/notion-poller.js +44 -7
- package/dist/observers/observation-summarizer/index.d.ts +0 -1
- package/dist/observers/observation-summarizer/index.js +0 -1
- package/dist/observers/observation-summarizer/pre-filter.d.ts +0 -1
- package/dist/observers/observation-summarizer/pre-filter.js +0 -1
- package/dist/observers/observation-summarizer/response-parser.d.ts +0 -1
- package/dist/observers/observation-summarizer/response-parser.js +7 -7
- package/dist/observers/observation-summarizer/summarizer-client.d.ts +0 -1
- package/dist/observers/observation-summarizer/summarizer-client.js +0 -1
- package/dist/observers/observation-summarizer/summarizer-prompts.d.ts +0 -1
- package/dist/observers/observation-summarizer/summarizer-prompts.js +0 -1
- package/dist/observers/observation-summarizer/worker.d.ts +2 -1
- package/dist/observers/observation-summarizer/worker.js +25 -1
- package/dist/observers/obsidian-watcher.d.ts +0 -1
- package/dist/observers/obsidian-watcher.js +0 -1
- package/dist/observers/poll-guard.d.ts +62 -0
- package/dist/observers/poll-guard.js +88 -0
- package/dist/observers/primary-vault-watcher.d.ts +0 -1
- package/dist/observers/primary-vault-watcher.js +0 -1
- package/dist/observers/repository-management-cron.d.ts +0 -1
- package/dist/observers/repository-management-cron.js +0 -1
- package/dist/observers/skill-curation-walker.d.ts +0 -1
- package/dist/observers/skill-curation-walker.js +0 -1
- package/dist/safety/absolute-block-audit.d.ts +17 -1
- package/dist/safety/absolute-block-audit.js +28 -3
- package/dist/safety/agent-write-tracker.d.ts +42 -2
- package/dist/safety/agent-write-tracker.js +81 -2
- package/dist/safety/always-disallowed.d.ts +93 -3
- package/dist/safety/always-disallowed.js +504 -20
- package/dist/safety/audit.d.ts +37 -6
- package/dist/safety/audit.js +263 -15
- package/dist/safety/integration-write-tracker.d.ts +0 -1
- package/dist/safety/integration-write-tracker.js +0 -1
- package/dist/safety/outbound-purchase-guard.d.ts +60 -0
- package/dist/safety/outbound-purchase-guard.js +82 -0
- package/dist/safety/risk-classifier.d.ts +21 -6
- package/dist/safety/risk-classifier.js +296 -70
- package/dist/safety/subprocess-block-scanner.d.ts +88 -0
- package/dist/safety/subprocess-block-scanner.js +176 -0
- package/dist/scheduler/hourly-check-gate.d.ts +23 -10
- package/dist/scheduler/hourly-check-gate.js +11 -7
- package/dist/secrets/backend-api-key-env.d.ts +0 -1
- package/dist/secrets/backend-api-key-env.js +1 -1
- package/dist/secrets/codex-home-materializer.d.ts +0 -1
- package/dist/secrets/codex-home-materializer.js +0 -1
- package/dist/secrets/encrypted-blob-store.d.ts +0 -1
- package/dist/secrets/encrypted-blob-store.js +0 -1
- package/dist/secrets/platform-secret-store.d.ts +0 -1
- package/dist/secrets/platform-secret-store.js +0 -1
- package/dist/secrets/redaction.d.ts +0 -1
- package/dist/secrets/redaction.js +0 -1
- package/dist/secrets/secret-broker.d.ts +0 -2
- package/dist/secrets/secret-broker.js +0 -4
- package/dist/secrets/secret-names.d.ts +1 -2
- package/dist/secrets/secret-names.js +0 -2
- package/dist/secrets/secret-store.d.ts +0 -1
- package/dist/secrets/secret-store.js +0 -1
- package/dist/secrets/types.d.ts +0 -1
- package/dist/secrets/types.js +0 -1
- package/dist/services/apple-calendar/caldav-client.d.ts +0 -1
- package/dist/services/apple-calendar/caldav-client.js +0 -1
- package/dist/services/apple-calendar/caldav-codec.d.ts +0 -1
- package/dist/services/apple-calendar/caldav-codec.js +0 -1
- package/dist/services/apple-calendar/index.d.ts +0 -1
- package/dist/services/apple-calendar/index.js +0 -1
- package/dist/services/apple-calendar/service.d.ts +0 -1
- package/dist/services/apple-calendar/service.js +0 -1
- package/dist/services/apple-calendar/types.d.ts +0 -1
- package/dist/services/apple-calendar/types.js +0 -1
- package/dist/services/attachments/hardlink.d.ts +0 -1
- package/dist/services/attachments/hardlink.js +0 -1
- package/dist/services/attachments/sanitize.d.ts +0 -1
- package/dist/services/attachments/sanitize.js +0 -1
- package/dist/services/attachments/store.d.ts +0 -1
- package/dist/services/attachments/store.js +1 -3
- package/dist/services/browser-history/automation/browser-task-tools/dom-snapshot-output.d.ts +48 -0
- package/dist/services/browser-history/automation/browser-task-tools/dom-snapshot-output.js +98 -0
- package/dist/services/browser-history/automation/browser-task-tools/extract-cap.d.ts +76 -0
- package/dist/services/browser-history/automation/browser-task-tools/extract-cap.js +79 -0
- package/dist/services/browser-history/automation/browser-task-tools/extract-output.d.ts +66 -0
- package/dist/services/browser-history/automation/browser-task-tools/extract-output.js +69 -0
- package/dist/services/browser-history/automation/browser-task-tools/final-confirm-gate.d.ts +129 -0
- package/dist/services/browser-history/automation/browser-task-tools/final-confirm-gate.js +150 -0
- package/dist/services/browser-history/automation/browser-task-tools/loop-guard.d.ts +95 -0
- package/dist/services/browser-history/automation/browser-task-tools/loop-guard.js +123 -0
- package/dist/services/browser-history/automation/browser-task-tools/navigate-guard.d.ts +54 -0
- package/dist/services/browser-history/automation/browser-task-tools/navigate-guard.js +62 -0
- package/dist/services/browser-history/automation/browser-task-tools/schemas.d.ts +201 -0
- package/dist/services/browser-history/automation/browser-task-tools/schemas.js +248 -0
- package/dist/services/browser-history/automation/browser-task-tools/screenshot-output.d.ts +76 -0
- package/dist/services/browser-history/automation/browser-task-tools/screenshot-output.js +101 -0
- package/dist/services/browser-history/automation/browser-task-tools/server.d.ts +240 -0
- package/dist/services/browser-history/automation/browser-task-tools/server.js +1016 -0
- package/dist/services/browser-history/automation/cdp-network-interception.d.ts +74 -0
- package/dist/services/browser-history/automation/cdp-network-interception.js +106 -0
- package/dist/services/browser-history/automation/egress-denylist.d.ts +167 -0
- package/dist/services/browser-history/automation/egress-denylist.js +452 -0
- package/dist/services/browser-history/automation/external-content.d.ts +72 -0
- package/dist/services/browser-history/automation/external-content.js +0 -0
- package/dist/services/browser-history/automation/final-confirm-handler.d.ts +178 -0
- package/dist/services/browser-history/automation/final-confirm-handler.js +462 -0
- package/dist/services/browser-history/automation/lite-final-confirm-tokens.d.ts +100 -0
- package/dist/services/browser-history/automation/lite-final-confirm-tokens.js +126 -0
- package/dist/services/browser-history/automation/payment-path-blocker.d.ts +62 -0
- package/dist/services/browser-history/automation/payment-path-blocker.js +113 -0
- package/dist/services/browser-history/automation/purchase-handler.d.ts +344 -0
- package/dist/services/browser-history/automation/purchase-handler.js +666 -0
- package/dist/services/browser-history/automation/purchase-tokens.d.ts +265 -0
- package/dist/services/browser-history/automation/purchase-tokens.js +271 -0
- package/dist/services/browser-history/automation/site-registry.d.ts +176 -0
- package/dist/services/browser-history/automation/site-registry.js +290 -0
- package/dist/services/browser-history/automation/trace-store-paths.d.ts +80 -0
- package/dist/services/browser-history/automation/trace-store-paths.js +119 -0
- package/dist/services/browser-history/automation/trace-store.d.ts +29 -0
- package/dist/services/browser-history/automation/trace-store.js +63 -0
- package/dist/services/browser-history/cleanup-interests-reflection.d.ts +39 -0
- package/dist/services/browser-history/cleanup-interests-reflection.js +204 -0
- package/dist/services/browser-history/detectors/atlas.d.ts +2 -0
- package/dist/services/browser-history/detectors/atlas.js +4 -0
- package/dist/services/browser-history/detectors/chrome.d.ts +2 -0
- package/dist/services/browser-history/detectors/chrome.js +4 -0
- package/dist/services/browser-history/detectors/chromium.d.ts +2 -0
- package/dist/services/browser-history/detectors/chromium.js +193 -0
- package/dist/services/browser-history/detectors/comet.d.ts +2 -0
- package/dist/services/browser-history/detectors/comet.js +4 -0
- package/dist/services/browser-history/detectors/registry.d.ts +15 -0
- package/dist/services/browser-history/detectors/registry.js +82 -0
- package/dist/services/browser-history/history-mtime.d.ts +8 -0
- package/dist/services/browser-history/history-mtime.js +31 -0
- package/dist/services/browser-history/interests-reflection-lock.d.ts +26 -0
- package/dist/services/browser-history/interests-reflection-lock.js +84 -0
- package/dist/services/browser-history/lifecycle/chromium-install.d.ts +78 -0
- package/dist/services/browser-history/lifecycle/chromium-install.js +206 -0
- package/dist/services/browser-history/lifecycle/chromium-launcher.d.ts +77 -0
- package/dist/services/browser-history/lifecycle/chromium-launcher.js +288 -0
- package/dist/services/browser-history/lifecycle/failure-escalation.d.ts +3 -0
- package/dist/services/browser-history/lifecycle/failure-escalation.js +54 -0
- package/dist/services/browser-history/lifecycle/health-check.d.ts +8 -0
- package/dist/services/browser-history/lifecycle/health-check.js +17 -0
- package/dist/services/browser-history/lifecycle/platform.d.ts +99 -0
- package/dist/services/browser-history/lifecycle/platform.js +597 -0
- package/dist/services/browser-history/lifecycle/supervisor.d.ts +24 -0
- package/dist/services/browser-history/lifecycle/supervisor.js +334 -0
- package/dist/services/browser-history/managed-chromium/cdp-connect.d.ts +110 -0
- package/dist/services/browser-history/managed-chromium/cdp-connect.js +171 -0
- package/dist/services/browser-history/managed-chromium/instance-a-config.d.ts +116 -0
- package/dist/services/browser-history/managed-chromium/instance-a-config.js +164 -0
- package/dist/services/browser-history/managed-chromium/instance-a-launcher.d.ts +82 -0
- package/dist/services/browser-history/managed-chromium/instance-a-launcher.js +200 -0
- package/dist/services/browser-history/managed-chromium/managed-chromium-supervisor.d.ts +69 -0
- package/dist/services/browser-history/managed-chromium/managed-chromium-supervisor.js +334 -0
- package/dist/services/browser-history/managed-chromium/reauth-detector.d.ts +60 -0
- package/dist/services/browser-history/managed-chromium/reauth-detector.js +179 -0
- package/dist/services/browser-history/managed-chromium/sandbox-install.d.ts +69 -0
- package/dist/services/browser-history/managed-chromium/sandbox-install.js +123 -0
- package/dist/services/browser-history/managed-chromium/sandbox-launcher.d.ts +117 -0
- package/dist/services/browser-history/managed-chromium/sandbox-launcher.js +244 -0
- package/dist/services/browser-history/managed-chromium/setup-bootstrap.d.ts +149 -0
- package/dist/services/browser-history/managed-chromium/setup-bootstrap.js +404 -0
- package/dist/services/browser-history/managed-chromium/site-bootstrap.d.ts +133 -0
- package/dist/services/browser-history/managed-chromium/site-bootstrap.js +360 -0
- package/dist/services/browser-history/managed-chromium/supervisor-config.d.ts +75 -0
- package/dist/services/browser-history/managed-chromium/supervisor-config.js +146 -0
- package/dist/services/browser-history/managed-chromium/types.d.ts +199 -0
- package/dist/services/browser-history/managed-chromium/types.js +116 -0
- package/dist/services/browser-history/pipeline/amazon-extractor.d.ts +11 -0
- package/dist/services/browser-history/pipeline/amazon-extractor.js +33 -0
- package/dist/services/browser-history/pipeline/classifier.d.ts +7 -0
- package/dist/services/browser-history/pipeline/classifier.js +208 -0
- package/dist/services/browser-history/pipeline/cluster-extractor.d.ts +76 -0
- package/dist/services/browser-history/pipeline/cluster-extractor.js +271 -0
- package/dist/services/browser-history/pipeline/interests-block.d.ts +99 -0
- package/dist/services/browser-history/pipeline/interests-block.js +333 -0
- package/dist/services/browser-history/pipeline/meaningful-filter.d.ts +47 -0
- package/dist/services/browser-history/pipeline/meaningful-filter.js +228 -0
- package/dist/services/browser-history/pipeline/offer-rate-limit.d.ts +75 -0
- package/dist/services/browser-history/pipeline/offer-rate-limit.js +188 -0
- package/dist/services/browser-history/pipeline/offer-triggers.d.ts +150 -0
- package/dist/services/browser-history/pipeline/offer-triggers.js +164 -0
- package/dist/services/browser-history/pipeline/pre-morning-digest.d.ts +118 -0
- package/dist/services/browser-history/pipeline/pre-morning-digest.js +399 -0
- package/dist/services/browser-history/pipeline/project-matcher.d.ts +26 -0
- package/dist/services/browser-history/pipeline/project-matcher.js +314 -0
- package/dist/services/browser-history/pipeline/redactor.d.ts +15 -0
- package/dist/services/browser-history/pipeline/redactor.js +119 -0
- package/dist/services/browser-history/pipeline/reload-detector.d.ts +6 -0
- package/dist/services/browser-history/pipeline/reload-detector.js +16 -0
- package/dist/services/browser-history/pipeline/sensitive-hosts.d.ts +2 -0
- package/dist/services/browser-history/pipeline/sensitive-hosts.js +173 -0
- package/dist/services/browser-history/pipeline/summarizer.d.ts +52 -0
- package/dist/services/browser-history/pipeline/summarizer.js +97 -0
- package/dist/services/browser-history/pipeline/weekly-interests-summary.d.ts +139 -0
- package/dist/services/browser-history/pipeline/weekly-interests-summary.js +227 -0
- package/dist/services/browser-history/readers/chromium-reader.d.ts +30 -0
- package/dist/services/browser-history/readers/chromium-reader.js +139 -0
- package/dist/services/browser-history/readers/snapshot.d.ts +19 -0
- package/dist/services/browser-history/readers/snapshot.js +67 -0
- package/dist/services/browser-history/refresh-interests-reflection.d.ts +125 -0
- package/dist/services/browser-history/refresh-interests-reflection.js +424 -0
- package/dist/services/browser-history/types.d.ts +60 -0
- package/dist/services/browser-history/types.js +1 -0
- package/dist/services/browser-task/browser-task-allowlist.d.ts +107 -0
- package/dist/services/browser-task/browser-task-allowlist.js +247 -0
- package/dist/services/browser-task/browser-task-deadline-scanner.d.ts +76 -0
- package/dist/services/browser-task/browser-task-deadline-scanner.js +68 -0
- package/dist/services/browser-task/browser-task-driver.d.ts +188 -0
- package/dist/services/browser-task/browser-task-driver.js +714 -0
- package/dist/services/browser-task/browser-task-runner.d.ts +166 -0
- package/dist/services/browser-task/browser-task-runner.js +781 -0
- package/dist/services/browser-task/browser-task-slots.d.ts +212 -0
- package/dist/services/browser-task/browser-task-slots.js +404 -0
- package/dist/services/browser-task/browser-task-transition-events.d.ts +76 -0
- package/dist/services/browser-task/browser-task-transition-events.js +80 -0
- package/dist/services/calendar/outlook/graph-calendar-client.d.ts +0 -1
- package/dist/services/calendar/outlook/graph-calendar-client.js +0 -1
- package/dist/services/calendar.d.ts +0 -1
- package/dist/services/calendar.js +21 -16
- package/dist/services/delegated-backend-invoker.d.ts +0 -1
- package/dist/services/delegated-backend-invoker.js +8 -2
- package/dist/services/delegated-invoker-audit.d.ts +0 -1
- package/dist/services/delegated-invoker-audit.js +5 -2
- package/dist/services/delegated-invoker-cache-hits.d.ts +0 -1
- package/dist/services/delegated-invoker-cache-hits.js +0 -1
- package/dist/services/delegated-invoker-janitors.d.ts +0 -1
- package/dist/services/delegated-invoker-janitors.js +0 -1
- package/dist/services/delegated-invoker-utils.d.ts +0 -1
- package/dist/services/delegated-invoker-utils.js +0 -1
- package/dist/services/delegated-proxy-config.d.ts +3 -3
- package/dist/services/delegated-proxy-config.js +0 -1
- package/dist/services/delegated-task-result-cache.d.ts +0 -1
- package/dist/services/delegated-task-result-cache.js +0 -0
- package/dist/services/delegated-task-runtime.d.ts +0 -1
- package/dist/services/delegated-task-runtime.js +0 -1
- package/dist/services/delegated-task-session-pool.d.ts +0 -1
- package/dist/services/delegated-task-session-pool.js +0 -1
- package/dist/services/delegated-tool-runtime.d.ts +0 -1
- package/dist/services/delegated-tool-runtime.js +0 -1
- package/dist/services/fts5.d.ts +0 -1
- package/dist/services/fts5.js +0 -1
- package/dist/services/git-account-registry.d.ts +0 -1
- package/dist/services/git-account-registry.js +0 -1
- package/dist/services/github.d.ts +9 -40
- package/dist/services/github.js +9 -107
- package/dist/services/gmail-classifier.d.ts +0 -1
- package/dist/services/gmail-classifier.js +0 -1
- package/dist/services/gmail.d.ts +0 -1
- package/dist/services/gmail.js +31 -52
- package/dist/services/google-auth.d.ts +0 -1
- package/dist/services/google-auth.js +0 -1
- package/dist/services/integrations/extract-write-item-id.d.ts +5 -3
- package/dist/services/integrations/extract-write-item-id.js +6 -1
- package/dist/services/integrations/reconcile.d.ts +0 -1
- package/dist/services/integrations/reconcile.js +0 -1
- package/dist/services/integrations/snapshot-partitions.d.ts +0 -1
- package/dist/services/integrations/snapshot-partitions.js +8 -1
- package/dist/services/journal/render.d.ts +0 -1
- package/dist/services/journal/render.js +0 -1
- package/dist/services/journal/writer.d.ts +0 -1
- package/dist/services/journal/writer.js +0 -1
- package/dist/services/mail/account-registry.d.ts +0 -1
- package/dist/services/mail/account-registry.js +7 -3
- package/dist/services/mail/gmail/auth-failure-classifier.d.ts +0 -1
- package/dist/services/mail/gmail/auth-failure-classifier.js +0 -1
- package/dist/services/mail/gmail/gmail-provider.d.ts +0 -1
- package/dist/services/mail/gmail/gmail-provider.js +0 -1
- package/dist/services/mail/gmail/legacy-row.d.ts +0 -1
- package/dist/services/mail/gmail/legacy-row.js +0 -1
- package/dist/services/mail/gmail/poll-cursor.d.ts +0 -1
- package/dist/services/mail/gmail/poll-cursor.js +0 -1
- package/dist/services/mail/html-to-plaintext.d.ts +0 -1
- package/dist/services/mail/html-to-plaintext.js +0 -1
- package/dist/services/mail/imap/app-password.d.ts +0 -1
- package/dist/services/mail/imap/app-password.js +0 -1
- package/dist/services/mail/imap/auth-failure-classifier.d.ts +0 -1
- package/dist/services/mail/imap/auth-failure-classifier.js +0 -1
- package/dist/services/mail/imap/capabilities.d.ts +0 -1
- package/dist/services/mail/imap/capabilities.js +0 -1
- package/dist/services/mail/imap/client.d.ts +0 -1
- package/dist/services/mail/imap/client.js +0 -1
- package/dist/services/mail/imap/cursor.d.ts +0 -1
- package/dist/services/mail/imap/cursor.js +0 -1
- package/dist/services/mail/imap/folder-resolver.d.ts +0 -1
- package/dist/services/mail/imap/folder-resolver.js +0 -1
- package/dist/services/mail/imap/icloud-provider.d.ts +0 -1
- package/dist/services/mail/imap/icloud-provider.js +0 -1
- package/dist/services/mail/imap/imap-provider-base.d.ts +0 -1
- package/dist/services/mail/imap/imap-provider-base.js +12 -7
- package/dist/services/mail/imap/query-translator.d.ts +0 -1
- package/dist/services/mail/imap/query-translator.js +0 -1
- package/dist/services/mail/imap/reconcile-planner.d.ts +0 -1
- package/dist/services/mail/imap/reconcile-planner.js +0 -1
- package/dist/services/mail/imap/reply-mime.d.ts +0 -1
- package/dist/services/mail/imap/reply-mime.js +0 -1
- package/dist/services/mail/imap/yahoo-provider.d.ts +0 -1
- package/dist/services/mail/imap/yahoo-provider.js +0 -1
- package/dist/services/mail/mail-search.d.ts +0 -1
- package/dist/services/mail/mail-search.js +0 -1
- package/dist/services/mail/outlook/auth-failure-classifier.d.ts +0 -1
- package/dist/services/mail/outlook/auth-failure-classifier.js +0 -1
- package/dist/services/mail/outlook/client-config.d.ts +0 -1
- package/dist/services/mail/outlook/client-config.js +0 -1
- package/dist/services/mail/outlook/delta-cursor.d.ts +0 -1
- package/dist/services/mail/outlook/delta-cursor.js +0 -1
- package/dist/services/mail/outlook/graph-client.d.ts +0 -1
- package/dist/services/mail/outlook/graph-client.js +0 -1
- package/dist/services/mail/outlook/msal-app-factory.d.ts +0 -1
- package/dist/services/mail/outlook/msal-app-factory.js +0 -1
- package/dist/services/mail/outlook/msal-cache-plugin.d.ts +0 -1
- package/dist/services/mail/outlook/msal-cache-plugin.js +0 -1
- package/dist/services/mail/outlook/oauth-device-code.d.ts +0 -1
- package/dist/services/mail/outlook/oauth-device-code.js +0 -1
- package/dist/services/mail/outlook/oauth-loopback.d.ts +0 -1
- package/dist/services/mail/outlook/oauth-loopback.js +0 -1
- package/dist/services/mail/outlook/outlook-provider.d.ts +0 -1
- package/dist/services/mail/outlook/outlook-provider.js +0 -1
- package/dist/services/mail/outlook/query-translator.d.ts +0 -1
- package/dist/services/mail/outlook/query-translator.js +0 -1
- package/dist/services/mail/provider.d.ts +0 -1
- package/dist/services/mail/provider.js +0 -1
- package/dist/services/mail/query-utils.d.ts +0 -1
- package/dist/services/mail/query-utils.js +0 -1
- package/dist/services/mail-classifier.d.ts +0 -1
- package/dist/services/mail-classifier.js +0 -1
- package/dist/services/mail-ingestion.d.ts +0 -1
- package/dist/services/mail-ingestion.js +0 -1
- package/dist/services/mcp/auto-probe.d.ts +0 -1
- package/dist/services/mcp/auto-probe.js +0 -1
- package/dist/services/mcp/generators/claude.d.ts +0 -1
- package/dist/services/mcp/generators/claude.js +0 -1
- package/dist/services/mcp/generators/codex.d.ts +0 -1
- package/dist/services/mcp/generators/codex.js +0 -1
- package/dist/services/mcp/generators/gemini.d.ts +0 -1
- package/dist/services/mcp/generators/gemini.js +0 -1
- package/dist/services/mcp/generators/index.d.ts +1 -1
- package/dist/services/mcp/generators/index.js +3 -1
- package/dist/services/mcp/generators/types.d.ts +0 -1
- package/dist/services/mcp/generators/types.js +0 -1
- package/dist/services/mcp/probe.d.ts +0 -1
- package/dist/services/mcp/probe.js +7 -1
- package/dist/services/mcp/registry.d.ts +0 -1
- package/dist/services/mcp/registry.js +0 -1
- package/dist/services/mcp/risk.d.ts +1 -2
- package/dist/services/mcp/risk.js +1 -2
- package/dist/services/mcp/sdk-observations-server.d.ts +59 -0
- package/dist/services/mcp/sdk-observations-server.js +160 -0
- package/dist/services/mcp/session-materializer.d.ts +2 -3
- package/dist/services/mcp/session-materializer.js +15 -12
- package/dist/services/mcp/tool-audit.d.ts +0 -1
- package/dist/services/mcp/tool-audit.js +0 -1
- package/dist/services/mcp/types.d.ts +1 -1
- package/dist/services/mcp/types.js +0 -1
- package/dist/services/notion.d.ts +17 -2
- package/dist/services/notion.js +39 -3
- package/dist/services/observations-batch.d.ts +98 -0
- package/dist/services/observations-batch.js +256 -0
- package/dist/services/obsidian.d.ts +0 -1
- package/dist/services/obsidian.js +0 -1
- package/dist/services/service-registry.d.ts +0 -3
- package/dist/services/service-registry.js +0 -2
- package/dist/services/voice/transcriber-impl.d.ts +0 -1
- package/dist/services/voice/transcriber-impl.js +21 -20
- package/dist/services/voice/transcriber.d.ts +22 -2
- package/dist/services/voice/transcriber.js +68 -11
- package/dist/settings/runtime-settings.d.ts +52 -8
- package/dist/settings/runtime-settings.js +172 -20
- package/dist/settings/settings-store.d.ts +0 -1
- package/dist/settings/settings-store.js +44 -2
- package/native/win-appcontainer/README.md +66 -0
- package/native/win-appcontainer/binding.gyp +33 -0
- package/native/win-appcontainer/loader.js +29 -0
- package/native/win-appcontainer/package.json +18 -0
- package/native/win-appcontainer/src/win_appcontainer.cc +67 -0
- package/package.json +8 -3
- package/dist/adapters/composite-dashboard-stream.d.ts.map +0 -1
- package/dist/adapters/composite-dashboard-stream.js.map +0 -1
- package/dist/adapters/dashboard-adapter.d.ts.map +0 -1
- package/dist/adapters/dashboard-adapter.js.map +0 -1
- package/dist/adapters/discord.d.ts.map +0 -1
- package/dist/adapters/discord.js.map +0 -1
- package/dist/adapters/docs-qa-adapter.d.ts.map +0 -1
- package/dist/adapters/docs-qa-adapter.js.map +0 -1
- package/dist/adapters/message-hub.d.ts.map +0 -1
- package/dist/adapters/message-hub.js.map +0 -1
- package/dist/adapters/notification-manager.d.ts.map +0 -1
- package/dist/adapters/notification-manager.js.map +0 -1
- package/dist/adapters/outbound-text.d.ts.map +0 -1
- package/dist/adapters/outbound-text.js.map +0 -1
- package/dist/adapters/slack-adapter.d.ts.map +0 -1
- package/dist/adapters/slack-adapter.js.map +0 -1
- package/dist/adapters/telegram-adapter.d.ts.map +0 -1
- package/dist/adapters/telegram-adapter.js.map +0 -1
- package/dist/adapters/types.d.ts.map +0 -1
- package/dist/adapters/types.js.map +0 -1
- package/dist/adapters/whatsapp-adapter.d.ts.map +0 -1
- package/dist/adapters/whatsapp-adapter.js.map +0 -1
- package/dist/api/chat-binding-query.d.ts.map +0 -1
- package/dist/api/chat-binding-query.js.map +0 -1
- package/dist/api/chat-session-resume.d.ts.map +0 -1
- package/dist/api/chat-session-resume.js.map +0 -1
- package/dist/api/delegated-proxy-helper.d.ts +0 -33
- package/dist/api/delegated-proxy-helper.d.ts.map +0 -1
- package/dist/api/delegated-proxy-helper.js +0 -54
- package/dist/api/delegated-proxy-helper.js.map +0 -1
- package/dist/api/directory-picker.d.ts.map +0 -1
- package/dist/api/directory-picker.js.map +0 -1
- package/dist/api/env-writer.d.ts.map +0 -1
- package/dist/api/env-writer.js.map +0 -1
- package/dist/api/integration-route-gate.d.ts.map +0 -1
- package/dist/api/integration-route-gate.js.map +0 -1
- package/dist/api/json-body.d.ts.map +0 -1
- package/dist/api/json-body.js.map +0 -1
- package/dist/api/routes/activity-sources.d.ts.map +0 -1
- package/dist/api/routes/activity-sources.js.map +0 -1
- package/dist/api/routes/agent.d.ts.map +0 -1
- package/dist/api/routes/agent.js.map +0 -1
- package/dist/api/routes/apple-calendar.d.ts.map +0 -1
- package/dist/api/routes/apple-calendar.js.map +0 -1
- package/dist/api/routes/attachments.d.ts.map +0 -1
- package/dist/api/routes/attachments.js.map +0 -1
- package/dist/api/routes/backends.d.ts.map +0 -1
- package/dist/api/routes/backends.js.map +0 -1
- package/dist/api/routes/books.d.ts.map +0 -1
- package/dist/api/routes/books.js.map +0 -1
- package/dist/api/routes/calendar.d.ts.map +0 -1
- package/dist/api/routes/calendar.js.map +0 -1
- package/dist/api/routes/commands.d.ts.map +0 -1
- package/dist/api/routes/commands.js.map +0 -1
- package/dist/api/routes/context.d.ts +0 -57
- package/dist/api/routes/context.d.ts.map +0 -1
- package/dist/api/routes/context.js +0 -1788
- package/dist/api/routes/context.js.map +0 -1
- package/dist/api/routes/dashboard.d.ts +0 -29
- package/dist/api/routes/dashboard.d.ts.map +0 -1
- package/dist/api/routes/dashboard.js +0 -2160
- package/dist/api/routes/dashboard.js.map +0 -1
- package/dist/api/routes/delegated-sync.d.ts.map +0 -1
- package/dist/api/routes/delegated-sync.js.map +0 -1
- package/dist/api/routes/delegated.d.ts.map +0 -1
- package/dist/api/routes/delegated.js.map +0 -1
- package/dist/api/routes/docs.d.ts.map +0 -1
- package/dist/api/routes/docs.js.map +0 -1
- package/dist/api/routes/entities.d.ts.map +0 -1
- package/dist/api/routes/entities.js.map +0 -1
- package/dist/api/routes/fs.d.ts.map +0 -1
- package/dist/api/routes/fs.js.map +0 -1
- package/dist/api/routes/fs.logic.d.ts.map +0 -1
- package/dist/api/routes/fs.logic.js.map +0 -1
- package/dist/api/routes/git-accounts.d.ts.map +0 -1
- package/dist/api/routes/git-accounts.js.map +0 -1
- package/dist/api/routes/git-templates.d.ts.map +0 -1
- package/dist/api/routes/git-templates.js.map +0 -1
- package/dist/api/routes/git.d.ts.map +0 -1
- package/dist/api/routes/git.js.map +0 -1
- package/dist/api/routes/github.d.ts.map +0 -1
- package/dist/api/routes/github.js.map +0 -1
- package/dist/api/routes/health.d.ts.map +0 -1
- package/dist/api/routes/health.js.map +0 -1
- package/dist/api/routes/integrations-reconcile.d.ts.map +0 -1
- package/dist/api/routes/integrations-reconcile.js.map +0 -1
- package/dist/api/routes/integrations.d.ts +0 -48
- package/dist/api/routes/integrations.d.ts.map +0 -1
- package/dist/api/routes/integrations.js +0 -1572
- package/dist/api/routes/integrations.js.map +0 -1
- package/dist/api/routes/knowledge.d.ts.map +0 -1
- package/dist/api/routes/knowledge.js.map +0 -1
- package/dist/api/routes/mail.d.ts +0 -39
- package/dist/api/routes/mail.d.ts.map +0 -1
- package/dist/api/routes/mail.js +0 -1472
- package/dist/api/routes/mail.js.map +0 -1
- package/dist/api/routes/managed-tasks.d.ts.map +0 -1
- package/dist/api/routes/managed-tasks.js.map +0 -1
- package/dist/api/routes/mcp.d.ts.map +0 -1
- package/dist/api/routes/mcp.js.map +0 -1
- package/dist/api/routes/metrics.d.ts.map +0 -1
- package/dist/api/routes/metrics.js.map +0 -1
- package/dist/api/routes/notion.d.ts.map +0 -1
- package/dist/api/routes/notion.js.map +0 -1
- package/dist/api/routes/observations.d.ts.map +0 -1
- package/dist/api/routes/observations.js.map +0 -1
- package/dist/api/routes/obsidian.d.ts.map +0 -1
- package/dist/api/routes/obsidian.js.map +0 -1
- package/dist/api/routes/profile-questions.d.ts.map +0 -1
- package/dist/api/routes/profile-questions.js.map +0 -1
- package/dist/api/routes/receipts.d.ts.map +0 -1
- package/dist/api/routes/receipts.js.map +0 -1
- package/dist/api/routes/recurring-schedules.d.ts.map +0 -1
- package/dist/api/routes/recurring-schedules.js.map +0 -1
- package/dist/api/routes/repositories.d.ts.map +0 -1
- package/dist/api/routes/repositories.js.map +0 -1
- package/dist/api/routes/setup-migrate.d.ts.map +0 -1
- package/dist/api/routes/setup-migrate.js.map +0 -1
- package/dist/api/routes/setup.d.ts.map +0 -1
- package/dist/api/routes/setup.js.map +0 -1
- package/dist/api/routes/skill-curation.d.ts.map +0 -1
- package/dist/api/routes/skill-curation.js.map +0 -1
- package/dist/api/routes/skills.d.ts.map +0 -1
- package/dist/api/routes/skills.js.map +0 -1
- package/dist/api/routes/sot-bindings.d.ts.map +0 -1
- package/dist/api/routes/sot-bindings.js.map +0 -1
- package/dist/api/routes/sse.d.ts.map +0 -1
- package/dist/api/routes/sse.js.map +0 -1
- package/dist/api/routes/system.d.ts.map +0 -1
- package/dist/api/routes/system.js.map +0 -1
- package/dist/api/routes/task-flows.d.ts.map +0 -1
- package/dist/api/routes/task-flows.js.map +0 -1
- package/dist/api/routes/travel-bookings.d.ts.map +0 -1
- package/dist/api/routes/travel-bookings.js.map +0 -1
- package/dist/api/routes/travel-time.d.ts +0 -8
- package/dist/api/routes/travel-time.d.ts.map +0 -1
- package/dist/api/routes/travel-time.js +0 -87
- package/dist/api/routes/travel-time.js.map +0 -1
- package/dist/api/routes/triggers.d.ts.map +0 -1
- package/dist/api/routes/triggers.js.map +0 -1
- package/dist/api/routes/voice.d.ts.map +0 -1
- package/dist/api/routes/voice.js.map +0 -1
- package/dist/api/routes/wiki.d.ts.map +0 -1
- package/dist/api/routes/wiki.js.map +0 -1
- package/dist/api/server.d.ts.map +0 -1
- package/dist/api/server.js.map +0 -1
- package/dist/bootstrap/adapters.d.ts.map +0 -1
- package/dist/bootstrap/adapters.js.map +0 -1
- package/dist/bootstrap/catchup.d.ts.map +0 -1
- package/dist/bootstrap/catchup.js.map +0 -1
- package/dist/bootstrap/schedule-helpers.d.ts.map +0 -1
- package/dist/bootstrap/schedule-helpers.js.map +0 -1
- package/dist/bootstrap/services.d.ts.map +0 -1
- package/dist/bootstrap/services.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/core/agent-core.d.ts.map +0 -1
- package/dist/core/agent-core.js.map +0 -1
- package/dist/core/alerts.d.ts.map +0 -1
- package/dist/core/alerts.js.map +0 -1
- package/dist/core/atomic-write.d.ts.map +0 -1
- package/dist/core/atomic-write.js.map +0 -1
- package/dist/core/backends/api-key-probe.d.ts.map +0 -1
- package/dist/core/backends/api-key-probe.js.map +0 -1
- package/dist/core/backends/auth-health-monitor.d.ts.map +0 -1
- package/dist/core/backends/auth-health-monitor.js.map +0 -1
- package/dist/core/backends/auth-recovery.d.ts.map +0 -1
- package/dist/core/backends/auth-recovery.js.map +0 -1
- package/dist/core/backends/auth-telemetry.d.ts.map +0 -1
- package/dist/core/backends/auth-telemetry.js.map +0 -1
- package/dist/core/backends/backend-router.d.ts.map +0 -1
- package/dist/core/backends/backend-router.js.map +0 -1
- package/dist/core/backends/claude-auth.d.ts.map +0 -1
- package/dist/core/backends/claude-auth.js.map +0 -1
- package/dist/core/backends/claude-code-core.d.ts.map +0 -1
- package/dist/core/backends/claude-code-core.js.map +0 -1
- package/dist/core/backends/claude-credentials-store.d.ts.map +0 -1
- package/dist/core/backends/claude-credentials-store.js.map +0 -1
- package/dist/core/backends/claude-delegated.d.ts.map +0 -1
- package/dist/core/backends/claude-delegated.js.map +0 -1
- package/dist/core/backends/claude-errors.d.ts.map +0 -1
- package/dist/core/backends/claude-errors.js.map +0 -1
- package/dist/core/backends/claude-probe.d.ts.map +0 -1
- package/dist/core/backends/claude-probe.js.map +0 -1
- package/dist/core/backends/claude-tool-collection.d.ts.map +0 -1
- package/dist/core/backends/claude-tool-collection.js.map +0 -1
- package/dist/core/backends/cli-utils.d.ts.map +0 -1
- package/dist/core/backends/cli-utils.js.map +0 -1
- package/dist/core/backends/codex-core.d.ts.map +0 -1
- package/dist/core/backends/codex-core.js.map +0 -1
- package/dist/core/backends/gemini-cli-core.d.ts.map +0 -1
- package/dist/core/backends/gemini-cli-core.js.map +0 -1
- package/dist/core/backends/idle-watchdog.d.ts.map +0 -1
- package/dist/core/backends/idle-watchdog.js.map +0 -1
- package/dist/core/backends/install-methods.d.ts.map +0 -1
- package/dist/core/backends/install-methods.js.map +0 -1
- package/dist/core/backends/model-registry.d.ts.map +0 -1
- package/dist/core/backends/model-registry.js.map +0 -1
- package/dist/core/backends/plan-presets.d.ts.map +0 -1
- package/dist/core/backends/plan-presets.js.map +0 -1
- package/dist/core/backends/price-fetcher.d.ts.map +0 -1
- package/dist/core/backends/price-fetcher.js.map +0 -1
- package/dist/core/backends/process-config-cascade.d.ts.map +0 -1
- package/dist/core/backends/process-config-cascade.js.map +0 -1
- package/dist/core/backends/prompt-utils.d.ts.map +0 -1
- package/dist/core/backends/prompt-utils.js.map +0 -1
- package/dist/core/backends/proxy-model-registry.d.ts.map +0 -1
- package/dist/core/backends/proxy-model-registry.js.map +0 -1
- package/dist/core/backends/silent-api-error-detector.d.ts.map +0 -1
- package/dist/core/backends/silent-api-error-detector.js.map +0 -1
- package/dist/core/bang-commands/commands-cost.d.ts.map +0 -1
- package/dist/core/bang-commands/commands-cost.js.map +0 -1
- package/dist/core/bang-commands/commands-help.d.ts.map +0 -1
- package/dist/core/bang-commands/commands-help.js.map +0 -1
- package/dist/core/bang-commands/commands-report.d.ts.map +0 -1
- package/dist/core/bang-commands/commands-report.js.map +0 -1
- package/dist/core/bang-commands/commands-stop-start.d.ts.map +0 -1
- package/dist/core/bang-commands/commands-stop-start.js.map +0 -1
- package/dist/core/bang-commands/commands-wiki.d.ts.map +0 -1
- package/dist/core/bang-commands/commands-wiki.js.map +0 -1
- package/dist/core/bang-commands/format-utils.d.ts.map +0 -1
- package/dist/core/bang-commands/format-utils.js.map +0 -1
- package/dist/core/bang-commands/index.d.ts.map +0 -1
- package/dist/core/bang-commands/index.js.map +0 -1
- package/dist/core/bang-commands/registry.d.ts.map +0 -1
- package/dist/core/bang-commands/registry.js.map +0 -1
- package/dist/core/bang-commands/user-commands.d.ts.map +0 -1
- package/dist/core/bang-commands/user-commands.js.map +0 -1
- package/dist/core/channel-timeline.d.ts.map +0 -1
- package/dist/core/channel-timeline.js.map +0 -1
- package/dist/core/character-block.d.ts.map +0 -1
- package/dist/core/character-block.js.map +0 -1
- package/dist/core/context/activity-sources.d.ts.map +0 -1
- package/dist/core/context/activity-sources.js.map +0 -1
- package/dist/core/context/activity-view-reconciler.d.ts.map +0 -1
- package/dist/core/context/activity-view-reconciler.js.map +0 -1
- package/dist/core/context/activity-view-runner.d.ts.map +0 -1
- package/dist/core/context/activity-view-runner.js.map +0 -1
- package/dist/core/context/default-schedules-reconciler.d.ts.map +0 -1
- package/dist/core/context/default-schedules-reconciler.js.map +0 -1
- package/dist/core/context/default-schedules-runner.d.ts.map +0 -1
- package/dist/core/context/default-schedules-runner.js.map +0 -1
- package/dist/core/context/domain-index-reconciler.d.ts.map +0 -1
- package/dist/core/context/domain-index-reconciler.js.map +0 -1
- package/dist/core/context/domain-index-runner.d.ts.map +0 -1
- package/dist/core/context/domain-index-runner.js.map +0 -1
- package/dist/core/context/entity-mirror.d.ts.map +0 -1
- package/dist/core/context/entity-mirror.js.map +0 -1
- package/dist/core/context/entity-source-rename.d.ts.map +0 -1
- package/dist/core/context/entity-source-rename.js.map +0 -1
- package/dist/core/context/index-reconciler.d.ts.map +0 -1
- package/dist/core/context/index-reconciler.js.map +0 -1
- package/dist/core/context/policy-index-reconciler.d.ts.map +0 -1
- package/dist/core/context/policy-index-reconciler.js.map +0 -1
- package/dist/core/context/policy-index-runner.d.ts.map +0 -1
- package/dist/core/context/policy-index-runner.js.map +0 -1
- package/dist/core/context/reconciler-runner.d.ts.map +0 -1
- package/dist/core/context/reconciler-runner.js.map +0 -1
- package/dist/core/context-builder.d.ts.map +0 -1
- package/dist/core/context-builder.js.map +0 -1
- package/dist/core/context-frontmatter-backfill.d.ts +0 -33
- package/dist/core/context-frontmatter-backfill.d.ts.map +0 -1
- package/dist/core/context-frontmatter-backfill.js +0 -111
- package/dist/core/context-frontmatter-backfill.js.map +0 -1
- package/dist/core/context-frontmatter.d.ts.map +0 -1
- package/dist/core/context-frontmatter.js.map +0 -1
- package/dist/core/context-health.d.ts.map +0 -1
- package/dist/core/context-health.js.map +0 -1
- package/dist/core/context-paths.d.ts.map +0 -1
- package/dist/core/context-paths.js.map +0 -1
- package/dist/core/context-staleness.d.ts.map +0 -1
- package/dist/core/context-staleness.js.map +0 -1
- package/dist/core/custom-routine-scheduler.d.ts.map +0 -1
- package/dist/core/custom-routine-scheduler.js.map +0 -1
- package/dist/core/daemon-api-cli.d.ts.map +0 -1
- package/dist/core/daemon-api-cli.js.map +0 -1
- package/dist/core/dashboard-session-cleanup.d.ts.map +0 -1
- package/dist/core/dashboard-session-cleanup.js.map +0 -1
- package/dist/core/dashboard-session-controls.d.ts.map +0 -1
- package/dist/core/dashboard-session-controls.js.map +0 -1
- package/dist/core/delegated-connector-health.d.ts.map +0 -1
- package/dist/core/delegated-connector-health.js.map +0 -1
- package/dist/core/dispatcher-date-utils.d.ts.map +0 -1
- package/dist/core/dispatcher-date-utils.js.map +0 -1
- package/dist/core/dispatcher-error-handling.d.ts.map +0 -1
- package/dist/core/dispatcher-error-handling.js.map +0 -1
- package/dist/core/dispatcher-hourly-check.d.ts.map +0 -1
- package/dist/core/dispatcher-hourly-check.js.map +0 -1
- package/dist/core/dispatcher-message-handler.d.ts.map +0 -1
- package/dist/core/dispatcher-message-handler.js.map +0 -1
- package/dist/core/dispatcher-morning-routine.d.ts.map +0 -1
- package/dist/core/dispatcher-morning-routine.js.map +0 -1
- package/dist/core/dispatcher-prompt.d.ts.map +0 -1
- package/dist/core/dispatcher-prompt.js.map +0 -1
- package/dist/core/dispatcher-repository-helpers.d.ts.map +0 -1
- package/dist/core/dispatcher-repository-helpers.js.map +0 -1
- package/dist/core/dispatcher-result-processor.d.ts.map +0 -1
- package/dist/core/dispatcher-result-processor.js.map +0 -1
- package/dist/core/dispatcher-scheduled-tasks.d.ts.map +0 -1
- package/dist/core/dispatcher-scheduled-tasks.js.map +0 -1
- package/dist/core/dispatcher-types.d.ts.map +0 -1
- package/dist/core/dispatcher-types.js.map +0 -1
- package/dist/core/dispatcher.d.ts.map +0 -1
- package/dist/core/dispatcher.js.map +0 -1
- package/dist/core/dm-freshness-metrics.d.ts.map +0 -1
- package/dist/core/dm-freshness-metrics.js.map +0 -1
- package/dist/core/docs/citation-validator.d.ts.map +0 -1
- package/dist/core/docs/citation-validator.js.map +0 -1
- package/dist/core/docs/extract-terms.d.ts.map +0 -1
- package/dist/core/docs/extract-terms.js.map +0 -1
- package/dist/core/docs/indexer.d.ts.map +0 -1
- package/dist/core/docs/indexer.js.map +0 -1
- package/dist/core/drift-effects.d.ts.map +0 -1
- package/dist/core/drift-effects.js.map +0 -1
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/event-bus.js.map +0 -1
- package/dist/core/git-project-docs.d.ts.map +0 -1
- package/dist/core/git-project-docs.js.map +0 -1
- package/dist/core/health-monitor.d.ts.map +0 -1
- package/dist/core/health-monitor.js.map +0 -1
- package/dist/core/heartbeat.d.ts.map +0 -1
- package/dist/core/heartbeat.js.map +0 -1
- package/dist/core/integration-health.d.ts.map +0 -1
- package/dist/core/integration-health.js.map +0 -1
- package/dist/core/integration-lifecycle.d.ts.map +0 -1
- package/dist/core/integration-lifecycle.js.map +0 -1
- package/dist/core/integration-main-backend.d.ts.map +0 -1
- package/dist/core/integration-main-backend.js.map +0 -1
- package/dist/core/integration-probe.d.ts.map +0 -1
- package/dist/core/integration-probe.js.map +0 -1
- package/dist/core/management-md-write-lock.d.ts.map +0 -1
- package/dist/core/management-md-write-lock.js.map +0 -1
- package/dist/core/management-md.d.ts.map +0 -1
- package/dist/core/management-md.js.map +0 -1
- package/dist/core/management-registry.d.ts.map +0 -1
- package/dist/core/management-registry.js.map +0 -1
- package/dist/core/management-telemetry.d.ts.map +0 -1
- package/dist/core/management-telemetry.js.map +0 -1
- package/dist/core/message-recorder.d.ts.map +0 -1
- package/dist/core/message-recorder.js.map +0 -1
- package/dist/core/metrics.d.ts.map +0 -1
- package/dist/core/metrics.js.map +0 -1
- package/dist/core/migration-backup.d.ts.map +0 -1
- package/dist/core/migration-backup.js.map +0 -1
- package/dist/core/output-language-policy.d.ts.map +0 -1
- package/dist/core/output-language-policy.js.map +0 -1
- package/dist/core/overview-write-lock.d.ts.map +0 -1
- package/dist/core/overview-write-lock.js.map +0 -1
- package/dist/core/path-compat.d.ts.map +0 -1
- package/dist/core/path-compat.js.map +0 -1
- package/dist/core/path-rewrite.d.ts.map +0 -1
- package/dist/core/path-rewrite.js.map +0 -1
- package/dist/core/policy-files.d.ts.map +0 -1
- package/dist/core/policy-files.js.map +0 -1
- package/dist/core/profile-questions/seed.d.ts.map +0 -1
- package/dist/core/profile-questions/seed.js.map +0 -1
- package/dist/core/profile-questions/slot-filled.d.ts.map +0 -1
- package/dist/core/profile-questions/slot-filled.js.map +0 -1
- package/dist/core/prompts.d.ts.map +0 -1
- package/dist/core/prompts.js.map +0 -1
- package/dist/core/quiet-hours-sync.d.ts.map +0 -1
- package/dist/core/quiet-hours-sync.js.map +0 -1
- package/dist/core/read-sensitive-token-manager.d.ts.map +0 -1
- package/dist/core/read-sensitive-token-manager.js.map +0 -1
- package/dist/core/recurrence.d.ts.map +0 -1
- package/dist/core/recurrence.js.map +0 -1
- package/dist/core/reinstall.d.ts.map +0 -1
- package/dist/core/reinstall.js.map +0 -1
- package/dist/core/release-assets.d.ts.map +0 -1
- package/dist/core/release-assets.js.map +0 -1
- package/dist/core/repository-management-docs.d.ts.map +0 -1
- package/dist/core/repository-management-docs.js.map +0 -1
- package/dist/core/retention.d.ts.map +0 -1
- package/dist/core/retention.js.map +0 -1
- package/dist/core/review-context.d.ts.map +0 -1
- package/dist/core/review-context.js.map +0 -1
- package/dist/core/roadmap-horizon.d.ts.map +0 -1
- package/dist/core/roadmap-horizon.js.map +0 -1
- package/dist/core/roadmap-ids.d.ts.map +0 -1
- package/dist/core/roadmap-ids.js.map +0 -1
- package/dist/core/roadmap-merge.d.ts +0 -7
- package/dist/core/roadmap-merge.d.ts.map +0 -1
- package/dist/core/roadmap-merge.js +0 -187
- package/dist/core/roadmap-merge.js.map +0 -1
- package/dist/core/roadmap-refresh-triggers.d.ts.map +0 -1
- package/dist/core/roadmap-refresh-triggers.js.map +0 -1
- package/dist/core/roadmap-truncate.d.ts.map +0 -1
- package/dist/core/roadmap-truncate.js.map +0 -1
- package/dist/core/roadmap-validate.d.ts.map +0 -1
- package/dist/core/roadmap-validate.js.map +0 -1
- package/dist/core/roadmap-write-lock.d.ts.map +0 -1
- package/dist/core/roadmap-write-lock.js.map +0 -1
- package/dist/core/routine-acquisition-plan.d.ts.map +0 -1
- package/dist/core/routine-acquisition-plan.js.map +0 -1
- package/dist/core/routine-fetch-window-retry.d.ts.map +0 -1
- package/dist/core/routine-fetch-window-retry.js.map +0 -1
- package/dist/core/routine-fetch-window-runner.d.ts.map +0 -1
- package/dist/core/routine-fetch-window-runner.js.map +0 -1
- package/dist/core/routine-windows.d.ts.map +0 -1
- package/dist/core/routine-windows.js.map +0 -1
- package/dist/core/schedule-insert-helper.d.ts.map +0 -1
- package/dist/core/schedule-insert-helper.js.map +0 -1
- package/dist/core/schedule-maintenance.d.ts.map +0 -1
- package/dist/core/schedule-maintenance.js.map +0 -1
- package/dist/core/scheduler.d.ts.map +0 -1
- package/dist/core/scheduler.js.map +0 -1
- package/dist/core/semaphore.d.ts.map +0 -1
- package/dist/core/semaphore.js.map +0 -1
- package/dist/core/session-gate.d.ts.map +0 -1
- package/dist/core/session-gate.js.map +0 -1
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/signal-detector.d.ts.map +0 -1
- package/dist/core/signal-detector.js.map +0 -1
- package/dist/core/skeleton.d.ts.map +0 -1
- package/dist/core/skeleton.js.map +0 -1
- package/dist/core/skill-curation/apply-proposal.d.ts.map +0 -1
- package/dist/core/skill-curation/apply-proposal.js.map +0 -1
- package/dist/core/skill-curation/auto-revert.d.ts.map +0 -1
- package/dist/core/skill-curation/auto-revert.js.map +0 -1
- package/dist/core/skill-curation/classify-diff.d.ts.map +0 -1
- package/dist/core/skill-curation/classify-diff.js.map +0 -1
- package/dist/core/skill-curation/declarations.d.ts.map +0 -1
- package/dist/core/skill-curation/declarations.js.map +0 -1
- package/dist/core/skill-curation/knowledge-map.d.ts.map +0 -1
- package/dist/core/skill-curation/knowledge-map.js.map +0 -1
- package/dist/core/skill-curation/orphan-overlay.d.ts.map +0 -1
- package/dist/core/skill-curation/orphan-overlay.js.map +0 -1
- package/dist/core/skill-curation/overlay-store.d.ts.map +0 -1
- package/dist/core/skill-curation/overlay-store.js.map +0 -1
- package/dist/core/skill-curation/render/convention-notes.d.ts.map +0 -1
- package/dist/core/skill-curation/render/convention-notes.js.map +0 -1
- package/dist/core/skill-curation/render/cross-references.d.ts.map +0 -1
- package/dist/core/skill-curation/render/cross-references.js.map +0 -1
- package/dist/core/skill-curation/render/frontmatter-schema.d.ts.map +0 -1
- package/dist/core/skill-curation/render/frontmatter-schema.js.map +0 -1
- package/dist/core/skill-curation/render/index.d.ts.map +0 -1
- package/dist/core/skill-curation/render/index.js.map +0 -1
- package/dist/core/skill-curation/render/knowledge-layout.d.ts.map +0 -1
- package/dist/core/skill-curation/render/knowledge-layout.js.map +0 -1
- package/dist/core/skill-curation/render/routing-table.d.ts.map +0 -1
- package/dist/core/skill-curation/render/routing-table.js.map +0 -1
- package/dist/core/skill-curation/render/search-recipes.d.ts.map +0 -1
- package/dist/core/skill-curation/render/search-recipes.js.map +0 -1
- package/dist/core/skill-curation/run-token.d.ts.map +0 -1
- package/dist/core/skill-curation/run-token.js.map +0 -1
- package/dist/core/skill-curation/signals.d.ts.map +0 -1
- package/dist/core/skill-curation/signals.js.map +0 -1
- package/dist/core/skill-curation/smoke-test.d.ts.map +0 -1
- package/dist/core/skill-curation/smoke-test.js.map +0 -1
- package/dist/core/skill-curation/splicer.d.ts.map +0 -1
- package/dist/core/skill-curation/splicer.js.map +0 -1
- package/dist/core/skill-curation/workdir.d.ts.map +0 -1
- package/dist/core/skill-curation/workdir.js.map +0 -1
- package/dist/core/skill-source-paths.d.ts.map +0 -1
- package/dist/core/skill-source-paths.js.map +0 -1
- package/dist/core/skills-compiler.d.ts.map +0 -1
- package/dist/core/skills-compiler.js.map +0 -1
- package/dist/core/skills-manifest.d.ts.map +0 -1
- package/dist/core/skills-manifest.js.map +0 -1
- package/dist/core/system-reset.d.ts.map +0 -1
- package/dist/core/system-reset.js.map +0 -1
- package/dist/core/template-store.d.ts.map +0 -1
- package/dist/core/template-store.js.map +0 -1
- package/dist/core/template-versions.d.ts.map +0 -1
- package/dist/core/template-versions.js.map +0 -1
- package/dist/core/today-agent-plan.d.ts.map +0 -1
- package/dist/core/today-agent-plan.js.map +0 -1
- package/dist/core/today-direct-writer.d.ts.map +0 -1
- package/dist/core/today-direct-writer.js.map +0 -1
- package/dist/core/today-write-lock.d.ts.map +0 -1
- package/dist/core/today-write-lock.js.map +0 -1
- package/dist/core/trigger-dispatch.d.ts.map +0 -1
- package/dist/core/trigger-dispatch.js.map +0 -1
- package/dist/core/trigger-evaluator.d.ts.map +0 -1
- package/dist/core/trigger-evaluator.js.map +0 -1
- package/dist/core/wiki/approval-queue.d.ts.map +0 -1
- package/dist/core/wiki/approval-queue.js.map +0 -1
- package/dist/core/wiki/bridge.d.ts.map +0 -1
- package/dist/core/wiki/bridge.js.map +0 -1
- package/dist/core/wiki/compile-lock.d.ts.map +0 -1
- package/dist/core/wiki/compile-lock.js.map +0 -1
- package/dist/core/wiki/compile-preview.d.ts.map +0 -1
- package/dist/core/wiki/compile-preview.js.map +0 -1
- package/dist/core/wiki/cost-estimate.d.ts.map +0 -1
- package/dist/core/wiki/cost-estimate.js.map +0 -1
- package/dist/core/wiki/dispatcher.d.ts.map +0 -1
- package/dist/core/wiki/dispatcher.js.map +0 -1
- package/dist/core/wiki/git-precompile.d.ts.map +0 -1
- package/dist/core/wiki/git-precompile.js.map +0 -1
- package/dist/core/wiki/import-migrate.d.ts.map +0 -1
- package/dist/core/wiki/import-migrate.js.map +0 -1
- package/dist/core/wiki/import-probe.d.ts.map +0 -1
- package/dist/core/wiki/import-probe.js.map +0 -1
- package/dist/core/wiki/index-cache.d.ts.map +0 -1
- package/dist/core/wiki/index-cache.js.map +0 -1
- package/dist/core/wiki/multi-url-dispatch.d.ts.map +0 -1
- package/dist/core/wiki/multi-url-dispatch.js.map +0 -1
- package/dist/core/wiki/wiki-fts.d.ts.map +0 -1
- package/dist/core/wiki/wiki-fts.js.map +0 -1
- package/dist/core/wiki/workspaces.d.ts.map +0 -1
- package/dist/core/wiki/workspaces.js.map +0 -1
- package/dist/core/wiki/write-strategy.d.ts.map +0 -1
- package/dist/core/wiki/write-strategy.js.map +0 -1
- package/dist/core/workdir.d.ts.map +0 -1
- package/dist/core/workdir.js.map +0 -1
- package/dist/db/automation-triggers.d.ts.map +0 -1
- package/dist/db/automation-triggers.js.map +0 -1
- package/dist/db/client.d.ts.map +0 -1
- package/dist/db/client.js.map +0 -1
- package/dist/db/entities-store.d.ts.map +0 -1
- package/dist/db/entities-store.js.map +0 -1
- package/dist/db/hourly-check-signals.d.ts.map +0 -1
- package/dist/db/hourly-check-signals.js.map +0 -1
- package/dist/db/integration-probe-store.d.ts.map +0 -1
- package/dist/db/integration-probe-store.js.map +0 -1
- package/dist/db/integrations-store.d.ts.map +0 -1
- package/dist/db/integrations-store.js.map +0 -1
- package/dist/db/managed-tasks-store.d.ts.map +0 -1
- package/dist/db/managed-tasks-store.js.map +0 -1
- package/dist/db/management-parse-failures-store.d.ts.map +0 -1
- package/dist/db/management-parse-failures-store.js.map +0 -1
- package/dist/db/observations.d.ts.map +0 -1
- package/dist/db/observations.js.map +0 -1
- package/dist/db/recurring-schedules.d.ts.map +0 -1
- package/dist/db/recurring-schedules.js.map +0 -1
- package/dist/db/repositories-store.d.ts.map +0 -1
- package/dist/db/repositories-store.js.map +0 -1
- package/dist/db/runtime-state.d.ts.map +0 -1
- package/dist/db/runtime-state.js.map +0 -1
- package/dist/db/schema.d.ts.map +0 -1
- package/dist/db/schema.js.map +0 -1
- package/dist/db/sot-bindings-store.d.ts.map +0 -1
- package/dist/db/sot-bindings-store.js.map +0 -1
- package/dist/db/test-schemas.d.ts +0 -23
- package/dist/db/test-schemas.d.ts.map +0 -1
- package/dist/db/test-schemas.js +0 -111
- package/dist/db/test-schemas.js.map +0 -1
- package/dist/db/voice-transcripts-store.d.ts.map +0 -1
- package/dist/db/voice-transcripts-store.js.map +0 -1
- package/dist/db/wiki-store.d.ts.map +0 -1
- package/dist/db/wiki-store.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/log-buffer.d.ts.map +0 -1
- package/dist/log-buffer.js.map +0 -1
- package/dist/logging.d.ts.map +0 -1
- package/dist/logging.js.map +0 -1
- package/dist/management-rules.d.ts.map +0 -1
- package/dist/management-rules.js.map +0 -1
- package/dist/messaging/constants.d.ts.map +0 -1
- package/dist/messaging/constants.js.map +0 -1
- package/dist/messaging/magic-phrase.d.ts.map +0 -1
- package/dist/messaging/magic-phrase.js.map +0 -1
- package/dist/messaging/owner-channels.d.ts.map +0 -1
- package/dist/messaging/owner-channels.js.map +0 -1
- package/dist/messaging/setup-welcome-dm.d.ts.map +0 -1
- package/dist/messaging/setup-welcome-dm.js.map +0 -1
- package/dist/messaging/url-extract.d.ts.map +0 -1
- package/dist/messaging/url-extract.js.map +0 -1
- package/dist/observers/calendar-poller.d.ts.map +0 -1
- package/dist/observers/calendar-poller.js.map +0 -1
- package/dist/observers/context-index-reconciler-observer.d.ts.map +0 -1
- package/dist/observers/context-index-reconciler-observer.js.map +0 -1
- package/dist/observers/delegated-probe-observer.d.ts.map +0 -1
- package/dist/observers/delegated-probe-observer.js.map +0 -1
- package/dist/observers/delegated-sync-worker.d.ts.map +0 -1
- package/dist/observers/delegated-sync-worker.js.map +0 -1
- package/dist/observers/entity-mirror-observer.d.ts.map +0 -1
- package/dist/observers/entity-mirror-observer.js.map +0 -1
- package/dist/observers/git-delegated-cron.d.ts.map +0 -1
- package/dist/observers/git-delegated-cron.js.map +0 -1
- package/dist/observers/git-event-classifier.d.ts.map +0 -1
- package/dist/observers/git-event-classifier.js.map +0 -1
- package/dist/observers/git-watcher.d.ts.map +0 -1
- package/dist/observers/git-watcher.js.map +0 -1
- package/dist/observers/github-poller-classifier.d.ts.map +0 -1
- package/dist/observers/github-poller-classifier.js.map +0 -1
- package/dist/observers/github-poller.d.ts.map +0 -1
- package/dist/observers/github-poller.js.map +0 -1
- package/dist/observers/imminent-event-scheduler.d.ts.map +0 -1
- package/dist/observers/imminent-event-scheduler.js.map +0 -1
- package/dist/observers/mail-poller.d.ts.map +0 -1
- package/dist/observers/mail-poller.js.map +0 -1
- package/dist/observers/mail-reconciliation.d.ts.map +0 -1
- package/dist/observers/mail-reconciliation.js.map +0 -1
- package/dist/observers/manager.d.ts.map +0 -1
- package/dist/observers/manager.js.map +0 -1
- package/dist/observers/notion-poller.d.ts.map +0 -1
- package/dist/observers/notion-poller.js.map +0 -1
- package/dist/observers/observation-summarizer/index.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/index.js.map +0 -1
- package/dist/observers/observation-summarizer/pre-filter.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/pre-filter.js.map +0 -1
- package/dist/observers/observation-summarizer/response-parser.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/response-parser.js.map +0 -1
- package/dist/observers/observation-summarizer/summarizer-client.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/summarizer-client.js.map +0 -1
- package/dist/observers/observation-summarizer/summarizer-prompts.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/summarizer-prompts.js.map +0 -1
- package/dist/observers/observation-summarizer/worker.d.ts.map +0 -1
- package/dist/observers/observation-summarizer/worker.js.map +0 -1
- package/dist/observers/obsidian-watcher.d.ts.map +0 -1
- package/dist/observers/obsidian-watcher.js.map +0 -1
- package/dist/observers/primary-vault-watcher.d.ts.map +0 -1
- package/dist/observers/primary-vault-watcher.js.map +0 -1
- package/dist/observers/repository-management-cron.d.ts.map +0 -1
- package/dist/observers/repository-management-cron.js.map +0 -1
- package/dist/observers/skill-curation-walker.d.ts.map +0 -1
- package/dist/observers/skill-curation-walker.js.map +0 -1
- package/dist/safety/absolute-block-audit.d.ts.map +0 -1
- package/dist/safety/absolute-block-audit.js.map +0 -1
- package/dist/safety/agent-write-tracker.d.ts.map +0 -1
- package/dist/safety/agent-write-tracker.js.map +0 -1
- package/dist/safety/always-disallowed.d.ts.map +0 -1
- package/dist/safety/always-disallowed.js.map +0 -1
- package/dist/safety/audit.d.ts.map +0 -1
- package/dist/safety/audit.js.map +0 -1
- package/dist/safety/integration-write-tracker.d.ts.map +0 -1
- package/dist/safety/integration-write-tracker.js.map +0 -1
- package/dist/safety/risk-classifier.d.ts.map +0 -1
- package/dist/safety/risk-classifier.js.map +0 -1
- package/dist/scheduler/hourly-check-gate.d.ts.map +0 -1
- package/dist/scheduler/hourly-check-gate.js.map +0 -1
- package/dist/secrets/backend-api-key-env.d.ts.map +0 -1
- package/dist/secrets/backend-api-key-env.js.map +0 -1
- package/dist/secrets/codex-home-materializer.d.ts.map +0 -1
- package/dist/secrets/codex-home-materializer.js.map +0 -1
- package/dist/secrets/encrypted-blob-store.d.ts.map +0 -1
- package/dist/secrets/encrypted-blob-store.js.map +0 -1
- package/dist/secrets/platform-secret-store.d.ts.map +0 -1
- package/dist/secrets/platform-secret-store.js.map +0 -1
- package/dist/secrets/redaction.d.ts.map +0 -1
- package/dist/secrets/redaction.js.map +0 -1
- package/dist/secrets/secret-broker.d.ts.map +0 -1
- package/dist/secrets/secret-broker.js.map +0 -1
- package/dist/secrets/secret-names.d.ts.map +0 -1
- package/dist/secrets/secret-names.js.map +0 -1
- package/dist/secrets/secret-store.d.ts.map +0 -1
- package/dist/secrets/secret-store.js.map +0 -1
- package/dist/secrets/types.d.ts.map +0 -1
- package/dist/secrets/types.js.map +0 -1
- package/dist/services/apple-calendar/caldav-client.d.ts.map +0 -1
- package/dist/services/apple-calendar/caldav-client.js.map +0 -1
- package/dist/services/apple-calendar/caldav-codec.d.ts.map +0 -1
- package/dist/services/apple-calendar/caldav-codec.js.map +0 -1
- package/dist/services/apple-calendar/index.d.ts.map +0 -1
- package/dist/services/apple-calendar/index.js.map +0 -1
- package/dist/services/apple-calendar/service.d.ts.map +0 -1
- package/dist/services/apple-calendar/service.js.map +0 -1
- package/dist/services/apple-calendar/types.d.ts.map +0 -1
- package/dist/services/apple-calendar/types.js.map +0 -1
- package/dist/services/attachments/hardlink.d.ts.map +0 -1
- package/dist/services/attachments/hardlink.js.map +0 -1
- package/dist/services/attachments/sanitize.d.ts.map +0 -1
- package/dist/services/attachments/sanitize.js.map +0 -1
- package/dist/services/attachments/store.d.ts.map +0 -1
- package/dist/services/attachments/store.js.map +0 -1
- package/dist/services/calendar/outlook/graph-calendar-client.d.ts.map +0 -1
- package/dist/services/calendar/outlook/graph-calendar-client.js.map +0 -1
- package/dist/services/calendar.d.ts.map +0 -1
- package/dist/services/calendar.js.map +0 -1
- package/dist/services/delegated-backend-invoker.d.ts.map +0 -1
- package/dist/services/delegated-backend-invoker.js.map +0 -1
- package/dist/services/delegated-invoker-audit.d.ts.map +0 -1
- package/dist/services/delegated-invoker-audit.js.map +0 -1
- package/dist/services/delegated-invoker-cache-hits.d.ts.map +0 -1
- package/dist/services/delegated-invoker-cache-hits.js.map +0 -1
- package/dist/services/delegated-invoker-janitors.d.ts.map +0 -1
- package/dist/services/delegated-invoker-janitors.js.map +0 -1
- package/dist/services/delegated-invoker-utils.d.ts.map +0 -1
- package/dist/services/delegated-invoker-utils.js.map +0 -1
- package/dist/services/delegated-proxy-config.d.ts.map +0 -1
- package/dist/services/delegated-proxy-config.js.map +0 -1
- package/dist/services/delegated-task-result-cache.d.ts.map +0 -1
- package/dist/services/delegated-task-result-cache.js.map +0 -1
- package/dist/services/delegated-task-runtime.d.ts.map +0 -1
- package/dist/services/delegated-task-runtime.js.map +0 -1
- package/dist/services/delegated-task-session-pool.d.ts.map +0 -1
- package/dist/services/delegated-task-session-pool.js.map +0 -1
- package/dist/services/delegated-tool-runtime.d.ts.map +0 -1
- package/dist/services/delegated-tool-runtime.js.map +0 -1
- package/dist/services/fts5.d.ts.map +0 -1
- package/dist/services/fts5.js.map +0 -1
- package/dist/services/git-account-registry.d.ts.map +0 -1
- package/dist/services/git-account-registry.js.map +0 -1
- package/dist/services/github.d.ts.map +0 -1
- package/dist/services/github.js.map +0 -1
- package/dist/services/gmail-classifier.d.ts.map +0 -1
- package/dist/services/gmail-classifier.js.map +0 -1
- package/dist/services/gmail.d.ts.map +0 -1
- package/dist/services/gmail.js.map +0 -1
- package/dist/services/google-auth.d.ts.map +0 -1
- package/dist/services/google-auth.js.map +0 -1
- package/dist/services/google-maps.d.ts +0 -35
- package/dist/services/google-maps.d.ts.map +0 -1
- package/dist/services/google-maps.js +0 -82
- package/dist/services/google-maps.js.map +0 -1
- package/dist/services/integrations/extract-write-item-id.d.ts.map +0 -1
- package/dist/services/integrations/extract-write-item-id.js.map +0 -1
- package/dist/services/integrations/reconcile.d.ts.map +0 -1
- package/dist/services/integrations/reconcile.js.map +0 -1
- package/dist/services/integrations/snapshot-partitions.d.ts.map +0 -1
- package/dist/services/integrations/snapshot-partitions.js.map +0 -1
- package/dist/services/journal/render.d.ts.map +0 -1
- package/dist/services/journal/render.js.map +0 -1
- package/dist/services/journal/writer.d.ts.map +0 -1
- package/dist/services/journal/writer.js.map +0 -1
- package/dist/services/mail/account-registry.d.ts.map +0 -1
- package/dist/services/mail/account-registry.js.map +0 -1
- package/dist/services/mail/gmail/auth-failure-classifier.d.ts.map +0 -1
- package/dist/services/mail/gmail/auth-failure-classifier.js.map +0 -1
- package/dist/services/mail/gmail/gmail-provider.d.ts.map +0 -1
- package/dist/services/mail/gmail/gmail-provider.js.map +0 -1
- package/dist/services/mail/gmail/legacy-row.d.ts.map +0 -1
- package/dist/services/mail/gmail/legacy-row.js.map +0 -1
- package/dist/services/mail/gmail/poll-cursor.d.ts.map +0 -1
- package/dist/services/mail/gmail/poll-cursor.js.map +0 -1
- package/dist/services/mail/html-to-plaintext.d.ts.map +0 -1
- package/dist/services/mail/html-to-plaintext.js.map +0 -1
- package/dist/services/mail/imap/app-password.d.ts.map +0 -1
- package/dist/services/mail/imap/app-password.js.map +0 -1
- package/dist/services/mail/imap/auth-failure-classifier.d.ts.map +0 -1
- package/dist/services/mail/imap/auth-failure-classifier.js.map +0 -1
- package/dist/services/mail/imap/capabilities.d.ts.map +0 -1
- package/dist/services/mail/imap/capabilities.js.map +0 -1
- package/dist/services/mail/imap/client.d.ts.map +0 -1
- package/dist/services/mail/imap/client.js.map +0 -1
- package/dist/services/mail/imap/cursor.d.ts.map +0 -1
- package/dist/services/mail/imap/cursor.js.map +0 -1
- package/dist/services/mail/imap/folder-resolver.d.ts.map +0 -1
- package/dist/services/mail/imap/folder-resolver.js.map +0 -1
- package/dist/services/mail/imap/icloud-provider.d.ts.map +0 -1
- package/dist/services/mail/imap/icloud-provider.js.map +0 -1
- package/dist/services/mail/imap/imap-provider-base.d.ts.map +0 -1
- package/dist/services/mail/imap/imap-provider-base.js.map +0 -1
- package/dist/services/mail/imap/query-translator.d.ts.map +0 -1
- package/dist/services/mail/imap/query-translator.js.map +0 -1
- package/dist/services/mail/imap/reconcile-planner.d.ts.map +0 -1
- package/dist/services/mail/imap/reconcile-planner.js.map +0 -1
- package/dist/services/mail/imap/reply-mime.d.ts.map +0 -1
- package/dist/services/mail/imap/reply-mime.js.map +0 -1
- package/dist/services/mail/imap/yahoo-provider.d.ts.map +0 -1
- package/dist/services/mail/imap/yahoo-provider.js.map +0 -1
- package/dist/services/mail/mail-search.d.ts.map +0 -1
- package/dist/services/mail/mail-search.js.map +0 -1
- package/dist/services/mail/outlook/auth-failure-classifier.d.ts.map +0 -1
- package/dist/services/mail/outlook/auth-failure-classifier.js.map +0 -1
- package/dist/services/mail/outlook/client-config.d.ts.map +0 -1
- package/dist/services/mail/outlook/client-config.js.map +0 -1
- package/dist/services/mail/outlook/delta-cursor.d.ts.map +0 -1
- package/dist/services/mail/outlook/delta-cursor.js.map +0 -1
- package/dist/services/mail/outlook/graph-client.d.ts.map +0 -1
- package/dist/services/mail/outlook/graph-client.js.map +0 -1
- package/dist/services/mail/outlook/msal-app-factory.d.ts.map +0 -1
- package/dist/services/mail/outlook/msal-app-factory.js.map +0 -1
- package/dist/services/mail/outlook/msal-cache-plugin.d.ts.map +0 -1
- package/dist/services/mail/outlook/msal-cache-plugin.js.map +0 -1
- package/dist/services/mail/outlook/oauth-device-code.d.ts.map +0 -1
- package/dist/services/mail/outlook/oauth-device-code.js.map +0 -1
- package/dist/services/mail/outlook/oauth-loopback.d.ts.map +0 -1
- package/dist/services/mail/outlook/oauth-loopback.js.map +0 -1
- package/dist/services/mail/outlook/outlook-provider.d.ts.map +0 -1
- package/dist/services/mail/outlook/outlook-provider.js.map +0 -1
- package/dist/services/mail/outlook/query-translator.d.ts.map +0 -1
- package/dist/services/mail/outlook/query-translator.js.map +0 -1
- package/dist/services/mail/provider.d.ts.map +0 -1
- package/dist/services/mail/provider.js.map +0 -1
- package/dist/services/mail/query-utils.d.ts.map +0 -1
- package/dist/services/mail/query-utils.js.map +0 -1
- package/dist/services/mail-classifier.d.ts.map +0 -1
- package/dist/services/mail-classifier.js.map +0 -1
- package/dist/services/mail-ingestion.d.ts.map +0 -1
- package/dist/services/mail-ingestion.js.map +0 -1
- package/dist/services/mcp/auto-probe.d.ts.map +0 -1
- package/dist/services/mcp/auto-probe.js.map +0 -1
- package/dist/services/mcp/generators/claude.d.ts.map +0 -1
- package/dist/services/mcp/generators/claude.js.map +0 -1
- package/dist/services/mcp/generators/codex.d.ts.map +0 -1
- package/dist/services/mcp/generators/codex.js.map +0 -1
- package/dist/services/mcp/generators/gemini.d.ts.map +0 -1
- package/dist/services/mcp/generators/gemini.js.map +0 -1
- package/dist/services/mcp/generators/index.d.ts.map +0 -1
- package/dist/services/mcp/generators/index.js.map +0 -1
- package/dist/services/mcp/generators/types.d.ts.map +0 -1
- package/dist/services/mcp/generators/types.js.map +0 -1
- package/dist/services/mcp/probe.d.ts.map +0 -1
- package/dist/services/mcp/probe.js.map +0 -1
- package/dist/services/mcp/registry.d.ts.map +0 -1
- package/dist/services/mcp/registry.js.map +0 -1
- package/dist/services/mcp/risk.d.ts.map +0 -1
- package/dist/services/mcp/risk.js.map +0 -1
- package/dist/services/mcp/session-materializer.d.ts.map +0 -1
- package/dist/services/mcp/session-materializer.js.map +0 -1
- package/dist/services/mcp/tool-audit.d.ts.map +0 -1
- package/dist/services/mcp/tool-audit.js.map +0 -1
- package/dist/services/mcp/types.d.ts.map +0 -1
- package/dist/services/mcp/types.js.map +0 -1
- package/dist/services/notion.d.ts.map +0 -1
- package/dist/services/notion.js.map +0 -1
- package/dist/services/obsidian.d.ts.map +0 -1
- package/dist/services/obsidian.js.map +0 -1
- package/dist/services/service-registry.d.ts.map +0 -1
- package/dist/services/service-registry.js.map +0 -1
- package/dist/services/voice/transcriber-impl.d.ts.map +0 -1
- package/dist/services/voice/transcriber-impl.js.map +0 -1
- package/dist/services/voice/transcriber.d.ts.map +0 -1
- package/dist/services/voice/transcriber.js.map +0 -1
- package/dist/settings/runtime-settings.d.ts.map +0 -1
- package/dist/settings/runtime-settings.js.map +0 -1
- package/dist/settings/settings-store.d.ts.map +0 -1
- package/dist/settings/settings-store.js.map +0 -1
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { existsSync
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
-
import { AGENT_ROLE_DESCRIPTOR, APP_NAME, formatAgentOutboundLabel,
|
|
4
|
+
import { AGENT_ROLE_DESCRIPTOR, APP_NAME, formatAgentOutboundLabel, isRoutineEvent, isMessageEvent, isScheduledDmEvent, isScheduledEvent, normalizeAgentDisplayName, nowInTimezone, getAgentDayDateStr, } from "@aitne/shared";
|
|
5
5
|
import { getContextDir } from "../config.js";
|
|
6
6
|
import { getDegradedMode } from "../db/runtime-state.js";
|
|
7
7
|
import { readIntegrations } from "../db/integrations-store.js";
|
|
8
8
|
import { CONTEXT_RELATIVE_PATHS } from "./context-paths.js";
|
|
9
|
+
import { getInjectionPolicy } from "./injection-policy.js";
|
|
10
|
+
import { POLICY_FILE_MAX_BYTES } from "./policy-files.js";
|
|
9
11
|
import { renderOutputLanguagePolicyBlock } from "./output-language-policy.js";
|
|
10
|
-
import {
|
|
11
|
-
import { getProactiveForwardType, isProactiveForwardMetadata, metadataDispatchIds, parseMessageMetadata, } from "./channel-timeline.js";
|
|
12
|
+
import { getPreviousWeekIsoKey, loadPreviousWeekDigest, renderPreviousWeekBlock, } from "./previous-week-digest.js";
|
|
12
13
|
import { createLogger } from "../logging.js";
|
|
13
14
|
import { truncateRoadmap } from "./roadmap-truncate.js";
|
|
14
15
|
import { readDefaultWikiWorkspace, readWikiWorkspaceByName, } from "./wiki/workspaces.js";
|
|
16
|
+
import { renderCalendarBlock } from "./context-builder-calendar.js";
|
|
17
|
+
import { getConversationHistoryForEvent, renderOwnerDmConversationHistory, renderRecentDmActivityBlock, renderRecentDmConversationLog, renderRecentOtherSurfaceBlock, renderResumeCatchupContext, } from "./context-builder-conversation.js";
|
|
18
|
+
import { renderActiveProjectsSection } from "./context-builder-projects.js";
|
|
19
|
+
import { buildAgentDayDmContext, buildYesterdayContext, truncateAgentLog, } from "./context-builder-yesterday.js";
|
|
15
20
|
const logger = createLogger("context-builder");
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
21
|
+
function resolveAlwaysInjectionPolicy(event) {
|
|
22
|
+
const policy = getInjectionPolicy(event.type);
|
|
23
|
+
return {
|
|
24
|
+
injectUserProfile: policy.alwaysBlocks.has("user"),
|
|
25
|
+
injectManagementRules: policy.alwaysBlocks.has("management_rules"),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
19
28
|
export class ContextBuilder {
|
|
20
29
|
config;
|
|
21
30
|
db;
|
|
@@ -39,7 +48,20 @@ export class ContextBuilder {
|
|
|
39
48
|
}
|
|
40
49
|
return getContextDir(this.config);
|
|
41
50
|
}
|
|
42
|
-
async build(event) {
|
|
51
|
+
async build(event, opts = {}) {
|
|
52
|
+
// docs/design/appendices/fetch-window-cost-reduction.md §5 (Phase 2) — the pre-pass
|
|
53
|
+
// fetcher session reads no context MD files (no `<user>` / `<today>` /
|
|
54
|
+
// `<roadmap>` etc.) and writes no context paths. Its entire job is
|
|
55
|
+
// "iterate <acquisition-plan>, call the bound MCP, POST to
|
|
56
|
+
// /api/observations, emit one JSON line, exit." Every always-injected
|
|
57
|
+
// block other than `<event_correlation_id>` + `<integration_modes>` +
|
|
58
|
+
// `<acquisition-plan>` is causally unrelated to that work, so the slim
|
|
59
|
+
// builder bypasses them — saves ~10 K input tokens per session and the
|
|
60
|
+
// backend-neutral surface lands the same saving on Claude / Codex /
|
|
61
|
+
// Gemini / OpenCode (§5.5).
|
|
62
|
+
if (isRoutineEvent(event) && event.routine === "fetch_window") {
|
|
63
|
+
return this.buildFetchWindowContext(event);
|
|
64
|
+
}
|
|
43
65
|
const sections = [];
|
|
44
66
|
const degradedState = getDegradedMode(this.db);
|
|
45
67
|
if (degradedState) {
|
|
@@ -53,10 +75,20 @@ export class ContextBuilder {
|
|
|
53
75
|
"</management_mode_degraded>",
|
|
54
76
|
].join("\n"));
|
|
55
77
|
}
|
|
56
|
-
//
|
|
78
|
+
// Per-event injection policy for the two heavy "always-injected"
|
|
79
|
+
// blocks (`<user>`, `<management_rules>`). `<today>` and the
|
|
80
|
+
// small metadata blocks (`<agent_identity>`, `<current_time>`, …)
|
|
81
|
+
// are unconditionally injected on the wide path. See
|
|
82
|
+
// `resolveAlwaysInjectionPolicy` for the opt-out table and the
|
|
83
|
+
// rationale per event-type.
|
|
84
|
+
const injectionPolicy = resolveAlwaysInjectionPolicy(event);
|
|
57
85
|
const [userMd, rulesMd, todayMd] = await Promise.all([
|
|
58
|
-
|
|
59
|
-
|
|
86
|
+
injectionPolicy.injectUserProfile
|
|
87
|
+
? this.readFile(CONTEXT_RELATIVE_PATHS.user.profile)
|
|
88
|
+
: Promise.resolve(null),
|
|
89
|
+
injectionPolicy.injectManagementRules
|
|
90
|
+
? this.readFile(CONTEXT_RELATIVE_PATHS.rules.management)
|
|
91
|
+
: Promise.resolve(null),
|
|
60
92
|
this.readFile(CONTEXT_RELATIVE_PATHS.today),
|
|
61
93
|
]);
|
|
62
94
|
// Capture the read time as the authoritative "as of when did this
|
|
@@ -67,8 +99,33 @@ export class ContextBuilder {
|
|
|
67
99
|
const todayReadAt = todayMd ? new Date().toISOString() : null;
|
|
68
100
|
if (userMd)
|
|
69
101
|
sections.push(`<user>\n${userMd}\n</user>`);
|
|
70
|
-
|
|
71
|
-
|
|
102
|
+
// Authoritative injection of `policies/management.md`. Task-flows
|
|
103
|
+
// (`routine.morning_routine.md`, `setup.update.md`, …) reference
|
|
104
|
+
// `<management_rules>` directly, so the XML form is the contract
|
|
105
|
+
// surface. The policy-files registry (`policy-files.ts`)
|
|
106
|
+
// intentionally does NOT re-emit this file — re-adding it there
|
|
107
|
+
// would duplicate the SoT-bindings text in every session prompt.
|
|
108
|
+
//
|
|
109
|
+
// Size guard: design 21 §0.2 / NFR-1b requires a per-file cap on
|
|
110
|
+
// management.md so a runaway hand-edit or reconciler bug cannot
|
|
111
|
+
// blow up the prompt. Mirrors `POLICY_FILE_MAX_BYTES` from
|
|
112
|
+
// policy-files.ts (re-imported so a future cap bump stays
|
|
113
|
+
// single-source-of-change). Oversize → skip-with-warn, matching
|
|
114
|
+
// the policy-files behaviour the registry entry previously
|
|
115
|
+
// provided.
|
|
116
|
+
if (rulesMd) {
|
|
117
|
+
const rulesBytes = Buffer.byteLength(rulesMd, "utf-8");
|
|
118
|
+
if (rulesBytes > POLICY_FILE_MAX_BYTES) {
|
|
119
|
+
logger.warn({
|
|
120
|
+
path: CONTEXT_RELATIVE_PATHS.rules.management,
|
|
121
|
+
size: rulesBytes,
|
|
122
|
+
cap: POLICY_FILE_MAX_BYTES,
|
|
123
|
+
}, "policies/management.md exceeds per-file cap — skipped from <management_rules>");
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
sections.push(`<management_rules>\n${rulesMd}\n</management_rules>`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
72
129
|
if (todayMd) {
|
|
73
130
|
// Truncate ## Agent Log to last N entries for non-evening sessions.
|
|
74
131
|
// Evening review needs the full log to assess the day.
|
|
@@ -146,7 +203,7 @@ export class ContextBuilder {
|
|
|
146
203
|
typeof event.data.gateDecision.block === "string") {
|
|
147
204
|
sections.push(event.data.gateDecision.block);
|
|
148
205
|
}
|
|
149
|
-
//
|
|
206
|
+
// docs/design/appendices/routine-data-acquisition.md §6.4 — the pre-pass fetcher
|
|
150
207
|
// (`routine.fetch_window`) receives an `<acquisition-plan>` block
|
|
151
208
|
// assembled by the dispatcher before this session is spawned. The
|
|
152
209
|
// block carries one `<fetch>` element per (integration × mode ×
|
|
@@ -157,7 +214,7 @@ export class ContextBuilder {
|
|
|
157
214
|
if (typeof event.data?.acquisitionPlanBlock === "string") {
|
|
158
215
|
sections.push(event.data.acquisitionPlanBlock);
|
|
159
216
|
}
|
|
160
|
-
//
|
|
217
|
+
// docs/design/appendices/routine-data-acquisition.md §6.4 / Phase 4 D1 — the parent
|
|
161
218
|
// routine session receives a `<fetch_report>` block summarising the
|
|
162
219
|
// pre-pass run that immediately preceded it. The block carries the
|
|
163
220
|
// JSON return shape (`fetched`/`posted`/`duplicates`/`errors`) so
|
|
@@ -167,6 +224,21 @@ export class ContextBuilder {
|
|
|
167
224
|
if (typeof event.data?.fetchReportBlock === "string") {
|
|
168
225
|
sections.push(event.data.fetchReportBlock);
|
|
169
226
|
}
|
|
227
|
+
// morning-routine-optimization.md Phase 5 — daemon-prepared blocks
|
|
228
|
+
// injected verbatim by `MorningRoutinePipelineOrchestrator` before
|
|
229
|
+
// it spawns the stage sessions. `<handoff_parsed>` goes to Stage A
|
|
230
|
+
// (today.md synthesis) so Step 1's prose parse becomes a structured
|
|
231
|
+
// read; `<journal_skeleton>` goes to Stage B (daily journal
|
|
232
|
+
// author) so the skeleton-owned frontmatter + scratch facts are
|
|
233
|
+
// available without re-aggregating from SQLite. Both are fail-soft
|
|
234
|
+
// — when the orchestrator omits the block (parse failure for
|
|
235
|
+
// handoff; non-Stage-B event for skeleton), no string is pushed.
|
|
236
|
+
if (typeof event.data?.handoffParsedBlock === "string") {
|
|
237
|
+
sections.push(event.data.handoffParsedBlock);
|
|
238
|
+
}
|
|
239
|
+
if (typeof event.data?.journalSkeletonBlock === "string") {
|
|
240
|
+
sections.push(event.data.journalSkeletonBlock);
|
|
241
|
+
}
|
|
170
242
|
// The <obsidian_vault_path> prompt fragment always points at the EXTERNAL
|
|
171
243
|
// Obsidian vault (CLI skill target), never the agent's primary vault.
|
|
172
244
|
// Kept verbatim for skill compatibility even after the field rename.
|
|
@@ -194,20 +266,7 @@ export class ContextBuilder {
|
|
|
194
266
|
// keys we emit `<key>_native_backend="<backend>"` so the native variants
|
|
195
267
|
// can route per integration without reading `~/.personal-agent/integrations.md`
|
|
196
268
|
// themselves (DELEGATED-MODE-V2-DESIGN.md §5.4 + INTEGRATION_NATIVE_MODE_DESIGN.md §8.2).
|
|
197
|
-
|
|
198
|
-
const integrationAttrs = Object.entries(integrationsSnapshot)
|
|
199
|
-
.flatMap(([key, state]) => {
|
|
200
|
-
const attrs = [`${key}="${state.mode}"`];
|
|
201
|
-
if (state.mode === "delegated" && state.delegatedBackend) {
|
|
202
|
-
attrs.push(`${key}_delegated_to="${state.delegatedBackend}"`);
|
|
203
|
-
}
|
|
204
|
-
if (state.mode === "native" && state.nativeBackend) {
|
|
205
|
-
attrs.push(`${key}_native_backend="${state.nativeBackend}"`);
|
|
206
|
-
}
|
|
207
|
-
return attrs;
|
|
208
|
-
})
|
|
209
|
-
.join(" ");
|
|
210
|
-
sections.push(`<integration_modes ${integrationAttrs} />`);
|
|
269
|
+
sections.push(this.buildIntegrationModesBlock());
|
|
211
270
|
// Routine events: additional context
|
|
212
271
|
if (isRoutineEvent(event)) {
|
|
213
272
|
// Silent-by-default protocol: applies uniformly to every routine
|
|
@@ -232,10 +291,10 @@ export class ContextBuilder {
|
|
|
232
291
|
// yesterday.md is created by Dispatcher.rotateDayFiles() before this runs.
|
|
233
292
|
// It contains the previous day's today.md (with ## Handoff section).
|
|
234
293
|
const [yesterdayMd, roadmapMd, activeProjects, yesterdaySqlite] = await Promise.all([
|
|
235
|
-
this.readFile(
|
|
236
|
-
this.readFile(
|
|
237
|
-
this.
|
|
238
|
-
this.
|
|
294
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.yesterday),
|
|
295
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.roadmap),
|
|
296
|
+
renderActiveProjectsSection(this.readableContextDir),
|
|
297
|
+
buildYesterdayContext({ db: this.db, config: this.config }),
|
|
239
298
|
]);
|
|
240
299
|
if (yesterdayMd)
|
|
241
300
|
sections.push(`<yesterday>\n${yesterdayMd}\n</yesterday>`);
|
|
@@ -244,8 +303,37 @@ export class ContextBuilder {
|
|
|
244
303
|
sections.push(`<yesterday_dm_conversation_log>\n${yesterdaySqlite.dmConversationLog}\n</yesterday_dm_conversation_log>`);
|
|
245
304
|
if (roadmapMd)
|
|
246
305
|
sections.push(`<roadmap>\n${truncateRoadmap(roadmapMd, { timezone: this.config.timezone || undefined })}\n</roadmap>`);
|
|
306
|
+
// morning-routine-optimization.md Phase 7 — on the first-run
|
|
307
|
+
// (no-yesterday) branch the orchestrator pre-builds a
|
|
308
|
+
// `<roadmap_skeleton>` block carrying the daemon-prepared
|
|
309
|
+
// Annual Goals / Quarterly Focus / Preparation Timeline scratch
|
|
310
|
+
// data. Stage A reads it AS WELL AS the truncated `<roadmap>`
|
|
311
|
+
// above so Step 6b can detect the placeholder wizard skeleton
|
|
312
|
+
// and fully populate roadmap.md from these facts. On the
|
|
313
|
+
// recurring branch this key is absent and the block is omitted.
|
|
314
|
+
if (typeof event.data?.roadmapSkeletonBlock === "string") {
|
|
315
|
+
sections.push(event.data.roadmapSkeletonBlock);
|
|
316
|
+
}
|
|
247
317
|
if (activeProjects)
|
|
248
318
|
sections.push(`<active_projects>\n${activeProjects}\n</active_projects>`);
|
|
319
|
+
// `docs/design/appendices/weekly-next-week-leverage.md` — every
|
|
320
|
+
// morning of the new ISO week, lift the prior week's import-
|
|
321
|
+
// targeted sections (Carry Over / Next Week Focus / Lessons)
|
|
322
|
+
// from `weekly/YYYY-W{prev}.md` and inject them as a small
|
|
323
|
+
// `<previous_week>` block. Same file Mon–Sun within the week;
|
|
324
|
+
// helper rolls forward automatically when the daemon clock
|
|
325
|
+
// crosses Monday 00:00 local. Null when the prior week's file
|
|
326
|
+
// is missing (e.g. daemon was down through Friday or the
|
|
327
|
+
// catchup window — see schedule-helpers.ts) — block injection
|
|
328
|
+
// is skipped silently and morning_routine proceeds normally.
|
|
329
|
+
const previousWeekKey = getPreviousWeekIsoKey(this.config.timezone || undefined);
|
|
330
|
+
const readableContextDir = this.readableContextDir;
|
|
331
|
+
if (readableContextDir) {
|
|
332
|
+
const previousWeekDigest = await loadPreviousWeekDigest(readableContextDir, previousWeekKey);
|
|
333
|
+
if (previousWeekDigest) {
|
|
334
|
+
sections.push(renderPreviousWeekBlock(previousWeekDigest));
|
|
335
|
+
}
|
|
336
|
+
}
|
|
249
337
|
// Fetch 7-day calendar events for today.md / roadmap.md updates.
|
|
250
338
|
// For direct mode, ContextBuilder pre-fetches inline events via
|
|
251
339
|
// the daemon's CalendarService. For non-direct modes the
|
|
@@ -254,12 +342,43 @@ export class ContextBuilder {
|
|
|
254
342
|
// `/api/observations`; the sub-block then points the agent at
|
|
255
343
|
// the observations table instead of emitting a "fetch yourself"
|
|
256
344
|
// directive that would force Sonnet to drive the MCP fan-out.
|
|
257
|
-
sections.push(await this.
|
|
345
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
346
|
+
days: 7,
|
|
347
|
+
blockName: "calendar_events_7d",
|
|
348
|
+
prepassCovers: true,
|
|
349
|
+
}));
|
|
350
|
+
}
|
|
351
|
+
else if (event.routine === "morning_routine_journal") {
|
|
352
|
+
// morning-routine-optimization.md Phase 5 — Stage B (daily
|
|
353
|
+
// journal author). Reads `<journal_skeleton>` (injected via
|
|
354
|
+
// event.data.journalSkeletonBlock above) as primary input and
|
|
355
|
+
// needs `<calendar_events_7d>` to resolve `[[wikilink]]`s for
|
|
356
|
+
// attended events under `vault_mode === "obsidian"`. Deliberately
|
|
357
|
+
// does NOT load yesterday.md, roadmap.md, active_projects, or
|
|
358
|
+
// SQLite yesterday snapshots — Stage A owns the forward-facing
|
|
359
|
+
// synthesis; Stage B's input set is intentionally minimal so the
|
|
360
|
+
// lite-tier cold-start floor is cleared (see design §"Per-stage
|
|
361
|
+
// input sketches").
|
|
362
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
363
|
+
days: 7,
|
|
364
|
+
blockName: "calendar_events_7d",
|
|
365
|
+
prepassCovers: true,
|
|
366
|
+
}));
|
|
367
|
+
// daily-journal-daemon-write.md §4.10 — Stage B has zero tool
|
|
368
|
+
// requirement, so the browser-history digest is fetched
|
|
369
|
+
// daemon-side by the orchestrator's `buildBrowserDigestBlock`
|
|
370
|
+
// and forwarded verbatim through `event.data.browserDigestBlock`.
|
|
371
|
+
// Block is omitted silently when browser-history is `disabled`
|
|
372
|
+
// or the digest is unavailable for both the file-first and the
|
|
373
|
+
// in-process fallback paths.
|
|
374
|
+
if (typeof event.data?.browserDigestBlock === "string") {
|
|
375
|
+
sections.push(event.data.browserDigestBlock);
|
|
376
|
+
}
|
|
258
377
|
}
|
|
259
378
|
else if (event.routine === "roadmap_refresh") {
|
|
260
379
|
const [roadmapMd, activeProjects] = await Promise.all([
|
|
261
|
-
this.readFile(
|
|
262
|
-
this.
|
|
380
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.roadmap),
|
|
381
|
+
renderActiveProjectsSection(this.readableContextDir),
|
|
263
382
|
]);
|
|
264
383
|
// Roadmap refresh must see the full file — the session
|
|
265
384
|
// regenerates `## Agent Action Plan` wholesale, so any entry the
|
|
@@ -272,7 +391,7 @@ export class ContextBuilder {
|
|
|
272
391
|
// refresh to incorporate long-horizon intent captured in recent
|
|
273
392
|
// DMs; the rolling summaries in dm_conversation_log are the
|
|
274
393
|
// cheapest source (already AI-condensed by the dispatcher).
|
|
275
|
-
const dmLog7d = this.
|
|
394
|
+
const dmLog7d = renderRecentDmConversationLog({ db: this.db, config: this.config }, 7);
|
|
276
395
|
sections.push(`<recent_dm_conversation_log days="7">\n${dmLog7d}\n</recent_dm_conversation_log>`);
|
|
277
396
|
// 90-day multi-provider calendar window — same shape as morning /
|
|
278
397
|
// evening / weekly / monthly so every review-style routine sees one
|
|
@@ -286,12 +405,15 @@ export class ContextBuilder {
|
|
|
286
405
|
// 3-arm hardcoded conditional silently filed native bindings under
|
|
287
406
|
// the else branch and emitted "preserve existing roadmap content",
|
|
288
407
|
// bricking roadmap.md generation for native-mode operators.
|
|
289
|
-
sections.push(await this.
|
|
408
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
409
|
+
days: 90,
|
|
410
|
+
blockName: "calendar_events_90d",
|
|
411
|
+
}));
|
|
290
412
|
}
|
|
291
413
|
else if (event.routine === "evening_review") {
|
|
292
414
|
const [roadmapMd, activeProjects] = await Promise.all([
|
|
293
|
-
this.readFile(
|
|
294
|
-
this.
|
|
415
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.roadmap),
|
|
416
|
+
renderActiveProjectsSection(this.readableContextDir),
|
|
295
417
|
]);
|
|
296
418
|
if (roadmapMd)
|
|
297
419
|
sections.push(`<roadmap>\n${truncateRoadmap(roadmapMd, { timezone: this.config.timezone || undefined })}\n</roadmap>`);
|
|
@@ -300,7 +422,10 @@ export class ContextBuilder {
|
|
|
300
422
|
// 3-day calendar look-ahead for evening review. Delegated mode emits
|
|
301
423
|
// an MCP-fetch directive inside the same block so the flow works
|
|
302
424
|
// without a routine-specific delegated variant.
|
|
303
|
-
sections.push(await this.
|
|
425
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
426
|
+
days: 3,
|
|
427
|
+
blockName: "calendar_events_3d",
|
|
428
|
+
}));
|
|
304
429
|
}
|
|
305
430
|
else if (event.routine === "user_profile_sweep") {
|
|
306
431
|
// Both phases read the same current-agent-day bounds at session
|
|
@@ -313,7 +438,10 @@ export class ContextBuilder {
|
|
|
313
438
|
// than silently running the sweep with an unlabeled log line.
|
|
314
439
|
const phase = event.data?.phase;
|
|
315
440
|
if (phase === "morning" || phase === "evening") {
|
|
316
|
-
const agentDayDm =
|
|
441
|
+
const agentDayDm = buildAgentDayDmContext({
|
|
442
|
+
db: this.db,
|
|
443
|
+
config: this.config,
|
|
444
|
+
});
|
|
317
445
|
sections.push(`<agent_day_messages>\n${agentDayDm.messages}\n</agent_day_messages>`);
|
|
318
446
|
sections.push(`<agent_day_dm_conversation_log>\n${agentDayDm.dmConversationLog}\n</agent_day_dm_conversation_log>`);
|
|
319
447
|
}
|
|
@@ -322,7 +450,7 @@ export class ContextBuilder {
|
|
|
322
450
|
}
|
|
323
451
|
}
|
|
324
452
|
else if (event.routine === "today_refresh") {
|
|
325
|
-
//
|
|
453
|
+
// docs/design/appendices/routine-data-acquisition.md Phase 4 / Phase 3 R3 —
|
|
326
454
|
// dashboard-triggered manual refresh. The pre-pass fetcher
|
|
327
455
|
// (`routine.fetch_window`) acquires the day's calendar window
|
|
328
456
|
// for every active calendar provider ahead of this session and
|
|
@@ -342,8 +470,8 @@ export class ContextBuilder {
|
|
|
342
470
|
else if (event.routine === "weekly_review" ||
|
|
343
471
|
event.routine === "monthly_review") {
|
|
344
472
|
const [roadmapMd, activeProjects] = await Promise.all([
|
|
345
|
-
this.readFile(
|
|
346
|
-
this.
|
|
473
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.roadmap),
|
|
474
|
+
renderActiveProjectsSection(this.readableContextDir),
|
|
347
475
|
]);
|
|
348
476
|
if (roadmapMd)
|
|
349
477
|
sections.push(`<roadmap>\n${truncateRoadmap(roadmapMd, { timezone: this.config.timezone || undefined })}\n</roadmap>`);
|
|
@@ -351,7 +479,10 @@ export class ContextBuilder {
|
|
|
351
479
|
sections.push(`<active_projects>\n${activeProjects}\n</active_projects>`);
|
|
352
480
|
}
|
|
353
481
|
const lookaheadDays = event.routine === "monthly_review" ? 30 : 7;
|
|
354
|
-
sections.push(await this.
|
|
482
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
483
|
+
days: lookaheadDays,
|
|
484
|
+
blockName: `calendar_events_${lookaheadDays}d`,
|
|
485
|
+
}));
|
|
355
486
|
}
|
|
356
487
|
}
|
|
357
488
|
// Agent task / DM-tone events: inject live calendar + origin
|
|
@@ -363,7 +494,10 @@ export class ContextBuilder {
|
|
|
363
494
|
// 1-day live calendar — critical for temporal awareness (meetings,
|
|
364
495
|
// conflicts). Delegated mode emits an MCP-fetch directive inside the
|
|
365
496
|
// same block.
|
|
366
|
-
sections.push(await this.
|
|
497
|
+
sections.push(await renderCalendarBlock(this.calendarDeps(), {
|
|
498
|
+
days: 1,
|
|
499
|
+
blockName: "calendar_today",
|
|
500
|
+
}));
|
|
367
501
|
// Task origin metadata — tells the agent WHO scheduled this
|
|
368
502
|
sections.push(`<task_origin source="${event.source}" schedule_id="${event.scheduleId ?? "none"}" />`);
|
|
369
503
|
sections.push(`<task_context>\n${JSON.stringify(event.taskContext ?? {}, null, 2)}\n</task_context>`);
|
|
@@ -371,8 +505,8 @@ export class ContextBuilder {
|
|
|
371
505
|
// (Calendar data is already embedded in the task description by the API endpoint)
|
|
372
506
|
if (event.source === "dashboard_regenerate") {
|
|
373
507
|
const [roadmapMd, activeProjects] = await Promise.all([
|
|
374
|
-
this.readFile(
|
|
375
|
-
this.
|
|
508
|
+
this.readFile(CONTEXT_RELATIVE_PATHS.roadmap),
|
|
509
|
+
renderActiveProjectsSection(this.readableContextDir),
|
|
376
510
|
]);
|
|
377
511
|
if (roadmapMd)
|
|
378
512
|
sections.push(`<roadmap>\n${roadmapMd}\n</roadmap>`);
|
|
@@ -386,11 +520,11 @@ export class ContextBuilder {
|
|
|
386
520
|
// pick Variant A (greeting) vs. Variant B (mid-conversation
|
|
387
521
|
// weave) per the scheduled.dm.md task-flow.
|
|
388
522
|
if (isScheduledDmEvent(event)) {
|
|
389
|
-
const recentDms = this.
|
|
523
|
+
const recentDms = renderRecentDmActivityBlock({ db: this.db, config: this.config }, 60);
|
|
390
524
|
if (recentDms) {
|
|
391
525
|
sections.push(`<recent_dm_messages window="60min">\n${recentDms}\n</recent_dm_messages>`);
|
|
392
526
|
}
|
|
393
|
-
const dmHistory = this.
|
|
527
|
+
const dmHistory = renderOwnerDmConversationHistory({ db: this.db, config: this.config }, 20);
|
|
394
528
|
if (dmHistory) {
|
|
395
529
|
sections.push(`<recent_dm_conversation>\n${dmHistory}\n</recent_dm_conversation>`);
|
|
396
530
|
}
|
|
@@ -402,11 +536,17 @@ export class ContextBuilder {
|
|
|
402
536
|
// history via the backend's conversationHistory parameter. Doing it here
|
|
403
537
|
// as well would duplicate the data under two different XML tags.
|
|
404
538
|
if (isMessageEvent(event)) {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
539
|
+
if (!opts.skipActiveHistoryBlock) {
|
|
540
|
+
const history = getConversationHistoryForEvent({ db: this.db, config: this.config }, event);
|
|
541
|
+
if (history) {
|
|
542
|
+
sections.push(`<conversation_history>\n${history}\n</conversation_history>`);
|
|
543
|
+
}
|
|
408
544
|
}
|
|
409
|
-
|
|
545
|
+
// <recent_other_surface> stays even when the active block is
|
|
546
|
+
// suppressed: it covers the OTHER DM surface (dashboard ↔ owner)
|
|
547
|
+
// and never overlaps with the cross-session bridge (which scopes
|
|
548
|
+
// to the current surface).
|
|
549
|
+
const otherSurface = renderRecentOtherSurfaceBlock({ db: this.db, config: this.config }, event);
|
|
410
550
|
if (otherSurface) {
|
|
411
551
|
sections.push(`<recent_other_surface>\n${otherSurface}\n</recent_other_surface>`);
|
|
412
552
|
}
|
|
@@ -414,534 +554,99 @@ export class ContextBuilder {
|
|
|
414
554
|
return sections.join("\n\n");
|
|
415
555
|
}
|
|
416
556
|
/**
|
|
417
|
-
*
|
|
418
|
-
*
|
|
419
|
-
*
|
|
557
|
+
* IContextBuilder contract delegate. Full doc + rationale live on
|
|
558
|
+
* `renderResumeCatchupContext` in `context-builder-conversation.ts`
|
|
559
|
+
* (the catchup block is conversation-history surface area; the
|
|
560
|
+
* orchestrator forwards the call so the public interface stays on
|
|
561
|
+
* this class).
|
|
420
562
|
*/
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
const dayBounds = getAgentDayBoundsUtc(tz, 0);
|
|
424
|
-
const startMs = parseSqliteUtcMs(dayBounds.start);
|
|
425
|
-
return {
|
|
426
|
-
timeMin: new Date(startMs).toISOString(),
|
|
427
|
-
timeMax: new Date(startMs + days * 24 * 60 * 60 * 1000).toISOString(),
|
|
428
|
-
};
|
|
563
|
+
async buildResumeCatchupContext(event, sessionStartedAtMs) {
|
|
564
|
+
return renderResumeCatchupContext({ db: this.db, config: this.config }, event, sessionStartedAtMs);
|
|
429
565
|
}
|
|
430
566
|
/**
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
* ROUTINE_DATA_ACQUISITION_DESIGN.md §6.6 — the block wraps one
|
|
435
|
-
* `<provider key="…" mode="…">…</provider>` sub-block per active
|
|
436
|
-
* provider so the parent routine sees a uniform shape regardless of
|
|
437
|
-
* which provider(s) the operator has configured. Per-provider body:
|
|
438
|
-
*
|
|
439
|
-
* - **direct + matching service available** → inline formatted event
|
|
440
|
-
* list fetched by the daemon's `services.calendar` (Google today;
|
|
441
|
-
* Outlook gets the same path once a dedicated `services.outlookCalendar`
|
|
442
|
-
* lands — for now Outlook direct mode emits a service-unavailable
|
|
443
|
-
* note so the flow degrades gracefully).
|
|
444
|
-
* - **delegated** → a structured directive instructing the agent to
|
|
445
|
-
* call the relevant MCP tool (same-backend) or the daemon's
|
|
446
|
-
* `/api/integrations/<key>/exec` proxy (cross-backend). For
|
|
447
|
-
* `userManagedConnector` providers (Outlook today) the proxy
|
|
448
|
-
* branch is suppressed — same-backend and cross-backend collapse
|
|
449
|
-
* onto the session's MCP.
|
|
450
|
-
* - **native** → directive that points at the session backend's MCP
|
|
451
|
-
* only. No daemon proxy: native bindings never fall back to the
|
|
452
|
-
* daemon (R7 from the design doc).
|
|
453
|
-
* - **disabled** → provider sub-block omitted entirely.
|
|
567
|
+
* Slim context for `routine.fetch_window` (Phase 2 — see
|
|
568
|
+
* docs/design/appendices/fetch-window-cost-reduction.md §5). Emits only the three
|
|
569
|
+
* blocks the pre-pass session causally depends on:
|
|
454
570
|
*
|
|
455
|
-
*
|
|
456
|
-
*
|
|
457
|
-
*
|
|
571
|
+
* - `<event_correlation_id>` — required for `/api/observations` POSTs
|
|
572
|
+
* so dispatched observations attribute back to the same parent run.
|
|
573
|
+
* - `<integration_modes>` — the partial bodies inlined into the
|
|
574
|
+
* fetcher's user prompt branch on `direct` / `delegated` / `native`
|
|
575
|
+
* per integration; without this block the partial cannot pick a
|
|
576
|
+
* mode-arm. Also the only block that reads from the DB on this path.
|
|
577
|
+
* - `<acquisition-plan>` — verbatim block from
|
|
578
|
+
* `event.data.acquisitionPlanBlock`, assembled by the dispatcher
|
|
579
|
+
* before the sub-session spawns. Carries one `<fetch>` row per
|
|
580
|
+
* (integration × mode × account) tuple. Absent only on the empty-plan
|
|
581
|
+
* short-circuit (`routine-fetch-window-runner.ts:buildFanOutPlanContext`),
|
|
582
|
+
* in which case the slim path emits two blocks instead of three.
|
|
458
583
|
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
461
|
-
*
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
*
|
|
465
|
-
*
|
|
584
|
+
* Skipped relative to the wide path (and why each is safe to drop):
|
|
585
|
+
* - `<management_mode_degraded>` — fetch_window does not read context
|
|
586
|
+
* MD files; degraded mode is informational for vault-touching flows.
|
|
587
|
+
* - `<user>` / `<management_rules>` / `<today>` — operator profile +
|
|
588
|
+
* rules + day-log are irrelevant to "fetch new messages since X".
|
|
589
|
+
* - `<agent_identity>` / `<current_time>` / `<current_agent_day>` —
|
|
590
|
+
* the per-fetch `<fetch>` row carries its own `since` / `before`
|
|
591
|
+
* timestamps; the fetcher does not introspect "what time is it".
|
|
592
|
+
* - `<settings>` / `<output_language_policy>` — output is structural
|
|
593
|
+
* JSON (`{fetched, posted, duplicates, errors}`); the language
|
|
594
|
+
* policy only governs user-facing prose.
|
|
595
|
+
* - `<routine_protocol>` — silent-by-default + "POST /api/notify is
|
|
596
|
+
* the only user channel" — fetch_window never POSTs to /api/notify;
|
|
597
|
+
* the protocol matters for the parent routine, not the pre-pass.
|
|
598
|
+
* - `<obsidian_vault_path>` — fetcher does not touch the vault.
|
|
599
|
+
* - `<today_write_lock_id>` / `<roadmap_write_lock_id>` — locks are
|
|
600
|
+
* parent-routine concerns; fetcher writes nothing to MD files.
|
|
601
|
+
* - `<gate_decision>` / `<fetch_report>` — pre-pass-related blocks
|
|
602
|
+
* consumed by the parent routine, not by the pre-pass itself.
|
|
466
603
|
*
|
|
467
|
-
*
|
|
468
|
-
* `
|
|
469
|
-
* `routine.
|
|
470
|
-
*
|
|
471
|
-
* provider sub-blocks then emit a "read observations" hint instead
|
|
472
|
-
* of the legacy "fetch yourself" directive. Direct providers are
|
|
473
|
-
* unchanged — ContextBuilder still pre-fetches inline events via
|
|
474
|
-
* `services.calendar` (Google) and emits the fallback hint for
|
|
475
|
-
* Outlook (no daemon-side service yet). The flag has no effect on
|
|
476
|
-
* direct-mode sub-blocks. Default `false` for callers that don't
|
|
477
|
-
* have pre-pass coverage (today_refresh, weekly/monthly_review,
|
|
478
|
-
* roadmap_refresh).
|
|
479
|
-
*/
|
|
480
|
-
async buildCalendarBlock(days, blockName, prepassCovers = false) {
|
|
481
|
-
const integrations = readIntegrations(this.db);
|
|
482
|
-
const { timeMin, timeMax } = this.computeCalendarWindow(days);
|
|
483
|
-
const subblocks = [];
|
|
484
|
-
const googleSub = await this.buildCalendarProviderBlock("google_calendar", "Google Calendar", integrations.google_calendar?.mode ?? "disabled", days, timeMin, timeMax, prepassCovers);
|
|
485
|
-
if (googleSub)
|
|
486
|
-
subblocks.push(googleSub);
|
|
487
|
-
const outlookSub = await this.buildCalendarProviderBlock("outlook_calendar", "Outlook Calendar", integrations.outlook_calendar?.mode ?? "disabled", days, timeMin, timeMax, prepassCovers);
|
|
488
|
-
if (outlookSub)
|
|
489
|
-
subblocks.push(outlookSub);
|
|
490
|
-
if (subblocks.length === 0) {
|
|
491
|
-
// Match the legacy single-line shape so existing prose that greps
|
|
492
|
-
// for `<calendar_status>not available` keeps matching.
|
|
493
|
-
return `<calendar_status>Calendar service not available. No calendar provider is configured for this window.</calendar_status>`;
|
|
494
|
-
}
|
|
495
|
-
return [
|
|
496
|
-
`<${blockName} days="${days}" timeMin="${timeMin}" timeMax="${timeMax}">`,
|
|
497
|
-
...subblocks,
|
|
498
|
-
`</${blockName}>`,
|
|
499
|
-
].join("\n");
|
|
500
|
-
}
|
|
501
|
-
/**
|
|
502
|
-
* Emit one provider sub-block for `buildCalendarBlock`. Returns null
|
|
503
|
-
* when the provider is disabled (or, for native mode, the binding
|
|
504
|
-
* does not apply to a meaningful path — the agent reads
|
|
505
|
-
* `<integration_modes>` to decide whether its session backend is the
|
|
506
|
-
* native one).
|
|
604
|
+
* Backend-neutral by construction: this string is passed verbatim to
|
|
605
|
+
* `core.execute(...)` for whichever backend resolved the binding
|
|
606
|
+
* (`routine-fetch-window-runner.ts:1529`). Same saving lands on Claude
|
|
607
|
+
* (cache_creation) and on Codex / Gemini / OpenCode (raw input tokens).
|
|
507
608
|
*/
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
// has already POSTed events to /api/observations. Replace the
|
|
516
|
-
// legacy "fetch yourself" directive with a hint pointing at
|
|
517
|
-
// observations so the main routine session never re-drives the
|
|
518
|
-
// MCP fan-out (the cost regression that motivated this flag).
|
|
519
|
-
if (prepassCovers && (mode === "delegated" || mode === "native")) {
|
|
520
|
-
return [
|
|
521
|
-
open,
|
|
522
|
-
`${displayName} ${mode} mode — the routine.fetch_window pre-pass`,
|
|
523
|
-
`posted events for [${timeMin}, ${timeMax}) to /api/observations`,
|
|
524
|
-
`under source_prefix \`${key}:\`. Read them via:`,
|
|
525
|
-
` GET http://localhost:8321/api/observations?pending=true&source_prefix=${key}:&limit=200`,
|
|
526
|
-
`Consult \`<fetch_report>\` injected above for pre-pass status; on`,
|
|
527
|
-
`status="failed" or "skipped" treat this provider as unavailable for`,
|
|
528
|
-
`the window and log a one-line skip to \`## Agent Log\` instead of`,
|
|
529
|
-
`re-driving the connector yourself. Do NOT call /api/calendar/* or`,
|
|
530
|
-
`/api/integrations/*/exec — those return 410 in this mode.`,
|
|
531
|
-
close,
|
|
532
|
-
].join("\n");
|
|
533
|
-
}
|
|
534
|
-
if (mode === "direct") {
|
|
535
|
-
// Today only `services.calendar` (Google) is wired. Outlook direct
|
|
536
|
-
// mode reaches `GET /api/calendar/outlook` from the task flow; the
|
|
537
|
-
// context block surfaces a service-status hint until a daemon-side
|
|
538
|
-
// CalendarService for Outlook lands. Either way the agent can fall
|
|
539
|
-
// back to its own direct REST call from the task flow.
|
|
540
|
-
if (key === "google_calendar" && this.services.calendar) {
|
|
541
|
-
const inline = await this.fetchCalendarEvents(days);
|
|
542
|
-
if (inline !== null) {
|
|
543
|
-
return [open, inline, close].join("\n");
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
return [
|
|
547
|
-
open,
|
|
548
|
-
`${displayName}: direct mode, daemon service not initialized for this window.`,
|
|
549
|
-
`Fetch yourself via the task flow's direct-mode endpoint (Google: /api/calendar/events; Outlook: /api/calendar/outlook).`,
|
|
550
|
-
close,
|
|
551
|
-
].join("\n");
|
|
552
|
-
}
|
|
553
|
-
if (mode === "delegated") {
|
|
554
|
-
// CLAUDE.md: "Never hardcode an integration reference outside the
|
|
555
|
-
// registry." `userManagedConnector` is the registry's source of
|
|
556
|
-
// truth for whether the daemon ships a `/api/integrations/<key>/
|
|
557
|
-
// exec` proxy. Reading it from the descriptor means a future
|
|
558
|
-
// user-managed integration (Proton, custom MCP, etc.) inherits
|
|
559
|
-
// the right branch without touching this method.
|
|
560
|
-
const isUserManaged = getIntegrationDescriptor(key).userManagedConnector === true;
|
|
561
|
-
const lines = [
|
|
562
|
-
open,
|
|
563
|
-
`${displayName} is delegated — see \`<integration_modes>\`. Fetch the window`,
|
|
564
|
-
`(timeMin=${timeMin}, timeMax=${timeMax}) and treat the returned events as`,
|
|
565
|
-
`the contents of this provider block for the rest of the task flow.`,
|
|
566
|
-
"",
|
|
567
|
-
" Same-backend (delegated_to == your session backend) — use your",
|
|
568
|
-
` session's ${displayName} MCP tool (whichever your skills document).`,
|
|
569
|
-
];
|
|
570
|
-
if (!isUserManaged) {
|
|
571
|
-
lines.push("", " Cross-backend (delegated_to != your session backend) — call", " the daemon's task-mode endpoint so the configured account is used:", ` POST http://localhost:8321/api/integrations/${key}/exec`, ` task: List every event between ${timeMin} and ${timeMax}.`, ` outputSchema: { events: [ { id, title, start, end } ] }`, ` Do NOT call /api/calendar/* (returns 410 in delegated mode).`);
|
|
572
|
-
}
|
|
573
|
-
else {
|
|
574
|
-
lines.push("", " Cross-backend: not available for Outlook (user-managed connector,", " no daemon proxy). Fall through to the session's MCP regardless.");
|
|
575
|
-
}
|
|
576
|
-
lines.push("", "If the call errors out, log one line to `## Agent Log` and proceed", "as if the window were empty.", close);
|
|
577
|
-
return lines.join("\n");
|
|
609
|
+
buildFetchWindowContext(event) {
|
|
610
|
+
const sections = [
|
|
611
|
+
`<event_correlation_id>${event.correlationId}</event_correlation_id>`,
|
|
612
|
+
this.buildIntegrationModesBlock(),
|
|
613
|
+
];
|
|
614
|
+
if (typeof event.data?.acquisitionPlanBlock === "string") {
|
|
615
|
+
sections.push(event.data.acquisitionPlanBlock);
|
|
578
616
|
}
|
|
579
|
-
|
|
580
|
-
return [
|
|
581
|
-
open,
|
|
582
|
-
`${displayName} is in native mode — see \`<integration_modes>.${key}_native_to\`.`,
|
|
583
|
-
`Fetch this window (timeMin=${timeMin}, timeMax=${timeMax}) yourself via your`,
|
|
584
|
-
`session backend's ${displayName} MCP surface. Do NOT call /api/calendar/*`,
|
|
585
|
-
`or /api/integrations/*/exec — native mode has no daemon proxy.`,
|
|
586
|
-
"",
|
|
587
|
-
`If the native binding does not match your session backend (check`,
|
|
588
|
-
`\`${key}_native_to\`), treat this provider as unavailable for this turn`,
|
|
589
|
-
`and log one line to \`## Agent Log\`.`,
|
|
590
|
-
close,
|
|
591
|
-
].join("\n");
|
|
617
|
+
return sections.join("\n\n");
|
|
592
618
|
}
|
|
593
619
|
/**
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
620
|
+
* Render the `<integration_modes ... />` element used by both the wide
|
|
621
|
+
* build path and the fetch_window slim path. Centralised so the slim
|
|
622
|
+
* path cannot drift from the wide path's attribute shape — both routes
|
|
623
|
+
* read from the same `readIntegrations(db)` snapshot and emit
|
|
624
|
+
* `key="mode"` plus the optional `_delegated_to` / `_native_backend`
|
|
625
|
+
* attributes per state.
|
|
597
626
|
*/
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
const
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
return `Calendar connected (Google Calendar). No events found in the next ${days} days.`;
|
|
606
|
-
}
|
|
607
|
-
return this.formatCalendarEvents(events, days);
|
|
608
|
-
}
|
|
609
|
-
catch (err) {
|
|
610
|
-
logger.warn({ err }, "Failed to fetch calendar events for context");
|
|
611
|
-
return null;
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
/** Format calendar events grouped by date */
|
|
615
|
-
formatCalendarEvents(events, days) {
|
|
616
|
-
const now = new Date();
|
|
617
|
-
const tz = this.config.timezone || undefined;
|
|
618
|
-
const todayStr = localDateStr(now, tz);
|
|
619
|
-
const tomorrow = new Date(now);
|
|
620
|
-
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
621
|
-
const tomorrowStr = localDateStr(tomorrow, tz);
|
|
622
|
-
const dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
623
|
-
// Group events by local date in the configured timezone.
|
|
624
|
-
const byDate = new Map();
|
|
625
|
-
for (const event of events) {
|
|
626
|
-
if (!event.start)
|
|
627
|
-
continue;
|
|
628
|
-
const dateStr = event.start.length === 10
|
|
629
|
-
? event.start
|
|
630
|
-
: localDateStr(new Date(event.start), tz);
|
|
631
|
-
const group = byDate.get(dateStr) ?? [];
|
|
632
|
-
group.push(event);
|
|
633
|
-
byDate.set(dateStr, group);
|
|
634
|
-
}
|
|
635
|
-
const lines = [];
|
|
636
|
-
// Generate all dates in range
|
|
637
|
-
for (let i = 0; i < days; i++) {
|
|
638
|
-
const date = new Date(now);
|
|
639
|
-
date.setDate(date.getDate() + i);
|
|
640
|
-
const dateStr = localDateStr(date, tz);
|
|
641
|
-
const localInfo = nowInTimezone(tz, date);
|
|
642
|
-
const dayName = dayNames[localInfo.dayOfWeek];
|
|
643
|
-
let label = "";
|
|
644
|
-
if (dateStr === todayStr)
|
|
645
|
-
label = " — Today";
|
|
646
|
-
else if (dateStr === tomorrowStr)
|
|
647
|
-
label = " — Tomorrow";
|
|
648
|
-
lines.push(`## ${dateStr} (${dayName})${label}`);
|
|
649
|
-
const dayEvents = byDate.get(dateStr);
|
|
650
|
-
if (!dayEvents || dayEvents.length === 0) {
|
|
651
|
-
lines.push("- (no events)");
|
|
627
|
+
buildIntegrationModesBlock() {
|
|
628
|
+
const integrationsSnapshot = readIntegrations(this.db);
|
|
629
|
+
const integrationAttrs = Object.entries(integrationsSnapshot)
|
|
630
|
+
.flatMap(([key, state]) => {
|
|
631
|
+
const attrs = [`${key}="${state.mode}"`];
|
|
632
|
+
if (state.mode === "delegated" && state.delegatedBackend) {
|
|
633
|
+
attrs.push(`${key}_delegated_to="${state.delegatedBackend}"`);
|
|
652
634
|
}
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
const timeRange = this.formatTimeRange(event);
|
|
656
|
-
const summary = event.summary ?? "Untitled";
|
|
657
|
-
const locationPart = event.location ? ` @ ${event.location}` : "";
|
|
658
|
-
lines.push(`- ${timeRange} ${summary}${locationPart}`);
|
|
659
|
-
}
|
|
635
|
+
if (state.mode === "native" && state.nativeBackend) {
|
|
636
|
+
attrs.push(`${key}_native_backend="${state.nativeBackend}"`);
|
|
660
637
|
}
|
|
661
|
-
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
/** Format event time range as "HH:MM–HH:MM" or "All day" */
|
|
666
|
-
formatTimeRange(event) {
|
|
667
|
-
if (!event.start || !event.end)
|
|
668
|
-
return "All day";
|
|
669
|
-
// All-day events have date format (YYYY-MM-DD) without time component
|
|
670
|
-
if (event.start.length === 10)
|
|
671
|
-
return "All day";
|
|
672
|
-
const startDate = new Date(event.start);
|
|
673
|
-
const endDate = new Date(event.end);
|
|
674
|
-
const startTime = this.formatLocalTime(startDate);
|
|
675
|
-
const endTime = this.formatLocalTime(endDate);
|
|
676
|
-
return `${startTime}\u2013${endTime}`;
|
|
677
|
-
}
|
|
678
|
-
formatLocalTime(date) {
|
|
679
|
-
const local = nowInTimezone(this.config.timezone || undefined, date);
|
|
680
|
-
return `${String(local.hours).padStart(2, "0")}:${String(local.minutes).padStart(2, "0")}`;
|
|
681
|
-
}
|
|
682
|
-
/**
|
|
683
|
-
* SCHEDULED-DM-IMPLEMENTATION-PLAN §5.7 — return inbound owner-DM
|
|
684
|
-
* messages received in the last `windowMinutes` across BOTH
|
|
685
|
-
* owner-facing scopes (`owner_dm` for messaging-app DMs and
|
|
686
|
-
* `dashboard_chat` for the dashboard chat panel), formatted one per
|
|
687
|
-
* line oldest first. Returns null when there are no messages so the
|
|
688
|
-
* caller can omit the block entirely.
|
|
689
|
-
*
|
|
690
|
-
* The two-scope query mirrors §3.6's gate set: the briefing
|
|
691
|
-
* serializes behind both surfaces, so the LLM must see both
|
|
692
|
-
* surfaces when classifying conversation state. A single-scope read
|
|
693
|
-
* here would mis-classify state as `asleep` whenever the user is
|
|
694
|
-
* mid-conversation on the OTHER surface — exactly the
|
|
695
|
-
* voice-mismatch failure the design exists to fix.
|
|
696
|
-
*
|
|
697
|
-
* `docs_qa` is intentionally excluded — that surface is research
|
|
698
|
-
* lookups, not conversation; gating against it would freeze
|
|
699
|
-
* briefings during long doc-searches.
|
|
700
|
-
*/
|
|
701
|
-
buildRecentDmActivityBlock(windowMinutes) {
|
|
702
|
-
const sinceUtc = formatSqliteDatetime(new Date(Date.now() - windowMinutes * 60_000));
|
|
703
|
-
const rows = this.db
|
|
704
|
-
.prepare(`SELECT m.role, m.content, m.timestamp
|
|
705
|
-
FROM messages m
|
|
706
|
-
JOIN conversation_sessions s ON m.session_id = s.id
|
|
707
|
-
WHERE s.scope IN (?, ?) AND m.role = 'user' AND m.timestamp >= ?
|
|
708
|
-
ORDER BY m.timestamp ASC
|
|
709
|
-
LIMIT 30`)
|
|
710
|
-
.all(OWNER_DM_SCOPE, DASHBOARD_CHAT_SCOPE, sinceUtc);
|
|
711
|
-
if (rows.length === 0)
|
|
712
|
-
return null;
|
|
713
|
-
return rows
|
|
714
|
-
.map((r) => `[${r.timestamp}] ${truncateForBlock(r.content, 200)}`)
|
|
715
|
-
.join("\n");
|
|
638
|
+
return attrs;
|
|
639
|
+
})
|
|
640
|
+
.join(" ");
|
|
641
|
+
return `<integration_modes ${integrationAttrs} />`;
|
|
716
642
|
}
|
|
717
643
|
/**
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
*
|
|
721
|
-
* by `<recent_dm_conversation>` for topic awareness in the bridge
|
|
722
|
-
* phrasing of Variant B briefings.
|
|
723
|
-
*
|
|
724
|
-
* Two-scope read — same reasoning as `buildRecentDmActivityBlock`:
|
|
725
|
-
* the briefing must reconstruct topic context from whichever surface
|
|
726
|
-
* the user has been using, not just the messaging-app one.
|
|
644
|
+
* Bundle the three deps `renderCalendarBlock` consumes into one
|
|
645
|
+
* object literal so callers in `build()` don't repeat the spread at
|
|
646
|
+
* every site.
|
|
727
647
|
*/
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
.prepare(`SELECT m.role, m.content, m.timestamp, m.metadata
|
|
731
|
-
FROM messages m
|
|
732
|
-
JOIN conversation_sessions s ON m.session_id = s.id
|
|
733
|
-
WHERE (s.scope = ? AND s.scope_key = ?)
|
|
734
|
-
OR (s.scope = ? AND s.scope_key = ?)
|
|
735
|
-
ORDER BY m.timestamp DESC, m.id DESC
|
|
736
|
-
LIMIT ?`)
|
|
737
|
-
.all(OWNER_DM_SCOPE, OWNER_SCOPE_KEY, DASHBOARD_CHAT_SCOPE, DASHBOARD_SCOPE_KEY, limit);
|
|
738
|
-
if (rows.length === 0)
|
|
739
|
-
return null;
|
|
740
|
-
return rows
|
|
741
|
-
.reverse()
|
|
742
|
-
.map((r) => {
|
|
743
|
-
const forwardSuffix = r.role === "assistant"
|
|
744
|
-
&& isProactiveForwardMetadata(parseMessageMetadata(r.metadata))
|
|
745
|
-
? " (forwarded from autonomous run)"
|
|
746
|
-
: "";
|
|
747
|
-
return `[${r.timestamp}] [${r.role}]${forwardSuffix}: ${truncateForBlock(r.content, 400)}`;
|
|
748
|
-
})
|
|
749
|
-
.join("\n");
|
|
750
|
-
}
|
|
751
|
-
getConversationHistory(event) {
|
|
752
|
-
const maxMessages = this.config.historyInjectionMaxMessages ?? 50;
|
|
753
|
-
let rows;
|
|
754
|
-
if (event.isDm) {
|
|
755
|
-
const { scope, scopeKey } = getConversationScope({
|
|
756
|
-
platform: event.platform,
|
|
757
|
-
channel: event.channel,
|
|
758
|
-
threadId: event.threadId,
|
|
759
|
-
isDm: true,
|
|
760
|
-
// Without `intent`, a docs_qa event would query under
|
|
761
|
-
// `dashboard_chat` and inject chat history into the QA prompt
|
|
762
|
-
// (or miss its own QA history). Thread it through so each
|
|
763
|
-
// dashboard scope retrieves only its own conversation.
|
|
764
|
-
intent: event.intent,
|
|
765
|
-
});
|
|
766
|
-
// DM: load the active conversation for the matching DM surface.
|
|
767
|
-
rows = this.db
|
|
768
|
-
.prepare(`SELECT
|
|
769
|
-
m.session_id,
|
|
770
|
-
m.role,
|
|
771
|
-
m.content,
|
|
772
|
-
m.platform,
|
|
773
|
-
m.timestamp,
|
|
774
|
-
m.metadata,
|
|
775
|
-
m.backend,
|
|
776
|
-
m.model_id,
|
|
777
|
-
s.backend_session_id
|
|
778
|
-
FROM messages m
|
|
779
|
-
JOIN conversation_sessions s ON m.session_id = s.id
|
|
780
|
-
WHERE s.scope = ? AND s.scope_key = ? AND s.status = 'active'
|
|
781
|
-
ORDER BY m.timestamp DESC, m.id DESC LIMIT ?`)
|
|
782
|
-
.all(scope, scopeKey, maxMessages);
|
|
783
|
-
}
|
|
784
|
-
else {
|
|
785
|
-
// Non-DM: query by (platform, channel, thread).
|
|
786
|
-
// Hard-cap at 20 — threads are short-lived and higher limits risk
|
|
787
|
-
// injecting stale context from unrelated earlier threads.
|
|
788
|
-
const threadLimit = Math.min(maxMessages, 20);
|
|
789
|
-
rows = this.db
|
|
790
|
-
.prepare(`SELECT
|
|
791
|
-
m.session_id,
|
|
792
|
-
m.role,
|
|
793
|
-
m.content,
|
|
794
|
-
m.platform,
|
|
795
|
-
m.timestamp,
|
|
796
|
-
m.metadata,
|
|
797
|
-
m.backend,
|
|
798
|
-
m.model_id,
|
|
799
|
-
s.backend_session_id
|
|
800
|
-
FROM messages m
|
|
801
|
-
JOIN conversation_sessions s ON m.session_id = s.id
|
|
802
|
-
WHERE s.platform = ? AND s.channel_id = ? AND s.thread_id IS ?
|
|
803
|
-
ORDER BY m.timestamp DESC, m.id DESC LIMIT ?`)
|
|
804
|
-
.all(event.platform, event.channel, event.threadId ?? null, threadLimit);
|
|
805
|
-
}
|
|
806
|
-
if (rows.length === 0)
|
|
807
|
-
return null;
|
|
808
|
-
// Truncate by approximate token budget (1 token ≈ 4 chars).
|
|
809
|
-
const maxTokens = this.config.historyInjectionMaxTokens ?? 8000;
|
|
810
|
-
const reversed = rows.reverse();
|
|
811
|
-
const proactiveRows = [];
|
|
812
|
-
let tokenBudget = maxTokens * 4; // chars remaining
|
|
813
|
-
const lines = [];
|
|
814
|
-
for (const r of reversed) {
|
|
815
|
-
const metadata = parseMessageMetadata(r.metadata);
|
|
816
|
-
const isForward = isProactiveForwardMetadata(metadata);
|
|
817
|
-
const tag = r.backend
|
|
818
|
-
? `[${r.timestamp}] [${r.role}/${r.backend}:${r.model_id ?? "?"}]`
|
|
819
|
-
: `[${r.timestamp}] [${r.role}]`;
|
|
820
|
-
const forwardSuffix = r.role === "assistant" && isForward
|
|
821
|
-
? " (forwarded from autonomous run)"
|
|
822
|
-
: "";
|
|
823
|
-
const line = `${tag}${forwardSuffix}: ${r.content}`;
|
|
824
|
-
tokenBudget -= line.length;
|
|
825
|
-
if (tokenBudget < 0 && lines.length > 0) {
|
|
826
|
-
lines.unshift(`[...${reversed.length - lines.length} older messages omitted]`);
|
|
827
|
-
break;
|
|
828
|
-
}
|
|
829
|
-
if (isForward) {
|
|
830
|
-
proactiveRows.push({
|
|
831
|
-
sessionId: r.session_id,
|
|
832
|
-
dispatchIds: metadataDispatchIds(metadata),
|
|
833
|
-
sessionResumed: r.backend_session_id !== null,
|
|
834
|
-
});
|
|
835
|
-
}
|
|
836
|
-
lines.push(line);
|
|
837
|
-
}
|
|
838
|
-
if (proactiveRows.length > 0) {
|
|
839
|
-
this.logProactiveForwardInjected(proactiveRows);
|
|
840
|
-
}
|
|
841
|
-
return lines.join("\n");
|
|
842
|
-
}
|
|
843
|
-
buildRecentOtherSurfaceBlock(event) {
|
|
844
|
-
if (!event.isDm || event.intent === "docs_qa")
|
|
845
|
-
return null;
|
|
846
|
-
const windowMinutes = this.config.historyOtherSurfaceWindowMinutes ?? 1440;
|
|
847
|
-
if (!Number.isFinite(windowMinutes) || windowMinutes <= 0)
|
|
848
|
-
return null;
|
|
849
|
-
const { scope } = getConversationScope({
|
|
850
|
-
platform: event.platform,
|
|
851
|
-
channel: event.channel,
|
|
852
|
-
threadId: event.threadId,
|
|
853
|
-
isDm: true,
|
|
854
|
-
intent: event.intent,
|
|
855
|
-
});
|
|
856
|
-
const other = scope === OWNER_DM_SCOPE
|
|
857
|
-
? { scope: DASHBOARD_CHAT_SCOPE, scopeKey: DASHBOARD_SCOPE_KEY }
|
|
858
|
-
: scope === DASHBOARD_CHAT_SCOPE
|
|
859
|
-
? { scope: OWNER_DM_SCOPE, scopeKey: OWNER_SCOPE_KEY }
|
|
860
|
-
: null;
|
|
861
|
-
if (!other)
|
|
862
|
-
return null;
|
|
863
|
-
const sinceUtc = formatSqliteDatetime(new Date(Date.now() - windowMinutes * 60_000));
|
|
864
|
-
const rows = this.db
|
|
865
|
-
.prepare(`SELECT
|
|
866
|
-
m.role,
|
|
867
|
-
m.content,
|
|
868
|
-
m.platform,
|
|
869
|
-
m.timestamp,
|
|
870
|
-
m.metadata,
|
|
871
|
-
s.scope,
|
|
872
|
-
s.scope_key
|
|
873
|
-
FROM messages m
|
|
874
|
-
JOIN conversation_sessions s ON m.session_id = s.id
|
|
875
|
-
WHERE s.scope = ?
|
|
876
|
-
AND s.scope_key = ?
|
|
877
|
-
AND s.status = 'active'
|
|
878
|
-
AND m.timestamp >= ?
|
|
879
|
-
ORDER BY m.timestamp ASC, m.id ASC
|
|
880
|
-
LIMIT 60`)
|
|
881
|
-
.all(other.scope, other.scopeKey, sinceUtc);
|
|
882
|
-
if (rows.length === 0)
|
|
883
|
-
return null;
|
|
884
|
-
const lines = [];
|
|
885
|
-
const ordinaryGroups = new Map();
|
|
886
|
-
for (const row of rows) {
|
|
887
|
-
const metadata = parseMessageMetadata(row.metadata);
|
|
888
|
-
const forwardType = getProactiveForwardType(metadata);
|
|
889
|
-
if (forwardType) {
|
|
890
|
-
lines.push(`[${row.timestamp}] [${forwardType} → ${row.platform}]: ${row.content}`);
|
|
891
|
-
continue;
|
|
892
|
-
}
|
|
893
|
-
const key = `${row.scope}:${row.scope_key}`;
|
|
894
|
-
const timestampMs = parseSqliteUtcMs(row.timestamp);
|
|
895
|
-
const existing = ordinaryGroups.get(key);
|
|
896
|
-
if (existing) {
|
|
897
|
-
existing.count += 1;
|
|
898
|
-
existing.firstMs = Math.min(existing.firstMs, timestampMs);
|
|
899
|
-
existing.lastMs = Math.max(existing.lastMs, timestampMs);
|
|
900
|
-
}
|
|
901
|
-
else {
|
|
902
|
-
ordinaryGroups.set(key, {
|
|
903
|
-
scope: row.scope,
|
|
904
|
-
count: 1,
|
|
905
|
-
firstMs: timestampMs,
|
|
906
|
-
lastMs: timestampMs,
|
|
907
|
-
});
|
|
908
|
-
}
|
|
909
|
-
}
|
|
910
|
-
for (const group of ordinaryGroups.values()) {
|
|
911
|
-
const spanMinutes = Math.max(1, Math.ceil((group.lastMs - group.firstMs) / 60_000));
|
|
912
|
-
lines.push(`(${group.scope}: ${group.count} turns in last ${spanMinutes} minutes)`);
|
|
913
|
-
}
|
|
914
|
-
return lines.length > 0 ? lines.join("\n") : null;
|
|
915
|
-
}
|
|
916
|
-
logProactiveForwardInjected(rows) {
|
|
917
|
-
const sessionId = rows[rows.length - 1]?.sessionId;
|
|
918
|
-
if (sessionId === undefined)
|
|
919
|
-
return;
|
|
920
|
-
const dispatchIds = [
|
|
921
|
-
...new Set(rows.flatMap((row) => row.dispatchIds)),
|
|
922
|
-
];
|
|
923
|
-
try {
|
|
924
|
-
this.db
|
|
925
|
-
.prepare(`INSERT INTO agent_actions (
|
|
926
|
-
action_type, trigger, result, detail, started_at
|
|
927
|
-
)
|
|
928
|
-
VALUES (
|
|
929
|
-
'proactive_forward_injected',
|
|
930
|
-
'reactive',
|
|
931
|
-
'success',
|
|
932
|
-
?,
|
|
933
|
-
CURRENT_TIMESTAMP
|
|
934
|
-
)`)
|
|
935
|
-
.run(JSON.stringify({
|
|
936
|
-
sessionId,
|
|
937
|
-
dispatchIds,
|
|
938
|
-
forwardCount: rows.length,
|
|
939
|
-
sessionResumed: rows.some((row) => row.sessionResumed),
|
|
940
|
-
}));
|
|
941
|
-
}
|
|
942
|
-
catch (err) {
|
|
943
|
-
logger.warn({ err, sessionId }, "Failed to log proactive forward injection");
|
|
944
|
-
}
|
|
648
|
+
calendarDeps() {
|
|
649
|
+
return { db: this.db, config: this.config, services: this.services };
|
|
945
650
|
}
|
|
946
651
|
async readFile(relativePath) {
|
|
947
652
|
const contextDir = this.readableContextDir;
|
|
@@ -957,340 +662,4 @@ export class ContextBuilder {
|
|
|
957
662
|
return null;
|
|
958
663
|
}
|
|
959
664
|
}
|
|
960
|
-
async buildActiveProjectsSection() {
|
|
961
|
-
const contextDir = this.readableContextDir;
|
|
962
|
-
if (!contextDir)
|
|
963
|
-
return null;
|
|
964
|
-
const projectsDir = join(contextDir, CONTEXT_RELATIVE_PATHS.projects.dir);
|
|
965
|
-
if (!existsSync(projectsDir))
|
|
966
|
-
return null;
|
|
967
|
-
const projectFiles = readdirSync(projectsDir)
|
|
968
|
-
.filter((name) => name.endsWith(".md"))
|
|
969
|
-
.filter((name) => !name.startsWith("_"));
|
|
970
|
-
if (projectFiles.length === 0)
|
|
971
|
-
return null;
|
|
972
|
-
const summaries = (await Promise.all(projectFiles.map(async (name) => {
|
|
973
|
-
const content = await this.readFile(`${CONTEXT_RELATIVE_PATHS.projects.dir}/${name}`);
|
|
974
|
-
if (!content)
|
|
975
|
-
return null;
|
|
976
|
-
return summarizeProjectFile(name, content);
|
|
977
|
-
})))
|
|
978
|
-
.filter((summary) => summary !== null)
|
|
979
|
-
.filter((summary) => summary.state !== "archived");
|
|
980
|
-
if (summaries.length === 0)
|
|
981
|
-
return null;
|
|
982
|
-
summaries.sort((a, b) => {
|
|
983
|
-
const aUpdated = a.updated ?? "";
|
|
984
|
-
const bUpdated = b.updated ?? "";
|
|
985
|
-
if (aUpdated !== bUpdated)
|
|
986
|
-
return bUpdated.localeCompare(aUpdated);
|
|
987
|
-
return a.title.localeCompare(b.title);
|
|
988
|
-
});
|
|
989
|
-
const lines = ["# Active projects", ""];
|
|
990
|
-
for (const project of summaries) {
|
|
991
|
-
const parts = [`state: ${project.state}`];
|
|
992
|
-
if (project.nextMilestone) {
|
|
993
|
-
parts.push(`next: ${project.nextMilestone}`);
|
|
994
|
-
}
|
|
995
|
-
if (project.due) {
|
|
996
|
-
parts.push(`due: ${project.due}`);
|
|
997
|
-
}
|
|
998
|
-
lines.push(`- ${project.title} (\`${project.slug}\`) — ${parts.join("; ")}`);
|
|
999
|
-
}
|
|
1000
|
-
return lines.join("\n");
|
|
1001
|
-
}
|
|
1002
|
-
/**
|
|
1003
|
-
* Render a rolling 7-day (or N-day) window of DM conversation-log
|
|
1004
|
-
* summaries for roadmap_refresh. Unlike `buildYesterdaySqliteContext`,
|
|
1005
|
-
* which is anchored to the previous agent-day for journal synthesis,
|
|
1006
|
-
* this window is calendar-rolling — refreshes can trigger at any
|
|
1007
|
-
* time, and the prompt needs whatever recent DM context exists.
|
|
1008
|
-
*
|
|
1009
|
-
* Returns a formatted markdown block; falls back to a "(none)" stub
|
|
1010
|
-
* so the prompt can always cite the tag unconditionally.
|
|
1011
|
-
*/
|
|
1012
|
-
buildRecentDmConversationLog(days) {
|
|
1013
|
-
const timezoneLabel = this.config.timezone || "system";
|
|
1014
|
-
const nowMs = Date.now();
|
|
1015
|
-
const startMs = nowMs - days * 24 * 60 * 60 * 1000;
|
|
1016
|
-
const startSqlite = formatSqliteDatetime(new Date(startMs));
|
|
1017
|
-
const endSqlite = formatSqliteDatetime(new Date(nowMs));
|
|
1018
|
-
const total = this.db
|
|
1019
|
-
.prepare(`SELECT COUNT(*) as cnt FROM dm_conversation_log
|
|
1020
|
-
WHERE created_at >= ? AND created_at < ?`)
|
|
1021
|
-
.get(startSqlite, endSqlite).cnt;
|
|
1022
|
-
const rows = this.db
|
|
1023
|
-
.prepare(`SELECT platform, scope, scope_key, summary, message_count, created_at
|
|
1024
|
-
FROM dm_conversation_log
|
|
1025
|
-
WHERE created_at >= ? AND created_at < ?
|
|
1026
|
-
ORDER BY created_at DESC
|
|
1027
|
-
LIMIT ?`)
|
|
1028
|
-
.all(startSqlite, endSqlite, YESTERDAY_DM_LOG_LIMIT).reverse();
|
|
1029
|
-
const lines = [
|
|
1030
|
-
`- Window: last ${days} days`,
|
|
1031
|
-
`- Timezone: ${timezoneLabel}`,
|
|
1032
|
-
`- Rows: ${total}`,
|
|
1033
|
-
];
|
|
1034
|
-
if (total > rows.length) {
|
|
1035
|
-
lines.push(`- Showing latest ${rows.length} rows only`);
|
|
1036
|
-
}
|
|
1037
|
-
if (rows.length === 0) {
|
|
1038
|
-
lines.push("- (none)");
|
|
1039
|
-
return lines.join("\n");
|
|
1040
|
-
}
|
|
1041
|
-
for (const row of rows) {
|
|
1042
|
-
const scopeKey = row.scope_key && row.scope_key.length > 0 ? `/${row.scope_key}` : "";
|
|
1043
|
-
lines.push(`- ${formatSqliteTimestampForContext(row.created_at, timezoneLabel)} [${row.platform}:${row.scope}${scopeKey}] (${row.message_count} msgs) ${truncateContextText(row.summary, 220)}`);
|
|
1044
|
-
}
|
|
1045
|
-
return lines.join("\n");
|
|
1046
|
-
}
|
|
1047
|
-
async buildYesterdaySqliteContext() {
|
|
1048
|
-
const tz = this.config.timezone || undefined;
|
|
1049
|
-
const dayBoundaryHour = this.config.dayBoundaryHour ?? 4;
|
|
1050
|
-
const previousAgentDayRef = new Date(Date.now() - 24 * 60 * 60 * 1000);
|
|
1051
|
-
const bounds = getAgentDayBoundsUtc(tz, dayBoundaryHour, previousAgentDayRef);
|
|
1052
|
-
const dayLabel = localDateStr(new Date(parseSqliteUtcMs(bounds.start)), tz);
|
|
1053
|
-
const timezoneLabel = this.config.timezone || "system";
|
|
1054
|
-
const agentActionTotal = this.db
|
|
1055
|
-
.prepare(`SELECT COUNT(*) as cnt FROM agent_actions
|
|
1056
|
-
WHERE started_at >= ? AND started_at < ?`)
|
|
1057
|
-
.get(bounds.start, bounds.end).cnt;
|
|
1058
|
-
const agentActionRows = this.db
|
|
1059
|
-
.prepare(`SELECT action_type, trigger, result, started_at, completed_at, error
|
|
1060
|
-
FROM agent_actions
|
|
1061
|
-
WHERE started_at >= ? AND started_at < ?
|
|
1062
|
-
ORDER BY started_at DESC
|
|
1063
|
-
LIMIT ?`)
|
|
1064
|
-
.all(bounds.start, bounds.end, YESTERDAY_AGENT_ACTION_LIMIT).reverse();
|
|
1065
|
-
const messageTotal = this.db
|
|
1066
|
-
.prepare(`SELECT COUNT(*) as cnt FROM messages
|
|
1067
|
-
WHERE timestamp >= ? AND timestamp < ?
|
|
1068
|
-
AND role != 'system'`)
|
|
1069
|
-
.get(bounds.start, bounds.end).cnt;
|
|
1070
|
-
const messageRows = this.db
|
|
1071
|
-
.prepare(`SELECT role, content, platform, timestamp
|
|
1072
|
-
FROM messages
|
|
1073
|
-
WHERE timestamp >= ? AND timestamp < ?
|
|
1074
|
-
AND role != 'system'
|
|
1075
|
-
ORDER BY timestamp DESC
|
|
1076
|
-
LIMIT ?`)
|
|
1077
|
-
.all(bounds.start, bounds.end, YESTERDAY_MESSAGE_LIMIT).reverse();
|
|
1078
|
-
const dmLogTotal = this.db
|
|
1079
|
-
.prepare(`SELECT COUNT(*) as cnt FROM dm_conversation_log
|
|
1080
|
-
WHERE created_at >= ? AND created_at < ?`)
|
|
1081
|
-
.get(bounds.start, bounds.end).cnt;
|
|
1082
|
-
const dmLogRows = this.db
|
|
1083
|
-
.prepare(`SELECT platform, scope, scope_key, summary, message_count, created_at
|
|
1084
|
-
FROM dm_conversation_log
|
|
1085
|
-
WHERE created_at >= ? AND created_at < ?
|
|
1086
|
-
ORDER BY created_at DESC
|
|
1087
|
-
LIMIT ?`)
|
|
1088
|
-
.all(bounds.start, bounds.end, YESTERDAY_DM_LOG_LIMIT).reverse();
|
|
1089
|
-
return {
|
|
1090
|
-
agentActions: formatYesterdayAgentActions(dayLabel, timezoneLabel, agentActionRows, agentActionTotal),
|
|
1091
|
-
messages: formatYesterdayMessages(dayLabel, timezoneLabel, messageRows, messageTotal),
|
|
1092
|
-
dmConversationLog: formatYesterdayDmConversationLog(dayLabel, timezoneLabel, dmLogRows, dmLogTotal),
|
|
1093
|
-
};
|
|
1094
|
-
}
|
|
1095
|
-
/**
|
|
1096
|
-
* Current-agent-day variant of `buildYesterdaySqliteContext` for the
|
|
1097
|
-
* user-profile sweep (§Phase 2). Resolves the day bounds to the
|
|
1098
|
-
* CURRENT agent-day — at 03:50 that window is ~04:00 yesterday →
|
|
1099
|
-
* 03:50 today (the agent-day about to close), and at 17:50 it is
|
|
1100
|
-
* ~04:00 today → 17:50 today. The sweep reads DM traffic + rolling
|
|
1101
|
-
* summaries but not agent_actions (not needed for fact extraction).
|
|
1102
|
-
*/
|
|
1103
|
-
buildAgentDayDmContext() {
|
|
1104
|
-
const tz = this.config.timezone || undefined;
|
|
1105
|
-
const dayBoundaryHour = this.config.dayBoundaryHour ?? 4;
|
|
1106
|
-
const bounds = getAgentDayBoundsUtc(tz, dayBoundaryHour);
|
|
1107
|
-
const dayLabel = localDateStr(new Date(parseSqliteUtcMs(bounds.start)), tz);
|
|
1108
|
-
const timezoneLabel = this.config.timezone || "system";
|
|
1109
|
-
const messageTotal = this.db
|
|
1110
|
-
.prepare(`SELECT COUNT(*) as cnt FROM messages
|
|
1111
|
-
WHERE timestamp >= ? AND timestamp < ?
|
|
1112
|
-
AND role != 'system'`)
|
|
1113
|
-
.get(bounds.start, bounds.end).cnt;
|
|
1114
|
-
const messageRows = this.db
|
|
1115
|
-
.prepare(`SELECT role, content, platform, timestamp
|
|
1116
|
-
FROM messages
|
|
1117
|
-
WHERE timestamp >= ? AND timestamp < ?
|
|
1118
|
-
AND role != 'system'
|
|
1119
|
-
ORDER BY timestamp DESC
|
|
1120
|
-
LIMIT ?`)
|
|
1121
|
-
.all(bounds.start, bounds.end, YESTERDAY_MESSAGE_LIMIT).reverse();
|
|
1122
|
-
const dmLogTotal = this.db
|
|
1123
|
-
.prepare(`SELECT COUNT(*) as cnt FROM dm_conversation_log
|
|
1124
|
-
WHERE created_at >= ? AND created_at < ?`)
|
|
1125
|
-
.get(bounds.start, bounds.end).cnt;
|
|
1126
|
-
const dmLogRows = this.db
|
|
1127
|
-
.prepare(`SELECT platform, scope, scope_key, summary, message_count, created_at
|
|
1128
|
-
FROM dm_conversation_log
|
|
1129
|
-
WHERE created_at >= ? AND created_at < ?
|
|
1130
|
-
ORDER BY created_at DESC
|
|
1131
|
-
LIMIT ?`)
|
|
1132
|
-
.all(bounds.start, bounds.end, YESTERDAY_DM_LOG_LIMIT).reverse();
|
|
1133
|
-
return {
|
|
1134
|
-
messages: formatYesterdayMessages(dayLabel, timezoneLabel, messageRows, messageTotal),
|
|
1135
|
-
dmConversationLog: formatYesterdayDmConversationLog(dayLabel, timezoneLabel, dmLogRows, dmLogTotal),
|
|
1136
|
-
};
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
/**
|
|
1140
|
-
* Truncate `value` to at most `max` chars, collapsing newlines so the
|
|
1141
|
-
* result fits on one line. Suffix `…` when truncation occurs. Used by
|
|
1142
|
-
* the scheduled.dm DM-activity / DM-history blocks.
|
|
1143
|
-
*/
|
|
1144
|
-
function truncateForBlock(value, max) {
|
|
1145
|
-
const oneLine = value.replace(/\s+/g, " ").trim();
|
|
1146
|
-
if (oneLine.length <= max)
|
|
1147
|
-
return oneLine;
|
|
1148
|
-
return `${oneLine.slice(0, max - 1)}…`;
|
|
1149
|
-
}
|
|
1150
|
-
function summarizeProjectFile(filename, content) {
|
|
1151
|
-
const slug = filename.replace(/\.md$/, "");
|
|
1152
|
-
const { frontmatter, body } = splitFrontmatter(content);
|
|
1153
|
-
const state = readFrontmatterScalar(frontmatter, "state") ?? "active";
|
|
1154
|
-
const title = body.match(/^#\s+(.+)$/m)?.[1]?.trim() || slug;
|
|
1155
|
-
return {
|
|
1156
|
-
slug,
|
|
1157
|
-
title,
|
|
1158
|
-
state,
|
|
1159
|
-
due: readFrontmatterScalar(frontmatter, "due"),
|
|
1160
|
-
nextMilestone: readFrontmatterScalar(frontmatter, "next_milestone"),
|
|
1161
|
-
updated: readFrontmatterScalar(frontmatter, "updated"),
|
|
1162
|
-
};
|
|
1163
|
-
}
|
|
1164
|
-
function splitFrontmatter(content) {
|
|
1165
|
-
if (!content.startsWith("---\n")) {
|
|
1166
|
-
return { frontmatter: "", body: content };
|
|
1167
|
-
}
|
|
1168
|
-
const endIdx = content.indexOf("\n---", 4);
|
|
1169
|
-
if (endIdx < 0) {
|
|
1170
|
-
return { frontmatter: "", body: content };
|
|
1171
|
-
}
|
|
1172
|
-
return {
|
|
1173
|
-
frontmatter: content.slice(4, endIdx),
|
|
1174
|
-
body: content.slice(endIdx + 4).replace(/^\n+/, ""),
|
|
1175
|
-
};
|
|
1176
|
-
}
|
|
1177
|
-
function readFrontmatterScalar(frontmatter, key) {
|
|
1178
|
-
if (!frontmatter)
|
|
1179
|
-
return null;
|
|
1180
|
-
const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1181
|
-
const match = frontmatter.match(new RegExp(`^${escapedKey}:\\s*(.+)$`, "m"));
|
|
1182
|
-
if (!match)
|
|
1183
|
-
return null;
|
|
1184
|
-
return match[1].trim().replace(/^['"]|['"]$/g, "");
|
|
1185
|
-
}
|
|
1186
|
-
/**
|
|
1187
|
-
* Truncate the ## Agent Log section of today.md to the last `maxEntries`
|
|
1188
|
-
* bullet lines. Operates on the string content only (does not touch disk).
|
|
1189
|
-
* Inserts an omission marker pointing to GET /api/context/today.
|
|
1190
|
-
*/
|
|
1191
|
-
function truncateAgentLog(content, maxEntries) {
|
|
1192
|
-
// Match "\n## Agent Log\n" to avoid false positives inside code blocks or
|
|
1193
|
-
// quoted text. The leading \n ensures we match a heading at line start, not
|
|
1194
|
-
// a substring of prose. today.md's structure is daemon-controlled, but this
|
|
1195
|
-
// is defence-in-depth against accidental matches in Handoff/Notes.
|
|
1196
|
-
const needle = "\n## Agent Log\n";
|
|
1197
|
-
const needleIdx = content.indexOf(needle);
|
|
1198
|
-
if (needleIdx < 0)
|
|
1199
|
-
return content;
|
|
1200
|
-
const headerIdx = needleIdx + 1; // skip the leading \n to point at "##"
|
|
1201
|
-
const sectionHeader = "## Agent Log";
|
|
1202
|
-
// Find the end of the Agent Log section (next ## heading or EOF)
|
|
1203
|
-
const afterHeader = headerIdx + sectionHeader.length;
|
|
1204
|
-
const nextSectionIdx = content.indexOf("\n## ", afterHeader);
|
|
1205
|
-
const sectionEnd = nextSectionIdx >= 0 ? nextSectionIdx : content.length;
|
|
1206
|
-
const sectionBody = content.slice(afterHeader, sectionEnd);
|
|
1207
|
-
const lines = sectionBody.split("\n");
|
|
1208
|
-
// Extract bullet lines (start with "- ")
|
|
1209
|
-
const bulletLines = lines.filter((l) => l.trimStart().startsWith("- "));
|
|
1210
|
-
if (bulletLines.length <= maxEntries)
|
|
1211
|
-
return content;
|
|
1212
|
-
// Keep only the last maxEntries bullets
|
|
1213
|
-
const omitted = bulletLines.length - maxEntries;
|
|
1214
|
-
const kept = bulletLines.slice(-maxEntries);
|
|
1215
|
-
const truncatedBody = [
|
|
1216
|
-
"",
|
|
1217
|
-
`[...${omitted} earlier entries omitted — use GET /api/context/today for full content]`,
|
|
1218
|
-
...kept,
|
|
1219
|
-
"",
|
|
1220
|
-
].join("\n");
|
|
1221
|
-
return (content.slice(0, headerIdx) +
|
|
1222
|
-
sectionHeader +
|
|
1223
|
-
truncatedBody +
|
|
1224
|
-
content.slice(sectionEnd));
|
|
1225
|
-
}
|
|
1226
|
-
function formatYesterdayAgentActions(dayLabel, timezoneLabel, rows, total) {
|
|
1227
|
-
const lines = [
|
|
1228
|
-
`- Agent day: ${dayLabel}`,
|
|
1229
|
-
`- Timezone: ${timezoneLabel}`,
|
|
1230
|
-
`- Rows: ${total}`,
|
|
1231
|
-
];
|
|
1232
|
-
if (total > rows.length) {
|
|
1233
|
-
lines.push(`- Showing latest ${rows.length} rows only`);
|
|
1234
|
-
}
|
|
1235
|
-
if (rows.length === 0) {
|
|
1236
|
-
lines.push("- (none)");
|
|
1237
|
-
return lines.join("\n");
|
|
1238
|
-
}
|
|
1239
|
-
for (const row of rows) {
|
|
1240
|
-
const trigger = row.trigger ? ` (${row.trigger})` : "";
|
|
1241
|
-
const result = row.result ?? "unknown";
|
|
1242
|
-
const error = row.error
|
|
1243
|
-
? ` — error: ${truncateContextText(row.error, 140)}`
|
|
1244
|
-
: "";
|
|
1245
|
-
lines.push(`- ${formatSqliteTimestampForContext(row.started_at, timezoneLabel)} [${result}] ${row.action_type}${trigger}${error}`);
|
|
1246
|
-
}
|
|
1247
|
-
return lines.join("\n");
|
|
1248
|
-
}
|
|
1249
|
-
function formatYesterdayMessages(dayLabel, timezoneLabel, rows, total) {
|
|
1250
|
-
const lines = [
|
|
1251
|
-
`- Agent day: ${dayLabel}`,
|
|
1252
|
-
`- Timezone: ${timezoneLabel}`,
|
|
1253
|
-
`- Rows: ${total}`,
|
|
1254
|
-
];
|
|
1255
|
-
if (total > rows.length) {
|
|
1256
|
-
lines.push(`- Showing latest ${rows.length} rows only`);
|
|
1257
|
-
}
|
|
1258
|
-
if (rows.length === 0) {
|
|
1259
|
-
lines.push("- (none)");
|
|
1260
|
-
return lines.join("\n");
|
|
1261
|
-
}
|
|
1262
|
-
for (const row of rows) {
|
|
1263
|
-
lines.push(`- ${formatSqliteTimestampForContext(row.timestamp, timezoneLabel)} [${row.platform}/${row.role}] ${truncateContextText(row.content, 180)}`);
|
|
1264
|
-
}
|
|
1265
|
-
return lines.join("\n");
|
|
1266
|
-
}
|
|
1267
|
-
function formatYesterdayDmConversationLog(dayLabel, timezoneLabel, rows, total) {
|
|
1268
|
-
const lines = [
|
|
1269
|
-
`- Agent day: ${dayLabel}`,
|
|
1270
|
-
`- Timezone: ${timezoneLabel}`,
|
|
1271
|
-
`- Rows: ${total}`,
|
|
1272
|
-
];
|
|
1273
|
-
if (total > rows.length) {
|
|
1274
|
-
lines.push(`- Showing latest ${rows.length} rows only`);
|
|
1275
|
-
}
|
|
1276
|
-
if (rows.length === 0) {
|
|
1277
|
-
lines.push("- (none)");
|
|
1278
|
-
return lines.join("\n");
|
|
1279
|
-
}
|
|
1280
|
-
for (const row of rows) {
|
|
1281
|
-
const scopeKey = row.scope_key && row.scope_key.length > 0 ? `/${row.scope_key}` : "";
|
|
1282
|
-
lines.push(`- ${formatSqliteTimestampForContext(row.created_at, timezoneLabel)} [${row.platform}:${row.scope}${scopeKey}] (${row.message_count} msgs) ${truncateContextText(row.summary, 220)}`);
|
|
1283
|
-
}
|
|
1284
|
-
return lines.join("\n");
|
|
1285
|
-
}
|
|
1286
|
-
function formatSqliteTimestampForContext(timestamp, timezone) {
|
|
1287
|
-
const local = nowInTimezone(timezone === "system" ? undefined : timezone, new Date(parseSqliteUtcMs(timestamp)));
|
|
1288
|
-
return `${local.year}-${String(local.month).padStart(2, "0")}-${String(local.day).padStart(2, "0")} ${String(local.hours).padStart(2, "0")}:${String(local.minutes).padStart(2, "0")}`;
|
|
1289
|
-
}
|
|
1290
|
-
function truncateContextText(text, maxChars) {
|
|
1291
|
-
const compact = text.replace(/\s+/g, " ").trim();
|
|
1292
|
-
if (compact.length <= maxChars)
|
|
1293
|
-
return compact;
|
|
1294
|
-
return `${compact.slice(0, maxChars - 3)}...`;
|
|
1295
665
|
}
|
|
1296
|
-
//# sourceMappingURL=context-builder.js.map
|