@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,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A program on this computer (docs/connections.md, "A program on this
|
|
3
|
+
* computer"): an MCP server buddi starts as the owner and speaks to over its
|
|
4
|
+
* standard input and output.
|
|
5
|
+
*
|
|
6
|
+
* - **Started on demand**, never before the owner pressed Continue on the
|
|
7
|
+
* form that shows the whole command, and then first only to list its
|
|
8
|
+
* tools for the review.
|
|
9
|
+
* - **Its own process group** (`detached`), so stopping it stops whatever
|
|
10
|
+
* it started too (`npx` runs the server as its child): the group gets
|
|
11
|
+
* SIGTERM, and SIGKILL a few seconds later if anything is left.
|
|
12
|
+
* - **A small environment**: PATH (with the directory of the Node buddi runs
|
|
13
|
+
* on first, so `npx` is the one beside it), HOME, the user, the temporary
|
|
14
|
+
* directory and the locale, and only the variables the owner named. Secret
|
|
15
|
+
* ones are read from the vault at start and never written anywhere.
|
|
16
|
+
* - **Its working directory** is its own, under the data directory.
|
|
17
|
+
* - **Its stderr** is kept, the last twenty lines, for the connection's row
|
|
18
|
+
* when it fails. It never reaches a tool result.
|
|
19
|
+
*
|
|
20
|
+
* The SDK's own `StdioClientTransport` starts the program in buddi's process
|
|
21
|
+
* group and kills only the one process, so this is a small transport of its
|
|
22
|
+
* own over the SDK's framing.
|
|
23
|
+
*/
|
|
24
|
+
import { spawn } from 'node:child_process';
|
|
25
|
+
import { createHash } from 'node:crypto';
|
|
26
|
+
import path from 'node:path';
|
|
27
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
28
|
+
import { ReadBuffer, serializeMessage } from '@modelcontextprotocol/sdk/shared/stdio.js';
|
|
29
|
+
import { CLIENT_INFO } from './session.js';
|
|
30
|
+
/** The first start may download the server (`npx -y …`): two minutes. */
|
|
31
|
+
export const START_TIMEOUT_MS = 120_000;
|
|
32
|
+
/** The lines of stderr kept for the row. */
|
|
33
|
+
export const STDERR_LINES = 20;
|
|
34
|
+
/** How long a stopped group has between SIGTERM and SIGKILL. */
|
|
35
|
+
export const KILL_GRACE_MS = 3_000;
|
|
36
|
+
/** What the owner reads for this connection's address: "this computer". */
|
|
37
|
+
export const PROGRAM_HOST = 'this computer';
|
|
38
|
+
/** The variables every program gets from buddi's own environment, when set. */
|
|
39
|
+
export const BASE_ENV = [
|
|
40
|
+
'HOME', 'USER', 'LOGNAME', 'SHELL', 'TMPDIR', 'TMP', 'TEMP',
|
|
41
|
+
'LANG', 'LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'TZ',
|
|
42
|
+
// Windows needs these to start anything at all.
|
|
43
|
+
'SystemRoot', 'windir', 'USERPROFILE', 'APPDATA', 'LOCALAPPDATA', 'PATHEXT', 'COMSPEC',
|
|
44
|
+
];
|
|
45
|
+
export const ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]{0,127}$/;
|
|
46
|
+
/** sha256 over what makes the program the one the owner reviewed: the command, its arguments, the variables' names. */
|
|
47
|
+
export function specHash(spec) {
|
|
48
|
+
return createHash('sha256')
|
|
49
|
+
.update(JSON.stringify({ command: spec.command, args: spec.args, env: spec.env.map((e) => e.name) }))
|
|
50
|
+
.digest('hex');
|
|
51
|
+
}
|
|
52
|
+
/** One word as a shell would need it written. */
|
|
53
|
+
function quoted(word) {
|
|
54
|
+
if (word !== '' && /^[A-Za-z0-9_@%+=:,./-]+$/.test(word))
|
|
55
|
+
return word;
|
|
56
|
+
return `'${word.replace(/'/g, `'\\''`)}'`;
|
|
57
|
+
}
|
|
58
|
+
/** The command line in full, as the form and the review show it. */
|
|
59
|
+
export function commandLine(spec) {
|
|
60
|
+
return [spec.command, ...spec.args].map(quoted).join(' ');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The program's environment: PATH with the running Node's directory first,
|
|
64
|
+
* the basics from `BASE_ENV`, and the named variables, which win.
|
|
65
|
+
*/
|
|
66
|
+
export function childEnv(named, base = process.env, execPath = process.execPath) {
|
|
67
|
+
const env = {};
|
|
68
|
+
for (const key of BASE_ENV) {
|
|
69
|
+
const value = base[key];
|
|
70
|
+
if (typeof value === 'string' && value !== '')
|
|
71
|
+
env[key] = value;
|
|
72
|
+
}
|
|
73
|
+
const inherited = (base.PATH ?? base.Path ?? '').split(path.delimiter).filter(Boolean);
|
|
74
|
+
const fallback = process.platform === 'win32' ? [] : ['/usr/local/bin', '/usr/bin', '/bin'];
|
|
75
|
+
const dirs = [path.dirname(execPath), ...(inherited.length > 0 ? inherited : fallback)];
|
|
76
|
+
env.PATH = [...new Set(dirs)].join(path.delimiter);
|
|
77
|
+
return { ...env, ...named };
|
|
78
|
+
}
|
|
79
|
+
/** The last lines a program wrote to stderr, with the secrets it was given taken out. */
|
|
80
|
+
export class StderrTail {
|
|
81
|
+
hide;
|
|
82
|
+
max;
|
|
83
|
+
#lines = [];
|
|
84
|
+
#partial = '';
|
|
85
|
+
constructor(hide = [], max = STDERR_LINES) {
|
|
86
|
+
this.hide = hide;
|
|
87
|
+
this.max = max;
|
|
88
|
+
}
|
|
89
|
+
push(chunk) {
|
|
90
|
+
const text = this.#partial + chunk.toString();
|
|
91
|
+
const parts = text.split(/\r?\n/);
|
|
92
|
+
this.#partial = (parts.pop() ?? '').slice(-2000);
|
|
93
|
+
for (const line of parts)
|
|
94
|
+
this.#add(line);
|
|
95
|
+
}
|
|
96
|
+
#add(line) {
|
|
97
|
+
let clean = line.replace(/\x1b\[[0-9;]*[A-Za-z]/g, '').replace(/[\x00-\x08\x0b-\x1f\x7f]/g, '');
|
|
98
|
+
for (const secret of this.hide)
|
|
99
|
+
if (secret.length >= 4)
|
|
100
|
+
clean = clean.split(secret).join('…');
|
|
101
|
+
clean = clean.trimEnd();
|
|
102
|
+
if (clean === '')
|
|
103
|
+
return;
|
|
104
|
+
this.#lines.push(clean.length > 500 ? `${clean.slice(0, 500)}…` : clean);
|
|
105
|
+
if (this.#lines.length > this.max)
|
|
106
|
+
this.#lines.splice(0, this.#lines.length - this.max);
|
|
107
|
+
}
|
|
108
|
+
lines() {
|
|
109
|
+
const out = [...this.#lines];
|
|
110
|
+
if (this.#partial.trim()) {
|
|
111
|
+
const tail = new StderrTail(this.hide, 1);
|
|
112
|
+
tail.push(`${this.#partial}\n`);
|
|
113
|
+
out.push(...tail.lines());
|
|
114
|
+
}
|
|
115
|
+
return out.slice(-this.max);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/* ------------------------------------------------------------------ *
|
|
119
|
+
* The groups this process started, stopped when it exits
|
|
120
|
+
* ------------------------------------------------------------------ */
|
|
121
|
+
const groups = new Set();
|
|
122
|
+
let exitHook = false;
|
|
123
|
+
function track(pid) {
|
|
124
|
+
groups.add(pid);
|
|
125
|
+
if (exitHook)
|
|
126
|
+
return;
|
|
127
|
+
exitHook = true;
|
|
128
|
+
// Nothing asynchronous runs on `exit`: the groups get SIGKILL there, for
|
|
129
|
+
// the case where buddi stops without its orderly shutdown.
|
|
130
|
+
process.once('exit', () => { for (const pid of groups)
|
|
131
|
+
killGroup(pid, 'SIGKILL'); });
|
|
132
|
+
}
|
|
133
|
+
/** Signal the whole group; the process alone where groups do not exist. */
|
|
134
|
+
export function killGroup(pid, signal) {
|
|
135
|
+
try {
|
|
136
|
+
if (process.platform === 'win32')
|
|
137
|
+
process.kill(pid, signal);
|
|
138
|
+
else
|
|
139
|
+
process.kill(-pid, signal);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Already gone.
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Whether any process of the group is still alive. */
|
|
146
|
+
export function groupAlive(pid) {
|
|
147
|
+
try {
|
|
148
|
+
process.kill(process.platform === 'win32' ? pid : -pid, 0);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
return err.code === 'EPERM';
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/** The groups started and not yet stopped (tests). */
|
|
156
|
+
export function liveGroups() { return [...groups]; }
|
|
157
|
+
/** The MCP stdio framing over a program in its own process group. */
|
|
158
|
+
export class ProgramTransport {
|
|
159
|
+
opts;
|
|
160
|
+
onclose;
|
|
161
|
+
onerror;
|
|
162
|
+
onmessage;
|
|
163
|
+
#child;
|
|
164
|
+
#pid;
|
|
165
|
+
#exited;
|
|
166
|
+
#buffer = new ReadBuffer();
|
|
167
|
+
constructor(opts) {
|
|
168
|
+
this.opts = opts;
|
|
169
|
+
}
|
|
170
|
+
get pid() { return this.#pid; }
|
|
171
|
+
start() {
|
|
172
|
+
if (this.#child)
|
|
173
|
+
throw new Error('The program is already started.');
|
|
174
|
+
return new Promise((resolve, reject) => {
|
|
175
|
+
let started = false;
|
|
176
|
+
const child = spawn(this.opts.command, [...this.opts.args], {
|
|
177
|
+
cwd: this.opts.cwd,
|
|
178
|
+
env: this.opts.env,
|
|
179
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
180
|
+
detached: true,
|
|
181
|
+
windowsHide: true,
|
|
182
|
+
shell: false,
|
|
183
|
+
});
|
|
184
|
+
this.#child = child;
|
|
185
|
+
this.#exited = new Promise((done) => child.once('close', () => done()));
|
|
186
|
+
child.once('error', (error) => {
|
|
187
|
+
const err = error.code === 'ENOENT'
|
|
188
|
+
? new Error(`${this.opts.command} was not found on this computer.`)
|
|
189
|
+
: error;
|
|
190
|
+
if (!started)
|
|
191
|
+
reject(err);
|
|
192
|
+
this.onerror?.(err);
|
|
193
|
+
});
|
|
194
|
+
child.once('spawn', () => {
|
|
195
|
+
started = true;
|
|
196
|
+
if (child.pid !== undefined) {
|
|
197
|
+
this.#pid = child.pid;
|
|
198
|
+
track(child.pid);
|
|
199
|
+
}
|
|
200
|
+
resolve();
|
|
201
|
+
});
|
|
202
|
+
child.once('close', (code, signal) => {
|
|
203
|
+
// The group stays tracked until `close`: something the program
|
|
204
|
+
// started may outlive it.
|
|
205
|
+
if (code !== null && code !== 0)
|
|
206
|
+
this.opts.tail.push(`\n(the program stopped with exit code ${code})\n`);
|
|
207
|
+
else if (signal && signal !== 'SIGTERM' && signal !== 'SIGKILL')
|
|
208
|
+
this.opts.tail.push(`\n(the program stopped on ${signal})\n`);
|
|
209
|
+
this.#child = undefined;
|
|
210
|
+
this.onclose?.();
|
|
211
|
+
});
|
|
212
|
+
child.stdout?.on('data', (chunk) => {
|
|
213
|
+
this.#buffer.append(chunk);
|
|
214
|
+
this.#drain();
|
|
215
|
+
});
|
|
216
|
+
child.stderr?.on('data', (chunk) => this.opts.tail.push(chunk));
|
|
217
|
+
child.stdin?.on('error', (error) => this.onerror?.(error));
|
|
218
|
+
child.stdout?.on('error', (error) => this.onerror?.(error));
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
#drain() {
|
|
222
|
+
for (;;) {
|
|
223
|
+
let message;
|
|
224
|
+
try {
|
|
225
|
+
message = this.#buffer.readMessage();
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
// A line that is not JSON-RPC (a banner on stdout): noted, and read past.
|
|
229
|
+
this.opts.tail.push(`\n(a line on its output was not MCP)\n`);
|
|
230
|
+
this.onerror?.(error);
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
if (message === null)
|
|
234
|
+
return;
|
|
235
|
+
this.onmessage?.(message);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
send(message) {
|
|
239
|
+
return new Promise((resolve, reject) => {
|
|
240
|
+
const stdin = this.#child?.stdin;
|
|
241
|
+
if (!stdin || stdin.destroyed) {
|
|
242
|
+
reject(new Error('The program is not running.'));
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
if (stdin.write(serializeMessage(message)))
|
|
246
|
+
resolve();
|
|
247
|
+
else
|
|
248
|
+
stdin.once('drain', resolve);
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/** Stop the whole group: SIGTERM, then SIGKILL after the grace period. */
|
|
252
|
+
async close() {
|
|
253
|
+
const pid = this.#pid;
|
|
254
|
+
const child = this.#child;
|
|
255
|
+
this.#buffer.clear();
|
|
256
|
+
if (child) {
|
|
257
|
+
child.stdin?.end();
|
|
258
|
+
child.stdout?.removeAllListeners('data');
|
|
259
|
+
}
|
|
260
|
+
if (pid === undefined)
|
|
261
|
+
return;
|
|
262
|
+
killGroup(pid, 'SIGTERM');
|
|
263
|
+
const exited = this.#exited ?? Promise.resolve();
|
|
264
|
+
let timer;
|
|
265
|
+
await Promise.race([exited, new Promise((resolve) => { timer = setTimeout(resolve, KILL_GRACE_MS); timer.unref?.(); })]);
|
|
266
|
+
if (timer)
|
|
267
|
+
clearTimeout(timer);
|
|
268
|
+
// The leader may be gone while something it started lives on in the group.
|
|
269
|
+
if (groupAlive(pid))
|
|
270
|
+
killGroup(pid, 'SIGKILL');
|
|
271
|
+
groups.delete(pid);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/** Start the program and `initialize` it, and nothing else. */
|
|
275
|
+
export async function openProgram(opts) {
|
|
276
|
+
const transport = new ProgramTransport(opts);
|
|
277
|
+
const client = new Client(CLIENT_INFO, { capabilities: {} });
|
|
278
|
+
try {
|
|
279
|
+
await client.connect(transport, { timeout: opts.timeoutMs ?? START_TIMEOUT_MS });
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
await client.close().catch(() => { });
|
|
283
|
+
await transport.close().catch(() => { });
|
|
284
|
+
throw error;
|
|
285
|
+
}
|
|
286
|
+
let exited = false;
|
|
287
|
+
let closing = false;
|
|
288
|
+
// The program stopped by itself: the session is dead, and the next call starts it again.
|
|
289
|
+
client.onclose = () => {
|
|
290
|
+
exited = true;
|
|
291
|
+
if (!closing)
|
|
292
|
+
opts.onExit?.();
|
|
293
|
+
};
|
|
294
|
+
return {
|
|
295
|
+
client,
|
|
296
|
+
pid: transport.pid,
|
|
297
|
+
unauthorized: () => null,
|
|
298
|
+
closed: () => exited,
|
|
299
|
+
close: async () => {
|
|
300
|
+
closing = true;
|
|
301
|
+
await client.close().catch(() => { });
|
|
302
|
+
await transport.close().catch(() => { });
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Connections, the service (docs/connections.md; buddi-planning/specs/mcp-client.md).
|
|
3
|
-
*
|
|
4
|
-
* The four screens of the flow — address, consent, review, grant — are this
|
|
5
|
-
* service's methods (grant is the gateway's: it writes agent files through the
|
|
6
|
-
* same path Agent Father uses). It also owns what happens while buddi runs:
|
|
7
|
-
* every reviewed connection's tools registered as `mcp.<connection>.<tool>`,
|
|
8
|
-
* one MCP session per connection, and the connection's state.
|
|
9
|
-
*
|
|
10
|
-
* What a server may reach before the owner has read its review: an
|
|
11
|
-
* `initialize` and a tool list. No token exists until the owner signed in on
|
|
12
|
-
* the service's own consent page, and no tool is registered until the review
|
|
13
|
-
* is saved.
|
|
14
|
-
*/
|
|
15
1
|
import type { Pool } from 'pg';
|
|
16
2
|
import { type JSONSchema7, type NetworkArea, type ToolsArea } from '@buddi/core/plugin';
|
|
17
|
-
import type { HttpTransport, OAuthPort, VaultPort } from './ports.js';
|
|
3
|
+
import type { HttpTransport, OAuthPort, SecretsPort, VaultPort } from './ports.js';
|
|
4
|
+
import { type CatalogCard } from './catalog.js';
|
|
18
5
|
import { Sessions } from './session.js';
|
|
19
|
-
import { type ConnectionRow, type ConnectionState, type ToolRow } from './store.js';
|
|
6
|
+
import { type AuthKind, type ConnectionRow, type ConnectionState, type ToolRow, type TransportKind } from './store.js';
|
|
20
7
|
import { type ToolTier } from './tiers.js';
|
|
21
8
|
import { TokenKeeper } from './tokens.js';
|
|
22
9
|
/** A refusal a route answers with its status and sentence. */
|
|
@@ -33,6 +20,8 @@ export interface ConnectionsDeps {
|
|
|
33
20
|
transport: HttpTransport;
|
|
34
21
|
/** The shared OAuth module over the same transport (`createOAuthPort`). */
|
|
35
22
|
oauth: OAuthPort;
|
|
23
|
+
/** The owner's secrets, for a connection signed in with a token. Without one, token sign-in is refused. */
|
|
24
|
+
secrets?: SecretsPort;
|
|
36
25
|
/**
|
|
37
26
|
* Compile a server's input schema the way the registry will, throwing a
|
|
38
27
|
* sentence when it cannot (core's `compileJsonSchema`). Without one, only
|
|
@@ -48,6 +37,53 @@ export interface ConnectionsDeps {
|
|
|
48
37
|
idleMs?: number;
|
|
49
38
|
/** How often a connection's tool list is compared with its review, at most. An hour. */
|
|
50
39
|
recheckMs?: number;
|
|
40
|
+
/** The cards, for a device sign-in's app (`CATALOG`). A test hands its own. */
|
|
41
|
+
catalog?: readonly CatalogCard[];
|
|
42
|
+
/** Wait between device polls; resolves early when `signal` aborts. A test hands one that does not wait. */
|
|
43
|
+
sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
|
|
44
|
+
/** The data directory: a program's working directory is `<dataDir>/connections/<id>`. The system's temporary directory without one. */
|
|
45
|
+
dataDir?: string;
|
|
46
|
+
/** The environment a program's PATH, HOME and locale come from. `process.env`. */
|
|
47
|
+
env?: NodeJS.ProcessEnv;
|
|
48
|
+
/** How long a program has to start and answer `initialize`. Two minutes, for a first `npx` download. */
|
|
49
|
+
startTimeoutMs?: number;
|
|
50
|
+
}
|
|
51
|
+
/** A program's variable as the owner gave it: a value, or a secret kept in the vault. */
|
|
52
|
+
export interface ProgramEnvInput {
|
|
53
|
+
name: string;
|
|
54
|
+
/** For a secret on a change, empty keeps the value already kept. */
|
|
55
|
+
value?: string;
|
|
56
|
+
secret?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface ProgramInput {
|
|
59
|
+
name: string;
|
|
60
|
+
command: string;
|
|
61
|
+
args?: readonly string[];
|
|
62
|
+
env?: readonly ProgramEnvInput[];
|
|
63
|
+
}
|
|
64
|
+
/** A program on this computer, as the row and the review show it. Never a secret's value. */
|
|
65
|
+
export interface ProgramView {
|
|
66
|
+
command: string;
|
|
67
|
+
args: string[];
|
|
68
|
+
/** The command line in full, quoted as a shell would need it. */
|
|
69
|
+
line: string;
|
|
70
|
+
env: Array<{
|
|
71
|
+
name: string;
|
|
72
|
+
secret: boolean;
|
|
73
|
+
value?: string;
|
|
74
|
+
}>;
|
|
75
|
+
/** The command, arguments or variables' names changed since the review: another review first. */
|
|
76
|
+
changedSinceReview: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** A device sign-in (docs/connections.md, "Connect"), as `GET /api/connections/:id` shows it. */
|
|
79
|
+
export interface DeviceView {
|
|
80
|
+
state: 'waiting' | 'done' | 'failed';
|
|
81
|
+
userCode: string;
|
|
82
|
+
verificationUri: string;
|
|
83
|
+
/** ISO time the code stops working. */
|
|
84
|
+
expiresAt: string;
|
|
85
|
+
/** Failed: why, in one sentence. */
|
|
86
|
+
reason?: string;
|
|
51
87
|
}
|
|
52
88
|
export interface ConnectionView {
|
|
53
89
|
id: string;
|
|
@@ -56,8 +92,8 @@ export interface ConnectionView {
|
|
|
56
92
|
url: string;
|
|
57
93
|
host: string;
|
|
58
94
|
state: ConnectionState;
|
|
59
|
-
authKind:
|
|
60
|
-
/** OAuth:
|
|
95
|
+
authKind: AuthKind;
|
|
96
|
+
/** OAuth or token: the sign-in is kept. Always true for a server that wants none. */
|
|
61
97
|
signedIn: boolean;
|
|
62
98
|
/** Tools registered for agents (enabled, reviewed). */
|
|
63
99
|
toolCount: number;
|
|
@@ -70,6 +106,16 @@ export interface ConnectionView {
|
|
|
70
106
|
unreachableSince: string | null;
|
|
71
107
|
/** Reviewed tools the server changed or dropped since: they wait for another review. */
|
|
72
108
|
heldTools: number;
|
|
109
|
+
/** A device sign-in that is waiting, or finished in the last ten minutes. */
|
|
110
|
+
device?: DeviceView;
|
|
111
|
+
/** `http` for a server at an address, `stdio` for a program on this computer. */
|
|
112
|
+
transport: TransportKind;
|
|
113
|
+
/** A program's command, arguments and variables. */
|
|
114
|
+
program?: ProgramView;
|
|
115
|
+
/** A program being started (a first `npx` may be downloading). */
|
|
116
|
+
phase?: 'starting';
|
|
117
|
+
/** The last lines a program wrote to stderr, when it last failed to start or answer. */
|
|
118
|
+
stderr?: string[];
|
|
73
119
|
}
|
|
74
120
|
/** What changed in a server's list since the owner's review, by the server's names. */
|
|
75
121
|
export interface ReviewChanges {
|
|
@@ -104,6 +150,8 @@ export interface ReviewView {
|
|
|
104
150
|
annotatedNothing: boolean;
|
|
105
151
|
/** Against the last review; null on the first one. */
|
|
106
152
|
changes: ReviewChanges | null;
|
|
153
|
+
/** A program: what runs, in full, above its tools. */
|
|
154
|
+
program?: ProgramView;
|
|
107
155
|
}
|
|
108
156
|
/** A line for Home and the rail: a connection that needs the owner. */
|
|
109
157
|
export interface ConnectionSignal {
|
|
@@ -113,8 +161,15 @@ export interface ConnectionSignal {
|
|
|
113
161
|
sentence: string;
|
|
114
162
|
}
|
|
115
163
|
export type SignIn = 'none' | 'dynamic' | 'manual';
|
|
164
|
+
/** The header a pasted token goes in when nothing else is said, and the words before it. */
|
|
165
|
+
export declare const DEFAULT_TOKEN_HEADER = "Authorization";
|
|
166
|
+
export declare const DEFAULT_TOKEN_PREFIX = "Bearer ";
|
|
167
|
+
/** The owner-secret name a program's secret variable is kept under. */
|
|
168
|
+
export declare function envSecretFor(connectionId: string, variable: string): string;
|
|
169
|
+
/** The owner-secret name a connection's token is kept under. */
|
|
170
|
+
export declare function tokenSecretFor(connectionId: string): string;
|
|
116
171
|
/** Spec §2: the escape hatch, one sentence. */
|
|
117
|
-
export declare const NEEDS_CLIENT_ID = "This service does not let buddi register itself
|
|
172
|
+
export declare const NEEDS_CLIENT_ID = "This service does not let buddi register itself. Create an app in its developer settings with the redirect address below, and paste its client id here. A token is usually simpler.";
|
|
118
173
|
/** After a failure, the next try is this many minutes on; the last one repeats (spec: 1, 5, 15, 60, then hourly). */
|
|
119
174
|
export declare const RETRY_MINUTES: readonly [1, 5, 15, 60];
|
|
120
175
|
export declare const RECHECK_MS: number;
|
|
@@ -131,7 +186,9 @@ export declare class ConnectionsService {
|
|
|
131
186
|
* hosts are declared (`ctx.buddi.network`), handed over at register.
|
|
132
187
|
*/
|
|
133
188
|
attachTools(area: ToolsArea, network?: NetworkArea): void;
|
|
134
|
-
view(row: ConnectionRow, tools: readonly ToolRow[]
|
|
189
|
+
view(row: ConnectionRow, tools: readonly ToolRow[], device?: {
|
|
190
|
+
device?: DeviceView;
|
|
191
|
+
}): ConnectionView;
|
|
135
192
|
list(): Promise<ConnectionView[]>;
|
|
136
193
|
get(id: string): Promise<ConnectionView>;
|
|
137
194
|
/** The connections that need the owner, in a sentence each: Home's line and the rail's dot. */
|
|
@@ -149,22 +206,40 @@ export declare class ConnectionsService {
|
|
|
149
206
|
connection: ConnectionView;
|
|
150
207
|
signIn: SignIn;
|
|
151
208
|
}>;
|
|
209
|
+
/**
|
|
210
|
+
* Record a program the owner described: its command, arguments and
|
|
211
|
+
* variables, the secret ones kept as owner secrets and named here only.
|
|
212
|
+
* Nothing is started: the review starts it, the first time only to list
|
|
213
|
+
* its tools.
|
|
214
|
+
*/
|
|
215
|
+
addProgram(input: ProgramInput): Promise<{
|
|
216
|
+
connection: ConnectionView;
|
|
217
|
+
}>;
|
|
218
|
+
/**
|
|
219
|
+
* Change a program's command, arguments or variables. A different
|
|
220
|
+
* command, other arguments or other variables' names is another program:
|
|
221
|
+
* its tools stop until the owner reviews it again. A new value for a
|
|
222
|
+
* variable already named is not.
|
|
223
|
+
*/
|
|
224
|
+
updateProgram(id: string, input: ProgramInput): Promise<ConnectionView>;
|
|
152
225
|
/**
|
|
153
226
|
* Register buddi with the service's authorization server (or take the
|
|
154
227
|
* client id the owner typed), and hand back the consent page's address,
|
|
155
|
-
* with PKCE and a state bound to this dashboard session
|
|
228
|
+
* with PKCE and a state bound to this dashboard session (or owned by the
|
|
229
|
+
* CLI, `cli`: see `PendingConsent`). Reconnect is this,
|
|
156
230
|
* on a connection that keeps its tools.
|
|
157
231
|
*/
|
|
158
232
|
beginConsent(id: string, input: {
|
|
159
233
|
sessionId: string;
|
|
160
234
|
redirectUri: string;
|
|
161
235
|
clientId?: string;
|
|
236
|
+
cli?: boolean;
|
|
162
237
|
}): Promise<{
|
|
163
238
|
authorizeUrl: string;
|
|
164
239
|
}>;
|
|
165
240
|
/**
|
|
166
241
|
* The consent page came back to `/connections/callback`: check the state
|
|
167
|
-
* (this session's, unexpired, used once), exchange the code, keep the tokens
|
|
242
|
+
* (this session's or the CLI's, unexpired, used once), exchange the code, keep the tokens
|
|
168
243
|
* in the vault. A connection that was reviewed before is connected again
|
|
169
244
|
* with its tools as they were.
|
|
170
245
|
*/
|
|
@@ -177,6 +252,40 @@ export declare class ConnectionsService {
|
|
|
177
252
|
id: string;
|
|
178
253
|
reconnected: boolean;
|
|
179
254
|
name: string;
|
|
255
|
+
cli: boolean;
|
|
256
|
+
}>;
|
|
257
|
+
/**
|
|
258
|
+
* Sign in with a token the owner pasted (docs/connections.md, "Connect"):
|
|
259
|
+
* the server is opened with it and its tools listed before anything is
|
|
260
|
+
* kept, so a token the service refuses is never stored. Kept, it is an
|
|
261
|
+
* owner secret bound to this host's header, sent on every request as
|
|
262
|
+
* `<prefix><token>`. Reconnect is this again, on a connection that keeps
|
|
263
|
+
* its tools.
|
|
264
|
+
*/
|
|
265
|
+
useToken(id: string, input: {
|
|
266
|
+
token: string;
|
|
267
|
+
header?: string;
|
|
268
|
+
prefix?: string;
|
|
269
|
+
}): Promise<{
|
|
270
|
+
id: string;
|
|
271
|
+
reconnected: boolean;
|
|
272
|
+
name: string;
|
|
273
|
+
}>;
|
|
274
|
+
/**
|
|
275
|
+
* Ask the service for a device code with buddi's public app, and wait for
|
|
276
|
+
* the owner to type it on the service's site. The wait is this service's:
|
|
277
|
+
* one per connection, replaced by a new begin, ended by a disconnect or the
|
|
278
|
+
* code's expiry. Approved, the token goes the way a pasted one goes
|
|
279
|
+
* (`#keepToken`: tried, then an owner secret sent as `Authorization:
|
|
280
|
+
* Bearer`), or, when the service gave a refresh token, into the vault as
|
|
281
|
+
* an OAuth sign-in that renews itself before it expires. The connection's
|
|
282
|
+
* view carries `device` meanwhile.
|
|
283
|
+
*/
|
|
284
|
+
beginDevice(id: string): Promise<{
|
|
285
|
+
userCode: string;
|
|
286
|
+
verificationUri: string;
|
|
287
|
+
expiresAt: string;
|
|
288
|
+
interval: number;
|
|
180
289
|
}>;
|
|
181
290
|
/** Every tool the server lists, as buddi would take it. Nothing is registered. */
|
|
182
291
|
review(id: string): Promise<ReviewView>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|