@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
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `POST /api/integrations/:key/invoke` — RESERVED reactivation slot.
|
|
3
|
+
*
|
|
4
|
+
* The handler and the supporting `resolveCanonicalBareTool` helper were
|
|
5
|
+
* commented out 2026-05-01 as part of the /exec-only migration. They are
|
|
6
|
+
* preserved verbatim below for future reactivation. Today this register
|
|
7
|
+
* function is a no-op so the route does not exist; `/exec` (see
|
|
8
|
+
* `./exec.ts`) is the canonical surface.
|
|
9
|
+
*
|
|
10
|
+
* Why this file exists despite registering nothing:
|
|
11
|
+
* - Keeping the reservation block in its own file gives future
|
|
12
|
+
* reactivation a clear, self-contained home — uncomment the block,
|
|
13
|
+
* re-import the helpers it needs (`matchToolPattern`,
|
|
14
|
+
* `mapErrorClassToHttpStatus`, `IntegrationBackendConnector`,
|
|
15
|
+
* `INTEGRATION_DESCRIPTORS`, `readIntegrations`,
|
|
16
|
+
* `markIntegrationWrite`, `extractWriteItemIds`, `composeIssue`,
|
|
17
|
+
* `respondWithAgentError`, `createLogger`, `readJsonBody`), and
|
|
18
|
+
* register the route inside this function.
|
|
19
|
+
* - Co-locating with the rest of the integrations routes keeps the
|
|
20
|
+
* directory inventory complete (every entry in the file inventory
|
|
21
|
+
* section of `docs/design/appendices/api-route-decomposition.md`
|
|
22
|
+
* §5.4 maps to a real file).
|
|
23
|
+
*
|
|
24
|
+
* The internal `DelegatedBackendInvoker.invoke()` API and each core's
|
|
25
|
+
* `runDelegatedTool()` remain wired (used by `delegated-sync-worker`
|
|
26
|
+
* for hourly drift detection — see
|
|
27
|
+
* `packages/daemon/src/observers/delegated-sync-worker.ts:504`).
|
|
28
|
+
*
|
|
29
|
+
* DO NOT DELETE the comment block — possible reactivation scenarios:
|
|
30
|
+
* 1. A low-latency RPC fast path for cost-sensitive callers.
|
|
31
|
+
* 2. A debug/admin endpoint for direct tool dispatch.
|
|
32
|
+
* 3. A per-integration opt-in once full cross-backend alias
|
|
33
|
+
* translation is in place.
|
|
34
|
+
*/
|
|
35
|
+
export function registerInvokeRoutes(_app, _deps) {
|
|
36
|
+
// Intentional no-op. See block comments below for the dormant route
|
|
37
|
+
// body and the dormant `resolveCanonicalBareTool` helper preserved
|
|
38
|
+
// verbatim for future reactivation.
|
|
39
|
+
}
|
|
40
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
41
|
+
// RESERVED — POST /integrations/:key/invoke (RPC-style tool dispatch)
|
|
42
|
+
//
|
|
43
|
+
// Commented out 2026-05-01 as part of the /exec-only migration. The
|
|
44
|
+
// RPC `{tool, args}` shape required the caller to know the delegated
|
|
45
|
+
// backend's exact bare tool name (Claude `search_threads` vs Codex
|
|
46
|
+
// `search_emails` vs Gemini `search`) and arg names (`pageSize` vs
|
|
47
|
+
// `max_results` vs `maxResults`). That coupling broke under:
|
|
48
|
+
// - cross-backend tool-name divergence (the alias-translation gap
|
|
49
|
+
// that caused the 2026-05-01 wrong_tool incidents),
|
|
50
|
+
// - any custom MCP server the user installs (registry-invisible),
|
|
51
|
+
// - backend swaps that should be transparent to the agent.
|
|
52
|
+
//
|
|
53
|
+
// `POST /integrations/:key/exec` (task mode) is the canonical surface
|
|
54
|
+
// now: the agent describes intent in natural language + outputSchema,
|
|
55
|
+
// the daemon's delegate picks the tool. The handler body and the
|
|
56
|
+
// supporting `resolveCanonicalBareTool` helper are preserved verbatim
|
|
57
|
+
// for **future reactivation** — possible reactivation scenarios:
|
|
58
|
+
// 1. A low-latency RPC fast path for cost-sensitive callers.
|
|
59
|
+
// 2. A debug/admin endpoint for direct tool dispatch.
|
|
60
|
+
// 3. A per-integration opt-in once full cross-backend alias
|
|
61
|
+
// translation is in place.
|
|
62
|
+
//
|
|
63
|
+
// DO NOT DELETE. The internal `DelegatedBackendInvoker.invoke()` API
|
|
64
|
+
// and each core's `runDelegatedTool()` remain wired (used by
|
|
65
|
+
// `delegated-sync-worker` for hourly drift detection — see
|
|
66
|
+
// `packages/daemon/src/observers/delegated-sync-worker.ts:504`).
|
|
67
|
+
//
|
|
68
|
+
// Original docstring (preserved for the reactivation-time author):
|
|
69
|
+
// POST /integrations/:key/invoke — DELEGATED-MODE-V2-DESIGN.md §4.2.
|
|
70
|
+
// Generic chokepoint for cross-backend delegated tool calls. The
|
|
71
|
+
// agent's cross-backend skill body
|
|
72
|
+
// (`SKILL.delegated.<sessionBackend>.md`) directs it here for any
|
|
73
|
+
// connector tool on a delegatedBackend that differs from the DM
|
|
74
|
+
// session backend. Body: `{tool, args}` — the daemon does NOT
|
|
75
|
+
// enumerate or validate the tool name (no per-tool routeMap
|
|
76
|
+
// maintenance); it forwards verbatim to `DelegatedBackendInvoker`.
|
|
77
|
+
//
|
|
78
|
+
// Pre-flight order (cheapest first, fail-fast):
|
|
79
|
+
// 1. Integration must be in `delegated` mode (409 mode_mismatch).
|
|
80
|
+
// 2. If `x-session-backend` is set and matches `state.delegatedBackend`,
|
|
81
|
+
// the caller is misusing the endpoint — same-backend agents have
|
|
82
|
+
// native MCP and the skill is not provisioned (§4.1.2). Surface as
|
|
83
|
+
// 409 to make accidental misuse loud rather than spawning a useless
|
|
84
|
+
// subprocess.
|
|
85
|
+
// 3. `state.deniedTools` patterns enforced via `matchToolPattern`. The
|
|
86
|
+
// stored entries are bare names (no `mcp__*` prefix), so we strip the
|
|
87
|
+
// connector's `toolNamespace` from the body's `tool` before matching.
|
|
88
|
+
//
|
|
89
|
+
// Risk tier: Autonomous (no Bearer required). Cost / failure
|
|
90
|
+
// attribution lands in `agent_actions` via the invoker
|
|
91
|
+
// (`action_type='delegated_proxy.invoke'`).
|
|
92
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
93
|
+
/*
|
|
94
|
+
app.post("/integrations/:key/invoke", async (c) => {
|
|
95
|
+
const key = c.req.param("key");
|
|
96
|
+
if (!isIntegrationKey(key)) {
|
|
97
|
+
return respondWithAgentError(c, 404, [
|
|
98
|
+
composeIssue("integrations.unknown_integration", {
|
|
99
|
+
field: "key",
|
|
100
|
+
received: key,
|
|
101
|
+
}),
|
|
102
|
+
], { legacyFields: { key } });
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const parsedBody = await readJsonBody(c);
|
|
106
|
+
if (!parsedBody.ok) return parsedBody.response;
|
|
107
|
+
|
|
108
|
+
const body = parsedBody.body as { tool?: unknown; args?: unknown } | null;
|
|
109
|
+
const toolRaw = body?.tool;
|
|
110
|
+
if (typeof toolRaw !== "string" || toolRaw.length === 0) {
|
|
111
|
+
return c.json(
|
|
112
|
+
{
|
|
113
|
+
error: "validation_error",
|
|
114
|
+
message: "`tool` must be a non-empty string (bare tool name or fully-qualified MCP name)",
|
|
115
|
+
},
|
|
116
|
+
400,
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
// §4.2.1 contract — `args` is `object`. Reject arrays, scalars, and null
|
|
120
|
+
// here so the failure surfaces at the route boundary with a precise 400
|
|
121
|
+
// rather than as a downstream invoker / connector parse error.
|
|
122
|
+
const argsRaw = body?.args;
|
|
123
|
+
if (
|
|
124
|
+
argsRaw !== undefined
|
|
125
|
+
&& (argsRaw === null
|
|
126
|
+
|| typeof argsRaw !== "object"
|
|
127
|
+
|| Array.isArray(argsRaw))
|
|
128
|
+
) {
|
|
129
|
+
return c.json(
|
|
130
|
+
{
|
|
131
|
+
error: "validation_error",
|
|
132
|
+
message: "`args` must be a JSON object (or omitted to send {})",
|
|
133
|
+
},
|
|
134
|
+
400,
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
const args = (argsRaw as Record<string, unknown> | undefined) ?? {};
|
|
138
|
+
|
|
139
|
+
if (!deps.delegatedInvoker) {
|
|
140
|
+
// Boot ordering / test wiring case — invoker not registered. Surface
|
|
141
|
+
// explicitly so the caller knows this isn't a precondition mismatch.
|
|
142
|
+
return c.json(
|
|
143
|
+
{
|
|
144
|
+
error: "unimplemented",
|
|
145
|
+
message: "delegated invoker is not wired into this daemon instance",
|
|
146
|
+
integration: key,
|
|
147
|
+
backend: null,
|
|
148
|
+
mode: "delegated",
|
|
149
|
+
},
|
|
150
|
+
501,
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const state = readIntegrations(db)[key];
|
|
155
|
+
if (!state || state.mode !== "delegated" || !state.delegatedBackend) {
|
|
156
|
+
return c.json(
|
|
157
|
+
{
|
|
158
|
+
error: "mode_mismatch",
|
|
159
|
+
message: `${key} is not in delegated mode (mode=${state?.mode ?? "missing"})`,
|
|
160
|
+
integration: key,
|
|
161
|
+
backend: null,
|
|
162
|
+
mode: "delegated",
|
|
163
|
+
},
|
|
164
|
+
409,
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const sessionBackendHeader = c.req.header("x-session-backend");
|
|
169
|
+
if (
|
|
170
|
+
sessionBackendHeader
|
|
171
|
+
&& sessionBackendHeader === state.delegatedBackend
|
|
172
|
+
) {
|
|
173
|
+
return c.json(
|
|
174
|
+
{
|
|
175
|
+
error: "mode_mismatch",
|
|
176
|
+
message: `session backend matches delegatedBackend (${sessionBackendHeader}) — use native MCP instead`,
|
|
177
|
+
integration: key,
|
|
178
|
+
backend: state.delegatedBackend,
|
|
179
|
+
mode: "delegated",
|
|
180
|
+
},
|
|
181
|
+
409,
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Strip the connector's namespace prefix if the body included it,
|
|
186
|
+
// then translate cross-backend aliases to the delegated connector's
|
|
187
|
+
// canonical tool name. Translation runs BEFORE the deniedTools check
|
|
188
|
+
// because deny entries are stored as backend-canonical names (the
|
|
189
|
+
// skill body trains the user on that form): checking pre-translation
|
|
190
|
+
// silently lets a denied call through if the agent used a sibling
|
|
191
|
+
// backend's alias.
|
|
192
|
+
const connector = INTEGRATION_DESCRIPTORS[key].backendConnectors[state.delegatedBackend];
|
|
193
|
+
const namespace = connector?.toolNamespace ?? "";
|
|
194
|
+
const incomingBareTool = namespace && toolRaw.startsWith(namespace)
|
|
195
|
+
? toolRaw.slice(namespace.length)
|
|
196
|
+
: toolRaw;
|
|
197
|
+
const bareTool = resolveCanonicalBareTool(connector, incomingBareTool);
|
|
198
|
+
if (bareTool !== incomingBareTool) {
|
|
199
|
+
logger.debug(
|
|
200
|
+
{
|
|
201
|
+
integration: key,
|
|
202
|
+
backend: state.delegatedBackend,
|
|
203
|
+
from: incomingBareTool,
|
|
204
|
+
to: bareTool,
|
|
205
|
+
},
|
|
206
|
+
"delegated invoke: translated cross-backend tool alias",
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if ((state.deniedTools ?? []).some((pattern) => matchToolPattern(pattern, bareTool))) {
|
|
211
|
+
return c.json(
|
|
212
|
+
{
|
|
213
|
+
error: "denied_tool",
|
|
214
|
+
message: `tool '${bareTool}' is denied by user settings for integration '${key}'`,
|
|
215
|
+
integration: key,
|
|
216
|
+
backend: state.delegatedBackend,
|
|
217
|
+
mode: "delegated",
|
|
218
|
+
tool: bareTool,
|
|
219
|
+
},
|
|
220
|
+
403,
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// The invoker forwards verbatim — connector validates the tool name and
|
|
225
|
+
// arg shape. We always send the fully-qualified tool string so the
|
|
226
|
+
// subprocess prompt unambiguously points at one tool.
|
|
227
|
+
const fullyQualifiedTool = namespace ? `${namespace}${bareTool}` : bareTool;
|
|
228
|
+
|
|
229
|
+
const result = await deps.delegatedInvoker.invoke({
|
|
230
|
+
integrationKey: key,
|
|
231
|
+
toolName: fullyQualifiedTool,
|
|
232
|
+
toolArgs: args,
|
|
233
|
+
parentEventId: c.req.header("x-event-id"),
|
|
234
|
+
parentProcessKey: c.req.header("x-process-key"),
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
if (result.ok) {
|
|
238
|
+
// INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — actor attribution.
|
|
239
|
+
// Successful writes mark the persistent `integration_writes` table so
|
|
240
|
+
// the next reconcile diff resolves `actor='agent'` and the agent does
|
|
241
|
+
// not re-discover its own write as a user-originated observation.
|
|
242
|
+
// Decision tree:
|
|
243
|
+
// 1. `bareTool` in `connector.destructiveTools` → it's a write.
|
|
244
|
+
// 2. Walk `result.toolResult` for canonical id keys (extractor).
|
|
245
|
+
// 3. If the response had no id (label_message / label_thread /
|
|
246
|
+
// bulk_label_matching_emails return `{ ok: true }`), fall back
|
|
247
|
+
// to `args.messageId` / `args.threadId` / each entry of
|
|
248
|
+
// `args.messageIds` / `args.threadIds`.
|
|
249
|
+
// Failure to extract any id is logged at debug and the call still
|
|
250
|
+
// returns 2xx — losing one attribution mark causes one self-noticed
|
|
251
|
+
// observation, never data loss.
|
|
252
|
+
maybeMarkIntegrationWrite(deps.db, {
|
|
253
|
+
integration: key,
|
|
254
|
+
connector,
|
|
255
|
+
bareTool,
|
|
256
|
+
toolResult: result.toolResult,
|
|
257
|
+
args,
|
|
258
|
+
});
|
|
259
|
+
return c.json({
|
|
260
|
+
toolResult: result.toolResult,
|
|
261
|
+
cost: {
|
|
262
|
+
tokensInput: result.cost.tokensInput,
|
|
263
|
+
tokensOutput: result.cost.tokensOutput,
|
|
264
|
+
cacheCreationTokens: result.cost.cacheCreationTokens,
|
|
265
|
+
cacheReadTokens: result.cost.cacheReadTokens,
|
|
266
|
+
costUsd: result.cost.costUsd,
|
|
267
|
+
durationMs: result.cost.durationMs,
|
|
268
|
+
numTurns: result.cost.numTurns,
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const status = mapErrorClassToHttpStatus(result.errorClass);
|
|
274
|
+
return c.json(
|
|
275
|
+
{
|
|
276
|
+
error: result.errorClass,
|
|
277
|
+
message: result.message,
|
|
278
|
+
integration: key,
|
|
279
|
+
backend: result.backendId ?? state.delegatedBackend,
|
|
280
|
+
mode: "delegated",
|
|
281
|
+
},
|
|
282
|
+
status,
|
|
283
|
+
);
|
|
284
|
+
});
|
|
285
|
+
*/
|
|
286
|
+
// ── end of reserved /invoke route ────────────────────────────────────
|
|
287
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
288
|
+
// RESERVED — `resolveCanonicalBareTool`
|
|
289
|
+
//
|
|
290
|
+
// Helper for the commented-out RPC `/invoke` route. Preserved verbatim
|
|
291
|
+
// alongside the route handler for future reactivation.
|
|
292
|
+
//
|
|
293
|
+
// The /exec migration removed the brittle "agent supplies the bare
|
|
294
|
+
// tool name" coupling that this helper compensated for; future RPC
|
|
295
|
+
// re-introduction (admin endpoint, cost-sensitive fast path) would
|
|
296
|
+
// likely want a *more* complete cross-backend alias translator
|
|
297
|
+
// (walk every connector under the integration, not just the active
|
|
298
|
+
// one) — see the alias-divergence root-cause notes in the route
|
|
299
|
+
// handler comment above for context.
|
|
300
|
+
//
|
|
301
|
+
// DO NOT DELETE.
|
|
302
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
303
|
+
/*
|
|
304
|
+
function resolveCanonicalBareTool(
|
|
305
|
+
connector: IntegrationBackendConnector | undefined,
|
|
306
|
+
bare: string,
|
|
307
|
+
): string {
|
|
308
|
+
if (!connector) return bare;
|
|
309
|
+
const capTools = connector.capabilityTools;
|
|
310
|
+
for (const aliases of Object.values(capTools)) {
|
|
311
|
+
if (aliases.includes(bare)) return bare;
|
|
312
|
+
}
|
|
313
|
+
const aliasesForKey = capTools[bare];
|
|
314
|
+
if (aliasesForKey && aliasesForKey.length > 0) {
|
|
315
|
+
return aliasesForKey[0];
|
|
316
|
+
}
|
|
317
|
+
return bare;
|
|
318
|
+
}
|
|
319
|
+
*/
|
|
320
|
+
//# sourceMappingURL=invoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../../../src/api/routes/integrations/integrations/invoke.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAU,EACV,KAAsB;IAEtB,oEAAoE;IACpE,mEAAmE;IACnE,oCAAoC;AACtC,CAAC;AAED,wEAAwE;AACxE,sEAAsE;AACtE,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,mEAAmE;AACnE,mEAAmE;AACnE,6DAA6D;AAC7D,oEAAoE;AACpE,wDAAwD;AACxD,oEAAoE;AACpE,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,iEAAiE;AACjE,sEAAsE;AACtE,iEAAiE;AACjE,+DAA+D;AAC/D,wDAAwD;AACxD,8DAA8D;AAC9D,gCAAgC;AAChC,EAAE;AACF,qEAAqE;AACrE,6DAA6D;AAC7D,2DAA2D;AAC3D,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,mEAAmE;AACnE,qCAAqC;AACrC,oEAAoE;AACpE,kEAAkE;AAClE,gEAAgE;AAChE,8DAA8D;AAC9D,qEAAqE;AACrE,EAAE;AACF,kDAAkD;AAClD,sEAAsE;AACtE,6EAA6E;AAC7E,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,qBAAqB;AACrB,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,EAAE;AACF,+DAA+D;AAC/D,yDAAyD;AACzD,8CAA8C;AAC9C,wEAAwE;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgME;AACF,wEAAwE;AAExE,wEAAwE;AACxE,wCAAwC;AACxC,EAAE;AACF,uEAAuE;AACvE,uDAAuD;AACvD,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,+DAA+D;AAC/D,mEAAmE;AACnE,gEAAgE;AAChE,qCAAqC;AACrC,EAAE;AACF,iBAAiB;AACjB,wEAAwE;AACxE;;;;;;;;;;;;;;;;EAgBE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import type { ApiDependencies } from "../../server.js";
|
|
3
|
+
/**
|
|
4
|
+
* Register `POST /integrations/:key/probe` — evaluate or read the cached
|
|
5
|
+
* connector probe for a given backend. Phase 2 supports two modes:
|
|
6
|
+
* - Live probe: `{liveProbe: true}` spawns the backend and enumerates
|
|
7
|
+
* its MCP tool list, then persists.
|
|
8
|
+
* - Cached read: body omits `tools`. Returns the latest stored row, or
|
|
9
|
+
* `{result: null}` if no probe has been taken yet.
|
|
10
|
+
* - Inline tools: `{tools: [...]}` accepts a pre-collected tool list
|
|
11
|
+
* (the names the agent subprocess reported) and evaluates without
|
|
12
|
+
* spawning. The dashboard's refresh button uses the live path;
|
|
13
|
+
* `/health` and the setup wizard's initial render use the cached
|
|
14
|
+
* path.
|
|
15
|
+
*
|
|
16
|
+
* No live agent subprocess is launched in the default path — keeping
|
|
17
|
+
* that out of the boot critical path is what saves the per-Opus probe
|
|
18
|
+
* cost called out in the §7 POC.
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerProbeRoutes(app: Hono, deps: ApiDependencies): void;
|
|
21
|
+
//# sourceMappingURL=probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../../../../src/api/routes/integrations/integrations/probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAwB1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAuM1E"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { BACKEND_IDS, INTEGRATION_DESCRIPTORS, isIntegrationKey, } from "@aitne/shared";
|
|
2
|
+
import { evaluateProbe, getConnector, makeUserManagedProbeResult, } from "../../../core/integration-probe.js";
|
|
3
|
+
import { LiveProbeUnsupportedError } from "../../../core/agent-core.js";
|
|
4
|
+
import { readIntegrations, } from "../../../db/integrations-store.js";
|
|
5
|
+
import { readProbe, writeProbe, } from "../../../db/integration-probe-store.js";
|
|
6
|
+
import { createLogger } from "../../../logging.js";
|
|
7
|
+
import { composeIssue, respondWithAgentError } from "../../helpers/agent-errors.js";
|
|
8
|
+
const logger = createLogger("integrations-api");
|
|
9
|
+
/**
|
|
10
|
+
* Register `POST /integrations/:key/probe` — evaluate or read the cached
|
|
11
|
+
* connector probe for a given backend. Phase 2 supports two modes:
|
|
12
|
+
* - Live probe: `{liveProbe: true}` spawns the backend and enumerates
|
|
13
|
+
* its MCP tool list, then persists.
|
|
14
|
+
* - Cached read: body omits `tools`. Returns the latest stored row, or
|
|
15
|
+
* `{result: null}` if no probe has been taken yet.
|
|
16
|
+
* - Inline tools: `{tools: [...]}` accepts a pre-collected tool list
|
|
17
|
+
* (the names the agent subprocess reported) and evaluates without
|
|
18
|
+
* spawning. The dashboard's refresh button uses the live path;
|
|
19
|
+
* `/health` and the setup wizard's initial render use the cached
|
|
20
|
+
* path.
|
|
21
|
+
*
|
|
22
|
+
* No live agent subprocess is launched in the default path — keeping
|
|
23
|
+
* that out of the boot critical path is what saves the per-Opus probe
|
|
24
|
+
* cost called out in the §7 POC.
|
|
25
|
+
*/
|
|
26
|
+
export function registerProbeRoutes(app, deps) {
|
|
27
|
+
const { db } = deps;
|
|
28
|
+
app.post("/integrations/:key/probe", async (c) => {
|
|
29
|
+
const key = c.req.param("key");
|
|
30
|
+
if (!isIntegrationKey(key)) {
|
|
31
|
+
return respondWithAgentError(c, 404, [
|
|
32
|
+
composeIssue("integrations.unknown_integration", {
|
|
33
|
+
field: "key",
|
|
34
|
+
received: key,
|
|
35
|
+
}),
|
|
36
|
+
], { legacyFields: { key } });
|
|
37
|
+
}
|
|
38
|
+
const body = await readOptionalJsonBody(c);
|
|
39
|
+
if (body === null) {
|
|
40
|
+
return respondWithAgentError(c, 400, [
|
|
41
|
+
composeIssue("integrations.invalid_json_body", {
|
|
42
|
+
field: "body",
|
|
43
|
+
received: "<not_json>",
|
|
44
|
+
}),
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
const backend = resolveProbeBackend(body.backend, db, key);
|
|
48
|
+
if (!backend.ok)
|
|
49
|
+
return c.json(backend.error, backend.status);
|
|
50
|
+
const descriptorForProbe = INTEGRATION_DESCRIPTORS[key];
|
|
51
|
+
const isUserManaged = descriptorForProbe.userManagedConnector === true;
|
|
52
|
+
// Connector existence is a descriptor-driven precondition. User-
|
|
53
|
+
// managed integrations (Outlook today) intentionally ship with an
|
|
54
|
+
// empty `backendConnectors` and skip this check — the user's MCP /
|
|
55
|
+
// connector on the chosen backend is the source of truth, not the
|
|
56
|
+
// registry. Backend availability + auth still get verified for
|
|
57
|
+
// user-managed in the live-probe branch below.
|
|
58
|
+
if (!isUserManaged) {
|
|
59
|
+
const connector = getConnector(key, backend.value);
|
|
60
|
+
/* c8 ignore start -- every registered (integration, backend) pair ships with a connector today; forward-compat guard for future partial connectors */
|
|
61
|
+
if (!connector) {
|
|
62
|
+
return c.json({
|
|
63
|
+
error: "backend_not_supported",
|
|
64
|
+
key,
|
|
65
|
+
backend: backend.value,
|
|
66
|
+
availableBackends: Object.keys(descriptorForProbe.backendConnectors),
|
|
67
|
+
}, 400);
|
|
68
|
+
}
|
|
69
|
+
/* c8 ignore stop */
|
|
70
|
+
}
|
|
71
|
+
// §4.11 live probe — `liveProbe: true` asks the daemon to spawn the
|
|
72
|
+
// target backend and enumerate its MCP tool list. User-initiated only;
|
|
73
|
+
// never fired from boot or PATCH. The descriptor + cached read paths
|
|
74
|
+
// cover the other two calling conventions.
|
|
75
|
+
//
|
|
76
|
+
// For user-managed integrations the spawn + probeTools() call still
|
|
77
|
+
// fires (this is what enforces §4.12.2 checks #1 backend resolvable
|
|
78
|
+
// and #2 backend auth valid). Only the descriptor-side capability
|
|
79
|
+
// evaluation is replaced by `makeUserManagedProbeResult`, which
|
|
80
|
+
// carries the full live tool list as `presentTools` so dashboards
|
|
81
|
+
// can show "we found N tools on your backend."
|
|
82
|
+
if (body.liveProbe === true) {
|
|
83
|
+
const core = deps.agentBackends?.find((c) => c.backendId === backend.value);
|
|
84
|
+
if (!core) {
|
|
85
|
+
return c.json({
|
|
86
|
+
error: "backend_core_unavailable",
|
|
87
|
+
backend: backend.value,
|
|
88
|
+
message: `Backend '${backend.value}' is not registered in this daemon — cannot run live probe.`,
|
|
89
|
+
}, 503);
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const tools = await core.probeTools();
|
|
93
|
+
const result = isUserManaged
|
|
94
|
+
? makeUserManagedProbeResult(key, backend.value, tools)
|
|
95
|
+
: evaluateProbe({
|
|
96
|
+
tools,
|
|
97
|
+
integration: key,
|
|
98
|
+
backend: backend.value,
|
|
99
|
+
});
|
|
100
|
+
writeProbe(db, result);
|
|
101
|
+
logger.info({
|
|
102
|
+
key,
|
|
103
|
+
backend: backend.value,
|
|
104
|
+
present: result.present,
|
|
105
|
+
missingRequired: result.missingRequired,
|
|
106
|
+
toolCount: result.presentTools.length,
|
|
107
|
+
userManaged: isUserManaged,
|
|
108
|
+
}, "integration live probe persisted");
|
|
109
|
+
return c.json({
|
|
110
|
+
ok: true,
|
|
111
|
+
cached: false,
|
|
112
|
+
liveProbe: true,
|
|
113
|
+
...(isUserManaged ? { userManaged: true } : {}),
|
|
114
|
+
result,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
if (err instanceof LiveProbeUnsupportedError) {
|
|
119
|
+
return c.json({
|
|
120
|
+
error: "live_probe_unsupported",
|
|
121
|
+
backend: backend.value,
|
|
122
|
+
message: err.reason,
|
|
123
|
+
}, 501);
|
|
124
|
+
}
|
|
125
|
+
logger.error({ err, key, backend: backend.value }, "live probe failed");
|
|
126
|
+
return c.json({
|
|
127
|
+
error: "live_probe_failed",
|
|
128
|
+
backend: backend.value,
|
|
129
|
+
message: err instanceof Error ? err.message : String(err),
|
|
130
|
+
}, 500);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const tools = body?.tools;
|
|
134
|
+
if (tools === undefined) {
|
|
135
|
+
const cached = readProbe(db, key, backend.value);
|
|
136
|
+
// 200 + result:null when there's no cached row — distinguishes
|
|
137
|
+
// "endpoint missing" (which the unknown_integration / 404 above
|
|
138
|
+
// covers) from "endpoint worked but the cache is empty," so the
|
|
139
|
+
// dashboard callers can branch without parsing error codes.
|
|
140
|
+
return c.json({
|
|
141
|
+
ok: true,
|
|
142
|
+
cached: cached !== null,
|
|
143
|
+
...(isUserManaged ? { userManaged: true } : {}),
|
|
144
|
+
result: cached,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
if (!Array.isArray(tools) || tools.some((t) => typeof t !== "string")) {
|
|
148
|
+
return c.json({
|
|
149
|
+
error: "invalid_body",
|
|
150
|
+
message: "`tools` must be an array of MCP tool names (strings).",
|
|
151
|
+
}, 400);
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
const result = isUserManaged
|
|
155
|
+
? makeUserManagedProbeResult(key, backend.value, tools)
|
|
156
|
+
: evaluateProbe({
|
|
157
|
+
tools: tools,
|
|
158
|
+
integration: key,
|
|
159
|
+
backend: backend.value,
|
|
160
|
+
});
|
|
161
|
+
writeProbe(db, result);
|
|
162
|
+
logger.info({
|
|
163
|
+
key,
|
|
164
|
+
backend: backend.value,
|
|
165
|
+
present: result.present,
|
|
166
|
+
missingRequired: result.missingRequired,
|
|
167
|
+
toolCount: result.presentTools.length,
|
|
168
|
+
userManaged: isUserManaged,
|
|
169
|
+
}, "integration probe persisted");
|
|
170
|
+
return c.json({
|
|
171
|
+
ok: true,
|
|
172
|
+
cached: false,
|
|
173
|
+
...(isUserManaged ? { userManaged: true } : {}),
|
|
174
|
+
result,
|
|
175
|
+
});
|
|
176
|
+
/* c8 ignore start -- evaluateProbe / writeProbe success path is always taken in tests; catch is defensive */
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
logger.error({ err, key, backend: backend.value }, "probe evaluation failed");
|
|
180
|
+
return respondWithAgentError(c, 500, [
|
|
181
|
+
composeIssue("integrations.internal_error", {
|
|
182
|
+
field: "<server>",
|
|
183
|
+
received: "<probe_evaluation_failed>",
|
|
184
|
+
}),
|
|
185
|
+
]);
|
|
186
|
+
}
|
|
187
|
+
/* c8 ignore stop */
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Tolerant JSON body reader for POST routes that accept an empty body
|
|
192
|
+
* (e.g. `POST /integrations/:key/probe` with no `tools` defaults to a
|
|
193
|
+
* cached read). Returns `{}` for an empty body, `null` for invalid JSON,
|
|
194
|
+
* and the parsed value otherwise.
|
|
195
|
+
*/
|
|
196
|
+
async function readOptionalJsonBody(c) {
|
|
197
|
+
try {
|
|
198
|
+
const raw = await c.req.text();
|
|
199
|
+
if (raw.trim() === "")
|
|
200
|
+
return {};
|
|
201
|
+
return JSON.parse(raw);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function resolveProbeBackend(raw, db, key) {
|
|
208
|
+
if (typeof raw === "string") {
|
|
209
|
+
if (!BACKEND_IDS.includes(raw)) {
|
|
210
|
+
return {
|
|
211
|
+
ok: false,
|
|
212
|
+
status: 400,
|
|
213
|
+
error: {
|
|
214
|
+
error: "invalid_backend",
|
|
215
|
+
message: `Unknown backend '${raw}'.`,
|
|
216
|
+
supportedBackends: BACKEND_IDS,
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return { ok: true, value: raw };
|
|
221
|
+
}
|
|
222
|
+
if (raw !== undefined) {
|
|
223
|
+
return {
|
|
224
|
+
ok: false,
|
|
225
|
+
status: 400,
|
|
226
|
+
error: {
|
|
227
|
+
error: "invalid_backend",
|
|
228
|
+
message: "`backend` must be a string when provided.",
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
// Default to the integration's `delegatedBackend` when one is
|
|
233
|
+
// configured — this is the backend the wizard would commit against.
|
|
234
|
+
const state = readIntegrations(db)[key];
|
|
235
|
+
if (state.delegatedBackend) {
|
|
236
|
+
return { ok: true, value: state.delegatedBackend };
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
ok: false,
|
|
240
|
+
status: 400,
|
|
241
|
+
error: {
|
|
242
|
+
error: "backend_required",
|
|
243
|
+
message: "Pass `backend` in the request body — this integration is not currently delegated, so the daemon cannot infer one.",
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../../../src/api/routes/integrations/integrations/probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import type { ApiDependencies } from "../../server.js";
|
|
3
|
+
/**
|
|
4
|
+
* `POST /api/integrations/:key/invoke` — RESERVED reactivation slot.
|
|
5
|
+
*
|
|
6
|
+
* The handler and the supporting `resolveCanonicalBareTool` helper were
|
|
7
|
+
* commented out 2026-05-01 as part of the /exec-only migration. They are
|
|
8
|
+
* preserved verbatim below for future reactivation. Today this register
|
|
9
|
+
* function is a no-op so the route does not exist; `/exec` (see
|
|
10
|
+
* `./exec.ts`) is the canonical surface.
|
|
11
|
+
*
|
|
12
|
+
* Why this file exists despite registering nothing:
|
|
13
|
+
* - Keeping the reservation block in its own file gives future
|
|
14
|
+
* reactivation a clear, self-contained home — uncomment the block,
|
|
15
|
+
* re-import the helpers it needs (`matchToolPattern`,
|
|
16
|
+
* `mapErrorClassToHttpStatus`, `IntegrationBackendConnector`,
|
|
17
|
+
* `INTEGRATION_DESCRIPTORS`, `readIntegrations`,
|
|
18
|
+
* `markIntegrationWrite`, `extractWriteItemIds`, `composeIssue`,
|
|
19
|
+
* `respondWithAgentError`, `createLogger`, `readJsonBody`), and
|
|
20
|
+
* register the route inside this function.
|
|
21
|
+
* - Co-locating with the rest of the integrations routes keeps the
|
|
22
|
+
* directory inventory complete (every entry in the file inventory
|
|
23
|
+
* section of `docs/design/appendices/api-route-decomposition.md`
|
|
24
|
+
* §5.4 maps to a real file).
|
|
25
|
+
*
|
|
26
|
+
* The internal `DelegatedBackendInvoker.invoke()` API and each core's
|
|
27
|
+
* `runDelegatedTool()` remain wired (used by `delegated-sync-worker`
|
|
28
|
+
* for hourly drift detection — see
|
|
29
|
+
* `packages/daemon/src/observers/delegated-sync-worker.ts:504`).
|
|
30
|
+
*
|
|
31
|
+
* DO NOT DELETE the comment block — possible reactivation scenarios:
|
|
32
|
+
* 1. A low-latency RPC fast path for cost-sensitive callers.
|
|
33
|
+
* 2. A debug/admin endpoint for direct tool dispatch.
|
|
34
|
+
* 3. A per-integration opt-in once full cross-backend alias
|
|
35
|
+
* translation is in place.
|
|
36
|
+
*/
|
|
37
|
+
export declare function registerInvokeRoutes(_app: Hono, _deps: ApiDependencies): void;
|
|
38
|
+
//# sourceMappingURL=invoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/integrations/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,eAAe,GACrB,IAAI,CAIN"}
|