@aitne/daemon 0.1.6 → 0.1.8
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/dashboard-adapter.d.ts +18 -2
- package/dist/adapters/dashboard-adapter.d.ts.map +1 -1
- package/dist/adapters/dashboard-adapter.js +101 -51
- package/dist/adapters/dashboard-adapter.js.map +1 -1
- package/dist/adapters/discord.d.ts +8 -0
- package/dist/adapters/discord.d.ts.map +1 -1
- package/dist/adapters/discord.js +100 -21
- package/dist/adapters/discord.js.map +1 -1
- package/dist/adapters/message-hub.d.ts.map +1 -1
- package/dist/adapters/message-hub.js +7 -1
- package/dist/adapters/message-hub.js.map +1 -1
- package/dist/adapters/notification-manager.d.ts +102 -2
- package/dist/adapters/notification-manager.d.ts.map +1 -1
- package/dist/adapters/notification-manager.js +228 -8
- package/dist/adapters/notification-manager.js.map +1 -1
- package/dist/adapters/outbound-text.d.ts +16 -0
- package/dist/adapters/outbound-text.d.ts.map +1 -1
- package/dist/adapters/outbound-text.js +118 -1
- package/dist/adapters/outbound-text.js.map +1 -1
- package/dist/adapters/primary-platform-resolver.d.ts +69 -0
- package/dist/adapters/primary-platform-resolver.d.ts.map +1 -0
- package/dist/adapters/primary-platform-resolver.js +55 -0
- package/dist/adapters/primary-platform-resolver.js.map +1 -0
- package/dist/adapters/slack-adapter.d.ts +28 -0
- package/dist/adapters/slack-adapter.d.ts.map +1 -1
- package/dist/adapters/slack-adapter.js +134 -35
- package/dist/adapters/slack-adapter.js.map +1 -1
- package/dist/adapters/telegram-adapter.d.ts +7 -1
- package/dist/adapters/telegram-adapter.d.ts.map +1 -1
- package/dist/adapters/telegram-adapter.js +49 -18
- package/dist/adapters/telegram-adapter.js.map +1 -1
- package/dist/adapters/whatsapp-adapter.d.ts +33 -0
- package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
- package/dist/adapters/whatsapp-adapter.js +84 -0
- package/dist/adapters/whatsapp-adapter.js.map +1 -1
- package/dist/api/directory-picker.d.ts.map +1 -1
- package/dist/api/directory-picker.js +14 -0
- package/dist/api/directory-picker.js.map +1 -1
- package/dist/api/env-writer.d.ts.map +1 -1
- package/dist/api/env-writer.js +6 -1
- package/dist/api/env-writer.js.map +1 -1
- package/dist/api/helpers/agent-errors.d.ts +2600 -0
- package/dist/api/helpers/agent-errors.d.ts.map +1 -0
- package/dist/api/helpers/agent-errors.js +2506 -0
- package/dist/api/helpers/agent-errors.js.map +1 -0
- package/dist/api/integration-route-gate.d.ts.map +1 -1
- package/dist/api/integration-route-gate.js +10 -3
- package/dist/api/integration-route-gate.js.map +1 -1
- package/dist/api/routes/agent-schedule-plan-match.d.ts +5 -0
- package/dist/api/routes/agent-schedule-plan-match.d.ts.map +1 -0
- package/dist/api/routes/agent-schedule-plan-match.js +101 -0
- package/dist/api/routes/agent-schedule-plan-match.js.map +1 -0
- package/dist/api/routes/agent-schedule.d.ts +4 -0
- package/dist/api/routes/agent-schedule.d.ts.map +1 -0
- package/dist/api/routes/agent-schedule.js +750 -0
- package/dist/api/routes/agent-schedule.js.map +1 -0
- package/dist/api/routes/agent.d.ts.map +1 -1
- package/dist/api/routes/agent.js +209 -366
- package/dist/api/routes/agent.js.map +1 -1
- package/dist/api/routes/apple-calendar.d.ts.map +1 -1
- package/dist/api/routes/apple-calendar.js +109 -27
- package/dist/api/routes/apple-calendar.js.map +1 -1
- package/dist/api/routes/attachments.d.ts.map +1 -1
- package/dist/api/routes/attachments.js +113 -21
- package/dist/api/routes/attachments.js.map +1 -1
- package/dist/api/routes/backends.d.ts.map +1 -1
- package/dist/api/routes/backends.js +100 -4
- package/dist/api/routes/backends.js.map +1 -1
- package/dist/api/routes/books.d.ts.map +1 -1
- package/dist/api/routes/books.js +58 -18
- package/dist/api/routes/books.js.map +1 -1
- package/dist/api/routes/calendar.d.ts +3 -2
- package/dist/api/routes/calendar.d.ts.map +1 -1
- package/dist/api/routes/calendar.js +330 -55
- package/dist/api/routes/calendar.js.map +1 -1
- package/dist/api/routes/commands.d.ts.map +1 -1
- package/dist/api/routes/commands.js +20 -1
- package/dist/api/routes/commands.js.map +1 -1
- package/dist/api/routes/context/index.d.ts +33 -0
- package/dist/api/routes/context/index.d.ts.map +1 -0
- package/dist/api/routes/context/index.js +193 -0
- package/dist/api/routes/context/index.js.map +1 -0
- package/dist/api/routes/context/locks.d.ts +4 -0
- package/dist/api/routes/context/locks.d.ts.map +1 -0
- package/dist/api/routes/context/locks.js +136 -0
- package/dist/api/routes/context/locks.js.map +1 -0
- package/dist/api/routes/context/path-resolve.d.ts +15 -0
- package/dist/api/routes/context/path-resolve.d.ts.map +1 -0
- package/dist/api/routes/context/path-resolve.js +109 -0
- package/dist/api/routes/context/path-resolve.js.map +1 -0
- package/dist/api/routes/context/permissions.d.ts +35 -0
- package/dist/api/routes/context/permissions.d.ts.map +1 -0
- package/dist/api/routes/context/permissions.js +192 -0
- package/dist/api/routes/context/permissions.js.map +1 -0
- package/dist/api/routes/context/read.d.ts +4 -0
- package/dist/api/routes/context/read.d.ts.map +1 -0
- package/dist/api/routes/context/read.js +295 -0
- package/dist/api/routes/context/read.js.map +1 -0
- package/dist/api/routes/context/repair.d.ts +4 -0
- package/dist/api/routes/context/repair.d.ts.map +1 -0
- package/dist/api/routes/context/repair.js +114 -0
- package/dist/api/routes/context/repair.js.map +1 -0
- package/dist/api/routes/context/snapshots.d.ts +4 -0
- package/dist/api/routes/context/snapshots.d.ts.map +1 -0
- package/dist/api/routes/context/snapshots.js +177 -0
- package/dist/api/routes/context/snapshots.js.map +1 -0
- package/dist/api/routes/context/write.d.ts +4 -0
- package/dist/api/routes/context/write.d.ts.map +1 -0
- package/dist/api/routes/context/write.js +570 -0
- package/dist/api/routes/context/write.js.map +1 -0
- package/dist/api/routes/context.d.ts +2 -43
- package/dist/api/routes/context.d.ts.map +1 -1
- package/dist/api/routes/context.js +415 -558
- package/dist/api/routes/context.js.map +1 -1
- package/dist/api/routes/dashboard/config.d.ts +4 -0
- package/dist/api/routes/dashboard/config.d.ts.map +1 -0
- package/dist/api/routes/dashboard/config.js +499 -0
- package/dist/api/routes/dashboard/config.js.map +1 -0
- package/dist/api/routes/dashboard/conversations.d.ts +4 -0
- package/dist/api/routes/dashboard/conversations.d.ts.map +1 -0
- package/dist/api/routes/dashboard/conversations.js +309 -0
- package/dist/api/routes/dashboard/conversations.js.map +1 -0
- package/dist/api/routes/dashboard/cost-approvals.d.ts +29 -0
- package/dist/api/routes/dashboard/cost-approvals.d.ts.map +1 -0
- package/dist/api/routes/dashboard/cost-approvals.js +259 -0
- package/dist/api/routes/dashboard/cost-approvals.js.map +1 -0
- package/dist/api/routes/dashboard/index.d.ts +27 -0
- package/dist/api/routes/dashboard/index.d.ts.map +1 -0
- package/dist/api/routes/dashboard/index.js +47 -0
- package/dist/api/routes/dashboard/index.js.map +1 -0
- package/dist/api/routes/dashboard/messaging.d.ts +4 -0
- package/dist/api/routes/dashboard/messaging.d.ts.map +1 -0
- package/dist/api/routes/dashboard/messaging.js +351 -0
- package/dist/api/routes/dashboard/messaging.js.map +1 -0
- package/dist/api/routes/dashboard/notifications.d.ts +4 -0
- package/dist/api/routes/dashboard/notifications.d.ts.map +1 -0
- package/dist/api/routes/dashboard/notifications.js +109 -0
- package/dist/api/routes/dashboard/notifications.js.map +1 -0
- package/dist/api/routes/dashboard/oauth-google.d.ts +4 -0
- package/dist/api/routes/dashboard/oauth-google.d.ts.map +1 -0
- package/dist/api/routes/dashboard/oauth-google.js +293 -0
- package/dist/api/routes/dashboard/oauth-google.js.map +1 -0
- package/dist/api/routes/dashboard/schedule-readonly.d.ts +4 -0
- package/dist/api/routes/dashboard/schedule-readonly.d.ts.map +1 -0
- package/dist/api/routes/dashboard/schedule-readonly.js +46 -0
- package/dist/api/routes/dashboard/schedule-readonly.js.map +1 -0
- package/dist/api/routes/dashboard/secrets.d.ts +24 -0
- package/dist/api/routes/dashboard/secrets.d.ts.map +1 -0
- package/dist/api/routes/dashboard/secrets.js +307 -0
- package/dist/api/routes/dashboard/secrets.js.map +1 -0
- package/dist/api/routes/dashboard/snapshots.d.ts +4 -0
- package/dist/api/routes/dashboard/snapshots.d.ts.map +1 -0
- package/dist/api/routes/dashboard/snapshots.js +33 -0
- package/dist/api/routes/dashboard/snapshots.js.map +1 -0
- package/dist/api/routes/dashboard.d.ts.map +1 -1
- package/dist/api/routes/dashboard.js +20 -12
- package/dist/api/routes/dashboard.js.map +1 -1
- package/dist/api/routes/delegated.d.ts +5 -4
- package/dist/api/routes/delegated.d.ts.map +1 -1
- package/dist/api/routes/delegated.js +6 -5
- package/dist/api/routes/delegated.js.map +1 -1
- package/dist/api/routes/docs.d.ts.map +1 -1
- package/dist/api/routes/docs.js +72 -9
- package/dist/api/routes/docs.js.map +1 -1
- package/dist/api/routes/entities.d.ts.map +1 -1
- package/dist/api/routes/entities.js +112 -43
- package/dist/api/routes/entities.js.map +1 -1
- package/dist/api/routes/fs.d.ts.map +1 -1
- package/dist/api/routes/fs.js +27 -12
- package/dist/api/routes/fs.js.map +1 -1
- package/dist/api/routes/git-templates.d.ts.map +1 -1
- package/dist/api/routes/git-templates.js +107 -27
- package/dist/api/routes/git-templates.js.map +1 -1
- package/dist/api/routes/git.d.ts.map +1 -1
- package/dist/api/routes/git.js +55 -11
- package/dist/api/routes/git.js.map +1 -1
- package/dist/api/routes/github.d.ts.map +1 -1
- package/dist/api/routes/github.js +110 -17
- package/dist/api/routes/github.js.map +1 -1
- package/dist/api/routes/integrations/crud-patch.d.ts +17 -0
- package/dist/api/routes/integrations/crud-patch.d.ts.map +1 -0
- package/dist/api/routes/integrations/crud-patch.js +600 -0
- package/dist/api/routes/integrations/crud-patch.js.map +1 -0
- package/dist/api/routes/integrations/crud.d.ts +16 -0
- package/dist/api/routes/integrations/crud.d.ts.map +1 -0
- package/dist/api/routes/integrations/crud.js +158 -0
- package/dist/api/routes/integrations/crud.js.map +1 -0
- package/dist/api/routes/integrations/exec.d.ts +23 -0
- package/dist/api/routes/integrations/exec.d.ts.map +1 -0
- package/dist/api/routes/integrations/exec.js +356 -0
- package/dist/api/routes/integrations/exec.js.map +1 -0
- package/dist/api/routes/integrations/index.d.ts +62 -0
- package/dist/api/routes/integrations/index.d.ts.map +1 -0
- package/dist/api/routes/integrations/index.js +70 -0
- package/dist/api/routes/integrations/index.js.map +1 -0
- package/dist/api/routes/integrations/integrations/crud.d.ts +16 -0
- package/dist/api/routes/integrations/integrations/crud.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/crud.js +158 -0
- package/dist/api/routes/integrations/integrations/crud.js.map +1 -0
- package/dist/api/routes/integrations/integrations/index.d.ts +55 -0
- package/dist/api/routes/integrations/integrations/index.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/index.js +65 -0
- package/dist/api/routes/integrations/integrations/index.js.map +1 -0
- package/dist/api/routes/integrations/integrations/invoke.d.ts +38 -0
- package/dist/api/routes/integrations/integrations/invoke.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/invoke.js +320 -0
- package/dist/api/routes/integrations/integrations/invoke.js.map +1 -0
- package/dist/api/routes/integrations/integrations/probe.d.ts +21 -0
- package/dist/api/routes/integrations/integrations/probe.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/probe.js +247 -0
- package/dist/api/routes/integrations/integrations/probe.js.map +1 -0
- package/dist/api/routes/integrations/invoke.d.ts +38 -0
- package/dist/api/routes/integrations/invoke.d.ts.map +1 -0
- package/dist/api/routes/integrations/invoke.js +320 -0
- package/dist/api/routes/integrations/invoke.js.map +1 -0
- package/dist/api/routes/integrations/probe.d.ts +21 -0
- package/dist/api/routes/integrations/probe.d.ts.map +1 -0
- package/dist/api/routes/integrations/probe.js +247 -0
- package/dist/api/routes/integrations/probe.js.map +1 -0
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +65 -13
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/knowledge.d.ts.map +1 -1
- package/dist/api/routes/knowledge.js +13 -2
- package/dist/api/routes/knowledge.js.map +1 -1
- package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.js +192 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts +55 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.js +2 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.js +98 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js +289 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js +192 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts +55 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js +2 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts +5 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js +139 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js +98 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts +18 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.js +40 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts +15 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js +239 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js +73 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js +73 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts +5 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js +35 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.js.map +1 -0
- package/dist/api/routes/mail/accounts.d.ts +4 -0
- package/dist/api/routes/mail/accounts.d.ts.map +1 -0
- package/dist/api/routes/mail/accounts.js +289 -0
- package/dist/api/routes/mail/accounts.js.map +1 -0
- package/dist/api/routes/mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/app-password.js +192 -0
- package/dist/api/routes/mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/body-helpers.d.ts +56 -0
- package/dist/api/routes/mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/dependencies.js +2 -0
- package/dist/api/routes/mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/drafts.d.ts +5 -0
- package/dist/api/routes/mail/drafts.d.ts.map +1 -0
- package/dist/api/routes/mail/drafts.js +139 -0
- package/dist/api/routes/mail/drafts.js.map +1 -0
- package/dist/api/routes/mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/gating.js +99 -0
- package/dist/api/routes/mail/gating.js.map +1 -0
- package/dist/api/routes/mail/index.d.ts +18 -0
- package/dist/api/routes/mail/index.d.ts.map +1 -0
- package/dist/api/routes/mail/index.js +40 -0
- package/dist/api/routes/mail/index.js.map +1 -0
- package/dist/api/routes/mail/messages.d.ts +15 -0
- package/dist/api/routes/mail/messages.d.ts.map +1 -0
- package/dist/api/routes/mail/messages.js +239 -0
- package/dist/api/routes/mail/messages.js.map +1 -0
- package/dist/api/routes/mail/outlook-config.d.ts +4 -0
- package/dist/api/routes/mail/outlook-config.d.ts.map +1 -0
- package/dist/api/routes/mail/outlook-config.js +73 -0
- package/dist/api/routes/mail/outlook-config.js.map +1 -0
- package/dist/api/routes/mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/providers.d.ts +4 -0
- package/dist/api/routes/mail/providers.d.ts.map +1 -0
- package/dist/api/routes/mail/providers.js +73 -0
- package/dist/api/routes/mail/providers.js.map +1 -0
- package/dist/api/routes/mail/search-health.d.ts +4 -0
- package/dist/api/routes/mail/search-health.d.ts.map +1 -0
- package/dist/api/routes/mail/search-health.js +131 -0
- package/dist/api/routes/mail/search-health.js.map +1 -0
- package/dist/api/routes/mail/tags-folders.d.ts +5 -0
- package/dist/api/routes/mail/tags-folders.d.ts.map +1 -0
- package/dist/api/routes/mail/tags-folders.js +35 -0
- package/dist/api/routes/mail/tags-folders.js.map +1 -0
- package/dist/api/routes/mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/validators.js +131 -0
- package/dist/api/routes/mail/validators.js.map +1 -0
- package/dist/api/routes/mail.d.ts.map +1 -1
- package/dist/api/routes/mail.js +259 -67
- package/dist/api/routes/mail.js.map +1 -1
- package/dist/api/routes/managed-tasks.d.ts.map +1 -1
- package/dist/api/routes/managed-tasks.js +142 -54
- package/dist/api/routes/managed-tasks.js.map +1 -1
- package/dist/api/routes/mcp.d.ts.map +1 -1
- package/dist/api/routes/mcp.js +115 -47
- package/dist/api/routes/mcp.js.map +1 -1
- package/dist/api/routes/metrics.d.ts +1 -1
- package/dist/api/routes/metrics.js +2 -2
- package/dist/api/routes/notion.d.ts.map +1 -1
- package/dist/api/routes/notion.js +230 -54
- package/dist/api/routes/notion.js.map +1 -1
- package/dist/api/routes/observations.d.ts.map +1 -1
- package/dist/api/routes/observations.js +40 -169
- package/dist/api/routes/observations.js.map +1 -1
- package/dist/api/routes/obsidian.d.ts.map +1 -1
- package/dist/api/routes/obsidian.js +193 -32
- package/dist/api/routes/obsidian.js.map +1 -1
- package/dist/api/routes/profile-questions.d.ts.map +1 -1
- package/dist/api/routes/profile-questions.js +19 -3
- package/dist/api/routes/profile-questions.js.map +1 -1
- package/dist/api/routes/receipts.d.ts.map +1 -1
- package/dist/api/routes/receipts.js +64 -24
- package/dist/api/routes/receipts.js.map +1 -1
- package/dist/api/routes/recurring-schedules.d.ts.map +1 -1
- package/dist/api/routes/recurring-schedules.js +243 -13
- package/dist/api/routes/recurring-schedules.js.map +1 -1
- package/dist/api/routes/repositories.d.ts.map +1 -1
- package/dist/api/routes/repositories.js +278 -104
- package/dist/api/routes/repositories.js.map +1 -1
- package/dist/api/routes/schedule-model-resolver.d.ts +153 -0
- package/dist/api/routes/schedule-model-resolver.d.ts.map +1 -0
- package/dist/api/routes/schedule-model-resolver.js +282 -0
- package/dist/api/routes/schedule-model-resolver.js.map +1 -0
- package/dist/api/routes/schedule-options.d.ts +25 -0
- package/dist/api/routes/schedule-options.d.ts.map +1 -0
- package/dist/api/routes/schedule-options.js +77 -0
- package/dist/api/routes/schedule-options.js.map +1 -0
- package/dist/api/routes/schedule-validation.d.ts +146 -0
- package/dist/api/routes/schedule-validation.d.ts.map +1 -0
- package/dist/api/routes/schedule-validation.js +153 -0
- package/dist/api/routes/schedule-validation.js.map +1 -0
- package/dist/api/routes/setup.d.ts.map +1 -1
- package/dist/api/routes/setup.js +100 -26
- package/dist/api/routes/setup.js.map +1 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +81 -30
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/api/routes/sot-bindings.d.ts.map +1 -1
- package/dist/api/routes/sot-bindings.js +46 -11
- package/dist/api/routes/sot-bindings.js.map +1 -1
- package/dist/api/routes/sse.d.ts.map +1 -1
- package/dist/api/routes/sse.js +6 -1
- package/dist/api/routes/sse.js.map +1 -1
- package/dist/api/routes/system.d.ts.map +1 -1
- package/dist/api/routes/system.js +15 -2
- package/dist/api/routes/system.js.map +1 -1
- package/dist/api/routes/travel-bookings.d.ts.map +1 -1
- package/dist/api/routes/travel-bookings.js +26 -9
- package/dist/api/routes/travel-bookings.js.map +1 -1
- package/dist/api/routes/travel-time.d.ts.map +1 -1
- package/dist/api/routes/travel-time.js +50 -10
- package/dist/api/routes/travel-time.js.map +1 -1
- package/dist/api/routes/wiki.d.ts.map +1 -1
- package/dist/api/routes/wiki.js +49 -8
- package/dist/api/routes/wiki.js.map +1 -1
- package/dist/api/server.d.ts +15 -3
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +32 -10
- package/dist/api/server.js.map +1 -1
- package/dist/bootstrap/adapters.d.ts.map +1 -1
- package/dist/bootstrap/adapters.js +7 -4
- package/dist/bootstrap/adapters.js.map +1 -1
- package/dist/bootstrap/api.d.ts +205 -0
- package/dist/bootstrap/api.d.ts.map +1 -0
- package/dist/bootstrap/api.js +443 -0
- package/dist/bootstrap/api.js.map +1 -0
- package/dist/bootstrap/db.d.ts +119 -0
- package/dist/bootstrap/db.d.ts.map +1 -0
- package/dist/bootstrap/db.js +294 -0
- package/dist/bootstrap/db.js.map +1 -0
- package/dist/bootstrap/event-pipeline.d.ts +308 -0
- package/dist/bootstrap/event-pipeline.d.ts.map +1 -0
- package/dist/bootstrap/event-pipeline.js +704 -0
- package/dist/bootstrap/event-pipeline.js.map +1 -0
- package/dist/bootstrap/observers.d.ts +148 -0
- package/dist/bootstrap/observers.d.ts.map +1 -0
- package/dist/bootstrap/observers.js +558 -0
- package/dist/bootstrap/observers.js.map +1 -0
- package/dist/bootstrap/schedule-helpers.d.ts +122 -0
- package/dist/bootstrap/schedule-helpers.d.ts.map +1 -1
- package/dist/bootstrap/schedule-helpers.js +202 -4
- package/dist/bootstrap/schedule-helpers.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -3
- package/dist/config.js.map +1 -1
- package/dist/core/abort-utils.d.ts +14 -0
- package/dist/core/abort-utils.d.ts.map +1 -0
- package/dist/core/abort-utils.js +36 -0
- package/dist/core/abort-utils.js.map +1 -0
- package/dist/core/agent-core.d.ts +22 -3
- package/dist/core/agent-core.d.ts.map +1 -1
- package/dist/core/agent-core.js +3 -1
- package/dist/core/agent-core.js.map +1 -1
- package/dist/core/backends/auth-health-monitor.js +2 -3
- package/dist/core/backends/auth-health-monitor.js.map +1 -1
- package/dist/core/backends/backend-router.d.ts +11 -1
- package/dist/core/backends/backend-router.d.ts.map +1 -1
- package/dist/core/backends/backend-router.js +97 -2
- package/dist/core/backends/backend-router.js.map +1 -1
- package/dist/core/backends/claude-code-core.d.ts +51 -0
- package/dist/core/backends/claude-code-core.d.ts.map +1 -1
- package/dist/core/backends/claude-code-core.js +134 -11
- package/dist/core/backends/claude-code-core.js.map +1 -1
- package/dist/core/backends/claude-tool-collection.js +1 -1
- package/dist/core/backends/codex-core.d.ts +13 -1
- package/dist/core/backends/codex-core.d.ts.map +1 -1
- package/dist/core/backends/codex-core.js +436 -22
- package/dist/core/backends/codex-core.js.map +1 -1
- package/dist/core/backends/gemini-cli-core.d.ts +5 -1
- package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
- package/dist/core/backends/gemini-cli-core.js +298 -15
- package/dist/core/backends/gemini-cli-core.js.map +1 -1
- package/dist/core/backends/install-methods.d.ts.map +1 -1
- package/dist/core/backends/install-methods.js +22 -0
- package/dist/core/backends/install-methods.js.map +1 -1
- package/dist/core/backends/model-registry.d.ts +9 -4
- package/dist/core/backends/model-registry.d.ts.map +1 -1
- package/dist/core/backends/model-registry.js +153 -23
- package/dist/core/backends/model-registry.js.map +1 -1
- package/dist/core/backends/native-skill-discovery-probe.d.ts +80 -0
- package/dist/core/backends/native-skill-discovery-probe.d.ts.map +1 -0
- package/dist/core/backends/native-skill-discovery-probe.js +175 -0
- package/dist/core/backends/native-skill-discovery-probe.js.map +1 -0
- package/dist/core/backends/opencode-basic-auth-fetch.d.ts +27 -0
- package/dist/core/backends/opencode-basic-auth-fetch.d.ts.map +1 -0
- package/dist/core/backends/opencode-basic-auth-fetch.js +40 -0
- package/dist/core/backends/opencode-basic-auth-fetch.js.map +1 -0
- package/dist/core/backends/opencode-config-builder.d.ts +86 -0
- package/dist/core/backends/opencode-config-builder.d.ts.map +1 -0
- package/dist/core/backends/opencode-config-builder.js +172 -0
- package/dist/core/backends/opencode-config-builder.js.map +1 -0
- package/dist/core/backends/opencode-core.d.ts +316 -0
- package/dist/core/backends/opencode-core.d.ts.map +1 -0
- package/dist/core/backends/opencode-core.js +1502 -0
- package/dist/core/backends/opencode-core.js.map +1 -0
- package/dist/core/backends/opencode-event-mapper.d.ts +133 -0
- package/dist/core/backends/opencode-event-mapper.d.ts.map +1 -0
- package/dist/core/backends/opencode-event-mapper.js +198 -0
- package/dist/core/backends/opencode-event-mapper.js.map +1 -0
- package/dist/core/backends/opencode-mcp.d.ts +82 -0
- package/dist/core/backends/opencode-mcp.d.ts.map +1 -0
- package/dist/core/backends/opencode-mcp.js +165 -0
- package/dist/core/backends/opencode-mcp.js.map +1 -0
- package/dist/core/backends/opencode-server-manager.d.ts +114 -0
- package/dist/core/backends/opencode-server-manager.d.ts.map +1 -0
- package/dist/core/backends/opencode-server-manager.js +222 -0
- package/dist/core/backends/opencode-server-manager.js.map +1 -0
- package/dist/core/backends/opencode-types.d.ts +46 -0
- package/dist/core/backends/opencode-types.d.ts.map +1 -0
- package/dist/core/backends/opencode-types.js +14 -0
- package/dist/core/backends/opencode-types.js.map +1 -0
- package/dist/core/backends/plan-presets.d.ts +18 -5
- package/dist/core/backends/plan-presets.d.ts.map +1 -1
- package/dist/core/backends/plan-presets.js +144 -23
- package/dist/core/backends/plan-presets.js.map +1 -1
- package/dist/core/backends/process-config-cascade.d.ts +35 -0
- package/dist/core/backends/process-config-cascade.d.ts.map +1 -1
- package/dist/core/backends/process-config-cascade.js +35 -1
- package/dist/core/backends/process-config-cascade.js.map +1 -1
- package/dist/core/backends/prompt-utils.d.ts.map +1 -1
- package/dist/core/backends/prompt-utils.js +0 -2
- package/dist/core/backends/prompt-utils.js.map +1 -1
- package/dist/core/backends/quota-reset-hints.d.ts +44 -0
- package/dist/core/backends/quota-reset-hints.d.ts.map +1 -0
- package/dist/core/backends/quota-reset-hints.js +117 -0
- package/dist/core/backends/quota-reset-hints.js.map +1 -0
- package/dist/core/bang-commands/commands-close.d.ts +24 -0
- package/dist/core/bang-commands/commands-close.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-close.js +24 -0
- package/dist/core/bang-commands/commands-close.js.map +1 -0
- package/dist/core/bang-commands/commands-cost.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-cost.js +13 -0
- package/dist/core/bang-commands/commands-cost.js.map +1 -1
- package/dist/core/bang-commands/commands-help.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-help.js +44 -5
- package/dist/core/bang-commands/commands-help.js.map +1 -1
- package/dist/core/bang-commands/commands-report.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-report.js +1 -0
- package/dist/core/bang-commands/commands-report.js.map +1 -1
- package/dist/core/bang-commands/commands-stop-start.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-stop-start.js +2 -0
- package/dist/core/bang-commands/commands-stop-start.js.map +1 -1
- package/dist/core/bang-commands/commands-wiki.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-wiki.js +12 -1
- package/dist/core/bang-commands/commands-wiki.js.map +1 -1
- package/dist/core/bang-commands/format-utils.d.ts +13 -1
- package/dist/core/bang-commands/format-utils.d.ts.map +1 -1
- package/dist/core/bang-commands/format-utils.js +21 -2
- package/dist/core/bang-commands/format-utils.js.map +1 -1
- package/dist/core/bang-commands/index.d.ts +1 -0
- package/dist/core/bang-commands/index.d.ts.map +1 -1
- package/dist/core/bang-commands/index.js +3 -0
- package/dist/core/bang-commands/index.js.map +1 -1
- package/dist/core/bang-commands/registry.d.ts +50 -0
- package/dist/core/bang-commands/registry.d.ts.map +1 -1
- package/dist/core/bang-commands/registry.js +164 -19
- package/dist/core/bang-commands/registry.js.map +1 -1
- package/dist/core/channel-timeline.d.ts +18 -1
- package/dist/core/channel-timeline.d.ts.map +1 -1
- package/dist/core/channel-timeline.js +44 -0
- package/dist/core/channel-timeline.js.map +1 -1
- package/dist/core/context/activity-view-runner.js +9 -1
- package/dist/core/context/activity-view-runner.js.map +1 -1
- package/dist/core/context/default-schedules-runner.js +44 -4
- package/dist/core/context/default-schedules-runner.js.map +1 -1
- package/dist/core/context/domain-index-runner.js +9 -1
- package/dist/core/context/domain-index-runner.js.map +1 -1
- package/dist/core/context/entity-source-rename.d.ts.map +1 -1
- package/dist/core/context/entity-source-rename.js +9 -1
- package/dist/core/context/entity-source-rename.js.map +1 -1
- package/dist/core/context/policy-index-runner.js +9 -1
- package/dist/core/context/policy-index-runner.js.map +1 -1
- package/dist/core/context/reconciler-runner.js +9 -1
- package/dist/core/context/reconciler-runner.js.map +1 -1
- package/dist/core/context-builder.d.ts +97 -2
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +303 -30
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/context-frontmatter.d.ts +6 -0
- package/dist/core/context-frontmatter.d.ts.map +1 -1
- package/dist/core/context-frontmatter.js +120 -8
- package/dist/core/context-frontmatter.js.map +1 -1
- package/dist/core/context-health.js +21 -9
- package/dist/core/context-health.js.map +1 -1
- package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts +19 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.js +19 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts +94 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js +130 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts +60 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js +156 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts +41 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.js +82 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts +52 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js +110 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts +85 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.js +162 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.js.map +1 -0
- package/dist/core/context-validation/index.d.ts +19 -0
- package/dist/core/context-validation/index.d.ts.map +1 -0
- package/dist/core/context-validation/index.js +19 -0
- package/dist/core/context-validation/index.js.map +1 -0
- package/dist/core/context-validation/prepare-write.d.ts +95 -0
- package/dist/core/context-validation/prepare-write.d.ts.map +1 -0
- package/dist/core/context-validation/prepare-write.js +135 -0
- package/dist/core/context-validation/prepare-write.js.map +1 -0
- package/dist/core/context-validation/routine-rulebook.d.ts +60 -0
- package/dist/core/context-validation/routine-rulebook.d.ts.map +1 -0
- package/dist/core/context-validation/routine-rulebook.js +156 -0
- package/dist/core/context-validation/routine-rulebook.js.map +1 -0
- package/dist/core/context-validation/section.d.ts +41 -0
- package/dist/core/context-validation/section.d.ts.map +1 -0
- package/dist/core/context-validation/section.js +82 -0
- package/dist/core/context-validation/section.js.map +1 -0
- package/dist/core/context-validation/snapshot-debounce.d.ts +52 -0
- package/dist/core/context-validation/snapshot-debounce.d.ts.map +1 -0
- package/dist/core/context-validation/snapshot-debounce.js +110 -0
- package/dist/core/context-validation/snapshot-debounce.js.map +1 -0
- package/dist/core/context-validation/today.d.ts +85 -0
- package/dist/core/context-validation/today.d.ts.map +1 -0
- package/dist/core/context-validation/today.js +168 -0
- package/dist/core/context-validation/today.js.map +1 -0
- package/dist/core/daemon-api-cli.d.ts +6 -5
- package/dist/core/daemon-api-cli.d.ts.map +1 -1
- package/dist/core/daemon-api-cli.js +73 -32
- package/dist/core/daemon-api-cli.js.map +1 -1
- package/dist/core/dispatcher-error-handling.d.ts +13 -0
- package/dist/core/dispatcher-error-handling.d.ts.map +1 -1
- package/dist/core/dispatcher-error-handling.js +69 -0
- package/dist/core/dispatcher-error-handling.js.map +1 -1
- package/dist/core/dispatcher-hourly-check.d.ts +73 -1
- package/dist/core/dispatcher-hourly-check.d.ts.map +1 -1
- package/dist/core/dispatcher-hourly-check.js +249 -151
- package/dist/core/dispatcher-hourly-check.js.map +1 -1
- package/dist/core/dispatcher-message-handler.d.ts +11 -1
- package/dist/core/dispatcher-message-handler.d.ts.map +1 -1
- package/dist/core/dispatcher-message-handler.js +165 -47
- package/dist/core/dispatcher-message-handler.js.map +1 -1
- package/dist/core/dispatcher-morning-routine.d.ts +38 -30
- package/dist/core/dispatcher-morning-routine.d.ts.map +1 -1
- package/dist/core/dispatcher-morning-routine.js +162 -104
- package/dist/core/dispatcher-morning-routine.js.map +1 -1
- package/dist/core/dispatcher-prompt.d.ts +4 -1
- package/dist/core/dispatcher-prompt.d.ts.map +1 -1
- package/dist/core/dispatcher-prompt.js +18 -2
- package/dist/core/dispatcher-prompt.js.map +1 -1
- package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -1
- package/dist/core/dispatcher-repository-helpers.js +5 -1
- package/dist/core/dispatcher-repository-helpers.js.map +1 -1
- package/dist/core/dispatcher-result-processor.d.ts.map +1 -1
- package/dist/core/dispatcher-result-processor.js +9 -4
- package/dist/core/dispatcher-result-processor.js.map +1 -1
- package/dist/core/dispatcher-scheduled-tasks.d.ts +1 -1
- package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -1
- package/dist/core/dispatcher-scheduled-tasks.js +79 -16
- package/dist/core/dispatcher-scheduled-tasks.js.map +1 -1
- package/dist/core/dispatcher-types.d.ts +84 -12
- package/dist/core/dispatcher-types.d.ts.map +1 -1
- package/dist/core/dispatcher-types.js.map +1 -1
- package/dist/core/dispatcher.d.ts +50 -1
- package/dist/core/dispatcher.d.ts.map +1 -1
- package/dist/core/dispatcher.js +143 -8
- package/dist/core/dispatcher.js.map +1 -1
- package/dist/core/dm-freshness-metrics.d.ts +6 -5
- package/dist/core/dm-freshness-metrics.d.ts.map +1 -1
- package/dist/core/dm-freshness-metrics.js +7 -6
- package/dist/core/dm-freshness-metrics.js.map +1 -1
- package/dist/core/evening-review-verify.d.ts +164 -0
- package/dist/core/evening-review-verify.d.ts.map +1 -0
- package/dist/core/evening-review-verify.js +637 -0
- package/dist/core/evening-review-verify.js.map +1 -0
- package/dist/core/fetch-window-prompt-loader.d.ts +47 -0
- package/dist/core/fetch-window-prompt-loader.d.ts.map +1 -0
- package/dist/core/fetch-window-prompt-loader.js +72 -0
- package/dist/core/fetch-window-prompt-loader.js.map +1 -0
- package/dist/core/management-md.d.ts.map +1 -1
- package/dist/core/management-md.js +23 -9
- package/dist/core/management-md.js.map +1 -1
- package/dist/core/management-registry.d.ts +13 -21
- package/dist/core/management-registry.d.ts.map +1 -1
- package/dist/core/management-registry.js +27 -48
- package/dist/core/management-registry.js.map +1 -1
- package/dist/core/metrics.d.ts +88 -1
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +78 -2
- package/dist/core/metrics.js.map +1 -1
- package/dist/core/morning/agent-journal-appender.d.ts +197 -0
- package/dist/core/morning/agent-journal-appender.d.ts.map +1 -0
- package/dist/core/morning/agent-journal-appender.js +458 -0
- package/dist/core/morning/agent-journal-appender.js.map +1 -0
- package/dist/core/morning/handoff-parser.d.ts +45 -0
- package/dist/core/morning/handoff-parser.d.ts.map +1 -0
- package/dist/core/morning/handoff-parser.js +117 -0
- package/dist/core/morning/handoff-parser.js.map +1 -0
- package/dist/core/morning/journal-skeleton-builder.d.ts +157 -0
- package/dist/core/morning/journal-skeleton-builder.d.ts.map +1 -0
- package/dist/core/morning/journal-skeleton-builder.js +303 -0
- package/dist/core/morning/journal-skeleton-builder.js.map +1 -0
- package/dist/core/morning/orchestrator.d.ts +312 -0
- package/dist/core/morning/orchestrator.d.ts.map +1 -0
- package/dist/core/morning/orchestrator.js +827 -0
- package/dist/core/morning/orchestrator.js.map +1 -0
- package/dist/core/morning/parent-audit-emitter.d.ts +82 -0
- package/dist/core/morning/parent-audit-emitter.d.ts.map +1 -0
- package/dist/core/morning/parent-audit-emitter.js +120 -0
- package/dist/core/morning/parent-audit-emitter.js.map +1 -0
- package/dist/core/morning/roadmap-skeleton-builder.d.ts +159 -0
- package/dist/core/morning/roadmap-skeleton-builder.d.ts.map +1 -0
- package/dist/core/morning/roadmap-skeleton-builder.js +338 -0
- package/dist/core/morning/roadmap-skeleton-builder.js.map +1 -0
- package/dist/core/output-language-policy.js +1 -1
- package/dist/core/output-language-policy.js.map +1 -1
- package/dist/core/policy-files.d.ts +19 -2
- package/dist/core/policy-files.d.ts.map +1 -1
- package/dist/core/policy-files.js +65 -7
- package/dist/core/policy-files.js.map +1 -1
- package/dist/core/pre-pass-freshness.d.ts +28 -0
- package/dist/core/pre-pass-freshness.d.ts.map +1 -0
- package/dist/core/pre-pass-freshness.js +10 -0
- package/dist/core/pre-pass-freshness.js.map +1 -0
- package/dist/core/previous-week-digest.d.ts +130 -0
- package/dist/core/previous-week-digest.d.ts.map +1 -0
- package/dist/core/previous-week-digest.js +257 -0
- package/dist/core/previous-week-digest.js.map +1 -0
- package/dist/core/prompts.js +3 -3
- package/dist/core/prompts.js.map +1 -1
- package/dist/core/quiet-hours-sync.d.ts.map +1 -1
- package/dist/core/quiet-hours-sync.js +7 -0
- package/dist/core/quiet-hours-sync.js.map +1 -1
- package/dist/core/recurrence.d.ts +13 -0
- package/dist/core/recurrence.d.ts.map +1 -1
- package/dist/core/recurrence.js +108 -13
- package/dist/core/recurrence.js.map +1 -1
- package/dist/core/release-assets.d.ts +21 -1
- package/dist/core/release-assets.d.ts.map +1 -1
- package/dist/core/release-assets.js +58 -3
- package/dist/core/release-assets.js.map +1 -1
- package/dist/core/repository-management-docs.d.ts.map +1 -1
- package/dist/core/repository-management-docs.js +14 -4
- package/dist/core/repository-management-docs.js.map +1 -1
- package/dist/core/review-context.d.ts.map +1 -1
- package/dist/core/review-context.js +29 -1
- package/dist/core/review-context.js.map +1 -1
- package/dist/core/roadmap-maintenance.d.ts +213 -0
- package/dist/core/roadmap-maintenance.d.ts.map +1 -0
- package/dist/core/roadmap-maintenance.js +706 -0
- package/dist/core/roadmap-maintenance.js.map +1 -0
- package/dist/core/roadmap-validate.d.ts +5 -0
- package/dist/core/roadmap-validate.d.ts.map +1 -1
- package/dist/core/roadmap-validate.js +6 -69
- package/dist/core/roadmap-validate.js.map +1 -1
- package/dist/core/routine-acquisition-plan.d.ts +43 -7
- package/dist/core/routine-acquisition-plan.d.ts.map +1 -1
- package/dist/core/routine-acquisition-plan.js +99 -8
- package/dist/core/routine-acquisition-plan.js.map +1 -1
- package/dist/core/routine-fetch-window-retry.d.ts +41 -2
- package/dist/core/routine-fetch-window-retry.d.ts.map +1 -1
- package/dist/core/routine-fetch-window-retry.js +91 -8
- package/dist/core/routine-fetch-window-retry.js.map +1 -1
- package/dist/core/routine-fetch-window-runner.d.ts +55 -21
- package/dist/core/routine-fetch-window-runner.d.ts.map +1 -1
- package/dist/core/routine-fetch-window-runner.js +258 -35
- package/dist/core/routine-fetch-window-runner.js.map +1 -1
- package/dist/core/routine-windows.d.ts +17 -13
- package/dist/core/routine-windows.d.ts.map +1 -1
- package/dist/core/routine-windows.js +78 -36
- package/dist/core/routine-windows.js.map +1 -1
- package/dist/core/scheduler.d.ts +121 -37
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +359 -80
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts +25 -6
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +32 -15
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/skeleton.d.ts.map +1 -1
- package/dist/core/skeleton.js +23 -23
- package/dist/core/skeleton.js.map +1 -1
- package/dist/core/skills-compiler.d.ts +275 -25
- package/dist/core/skills-compiler.d.ts.map +1 -1
- package/dist/core/skills-compiler.js +844 -205
- package/dist/core/skills-compiler.js.map +1 -1
- package/dist/core/skills-manifest.d.ts +104 -0
- package/dist/core/skills-manifest.d.ts.map +1 -1
- package/dist/core/skills-manifest.js +350 -39
- package/dist/core/skills-manifest.js.map +1 -1
- package/dist/core/wiki/git-precompile.d.ts +9 -0
- package/dist/core/wiki/git-precompile.d.ts.map +1 -1
- package/dist/core/wiki/git-precompile.js +7 -1
- package/dist/core/wiki/git-precompile.js.map +1 -1
- package/dist/core/workdir.d.ts +30 -1
- package/dist/core/workdir.d.ts.map +1 -1
- package/dist/core/workdir.js +140 -15
- package/dist/core/workdir.js.map +1 -1
- package/dist/db/entities-store.d.ts +5 -5
- package/dist/db/entities-store.js +5 -5
- package/dist/db/hourly-check-signals.d.ts.map +1 -1
- package/dist/db/hourly-check-signals.js +121 -35
- package/dist/db/hourly-check-signals.js.map +1 -1
- package/dist/db/observations.d.ts +1 -1
- package/dist/db/observations.js +1 -1
- package/dist/db/observations.js.map +1 -1
- package/dist/db/recurring-schedules.d.ts +32 -1
- package/dist/db/recurring-schedules.d.ts.map +1 -1
- package/dist/db/recurring-schedules.js +29 -10
- package/dist/db/recurring-schedules.js.map +1 -1
- package/dist/db/repositories-store.d.ts +2 -1
- package/dist/db/repositories-store.d.ts.map +1 -1
- package/dist/db/repositories-store.js +38 -3
- package/dist/db/repositories-store.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +157 -51
- package/dist/db/schema.js.map +1 -1
- package/dist/db/wiki-store.d.ts.map +1 -1
- package/dist/db/wiki-store.js +3 -0
- package/dist/db/wiki-store.js.map +1 -1
- package/dist/index.js +308 -1473
- package/dist/index.js.map +1 -1
- package/dist/messaging/magic-phrase.d.ts +16 -0
- package/dist/messaging/magic-phrase.d.ts.map +1 -1
- package/dist/messaging/magic-phrase.js +53 -0
- package/dist/messaging/magic-phrase.js.map +1 -1
- package/dist/messaging/owner-channels.d.ts +24 -0
- package/dist/messaging/owner-channels.d.ts.map +1 -1
- package/dist/messaging/owner-channels.js +38 -0
- package/dist/messaging/owner-channels.js.map +1 -1
- package/dist/messaging/setup-welcome-dm.d.ts +30 -0
- package/dist/messaging/setup-welcome-dm.d.ts.map +1 -0
- package/dist/messaging/setup-welcome-dm.js +86 -0
- package/dist/messaging/setup-welcome-dm.js.map +1 -0
- package/dist/observers/calendar-poller.d.ts +2 -0
- package/dist/observers/calendar-poller.d.ts.map +1 -1
- package/dist/observers/calendar-poller.js +76 -54
- package/dist/observers/calendar-poller.js.map +1 -1
- package/dist/observers/delegated-sync-worker.d.ts +62 -0
- package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
- package/dist/observers/delegated-sync-worker.js +128 -1
- package/dist/observers/delegated-sync-worker.js.map +1 -1
- package/dist/observers/git-watcher.d.ts +22 -0
- package/dist/observers/git-watcher.d.ts.map +1 -1
- package/dist/observers/git-watcher.js +31 -7
- package/dist/observers/git-watcher.js.map +1 -1
- package/dist/observers/imminent-event-scheduler.d.ts +2 -0
- package/dist/observers/imminent-event-scheduler.d.ts.map +1 -1
- package/dist/observers/imminent-event-scheduler.js +29 -0
- package/dist/observers/imminent-event-scheduler.js.map +1 -1
- package/dist/observers/notion-poller.d.ts +2 -0
- package/dist/observers/notion-poller.d.ts.map +1 -1
- package/dist/observers/notion-poller.js +44 -6
- package/dist/observers/notion-poller.js.map +1 -1
- package/dist/observers/poll-guard.d.ts +63 -0
- package/dist/observers/poll-guard.d.ts.map +1 -0
- package/dist/observers/poll-guard.js +89 -0
- package/dist/observers/poll-guard.js.map +1 -0
- package/dist/safety/absolute-block-audit.d.ts +17 -0
- package/dist/safety/absolute-block-audit.d.ts.map +1 -1
- package/dist/safety/absolute-block-audit.js +28 -2
- package/dist/safety/absolute-block-audit.js.map +1 -1
- package/dist/safety/agent-write-tracker.d.ts +42 -1
- package/dist/safety/agent-write-tracker.d.ts.map +1 -1
- package/dist/safety/agent-write-tracker.js +81 -1
- package/dist/safety/agent-write-tracker.js.map +1 -1
- package/dist/safety/always-disallowed.d.ts +34 -0
- package/dist/safety/always-disallowed.d.ts.map +1 -1
- package/dist/safety/always-disallowed.js +114 -7
- package/dist/safety/always-disallowed.js.map +1 -1
- package/dist/safety/audit.d.ts +20 -0
- package/dist/safety/audit.d.ts.map +1 -1
- package/dist/safety/audit.js +126 -0
- package/dist/safety/audit.js.map +1 -1
- package/dist/safety/risk-classifier.d.ts +17 -1
- package/dist/safety/risk-classifier.d.ts.map +1 -1
- package/dist/safety/risk-classifier.js +75 -7
- package/dist/safety/risk-classifier.js.map +1 -1
- package/dist/safety/subprocess-block-scanner.d.ts +89 -0
- package/dist/safety/subprocess-block-scanner.d.ts.map +1 -0
- package/dist/safety/subprocess-block-scanner.js +177 -0
- package/dist/safety/subprocess-block-scanner.js.map +1 -0
- package/dist/scheduler/hourly-check-gate.d.ts +23 -9
- package/dist/scheduler/hourly-check-gate.d.ts.map +1 -1
- package/dist/scheduler/hourly-check-gate.js +11 -6
- package/dist/scheduler/hourly-check-gate.js.map +1 -1
- package/dist/secrets/backend-api-key-env.d.ts.map +1 -1
- package/dist/secrets/backend-api-key-env.js +1 -0
- package/dist/secrets/backend-api-key-env.js.map +1 -1
- package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
- package/dist/services/delegated-backend-invoker.js +8 -1
- package/dist/services/delegated-backend-invoker.js.map +1 -1
- package/dist/services/delegated-invoker-audit.d.ts.map +1 -1
- package/dist/services/delegated-invoker-audit.js +5 -1
- package/dist/services/delegated-invoker-audit.js.map +1 -1
- package/dist/services/delegated-proxy-config.d.ts +3 -2
- package/dist/services/delegated-proxy-config.d.ts.map +1 -1
- package/dist/services/delegated-proxy-config.js.map +1 -1
- package/dist/services/integrations/extract-write-item-id.d.ts +5 -2
- package/dist/services/integrations/extract-write-item-id.d.ts.map +1 -1
- package/dist/services/integrations/extract-write-item-id.js.map +1 -1
- package/dist/services/mcp/generators/index.d.ts +1 -0
- package/dist/services/mcp/generators/index.d.ts.map +1 -1
- package/dist/services/mcp/generators/index.js +3 -0
- package/dist/services/mcp/generators/index.js.map +1 -1
- package/dist/services/mcp/sdk-observations-server.d.ts +60 -0
- package/dist/services/mcp/sdk-observations-server.d.ts.map +1 -0
- package/dist/services/mcp/sdk-observations-server.js +161 -0
- package/dist/services/mcp/sdk-observations-server.js.map +1 -0
- package/dist/services/mcp/session-materializer.d.ts.map +1 -1
- package/dist/services/mcp/session-materializer.js +13 -9
- package/dist/services/mcp/session-materializer.js.map +1 -1
- package/dist/services/mcp/types.d.ts +1 -0
- package/dist/services/mcp/types.d.ts.map +1 -1
- package/dist/services/notion.d.ts +19 -1
- package/dist/services/notion.d.ts.map +1 -1
- package/dist/services/notion.js +41 -2
- package/dist/services/notion.js.map +1 -1
- package/dist/services/observations-batch.d.ts +100 -0
- package/dist/services/observations-batch.d.ts.map +1 -0
- package/dist/services/observations-batch.js +258 -0
- package/dist/services/observations-batch.js.map +1 -0
- package/dist/services/voice/transcriber.d.ts +23 -0
- package/dist/services/voice/transcriber.d.ts.map +1 -1
- package/dist/services/voice/transcriber.js +55 -0
- package/dist/services/voice/transcriber.js.map +1 -1
- package/dist/settings/runtime-settings.d.ts +9 -6
- package/dist/settings/runtime-settings.d.ts.map +1 -1
- package/dist/settings/runtime-settings.js +50 -17
- package/dist/settings/runtime-settings.js.map +1 -1
- package/package.json +3 -2
- 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/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/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/api/routes/mail.js
CHANGED
|
@@ -16,7 +16,24 @@ import { searchMail } from "../../services/mail/mail-search.js";
|
|
|
16
16
|
import { extractMailHtmlBody, renderExtractedMailHtmlBody, } from "../../services/mail/html-to-plaintext.js";
|
|
17
17
|
import { INTEGRATION_DESCRIPTORS, } from "@aitne/shared";
|
|
18
18
|
import { readIntegrations } from "../../db/integrations-store.js";
|
|
19
|
+
import { composeIssue, respondWithAgentError } from "../helpers/agent-errors.js";
|
|
19
20
|
const logger = createLogger("mail-api");
|
|
21
|
+
/**
|
|
22
|
+
* Build the agent-consumable 501 response for an operation the resolved
|
|
23
|
+
* provider doesn't implement (e.g. IMAP can't manage drafts). The legacy
|
|
24
|
+
* shape `{ error: "not_implemented", message: "<op> not supported on <kind>" }`
|
|
25
|
+
* is preserved via legacyFields so existing tests keep matching.
|
|
26
|
+
*/
|
|
27
|
+
function notImplementedResponse(c, operation, providerKind) {
|
|
28
|
+
const message = `${operation} not supported on ${providerKind}`;
|
|
29
|
+
return respondWithAgentError(c, 501, [
|
|
30
|
+
composeIssue("mail.not_implemented", {
|
|
31
|
+
field: `provider.${operation}`,
|
|
32
|
+
received: providerKind,
|
|
33
|
+
hint: `${message}. Try a Gmail or Outlook account, or use a different operation.`,
|
|
34
|
+
}),
|
|
35
|
+
], { legacyFields: { message } });
|
|
36
|
+
}
|
|
20
37
|
const ALL_KINDS = [
|
|
21
38
|
"gmail",
|
|
22
39
|
"outlook",
|
|
@@ -158,14 +175,25 @@ export function createMailRoutes(deps) {
|
|
|
158
175
|
return parsedBody.response;
|
|
159
176
|
const candidate = parsedBody.body?.enabledKinds;
|
|
160
177
|
if (!Array.isArray(candidate)) {
|
|
161
|
-
return c
|
|
178
|
+
return respondWithAgentError(c, 400, [
|
|
179
|
+
composeIssue("mail.invalid_body", {
|
|
180
|
+
field: "enabledKinds",
|
|
181
|
+
received: candidate === undefined ? "<missing>" : typeof candidate,
|
|
182
|
+
hint: "enabledKinds must be an array of provider kinds (e.g. ['gmail','outlook','imap']). Empty array disables all.",
|
|
183
|
+
}),
|
|
184
|
+
], { legacyFields: { message: "enabledKinds must be an array" } });
|
|
162
185
|
}
|
|
163
186
|
const settingsStore = getSettingsStore();
|
|
164
187
|
const result = await applyConfigUpdates(deps.config, settingsStore, {
|
|
165
188
|
enabledMailProviders: candidate,
|
|
166
189
|
});
|
|
167
190
|
if (Object.keys(result.errors).length > 0) {
|
|
168
|
-
return c
|
|
191
|
+
return respondWithAgentError(c, 400, [
|
|
192
|
+
composeIssue("mail.validation_failed", {
|
|
193
|
+
field: "enabledKinds",
|
|
194
|
+
received: candidate,
|
|
195
|
+
}),
|
|
196
|
+
], { legacyFields: { errors: result.errors } });
|
|
169
197
|
}
|
|
170
198
|
const newKinds = deps.config.enabledMailProviders;
|
|
171
199
|
const registry = deps.services.mail;
|
|
@@ -209,10 +237,22 @@ export function createMailRoutes(deps) {
|
|
|
209
237
|
// Headless environments (SSH, WSL) should use /mail/accounts/device-code.
|
|
210
238
|
app.post("/mail/accounts", async (c) => {
|
|
211
239
|
const registry = deps.services.mail;
|
|
212
|
-
if (!registry)
|
|
213
|
-
return c
|
|
214
|
-
|
|
215
|
-
|
|
240
|
+
if (!registry) {
|
|
241
|
+
return respondWithAgentError(c, 503, [
|
|
242
|
+
composeIssue("mail.not_configured", {
|
|
243
|
+
field: "services.mail",
|
|
244
|
+
received: "<unavailable>",
|
|
245
|
+
}),
|
|
246
|
+
]);
|
|
247
|
+
}
|
|
248
|
+
if (!deps.blobStore) {
|
|
249
|
+
return respondWithAgentError(c, 503, [
|
|
250
|
+
composeIssue("mail.blob_store_unavailable", {
|
|
251
|
+
field: "deps.blobStore",
|
|
252
|
+
received: "<unavailable>",
|
|
253
|
+
}),
|
|
254
|
+
]);
|
|
255
|
+
}
|
|
216
256
|
const parsedBody = await readJsonBody(c);
|
|
217
257
|
if (!parsedBody.ok)
|
|
218
258
|
return parsedBody.response;
|
|
@@ -223,26 +263,42 @@ export function createMailRoutes(deps) {
|
|
|
223
263
|
// /config/google-auth. Additional Gmail accounts still need a
|
|
224
264
|
// per-account Google OAuth credential store and are intentionally
|
|
225
265
|
// not wired up yet.
|
|
226
|
-
return c
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
266
|
+
return respondWithAgentError(c, 501, [
|
|
267
|
+
composeIssue("mail.not_implemented", {
|
|
268
|
+
field: "kind",
|
|
269
|
+
received: "gmail",
|
|
270
|
+
hint: "Additional Gmail accounts are not implemented yet. The primary Gmail identity is configured through /config/google-auth and is exposed on the unified /mail/* surface automatically.",
|
|
271
|
+
}),
|
|
272
|
+
], {
|
|
273
|
+
legacyFields: {
|
|
274
|
+
message: "Additional Gmail accounts are not implemented yet. The primary Gmail identity is configured through /config/google-auth and is exposed on the unified /mail/* surface automatically.",
|
|
275
|
+
},
|
|
276
|
+
});
|
|
230
277
|
}
|
|
231
278
|
if (body?.kind !== "outlook") {
|
|
232
|
-
return c
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
279
|
+
return respondWithAgentError(c, 400, [
|
|
280
|
+
composeIssue("mail.unsupported_kind", {
|
|
281
|
+
field: "kind",
|
|
282
|
+
received: body?.kind ?? "<missing>",
|
|
283
|
+
hint: "Only outlook is supported on this endpoint. Yahoo/iCloud use POST /config/mail/app-password. The primary Gmail account uses /config/google-auth; extra Gmail accounts are not implemented.",
|
|
284
|
+
}),
|
|
285
|
+
], {
|
|
286
|
+
legacyFields: {
|
|
287
|
+
message: "Only outlook is supported on this endpoint. Yahoo/iCloud use POST /config/mail/app-password. The primary Gmail account uses /config/google-auth; extra Gmail accounts are not implemented.",
|
|
288
|
+
},
|
|
289
|
+
});
|
|
236
290
|
}
|
|
237
291
|
// §UI v2 auth-then-enable: registration is allowed regardless of
|
|
238
292
|
// enabledMailProviders. The provider becomes live only when the user
|
|
239
293
|
// toggles "Enable" on the dashboard mail card.
|
|
240
294
|
const clientConfig = await loadOutlookClientConfig(deps.blobStore);
|
|
241
295
|
if (!clientConfig) {
|
|
242
|
-
return c
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
296
|
+
return respondWithAgentError(c, 412, [
|
|
297
|
+
composeIssue("mail.outlook_client_config_missing", {
|
|
298
|
+
field: "outlookClientConfig",
|
|
299
|
+
received: "<unset>",
|
|
300
|
+
}),
|
|
301
|
+
], { legacyFields: { message: "PUT /api/config/mail/outlook/client-config first." } });
|
|
246
302
|
}
|
|
247
303
|
let oauthResult;
|
|
248
304
|
try {
|
|
@@ -250,7 +306,12 @@ export function createMailRoutes(deps) {
|
|
|
250
306
|
}
|
|
251
307
|
catch (err) {
|
|
252
308
|
if (err instanceof OAuthLoopbackTimeoutError) {
|
|
253
|
-
return c
|
|
309
|
+
return respondWithAgentError(c, 408, [
|
|
310
|
+
composeIssue("mail.oauth_timeout", {
|
|
311
|
+
field: "outlook.oauth",
|
|
312
|
+
received: err.message,
|
|
313
|
+
}),
|
|
314
|
+
], { legacyFields: { message: err.message } });
|
|
254
315
|
}
|
|
255
316
|
if (err instanceof OAuthLoopbackError) {
|
|
256
317
|
return c.json({ error: err.code, message: err.message }, 400);
|
|
@@ -286,23 +347,46 @@ export function createMailRoutes(deps) {
|
|
|
286
347
|
// in their browser, so this endpoint may remain open for several minutes.
|
|
287
348
|
app.post("/mail/accounts/device-code", async (c) => {
|
|
288
349
|
const registry = deps.services.mail;
|
|
289
|
-
if (!registry)
|
|
290
|
-
return c
|
|
291
|
-
|
|
292
|
-
|
|
350
|
+
if (!registry) {
|
|
351
|
+
return respondWithAgentError(c, 503, [
|
|
352
|
+
composeIssue("mail.not_configured", {
|
|
353
|
+
field: "services.mail",
|
|
354
|
+
received: "<unavailable>",
|
|
355
|
+
}),
|
|
356
|
+
]);
|
|
357
|
+
}
|
|
358
|
+
if (!deps.blobStore) {
|
|
359
|
+
return respondWithAgentError(c, 503, [
|
|
360
|
+
composeIssue("mail.blob_store_unavailable", {
|
|
361
|
+
field: "deps.blobStore",
|
|
362
|
+
received: "<unavailable>",
|
|
363
|
+
}),
|
|
364
|
+
]);
|
|
365
|
+
}
|
|
293
366
|
const parsedBody = await readJsonBody(c);
|
|
294
367
|
if (!parsedBody.ok)
|
|
295
368
|
return parsedBody.response;
|
|
296
369
|
const body = parsedBody.body;
|
|
297
370
|
if (body?.kind !== "outlook") {
|
|
298
|
-
return c
|
|
371
|
+
return respondWithAgentError(c, 400, [
|
|
372
|
+
composeIssue("mail.unsupported_kind", {
|
|
373
|
+
field: "kind",
|
|
374
|
+
received: body?.kind ?? "<missing>",
|
|
375
|
+
hint: "Device-code flow is Outlook-only on this endpoint. Use POST /mail/accounts for other providers.",
|
|
376
|
+
}),
|
|
377
|
+
]);
|
|
299
378
|
}
|
|
300
379
|
// §UI v2 auth-then-enable: registration allowed regardless of
|
|
301
380
|
// enabledMailProviders. The Enable toggle on the dashboard mail card
|
|
302
381
|
// governs whether the agent observes this account.
|
|
303
382
|
const clientConfig = await loadOutlookClientConfig(deps.blobStore);
|
|
304
383
|
if (!clientConfig) {
|
|
305
|
-
return c
|
|
384
|
+
return respondWithAgentError(c, 412, [
|
|
385
|
+
composeIssue("mail.outlook_client_config_missing", {
|
|
386
|
+
field: "outlookClientConfig",
|
|
387
|
+
received: "<unset>",
|
|
388
|
+
}),
|
|
389
|
+
], { legacyFields: { message: "PUT /api/config/mail/outlook/client-config first." } });
|
|
306
390
|
}
|
|
307
391
|
const label = typeof body?.label === "string" ? body.label : undefined;
|
|
308
392
|
return streamSSE(c, async (stream) => {
|
|
@@ -357,8 +441,14 @@ export function createMailRoutes(deps) {
|
|
|
357
441
|
// provider enabled.
|
|
358
442
|
app.patch("/mail/accounts/:accountId", async (c) => {
|
|
359
443
|
const registry = deps.services.mail;
|
|
360
|
-
if (!registry)
|
|
361
|
-
return c
|
|
444
|
+
if (!registry) {
|
|
445
|
+
return respondWithAgentError(c, 503, [
|
|
446
|
+
composeIssue("mail.not_configured", {
|
|
447
|
+
field: "services.mail",
|
|
448
|
+
received: "<unavailable>",
|
|
449
|
+
}),
|
|
450
|
+
]);
|
|
451
|
+
}
|
|
362
452
|
const accountId = c.req.param("accountId");
|
|
363
453
|
const parsedBody = await readJsonBody(c);
|
|
364
454
|
if (!parsedBody.ok)
|
|
@@ -368,19 +458,35 @@ export function createMailRoutes(deps) {
|
|
|
368
458
|
return c.json({ error: "invalid_body", message: "active: boolean required" }, 400);
|
|
369
459
|
}
|
|
370
460
|
const updated = await registry.setActive(accountId, active);
|
|
371
|
-
if (!updated)
|
|
372
|
-
return c
|
|
461
|
+
if (!updated) {
|
|
462
|
+
return respondWithAgentError(c, 404, [
|
|
463
|
+
composeIssue("mail.account_not_found", {
|
|
464
|
+
field: "accountId",
|
|
465
|
+
received: c.req.param("id") ?? "<unknown>",
|
|
466
|
+
}),
|
|
467
|
+
]);
|
|
468
|
+
}
|
|
373
469
|
return c.json({ status: "updated", account: updated });
|
|
374
470
|
});
|
|
375
471
|
app.delete("/mail/accounts/:accountId", async (c) => {
|
|
376
472
|
const registry = deps.services.mail;
|
|
377
473
|
if (!registry) {
|
|
378
|
-
return c
|
|
474
|
+
return respondWithAgentError(c, 503, [
|
|
475
|
+
composeIssue("mail.not_configured", {
|
|
476
|
+
field: "services.mail",
|
|
477
|
+
received: "<unavailable>",
|
|
478
|
+
}),
|
|
479
|
+
]);
|
|
379
480
|
}
|
|
380
481
|
const accountId = c.req.param("accountId");
|
|
381
482
|
const removed = await registry.removeAccount(accountId);
|
|
382
483
|
if (!removed) {
|
|
383
|
-
return c
|
|
484
|
+
return respondWithAgentError(c, 404, [
|
|
485
|
+
composeIssue("mail.account_not_found", {
|
|
486
|
+
field: "accountId",
|
|
487
|
+
received: accountId,
|
|
488
|
+
}),
|
|
489
|
+
]);
|
|
384
490
|
}
|
|
385
491
|
return c.json({ status: "removed", accountId });
|
|
386
492
|
});
|
|
@@ -389,8 +495,14 @@ export function createMailRoutes(deps) {
|
|
|
389
495
|
// Stored separately from per-account token cache.
|
|
390
496
|
// ──────────────────────────────────────────────────────────────────────────
|
|
391
497
|
app.get("/config/mail/outlook/client-config", async (c) => {
|
|
392
|
-
if (!deps.blobStore)
|
|
393
|
-
return c
|
|
498
|
+
if (!deps.blobStore) {
|
|
499
|
+
return respondWithAgentError(c, 503, [
|
|
500
|
+
composeIssue("mail.blob_store_unavailable", {
|
|
501
|
+
field: "deps.blobStore",
|
|
502
|
+
received: "<unavailable>",
|
|
503
|
+
}),
|
|
504
|
+
]);
|
|
505
|
+
}
|
|
394
506
|
const config = await loadOutlookClientConfig(deps.blobStore);
|
|
395
507
|
if (!config)
|
|
396
508
|
return c.json({ configured: false }, 200);
|
|
@@ -399,8 +511,14 @@ export function createMailRoutes(deps) {
|
|
|
399
511
|
return c.json({ configured: true, clientId: config.clientId, tenant: config.tenant });
|
|
400
512
|
});
|
|
401
513
|
app.put("/config/mail/outlook/client-config", async (c) => {
|
|
402
|
-
if (!deps.blobStore)
|
|
403
|
-
return c
|
|
514
|
+
if (!deps.blobStore) {
|
|
515
|
+
return respondWithAgentError(c, 503, [
|
|
516
|
+
composeIssue("mail.blob_store_unavailable", {
|
|
517
|
+
field: "deps.blobStore",
|
|
518
|
+
received: "<unavailable>",
|
|
519
|
+
}),
|
|
520
|
+
]);
|
|
521
|
+
}
|
|
404
522
|
const parsedBody = await readJsonBody(c);
|
|
405
523
|
if (!parsedBody.ok)
|
|
406
524
|
return parsedBody.response;
|
|
@@ -408,7 +526,13 @@ export function createMailRoutes(deps) {
|
|
|
408
526
|
const clientId = candidate?.clientId;
|
|
409
527
|
const tenant = candidate?.tenant;
|
|
410
528
|
if (typeof clientId !== "string" || clientId.length === 0) {
|
|
411
|
-
return c
|
|
529
|
+
return respondWithAgentError(c, 400, [
|
|
530
|
+
composeIssue("mail.invalid_body", {
|
|
531
|
+
field: "clientId",
|
|
532
|
+
received: clientId === undefined ? "<missing>" : typeof clientId,
|
|
533
|
+
hint: "Outlook client config requires `clientId` (the Azure AD app's id). Optionally `tenant` (defaults to 'common').",
|
|
534
|
+
}),
|
|
535
|
+
], { legacyFields: { message: "clientId required" } });
|
|
412
536
|
}
|
|
413
537
|
const resolved = {
|
|
414
538
|
clientId,
|
|
@@ -418,8 +542,14 @@ export function createMailRoutes(deps) {
|
|
|
418
542
|
return c.json({ status: "saved", clientId: resolved.clientId, tenant: resolved.tenant });
|
|
419
543
|
});
|
|
420
544
|
app.delete("/config/mail/outlook/client-config", async (c) => {
|
|
421
|
-
if (!deps.blobStore)
|
|
422
|
-
return c
|
|
545
|
+
if (!deps.blobStore) {
|
|
546
|
+
return respondWithAgentError(c, 503, [
|
|
547
|
+
composeIssue("mail.blob_store_unavailable", {
|
|
548
|
+
field: "deps.blobStore",
|
|
549
|
+
received: "<unavailable>",
|
|
550
|
+
}),
|
|
551
|
+
]);
|
|
552
|
+
}
|
|
423
553
|
await deps.blobStore.remove(OUTLOOK_CLIENT_CONFIG_BLOB);
|
|
424
554
|
return c.json({ status: "removed" });
|
|
425
555
|
});
|
|
@@ -429,8 +559,14 @@ export function createMailRoutes(deps) {
|
|
|
429
559
|
// http.Server inside runLoopbackOAuth.
|
|
430
560
|
app.post("/config/mail/app-password", async (c) => {
|
|
431
561
|
const registry = deps.services.mail;
|
|
432
|
-
if (!registry)
|
|
433
|
-
return c
|
|
562
|
+
if (!registry) {
|
|
563
|
+
return respondWithAgentError(c, 503, [
|
|
564
|
+
composeIssue("mail.not_configured", {
|
|
565
|
+
field: "services.mail",
|
|
566
|
+
received: "<unavailable>",
|
|
567
|
+
}),
|
|
568
|
+
]);
|
|
569
|
+
}
|
|
434
570
|
const parsedBody = await readJsonBody(c);
|
|
435
571
|
if (!parsedBody.ok)
|
|
436
572
|
return parsedBody.response;
|
|
@@ -509,17 +645,32 @@ export function createMailRoutes(deps) {
|
|
|
509
645
|
// then resets `auth_status` to `healthy`.
|
|
510
646
|
app.post("/config/mail/app-password/:accountId/refresh", async (c) => {
|
|
511
647
|
const registry = deps.services.mail;
|
|
512
|
-
if (!registry)
|
|
513
|
-
return c
|
|
648
|
+
if (!registry) {
|
|
649
|
+
return respondWithAgentError(c, 503, [
|
|
650
|
+
composeIssue("mail.not_configured", {
|
|
651
|
+
field: "services.mail",
|
|
652
|
+
received: "<unavailable>",
|
|
653
|
+
}),
|
|
654
|
+
]);
|
|
655
|
+
}
|
|
514
656
|
const accountId = c.req.param("accountId");
|
|
515
657
|
const account = registry.getAccount(accountId);
|
|
516
|
-
if (!account)
|
|
517
|
-
return c
|
|
658
|
+
if (!account) {
|
|
659
|
+
return respondWithAgentError(c, 404, [
|
|
660
|
+
composeIssue("mail.account_not_found", {
|
|
661
|
+
field: "accountId",
|
|
662
|
+
received: accountId,
|
|
663
|
+
}),
|
|
664
|
+
]);
|
|
665
|
+
}
|
|
518
666
|
if (account.kind !== "yahoo" && account.kind !== "icloud") {
|
|
519
|
-
return c
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
667
|
+
return respondWithAgentError(c, 400, [
|
|
668
|
+
composeIssue("mail.unsupported_kind", {
|
|
669
|
+
field: "account.kind",
|
|
670
|
+
received: account.kind,
|
|
671
|
+
hint: "App-password refresh only supports yahoo / icloud. Outlook re-authenticates via the OAuth loopback flow.",
|
|
672
|
+
}),
|
|
673
|
+
], { legacyFields: { message: "App-password refresh only supports yahoo / icloud. Outlook re-authenticates via the OAuth loopback flow." } });
|
|
523
674
|
}
|
|
524
675
|
const parsedBody = await readJsonBody(c);
|
|
525
676
|
if (!parsedBody.ok)
|
|
@@ -557,8 +708,14 @@ export function createMailRoutes(deps) {
|
|
|
557
708
|
}
|
|
558
709
|
try {
|
|
559
710
|
const updated = await registry.refreshImapSecret(accountId, serializeImapAccountSecret(secret), capabilities ?? undefined);
|
|
560
|
-
if (!updated)
|
|
561
|
-
return c
|
|
711
|
+
if (!updated) {
|
|
712
|
+
return respondWithAgentError(c, 404, [
|
|
713
|
+
composeIssue("mail.account_not_found", {
|
|
714
|
+
field: "accountId",
|
|
715
|
+
received: c.req.param("id") ?? "<unknown>",
|
|
716
|
+
}),
|
|
717
|
+
]);
|
|
718
|
+
}
|
|
562
719
|
return c.json({ status: "refreshed", account: updated });
|
|
563
720
|
}
|
|
564
721
|
catch (err) {
|
|
@@ -817,8 +974,14 @@ export function createMailRoutes(deps) {
|
|
|
817
974
|
};
|
|
818
975
|
app.get("/mail/:accountId/health", (c) => {
|
|
819
976
|
const registry = deps.services.mail;
|
|
820
|
-
if (!registry)
|
|
821
|
-
return c
|
|
977
|
+
if (!registry) {
|
|
978
|
+
return respondWithAgentError(c, 503, [
|
|
979
|
+
composeIssue("mail.not_configured", {
|
|
980
|
+
field: "services.mail",
|
|
981
|
+
received: "<unavailable>",
|
|
982
|
+
}),
|
|
983
|
+
]);
|
|
984
|
+
}
|
|
822
985
|
const accountId = c.req.param("accountId");
|
|
823
986
|
// §4.8 per-account mode gate — also applies to /health so the
|
|
824
987
|
// dashboard does not surface a stale poll cursor for an account
|
|
@@ -839,8 +1002,14 @@ export function createMailRoutes(deps) {
|
|
|
839
1002
|
}
|
|
840
1003
|
}
|
|
841
1004
|
const health = registry.getHealth(accountId);
|
|
842
|
-
if (!health)
|
|
843
|
-
return c
|
|
1005
|
+
if (!health) {
|
|
1006
|
+
return respondWithAgentError(c, 404, [
|
|
1007
|
+
composeIssue("mail.account_not_found", {
|
|
1008
|
+
field: "accountId",
|
|
1009
|
+
received: accountId,
|
|
1010
|
+
}),
|
|
1011
|
+
]);
|
|
1012
|
+
}
|
|
844
1013
|
return c.json(health);
|
|
845
1014
|
});
|
|
846
1015
|
app.get("/mail/:accountId/messages", async (c) => {
|
|
@@ -991,7 +1160,7 @@ export function createMailRoutes(deps) {
|
|
|
991
1160
|
if (!resolved.ok)
|
|
992
1161
|
return renderResolveError(c, resolved);
|
|
993
1162
|
if (!ensureMethod(resolved.provider, "untrash")) {
|
|
994
|
-
return c
|
|
1163
|
+
return notImplementedResponse(c, "untrash", resolved.provider.kind);
|
|
995
1164
|
}
|
|
996
1165
|
try {
|
|
997
1166
|
await resolved.provider.untrash(messageId);
|
|
@@ -1009,7 +1178,7 @@ export function createMailRoutes(deps) {
|
|
|
1009
1178
|
if (!resolved.ok)
|
|
1010
1179
|
return renderResolveError(c, resolved);
|
|
1011
1180
|
if (!ensureMethod(resolved.provider, "archive")) {
|
|
1012
|
-
return c
|
|
1181
|
+
return notImplementedResponse(c, "archive", resolved.provider.kind);
|
|
1013
1182
|
}
|
|
1014
1183
|
try {
|
|
1015
1184
|
await resolved.provider.archive(messageId);
|
|
@@ -1080,7 +1249,7 @@ export function createMailRoutes(deps) {
|
|
|
1080
1249
|
if (!resolved.ok)
|
|
1081
1250
|
return renderResolveError(c, resolved);
|
|
1082
1251
|
if (!ensureMethod(resolved.provider, "getThread")) {
|
|
1083
|
-
return c
|
|
1252
|
+
return notImplementedResponse(c, "getThread", resolved.provider.kind);
|
|
1084
1253
|
}
|
|
1085
1254
|
const bodyMode = parseBodyMode(c.req.query("body"));
|
|
1086
1255
|
if (!bodyMode.ok)
|
|
@@ -1100,7 +1269,7 @@ export function createMailRoutes(deps) {
|
|
|
1100
1269
|
if (!resolved.ok)
|
|
1101
1270
|
return renderResolveError(c, resolved);
|
|
1102
1271
|
if (!ensureMethod(resolved.provider, "listDrafts")) {
|
|
1103
|
-
return c
|
|
1272
|
+
return notImplementedResponse(c, "listDrafts", resolved.provider.kind);
|
|
1104
1273
|
}
|
|
1105
1274
|
const limit = parseIntParam(c.req.query("limit"), 20, { min: 1, max: 100 });
|
|
1106
1275
|
try {
|
|
@@ -1116,7 +1285,7 @@ export function createMailRoutes(deps) {
|
|
|
1116
1285
|
if (!resolved.ok)
|
|
1117
1286
|
return renderResolveError(c, resolved);
|
|
1118
1287
|
if (!ensureMethod(resolved.provider, "getDraft")) {
|
|
1119
|
-
return c
|
|
1288
|
+
return notImplementedResponse(c, "getDraft", resolved.provider.kind);
|
|
1120
1289
|
}
|
|
1121
1290
|
try {
|
|
1122
1291
|
const draft = await resolved.provider.getDraft(c.req.param("draftId"));
|
|
@@ -1137,7 +1306,7 @@ export function createMailRoutes(deps) {
|
|
|
1137
1306
|
if (!resolved.ok)
|
|
1138
1307
|
return renderResolveError(c, resolved);
|
|
1139
1308
|
if (!ensureMethod(resolved.provider, "createDraft")) {
|
|
1140
|
-
return c
|
|
1309
|
+
return notImplementedResponse(c, "createDraft", resolved.provider.kind);
|
|
1141
1310
|
}
|
|
1142
1311
|
const input = validateSendInput(parsedBody.body);
|
|
1143
1312
|
if (!input.ok)
|
|
@@ -1158,7 +1327,7 @@ export function createMailRoutes(deps) {
|
|
|
1158
1327
|
if (!resolved.ok)
|
|
1159
1328
|
return renderResolveError(c, resolved);
|
|
1160
1329
|
if (!ensureMethod(resolved.provider, "updateDraft")) {
|
|
1161
|
-
return c
|
|
1330
|
+
return notImplementedResponse(c, "updateDraft", resolved.provider.kind);
|
|
1162
1331
|
}
|
|
1163
1332
|
const parsedBody = await readJsonBody(c);
|
|
1164
1333
|
if (!parsedBody.ok)
|
|
@@ -1192,7 +1361,7 @@ export function createMailRoutes(deps) {
|
|
|
1192
1361
|
if (!resolved.ok)
|
|
1193
1362
|
return renderResolveError(c, resolved);
|
|
1194
1363
|
if (!ensureMethod(resolved.provider, "deleteDraft")) {
|
|
1195
|
-
return c
|
|
1364
|
+
return notImplementedResponse(c, "deleteDraft", resolved.provider.kind);
|
|
1196
1365
|
}
|
|
1197
1366
|
try {
|
|
1198
1367
|
await resolved.provider.deleteDraft(draftId);
|
|
@@ -1210,7 +1379,7 @@ export function createMailRoutes(deps) {
|
|
|
1210
1379
|
if (!resolved.ok)
|
|
1211
1380
|
return renderResolveError(c, resolved);
|
|
1212
1381
|
if (!ensureMethod(resolved.provider, "sendDraft")) {
|
|
1213
|
-
return c
|
|
1382
|
+
return notImplementedResponse(c, "sendDraft", resolved.provider.kind);
|
|
1214
1383
|
}
|
|
1215
1384
|
try {
|
|
1216
1385
|
const result = await resolved.provider.sendDraft(draftId);
|
|
@@ -1356,20 +1525,43 @@ function providerError(c, err, tag) {
|
|
|
1356
1525
|
pickNumber(candidate.statusCode) ??
|
|
1357
1526
|
pickNumber(candidate.response?.status);
|
|
1358
1527
|
if (status === 404) {
|
|
1359
|
-
return c
|
|
1528
|
+
return respondWithAgentError(c, 404, [
|
|
1529
|
+
composeIssue("mail.account_not_found", {
|
|
1530
|
+
field: tag,
|
|
1531
|
+
received: message,
|
|
1532
|
+
hint: `Provider returned 404 for ${tag}. The resource (message, thread, label, draft) may have been deleted or the id is wrong. Re-fetch to verify.`,
|
|
1533
|
+
}),
|
|
1534
|
+
], { legacyFields: { message } });
|
|
1360
1535
|
}
|
|
1361
1536
|
if (status === 501) {
|
|
1362
1537
|
// Providers throw MailOperationNotSupportedError (httpStatus=501) when a
|
|
1363
1538
|
// sub-case of an implemented method is out of scope — e.g. IMAP draft
|
|
1364
1539
|
// writes. Map to the same shape as the missing-method-on-interface path
|
|
1365
1540
|
// so callers can't distinguish the two (both mean "don't retry here").
|
|
1366
|
-
return c
|
|
1541
|
+
return respondWithAgentError(c, 501, [
|
|
1542
|
+
composeIssue("mail.not_implemented", {
|
|
1543
|
+
field: tag,
|
|
1544
|
+
received: message,
|
|
1545
|
+
hint: `Provider returned 501 for ${tag} — operation outside the implemented sub-case. Stop retrying; either try a different operation or pick a different provider.`,
|
|
1546
|
+
}),
|
|
1547
|
+
], { legacyFields: { message } });
|
|
1367
1548
|
}
|
|
1368
1549
|
if (status === 401 || status === 403) {
|
|
1369
|
-
return c
|
|
1550
|
+
return respondWithAgentError(c, 502, [
|
|
1551
|
+
composeIssue("mail.provider_auth_error", {
|
|
1552
|
+
field: tag,
|
|
1553
|
+
received: message,
|
|
1554
|
+
}),
|
|
1555
|
+
], { legacyFields: { message } });
|
|
1370
1556
|
}
|
|
1371
1557
|
logger.error({ err, tag }, `mail route failure: ${tag}`);
|
|
1372
|
-
return c
|
|
1558
|
+
return respondWithAgentError(c, 500, [
|
|
1559
|
+
composeIssue("mail.upstream_error", {
|
|
1560
|
+
field: tag,
|
|
1561
|
+
received: message,
|
|
1562
|
+
hint: `Mail provider ${tag} failed. Read the message verbatim. Transient 5xx may resolve after 30s; otherwise notify the user.`,
|
|
1563
|
+
}),
|
|
1564
|
+
], { legacyErrorCode: tag, legacyFields: { message } });
|
|
1373
1565
|
}
|
|
1374
1566
|
function pickNumber(value) {
|
|
1375
1567
|
return typeof value === "number" && Number.isFinite(value) ? value : null;
|