@aitne/daemon 0.1.7 → 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 -1480
- 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/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,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §5.1 / §5.8 / Phase 3 — assemble the
|
|
3
|
+
* complete `OpencodeRuntimeConfig` envelope a session needs.
|
|
4
|
+
*
|
|
5
|
+
* Inputs (already normalised by caller):
|
|
6
|
+
* - `modelId`: provider/model composite from the BackendRouter.
|
|
7
|
+
* - `executionMode`: per-backend Safe/Allow posture.
|
|
8
|
+
* - `disallowedTools`: per-session denylist (Claude-shaped).
|
|
9
|
+
* - `allowedToolsOverride`: dashboard widen list (Claude-shaped) or null.
|
|
10
|
+
* - `mcpRender`: result of `renderOpencodeMcp` — the per-session `mcp`
|
|
11
|
+
* map plus warnings the dashboard surfaces.
|
|
12
|
+
*
|
|
13
|
+
* Outputs:
|
|
14
|
+
* - `config`: the envelope to pass through to `serverManager.ensureConfig()`
|
|
15
|
+
* (which hashes it and bounces the server if it differs from the
|
|
16
|
+
* running hash). Per §5.1 the daemon ALWAYS emits a full self-contained
|
|
17
|
+
* JSON — no field is left to the merge layer.
|
|
18
|
+
* - `warnings`: collected from both translators so the dashboard can
|
|
19
|
+
* show the operator which entries opencode can't express verbatim.
|
|
20
|
+
*
|
|
21
|
+
* Self-contained invariant: every field on `OpencodeRuntimeConfig` is
|
|
22
|
+
* explicit (or deliberately omitted) so the daemon's behaviour does not
|
|
23
|
+
* depend on the merge-vs-replace semantics of `OPENCODE_CONFIG_CONTENT`
|
|
24
|
+
* (§10 D1, deferred). This means a same-envelope second turn produces a
|
|
25
|
+
* bit-identical config and skips the bounce (§5.1 cost model).
|
|
26
|
+
*
|
|
27
|
+
* Pure function — no I/O, no DB reads. Wired into `OpencodeCore.execute()`
|
|
28
|
+
* after `materializeMcpForSession` resolves the per-backend MCP list.
|
|
29
|
+
*/
|
|
30
|
+
import { type ExecutionPermissionMode, type OpencodeMcpServerConfig, type OpencodeRuntimeConfig } from "@aitne/shared";
|
|
31
|
+
export interface OpencodeConfigBuilderInput {
|
|
32
|
+
modelId: string;
|
|
33
|
+
executionMode: ExecutionPermissionMode;
|
|
34
|
+
disallowedTools: readonly string[];
|
|
35
|
+
allowedToolsOverride: readonly string[] | null;
|
|
36
|
+
mcpDisallowed: readonly string[];
|
|
37
|
+
/**
|
|
38
|
+
* Per-session MCP map (already filtered to enabled + opencode-targeted
|
|
39
|
+
* + name-linted by `renderOpencodeMcp`). Empty when no MCP targets the
|
|
40
|
+
* session.
|
|
41
|
+
*/
|
|
42
|
+
mcp: Record<string, OpencodeMcpServerConfig>;
|
|
43
|
+
/**
|
|
44
|
+
* V1+V2 — `AGENTS.md` and `.claude/skills/<name>/SKILL.md` are
|
|
45
|
+
* auto-discovered from the session cwd. The default is therefore an
|
|
46
|
+
* EMPTY instructions array; the daemon explicitly omits the field.
|
|
47
|
+
* Operators set `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` to force-emit
|
|
48
|
+
* the defensive glob list.
|
|
49
|
+
*/
|
|
50
|
+
defensiveInstructions?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Extra hard-disable tool entries (e.g. `read: false` when a session
|
|
53
|
+
* must have zero read capability). Composed with the V8 subagent
|
|
54
|
+
* suppression (`task: false`) the builder always emits.
|
|
55
|
+
*/
|
|
56
|
+
extraHardDisable?: Record<string, boolean>;
|
|
57
|
+
}
|
|
58
|
+
export interface OpencodeConfigBuilderResult {
|
|
59
|
+
config: OpencodeRuntimeConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Operator-facing notices from the permission translator and the MCP
|
|
62
|
+
* renderer. Dashboard surfaces these inline on the runtime-config
|
|
63
|
+
* preview tile.
|
|
64
|
+
*/
|
|
65
|
+
warnings: string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build the complete `OpencodeRuntimeConfig` for a session.
|
|
69
|
+
*
|
|
70
|
+
* Ordering invariants (locked by `opencode-config-builder.test.ts`):
|
|
71
|
+
* 1. The per-session translator's output is built FIRST (so warnings
|
|
72
|
+
* reflect what the operator configured).
|
|
73
|
+
* 2. The absolute-block layer is merged on top — its denies always win
|
|
74
|
+
* over any per-session allow.
|
|
75
|
+
* 3. `tools` is composed as `{ task: false, …caller-extras, …read-hard-
|
|
76
|
+
* disable }` — the order matches the JSON serialisation order and
|
|
77
|
+
* keeps the hash stable across same-envelope turns.
|
|
78
|
+
*/
|
|
79
|
+
export declare function buildOpencodeRuntimeConfig(input: OpencodeConfigBuilderInput): OpencodeConfigBuilderResult;
|
|
80
|
+
/**
|
|
81
|
+
* `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` opts in to the defensive
|
|
82
|
+
* `instructions` glob list. Centralised here so callers don't repeat
|
|
83
|
+
* the env-var-name string.
|
|
84
|
+
*/
|
|
85
|
+
export declare function defensiveInstructionsFromEnv(env?: NodeJS.ProcessEnv): boolean;
|
|
86
|
+
//# sourceMappingURL=opencode-config-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-config-builder.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-config-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAEL,KAAK,uBAAuB,EAE5B,KAAK,uBAAuB,EAG5B,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,uBAAuB,CAAC;IACvC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oBAAoB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC7C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,qBAAqB,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwFD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,GAChC,2BAA2B,CAoD7B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §5.1 / §5.8 / Phase 3 — assemble the
|
|
3
|
+
* complete `OpencodeRuntimeConfig` envelope a session needs.
|
|
4
|
+
*
|
|
5
|
+
* Inputs (already normalised by caller):
|
|
6
|
+
* - `modelId`: provider/model composite from the BackendRouter.
|
|
7
|
+
* - `executionMode`: per-backend Safe/Allow posture.
|
|
8
|
+
* - `disallowedTools`: per-session denylist (Claude-shaped).
|
|
9
|
+
* - `allowedToolsOverride`: dashboard widen list (Claude-shaped) or null.
|
|
10
|
+
* - `mcpRender`: result of `renderOpencodeMcp` — the per-session `mcp`
|
|
11
|
+
* map plus warnings the dashboard surfaces.
|
|
12
|
+
*
|
|
13
|
+
* Outputs:
|
|
14
|
+
* - `config`: the envelope to pass through to `serverManager.ensureConfig()`
|
|
15
|
+
* (which hashes it and bounces the server if it differs from the
|
|
16
|
+
* running hash). Per §5.1 the daemon ALWAYS emits a full self-contained
|
|
17
|
+
* JSON — no field is left to the merge layer.
|
|
18
|
+
* - `warnings`: collected from both translators so the dashboard can
|
|
19
|
+
* show the operator which entries opencode can't express verbatim.
|
|
20
|
+
*
|
|
21
|
+
* Self-contained invariant: every field on `OpencodeRuntimeConfig` is
|
|
22
|
+
* explicit (or deliberately omitted) so the daemon's behaviour does not
|
|
23
|
+
* depend on the merge-vs-replace semantics of `OPENCODE_CONFIG_CONTENT`
|
|
24
|
+
* (§10 D1, deferred). This means a same-envelope second turn produces a
|
|
25
|
+
* bit-identical config and skips the bounce (§5.1 cost model).
|
|
26
|
+
*
|
|
27
|
+
* Pure function — no I/O, no DB reads. Wired into `OpencodeCore.execute()`
|
|
28
|
+
* after `materializeMcpForSession` resolves the per-backend MCP list.
|
|
29
|
+
*/
|
|
30
|
+
import { buildOpencodePermission, } from "@aitne/shared";
|
|
31
|
+
import { buildOpencodeAbsoluteBlockPermission } from "../../safety/always-disallowed.js";
|
|
32
|
+
/**
|
|
33
|
+
* Defensive `instructions` glob list (V12 — only useful when the
|
|
34
|
+
* session cwd is symlinked or chrooted in a way that defeats
|
|
35
|
+
* auto-discovery). Skills are intentionally NOT listed here — including
|
|
36
|
+
* `.claude/skills/**\/SKILL.md` would inflate the system prompt with
|
|
37
|
+
* every skill body. Skills auto-discover separately via opencode's
|
|
38
|
+
* `skill` tool (§5.5).
|
|
39
|
+
*/
|
|
40
|
+
const DEFENSIVE_INSTRUCTIONS = [
|
|
41
|
+
"AGENTS.md",
|
|
42
|
+
".opencode/agent/*.md",
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Merge two `OpencodePermissionConfig` blocks. The second argument
|
|
46
|
+
* **wins** for whole-key collisions — absolute-block entries override
|
|
47
|
+
* any user-configured allow/deny. For the `bash` pattern-map, the merge
|
|
48
|
+
* is per-pattern with `b` winning.
|
|
49
|
+
*
|
|
50
|
+
* Why per-pattern merge: a Phase-3 acceptance gate requires that an
|
|
51
|
+
* operator who explicitly allows `Bash(npm *)` does not have their
|
|
52
|
+
* allow erased by the absolute-block layer (which has no `npm *` deny).
|
|
53
|
+
* Same-pattern collisions deny-wins because the absolute-block layer
|
|
54
|
+
* is non-negotiable.
|
|
55
|
+
*/
|
|
56
|
+
function mergePermissions(base, override) {
|
|
57
|
+
const out = { ...base };
|
|
58
|
+
// bash — pattern-map vs triple merge
|
|
59
|
+
if (override.bash !== undefined) {
|
|
60
|
+
out.bash = mergeBash(base.bash, override.bash);
|
|
61
|
+
}
|
|
62
|
+
// triple-only keys — override wins (absolute-block layer never emits
|
|
63
|
+
// these today, but kept future-proof).
|
|
64
|
+
if (override.edit !== undefined)
|
|
65
|
+
out.edit = override.edit;
|
|
66
|
+
if (override.webfetch !== undefined)
|
|
67
|
+
out.webfetch = override.webfetch;
|
|
68
|
+
if (override.doom_loop !== undefined)
|
|
69
|
+
out.doom_loop = override.doom_loop;
|
|
70
|
+
if (override.external_directory !== undefined) {
|
|
71
|
+
out.external_directory = override.external_directory;
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
function mergeBash(base, override) {
|
|
76
|
+
// Override is a triple: it is by definition the strongest expression on
|
|
77
|
+
// this key, so it wins wholesale.
|
|
78
|
+
if (typeof override === "string")
|
|
79
|
+
return override;
|
|
80
|
+
if (base === undefined) {
|
|
81
|
+
return { ...override };
|
|
82
|
+
}
|
|
83
|
+
if (typeof base === "string") {
|
|
84
|
+
// Base is a wholesale triple ("deny" / "ask" / "allow" — only "deny"
|
|
85
|
+
// is reachable today via bare `Bash` in disallowedTools, but the
|
|
86
|
+
// future-proof branches stay so a per-session translator gaining
|
|
87
|
+
// bash:"ask"/"allow" emission later does not silently regress).
|
|
88
|
+
//
|
|
89
|
+
// The override is a pattern map of absolute-block denies. We MUST
|
|
90
|
+
// preserve base's wholesale semantic, otherwise a user who said
|
|
91
|
+
// "deny all bash" (bare `Bash`) would see their policy silently
|
|
92
|
+
// widened to "deny only the absolute-block patterns" once those
|
|
93
|
+
// patterns merge in. Encode the wholesale semantic as a `"*"`
|
|
94
|
+
// catch-all on the merged pattern map — opencode's pattern matcher
|
|
95
|
+
// prefers specific patterns over `*`, so the absolute-block entries
|
|
96
|
+
// remain enforceable AND the catch-all carries the base value for
|
|
97
|
+
// every unlisted command.
|
|
98
|
+
const merged = { ...override };
|
|
99
|
+
if (merged["*"] === undefined) {
|
|
100
|
+
merged["*"] = base;
|
|
101
|
+
}
|
|
102
|
+
return merged;
|
|
103
|
+
}
|
|
104
|
+
// Both are pattern-maps. Merge — override wins per-key.
|
|
105
|
+
const merged = { ...base };
|
|
106
|
+
for (const [pat, value] of Object.entries(override)) {
|
|
107
|
+
merged[pat] = value;
|
|
108
|
+
}
|
|
109
|
+
return merged;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Build the complete `OpencodeRuntimeConfig` for a session.
|
|
113
|
+
*
|
|
114
|
+
* Ordering invariants (locked by `opencode-config-builder.test.ts`):
|
|
115
|
+
* 1. The per-session translator's output is built FIRST (so warnings
|
|
116
|
+
* reflect what the operator configured).
|
|
117
|
+
* 2. The absolute-block layer is merged on top — its denies always win
|
|
118
|
+
* over any per-session allow.
|
|
119
|
+
* 3. `tools` is composed as `{ task: false, …caller-extras, …read-hard-
|
|
120
|
+
* disable }` — the order matches the JSON serialisation order and
|
|
121
|
+
* keeps the hash stable across same-envelope turns.
|
|
122
|
+
*/
|
|
123
|
+
export function buildOpencodeRuntimeConfig(input) {
|
|
124
|
+
const warnings = [];
|
|
125
|
+
const perSession = buildOpencodePermission({
|
|
126
|
+
disallowedTools: input.disallowedTools,
|
|
127
|
+
allowedToolsOverride: input.allowedToolsOverride ?? null,
|
|
128
|
+
mcpDisallowed: input.mcpDisallowed,
|
|
129
|
+
mode: input.executionMode,
|
|
130
|
+
});
|
|
131
|
+
warnings.push(...perSession.warnings);
|
|
132
|
+
const absolute = buildOpencodeAbsoluteBlockPermission();
|
|
133
|
+
warnings.push(...absolute.warnings);
|
|
134
|
+
// mergePermissions: per-session is the base, absolute-block is the
|
|
135
|
+
// override. This produces "absolute wins" semantics for any same-key
|
|
136
|
+
// collision in the bash pattern map.
|
|
137
|
+
const permission = mergePermissions(perSession.permission, absolute.permission);
|
|
138
|
+
const tools = {
|
|
139
|
+
// V8 — subagent suppression. opencode's `task` tool spawns subagents
|
|
140
|
+
// outside the daemon's audit/stream surface; we always disable it.
|
|
141
|
+
task: false,
|
|
142
|
+
...(input.extraHardDisable ?? {}),
|
|
143
|
+
...perSession.toolsHardDisable,
|
|
144
|
+
};
|
|
145
|
+
const config = {
|
|
146
|
+
tools,
|
|
147
|
+
permission,
|
|
148
|
+
};
|
|
149
|
+
// Only emit `model` when the composite parses as provider/model. The
|
|
150
|
+
// server falls back to its own configured default when the field is
|
|
151
|
+
// omitted; this keeps the bounce-hash stable when callers (tests)
|
|
152
|
+
// pass an ad-hoc model id.
|
|
153
|
+
if (input.modelId.includes("/")) {
|
|
154
|
+
config.model = input.modelId;
|
|
155
|
+
}
|
|
156
|
+
if (Object.keys(input.mcp).length > 0) {
|
|
157
|
+
config.mcp = input.mcp;
|
|
158
|
+
}
|
|
159
|
+
if (input.defensiveInstructions) {
|
|
160
|
+
config.instructions = [...DEFENSIVE_INSTRUCTIONS];
|
|
161
|
+
}
|
|
162
|
+
return { config, warnings };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* `PA_OPENCODE_DEFENSIVE_INSTRUCTIONS=1` opts in to the defensive
|
|
166
|
+
* `instructions` glob list. Centralised here so callers don't repeat
|
|
167
|
+
* the env-var-name string.
|
|
168
|
+
*/
|
|
169
|
+
export function defensiveInstructionsFromEnv(env = process.env) {
|
|
170
|
+
return env.PA_OPENCODE_DEFENSIVE_INSTRUCTIONS === "1";
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=opencode-config-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-config-builder.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-config-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §6.2 — `IAgentCore` implementation backed by
|
|
3
|
+
* the `@opencode-ai/sdk` HTTP server.
|
|
4
|
+
*
|
|
5
|
+
* Surface:
|
|
6
|
+
* - `execute()` end-to-end against the managed server (loopback)
|
|
7
|
+
* - `executeResume()` reuses an existing opencode session id so the
|
|
8
|
+
* dispatcher's multi-turn DM / dashboard-chat / docs-QA path can
|
|
9
|
+
* own opencode as main backend (see
|
|
10
|
+
* `docs/design/appendices/opencode-execute-resume.md`)
|
|
11
|
+
* - Streaming text deltas relayed through the StreamCallbacks
|
|
12
|
+
* - Cost / token telemetry from `client.session.get(...).data`,
|
|
13
|
+
* scoped to a per-turn delta when resuming (pre-turn snapshot
|
|
14
|
+
* subtracted from post-turn cumulative)
|
|
15
|
+
* - `summarize()` V11 round-trip
|
|
16
|
+
* - `runDelegatedTask()` via spawnEphemeral (Path A)
|
|
17
|
+
* - Stub for `runDelegatedTool` (by design — opencode delegation
|
|
18
|
+
* routes through `runDelegatedTask`)
|
|
19
|
+
* - Per-execute wall-clock abort via `AbortController` →
|
|
20
|
+
* `client.session.abort()`
|
|
21
|
+
*/
|
|
22
|
+
import { type AgentResult, type BackendModel } from "@aitne/shared";
|
|
23
|
+
import type { AgentConfig } from "../../config.js";
|
|
24
|
+
import type { AgentWriteTracker } from "../../safety/agent-write-tracker.js";
|
|
25
|
+
import type { AgentExecuteParams, AgentResumeParams, AuthCheckResult, DelegatedTaskInvokeParams, DelegatedTaskResultRaw, DelegatedToolInvokeParams, DelegatedToolResult, IAgentCore, McpSessionContext, ReadSensitiveTokenManager, StreamCallbacks } from "../agent-core.js";
|
|
26
|
+
import { PriceFetcher } from "./price-fetcher.js";
|
|
27
|
+
import { extractToolUsesFromParts } from "./opencode-event-mapper.js";
|
|
28
|
+
import type { OpencodeServerManager } from "./opencode-server-manager.js";
|
|
29
|
+
/**
|
|
30
|
+
* Provider/model parse for the SDK's `body.model = { providerID, modelID }`
|
|
31
|
+
* shape. opencode encodes the composite as `providerID/modelID` — note
|
|
32
|
+
* the model id itself may contain slashes (e.g. `openai/gpt-oss-20b:free`
|
|
33
|
+
* on OpenRouter), so we only split on the FIRST `/`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseModelComposite(composite: string): {
|
|
36
|
+
providerID: string;
|
|
37
|
+
modelID: string;
|
|
38
|
+
} | null;
|
|
39
|
+
export interface LiveOpencodeModel {
|
|
40
|
+
/** Composite the daemon stores in `process_backend_config.main_model`. */
|
|
41
|
+
modelId: string;
|
|
42
|
+
/** Model id without the provider prefix, for display. */
|
|
43
|
+
shortId: string;
|
|
44
|
+
name: string;
|
|
45
|
+
family: string;
|
|
46
|
+
tier: "lite" | "medium" | "high";
|
|
47
|
+
supportsToolUse: boolean;
|
|
48
|
+
supportsAttachment: boolean;
|
|
49
|
+
supportsReasoning: boolean;
|
|
50
|
+
maxInputTokens: number | null;
|
|
51
|
+
maxOutputTokens: number | null;
|
|
52
|
+
usdPer1kIn: number | null;
|
|
53
|
+
usdPer1kOut: number | null;
|
|
54
|
+
isFree: boolean;
|
|
55
|
+
status: string;
|
|
56
|
+
}
|
|
57
|
+
export interface LiveOpencodeProviderGroup {
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
source: string;
|
|
61
|
+
models: LiveOpencodeModel[];
|
|
62
|
+
}
|
|
63
|
+
export interface LiveOpencodeModelsResponse {
|
|
64
|
+
providers: LiveOpencodeProviderGroup[];
|
|
65
|
+
fetchedAt: string;
|
|
66
|
+
cached: boolean;
|
|
67
|
+
}
|
|
68
|
+
export declare class OpencodeCore implements IAgentCore {
|
|
69
|
+
private readonly config;
|
|
70
|
+
private readonly writeTracker;
|
|
71
|
+
private readonly serverManager;
|
|
72
|
+
private readonly priceFetcher;
|
|
73
|
+
readonly backendId: "opencode";
|
|
74
|
+
private liveModelsCache;
|
|
75
|
+
/** Coalesce parallel `listLiveModels()` calls onto a single SDK round-trip.
|
|
76
|
+
* Mirrors the inflight pattern in `ManagedOpencodeServerManager.spawn()`
|
|
77
|
+
* so a dashboard burst (picker open + RQ background refresh) doesn't
|
|
78
|
+
* multiply `client.config.providers()` calls. */
|
|
79
|
+
private liveModelsInflight;
|
|
80
|
+
private readToken;
|
|
81
|
+
private readTokenManager;
|
|
82
|
+
private mcpContext;
|
|
83
|
+
constructor(config: AgentConfig, writeTracker: AgentWriteTracker, serverManager: OpencodeServerManager, priceFetcher?: PriceFetcher);
|
|
84
|
+
setReadToken(token: string): void;
|
|
85
|
+
setReadTokenManager(manager: ReadSensitiveTokenManager): void;
|
|
86
|
+
setMcpContext(context: McpSessionContext): void;
|
|
87
|
+
/**
|
|
88
|
+
* Materialises a session workdir, ensures the server is running with
|
|
89
|
+
* the desired runtime config, opens a fresh session via the SDK, then
|
|
90
|
+
* runs prompt + event-stream consumption in parallel. Per-execute
|
|
91
|
+
* timeout cancels the inflight prompt via `client.session.abort()`.
|
|
92
|
+
*/
|
|
93
|
+
execute(params: AgentExecuteParams, streamCallbacks?: StreamCallbacks): Promise<AgentResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Resume a prior turn against an existing opencode session id. The
|
|
96
|
+
* dispatcher reaches this when `conversation_sessions.backend_session_id`
|
|
97
|
+
* was previously written by `execute()`. opencode persists sessions on
|
|
98
|
+
* disk, so the same id stays addressable across server restarts; we
|
|
99
|
+
* skip `session.create` and re-enter via `session.prompt({ path: { id } })`.
|
|
100
|
+
*
|
|
101
|
+
* Design: `docs/design/appendices/opencode-execute-resume.md`.
|
|
102
|
+
*/
|
|
103
|
+
executeResume(params: AgentResumeParams, streamCallbacks?: StreamCallbacks): Promise<AgentResult>;
|
|
104
|
+
/**
|
|
105
|
+
* docs/design/appendices/opencode-backend.md §6.2 / §10 D5 / V11 — opencode-side
|
|
106
|
+
* summarisation flow.
|
|
107
|
+
*
|
|
108
|
+
* 1. Open a transient session so the server has a conversation it
|
|
109
|
+
* can summarise (opencode requires non-empty message history
|
|
110
|
+
* before `session.summarize` will produce a body).
|
|
111
|
+
* 2. Prompt with the conversation text under the lite-tier model
|
|
112
|
+
* (`DEFAULT_OPENCODE_LITE_MODEL`) — small_model isn't honoured
|
|
113
|
+
* here because Aitne disables `task` (V8) so opencode's own
|
|
114
|
+
* subagent path never picks small_model up. Cheap & quick on the
|
|
115
|
+
* same provider as the active turn.
|
|
116
|
+
* 3. Call `client.session.summarize({ path: { id }, body: { providerID, modelID } })`
|
|
117
|
+
* — body is FLAT, NOT nested in a `model` wrapper (V11 contract).
|
|
118
|
+
* Returns `{ data: true }` on HTTP 200; the actual summary lands
|
|
119
|
+
* as a new assistant message with `info.summary === true`.
|
|
120
|
+
* 4. Read `client.session.messages({ path: { id } })` and pick the
|
|
121
|
+
* LAST assistant message with `info.summary === true`. Join its
|
|
122
|
+
* text parts as the markdown summary. (Do NOT read
|
|
123
|
+
* `session.get(...).data.summary` — V11 fixture confirms that
|
|
124
|
+
* field is the diff stat block `{ additions, deletions, files }`,
|
|
125
|
+
* not text.)
|
|
126
|
+
* 5. Best-effort `session.delete()` in a `finally` so the transient
|
|
127
|
+
* session row doesn't accumulate on disk.
|
|
128
|
+
*
|
|
129
|
+
* Falls back to a truncated slice on any failure so a caller flowing
|
|
130
|
+
* through a fallback chain still gets *something* — matching the
|
|
131
|
+
* Codex/Gemini summarize contract (return string, never throw).
|
|
132
|
+
*/
|
|
133
|
+
summarize(text: string): Promise<string>;
|
|
134
|
+
/**
|
|
135
|
+
* Lightweight auth presence check. Mirrors Codex's pattern: prefer a
|
|
136
|
+
* keychain-mirrored env var (`OPENCODE_SERVER_PASSWORD` for remote);
|
|
137
|
+
* for the managed loopback server, the daemon owns the credentials so
|
|
138
|
+
* "configured" is sufficient. The deeper "is the provider key
|
|
139
|
+
* accepted?" check is exercised by `checkAuthDetailed`.
|
|
140
|
+
*/
|
|
141
|
+
checkAuth(): Promise<{
|
|
142
|
+
ok: true;
|
|
143
|
+
method: "cli_login" | "api_key" | "oauth" | "vertex";
|
|
144
|
+
} | {
|
|
145
|
+
ok: false;
|
|
146
|
+
reason: string;
|
|
147
|
+
}>;
|
|
148
|
+
checkAuthDetailed(): Promise<AuthCheckResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Phase 5 §4.11 — opencode does NOT expose namespaced `mcp__*` tool
|
|
151
|
+
* names through `client.tool.ids()` in 1.14.50 (V7 fixture confirms).
|
|
152
|
+
* Live probe is therefore unsupported on this backend in v1; the
|
|
153
|
+
* route surfaces this as a 501 with a targeted message. Phase 5+ may
|
|
154
|
+
* unlock once `mcp.status()`/`tool.list()` surfaces MCP tools.
|
|
155
|
+
*/
|
|
156
|
+
probeTools(): Promise<string[]>;
|
|
157
|
+
/**
|
|
158
|
+
* Static-registry first; Phase 6 (§6.6.2 wizard probe) extends this
|
|
159
|
+
* via `serverManager.listModels()` once the live-server enumeration
|
|
160
|
+
* lands. Today the registry seed is sufficient for `BackendRouter`
|
|
161
|
+
* bindings.
|
|
162
|
+
*/
|
|
163
|
+
listModels(): ReadonlyArray<BackendModel>;
|
|
164
|
+
/**
|
|
165
|
+
* Live model enumeration over `client.config.providers()`. Returns the
|
|
166
|
+
* full catalogue an operator can pick from — every provider the live
|
|
167
|
+
* opencode server has credentials for, with capability + cost metadata.
|
|
168
|
+
* Cached in-memory for 5 minutes so the picker doesn't re-bounce the
|
|
169
|
+
* server on every keystroke.
|
|
170
|
+
*
|
|
171
|
+
* Security: the raw `client.config.providers()` response includes
|
|
172
|
+
* `provider.key` (plaintext API key). This method NEVER returns that
|
|
173
|
+
* field — the caller surfaces what's projected here, not the raw SDK
|
|
174
|
+
* response.
|
|
175
|
+
*/
|
|
176
|
+
listLiveModels(options?: {
|
|
177
|
+
forceRefresh?: boolean;
|
|
178
|
+
}): Promise<LiveOpencodeModelsResponse>;
|
|
179
|
+
private fetchLiveModels;
|
|
180
|
+
runDelegatedTool(_params: DelegatedToolInvokeParams): Promise<DelegatedToolResult>;
|
|
181
|
+
runDelegatedTask(params: DelegatedTaskInvokeParams): Promise<DelegatedTaskResultRaw>;
|
|
182
|
+
private runTurn;
|
|
183
|
+
/**
|
|
184
|
+
* docs/design/appendices/opencode-backend.md §5.9 / Phase 4 — opencode delegated-task
|
|
185
|
+
* execution.
|
|
186
|
+
*
|
|
187
|
+
* Implementation choice (v1): spawn an isolated ephemeral server
|
|
188
|
+
* with tight permission JSON for each delegated call. The design's
|
|
189
|
+
* preferred default is Path B (long-lived primary + per-agent
|
|
190
|
+
* permission frontmatter written mid-session), but Phase 0's V5
|
|
191
|
+
* fixture left the agent-file hot-reload behaviour an open question
|
|
192
|
+
* (§5.9 "Open item" — agent file was pre-created in V5). spawnEphemeral
|
|
193
|
+
* sidesteps the hot-reload concern entirely with a deterministic
|
|
194
|
+
* ~900 ms p50 spawn cost (V6 measurement); volume on delegated paths
|
|
195
|
+
* is low enough that the cost-isolation trade-off favours
|
|
196
|
+
* predictability. The router's `params.isolation === "ephemeral"`
|
|
197
|
+
* intent is the same as our default here, so callers that explicitly
|
|
198
|
+
* request ephemeral isolation get exactly what they asked for.
|
|
199
|
+
*
|
|
200
|
+
* Path B (long-lived primary + per-agent file reuse) can land
|
|
201
|
+
* incrementally once V5's open question is resolved against a real
|
|
202
|
+
* opencode server — see §5.9 Phase 3-blocked checklist row.
|
|
203
|
+
*
|
|
204
|
+
* Per-call envelope:
|
|
205
|
+
* - Tight `permission` JSON: every triple-keyed write tool
|
|
206
|
+
* (`edit`, `bash`, `webfetch`, `doom_loop`, `external_directory`)
|
|
207
|
+
* defaults to `deny`. The absolute-block layer's bash
|
|
208
|
+
* pattern-map merges on top so destructive shapes stay denied.
|
|
209
|
+
* - `tools.task: false` (V8 — kill subagent spawning) plus
|
|
210
|
+
* `tools.read: false` and `tools.write: false` for the
|
|
211
|
+
* non-MCP read/write tools (no permission triple exists for
|
|
212
|
+
* `read`; hard-disable is the only opencode 1.14.50 surface).
|
|
213
|
+
* - MCP map carries only the integration's connectors per
|
|
214
|
+
* `setMcpContext`; per-tool MCP deny is server-level only in v1
|
|
215
|
+
* (§5.6 v1 strategy) — disallowed connectors are simply not
|
|
216
|
+
* materialised.
|
|
217
|
+
* - `model` set to `params.modelId`.
|
|
218
|
+
*
|
|
219
|
+
* Stream pre-emption: opencode 1.14.50 does NOT emit
|
|
220
|
+
* `message.part.updated` events during a turn (V9 — see §5.3), so
|
|
221
|
+
* tool-call data is only available from the FINAL `session.prompt`
|
|
222
|
+
* response. The pre-emption check therefore happens AFTER the turn
|
|
223
|
+
* completes — `policy_violation` / `loop_aborted` classifications
|
|
224
|
+
* still surface, but the subprocess has already executed any
|
|
225
|
+
* out-of-envelope MCP call by the time we see it. Mitigation:
|
|
226
|
+
* 1. Server-level permission denies non-MCP write tools at
|
|
227
|
+
* enforcement time (the model receives a tool error and stops).
|
|
228
|
+
* 2. The MCP map only carries the integration's allowed
|
|
229
|
+
* connectors, so non-allowed MCP tools are unreachable.
|
|
230
|
+
* 3. The post-turn pre-emption check is the audit layer — it
|
|
231
|
+
* classifies whether the turn violated policy for telemetry.
|
|
232
|
+
* If opencode begins emitting streamed tool-call events, this method
|
|
233
|
+
* migrates to the live pre-emption pattern Codex uses; the post-
|
|
234
|
+
* extraction check stays as the back-stop.
|
|
235
|
+
*/
|
|
236
|
+
private runDelegatedTaskAgainstEphemeral;
|
|
237
|
+
/**
|
|
238
|
+
* OPENCODE_BACKEND_DESIGN §5.1 / §5.8 — assemble the full per-session
|
|
239
|
+
* `OpencodeRuntimeConfig` envelope. Async because MCP materialization
|
|
240
|
+
* resolves secrets via the encrypted blob store.
|
|
241
|
+
*
|
|
242
|
+
* Self-contained: every field is set explicitly (or deliberately
|
|
243
|
+
* omitted), so the server-manager's bounce hash is stable across
|
|
244
|
+
* same-envelope turns. The §5.1 invariant.
|
|
245
|
+
*/
|
|
246
|
+
private buildRuntimeConfig;
|
|
247
|
+
/**
|
|
248
|
+
* Per-session MCP materialization. Unlike Claude / Codex / Gemini —
|
|
249
|
+
* which write a backend-specific file under `<sessionDir>/.mcp.json`
|
|
250
|
+
* or `.codex/config.toml` — OpenCode receives MCP servers inline via
|
|
251
|
+
* `OPENCODE_CONFIG_CONTENT` (§5.1). The daemon therefore renders
|
|
252
|
+
* directly into a `Record<string, McpLocalConfig | McpRemoteConfig>`
|
|
253
|
+
* map and feeds it into `buildOpencodeRuntimeConfig`.
|
|
254
|
+
*
|
|
255
|
+
* Returns the rendered map + the autonomous-strip disallowedTools so
|
|
256
|
+
* the config builder can surface those as MCP-server warnings
|
|
257
|
+
* (per-tool MCP deny isn't expressible in opencode 1.14.50 — §5.6).
|
|
258
|
+
*/
|
|
259
|
+
private materializeMcp;
|
|
260
|
+
private consumeEventStream;
|
|
261
|
+
private assertPromptWithinMaxBudget;
|
|
262
|
+
private assertWithinMaxBudget;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* docs/design/appendices/opencode-backend.md §5.8 synthetic absolute-block audit. For
|
|
266
|
+
* every tool call extracted from the final `session.prompt` response,
|
|
267
|
+
* route through the shared `auditStreamObservation` chokepoint so a
|
|
268
|
+
* `blocked_absolute` row with `result='partial'` is written on a match.
|
|
269
|
+
*
|
|
270
|
+
* Two-step pipeline keeps the classifier centralised:
|
|
271
|
+
* 1. `extractOpencodeToolUseTarget` — opencode-specific tool/arg
|
|
272
|
+
* normalisation (`bash` / `read` / `write` / `edit` / `apply_patch`).
|
|
273
|
+
* 2. `auditStreamObservation` — runs `classifyAbsoluteBlock` against
|
|
274
|
+
* the normalised target and writes the audit row when matched.
|
|
275
|
+
*
|
|
276
|
+
* Why the `partial` result code: opencode enforces the deny inside the
|
|
277
|
+
* permission JSON at server side, which the daemon does not directly
|
|
278
|
+
* observe. The audit row records *that the agent attempted* a pattern
|
|
279
|
+
* the absolute-block layer covers — useful even if the underlying
|
|
280
|
+
* enforcement happened correctly server-side, and *critical* if a future
|
|
281
|
+
* permission-JSON regression silently let the call through.
|
|
282
|
+
*
|
|
283
|
+
* Exported for `opencode-core.test.ts` so the synthetic audit can be
|
|
284
|
+
* exercised without spinning up a full server.
|
|
285
|
+
*/
|
|
286
|
+
export declare function auditOpencodeTools(tools: ReturnType<typeof extractToolUsesFromParts>, deps: {
|
|
287
|
+
db: import("better-sqlite3").Database | undefined;
|
|
288
|
+
mode: import("@aitne/shared").ExecutionPermissionMode;
|
|
289
|
+
sessionId: number | null;
|
|
290
|
+
}): void;
|
|
291
|
+
/**
|
|
292
|
+
* docs/design/appendices/opencode-backend.md Phase 4 — Stage 2 hourly-check triage
|
|
293
|
+
* schema. Mirrors the `parseStage2Verdict` text contract
|
|
294
|
+
* (`dispatcher-types.ts`): the agent must return exactly
|
|
295
|
+
* `{ "action": "log_only" | "escalate", "reason": string }`. Opencode
|
|
296
|
+
* validates against this schema with `retryCount: 2` server-side, then
|
|
297
|
+
* surfaces the parsed object at `info.structured`.
|
|
298
|
+
*
|
|
299
|
+
* Exported for the regression test that exercises the json_schema
|
|
300
|
+
* round-trip without spinning up a real opencode server.
|
|
301
|
+
*/
|
|
302
|
+
export declare const STAGE2_TRIAGE_JSON_SCHEMA: {
|
|
303
|
+
readonly type: "object";
|
|
304
|
+
readonly properties: {
|
|
305
|
+
readonly action: {
|
|
306
|
+
readonly type: "string";
|
|
307
|
+
readonly enum: readonly ["log_only", "escalate"];
|
|
308
|
+
};
|
|
309
|
+
readonly reason: {
|
|
310
|
+
readonly type: "string";
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
readonly required: readonly ["action", "reason"];
|
|
314
|
+
readonly additionalProperties: false;
|
|
315
|
+
};
|
|
316
|
+
//# sourceMappingURL=opencode-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-core.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-core.ts"],"names":[],"mappings":"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"}
|