@aitne/daemon 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/dashboard-adapter.d.ts +18 -2
- package/dist/adapters/dashboard-adapter.d.ts.map +1 -1
- package/dist/adapters/dashboard-adapter.js +101 -51
- package/dist/adapters/dashboard-adapter.js.map +1 -1
- package/dist/adapters/discord.d.ts +8 -0
- package/dist/adapters/discord.d.ts.map +1 -1
- package/dist/adapters/discord.js +100 -21
- package/dist/adapters/discord.js.map +1 -1
- package/dist/adapters/message-hub.d.ts.map +1 -1
- package/dist/adapters/message-hub.js +7 -1
- package/dist/adapters/message-hub.js.map +1 -1
- package/dist/adapters/notification-manager.d.ts +102 -2
- package/dist/adapters/notification-manager.d.ts.map +1 -1
- package/dist/adapters/notification-manager.js +228 -8
- package/dist/adapters/notification-manager.js.map +1 -1
- package/dist/adapters/outbound-text.d.ts +16 -0
- package/dist/adapters/outbound-text.d.ts.map +1 -1
- package/dist/adapters/outbound-text.js +118 -1
- package/dist/adapters/outbound-text.js.map +1 -1
- package/dist/adapters/primary-platform-resolver.d.ts +69 -0
- package/dist/adapters/primary-platform-resolver.d.ts.map +1 -0
- package/dist/adapters/primary-platform-resolver.js +55 -0
- package/dist/adapters/primary-platform-resolver.js.map +1 -0
- package/dist/adapters/slack-adapter.d.ts +28 -0
- package/dist/adapters/slack-adapter.d.ts.map +1 -1
- package/dist/adapters/slack-adapter.js +134 -35
- package/dist/adapters/slack-adapter.js.map +1 -1
- package/dist/adapters/telegram-adapter.d.ts +7 -1
- package/dist/adapters/telegram-adapter.d.ts.map +1 -1
- package/dist/adapters/telegram-adapter.js +49 -18
- package/dist/adapters/telegram-adapter.js.map +1 -1
- package/dist/adapters/whatsapp-adapter.d.ts +33 -0
- package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
- package/dist/adapters/whatsapp-adapter.js +84 -0
- package/dist/adapters/whatsapp-adapter.js.map +1 -1
- package/dist/api/directory-picker.d.ts.map +1 -1
- package/dist/api/directory-picker.js +14 -0
- package/dist/api/directory-picker.js.map +1 -1
- package/dist/api/env-writer.d.ts.map +1 -1
- package/dist/api/env-writer.js +6 -1
- package/dist/api/env-writer.js.map +1 -1
- package/dist/api/helpers/agent-errors.d.ts +2600 -0
- package/dist/api/helpers/agent-errors.d.ts.map +1 -0
- package/dist/api/helpers/agent-errors.js +2506 -0
- package/dist/api/helpers/agent-errors.js.map +1 -0
- package/dist/api/integration-route-gate.d.ts.map +1 -1
- package/dist/api/integration-route-gate.js +10 -3
- package/dist/api/integration-route-gate.js.map +1 -1
- package/dist/api/routes/agent-schedule-plan-match.d.ts +5 -0
- package/dist/api/routes/agent-schedule-plan-match.d.ts.map +1 -0
- package/dist/api/routes/agent-schedule-plan-match.js +101 -0
- package/dist/api/routes/agent-schedule-plan-match.js.map +1 -0
- package/dist/api/routes/agent-schedule.d.ts +4 -0
- package/dist/api/routes/agent-schedule.d.ts.map +1 -0
- package/dist/api/routes/agent-schedule.js +750 -0
- package/dist/api/routes/agent-schedule.js.map +1 -0
- package/dist/api/routes/agent.d.ts.map +1 -1
- package/dist/api/routes/agent.js +209 -366
- package/dist/api/routes/agent.js.map +1 -1
- package/dist/api/routes/apple-calendar.d.ts.map +1 -1
- package/dist/api/routes/apple-calendar.js +109 -27
- package/dist/api/routes/apple-calendar.js.map +1 -1
- package/dist/api/routes/attachments.d.ts.map +1 -1
- package/dist/api/routes/attachments.js +113 -21
- package/dist/api/routes/attachments.js.map +1 -1
- package/dist/api/routes/backends.d.ts.map +1 -1
- package/dist/api/routes/backends.js +100 -4
- package/dist/api/routes/backends.js.map +1 -1
- package/dist/api/routes/books.d.ts.map +1 -1
- package/dist/api/routes/books.js +58 -18
- package/dist/api/routes/books.js.map +1 -1
- package/dist/api/routes/calendar.d.ts +3 -2
- package/dist/api/routes/calendar.d.ts.map +1 -1
- package/dist/api/routes/calendar.js +330 -55
- package/dist/api/routes/calendar.js.map +1 -1
- package/dist/api/routes/commands.d.ts.map +1 -1
- package/dist/api/routes/commands.js +20 -1
- package/dist/api/routes/commands.js.map +1 -1
- package/dist/api/routes/context/index.d.ts +33 -0
- package/dist/api/routes/context/index.d.ts.map +1 -0
- package/dist/api/routes/context/index.js +193 -0
- package/dist/api/routes/context/index.js.map +1 -0
- package/dist/api/routes/context/locks.d.ts +4 -0
- package/dist/api/routes/context/locks.d.ts.map +1 -0
- package/dist/api/routes/context/locks.js +136 -0
- package/dist/api/routes/context/locks.js.map +1 -0
- package/dist/api/routes/context/path-resolve.d.ts +15 -0
- package/dist/api/routes/context/path-resolve.d.ts.map +1 -0
- package/dist/api/routes/context/path-resolve.js +109 -0
- package/dist/api/routes/context/path-resolve.js.map +1 -0
- package/dist/api/routes/context/permissions.d.ts +35 -0
- package/dist/api/routes/context/permissions.d.ts.map +1 -0
- package/dist/api/routes/context/permissions.js +192 -0
- package/dist/api/routes/context/permissions.js.map +1 -0
- package/dist/api/routes/context/read.d.ts +4 -0
- package/dist/api/routes/context/read.d.ts.map +1 -0
- package/dist/api/routes/context/read.js +295 -0
- package/dist/api/routes/context/read.js.map +1 -0
- package/dist/api/routes/context/repair.d.ts +4 -0
- package/dist/api/routes/context/repair.d.ts.map +1 -0
- package/dist/api/routes/context/repair.js +114 -0
- package/dist/api/routes/context/repair.js.map +1 -0
- package/dist/api/routes/context/snapshots.d.ts +4 -0
- package/dist/api/routes/context/snapshots.d.ts.map +1 -0
- package/dist/api/routes/context/snapshots.js +177 -0
- package/dist/api/routes/context/snapshots.js.map +1 -0
- package/dist/api/routes/context/write.d.ts +4 -0
- package/dist/api/routes/context/write.d.ts.map +1 -0
- package/dist/api/routes/context/write.js +570 -0
- package/dist/api/routes/context/write.js.map +1 -0
- package/dist/api/routes/context.d.ts +2 -43
- package/dist/api/routes/context.d.ts.map +1 -1
- package/dist/api/routes/context.js +415 -558
- package/dist/api/routes/context.js.map +1 -1
- package/dist/api/routes/dashboard/config.d.ts +4 -0
- package/dist/api/routes/dashboard/config.d.ts.map +1 -0
- package/dist/api/routes/dashboard/config.js +499 -0
- package/dist/api/routes/dashboard/config.js.map +1 -0
- package/dist/api/routes/dashboard/conversations.d.ts +4 -0
- package/dist/api/routes/dashboard/conversations.d.ts.map +1 -0
- package/dist/api/routes/dashboard/conversations.js +309 -0
- package/dist/api/routes/dashboard/conversations.js.map +1 -0
- package/dist/api/routes/dashboard/cost-approvals.d.ts +29 -0
- package/dist/api/routes/dashboard/cost-approvals.d.ts.map +1 -0
- package/dist/api/routes/dashboard/cost-approvals.js +259 -0
- package/dist/api/routes/dashboard/cost-approvals.js.map +1 -0
- package/dist/api/routes/dashboard/index.d.ts +27 -0
- package/dist/api/routes/dashboard/index.d.ts.map +1 -0
- package/dist/api/routes/dashboard/index.js +47 -0
- package/dist/api/routes/dashboard/index.js.map +1 -0
- package/dist/api/routes/dashboard/messaging.d.ts +4 -0
- package/dist/api/routes/dashboard/messaging.d.ts.map +1 -0
- package/dist/api/routes/dashboard/messaging.js +351 -0
- package/dist/api/routes/dashboard/messaging.js.map +1 -0
- package/dist/api/routes/dashboard/notifications.d.ts +4 -0
- package/dist/api/routes/dashboard/notifications.d.ts.map +1 -0
- package/dist/api/routes/dashboard/notifications.js +109 -0
- package/dist/api/routes/dashboard/notifications.js.map +1 -0
- package/dist/api/routes/dashboard/oauth-google.d.ts +4 -0
- package/dist/api/routes/dashboard/oauth-google.d.ts.map +1 -0
- package/dist/api/routes/dashboard/oauth-google.js +293 -0
- package/dist/api/routes/dashboard/oauth-google.js.map +1 -0
- package/dist/api/routes/dashboard/schedule-readonly.d.ts +4 -0
- package/dist/api/routes/dashboard/schedule-readonly.d.ts.map +1 -0
- package/dist/api/routes/dashboard/schedule-readonly.js +46 -0
- package/dist/api/routes/dashboard/schedule-readonly.js.map +1 -0
- package/dist/api/routes/dashboard/secrets.d.ts +24 -0
- package/dist/api/routes/dashboard/secrets.d.ts.map +1 -0
- package/dist/api/routes/dashboard/secrets.js +307 -0
- package/dist/api/routes/dashboard/secrets.js.map +1 -0
- package/dist/api/routes/dashboard/snapshots.d.ts +4 -0
- package/dist/api/routes/dashboard/snapshots.d.ts.map +1 -0
- package/dist/api/routes/dashboard/snapshots.js +33 -0
- package/dist/api/routes/dashboard/snapshots.js.map +1 -0
- package/dist/api/routes/dashboard.d.ts.map +1 -1
- package/dist/api/routes/dashboard.js +20 -12
- package/dist/api/routes/dashboard.js.map +1 -1
- package/dist/api/routes/delegated.d.ts +5 -4
- package/dist/api/routes/delegated.d.ts.map +1 -1
- package/dist/api/routes/delegated.js +6 -5
- package/dist/api/routes/delegated.js.map +1 -1
- package/dist/api/routes/docs.d.ts.map +1 -1
- package/dist/api/routes/docs.js +72 -9
- package/dist/api/routes/docs.js.map +1 -1
- package/dist/api/routes/entities.d.ts.map +1 -1
- package/dist/api/routes/entities.js +112 -43
- package/dist/api/routes/entities.js.map +1 -1
- package/dist/api/routes/fs.d.ts.map +1 -1
- package/dist/api/routes/fs.js +27 -12
- package/dist/api/routes/fs.js.map +1 -1
- package/dist/api/routes/git-templates.d.ts.map +1 -1
- package/dist/api/routes/git-templates.js +107 -27
- package/dist/api/routes/git-templates.js.map +1 -1
- package/dist/api/routes/git.d.ts.map +1 -1
- package/dist/api/routes/git.js +55 -11
- package/dist/api/routes/git.js.map +1 -1
- package/dist/api/routes/github.d.ts.map +1 -1
- package/dist/api/routes/github.js +110 -17
- package/dist/api/routes/github.js.map +1 -1
- package/dist/api/routes/integrations/crud-patch.d.ts +17 -0
- package/dist/api/routes/integrations/crud-patch.d.ts.map +1 -0
- package/dist/api/routes/integrations/crud-patch.js +600 -0
- package/dist/api/routes/integrations/crud-patch.js.map +1 -0
- package/dist/api/routes/integrations/crud.d.ts +16 -0
- package/dist/api/routes/integrations/crud.d.ts.map +1 -0
- package/dist/api/routes/integrations/crud.js +158 -0
- package/dist/api/routes/integrations/crud.js.map +1 -0
- package/dist/api/routes/integrations/exec.d.ts +23 -0
- package/dist/api/routes/integrations/exec.d.ts.map +1 -0
- package/dist/api/routes/integrations/exec.js +356 -0
- package/dist/api/routes/integrations/exec.js.map +1 -0
- package/dist/api/routes/integrations/index.d.ts +62 -0
- package/dist/api/routes/integrations/index.d.ts.map +1 -0
- package/dist/api/routes/integrations/index.js +70 -0
- package/dist/api/routes/integrations/index.js.map +1 -0
- package/dist/api/routes/integrations/integrations/crud.d.ts +16 -0
- package/dist/api/routes/integrations/integrations/crud.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/crud.js +158 -0
- package/dist/api/routes/integrations/integrations/crud.js.map +1 -0
- package/dist/api/routes/integrations/integrations/index.d.ts +55 -0
- package/dist/api/routes/integrations/integrations/index.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/index.js +65 -0
- package/dist/api/routes/integrations/integrations/index.js.map +1 -0
- package/dist/api/routes/integrations/integrations/invoke.d.ts +38 -0
- package/dist/api/routes/integrations/integrations/invoke.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/invoke.js +320 -0
- package/dist/api/routes/integrations/integrations/invoke.js.map +1 -0
- package/dist/api/routes/integrations/integrations/probe.d.ts +21 -0
- package/dist/api/routes/integrations/integrations/probe.d.ts.map +1 -0
- package/dist/api/routes/integrations/integrations/probe.js +247 -0
- package/dist/api/routes/integrations/integrations/probe.js.map +1 -0
- package/dist/api/routes/integrations/invoke.d.ts +38 -0
- package/dist/api/routes/integrations/invoke.d.ts.map +1 -0
- package/dist/api/routes/integrations/invoke.js +320 -0
- package/dist/api/routes/integrations/invoke.js.map +1 -0
- package/dist/api/routes/integrations/probe.d.ts +21 -0
- package/dist/api/routes/integrations/probe.d.ts.map +1 -0
- package/dist/api/routes/integrations/probe.js +247 -0
- package/dist/api/routes/integrations/probe.js.map +1 -0
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +65 -13
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/knowledge.d.ts.map +1 -1
- package/dist/api/routes/knowledge.js +13 -2
- package/dist/api/routes/knowledge.js.map +1 -1
- package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.js +192 -0
- package/dist/api/routes/mail/_pa_wip_mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts +55 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.js +2 -0
- package/dist/api/routes/mail/_pa_wip_mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.js +98 -0
- package/dist/api/routes/mail/_pa_wip_mail/gating.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js +289 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js +192 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts +55 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js +2 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts +5 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js +139 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js +98 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts +18 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.js +40 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/index.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts +15 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js +239 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js +73 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js +73 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts +5 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js +35 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts +4 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/search-health.js.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.js +131 -0
- package/dist/api/routes/mail/_pa_wip_mail/validators.js.map +1 -0
- package/dist/api/routes/mail/accounts.d.ts +4 -0
- package/dist/api/routes/mail/accounts.d.ts.map +1 -0
- package/dist/api/routes/mail/accounts.js +289 -0
- package/dist/api/routes/mail/accounts.js.map +1 -0
- package/dist/api/routes/mail/app-password.d.ts +4 -0
- package/dist/api/routes/mail/app-password.d.ts.map +1 -0
- package/dist/api/routes/mail/app-password.js +192 -0
- package/dist/api/routes/mail/app-password.js.map +1 -0
- package/dist/api/routes/mail/body-helpers.d.ts +56 -0
- package/dist/api/routes/mail/body-helpers.d.ts.map +1 -0
- package/dist/api/routes/mail/body-helpers.js +91 -0
- package/dist/api/routes/mail/body-helpers.js.map +1 -0
- package/dist/api/routes/mail/dependencies.d.ts +36 -0
- package/dist/api/routes/mail/dependencies.d.ts.map +1 -0
- package/dist/api/routes/mail/dependencies.js +2 -0
- package/dist/api/routes/mail/dependencies.js.map +1 -0
- package/dist/api/routes/mail/drafts.d.ts +5 -0
- package/dist/api/routes/mail/drafts.d.ts.map +1 -0
- package/dist/api/routes/mail/drafts.js +139 -0
- package/dist/api/routes/mail/drafts.js.map +1 -0
- package/dist/api/routes/mail/gating.d.ts +45 -0
- package/dist/api/routes/mail/gating.d.ts.map +1 -0
- package/dist/api/routes/mail/gating.js +99 -0
- package/dist/api/routes/mail/gating.js.map +1 -0
- package/dist/api/routes/mail/index.d.ts +18 -0
- package/dist/api/routes/mail/index.d.ts.map +1 -0
- package/dist/api/routes/mail/index.js +40 -0
- package/dist/api/routes/mail/index.js.map +1 -0
- package/dist/api/routes/mail/messages.d.ts +15 -0
- package/dist/api/routes/mail/messages.d.ts.map +1 -0
- package/dist/api/routes/mail/messages.js +239 -0
- package/dist/api/routes/mail/messages.js.map +1 -0
- package/dist/api/routes/mail/outlook-config.d.ts +4 -0
- package/dist/api/routes/mail/outlook-config.d.ts.map +1 -0
- package/dist/api/routes/mail/outlook-config.js +73 -0
- package/dist/api/routes/mail/outlook-config.js.map +1 -0
- package/dist/api/routes/mail/provider-resolver.d.ts +64 -0
- package/dist/api/routes/mail/provider-resolver.d.ts.map +1 -0
- package/dist/api/routes/mail/provider-resolver.js +286 -0
- package/dist/api/routes/mail/provider-resolver.js.map +1 -0
- package/dist/api/routes/mail/providers.d.ts +4 -0
- package/dist/api/routes/mail/providers.d.ts.map +1 -0
- package/dist/api/routes/mail/providers.js +73 -0
- package/dist/api/routes/mail/providers.js.map +1 -0
- package/dist/api/routes/mail/search-health.d.ts +4 -0
- package/dist/api/routes/mail/search-health.d.ts.map +1 -0
- package/dist/api/routes/mail/search-health.js +131 -0
- package/dist/api/routes/mail/search-health.js.map +1 -0
- package/dist/api/routes/mail/tags-folders.d.ts +5 -0
- package/dist/api/routes/mail/tags-folders.d.ts.map +1 -0
- package/dist/api/routes/mail/tags-folders.js +35 -0
- package/dist/api/routes/mail/tags-folders.js.map +1 -0
- package/dist/api/routes/mail/validators.d.ts +23 -0
- package/dist/api/routes/mail/validators.d.ts.map +1 -0
- package/dist/api/routes/mail/validators.js +131 -0
- package/dist/api/routes/mail/validators.js.map +1 -0
- package/dist/api/routes/mail.d.ts.map +1 -1
- package/dist/api/routes/mail.js +259 -67
- package/dist/api/routes/mail.js.map +1 -1
- package/dist/api/routes/managed-tasks.d.ts.map +1 -1
- package/dist/api/routes/managed-tasks.js +142 -54
- package/dist/api/routes/managed-tasks.js.map +1 -1
- package/dist/api/routes/mcp.d.ts.map +1 -1
- package/dist/api/routes/mcp.js +115 -47
- package/dist/api/routes/mcp.js.map +1 -1
- package/dist/api/routes/metrics.d.ts +1 -1
- package/dist/api/routes/metrics.js +2 -2
- package/dist/api/routes/notion.d.ts.map +1 -1
- package/dist/api/routes/notion.js +230 -54
- package/dist/api/routes/notion.js.map +1 -1
- package/dist/api/routes/observations.d.ts.map +1 -1
- package/dist/api/routes/observations.js +40 -169
- package/dist/api/routes/observations.js.map +1 -1
- package/dist/api/routes/obsidian.d.ts.map +1 -1
- package/dist/api/routes/obsidian.js +193 -32
- package/dist/api/routes/obsidian.js.map +1 -1
- package/dist/api/routes/profile-questions.d.ts.map +1 -1
- package/dist/api/routes/profile-questions.js +19 -3
- package/dist/api/routes/profile-questions.js.map +1 -1
- package/dist/api/routes/receipts.d.ts.map +1 -1
- package/dist/api/routes/receipts.js +64 -24
- package/dist/api/routes/receipts.js.map +1 -1
- package/dist/api/routes/recurring-schedules.d.ts.map +1 -1
- package/dist/api/routes/recurring-schedules.js +243 -13
- package/dist/api/routes/recurring-schedules.js.map +1 -1
- package/dist/api/routes/repositories.d.ts.map +1 -1
- package/dist/api/routes/repositories.js +278 -104
- package/dist/api/routes/repositories.js.map +1 -1
- package/dist/api/routes/schedule-model-resolver.d.ts +153 -0
- package/dist/api/routes/schedule-model-resolver.d.ts.map +1 -0
- package/dist/api/routes/schedule-model-resolver.js +282 -0
- package/dist/api/routes/schedule-model-resolver.js.map +1 -0
- package/dist/api/routes/schedule-options.d.ts +25 -0
- package/dist/api/routes/schedule-options.d.ts.map +1 -0
- package/dist/api/routes/schedule-options.js +77 -0
- package/dist/api/routes/schedule-options.js.map +1 -0
- package/dist/api/routes/schedule-validation.d.ts +146 -0
- package/dist/api/routes/schedule-validation.d.ts.map +1 -0
- package/dist/api/routes/schedule-validation.js +153 -0
- package/dist/api/routes/schedule-validation.js.map +1 -0
- package/dist/api/routes/setup.d.ts.map +1 -1
- package/dist/api/routes/setup.js +100 -26
- package/dist/api/routes/setup.js.map +1 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +81 -30
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/api/routes/sot-bindings.d.ts.map +1 -1
- package/dist/api/routes/sot-bindings.js +46 -11
- package/dist/api/routes/sot-bindings.js.map +1 -1
- package/dist/api/routes/sse.d.ts.map +1 -1
- package/dist/api/routes/sse.js +6 -1
- package/dist/api/routes/sse.js.map +1 -1
- package/dist/api/routes/system.d.ts.map +1 -1
- package/dist/api/routes/system.js +15 -2
- package/dist/api/routes/system.js.map +1 -1
- package/dist/api/routes/travel-bookings.d.ts.map +1 -1
- package/dist/api/routes/travel-bookings.js +26 -9
- package/dist/api/routes/travel-bookings.js.map +1 -1
- package/dist/api/routes/travel-time.d.ts.map +1 -1
- package/dist/api/routes/travel-time.js +50 -10
- package/dist/api/routes/travel-time.js.map +1 -1
- package/dist/api/routes/wiki.d.ts.map +1 -1
- package/dist/api/routes/wiki.js +49 -8
- package/dist/api/routes/wiki.js.map +1 -1
- package/dist/api/server.d.ts +15 -3
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +32 -10
- package/dist/api/server.js.map +1 -1
- package/dist/bootstrap/adapters.d.ts.map +1 -1
- package/dist/bootstrap/adapters.js +7 -4
- package/dist/bootstrap/adapters.js.map +1 -1
- package/dist/bootstrap/api.d.ts +205 -0
- package/dist/bootstrap/api.d.ts.map +1 -0
- package/dist/bootstrap/api.js +443 -0
- package/dist/bootstrap/api.js.map +1 -0
- package/dist/bootstrap/db.d.ts +119 -0
- package/dist/bootstrap/db.d.ts.map +1 -0
- package/dist/bootstrap/db.js +294 -0
- package/dist/bootstrap/db.js.map +1 -0
- package/dist/bootstrap/event-pipeline.d.ts +308 -0
- package/dist/bootstrap/event-pipeline.d.ts.map +1 -0
- package/dist/bootstrap/event-pipeline.js +704 -0
- package/dist/bootstrap/event-pipeline.js.map +1 -0
- package/dist/bootstrap/observers.d.ts +148 -0
- package/dist/bootstrap/observers.d.ts.map +1 -0
- package/dist/bootstrap/observers.js +558 -0
- package/dist/bootstrap/observers.js.map +1 -0
- package/dist/bootstrap/schedule-helpers.d.ts +122 -0
- package/dist/bootstrap/schedule-helpers.d.ts.map +1 -1
- package/dist/bootstrap/schedule-helpers.js +202 -4
- package/dist/bootstrap/schedule-helpers.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -3
- package/dist/config.js.map +1 -1
- package/dist/core/abort-utils.d.ts +14 -0
- package/dist/core/abort-utils.d.ts.map +1 -0
- package/dist/core/abort-utils.js +36 -0
- package/dist/core/abort-utils.js.map +1 -0
- package/dist/core/agent-core.d.ts +22 -3
- package/dist/core/agent-core.d.ts.map +1 -1
- package/dist/core/agent-core.js +3 -1
- package/dist/core/agent-core.js.map +1 -1
- package/dist/core/backends/auth-health-monitor.js +2 -3
- package/dist/core/backends/auth-health-monitor.js.map +1 -1
- package/dist/core/backends/backend-router.d.ts +11 -1
- package/dist/core/backends/backend-router.d.ts.map +1 -1
- package/dist/core/backends/backend-router.js +97 -2
- package/dist/core/backends/backend-router.js.map +1 -1
- package/dist/core/backends/claude-code-core.d.ts +51 -0
- package/dist/core/backends/claude-code-core.d.ts.map +1 -1
- package/dist/core/backends/claude-code-core.js +134 -11
- package/dist/core/backends/claude-code-core.js.map +1 -1
- package/dist/core/backends/claude-tool-collection.js +1 -1
- package/dist/core/backends/codex-core.d.ts +13 -1
- package/dist/core/backends/codex-core.d.ts.map +1 -1
- package/dist/core/backends/codex-core.js +436 -22
- package/dist/core/backends/codex-core.js.map +1 -1
- package/dist/core/backends/gemini-cli-core.d.ts +5 -1
- package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
- package/dist/core/backends/gemini-cli-core.js +298 -15
- package/dist/core/backends/gemini-cli-core.js.map +1 -1
- package/dist/core/backends/install-methods.d.ts.map +1 -1
- package/dist/core/backends/install-methods.js +22 -0
- package/dist/core/backends/install-methods.js.map +1 -1
- package/dist/core/backends/model-registry.d.ts +9 -4
- package/dist/core/backends/model-registry.d.ts.map +1 -1
- package/dist/core/backends/model-registry.js +153 -23
- package/dist/core/backends/model-registry.js.map +1 -1
- package/dist/core/backends/native-skill-discovery-probe.d.ts +80 -0
- package/dist/core/backends/native-skill-discovery-probe.d.ts.map +1 -0
- package/dist/core/backends/native-skill-discovery-probe.js +175 -0
- package/dist/core/backends/native-skill-discovery-probe.js.map +1 -0
- package/dist/core/backends/opencode-basic-auth-fetch.d.ts +27 -0
- package/dist/core/backends/opencode-basic-auth-fetch.d.ts.map +1 -0
- package/dist/core/backends/opencode-basic-auth-fetch.js +40 -0
- package/dist/core/backends/opencode-basic-auth-fetch.js.map +1 -0
- package/dist/core/backends/opencode-config-builder.d.ts +86 -0
- package/dist/core/backends/opencode-config-builder.d.ts.map +1 -0
- package/dist/core/backends/opencode-config-builder.js +172 -0
- package/dist/core/backends/opencode-config-builder.js.map +1 -0
- package/dist/core/backends/opencode-core.d.ts +316 -0
- package/dist/core/backends/opencode-core.d.ts.map +1 -0
- package/dist/core/backends/opencode-core.js +1502 -0
- package/dist/core/backends/opencode-core.js.map +1 -0
- package/dist/core/backends/opencode-event-mapper.d.ts +133 -0
- package/dist/core/backends/opencode-event-mapper.d.ts.map +1 -0
- package/dist/core/backends/opencode-event-mapper.js +198 -0
- package/dist/core/backends/opencode-event-mapper.js.map +1 -0
- package/dist/core/backends/opencode-mcp.d.ts +82 -0
- package/dist/core/backends/opencode-mcp.d.ts.map +1 -0
- package/dist/core/backends/opencode-mcp.js +165 -0
- package/dist/core/backends/opencode-mcp.js.map +1 -0
- package/dist/core/backends/opencode-server-manager.d.ts +114 -0
- package/dist/core/backends/opencode-server-manager.d.ts.map +1 -0
- package/dist/core/backends/opencode-server-manager.js +222 -0
- package/dist/core/backends/opencode-server-manager.js.map +1 -0
- package/dist/core/backends/opencode-types.d.ts +46 -0
- package/dist/core/backends/opencode-types.d.ts.map +1 -0
- package/dist/core/backends/opencode-types.js +14 -0
- package/dist/core/backends/opencode-types.js.map +1 -0
- package/dist/core/backends/plan-presets.d.ts +18 -5
- package/dist/core/backends/plan-presets.d.ts.map +1 -1
- package/dist/core/backends/plan-presets.js +144 -23
- package/dist/core/backends/plan-presets.js.map +1 -1
- package/dist/core/backends/process-config-cascade.d.ts +35 -0
- package/dist/core/backends/process-config-cascade.d.ts.map +1 -1
- package/dist/core/backends/process-config-cascade.js +35 -1
- package/dist/core/backends/process-config-cascade.js.map +1 -1
- package/dist/core/backends/prompt-utils.d.ts.map +1 -1
- package/dist/core/backends/prompt-utils.js +0 -2
- package/dist/core/backends/prompt-utils.js.map +1 -1
- package/dist/core/backends/quota-reset-hints.d.ts +44 -0
- package/dist/core/backends/quota-reset-hints.d.ts.map +1 -0
- package/dist/core/backends/quota-reset-hints.js +117 -0
- package/dist/core/backends/quota-reset-hints.js.map +1 -0
- package/dist/core/bang-commands/commands-close.d.ts +24 -0
- package/dist/core/bang-commands/commands-close.d.ts.map +1 -0
- package/dist/core/bang-commands/commands-close.js +24 -0
- package/dist/core/bang-commands/commands-close.js.map +1 -0
- package/dist/core/bang-commands/commands-cost.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-cost.js +13 -0
- package/dist/core/bang-commands/commands-cost.js.map +1 -1
- package/dist/core/bang-commands/commands-help.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-help.js +44 -5
- package/dist/core/bang-commands/commands-help.js.map +1 -1
- package/dist/core/bang-commands/commands-report.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-report.js +1 -0
- package/dist/core/bang-commands/commands-report.js.map +1 -1
- package/dist/core/bang-commands/commands-stop-start.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-stop-start.js +2 -0
- package/dist/core/bang-commands/commands-stop-start.js.map +1 -1
- package/dist/core/bang-commands/commands-wiki.d.ts.map +1 -1
- package/dist/core/bang-commands/commands-wiki.js +12 -1
- package/dist/core/bang-commands/commands-wiki.js.map +1 -1
- package/dist/core/bang-commands/format-utils.d.ts +13 -1
- package/dist/core/bang-commands/format-utils.d.ts.map +1 -1
- package/dist/core/bang-commands/format-utils.js +21 -2
- package/dist/core/bang-commands/format-utils.js.map +1 -1
- package/dist/core/bang-commands/index.d.ts +1 -0
- package/dist/core/bang-commands/index.d.ts.map +1 -1
- package/dist/core/bang-commands/index.js +3 -0
- package/dist/core/bang-commands/index.js.map +1 -1
- package/dist/core/bang-commands/registry.d.ts +50 -0
- package/dist/core/bang-commands/registry.d.ts.map +1 -1
- package/dist/core/bang-commands/registry.js +164 -19
- package/dist/core/bang-commands/registry.js.map +1 -1
- package/dist/core/channel-timeline.d.ts +18 -1
- package/dist/core/channel-timeline.d.ts.map +1 -1
- package/dist/core/channel-timeline.js +44 -0
- package/dist/core/channel-timeline.js.map +1 -1
- package/dist/core/context/activity-view-runner.js +9 -1
- package/dist/core/context/activity-view-runner.js.map +1 -1
- package/dist/core/context/default-schedules-runner.js +44 -4
- package/dist/core/context/default-schedules-runner.js.map +1 -1
- package/dist/core/context/domain-index-runner.js +9 -1
- package/dist/core/context/domain-index-runner.js.map +1 -1
- package/dist/core/context/entity-source-rename.d.ts.map +1 -1
- package/dist/core/context/entity-source-rename.js +9 -1
- package/dist/core/context/entity-source-rename.js.map +1 -1
- package/dist/core/context/policy-index-runner.js +9 -1
- package/dist/core/context/policy-index-runner.js.map +1 -1
- package/dist/core/context/reconciler-runner.js +9 -1
- package/dist/core/context/reconciler-runner.js.map +1 -1
- package/dist/core/context-builder.d.ts +97 -2
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +303 -30
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/context-frontmatter.d.ts +6 -0
- package/dist/core/context-frontmatter.d.ts.map +1 -1
- package/dist/core/context-frontmatter.js +120 -8
- package/dist/core/context-frontmatter.js.map +1 -1
- package/dist/core/context-health.js +21 -9
- package/dist/core/context-health.js.map +1 -1
- package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts +19 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.js +19 -0
- package/dist/core/context-validation/_pa_wip_context_validation/index.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts +94 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js +130 -0
- package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts +60 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js +156 -0
- package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts +41 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.js +82 -0
- package/dist/core/context-validation/_pa_wip_context_validation/section.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts +52 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js +110 -0
- package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts +85 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts.map +1 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.js +162 -0
- package/dist/core/context-validation/_pa_wip_context_validation/today.js.map +1 -0
- package/dist/core/context-validation/index.d.ts +19 -0
- package/dist/core/context-validation/index.d.ts.map +1 -0
- package/dist/core/context-validation/index.js +19 -0
- package/dist/core/context-validation/index.js.map +1 -0
- package/dist/core/context-validation/prepare-write.d.ts +95 -0
- package/dist/core/context-validation/prepare-write.d.ts.map +1 -0
- package/dist/core/context-validation/prepare-write.js +135 -0
- package/dist/core/context-validation/prepare-write.js.map +1 -0
- package/dist/core/context-validation/routine-rulebook.d.ts +60 -0
- package/dist/core/context-validation/routine-rulebook.d.ts.map +1 -0
- package/dist/core/context-validation/routine-rulebook.js +156 -0
- package/dist/core/context-validation/routine-rulebook.js.map +1 -0
- package/dist/core/context-validation/section.d.ts +41 -0
- package/dist/core/context-validation/section.d.ts.map +1 -0
- package/dist/core/context-validation/section.js +82 -0
- package/dist/core/context-validation/section.js.map +1 -0
- package/dist/core/context-validation/snapshot-debounce.d.ts +52 -0
- package/dist/core/context-validation/snapshot-debounce.d.ts.map +1 -0
- package/dist/core/context-validation/snapshot-debounce.js +110 -0
- package/dist/core/context-validation/snapshot-debounce.js.map +1 -0
- package/dist/core/context-validation/today.d.ts +85 -0
- package/dist/core/context-validation/today.d.ts.map +1 -0
- package/dist/core/context-validation/today.js +168 -0
- package/dist/core/context-validation/today.js.map +1 -0
- package/dist/core/daemon-api-cli.d.ts +6 -5
- package/dist/core/daemon-api-cli.d.ts.map +1 -1
- package/dist/core/daemon-api-cli.js +73 -32
- package/dist/core/daemon-api-cli.js.map +1 -1
- package/dist/core/dispatcher-error-handling.d.ts +13 -0
- package/dist/core/dispatcher-error-handling.d.ts.map +1 -1
- package/dist/core/dispatcher-error-handling.js +69 -0
- package/dist/core/dispatcher-error-handling.js.map +1 -1
- package/dist/core/dispatcher-hourly-check.d.ts +73 -1
- package/dist/core/dispatcher-hourly-check.d.ts.map +1 -1
- package/dist/core/dispatcher-hourly-check.js +249 -151
- package/dist/core/dispatcher-hourly-check.js.map +1 -1
- package/dist/core/dispatcher-message-handler.d.ts +11 -1
- package/dist/core/dispatcher-message-handler.d.ts.map +1 -1
- package/dist/core/dispatcher-message-handler.js +165 -47
- package/dist/core/dispatcher-message-handler.js.map +1 -1
- package/dist/core/dispatcher-morning-routine.d.ts +38 -30
- package/dist/core/dispatcher-morning-routine.d.ts.map +1 -1
- package/dist/core/dispatcher-morning-routine.js +162 -104
- package/dist/core/dispatcher-morning-routine.js.map +1 -1
- package/dist/core/dispatcher-prompt.d.ts +4 -1
- package/dist/core/dispatcher-prompt.d.ts.map +1 -1
- package/dist/core/dispatcher-prompt.js +18 -2
- package/dist/core/dispatcher-prompt.js.map +1 -1
- package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -1
- package/dist/core/dispatcher-repository-helpers.js +5 -1
- package/dist/core/dispatcher-repository-helpers.js.map +1 -1
- package/dist/core/dispatcher-result-processor.d.ts.map +1 -1
- package/dist/core/dispatcher-result-processor.js +9 -4
- package/dist/core/dispatcher-result-processor.js.map +1 -1
- package/dist/core/dispatcher-scheduled-tasks.d.ts +1 -1
- package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -1
- package/dist/core/dispatcher-scheduled-tasks.js +79 -16
- package/dist/core/dispatcher-scheduled-tasks.js.map +1 -1
- package/dist/core/dispatcher-types.d.ts +84 -12
- package/dist/core/dispatcher-types.d.ts.map +1 -1
- package/dist/core/dispatcher-types.js.map +1 -1
- package/dist/core/dispatcher.d.ts +50 -1
- package/dist/core/dispatcher.d.ts.map +1 -1
- package/dist/core/dispatcher.js +143 -8
- package/dist/core/dispatcher.js.map +1 -1
- package/dist/core/dm-freshness-metrics.d.ts +6 -5
- package/dist/core/dm-freshness-metrics.d.ts.map +1 -1
- package/dist/core/dm-freshness-metrics.js +7 -6
- package/dist/core/dm-freshness-metrics.js.map +1 -1
- package/dist/core/evening-review-verify.d.ts +164 -0
- package/dist/core/evening-review-verify.d.ts.map +1 -0
- package/dist/core/evening-review-verify.js +637 -0
- package/dist/core/evening-review-verify.js.map +1 -0
- package/dist/core/fetch-window-prompt-loader.d.ts +47 -0
- package/dist/core/fetch-window-prompt-loader.d.ts.map +1 -0
- package/dist/core/fetch-window-prompt-loader.js +72 -0
- package/dist/core/fetch-window-prompt-loader.js.map +1 -0
- package/dist/core/management-md.d.ts.map +1 -1
- package/dist/core/management-md.js +23 -9
- package/dist/core/management-md.js.map +1 -1
- package/dist/core/management-registry.d.ts +13 -21
- package/dist/core/management-registry.d.ts.map +1 -1
- package/dist/core/management-registry.js +27 -48
- package/dist/core/management-registry.js.map +1 -1
- package/dist/core/metrics.d.ts +88 -1
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +78 -2
- package/dist/core/metrics.js.map +1 -1
- package/dist/core/morning/agent-journal-appender.d.ts +197 -0
- package/dist/core/morning/agent-journal-appender.d.ts.map +1 -0
- package/dist/core/morning/agent-journal-appender.js +458 -0
- package/dist/core/morning/agent-journal-appender.js.map +1 -0
- package/dist/core/morning/handoff-parser.d.ts +45 -0
- package/dist/core/morning/handoff-parser.d.ts.map +1 -0
- package/dist/core/morning/handoff-parser.js +117 -0
- package/dist/core/morning/handoff-parser.js.map +1 -0
- package/dist/core/morning/journal-skeleton-builder.d.ts +157 -0
- package/dist/core/morning/journal-skeleton-builder.d.ts.map +1 -0
- package/dist/core/morning/journal-skeleton-builder.js +303 -0
- package/dist/core/morning/journal-skeleton-builder.js.map +1 -0
- package/dist/core/morning/orchestrator.d.ts +312 -0
- package/dist/core/morning/orchestrator.d.ts.map +1 -0
- package/dist/core/morning/orchestrator.js +827 -0
- package/dist/core/morning/orchestrator.js.map +1 -0
- package/dist/core/morning/parent-audit-emitter.d.ts +82 -0
- package/dist/core/morning/parent-audit-emitter.d.ts.map +1 -0
- package/dist/core/morning/parent-audit-emitter.js +120 -0
- package/dist/core/morning/parent-audit-emitter.js.map +1 -0
- package/dist/core/morning/roadmap-skeleton-builder.d.ts +159 -0
- package/dist/core/morning/roadmap-skeleton-builder.d.ts.map +1 -0
- package/dist/core/morning/roadmap-skeleton-builder.js +338 -0
- package/dist/core/morning/roadmap-skeleton-builder.js.map +1 -0
- package/dist/core/output-language-policy.js +1 -1
- package/dist/core/output-language-policy.js.map +1 -1
- package/dist/core/policy-files.d.ts +19 -2
- package/dist/core/policy-files.d.ts.map +1 -1
- package/dist/core/policy-files.js +65 -7
- package/dist/core/policy-files.js.map +1 -1
- package/dist/core/pre-pass-freshness.d.ts +28 -0
- package/dist/core/pre-pass-freshness.d.ts.map +1 -0
- package/dist/core/pre-pass-freshness.js +10 -0
- package/dist/core/pre-pass-freshness.js.map +1 -0
- package/dist/core/previous-week-digest.d.ts +130 -0
- package/dist/core/previous-week-digest.d.ts.map +1 -0
- package/dist/core/previous-week-digest.js +257 -0
- package/dist/core/previous-week-digest.js.map +1 -0
- package/dist/core/prompts.js +3 -3
- package/dist/core/prompts.js.map +1 -1
- package/dist/core/quiet-hours-sync.d.ts.map +1 -1
- package/dist/core/quiet-hours-sync.js +7 -0
- package/dist/core/quiet-hours-sync.js.map +1 -1
- package/dist/core/recurrence.d.ts +13 -0
- package/dist/core/recurrence.d.ts.map +1 -1
- package/dist/core/recurrence.js +108 -13
- package/dist/core/recurrence.js.map +1 -1
- package/dist/core/release-assets.d.ts +21 -1
- package/dist/core/release-assets.d.ts.map +1 -1
- package/dist/core/release-assets.js +58 -3
- package/dist/core/release-assets.js.map +1 -1
- package/dist/core/repository-management-docs.d.ts.map +1 -1
- package/dist/core/repository-management-docs.js +14 -4
- package/dist/core/repository-management-docs.js.map +1 -1
- package/dist/core/review-context.d.ts.map +1 -1
- package/dist/core/review-context.js +29 -1
- package/dist/core/review-context.js.map +1 -1
- package/dist/core/roadmap-maintenance.d.ts +213 -0
- package/dist/core/roadmap-maintenance.d.ts.map +1 -0
- package/dist/core/roadmap-maintenance.js +706 -0
- package/dist/core/roadmap-maintenance.js.map +1 -0
- package/dist/core/roadmap-validate.d.ts +5 -0
- package/dist/core/roadmap-validate.d.ts.map +1 -1
- package/dist/core/roadmap-validate.js +6 -69
- package/dist/core/roadmap-validate.js.map +1 -1
- package/dist/core/routine-acquisition-plan.d.ts +43 -7
- package/dist/core/routine-acquisition-plan.d.ts.map +1 -1
- package/dist/core/routine-acquisition-plan.js +99 -8
- package/dist/core/routine-acquisition-plan.js.map +1 -1
- package/dist/core/routine-fetch-window-retry.d.ts +41 -2
- package/dist/core/routine-fetch-window-retry.d.ts.map +1 -1
- package/dist/core/routine-fetch-window-retry.js +91 -8
- package/dist/core/routine-fetch-window-retry.js.map +1 -1
- package/dist/core/routine-fetch-window-runner.d.ts +55 -21
- package/dist/core/routine-fetch-window-runner.d.ts.map +1 -1
- package/dist/core/routine-fetch-window-runner.js +258 -35
- package/dist/core/routine-fetch-window-runner.js.map +1 -1
- package/dist/core/routine-windows.d.ts +17 -13
- package/dist/core/routine-windows.d.ts.map +1 -1
- package/dist/core/routine-windows.js +78 -36
- package/dist/core/routine-windows.js.map +1 -1
- package/dist/core/scheduler.d.ts +121 -37
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +359 -80
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts +25 -6
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +32 -15
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/skeleton.d.ts.map +1 -1
- package/dist/core/skeleton.js +23 -23
- package/dist/core/skeleton.js.map +1 -1
- package/dist/core/skills-compiler.d.ts +275 -25
- package/dist/core/skills-compiler.d.ts.map +1 -1
- package/dist/core/skills-compiler.js +844 -205
- package/dist/core/skills-compiler.js.map +1 -1
- package/dist/core/skills-manifest.d.ts +104 -0
- package/dist/core/skills-manifest.d.ts.map +1 -1
- package/dist/core/skills-manifest.js +350 -39
- package/dist/core/skills-manifest.js.map +1 -1
- package/dist/core/wiki/git-precompile.d.ts +9 -0
- package/dist/core/wiki/git-precompile.d.ts.map +1 -1
- package/dist/core/wiki/git-precompile.js +7 -1
- package/dist/core/wiki/git-precompile.js.map +1 -1
- package/dist/core/workdir.d.ts +30 -1
- package/dist/core/workdir.d.ts.map +1 -1
- package/dist/core/workdir.js +140 -15
- package/dist/core/workdir.js.map +1 -1
- package/dist/db/entities-store.d.ts +5 -5
- package/dist/db/entities-store.js +5 -5
- package/dist/db/hourly-check-signals.d.ts.map +1 -1
- package/dist/db/hourly-check-signals.js +121 -35
- package/dist/db/hourly-check-signals.js.map +1 -1
- package/dist/db/observations.d.ts +1 -1
- package/dist/db/observations.js +1 -1
- package/dist/db/observations.js.map +1 -1
- package/dist/db/recurring-schedules.d.ts +32 -1
- package/dist/db/recurring-schedules.d.ts.map +1 -1
- package/dist/db/recurring-schedules.js +29 -10
- package/dist/db/recurring-schedules.js.map +1 -1
- package/dist/db/repositories-store.d.ts +2 -1
- package/dist/db/repositories-store.d.ts.map +1 -1
- package/dist/db/repositories-store.js +38 -3
- package/dist/db/repositories-store.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +157 -51
- package/dist/db/schema.js.map +1 -1
- package/dist/db/wiki-store.d.ts.map +1 -1
- package/dist/db/wiki-store.js +3 -0
- package/dist/db/wiki-store.js.map +1 -1
- package/dist/index.js +308 -1473
- package/dist/index.js.map +1 -1
- package/dist/messaging/magic-phrase.d.ts +16 -0
- package/dist/messaging/magic-phrase.d.ts.map +1 -1
- package/dist/messaging/magic-phrase.js +53 -0
- package/dist/messaging/magic-phrase.js.map +1 -1
- package/dist/messaging/owner-channels.d.ts +24 -0
- package/dist/messaging/owner-channels.d.ts.map +1 -1
- package/dist/messaging/owner-channels.js +38 -0
- package/dist/messaging/owner-channels.js.map +1 -1
- package/dist/messaging/setup-welcome-dm.d.ts +30 -0
- package/dist/messaging/setup-welcome-dm.d.ts.map +1 -0
- package/dist/messaging/setup-welcome-dm.js +86 -0
- package/dist/messaging/setup-welcome-dm.js.map +1 -0
- package/dist/observers/calendar-poller.d.ts +2 -0
- package/dist/observers/calendar-poller.d.ts.map +1 -1
- package/dist/observers/calendar-poller.js +76 -54
- package/dist/observers/calendar-poller.js.map +1 -1
- package/dist/observers/delegated-sync-worker.d.ts +62 -0
- package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
- package/dist/observers/delegated-sync-worker.js +128 -1
- package/dist/observers/delegated-sync-worker.js.map +1 -1
- package/dist/observers/git-watcher.d.ts +22 -0
- package/dist/observers/git-watcher.d.ts.map +1 -1
- package/dist/observers/git-watcher.js +31 -7
- package/dist/observers/git-watcher.js.map +1 -1
- package/dist/observers/imminent-event-scheduler.d.ts +2 -0
- package/dist/observers/imminent-event-scheduler.d.ts.map +1 -1
- package/dist/observers/imminent-event-scheduler.js +29 -0
- package/dist/observers/imminent-event-scheduler.js.map +1 -1
- package/dist/observers/notion-poller.d.ts +2 -0
- package/dist/observers/notion-poller.d.ts.map +1 -1
- package/dist/observers/notion-poller.js +44 -6
- package/dist/observers/notion-poller.js.map +1 -1
- package/dist/observers/poll-guard.d.ts +63 -0
- package/dist/observers/poll-guard.d.ts.map +1 -0
- package/dist/observers/poll-guard.js +89 -0
- package/dist/observers/poll-guard.js.map +1 -0
- package/dist/safety/absolute-block-audit.d.ts +17 -0
- package/dist/safety/absolute-block-audit.d.ts.map +1 -1
- package/dist/safety/absolute-block-audit.js +28 -2
- package/dist/safety/absolute-block-audit.js.map +1 -1
- package/dist/safety/agent-write-tracker.d.ts +42 -1
- package/dist/safety/agent-write-tracker.d.ts.map +1 -1
- package/dist/safety/agent-write-tracker.js +81 -1
- package/dist/safety/agent-write-tracker.js.map +1 -1
- package/dist/safety/always-disallowed.d.ts +34 -0
- package/dist/safety/always-disallowed.d.ts.map +1 -1
- package/dist/safety/always-disallowed.js +114 -7
- package/dist/safety/always-disallowed.js.map +1 -1
- package/dist/safety/audit.d.ts +20 -0
- package/dist/safety/audit.d.ts.map +1 -1
- package/dist/safety/audit.js +126 -0
- package/dist/safety/audit.js.map +1 -1
- package/dist/safety/risk-classifier.d.ts +17 -1
- package/dist/safety/risk-classifier.d.ts.map +1 -1
- package/dist/safety/risk-classifier.js +75 -7
- package/dist/safety/risk-classifier.js.map +1 -1
- package/dist/safety/subprocess-block-scanner.d.ts +89 -0
- package/dist/safety/subprocess-block-scanner.d.ts.map +1 -0
- package/dist/safety/subprocess-block-scanner.js +177 -0
- package/dist/safety/subprocess-block-scanner.js.map +1 -0
- package/dist/scheduler/hourly-check-gate.d.ts +23 -9
- package/dist/scheduler/hourly-check-gate.d.ts.map +1 -1
- package/dist/scheduler/hourly-check-gate.js +11 -6
- package/dist/scheduler/hourly-check-gate.js.map +1 -1
- package/dist/secrets/backend-api-key-env.d.ts.map +1 -1
- package/dist/secrets/backend-api-key-env.js +1 -0
- package/dist/secrets/backend-api-key-env.js.map +1 -1
- package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
- package/dist/services/delegated-backend-invoker.js +8 -1
- package/dist/services/delegated-backend-invoker.js.map +1 -1
- package/dist/services/delegated-invoker-audit.d.ts.map +1 -1
- package/dist/services/delegated-invoker-audit.js +5 -1
- package/dist/services/delegated-invoker-audit.js.map +1 -1
- package/dist/services/delegated-proxy-config.d.ts +3 -2
- package/dist/services/delegated-proxy-config.d.ts.map +1 -1
- package/dist/services/delegated-proxy-config.js.map +1 -1
- package/dist/services/integrations/extract-write-item-id.d.ts +5 -2
- package/dist/services/integrations/extract-write-item-id.d.ts.map +1 -1
- package/dist/services/integrations/extract-write-item-id.js.map +1 -1
- package/dist/services/mcp/generators/index.d.ts +1 -0
- package/dist/services/mcp/generators/index.d.ts.map +1 -1
- package/dist/services/mcp/generators/index.js +3 -0
- package/dist/services/mcp/generators/index.js.map +1 -1
- package/dist/services/mcp/sdk-observations-server.d.ts +60 -0
- package/dist/services/mcp/sdk-observations-server.d.ts.map +1 -0
- package/dist/services/mcp/sdk-observations-server.js +161 -0
- package/dist/services/mcp/sdk-observations-server.js.map +1 -0
- package/dist/services/mcp/session-materializer.d.ts.map +1 -1
- package/dist/services/mcp/session-materializer.js +13 -9
- package/dist/services/mcp/session-materializer.js.map +1 -1
- package/dist/services/mcp/types.d.ts +1 -0
- package/dist/services/mcp/types.d.ts.map +1 -1
- package/dist/services/notion.d.ts +19 -1
- package/dist/services/notion.d.ts.map +1 -1
- package/dist/services/notion.js +41 -2
- package/dist/services/notion.js.map +1 -1
- package/dist/services/observations-batch.d.ts +100 -0
- package/dist/services/observations-batch.d.ts.map +1 -0
- package/dist/services/observations-batch.js +258 -0
- package/dist/services/observations-batch.js.map +1 -0
- package/dist/services/voice/transcriber.d.ts +23 -0
- package/dist/services/voice/transcriber.d.ts.map +1 -1
- package/dist/services/voice/transcriber.js +55 -0
- package/dist/services/voice/transcriber.js.map +1 -1
- package/dist/settings/runtime-settings.d.ts +9 -6
- package/dist/settings/runtime-settings.d.ts.map +1 -1
- package/dist/settings/runtime-settings.js +50 -17
- package/dist/settings/runtime-settings.js.map +1 -1
- package/package.json +3 -2
- package/dist/api/delegated-proxy-helper.d.ts +0 -33
- package/dist/api/delegated-proxy-helper.d.ts.map +0 -1
- package/dist/api/delegated-proxy-helper.js +0 -54
- package/dist/api/delegated-proxy-helper.js.map +0 -1
- package/dist/core/roadmap-merge.d.ts +0 -7
- package/dist/core/roadmap-merge.d.ts.map +0 -1
- package/dist/core/roadmap-merge.js +0 -187
- package/dist/core/roadmap-merge.js.map +0 -1
- package/dist/db/test-schemas.d.ts +0 -23
- package/dist/db/test-schemas.d.ts.map +0 -1
- package/dist/db/test-schemas.js +0 -111
- package/dist/db/test-schemas.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §5.1 / §5.6 / §6.x — render the daemon's
|
|
3
|
+
* `McpServer` rows into `OpencodeRuntimeConfig.mcp`.
|
|
4
|
+
*
|
|
5
|
+
* Unlike Claude / Codex / Gemini which read on-disk MCP config files
|
|
6
|
+
* (`.mcp.json`, `.codex/config.toml`, `.gemini/settings.json`),
|
|
7
|
+
* OpenCode receives MCP config inline via `OPENCODE_CONFIG_CONTENT`
|
|
8
|
+
* consumed at server-spawn time (§5.1). The daemon therefore produces
|
|
9
|
+
* the `Record<string, McpLocalConfig | McpRemoteConfig>` map directly
|
|
10
|
+
* instead of writing a file under the session workdir.
|
|
11
|
+
*
|
|
12
|
+
* Pure function — DB / blob-store access happens upstream in
|
|
13
|
+
* `materializeMcpForSession`'s sibling caller. The renderer takes the
|
|
14
|
+
* already-filtered server list + resolved secrets and produces:
|
|
15
|
+
* - `mcp`: the runtime-config map.
|
|
16
|
+
* - `env`: env vars the spawned `opencode serve` process must export
|
|
17
|
+
* so the `environment` placeholders resolve at MCP-spawn time.
|
|
18
|
+
* OpenCode does NOT do `${VAR}` expansion on stdio env values
|
|
19
|
+
* (V7 fixture), so we inline concrete values into `environment` —
|
|
20
|
+
* `env` stays empty for stdio servers. For remote servers, header
|
|
21
|
+
* values are inlined directly into the `headers` map.
|
|
22
|
+
* - `warnings`: server-name lint failures (`_`-containing ids) and
|
|
23
|
+
* unsupported-transport notices. Surfaced via dashboard.
|
|
24
|
+
*
|
|
25
|
+
* Server-name lint (§5.6): the documented mangling rule
|
|
26
|
+
* `mcp__<server>__<tool>` → `<server>_<tool>`
|
|
27
|
+
* is ambiguous when `<server>` contains `_`. Until the SDK exposes
|
|
28
|
+
* MCP tool ids (V7 deferred), we reject `_`-containing server names at
|
|
29
|
+
* config-build time so the daemon never produces a config whose
|
|
30
|
+
* server→tool boundary cannot be reconstructed.
|
|
31
|
+
*/
|
|
32
|
+
import { createLogger } from "../../logging.js";
|
|
33
|
+
const logger = createLogger("opencode-mcp");
|
|
34
|
+
/**
|
|
35
|
+
* V5/§5.6 server-name lint. Returns null when the id is acceptable,
|
|
36
|
+
* otherwise a human-readable reason that explains why the server was
|
|
37
|
+
* dropped. Mirrors Codex's stricter `lowercase + dash only` rule
|
|
38
|
+
* extended with the opencode-specific `_` prohibition.
|
|
39
|
+
*/
|
|
40
|
+
export function isAcceptableOpencodeServerName(id) {
|
|
41
|
+
return /^[a-z0-9][a-z0-9-]*$/.test(id);
|
|
42
|
+
}
|
|
43
|
+
function joinCommand(server) {
|
|
44
|
+
const cmd = server.command?.trim();
|
|
45
|
+
if (!cmd)
|
|
46
|
+
return [];
|
|
47
|
+
const argv = server.args ? server.args.filter((a) => typeof a === "string") : [];
|
|
48
|
+
return [cmd, ...argv];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Render the stdio-transport variant: opencode treats every entry in
|
|
52
|
+
* `command` as one argv element (it does not run through a shell). We
|
|
53
|
+
* pass `environment` inline because opencode's stdio launcher does NOT
|
|
54
|
+
* expand `${VAR}` references at runtime (V7).
|
|
55
|
+
*/
|
|
56
|
+
function renderLocal(server, secrets, defaultTimeoutMs) {
|
|
57
|
+
const command = joinCommand(server);
|
|
58
|
+
if (command.length === 0)
|
|
59
|
+
return null;
|
|
60
|
+
const environment = {};
|
|
61
|
+
for (const key of server.envKeys) {
|
|
62
|
+
const raw = secrets[`${server.id}:${key}`];
|
|
63
|
+
if (raw !== undefined)
|
|
64
|
+
environment[key] = raw;
|
|
65
|
+
}
|
|
66
|
+
const local = {
|
|
67
|
+
type: "local",
|
|
68
|
+
command,
|
|
69
|
+
enabled: true,
|
|
70
|
+
};
|
|
71
|
+
if (Object.keys(environment).length > 0)
|
|
72
|
+
local.environment = environment;
|
|
73
|
+
if (typeof defaultTimeoutMs === "number" && defaultTimeoutMs > 0) {
|
|
74
|
+
local.timeout = defaultTimeoutMs;
|
|
75
|
+
}
|
|
76
|
+
return local;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Render http / sse transport. The SDK's `McpRemoteConfig` does not
|
|
80
|
+
* distinguish — both flow through the same shape; opencode's remote
|
|
81
|
+
* dispatcher negotiates transport. Header values are inlined.
|
|
82
|
+
*/
|
|
83
|
+
function renderRemote(server, secrets, defaultTimeoutMs) {
|
|
84
|
+
if (!server.url)
|
|
85
|
+
return null;
|
|
86
|
+
const headers = {};
|
|
87
|
+
for (const key of server.headerKeys) {
|
|
88
|
+
const raw = secrets[`${server.id}:${key}`];
|
|
89
|
+
if (raw !== undefined)
|
|
90
|
+
headers[key] = raw;
|
|
91
|
+
}
|
|
92
|
+
const remote = {
|
|
93
|
+
type: "remote",
|
|
94
|
+
url: server.url,
|
|
95
|
+
enabled: true,
|
|
96
|
+
};
|
|
97
|
+
if (Object.keys(headers).length > 0)
|
|
98
|
+
remote.headers = headers;
|
|
99
|
+
if (typeof defaultTimeoutMs === "number" && defaultTimeoutMs > 0) {
|
|
100
|
+
remote.timeout = defaultTimeoutMs;
|
|
101
|
+
}
|
|
102
|
+
return remote;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Main entry point. Pure — no I/O, deterministic given the same input.
|
|
106
|
+
*
|
|
107
|
+
* Servers whose name fails the lint OR whose required transport field
|
|
108
|
+
* is missing (stdio without command, http/sse without url) are dropped
|
|
109
|
+
* with a warning. The daemon then proceeds without that server — same
|
|
110
|
+
* fail-soft posture as the Claude / Codex / Gemini generators.
|
|
111
|
+
*/
|
|
112
|
+
export function renderOpencodeMcp(input) {
|
|
113
|
+
const mcp = {};
|
|
114
|
+
const warnings = [];
|
|
115
|
+
for (const server of input.servers) {
|
|
116
|
+
if (!server.enabled)
|
|
117
|
+
continue;
|
|
118
|
+
if (!isAcceptableOpencodeServerName(server.id)) {
|
|
119
|
+
warnings.push(`opencode-mcp: server '${server.id}' rejected — opencode-mangled tool ids (mcp__<server>__<tool> → <server>_<tool>) become ambiguous when the server id contains '_'. Rename to lowercase kebab-case.`);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (server.transport === "stdio") {
|
|
123
|
+
const local = renderLocal(server, input.secrets, input.defaultTimeoutMs);
|
|
124
|
+
if (!local) {
|
|
125
|
+
warnings.push(`opencode-mcp: stdio server '${server.id}' has no 'command'; skipped`);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
mcp[server.id] = local;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
/* c8 ignore start — McpTransport is closed-set; the http/sse branch
|
|
132
|
+
always covers the remaining transports after the stdio early-return
|
|
133
|
+
above, so the false-branch + unknown fallthrough below are
|
|
134
|
+
unreachable unless a future transport ships without updating the
|
|
135
|
+
renderer. */
|
|
136
|
+
if (server.transport === "http" || server.transport === "sse") {
|
|
137
|
+
/* c8 ignore stop */
|
|
138
|
+
const remote = renderRemote(server, input.secrets, input.defaultTimeoutMs);
|
|
139
|
+
if (!remote) {
|
|
140
|
+
warnings.push(`opencode-mcp: ${server.transport} server '${server.id}' has no 'url'; skipped`);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
mcp[server.id] = remote;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
/* c8 ignore start — see note above. */
|
|
147
|
+
const unknown = server.transport;
|
|
148
|
+
warnings.push(`opencode-mcp: unsupported transport '${String(unknown)}' for server '${server.id}'`);
|
|
149
|
+
}
|
|
150
|
+
/* c8 ignore stop */
|
|
151
|
+
if (Object.keys(mcp).length > 0) {
|
|
152
|
+
logger.debug({ serverIds: Object.keys(mcp), warningCount: warnings.length }, "rendered opencode mcp map");
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
mcp,
|
|
156
|
+
// OpenCode's `environment` map already carries inlined values for
|
|
157
|
+
// stdio servers, and `headers` for remote servers, so no separate
|
|
158
|
+
// env vector needs to flow into the spawn env. Reserved here so a
|
|
159
|
+
// future opencode version that supports `${VAR}` expansion can fill
|
|
160
|
+
// this in without a signature change.
|
|
161
|
+
env: {},
|
|
162
|
+
warnings,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=opencode-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-mcp.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §5.1 / §6.4 — server lifecycle manager.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 ships only the Managed implementation: one long-lived
|
|
5
|
+
* `opencode serve` child process per backend slot, with config-diff
|
|
6
|
+
* triggered bounce. The Remote implementation lands in Phase 5; Phase 2
|
|
7
|
+
* exposes the interface so wiring is stable.
|
|
8
|
+
*
|
|
9
|
+
* Concurrency model: a single `BackendRouter` slot is serialised by the
|
|
10
|
+
* router's per-backend in-flight gate. Within that gate `ensureConfig`
|
|
11
|
+
* may block on a bounce, then `client()` returns the live SDK client.
|
|
12
|
+
* `shutdown()` is wired into `ObserverManager` so graceful daemon exit
|
|
13
|
+
* stops the child process and releases the loopback port.
|
|
14
|
+
*/
|
|
15
|
+
import { createOpencode, type OpencodeClient } from "@opencode-ai/sdk";
|
|
16
|
+
import type { OpencodeRuntimeConfig } from "@aitne/shared";
|
|
17
|
+
export type OpencodeServerMode = "managed" | "remote";
|
|
18
|
+
/**
|
|
19
|
+
* docs/design/appendices/opencode-backend.md §5.9 / Phase 4 — handle to a short-lived
|
|
20
|
+
* isolated server spawned for one tight-permission task. Caller is
|
|
21
|
+
* responsible for `close()`-ing it in a `finally` so the loopback port
|
|
22
|
+
* is released even when the inner work throws.
|
|
23
|
+
*/
|
|
24
|
+
export interface EphemeralOpencodeServerHandle {
|
|
25
|
+
client: OpencodeClient;
|
|
26
|
+
close: () => Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export interface OpencodeServerManager {
|
|
29
|
+
readonly mode: OpencodeServerMode;
|
|
30
|
+
/**
|
|
31
|
+
* Ensure the underlying server is running with `desiredConfig`.
|
|
32
|
+
* Managed: bounces when the canonical-hash of the desired config
|
|
33
|
+
* differs from the running server's hash. Idempotent on same input.
|
|
34
|
+
* Remote: no-op in Phase 5+.
|
|
35
|
+
*/
|
|
36
|
+
ensureConfig(desiredConfig: OpencodeRuntimeConfig): Promise<void>;
|
|
37
|
+
/** Resolve the live SDK client. Lazily spawns the server on first call. */
|
|
38
|
+
client(): Promise<OpencodeClient>;
|
|
39
|
+
/**
|
|
40
|
+
* docs/design/appendices/opencode-backend.md §5.9 Path A — spawn an isolated ephemeral
|
|
41
|
+
* server for a single tight-permission task. Used by
|
|
42
|
+
* `runDelegatedTask` when the operator opts into `isolation: "ephemeral"`
|
|
43
|
+
* (rare path: operator-supplied MCP context the primary server's
|
|
44
|
+
* connections cannot be trusted with). Returns an
|
|
45
|
+
* {@link EphemeralOpencodeServerHandle} the caller MUST close in
|
|
46
|
+
* `finally` to release the loopback port.
|
|
47
|
+
*
|
|
48
|
+
* Managed: spawns a fresh `createOpencode()` independent of the
|
|
49
|
+
* long-lived primary server's state. Remote: throws — Path A is
|
|
50
|
+
* unavailable on a server the daemon does not own.
|
|
51
|
+
*/
|
|
52
|
+
spawnEphemeral(config: OpencodeRuntimeConfig): Promise<EphemeralOpencodeServerHandle>;
|
|
53
|
+
/** Stop the server child process and release resources. */
|
|
54
|
+
shutdown(): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Hash a desired `OpencodeRuntimeConfig` deterministically so two
|
|
58
|
+
* equivalent configs (regardless of key ordering or undefined fields)
|
|
59
|
+
* produce the same hash. Reused for bounce-vs-noop decision.
|
|
60
|
+
*/
|
|
61
|
+
export declare function hashRuntimeConfig(config: OpencodeRuntimeConfig): string;
|
|
62
|
+
export interface ManagedOpencodeServerManagerOptions {
|
|
63
|
+
/** Loopback host. Default `127.0.0.1`. */
|
|
64
|
+
hostname?: string;
|
|
65
|
+
/** Port. `0` ⇒ OS chooses. Default `0`. */
|
|
66
|
+
port?: number;
|
|
67
|
+
/** Cold-start timeout per spawn (ms). Default 15 000. */
|
|
68
|
+
spawnTimeoutMs?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Inject the SDK's `createOpencode` for tests. Production code wires
|
|
71
|
+
* this to the real export. The wrapper signature matches the real
|
|
72
|
+
* SDK so the production path is type-safe.
|
|
73
|
+
*/
|
|
74
|
+
createOpencodeImpl?: typeof createOpencode;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Managed-mode lifecycle. Owns a single child process; bounces on
|
|
78
|
+
* config-diff.
|
|
79
|
+
*
|
|
80
|
+
* Crash recovery: V6 fixtures show `server.close()` is synchronous and
|
|
81
|
+
* does not throw on a stopped process. The manager treats a missing /
|
|
82
|
+
* already-stopped server as "respawn on next ensureConfig". We don't
|
|
83
|
+
* subscribe to `child_process` signals here because the SDK abstracts
|
|
84
|
+
* them away; the next inbound `ensureConfig` will pay the cost of
|
|
85
|
+
* detection if the server died.
|
|
86
|
+
*/
|
|
87
|
+
export declare class ManagedOpencodeServerManager implements OpencodeServerManager {
|
|
88
|
+
readonly mode: "managed";
|
|
89
|
+
private state;
|
|
90
|
+
/** Coalesce concurrent ensureConfig / client calls onto a single spawn. */
|
|
91
|
+
private inflight;
|
|
92
|
+
private readonly hostname;
|
|
93
|
+
private readonly port;
|
|
94
|
+
private readonly spawnTimeoutMs;
|
|
95
|
+
private readonly createOpencodeImpl;
|
|
96
|
+
private shutdownRequested;
|
|
97
|
+
constructor(options?: ManagedOpencodeServerManagerOptions);
|
|
98
|
+
ensureConfig(desiredConfig: OpencodeRuntimeConfig): Promise<void>;
|
|
99
|
+
client(): Promise<OpencodeClient>;
|
|
100
|
+
spawnEphemeral(config: OpencodeRuntimeConfig): Promise<EphemeralOpencodeServerHandle>;
|
|
101
|
+
shutdown(): Promise<void>;
|
|
102
|
+
/** Lifecycle introspection — useful for diagnostics and tests. */
|
|
103
|
+
get isRunning(): boolean;
|
|
104
|
+
get currentHash(): string | null;
|
|
105
|
+
private spawn;
|
|
106
|
+
private doSpawn;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Phase 2 factory: only the Managed variant exists today. Phase 5 adds
|
|
110
|
+
* a `RemoteOpencodeServerManager` branch keyed on a runtime setting.
|
|
111
|
+
* The factory contract keeps callers backend-shape-agnostic.
|
|
112
|
+
*/
|
|
113
|
+
export declare function createOpencodeServerManager(options?: ManagedOpencodeServerManagerOptions): OpencodeServerManager;
|
|
114
|
+
//# sourceMappingURL=opencode-server-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-server-manager.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-server-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,cAAc,EAEd,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAa3D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,2EAA2E;IAC3E,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAIvE;AAiBD,MAAM,WAAW,mCAAmC;IAClD,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;CAC5C;AAUD;;;;;;;;;;GAUG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,OAAO,CAAC,KAAK,CAA4B;IACzC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,GAAE,mCAAwC;IAOvD,YAAY,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYjC,cAAc,CAClB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,6BAA6B,CAAC;IAqCnC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,kEAAkE;IAClE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;YAEa,KAAK;YAqBL,OAAO;CAsDtB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,mCAAwC,GAChD,qBAAqB,CAEvB"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §5.1 / §6.4 — server lifecycle manager.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 ships only the Managed implementation: one long-lived
|
|
5
|
+
* `opencode serve` child process per backend slot, with config-diff
|
|
6
|
+
* triggered bounce. The Remote implementation lands in Phase 5; Phase 2
|
|
7
|
+
* exposes the interface so wiring is stable.
|
|
8
|
+
*
|
|
9
|
+
* Concurrency model: a single `BackendRouter` slot is serialised by the
|
|
10
|
+
* router's per-backend in-flight gate. Within that gate `ensureConfig`
|
|
11
|
+
* may block on a bounce, then `client()` returns the live SDK client.
|
|
12
|
+
* `shutdown()` is wired into `ObserverManager` so graceful daemon exit
|
|
13
|
+
* stops the child process and releases the loopback port.
|
|
14
|
+
*/
|
|
15
|
+
import { createHash } from "node:crypto";
|
|
16
|
+
import { createOpencode, } from "@opencode-ai/sdk";
|
|
17
|
+
import { stableStringify } from "@aitne/shared";
|
|
18
|
+
import { createLogger } from "../../logging.js";
|
|
19
|
+
const logger = createLogger("opencode-server-manager");
|
|
20
|
+
/** Default cold-start budget — V6 measured p95 ≈ 1222 ms; 15 s headroom
|
|
21
|
+
* for slow CI hosts and the rare MCP-bound bounce. */
|
|
22
|
+
const DEFAULT_SPAWN_TIMEOUT_MS = 15_000;
|
|
23
|
+
/** Default loopback bind. Port 0 lets the OS pick a free port; the SDK
|
|
24
|
+
* echoes the chosen URL back so we never need to probe externally. */
|
|
25
|
+
const DEFAULT_HOSTNAME = "127.0.0.1";
|
|
26
|
+
/**
|
|
27
|
+
* Hash a desired `OpencodeRuntimeConfig` deterministically so two
|
|
28
|
+
* equivalent configs (regardless of key ordering or undefined fields)
|
|
29
|
+
* produce the same hash. Reused for bounce-vs-noop decision.
|
|
30
|
+
*/
|
|
31
|
+
export function hashRuntimeConfig(config) {
|
|
32
|
+
// Drop `undefined` so { a: undefined } and {} canonicalise equal.
|
|
33
|
+
const canonical = stableStringify(stripUndefined(config));
|
|
34
|
+
return createHash("sha256").update(canonical).digest("hex");
|
|
35
|
+
}
|
|
36
|
+
function stripUndefined(value) {
|
|
37
|
+
if (Array.isArray(value)) {
|
|
38
|
+
return value.map((item) => stripUndefined(item));
|
|
39
|
+
}
|
|
40
|
+
if (value && typeof value === "object") {
|
|
41
|
+
const out = {};
|
|
42
|
+
for (const [k, v] of Object.entries(value)) {
|
|
43
|
+
if (v === undefined)
|
|
44
|
+
continue;
|
|
45
|
+
out[k] = stripUndefined(v);
|
|
46
|
+
}
|
|
47
|
+
return out;
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Managed-mode lifecycle. Owns a single child process; bounces on
|
|
53
|
+
* config-diff.
|
|
54
|
+
*
|
|
55
|
+
* Crash recovery: V6 fixtures show `server.close()` is synchronous and
|
|
56
|
+
* does not throw on a stopped process. The manager treats a missing /
|
|
57
|
+
* already-stopped server as "respawn on next ensureConfig". We don't
|
|
58
|
+
* subscribe to `child_process` signals here because the SDK abstracts
|
|
59
|
+
* them away; the next inbound `ensureConfig` will pay the cost of
|
|
60
|
+
* detection if the server died.
|
|
61
|
+
*/
|
|
62
|
+
export class ManagedOpencodeServerManager {
|
|
63
|
+
mode = "managed";
|
|
64
|
+
state = null;
|
|
65
|
+
/** Coalesce concurrent ensureConfig / client calls onto a single spawn. */
|
|
66
|
+
inflight = null;
|
|
67
|
+
hostname;
|
|
68
|
+
port;
|
|
69
|
+
spawnTimeoutMs;
|
|
70
|
+
createOpencodeImpl;
|
|
71
|
+
shutdownRequested = false;
|
|
72
|
+
constructor(options = {}) {
|
|
73
|
+
this.hostname = options.hostname ?? DEFAULT_HOSTNAME;
|
|
74
|
+
this.port = options.port ?? 0;
|
|
75
|
+
this.spawnTimeoutMs = options.spawnTimeoutMs ?? DEFAULT_SPAWN_TIMEOUT_MS;
|
|
76
|
+
this.createOpencodeImpl = options.createOpencodeImpl ?? createOpencode;
|
|
77
|
+
}
|
|
78
|
+
async ensureConfig(desiredConfig) {
|
|
79
|
+
if (this.shutdownRequested) {
|
|
80
|
+
throw new Error("OpencodeServerManager has been shut down");
|
|
81
|
+
}
|
|
82
|
+
const desiredHash = hashRuntimeConfig(desiredConfig);
|
|
83
|
+
if (this.state && this.state.runningHash === desiredHash) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
await this.spawn(desiredConfig, desiredHash);
|
|
87
|
+
}
|
|
88
|
+
async client() {
|
|
89
|
+
if (this.shutdownRequested) {
|
|
90
|
+
throw new Error("OpencodeServerManager has been shut down");
|
|
91
|
+
}
|
|
92
|
+
if (!this.state) {
|
|
93
|
+
// Lazy first-spawn with an empty config — callers that want
|
|
94
|
+
// specific config should call ensureConfig() first.
|
|
95
|
+
await this.spawn({}, hashRuntimeConfig({}));
|
|
96
|
+
}
|
|
97
|
+
return this.state.client;
|
|
98
|
+
}
|
|
99
|
+
async spawnEphemeral(config) {
|
|
100
|
+
if (this.shutdownRequested) {
|
|
101
|
+
throw new Error("OpencodeServerManager has been shut down");
|
|
102
|
+
}
|
|
103
|
+
const abortController = new AbortController();
|
|
104
|
+
const timeoutId = setTimeout(() => abortController.abort(new Error("opencode ephemeral spawn timeout")), this.spawnTimeoutMs);
|
|
105
|
+
const start = Date.now();
|
|
106
|
+
try {
|
|
107
|
+
const { client, server } = await this.createOpencodeImpl({
|
|
108
|
+
hostname: this.hostname,
|
|
109
|
+
port: 0,
|
|
110
|
+
signal: abortController.signal,
|
|
111
|
+
timeout: this.spawnTimeoutMs,
|
|
112
|
+
config: config,
|
|
113
|
+
});
|
|
114
|
+
logger.info({ url: server.url, spawnMs: Date.now() - start, ephemeral: true }, "opencode ephemeral server spawned");
|
|
115
|
+
return {
|
|
116
|
+
client,
|
|
117
|
+
close: async () => {
|
|
118
|
+
try {
|
|
119
|
+
server.close();
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
logger.warn({ err }, "opencode ephemeral server close threw");
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
clearTimeout(timeoutId);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async shutdown() {
|
|
132
|
+
this.shutdownRequested = true;
|
|
133
|
+
if (this.state) {
|
|
134
|
+
const { server } = this.state;
|
|
135
|
+
try {
|
|
136
|
+
server.close();
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
logger.warn({ err }, "opencode server close threw");
|
|
140
|
+
}
|
|
141
|
+
this.state = null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Lifecycle introspection — useful for diagnostics and tests. */
|
|
145
|
+
get isRunning() {
|
|
146
|
+
return this.state !== null;
|
|
147
|
+
}
|
|
148
|
+
get currentHash() {
|
|
149
|
+
return this.state?.runningHash ?? null;
|
|
150
|
+
}
|
|
151
|
+
async spawn(config, hash) {
|
|
152
|
+
// Coalesce concurrent spawn attempts so a flurry of ensureConfig
|
|
153
|
+
// calls (e.g. on first boot) doesn't fire multiple child processes.
|
|
154
|
+
if (this.inflight) {
|
|
155
|
+
const state = await this.inflight;
|
|
156
|
+
if (state.runningHash === hash)
|
|
157
|
+
return state;
|
|
158
|
+
// Different hash — fall through to bounce.
|
|
159
|
+
}
|
|
160
|
+
const spawnPromise = this.doSpawn(config, hash);
|
|
161
|
+
this.inflight = spawnPromise;
|
|
162
|
+
try {
|
|
163
|
+
const state = await spawnPromise;
|
|
164
|
+
return state;
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
this.inflight = null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async doSpawn(config, hash) {
|
|
171
|
+
if (this.state) {
|
|
172
|
+
const previousHash = this.state.runningHash;
|
|
173
|
+
const ageMs = Date.now() - this.state.spawnedAt;
|
|
174
|
+
try {
|
|
175
|
+
this.state.server.close();
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
logger.warn({ err }, "opencode server close threw during bounce");
|
|
179
|
+
}
|
|
180
|
+
this.state = null;
|
|
181
|
+
logger.info({ previousHash: previousHash.slice(0, 12), newHash: hash.slice(0, 12), ageMs }, "opencode server bounced");
|
|
182
|
+
}
|
|
183
|
+
const abortController = new AbortController();
|
|
184
|
+
const timeoutId = setTimeout(() => abortController.abort(new Error("opencode spawn timeout")), this.spawnTimeoutMs);
|
|
185
|
+
const start = Date.now();
|
|
186
|
+
try {
|
|
187
|
+
const { client, server } = await this.createOpencodeImpl({
|
|
188
|
+
hostname: this.hostname,
|
|
189
|
+
port: this.port,
|
|
190
|
+
signal: abortController.signal,
|
|
191
|
+
timeout: this.spawnTimeoutMs,
|
|
192
|
+
config: config,
|
|
193
|
+
});
|
|
194
|
+
const next = {
|
|
195
|
+
client,
|
|
196
|
+
server,
|
|
197
|
+
runningHash: hash,
|
|
198
|
+
config,
|
|
199
|
+
spawnedAt: Date.now(),
|
|
200
|
+
};
|
|
201
|
+
this.state = next;
|
|
202
|
+
logger.info({
|
|
203
|
+
url: server.url,
|
|
204
|
+
hash: hash.slice(0, 12),
|
|
205
|
+
spawnMs: Date.now() - start,
|
|
206
|
+
}, "opencode server spawned");
|
|
207
|
+
return next;
|
|
208
|
+
}
|
|
209
|
+
finally {
|
|
210
|
+
clearTimeout(timeoutId);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Phase 2 factory: only the Managed variant exists today. Phase 5 adds
|
|
216
|
+
* a `RemoteOpencodeServerManager` branch keyed on a runtime setting.
|
|
217
|
+
* The factory contract keeps callers backend-shape-agnostic.
|
|
218
|
+
*/
|
|
219
|
+
export function createOpencodeServerManager(options = {}) {
|
|
220
|
+
return new ManagedOpencodeServerManager(options);
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=opencode-server-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-server-manager.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-server-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §6.1.0 — local module augmentation + helper
|
|
3
|
+
* types for the four undeclared surfaces that V3/V4/V9 confirmed exist
|
|
4
|
+
* at runtime in opencode 1.14.50 but are missing from the SDK's
|
|
5
|
+
* generated types.
|
|
6
|
+
*
|
|
7
|
+
* The `declare module "@opencode-ai/sdk"` block adds the three runtime
|
|
8
|
+
* fields the SDK omits (format on the prompt body, structured on the
|
|
9
|
+
* assistant message, total on the token block). The helper types below
|
|
10
|
+
* widen the event union so we never compile against the SDK's
|
|
11
|
+
* incomplete `EventSubscribeResponse`.
|
|
12
|
+
*/
|
|
13
|
+
declare module "@opencode-ai/sdk" {
|
|
14
|
+
interface SessionPromptBodyAugmented {
|
|
15
|
+
format?: {
|
|
16
|
+
type: "json_schema";
|
|
17
|
+
schema: object;
|
|
18
|
+
retryCount?: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface AssistantMessageAugmented {
|
|
22
|
+
structured?: unknown;
|
|
23
|
+
}
|
|
24
|
+
interface AssistantTokensAugmented {
|
|
25
|
+
total?: number;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* V9-grounded event-input type. The SDK's generated
|
|
30
|
+
* `EventSubscribeResponse` union is **incomplete** (server.heartbeat,
|
|
31
|
+
* permission.asked emit but are not declared) and over-promises
|
|
32
|
+
* (permission.replied, message.part.updated declared but never observed).
|
|
33
|
+
* Defensive code therefore widens to a plain string-key dispatch.
|
|
34
|
+
*/
|
|
35
|
+
export type RawOpencodeEvent = {
|
|
36
|
+
type: string;
|
|
37
|
+
properties?: unknown;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Helper for callers that want to thread the structured-output (`format`)
|
|
41
|
+
* option through `client.session.prompt({ body: … })`. The SDK's body
|
|
42
|
+
* type does not list `format`, but the runtime accepts and honors it
|
|
43
|
+
* (V4). Pass the resulting object to the SDK call via a single cast.
|
|
44
|
+
*/
|
|
45
|
+
export type OpencodeAugmentedPromptBody = import("@opencode-ai/sdk").SessionPromptData["body"] & Partial<import("@opencode-ai/sdk").SessionPromptBodyAugmented>;
|
|
46
|
+
//# sourceMappingURL=opencode-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-types.d.ts","sourceRoot":"","sources":["../../../src/core/backends/opencode-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAiB,0BAA0B;QACzC,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,aAAa,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH;IAED,UAAiB,yBAAyB;QACxC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB;IAED,UAAiB,wBAAwB;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;CACF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACrC,OAAO,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAClD,OAAO,CAAC,OAAO,kBAAkB,EAAE,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* docs/design/appendices/opencode-backend.md §6.1.0 — local module augmentation + helper
|
|
3
|
+
* types for the four undeclared surfaces that V3/V4/V9 confirmed exist
|
|
4
|
+
* at runtime in opencode 1.14.50 but are missing from the SDK's
|
|
5
|
+
* generated types.
|
|
6
|
+
*
|
|
7
|
+
* The `declare module "@opencode-ai/sdk"` block adds the three runtime
|
|
8
|
+
* fields the SDK omits (format on the prompt body, structured on the
|
|
9
|
+
* assistant message, total on the token block). The helper types below
|
|
10
|
+
* widen the event union so we never compile against the SDK's
|
|
11
|
+
* incomplete `EventSubscribeResponse`.
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=opencode-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-types.js","sourceRoot":"","sources":["../../../src/core/backends/opencode-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
* - Drives the seed model selection from each process key's default
|
|
15
15
|
* tier (`getDefaultTierForProcessKey`). Lite-tier keys seed Haiku
|
|
16
16
|
* (Claude) / gpt-5.4-mini (Codex) / flash-lite (Gemini); medium-tier
|
|
17
|
-
* keys seed Sonnet / gpt-5.4
|
|
18
|
-
* Opus / gpt-5.
|
|
17
|
+
* keys seed Sonnet / gpt-5.4 / 3.1-flash-lite-preview; high-tier keys seed
|
|
18
|
+
* Opus / gpt-5.4 / 3.1-pro-preview. (Codex's high tier collapses to
|
|
19
|
+
* gpt-5.4 by default via `SEED_HIGH_TIER_OVERRIDE` in model-registry.ts
|
|
20
|
+
* — gpt-5.5 is Opus-priced and operator-pinned, not the silent default.)
|
|
19
21
|
* - Exposes `setMainBackend(db, backendId)` — writes
|
|
20
22
|
* `backend_global_defaults.default_backend` only. No preset
|
|
21
23
|
* application, no per-process row mutation. The dashboard's main-
|
|
@@ -29,7 +31,16 @@
|
|
|
29
31
|
* Tier-to-model resolution lives in `model-registry.ts:defaultModelForTier`.
|
|
30
32
|
*/
|
|
31
33
|
import type Database from "better-sqlite3";
|
|
32
|
-
import { type BackendId, type ProcessKey, type ProcessModelTier } from "@aitne/shared";
|
|
34
|
+
import { type BackendId, type BackendModelTier, type ProcessKey, type ProcessModelTier } from "@aitne/shared";
|
|
35
|
+
/**
|
|
36
|
+
* Scale a `maxBudgetUsd` for the given backend + tier. Exported so the
|
|
37
|
+
* cross-backend cascade in `process-config-cascade.ts` can apply the
|
|
38
|
+
* same factor to its INHERITOR_DEFAULTS when an operator edits
|
|
39
|
+
* `message.dm` on a non-Claude backend.
|
|
40
|
+
*
|
|
41
|
+
* Rounds to 2 decimals so the DB-stored cents-precision value is stable.
|
|
42
|
+
*/
|
|
43
|
+
export declare function applyBackendBudgetFactor(backendId: BackendId, tier: BackendModelTier, baseBudgetUsd: number): number;
|
|
33
44
|
/**
|
|
34
45
|
* Resolve the seed `(model, envelope)` for a configurable process key on
|
|
35
46
|
* the given backend. The model is selected by the process key's default
|
|
@@ -79,8 +90,10 @@ export interface ApplyDefaultPresetsOptions {
|
|
|
79
90
|
* `backend_global_defaults.default_backend` (claude as last resort).
|
|
80
91
|
* - Seeds each row with a model resolved by `resolveDefaultBindingFor`
|
|
81
92
|
* (lite tier seeds Haiku on Claude / gpt-5.4-mini on Codex /
|
|
82
|
-
* flash-lite preview on Gemini; medium tier seeds Sonnet / gpt-5.4
|
|
83
|
-
* / 3.1-flash-lite-preview; high tier seeds Opus / gpt-5.
|
|
93
|
+
* flash-lite preview on Gemini; medium tier seeds Sonnet / gpt-5.4
|
|
94
|
+
* / 3.1-flash-lite-preview; high tier seeds Opus / gpt-5.4 /
|
|
95
|
+
* 3.1-pro-preview — Codex's high tier intentionally collapses to
|
|
96
|
+
* gpt-5.4, see `SEED_HIGH_TIER_OVERRIDE`).
|
|
84
97
|
* - Updates `default_lite_model` / `default_medium_model` /
|
|
85
98
|
* `default_high_model` / `default_backend` on the singleton row.
|
|
86
99
|
* - Skips rows whose `updated_by='user'` unless `force: true`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-presets.d.ts","sourceRoot":"","sources":["../../../src/core/backends/plan-presets.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"plan-presets.d.ts","sourceRoot":"","sources":["../../../src/core/backends/plan-presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AA4DvB;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAIR;AAuHD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAa3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CA0E3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,SAAS,GACnB,IAAI,CA6BN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,SAAS,GACvB;IACD,yBAAyB,EAAE,KAAK,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ,CA6BA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,IAAI,CAGzB"}
|