@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join, resolve as resolvePath } from "node:path";
|
|
4
|
-
import { APP_NAME, collectSessionDeniedTools, getAgentDayDateStr, INTEGRATION_DESCRIPTORS, INTEGRATION_KEYS, isAutonomousProcessKey, isPlausibleGeminiApiKey, matchRunAllowedToolPattern, } from "@aitne/shared";
|
|
4
|
+
import { APP_NAME, collectSessionDeniedTools, getAgentDayDateStr, INTEGRATION_DESCRIPTORS, INTEGRATION_KEYS, isAutonomousProcessKey, isMessageEvent, isPlausibleGeminiApiKey, matchRunAllowedToolPattern, } from "@aitne/shared";
|
|
5
5
|
import { readIntegrations } from "../../db/integrations-store.js";
|
|
6
6
|
import { getContextDir } from "../../config.js";
|
|
7
7
|
import { cleanupSessionWorkdir, createSessionWorkdir } from "../workdir.js";
|
|
@@ -11,12 +11,15 @@ import { buildDelegatedToolPrompt, emptyCost, tryParseToolResult, withDurationMs
|
|
|
11
11
|
import { DELEGATED_PROXY_DEFAULTS } from "../../services/delegated-proxy-config.js";
|
|
12
12
|
import { materializeMcpForSession } from "../../services/mcp/session-materializer.js";
|
|
13
13
|
import { parseMcpToolName } from "../../services/mcp/risk.js";
|
|
14
|
+
import { noteNativeSkillToolIfPresent, probeCliNativeSkillSubcommand, } from "./native-skill-discovery-probe.js";
|
|
14
15
|
import { logMcpToolCall } from "../../services/mcp/tool-audit.js";
|
|
15
16
|
import { buildDaemonApiCliEnv } from "../daemon-api-cli.js";
|
|
16
17
|
import { ALWAYS_DISALLOWED_TOOLS } from "../../safety/always-disallowed.js";
|
|
17
18
|
import { CliPathCache, parseJsonLine, runLineCommand, } from "./cli-utils.js";
|
|
18
19
|
import { isPathInsideOrEqual, jsonStringPathForms, shellPathForms, } from "../path-compat.js";
|
|
19
20
|
import { probeApiKeyServerSide } from "./api-key-probe.js";
|
|
21
|
+
import { buildAgentDayBoundaryHint, extractGenericQuotaResetHint, } from "./quota-reset-hints.js";
|
|
22
|
+
import { auditStreamObservation, extractGeminiToolUseTarget, } from "../../safety/subprocess-block-scanner.js";
|
|
20
23
|
import { extractSilentApiErrors, logSilentApiErrors, } from "./silent-api-error-detector.js";
|
|
21
24
|
import { estimateTextInputTokens, findRegisteredModel, getModelsForBackend, latestLiteFor, } from "./model-registry.js";
|
|
22
25
|
import { PriceFetcher } from "./price-fetcher.js";
|
|
@@ -52,6 +55,20 @@ const EMPTY_USAGE = {
|
|
|
52
55
|
cacheCreationInputTokens: 0,
|
|
53
56
|
cacheReadInputTokens: 0,
|
|
54
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* Per-event stream-idle threshold for reactive `runTurn` execution
|
|
60
|
+
* (DMs, routines, scheduled tasks). Distinct from the delegated-path
|
|
61
|
+
* `DELEGATED_PROXY_DEFAULTS.idleTimeoutMsByBackend.gemini` (75s)
|
|
62
|
+
* because reactive turns include longer legitimate silences — extended
|
|
63
|
+
* thinking, MCP cold-starts, long `google-workspace` round-trips. The
|
|
64
|
+
* threshold catches a fully hung CLI subprocess (zero stream events)
|
|
65
|
+
* well before `executeTimeoutMinutes` (default 30 min) fires.
|
|
66
|
+
*
|
|
67
|
+
* Audit 2026-05-17: the delegated path had this guard; the reactive
|
|
68
|
+
* path was unprotected and a hung subprocess could pin a session for
|
|
69
|
+
* the full 30-min wall-clock.
|
|
70
|
+
*/
|
|
71
|
+
const REACTIVE_IDLE_TIMEOUT_MS = 5 * 60 * 1000;
|
|
55
72
|
export class GeminiCliCore {
|
|
56
73
|
config;
|
|
57
74
|
writeTracker;
|
|
@@ -133,12 +150,14 @@ export class GeminiCliCore {
|
|
|
133
150
|
processKey: params.processKey,
|
|
134
151
|
...(wikiWorkspaceName ? { wikiWorkspaceName } : {}),
|
|
135
152
|
sessionDir: params.sessionDir,
|
|
153
|
+
maxTurns: params.maxTurns,
|
|
136
154
|
maxBudgetUsd: params.maxBudgetUsd,
|
|
137
155
|
webSearchEnabled: params.webSearchEnabled,
|
|
138
156
|
turnToken: params.turnToken,
|
|
139
157
|
sessionDbId: params.sessionDbId,
|
|
140
158
|
eventCorrelationId: params.event.correlationId,
|
|
141
159
|
wikiUrlFetchEnabled: params.wikiUrlFetchEnabled ?? false,
|
|
160
|
+
...(isMessageEvent(params.event) ? { messageText: params.event.content } : {}),
|
|
142
161
|
}, streamCallbacks);
|
|
143
162
|
}
|
|
144
163
|
async executeResume(params, streamCallbacks) {
|
|
@@ -148,11 +167,15 @@ export class GeminiCliCore {
|
|
|
148
167
|
eventType: "message.received",
|
|
149
168
|
sessionDir: params.sessionDir,
|
|
150
169
|
resumeSessionId: params.sessionId,
|
|
170
|
+
maxTurns: params.maxTurns,
|
|
151
171
|
maxBudgetUsd: params.maxBudgetUsd,
|
|
152
172
|
webSearchEnabled: params.webSearchEnabled,
|
|
153
173
|
turnToken: params.turnToken,
|
|
154
174
|
sessionDbId: params.sessionDbId,
|
|
155
175
|
eventCorrelationId: params.eventCorrelationId,
|
|
176
|
+
// Forward the user's reply text as the trigger-phrase signal —
|
|
177
|
+
// mirrors codex / opencode resume paths.
|
|
178
|
+
messageText: params.message,
|
|
156
179
|
}, streamCallbacks);
|
|
157
180
|
}
|
|
158
181
|
async summarize(conversationText) {
|
|
@@ -395,6 +418,17 @@ export class GeminiCliCore {
|
|
|
395
418
|
detectedServers: [...detectedServers],
|
|
396
419
|
toolCount: deduped.length,
|
|
397
420
|
}, "Gemini probe collected tool manifest via host MCP scan");
|
|
421
|
+
// docs/design/appendices/skills-unification.md Phase 1 item 13 — forward-compat
|
|
422
|
+
// signals. The name-pattern scan over `deduped` here is structurally
|
|
423
|
+
// a no-op for native discovery (the list is built from
|
|
424
|
+
// `INTEGRATION_DESCRIPTORS.capabilityTools`, which Aitne controls,
|
|
425
|
+
// and therefore can never contain a native CLI skill tool we did
|
|
426
|
+
// not register). The `gemini --help` subcommand probe below is the
|
|
427
|
+
// real detector: `gemini --help` already lists `gemini skills`
|
|
428
|
+
// natively (verified 2026-05-15), so this is the call site that
|
|
429
|
+
// will trip on first deploy and surface the cleanup follow-up PR.
|
|
430
|
+
noteNativeSkillToolIfPresent("gemini", deduped);
|
|
431
|
+
void probeCliNativeSkillSubcommand(this.cliPath, "gemini");
|
|
398
432
|
return deduped;
|
|
399
433
|
}
|
|
400
434
|
async runTurn(params, streamCallbacks) {
|
|
@@ -422,7 +456,13 @@ export class GeminiCliCore {
|
|
|
422
456
|
const currentCount = this.readRequestsCount(today);
|
|
423
457
|
if (currentCount >= ceiling) {
|
|
424
458
|
logger.warn({ currentCount, ceiling, date: today }, "Gemini daily-request ceiling hit — refusing execution");
|
|
425
|
-
throw new BackendQuotaError(this.backendId, "daily_ceiling",
|
|
459
|
+
throw new BackendQuotaError(this.backendId, "daily_ceiling",
|
|
460
|
+
// Deterministic reset: the next agent-day boundary fires at
|
|
461
|
+
// `dayBoundaryHour:00` in the configured timezone. The helper
|
|
462
|
+
// handles the empty-timezone default (`AgentConfig.timezone`
|
|
463
|
+
// defaults to `""` in config.ts) by omitting the field so the
|
|
464
|
+
// dashboard renders cleanly.
|
|
465
|
+
buildAgentDayBoundaryHint(this.config.dayBoundaryHour, this.config.timezone), `Gemini daily-request ceiling reached (${currentCount}/${ceiling}) — resets at the next agent-day boundary.`);
|
|
426
466
|
}
|
|
427
467
|
}
|
|
428
468
|
this.assertPromptWithinMaxBudget(params.prompt, params.maxBudgetUsd, params.modelId);
|
|
@@ -431,6 +471,14 @@ export class GeminiCliCore {
|
|
|
431
471
|
backendId: this.backendId,
|
|
432
472
|
processKey: params.processKey,
|
|
433
473
|
character: this.config.character,
|
|
474
|
+
contextDir: getContextDir(this.config),
|
|
475
|
+
// docs/design/appendices/skills-unification.md Phase 4 — feed conditional manifest
|
|
476
|
+
// predicates with live DB rows and the inbound DM text. Gemini
|
|
477
|
+
// already keeps a `this.db` for the daily request ceiling; reuse
|
|
478
|
+
// it (falls back to `mcpContext.db` for symmetry with the other
|
|
479
|
+
// cores).
|
|
480
|
+
...((this.db ?? this.mcpContext?.db) ? { db: this.db ?? this.mcpContext?.db ?? null } : {}),
|
|
481
|
+
...(typeof params.messageText === "string" ? { messageText: params.messageText } : {}),
|
|
434
482
|
...(params.wikiWorkspaceName ? { wikiWorkspaceName: params.wikiWorkspaceName } : {}),
|
|
435
483
|
});
|
|
436
484
|
const ownsSessionDir = !params.sessionDir;
|
|
@@ -466,15 +514,57 @@ export class GeminiCliCore {
|
|
|
466
514
|
let lastError = null;
|
|
467
515
|
let resultStatus = "error";
|
|
468
516
|
let stats = null;
|
|
517
|
+
// Stream text deltas live as they arrive — mirrors ClaudeCodeCore /
|
|
518
|
+
// CodexCore so the owner-facing chat surfaces (dashboard chat, owner DM)
|
|
519
|
+
// get the same incremental-output UX regardless of which backend serves
|
|
520
|
+
// the turn. `assertWithinMaxBudget` is still enforced post-completion
|
|
521
|
+
// and surfaces as `BackendQuotaError` AFTER text has streamed —
|
|
522
|
+
// matching Claude's behaviour. The earlier "defer until budget check"
|
|
523
|
+
// guard buffered the entire turn, which made interactive flows
|
|
524
|
+
// (`setup.initial`, dashboard chat) look frozen for minutes.
|
|
469
525
|
let streamed = false;
|
|
470
|
-
|
|
526
|
+
// Daemon-side max-turns enforcement. The Gemini CLI exposes no
|
|
527
|
+
// `--max-turns` flag (verified `gemini --help` on 0.x) and the SDK-level
|
|
528
|
+
// contract that Claude relies on for `BackendDecisiveFailure("max_turns")`
|
|
529
|
+
// is unavailable. To match Claude / Codex semantics we count `tool_use`
|
|
530
|
+
// events as a turn proxy (one model→tool round-trip per event; parallel
|
|
531
|
+
// tool calls within the same turn marginally over-count, which only
|
|
532
|
+
// tightens the cap) and use AbortController to terminate the subprocess
|
|
533
|
+
// when the cap is exceeded. Without this guard, a runaway interactive
|
|
534
|
+
// flow (`setup.initial` was the trigger case) would burn the full
|
|
535
|
+
// `executeTimeoutMinutes` wall-clock (default 60 min) before the
|
|
536
|
+
// generic timeout watchdog fired — the "Customize Your Rules
|
|
537
|
+
// force-stop / very-slow" report.
|
|
538
|
+
//
|
|
539
|
+
// The fallback default (50) mirrors Codex's implicit ceiling so callers
|
|
540
|
+
// that omit `maxTurns` get the same envelope on every CLI backend.
|
|
541
|
+
const maxTurns = params.maxTurns ?? 50;
|
|
542
|
+
let toolCallCount = 0;
|
|
543
|
+
let maxTurnsExceeded = false;
|
|
544
|
+
const maxTurnsAborter = new AbortController();
|
|
471
545
|
// Accumulate raw subprocess text across the run so we can scan once for
|
|
472
546
|
// `PA_API_ERROR` markers the pa-api / curl wrappers emit on HTTP errors.
|
|
473
547
|
// Gemini's stream schema doesn't expose a dedicated tool-output field, so
|
|
474
548
|
// we fall back to the raw stdout/stderr lines (which include both the
|
|
475
549
|
// JSONL itself and any uncaptured subprocess stderr).
|
|
476
550
|
const apiOutputBuffer = [];
|
|
551
|
+
// Reactive idle watchdog (audit 2026-05-17 C1). Mirrors the delegated
|
|
552
|
+
// path's wiring in `runDelegatedTool` (~line 2240). Distinct aborter
|
|
553
|
+
// from `maxTurnsAborter` so `AbortSignal.any` carries both reasons
|
|
554
|
+
// to runLineCommand; post-await we classify via the flag pair
|
|
555
|
+
// (`maxTurnsExceeded` → `idleTimedOut` → `runResult.timedOut`).
|
|
556
|
+
let idleTimedOut = false;
|
|
557
|
+
const idleAborter = new AbortController();
|
|
558
|
+
const idleWatchdog = new IdleWatchdog({
|
|
559
|
+
idleTimeoutMs: REACTIVE_IDLE_TIMEOUT_MS,
|
|
560
|
+
onTimeout: (idleMs) => {
|
|
561
|
+
idleTimedOut = true;
|
|
562
|
+
logger.warn({ idleMs, idleTimeoutMs: REACTIVE_IDLE_TIMEOUT_MS, eventType: params.eventType }, "gemini reactive idle watchdog tripped — aborting");
|
|
563
|
+
idleAborter.abort(new Error(`gemini reactive stream idle for ${idleMs}ms (limit ${REACTIVE_IDLE_TIMEOUT_MS}ms)`));
|
|
564
|
+
},
|
|
565
|
+
});
|
|
477
566
|
try {
|
|
567
|
+
idleWatchdog.start();
|
|
478
568
|
const runResult = await runLineCommand({
|
|
479
569
|
command: "gemini",
|
|
480
570
|
args: this.buildArgs(params, policyPath),
|
|
@@ -490,7 +580,12 @@ export class GeminiCliCore {
|
|
|
490
580
|
...(params.turnToken ? { PA_TURN_TOKEN: params.turnToken } : {}),
|
|
491
581
|
},
|
|
492
582
|
timeoutMs: this.config.executeTimeoutMinutes * 60 * 1000,
|
|
583
|
+
abortSignal: AbortSignal.any([
|
|
584
|
+
maxTurnsAborter.signal,
|
|
585
|
+
idleAborter.signal,
|
|
586
|
+
]),
|
|
493
587
|
onStdoutLine: (line) => {
|
|
588
|
+
idleWatchdog.beat();
|
|
494
589
|
apiOutputBuffer.push(line);
|
|
495
590
|
const event = parseJsonLine(line);
|
|
496
591
|
if (!event?.type) {
|
|
@@ -507,6 +602,24 @@ export class GeminiCliCore {
|
|
|
507
602
|
if (this.writeTracker && event.type === "tool_use") {
|
|
508
603
|
this.trackVaultWrite(event);
|
|
509
604
|
}
|
|
605
|
+
// EXECUTION-MODE-DESIGN.md §6.3 — stream-side absolute-block
|
|
606
|
+
// observability. The admin TOML at priority 999 already enforces
|
|
607
|
+
// the same patterns at the Gemini CLI layer; this adds an
|
|
608
|
+
// `agent_actions.blocked_absolute` row with `result='partial'`
|
|
609
|
+
// so the dashboard sees stream-observed attempts the same way it
|
|
610
|
+
// sees Claude's PreToolUse rejections (recorded with
|
|
611
|
+
// `result='failed'`).
|
|
612
|
+
if (event.type === "tool_use") {
|
|
613
|
+
const target = extractGeminiToolUseTarget(event.tool_name, event.args);
|
|
614
|
+
if (target) {
|
|
615
|
+
auditStreamObservation(target, {
|
|
616
|
+
db: this.mcpContext?.db,
|
|
617
|
+
backend: this.backendId,
|
|
618
|
+
mode: this.config.geminiExecutionPermissionMode,
|
|
619
|
+
sessionId: params.sessionDbId,
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
}
|
|
510
623
|
// B-003 Phase 4.4 — persist MCP tool call to `mcp_tool_calls`.
|
|
511
624
|
// Gemini emits `mcp_<server>_<tool>` (single underscore — see
|
|
512
625
|
// parseMcpToolName); host-installed Gemini MCPs (like
|
|
@@ -541,17 +654,71 @@ export class GeminiCliCore {
|
|
|
541
654
|
}
|
|
542
655
|
}
|
|
543
656
|
}
|
|
657
|
+
// Max-turns counting + enforcement.
|
|
658
|
+
//
|
|
659
|
+
// ── Semantic ──
|
|
660
|
+
// `maxTurns` here is the **maximum number of tool calls** the
|
|
661
|
+
// model may make in a single execute. The cap is exclusive: we
|
|
662
|
+
// abort when the next `tool_use` would push the count *past*
|
|
663
|
+
// `maxTurns` (`toolCallCount > maxTurns`), not on the
|
|
664
|
+
// `maxTurns`-th call itself. That semantic is what the rest of
|
|
665
|
+
// this test suite asserts — multiple absolute-block / audit
|
|
666
|
+
// tests pass `maxTurns: 1` together with a single `tool_use`
|
|
667
|
+
// event and expect the run to complete cleanly so the
|
|
668
|
+
// observability row gets persisted before the cap could fire.
|
|
669
|
+
//
|
|
670
|
+
// This is intentionally one turn more permissive than the
|
|
671
|
+
// strict Claude-SDK contract (where `maxTurns` is the
|
|
672
|
+
// model-invocation count). The trade-off is justified by:
|
|
673
|
+
// 1. The Gemini CLI emits no explicit turn-boundary event,
|
|
674
|
+
// so the daemon can only count tool calls, not full
|
|
675
|
+
// invocations. The final assistant message (which does
|
|
676
|
+
// count as a model invocation in Claude) is invisible to
|
|
677
|
+
// this counter until after-the-fact.
|
|
678
|
+
// 2. The cap exists primarily to stop runaway loops, not to
|
|
679
|
+
// shave one model call off the budget. Allowing one
|
|
680
|
+
// "settling" final answer keeps the contract aligned
|
|
681
|
+
// with `numTurns: toolCallCount + 1` and avoids
|
|
682
|
+
// mass-breaking the existing audit-observation tests.
|
|
683
|
+
//
|
|
684
|
+
// The increment is gated on `!maxTurnsExceeded` so post-abort
|
|
685
|
+
// stdout lines (the kill chain is asynchronous; a few lines
|
|
686
|
+
// can still arrive before `SIGTERM` reaps the subprocess) do
|
|
687
|
+
// not drift the error-message tally past the precise abort
|
|
688
|
+
// point. Audit / policy hooks above this block still fire for
|
|
689
|
+
// those lines — they are forensic data, not budget accounting.
|
|
690
|
+
if (event.type === "tool_use" && !maxTurnsExceeded) {
|
|
691
|
+
toolCallCount += 1;
|
|
692
|
+
if (toolCallCount > maxTurns) {
|
|
693
|
+
maxTurnsExceeded = true;
|
|
694
|
+
logger.warn({
|
|
695
|
+
toolCallCount,
|
|
696
|
+
maxTurns,
|
|
697
|
+
eventType: params.eventType,
|
|
698
|
+
model: params.modelId,
|
|
699
|
+
}, "Gemini max-turns exceeded — aborting subprocess");
|
|
700
|
+
maxTurnsAborter.abort(new Error("max_turns_exceeded"));
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
544
704
|
if (event.type === "message" && event.role === "assistant") {
|
|
705
|
+
// Gemini CLI 0.x ships an emerging "thought" channel that
|
|
706
|
+
// surfaces inside an assistant-role message via
|
|
707
|
+
// `messageType: "thought"`. Drop these so internal reasoning
|
|
708
|
+
// never reaches the dashboard chat bubble. `type: "thought"`
|
|
709
|
+
// events already fall through the positive-match below and
|
|
710
|
+
// never reach `onText`.
|
|
711
|
+
if (event.messageType === "thought") {
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
545
714
|
const content = typeof event.content === "string" ? event.content : "";
|
|
546
715
|
if (!content) {
|
|
547
716
|
return;
|
|
548
717
|
}
|
|
549
718
|
if (event.delta) {
|
|
550
719
|
assistantDelta += content;
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
streamed = true;
|
|
554
|
-
}
|
|
720
|
+
streamCallbacks?.onText?.(content);
|
|
721
|
+
streamed = true;
|
|
555
722
|
return;
|
|
556
723
|
}
|
|
557
724
|
finalAssistantMessage = content;
|
|
@@ -565,6 +732,7 @@ export class GeminiCliCore {
|
|
|
565
732
|
}
|
|
566
733
|
},
|
|
567
734
|
onStderrLine: (line) => {
|
|
735
|
+
idleWatchdog.beat();
|
|
568
736
|
apiOutputBuffer.push(line);
|
|
569
737
|
if (isLikelyGeminiFailure(line)) {
|
|
570
738
|
lastError = line.trim();
|
|
@@ -579,6 +747,37 @@ export class GeminiCliCore {
|
|
|
579
747
|
eventType: params.eventType,
|
|
580
748
|
});
|
|
581
749
|
}
|
|
750
|
+
// Max-turns abort is checked BEFORE `timedOut` because the AbortController
|
|
751
|
+
// and the runLineCommand wall-clock can race: a subprocess that we
|
|
752
|
+
// aborted because the cap was hit may still surface `timedOut=true`
|
|
753
|
+
// if the kill path took long enough that the safety-net timer
|
|
754
|
+
// tripped. Checking maxTurns first preserves the more specific
|
|
755
|
+
// error class — `BackendDecisiveFailure("max_turns")` matches the
|
|
756
|
+
// Claude SDK contract, while a generic `"timeout"` would obscure
|
|
757
|
+
// the real cause and route the dispatcher's retry logic differently.
|
|
758
|
+
//
|
|
759
|
+
// The idle-watchdog flag is checked between max-turns and the
|
|
760
|
+
// wall-clock so a stuck subprocess surfaces as a distinct timeout
|
|
761
|
+
// message — the dispatcher's retry semantics are the same as for
|
|
762
|
+
// the wall-clock case, but the audit trail and operator alert
|
|
763
|
+
// call out the idle hang specifically.
|
|
764
|
+
if (maxTurnsExceeded) {
|
|
765
|
+
const err = new BackendDecisiveFailure(this.backendId, "max_turns", new Error(`Gemini execution exceeded max-turns cap of ${maxTurns} (observed ${toolCallCount} tool calls).`));
|
|
766
|
+
logger.error({
|
|
767
|
+
err,
|
|
768
|
+
eventType: params.eventType,
|
|
769
|
+
model: params.modelId,
|
|
770
|
+
toolCallCount,
|
|
771
|
+
maxTurns,
|
|
772
|
+
durationMs: Date.now() - startMs,
|
|
773
|
+
}, "Gemini execute hit max_turns");
|
|
774
|
+
throw err;
|
|
775
|
+
}
|
|
776
|
+
if (idleTimedOut) {
|
|
777
|
+
const err = new BackendDecisiveFailure(this.backendId, "timeout", new Error(`Gemini reactive stream went idle for ${REACTIVE_IDLE_TIMEOUT_MS}ms (no events from CLI subprocess)`));
|
|
778
|
+
logger.error({ err, eventType: params.eventType, model: params.modelId, durationMs: Date.now() - startMs }, "Gemini execute idle-timed-out");
|
|
779
|
+
throw err;
|
|
780
|
+
}
|
|
582
781
|
if (runResult.timedOut) {
|
|
583
782
|
const err = new BackendDecisiveFailure(this.backendId, "timeout", new Error(`Gemini execution exceeded timeout of ${this.config.executeTimeoutMinutes} minutes`));
|
|
584
783
|
logger.error({ err, eventType: params.eventType, model: params.modelId, durationMs: Date.now() - startMs }, "Gemini execute timed out");
|
|
@@ -610,7 +809,19 @@ export class GeminiCliCore {
|
|
|
610
809
|
const costUsd = Object.values(modelUsage)
|
|
611
810
|
.reduce((total, usage) => total + usage.costUsd, 0)
|
|
612
811
|
|| estimatedCost.costUsd;
|
|
613
|
-
|
|
812
|
+
// Hand the post-hoc budget assertion the exact spend it would
|
|
813
|
+
// otherwise be unable to recover — same shape Codex uses so the
|
|
814
|
+
// dispatcher's `BackendQuotaError` audit-row writer doesn't need a
|
|
815
|
+
// per-backend branch. `numTurns` here matches the success-branch
|
|
816
|
+
// formula below (`toolCallCount + 1`) so a budget-rejected and a
|
|
817
|
+
// successful run with the same tool fan-out report the same turn
|
|
818
|
+
// count.
|
|
819
|
+
this.assertWithinMaxBudget(costUsd, params.maxBudgetUsd, actualModelId, {
|
|
820
|
+
usage: normalizedUsage,
|
|
821
|
+
costSource: Object.keys(modelUsage).length > 0 ? costSource : estimatedCost.costSource,
|
|
822
|
+
numTurns: toolCallCount + 1,
|
|
823
|
+
durationMs: Date.now() - startMs,
|
|
824
|
+
});
|
|
614
825
|
if (output && !streamed) {
|
|
615
826
|
streamCallbacks?.onText?.(output);
|
|
616
827
|
}
|
|
@@ -636,7 +847,13 @@ export class GeminiCliCore {
|
|
|
636
847
|
costUsd,
|
|
637
848
|
usage: normalizedUsage,
|
|
638
849
|
modelUsage,
|
|
639
|
-
|
|
850
|
+
// Each `tool_use` event indicates one model→tool turn; the
|
|
851
|
+
// surrounding final assistant message is one more turn — so
|
|
852
|
+
// `toolCallCount + 1` matches the Codex contract (which increments
|
|
853
|
+
// `numTurns` on `turn.started`). Parallel tool calls in a single
|
|
854
|
+
// model turn marginally over-count; that aligns conservatively with
|
|
855
|
+
// the max-turns cap above (we cut off sooner rather than later).
|
|
856
|
+
numTurns: toolCallCount + 1,
|
|
640
857
|
durationMs,
|
|
641
858
|
durationApiMs,
|
|
642
859
|
model: actualModelId,
|
|
@@ -648,6 +865,11 @@ export class GeminiCliCore {
|
|
|
648
865
|
};
|
|
649
866
|
}
|
|
650
867
|
finally {
|
|
868
|
+
// Stop the reactive idle watchdog FIRST so its interval doesn't
|
|
869
|
+
// leak across the cleanup path. Safe to call even when start()
|
|
870
|
+
// was never reached (the runTurn body might have thrown before
|
|
871
|
+
// start()) — IdleWatchdog.stop is idempotent.
|
|
872
|
+
idleWatchdog.stop();
|
|
651
873
|
if (ownsSessionDir) {
|
|
652
874
|
this.readTokenManager?.revoke(sessionDir);
|
|
653
875
|
}
|
|
@@ -1448,7 +1670,26 @@ ${fetchClause}`;
|
|
|
1448
1670
|
return new BackendQuotaError(this.backendId, "max_budget_usd", null, message);
|
|
1449
1671
|
}
|
|
1450
1672
|
if (/rate limit|quota|429/i.test(message)) {
|
|
1451
|
-
|
|
1673
|
+
// Best-effort reset-time extraction so the dashboard can surface
|
|
1674
|
+
// "quota resets at HH:MM (TZ)". Google API quota errors often carry
|
|
1675
|
+
// "Quota exceeded ... reset time YYYY-MM-DDTHH:MM:SSZ" or a
|
|
1676
|
+
// retry-after offset; the helper falls through to null otherwise.
|
|
1677
|
+
return new BackendQuotaError(this.backendId, "rate_limited", extractGenericQuotaResetHint(message), message);
|
|
1678
|
+
}
|
|
1679
|
+
// Policy-deny classification must run BEFORE the auth branch — the
|
|
1680
|
+
// generated TOML's deny messages can legitimately contain words like
|
|
1681
|
+
// "required" or "login" (e.g. a future "<X> login is not permitted in
|
|
1682
|
+
// daemon mode" rule), and we don't want those to mis-tag as `auth`
|
|
1683
|
+
// and trigger an auth-recovery flow when the real cause is the agent
|
|
1684
|
+
// attempting a forbidden tool call. The match targets the wrap the
|
|
1685
|
+
// Gemini CLI emits today for TOML deny hits — `Error executing tool
|
|
1686
|
+
// …: Tool execution denied by policy. <denyMessage>`. Tight enough to
|
|
1687
|
+
// avoid false positives on real auth/quota messages; not claimed to
|
|
1688
|
+
// be exhaustive across other Gemini policy surfaces (sandbox kills,
|
|
1689
|
+
// MCP allowlist, future hook variants), which can be added here as
|
|
1690
|
+
// they're observed in the wild.
|
|
1691
|
+
if (/tool execution denied|denied by policy/i.test(message)) {
|
|
1692
|
+
return new BackendDecisiveFailure(this.backendId, "policy_denied", new Error(message));
|
|
1452
1693
|
}
|
|
1453
1694
|
if (/authentication page|oauth|api key|login|required/i.test(message)) {
|
|
1454
1695
|
return new BackendDecisiveFailure(this.backendId, "auth", new Error(message));
|
|
@@ -1458,11 +1699,22 @@ ${fetchClause}`;
|
|
|
1458
1699
|
}
|
|
1459
1700
|
return new BackendDecisiveFailure(this.backendId, "other_non_retryable", new Error(message));
|
|
1460
1701
|
}
|
|
1461
|
-
assertWithinMaxBudget(costUsd, maxBudgetUsd, modelId
|
|
1702
|
+
assertWithinMaxBudget(costUsd, maxBudgetUsd, modelId,
|
|
1703
|
+
/**
|
|
1704
|
+
* Mirrors `CodexCore.assertWithinMaxBudget` — Gemini also enforces the
|
|
1705
|
+
* per-turn budget post-hoc (by the time we reject here Google has
|
|
1706
|
+
* already consumed tokens), so attach the actual spend so the
|
|
1707
|
+
* dispatcher's error path can write a `result='failed'` agent_actions
|
|
1708
|
+
* row with `cost_usd` / `numTurns` / `durationMs` populated. Without
|
|
1709
|
+
* this, budget-rejected Gemini runs silently drop their spend on the
|
|
1710
|
+
* success-only audit path — the same dashboard gap the Codex fix
|
|
1711
|
+
* closed. See `BackendQuotaSpend` for the full contract.
|
|
1712
|
+
*/
|
|
1713
|
+
spend) {
|
|
1462
1714
|
if (maxBudgetUsd === undefined || costUsd <= maxBudgetUsd) {
|
|
1463
1715
|
return;
|
|
1464
1716
|
}
|
|
1465
|
-
throw new BackendQuotaError(this.backendId, "max_budget_usd", null, `Gemini CLI estimated cost $${costUsd.toFixed(4)} exceeded the per-turn budget limit $${maxBudgetUsd.toFixed(2)} for ${modelId}
|
|
1717
|
+
throw new BackendQuotaError(this.backendId, "max_budget_usd", null, `Gemini CLI estimated cost $${costUsd.toFixed(4)} exceeded the per-turn budget limit $${maxBudgetUsd.toFixed(2)} for ${modelId}.`, spend ? { ...spend, modelId, costUsd } : null);
|
|
1466
1718
|
}
|
|
1467
1719
|
assertPromptWithinMaxBudget(prompt, maxBudgetUsd, modelId) {
|
|
1468
1720
|
if (maxBudgetUsd === undefined) {
|
|
@@ -1509,7 +1761,11 @@ ${fetchClause}`;
|
|
|
1509
1761
|
* and `notion` (user-installed Notion MCP server registered as
|
|
1510
1762
|
* `notion`). Gmail and Calendar are also in `PROXY_DRIVEN_INTEGRATIONS`,
|
|
1511
1763
|
* so a Claude/Codex DM session with `delegatedBackend = "gemini"` for
|
|
1512
|
-
* either
|
|
1764
|
+
* either reaches this method through the internal
|
|
1765
|
+
* `DelegatedBackendInvoker.invoke()` API (the underlying transport
|
|
1766
|
+
* lives behind the daemon's hourly drift-detection worker and behind
|
|
1767
|
+
* `/api/integrations/:key/exec` task-mode dispatch; the legacy
|
|
1768
|
+
* `/api/integrations/:key/invoke` RPC route was retired 2026-05-01).
|
|
1513
1769
|
*/
|
|
1514
1770
|
async runDelegatedTool(params) {
|
|
1515
1771
|
const startMs = Date.now();
|
|
@@ -1619,13 +1875,17 @@ ${fetchClause}`;
|
|
|
1619
1875
|
proxyAborter.abort(new DelegatedProxyTimeoutError(`gemini stream idle for ${idleMs}ms (limit ${idleTimeoutMs}ms)`));
|
|
1620
1876
|
},
|
|
1621
1877
|
});
|
|
1878
|
+
const daemonReadToken = this.readTokenManager?.issue(sessionDir) ?? this.readToken;
|
|
1622
1879
|
try {
|
|
1623
1880
|
idleWatchdog.start();
|
|
1624
1881
|
const runResult = await runLineCommand({
|
|
1625
1882
|
command: this.cliPath,
|
|
1626
1883
|
args,
|
|
1627
1884
|
cwd: sessionDir,
|
|
1628
|
-
env: buildDaemonApiCliEnv(sessionDir, this.config.apiPort, {
|
|
1885
|
+
env: buildDaemonApiCliEnv(sessionDir, this.config.apiPort, {
|
|
1886
|
+
...(daemonReadToken ? { readToken: daemonReadToken } : {}),
|
|
1887
|
+
sessionBackend: "gemini",
|
|
1888
|
+
}),
|
|
1629
1889
|
// Safety-net timeout, derived from the invoker's per-backend
|
|
1630
1890
|
// abort timeout (`callTimeoutMsByBackend.gemini`). We add a 60s
|
|
1631
1891
|
// grace window so the abort signal *always* fires first and we
|
|
@@ -1880,6 +2140,10 @@ ${fetchClause}`;
|
|
|
1880
2140
|
// Stop the idle watchdog before listener cleanup so a late-firing
|
|
1881
2141
|
// poll cannot abort an already-resolved subprocess.
|
|
1882
2142
|
idleWatchdog.stop();
|
|
2143
|
+
// Invoker owns sessionDir lifecycle, but the readToken scope is keyed
|
|
2144
|
+
// on the same path — revoke here so a leaked token cannot outlive the
|
|
2145
|
+
// delegated proxy run.
|
|
2146
|
+
this.readTokenManager?.revoke(sessionDir);
|
|
1883
2147
|
// Drop the listener regardless of how the call resolved so a
|
|
1884
2148
|
// long-lived caller signal doesn't accumulate references across
|
|
1885
2149
|
// back-to-back proxy invocations.
|
|
@@ -2002,12 +2266,16 @@ ${fetchClause}`;
|
|
|
2002
2266
|
const destructiveSet = allowDestructive
|
|
2003
2267
|
? new Set()
|
|
2004
2268
|
: new Set(destructiveTools);
|
|
2269
|
+
const daemonReadToken = this.readTokenManager?.issue(sessionDir) ?? this.readToken;
|
|
2005
2270
|
try {
|
|
2006
2271
|
const runResult = await runLineCommand({
|
|
2007
2272
|
command: this.cliPath,
|
|
2008
2273
|
args,
|
|
2009
2274
|
cwd: sessionDir,
|
|
2010
|
-
env: buildDaemonApiCliEnv(sessionDir, this.config.apiPort, {
|
|
2275
|
+
env: buildDaemonApiCliEnv(sessionDir, this.config.apiPort, {
|
|
2276
|
+
...(daemonReadToken ? { readToken: daemonReadToken } : {}),
|
|
2277
|
+
sessionBackend: "gemini",
|
|
2278
|
+
}),
|
|
2011
2279
|
timeoutMs: (DELEGATED_PROXY_DEFAULTS.callTimeoutMsByBackend.gemini
|
|
2012
2280
|
?? DELEGATED_PROXY_DEFAULTS.callTimeoutMs)
|
|
2013
2281
|
+ 60_000,
|
|
@@ -2079,6 +2347,18 @@ ${fetchClause}`;
|
|
|
2079
2347
|
return;
|
|
2080
2348
|
}
|
|
2081
2349
|
if (event.type === "message" && event.role === "assistant") {
|
|
2350
|
+
// Reasoning gate — mirror the executeTurn path. Gemini CLI
|
|
2351
|
+
// 0.x's emerging "thought" channel surfaces inside an
|
|
2352
|
+
// assistant-role message via `messageType: "thought"`.
|
|
2353
|
+
// The delegated-task surface ultimately returns
|
|
2354
|
+
// `rawAssistantText` to the dispatcher's structured-output
|
|
2355
|
+
// validator, so a leaked thought would either fail JSON
|
|
2356
|
+
// parsing (parse_error wrapped around reasoning content)
|
|
2357
|
+
// or land verbatim in delegated-task traces. Drop here
|
|
2358
|
+
// before any accumulation.
|
|
2359
|
+
if (event.messageType === "thought") {
|
|
2360
|
+
return;
|
|
2361
|
+
}
|
|
2082
2362
|
assistantTurns += 1;
|
|
2083
2363
|
const content = typeof event.content === "string" ? event.content : "";
|
|
2084
2364
|
if (!content)
|
|
@@ -2225,6 +2505,9 @@ ${fetchClause}`;
|
|
|
2225
2505
|
};
|
|
2226
2506
|
}
|
|
2227
2507
|
finally {
|
|
2508
|
+
// See runDelegatedTool — invoker owns the dir, but the readToken scope
|
|
2509
|
+
// matches the dir path and must not outlive the run.
|
|
2510
|
+
this.readTokenManager?.revoke(sessionDir);
|
|
2228
2511
|
if (abortSignal) {
|
|
2229
2512
|
abortSignal.removeEventListener("abort", callerListener);
|
|
2230
2513
|
}
|