@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,1203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event-processing pipeline bootstrap — §10 of the legacy `startup()` IIFE.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `index.ts` per
|
|
5
|
+
* `docs/design/appendices/index-bootstrap-stage-split.md` Phase B-4.
|
|
6
|
+
* Companion to `bootstrap/db.ts`, `bootstrap/adapters.ts`,
|
|
7
|
+
* `bootstrap/services.ts`, `bootstrap/observers.ts`, and `bootstrap/api.ts`;
|
|
8
|
+
* same Pattern-C shape (file-split-plan.md §10).
|
|
9
|
+
*
|
|
10
|
+
* Responsibilities (in run order — preserves the §10 ordering invariants
|
|
11
|
+
* captured by the design doc's §11):
|
|
12
|
+
* 1. Construct the four agent backends (Claude / Codex / Gemini / Opencode)
|
|
13
|
+
* and wire the per-session MCP context onto each.
|
|
14
|
+
* 2. Run the boot janitors that close orphaned proxy / pool / delegated-task
|
|
15
|
+
* tempdirs and rows so the dispatcher starts from a clean state.
|
|
16
|
+
* 3. Construct `DelegatedBackendInvoker`, `NotificationManager`, and
|
|
17
|
+
* `AuthTelemetry`. The shared `makeAuthNotifier` factory binds the
|
|
18
|
+
* monitor + recovery surfaces to the same notification pipeline.
|
|
19
|
+
* 4. Build the `BackendRouter` with its `prepareSessionDir` fallback
|
|
20
|
+
* re-materialization callback (CLAUDE.md invariant: a Claude→Codex
|
|
21
|
+
* fallback would otherwise leave the dir with only CLAUDE.md and no
|
|
22
|
+
* AGENTS.md). Validates the built-in skill source tree + delegated
|
|
23
|
+
* mode startup contracts before any execute.
|
|
24
|
+
* 5. Construct `ContextBuilder`, `SessionManager`, `MessageRecorder`,
|
|
25
|
+
* `EventBroadcaster`, `AuditLogger`. Build `rematerializeActiveDmWorkdirs`
|
|
26
|
+
* and install it as the real `onMailScopeChanged` handler via the
|
|
27
|
+
* `setMailScopeChangedHandler` dep (forward-reference resolved).
|
|
28
|
+
* 6. Construct `MigrationLock`, `ContextWriteGate`, `SignalDetector`,
|
|
29
|
+
* `ScopedReadSensitiveTokenManager`, then the `EventDispatcher`. Apply
|
|
30
|
+
* every dispatcher setter (signal detector, docs citation lookup,
|
|
31
|
+
* dashboard stream fan-out, attachment store, event broadcaster, voice
|
|
32
|
+
* transcriber, auth recovery/monitor, delegated-sync refresh, bang
|
|
33
|
+
* command registry, skill curation hooks).
|
|
34
|
+
* 7. Construct `AuthHealthMonitor` + `AuthRecovery` (after dispatcher so
|
|
35
|
+
* the `isMorningRoutineActive` closure resolves immediately). Reconcile
|
|
36
|
+
* in-flight recoveries, fire the initial keepalive sweep, and arm the
|
|
37
|
+
* daily sweep timer.
|
|
38
|
+
* 8. Wire the roadmap-refresh trampoline through `setRoadmapRefreshSink`
|
|
39
|
+
* so the observer pollers built in B-2 can emit refresh signals now
|
|
40
|
+
* that the dispatcher exists.
|
|
41
|
+
* 9. Build the on-demand `buildDelegatedSyncWorker` + register it when at
|
|
42
|
+
* least one integration is in `delegated` mode. Register the
|
|
43
|
+
* `DelegatedProbeObserver` so the §4.5 connector-health cache stays
|
|
44
|
+
* fresh.
|
|
45
|
+
* 10. Return the cross-stage closures (`handleSecretChange`,
|
|
46
|
+
* `handleGoogleServicesReady`, `handlePromptContextChanged`,
|
|
47
|
+
* `rematerializeActiveDmWorkdirs`) the B-3 API factory and the
|
|
48
|
+
* `index.ts` post-startup-complete flush consume.
|
|
49
|
+
*
|
|
50
|
+
* Ordering invariants this module preserves (design §11):
|
|
51
|
+
* - Wiki token resolver (B-1) and `mergeRuntimeSettingsFromDb` (B-1) run
|
|
52
|
+
* before this factory is invoked. The dispatcher reads the merged
|
|
53
|
+
* config directly.
|
|
54
|
+
* - Orphan dashboard_chat session close (B-1) runs before SessionManager
|
|
55
|
+
* is constructed here.
|
|
56
|
+
* - Fallback re-materialization is wired into BackendRouter before any
|
|
57
|
+
* backend fallback can occur — the closure lives inside this factory,
|
|
58
|
+
* same lexical proximity as the pre-extraction code.
|
|
59
|
+
* - The roadmap-refresh sink (`setRoadmapRefreshSink` dep) is installed
|
|
60
|
+
* immediately after the dispatcher is constructed but BEFORE
|
|
61
|
+
* `observerManager.startAll()` runs (which happens later in `index.ts`).
|
|
62
|
+
* - `handleSecretChange` and `handleGoogleServicesReady` are returned
|
|
63
|
+
* rather than registered here — the B-3 api factory wires the former
|
|
64
|
+
* into `ApiDependencies.onSecretChanged` and `index.ts` composes the
|
|
65
|
+
* latter with the `startupComplete`/`pendingGoogleServicesReady`
|
|
66
|
+
* deferral wrapper before threading the wrapper into B-3 via
|
|
67
|
+
* `onGoogleServicesReady`.
|
|
68
|
+
*
|
|
69
|
+
* Test surface (per design doc §10):
|
|
70
|
+
* - `createSecretChangeHandler` — exported for the scope-routing matrix
|
|
71
|
+
* test (slack, telegram, discord, notion, github, google, apple_calendar,
|
|
72
|
+
* apiToken, unknown). The Notion hot-register branch's three gates
|
|
73
|
+
* (services.notion, observerManager.has, notionDatabaseIds.length,
|
|
74
|
+
* shouldStartObserversFor) are pinned here. The GitHub webhook-mode
|
|
75
|
+
* upgrade branch's two gates (getGitWatcher non-null, secretState.
|
|
76
|
+
* githubWebhookConfigured) are pinned here.
|
|
77
|
+
* - `createGoogleServicesReadyHandler` — exported for the calendar
|
|
78
|
+
* hot-register / morning-routine gate / roadmap-refresh test matrix.
|
|
79
|
+
*/
|
|
80
|
+
import { join } from "node:path";
|
|
81
|
+
import { createReadStream } from "node:fs";
|
|
82
|
+
import { randomBytes } from "node:crypto";
|
|
83
|
+
import { getContextDir, isRoadmapStale } from "../config.js";
|
|
84
|
+
import { resolveUserSkillsRoot } from "../core/user-skills-root.js";
|
|
85
|
+
import { isUserPaused } from "../db/runtime-state.js";
|
|
86
|
+
import { readIntegrations } from "../db/integrations-store.js";
|
|
87
|
+
import { selectGithubRepoSlugs } from "../db/repositories-store.js";
|
|
88
|
+
import { EventPriority } from "@aitne/shared";
|
|
89
|
+
import { createLogger } from "../logging.js";
|
|
90
|
+
import { markContextChanged } from "../core/dashboard-session-controls.js";
|
|
91
|
+
import { EventDispatcher } from "../core/dispatcher.js";
|
|
92
|
+
import { SignalDetector } from "../core/signal-detector.js";
|
|
93
|
+
import { ContextBuilder } from "../core/context-builder.js";
|
|
94
|
+
import { getTaskFlow, initTaskFlows } from "../core/prompts.js";
|
|
95
|
+
import { SessionManager } from "../core/session-manager.js";
|
|
96
|
+
import { MessageRecorder } from "../core/message-recorder.js";
|
|
97
|
+
import { ScopedReadSensitiveTokenManager } from "../core/read-sensitive-token-manager.js";
|
|
98
|
+
import { createDefaultBangCommandRegistry } from "../core/bang-commands/index.js";
|
|
99
|
+
import { ContextWriteGate, MigrationLock, } from "../core/today-write-lock.js";
|
|
100
|
+
import { applyPromptContextStaleness, } from "../core/context-staleness.js";
|
|
101
|
+
// Backends
|
|
102
|
+
import { ClaudeCodeCore } from "../core/backends/claude-code-core.js";
|
|
103
|
+
import { CodexCore } from "../core/backends/codex-core.js";
|
|
104
|
+
import { GeminiCliCore } from "../core/backends/gemini-cli-core.js";
|
|
105
|
+
import { OpencodeCore } from "../core/backends/opencode-core.js";
|
|
106
|
+
import { createOpencodeServerManager, } from "../core/backends/opencode-server-manager.js";
|
|
107
|
+
import { BackendRouter } from "../core/backends/backend-router.js";
|
|
108
|
+
import { AuthTelemetry } from "../core/backends/auth-telemetry.js";
|
|
109
|
+
import { AuthHealthMonitor, AUTH_PROBE_NOTIFICATION_CATEGORY, } from "../core/backends/auth-health-monitor.js";
|
|
110
|
+
import { AuthRecovery } from "../core/backends/auth-recovery.js";
|
|
111
|
+
// Workdir / skills
|
|
112
|
+
import { ensureBackendMaterialized, syncAllUserSkills, buildConfiguredServices, refreshDmSessionWorkdirs, validateDelegatedStartup, } from "../core/workdir.js";
|
|
113
|
+
import { validateBuiltinSkillSourceTree } from "../core/skills-compiler-variants.js";
|
|
114
|
+
// Audit / safety / messaging
|
|
115
|
+
import { AuditLogger } from "../safety/audit.js";
|
|
116
|
+
import { AgentExecutionRecorder } from "../core/agent-execution-recorder.js";
|
|
117
|
+
import { AgentExecutionTracker } from "../core/agents/agent-execution-tracker.js";
|
|
118
|
+
import { loadAgentSuccessCriteria } from "../core/agents/definition-criteria.js";
|
|
119
|
+
import { NotificationManager } from "../adapters/notification-manager.js";
|
|
120
|
+
import { DocsQAAdapter } from "../adapters/docs-qa-adapter.js";
|
|
121
|
+
import { CompositeDashboardStream } from "../adapters/composite-dashboard-stream.js";
|
|
122
|
+
import { EventBroadcaster } from "../api/routes/sse.js";
|
|
123
|
+
import { VoiceTranscriber } from "../services/voice/transcriber.js";
|
|
124
|
+
import { DelegatedBackendInvoker, runDelegatedTaskOrphanJanitor, runProxyTempdirJanitor, } from "../services/delegated-backend-invoker.js";
|
|
125
|
+
import { runSessionPoolTempdirJanitor } from "../services/delegated-task-session-pool.js";
|
|
126
|
+
import { DelegatedSyncWorker, hasActiveDelegatedSyncIntegration, } from "../observers/delegated-sync-worker.js";
|
|
127
|
+
import { shouldStartObserversFor } from "../core/integration-lifecycle.js";
|
|
128
|
+
import { makeDbLookup as makeDocsCitationLookup } from "../core/docs/citation-validator.js";
|
|
129
|
+
import { hasFreshAgentDayTodayMd, readSkillCurationCadence } from "./schedule-helpers.js";
|
|
130
|
+
const logger = createLogger("daemon-bootstrap-event-pipeline");
|
|
131
|
+
/**
|
|
132
|
+
* Construct the event-processing pipeline (§10). See the file-level
|
|
133
|
+
* docstring for the run order and the ordering invariants this factory
|
|
134
|
+
* preserves.
|
|
135
|
+
*/
|
|
136
|
+
export async function createEventPipeline(deps) {
|
|
137
|
+
const { db, config, eventBus, secretBroker, blobStore, writeTracker, services, messageHub, dashboardAdapter, attachmentStore, morningRoutineLock, roadmapWriteLock, secretState, observerManager, buildCalendarPoller, buildNotionPoller, getGitWatcher, reloadDiscordAdapter, reloadSlackAdapter, reloadTelegramAdapter, reloadGoogleServices, reloadAppleCalendarService, reloadNotionService, reloadGitHubService, scheduler, isStartupComplete, setMailScopeChangedHandler, setRoadmapRefreshSink, } = deps;
|
|
138
|
+
// ── Agent cores + per-session MCP context ──────────────────────────────
|
|
139
|
+
const opencodeServerManager = deps.opencodeServerManager ?? createOpencodeServerManager();
|
|
140
|
+
const agentCore = new ClaudeCodeCore(config, writeTracker);
|
|
141
|
+
const codexCore = new CodexCore(config);
|
|
142
|
+
const geminiCore = new GeminiCliCore(config, writeTracker, undefined, db);
|
|
143
|
+
const opencodeCore = new OpencodeCore(config, writeTracker, opencodeServerManager);
|
|
144
|
+
// B-003 Phase 3 — wire the MCP session context so per-session workdirs
|
|
145
|
+
// pick up the current DB + keychain state at spawn time. Each core stays
|
|
146
|
+
// backward-compatible: without this call it simply runs without MCP.
|
|
147
|
+
const mcpContext = { db, blobStore };
|
|
148
|
+
agentCore.setMcpContext(mcpContext);
|
|
149
|
+
codexCore.setMcpContext(mcpContext);
|
|
150
|
+
geminiCore.setMcpContext(mcpContext);
|
|
151
|
+
opencodeCore.setMcpContext(mcpContext);
|
|
152
|
+
// ── Boot janitors ──────────────────────────────────────────────────────
|
|
153
|
+
// DELEGATED-PROXY-API-DESIGN.md Phase A — sweep stale
|
|
154
|
+
// `agent-sessions/proxy-*` tempdirs left by SIGKILL'd proxy invocations.
|
|
155
|
+
const janitorRemoved = runProxyTempdirJanitor(config.dataDir);
|
|
156
|
+
if (janitorRemoved > 0) {
|
|
157
|
+
logger.info({ removed: janitorRemoved }, "Boot janitor cleared stale delegated-proxy tempdirs");
|
|
158
|
+
}
|
|
159
|
+
const poolJanitorRemoved = runSessionPoolTempdirJanitor(join(config.dataDir, "agent-sessions"));
|
|
160
|
+
if (poolJanitorRemoved > 0) {
|
|
161
|
+
logger.info({ removed: poolJanitorRemoved }, "Boot janitor cleared stale delegated-task pool tempdirs");
|
|
162
|
+
}
|
|
163
|
+
// DELEGATED-TASK-MODE-DESIGN.md §11.1 — close `delegated_task.exec`
|
|
164
|
+
// rows that were `in_progress` when the daemon last crashed.
|
|
165
|
+
const taskOrphansClosed = runDelegatedTaskOrphanJanitor(db);
|
|
166
|
+
if (taskOrphansClosed > 0) {
|
|
167
|
+
logger.info({ closed: taskOrphansClosed }, "Boot janitor closed orphaned delegated_task in-progress rows");
|
|
168
|
+
}
|
|
169
|
+
const delegatedBackendInvoker = new DelegatedBackendInvoker({
|
|
170
|
+
db,
|
|
171
|
+
config,
|
|
172
|
+
cores: {
|
|
173
|
+
claude: agentCore,
|
|
174
|
+
codex: codexCore,
|
|
175
|
+
gemini: geminiCore,
|
|
176
|
+
opencode: opencodeCore,
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
// ── Notification + auth telemetry + shared notifier factory ────────────
|
|
180
|
+
// Sweep stale `batched` rows from a prior crash before the new
|
|
181
|
+
// dispatcher starts producing notifications. A queued (status='batched')
|
|
182
|
+
// row whose flush timer didn't fire (process killed) would otherwise
|
|
183
|
+
// linger forever and confuse the dashboard's notification feed.
|
|
184
|
+
NotificationManager.closeStaleBatchedRows(db);
|
|
185
|
+
const notificationManager = new NotificationManager(messageHub, db, config);
|
|
186
|
+
const authTelemetry = new AuthTelemetry(db);
|
|
187
|
+
const makeAuthNotifier = (source) => ({
|
|
188
|
+
send: async (message, options) => {
|
|
189
|
+
const kind = options?.kind ?? "keepalive";
|
|
190
|
+
const typeMap = {
|
|
191
|
+
probe_failure: "auth.probe_failure",
|
|
192
|
+
recovery: "auth.recovery",
|
|
193
|
+
keepalive: "auth.keepalive_reminder",
|
|
194
|
+
};
|
|
195
|
+
const notificationType = typeMap[kind] ?? "auth.keepalive_reminder";
|
|
196
|
+
// probe_failure and recovery bypass quiet-hours; keepalive does not.
|
|
197
|
+
const category = kind === "keepalive" ? "auth-health" : AUTH_PROBE_NOTIFICATION_CATEGORY;
|
|
198
|
+
await notificationManager.send(message, {
|
|
199
|
+
type: notificationType,
|
|
200
|
+
source,
|
|
201
|
+
priority: EventPriority.NORMAL,
|
|
202
|
+
timestamp: new Date(),
|
|
203
|
+
data: {},
|
|
204
|
+
correlationId: randomBytes(8).toString("hex"),
|
|
205
|
+
}, {
|
|
206
|
+
priority: "normal",
|
|
207
|
+
category,
|
|
208
|
+
destinationMode: "configured_only",
|
|
209
|
+
});
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
// ── Read-token manager + backend router with fallback re-materialize ──
|
|
213
|
+
const readTokenManager = new ScopedReadSensitiveTokenManager();
|
|
214
|
+
const agentRouter = new BackendRouter(db, config, [agentCore, codexCore, geminiCore, opencodeCore], notificationManager, authTelemetry,
|
|
215
|
+
// Materialize instruction files for a fallback backend in an existing
|
|
216
|
+
// session workdir. Without this, a Claude→Codex heavy-tier fallback
|
|
217
|
+
// would leave the dir with only CLAUDE.md and no AGENTS.md.
|
|
218
|
+
(sessionDir, backendId, eventType, processKey, wikiWorkspaceName, messageText) => {
|
|
219
|
+
const cfgServices = buildConfiguredServices(config, {
|
|
220
|
+
...services,
|
|
221
|
+
github: selectGithubRepoSlugs(db).length > 0,
|
|
222
|
+
});
|
|
223
|
+
const mailAccounts = services.mail?.listActiveAccounts() ?? [];
|
|
224
|
+
ensureBackendMaterialized(config.workspaceDir, sessionDir, backendId, eventType, processKey, cfgServices, mailAccounts, readIntegrations(db), config.character, wikiWorkspaceName, getContextDir(config, db), db, messageText ?? null);
|
|
225
|
+
syncAllUserSkills(sessionDir, resolveUserSkillsRoot(config));
|
|
226
|
+
});
|
|
227
|
+
// docs/design/appendices/skills-unification.md Phase 1 §R5 / item 6 — refuse to boot on a
|
|
228
|
+
// malformed source tree. Throws on slug-pattern violations and
|
|
229
|
+
// `description.length > 280` for every built-in `SKILL.md`.
|
|
230
|
+
validateBuiltinSkillSourceTree(join(config.workspaceDir, "agent-assets", "skills"));
|
|
231
|
+
// Startup validation — warn if any delegated-mode variant files are
|
|
232
|
+
// missing. Never throws.
|
|
233
|
+
{
|
|
234
|
+
const startupIntegrations = readIntegrations(db);
|
|
235
|
+
const missing = validateDelegatedStartup(config.workspaceDir, startupIntegrations);
|
|
236
|
+
if (missing.skills.length > 0 || missing.taskFlows.length > 0) {
|
|
237
|
+
logger.warn({ missingSkills: missing.skills, missingTaskFlows: missing.taskFlows }, "Delegated-mode variant files missing — agent will fall back to SKILL.md / direct task-flow for affected entries");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// ── Context builder + session/message recording + audit broadcaster ───
|
|
241
|
+
const contextBuilder = new ContextBuilder(config, db, services);
|
|
242
|
+
const sessionManager = new SessionManager(db, config);
|
|
243
|
+
const messageRecorder = new MessageRecorder(db);
|
|
244
|
+
const eventBroadcaster = new EventBroadcaster();
|
|
245
|
+
const auditLogger = new AuditLogger(db, {
|
|
246
|
+
// `/api/events/stream` is defined in terms of persisted agent_actions
|
|
247
|
+
// rows, not raw EventBus payloads, so the broadcaster subscribes at
|
|
248
|
+
// the audit layer.
|
|
249
|
+
onRowInserted: (row) => eventBroadcaster.broadcastEvent(row),
|
|
250
|
+
});
|
|
251
|
+
// ── Agent execution recorder + tracker (AGENT_DEFINITIONS_DESIGN.md §8) ─
|
|
252
|
+
// The recorder owns the `agent_executions` row lifecycle + the agent-day
|
|
253
|
+
// `{date}` label; the tracker owns the per-firing begin/complete keyed by
|
|
254
|
+
// event correlationId, success-criteria evaluation, and the SSE feed. Both
|
|
255
|
+
// are wired into the dispatcher (+ the audit `agent_id` resolver) below.
|
|
256
|
+
const agentExecutionRecorder = new AgentExecutionRecorder({
|
|
257
|
+
db,
|
|
258
|
+
timezone: config.timezone || undefined,
|
|
259
|
+
dayBoundaryHour: config.dayBoundaryHour,
|
|
260
|
+
});
|
|
261
|
+
const agentExecutionTracker = new AgentExecutionTracker({
|
|
262
|
+
db,
|
|
263
|
+
recorder: agentExecutionRecorder,
|
|
264
|
+
contextDir: getContextDir(config, db),
|
|
265
|
+
emitSse: (event, payload) => eventBroadcaster.broadcastEvent({
|
|
266
|
+
kind: event,
|
|
267
|
+
...payload,
|
|
268
|
+
}),
|
|
269
|
+
loadCriteria: loadAgentSuccessCriteria,
|
|
270
|
+
});
|
|
271
|
+
// Stamp `agent_actions.agent_id` for every row produced by the in-flight
|
|
272
|
+
// firing — the tracker holds the resolved slug for the run's correlationId.
|
|
273
|
+
auditLogger.setAgentIdResolver((event) => agentExecutionTracker.currentAgentId(event.correlationId));
|
|
274
|
+
// ── DM workdir re-materialization (shared by mail scope + mode flips) ─
|
|
275
|
+
const rematerializeActiveDmWorkdirs = (reason) => {
|
|
276
|
+
const sessions = sessionManager.listActiveDmSessions();
|
|
277
|
+
if (sessions.length === 0) {
|
|
278
|
+
logger.debug({ reason }, "DM workdir refresh requested — no active DM sessions");
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
const cfgServices = buildConfiguredServices(config, {
|
|
282
|
+
...services,
|
|
283
|
+
github: selectGithubRepoSlugs(db).length > 0,
|
|
284
|
+
});
|
|
285
|
+
const mailAccounts = services.mail?.listActiveAccounts() ?? [];
|
|
286
|
+
// Read integration state fresh inside the closure so a Phase F mode
|
|
287
|
+
// flip's pre-`writeIntegrations` row is not what gets baked.
|
|
288
|
+
const integrations = readIntegrations(db);
|
|
289
|
+
const summary = refreshDmSessionWorkdirs({
|
|
290
|
+
projectRoot: config.workspaceDir,
|
|
291
|
+
dataDir: config.dataDir,
|
|
292
|
+
sessions,
|
|
293
|
+
configuredServices: cfgServices,
|
|
294
|
+
mailAccounts,
|
|
295
|
+
integrations,
|
|
296
|
+
character: config.character,
|
|
297
|
+
});
|
|
298
|
+
return { summary, mailAccounts };
|
|
299
|
+
};
|
|
300
|
+
// Real implementation of the mail-scope-changed hook. Forward-reference
|
|
301
|
+
// was held open by the `setMailScopeChangedHandler` setter in `index.ts`.
|
|
302
|
+
setMailScopeChangedHandler((reason) => {
|
|
303
|
+
const result = rematerializeActiveDmWorkdirs(reason);
|
|
304
|
+
if (!result)
|
|
305
|
+
return;
|
|
306
|
+
logger.info({ reason, ...result.summary }, "Mail scope changed — DM session workdirs re-materialized");
|
|
307
|
+
eventBroadcaster.broadcastEvent({
|
|
308
|
+
kind: "mail_scope_changed",
|
|
309
|
+
reason,
|
|
310
|
+
activeAccounts: result.mailAccounts.length,
|
|
311
|
+
...result.summary,
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
// ── Migration / context-write gates + task flow init ──────────────────
|
|
315
|
+
// Long timeout because cross-fs copies of large vaults may legitimately
|
|
316
|
+
// run multiple minutes.
|
|
317
|
+
const migrationLock = new MigrationLock(60 * 60 * 1000);
|
|
318
|
+
const contextWriteGate = new ContextWriteGate();
|
|
319
|
+
initTaskFlows(config.workspaceDir, config.dataDir);
|
|
320
|
+
// ── Signal detector + dispatcher ──────────────────────────────────────
|
|
321
|
+
const signalDetector = new SignalDetector(config);
|
|
322
|
+
const dispatcher = new EventDispatcher(eventBus, agentRouter, contextBuilder, getTaskFlow, notificationManager, sessionManager, messageRecorder, auditLogger, db, config, morningRoutineLock, services, roadmapWriteLock, writeTracker);
|
|
323
|
+
notificationManager.setSignalDetector(signalDetector);
|
|
324
|
+
// Wire the scoped read-token manager into every backend so daemon-API
|
|
325
|
+
// calls from `<sessionDir>` workdirs carry a per-session token, not the
|
|
326
|
+
// legacy shared one. OpenCode is included for parity even though the
|
|
327
|
+
// SDK currently runs in-process and offers no per-tool env injection
|
|
328
|
+
// slot — see opencode-core.ts (issuedReadToken) for the gap; this call
|
|
329
|
+
// keeps the issue/revoke bookkeeping consistent so a future env-
|
|
330
|
+
// injection path lands on a wired manager rather than a silent undefined.
|
|
331
|
+
agentCore.setReadTokenManager?.(readTokenManager);
|
|
332
|
+
codexCore.setReadTokenManager?.(readTokenManager);
|
|
333
|
+
geminiCore.setReadTokenManager?.(readTokenManager);
|
|
334
|
+
opencodeCore.setReadTokenManager?.(readTokenManager);
|
|
335
|
+
// Install the roadmap-refresh sink so observer pollers built in B-2 can
|
|
336
|
+
// emit refresh signals via the `triggerRoadmapRefresh` trampoline. Until
|
|
337
|
+
// this fires the trampoline is a no-op; the actual emit only happens
|
|
338
|
+
// inside poll loops which start after `observerManager.startAll()` in
|
|
339
|
+
// §13 of `index.ts`.
|
|
340
|
+
setRoadmapRefreshSink((source) => dispatcher.emitRoadmapRefresh(source));
|
|
341
|
+
// ── Dispatcher setters ────────────────────────────────────────────────
|
|
342
|
+
dispatcher.setSignalDetector(signalDetector);
|
|
343
|
+
// DOCS_QA_B7_DESIGN.md §11.1 — persistence-side citation validator for
|
|
344
|
+
// docs_qa sessions. Inert for chat/DM/routine flows.
|
|
345
|
+
const docsCitationLookup = makeDocsCitationLookup(db);
|
|
346
|
+
dispatcher.setDocsCitationLookup(docsCitationLookup);
|
|
347
|
+
// Docs-QA SSE adapter — DOCS_QA_B7_DESIGN.md §S4 / §S8. Fans out
|
|
348
|
+
// alongside the dashboard adapter on the same `platform="dashboard"`
|
|
349
|
+
// surface; the `intent: "docs_qa"` discriminator on inbound events
|
|
350
|
+
// forks dispatch into the docs-qa task flow. Intentionally NOT
|
|
351
|
+
// registered with `messageHub` (would collide with the dashboard adapter
|
|
352
|
+
// on the shared platform key).
|
|
353
|
+
const docsQAAdapter = new DocsQAAdapter((event) => void eventBus.put(event), docsCitationLookup);
|
|
354
|
+
dispatcher.setDashboardStream(new CompositeDashboardStream([dashboardAdapter, docsQAAdapter]));
|
|
355
|
+
dispatcher.setAttachmentStore(attachmentStore);
|
|
356
|
+
dispatcher.setEventBroadcaster(eventBroadcaster);
|
|
357
|
+
dispatcher.setAgentExecutionTracker(agentExecutionTracker);
|
|
358
|
+
// Voice transcription. See docs/design/appendices/voice-transcription.md.
|
|
359
|
+
// Env vars stay live for advanced operators; `enabled` falls back to the
|
|
360
|
+
// `voiceTranscriptionEnabled` runtime setting via a getter so the
|
|
361
|
+
// dashboard install flow takes effect without a daemon restart.
|
|
362
|
+
const voiceTranscriberMaxDuration = Number(process.env.PA_VOICE_TRANSCRIPTION_MAX_DURATION_SEC ?? "600");
|
|
363
|
+
const voiceEnvOverride = process.env.PA_VOICE_TRANSCRIPTION_ENABLED;
|
|
364
|
+
const voiceTranscriberEnabled = voiceEnvOverride !== undefined
|
|
365
|
+
? voiceEnvOverride.toLowerCase() !== "false"
|
|
366
|
+
: () => config.voiceTranscriptionEnabled;
|
|
367
|
+
const voicePrimaryEnvOverride = process.env.PA_VOICE_TRANSCRIPTION_PRIMARY_LANGUAGE;
|
|
368
|
+
const voiceTranscriberPrimaryLanguage = voicePrimaryEnvOverride !== undefined
|
|
369
|
+
? voicePrimaryEnvOverride.trim() || null
|
|
370
|
+
: () => config.voiceTranscriptionPrimaryLanguage;
|
|
371
|
+
const voiceTranscriber = new VoiceTranscriber({
|
|
372
|
+
db,
|
|
373
|
+
modelDir: join(config.dataDir, "models", "whisper"),
|
|
374
|
+
enabled: voiceTranscriberEnabled,
|
|
375
|
+
model: process.env.PA_VOICE_TRANSCRIPTION_MODEL,
|
|
376
|
+
language: process.env.PA_VOICE_TRANSCRIPTION_LANGUAGE ?? null,
|
|
377
|
+
primaryLanguage: voiceTranscriberPrimaryLanguage,
|
|
378
|
+
maxDurationSec: Number.isFinite(voiceTranscriberMaxDuration)
|
|
379
|
+
? voiceTranscriberMaxDuration
|
|
380
|
+
: 600,
|
|
381
|
+
});
|
|
382
|
+
dispatcher.setVoiceTranscriber(voiceTranscriber);
|
|
383
|
+
// M5 (release-prep): kick off the Whisper pipeline load in the
|
|
384
|
+
// background so the first inbound voice DM does not pay the
|
|
385
|
+
// ~800 MB – 2.5 GB model-download cost on the request path. The
|
|
386
|
+
// `void` is deliberate — daemon startup must NOT block on Hugging
|
|
387
|
+
// Face Hub being reachable. `warmUp()` is internally fault-tolerant
|
|
388
|
+
// (catches its own errors and logs them), so the outer `.catch` is
|
|
389
|
+
// pure defence against future signature drift.
|
|
390
|
+
void voiceTranscriber.warmUp().catch((err) => {
|
|
391
|
+
logger.warn({ err }, "voice transcriber warm-up threw despite internal catch — investigate");
|
|
392
|
+
});
|
|
393
|
+
// ── Auth health monitor + recovery (post-dispatcher) ──────────────────
|
|
394
|
+
// Constructed after the dispatcher so the `isMorningRoutineActive`
|
|
395
|
+
// closure resolves immediately (no forward-reference let-slot needed).
|
|
396
|
+
const authHealthMonitor = new AuthHealthMonitor(db, {
|
|
397
|
+
claude: agentCore,
|
|
398
|
+
codex: codexCore,
|
|
399
|
+
gemini: geminiCore,
|
|
400
|
+
opencode: opencodeCore,
|
|
401
|
+
}, authTelemetry, {
|
|
402
|
+
notifier: makeAuthNotifier("auth-health-monitor"),
|
|
403
|
+
isMorningRoutineActive: () => dispatcher.isMorningRoutineActive(),
|
|
404
|
+
isQuietHours: () => notificationManager.isQuietHours(),
|
|
405
|
+
probeDisabled: () => config.authProbeDisabled,
|
|
406
|
+
});
|
|
407
|
+
// Reset any recoveries that were in-flight when the daemon was last killed.
|
|
408
|
+
const recovered = authHealthMonitor.reconcilePendingRecoveries();
|
|
409
|
+
if (recovered > 0) {
|
|
410
|
+
logger.info({ count: recovered }, "Reconciled stuck auth recoveries on startup");
|
|
411
|
+
}
|
|
412
|
+
// Run the 60-day keepalive sweep once on startup. Hourly probe is
|
|
413
|
+
// registered via `scheduler.setAuthProbeCallback` in §12.
|
|
414
|
+
void authHealthMonitor.runKeepaliveSweep().catch((err) => {
|
|
415
|
+
logger.warn({ err }, "Initial auth keepalive sweep failed");
|
|
416
|
+
});
|
|
417
|
+
const keepaliveTimer = setInterval(() => {
|
|
418
|
+
void authHealthMonitor.runKeepaliveSweep().catch((err) => {
|
|
419
|
+
logger.warn({ err }, "Periodic auth keepalive sweep failed");
|
|
420
|
+
});
|
|
421
|
+
}, 24 * 60 * 60 * 1000);
|
|
422
|
+
keepaliveTimer.unref?.();
|
|
423
|
+
// Interactive auth recovery manager. Uses the same notifier sink as the
|
|
424
|
+
// AuthHealthMonitor so recovery DMs flow through the same notification
|
|
425
|
+
// pipeline with the same anti-spam guarantees.
|
|
426
|
+
const authRecovery = new AuthRecovery(db, authTelemetry, authHealthMonitor, makeAuthNotifier("auth-recovery"), {
|
|
427
|
+
claudeRecoveryTimeoutMin: 10,
|
|
428
|
+
codexRecoveryTimeoutMin: 15,
|
|
429
|
+
geminiRecoveryTimeoutMin: 5,
|
|
430
|
+
});
|
|
431
|
+
dispatcher.setAuthRecovery(authRecovery);
|
|
432
|
+
dispatcher.setAuthHealthMonitor(authHealthMonitor);
|
|
433
|
+
// ── Delegated sync worker (on-demand) ─────────────────────────────────
|
|
434
|
+
let delegatedSyncWorker = null;
|
|
435
|
+
const buildDelegatedSyncWorker = () => {
|
|
436
|
+
if (!delegatedSyncWorker) {
|
|
437
|
+
delegatedSyncWorker = new DelegatedSyncWorker({
|
|
438
|
+
db,
|
|
439
|
+
invoker: delegatedBackendInvoker,
|
|
440
|
+
calendarId: config.googleCalendarId,
|
|
441
|
+
timezone: config.timezone,
|
|
442
|
+
todayWriteLock: morningRoutineLock,
|
|
443
|
+
triggerRoadmapRefresh: (source) => dispatcher.emitRoadmapRefresh(source),
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
return delegatedSyncWorker;
|
|
447
|
+
};
|
|
448
|
+
if (hasActiveDelegatedSyncIntegration(db)) {
|
|
449
|
+
observerManager.register(buildDelegatedSyncWorker());
|
|
450
|
+
}
|
|
451
|
+
// Wire the delegated-sync refresh callback. The thunk reads the live
|
|
452
|
+
// `delegatedSyncWorker` reference each call so the dispatcher tracks
|
|
453
|
+
// re-registration when an integration mode flips. When no delegated
|
|
454
|
+
// integration is present, the worker is null and the call is a no-op.
|
|
455
|
+
dispatcher.setDelegatedSyncRefresh(async () => {
|
|
456
|
+
await delegatedSyncWorker?.runDisabledCadencesForHourlyCheck();
|
|
457
|
+
});
|
|
458
|
+
// ── Delegated probe observer (DELEGATED-MODE-V2 §7.1) ────────────────
|
|
459
|
+
// Hourly re-probe of delegated integrations' connector tools so the
|
|
460
|
+
// `integration_probes` cache reflects current sign-in state.
|
|
461
|
+
{
|
|
462
|
+
const { DelegatedProbeObserver } = await import("../observers/delegated-probe-observer.js");
|
|
463
|
+
observerManager.register(new DelegatedProbeObserver({
|
|
464
|
+
db,
|
|
465
|
+
agentBackends: [agentCore, codexCore, geminiCore, opencodeCore],
|
|
466
|
+
intervalMinutes: config.delegatedProbeIntervalMinutes,
|
|
467
|
+
}));
|
|
468
|
+
}
|
|
469
|
+
// ── Bang commands + skill-curation hooks ──────────────────────────────
|
|
470
|
+
// Messaging bang-commands (`!stop`/`!start`/`!cost`/`!report`) — owner
|
|
471
|
+
// DM chokepoint that runs ahead of every other interceptor.
|
|
472
|
+
dispatcher.setBangCommandRegistry(createDefaultBangCommandRegistry());
|
|
473
|
+
// Browser-task screenshots (ask_user / finish / lite-final-confirm / B-4
|
|
474
|
+
// purchase confirmations) are delivered to the dashboard as real chat
|
|
475
|
+
// attachments — fetched by id through the authenticated /api proxy —
|
|
476
|
+
// instead of loopback trace URLs a raw <img> cannot authenticate. This
|
|
477
|
+
// hook ingests a trace-store PNG/JPEG into the AttachmentStore to mint a
|
|
478
|
+
// fetchable id; messaging adapters take the trace file directly via their
|
|
479
|
+
// native upload API and never reach it. Best-effort: an ingest failure
|
|
480
|
+
// (disallowed mime, missing file) returns null and the caller omits the
|
|
481
|
+
// image. Shared by the MCP notifier + both confirm senders.
|
|
482
|
+
const ingestBrowserTaskScreenshot = async (input) => {
|
|
483
|
+
try {
|
|
484
|
+
const result = await attachmentStore.ingestStream({
|
|
485
|
+
stream: createReadStream(input.absPath),
|
|
486
|
+
declaredMimeType: input.mimeType,
|
|
487
|
+
originalFilename: input.originalFilename,
|
|
488
|
+
direction: "outbound",
|
|
489
|
+
provenance: "agent",
|
|
490
|
+
maxSizeBytes: 5 * 1024 * 1024,
|
|
491
|
+
});
|
|
492
|
+
return {
|
|
493
|
+
id: result.id,
|
|
494
|
+
path: result.path,
|
|
495
|
+
originalFilename: result.originalFilename,
|
|
496
|
+
mimeType: result.mimeType,
|
|
497
|
+
sizeBytes: result.sizeBytes,
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
catch (err) {
|
|
501
|
+
logger.warn({ err }, "browser-task screenshot ingest failed (omitting)");
|
|
502
|
+
return null;
|
|
503
|
+
}
|
|
504
|
+
};
|
|
505
|
+
// ── Phase B-4 purchase handler ────────────────────────────────────────
|
|
506
|
+
// MANAGED_CHROMIUM_IMPLEMENTATION_PLAN.md §17.3 / §13 step 50.
|
|
507
|
+
//
|
|
508
|
+
// The handler holds the unforgeable capability that gates
|
|
509
|
+
// `sendSystemMessage` — see `purchase-handler.ts`. The system-message
|
|
510
|
+
// sender uses the existing MessageHub to dispatch DMs; we construct
|
|
511
|
+
// it here once the hub is available, then thread the handler into
|
|
512
|
+
// the dispatcher (for the inbound classifier hook on `!~xxxxxxxx` /
|
|
513
|
+
// `!verify` / `!cancel-purchase`). The API server picks up the same
|
|
514
|
+
// instance via `dispatcher.getPurchaseHandler()` at startup-api.ts.
|
|
515
|
+
//
|
|
516
|
+
// Wired unconditionally — every install gets a handler even when the
|
|
517
|
+
// master toggle is OFF, because the inbound classifier still needs
|
|
518
|
+
// to recognise + reject token-shaped replies that the user might
|
|
519
|
+
// send by mistake (and to write the audit row). The handler refuses
|
|
520
|
+
// issuance internally via `getB4Enabled` so cost is bounded.
|
|
521
|
+
{
|
|
522
|
+
const { createPurchaseHandler } = await import("../services/browser-history/automation/purchase-handler.js");
|
|
523
|
+
const { createPurchaseSystemMessageSender } = await import("../messaging/purchase-system-message-sender.js");
|
|
524
|
+
const sender = createPurchaseSystemMessageSender({
|
|
525
|
+
messageHub,
|
|
526
|
+
paDataDir: config.dataDir,
|
|
527
|
+
ingestOutboundImage: ingestBrowserTaskScreenshot,
|
|
528
|
+
});
|
|
529
|
+
const purchaseHandler = createPurchaseHandler({
|
|
530
|
+
db,
|
|
531
|
+
sender,
|
|
532
|
+
});
|
|
533
|
+
dispatcher.setPurchaseHandler(purchaseHandler);
|
|
534
|
+
// MANAGED_CHROMIUM_IMPLEMENTATION_PLAN.md §17.3 "Daemon crash during
|
|
535
|
+
// the 5-min window" — on supervisor restart, sweep both flavours of
|
|
536
|
+
// orphaned token. (a) Pre-consume rows whose 5-min TTL has elapsed
|
|
537
|
+
// are flipped to `expired` with reason=timeout; (b) post-consume
|
|
538
|
+
// rows where the click never landed (the previous daemon process
|
|
539
|
+
// died after the user typed the token but before finalize) are
|
|
540
|
+
// flipped to `cancelled` with reason=supervisor_orphan_sweep.
|
|
541
|
+
// Without this the rows sit stranded until the daily retention
|
|
542
|
+
// sweep. Best-effort: a failure logs but does not abort startup —
|
|
543
|
+
// the retention sweep is the long-running safety net.
|
|
544
|
+
try {
|
|
545
|
+
const { expireStalePurchaseTokens, sweepOrphanedConsumedPurchaseTokens, } = await import("../db/browser-automation-purchase-tokens-store.js");
|
|
546
|
+
const now = Date.now();
|
|
547
|
+
const expired = expireStalePurchaseTokens(db, now);
|
|
548
|
+
// 10-min grace mirrors the retention sweep — anything consumed
|
|
549
|
+
// more than 10 min ago without a finalize must have been
|
|
550
|
+
// orphaned by a previous daemon process (the workflow's own
|
|
551
|
+
// perWorkflowTimeoutMs is 6 min).
|
|
552
|
+
const orphaned = sweepOrphanedConsumedPurchaseTokens(db, now - 10 * 60 * 1000);
|
|
553
|
+
if (expired.length > 0 || orphaned.length > 0) {
|
|
554
|
+
logger.info({ expired: expired.length, orphaned: orphaned.length }, "B-4 boot-time orphan recovery: cleaned up stranded purchase tokens");
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
catch (err) {
|
|
558
|
+
logger.warn({ err }, "B-4 boot-time orphan recovery failed (retention sweep will retry)");
|
|
559
|
+
}
|
|
560
|
+
// MANAGED_CHROMIUM_IMPLEMENTATION_PLAN.md §17.3 row 7 — SIGKILL
|
|
561
|
+
// every orphan A-purchase Chromium process whose `--user-data-dir`
|
|
562
|
+
// points at `chromium-automation-purchase/<siteKey>/`. The DB sweep
|
|
563
|
+
// above flips the token rows to cancelled but the Chromium process
|
|
564
|
+
// could survive the parent daemon's death (Chromium spawns helper
|
|
565
|
+
// children; `detached: false` is a best-effort, not a hard
|
|
566
|
+
// guarantee, and a `nohup` / suspended-launcher path leaves the
|
|
567
|
+
// child alive with the user's authenticated cart context and an
|
|
568
|
+
// open CDP debug port on localhost). The kill is OS-agnostic via
|
|
569
|
+
// the HostProfile abstraction, runs unconditionally regardless of
|
|
570
|
+
// whether any rows were swept (the DB and the process state can
|
|
571
|
+
// diverge — e.g. a daemon crash AFTER finalize but before SIGTERM
|
|
572
|
+
// would leave the process alive without a corresponding pending
|
|
573
|
+
// row), and is best-effort: a missing `chromium-automation-purchase/`
|
|
574
|
+
// directory, missing Chromium binary, or a `ps` shell-out failure
|
|
575
|
+
// is silent.
|
|
576
|
+
try {
|
|
577
|
+
const { createHostProfile } = await import("../services/browser-history/lifecycle/platform.js");
|
|
578
|
+
const { killOrphanedPurchaseChromium } = await import("../services/browser-history/managed-chromium/setup-bootstrap.js");
|
|
579
|
+
const host = createHostProfile();
|
|
580
|
+
const { killedPids } = await killOrphanedPurchaseChromium(host, config.dataDir);
|
|
581
|
+
if (killedPids.length > 0) {
|
|
582
|
+
logger.warn({ killedPids }, "B-4 boot-time recovery: killed orphan A-purchase Chromium processes");
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
catch (err) {
|
|
586
|
+
logger.warn({ err }, "B-4 boot-time orphan-Chromium kill failed (process may persist until next OS-level cleanup)");
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
// ── Browser-task lite-final-confirm handler ───────────────────────────
|
|
590
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §5 / §14.11 (Q#6 MVP blocker).
|
|
591
|
+
//
|
|
592
|
+
// Parallel to the B-4 purchase handler block above. Same anti-spoofing
|
|
593
|
+
// capability pattern — the sender mints its credential from
|
|
594
|
+
// `final-confirm-handler`'s module-private getter, so an agent tool
|
|
595
|
+
// that imports the sender still cannot dispatch DMs. The dispatcher
|
|
596
|
+
// holds the canonical instance via `setFinalConfirmHandler`; the
|
|
597
|
+
// inbound `!~xxxxxxxx` classifier in `dispatcher-message-handler.ts`
|
|
598
|
+
// queries both stores by raw token and routes to whichever returns a
|
|
599
|
+
// row (jti-prefix dispatch in practice — both jtis are uuid v4, so
|
|
600
|
+
// collision is bounded by uuid uniqueness).
|
|
601
|
+
//
|
|
602
|
+
// Wired unconditionally so the inbound classifier can still write
|
|
603
|
+
// the strict-cancel-on-non-token-reply audit row even when no tokens
|
|
604
|
+
// are currently outstanding. Phase 2 plumbs the same handler instance
|
|
605
|
+
// into the browser-task driver (`DriverDeps.finalConfirmHandler`) so
|
|
606
|
+
// the sub-agent's final-confirm gate issues + awaits via the canonical
|
|
607
|
+
// surface — sharing a single instance is what makes the §14.11 Q#6
|
|
608
|
+
// jti-prefix dispatch deterministic.
|
|
609
|
+
const { createFinalConfirmHandler } = await import("../services/browser-history/automation/final-confirm-handler.js");
|
|
610
|
+
const { createFinalConfirmSystemMessageSender } = await import("../messaging/final-confirm-system-message-sender.js");
|
|
611
|
+
const finalConfirmSender = createFinalConfirmSystemMessageSender({
|
|
612
|
+
messageHub,
|
|
613
|
+
paDataDir: config.dataDir,
|
|
614
|
+
ingestOutboundImage: ingestBrowserTaskScreenshot,
|
|
615
|
+
});
|
|
616
|
+
const finalConfirmHandler = createFinalConfirmHandler({
|
|
617
|
+
db,
|
|
618
|
+
sender: finalConfirmSender,
|
|
619
|
+
});
|
|
620
|
+
dispatcher.setFinalConfirmHandler(finalConfirmHandler);
|
|
621
|
+
// ── Browser-task slot manager + runner + driver ───────────────────────
|
|
622
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §5 / §5.1 — wire the in-memory slot
|
|
623
|
+
// state + the Phase 2 driver so `POST /api/browser-task` runs the
|
|
624
|
+
// real Playwright + Claude SDK loop.
|
|
625
|
+
//
|
|
626
|
+
// Two notifiers, one runner:
|
|
627
|
+
// - `notifier` (structural): runner-side. Fans "queued" /
|
|
628
|
+
// non-completed-terminal intents into MessageHub DMs. Stays terse
|
|
629
|
+
// + templated.
|
|
630
|
+
// - `driver.notifier` (MCP-side): the `mcp__aitne-browser__ask_user`
|
|
631
|
+
// and `mcp__aitne-browser__finish` tool handlers DM through this
|
|
632
|
+
// notifier so agent-authored prose lands on the originating channel.
|
|
633
|
+
//
|
|
634
|
+
// Both round-trip via `parseChannelRef` for the §14.8 attestation —
|
|
635
|
+
// unparseable refs log + skip rather than fan out to all primary
|
|
636
|
+
// channels (the originating value was already attestation-validated
|
|
637
|
+
// at task-creation time).
|
|
638
|
+
const { createBrowserTaskRunner, createSlotStateRef } = await import("../services/browser-task/browser-task-runner.js");
|
|
639
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §9a.5 Shape B — the same emitter
|
|
640
|
+
// instance threads through runner + driver + tools so a single
|
|
641
|
+
// `browser_task` SSE event fans out on every state transition.
|
|
642
|
+
const { createBrowserTaskTransitionEmitter: createBrowserTaskTransitionEmitterAtBoot } = await import("../services/browser-task/browser-task-transition-events.js");
|
|
643
|
+
const browserTaskTransitionEmitter = createBrowserTaskTransitionEmitterAtBoot(eventBroadcaster);
|
|
644
|
+
const { parseChannelRef: parseBrowserTaskChannelRef } = await import("../db/browser-automation-purchase-primary-channels-store.js");
|
|
645
|
+
const { createHostProfile: createBrowserTaskHostProfile } = await import("../services/browser-history/lifecycle/platform.js");
|
|
646
|
+
const { createBrowserTaskMcpNotifier } = await import("../messaging/browser-task-mcp-notifier.js");
|
|
647
|
+
const browserTaskSlotStateRef = createSlotStateRef(config.browserTaskMaxConcurrent);
|
|
648
|
+
const browserTaskMcpNotifier = createBrowserTaskMcpNotifier({
|
|
649
|
+
messageHub,
|
|
650
|
+
paDataDir: config.dataDir,
|
|
651
|
+
ingestOutboundImage: ingestBrowserTaskScreenshot,
|
|
652
|
+
});
|
|
653
|
+
const browserTaskHostProfile = createBrowserTaskHostProfile();
|
|
654
|
+
// Hoisted out of the `createBrowserTaskRunner({ notifier: ... })` arg
|
|
655
|
+
// so the same instance can also wire into the dispatcher's
|
|
656
|
+
// `scheduled.browser_task` fire-time-failure path (see
|
|
657
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §7). One DM-emission contract covers
|
|
658
|
+
// both the runner's own non-completed terminals and the pre-runner
|
|
659
|
+
// dispatch failures (`site_unregistered`, `allowlist_rejected`,
|
|
660
|
+
// `runner_unavailable`) that the runner never sees.
|
|
661
|
+
const browserTaskTerminalNotifier = {
|
|
662
|
+
async notifyQueued(input) {
|
|
663
|
+
const ref = input.originatingChannel;
|
|
664
|
+
if (!ref)
|
|
665
|
+
return;
|
|
666
|
+
const parsed = parseBrowserTaskChannelRef(ref);
|
|
667
|
+
if (!parsed) {
|
|
668
|
+
logger.warn({ taskId: input.taskId, ref }, "browser-task notifyQueued: unparseable channel ref — skipping DM");
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
try {
|
|
672
|
+
await messageHub.sendToPlatform(parsed.platform, parsed.channelId, `🕒 Browser task ${input.taskId} is queued behind ${input.blockedCount} task(s). Aitne will start it once the slot opens.`);
|
|
673
|
+
}
|
|
674
|
+
catch (err) {
|
|
675
|
+
logger.warn({ err, taskId: input.taskId, ref }, "browser-task queue DM dispatch failed (continuing)");
|
|
676
|
+
}
|
|
677
|
+
},
|
|
678
|
+
async notifyTerminal(input) {
|
|
679
|
+
// §5 "Reporting": on the success path the sub-agent's own
|
|
680
|
+
// `finish({ report, screenshotKeys })` tool fans the
|
|
681
|
+
// user-facing DM via the driver-side MCP notifier above. The
|
|
682
|
+
// structural notifier here is the FALLBACK signal — it covers
|
|
683
|
+
// every non-completed terminal (failures, timeouts,
|
|
684
|
+
// cancellations, abandons) where the agent never reached
|
|
685
|
+
// `finish` and the user would otherwise be left waiting.
|
|
686
|
+
if (input.state === "completed")
|
|
687
|
+
return;
|
|
688
|
+
const ref = input.originatingChannel;
|
|
689
|
+
if (!ref)
|
|
690
|
+
return;
|
|
691
|
+
const parsed = parseBrowserTaskChannelRef(ref);
|
|
692
|
+
if (!parsed) {
|
|
693
|
+
logger.warn({ taskId: input.taskId, ref }, "browser-task notifyTerminal: unparseable channel ref — skipping DM");
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
const detail = input.outcomeDetail ?? input.state;
|
|
697
|
+
try {
|
|
698
|
+
await messageHub.sendToPlatform(parsed.platform, parsed.channelId, `🟦 Browser task ${input.taskId} ended: ${input.state} (${detail}).`);
|
|
699
|
+
}
|
|
700
|
+
catch (err) {
|
|
701
|
+
logger.warn({ err, taskId: input.taskId, ref }, "browser-task terminal DM dispatch failed (continuing)");
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
};
|
|
705
|
+
const { compileUserHostnameDenylist } = await import("../services/browser-history/automation/egress-denylist.js");
|
|
706
|
+
const browserTaskRunner = createBrowserTaskRunner({
|
|
707
|
+
db,
|
|
708
|
+
slotStateRef: browserTaskSlotStateRef,
|
|
709
|
+
notifier: browserTaskTerminalNotifier,
|
|
710
|
+
transitionEmitter: browserTaskTransitionEmitter,
|
|
711
|
+
driver: {
|
|
712
|
+
db,
|
|
713
|
+
paDataDir: config.dataDir,
|
|
714
|
+
workspaceDir: config.workspaceDir,
|
|
715
|
+
hostProfile: browserTaskHostProfile,
|
|
716
|
+
finalConfirmHandler,
|
|
717
|
+
notifier: browserTaskMcpNotifier,
|
|
718
|
+
transitionEmitter: browserTaskTransitionEmitter,
|
|
719
|
+
// User-curated hostname denylist for the browser-task CDP route
|
|
720
|
+
// handler + §14.7 screenshot retention check. Passed as a thunk
|
|
721
|
+
// (not a precompiled array) so a Dashboard PATCH /api/config —
|
|
722
|
+
// which mutates `config.browserTaskHostnameDenylist` in place via
|
|
723
|
+
// `applyConfigUpdates` — takes effect on the **next** task without
|
|
724
|
+
// a daemon restart. Recompilation per task is cheap (max 500
|
|
725
|
+
// entries × tiny regex).
|
|
726
|
+
getHostnameDenylist: () => compileUserHostnameDenylist(config.browserTaskHostnameDenylist ?? []),
|
|
727
|
+
},
|
|
728
|
+
});
|
|
729
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §6.2 + §7 — Phase 3 wiring. The
|
|
730
|
+
// dispatcher's `scheduled.browser_task` branch reaches the runner
|
|
731
|
+
// through this setter. Wired right after the factory call so a
|
|
732
|
+
// fire-time event that races startup still finds the runner instead
|
|
733
|
+
// of falling through to `runner_unavailable`.
|
|
734
|
+
dispatcher.setBrowserTaskRunner(browserTaskRunner);
|
|
735
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §7 — wire the same DM emitter the
|
|
736
|
+
// runner uses into the dispatcher so fire-time failures
|
|
737
|
+
// (`site_unregistered`, `allowlist_rejected`, `runner_unavailable`)
|
|
738
|
+
// that never reach the runner still notify the owner. Without this
|
|
739
|
+
// a user-scheduled task can silently fail at fire time hours/days
|
|
740
|
+
// after the user issued it.
|
|
741
|
+
dispatcher.setBrowserTaskTerminalNotifier(browserTaskTerminalNotifier);
|
|
742
|
+
// ── Browser-task deadline scanner tick ────────────────────────────────
|
|
743
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §5 ask_user "Deadline enforcement" +
|
|
744
|
+
// §5.1 pending-queue timeout safety valve. Single 30 s tick handles
|
|
745
|
+
// both sweeps so the daemon has one mental model for time-based
|
|
746
|
+
// browser-task housekeeping (cadence preserved from the retired B-3
|
|
747
|
+
// approval-tokens supervisor; see browser-task-deadline-scanner.ts).
|
|
748
|
+
// The tick:
|
|
749
|
+
// 1. lists overdue clarifications (resolved=0 AND deadline_at < now)
|
|
750
|
+
// 2. asks the slot manager to sweep pending-queue timeouts
|
|
751
|
+
// 3. folds the two lists via `decideDeadlineActions`
|
|
752
|
+
// 4. for each action, writes the terminal transition + releases the
|
|
753
|
+
// slot (clarifications also expire the clarification row so the
|
|
754
|
+
// `awaiting_user → abandoned` edge is recorded)
|
|
755
|
+
// 5. DMs the originating channel once per affected task
|
|
756
|
+
//
|
|
757
|
+
// The tick is best-effort: it logs and continues on per-row failures
|
|
758
|
+
// so a single bad row cannot wedge the timer. Cleared during graceful
|
|
759
|
+
// shutdown alongside the keepalive timer (see
|
|
760
|
+
// BootstrapEventPipelineResult.browserTaskDeadlineTimer).
|
|
761
|
+
//
|
|
762
|
+
// Phase 2 — both branches delegate to `browserTaskRunner.expireForDeadline`
|
|
763
|
+
// so a parked Playwright handle gets `releaseDriverHandle`'d alongside
|
|
764
|
+
// the terminal DB write (clarification-deadline path) and the SSE +
|
|
765
|
+
// slot-manager fan-out stays consistent with the runner's own
|
|
766
|
+
// terminal-write paths. The runner method is idempotent on
|
|
767
|
+
// already-terminal rows, so a concurrent /cancel race is safe.
|
|
768
|
+
const browserTaskDeadlineTimer = await (async () => {
|
|
769
|
+
const { decideDeadlineActions, DEADLINE_SCAN_INTERVAL_MS, } = await import("../services/browser-task/browser-task-deadline-scanner.js");
|
|
770
|
+
const { sweepPendingTimeouts } = await import("../services/browser-task/browser-task-slots.js");
|
|
771
|
+
const { listOverdueClarifications, expireClarification, } = await import("../db/browser-task-clarifications-store.js");
|
|
772
|
+
// `parseBrowserTaskChannelRef` is the same `parseChannelRef` hoisted
|
|
773
|
+
// above for the runner notifier; reuse it so the deadline tick and
|
|
774
|
+
// the runner share one channel-parse contract.
|
|
775
|
+
async function tick() {
|
|
776
|
+
try {
|
|
777
|
+
const now = Date.now();
|
|
778
|
+
const overdue = listOverdueClarifications(db, now);
|
|
779
|
+
const sweep = sweepPendingTimeouts(browserTaskSlotStateRef.state, now, config.browserTaskPendingQueueTimeoutMinutes);
|
|
780
|
+
// Apply the pending-queue removals to the shared slot ref so a
|
|
781
|
+
// subsequent route-layer queueState read does not still see
|
|
782
|
+
// expired entries.
|
|
783
|
+
browserTaskSlotStateRef.state = sweep.state;
|
|
784
|
+
const actions = decideDeadlineActions({
|
|
785
|
+
overdueClarifications: overdue,
|
|
786
|
+
expiredPending: sweep.expired,
|
|
787
|
+
nowMs: now,
|
|
788
|
+
});
|
|
789
|
+
if (actions.length === 0)
|
|
790
|
+
return;
|
|
791
|
+
for (const action of actions) {
|
|
792
|
+
try {
|
|
793
|
+
if (action.kind === "abandon_clarification") {
|
|
794
|
+
// Mark the clarification row expired first so the
|
|
795
|
+
// dashboard's clarification list reflects the deadline
|
|
796
|
+
// miss even if `expireForDeadline` hits a CAS race below.
|
|
797
|
+
expireClarification(db, action.clarificationId, action.nowMs);
|
|
798
|
+
// Delegate the parent-task transition to the runner so
|
|
799
|
+
// the parked Playwright handle is released alongside the
|
|
800
|
+
// terminal DB write — without this, every overdue
|
|
801
|
+
// clarification leaks a Chromium process + workdir.
|
|
802
|
+
// `expireForDeadline` is idempotent on already-terminal
|
|
803
|
+
// rows, so a concurrent cancel-race is safe.
|
|
804
|
+
const result = await browserTaskRunner.expireForDeadline(action.taskId, "clarification_deadline");
|
|
805
|
+
if (result.state === "abandoned") {
|
|
806
|
+
const row = (await import("../db/browser-task-store.js"))
|
|
807
|
+
.getBrowserTask(db, action.taskId);
|
|
808
|
+
await sendDeadlineDm(row?.originatingChannel ?? null, `⏰ Browser task ${action.taskId}: the 5-minute clarification window elapsed without a reply. Task abandoned.`);
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
else {
|
|
812
|
+
// Queue-timeout — the pending row never acquired a slot,
|
|
813
|
+
// so no Playwright handle exists to release. Still route
|
|
814
|
+
// through the runner so the slot-manager / DB / SSE
|
|
815
|
+
// emission stay coordinated; `expireForDeadline` flips
|
|
816
|
+
// the row to `failed (queue_timeout)` and is a no-op on
|
|
817
|
+
// the slot manager (the pending FIFO entry was already
|
|
818
|
+
// removed by `sweepPendingTimeouts` above).
|
|
819
|
+
const result = await browserTaskRunner.expireForDeadline(action.taskId, "queue_timeout", action.waitedMs);
|
|
820
|
+
const terminal = result.state === "failed"
|
|
821
|
+
? (await import("../db/browser-task-store.js"))
|
|
822
|
+
.getBrowserTask(db, action.taskId)
|
|
823
|
+
: null;
|
|
824
|
+
if (terminal) {
|
|
825
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §5.1 + §13 — the
|
|
826
|
+
// pending-queue timeout transition is the one slot-
|
|
827
|
+
// manager telemetry row the plan's test list pins
|
|
828
|
+
// explicitly ("emits agent_actions.queue.timeout + DM
|
|
829
|
+
// intent"). The DM intent is the sendDeadlineDm below;
|
|
830
|
+
// this writes the paired audit row so the operator can
|
|
831
|
+
// diagnose saturation episodes without dumping the
|
|
832
|
+
// in-memory slot map. The remaining queue.* events
|
|
833
|
+
// (enter / promote / release) power the dashboard
|
|
834
|
+
// "queue health" surface flagged as §9a future work and
|
|
835
|
+
// are deferred with the rest of that surface.
|
|
836
|
+
try {
|
|
837
|
+
db.prepare(`INSERT INTO agent_actions
|
|
838
|
+
(action_type, detail, result, started_at, completed_at)
|
|
839
|
+
VALUES (?, ?, 'success', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)`).run("browser_task.queue.timeout", JSON.stringify({
|
|
840
|
+
taskId: action.taskId,
|
|
841
|
+
siteKey: action.siteKey,
|
|
842
|
+
waitedMs: action.waitedMs,
|
|
843
|
+
}));
|
|
844
|
+
}
|
|
845
|
+
catch (err) {
|
|
846
|
+
/* c8 ignore next 5 */
|
|
847
|
+
logger.warn({ err, taskId: action.taskId }, "browser-task queue.timeout audit insert failed (continuing)");
|
|
848
|
+
}
|
|
849
|
+
await sendDeadlineDm(terminal.originatingChannel, `⏰ Browser task ${action.taskId}: queued for ${Math.round(action.waitedMs / 60000)} min behind a parked task and exceeded the pending-queue timeout. Task failed.`);
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
catch (err) {
|
|
854
|
+
logger.warn({ err, action }, "browser-task deadline action failed (continuing)");
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
catch (err) {
|
|
859
|
+
logger.warn({ err }, "browser-task deadline tick failed (continuing)");
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
async function sendDeadlineDm(ref, text) {
|
|
863
|
+
if (!ref)
|
|
864
|
+
return;
|
|
865
|
+
const parsed = parseBrowserTaskChannelRef(ref);
|
|
866
|
+
if (!parsed) {
|
|
867
|
+
// Persisted via the §14.8-attested channel set, so an
|
|
868
|
+
// unparseable value here means a value drifted past the
|
|
869
|
+
// attestation — flag visibly even though we cannot deliver.
|
|
870
|
+
logger.warn({ ref }, "browser-task deadline DM: unparseable channel ref — skipping");
|
|
871
|
+
return;
|
|
872
|
+
}
|
|
873
|
+
try {
|
|
874
|
+
await messageHub.sendToPlatform(parsed.platform, parsed.channelId, text);
|
|
875
|
+
}
|
|
876
|
+
catch (err) {
|
|
877
|
+
logger.warn({ err, ref }, "browser-task deadline DM dispatch failed (continuing)");
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
const timer = setInterval(() => {
|
|
881
|
+
void tick();
|
|
882
|
+
}, DEADLINE_SCAN_INTERVAL_MS);
|
|
883
|
+
// Allow the daemon to exit cleanly if every other timer has unrefed;
|
|
884
|
+
// a 30 s tick is housekeeping, not load-bearing for liveness.
|
|
885
|
+
if (typeof timer.unref === "function")
|
|
886
|
+
timer.unref();
|
|
887
|
+
return timer;
|
|
888
|
+
})();
|
|
889
|
+
// ── Browser-task boot-recovery DM fan-out ─────────────────────────────
|
|
890
|
+
// BROWSER_TASK_REDESIGN_PLAN.md §6.5 — `initDatabase` flipped every
|
|
891
|
+
// non-terminal `browser_task` row to `failed (daemon_restarted)` and
|
|
892
|
+
// wrote `agent_actions(action_type='browser_task.boot_recovery')` rows
|
|
893
|
+
// (deferred DM dispatch because the messaging adapters were still
|
|
894
|
+
// constructing). Now that `messageHub` exists, scan the audit log for
|
|
895
|
+
// un-DM'd recovery rows and fan them out once. A per-row marker on
|
|
896
|
+
// `agent_actions.metadata` ensures a second boot cannot double-DM.
|
|
897
|
+
//
|
|
898
|
+
// Best-effort: failures log but do not abort startup. The audit log
|
|
899
|
+
// remains the source of truth — an operator can re-fan by running the
|
|
900
|
+
// same SQL manually if all DMs fail.
|
|
901
|
+
void (async () => {
|
|
902
|
+
try {
|
|
903
|
+
const rows = db
|
|
904
|
+
.prepare(`SELECT id, detail FROM agent_actions
|
|
905
|
+
WHERE action_type = 'browser_task.boot_recovery'
|
|
906
|
+
AND (metadata IS NULL
|
|
907
|
+
OR json_extract(metadata, '$.dmSentAt') IS NULL)
|
|
908
|
+
ORDER BY id ASC`)
|
|
909
|
+
.all();
|
|
910
|
+
if (rows.length === 0)
|
|
911
|
+
return;
|
|
912
|
+
const markDmSent = db.prepare(`UPDATE agent_actions
|
|
913
|
+
SET metadata = json_set(COALESCE(metadata, '{}'), '$.dmSentAt', ?)
|
|
914
|
+
WHERE id = ?`);
|
|
915
|
+
for (const row of rows) {
|
|
916
|
+
try {
|
|
917
|
+
const detail = JSON.parse(row.detail);
|
|
918
|
+
const taskId = detail.taskId ?? "<unknown>";
|
|
919
|
+
const ref = detail.originatingChannel;
|
|
920
|
+
if (ref) {
|
|
921
|
+
const parsed = parseBrowserTaskChannelRef(ref);
|
|
922
|
+
if (parsed) {
|
|
923
|
+
await messageHub.sendToPlatform(parsed.platform, parsed.channelId, `♻️ Browser task ${taskId} was running when the daemon restarted and could not resume. The task is marked failed; re-issue the request if you still want it run.`);
|
|
924
|
+
}
|
|
925
|
+
else {
|
|
926
|
+
logger.warn({ taskId, ref }, "browser-task boot-recovery DM: unparseable channel ref — skipping");
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
markDmSent.run(new Date().toISOString(), row.id);
|
|
930
|
+
}
|
|
931
|
+
catch (err) {
|
|
932
|
+
logger.warn({ err, auditId: row.id }, "browser-task boot-recovery DM failed (continuing; row stays unmarked for next-boot retry)");
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
logger.info({ count: rows.length }, "browser-task boot-recovery: fanned DMs for restarted tasks");
|
|
936
|
+
}
|
|
937
|
+
catch (err) {
|
|
938
|
+
logger.warn({ err }, "browser-task boot-recovery DM fan-out failed (continuing)");
|
|
939
|
+
}
|
|
940
|
+
})();
|
|
941
|
+
// P22 — wire the optimizer-workdir hooks. The `materialize` callback
|
|
942
|
+
// captures db, dataDir, workspaceDir, contextDir, and secretStore so
|
|
943
|
+
// the dispatcher branch can invoke it without importing the workdir
|
|
944
|
+
// module directly.
|
|
945
|
+
{
|
|
946
|
+
const { materializeOptimizerWorkdir, teardownOptimizerWorkdir } = await import("../core/skill-curation/workdir.js");
|
|
947
|
+
dispatcher.setSkillCurationHooks({
|
|
948
|
+
materialize: (opts) => materializeOptimizerWorkdir({
|
|
949
|
+
db,
|
|
950
|
+
dataDir: config.dataDir,
|
|
951
|
+
workspaceDir: config.workspaceDir,
|
|
952
|
+
contextDir: getContextDir(config),
|
|
953
|
+
secretStore: secretBroker,
|
|
954
|
+
cadence: readSkillCurationCadence(db),
|
|
955
|
+
...(opts?.manual ? { manual: true } : {}),
|
|
956
|
+
...(opts?.targetSkillsOverride
|
|
957
|
+
? { targetSkillsOverride: opts.targetSkillsOverride }
|
|
958
|
+
: {}),
|
|
959
|
+
}),
|
|
960
|
+
teardown: teardownOptimizerWorkdir,
|
|
961
|
+
});
|
|
962
|
+
}
|
|
963
|
+
if (isUserPaused(db)) {
|
|
964
|
+
logger.info("Restored user-paused state, autonomous work remains paused");
|
|
965
|
+
}
|
|
966
|
+
// ── Cross-stage closures ──────────────────────────────────────────────
|
|
967
|
+
const handleGoogleServicesReady = createGoogleServicesReadyHandler({
|
|
968
|
+
db,
|
|
969
|
+
config,
|
|
970
|
+
services,
|
|
971
|
+
observerManager,
|
|
972
|
+
buildCalendarPoller,
|
|
973
|
+
scheduler,
|
|
974
|
+
dispatcher,
|
|
975
|
+
});
|
|
976
|
+
const handleSecretChange = createSecretChangeHandler({
|
|
977
|
+
db,
|
|
978
|
+
config,
|
|
979
|
+
services,
|
|
980
|
+
observerManager,
|
|
981
|
+
secretState,
|
|
982
|
+
buildNotionPoller,
|
|
983
|
+
getGitWatcher,
|
|
984
|
+
isStartupComplete,
|
|
985
|
+
reloadSlackAdapter,
|
|
986
|
+
reloadTelegramAdapter,
|
|
987
|
+
reloadDiscordAdapter,
|
|
988
|
+
reloadNotionService,
|
|
989
|
+
reloadGitHubService,
|
|
990
|
+
reloadGoogleServices,
|
|
991
|
+
reloadAppleCalendarService,
|
|
992
|
+
});
|
|
993
|
+
const handlePromptContextChanged = createPromptContextChangedHandler({
|
|
994
|
+
config,
|
|
995
|
+
db,
|
|
996
|
+
dispatcher,
|
|
997
|
+
sessionManager,
|
|
998
|
+
});
|
|
999
|
+
return {
|
|
1000
|
+
dispatcher,
|
|
1001
|
+
sessionManager,
|
|
1002
|
+
messageRecorder,
|
|
1003
|
+
notificationManager,
|
|
1004
|
+
signalDetector,
|
|
1005
|
+
eventBroadcaster,
|
|
1006
|
+
auditLogger,
|
|
1007
|
+
docsQAAdapter,
|
|
1008
|
+
agentBackends: [agentCore, codexCore, geminiCore, opencodeCore],
|
|
1009
|
+
opencodeServerManager,
|
|
1010
|
+
delegatedBackendInvoker,
|
|
1011
|
+
authHealthMonitor,
|
|
1012
|
+
authRecovery,
|
|
1013
|
+
authTelemetry,
|
|
1014
|
+
readTokenManager,
|
|
1015
|
+
migrationLock,
|
|
1016
|
+
contextWriteGate,
|
|
1017
|
+
buildDelegatedSyncWorker,
|
|
1018
|
+
getDelegatedSyncWorker: () => delegatedSyncWorker,
|
|
1019
|
+
rematerializeActiveDmWorkdirs,
|
|
1020
|
+
handleSecretChange,
|
|
1021
|
+
handleGoogleServicesReady,
|
|
1022
|
+
handlePromptContextChanged,
|
|
1023
|
+
keepaliveTimer,
|
|
1024
|
+
browserTaskDeadlineTimer,
|
|
1025
|
+
browserTaskSlotStateRef,
|
|
1026
|
+
browserTaskRunner,
|
|
1027
|
+
};
|
|
1028
|
+
}
|
|
1029
|
+
/**
|
|
1030
|
+
* Build the `handleSecretChange(scope)` closure consumed by the API
|
|
1031
|
+
* surface's `onSecretChanged` hook. Exported so the peer test can pin
|
|
1032
|
+
* the scope-routing matrix without booting a real dispatcher.
|
|
1033
|
+
*
|
|
1034
|
+
* The matrix MUST stay in sync with `docs/design/appendices/
|
|
1035
|
+
* index-bootstrap-stage-split.md` §10 (test bullet 1):
|
|
1036
|
+
*
|
|
1037
|
+
* scope → reload + hot-register branches
|
|
1038
|
+
* "slack" → reloadSlackAdapter(force=true)
|
|
1039
|
+
* "telegram" → reloadTelegramAdapter(force=true)
|
|
1040
|
+
* "discord" → reloadDiscordAdapter(force=true)
|
|
1041
|
+
* "notion" → reloadNotionService; then if services.notion
|
|
1042
|
+
* && !observerManager.has("notion-poller")
|
|
1043
|
+
* && notionDatabaseIds.length > 0
|
|
1044
|
+
* && shouldStartObserversFor(db, "notion")
|
|
1045
|
+
* → register + start a freshly-built poller
|
|
1046
|
+
* "github" → reloadGitHubService; then if getGitWatcher()
|
|
1047
|
+
* && secretState.githubWebhookConfigured
|
|
1048
|
+
* → enableWebhookMode on the existing watcher
|
|
1049
|
+
* "google" → reloadGoogleServices
|
|
1050
|
+
* "apple_calendar" → reloadAppleCalendarService
|
|
1051
|
+
* "apiToken" → no-op (a token rotation only affects future
|
|
1052
|
+
* request authentication; nothing here is keyed on it)
|
|
1053
|
+
* default → no-op (unknown scope is silently ignored to keep
|
|
1054
|
+
* forward-compat with new secret kinds)
|
|
1055
|
+
*/
|
|
1056
|
+
export function createSecretChangeHandler(deps) {
|
|
1057
|
+
const { db, config, services, observerManager, secretState, buildNotionPoller, getGitWatcher, isStartupComplete, reloadSlackAdapter, reloadTelegramAdapter, reloadDiscordAdapter, reloadNotionService, reloadGitHubService, reloadGoogleServices, reloadAppleCalendarService, } = deps;
|
|
1058
|
+
return async (scope) => {
|
|
1059
|
+
switch (scope) {
|
|
1060
|
+
case "slack":
|
|
1061
|
+
await reloadSlackAdapter(true);
|
|
1062
|
+
return;
|
|
1063
|
+
case "telegram":
|
|
1064
|
+
await reloadTelegramAdapter(true);
|
|
1065
|
+
return;
|
|
1066
|
+
case "discord":
|
|
1067
|
+
await reloadDiscordAdapter(true);
|
|
1068
|
+
return;
|
|
1069
|
+
case "notion":
|
|
1070
|
+
await reloadNotionService();
|
|
1071
|
+
// Hot-reload: if the user just added the Notion API key while the
|
|
1072
|
+
// integration is already in `direct` mode, register the poller now
|
|
1073
|
+
// so they don't have to restart the daemon. Mirrors the
|
|
1074
|
+
// `handleGoogleServicesReady` calendar-side path. Idempotent via
|
|
1075
|
+
// `observerManager.has()`.
|
|
1076
|
+
//
|
|
1077
|
+
// The explicit `poller.start()` only fires AFTER startup has
|
|
1078
|
+
// completed. During the bootstrap window (API listener live, but
|
|
1079
|
+
// `observerManager.startAll()` not yet called) we register the
|
|
1080
|
+
// poller and let the pending `startAll()` start it — calling
|
|
1081
|
+
// `start()` here AND letting `startAll()` start it again would
|
|
1082
|
+
// overwrite NotionPoller's `setInterval` slot and leak the first
|
|
1083
|
+
// timer (`notion-poller.ts:91` unconditionally writes `this.timer`).
|
|
1084
|
+
if (services.notion
|
|
1085
|
+
&& !observerManager.has("notion-poller")
|
|
1086
|
+
&& Object.keys(config.notionDatabaseIds).length > 0
|
|
1087
|
+
&& shouldStartObserversFor(db, "notion")) {
|
|
1088
|
+
const poller = buildNotionPoller();
|
|
1089
|
+
if (poller) {
|
|
1090
|
+
observerManager.register(poller);
|
|
1091
|
+
if (isStartupComplete()) {
|
|
1092
|
+
void poller.start();
|
|
1093
|
+
logger.info("NotionPoller started via hot-reload");
|
|
1094
|
+
}
|
|
1095
|
+
else {
|
|
1096
|
+
logger.info("NotionPoller registered during bootstrap; observerManager.startAll() will start it");
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
return;
|
|
1101
|
+
case "github":
|
|
1102
|
+
await reloadGitHubService();
|
|
1103
|
+
{
|
|
1104
|
+
const existingGitWatcher = getGitWatcher();
|
|
1105
|
+
if (existingGitWatcher && secretState.githubWebhookConfigured) {
|
|
1106
|
+
existingGitWatcher.enableWebhookMode();
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
return;
|
|
1110
|
+
case "google":
|
|
1111
|
+
await reloadGoogleServices();
|
|
1112
|
+
return;
|
|
1113
|
+
case "apple_calendar":
|
|
1114
|
+
await reloadAppleCalendarService();
|
|
1115
|
+
return;
|
|
1116
|
+
case "apiToken":
|
|
1117
|
+
default:
|
|
1118
|
+
return;
|
|
1119
|
+
}
|
|
1120
|
+
};
|
|
1121
|
+
}
|
|
1122
|
+
/**
|
|
1123
|
+
* Build the `handleGoogleServicesReady` closure consumed when an OAuth
|
|
1124
|
+
* round-trip leaves a fresh Google credential in the keychain mid-runtime.
|
|
1125
|
+
* Exported so the peer test can pin the morning-routine / roadmap-refresh
|
|
1126
|
+
* matrix without booting a real dispatcher.
|
|
1127
|
+
*
|
|
1128
|
+
* Branches (per design doc §10 test bullets 2 + 3):
|
|
1129
|
+
* - services.calendar set AND google_calendar in `direct` AND no
|
|
1130
|
+
* calendar observer registered yet → build + start a poller.
|
|
1131
|
+
* - today.md stale → `scheduler.queueMorningRoutineWake("google_auth_ready")`
|
|
1132
|
+
* and SKIP the standalone roadmap refresh (the morning routine's
|
|
1133
|
+
* post-completion hook handles roadmap).
|
|
1134
|
+
* - today.md fresh AND roadmap stale → `dispatcher.emitRoadmapRefresh
|
|
1135
|
+
* ("google_auth_ready")`.
|
|
1136
|
+
*/
|
|
1137
|
+
export function createGoogleServicesReadyHandler(deps) {
|
|
1138
|
+
const { db, config, services, observerManager, buildCalendarPoller, scheduler, dispatcher, } = deps;
|
|
1139
|
+
return () => {
|
|
1140
|
+
if (services.calendar
|
|
1141
|
+
&& !observerManager.has("calendar")
|
|
1142
|
+
&& shouldStartObserversFor(db, "google_calendar")) {
|
|
1143
|
+
const poller = buildCalendarPoller();
|
|
1144
|
+
if (poller) {
|
|
1145
|
+
observerManager.register(poller);
|
|
1146
|
+
void poller.start();
|
|
1147
|
+
logger.info("CalendarPoller started via hot-reload");
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
// Trigger morning_routine catchup if today.md is stale or missing
|
|
1151
|
+
// (same logic as runCatchup, ensures schedule generation after first
|
|
1152
|
+
// auth).
|
|
1153
|
+
const contextDir = getContextDir(config);
|
|
1154
|
+
const todayMdPath = join(contextDir, "state", "today.md");
|
|
1155
|
+
const needsMorning = !hasFreshAgentDayTodayMd(todayMdPath, config.timezone || undefined, config.dayBoundaryHour);
|
|
1156
|
+
if (needsMorning) {
|
|
1157
|
+
// Morning routine's post-completion hook will also check roadmap staleness.
|
|
1158
|
+
logger.info("Google services ready — today.md stale, queueing morning_routine wake");
|
|
1159
|
+
scheduler.queueMorningRoutineWake("google_auth_ready");
|
|
1160
|
+
return;
|
|
1161
|
+
}
|
|
1162
|
+
// Only refresh roadmap independently when today.md is already current.
|
|
1163
|
+
// If morning_routine is needed, its post-completion hook will handle
|
|
1164
|
+
// stale roadmap regeneration after the day context has been rebuilt.
|
|
1165
|
+
if (isRoadmapStale(contextDir)) {
|
|
1166
|
+
logger.info("Google services ready — roadmap stale, emitting roadmap_refresh");
|
|
1167
|
+
dispatcher.emitRoadmapRefresh("google_auth_ready");
|
|
1168
|
+
}
|
|
1169
|
+
};
|
|
1170
|
+
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Build the `handlePromptContextChanged` callback consumed by the
|
|
1173
|
+
* context-index reconciler and by the API surface's
|
|
1174
|
+
* `onPromptContextChanged` hook. Exported for symmetry with the other
|
|
1175
|
+
* cross-stage closures; the staleness decision logic itself lives in
|
|
1176
|
+
* `core/context-staleness.ts` (and is unit-tested there).
|
|
1177
|
+
*/
|
|
1178
|
+
export function createPromptContextChangedHandler(deps) {
|
|
1179
|
+
const { config, db, dispatcher, sessionManager } = deps;
|
|
1180
|
+
return (path, reason, tier, metadata) => {
|
|
1181
|
+
const setupMode = dispatcher.getCurrentSetupMode();
|
|
1182
|
+
const decision = applyPromptContextStaleness({ path, reason, tier, metadata }, {
|
|
1183
|
+
dmStalenessStrict: config.dmStalenessStrict,
|
|
1184
|
+
setupInProgress: setupMode !== null,
|
|
1185
|
+
markContextChanged: () => markContextChanged(db),
|
|
1186
|
+
markActiveDmSessionsStale: (staleReason) => sessionManager.markActiveDmSessionsStale(staleReason),
|
|
1187
|
+
});
|
|
1188
|
+
logger.debug({
|
|
1189
|
+
path,
|
|
1190
|
+
reason,
|
|
1191
|
+
tier_decided: decision.effectiveTier,
|
|
1192
|
+
tier_requested: decision.requestedTier,
|
|
1193
|
+
tier_reason: metadata?.tierReason,
|
|
1194
|
+
dmStalenessStrict: config.dmStalenessStrict,
|
|
1195
|
+
mode: setupMode,
|
|
1196
|
+
invalidatesDmSessions: decision.invalidatesDmSessions,
|
|
1197
|
+
skippedForSetup: decision.skippedForSetup,
|
|
1198
|
+
}, "Prompt context staleness classified");
|
|
1199
|
+
if (decision.skippedForSetup) {
|
|
1200
|
+
logger.info({ path, reason, mode: setupMode }, "Skipping DM session stale flag - setup in progress");
|
|
1201
|
+
}
|
|
1202
|
+
};
|
|
1203
|
+
}
|