@withbuddi/buddi 0.1.0-pre.24 → 0.1.0-pre.26
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/README.md +62 -47
- package/examples/agents/agent-father/agent.md +1 -0
- package/extension/background.js +24 -1
- package/extension/blob.png +0 -0
- package/extension/fonts/dm-mono-latin-400-normal.woff2 +0 -0
- package/extension/fonts/dm-mono-latin-500-normal.woff2 +0 -0
- package/extension/fonts/dm-sans-latin-ext-standard-normal.woff2 +0 -0
- package/extension/fonts/dm-sans-latin-standard-normal.woff2 +0 -0
- package/extension/icons/128.png +0 -0
- package/extension/icons/16.png +0 -0
- package/extension/icons/32.png +0 -0
- package/extension/icons/48.png +0 -0
- package/extension/manifest.json +4 -3
- package/extension/popup.css +199 -81
- package/extension/popup.html +39 -17
- package/extension/popup.js +133 -37
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/args.d.ts +59 -0
- package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/args.js +141 -0
- package/node_modules/@buddi/cli/dist/args.js.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.d.ts +2 -0
- package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.js +71 -1
- package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
- package/node_modules/@buddi/cli/dist/connections-cmd.d.ts +93 -0
- package/node_modules/@buddi/cli/dist/connections-cmd.d.ts.map +1 -0
- package/node_modules/@buddi/cli/dist/connections-cmd.js +657 -0
- package/node_modules/@buddi/cli/dist/connections-cmd.js.map +1 -0
- package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js +82 -17
- package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.d.ts +9 -9
- package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.js +20 -17
- package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
- package/node_modules/@buddi/cli/dist/init-plan.d.ts +1 -2
- package/node_modules/@buddi/cli/dist/init-plan.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/init-plan.js +2 -6
- package/node_modules/@buddi/cli/dist/init-plan.js.map +1 -1
- package/node_modules/@buddi/cli/dist/init.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/init.js +5 -29
- package/node_modules/@buddi/cli/dist/init.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +10 -1
- package/node_modules/@buddi/cli/dist/main.js.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts +5 -0
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.js +15 -4
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.js.map +1 -1
- package/node_modules/@buddi/cli/dist/service/index.d.ts +4 -2
- package/node_modules/@buddi/cli/dist/service/index.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/service/index.js +5 -7
- package/node_modules/@buddi/cli/dist/service/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js +11 -2
- package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts +7 -6
- package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/provider-from-env.js +9 -12
- package/node_modules/@buddi/core/dist/agents/provider-from-env.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.d.ts +4 -4
- package/node_modules/@buddi/core/dist/backup/load.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/backup/load.js +37 -0
- package/node_modules/@buddi/core/dist/backup/load.js.map +1 -1
- package/node_modules/@buddi/core/dist/backup/restore.js +2 -2
- package/node_modules/@buddi/core/dist/backup/restore.js.map +1 -1
- package/node_modules/@buddi/core/dist/connection-config.d.ts +96 -0
- package/node_modules/@buddi/core/dist/connection-config.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/connection-config.js +308 -0
- package/node_modules/@buddi/core/dist/connection-config.js.map +1 -0
- package/node_modules/@buddi/core/dist/failures/owner-message.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/failures/owner-message.js +37 -10
- package/node_modules/@buddi/core/dist/failures/owner-message.js.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/agent.d.ts +54 -0
- package/node_modules/@buddi/core/dist/notifications/agent.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/notifications/agent.js +134 -0
- package/node_modules/@buddi/core/dist/notifications/agent.js.map +1 -0
- package/node_modules/@buddi/core/dist/notifications/index.d.ts +1 -0
- package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/index.js +1 -0
- package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/notify.d.ts +4 -0
- package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/notify.js +19 -7
- package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/store.d.ts +8 -1
- package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/store.js +55 -6
- package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/types.d.ts +26 -2
- package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/notifications/types.js +1 -1
- package/node_modules/@buddi/core/dist/notifications/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/store.js +17 -1
- package/node_modules/@buddi/core/dist/onboarding/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/types.d.ts +14 -0
- package/node_modules/@buddi/core/dist/onboarding/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts +21 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js +31 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/core/dist/provider.d.ts +4 -3
- package/node_modules/@buddi/core/dist/provider.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider.js +7 -4
- package/node_modules/@buddi/core/dist/provider.js.map +1 -1
- package/node_modules/@buddi/core/dist/testing/accounts.d.ts +12 -0
- package/node_modules/@buddi/core/dist/testing/accounts.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/testing/accounts.js +7 -0
- package/node_modules/@buddi/core/dist/testing/accounts.js.map +1 -0
- package/node_modules/@buddi/core/dist/testing/index.d.ts +1 -0
- package/node_modules/@buddi/core/dist/testing/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/testing/index.js +1 -0
- package/node_modules/@buddi/core/dist/testing/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/vault/resolve.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/vault/resolve.js +0 -3
- package/node_modules/@buddi/core/dist/vault/resolve.js.map +1 -1
- package/node_modules/@buddi/core/migrations/053_drop_legacy_anthropic_env.sql +31 -0
- package/node_modules/@buddi/core/migrations/054_agent_messages.sql +15 -0
- package/node_modules/@buddi/core/package.json +4 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts +34 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +87 -4
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents-cli.js +1 -1
- package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.d.ts +1 -3
- package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js +16 -11
- package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/cli.js +1 -1
- package/node_modules/@buddi/gateway/dist/mlxh.d.ts +44 -0
- package/node_modules/@buddi/gateway/dist/mlxh.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/mlxh.js +98 -0
- package/node_modules/@buddi/gateway/dist/mlxh.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts +98 -9
- package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/owner-secrets.js +237 -15
- package/node_modules/@buddi/gateway/dist/owner-secrets.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +4 -0
- package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/stage.js +3 -0
- package/node_modules/@buddi/gateway/dist/plugins/stage.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/update.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/plugins/update.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/update.js +8 -2
- package/node_modules/@buddi/gateway/dist/plugins/update.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +6 -13
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js +76 -16
- package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/providers.d.ts +3 -3
- package/node_modules/@buddi/gateway/dist/providers.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/providers.js +7 -7
- package/node_modules/@buddi/gateway/dist/providers.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.js +26 -8
- package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js +46 -3
- package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js +2 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.js +5 -1
- package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts +7 -0
- package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.js +14 -2
- package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/agents.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/agents.js +5 -1
- package/node_modules/@buddi/gateway/dist/web/agents.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/connections.d.ts +18 -5
- package/node_modules/@buddi/gateway/dist/web/connections.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/connections.js +118 -8
- package/node_modules/@buddi/gateway/dist/web/connections.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts +6 -0
- package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/extension.js +5 -1
- package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/market.d.ts +18 -0
- package/node_modules/@buddi/gateway/dist/web/market.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/market.js +20 -14
- package/node_modules/@buddi/gateway/dist/web/market.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/notifications.d.ts +6 -0
- package/node_modules/@buddi/gateway/dist/web/notifications.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/notifications.js +14 -1
- package/node_modules/@buddi/gateway/dist/web/notifications.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +21 -7
- package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/onboarding.js +64 -11
- package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.d.ts +5 -0
- package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.js +11 -1
- package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/recovery.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/web/recovery.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/recovery.js +114 -34
- package/node_modules/@buddi/gateway/dist/web/recovery.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +84 -8
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/sessions.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/web/sessions.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/sessions.js +24 -1
- package/node_modules/@buddi/gateway/dist/web/sessions.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/static.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/web/static.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/static.js +21 -1
- package/node_modules/@buddi/gateway/dist/web/static.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/take-on.d.ts +91 -0
- package/node_modules/@buddi/gateway/dist/web/take-on.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/take-on.js +287 -0
- package/node_modules/@buddi/gateway/dist/web/take-on.js.map +1 -0
- package/node_modules/@buddi/gateway/src/agents/starter/keeper/agent.md +2 -2
- package/node_modules/@buddi/gateway/src/agents/starter/planner/agent.md +1 -1
- package/node_modules/@buddi/gateway/src/agents/starter/scout/agent.md +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/anthropic.d.ts +7 -0
- package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/anthropic.js +29 -3
- package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.js +1 -1
- package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/provider-models.d.ts +2 -0
- package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/provider-models.js +22 -0
- package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/search.js +2 -2
- 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-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/config.d.ts +13 -9
- package/node_modules/@buddi/tool-email/dist/config.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/config.js +33 -40
- package/node_modules/@buddi/tool-email/dist/config.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/index.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/index.js +1 -1
- package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +1 -2
- package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/accounts.js +42 -18
- package/node_modules/@buddi/tool-email/dist/pages/accounts.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.js +7 -5
- package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/ports.d.ts +5 -1
- package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/shared.js +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/shared.js.map +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-mcp/dist/catalog.d.ts +32 -2
- package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/catalog.js +41 -7
- package/node_modules/@buddi/tool-mcp/dist/catalog.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/device.d.ts +53 -0
- package/node_modules/@buddi/tool-mcp/dist/device.d.ts.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/device.js +100 -0
- package/node_modules/@buddi/tool-mcp/dist/device.js.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts +10 -1
- package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/fetch.js +7 -1
- package/node_modules/@buddi/tool-mcp/dist/fetch.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/index.d.ts +5 -3
- package/node_modules/@buddi/tool-mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/index.js +7 -4
- package/node_modules/@buddi/tool-mcp/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/ports.d.ts +31 -0
- package/node_modules/@buddi/tool-mcp/dist/ports.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/preview.d.ts +16 -0
- package/node_modules/@buddi/tool-mcp/dist/preview.d.ts.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/preview.js +52 -0
- package/node_modules/@buddi/tool-mcp/dist/preview.js.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/program.d.ts +73 -0
- package/node_modules/@buddi/tool-mcp/dist/program.d.ts.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/program.js +306 -0
- package/node_modules/@buddi/tool-mcp/dist/program.js.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/service.d.ts +131 -22
- package/node_modules/@buddi/tool-mcp/dist/service.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/service.js +717 -29
- package/node_modules/@buddi/tool-mcp/dist/service.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/session.d.ts +13 -1
- package/node_modules/@buddi/tool-mcp/dist/session.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/session.js +27 -4
- package/node_modules/@buddi/tool-mcp/dist/session.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/store.d.ts +39 -1
- package/node_modules/@buddi/tool-mcp/dist/store.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/store.js +24 -0
- package/node_modules/@buddi/tool-mcp/dist/store.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts +6 -0
- package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts.map +1 -1
- package/node_modules/@buddi/tool-mcp/dist/testing/fake.js +26 -0
- package/node_modules/@buddi/tool-mcp/dist/testing/fake.js.map +1 -1
- package/node_modules/@buddi/tool-mcp/migrations/003_token_auth.sql +14 -0
- package/node_modules/@buddi/tool-mcp/migrations/004_programs.sql +26 -0
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/providers/index.d.ts +1 -2
- package/node_modules/@buddi/tool-web/dist/providers/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-web/dist/providers/index.js +1 -2
- package/node_modules/@buddi/tool-web/dist/providers/index.js.map +1 -1
- package/node_modules/hono/dist/cjs/jsx/utils.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/combine/index.js +3 -1
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +2 -2
- package/node_modules/hono/dist/jsx/utils.js +1 -1
- package/node_modules/hono/dist/middleware/combine/index.js +3 -1
- package/node_modules/hono/dist/middleware/etag/index.js +2 -2
- package/node_modules/hono/dist/middleware/language/language.js +1 -1
- package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +2 -1
- package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +2 -1
- package/node_modules/hono/dist/types/client/types.d.ts +2 -1
- package/node_modules/hono/dist/types/context.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/cookie/index.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/css/common.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/css/index.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/dev/index.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/factory/index.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/proxy/index.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +2 -1
- package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
- package/node_modules/hono/dist/types/hono-base.d.ts +2 -1
- package/node_modules/hono/dist/types/http-exception.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/base.d.ts +4 -3
- package/node_modules/hono/dist/types/jsx/context.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/client.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/index.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/render.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/dom/server.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/index.d.ts +2 -1
- package/node_modules/hono/dist/types/jsx/types.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/combine/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/compress/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/cors/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/etag/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/language/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/logger/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/timing/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +2 -1
- package/node_modules/hono/dist/types/request.d.ts +2 -1
- package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +2 -1
- package/node_modules/hono/dist/types/types.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/body.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/buffer.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/cookie.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/crypto.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/filepath.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/html.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/mime.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/types.d.ts +2 -1
- package/node_modules/hono/dist/types/utils/url.d.ts +2 -1
- package/node_modules/hono/dist/types/validator/utils.d.ts +2 -1
- package/node_modules/hono/dist/types/validator/validator.d.ts +2 -1
- package/node_modules/hono/package.json +2 -2
- package/node_modules/pg/lib/client.js +18 -0
- package/node_modules/pg/lib/connection.js +8 -1
- package/node_modules/pg/lib/crypto/cert-signatures.js +1 -1
- package/node_modules/pg/lib/native/client.js +11 -3
- package/node_modules/pg/lib/native/query.js +3 -1
- package/node_modules/pg/lib/query.js +5 -1
- package/node_modules/pg/lib/utils.js +19 -1
- package/node_modules/pg/package.json +5 -5
- package/node_modules/pg-connection-string/index.js +1 -1
- package/node_modules/pg-connection-string/package.json +2 -3
- package/node_modules/pg-protocol/dist/buffer-writer.d.ts +5 -1
- package/node_modules/pg-protocol/dist/buffer-writer.js +10 -1
- package/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -1
- package/node_modules/pg-protocol/dist/serializer.js +20 -18
- package/node_modules/pg-protocol/dist/serializer.js.map +1 -1
- package/node_modules/pg-protocol/package.json +2 -2
- package/node_modules/pg-protocol/src/buffer-writer.ts +12 -2
- package/node_modules/pg-protocol/src/serializer.ts +26 -20
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/args.d.ts +59 -0
- package/packages/cli/dist/args.d.ts.map +1 -1
- package/packages/cli/dist/args.js +141 -0
- package/packages/cli/dist/args.js.map +1 -1
- package/packages/cli/dist/commands.d.ts +2 -0
- package/packages/cli/dist/commands.d.ts.map +1 -1
- package/packages/cli/dist/commands.js +71 -1
- package/packages/cli/dist/commands.js.map +1 -1
- package/packages/cli/dist/connections-cmd.d.ts +93 -0
- package/packages/cli/dist/connections-cmd.d.ts.map +1 -0
- package/packages/cli/dist/connections-cmd.js +657 -0
- package/packages/cli/dist/connections-cmd.js.map +1 -0
- package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
- package/packages/cli/dist/doctor-probes.js +82 -17
- package/packages/cli/dist/doctor-probes.js.map +1 -1
- package/packages/cli/dist/doctor.d.ts +9 -9
- package/packages/cli/dist/doctor.d.ts.map +1 -1
- package/packages/cli/dist/doctor.js +20 -17
- package/packages/cli/dist/doctor.js.map +1 -1
- package/packages/cli/dist/init-plan.d.ts +1 -2
- package/packages/cli/dist/init-plan.d.ts.map +1 -1
- package/packages/cli/dist/init-plan.js +2 -6
- package/packages/cli/dist/init-plan.js.map +1 -1
- package/packages/cli/dist/init.d.ts.map +1 -1
- package/packages/cli/dist/init.js +5 -29
- package/packages/cli/dist/init.js.map +1 -1
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +10 -1
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/dist/mcp/gateway-client.d.ts +5 -0
- package/packages/cli/dist/mcp/gateway-client.d.ts.map +1 -1
- package/packages/cli/dist/mcp/gateway-client.js +15 -4
- package/packages/cli/dist/mcp/gateway-client.js.map +1 -1
- package/packages/cli/dist/service/index.d.ts +4 -2
- package/packages/cli/dist/service/index.d.ts.map +1 -1
- package/packages/cli/dist/service/index.js +5 -7
- package/packages/cli/dist/service/index.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/catalog.d.ts.map +1 -1
- package/packages/core/dist/agents/catalog.js +11 -2
- package/packages/core/dist/agents/catalog.js.map +1 -1
- package/packages/core/dist/agents/provider-from-env.d.ts +7 -6
- package/packages/core/dist/agents/provider-from-env.d.ts.map +1 -1
- package/packages/core/dist/agents/provider-from-env.js +9 -12
- package/packages/core/dist/agents/provider-from-env.js.map +1 -1
- package/packages/core/dist/agents/skills.d.ts +4 -4
- package/packages/core/dist/backup/load.d.ts.map +1 -1
- package/packages/core/dist/backup/load.js +37 -0
- package/packages/core/dist/backup/load.js.map +1 -1
- package/packages/core/dist/backup/restore.js +2 -2
- package/packages/core/dist/backup/restore.js.map +1 -1
- package/packages/core/dist/connection-config.d.ts +96 -0
- package/packages/core/dist/connection-config.d.ts.map +1 -0
- package/packages/core/dist/connection-config.js +308 -0
- package/packages/core/dist/connection-config.js.map +1 -0
- package/packages/core/dist/failures/owner-message.d.ts.map +1 -1
- package/packages/core/dist/failures/owner-message.js +37 -10
- package/packages/core/dist/failures/owner-message.js.map +1 -1
- package/packages/core/dist/notifications/agent.d.ts +54 -0
- package/packages/core/dist/notifications/agent.d.ts.map +1 -0
- package/packages/core/dist/notifications/agent.js +134 -0
- package/packages/core/dist/notifications/agent.js.map +1 -0
- package/packages/core/dist/notifications/index.d.ts +1 -0
- package/packages/core/dist/notifications/index.d.ts.map +1 -1
- package/packages/core/dist/notifications/index.js +1 -0
- package/packages/core/dist/notifications/index.js.map +1 -1
- package/packages/core/dist/notifications/notify.d.ts +4 -0
- package/packages/core/dist/notifications/notify.d.ts.map +1 -1
- package/packages/core/dist/notifications/notify.js +19 -7
- package/packages/core/dist/notifications/notify.js.map +1 -1
- package/packages/core/dist/notifications/store.d.ts +8 -1
- package/packages/core/dist/notifications/store.d.ts.map +1 -1
- package/packages/core/dist/notifications/store.js +55 -6
- package/packages/core/dist/notifications/store.js.map +1 -1
- package/packages/core/dist/notifications/types.d.ts +26 -2
- package/packages/core/dist/notifications/types.d.ts.map +1 -1
- package/packages/core/dist/notifications/types.js +1 -1
- package/packages/core/dist/notifications/types.js.map +1 -1
- package/packages/core/dist/onboarding/store.d.ts.map +1 -1
- package/packages/core/dist/onboarding/store.js +17 -1
- package/packages/core/dist/onboarding/store.js.map +1 -1
- package/packages/core/dist/onboarding/types.d.ts +14 -0
- package/packages/core/dist/onboarding/types.d.ts.map +1 -1
- package/packages/core/dist/provider-accounts.d.ts +21 -1
- package/packages/core/dist/provider-accounts.d.ts.map +1 -1
- package/packages/core/dist/provider-accounts.js +31 -1
- package/packages/core/dist/provider-accounts.js.map +1 -1
- package/packages/core/dist/provider.d.ts +4 -3
- package/packages/core/dist/provider.d.ts.map +1 -1
- package/packages/core/dist/provider.js +7 -4
- package/packages/core/dist/provider.js.map +1 -1
- package/packages/core/dist/testing/accounts.d.ts +12 -0
- package/packages/core/dist/testing/accounts.d.ts.map +1 -0
- package/packages/core/dist/testing/accounts.js +7 -0
- package/packages/core/dist/testing/accounts.js.map +1 -0
- package/packages/core/dist/testing/index.d.ts +1 -0
- package/packages/core/dist/testing/index.d.ts.map +1 -1
- package/packages/core/dist/testing/index.js +1 -0
- package/packages/core/dist/testing/index.js.map +1 -1
- package/packages/core/dist/vault/resolve.d.ts.map +1 -1
- package/packages/core/dist/vault/resolve.js +0 -3
- package/packages/core/dist/vault/resolve.js.map +1 -1
- package/packages/core/migrations/053_drop_legacy_anthropic_env.sql +31 -0
- package/packages/core/migrations/054_agent_messages.sql +15 -0
- package/packages/core/package.json +4 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/owner-tools.d.ts +34 -1
- package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/packages/gateway/dist/agents/owner-tools.js +87 -4
- package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
- package/packages/gateway/dist/agents-cli.js +1 -1
- package/packages/gateway/dist/agents-cli.js.map +1 -1
- package/packages/gateway/dist/bootstrap.d.ts +1 -3
- package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
- package/packages/gateway/dist/bootstrap.js +16 -11
- package/packages/gateway/dist/bootstrap.js.map +1 -1
- package/packages/gateway/dist/cli.js +1 -1
- package/packages/gateway/dist/mlxh.d.ts +44 -0
- package/packages/gateway/dist/mlxh.d.ts.map +1 -0
- package/packages/gateway/dist/mlxh.js +98 -0
- package/packages/gateway/dist/mlxh.js.map +1 -0
- package/packages/gateway/dist/owner-secrets.d.ts +98 -9
- package/packages/gateway/dist/owner-secrets.d.ts.map +1 -1
- package/packages/gateway/dist/owner-secrets.js +237 -15
- package/packages/gateway/dist/owner-secrets.js.map +1 -1
- package/packages/gateway/dist/plugins/stage.d.ts +4 -0
- package/packages/gateway/dist/plugins/stage.d.ts.map +1 -1
- package/packages/gateway/dist/plugins/stage.js +3 -0
- package/packages/gateway/dist/plugins/stage.js.map +1 -1
- package/packages/gateway/dist/plugins/update.d.ts +8 -0
- package/packages/gateway/dist/plugins/update.d.ts.map +1 -1
- package/packages/gateway/dist/plugins/update.js +8 -2
- package/packages/gateway/dist/plugins/update.js.map +1 -1
- package/packages/gateway/dist/provider-accounts.d.ts +6 -13
- package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
- package/packages/gateway/dist/provider-accounts.js +76 -16
- package/packages/gateway/dist/provider-accounts.js.map +1 -1
- package/packages/gateway/dist/providers.d.ts +3 -3
- package/packages/gateway/dist/providers.d.ts.map +1 -1
- package/packages/gateway/dist/providers.js +7 -7
- package/packages/gateway/dist/providers.js.map +1 -1
- package/packages/gateway/dist/serve.d.ts.map +1 -1
- package/packages/gateway/dist/serve.js +26 -8
- package/packages/gateway/dist/serve.js.map +1 -1
- package/packages/gateway/dist/surfaces/context-budget.d.ts +1 -1
- package/packages/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/context-budget.js +46 -3
- package/packages/gateway/dist/surfaces/context-budget.js.map +1 -1
- package/packages/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/pending-question.js +2 -1
- package/packages/gateway/dist/surfaces/pending-question.js.map +1 -1
- package/packages/gateway/dist/system-context.d.ts +2 -0
- package/packages/gateway/dist/system-context.d.ts.map +1 -1
- package/packages/gateway/dist/system-context.js +5 -1
- package/packages/gateway/dist/system-context.js.map +1 -1
- package/packages/gateway/dist/telegram/channel.d.ts +7 -0
- package/packages/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/channel.js +14 -2
- package/packages/gateway/dist/telegram/channel.js.map +1 -1
- package/packages/gateway/dist/web/agents.d.ts.map +1 -1
- package/packages/gateway/dist/web/agents.js +5 -1
- package/packages/gateway/dist/web/agents.js.map +1 -1
- package/packages/gateway/dist/web/connections.d.ts +18 -5
- package/packages/gateway/dist/web/connections.d.ts.map +1 -1
- package/packages/gateway/dist/web/connections.js +118 -8
- package/packages/gateway/dist/web/connections.js.map +1 -1
- package/packages/gateway/dist/web/extension.d.ts +6 -0
- package/packages/gateway/dist/web/extension.d.ts.map +1 -1
- package/packages/gateway/dist/web/extension.js +5 -1
- package/packages/gateway/dist/web/extension.js.map +1 -1
- package/packages/gateway/dist/web/market.d.ts +18 -0
- package/packages/gateway/dist/web/market.d.ts.map +1 -1
- package/packages/gateway/dist/web/market.js +20 -14
- package/packages/gateway/dist/web/market.js.map +1 -1
- package/packages/gateway/dist/web/notifications.d.ts +6 -0
- package/packages/gateway/dist/web/notifications.d.ts.map +1 -1
- package/packages/gateway/dist/web/notifications.js +14 -1
- package/packages/gateway/dist/web/notifications.js.map +1 -1
- package/packages/gateway/dist/web/onboarding.d.ts +21 -7
- package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
- package/packages/gateway/dist/web/onboarding.js +64 -11
- package/packages/gateway/dist/web/onboarding.js.map +1 -1
- package/packages/gateway/dist/web/plugins.d.ts +5 -0
- package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
- package/packages/gateway/dist/web/plugins.js +11 -1
- package/packages/gateway/dist/web/plugins.js.map +1 -1
- package/packages/gateway/dist/web/recovery.d.ts +10 -0
- package/packages/gateway/dist/web/recovery.d.ts.map +1 -1
- package/packages/gateway/dist/web/recovery.js +114 -34
- package/packages/gateway/dist/web/recovery.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +84 -8
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/gateway/dist/web/sessions.d.ts +8 -0
- package/packages/gateway/dist/web/sessions.d.ts.map +1 -1
- package/packages/gateway/dist/web/sessions.js +24 -1
- package/packages/gateway/dist/web/sessions.js.map +1 -1
- package/packages/gateway/dist/web/static.d.ts +8 -0
- package/packages/gateway/dist/web/static.d.ts.map +1 -1
- package/packages/gateway/dist/web/static.js +21 -1
- package/packages/gateway/dist/web/static.js.map +1 -1
- package/packages/gateway/dist/web/take-on.d.ts +91 -0
- package/packages/gateway/dist/web/take-on.d.ts.map +1 -0
- package/packages/gateway/dist/web/take-on.js +287 -0
- package/packages/gateway/dist/web/take-on.js.map +1 -0
- package/packages/gateway/src/agents/starter/keeper/agent.md +2 -2
- package/packages/gateway/src/agents/starter/planner/agent.md +1 -1
- package/packages/gateway/src/agents/starter/scout/agent.md +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/anthropic.d.ts +7 -0
- package/packages/runtime/dist/anthropic.d.ts.map +1 -1
- package/packages/runtime/dist/anthropic.js +29 -3
- package/packages/runtime/dist/anthropic.js.map +1 -1
- package/packages/runtime/dist/delegate.js +1 -1
- package/packages/runtime/dist/delegate.js.map +1 -1
- package/packages/runtime/dist/provider-models.d.ts +2 -0
- package/packages/runtime/dist/provider-models.d.ts.map +1 -1
- package/packages/runtime/dist/provider-models.js +22 -0
- package/packages/runtime/dist/provider-models.js.map +1 -1
- package/packages/runtime/dist/search.js +2 -2
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/config.d.ts +13 -9
- package/packages/tools/email/dist/config.d.ts.map +1 -1
- package/packages/tools/email/dist/config.js +33 -40
- package/packages/tools/email/dist/config.js.map +1 -1
- package/packages/tools/email/dist/index.d.ts +1 -1
- package/packages/tools/email/dist/index.d.ts.map +1 -1
- package/packages/tools/email/dist/index.js +1 -1
- package/packages/tools/email/dist/index.js.map +1 -1
- package/packages/tools/email/dist/pages/accounts.d.ts +1 -2
- package/packages/tools/email/dist/pages/accounts.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/accounts.js +42 -18
- package/packages/tools/email/dist/pages/accounts.js.map +1 -1
- package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/queries.js +7 -5
- package/packages/tools/email/dist/pages/queries.js.map +1 -1
- package/packages/tools/email/dist/ports.d.ts +5 -1
- package/packages/tools/email/dist/ports.d.ts.map +1 -1
- package/packages/tools/email/dist/tools/shared.js +1 -1
- package/packages/tools/email/dist/tools/shared.js.map +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/catalog.d.ts +32 -2
- package/packages/tools/mcp/dist/catalog.d.ts.map +1 -1
- package/packages/tools/mcp/dist/catalog.js +41 -7
- package/packages/tools/mcp/dist/catalog.js.map +1 -1
- package/packages/tools/mcp/dist/device.d.ts +53 -0
- package/packages/tools/mcp/dist/device.d.ts.map +1 -0
- package/packages/tools/mcp/dist/device.js +100 -0
- package/packages/tools/mcp/dist/device.js.map +1 -0
- package/packages/tools/mcp/dist/fetch.d.ts +10 -1
- package/packages/tools/mcp/dist/fetch.d.ts.map +1 -1
- package/packages/tools/mcp/dist/fetch.js +7 -1
- package/packages/tools/mcp/dist/fetch.js.map +1 -1
- package/packages/tools/mcp/dist/index.d.ts +5 -3
- package/packages/tools/mcp/dist/index.d.ts.map +1 -1
- package/packages/tools/mcp/dist/index.js +7 -4
- package/packages/tools/mcp/dist/index.js.map +1 -1
- package/packages/tools/mcp/dist/ports.d.ts +31 -0
- package/packages/tools/mcp/dist/ports.d.ts.map +1 -1
- package/packages/tools/mcp/dist/preview.d.ts +16 -0
- package/packages/tools/mcp/dist/preview.d.ts.map +1 -0
- package/packages/tools/mcp/dist/preview.js +52 -0
- package/packages/tools/mcp/dist/preview.js.map +1 -0
- package/packages/tools/mcp/dist/program.d.ts +73 -0
- package/packages/tools/mcp/dist/program.d.ts.map +1 -0
- package/packages/tools/mcp/dist/program.js +306 -0
- package/packages/tools/mcp/dist/program.js.map +1 -0
- package/packages/tools/mcp/dist/service.d.ts +131 -22
- package/packages/tools/mcp/dist/service.d.ts.map +1 -1
- package/packages/tools/mcp/dist/service.js +717 -29
- package/packages/tools/mcp/dist/service.js.map +1 -1
- package/packages/tools/mcp/dist/session.d.ts +13 -1
- package/packages/tools/mcp/dist/session.d.ts.map +1 -1
- package/packages/tools/mcp/dist/session.js +27 -4
- package/packages/tools/mcp/dist/session.js.map +1 -1
- package/packages/tools/mcp/dist/store.d.ts +39 -1
- package/packages/tools/mcp/dist/store.d.ts.map +1 -1
- package/packages/tools/mcp/dist/store.js +24 -0
- package/packages/tools/mcp/dist/store.js.map +1 -1
- package/packages/tools/mcp/dist/testing/fake.d.ts +6 -0
- package/packages/tools/mcp/dist/testing/fake.d.ts.map +1 -1
- package/packages/tools/mcp/dist/testing/fake.js +26 -0
- package/packages/tools/mcp/dist/testing/fake.js.map +1 -1
- package/packages/tools/mcp/migrations/003_token_auth.sql +14 -0
- package/packages/tools/mcp/migrations/004_programs.sql +26 -0
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/providers/index.d.ts +1 -2
- package/packages/tools/web/dist/providers/index.d.ts.map +1 -1
- package/packages/tools/web/dist/providers/index.js +1 -2
- package/packages/tools/web/dist/providers/index.js.map +1 -1
- package/packages/web/dist/assets/index-BxbiKNMS.css +1 -0
- package/packages/web/dist/assets/index-Rrze3bGo.js +130 -0
- package/packages/web/dist/assets/{lottie_light-D7STH9tF.js → lottie_light-7wQnGwdw.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/manifest.webmanifest +24 -5
- package/packages/web/dist/precache.json +4 -4
- package/packages/web/dist/sw.js +5 -3
- package/packages/web/dist/assets/index-C-NAQ_MT.css +0 -1
- package/packages/web/dist/assets/index-DzFS39N3.js +0 -125
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mlxh, the local MLX model server, from the gateway's side: is it running
|
|
3
|
+
* here, what does it serve, and how long a prompt will it take.
|
|
4
|
+
*
|
|
5
|
+
* Asked from the gateway, never from the page, for the reason Ollama is: the
|
|
6
|
+
* dashboard reaches no host but its own, and the answer is about the machine
|
|
7
|
+
* buddi runs on. Two read-only calls, `GET /mlxh/info` and `GET /v1/models`;
|
|
8
|
+
* nothing here ever sends mlxh a prompt.
|
|
9
|
+
*/
|
|
10
|
+
import { MLXH_BASE_URL, MLXH_DEFAULT_MAX_PROMPT_TOKENS } from '@buddi/core';
|
|
11
|
+
import { createHttpTransport } from '@buddi/runtime';
|
|
12
|
+
/** How long the probe waits: mlxh's own callers of /mlxh/info give up after about 2 s. */
|
|
13
|
+
export const MLXH_TIMEOUT_MS = 2_000;
|
|
14
|
+
/** One connection per probe, nothing pooled. */
|
|
15
|
+
const mlxhTransport = createHttpTransport({ idleTimeoutMs: MLXH_TIMEOUT_MS });
|
|
16
|
+
/** Where mlxh answers: the `MLXH_BASE_URL` override, else its default address. */
|
|
17
|
+
export function mlxhBaseUrl(env = {}) {
|
|
18
|
+
const raw = env.MLXH_BASE_URL?.trim();
|
|
19
|
+
return (raw || MLXH_BASE_URL).replace(/\/+$/, '');
|
|
20
|
+
}
|
|
21
|
+
const record = (value) => value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
22
|
+
const count = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : undefined;
|
|
23
|
+
const cleanId = (value) => typeof value === 'string' && value.trim() !== '' && value.length <= 150 && !/[\x00-\x1f\x7f]/.test(value) ? value : undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Ask mlxh whether it is running, what it has installed, and what it loaded.
|
|
26
|
+
* Never throws: nothing answering, a refusal, or two seconds gone are all
|
|
27
|
+
* `running: false`.
|
|
28
|
+
*/
|
|
29
|
+
export async function probeMlxh(opts = {}) {
|
|
30
|
+
const transport = opts.transport ?? mlxhTransport;
|
|
31
|
+
const baseUrl = (opts.baseUrl ?? MLXH_BASE_URL).replace(/\/+$/, '');
|
|
32
|
+
const origin = baseUrl.replace(/\/v1$/, '');
|
|
33
|
+
const signal = AbortSignal.timeout(opts.timeoutMs ?? MLXH_TIMEOUT_MS);
|
|
34
|
+
const ask = async (url) => {
|
|
35
|
+
try {
|
|
36
|
+
const res = await transport(url, { method: 'GET', headers: { Accept: 'application/json' }, signal, maxBytes: 1024 * 1024 });
|
|
37
|
+
if (!res.ok)
|
|
38
|
+
return undefined;
|
|
39
|
+
return record(await res.json());
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const [info, list] = await Promise.all([ask(`${origin}/mlxh/info`), ask(`${baseUrl}/models`)]);
|
|
46
|
+
if (!info && !list)
|
|
47
|
+
return { running: false, baseUrl, manager: false, models: [] };
|
|
48
|
+
const workers = new Map();
|
|
49
|
+
for (const w of Array.isArray(info?.workers) ? info.workers : []) {
|
|
50
|
+
const row = record(w);
|
|
51
|
+
const id = cleanId(row?.model);
|
|
52
|
+
if (row && id && row.state !== 'exited')
|
|
53
|
+
workers.set(id, row);
|
|
54
|
+
}
|
|
55
|
+
const ids = [];
|
|
56
|
+
for (const m of Array.isArray(list?.data) ? list.data : []) {
|
|
57
|
+
const id = cleanId(record(m)?.id);
|
|
58
|
+
if (id && !ids.includes(id))
|
|
59
|
+
ids.push(id);
|
|
60
|
+
}
|
|
61
|
+
// The manager lists its models by name too; a pinned server names its one.
|
|
62
|
+
for (const name of Array.isArray(info?.models) ? info.models : []) {
|
|
63
|
+
const id = cleanId(name);
|
|
64
|
+
if (id && !ids.includes(id))
|
|
65
|
+
ids.push(id);
|
|
66
|
+
}
|
|
67
|
+
const pinned = cleanId(info?.model);
|
|
68
|
+
if (pinned && !ids.includes(pinned))
|
|
69
|
+
ids.push(pinned);
|
|
70
|
+
const manager = info?.manager === true || info?.model_kind === 'manager';
|
|
71
|
+
const models = ids.slice(0, 200).map((id) => {
|
|
72
|
+
const worker = workers.get(id);
|
|
73
|
+
const kindRaw = worker?.model_kind ?? (!manager && id === pinned ? info?.model_kind : undefined);
|
|
74
|
+
const kind = kindRaw === 'language' || kindRaw === 'image' ? kindRaw : undefined;
|
|
75
|
+
return { id, loaded: !!worker || (!manager && id === pinned), ...(kind ? { kind } : {}) };
|
|
76
|
+
});
|
|
77
|
+
const settings = record(info?.settings);
|
|
78
|
+
const maxPromptTokens = count(settings?.max_prompt_tokens) ?? count(info?.max_prompt_tokens);
|
|
79
|
+
const idle = info?.worker_idle_timeout_s;
|
|
80
|
+
const version = typeof info?.version === 'string' && info.version.length <= 40 ? info.version : undefined;
|
|
81
|
+
return {
|
|
82
|
+
running: true, baseUrl, manager, models,
|
|
83
|
+
...(maxPromptTokens !== undefined ? { maxPromptTokens } : {}),
|
|
84
|
+
...(typeof idle === 'number' && Number.isFinite(idle) && idle >= 0 ? { workerIdleTimeoutS: idle } : {}),
|
|
85
|
+
...(version ? { version } : {}),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The window buddi gives an mlxh model: the server's `max_prompt_tokens` when
|
|
90
|
+
* it reported one, else mlxh's default. Null when the server turned the limit
|
|
91
|
+
* off, so buddi's own table for the model decides.
|
|
92
|
+
*/
|
|
93
|
+
export function mlxhWindow(probe) {
|
|
94
|
+
if (probe.maxPromptTokens === 0)
|
|
95
|
+
return null;
|
|
96
|
+
return probe.maxPromptTokens ?? MLXH_DEFAULT_MAX_PROMPT_TOKENS;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=mlxh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mlxh.js","sourceRoot":"","sources":["../src/mlxh.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
* Owner secrets at the composition root (docs/owner-secrets.md §7,
|
|
3
3
|
* docs/plugin-host-api.md §4.2, §6).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Three jobs at start, all once:
|
|
6
6
|
*
|
|
7
|
+
* - **Adopt the mailbox `.env` used to name** (`GMAIL_USER`, its password
|
|
8
|
+
* `GMAIL_APP_PASSWORD`) as a Settings → Email account — `adoptEnvMailbox`.
|
|
9
|
+
* After that buddi reads no mailbox from the environment.
|
|
7
10
|
* - **Adopt what the email plugin kept.** Each mailbox's password lived in
|
|
8
|
-
* the vault under the account row's `secret_name` (`EMAIL_<address>_<hash
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* reads back.
|
|
11
|
+
* the vault under the account row's `secret_name` (`EMAIL_<address>_<hash>`)
|
|
12
|
+
* and was copied into `process.env` for the plugin to read. Each becomes an
|
|
13
|
+
* owner secret of the same name, bound to `email.account` with the
|
|
14
|
+
* account's id as its target, pre-approved. Idempotent; an old entry is
|
|
15
|
+
* deleted only after the new one reads back.
|
|
14
16
|
* - **Clear what nothing reads any more** from `process.env`: the mailbox
|
|
15
17
|
* passwords. What else can go, and what cannot yet, is said on
|
|
16
18
|
* `mailboxSecretNames`.
|
|
17
19
|
*/
|
|
18
20
|
import { type AdoptOutcome, type SecretDestination, type Vault } from '@buddi/core';
|
|
21
|
+
import type { SecretsPort } from '@buddi/tool-mcp';
|
|
19
22
|
import type { Pool } from 'pg';
|
|
20
23
|
/**
|
|
21
24
|
* The provider accounts' destination (docs/owner-secrets.md §3, §7):
|
|
@@ -46,6 +49,73 @@ export declare function ownerSecretVault(vault: Vault, pool: Pick<Pool, 'query'>
|
|
|
46
49
|
* the removal rather than leaving a live credential behind.
|
|
47
50
|
*/
|
|
48
51
|
export declare function deleteAccountSecret(pool: Pick<Pool, 'query'>, vault: Vault | undefined, secretRef: string | undefined): Promise<void>;
|
|
52
|
+
/** The two `.env` lines that used to name a mailbox. Read once, by `adoptEnvMailbox`, and never again. */
|
|
53
|
+
export declare const LEGACY_USER_VAR = "GMAIL_USER";
|
|
54
|
+
export declare const LEGACY_PASSWORD_VAR = "GMAIL_APP_PASSWORD";
|
|
55
|
+
/**
|
|
56
|
+
* The `email.settings` key that records the adoption ran to an end. With it
|
|
57
|
+
* there, `.env` is not read for a mailbox again — not even to re-create one
|
|
58
|
+
* the owner later removed in Settings while the old lines were still there.
|
|
59
|
+
*/
|
|
60
|
+
export declare const ENV_MAILBOX_ADOPTED_KEY = "env_mailbox_adopted";
|
|
61
|
+
export type EnvMailboxAdoption =
|
|
62
|
+
/** Adopted, or found nothing to adopt, on an earlier start: `.env` is not read. */
|
|
63
|
+
{
|
|
64
|
+
outcome: 'done';
|
|
65
|
+
}
|
|
66
|
+
/** `GMAIL_USER` is not set: nothing to adopt, and nothing will be. */
|
|
67
|
+
| {
|
|
68
|
+
outcome: 'none';
|
|
69
|
+
}
|
|
70
|
+
/** Adopted on this start: the account exists and its password moved. */
|
|
71
|
+
| {
|
|
72
|
+
outcome: 'adopted';
|
|
73
|
+
address: string;
|
|
74
|
+
accountId: string;
|
|
75
|
+
}
|
|
76
|
+
/** A Settings → Email account of that address already exists; nothing touched. */
|
|
77
|
+
| {
|
|
78
|
+
outcome: 'exists';
|
|
79
|
+
address: string;
|
|
80
|
+
}
|
|
81
|
+
/** No readable password (or no vault to keep one in): nothing created. */
|
|
82
|
+
| {
|
|
83
|
+
outcome: 'no-password';
|
|
84
|
+
address: string;
|
|
85
|
+
reason: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Adopt the mailbox `.env` names as a Settings → Email account, once, at start
|
|
89
|
+
* (the pattern of `adoptProviderAccountSecrets`).
|
|
90
|
+
*
|
|
91
|
+
* Buddi used to seed an account from `GMAIL_USER` on every boot, its password
|
|
92
|
+
* named `GMAIL_APP_PASSWORD` (in `.env`, in the vault, or — since owner
|
|
93
|
+
* secrets — an owner secret of that name bound to the account). Now only
|
|
94
|
+
* accounts added in Settings exist, so this turns that mailbox into one:
|
|
95
|
+
*
|
|
96
|
+
* - The password is looked for where it may be: an owner secret already under
|
|
97
|
+
* the account's own name (a start that stopped half way), the owner secret
|
|
98
|
+
* `GMAIL_APP_PASSWORD`, the raw vault entry of that name, then `.env`.
|
|
99
|
+
* None readable: nothing is created, and the caller says to add it in
|
|
100
|
+
* Settings → Email.
|
|
101
|
+
* - **Continuity.** Everything the mailbox has — folders and their UID
|
|
102
|
+
* cursors, messages, threads, triage, drafts, rules — is keyed by the
|
|
103
|
+
* account row's id, and the old seed's row is converted in place
|
|
104
|
+
* (`writeGmailAccount`), so the id does not change and nothing is re-read,
|
|
105
|
+
* re-triaged or dropped. There is nothing to re-key.
|
|
106
|
+
* - The password moves to where a page-added account keeps it: the owner
|
|
107
|
+
* secret `secretNameFor(address)`, bound to `email.account` with the row's
|
|
108
|
+
* id, pre-approved. An owner secret `GMAIL_APP_PASSWORD` is *renamed* (same
|
|
109
|
+
* id, same vault entry, its history kept); otherwise the value is written
|
|
110
|
+
* under the new name and read back before the row changes hands, and the
|
|
111
|
+
* raw vault entry goes last. `.env` is the owner's file and is not touched.
|
|
112
|
+
*
|
|
113
|
+
* Once: a run that adopts, finds the address already added in Settings, or
|
|
114
|
+
* finds no `GMAIL_USER` at all records that in `email.settings`
|
|
115
|
+
* (`ENV_MAILBOX_ADOPTED_KEY`), and every later start answers `done` without
|
|
116
|
+
* reading `.env`. Only a missing password leaves it to try again next start.
|
|
117
|
+
*/
|
|
118
|
+
export declare function adoptEnvMailbox(pool: Pool, vault: Vault | undefined, env: NodeJS.ProcessEnv): Promise<EnvMailboxAdoption>;
|
|
49
119
|
export interface MailboxAdoption {
|
|
50
120
|
/** Account address → what happened to its password. Never a value. */
|
|
51
121
|
outcomes: Record<string, AdoptOutcome | 'failed'>;
|
|
@@ -53,7 +123,7 @@ export interface MailboxAdoption {
|
|
|
53
123
|
problems: string[];
|
|
54
124
|
}
|
|
55
125
|
/** Move every mailbox password into an owner secret bound to its login. */
|
|
56
|
-
export declare function adoptMailboxSecrets(pool: Pool, vault: Vault | undefined
|
|
126
|
+
export declare function adoptMailboxSecrets(pool: Pool, vault: Vault | undefined): Promise<MailboxAdoption>;
|
|
57
127
|
/**
|
|
58
128
|
* What the gateway removes from `process.env` once it has started, and why the
|
|
59
129
|
* rest stays for now (host API §6; the whole list is step 4's).
|
|
@@ -67,7 +137,7 @@ export declare function adoptMailboxSecrets(pool: Pool, vault: Vault | undefined
|
|
|
67
137
|
* - `BUDDI_VAULT_KEY`: every `createVault({ env: process.env })` made per
|
|
68
138
|
* request — provider settings and accounts, Telegram setup, the web token,
|
|
69
139
|
* recovery, backups. The file vault reads the key on each open.
|
|
70
|
-
* - `
|
|
140
|
+
* - `OPENAI_API_KEY`: provider
|
|
71
141
|
* resolution per agent (`providerFor`) and model-account reloads.
|
|
72
142
|
* - `TELEGRAM_BOT_TOKEN`: every `notifyOwner`, and Telegram started from the
|
|
73
143
|
* dashboard.
|
|
@@ -94,4 +164,23 @@ export interface ProviderAccountAdoption {
|
|
|
94
164
|
* own keys are not bindable (§6) and their rows carry `legacyEnv`.
|
|
95
165
|
*/
|
|
96
166
|
export declare function adoptProviderAccountSecrets(pool: Pool, vault: Vault | undefined): Promise<ProviderAccountAdoption>;
|
|
167
|
+
/**
|
|
168
|
+
* A connection's pasted token (docs/connections.md, "Connect"), as an owner
|
|
169
|
+
* secret bound to core's `http.header` destination for that connection's host
|
|
170
|
+
* and header, pre-approved: the owner pasted it on that connection's own
|
|
171
|
+
* screen. A read is one recorded use through `useOwnerSecret`, answered only
|
|
172
|
+
* for the bound host and header — the same core-internal delivery the `http`
|
|
173
|
+
* area uses — so Settings → Secrets lists it, its last use and its binding.
|
|
174
|
+
*/
|
|
175
|
+
/**
|
|
176
|
+
* A program's secret variable (docs/connections.md, "A program on this
|
|
177
|
+
* computer"): `mcp.env`, under the connections plugin's own name. The target
|
|
178
|
+
* is the connection and the variable's name; the value goes into the
|
|
179
|
+
* program's environment when it starts, and nowhere else. Core never calls
|
|
180
|
+
* `deliver`: the connections service asks through `useOwnerSecret` with its
|
|
181
|
+
* own delivery, like `http.header`.
|
|
182
|
+
*/
|
|
183
|
+
export declare const MCP_ENV_KIND = "mcp.env";
|
|
184
|
+
export declare function registerMcpEnvDestination(): void;
|
|
185
|
+
export declare function connectionSecrets(pool: Pool, vault: Vault | undefined): SecretsPort | undefined;
|
|
97
186
|
//# sourceMappingURL=owner-secrets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-secrets.d.ts","sourceRoot":"","sources":["../src/owner-secrets.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"owner-secrets.d.ts","sourceRoot":"","sources":["../src/owner-secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,21 +2,23 @@
|
|
|
2
2
|
* Owner secrets at the composition root (docs/owner-secrets.md §7,
|
|
3
3
|
* docs/plugin-host-api.md §4.2, §6).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Three jobs at start, all once:
|
|
6
6
|
*
|
|
7
|
+
* - **Adopt the mailbox `.env` used to name** (`GMAIL_USER`, its password
|
|
8
|
+
* `GMAIL_APP_PASSWORD`) as a Settings → Email account — `adoptEnvMailbox`.
|
|
9
|
+
* After that buddi reads no mailbox from the environment.
|
|
7
10
|
* - **Adopt what the email plugin kept.** Each mailbox's password lived in
|
|
8
|
-
* the vault under the account row's `secret_name` (`EMAIL_<address>_<hash
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* reads back.
|
|
11
|
+
* the vault under the account row's `secret_name` (`EMAIL_<address>_<hash>`)
|
|
12
|
+
* and was copied into `process.env` for the plugin to read. Each becomes an
|
|
13
|
+
* owner secret of the same name, bound to `email.account` with the
|
|
14
|
+
* account's id as its target, pre-approved. Idempotent; an old entry is
|
|
15
|
+
* deleted only after the new one reads back.
|
|
14
16
|
* - **Clear what nothing reads any more** from `process.env`: the mailbox
|
|
15
17
|
* passwords. What else can go, and what cannot yet, is said on
|
|
16
18
|
* `mailboxSecretNames`.
|
|
17
19
|
*/
|
|
18
|
-
import { adoptVaultEntry, deleteOwnerSecret, findSecret, ownerSecretVaultName, } from '@buddi/core';
|
|
19
|
-
import { ACCOUNT_KIND,
|
|
20
|
+
import { adoptVaultEntry, deleteOwnerSecret, findSecret, ownerSecretVaultName, putOwnerSecret, registerSecretDestination, renameOwnerSecret, VAULT_PLACEHOLDER, useOwnerSecret, } from '@buddi/core';
|
|
21
|
+
import { ACCOUNT_KIND, listAccounts, secretNameFor, writeGmailAccount } from '@buddi/tool-email';
|
|
20
22
|
/** The shape of a page-added mailbox's old vault name (`secretNameFor`). Not `EMAIL_BACKFILL`. */
|
|
21
23
|
const MAILBOX_SECRET_RE = /^EMAIL_[A-Z0-9_]+_[0-9a-f]{8}$/;
|
|
22
24
|
/**
|
|
@@ -103,8 +105,132 @@ export async function deleteAccountSecret(pool, vault, secretRef) {
|
|
|
103
105
|
throw new Error(`the credential of "${secretRef}" could not be removed from the vault`);
|
|
104
106
|
}
|
|
105
107
|
}
|
|
108
|
+
/** The two `.env` lines that used to name a mailbox. Read once, by `adoptEnvMailbox`, and never again. */
|
|
109
|
+
export const LEGACY_USER_VAR = 'GMAIL_USER';
|
|
110
|
+
export const LEGACY_PASSWORD_VAR = 'GMAIL_APP_PASSWORD';
|
|
111
|
+
/**
|
|
112
|
+
* The `email.settings` key that records the adoption ran to an end. With it
|
|
113
|
+
* there, `.env` is not read for a mailbox again — not even to re-create one
|
|
114
|
+
* the owner later removed in Settings while the old lines were still there.
|
|
115
|
+
*/
|
|
116
|
+
export const ENV_MAILBOX_ADOPTED_KEY = 'env_mailbox_adopted';
|
|
117
|
+
/** A value that is really there: not empty, not the `"<vault>"` marker `import-env` leaves. */
|
|
118
|
+
function realValue(raw) {
|
|
119
|
+
if (typeof raw !== 'string')
|
|
120
|
+
return null;
|
|
121
|
+
const trimmed = raw.trim();
|
|
122
|
+
const unquoted = trimmed.replace(/^(["'])(.*)\1$/, '$2');
|
|
123
|
+
if (trimmed === '' || unquoted === VAULT_PLACEHOLDER)
|
|
124
|
+
return null;
|
|
125
|
+
return trimmed;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Adopt the mailbox `.env` names as a Settings → Email account, once, at start
|
|
129
|
+
* (the pattern of `adoptProviderAccountSecrets`).
|
|
130
|
+
*
|
|
131
|
+
* Buddi used to seed an account from `GMAIL_USER` on every boot, its password
|
|
132
|
+
* named `GMAIL_APP_PASSWORD` (in `.env`, in the vault, or — since owner
|
|
133
|
+
* secrets — an owner secret of that name bound to the account). Now only
|
|
134
|
+
* accounts added in Settings exist, so this turns that mailbox into one:
|
|
135
|
+
*
|
|
136
|
+
* - The password is looked for where it may be: an owner secret already under
|
|
137
|
+
* the account's own name (a start that stopped half way), the owner secret
|
|
138
|
+
* `GMAIL_APP_PASSWORD`, the raw vault entry of that name, then `.env`.
|
|
139
|
+
* None readable: nothing is created, and the caller says to add it in
|
|
140
|
+
* Settings → Email.
|
|
141
|
+
* - **Continuity.** Everything the mailbox has — folders and their UID
|
|
142
|
+
* cursors, messages, threads, triage, drafts, rules — is keyed by the
|
|
143
|
+
* account row's id, and the old seed's row is converted in place
|
|
144
|
+
* (`writeGmailAccount`), so the id does not change and nothing is re-read,
|
|
145
|
+
* re-triaged or dropped. There is nothing to re-key.
|
|
146
|
+
* - The password moves to where a page-added account keeps it: the owner
|
|
147
|
+
* secret `secretNameFor(address)`, bound to `email.account` with the row's
|
|
148
|
+
* id, pre-approved. An owner secret `GMAIL_APP_PASSWORD` is *renamed* (same
|
|
149
|
+
* id, same vault entry, its history kept); otherwise the value is written
|
|
150
|
+
* under the new name and read back before the row changes hands, and the
|
|
151
|
+
* raw vault entry goes last. `.env` is the owner's file and is not touched.
|
|
152
|
+
*
|
|
153
|
+
* Once: a run that adopts, finds the address already added in Settings, or
|
|
154
|
+
* finds no `GMAIL_USER` at all records that in `email.settings`
|
|
155
|
+
* (`ENV_MAILBOX_ADOPTED_KEY`), and every later start answers `done` without
|
|
156
|
+
* reading `.env`. Only a missing password leaves it to try again next start.
|
|
157
|
+
*/
|
|
158
|
+
export async function adoptEnvMailbox(pool, vault, env) {
|
|
159
|
+
let marked;
|
|
160
|
+
try {
|
|
161
|
+
({ rows: marked } = await pool.query(`select 1 from email.settings where key = $1`, [ENV_MAILBOX_ADOPTED_KEY]));
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
// No email schema: the mail plugin is not installed here, so there is no
|
|
165
|
+
// mailbox to adopt into.
|
|
166
|
+
if (err.code === '42P01' || err.code === '3F000')
|
|
167
|
+
return { outcome: 'none' };
|
|
168
|
+
throw err;
|
|
169
|
+
}
|
|
170
|
+
if (marked.length > 0)
|
|
171
|
+
return { outcome: 'done' };
|
|
172
|
+
const finished = async (result) => {
|
|
173
|
+
const address = 'address' in result ? result.address : null;
|
|
174
|
+
await pool.query(`insert into email.settings (key, value, updated_at) values ($1, $2::jsonb, now())
|
|
175
|
+
on conflict (key) do nothing`, [ENV_MAILBOX_ADOPTED_KEY, JSON.stringify({ outcome: result.outcome, address })]);
|
|
176
|
+
return result;
|
|
177
|
+
};
|
|
178
|
+
const address = env[LEGACY_USER_VAR]?.trim().toLowerCase();
|
|
179
|
+
if (!address)
|
|
180
|
+
return finished({ outcome: 'none' });
|
|
181
|
+
const { rows } = await pool.query(`select id::text as id, added_via from email.accounts where address = $1`, [address]);
|
|
182
|
+
const row = rows[0];
|
|
183
|
+
if (row !== undefined && row.added_via !== 'env')
|
|
184
|
+
return finished({ outcome: 'exists', address });
|
|
185
|
+
const name = secretNameFor(address);
|
|
186
|
+
if (vault === undefined) {
|
|
187
|
+
return { outcome: 'no-password', address, reason: 'this installation has no vault to keep its password in' };
|
|
188
|
+
}
|
|
189
|
+
const ownerValue = async (secretName) => {
|
|
190
|
+
const secret = await findSecret(pool, secretName);
|
|
191
|
+
if (secret === null)
|
|
192
|
+
return null;
|
|
193
|
+
const value = realValue(await vault.get(ownerSecretVaultName(secret.id)).catch(() => null));
|
|
194
|
+
return value === null ? null : { id: secret.id, value };
|
|
195
|
+
};
|
|
196
|
+
const resumed = await ownerValue(name);
|
|
197
|
+
const legacyOwner = resumed === null ? await ownerValue(LEGACY_PASSWORD_VAR) : null;
|
|
198
|
+
const rawVault = resumed === null && legacyOwner === null
|
|
199
|
+
? realValue(await vault.get(LEGACY_PASSWORD_VAR).catch(() => null))
|
|
200
|
+
: null;
|
|
201
|
+
const value = resumed?.value ?? legacyOwner?.value ?? rawVault ?? realValue(env[LEGACY_PASSWORD_VAR]);
|
|
202
|
+
if (value === null) {
|
|
203
|
+
return { outcome: 'no-password', address, reason: `${LEGACY_PASSWORD_VAR} is not readable` };
|
|
204
|
+
}
|
|
205
|
+
// The row first when there is none, because the binding names its id; a
|
|
206
|
+
// password that cannot be kept takes a new row back out.
|
|
207
|
+
const inserted = row === undefined;
|
|
208
|
+
const accountId = row?.id ?? (await writeGmailAccount(pool, address)).id;
|
|
209
|
+
try {
|
|
210
|
+
if (legacyOwner !== null)
|
|
211
|
+
await renameOwnerSecret(pool, LEGACY_PASSWORD_VAR, name);
|
|
212
|
+
const kept = await putOwnerSecret(pool, vault, {
|
|
213
|
+
name,
|
|
214
|
+
value,
|
|
215
|
+
bindings: [{ kind: ACCOUNT_KIND, target: accountId, rule: 'pre-approved' }],
|
|
216
|
+
});
|
|
217
|
+
if ((await vault.get(ownerSecretVaultName(kept.id))) !== value) {
|
|
218
|
+
throw new Error(`the owner secret "${name}" did not read back`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
if (inserted)
|
|
223
|
+
await pool.query(`delete from email.accounts where id = $1::uuid`, [accountId]).catch(() => { });
|
|
224
|
+
throw err;
|
|
225
|
+
}
|
|
226
|
+
// The row changes hands only now, with its password already where it looks.
|
|
227
|
+
await writeGmailAccount(pool, address);
|
|
228
|
+
if (rawVault !== null)
|
|
229
|
+
await vault.delete(LEGACY_PASSWORD_VAR).catch(() => false);
|
|
230
|
+
return finished({ outcome: 'adopted', address, accountId });
|
|
231
|
+
}
|
|
106
232
|
/** Move every mailbox password into an owner secret bound to its login. */
|
|
107
|
-
export async function adoptMailboxSecrets(pool, vault
|
|
233
|
+
export async function adoptMailboxSecrets(pool, vault) {
|
|
108
234
|
const result = { outcomes: {}, problems: [] };
|
|
109
235
|
if (vault === undefined) {
|
|
110
236
|
result.problems.push('this installation has no vault, so mailbox passwords cannot become owner secrets');
|
|
@@ -113,14 +239,15 @@ export async function adoptMailboxSecrets(pool, vault, env) {
|
|
|
113
239
|
for (const account of await listAccounts(pool, { enabledOnly: false })) {
|
|
114
240
|
if (account.authMode !== 'app-password')
|
|
115
241
|
continue;
|
|
242
|
+
// A row the old `.env` seed left and `adoptEnvMailbox` could not adopt:
|
|
243
|
+
// its password is not readable, and the page is where it comes back.
|
|
244
|
+
if (account.addedVia === 'env')
|
|
245
|
+
continue;
|
|
116
246
|
try {
|
|
117
247
|
result.outcomes[account.address] = await adoptVaultEntry(pool, vault, {
|
|
118
248
|
from: account.secretName,
|
|
119
249
|
name: account.secretName,
|
|
120
250
|
bindings: [{ kind: ACCOUNT_KIND, target: account.id, rule: 'pre-approved' }],
|
|
121
|
-
// The account `.env` names may still have its password there, the
|
|
122
|
-
// day-1 path. Adopted the same way; `.env` is the owner's file.
|
|
123
|
-
fallback: account.secretName === GMAIL_SECRET_NAME ? env[GMAIL_SECRET_NAME] : undefined,
|
|
124
251
|
});
|
|
125
252
|
}
|
|
126
253
|
catch (err) {
|
|
@@ -143,7 +270,7 @@ export async function adoptMailboxSecrets(pool, vault, env) {
|
|
|
143
270
|
* - `BUDDI_VAULT_KEY`: every `createVault({ env: process.env })` made per
|
|
144
271
|
* request — provider settings and accounts, Telegram setup, the web token,
|
|
145
272
|
* recovery, backups. The file vault reads the key on each open.
|
|
146
|
-
* - `
|
|
273
|
+
* - `OPENAI_API_KEY`: provider
|
|
147
274
|
* resolution per agent (`providerFor`) and model-account reloads.
|
|
148
275
|
* - `TELEGRAM_BOT_TOKEN`: every `notifyOwner`, and Telegram started from the
|
|
149
276
|
* dashboard.
|
|
@@ -151,7 +278,8 @@ export async function adoptMailboxSecrets(pool, vault, env) {
|
|
|
151
278
|
* - `BUDDI_DB_PASSWORD`: assembled into `DATABASE_URL`, cleared with it.
|
|
152
279
|
*/
|
|
153
280
|
export function mailboxSecretNames(env, accountSecretNames) {
|
|
154
|
-
|
|
281
|
+
// `GMAIL_APP_PASSWORD` too: nothing reads it after `adoptEnvMailbox`.
|
|
282
|
+
const names = new Set([LEGACY_PASSWORD_VAR, ...accountSecretNames]);
|
|
155
283
|
for (const name of Object.keys(env))
|
|
156
284
|
if (MAILBOX_SECRET_RE.test(name))
|
|
157
285
|
names.add(name);
|
|
@@ -205,4 +333,98 @@ export async function adoptProviderAccountSecrets(pool, vault) {
|
|
|
205
333
|
}
|
|
206
334
|
return result;
|
|
207
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* A connection's pasted token (docs/connections.md, "Connect"), as an owner
|
|
338
|
+
* secret bound to core's `http.header` destination for that connection's host
|
|
339
|
+
* and header, pre-approved: the owner pasted it on that connection's own
|
|
340
|
+
* screen. A read is one recorded use through `useOwnerSecret`, answered only
|
|
341
|
+
* for the bound host and header — the same core-internal delivery the `http`
|
|
342
|
+
* area uses — so Settings → Secrets lists it, its last use and its binding.
|
|
343
|
+
*/
|
|
344
|
+
/**
|
|
345
|
+
* A program's secret variable (docs/connections.md, "A program on this
|
|
346
|
+
* computer"): `mcp.env`, under the connections plugin's own name. The target
|
|
347
|
+
* is the connection and the variable's name; the value goes into the
|
|
348
|
+
* program's environment when it starts, and nowhere else. Core never calls
|
|
349
|
+
* `deliver`: the connections service asks through `useOwnerSecret` with its
|
|
350
|
+
* own delivery, like `http.header`.
|
|
351
|
+
*/
|
|
352
|
+
export const MCP_ENV_KIND = 'mcp.env';
|
|
353
|
+
function asEnvTarget(target) {
|
|
354
|
+
if (typeof target !== 'object' || target === null)
|
|
355
|
+
return undefined;
|
|
356
|
+
const { connection, variable } = target;
|
|
357
|
+
return typeof connection === 'string' && typeof variable === 'string' ? { connection, variable } : undefined;
|
|
358
|
+
}
|
|
359
|
+
export function registerMcpEnvDestination() {
|
|
360
|
+
registerSecretDestination('mcp', {
|
|
361
|
+
kind: MCP_ENV_KIND,
|
|
362
|
+
maxRule: 'pre-approved',
|
|
363
|
+
checkTarget(target, bound) {
|
|
364
|
+
const asked = asEnvTarget(target);
|
|
365
|
+
const kept = asEnvTarget(bound);
|
|
366
|
+
return asked !== undefined && kept !== undefined && asked.connection === kept.connection && asked.variable === kept.variable;
|
|
367
|
+
},
|
|
368
|
+
describe(target) {
|
|
369
|
+
const asked = asEnvTarget(target);
|
|
370
|
+
return asked === undefined ? 'a connected program\'s environment' : `the ${asked.variable} variable of a program on this computer`;
|
|
371
|
+
},
|
|
372
|
+
deliver() {
|
|
373
|
+
throw new Error('mcp.env delivers through the connections service itself, never through a destination');
|
|
374
|
+
},
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
export function connectionSecrets(pool, vault) {
|
|
378
|
+
if (vault === undefined)
|
|
379
|
+
return undefined;
|
|
380
|
+
const host = { version: '0.0', plugin: 'http' };
|
|
381
|
+
const mcpHost = { version: '0.0', plugin: 'mcp' };
|
|
382
|
+
registerMcpEnvDestination();
|
|
383
|
+
return {
|
|
384
|
+
async putEnv(name, value, target) {
|
|
385
|
+
await putOwnerSecret(pool, vault, {
|
|
386
|
+
name,
|
|
387
|
+
value,
|
|
388
|
+
bindings: [{ kind: MCP_ENV_KIND, target: { connection: target.connection, variable: target.variable }, rule: 'pre-approved' }],
|
|
389
|
+
});
|
|
390
|
+
},
|
|
391
|
+
async envValue(name, target) {
|
|
392
|
+
let value;
|
|
393
|
+
const result = await useOwnerSecret({ pool, vault, plugin: 'mcp', buddi: mcpHost, now: () => new Date(), deliverInto: (delivered) => { value = delivered; } }, { name, kind: MCP_ENV_KIND, target: { connection: target.connection, variable: target.variable } });
|
|
394
|
+
if ('done' in result && value !== undefined)
|
|
395
|
+
return value;
|
|
396
|
+
if ('pending' in result)
|
|
397
|
+
throw new Error(`"${name}" waits for the owner's approval.`);
|
|
398
|
+
throw new Error('refused' in result ? result.refused : `"${name}" was not delivered.`);
|
|
399
|
+
},
|
|
400
|
+
async put(name, value, target) {
|
|
401
|
+
await putOwnerSecret(pool, vault, {
|
|
402
|
+
name,
|
|
403
|
+
value,
|
|
404
|
+
bindings: [{ kind: 'http.header', target: { host: target.host.toLowerCase(), header: target.header }, rule: 'pre-approved' }],
|
|
405
|
+
});
|
|
406
|
+
},
|
|
407
|
+
async value(name, target) {
|
|
408
|
+
let value;
|
|
409
|
+
const result = await useOwnerSecret({
|
|
410
|
+
pool,
|
|
411
|
+
vault,
|
|
412
|
+
plugin: 'http',
|
|
413
|
+
buddi: host,
|
|
414
|
+
now: () => new Date(),
|
|
415
|
+
deliverInto: (delivered) => {
|
|
416
|
+
value = delivered;
|
|
417
|
+
},
|
|
418
|
+
}, { name, kind: 'http.header', target: { host: target.host.toLowerCase(), header: target.header } });
|
|
419
|
+
if ('done' in result && value !== undefined)
|
|
420
|
+
return value;
|
|
421
|
+
if ('pending' in result)
|
|
422
|
+
throw new Error(`"${name}" waits for the owner's approval.`);
|
|
423
|
+
throw new Error('refused' in result ? result.refused : `"${name}" was not delivered.`);
|
|
424
|
+
},
|
|
425
|
+
async remove(name) {
|
|
426
|
+
await deleteOwnerSecret(pool, vault, name);
|
|
427
|
+
},
|
|
428
|
+
};
|
|
429
|
+
}
|
|
208
430
|
//# sourceMappingURL=owner-secrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner-secrets.js","sourceRoot":"","sources":["../src/owner-secrets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"owner-secrets.js","sourceRoot":"","sources":["../src/owner-secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,8 @@ export interface StagedPlugin {
|
|
|
101
101
|
name: string;
|
|
102
102
|
version: string;
|
|
103
103
|
};
|
|
104
|
+
/** Where that record came from, when this update takes the new version from somewhere else. */
|
|
105
|
+
previousSource?: PluginSource;
|
|
104
106
|
/**
|
|
105
107
|
* The name the file had on the owner's machine, when this stage came from an
|
|
106
108
|
* upload rather than from a path they typed.
|
|
@@ -137,6 +139,8 @@ export interface StageOptions {
|
|
|
137
139
|
};
|
|
138
140
|
/** Set by `updatePlugin`: the areas the installed version declared. */
|
|
139
141
|
previousUses?: PluginUse[];
|
|
142
|
+
/** Set by `updatePlugin`: where the installed version came from. */
|
|
143
|
+
previousSource?: PluginSource;
|
|
140
144
|
now?: () => Date;
|
|
141
145
|
/** Skip the dependency install. Only the fixtures that have none use it. */
|
|
142
146
|
skipDependencies?: boolean;
|