@aitne/daemon 0.1.3 → 0.1.6
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/notification-manager.d.ts +12 -0
- package/dist/adapters/notification-manager.d.ts.map +1 -1
- package/dist/adapters/notification-manager.js +39 -1
- package/dist/adapters/notification-manager.js.map +1 -1
- package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
- package/dist/adapters/whatsapp-adapter.js +0 -1
- package/dist/adapters/whatsapp-adapter.js.map +1 -1
- package/dist/api/integration-route-gate.d.ts +15 -11
- package/dist/api/integration-route-gate.d.ts.map +1 -1
- package/dist/api/integration-route-gate.js +60 -23
- package/dist/api/integration-route-gate.js.map +1 -1
- package/dist/api/json-body.d.ts +22 -7
- package/dist/api/json-body.d.ts.map +1 -1
- package/dist/api/json-body.js +27 -8
- package/dist/api/json-body.js.map +1 -1
- package/dist/api/routes/agent.d.ts.map +1 -1
- package/dist/api/routes/agent.js +25 -0
- package/dist/api/routes/agent.js.map +1 -1
- package/dist/api/routes/backends.d.ts.map +1 -1
- package/dist/api/routes/backends.js +96 -1
- package/dist/api/routes/backends.js.map +1 -1
- package/dist/api/routes/books.js +1 -1
- package/dist/api/routes/books.js.map +1 -1
- package/dist/api/routes/commands.d.ts.map +1 -1
- package/dist/api/routes/commands.js +16 -13
- package/dist/api/routes/commands.js.map +1 -1
- package/dist/api/routes/context.d.ts.map +1 -1
- package/dist/api/routes/context.js +26 -3
- package/dist/api/routes/context.js.map +1 -1
- package/dist/api/routes/dashboard.d.ts.map +1 -1
- package/dist/api/routes/dashboard.js +103 -5
- package/dist/api/routes/dashboard.js.map +1 -1
- package/dist/api/routes/fs.d.ts +23 -0
- package/dist/api/routes/fs.d.ts.map +1 -0
- package/dist/api/routes/fs.js +156 -0
- package/dist/api/routes/fs.js.map +1 -0
- package/dist/api/routes/fs.logic.d.ts +62 -0
- package/dist/api/routes/fs.logic.d.ts.map +1 -0
- package/dist/api/routes/fs.logic.js +137 -0
- package/dist/api/routes/fs.logic.js.map +1 -0
- package/dist/api/routes/github.d.ts.map +1 -1
- package/dist/api/routes/github.js +38 -5
- package/dist/api/routes/github.js.map +1 -1
- package/dist/api/routes/health.d.ts.map +1 -1
- package/dist/api/routes/health.js +4 -2
- package/dist/api/routes/health.js.map +1 -1
- package/dist/api/routes/integrations.d.ts +35 -6
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +192 -15
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/mail.d.ts.map +1 -1
- package/dist/api/routes/mail.js +112 -46
- package/dist/api/routes/mail.js.map +1 -1
- package/dist/api/routes/metrics.d.ts +1 -0
- package/dist/api/routes/metrics.d.ts.map +1 -1
- package/dist/api/routes/metrics.js +24 -0
- package/dist/api/routes/metrics.js.map +1 -1
- package/dist/api/routes/observations.d.ts.map +1 -1
- package/dist/api/routes/observations.js +696 -30
- package/dist/api/routes/observations.js.map +1 -1
- package/dist/api/routes/setup-migrate.d.ts +9 -1
- package/dist/api/routes/setup-migrate.d.ts.map +1 -1
- package/dist/api/routes/setup-migrate.js +4 -2
- package/dist/api/routes/setup-migrate.js.map +1 -1
- package/dist/api/routes/skills.d.ts +9 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +77 -17
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/api/routes/voice.d.ts.map +1 -1
- package/dist/api/routes/voice.js +62 -4
- package/dist/api/routes/voice.js.map +1 -1
- package/dist/api/routes/wiki.d.ts +4 -0
- package/dist/api/routes/wiki.d.ts.map +1 -0
- package/dist/api/routes/wiki.js +1075 -0
- package/dist/api/routes/wiki.js.map +1 -0
- package/dist/api/server.d.ts +13 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +27 -1
- package/dist/api/server.js.map +1 -1
- package/dist/bootstrap/adapters.d.ts +109 -0
- package/dist/bootstrap/adapters.d.ts.map +1 -0
- package/dist/bootstrap/adapters.js +237 -0
- package/dist/bootstrap/adapters.js.map +1 -0
- package/dist/bootstrap/catchup.d.ts +23 -0
- package/dist/bootstrap/catchup.d.ts.map +1 -0
- package/dist/bootstrap/catchup.js +124 -0
- package/dist/bootstrap/catchup.js.map +1 -0
- package/dist/bootstrap/schedule-helpers.d.ts +18 -0
- package/dist/bootstrap/schedule-helpers.d.ts.map +1 -0
- package/dist/bootstrap/schedule-helpers.js +96 -0
- package/dist/bootstrap/schedule-helpers.js.map +1 -0
- package/dist/bootstrap/services.d.ts +60 -0
- package/dist/bootstrap/services.d.ts.map +1 -0
- package/dist/bootstrap/services.js +209 -0
- package/dist/bootstrap/services.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +26 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-core.d.ts +25 -0
- package/dist/core/agent-core.d.ts.map +1 -1
- package/dist/core/agent-core.js.map +1 -1
- package/dist/core/backends/backend-router.d.ts +28 -1
- package/dist/core/backends/backend-router.d.ts.map +1 -1
- package/dist/core/backends/backend-router.js +58 -4
- package/dist/core/backends/backend-router.js.map +1 -1
- package/dist/core/backends/claude-auth.d.ts +70 -0
- package/dist/core/backends/claude-auth.d.ts.map +1 -0
- package/dist/core/backends/claude-auth.js +198 -0
- package/dist/core/backends/claude-auth.js.map +1 -0
- package/dist/core/backends/claude-code-core.d.ts +47 -119
- package/dist/core/backends/claude-code-core.d.ts.map +1 -1
- package/dist/core/backends/claude-code-core.js +166 -1561
- package/dist/core/backends/claude-code-core.js.map +1 -1
- package/dist/core/backends/claude-delegated.d.ts +86 -0
- package/dist/core/backends/claude-delegated.d.ts.map +1 -0
- package/dist/core/backends/claude-delegated.js +801 -0
- package/dist/core/backends/claude-delegated.js.map +1 -0
- package/dist/core/backends/claude-errors.d.ts +39 -0
- package/dist/core/backends/claude-errors.d.ts.map +1 -0
- package/dist/core/backends/claude-errors.js +71 -0
- package/dist/core/backends/claude-errors.js.map +1 -0
- package/dist/core/backends/claude-probe.d.ts +103 -0
- package/dist/core/backends/claude-probe.d.ts.map +1 -0
- package/dist/core/backends/claude-probe.js +336 -0
- package/dist/core/backends/claude-probe.js.map +1 -0
- package/dist/core/backends/claude-tool-collection.d.ts +135 -0
- package/dist/core/backends/claude-tool-collection.d.ts.map +1 -0
- package/dist/core/backends/claude-tool-collection.js +1093 -0
- package/dist/core/backends/claude-tool-collection.js.map +1 -0
- package/dist/core/backends/codex-core.d.ts.map +1 -1
- package/dist/core/backends/codex-core.js +36 -0
- package/dist/core/backends/codex-core.js.map +1 -1
- package/dist/core/backends/gemini-cli-core.d.ts +45 -5
- package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
- package/dist/core/backends/gemini-cli-core.js +146 -36
- package/dist/core/backends/gemini-cli-core.js.map +1 -1
- package/dist/core/backends/plan-presets.d.ts +3 -1
- package/dist/core/backends/plan-presets.d.ts.map +1 -1
- package/dist/core/backends/plan-presets.js +42 -2
- package/dist/core/backends/plan-presets.js.map +1 -1
- package/dist/core/backends/prompt-utils.d.ts +1 -0
- package/dist/core/backends/prompt-utils.d.ts.map +1 -1
- package/dist/core/backends/prompt-utils.js +60 -3
- package/dist/core/backends/prompt-utils.js.map +1 -1
- package/dist/core/bang-commands/commands-help.d.ts +5 -0
- package/dist/core/bang-commands/commands-help.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-help.js +69 -0
- package/dist/core/bang-commands/commands-help.js.map +1 -0
- package/dist/core/bang-commands/commands-wiki.d.ts +75 -0
- package/dist/core/bang-commands/commands-wiki.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-wiki.js +574 -0
- package/dist/core/bang-commands/commands-wiki.js.map +1 -0
- package/dist/core/bang-commands/index.d.ts +4 -2
- package/dist/core/bang-commands/index.d.ts.map +1 -1
- package/dist/core/bang-commands/index.js +15 -1
- package/dist/core/bang-commands/index.js.map +1 -1
- package/dist/core/bang-commands/registry.d.ts +47 -4
- package/dist/core/bang-commands/registry.d.ts.map +1 -1
- package/dist/core/bang-commands/registry.js +85 -15
- package/dist/core/bang-commands/registry.js.map +1 -1
- package/dist/core/context-builder.d.ts +53 -12
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +240 -92
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/daemon-api-cli.d.ts.map +1 -1
- package/dist/core/daemon-api-cli.js +50 -2
- package/dist/core/daemon-api-cli.js.map +1 -1
- package/dist/core/dispatcher-date-utils.d.ts +49 -0
- package/dist/core/dispatcher-date-utils.d.ts.map +1 -0
- package/dist/core/dispatcher-date-utils.js +132 -0
- package/dist/core/dispatcher-date-utils.js.map +1 -0
- package/dist/core/dispatcher-error-handling.d.ts +159 -0
- package/dist/core/dispatcher-error-handling.d.ts.map +1 -0
- package/dist/core/dispatcher-error-handling.js +393 -0
- package/dist/core/dispatcher-error-handling.js.map +1 -0
- package/dist/core/dispatcher-hourly-check.d.ts +150 -0
- package/dist/core/dispatcher-hourly-check.d.ts.map +1 -0
- package/dist/core/dispatcher-hourly-check.js +665 -0
- package/dist/core/dispatcher-hourly-check.js.map +1 -0
- package/dist/core/dispatcher-message-handler.d.ts +170 -0
- package/dist/core/dispatcher-message-handler.d.ts.map +1 -0
- package/dist/core/dispatcher-message-handler.js +1064 -0
- package/dist/core/dispatcher-message-handler.js.map +1 -0
- package/dist/core/dispatcher-morning-routine.d.ts +169 -0
- package/dist/core/dispatcher-morning-routine.d.ts.map +1 -0
- package/dist/core/dispatcher-morning-routine.js +449 -0
- package/dist/core/dispatcher-morning-routine.js.map +1 -0
- package/dist/core/dispatcher-prompt.d.ts +107 -0
- package/dist/core/dispatcher-prompt.d.ts.map +1 -0
- package/dist/core/dispatcher-prompt.js +227 -0
- package/dist/core/dispatcher-prompt.js.map +1 -0
- package/dist/core/dispatcher-repository-helpers.d.ts +39 -0
- package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -0
- package/dist/core/dispatcher-repository-helpers.js +86 -0
- package/dist/core/dispatcher-repository-helpers.js.map +1 -0
- package/dist/core/dispatcher-result-processor.d.ts +168 -0
- package/dist/core/dispatcher-result-processor.d.ts.map +1 -0
- package/dist/core/dispatcher-result-processor.js +533 -0
- package/dist/core/dispatcher-result-processor.js.map +1 -0
- package/dist/core/dispatcher-scheduled-tasks.d.ts +406 -0
- package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -0
- package/dist/core/dispatcher-scheduled-tasks.js +1032 -0
- package/dist/core/dispatcher-scheduled-tasks.js.map +1 -0
- package/dist/core/dispatcher-types.d.ts +411 -0
- package/dist/core/dispatcher-types.d.ts.map +1 -0
- package/dist/core/dispatcher-types.js +106 -0
- package/dist/core/dispatcher-types.js.map +1 -0
- package/dist/core/dispatcher.d.ts +122 -610
- package/dist/core/dispatcher.d.ts.map +1 -1
- package/dist/core/dispatcher.js +365 -3521
- package/dist/core/dispatcher.js.map +1 -1
- package/dist/core/integration-health.d.ts +18 -10
- package/dist/core/integration-health.d.ts.map +1 -1
- package/dist/core/integration-health.js +31 -1
- package/dist/core/integration-health.js.map +1 -1
- package/dist/core/integration-lifecycle.d.ts +65 -0
- package/dist/core/integration-lifecycle.d.ts.map +1 -1
- package/dist/core/integration-lifecycle.js +163 -14
- package/dist/core/integration-lifecycle.js.map +1 -1
- package/dist/core/integration-main-backend.d.ts +40 -0
- package/dist/core/integration-main-backend.d.ts.map +1 -1
- package/dist/core/integration-main-backend.js +89 -2
- package/dist/core/integration-main-backend.js.map +1 -1
- package/dist/core/management-md.d.ts +51 -17
- package/dist/core/management-md.d.ts.map +1 -1
- package/dist/core/management-md.js +233 -56
- package/dist/core/management-md.js.map +1 -1
- package/dist/core/metrics.d.ts +127 -0
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +256 -1
- package/dist/core/metrics.js.map +1 -1
- package/dist/core/output-language-policy.d.ts +74 -0
- package/dist/core/output-language-policy.d.ts.map +1 -0
- package/dist/core/output-language-policy.js +194 -0
- package/dist/core/output-language-policy.js.map +1 -0
- package/dist/core/prompts.d.ts +3 -1
- package/dist/core/prompts.d.ts.map +1 -1
- package/dist/core/prompts.js +161 -3
- package/dist/core/prompts.js.map +1 -1
- package/dist/core/repository-management-docs.d.ts +24 -0
- package/dist/core/repository-management-docs.d.ts.map +1 -1
- package/dist/core/repository-management-docs.js +210 -26
- package/dist/core/repository-management-docs.js.map +1 -1
- package/dist/core/roadmap-validate.js +13 -1
- package/dist/core/roadmap-validate.js.map +1 -1
- package/dist/core/routine-acquisition-plan.d.ts +182 -0
- package/dist/core/routine-acquisition-plan.d.ts.map +1 -0
- package/dist/core/routine-acquisition-plan.js +367 -0
- package/dist/core/routine-acquisition-plan.js.map +1 -0
- package/dist/core/routine-fetch-window-retry.d.ts +109 -0
- package/dist/core/routine-fetch-window-retry.d.ts.map +1 -0
- package/dist/core/routine-fetch-window-retry.js +210 -0
- package/dist/core/routine-fetch-window-retry.js.map +1 -0
- package/dist/core/routine-fetch-window-runner.d.ts +427 -0
- package/dist/core/routine-fetch-window-runner.d.ts.map +1 -0
- package/dist/core/routine-fetch-window-runner.js +1591 -0
- package/dist/core/routine-fetch-window-runner.js.map +1 -0
- package/dist/core/routine-windows.d.ts +171 -0
- package/dist/core/routine-windows.d.ts.map +1 -0
- package/dist/core/routine-windows.js +377 -0
- package/dist/core/routine-windows.js.map +1 -0
- package/dist/core/scheduler.d.ts +50 -2
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +88 -7
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/skill-curation/declarations.d.ts.map +1 -1
- package/dist/core/skill-curation/declarations.js +11 -12
- package/dist/core/skill-curation/declarations.js.map +1 -1
- package/dist/core/skill-source-paths.d.ts +14 -0
- package/dist/core/skill-source-paths.d.ts.map +1 -0
- package/dist/core/skill-source-paths.js +82 -0
- package/dist/core/skill-source-paths.js.map +1 -0
- package/dist/core/skills-compiler.d.ts +29 -0
- package/dist/core/skills-compiler.d.ts.map +1 -1
- package/dist/core/skills-compiler.js +166 -30
- package/dist/core/skills-compiler.js.map +1 -1
- package/dist/core/skills-manifest.d.ts.map +1 -1
- package/dist/core/skills-manifest.js +72 -0
- package/dist/core/skills-manifest.js.map +1 -1
- package/dist/core/system-reset.d.ts +25 -0
- package/dist/core/system-reset.d.ts.map +1 -1
- package/dist/core/system-reset.js +72 -2
- package/dist/core/system-reset.js.map +1 -1
- package/dist/core/wiki/approval-queue.d.ts +31 -0
- package/dist/core/wiki/approval-queue.d.ts.map +1 -0
- package/dist/core/wiki/approval-queue.js +44 -0
- package/dist/core/wiki/approval-queue.js.map +1 -0
- package/dist/core/wiki/bridge.d.ts +74 -0
- package/dist/core/wiki/bridge.d.ts.map +1 -0
- package/dist/core/wiki/bridge.js +405 -0
- package/dist/core/wiki/bridge.js.map +1 -0
- package/dist/core/wiki/compile-lock.d.ts +42 -0
- package/dist/core/wiki/compile-lock.d.ts.map +1 -0
- package/dist/core/wiki/compile-lock.js +55 -0
- package/dist/core/wiki/compile-lock.js.map +1 -0
- package/dist/core/wiki/compile-preview.d.ts +8 -0
- package/dist/core/wiki/compile-preview.d.ts.map +1 -0
- package/dist/core/wiki/compile-preview.js +200 -0
- package/dist/core/wiki/compile-preview.js.map +1 -0
- package/dist/core/wiki/cost-estimate.d.ts +30 -0
- package/dist/core/wiki/cost-estimate.d.ts.map +1 -0
- package/dist/core/wiki/cost-estimate.js +243 -0
- package/dist/core/wiki/cost-estimate.js.map +1 -0
- package/dist/core/wiki/dispatcher.d.ts +48 -0
- package/dist/core/wiki/dispatcher.d.ts.map +1 -0
- package/dist/core/wiki/dispatcher.js +92 -0
- package/dist/core/wiki/dispatcher.js.map +1 -0
- package/dist/core/wiki/git-precompile.d.ts +86 -0
- package/dist/core/wiki/git-precompile.d.ts.map +1 -0
- package/dist/core/wiki/git-precompile.js +96 -0
- package/dist/core/wiki/git-precompile.js.map +1 -0
- package/dist/core/wiki/import-migrate.d.ts +38 -0
- package/dist/core/wiki/import-migrate.d.ts.map +1 -0
- package/dist/core/wiki/import-migrate.js +310 -0
- package/dist/core/wiki/import-migrate.js.map +1 -0
- package/dist/core/wiki/import-probe.d.ts +76 -0
- package/dist/core/wiki/import-probe.d.ts.map +1 -0
- package/dist/core/wiki/import-probe.js +245 -0
- package/dist/core/wiki/import-probe.js.map +1 -0
- package/dist/core/wiki/index-cache.d.ts +39 -0
- package/dist/core/wiki/index-cache.d.ts.map +1 -0
- package/dist/core/wiki/index-cache.js +152 -0
- package/dist/core/wiki/index-cache.js.map +1 -0
- package/dist/core/wiki/multi-url-dispatch.d.ts +52 -0
- package/dist/core/wiki/multi-url-dispatch.d.ts.map +1 -0
- package/dist/core/wiki/multi-url-dispatch.js +72 -0
- package/dist/core/wiki/multi-url-dispatch.js.map +1 -0
- package/dist/core/wiki/wiki-fts.d.ts +75 -0
- package/dist/core/wiki/wiki-fts.d.ts.map +1 -0
- package/dist/core/wiki/wiki-fts.js +265 -0
- package/dist/core/wiki/wiki-fts.js.map +1 -0
- package/dist/core/wiki/workspaces.d.ts +101 -0
- package/dist/core/wiki/workspaces.d.ts.map +1 -0
- package/dist/core/wiki/workspaces.js +352 -0
- package/dist/core/wiki/workspaces.js.map +1 -0
- package/dist/core/wiki/write-strategy.d.ts +70 -0
- package/dist/core/wiki/write-strategy.d.ts.map +1 -0
- package/dist/core/wiki/write-strategy.js +112 -0
- package/dist/core/wiki/write-strategy.js.map +1 -0
- package/dist/core/workdir.d.ts +8 -1
- package/dist/core/workdir.d.ts.map +1 -1
- package/dist/core/workdir.js +4 -1
- package/dist/core/workdir.js.map +1 -1
- package/dist/db/observations.d.ts +45 -2
- package/dist/db/observations.d.ts.map +1 -1
- package/dist/db/observations.js +112 -14
- package/dist/db/observations.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +135 -25
- package/dist/db/schema.js.map +1 -1
- package/dist/db/wiki-store.d.ts +3 -0
- package/dist/db/wiki-store.d.ts.map +1 -0
- package/dist/db/wiki-store.js +7 -0
- package/dist/db/wiki-store.js.map +1 -0
- package/dist/index.js +159 -610
- package/dist/index.js.map +1 -1
- package/dist/messaging/url-extract.d.ts +8 -0
- package/dist/messaging/url-extract.d.ts.map +1 -0
- package/dist/messaging/url-extract.js +41 -0
- package/dist/messaging/url-extract.js.map +1 -0
- package/dist/observers/delegated-sync-worker.d.ts +52 -1
- package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
- package/dist/observers/delegated-sync-worker.js +75 -18
- package/dist/observers/delegated-sync-worker.js.map +1 -1
- package/dist/observers/imminent-event-scheduler.d.ts +20 -7
- package/dist/observers/imminent-event-scheduler.d.ts.map +1 -1
- package/dist/observers/imminent-event-scheduler.js +134 -29
- package/dist/observers/imminent-event-scheduler.js.map +1 -1
- package/dist/observers/mail-poller.d.ts +12 -5
- package/dist/observers/mail-poller.d.ts.map +1 -1
- package/dist/observers/mail-poller.js +36 -14
- package/dist/observers/mail-poller.js.map +1 -1
- package/dist/observers/manager.d.ts +37 -5
- package/dist/observers/manager.d.ts.map +1 -1
- package/dist/observers/manager.js +28 -10
- package/dist/observers/manager.js.map +1 -1
- package/dist/safety/always-disallowed.d.ts +65 -0
- package/dist/safety/always-disallowed.d.ts.map +1 -1
- package/dist/safety/always-disallowed.js +106 -10
- package/dist/safety/always-disallowed.js.map +1 -1
- package/dist/safety/audit.d.ts +46 -1
- package/dist/safety/audit.d.ts.map +1 -1
- package/dist/safety/audit.js +79 -16
- package/dist/safety/audit.js.map +1 -1
- package/dist/safety/risk-classifier.d.ts.map +1 -1
- package/dist/safety/risk-classifier.js +29 -0
- package/dist/safety/risk-classifier.js.map +1 -1
- package/dist/services/delegated-backend-invoker.d.ts +1 -51
- package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
- package/dist/services/delegated-backend-invoker.js +41 -480
- package/dist/services/delegated-backend-invoker.js.map +1 -1
- package/dist/services/delegated-invoker-audit.d.ts +94 -0
- package/dist/services/delegated-invoker-audit.d.ts.map +1 -0
- package/dist/services/delegated-invoker-audit.js +238 -0
- package/dist/services/delegated-invoker-audit.js.map +1 -0
- package/dist/services/delegated-invoker-cache-hits.d.ts +34 -0
- package/dist/services/delegated-invoker-cache-hits.d.ts.map +1 -0
- package/dist/services/delegated-invoker-cache-hits.js +104 -0
- package/dist/services/delegated-invoker-cache-hits.js.map +1 -0
- package/dist/services/delegated-invoker-janitors.d.ts +28 -0
- package/dist/services/delegated-invoker-janitors.d.ts.map +1 -0
- package/dist/services/delegated-invoker-janitors.js +104 -0
- package/dist/services/delegated-invoker-janitors.js.map +1 -0
- package/dist/services/delegated-invoker-utils.d.ts +42 -0
- package/dist/services/delegated-invoker-utils.d.ts.map +1 -0
- package/dist/services/delegated-invoker-utils.js +100 -0
- package/dist/services/delegated-invoker-utils.js.map +1 -0
- package/dist/services/delegated-task-runtime.d.ts +1 -1
- package/dist/services/delegated-task-runtime.js +1 -1
- package/dist/services/integrations/snapshot-partitions.d.ts +5 -0
- package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -1
- package/dist/services/integrations/snapshot-partitions.js +12 -0
- package/dist/services/integrations/snapshot-partitions.js.map +1 -1
- package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
- package/dist/services/voice/transcriber-impl.js +7 -8
- package/dist/services/voice/transcriber-impl.js.map +1 -1
- package/dist/settings/runtime-settings.d.ts +12 -1
- package/dist/settings/runtime-settings.d.ts.map +1 -1
- package/dist/settings/runtime-settings.js +59 -1
- package/dist/settings/runtime-settings.js.map +1 -1
- package/package.json +2 -2
|
@@ -116,6 +116,18 @@ function normalizePath(rawPath, baseUrl) {
|
|
|
116
116
|
return url;
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
// Read all of stdin into a UTF-8 string. Lets \`--json @-\` accept a
|
|
120
|
+
// heredoc body so large / multi-line context updates can use the same
|
|
121
|
+
// shape the safety preamble already documents for the curl shim.
|
|
122
|
+
function readAllStdin() {
|
|
123
|
+
return new Promise((resolve, reject) => {
|
|
124
|
+
const chunks = [];
|
|
125
|
+
process.stdin.on("data", (chunk) => chunks.push(chunk));
|
|
126
|
+
process.stdin.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
|
|
127
|
+
process.stdin.on("error", reject);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
119
131
|
async function main() {
|
|
120
132
|
const args = process.argv.slice(2);
|
|
121
133
|
if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
|
|
@@ -198,7 +210,17 @@ async function main() {
|
|
|
198
210
|
fail("--json requires a value.");
|
|
199
211
|
}
|
|
200
212
|
headers.set("content-type", "application/json");
|
|
201
|
-
|
|
213
|
+
// Heredoc parity with the curl shim. \`--json @-\` reads stdin so
|
|
214
|
+
// \`pa-api PATCH /api/context/today --json @- <<'JSON' ... JSON\` works
|
|
215
|
+
// for large bodies. Bare \`@<path>\` is refused — file-read shape
|
|
216
|
+
// matches the curl shim's deny rule.
|
|
217
|
+
if (jsonBody === "@-") {
|
|
218
|
+
body = await readAllStdin();
|
|
219
|
+
} else if (jsonBody.length > 0 && jsonBody[0] === "@") {
|
|
220
|
+
fail(\`--json \${jsonBody}: @<path> file-read syntax is not allowed; use \\\`--json @-\\\` with a heredoc instead.\`);
|
|
221
|
+
} else {
|
|
222
|
+
body = jsonBody;
|
|
223
|
+
}
|
|
202
224
|
continue;
|
|
203
225
|
}
|
|
204
226
|
|
|
@@ -341,6 +363,19 @@ function parseHeader(raw) {
|
|
|
341
363
|
return { name, value };
|
|
342
364
|
}
|
|
343
365
|
|
|
366
|
+
// Read all of stdin into a UTF-8 string. Used by the \`-d @-\` codepath
|
|
367
|
+
// to honour the safety preamble's documented heredoc shape:
|
|
368
|
+
// \`curl ... -d @- <<'JSON' ... JSON\`. Returns "" if stdin is closed
|
|
369
|
+
// (e.g. the agent typed \`-d @-\` without redirecting anything in).
|
|
370
|
+
function readAllStdin() {
|
|
371
|
+
return new Promise((resolve, reject) => {
|
|
372
|
+
const chunks = [];
|
|
373
|
+
process.stdin.on("data", (chunk) => chunks.push(chunk));
|
|
374
|
+
process.stdin.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
|
|
375
|
+
process.stdin.on("error", reject);
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
|
|
344
379
|
function normalizeUrl(rawUrl, baseUrl) {
|
|
345
380
|
let url;
|
|
346
381
|
try {
|
|
@@ -415,7 +450,20 @@ async function main() {
|
|
|
415
450
|
if (rawBody === undefined) {
|
|
416
451
|
fail(\`\${arg} requires a value.\`);
|
|
417
452
|
}
|
|
418
|
-
|
|
453
|
+
// \`-d @-\` is curl's stdin marker. The shared safety preamble
|
|
454
|
+
// recommends heredoc bodies (\`-d @- <<'JSON' ... JSON\`) for
|
|
455
|
+
// multi-line / large payloads. Honour that contract by actually
|
|
456
|
+
// reading stdin when @- is requested. Bare \`@<path>\` forms are
|
|
457
|
+
// file-read shapes — refuse outright (the security hook already
|
|
458
|
+
// blocks them at the Bash layer, but defense-in-depth here means
|
|
459
|
+
// the shim never reads from disk).
|
|
460
|
+
if (rawBody === "@-") {
|
|
461
|
+
body = await readAllStdin();
|
|
462
|
+
} else if (rawBody.length > 0 && rawBody[0] === "@") {
|
|
463
|
+
fail(\`\${arg} \${rawBody}: @<path> file-read syntax is not allowed; use \\\`-d @-\\\` with a heredoc instead.\`);
|
|
464
|
+
} else {
|
|
465
|
+
body = rawBody;
|
|
466
|
+
}
|
|
419
467
|
idx += 1;
|
|
420
468
|
continue;
|
|
421
469
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-api-cli.js","sourceRoot":"","sources":["../../src/core/daemon-api-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CACjD,0BAA0B,EAC1B,QAAQ,CACT,CAAC;AACF,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,CACnD,0BAA0B,EAC1B,MAAM,CACP,CAAC;AACF,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAChE,+DAA+D;AAC/D,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,uEAAuE;AACvE,oEAAoE;AACpE,iEAAiE;AACjE,gEAAgE;AAChE,uBAAuB;AACvB,MAAM,CAAC,MAAM,8BAA8B,GAAG,oBAAoB,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAC3D,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AACzD,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mCAAmC,GAAG,yBAAyB,CAAC;AAE7E,MAAM,qBAAqB,GAAG;;;;wBAIN,uBAAuB;0BACrB,yBAAyB;+BACpB,8BAA8B;wBACrC,uBAAuB;2BACpB,0BAA0B;0BAC3B,yBAAyB;oCACf,mCAAmC
|
|
1
|
+
{"version":3,"file":"daemon-api-cli.js","sourceRoot":"","sources":["../../src/core/daemon-api-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure timezone-aware date helpers used by the dispatcher's quota-reset
|
|
3
|
+
* logic (`resolveQuotaResetAtMs`) — no instance state, no I/O.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from `core/dispatcher.ts` as part of phase D-2 of
|
|
6
|
+
* `docs/design/appendices/file-split-plan.md` (pattern A — pure
|
|
7
|
+
* functions). The dispatcher imports these directly at the call sites
|
|
8
|
+
* that previously read `this.…`; no re-export from `dispatcher.ts`
|
|
9
|
+
* because none of these were ever public surface.
|
|
10
|
+
*/
|
|
11
|
+
export interface LocalDateParts {
|
|
12
|
+
year: number;
|
|
13
|
+
month: number;
|
|
14
|
+
day: number;
|
|
15
|
+
hour: number;
|
|
16
|
+
minute: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Convert local-time `parts` in `timeZone` to a UTC epoch ms. Returns
|
|
20
|
+
* `null` when the wall-clock instant does not exist in the zone (e.g.
|
|
21
|
+
* the "spring forward" gap) or when `timeZone` is not a valid IANA id.
|
|
22
|
+
*
|
|
23
|
+
* The implementation iterates up to 3 times because the first offset
|
|
24
|
+
* lookup uses the UTC instant — the resolved offset can shift the wall
|
|
25
|
+
* time across a DST boundary, requiring another lookup at the new guess.
|
|
26
|
+
*/
|
|
27
|
+
export declare function localDateTimeToUtcMs(parts: LocalDateParts, timeZone?: string): number | null;
|
|
28
|
+
/**
|
|
29
|
+
* Return the offset (in minutes) that the given `timeZone` applied at
|
|
30
|
+
* the supplied instant. Positive east of UTC, negative west; `null`
|
|
31
|
+
* when `timeZone` is invalid or the platform's `Intl` data lacks the
|
|
32
|
+
* shortOffset name.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getTimeZoneOffsetMinutes(date: Date, timeZone: string): number | null;
|
|
35
|
+
/**
|
|
36
|
+
* Decompose `date` into year/month/day/hour/minute as observed in the
|
|
37
|
+
* given `timeZone`. Falls back to the runtime's local zone when the
|
|
38
|
+
* supplied id is invalid (matching the original behaviour from
|
|
39
|
+
* dispatcher.ts).
|
|
40
|
+
*/
|
|
41
|
+
export declare function getLocalDateParts(date: Date, timeZone?: string): LocalDateParts;
|
|
42
|
+
/**
|
|
43
|
+
* Lexicographic comparator on `LocalDateParts` — returns negative when
|
|
44
|
+
* `a < b`, positive when `a > b`, 0 when equal. Used by the quota-reset
|
|
45
|
+
* resolver to decide whether the next reset wall-clock has already
|
|
46
|
+
* passed today.
|
|
47
|
+
*/
|
|
48
|
+
export declare function compareLocalDateParts(a: LocalDateParts, b: LocalDateParts): number;
|
|
49
|
+
//# sourceMappingURL=dispatcher-date-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher-date-utils.d.ts","sourceRoot":"","sources":["../../src/core/dispatcher-date-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAyCf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAyBf;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAiC/E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,cAAc,EACjB,CAAC,EAAE,cAAc,GAChB,MAAM,CAMR"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure timezone-aware date helpers used by the dispatcher's quota-reset
|
|
3
|
+
* logic (`resolveQuotaResetAtMs`) — no instance state, no I/O.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from `core/dispatcher.ts` as part of phase D-2 of
|
|
6
|
+
* `docs/design/appendices/file-split-plan.md` (pattern A — pure
|
|
7
|
+
* functions). The dispatcher imports these directly at the call sites
|
|
8
|
+
* that previously read `this.…`; no re-export from `dispatcher.ts`
|
|
9
|
+
* because none of these were ever public surface.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Convert local-time `parts` in `timeZone` to a UTC epoch ms. Returns
|
|
13
|
+
* `null` when the wall-clock instant does not exist in the zone (e.g.
|
|
14
|
+
* the "spring forward" gap) or when `timeZone` is not a valid IANA id.
|
|
15
|
+
*
|
|
16
|
+
* The implementation iterates up to 3 times because the first offset
|
|
17
|
+
* lookup uses the UTC instant — the resolved offset can shift the wall
|
|
18
|
+
* time across a DST boundary, requiring another lookup at the new guess.
|
|
19
|
+
*/
|
|
20
|
+
export function localDateTimeToUtcMs(parts, timeZone) {
|
|
21
|
+
if (!timeZone) {
|
|
22
|
+
return new Date(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0).getTime();
|
|
23
|
+
}
|
|
24
|
+
const baseUtc = Date.UTC(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0);
|
|
25
|
+
let guess = baseUtc;
|
|
26
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
27
|
+
const offsetMinutes = getTimeZoneOffsetMinutes(new Date(guess), timeZone);
|
|
28
|
+
if (offsetMinutes === null) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const nextGuess = baseUtc - offsetMinutes * 60 * 1000;
|
|
32
|
+
if (nextGuess === guess) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
guess = nextGuess;
|
|
36
|
+
}
|
|
37
|
+
const resolved = getLocalDateParts(new Date(guess), timeZone);
|
|
38
|
+
if (compareLocalDateParts(resolved, parts) !== 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return guess;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Return the offset (in minutes) that the given `timeZone` applied at
|
|
45
|
+
* the supplied instant. Positive east of UTC, negative west; `null`
|
|
46
|
+
* when `timeZone` is invalid or the platform's `Intl` data lacks the
|
|
47
|
+
* shortOffset name.
|
|
48
|
+
*/
|
|
49
|
+
export function getTimeZoneOffsetMinutes(date, timeZone) {
|
|
50
|
+
let formatter;
|
|
51
|
+
try {
|
|
52
|
+
formatter = new Intl.DateTimeFormat("en-US", {
|
|
53
|
+
timeZone,
|
|
54
|
+
timeZoneName: "shortOffset",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const zonePart = formatter.formatToParts(date).find((part) => part.type === "timeZoneName")?.value;
|
|
61
|
+
if (!zonePart) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
if (zonePart === "GMT") {
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
const match = /^GMT([+-])(\d{1,2})(?::?(\d{2}))?$/.exec(zonePart);
|
|
68
|
+
if (!match) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const sign = match[1] === "-" ? -1 : 1;
|
|
72
|
+
const hours = Number(match[2]);
|
|
73
|
+
const minutes = Number(match[3] ?? "0");
|
|
74
|
+
return sign * (hours * 60 + minutes);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Decompose `date` into year/month/day/hour/minute as observed in the
|
|
78
|
+
* given `timeZone`. Falls back to the runtime's local zone when the
|
|
79
|
+
* supplied id is invalid (matching the original behaviour from
|
|
80
|
+
* dispatcher.ts).
|
|
81
|
+
*/
|
|
82
|
+
export function getLocalDateParts(date, timeZone) {
|
|
83
|
+
let formatter;
|
|
84
|
+
try {
|
|
85
|
+
formatter = new Intl.DateTimeFormat("en-US", {
|
|
86
|
+
timeZone,
|
|
87
|
+
year: "numeric",
|
|
88
|
+
month: "2-digit",
|
|
89
|
+
day: "2-digit",
|
|
90
|
+
hour: "2-digit",
|
|
91
|
+
minute: "2-digit",
|
|
92
|
+
hourCycle: "h23",
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
formatter = new Intl.DateTimeFormat("en-US", {
|
|
97
|
+
year: "numeric",
|
|
98
|
+
month: "2-digit",
|
|
99
|
+
day: "2-digit",
|
|
100
|
+
hour: "2-digit",
|
|
101
|
+
minute: "2-digit",
|
|
102
|
+
hourCycle: "h23",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const parts = formatter.formatToParts(date);
|
|
106
|
+
const valueOf = (type) => Number(parts.find((part) => part.type === type)?.value ?? "0");
|
|
107
|
+
return {
|
|
108
|
+
year: valueOf("year"),
|
|
109
|
+
month: valueOf("month"),
|
|
110
|
+
day: valueOf("day"),
|
|
111
|
+
hour: valueOf("hour"),
|
|
112
|
+
minute: valueOf("minute"),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Lexicographic comparator on `LocalDateParts` — returns negative when
|
|
117
|
+
* `a < b`, positive when `a > b`, 0 when equal. Used by the quota-reset
|
|
118
|
+
* resolver to decide whether the next reset wall-clock has already
|
|
119
|
+
* passed today.
|
|
120
|
+
*/
|
|
121
|
+
export function compareLocalDateParts(a, b) {
|
|
122
|
+
if (a.year !== b.year)
|
|
123
|
+
return a.year - b.year;
|
|
124
|
+
if (a.month !== b.month)
|
|
125
|
+
return a.month - b.month;
|
|
126
|
+
if (a.day !== b.day)
|
|
127
|
+
return a.day - b.day;
|
|
128
|
+
if (a.hour !== b.hour)
|
|
129
|
+
return a.hour - b.hour;
|
|
130
|
+
return a.minute - b.minute;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=dispatcher-date-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher-date-utils.js","sourceRoot":"","sources":["../../src/core/dispatcher-date-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DispatcherErrorRouter` — owns the dispatcher's failure-path
|
|
3
|
+
* machinery: the shallow retry wrapper around BackendRouter
|
|
4
|
+
* (`executeWithRetry`), the post-throw cleanup + DM/dashboard
|
|
5
|
+
* notification (`handleError`), the quota-error introspection +
|
|
6
|
+
* formatting helpers, and the §4.5 delegated-connector health
|
|
7
|
+
* warning consult/dispatch pair.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from `core/dispatcher.ts` as part of phase D-2 of
|
|
10
|
+
* `docs/design/appendices/file-split-plan.md`. Pattern B (stateful
|
|
11
|
+
* coordinator): the router owns its own logic but borrows live
|
|
12
|
+
* references from the dispatcher for state that must remain
|
|
13
|
+
* observable to the parent class — the `notifiedEvents` Set used to
|
|
14
|
+
* dedup outbound notifications, the `shutdownAwaiters` Set used to
|
|
15
|
+
* shortcut the retry sleep on SIGTERM, plus accessors for the
|
|
16
|
+
* dispatcher's `shutdown` flag and lazily-injected dashboard stream.
|
|
17
|
+
*
|
|
18
|
+
* Dispatcher entry points served:
|
|
19
|
+
* - `dispatchSafe` calls `executeWithRetry` around backend invokes
|
|
20
|
+
* and `handleError` on failure;
|
|
21
|
+
* - `handleMessage` calls the `consult/run` connector-warning pair
|
|
22
|
+
* before/after recording the user message;
|
|
23
|
+
* - the §4.5 finalize callbacks (`onRetemplateFinalize` /
|
|
24
|
+
* `onManagementScanFinalize`) bridge into the ResultProcessor —
|
|
25
|
+
* the success path uses ResultProcessor directly; the error path
|
|
26
|
+
* calls through these closures to keep the failure ordering
|
|
27
|
+
* identical to the pre-split file.
|
|
28
|
+
*
|
|
29
|
+
* Shared-state references held:
|
|
30
|
+
* - `notifiedEvents: Set<string>` — live reference; `handleError`
|
|
31
|
+
* deletes the entry as defense-in-depth cleanup when execution
|
|
32
|
+
* threw before reaching `processResult`.
|
|
33
|
+
* - `shutdownAwaiters: Set<() => void>` — live reference; the retry
|
|
34
|
+
* sleep races a 5-min timer against this awaiter set so SIGTERM
|
|
35
|
+
* resolves the wait promptly.
|
|
36
|
+
* - `isShutdown: () => boolean` — getter; on shutdown wakeup the
|
|
37
|
+
* retry loop rethrows instead of looping again.
|
|
38
|
+
* - `getDashboardStream: () => IDashboardStream | null` — lazy
|
|
39
|
+
* accessor; the dashboard stream is wired after construction.
|
|
40
|
+
*/
|
|
41
|
+
import type Database from "better-sqlite3";
|
|
42
|
+
import type { Event, MessageEvent, BackendId } from "@aitne/shared";
|
|
43
|
+
import type { AgentConfig } from "../config.js";
|
|
44
|
+
import { BackendQuotaError } from "./agent-core.js";
|
|
45
|
+
import { type DelegatedSignoutWarning } from "./delegated-connector-health.js";
|
|
46
|
+
import type { IDashboardStream, INotificationManager, IMessageRecorder } from "./dispatcher-types.js";
|
|
47
|
+
export interface DispatcherErrorRouterDeps {
|
|
48
|
+
db: Database.Database;
|
|
49
|
+
config: AgentConfig;
|
|
50
|
+
notificationMgr: INotificationManager;
|
|
51
|
+
messageRecorder: IMessageRecorder;
|
|
52
|
+
/** Live reference to the dispatcher's notify-dedup set. */
|
|
53
|
+
notifiedEvents: Set<string>;
|
|
54
|
+
/** Live reference to the dispatcher's shutdown-awaiter set. */
|
|
55
|
+
shutdownAwaiters: Set<() => void>;
|
|
56
|
+
/** Lazily-resolved dashboard stream (may be null in tests). */
|
|
57
|
+
getDashboardStream: () => IDashboardStream | null;
|
|
58
|
+
/** Returns the dispatcher's current shutdown flag. */
|
|
59
|
+
isShutdown: () => boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Closure that bridges into `ResultProcessor.finalizeRetemplateRun`.
|
|
62
|
+
* Used by `handleError` so a retemplate run that throws still
|
|
63
|
+
* rolls back / records the right outcome.
|
|
64
|
+
*/
|
|
65
|
+
onRetemplateFinalize: (event: Event, opts: {
|
|
66
|
+
errored: boolean;
|
|
67
|
+
}) => void;
|
|
68
|
+
/**
|
|
69
|
+
* Closure that bridges into `ResultProcessor.finalizeManagementScan`.
|
|
70
|
+
* Used by `handleError` so a management-scan that throws still
|
|
71
|
+
* records `failed` against the right repository row.
|
|
72
|
+
*/
|
|
73
|
+
onManagementScanFinalize: (event: Event, opts: {
|
|
74
|
+
errored: boolean;
|
|
75
|
+
}) => void;
|
|
76
|
+
}
|
|
77
|
+
export declare class DispatcherErrorRouter {
|
|
78
|
+
private readonly db;
|
|
79
|
+
private readonly config;
|
|
80
|
+
private readonly notificationMgr;
|
|
81
|
+
private readonly messageRecorder;
|
|
82
|
+
private readonly notifiedEvents;
|
|
83
|
+
private readonly shutdownAwaiters;
|
|
84
|
+
private readonly getDashboardStream;
|
|
85
|
+
private readonly isShutdown;
|
|
86
|
+
private readonly onRetemplateFinalize;
|
|
87
|
+
private readonly onManagementScanFinalize;
|
|
88
|
+
constructor(deps: DispatcherErrorRouterDeps);
|
|
89
|
+
isRetryable(error: unknown): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Defense-in-depth retry wrapper around BackendRouter.execute().
|
|
92
|
+
*
|
|
93
|
+
* **Primary retry responsibility lives inside each BackendCore** (§12/§13).
|
|
94
|
+
* Quota errors, timeouts, and auth failures are all normalized into
|
|
95
|
+
* BackendDecisiveFailure / BackendQuotaError before they reach this layer.
|
|
96
|
+
* The BackendRouter handles fallback on decisive failures.
|
|
97
|
+
*
|
|
98
|
+
* This outer loop exists solely as a safety net for raw 5xx errors that
|
|
99
|
+
* somehow escape the BackendCore → Router chain (e.g., an unexpected HTTP
|
|
100
|
+
* error from the SDK transport layer). In practice it almost never fires.
|
|
101
|
+
*/
|
|
102
|
+
executeWithRetry<T>(fn: () => Promise<T>, event: Event): Promise<T>;
|
|
103
|
+
handleError(event: Event, error: Error): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Best-effort inline error to the dashboard tab whose POST triggered
|
|
106
|
+
* this event. `DashboardAdapter` is `notificationEligible=false`, so
|
|
107
|
+
* the normal `notificationMgr.send` path skips it — without this hook
|
|
108
|
+
* the browser sees the request accepted (200 OK), watches nothing
|
|
109
|
+
* happen, and hits the 120s waiting timeout with no explanation. We
|
|
110
|
+
* target the originating channel id; if the tab already reconnected
|
|
111
|
+
* with a new UUID the adapter silently drops, which matches the
|
|
112
|
+
* chat_error semantics.
|
|
113
|
+
*/
|
|
114
|
+
notifyDashboardError(event: Event, message: string): void;
|
|
115
|
+
extractQuotaError(error: unknown): BackendQuotaError | null;
|
|
116
|
+
formatQuotaMessage(quotaError: BackendQuotaError): string;
|
|
117
|
+
formatBackendLabel(backendId: BackendQuotaError["backendId"]): string;
|
|
118
|
+
resolveQuotaResetAtMs(resetHint: {
|
|
119
|
+
hour: number;
|
|
120
|
+
minute: number;
|
|
121
|
+
timeZone?: string;
|
|
122
|
+
}): number | null;
|
|
123
|
+
/**
|
|
124
|
+
* DELEGATED-MODE-V2-DESIGN.md §4.5 — at every DM dispatch, consult the
|
|
125
|
+
* cached probe for delegated integrations whose effective backend
|
|
126
|
+
* matches the session backend. Surfaces a one-shot DM (deduped via
|
|
127
|
+
* `runtime_state`) when the cached probe says required capabilities
|
|
128
|
+
* are no longer present.
|
|
129
|
+
*
|
|
130
|
+
* The consult itself is synchronous DB-only work (cheap on the hot
|
|
131
|
+
* path). The DM dispatch is fire-and-forget so the agent's response
|
|
132
|
+
* latency is not gated on Slack/Telegram round-trips. Per-warning
|
|
133
|
+
* dispatch failures are swallowed so a flaky messaging adapter never
|
|
134
|
+
* breaks the user's actual DM.
|
|
135
|
+
*
|
|
136
|
+
* Phase 1 of the §4.5 health check — synchronous cache consult only.
|
|
137
|
+
* Returns the warnings the dispatcher must surface this turn (or `[]`
|
|
138
|
+
* when nothing is broken / setup mode is active / the consult itself
|
|
139
|
+
* threw). Recovery markers are cleared inline by the consult helper, so
|
|
140
|
+
* the caller does not have to track them.
|
|
141
|
+
*
|
|
142
|
+
* Split from the dispatch step so the actual DM (and its messages-table
|
|
143
|
+
* persist) fires AFTER the dispatcher has recorded the inbound user
|
|
144
|
+
* message — otherwise the warning row's `CURRENT_TIMESTAMP` lands before
|
|
145
|
+
* the user-message row's, which makes `chat_meta` history reload reorder
|
|
146
|
+
* the bubbles (warning above user) and a one-time visual flicker leaks
|
|
147
|
+
* to the user. See `runDelegatedConnectorWarningDispatch` below.
|
|
148
|
+
*/
|
|
149
|
+
consultDelegatedConnectorWarnings(sessionBackend: BackendId): readonly DelegatedSignoutWarning[];
|
|
150
|
+
/**
|
|
151
|
+
* Phase 2 of the §4.5 health check — asynchronous DM dispatch + post-
|
|
152
|
+
* delivery bookkeeping (throttle marker + dashboard-channel persist).
|
|
153
|
+
* Caller invokes this AFTER the user message is recorded so the DM's
|
|
154
|
+
* messages-table row carries a strictly-later `CURRENT_TIMESTAMP`
|
|
155
|
+
* (preserves pre-reconcile chat order on the dashboard).
|
|
156
|
+
*/
|
|
157
|
+
runDelegatedConnectorWarningDispatch(warnings: readonly DelegatedSignoutWarning[], event: MessageEvent, sessionBackend: BackendId, sessionId: number): void;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=dispatcher-error-handling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher-error-handling.d.ts","sourceRoot":"","sources":["../../src/core/dispatcher-error-handling.ts"],"names":[],"mappings":"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"}
|