@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
|
@@ -0,0 +1,1230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MorningRoutinePipelineOrchestrator` — Phase 5 of
|
|
3
|
+
* `docs/design/appendices/morning-routine-optimization.md`. Replaces the
|
|
4
|
+
* single monolithic medium-tier session that today's
|
|
5
|
+
* `MorningRoutineRunner.executeMorningRoutine` runs with a daemon-
|
|
6
|
+
* orchestrated pipeline:
|
|
7
|
+
*
|
|
8
|
+
* ① rotateDayFiles (owned by MorningRoutineRunner)
|
|
9
|
+
* ② HandoffParser (this module)
|
|
10
|
+
* ③ JournalSkeletonBuilder (this module)
|
|
11
|
+
* ④ Pre-pass fan-out (owned by MorningRoutineRunner)
|
|
12
|
+
* ⑤A Stage A: today.md synthesis [medium] (this module) ─┐ Promise.all
|
|
13
|
+
* ⑤B Stage B: daily journal author [lite] (this module) ─┘
|
|
14
|
+
* ⑥ AgentJournalAppender (Phase 6 — left to MorningRoutineRunner)
|
|
15
|
+
* ⑥b parent audit row emit (this module)
|
|
16
|
+
* ⑦ diagnoseTodayMdState (owned by MorningRoutineRunner)
|
|
17
|
+
* ⑧ Post-morning catchups + roadmap_refresh (owned by MorningRoutineRunner)
|
|
18
|
+
*
|
|
19
|
+
* The orchestrator owns only ②③⑤A∥⑤B⑥b. ① and ④ are upstream of `run()`;
|
|
20
|
+
* ⑥, ⑦, ⑧ stay with the runner so the existing today.md health check /
|
|
21
|
+
* retry chain / catchups continue to work unchanged on both legacy and
|
|
22
|
+
* V2 paths.
|
|
23
|
+
*
|
|
24
|
+
* Stage event design:
|
|
25
|
+
* - Stage A event.type = `routine.morning_routine_today` so its
|
|
26
|
+
* `agent_actions` row lands with `action_type='routine.morning_routine_today'`
|
|
27
|
+
* (the audit logger derives action_type from `event.type`). Stage A's
|
|
28
|
+
* `routine` field stays `"morning_routine"` so ContextBuilder's
|
|
29
|
+
* existing heavy-context branch fires (yesterday.md / roadmap.md /
|
|
30
|
+
* active_projects / calendar_events_7d).
|
|
31
|
+
* - Stage B event.type = `routine.morning_routine_journal`. Stage B's
|
|
32
|
+
* `routine` field is `"morning_routine_journal"` so ContextBuilder
|
|
33
|
+
* fires the minimal Stage-B branch added in Phase 5 (calendar_events_7d
|
|
34
|
+
* for wikilink resolution; no yesterday / roadmap / projects).
|
|
35
|
+
* - Both stage events share `correlationId` with the parent
|
|
36
|
+
* `routine.morning_routine` envelope — `loadMorningRoutineActionRows`
|
|
37
|
+
* and `emitMorningRoutineParentAuditRow` use that as `event_id` to
|
|
38
|
+
* correlate.
|
|
39
|
+
*
|
|
40
|
+
* Today.md write-lock: Stage A inherits the lockId set on the parent
|
|
41
|
+
* event by `MorningRoutineRunner` (the lock is acquired before this
|
|
42
|
+
* runs and released after); Stage B does not write to today.md and
|
|
43
|
+
* does not receive the lockId.
|
|
44
|
+
*
|
|
45
|
+
* Retry semantics (rev2 — `morning-routine-optimization.md`
|
|
46
|
+
* §"Pipeline-level invariants"):
|
|
47
|
+
* - The retry chain is gated on today.md health; only Stage A regen
|
|
48
|
+
* is what fixes a missing / wrong-date today.md. On retry,
|
|
49
|
+
* `inputs.isRetry` is true and Stage B is NOT re-fired. Phase 5
|
|
50
|
+
* simplification: if Stage B succeeded on attempt 1, its
|
|
51
|
+
* `daily/<yesterday>.md` is already on disk and re-firing would
|
|
52
|
+
* hit the 200/PATCH-Agent-revision path, producing a second
|
|
53
|
+
* journal entry on every retry; if Stage B failed on attempt 1,
|
|
54
|
+
* re-firing would still risk that duplication once the next
|
|
55
|
+
* scheduled write succeeds. The trade-off is documented in design
|
|
56
|
+
* §"Retry semantics" — Phase 6 may revisit if structured Stage B
|
|
57
|
+
* result tracking justifies the work.
|
|
58
|
+
*
|
|
59
|
+
* Pre-pass skip on retry: not enforced here because `MorningRoutineRunner`
|
|
60
|
+
* already short-circuits the pre-pass when `isRetry === true`. The
|
|
61
|
+
* pre-pass result lives on the parent event's `event.data.fetchReportBlock`
|
|
62
|
+
* and is forwarded into the Stage A event unchanged (Stage B does not
|
|
63
|
+
* consume it).
|
|
64
|
+
*/
|
|
65
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
66
|
+
import { join } from "node:path";
|
|
67
|
+
import { EventPriority, getAgentDayBoundsUtc, getAgentDayDateStr, } from "@aitne/shared";
|
|
68
|
+
import { getContextDir } from "../../config.js";
|
|
69
|
+
import { BackendRouterHandledError, } from "../backends/backend-router.js";
|
|
70
|
+
import { BackendQuotaError } from "../agent-core.js";
|
|
71
|
+
import { parseHandoff } from "./handoff-parser.js";
|
|
72
|
+
import { buildJournalSkeleton, gatherJournalSkeletonFacts, } from "./journal-skeleton-builder.js";
|
|
73
|
+
import { buildRoadmapSkeleton, gatherRoadmapSkeletonFacts, } from "./roadmap-skeleton-builder.js";
|
|
74
|
+
import { emitMorningRoutineParentAuditRow, } from "./parent-audit-emitter.js";
|
|
75
|
+
import { appendMorningRoutineJournalEntry, STAGE_A_ACTION_TYPE, STAGE_B_ACTION_TYPE, } from "./agent-journal-appender.js";
|
|
76
|
+
import { maybeEmitPartialExtractStreakDm, } from "./partial-extract-streak.js";
|
|
77
|
+
import { readIntegrationState } from "../../db/integrations-store.js";
|
|
78
|
+
import { buildPreMorningDigest, renderPreMorningDigestMarkdown, } from "../../services/browser-history/pipeline/pre-morning-digest.js";
|
|
79
|
+
import { createLogger } from "../../logging.js";
|
|
80
|
+
const logger = createLogger("morning-pipeline-orchestrator");
|
|
81
|
+
const STAGE_A_PROCESS_KEY = "routine.morning_routine_today";
|
|
82
|
+
const STAGE_B_PROCESS_KEY = "routine.morning_routine_journal";
|
|
83
|
+
/**
|
|
84
|
+
* The `routine` slug carried on each stage's RoutineEvent. Stage A reuses
|
|
85
|
+
* the legacy `"morning_routine"` value so the heavy ContextBuilder branch
|
|
86
|
+
* (yesterday.md / roadmap.md / active_projects / calendar_events_7d)
|
|
87
|
+
* continues to fire unchanged — the Phase 5 split is about dispatch
|
|
88
|
+
* shape, not Stage A's context inputs. Stage B's
|
|
89
|
+
* `"morning_routine_journal"` slug routes into the minimal branch added
|
|
90
|
+
* to ContextBuilder for Phase 5.
|
|
91
|
+
*/
|
|
92
|
+
const STAGE_A_ROUTINE_SLUG = "morning_routine";
|
|
93
|
+
const STAGE_B_ROUTINE_SLUG = "morning_routine_journal";
|
|
94
|
+
export class MorningRoutinePipelineOrchestrator {
|
|
95
|
+
deps;
|
|
96
|
+
constructor(deps) {
|
|
97
|
+
this.deps = deps;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Drive ②③⑤A∥⑤B. The caller (`MorningRoutineRunner`) is responsible
|
|
101
|
+
* for invoking ⑦ (today.md health diagnose) and ⑥b (parent audit
|
|
102
|
+
* emit, via `emitParentAuditRow`) afterwards.
|
|
103
|
+
*
|
|
104
|
+
* Errors:
|
|
105
|
+
* - Stage A throw → re-thrown so the runner's outer try/finally
|
|
106
|
+
* (lock release + flag reset) still fires, and the runner's
|
|
107
|
+
* `diagnoseTodayMdState` post-check catches the missing today.md
|
|
108
|
+
* and schedules a retry the same way legacy failures do.
|
|
109
|
+
* - Stage B throw → logged + folded into `stageBResult=null`. Does
|
|
110
|
+
* NOT propagate; Stage B failure is independent of today.md
|
|
111
|
+
* health (the day still opens, the journal is best-effort).
|
|
112
|
+
*/
|
|
113
|
+
async run(inputs) {
|
|
114
|
+
const startedAt = new Date();
|
|
115
|
+
const parentEvent = inputs.parentEvent;
|
|
116
|
+
const correlationId = parentEvent.correlationId;
|
|
117
|
+
// ② HandoffParser — read yesterday.md, parse `## Handoff`, render the
|
|
118
|
+
// `<handoff_parsed>` XML block. Fail-soft per design §"Data-flow
|
|
119
|
+
// principle": when parsing returns null (no file, malformed section)
|
|
120
|
+
// the orchestrator omits the block and Stage A's task-flow falls
|
|
121
|
+
// back to reading `<yesterday>` raw — one extra Stage A turn at most.
|
|
122
|
+
const handoffParsedBlock = this.buildHandoffParsedBlock();
|
|
123
|
+
// ③ JournalSkeletonBuilder — deterministic frontmatter +
|
|
124
|
+
// pre-aggregated facts for yesterday's daily journal. Skipped on
|
|
125
|
+
// retry per `morning-routine-optimization.md` rev4
|
|
126
|
+
// §"Pipeline-level invariants → Retry semantics": Stage B is not
|
|
127
|
+
// re-fired on retry (its prior-attempt PUT is preserved to avoid
|
|
128
|
+
// double-authoring the daily file), so building the skeleton would
|
|
129
|
+
// do work with no consumer. The builder itself remains idempotent
|
|
130
|
+
// — re-enabling Stage B on retry would require no skeleton change.
|
|
131
|
+
const stageBInputs = inputs.isRetry
|
|
132
|
+
? null
|
|
133
|
+
: this.buildStageBInputs();
|
|
134
|
+
// morning-routine-optimization.md Phase 7 — daemon-prepared roadmap
|
|
135
|
+
// skeleton for the first-run (no-yesterday) branch. The legacy
|
|
136
|
+
// `routine.morning_routine_initial` high-tier session paid for an
|
|
137
|
+
// Opus turn to generate this from scratch; the medium-tier Stage A
|
|
138
|
+
// can spot-edit a deterministic skeleton into roadmap.md via the
|
|
139
|
+
// same `roadmap` skill PATCH paths the recurring branch uses. Only
|
|
140
|
+
// emitted on the first-run branch (yesterday.md absent) — the
|
|
141
|
+
// recurring branch leaves the block off and Stage A reads the
|
|
142
|
+
// truncated `<roadmap>` ContextBuilder injects as usual.
|
|
143
|
+
const roadmapSkeletonBlock = this.buildRoadmapSkeletonBlock();
|
|
144
|
+
// ⑤A + ⑤B — Promise.allSettled so a Stage B throw does not abort
|
|
145
|
+
// Stage A. (Promise.all would; Stage A's result is what gates the
|
|
146
|
+
// morning routine's success, so we always want to surface it.)
|
|
147
|
+
const stageAEvent = this.composeStageAEvent(parentEvent, correlationId, handoffParsedBlock, roadmapSkeletonBlock);
|
|
148
|
+
const stageBEvent = stageBInputs === null
|
|
149
|
+
? null
|
|
150
|
+
: this.composeStageBEvent(parentEvent, correlationId, stageBInputs.block, stageBInputs.yesterdayDateStr);
|
|
151
|
+
// Pre-resolve each stage's binding up front so the failure-path
|
|
152
|
+
// handler below can attribute the `result='failed'` row to the
|
|
153
|
+
// requested backend / model — `BackendQuotaError.backendId` covers
|
|
154
|
+
// the quota case, but other rejection shapes (context build error,
|
|
155
|
+
// an unrelated SDK throw) carry no binding info on the error itself.
|
|
156
|
+
// Resolving once at the top also matches the pattern `runStageA/B`
|
|
157
|
+
// already uses internally and keeps the binding observable from this
|
|
158
|
+
// scope. Wrapped in try/catch so a resolver throw still falls through
|
|
159
|
+
// to the stage dispatch (which would re-throw the same error and let
|
|
160
|
+
// the rejection path persist a failed row with a null binding).
|
|
161
|
+
const stageABinding = this.safeResolveBinding(stageAEvent, STAGE_A_PROCESS_KEY, inputs.requestedTier);
|
|
162
|
+
const stageBBinding = stageBEvent === null
|
|
163
|
+
? null
|
|
164
|
+
: this.safeResolveBinding(stageBEvent, STAGE_B_PROCESS_KEY);
|
|
165
|
+
// morning-routine-optimization.md Phase 6 — pre-insert the
|
|
166
|
+
// `result='in_progress'` sentinel for Stage A so the agent's
|
|
167
|
+
// `PATCH /api/agent-actions/self` resolves to a real row during the
|
|
168
|
+
// run. The eventual `logAction` / `logError` call from
|
|
169
|
+
// `persistStageAuditRows` settles the same row (UPSERT path in
|
|
170
|
+
// `audit.ts`), preserving the metadata column the agent wrote.
|
|
171
|
+
// Stage B does NOT call PATCH self (it has no `agent-actions` skill
|
|
172
|
+
// in its policy set), so it gets no pre-insert.
|
|
173
|
+
this.preInsertStageAInProgressRow(correlationId);
|
|
174
|
+
// Capture per-stage timing INSIDE each promise so the failure path
|
|
175
|
+
// can backdate `started_at` honestly. A naïve `nowMs = Date.now()`
|
|
176
|
+
// taken AFTER `Promise.allSettled` returns would attribute Stage A's
|
|
177
|
+
// ~2h wall-clock to Stage B's `duration_ms` whenever Stage B
|
|
178
|
+
// finished early (e.g. 15s budget-cap failure followed by Stage A
|
|
179
|
+
// grinding for hours), inflating the failed row's reported runtime
|
|
180
|
+
// by an order of magnitude. `.finally()` captures the per-stage
|
|
181
|
+
// settle moment without altering the propagated value/reason that
|
|
182
|
+
// `Promise.allSettled` sees.
|
|
183
|
+
const stageAStartedAtMs = Date.now();
|
|
184
|
+
const stageBStartedAtMs = Date.now();
|
|
185
|
+
let stageACompletedAtMs = stageAStartedAtMs;
|
|
186
|
+
let stageBCompletedAtMs = stageBStartedAtMs;
|
|
187
|
+
const [stageA, stageB] = await Promise.allSettled([
|
|
188
|
+
this.runStageA(stageAEvent, inputs.requestedTier, stageABinding)
|
|
189
|
+
.finally(() => { stageACompletedAtMs = Date.now(); }),
|
|
190
|
+
stageBEvent === null || stageBBinding === null
|
|
191
|
+
? Promise.resolve(null)
|
|
192
|
+
: this.runStageB(stageBEvent, stageBBinding)
|
|
193
|
+
.finally(() => { stageBCompletedAtMs = Date.now(); }),
|
|
194
|
+
]);
|
|
195
|
+
// daily-journal-daemon-write.md §4.11 — invoke the daemon-side
|
|
196
|
+
// daily-journal composer BEFORE persistStageAuditRows so the
|
|
197
|
+
// compose outcome lands on the same INSERT/UPSERT as the Stage B
|
|
198
|
+
// row's terminal result (no post-UPDATE race). When the composer
|
|
199
|
+
// dep is absent (Phase 5 test fixtures) or Stage B wasn't
|
|
200
|
+
// dispatched (retry path / first-run skip), we skip the call and
|
|
201
|
+
// the audit row lands without `detail.dailyWrite` — the appender
|
|
202
|
+
// falls back to file-presence detection in that case.
|
|
203
|
+
const stageBResultIfFulfilledForCompose = stageB.status === "fulfilled" ? stageB.value : null;
|
|
204
|
+
const dailyComposeOutcome = await this.composeDailyJournalIfPossible({
|
|
205
|
+
correlationId,
|
|
206
|
+
stageBEvent,
|
|
207
|
+
stageBInputs,
|
|
208
|
+
stageBResult: stageBResultIfFulfilledForCompose,
|
|
209
|
+
});
|
|
210
|
+
// Land Stage A / Stage B `agent_actions` rows BEFORE deciding whether
|
|
211
|
+
// to re-throw on Stage A failure. The rows are what
|
|
212
|
+
// `parent-audit-emitter.readStageSummaries` reads via SQL, what the
|
|
213
|
+
// autonomous-cost-cap SUM aggregates over, and what
|
|
214
|
+
// `agent-journal-appender` (Phase 6) template-fills from. Without
|
|
215
|
+
// this call the orchestrator's parent-audit emit silently degrades to
|
|
216
|
+
// `stage_a_row_missing` in production and Stage B's cost is dropped
|
|
217
|
+
// from the budget tracker.
|
|
218
|
+
//
|
|
219
|
+
// We deliberately call this even when Stage A failed: Stage B's
|
|
220
|
+
// result may exist and its row is still meaningful (parent-audit emit
|
|
221
|
+
// won't fire on this attempt because Stage A failed, but a retry's
|
|
222
|
+
// emit will read Stage B's prior-attempt row).
|
|
223
|
+
//
|
|
224
|
+
// Success path → `processResult` (which calls `audit.logAction`,
|
|
225
|
+
// settling the in_progress sentinel row to `success`).
|
|
226
|
+
// Failure path → `audit.logError` (which UPSERTs the same in_progress
|
|
227
|
+
// sentinel to `result='failed'`, preserving any agent-side
|
|
228
|
+
// `PATCH /api/agent-actions/self` metadata writes that landed before
|
|
229
|
+
// the throw). The failure-path write is what closes the
|
|
230
|
+
// "Stage B threw and audit was silently dropped" hole that masked
|
|
231
|
+
// Stage B budget-cap failures as `Journal synthesis: skipped (no
|
|
232
|
+
// prior-day data)` — indistinguishable from a legit first-run skip.
|
|
233
|
+
// Routine events are silent-by-default in `shouldNotify`, so no
|
|
234
|
+
// user-facing notify side effect fires on either path.
|
|
235
|
+
const stageBResultIfFulfilled = stageB.status === "fulfilled" ? stageB.value : null;
|
|
236
|
+
await this.persistStageAuditRows({
|
|
237
|
+
stageA: {
|
|
238
|
+
event: stageAEvent,
|
|
239
|
+
binding: stageABinding,
|
|
240
|
+
startedAtMs: stageAStartedAtMs,
|
|
241
|
+
completedAtMs: stageACompletedAtMs,
|
|
242
|
+
...(stageA.status === "fulfilled"
|
|
243
|
+
? { result: stageA.value }
|
|
244
|
+
: { error: stageA.reason }),
|
|
245
|
+
},
|
|
246
|
+
stageB: stageBEvent === null
|
|
247
|
+
? null
|
|
248
|
+
: {
|
|
249
|
+
event: stageBEvent,
|
|
250
|
+
binding: stageBBinding,
|
|
251
|
+
startedAtMs: stageBStartedAtMs,
|
|
252
|
+
completedAtMs: stageBCompletedAtMs,
|
|
253
|
+
// §4.11 — plumb the dailyWrite outcome onto the Stage B
|
|
254
|
+
// outcome so persistStageAuditRows can include it in the
|
|
255
|
+
// single INSERT/UPSERT that lands the row.
|
|
256
|
+
...(dailyComposeOutcome
|
|
257
|
+
? { dailyWrite: toDailyWriteAuditDetail(dailyComposeOutcome) }
|
|
258
|
+
: {}),
|
|
259
|
+
...(stageB.status === "fulfilled"
|
|
260
|
+
? { result: stageBResultIfFulfilled }
|
|
261
|
+
: { error: stageB.reason }),
|
|
262
|
+
},
|
|
263
|
+
});
|
|
264
|
+
// §4.7b — after the Stage B row has landed (so its just-written
|
|
265
|
+
// `detail.dailyWrite` is visible to the streak query), check for
|
|
266
|
+
// a 3-day all-partial streak and emit the owner DM (subject to
|
|
267
|
+
// the 24h dedup window). Runs only when Stage B was attempted on
|
|
268
|
+
// this morning; first-run / retry skips don't add a row and the
|
|
269
|
+
// SQL filter excludes them naturally.
|
|
270
|
+
if (dailyComposeOutcome !== null) {
|
|
271
|
+
try {
|
|
272
|
+
await maybeEmitPartialExtractStreakDm({
|
|
273
|
+
db: this.deps.db,
|
|
274
|
+
correlationId,
|
|
275
|
+
notifier: this.deps.partialExtractStreakNotifier ?? null,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
logger.warn({ err, correlationId }, "Partial-extract streak check threw — continuing");
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (stageA.status === "rejected") {
|
|
283
|
+
// Re-throw so the runner's existing finally / retry path fires.
|
|
284
|
+
// Log enough context that the operator can confirm the V2 path
|
|
285
|
+
// was active when the throw happened — the runner-side log will
|
|
286
|
+
// also fire from its own catch.
|
|
287
|
+
logger.error({
|
|
288
|
+
err: stageA.reason,
|
|
289
|
+
correlationId,
|
|
290
|
+
stageB: stageB.status,
|
|
291
|
+
}, "Stage A threw — propagating to MorningRoutineRunner");
|
|
292
|
+
throw stageA.reason;
|
|
293
|
+
}
|
|
294
|
+
if (stageB.status === "rejected") {
|
|
295
|
+
logger.warn({ err: stageB.reason, correlationId }, "Stage B threw — folding into stageBResult=null; today.md health gates parent audit independently");
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
stageAResult: stageA.value,
|
|
299
|
+
stageBResult: stageBResultIfFulfilled,
|
|
300
|
+
startedAt,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Wrap `agentRouter.resolveBinding` so a resolver-side throw (e.g. a
|
|
305
|
+
* malformed `process_backend_config` row) doesn't abort the whole
|
|
306
|
+
* `run()` before either stage gets a chance to dispatch. A null
|
|
307
|
+
* binding signals "binding unknown" to the failure-path writer; the
|
|
308
|
+
* resulting `agent_actions(result='failed')` row will lack the
|
|
309
|
+
* backend / model columns but still pin the failure to a known
|
|
310
|
+
* stage event. The stage's own `runStage*` will re-throw the same
|
|
311
|
+
* resolution error on dispatch and that's what
|
|
312
|
+
* `persistStageAuditRows` records.
|
|
313
|
+
*/
|
|
314
|
+
safeResolveBinding(event, processKey, requestedTier) {
|
|
315
|
+
try {
|
|
316
|
+
return this.deps.agentRouter.resolveBinding(event, {
|
|
317
|
+
processKey,
|
|
318
|
+
...(requestedTier ? { requestedTier } : {}),
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
catch (err) {
|
|
322
|
+
logger.warn({ err, processKey, correlationId: event.correlationId }, "resolveBinding threw at the orchestrator's pre-resolve site — falling back to null binding");
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Write per-stage `agent_actions` rows for both success and failure
|
|
328
|
+
* outcomes. Each stage's row lands keyed on its OWN `RoutineEvent`
|
|
329
|
+
* (carrying the stage's process-key event type), so the row's
|
|
330
|
+
* `action_type` is `routine.morning_routine_today` /
|
|
331
|
+
* `routine.morning_routine_journal` — exactly what
|
|
332
|
+
* `parent-audit-emitter.readStageSummaries` and the Phase 6
|
|
333
|
+
* `agent-journal-appender` will read.
|
|
334
|
+
*
|
|
335
|
+
* Success path → `processResult` (which calls `audit.logAction`,
|
|
336
|
+
* settling the in_progress sentinel row to `result='success'`).
|
|
337
|
+
*
|
|
338
|
+
* Failure path → `audit.logError` (which UPSERTs the same in_progress
|
|
339
|
+
* sentinel to `result='failed'`, preserving the agent-side metadata
|
|
340
|
+
* column intact). Without the failure-path write, Stage B rejections
|
|
341
|
+
* (most commonly `BackendQuotaError(max_budget_usd)` from a tight
|
|
342
|
+
* lite-tier envelope) leave the audit trail with NO Stage B row at
|
|
343
|
+
* all — `agent-journal-appender.formatJournalLine` then falls into
|
|
344
|
+
* the `stageB === null` branch and renders `Journal synthesis:
|
|
345
|
+
* skipped (no prior-day data)`, indistinguishable from a legitimate
|
|
346
|
+
* first-run skip. This is the structural bug the failure-path write
|
|
347
|
+
* closes.
|
|
348
|
+
*
|
|
349
|
+
* Failures inside `processResult` or `audit.logError` do NOT
|
|
350
|
+
* propagate — losing audit rows is bad, but blocking the entire
|
|
351
|
+
* morning routine on a downstream telemetry hiccup is worse. In
|
|
352
|
+
* practice `audit.logAction` / `audit.logError` already swallow their
|
|
353
|
+
* own DB errors with an internal logger.error, so the catches here
|
|
354
|
+
* are defence-in-depth guards against non-audit hooks (notify side
|
|
355
|
+
* effects we don't expect for routine events but might land later).
|
|
356
|
+
*
|
|
357
|
+
* Tail-risk acknowledgement: if a stage row truly fails to land
|
|
358
|
+
* (audit's internal try/catch swallowed a real SQLite error AND
|
|
359
|
+
* `processResult`'s notification path threw too), the parent-audit
|
|
360
|
+
* emitter will return `stage_a_row_missing` and the pre-routine gate
|
|
361
|
+
* stays unfired for the day — that day's hourly_check / evening_review
|
|
362
|
+
* are skipped with `morning_routine_pending_for_today`, but
|
|
363
|
+
* `MAX_RETRIES`-bounded `scheduleMorningRetry` does NOT loop on this
|
|
364
|
+
* shape because today.md health is independent. The day's automation
|
|
365
|
+
* degrades silently for that day; it does not infinite-loop.
|
|
366
|
+
*/
|
|
367
|
+
async persistStageAuditRows(args) {
|
|
368
|
+
const tasks = [];
|
|
369
|
+
const outcomes = [
|
|
370
|
+
{ label: "A", outcome: args.stageA },
|
|
371
|
+
...(args.stageB === null
|
|
372
|
+
? []
|
|
373
|
+
: [{ label: "B", outcome: args.stageB }]),
|
|
374
|
+
];
|
|
375
|
+
for (const { label, outcome } of outcomes) {
|
|
376
|
+
if ("result" in outcome && outcome.result !== null) {
|
|
377
|
+
tasks.push(this.deps.resultProcessor
|
|
378
|
+
.processResult(outcome.result, outcome.event, false, {
|
|
379
|
+
// Thread dailyWrite into the result-processor's options
|
|
380
|
+
// so its `audit.logAction` call lands `detail.dailyWrite`
|
|
381
|
+
// on the same INSERT/UPSERT as the row's terminal result.
|
|
382
|
+
...(outcome.dailyWrite ? { dailyWrite: outcome.dailyWrite } : {}),
|
|
383
|
+
})
|
|
384
|
+
.catch((err) => {
|
|
385
|
+
logger.warn({ err, correlationId: outcome.event.correlationId, stage: label }, `Stage ${label} processResult failed — audit row may be missing`);
|
|
386
|
+
}));
|
|
387
|
+
}
|
|
388
|
+
else if ("error" in outcome) {
|
|
389
|
+
tasks.push(this.recordStageFailure(outcome).catch((err) => {
|
|
390
|
+
logger.warn({ err, correlationId: outcome.event.correlationId, stage: label }, `Stage ${label} recordStageFailure threw — audit row may be missing`);
|
|
391
|
+
}));
|
|
392
|
+
}
|
|
393
|
+
// "result" in outcome with `result === null` is the Stage B
|
|
394
|
+
// first-run skip path: no execute call, no audit row to write.
|
|
395
|
+
}
|
|
396
|
+
if (tasks.length > 0) {
|
|
397
|
+
await Promise.all(tasks);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Write a `result='failed'` agent_actions row for a rejected stage.
|
|
402
|
+
* Uses `audit.logError`, which UPSERTs the matching in_progress
|
|
403
|
+
* sentinel row when one exists (Stage A's pre-insert) and INSERTs a
|
|
404
|
+
* fresh row otherwise (Stage B). Both paths land a terminal-state
|
|
405
|
+
* row keyed on `(event_id=correlationId, action_type=event.type)` so
|
|
406
|
+
* the downstream readers — `loadMorningRoutineActionRows`,
|
|
407
|
+
* `parent-audit-emitter.readStageSummaries`,
|
|
408
|
+
* `agent-journal-appender.formatJournalLine` — see one consistent
|
|
409
|
+
* shape per stage regardless of which terminal state the stage
|
|
410
|
+
* reached.
|
|
411
|
+
*
|
|
412
|
+
* Backend / model attribution: pulled from the pre-resolved binding
|
|
413
|
+
* when available, with a fallback to `BackendQuotaError.backendId`
|
|
414
|
+
* if the binding was unresolvable but the error happens to carry
|
|
415
|
+
* that field. Other failure shapes leave backend/model unset; the
|
|
416
|
+
* audit logger's `context` schema tolerates absent values.
|
|
417
|
+
*/
|
|
418
|
+
async recordStageFailure(outcome) {
|
|
419
|
+
if (this.deps.audit === undefined)
|
|
420
|
+
return;
|
|
421
|
+
const error = outcome.error instanceof Error
|
|
422
|
+
? outcome.error
|
|
423
|
+
: new Error(String(outcome.error ?? "stage rejection with no message"));
|
|
424
|
+
const durationMs = Math.max(0, outcome.completedAtMs - outcome.startedAtMs);
|
|
425
|
+
const quotaError = extractQuotaError(outcome.error);
|
|
426
|
+
const context = { durationMs };
|
|
427
|
+
const backendId = outcome.binding?.main.backendId ?? quotaError?.backendId ?? undefined;
|
|
428
|
+
const modelId = outcome.binding?.main.modelId ?? undefined;
|
|
429
|
+
if (backendId !== undefined)
|
|
430
|
+
context.backendId = backendId;
|
|
431
|
+
if (modelId !== undefined)
|
|
432
|
+
context.modelId = modelId;
|
|
433
|
+
if (quotaError !== null) {
|
|
434
|
+
context.failureKind = "quota";
|
|
435
|
+
context.failureCode = quotaError.originalCode;
|
|
436
|
+
}
|
|
437
|
+
// §4.11 — Stage B's failure-path row also carries the dailyWrite
|
|
438
|
+
// outcome when one was computed. Useful for the streak detector
|
|
439
|
+
// when Stage B threw but `composeDailyJournalIfPossible` was
|
|
440
|
+
// dispatched anyway (e.g. session crashed AFTER emitting valid
|
|
441
|
+
// body / frontmatter tags in its final text — uncommon but
|
|
442
|
+
// representable).
|
|
443
|
+
if (outcome.dailyWrite) {
|
|
444
|
+
context.dailyWrite = outcome.dailyWrite;
|
|
445
|
+
}
|
|
446
|
+
// Morning routine fires from cron — never reactive — same trigger
|
|
447
|
+
// shape as `preInsertStageAInProgressRow`. Keeping the trigger value
|
|
448
|
+
// consistent with the pre-insert row also keeps the UPSERT idempotent
|
|
449
|
+
// (Stage A's in_progress row has `trigger='autonomous'`; we don't
|
|
450
|
+
// want the UPSERT to flip it).
|
|
451
|
+
this.deps.audit.logError(outcome.event, error, "autonomous", context);
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* daily-journal-daemon-write.md §4.11 — invoke the daily-journal
|
|
455
|
+
* composer when (a) the orchestrator has a composer dep, (b) Stage B
|
|
456
|
+
* was actually dispatched (event built), and (c) `buildStageBInputs`
|
|
457
|
+
* produced the skeleton facts the composer needs. Otherwise return
|
|
458
|
+
* `null` and let the appender fall back to file-presence detection.
|
|
459
|
+
*
|
|
460
|
+
* Reuses the SAME skeleton + counts cached on `stageBInputs` (the
|
|
461
|
+
* exact byte stream Stage B's prompt saw) rather than re-deriving
|
|
462
|
+
* against the live DB. Re-deriving was the previous behaviour and
|
|
463
|
+
* introduced a drift class: if a new DM or calendar observation
|
|
464
|
+
* landed during Stage A's wall-clock window, the LLM authored against
|
|
465
|
+
* Skeleton-V1 while the daemon wrote Skeleton-V2 frontmatter; ditto
|
|
466
|
+
* `updated:` if the agent day rolled over between the two reads.
|
|
467
|
+
*
|
|
468
|
+
* Stage B's `AgentResult` may be `null` even when the event was
|
|
469
|
+
* dispatched (the SDK threw mid-stream); the composer handles that
|
|
470
|
+
* explicitly via its `stage_b_null` reason.
|
|
471
|
+
*/
|
|
472
|
+
async composeDailyJournalIfPossible(args) {
|
|
473
|
+
if (this.deps.dailyJournalComposer === undefined)
|
|
474
|
+
return null;
|
|
475
|
+
if (args.stageBEvent === null)
|
|
476
|
+
return null;
|
|
477
|
+
if (args.stageBInputs === null)
|
|
478
|
+
return null;
|
|
479
|
+
try {
|
|
480
|
+
const outcome = await this.deps.dailyJournalComposer.compose({
|
|
481
|
+
correlationId: args.correlationId,
|
|
482
|
+
yesterdayDateStr: args.stageBInputs.yesterdayDateStr,
|
|
483
|
+
skeleton: args.stageBInputs.skeleton,
|
|
484
|
+
calendarEvents: args.stageBInputs.calendarEventsCount,
|
|
485
|
+
messagesHandled: args.stageBInputs.messagesHandled,
|
|
486
|
+
stageBResult: args.stageBResult,
|
|
487
|
+
});
|
|
488
|
+
return outcome;
|
|
489
|
+
}
|
|
490
|
+
catch (err) {
|
|
491
|
+
// The composer's own try/catch returns `ok: false, reason:
|
|
492
|
+
// "write_failed"` for write errors — anything that escapes is a
|
|
493
|
+
// construction bug. Surface it as a structured `write_failed`
|
|
494
|
+
// outcome so the audit row still carries a discriminated reason
|
|
495
|
+
// rather than going silent.
|
|
496
|
+
logger.error({ err, correlationId: args.correlationId }, "Daily journal composer threw past its own catch — recording as write_failed");
|
|
497
|
+
return { ok: false, reason: "write_failed" };
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* ⑥b parent audit emit — the row keyed `action_type='routine.morning_routine'`
|
|
502
|
+
* that `morningRoutineRanToday` in `schedule-helpers.ts` SELECTs on.
|
|
503
|
+
* Called by `MorningRoutineRunner` AFTER its `diagnoseTodayMdState`
|
|
504
|
+
* verdict so the today.md health gate is enforced; gated also on
|
|
505
|
+
* Stage A success (Stage B success is recorded in `detail` but does
|
|
506
|
+
* NOT block — the day still "opened" if today.md is good).
|
|
507
|
+
*
|
|
508
|
+
* Reads agent_actions rows by correlationId to get authoritative
|
|
509
|
+
* `cost_usd` / `num_turns` / `result` for each stage — handles the
|
|
510
|
+
* case where one stage's `AgentResult` is in memory and the other
|
|
511
|
+
* is null (Stage B was skipped on retry) without an
|
|
512
|
+
* impedance-mismatch shim.
|
|
513
|
+
*/
|
|
514
|
+
emitParentAuditRow(args) {
|
|
515
|
+
const stages = this.readStageSummaries(args.correlationId);
|
|
516
|
+
return emitMorningRoutineParentAuditRow(this.deps.db, {
|
|
517
|
+
correlationId: args.correlationId,
|
|
518
|
+
stageA: stages.stageA,
|
|
519
|
+
stageB: stages.stageB,
|
|
520
|
+
todayMdHealth: args.todayMdHealth,
|
|
521
|
+
startedAt: args.startedAt,
|
|
522
|
+
completedAt: new Date(),
|
|
523
|
+
...(args.backend ? { backend: args.backend } : {}),
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* morning-routine-optimization.md Phase 6 — ⑥ AgentJournalAppender.
|
|
528
|
+
* Assembles the one-paragraph English audit-trail entry for
|
|
529
|
+
* `journal/agent.md` from `agent_actions` rows (stage results +
|
|
530
|
+
* the metadata column Stage A wrote via `PATCH /api/agent-actions/self`)
|
|
531
|
+
* plus `daily/<yesterday>.md` frontmatter. No LLM final-text parsing.
|
|
532
|
+
*
|
|
533
|
+
* Called by `MorningRoutineRunner` AFTER both stage rows have settled
|
|
534
|
+
* (so `loadMorningRoutineActionRows` sees terminal `result` + the
|
|
535
|
+
* agent-supplied metadata) and BEFORE `emitParentAuditRow` so the
|
|
536
|
+
* journal block is on disk by the time the pre-routine gate fires.
|
|
537
|
+
*
|
|
538
|
+
* Returns the appender's structured outcome so the runner can log the
|
|
539
|
+
* skip reason (e.g. `stage_a_row_missing` when the Stage A audit row
|
|
540
|
+
* never landed) without grepping the file. Returns `null` when the
|
|
541
|
+
* orchestrator was constructed without the deps the appender needs
|
|
542
|
+
* (Phase 5-only test fixtures) — caller treats `null` as a no-op.
|
|
543
|
+
*/
|
|
544
|
+
async appendAgentJournalEntry(args) {
|
|
545
|
+
const contextDir = getContextDir(this.deps.config, this.deps.db);
|
|
546
|
+
const now = new Date();
|
|
547
|
+
const yesterdayNow = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
|
548
|
+
const morningDateStr = getAgentDayDateStr(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, now);
|
|
549
|
+
const yesterdayDateStr = getAgentDayDateStr(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, yesterdayNow);
|
|
550
|
+
// Yesterday's agent-day UTC window — same shape `buildStageBInputs`
|
|
551
|
+
// derives for the skeleton facts. The appender uses it to aggregate
|
|
552
|
+
// the agent-action breakdown into the `journal/agent.md` footprint
|
|
553
|
+
// line. Recomputed here (rather than threaded from `buildStageBInputs`)
|
|
554
|
+
// because Stage B is dispatched async and the orchestrator does not
|
|
555
|
+
// retain its inputs between phases.
|
|
556
|
+
const bounds = getAgentDayBoundsUtc(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, yesterdayNow);
|
|
557
|
+
const agentDayWindow = { startUtc: bounds.start, endUtc: bounds.end };
|
|
558
|
+
return appendMorningRoutineJournalEntry({
|
|
559
|
+
db: this.deps.db,
|
|
560
|
+
contextDir,
|
|
561
|
+
...(this.deps.writeTracker
|
|
562
|
+
? { writeTracker: this.deps.writeTracker }
|
|
563
|
+
: {}),
|
|
564
|
+
}, {
|
|
565
|
+
correlationId: args.correlationId,
|
|
566
|
+
morningDateStr,
|
|
567
|
+
yesterdayDateStr,
|
|
568
|
+
agentDayWindow,
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
// ── ⑥ pre-insert in_progress row for Stage A ────────────────────────
|
|
572
|
+
preInsertStageAInProgressRow(correlationId) {
|
|
573
|
+
if (this.deps.audit === undefined)
|
|
574
|
+
return;
|
|
575
|
+
this.deps.audit.insertInProgressRow({
|
|
576
|
+
correlationId,
|
|
577
|
+
actionType: STAGE_A_ACTION_TYPE,
|
|
578
|
+
// Morning routine fires from cron — never reactive.
|
|
579
|
+
trigger: "autonomous",
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
// ── ② HandoffParser plumbing ─────────────────────────────────────────
|
|
583
|
+
buildHandoffParsedBlock() {
|
|
584
|
+
const contextDir = getContextDir(this.deps.config, this.deps.db);
|
|
585
|
+
const yesterdayPath = join(contextDir, "state", "yesterday.md");
|
|
586
|
+
if (!existsSync(yesterdayPath))
|
|
587
|
+
return null;
|
|
588
|
+
let body;
|
|
589
|
+
try {
|
|
590
|
+
body = readFileSync(yesterdayPath, "utf-8");
|
|
591
|
+
}
|
|
592
|
+
catch (err) {
|
|
593
|
+
logger.warn({ err, yesterdayPath }, "yesterday.md read failed — falling back to in-task handoff parse");
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
const parsed = parseHandoff(body);
|
|
597
|
+
if (parsed === null)
|
|
598
|
+
return null;
|
|
599
|
+
return renderHandoffParsedBlock(parsed);
|
|
600
|
+
}
|
|
601
|
+
// ── ③ JournalSkeletonBuilder plumbing ────────────────────────────────
|
|
602
|
+
buildStageBInputs() {
|
|
603
|
+
const contextDir = getContextDir(this.deps.config, this.deps.db);
|
|
604
|
+
// First-run skip: when yesterday.md is absent, there is no prior
|
|
605
|
+
// agent-day to author a journal about. Firing Stage B anyway would
|
|
606
|
+
// produce a phantom `daily/<yesterday>.md` with `calendar_events: 0`
|
|
607
|
+
// / `messages_handled: 0` / `## Tasks: (none)` for a date the user
|
|
608
|
+
// wasn't using the agent — and `daily/<date>.md` is user-facing in
|
|
609
|
+
// the vault, so the phantom entry is a real correctness issue, not
|
|
610
|
+
// just internal noise. Aligns with §5.9 Step 5's "Skipped when no
|
|
611
|
+
// yesterday.md (initial variant)" entry in the design's per-stage
|
|
612
|
+
// responsibility matrix. The downstream `agent-journal-appender`
|
|
613
|
+
// renders the daemon-emitted `Journal synthesis: skipped (no
|
|
614
|
+
// prior-day data)` line whenever `daily/<yesterday>.md` is absent on
|
|
615
|
+
// disk, so the audit-trail entry stays correct without Stage B.
|
|
616
|
+
const yesterdayPath = join(contextDir, "state", "yesterday.md");
|
|
617
|
+
if (!existsSync(yesterdayPath))
|
|
618
|
+
return null;
|
|
619
|
+
// Yesterday's agent-day window = today's window shifted by -24h.
|
|
620
|
+
// `getAgentDayBoundsUtc(now=<24h ago>)` yields the correct
|
|
621
|
+
// `[start, end)` even across the 04:00 boundary / DST transitions
|
|
622
|
+
// because the helper recomputes the offset at the boundary instant.
|
|
623
|
+
const now = new Date();
|
|
624
|
+
const yesterdayNow = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
|
625
|
+
// `getAgentDayBoundsUtc` returns `{start, end}` shaped strings;
|
|
626
|
+
// `gatherJournalSkeletonFacts` consumes `{startUtc, endUtc}`. Adapt
|
|
627
|
+
// here at the call site so the helper's shared shape stays stable
|
|
628
|
+
// across other callers (`buildYesterdaySqliteContext` etc.).
|
|
629
|
+
const bounds = getAgentDayBoundsUtc(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, yesterdayNow);
|
|
630
|
+
const window = { startUtc: bounds.start, endUtc: bounds.end };
|
|
631
|
+
const dateStr = getAgentDayDateStr(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, yesterdayNow);
|
|
632
|
+
// Today's agent-day — lands in the skeleton's `updated:` frontmatter
|
|
633
|
+
// field. Computed from `now` (not `yesterdayNow`) so a 04:00 run on
|
|
634
|
+
// 2026-05-15 stamps `updated: 2026-05-15` while the journal's `date:`
|
|
635
|
+
// stays `2026-05-14`.
|
|
636
|
+
const updatedDateStr = getAgentDayDateStr(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, now);
|
|
637
|
+
const weekday = new Date(`${dateStr}T00:00:00Z`).toLocaleDateString("en-US", {
|
|
638
|
+
weekday: "long",
|
|
639
|
+
timeZone: "UTC",
|
|
640
|
+
});
|
|
641
|
+
const yesterdayMd = readFileSync(yesterdayPath, "utf-8");
|
|
642
|
+
const facts = gatherJournalSkeletonFacts(this.deps.db, window);
|
|
643
|
+
const calendarEvents = this.readYesterdayCalendarEvents(window);
|
|
644
|
+
const skeletonInputs = {
|
|
645
|
+
dateStr,
|
|
646
|
+
weekday,
|
|
647
|
+
updatedDateStr,
|
|
648
|
+
yesterdayMd,
|
|
649
|
+
calendarEvents,
|
|
650
|
+
...(this.deps.config.timezone
|
|
651
|
+
? { timezone: this.deps.config.timezone }
|
|
652
|
+
: {}),
|
|
653
|
+
};
|
|
654
|
+
const skeletonBody = buildJournalSkeleton(skeletonInputs, facts);
|
|
655
|
+
return {
|
|
656
|
+
block: `<journal_skeleton>\n${skeletonBody}\n</journal_skeleton>`,
|
|
657
|
+
yesterdayDateStr: dateStr,
|
|
658
|
+
// daily-journal-daemon-write.md §4.11 (drift fix) — cache the
|
|
659
|
+
// skeleton inputs + pre-aggregated counts here so the post-
|
|
660
|
+
// `Promise.allSettled` composer can reuse the SAME byte stream
|
|
661
|
+
// Stage B's prompt saw. Re-deriving on the composer side (as the
|
|
662
|
+
// initial implementation did via `buildStageBSkeletonInputs`)
|
|
663
|
+
// re-runs `gatherJournalSkeletonFacts` + `readYesterdayCalendar
|
|
664
|
+
// Events` against the live DB; if a new DM or calendar observation
|
|
665
|
+
// landed during Stage A's wall-clock window, or the agent day rolled
|
|
666
|
+
// over, the LLM authored against Skeleton-V1 while the daemon wrote
|
|
667
|
+
// Skeleton-V2 frontmatter (`messages_handled` / `calendar_events`
|
|
668
|
+
// count drift, `updated:` date drift across the 04:00 boundary).
|
|
669
|
+
// One canonical snapshot eliminates the drift class entirely.
|
|
670
|
+
skeleton: skeletonInputs,
|
|
671
|
+
calendarEventsCount: calendarEvents.length,
|
|
672
|
+
messagesHandled: facts.messagesHandled,
|
|
673
|
+
};
|
|
674
|
+
}
|
|
675
|
+
readYesterdayCalendarEvents(window) {
|
|
676
|
+
// Calendar events stored in `observations` or `calendar_events` are
|
|
677
|
+
// schema-fluid across direct / delegated / native modes. Phase 2's
|
|
678
|
+
// skeleton builder is contract-tested against this shape; for Phase
|
|
679
|
+
// 5 wiring we read the agent-day window from `observations` rows
|
|
680
|
+
// tagged with a calendar source_prefix. Missing rows yield an empty
|
|
681
|
+
// array — the skeleton renders `- (none)` in that case.
|
|
682
|
+
const rows = this.deps.db
|
|
683
|
+
.prepare(`SELECT payload AS payload
|
|
684
|
+
FROM observations
|
|
685
|
+
WHERE (source LIKE 'google_calendar:%'
|
|
686
|
+
OR source LIKE 'outlook_calendar:%')
|
|
687
|
+
AND observed_at >= ?
|
|
688
|
+
AND observed_at < ?
|
|
689
|
+
ORDER BY observed_at ASC`)
|
|
690
|
+
.all(window.startUtc, window.endUtc);
|
|
691
|
+
const out = [];
|
|
692
|
+
const timezone = this.deps.config.timezone || undefined;
|
|
693
|
+
for (const row of rows) {
|
|
694
|
+
const event = parseCalendarPayload(row.payload, timezone);
|
|
695
|
+
if (event !== null)
|
|
696
|
+
out.push(event);
|
|
697
|
+
}
|
|
698
|
+
return out;
|
|
699
|
+
}
|
|
700
|
+
// ── ⑤A Stage A dispatch ──────────────────────────────────────────────
|
|
701
|
+
composeStageAEvent(parent, correlationId, handoffParsedBlock, roadmapSkeletonBlock) {
|
|
702
|
+
const data = {
|
|
703
|
+
...parent.data,
|
|
704
|
+
morningPipelineStage: "today",
|
|
705
|
+
};
|
|
706
|
+
if (handoffParsedBlock !== null) {
|
|
707
|
+
data.handoffParsedBlock = handoffParsedBlock;
|
|
708
|
+
}
|
|
709
|
+
if (roadmapSkeletonBlock !== null) {
|
|
710
|
+
// Picked up by `ContextBuilder.build` on the `morning_routine`
|
|
711
|
+
// branch; injected as the `<roadmap_skeleton>` block alongside
|
|
712
|
+
// the truncated `<roadmap>` so Stage A can detect the placeholder
|
|
713
|
+
// wizard skeleton and fully populate roadmap.md from the
|
|
714
|
+
// daemon-prepared facts on the first-run day.
|
|
715
|
+
data.roadmapSkeletonBlock = roadmapSkeletonBlock;
|
|
716
|
+
}
|
|
717
|
+
return {
|
|
718
|
+
type: STAGE_A_PROCESS_KEY,
|
|
719
|
+
source: parent.source,
|
|
720
|
+
priority: parent.priority ?? EventPriority.HIGH,
|
|
721
|
+
timestamp: parent.timestamp,
|
|
722
|
+
correlationId,
|
|
723
|
+
data,
|
|
724
|
+
routine: STAGE_A_ROUTINE_SLUG,
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
// ── Phase 7 — Roadmap skeleton plumbing (first-run branch only) ──────
|
|
728
|
+
/**
|
|
729
|
+
* Compose the `<roadmap_skeleton>` block injected into Stage A's
|
|
730
|
+
* prompt on the **first-run** (no-yesterday) branch. Returns `null`
|
|
731
|
+
* on the recurring branch (yesterday.md present); the recurring
|
|
732
|
+
* branch reads the live truncated `<roadmap>` ContextBuilder
|
|
733
|
+
* already injects.
|
|
734
|
+
*
|
|
735
|
+
* Why gate on `yesterday.md`: the first-run signal lines up with
|
|
736
|
+
* the variant collapse documented in §5 ("variant collapse") — the
|
|
737
|
+
* setup wizard produces a placeholder roadmap.md and rotateDayFiles
|
|
738
|
+
* has not yet emitted yesterday.md. Both gates fire from the same
|
|
739
|
+
* fs predicate so Stage A's first-run branch never sees a mismatch.
|
|
740
|
+
*
|
|
741
|
+
* Errors are swallowed: a malformed projects file or a missing
|
|
742
|
+
* travel_bookings table degrades to "Stage A sees an empty
|
|
743
|
+
* section" rather than failing the whole stage. The variant
|
|
744
|
+
* collapse depends on Stage A still landing roadmap.md in this
|
|
745
|
+
* case (it can fall back to reading `<management_rules>` and
|
|
746
|
+
* `<active_projects>` inline); shipping a broken skeleton block
|
|
747
|
+
* would be worse than no skeleton block at all.
|
|
748
|
+
*/
|
|
749
|
+
buildRoadmapSkeletonBlock() {
|
|
750
|
+
const contextDir = getContextDir(this.deps.config, this.deps.db);
|
|
751
|
+
const yesterdayPath = join(contextDir, "state", "yesterday.md");
|
|
752
|
+
if (existsSync(yesterdayPath))
|
|
753
|
+
return null; // recurring branch
|
|
754
|
+
try {
|
|
755
|
+
const now = new Date();
|
|
756
|
+
const todayDateStr = getAgentDayDateStr(this.deps.config.timezone || undefined, this.deps.config.dayBoundaryHour, now);
|
|
757
|
+
const calendarEvents = this.readForwardCalendarEvents(now);
|
|
758
|
+
const facts = gatherRoadmapSkeletonFacts(this.deps.db, contextDir, todayDateStr);
|
|
759
|
+
const skeleton = buildRoadmapSkeleton({
|
|
760
|
+
todayDateStr,
|
|
761
|
+
calendarEvents,
|
|
762
|
+
...(this.deps.config.timezone
|
|
763
|
+
? { timezone: this.deps.config.timezone }
|
|
764
|
+
: {}),
|
|
765
|
+
}, facts);
|
|
766
|
+
return `<roadmap_skeleton>\n${skeleton}\n</roadmap_skeleton>`;
|
|
767
|
+
}
|
|
768
|
+
catch (err) {
|
|
769
|
+
logger.warn({ err }, "Roadmap skeleton build threw — Stage A will run without <roadmap_skeleton>");
|
|
770
|
+
return null;
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Read forward-looking calendar events from the observations table
|
|
775
|
+
* for the next 7 days (matching the design's "Annual Goals from
|
|
776
|
+
* management rules, Quarterly Focus from active projects +
|
|
777
|
+
* calendar, Preparation Timeline from travel_bookings + calendar"
|
|
778
|
+
* window).
|
|
779
|
+
*
|
|
780
|
+
* Filtering note (pre-Phase-7-rev2 bug fix): the SQL filter does
|
|
781
|
+
* NOT use `observed_at` as a window bound. `observed_at` is the
|
|
782
|
+
* recording timestamp (CURRENT_TIMESTAMP at INSERT) — for a
|
|
783
|
+
* forward-looking window every relevant row was inserted BEFORE
|
|
784
|
+
* `now` (the just-completed pre-pass, an observer poll yesterday,
|
|
785
|
+
* etc.), so an `observed_at >= now` predicate would exclude every
|
|
786
|
+
* row. Instead we pull pending calendar observations and let JS
|
|
787
|
+
* filter on the parsed event start time extracted from
|
|
788
|
+
* `payload.raw.start`. The `consumed_at IS NULL` predicate scopes
|
|
789
|
+
* the read to rows the next Stage A turn has not yet consumed —
|
|
790
|
+
* exactly the set the pre-pass just landed for this morning's run.
|
|
791
|
+
* The `LIMIT 500` clamp guards against an unexpectedly large
|
|
792
|
+
* pending backlog blowing up Stage A's prompt budget; 500 is well
|
|
793
|
+
* above any realistic seven-day window the routine
|
|
794
|
+
* `cal_morning_7d` pre-pass would emit.
|
|
795
|
+
*
|
|
796
|
+
* Returns `[]` when no provider has pushed observations yet — the
|
|
797
|
+
* skeleton renders an explicit placeholder line.
|
|
798
|
+
*/
|
|
799
|
+
readForwardCalendarEvents(now) {
|
|
800
|
+
let rows;
|
|
801
|
+
try {
|
|
802
|
+
rows = this.deps.db
|
|
803
|
+
.prepare(`SELECT payload AS payload
|
|
804
|
+
FROM observations
|
|
805
|
+
WHERE (source LIKE 'google_calendar:%'
|
|
806
|
+
OR source LIKE 'outlook_calendar:%')
|
|
807
|
+
AND consumed_at IS NULL
|
|
808
|
+
ORDER BY observed_at DESC
|
|
809
|
+
LIMIT 500`)
|
|
810
|
+
.all();
|
|
811
|
+
}
|
|
812
|
+
catch {
|
|
813
|
+
return [];
|
|
814
|
+
}
|
|
815
|
+
const startMs = now.getTime();
|
|
816
|
+
const endMs = startMs + 7 * 24 * 60 * 60 * 1000;
|
|
817
|
+
const out = [];
|
|
818
|
+
for (const row of rows) {
|
|
819
|
+
const event = parseForwardCalendarPayload(row.payload, this.deps.config.timezone || undefined);
|
|
820
|
+
if (event === null)
|
|
821
|
+
continue;
|
|
822
|
+
if (event.startMs < startMs)
|
|
823
|
+
continue;
|
|
824
|
+
if (event.startMs >= endMs)
|
|
825
|
+
continue;
|
|
826
|
+
out.push({ date: event.date, title: event.title });
|
|
827
|
+
}
|
|
828
|
+
// Stable ascending order so the skeleton output is deterministic
|
|
829
|
+
// regardless of the SQL-side `ORDER BY observed_at DESC` (which is
|
|
830
|
+
// tuned for the LIMIT clamp, not the rendering order).
|
|
831
|
+
out.sort((a, b) => {
|
|
832
|
+
if (a.date !== b.date)
|
|
833
|
+
return a.date.localeCompare(b.date);
|
|
834
|
+
return a.title.localeCompare(b.title);
|
|
835
|
+
});
|
|
836
|
+
return out;
|
|
837
|
+
}
|
|
838
|
+
async runStageA(event, requestedTier, preResolvedBinding) {
|
|
839
|
+
const context = await this.deps.contextBuilder.build(event);
|
|
840
|
+
// The orchestrator pre-resolves the binding so the failure-path
|
|
841
|
+
// handler can attribute the audit row to the requested backend/model.
|
|
842
|
+
// When the pre-resolve threw (binding === null), fall back to a
|
|
843
|
+
// resolve here — the throw will propagate normally and persist via
|
|
844
|
+
// `recordStageFailure` with a null binding.
|
|
845
|
+
const binding = preResolvedBinding
|
|
846
|
+
?? this.deps.agentRouter.resolveBinding(event, {
|
|
847
|
+
processKey: STAGE_A_PROCESS_KEY,
|
|
848
|
+
...(requestedTier ? { requestedTier } : {}),
|
|
849
|
+
});
|
|
850
|
+
const reassemblePrompt = (bid) => this.deps.prompt.assemble(event.type, STAGE_A_PROCESS_KEY, bid);
|
|
851
|
+
const prompt = reassemblePrompt(binding.main.backendId);
|
|
852
|
+
return this.deps.errorRouter.executeWithRetry(() => this.deps.agentRouter.execute({
|
|
853
|
+
prompt,
|
|
854
|
+
context,
|
|
855
|
+
event,
|
|
856
|
+
processKey: STAGE_A_PROCESS_KEY,
|
|
857
|
+
preResolvedBinding: binding,
|
|
858
|
+
reassemblePrompt,
|
|
859
|
+
...(requestedTier ? { requestedTier } : {}),
|
|
860
|
+
}), event);
|
|
861
|
+
}
|
|
862
|
+
// ── ⑤B Stage B dispatch ──────────────────────────────────────────────
|
|
863
|
+
composeStageBEvent(parent, correlationId, journalSkeletonBlock, yesterdayDateStr) {
|
|
864
|
+
// Stage B does NOT inherit the parent's `todayWriteLockId` or
|
|
865
|
+
// `fetchReportBlock`. The lock gates today.md only (Stage B never
|
|
866
|
+
// touches it); the fetch report describes data Stage A consumes
|
|
867
|
+
// (pending observations from mail / notion / calendar pre-pass)
|
|
868
|
+
// that Stage B has no skill bundle to read. Stripping them keeps
|
|
869
|
+
// Stage B's prompt minimal so the lite-tier cold-start floor holds.
|
|
870
|
+
const stripped = {};
|
|
871
|
+
for (const [key, value] of Object.entries(parent.data ?? {})) {
|
|
872
|
+
if (key === "todayWriteLockId")
|
|
873
|
+
continue;
|
|
874
|
+
if (key === "fetchReportBlock")
|
|
875
|
+
continue;
|
|
876
|
+
if (key === "acquisitionPlanBlock")
|
|
877
|
+
continue;
|
|
878
|
+
stripped[key] = value;
|
|
879
|
+
}
|
|
880
|
+
stripped.morningPipelineStage = "journal";
|
|
881
|
+
stripped.journalSkeletonBlock = journalSkeletonBlock;
|
|
882
|
+
// daily-journal-daemon-write.md §4.10 — browser-history digest now
|
|
883
|
+
// fetched daemon-side and injected as `<browser_digest>` (Stage B
|
|
884
|
+
// has zero tool requirement so it cannot fetch it itself). The
|
|
885
|
+
// four-step chain in `buildBrowserDigestBlock` mirrors the LLM
|
|
886
|
+
// logic the task-flow used to perform.
|
|
887
|
+
const browserDigestBlock = this.buildBrowserDigestBlock(yesterdayDateStr);
|
|
888
|
+
if (browserDigestBlock !== null) {
|
|
889
|
+
stripped.browserDigestBlock = browserDigestBlock;
|
|
890
|
+
}
|
|
891
|
+
return {
|
|
892
|
+
type: STAGE_B_PROCESS_KEY,
|
|
893
|
+
source: parent.source,
|
|
894
|
+
priority: parent.priority ?? EventPriority.HIGH,
|
|
895
|
+
timestamp: parent.timestamp,
|
|
896
|
+
correlationId,
|
|
897
|
+
data: stripped,
|
|
898
|
+
routine: STAGE_B_ROUTINE_SLUG,
|
|
899
|
+
};
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Resolve the `<browser_digest>` block Stage B used to fetch via
|
|
903
|
+
* `GET /api/context/browser/yesterday-<date>.md`. Now daemon-driven
|
|
904
|
+
* since Stage B has no tools:
|
|
905
|
+
*
|
|
906
|
+
* 1. Gate on integration mode — `browser_history` `disabled` →
|
|
907
|
+
* return `null` (no block injection).
|
|
908
|
+
* 2. File-first — `<contextDir>/browser/yesterday-<date>.md` written
|
|
909
|
+
* by the 03:00 cron is the primary surface.
|
|
910
|
+
* 3. In-process JSON fallback — if the file is absent (daemon was
|
|
911
|
+
* down at 03:00 or the file was purged), call
|
|
912
|
+
* `runPreMorningDigestJob` in-process to rebuild from SQLite +
|
|
913
|
+
* render the markdown shape (no HTTP loopback).
|
|
914
|
+
* 4. Both unavailable → return `null` (silent skip; the task-flow
|
|
915
|
+
* omits the block).
|
|
916
|
+
*
|
|
917
|
+
* The block is wrapped in `<browser_digest>...</browser_digest>` to
|
|
918
|
+
* match the inbound-XML idiom every other ContextBuilder injection
|
|
919
|
+
* uses (`<fetch_report>`, `<journal_skeleton>`, etc.).
|
|
920
|
+
*/
|
|
921
|
+
buildBrowserDigestBlock(yesterdayDateStr) {
|
|
922
|
+
try {
|
|
923
|
+
const integrationState = readIntegrationState(this.deps.db, "browser_history");
|
|
924
|
+
if (integrationState.mode === "disabled")
|
|
925
|
+
return null;
|
|
926
|
+
}
|
|
927
|
+
catch (err) {
|
|
928
|
+
// Read failure on the integration registry is rare (corrupt
|
|
929
|
+
// settings JSON). Log + skip — Stage B should still author the
|
|
930
|
+
// journal without browser-history context if the registry is in
|
|
931
|
+
// a bad state.
|
|
932
|
+
logger.warn({ err }, "browser_history integration state read failed — omitting <browser_digest>");
|
|
933
|
+
return null;
|
|
934
|
+
}
|
|
935
|
+
const contextDir = getContextDir(this.deps.config, this.deps.db);
|
|
936
|
+
// §10.6 / §5.F2 — the cron writes `browser/yesterday-<date>.md`.
|
|
937
|
+
const filePath = join(contextDir, "browser", `yesterday-${yesterdayDateStr}.md`);
|
|
938
|
+
if (existsSync(filePath)) {
|
|
939
|
+
try {
|
|
940
|
+
const body = readFileSync(filePath, "utf-8");
|
|
941
|
+
return `<browser_digest>\n${body}\n</browser_digest>`;
|
|
942
|
+
}
|
|
943
|
+
catch (err) {
|
|
944
|
+
logger.warn({ err, filePath }, "browser digest file read failed — falling back to in-process rebuild");
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
// In-process fallback — rebuild the digest from SQLite using the
|
|
948
|
+
// same pure builder the cron uses. Avoids the HTTP loopback that
|
|
949
|
+
// hits the `@hono/node-server` globalThis.Response pitfall
|
|
950
|
+
// (`project_hono_global_response_pitfall` memory). The result is
|
|
951
|
+
// rendered into the same markdown shape the file-first path would
|
|
952
|
+
// have produced.
|
|
953
|
+
try {
|
|
954
|
+
const boundary = {
|
|
955
|
+
timezone: this.deps.config.timezone || undefined,
|
|
956
|
+
dayBoundaryHour: this.deps.config.dayBoundaryHour ?? 4,
|
|
957
|
+
};
|
|
958
|
+
const digest = buildPreMorningDigest({
|
|
959
|
+
db: this.deps.db,
|
|
960
|
+
date: yesterdayDateStr,
|
|
961
|
+
boundary,
|
|
962
|
+
});
|
|
963
|
+
const markdown = renderPreMorningDigestMarkdown(digest);
|
|
964
|
+
return `<browser_digest>\n${markdown}\n</browser_digest>`;
|
|
965
|
+
}
|
|
966
|
+
catch (err) {
|
|
967
|
+
logger.warn({ err, yesterdayDateStr }, "browser digest in-process rebuild failed — omitting <browser_digest>");
|
|
968
|
+
return null;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
async runStageB(event, preResolvedBinding) {
|
|
972
|
+
const context = await this.deps.contextBuilder.build(event);
|
|
973
|
+
// Same pre-resolve fallback as Stage A — see `runStageA`'s comment.
|
|
974
|
+
const binding = preResolvedBinding
|
|
975
|
+
?? this.deps.agentRouter.resolveBinding(event, {
|
|
976
|
+
processKey: STAGE_B_PROCESS_KEY,
|
|
977
|
+
});
|
|
978
|
+
const reassemblePrompt = (bid) => this.deps.prompt.assemble(event.type, STAGE_B_PROCESS_KEY, bid);
|
|
979
|
+
const prompt = reassemblePrompt(binding.main.backendId);
|
|
980
|
+
return this.deps.errorRouter.executeWithRetry(() => this.deps.agentRouter.execute({
|
|
981
|
+
prompt,
|
|
982
|
+
context,
|
|
983
|
+
event,
|
|
984
|
+
processKey: STAGE_B_PROCESS_KEY,
|
|
985
|
+
preResolvedBinding: binding,
|
|
986
|
+
reassemblePrompt,
|
|
987
|
+
// daily-journal-daemon-write.md §3 corollary — Stage B's
|
|
988
|
+
// session must have zero tool requirement. The empty
|
|
989
|
+
// `skills-manifest.ts` entry suppresses `.claude/skills/*` from
|
|
990
|
+
// being registered, but the SDK still ships its default
|
|
991
|
+
// `CLAUDE_DEFAULT_ALLOWED_TOOLS` (Read / Write / Edit /
|
|
992
|
+
// Bash(curl *) / …). Without this per-execute clamp, Haiku
|
|
993
|
+
// could still call `Write` on `daily/<date>.md` directly —
|
|
994
|
+
// bypassing the daemon-side `DailyJournalComposer` chokepoint
|
|
995
|
+
// and racing it. Mirrors the precedent at
|
|
996
|
+
// `dispatcher-hourly-check.ts:1003` (`routine.hourly_check.triage`).
|
|
997
|
+
//
|
|
998
|
+
// Activation requires the clamp gate in `claude-code-core.ts`
|
|
999
|
+
// to honour an empty array as "no tools" — fixed in the same
|
|
1000
|
+
// PR as this addition (the prior `length > 0` gate silently
|
|
1001
|
+
// dropped `[]` to the default surface).
|
|
1002
|
+
//
|
|
1003
|
+
// Codex / Gemini have no per-spawn `allowedTools` surface —
|
|
1004
|
+
// the Stage B process key routes to Claude (lite tier / Haiku)
|
|
1005
|
+
// by default, so this clamp is effective on the production
|
|
1006
|
+
// binding. On a Claude→Codex/Gemini fallback the clamp is
|
|
1007
|
+
// not honoured; the `max_turns: 20` / `max_budget_usd: 0.30`
|
|
1008
|
+
// envelope on `routine.morning_routine_journal` remains the
|
|
1009
|
+
// safety floor on those backends.
|
|
1010
|
+
allowedToolsOverride: [],
|
|
1011
|
+
}), event);
|
|
1012
|
+
}
|
|
1013
|
+
// ── ⑥b helpers — read DB-side stage summaries for parent-audit ──────
|
|
1014
|
+
readStageSummaries(correlationId) {
|
|
1015
|
+
// We use the auditor's authoritative agent_actions rows (cost / turns /
|
|
1016
|
+
// result) rather than the in-memory `AgentResult` so retry attempts
|
|
1017
|
+
// and partial-failure paths report the same shape regardless of which
|
|
1018
|
+
// branch produced them.
|
|
1019
|
+
const rows = this.deps.db
|
|
1020
|
+
.prepare(`SELECT action_type AS actionType,
|
|
1021
|
+
cost_usd AS cost_usd,
|
|
1022
|
+
num_turns AS num_turns,
|
|
1023
|
+
result AS result
|
|
1024
|
+
FROM agent_actions
|
|
1025
|
+
WHERE event_id = ?
|
|
1026
|
+
AND action_type IN (?, ?)
|
|
1027
|
+
ORDER BY id ASC`)
|
|
1028
|
+
.all(correlationId, STAGE_A_ACTION_TYPE, STAGE_B_ACTION_TYPE);
|
|
1029
|
+
let stageA = null;
|
|
1030
|
+
let stageB = null;
|
|
1031
|
+
for (const row of rows) {
|
|
1032
|
+
// Latest row wins on retry — agent_actions inserts append a fresh
|
|
1033
|
+
// row per attempt; the most-recent row is the one the gate should
|
|
1034
|
+
// attribute. `loadMorningRoutineActionRows` follows the same rule.
|
|
1035
|
+
const summary = {
|
|
1036
|
+
cost_usd: row.cost_usd,
|
|
1037
|
+
num_turns: row.num_turns,
|
|
1038
|
+
result: row.result,
|
|
1039
|
+
};
|
|
1040
|
+
if (row.actionType === STAGE_A_ACTION_TYPE)
|
|
1041
|
+
stageA = summary;
|
|
1042
|
+
else if (row.actionType === STAGE_B_ACTION_TYPE)
|
|
1043
|
+
stageB = summary;
|
|
1044
|
+
}
|
|
1045
|
+
return { stageA, stageB };
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
/**
|
|
1049
|
+
* Extract the underlying `BackendQuotaError` from a stage rejection so
|
|
1050
|
+
* `recordStageFailure` can tag the audit row with `failureKind='quota'`
|
|
1051
|
+
* + `failureCode=originalCode` (e.g. `max_budget_usd`). Mirrors the
|
|
1052
|
+
* `DispatcherErrorRouter.extractQuotaError` logic — kept module-local
|
|
1053
|
+
* here so the orchestrator is not coupled to the dispatcher's private
|
|
1054
|
+
* extraction surface.
|
|
1055
|
+
*/
|
|
1056
|
+
function extractQuotaError(error) {
|
|
1057
|
+
if (error instanceof BackendQuotaError)
|
|
1058
|
+
return error;
|
|
1059
|
+
if (error instanceof BackendRouterHandledError) {
|
|
1060
|
+
if (error.cause instanceof BackendQuotaError)
|
|
1061
|
+
return error.cause;
|
|
1062
|
+
}
|
|
1063
|
+
return null;
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Map the composer's `DailyJournalComposeResult` to the
|
|
1067
|
+
* `agent_actions.detail.dailyWrite` JSON shape audit persists. The two
|
|
1068
|
+
* types are structurally identical today — but the mapper localises
|
|
1069
|
+
* the coupling so a future schema change to the audit shape doesn't
|
|
1070
|
+
* silently drift from the composer's API. Inlined at the call site
|
|
1071
|
+
* via `import type` would also work but loses the assertion site.
|
|
1072
|
+
*/
|
|
1073
|
+
function toDailyWriteAuditDetail(result) {
|
|
1074
|
+
return result;
|
|
1075
|
+
}
|
|
1076
|
+
function renderHandoffParsedBlock(parsed) {
|
|
1077
|
+
// XML over JSON: the rest of the daemon's prompt-injection payloads
|
|
1078
|
+
// (`<fetch_report>`, `<acquisition-plan>`, `<integration_modes>`) use
|
|
1079
|
+
// XML-style tags; keep the same shape so Stage A's task-flow can read
|
|
1080
|
+
// them with one consistent extractor.
|
|
1081
|
+
const lines = ["<handoff_parsed>"];
|
|
1082
|
+
lines.push(" <tomorrow>");
|
|
1083
|
+
if (parsed.tomorrow.length === 0) {
|
|
1084
|
+
lines.push(" <item>(none)</item>");
|
|
1085
|
+
}
|
|
1086
|
+
else {
|
|
1087
|
+
for (const item of parsed.tomorrow) {
|
|
1088
|
+
lines.push(` <item>${escapeXml(item)}</item>`);
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
lines.push(" </tomorrow>");
|
|
1092
|
+
lines.push(" <later>");
|
|
1093
|
+
if (parsed.later.length === 0) {
|
|
1094
|
+
lines.push(" <item>(none)</item>");
|
|
1095
|
+
}
|
|
1096
|
+
else {
|
|
1097
|
+
for (const item of parsed.later) {
|
|
1098
|
+
lines.push(` <item>${escapeXml(item)}</item>`);
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
lines.push(" </later>");
|
|
1102
|
+
lines.push("</handoff_parsed>");
|
|
1103
|
+
return lines.join("\n");
|
|
1104
|
+
}
|
|
1105
|
+
function escapeXml(value) {
|
|
1106
|
+
return value
|
|
1107
|
+
.replace(/&/g, "&")
|
|
1108
|
+
.replace(/</g, "<")
|
|
1109
|
+
.replace(/>/g, ">");
|
|
1110
|
+
}
|
|
1111
|
+
/**
|
|
1112
|
+
* Walk a calendar observation payload and lift the load-bearing fields
|
|
1113
|
+
* (`start`, `title`, `allDay`) into a uniform struct. Canonical
|
|
1114
|
+
* `raw.*` keys win over legacy top-level keys; whichever provides the
|
|
1115
|
+
* value first is taken so a writer that emits both does not produce
|
|
1116
|
+
* inconsistent reads.
|
|
1117
|
+
*/
|
|
1118
|
+
function extractCalendarPayloadParts(parsed) {
|
|
1119
|
+
const title = pickString(parsed.raw?.title)
|
|
1120
|
+
?? pickString(parsed.raw?.summary)
|
|
1121
|
+
?? pickString(parsed.title)
|
|
1122
|
+
?? pickString(parsed.summary)
|
|
1123
|
+
?? "";
|
|
1124
|
+
const isAllDay = parsed.raw?.allDay === true
|
|
1125
|
+
|| parsed.raw?.all_day === true
|
|
1126
|
+
|| parsed.allDay === true
|
|
1127
|
+
|| parsed.all_day === true;
|
|
1128
|
+
const startRaw = pickString(parsed.raw?.start)
|
|
1129
|
+
?? pickString(parsed.startTime)
|
|
1130
|
+
?? pickString(parsed.start_time)
|
|
1131
|
+
?? pickString(parsed.start);
|
|
1132
|
+
if (startRaw === null)
|
|
1133
|
+
return { startMs: null, title, isAllDay };
|
|
1134
|
+
const ms = Date.parse(startRaw);
|
|
1135
|
+
if (!Number.isFinite(ms))
|
|
1136
|
+
return { startMs: null, title, isAllDay };
|
|
1137
|
+
return { startMs: ms, title, isAllDay };
|
|
1138
|
+
}
|
|
1139
|
+
function safeParseCalendarShape(raw) {
|
|
1140
|
+
if (raw === null)
|
|
1141
|
+
return null;
|
|
1142
|
+
try {
|
|
1143
|
+
return JSON.parse(raw);
|
|
1144
|
+
}
|
|
1145
|
+
catch {
|
|
1146
|
+
return null;
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
/**
|
|
1150
|
+
* Phase 7 — extract `{date, title}` from a calendar observation payload
|
|
1151
|
+
* for the roadmap skeleton. Differs from `parseCalendarPayload` (which
|
|
1152
|
+
* emits `{time HH:MM, title}` for the daily journal skeleton): the
|
|
1153
|
+
* roadmap skeleton renders calendar events as date bullets, not time
|
|
1154
|
+
* bullets, because the look-ahead window is 7 days forward and per-
|
|
1155
|
+
* minute granularity is irrelevant for Quarterly Focus / Preparation
|
|
1156
|
+
* Timeline hints.
|
|
1157
|
+
*
|
|
1158
|
+
* Returns `null` when the payload has no parseable start time. Title-
|
|
1159
|
+
* only payloads are intentionally dropped — a calendar bullet without a
|
|
1160
|
+
* date is noise for a forward-window skeleton.
|
|
1161
|
+
*/
|
|
1162
|
+
function parseForwardCalendarPayload(raw, timezone) {
|
|
1163
|
+
const parsed = safeParseCalendarShape(raw);
|
|
1164
|
+
if (parsed === null)
|
|
1165
|
+
return null;
|
|
1166
|
+
const parts = extractCalendarPayloadParts(parsed);
|
|
1167
|
+
if (parts.startMs === null)
|
|
1168
|
+
return null;
|
|
1169
|
+
// Render the date in the operator's timezone so the skeleton's bullet
|
|
1170
|
+
// dates line up with `<calendar_events_7d>` (which renders in the same
|
|
1171
|
+
// tz). All-day events stored with a trailing 00:00 UTC suffix could
|
|
1172
|
+
// otherwise drift by one day for east-of-UTC operators.
|
|
1173
|
+
const formatter = new Intl.DateTimeFormat("en-CA", {
|
|
1174
|
+
timeZone: timezone ?? "UTC",
|
|
1175
|
+
year: "numeric",
|
|
1176
|
+
month: "2-digit",
|
|
1177
|
+
day: "2-digit",
|
|
1178
|
+
});
|
|
1179
|
+
const date = formatter.format(new Date(parts.startMs));
|
|
1180
|
+
return { date, title: parts.title, startMs: parts.startMs };
|
|
1181
|
+
}
|
|
1182
|
+
function parseCalendarPayload(raw, timezone) {
|
|
1183
|
+
const parsed = safeParseCalendarShape(raw);
|
|
1184
|
+
if (parsed === null)
|
|
1185
|
+
return null;
|
|
1186
|
+
const parts = extractCalendarPayloadParts(parsed);
|
|
1187
|
+
if (parts.isAllDay) {
|
|
1188
|
+
return { time: null, title: parts.title };
|
|
1189
|
+
}
|
|
1190
|
+
if (parts.startMs === null) {
|
|
1191
|
+
return { time: null, title: parts.title };
|
|
1192
|
+
}
|
|
1193
|
+
// Render `HH:MM` in the operator's local timezone — matches
|
|
1194
|
+
// `SkeletonCalendarEvent.time`'s "HH:MM local start time" contract,
|
|
1195
|
+
// the DM-section bullet's tz-aware rendering inside the skeleton
|
|
1196
|
+
// builder, and ContextBuilder's `<calendar_events_7d>` block. The
|
|
1197
|
+
// pre-fix UTC slice (`getUTCHours`/`Minutes`) would render a 10:00
|
|
1198
|
+
// local standup for a UTC-7 operator as `17:00` in the `## Schedule`
|
|
1199
|
+
// scratch input that Stage B then uses to author the daily journal.
|
|
1200
|
+
if (typeof timezone === "string" && timezone.length > 0) {
|
|
1201
|
+
try {
|
|
1202
|
+
const fmt = new Intl.DateTimeFormat("en-GB", {
|
|
1203
|
+
hour: "2-digit",
|
|
1204
|
+
minute: "2-digit",
|
|
1205
|
+
hourCycle: "h23",
|
|
1206
|
+
timeZone: timezone,
|
|
1207
|
+
});
|
|
1208
|
+
return { time: fmt.format(new Date(parts.startMs)), title: parts.title };
|
|
1209
|
+
}
|
|
1210
|
+
catch {
|
|
1211
|
+
// Fall through to UTC slice on a bad TZ name (Intl throws
|
|
1212
|
+
// RangeError). Still better than throwing past the pure helper.
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
const date = new Date(parts.startMs);
|
|
1216
|
+
const hh = String(date.getUTCHours()).padStart(2, "0");
|
|
1217
|
+
const mm = String(date.getUTCMinutes()).padStart(2, "0");
|
|
1218
|
+
return { time: `${hh}:${mm}`, title: parts.title };
|
|
1219
|
+
}
|
|
1220
|
+
function pickString(value) {
|
|
1221
|
+
if (typeof value !== "string")
|
|
1222
|
+
return null;
|
|
1223
|
+
if (value.length === 0)
|
|
1224
|
+
return null;
|
|
1225
|
+
return value;
|
|
1226
|
+
}
|
|
1227
|
+
// Re-export the action-type constants so dispatcher / runner can
|
|
1228
|
+
// continue to import them from one path even after Phase 6 moves
|
|
1229
|
+
// more responsibilities into the orchestrator.
|
|
1230
|
+
export { STAGE_A_PROCESS_KEY, STAGE_B_PROCESS_KEY, STAGE_A_ROUTINE_SLUG, STAGE_B_ROUTINE_SLUG, };
|