@withbuddi/buddi 0.1.0-pre.47 → 0.1.0-pre.48
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/extension/manifest.json +2 -2
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +4 -4
- package/node_modules/@buddi/core/dist/host/build.d.ts +8 -1
- package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/host/build.js +33 -0
- package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
- package/node_modules/@buddi/core/dist/host/types.d.ts +43 -0
- package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/index.d.ts +1 -0
- package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/index.js +1 -0
- package/node_modules/@buddi/core/dist/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +5 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/uses.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/uses.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/uses.js +2 -0
- package/node_modules/@buddi/core/dist/plugin/uses.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
- package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.d.ts +26 -0
- package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.js +93 -0
- package/node_modules/@buddi/core/dist/runtimes/__fixtures__/server.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/area.d.ts +22 -0
- package/node_modules/@buddi/core/dist/runtimes/area.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/area.js +127 -0
- package/node_modules/@buddi/core/dist/runtimes/area.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/config.d.ts +54 -0
- package/node_modules/@buddi/core/dist/runtimes/config.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/config.js +57 -0
- package/node_modules/@buddi/core/dist/runtimes/config.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/consent.d.ts +170 -0
- package/node_modules/@buddi/core/dist/runtimes/consent.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/consent.js +205 -0
- package/node_modules/@buddi/core/dist/runtimes/consent.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/download.d.ts +95 -0
- package/node_modules/@buddi/core/dist/runtimes/download.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/download.js +333 -0
- package/node_modules/@buddi/core/dist/runtimes/download.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/index.d.ts +10 -0
- package/node_modules/@buddi/core/dist/runtimes/index.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/index.js +10 -0
- package/node_modules/@buddi/core/dist/runtimes/index.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/models.d.ts +78 -0
- package/node_modules/@buddi/core/dist/runtimes/models.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/models.js +240 -0
- package/node_modules/@buddi/core/dist/runtimes/models.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/native.d.ts +49 -0
- package/node_modules/@buddi/core/dist/runtimes/native.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/native.js +27 -0
- package/node_modules/@buddi/core/dist/runtimes/native.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/onnx.d.ts +87 -0
- package/node_modules/@buddi/core/dist/runtimes/onnx.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/onnx.js +582 -0
- package/node_modules/@buddi/core/dist/runtimes/onnx.js.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/pins.d.ts +53 -0
- package/node_modules/@buddi/core/dist/runtimes/pins.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/runtimes/pins.js +75 -0
- package/node_modules/@buddi/core/dist/runtimes/pins.js.map +1 -0
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts +9 -3
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/missions.js +12 -3
- package/node_modules/@buddi/core/dist/scheduler/missions.js.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts +8 -3
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.js +5 -1
- package/node_modules/@buddi/core/dist/scheduler/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.js +3 -1
- package/node_modules/@buddi/core/dist/secrets/approval.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/use.d.ts +3 -1
- package/node_modules/@buddi/core/dist/secrets/use.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/use.js +2 -0
- package/node_modules/@buddi/core/dist/secrets/use.js.map +1 -1
- package/node_modules/@buddi/core/dist/tools.d.ts +16 -0
- package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/tools.js.map +1 -1
- package/node_modules/@buddi/core/dist/views.d.ts +8 -8
- package/node_modules/@buddi/core/migrations/079_mission_browser_owner.sql +7 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.js +6 -3
- package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +24 -10
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +6 -2
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +17 -4
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +25 -5
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/browser-host.d.ts +7 -0
- package/node_modules/@buddi/gateway/dist/browser-host.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/browser-host.js +22 -0
- package/node_modules/@buddi/gateway/dist/browser-host.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/chrome-scope.d.ts +91 -0
- package/node_modules/@buddi/gateway/dist/missions/chrome-scope.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/chrome-scope.js +194 -0
- package/node_modules/@buddi/gateway/dist/missions/chrome-scope.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +20 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js +73 -3
- package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts +10 -2
- package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/reminders.js +53 -5
- package/node_modules/@buddi/gateway/dist/missions/reminders.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/owner-notify.d.ts +0 -11
- package/node_modules/@buddi/gateway/dist/owner-notify.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/owner-notify.js +3 -1
- package/node_modules/@buddi/gateway/dist/owner-notify.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.js +2 -1
- package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts +2 -1
- package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/approvals.js +16 -4
- package/node_modules/@buddi/gateway/dist/telegram/approvals.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +8 -0
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/approval-ask.js +25 -0
- package/node_modules/@buddi/gateway/dist/web/approval-ask.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.js +3 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/read.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/read.js +1 -0
- package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/runtimes.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/web/runtimes.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/runtimes.js +25 -0
- package/node_modules/@buddi/gateway/dist/web/runtimes.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +20 -2
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/write.d.ts +11 -1
- package/node_modules/@buddi/gateway/dist/web/write.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/write.js +18 -1
- package/node_modules/@buddi/gateway/dist/web/write.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.js +1 -0
- package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts +5 -0
- package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/controller.js +41 -5
- package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts +6 -0
- package/node_modules/@buddi/tool-browser/dist/routes.d.ts.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/routes.js +2 -2
- package/node_modules/@buddi/tool-browser/dist/routes.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/imapflow/CHANGELOG.md +8 -0
- package/node_modules/imapflow/dist/cjs/commands/copyuid-parser.js +16 -2
- package/node_modules/imapflow/dist/cjs/handler/imap-compiler.js +26 -19
- package/node_modules/imapflow/dist/cjs/handler/token-parser.js +127 -51
- package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
- package/node_modules/imapflow/dist/cjs/search-compiler.js +7 -3
- package/node_modules/imapflow/dist/esm/commands/copyuid-parser.js +16 -2
- package/node_modules/imapflow/dist/esm/handler/imap-compiler.js +26 -19
- package/node_modules/imapflow/dist/esm/handler/token-parser.js +127 -51
- package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/esm/package-info.js +1 -1
- package/node_modules/imapflow/dist/esm/search-compiler.js +7 -3
- package/node_modules/imapflow/package.json +3 -2
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/frontmatter.d.ts +4 -4
- package/packages/core/dist/host/build.d.ts +8 -1
- package/packages/core/dist/host/build.d.ts.map +1 -1
- package/packages/core/dist/host/build.js +33 -0
- package/packages/core/dist/host/build.js.map +1 -1
- package/packages/core/dist/host/types.d.ts +43 -0
- package/packages/core/dist/host/types.d.ts.map +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/plugin/index.d.ts +5 -1
- package/packages/core/dist/plugin/index.d.ts.map +1 -1
- package/packages/core/dist/plugin/index.js.map +1 -1
- package/packages/core/dist/plugin/uses.d.ts +1 -1
- package/packages/core/dist/plugin/uses.d.ts.map +1 -1
- package/packages/core/dist/plugin/uses.js +2 -0
- package/packages/core/dist/plugin/uses.js.map +1 -1
- package/packages/core/dist/plugin/version.d.ts +1 -1
- package/packages/core/dist/plugin/version.js +1 -1
- package/packages/core/dist/runtimes/__fixtures__/server.d.ts +26 -0
- package/packages/core/dist/runtimes/__fixtures__/server.d.ts.map +1 -0
- package/packages/core/dist/runtimes/__fixtures__/server.js +93 -0
- package/packages/core/dist/runtimes/__fixtures__/server.js.map +1 -0
- package/packages/core/dist/runtimes/area.d.ts +22 -0
- package/packages/core/dist/runtimes/area.d.ts.map +1 -0
- package/packages/core/dist/runtimes/area.js +127 -0
- package/packages/core/dist/runtimes/area.js.map +1 -0
- package/packages/core/dist/runtimes/config.d.ts +54 -0
- package/packages/core/dist/runtimes/config.d.ts.map +1 -0
- package/packages/core/dist/runtimes/config.js +57 -0
- package/packages/core/dist/runtimes/config.js.map +1 -0
- package/packages/core/dist/runtimes/consent.d.ts +170 -0
- package/packages/core/dist/runtimes/consent.d.ts.map +1 -0
- package/packages/core/dist/runtimes/consent.js +205 -0
- package/packages/core/dist/runtimes/consent.js.map +1 -0
- package/packages/core/dist/runtimes/download.d.ts +95 -0
- package/packages/core/dist/runtimes/download.d.ts.map +1 -0
- package/packages/core/dist/runtimes/download.js +333 -0
- package/packages/core/dist/runtimes/download.js.map +1 -0
- package/packages/core/dist/runtimes/index.d.ts +10 -0
- package/packages/core/dist/runtimes/index.d.ts.map +1 -0
- package/packages/core/dist/runtimes/index.js +10 -0
- package/packages/core/dist/runtimes/index.js.map +1 -0
- package/packages/core/dist/runtimes/models.d.ts +78 -0
- package/packages/core/dist/runtimes/models.d.ts.map +1 -0
- package/packages/core/dist/runtimes/models.js +240 -0
- package/packages/core/dist/runtimes/models.js.map +1 -0
- package/packages/core/dist/runtimes/native.d.ts +49 -0
- package/packages/core/dist/runtimes/native.d.ts.map +1 -0
- package/packages/core/dist/runtimes/native.js +27 -0
- package/packages/core/dist/runtimes/native.js.map +1 -0
- package/packages/core/dist/runtimes/onnx.d.ts +87 -0
- package/packages/core/dist/runtimes/onnx.d.ts.map +1 -0
- package/packages/core/dist/runtimes/onnx.js +582 -0
- package/packages/core/dist/runtimes/onnx.js.map +1 -0
- package/packages/core/dist/runtimes/pins.d.ts +53 -0
- package/packages/core/dist/runtimes/pins.d.ts.map +1 -0
- package/packages/core/dist/runtimes/pins.js +75 -0
- package/packages/core/dist/runtimes/pins.js.map +1 -0
- package/packages/core/dist/scheduler/missions.d.ts +9 -3
- package/packages/core/dist/scheduler/missions.d.ts.map +1 -1
- package/packages/core/dist/scheduler/missions.js +12 -3
- package/packages/core/dist/scheduler/missions.js.map +1 -1
- package/packages/core/dist/scheduler/types.d.ts +8 -3
- package/packages/core/dist/scheduler/types.d.ts.map +1 -1
- package/packages/core/dist/scheduler/types.js +5 -1
- package/packages/core/dist/scheduler/types.js.map +1 -1
- package/packages/core/dist/secrets/approval.d.ts.map +1 -1
- package/packages/core/dist/secrets/approval.js +3 -1
- package/packages/core/dist/secrets/approval.js.map +1 -1
- package/packages/core/dist/secrets/use.d.ts +3 -1
- package/packages/core/dist/secrets/use.d.ts.map +1 -1
- package/packages/core/dist/secrets/use.js +2 -0
- package/packages/core/dist/secrets/use.js.map +1 -1
- package/packages/core/dist/tools.d.ts +16 -0
- package/packages/core/dist/tools.d.ts.map +1 -1
- package/packages/core/dist/tools.js.map +1 -1
- package/packages/core/dist/views.d.ts +8 -8
- package/packages/core/migrations/079_mission_browser_owner.sql +7 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalog.js +6 -3
- package/packages/gateway/dist/agents/catalog.js.map +1 -1
- package/packages/gateway/dist/agents/catalogue-package.d.ts +24 -10
- package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalogue-package.js +6 -2
- package/packages/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.d.ts +17 -4
- package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.js +25 -5
- package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/packages/gateway/dist/browser-host.d.ts +7 -0
- package/packages/gateway/dist/browser-host.d.ts.map +1 -1
- package/packages/gateway/dist/browser-host.js +22 -0
- package/packages/gateway/dist/browser-host.js.map +1 -1
- package/packages/gateway/dist/missions/chrome-scope.d.ts +91 -0
- package/packages/gateway/dist/missions/chrome-scope.d.ts.map +1 -0
- package/packages/gateway/dist/missions/chrome-scope.js +194 -0
- package/packages/gateway/dist/missions/chrome-scope.js.map +1 -0
- package/packages/gateway/dist/missions/execute.d.ts +20 -0
- package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
- package/packages/gateway/dist/missions/execute.js +73 -3
- package/packages/gateway/dist/missions/execute.js.map +1 -1
- package/packages/gateway/dist/missions/reminders.d.ts +10 -2
- package/packages/gateway/dist/missions/reminders.d.ts.map +1 -1
- package/packages/gateway/dist/missions/reminders.js +53 -5
- package/packages/gateway/dist/missions/reminders.js.map +1 -1
- package/packages/gateway/dist/owner-notify.d.ts +0 -11
- package/packages/gateway/dist/owner-notify.d.ts.map +1 -1
- package/packages/gateway/dist/owner-notify.js +3 -1
- package/packages/gateway/dist/owner-notify.js.map +1 -1
- package/packages/gateway/dist/serve.d.ts.map +1 -1
- package/packages/gateway/dist/serve.js +2 -1
- package/packages/gateway/dist/serve.js.map +1 -1
- package/packages/gateway/dist/telegram/approvals.d.ts +2 -1
- package/packages/gateway/dist/telegram/approvals.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/approvals.js +16 -4
- package/packages/gateway/dist/telegram/approvals.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +8 -0
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/approval-ask.d.ts +8 -0
- package/packages/gateway/dist/web/approval-ask.d.ts.map +1 -1
- package/packages/gateway/dist/web/approval-ask.js +25 -0
- package/packages/gateway/dist/web/approval-ask.js.map +1 -1
- package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
- package/packages/gateway/dist/web/plugins.js +3 -1
- package/packages/gateway/dist/web/plugins.js.map +1 -1
- package/packages/gateway/dist/web/read.d.ts +2 -0
- package/packages/gateway/dist/web/read.d.ts.map +1 -1
- package/packages/gateway/dist/web/read.js +1 -0
- package/packages/gateway/dist/web/read.js.map +1 -1
- package/packages/gateway/dist/web/runtimes.d.ts +10 -0
- package/packages/gateway/dist/web/runtimes.d.ts.map +1 -0
- package/packages/gateway/dist/web/runtimes.js +25 -0
- package/packages/gateway/dist/web/runtimes.js.map +1 -0
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +20 -2
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/gateway/dist/web/write.d.ts +11 -1
- package/packages/gateway/dist/web/write.d.ts.map +1 -1
- package/packages/gateway/dist/web/write.js +18 -1
- package/packages/gateway/dist/web/write.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/delegate.d.ts.map +1 -1
- package/packages/runtime/dist/delegate.js +1 -0
- package/packages/runtime/dist/delegate.js.map +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/controller.d.ts +5 -0
- package/packages/tools/browser/dist/controller.d.ts.map +1 -1
- package/packages/tools/browser/dist/controller.js +41 -5
- package/packages/tools/browser/dist/controller.js.map +1 -1
- package/packages/tools/browser/dist/routes.d.ts +6 -0
- package/packages/tools/browser/dist/routes.d.ts.map +1 -1
- package/packages/tools/browser/dist/routes.js +2 -2
- package/packages/tools/browser/dist/routes.js.map +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/{index-Bxcetnpt.js → index-Dg5Dl0iF.js} +66 -66
- package/packages/web/dist/assets/{lottie_light-CM_Bp6rc.js → lottie_light-vNpJ-Svm.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +1 -1
- package/packages/web/dist/precache.json +3 -3
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared models: one download per model id, whichever plugins ask for it
|
|
3
|
+
* (docs/plugin-host-api.md §4.2 `onnx`, `ctx.buddi.models`, 1.32).
|
|
4
|
+
*
|
|
5
|
+
* `<data>/models/<id>/` holds a model's files and `.verified.json`, written
|
|
6
|
+
* after every file matched its pin and before the folder is renamed into
|
|
7
|
+
* place, under the same rules as the engine: temporary names, checks while the
|
|
8
|
+
* bytes arrive, an atomic rename, stale temporaries swept, a failure kept in
|
|
9
|
+
* `<id>.failed.json` and never retried by itself. Each download stages in
|
|
10
|
+
* its own `.tmp-<id>+*` folder and sweeps only its own, so two models
|
|
11
|
+
* downloading at once never delete each other's files. The owner's yes is
|
|
12
|
+
* kept in `<id>.approved.json` until the download ends, so one cut short by a
|
|
13
|
+
* restart resumes on the next `ensure` without a second card.
|
|
14
|
+
*
|
|
15
|
+
* Minimal on purpose: plugins keep their own download code until they move,
|
|
16
|
+
* and this is the place they move to.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
19
|
+
import { mkdir, rename, rm, writeFile } from 'node:fs/promises';
|
|
20
|
+
import path from 'node:path';
|
|
21
|
+
import { checkUrl } from '../plugin/url.js';
|
|
22
|
+
import { downloadVerified, safeReason, sweepTemp, tempName, tempPrefix } from './download.js';
|
|
23
|
+
import { modelsRoot, runtimesGet, runtimesLog } from './config.js';
|
|
24
|
+
/** The most one model may be: 8 GB. */
|
|
25
|
+
export const MODEL_MAX_BYTES = 8e9;
|
|
26
|
+
const VERIFIED = '.verified.json';
|
|
27
|
+
const ID = /^[a-z0-9][a-z0-9._-]{0,95}$/;
|
|
28
|
+
const NAME_SEGMENT = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
29
|
+
/** A model request that is not one, in a sentence. */
|
|
30
|
+
export class ModelRefusal extends Error {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'ModelRefusal';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const live = new Map();
|
|
37
|
+
/** Each file's name in the folder, or a refusal. */
|
|
38
|
+
function fileName(file) {
|
|
39
|
+
const name = file.name ?? decodeURIComponent(new URL(file.url).pathname.split('/').pop() ?? '');
|
|
40
|
+
const segments = name.split('/');
|
|
41
|
+
if (segments.length > 4 || !segments.every((segment) => NAME_SEGMENT.test(segment) && segment !== '..' && !segment.startsWith('.'))) {
|
|
42
|
+
throw new ModelRefusal(`"${name}" is not a file name a model may use (letters, digits, ".", "_", "-", at most four folders deep).`);
|
|
43
|
+
}
|
|
44
|
+
return name;
|
|
45
|
+
}
|
|
46
|
+
/** Check a request and answer it normalised: every file with its name. Throws a `ModelRefusal`. */
|
|
47
|
+
export function checkModelRequest(req) {
|
|
48
|
+
if (typeof req?.id !== 'string' || !ID.test(req.id)) {
|
|
49
|
+
throw new ModelRefusal(`"${String(req?.id)}" is not a model id (lower-case letters, digits, ".", "_" and "-", at most 96 characters).`);
|
|
50
|
+
}
|
|
51
|
+
if (!Array.isArray(req.files) || req.files.length === 0 || req.files.length > 64) {
|
|
52
|
+
throw new ModelRefusal(`Model ${req.id} needs between one and 64 files.`);
|
|
53
|
+
}
|
|
54
|
+
const files = req.files.map((file) => {
|
|
55
|
+
if (typeof file?.url !== 'string' || !/^https:\/\//.test(file.url)) {
|
|
56
|
+
throw new ModelRefusal(`Model ${req.id}: every file is fetched over https.`);
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
checkUrl(file.url);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw new ModelRefusal(`Model ${req.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
63
|
+
}
|
|
64
|
+
if (typeof file.sha256 !== 'string' || !/^[0-9a-f]{64}$/i.test(file.sha256)) {
|
|
65
|
+
throw new ModelRefusal(`Model ${req.id}: each file carries its sha256, as 64 hex digits.`);
|
|
66
|
+
}
|
|
67
|
+
if (!Number.isSafeInteger(file.bytes) || file.bytes <= 0) {
|
|
68
|
+
throw new ModelRefusal(`Model ${req.id}: each file carries its length in bytes.`);
|
|
69
|
+
}
|
|
70
|
+
return { url: file.url, sha256: file.sha256.toLowerCase(), bytes: file.bytes, name: fileName(file) };
|
|
71
|
+
});
|
|
72
|
+
if (new Set(files.map((file) => file.name)).size !== files.length)
|
|
73
|
+
throw new ModelRefusal(`Model ${req.id} names one file twice.`);
|
|
74
|
+
const bytes = files.reduce((sum, file) => sum + file.bytes, 0);
|
|
75
|
+
if (bytes > MODEL_MAX_BYTES)
|
|
76
|
+
throw new ModelRefusal(`Model ${req.id} is larger than the 8 GB one model may be.`);
|
|
77
|
+
return { id: req.id, files, bytes };
|
|
78
|
+
}
|
|
79
|
+
function folder(id) {
|
|
80
|
+
return path.join(modelsRoot(), id);
|
|
81
|
+
}
|
|
82
|
+
function failureFile(id) {
|
|
83
|
+
return path.join(modelsRoot(), `${id}.failed.json`);
|
|
84
|
+
}
|
|
85
|
+
function approvedFile(id) {
|
|
86
|
+
return path.join(modelsRoot(), `${id}.approved.json`);
|
|
87
|
+
}
|
|
88
|
+
/** Keep the owner's yes for a model until its download ends (`runtimes.download`). */
|
|
89
|
+
export async function markModelApproved(id, files) {
|
|
90
|
+
await mkdir(modelsRoot(), { recursive: true });
|
|
91
|
+
await writeFile(approvedFile(id), JSON.stringify({ id, files, at: new Date().toISOString() }));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The files the owner approved for a model whose download has not finished
|
|
95
|
+
* (a restart cut it short), when they are exactly the files asked for now.
|
|
96
|
+
*/
|
|
97
|
+
export function approvedModelFiles(id, files) {
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(readFileSync(approvedFile(id), 'utf8'));
|
|
100
|
+
const kept = Array.isArray(parsed.files) ? parsed.files : [];
|
|
101
|
+
return kept.length === files.length && files.every((file) => kept.some((k) => k.name === file.name && k.sha256 === file.sha256 && k.url === file.url && k.bytes === file.bytes));
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function verifiedFiles(id) {
|
|
108
|
+
try {
|
|
109
|
+
const parsed = JSON.parse(readFileSync(path.join(folder(id), VERIFIED), 'utf8'));
|
|
110
|
+
return Array.isArray(parsed.files) ? parsed.files : undefined;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* A model's state. With the files asked for, a model already kept with other
|
|
118
|
+
* files is `failed`: one id is one model across plugins, and buddi will not
|
|
119
|
+
* replace another plugin's files.
|
|
120
|
+
*/
|
|
121
|
+
export function modelState(id, files) {
|
|
122
|
+
if (!ID.test(id))
|
|
123
|
+
return { id, state: 'failed', sizeBytes: 0, reason: `"${id}" is not a model id.` };
|
|
124
|
+
const running = live.get(id);
|
|
125
|
+
if (running !== undefined)
|
|
126
|
+
return { id, state: 'downloading', sizeBytes: 0, receivedBytes: running.received };
|
|
127
|
+
try {
|
|
128
|
+
const parsed = JSON.parse(readFileSync(failureFile(id), 'utf8'));
|
|
129
|
+
return { id, state: 'failed', sizeBytes: 0, reason: typeof parsed.reason === 'string' ? safeReason(parsed.reason) : 'The download failed.' };
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// No failure recorded.
|
|
133
|
+
}
|
|
134
|
+
const kept = verifiedFiles(id);
|
|
135
|
+
if (kept === undefined)
|
|
136
|
+
return { id, state: 'absent', sizeBytes: 0 };
|
|
137
|
+
const sizeBytes = kept.reduce((sum, file) => sum + Number(file.bytes), 0);
|
|
138
|
+
if (files !== undefined) {
|
|
139
|
+
const same = files.length === kept.length && files.every((file) => kept.some((k) => k.name === file.name && k.sha256 === file.sha256));
|
|
140
|
+
if (!same)
|
|
141
|
+
return { id, state: 'failed', sizeBytes, reason: `Model ${id} is already kept with other files; pick another id.` };
|
|
142
|
+
}
|
|
143
|
+
return { id, state: 'ready', sizeBytes, path: folder(id) };
|
|
144
|
+
}
|
|
145
|
+
/** Start a model's download, once the owner said yes. Joins one already running; never restarts a failure. */
|
|
146
|
+
export function startModelDownload(req) {
|
|
147
|
+
const { id, files, bytes } = checkModelRequest(req);
|
|
148
|
+
const running = live.get(id);
|
|
149
|
+
if (running !== undefined)
|
|
150
|
+
return running.download;
|
|
151
|
+
if (modelState(id).state !== 'absent')
|
|
152
|
+
return Promise.resolve();
|
|
153
|
+
const entry = { received: 0, download: Promise.resolve() };
|
|
154
|
+
entry.download = downloadModel(id, files, bytes, (received) => {
|
|
155
|
+
entry.received = received;
|
|
156
|
+
})
|
|
157
|
+
.catch(async (err) => {
|
|
158
|
+
// Scrubbed and cut to hosts before it is logged, kept or shown in Settings.
|
|
159
|
+
const reason = safeReason(err instanceof Error ? err.message : String(err));
|
|
160
|
+
runtimesLog(`model ${id}: ${reason}`);
|
|
161
|
+
await mkdir(modelsRoot(), { recursive: true }).catch(() => { });
|
|
162
|
+
await writeFile(failureFile(id), JSON.stringify({ reason, at: new Date().toISOString() })).catch(() => { });
|
|
163
|
+
})
|
|
164
|
+
.finally(async () => {
|
|
165
|
+
// Finished or failed, the yes is spent: a failure is never retried by itself.
|
|
166
|
+
await rm(approvedFile(id), { force: true }).catch(() => { });
|
|
167
|
+
live.delete(id);
|
|
168
|
+
});
|
|
169
|
+
live.set(id, entry);
|
|
170
|
+
return entry.download;
|
|
171
|
+
}
|
|
172
|
+
async function downloadModel(id, files, _bytes, progress) {
|
|
173
|
+
const root = modelsRoot();
|
|
174
|
+
await mkdir(root, { recursive: true });
|
|
175
|
+
// Only this model's leftovers: another model may be downloading beside it.
|
|
176
|
+
await sweepTemp(root, id);
|
|
177
|
+
const stage = tempName(root, '', id);
|
|
178
|
+
try {
|
|
179
|
+
await mkdir(stage);
|
|
180
|
+
let before = 0;
|
|
181
|
+
for (const file of files) {
|
|
182
|
+
const dest = path.join(stage, file.name);
|
|
183
|
+
await mkdir(path.dirname(dest), { recursive: true });
|
|
184
|
+
await downloadVerified(runtimesGet(), file, dest, { onProgress: (received) => progress(before + received) });
|
|
185
|
+
before += file.bytes;
|
|
186
|
+
}
|
|
187
|
+
await writeFile(path.join(stage, VERIFIED), JSON.stringify({ id, files: files.map((file) => ({ name: file.name, sha256: file.sha256, bytes: file.bytes, url: file.url })), at: new Date().toISOString() }));
|
|
188
|
+
await rm(folder(id), { recursive: true, force: true });
|
|
189
|
+
await rename(stage, folder(id));
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
await rm(stage, { recursive: true, force: true }).catch(() => { });
|
|
193
|
+
throw err;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/** Every model kept or failed, for Settings. */
|
|
197
|
+
export function listModels() {
|
|
198
|
+
let names;
|
|
199
|
+
try {
|
|
200
|
+
names = readdirSync(modelsRoot());
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
const ids = new Set();
|
|
206
|
+
for (const name of names) {
|
|
207
|
+
if (name.startsWith('.') || name.endsWith('.approved.json'))
|
|
208
|
+
continue;
|
|
209
|
+
const id = name.endsWith('.failed.json') ? name.slice(0, -'.failed.json'.length) : name;
|
|
210
|
+
if (ID.test(id))
|
|
211
|
+
ids.add(id);
|
|
212
|
+
}
|
|
213
|
+
for (const id of live.keys())
|
|
214
|
+
ids.add(id);
|
|
215
|
+
return [...ids].sort().map((id) => modelState(id)).filter((state) => state.state !== 'absent');
|
|
216
|
+
}
|
|
217
|
+
/** Remove a model and any recorded failure. Refused while it downloads. */
|
|
218
|
+
export async function removeModel(id) {
|
|
219
|
+
if (!ID.test(id))
|
|
220
|
+
return { removed: false, refused: `"${id}" is not a model id.` };
|
|
221
|
+
if (live.has(id))
|
|
222
|
+
return { removed: false, refused: `Model ${id} is downloading; remove it once that is done.` };
|
|
223
|
+
const existed = existsSync(folder(id)) || existsSync(failureFile(id));
|
|
224
|
+
await rm(folder(id), { recursive: true, force: true });
|
|
225
|
+
await rm(failureFile(id), { force: true });
|
|
226
|
+
await rm(approvedFile(id), { force: true });
|
|
227
|
+
return { removed: existed };
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Sweep what downloads that died left in `models/` (once at boot): every
|
|
231
|
+
* temporary except those of a model downloading in this process.
|
|
232
|
+
*/
|
|
233
|
+
export async function sweepModelTemps() {
|
|
234
|
+
return sweepTemp(modelsRoot(), undefined, (name) => [...live.keys()].some((id) => name.startsWith(tempPrefix(id))));
|
|
235
|
+
}
|
|
236
|
+
/** Forget what this process was doing. Tests only. */
|
|
237
|
+
export function resetModels() {
|
|
238
|
+
live.clear();
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/runtimes/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONNX Runtime N-API binding, opened from a verified folder.
|
|
3
|
+
*
|
|
4
|
+
* buddi talks to `onnxruntime_binding.node` directly instead of through the
|
|
5
|
+
* `onnxruntime-node` package: the package's JavaScript is a thin wrapper, and
|
|
6
|
+
* it would put the whole all-platforms npm package back in the install. The
|
|
7
|
+
* binding is handed a tensor class at `initOrtOnce` and builds its outputs
|
|
8
|
+
* with it; the one here is the minimum it reads and writes (`type`, `data`,
|
|
9
|
+
* `dims`, `location`), the same fields `onnxruntime-common`'s `Tensor` has.
|
|
10
|
+
* The binding is opened inside the engine's worker thread (`onnx.ts`), never
|
|
11
|
+
* on the main thread: its `run` is synchronous.
|
|
12
|
+
*/
|
|
13
|
+
/** The element types the binding understands, by their names. */
|
|
14
|
+
export type OnnxTensorType = 'float32' | 'float64' | 'float16' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'bool' | 'string';
|
|
15
|
+
/** A tensor as a plugin hands it in and gets it back: plain data. */
|
|
16
|
+
export interface OnnxTensor {
|
|
17
|
+
type: OnnxTensorType;
|
|
18
|
+
data: Float32Array | Float64Array | Uint16Array | Int8Array | Uint8Array | Int16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array | string[];
|
|
19
|
+
dims: readonly number[];
|
|
20
|
+
}
|
|
21
|
+
/** The tensor class handed to the binding. */
|
|
22
|
+
export declare class OrtTensor {
|
|
23
|
+
readonly type: string;
|
|
24
|
+
readonly data: OnnxTensor['data'];
|
|
25
|
+
readonly dims: readonly number[];
|
|
26
|
+
readonly location = "cpu";
|
|
27
|
+
readonly size: number;
|
|
28
|
+
constructor(type: string, data: OnnxTensor['data'], dims: readonly number[]);
|
|
29
|
+
}
|
|
30
|
+
export interface NativeValueMetadata {
|
|
31
|
+
name: string;
|
|
32
|
+
isTensor: boolean;
|
|
33
|
+
type: number;
|
|
34
|
+
shape: number[];
|
|
35
|
+
symbolicDimensions: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface NativeSession {
|
|
38
|
+
loadModel(modelPath: string, options: Record<string, unknown>): void;
|
|
39
|
+
readonly inputMetadata: NativeValueMetadata[];
|
|
40
|
+
readonly outputMetadata: NativeValueMetadata[];
|
|
41
|
+
run(feeds: Record<string, OrtTensor>, fetches: Record<string, null>, options: Record<string, unknown>): Record<string, OrtTensor>;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
/** What `onnxruntime_binding.node` exports. */
|
|
45
|
+
export interface OnnxNative {
|
|
46
|
+
InferenceSession: new () => NativeSession;
|
|
47
|
+
initOrtOnce(logLevel: number, tensor: unknown, isMainThread: boolean): void;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/runtimes/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,iEAAiE;AACjE,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,CAAC;AAEb,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EACA,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,8CAA8C;AAC9C,qBAAa,SAAS;IAIlB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;IALlC,QAAQ,CAAC,QAAQ,SAAS;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,IAAI,EAAE,SAAS,MAAM,EAAE;CAInC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,aAAa,EAAE,mBAAmB,EAAE,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IAC/C,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClI,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,UAAU,aAAa,CAAC;IAC1C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONNX Runtime N-API binding, opened from a verified folder.
|
|
3
|
+
*
|
|
4
|
+
* buddi talks to `onnxruntime_binding.node` directly instead of through the
|
|
5
|
+
* `onnxruntime-node` package: the package's JavaScript is a thin wrapper, and
|
|
6
|
+
* it would put the whole all-platforms npm package back in the install. The
|
|
7
|
+
* binding is handed a tensor class at `initOrtOnce` and builds its outputs
|
|
8
|
+
* with it; the one here is the minimum it reads and writes (`type`, `data`,
|
|
9
|
+
* `dims`, `location`), the same fields `onnxruntime-common`'s `Tensor` has.
|
|
10
|
+
* The binding is opened inside the engine's worker thread (`onnx.ts`), never
|
|
11
|
+
* on the main thread: its `run` is synchronous.
|
|
12
|
+
*/
|
|
13
|
+
/** The tensor class handed to the binding. */
|
|
14
|
+
export class OrtTensor {
|
|
15
|
+
type;
|
|
16
|
+
data;
|
|
17
|
+
dims;
|
|
18
|
+
location = 'cpu';
|
|
19
|
+
size;
|
|
20
|
+
constructor(type, data, dims) {
|
|
21
|
+
this.type = type;
|
|
22
|
+
this.data = data;
|
|
23
|
+
this.dims = dims;
|
|
24
|
+
this.size = data.length;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/runtimes/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoCH,8CAA8C;AAC9C,MAAM,OAAO,SAAS;IAIT;IACA;IACA;IALF,QAAQ,GAAG,KAAK,CAAC;IACjB,IAAI,CAAS;IACtB,YACW,IAAY,EACZ,IAAwB,EACxB,IAAuB;QAFvB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAoB;QACxB,SAAI,GAAJ,IAAI,CAAmB;QAEhC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type OnnxTensor } from './native.js';
|
|
2
|
+
export type OnnxRuntimeStateName = 'absent' | 'downloading' | 'ready' | 'failed';
|
|
3
|
+
/** What `ctx.buddi.onnx.state()` answers. */
|
|
4
|
+
export interface OnnxRuntimeState {
|
|
5
|
+
state: OnnxRuntimeStateName;
|
|
6
|
+
/** The pinned ONNX Runtime version for this platform; empty where none is offered. */
|
|
7
|
+
version: string;
|
|
8
|
+
/** What stays on disk once it is ready: this platform's binding and library. */
|
|
9
|
+
sizeBytes: number;
|
|
10
|
+
/** What is downloaded to get there: the npm tarball, checked before it is opened. */
|
|
11
|
+
downloadBytes: number;
|
|
12
|
+
/** `<platform>-<arch>`. */
|
|
13
|
+
platform: string;
|
|
14
|
+
/** False where buddi offers no engine (Windows); `state` is then `failed`. */
|
|
15
|
+
available: boolean;
|
|
16
|
+
/** Why it failed, in a sentence. */
|
|
17
|
+
reason?: string;
|
|
18
|
+
/** While downloading: the bytes received so far. */
|
|
19
|
+
receivedBytes?: number;
|
|
20
|
+
/** An approval card raised by `ensure` and not decided yet. */
|
|
21
|
+
pending?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Keep the owner's yes for the engine until its download ends (`runtimes.download`). */
|
|
24
|
+
export declare function markOnnxApproved(): Promise<void>;
|
|
25
|
+
/** Whether the owner approved this engine and its download has not finished (a restart cut it short). */
|
|
26
|
+
export declare function onnxApproved(): boolean;
|
|
27
|
+
/** The engine's state now. Synchronous: a few `stat`s. */
|
|
28
|
+
export declare function onnxState(): OnnxRuntimeState;
|
|
29
|
+
/**
|
|
30
|
+
* Start the download, once the owner said yes. Answers at once; the download
|
|
31
|
+
* runs in the background and the state says how it went. A second call while
|
|
32
|
+
* one runs joins it. Never starts over a recorded failure or a ready engine.
|
|
33
|
+
*/
|
|
34
|
+
export declare function startOnnxDownload(): Promise<void>;
|
|
35
|
+
/** Sweep what a download that died left in this version's folder (once at boot). Skipped while one runs. */
|
|
36
|
+
export declare function sweepOnnxTemps(): Promise<number>;
|
|
37
|
+
/** The engine is not there to run on: absent, downloading or failed. */
|
|
38
|
+
export declare class OnnxUnavailable extends Error {
|
|
39
|
+
constructor(message: string);
|
|
40
|
+
}
|
|
41
|
+
export interface OnnxSessionOptions {
|
|
42
|
+
/** Threads inside one operator. Clamped to 1 … half the cores (at most 8). Default 2. */
|
|
43
|
+
threads?: number;
|
|
44
|
+
/** Unload the model after this long without a run. Default five minutes; 0 keeps it loaded. */
|
|
45
|
+
idleUnloadMs?: number;
|
|
46
|
+
}
|
|
47
|
+
/** What `createSession` answers. */
|
|
48
|
+
export interface OnnxSession {
|
|
49
|
+
/** Run once. Every output comes back as plain data. Loads the model when it is not loaded. */
|
|
50
|
+
run(feeds: Record<string, OnnxTensor>): Promise<Record<string, OnnxTensor>>;
|
|
51
|
+
/** The model's input and output names; loads it when it is not loaded. */
|
|
52
|
+
names(): Promise<{
|
|
53
|
+
inputs: string[];
|
|
54
|
+
outputs: string[];
|
|
55
|
+
}>;
|
|
56
|
+
/** Whether the model is in memory now. */
|
|
57
|
+
readonly loaded: boolean;
|
|
58
|
+
/** Unload it and forget the session. A later `run` throws. */
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export declare const DEFAULT_IDLE_UNLOAD_MS: number;
|
|
62
|
+
/**
|
|
63
|
+
* A session over `modelPath`, sharing the process's one engine. Nothing is
|
|
64
|
+
* loaded until the first `run`. The caller has checked the path is one the
|
|
65
|
+
* plugin may open.
|
|
66
|
+
*/
|
|
67
|
+
export declare function createOnnxSession(modelPath: string, opts?: OnnxSessionOptions): OnnxSession & {
|
|
68
|
+
readonly threadLimit: number;
|
|
69
|
+
unload(): void;
|
|
70
|
+
};
|
|
71
|
+
/** How many sessions exist, and how many hold a model in memory now. */
|
|
72
|
+
export declare function onnxSessionCounts(): {
|
|
73
|
+
open: number;
|
|
74
|
+
loaded: number;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Remove the engine (Settings → System): unload every session, stop the
|
|
78
|
+
* engine's worker, delete the folder and any recorded failure. Refused while a
|
|
79
|
+
* download runs. A plugin's next `ensure` asks the owner again.
|
|
80
|
+
*/
|
|
81
|
+
export declare function removeOnnxRuntime(): Promise<{
|
|
82
|
+
removed: boolean;
|
|
83
|
+
refused?: string;
|
|
84
|
+
}>;
|
|
85
|
+
/** Forget what this process was doing. Tests only. */
|
|
86
|
+
export declare function resetOnnxRuntime(): void;
|
|
87
|
+
//# sourceMappingURL=onnx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx.d.ts","sourceRoot":"","sources":["../../src/runtimes/onnx.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9F,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjF,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4DD,yFAAyF;AACzF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;AAED,yGAAyG;AACzG,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,0DAA0D;AAC1D,wBAAgB,SAAS,IAAI,gBAAgB,CA0B5C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBjD;AAuCD,4GAA4G;AAC5G,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAItD;AAuOD,wEAAwE;AACxE,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1D,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAyHjD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAIlJ;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIpE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAezF;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}
|