@withbuddi/buddi 0.1.0-pre.15 → 0.1.0-pre.17
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/LICENSE +202 -0
- package/README.md +352 -0
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js +7 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts +1 -1
- package/node_modules/@buddi/cli/dist/mcp/gateway-client.js +1 -1
- package/node_modules/@buddi/cli/dist/mcp/secrets.d.ts +1 -1
- package/node_modules/@buddi/cli/dist/mcp/secrets.js +1 -1
- package/node_modules/@buddi/cli/dist/mcp/server.d.ts +1 -1
- package/node_modules/@buddi/cli/dist/mcp/server.js +1 -1
- package/node_modules/@buddi/cli/dist/mcp/tools.d.ts +1 -1
- package/node_modules/@buddi/cli/dist/mcp/tools.js +9 -5
- package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
- package/node_modules/@buddi/cli/dist/paths.d.ts +1 -1
- package/node_modules/@buddi/cli/dist/paths.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/paths.js +19 -4
- package/node_modules/@buddi/cli/dist/paths.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.js +1 -1
- package/node_modules/@buddi/core/dist/backup/archive.d.ts +16 -1
- package/node_modules/@buddi/core/dist/backup/archive.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/backup/archive.js +83 -38
- package/node_modules/@buddi/core/dist/backup/archive.js.map +1 -1
- package/node_modules/@buddi/core/dist/goals/types.d.ts +1 -1
- package/node_modules/@buddi/core/dist/goals/types.js +1 -1
- package/node_modules/@buddi/core/dist/host/build.js +2 -2
- package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
- package/node_modules/@buddi/core/dist/host/http.d.ts +1 -1
- package/node_modules/@buddi/core/dist/host/http.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/host/http.js +1 -1
- package/node_modules/@buddi/core/dist/host/http.js.map +1 -1
- package/node_modules/@buddi/core/dist/host/types.d.ts +4 -4
- package/node_modules/@buddi/core/dist/learning/echoes.d.ts +1 -1
- package/node_modules/@buddi/core/dist/learning/echoes.js +1 -1
- package/node_modules/@buddi/core/dist/learning/policies.d.ts +1 -1
- package/node_modules/@buddi/core/dist/learning/skill-files.js +1 -1
- package/node_modules/@buddi/core/dist/learning/types.d.ts +2 -2
- package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js +1 -1
- package/node_modules/@buddi/core/dist/pages.d.ts +4 -4
- package/node_modules/@buddi/core/dist/pages.js +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js +1 -1
- package/node_modules/@buddi/core/dist/plugin/search.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/search.js +1 -1
- package/node_modules/@buddi/core/dist/plugin/url.js +1 -1
- package/node_modules/@buddi/core/dist/plugin/uses.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/uses.js +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
- package/node_modules/@buddi/core/dist/registry.js +1 -1
- package/node_modules/@buddi/core/dist/registry.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.d.ts +1 -1
- package/node_modules/@buddi/core/dist/secrets/approval.js +1 -1
- package/node_modules/@buddi/core/dist/secrets/destinations.d.ts +1 -1
- package/node_modules/@buddi/core/dist/secrets/scrub.js +1 -1
- package/node_modules/@buddi/core/dist/secrets/settings.js +1 -1
- package/node_modules/@buddi/core/dist/secrets/store.d.ts +1 -1
- package/node_modules/@buddi/core/dist/secrets/totp.js +1 -1
- package/node_modules/@buddi/core/dist/secrets/use.d.ts +1 -1
- package/node_modules/@buddi/core/dist/testing/index.d.ts +1 -1
- package/node_modules/@buddi/core/dist/testing/index.js +1 -1
- package/node_modules/@buddi/core/dist/tools.d.ts +5 -5
- package/node_modules/@buddi/core/dist/vault/types.js +1 -1
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.js +4 -5
- package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/learned-skills.js +1 -1
- package/node_modules/@buddi/gateway/dist/agents/learning-digest.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/agents/learning-digest.js +1 -1
- package/node_modules/@buddi/gateway/dist/agents/learning.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/agents/learning.js +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js +2 -2
- package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/mcp/requests.js +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/missions/goals-page.js +1 -1
- package/node_modules/@buddi/gateway/dist/missions/goals.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/missions/goals.js +1 -1
- package/node_modules/@buddi/gateway/dist/missions/watcher-mail.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/missions/watcher-mail.js +1 -1
- package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts +3 -3
- package/node_modules/@buddi/gateway/dist/owner-secrets.js +3 -3
- package/node_modules/@buddi/gateway/dist/plugins/load.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/load.js +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/scaffold.js +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +2 -2
- package/node_modules/@buddi/gateway/dist/plugins/stage.js +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js +1 -1
- package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.js +2 -2
- package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/pages.js +1 -1
- package/node_modules/@buddi/gateway/dist/web/secrets.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +3 -3
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.d.ts +1 -1
- package/node_modules/@buddi/tool-browser/dist/extension.js +1 -1
- package/node_modules/@buddi/tool-browser/dist/secrets.d.ts +2 -2
- package/node_modules/@buddi/tool-browser/dist/service.d.ts +2 -2
- package/node_modules/@buddi/tool-browser/dist/service.js +1 -1
- package/node_modules/@buddi/tool-browser/dist/types.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/attachments/safety.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/attachments/safety.js +1 -1
- package/node_modules/@buddi/tool-email/dist/credentials.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/dates.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/dates.js +1 -1
- package/node_modules/@buddi/tool-email/dist/drafts.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/drafts.js +1 -1
- package/node_modules/@buddi/tool-email/dist/index.js +5 -5
- package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/mail.d.ts +4 -4
- package/node_modules/@buddi/tool-email/dist/mail.js +4 -4
- package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/pages/descriptors.js +7 -7
- package/node_modules/@buddi/tool-email/dist/pages/descriptors.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/drafts-tools.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/index.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/policies-tools.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/pages/policies-tools.js +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/queries.js +3 -3
- package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/phrases.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/phrases.js +2 -2
- package/node_modules/@buddi/tool-email/dist/policies/gate.js +2 -2
- package/node_modules/@buddi/tool-email/dist/policies/learn.d.ts +3 -3
- package/node_modules/@buddi/tool-email/dist/policies/learn.js +1 -1
- package/node_modules/@buddi/tool-email/dist/policies/learned.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/ports.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/rows.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/rows.js +1 -1
- package/node_modules/@buddi/tool-email/dist/search.js +2 -2
- package/node_modules/@buddi/tool-email/dist/sentinels/date-stated.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/index.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/index.js +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/index.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/promised-reply.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/receipt-or-bill.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/suspicious-sender.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/unanswered-by-them.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.js +1 -1
- package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +5 -5
- package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/sources/retention.js +1 -1
- package/node_modules/@buddi/tool-email/dist/sources/retention.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/suspicions-store.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/attachments.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/attachments.js +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/drafts.js +3 -3
- package/node_modules/@buddi/tool-email/dist/tools/drafts.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/policies.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/send.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/send.js +3 -3
- package/node_modules/@buddi/tool-email/dist/tools/send.js.map +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/settings.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/tools/triage.js +2 -2
- package/node_modules/@buddi/tool-email/dist/watchers.d.ts +1 -1
- package/node_modules/@buddi/tool-email/dist/watchers.js +1 -1
- package/node_modules/@buddi/tool-email/dist/watchers.js.map +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/guard.d.ts +1 -1
- package/node_modules/@buddi/tool-web/dist/guard.js +1 -1
- package/package.json +8 -1
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
- package/packages/cli/dist/doctor-probes.js +7 -1
- package/packages/cli/dist/doctor-probes.js.map +1 -1
- package/packages/cli/dist/mcp/gateway-client.d.ts +1 -1
- package/packages/cli/dist/mcp/gateway-client.js +1 -1
- package/packages/cli/dist/mcp/secrets.d.ts +1 -1
- package/packages/cli/dist/mcp/secrets.js +1 -1
- package/packages/cli/dist/mcp/server.d.ts +1 -1
- package/packages/cli/dist/mcp/server.js +1 -1
- package/packages/cli/dist/mcp/tools.d.ts +1 -1
- package/packages/cli/dist/mcp/tools.js +9 -5
- package/packages/cli/dist/mcp/tools.js.map +1 -1
- package/packages/cli/dist/paths.d.ts +1 -1
- package/packages/cli/dist/paths.d.ts.map +1 -1
- package/packages/cli/dist/paths.js +19 -4
- package/packages/cli/dist/paths.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/skills.js +1 -1
- package/packages/core/dist/backup/archive.d.ts +16 -1
- package/packages/core/dist/backup/archive.d.ts.map +1 -1
- package/packages/core/dist/backup/archive.js +83 -38
- package/packages/core/dist/backup/archive.js.map +1 -1
- package/packages/core/dist/goals/types.d.ts +1 -1
- package/packages/core/dist/goals/types.js +1 -1
- package/packages/core/dist/host/build.js +2 -2
- package/packages/core/dist/host/build.js.map +1 -1
- package/packages/core/dist/host/http.d.ts +1 -1
- package/packages/core/dist/host/http.d.ts.map +1 -1
- package/packages/core/dist/host/http.js +1 -1
- package/packages/core/dist/host/http.js.map +1 -1
- package/packages/core/dist/host/types.d.ts +4 -4
- package/packages/core/dist/learning/echoes.d.ts +1 -1
- package/packages/core/dist/learning/echoes.js +1 -1
- package/packages/core/dist/learning/policies.d.ts +1 -1
- package/packages/core/dist/learning/skill-files.js +1 -1
- package/packages/core/dist/learning/types.d.ts +2 -2
- package/packages/core/dist/pages/__fixtures__/demo.js +1 -1
- package/packages/core/dist/pages.d.ts +4 -4
- package/packages/core/dist/pages.js +1 -1
- package/packages/core/dist/plugin/index.d.ts +1 -1
- package/packages/core/dist/plugin/index.js +1 -1
- package/packages/core/dist/plugin/search.d.ts +1 -1
- package/packages/core/dist/plugin/search.js +1 -1
- package/packages/core/dist/plugin/url.js +1 -1
- package/packages/core/dist/plugin/uses.d.ts +1 -1
- package/packages/core/dist/plugin/uses.js +1 -1
- package/packages/core/dist/plugin/version.d.ts +1 -1
- package/packages/core/dist/plugin/version.js +1 -1
- package/packages/core/dist/registry.js +1 -1
- package/packages/core/dist/registry.js.map +1 -1
- package/packages/core/dist/secrets/approval.d.ts +1 -1
- package/packages/core/dist/secrets/approval.js +1 -1
- package/packages/core/dist/secrets/destinations.d.ts +1 -1
- package/packages/core/dist/secrets/scrub.js +1 -1
- package/packages/core/dist/secrets/settings.js +1 -1
- package/packages/core/dist/secrets/store.d.ts +1 -1
- package/packages/core/dist/secrets/totp.js +1 -1
- package/packages/core/dist/secrets/use.d.ts +1 -1
- package/packages/core/dist/testing/index.d.ts +1 -1
- package/packages/core/dist/testing/index.js +1 -1
- package/packages/core/dist/tools.d.ts +5 -5
- package/packages/core/dist/vault/types.js +1 -1
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalog.js +4 -5
- package/packages/gateway/dist/agents/catalog.js.map +1 -1
- package/packages/gateway/dist/agents/learned-skills.js +1 -1
- package/packages/gateway/dist/agents/learning-digest.d.ts +1 -1
- package/packages/gateway/dist/agents/learning-digest.js +1 -1
- package/packages/gateway/dist/agents/learning.d.ts +1 -1
- package/packages/gateway/dist/agents/learning.js +1 -1
- package/packages/gateway/dist/bootstrap.js +2 -2
- package/packages/gateway/dist/mcp/requests.d.ts +1 -1
- package/packages/gateway/dist/mcp/requests.js +1 -1
- package/packages/gateway/dist/missions/execute.d.ts +1 -1
- package/packages/gateway/dist/missions/goals-page.d.ts +1 -1
- package/packages/gateway/dist/missions/goals-page.js +1 -1
- package/packages/gateway/dist/missions/goals.d.ts +1 -1
- package/packages/gateway/dist/missions/goals.js +1 -1
- package/packages/gateway/dist/missions/watcher-mail.d.ts +1 -1
- package/packages/gateway/dist/missions/watcher-mail.js +1 -1
- package/packages/gateway/dist/owner-secrets.d.ts +3 -3
- package/packages/gateway/dist/owner-secrets.js +3 -3
- package/packages/gateway/dist/plugins/load.d.ts +1 -1
- package/packages/gateway/dist/plugins/load.js +1 -1
- package/packages/gateway/dist/plugins/scaffold.js +1 -1
- package/packages/gateway/dist/plugins/stage.d.ts +2 -2
- package/packages/gateway/dist/plugins/stage.js +1 -1
- package/packages/gateway/dist/provider-accounts.js +1 -1
- package/packages/gateway/dist/provider-accounts.js.map +1 -1
- package/packages/gateway/dist/serve.js +2 -2
- package/packages/gateway/dist/serve.js.map +1 -1
- package/packages/gateway/dist/web/pages.js +1 -1
- package/packages/gateway/dist/web/secrets.d.ts +1 -1
- package/packages/gateway/dist/web/server.d.ts +1 -1
- package/packages/gateway/dist/web/server.js +3 -3
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/extension.d.ts +1 -1
- package/packages/tools/browser/dist/extension.js +1 -1
- package/packages/tools/browser/dist/secrets.d.ts +2 -2
- package/packages/tools/browser/dist/service.d.ts +2 -2
- package/packages/tools/browser/dist/service.js +1 -1
- package/packages/tools/browser/dist/types.d.ts +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/attachments/safety.d.ts +1 -1
- package/packages/tools/email/dist/attachments/safety.js +1 -1
- package/packages/tools/email/dist/credentials.d.ts +1 -1
- package/packages/tools/email/dist/dates.d.ts +1 -1
- package/packages/tools/email/dist/dates.js +1 -1
- package/packages/tools/email/dist/drafts.d.ts +2 -2
- package/packages/tools/email/dist/drafts.js +1 -1
- package/packages/tools/email/dist/index.js +5 -5
- package/packages/tools/email/dist/index.js.map +1 -1
- package/packages/tools/email/dist/mail.d.ts +4 -4
- package/packages/tools/email/dist/mail.js +4 -4
- package/packages/tools/email/dist/pages/accounts.d.ts +2 -2
- package/packages/tools/email/dist/pages/descriptors.js +7 -7
- package/packages/tools/email/dist/pages/descriptors.js.map +1 -1
- package/packages/tools/email/dist/pages/drafts-tools.d.ts +1 -1
- package/packages/tools/email/dist/pages/index.d.ts +1 -1
- package/packages/tools/email/dist/pages/policies-tools.d.ts +2 -2
- package/packages/tools/email/dist/pages/policies-tools.js +1 -1
- package/packages/tools/email/dist/pages/queries.d.ts +2 -2
- package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
- package/packages/tools/email/dist/pages/queries.js +3 -3
- package/packages/tools/email/dist/pages/queries.js.map +1 -1
- package/packages/tools/email/dist/phrases.d.ts +2 -2
- package/packages/tools/email/dist/phrases.js +2 -2
- package/packages/tools/email/dist/policies/gate.js +2 -2
- package/packages/tools/email/dist/policies/learn.d.ts +3 -3
- package/packages/tools/email/dist/policies/learn.js +1 -1
- package/packages/tools/email/dist/policies/learned.d.ts +1 -1
- package/packages/tools/email/dist/ports.d.ts +1 -1
- package/packages/tools/email/dist/rows.d.ts +1 -1
- package/packages/tools/email/dist/rows.js +1 -1
- package/packages/tools/email/dist/search.js +2 -2
- package/packages/tools/email/dist/sentinels/date-stated.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/index.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/index.js +1 -1
- package/packages/tools/email/dist/sentinels/index.js.map +1 -1
- package/packages/tools/email/dist/sentinels/promised-reply.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/receipt-or-bill.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/suspicious-sender.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/unanswered-by-them.d.ts +1 -1
- package/packages/tools/email/dist/sentinels/waiting-on-me.d.ts +2 -2
- package/packages/tools/email/dist/sentinels/waiting-on-me.d.ts.map +1 -1
- package/packages/tools/email/dist/sentinels/waiting-on-me.js +1 -1
- package/packages/tools/email/dist/sources/inbox-poll.js +5 -5
- package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
- package/packages/tools/email/dist/sources/retention.js +1 -1
- package/packages/tools/email/dist/sources/retention.js.map +1 -1
- package/packages/tools/email/dist/suspicions-store.d.ts +1 -1
- package/packages/tools/email/dist/tools/attachments.d.ts +1 -1
- package/packages/tools/email/dist/tools/attachments.js +1 -1
- package/packages/tools/email/dist/tools/drafts.js +3 -3
- package/packages/tools/email/dist/tools/drafts.js.map +1 -1
- package/packages/tools/email/dist/tools/policies.d.ts +1 -1
- package/packages/tools/email/dist/tools/send.d.ts +1 -1
- package/packages/tools/email/dist/tools/send.js +3 -3
- package/packages/tools/email/dist/tools/send.js.map +1 -1
- package/packages/tools/email/dist/tools/settings.d.ts +1 -1
- package/packages/tools/email/dist/tools/triage.js +2 -2
- package/packages/tools/email/dist/watchers.d.ts +1 -1
- package/packages/tools/email/dist/watchers.js +1 -1
- package/packages/tools/email/dist/watchers.js.map +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/guard.d.ts +1 -1
- package/packages/tools/web/dist/guard.js +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# buddi
|
|
2
|
+
|
|
3
|
+
<img src="packages/web/public/mascot/core.png" alt="The Buddi Blob, buddi's mascot" width="160" align="right">
|
|
4
|
+
|
|
5
|
+
buddi is a personal agent platform you run on your own machine. An agent is a
|
|
6
|
+
markdown file: a front matter that names the tools it may call, and a body that
|
|
7
|
+
is its persona. Agents get real access: your mail, your files, a browser of
|
|
8
|
+
their own, commands on the machine. They reach you on a dashboard in your
|
|
9
|
+
browser and on Telegram. They also work while you are away: scheduled
|
|
10
|
+
missions, watchers that speak only when something is wrong, reminders they set
|
|
11
|
+
themselves. Anything consequential waits for your approval, as a card you
|
|
12
|
+
approve or reject.
|
|
13
|
+
|
|
14
|
+
Everything stays on your machine, in a private Postgres. The one thing that
|
|
15
|
+
leaves is each agent's prompt, sent to the AI provider that agent's file names.
|
|
16
|
+
So one line in one file decides which company sees that agent's conversations.
|
|
17
|
+
Secrets live in a vault the agents can use but never see.
|
|
18
|
+
|
|
19
|
+
The first agent is called buddi. It wears the Buddi Blob.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
You need Node 22 or newer. Nothing else: no Docker, no pnpm, no build step.
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npm install -g @withbuddi/buddi
|
|
29
|
+
buddi
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The first `buddi` does five things, one line each in the terminal, and asks
|
|
33
|
+
nothing:
|
|
34
|
+
|
|
35
|
+
1. creates the data directory,
|
|
36
|
+
2. sets up a private Postgres inside it, on a loopback port, with a password
|
|
37
|
+
only the vault holds,
|
|
38
|
+
3. writes the few settings the service needs to start,
|
|
39
|
+
4. installs the background service and starts it: a launchd agent on macOS, a
|
|
40
|
+
systemd user unit on Linux,
|
|
41
|
+
5. opens the setup wizard in your browser.
|
|
42
|
+
|
|
43
|
+
Every later `buddi` opens the dashboard. The link it prints is a sign-in link
|
|
44
|
+
good for five minutes; run `buddi` or `buddi dashboard` again for a new one.
|
|
45
|
+
|
|
46
|
+
The dashboard listens on `127.0.0.1:4317`. To use another port:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
BUDDI_WEB_PORT=4417 buddi
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**The browser.** The agents' own browser needs a browser binary, and the
|
|
53
|
+
package ships none. If Google Chrome is installed, buddi uses it. If not, the
|
|
54
|
+
wizard offers to fetch Chromium (about 150 MB), or you can run
|
|
55
|
+
`buddi browser install` at any time.
|
|
56
|
+
|
|
57
|
+
**Telegram.** The wizard can pair your phone: you ask @BotFather for a bot,
|
|
58
|
+
paste the token, and scan the QR code it draws. `buddi telegram pair` does the
|
|
59
|
+
same from a terminal.
|
|
60
|
+
|
|
61
|
+
**On Linux.** There is no OS keychain, so secrets go in an encrypted file vault
|
|
62
|
+
in the data directory, opened by a key stored beside it (`vault-key`, mode
|
|
63
|
+
600). Anyone who can read your data directory can open the vault; a backup is
|
|
64
|
+
different, it is sealed with your passphrase. On a server with no display the
|
|
65
|
+
agents' browser runs headless. The systemd user unit stops when you log out
|
|
66
|
+
unless you run this once:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
loginctl enable-linger $USER
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Pre-releases.** Until 0.1 is out, releases are published under the `next`
|
|
73
|
+
tag:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
npm install -g @withbuddi/buddi@next
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The full install story, including what is not built yet, is
|
|
80
|
+
[docs/install.md](docs/install.md).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## The first ten minutes
|
|
85
|
+
|
|
86
|
+
**The wizard.** buddi asks four things, one at a time, in a chat thread:
|
|
87
|
+
|
|
88
|
+
1. **Your name**, so the agents know what to call you.
|
|
89
|
+
2. **Your clock**, taken from the browser; confirm it or pick another. This is
|
|
90
|
+
what every agent means by "today".
|
|
91
|
+
3. **A brain**: the AI your assistant thinks with. An API key from Anthropic
|
|
92
|
+
or OpenAI; Ollama running on this computer; Ollama Cloud or another
|
|
93
|
+
OpenAI-compatible service, with an address and a key; or Claude, with your
|
|
94
|
+
Claude subscription, where this build enables it. buddi tests it with one
|
|
95
|
+
small call before moving on.
|
|
96
|
+
4. **Your assistant**: a name (buddi by default), a face (the Buddi Blob, or
|
|
97
|
+
another mascot or an emoji), and a persona you can keep or rewrite.
|
|
98
|
+
|
|
99
|
+
Between the brain and the assistant, buddi checks the browser and fetches one
|
|
100
|
+
if it has to. Then the assistant speaks first, in the same thread, and offers
|
|
101
|
+
to reach you on your phone. Every answer keeps a "change" link, and a reload
|
|
102
|
+
resumes where you were. [docs/onboarding.md](docs/onboarding.md) is the full
|
|
103
|
+
script.
|
|
104
|
+
|
|
105
|
+
**The first chat.** A few things to try:
|
|
106
|
+
|
|
107
|
+
- "What can you do?" It answers from the tools its file grants it.
|
|
108
|
+
- "Remind me to call the bank tomorrow at 10." A reminder it sets itself, and
|
|
109
|
+
you can see it on the Reminders page.
|
|
110
|
+
- "Take a screenshot of example.com." It opens its own browser, asks you
|
|
111
|
+
first, and shows the page on the canvas beside the chat.
|
|
112
|
+
- Drop a PDF or a CSV on the chat and ask about it.
|
|
113
|
+
- "Every Friday at 6, send me a recap of the week." A mission, on a schedule.
|
|
114
|
+
|
|
115
|
+
**A mailbox.** In Settings → Email, add an account with its address and an app
|
|
116
|
+
password. buddi then proposes a Mail agent (@mail) that triages new mail in
|
|
117
|
+
the background. Accept it with **Create @mail**; until you do, mail is fetched
|
|
118
|
+
and threaded but nobody reads it. Sending always stops at an approval card
|
|
119
|
+
that shows the full message. [docs/email.md](docs/email.md) has the rest.
|
|
120
|
+
|
|
121
|
+
**More agents.** Agent Father (@father) makes and changes agents. Say what you
|
|
122
|
+
want one to do; it interviews you, proposes the file and the tools it should
|
|
123
|
+
have, and writes it once you approve.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## How it works
|
|
128
|
+
|
|
129
|
+
**Agents are files.** One folder per agent, with an `agent.md` in it. The
|
|
130
|
+
front matter says which tools the agent may call; nothing else is callable,
|
|
131
|
+
and no conversation can grant more. The body is the persona, in plain
|
|
132
|
+
markdown. The provider and model are a line in the same file, and the
|
|
133
|
+
dashboard's Agents page edits them for you.
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
---
|
|
137
|
+
id: ledger
|
|
138
|
+
handle: ledger
|
|
139
|
+
name: Ledger
|
|
140
|
+
description: Tracks my accounts and answers "can I afford this?".
|
|
141
|
+
provider: anthropic
|
|
142
|
+
model: claude-sonnet-5
|
|
143
|
+
tools: [finance.*, memory.*, reminder.*]
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
You are my finance advisor. There is exactly one owner: the person you are
|
|
147
|
+
talking to. Today is {{today}}.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Tools and plugins.** The core has no tools; every capability is a plugin.
|
|
151
|
+
Built in: `system`, `email`, `memory`, `artifacts`, `web`, `browser`, `host`,
|
|
152
|
+
`reminder`, `schedule`, `goal`, `learning` and `canvas`. Installable from npm,
|
|
153
|
+
on the Plugins page or with `buddi plugins install`: `finance`, `developer`
|
|
154
|
+
and `image`. Installing a plugin shows everything it brings first: each tool
|
|
155
|
+
and whether it runs without asking, the database schema it will own, what it
|
|
156
|
+
runs on a timer, and the hosts it talks to. Nothing happens until you approve.
|
|
157
|
+
[docs/plugins.md](docs/plugins.md) is the guide to writing one.
|
|
158
|
+
|
|
159
|
+
**Approvals.** Every tool has a tier. Anything that is not safe to run on its
|
|
160
|
+
own, such as sending mail, running a command or acting in a browser, stops the
|
|
161
|
+
run and shows a card with exactly what will happen. You approve or reject it
|
|
162
|
+
on the dashboard or on Telegram. Unknown tools, bad arguments and missing
|
|
163
|
+
configuration never run. [ARCHITECTURE.md](ARCHITECTURE.md) has the model.
|
|
164
|
+
|
|
165
|
+
**Missions and watchers.** A mission is scheduled work. A watcher checks
|
|
166
|
+
something on an interval and produces findings; core decides whether a finding
|
|
167
|
+
is worth waking you for. An unattended run stays quiet unless it has something
|
|
168
|
+
to say, and when background work keeps failing you hear about it once, in
|
|
169
|
+
plain words. Goals add a target with a date: buddi checks it hourly and wakes
|
|
170
|
+
the agent that holds it when you drift ([docs/goals.md](docs/goals.md)).
|
|
171
|
+
|
|
172
|
+
**Groups.** A group is one persistent conversation with a team of agents. A
|
|
173
|
+
coordinator decides who works on each request, and you get one answer.
|
|
174
|
+
[docs/groups.md](docs/groups.md).
|
|
175
|
+
|
|
176
|
+
**Files.** What you send the agents and what they produce sit in one library,
|
|
177
|
+
the Files page, with the conversation each came from.
|
|
178
|
+
[docs/files.md](docs/files.md).
|
|
179
|
+
|
|
180
|
+
**Memory and learning.** Agents keep notes about you, with where each came
|
|
181
|
+
from, scoped per agent. Learning goes one step further: buddi proposes a
|
|
182
|
+
skill, a mail rule or a change to an agent's file, and nothing is kept until
|
|
183
|
+
you keep it. A weekly digest lists what is waiting.
|
|
184
|
+
[docs/learning.md](docs/learning.md).
|
|
185
|
+
|
|
186
|
+
**Owner secrets.** Your passwords, API tokens and one-time codes go in
|
|
187
|
+
Settings → Keys and secrets. An agent can have one filled into a login form,
|
|
188
|
+
typed, or sent as a header, after an approval card that names where it goes.
|
|
189
|
+
There is no way to read a value back, and values are scrubbed from anything an
|
|
190
|
+
agent sees. [docs/owner-secrets.md](docs/owner-secrets.md).
|
|
191
|
+
|
|
192
|
+
**The canvas.** The dashboard opens on a conversation, with a canvas beside
|
|
193
|
+
it. What a run looked at is drawn there: a table, a chart, a document, a web
|
|
194
|
+
page, an approval with its full envelope. It fills in live, and works the same
|
|
195
|
+
for a mission that ran at 6am. [docs/browser.md](docs/browser.md) covers the
|
|
196
|
+
browser views on it.
|
|
197
|
+
|
|
198
|
+
**Claude Code.** `buddi mcp` runs buddi as an MCP server over stdio. Reads
|
|
199
|
+
answer at once; every write becomes an approval card; `buddi.ask` talks to an
|
|
200
|
+
agent. [docs/mcp.md](docs/mcp.md).
|
|
201
|
+
|
|
202
|
+
```sh
|
|
203
|
+
claude mcp add -s user buddi -- buddi mcp
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Where your data lives and what leaves the machine
|
|
209
|
+
|
|
210
|
+
Everything buddi owns sits in one data directory:
|
|
211
|
+
|
|
212
|
+
| Platform | Data directory |
|
|
213
|
+
| --- | --- |
|
|
214
|
+
| macOS | `~/Library/Application Support/buddi` |
|
|
215
|
+
| Linux | `$XDG_DATA_HOME/buddi`, else `~/.local/share/buddi` |
|
|
216
|
+
|
|
217
|
+
`BUDDI_DATA_DIR` moves it. Inside are the Postgres cluster, your agents and
|
|
218
|
+
skills, the files library, logs and backups. Nothing is written outside it
|
|
219
|
+
except the service unit and, on macOS, the keychain entries.
|
|
220
|
+
|
|
221
|
+
**Secrets** go in the vault: the macOS keychain, or the encrypted file vault on
|
|
222
|
+
Linux. No command, page or tool prints one back.
|
|
223
|
+
|
|
224
|
+
**Backups** hold the database, your agents and your files, and never a secret.
|
|
225
|
+
They are encrypted with a six-word passphrase that only you keep. Turn on the
|
|
226
|
+
nightly schedule in Settings → Backup, or with
|
|
227
|
+
`buddi backup schedule install`.
|
|
228
|
+
|
|
229
|
+
**What leaves.** Each agent's conversation, including what its tools returned,
|
|
230
|
+
goes to the provider its file names, and nowhere else. A model is never
|
|
231
|
+
switched for you, and delegating to another agent uses that agent's provider.
|
|
232
|
+
Besides that, buddi makes two kinds of outbound call: a version check against
|
|
233
|
+
the npm registry once a day, which you can turn off in Settings, and a plugin
|
|
234
|
+
install when you ask for one. The dashboard loads nothing from the internet.
|
|
235
|
+
There is no telemetry.
|
|
236
|
+
|
|
237
|
+
[docs/operations.md](docs/operations.md) has the details: what an archive
|
|
238
|
+
contains, the passphrase, restoring, and recovery.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Everyday commands
|
|
243
|
+
|
|
244
|
+
Most of this is on the dashboard. From a terminal:
|
|
245
|
+
|
|
246
|
+
| Command | What it does |
|
|
247
|
+
| --- | --- |
|
|
248
|
+
| `buddi` | open the dashboard (the first run sets everything up) |
|
|
249
|
+
| `buddi doctor` | check every moving part and say what is wrong |
|
|
250
|
+
| `buddi service status` | is the background service running? `restart`, `logs`, `stop` too |
|
|
251
|
+
| `buddi dashboard` | a five-minute sign-in link to the dashboard |
|
|
252
|
+
| `buddi upgrade` | back up, install the new version, migrate, restart |
|
|
253
|
+
| `buddi backup create --encrypt` | one archive now, sealed with your passphrase |
|
|
254
|
+
| `buddi browser install` | download Chromium for the agents' browser |
|
|
255
|
+
| `buddi agents` | every agent, its engine, and whether it can run |
|
|
256
|
+
| `buddi chat` | talk to the default agent in the terminal |
|
|
257
|
+
| `buddi ask "…"` | one question, one answer, then exit |
|
|
258
|
+
| `buddi telegram pair` | a QR code that pairs a phone |
|
|
259
|
+
| `buddi reminders` | what the agents have put on the clock |
|
|
260
|
+
| `buddi plugins list` | what is installed |
|
|
261
|
+
| `buddi mcp` | buddi as an MCP server, for Claude Code |
|
|
262
|
+
|
|
263
|
+
`buddi help` prints them all. `buddi status` is `buddi doctor` under another
|
|
264
|
+
name.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Development
|
|
269
|
+
|
|
270
|
+
The developer checkout runs the same code against a Postgres in Docker. You
|
|
271
|
+
need git, Node 22 or newer, pnpm 11 and Docker.
|
|
272
|
+
|
|
273
|
+
```sh
|
|
274
|
+
git clone https://github.com/withbuddi/buddi && cd buddi
|
|
275
|
+
./scripts/install.sh # checks the tools, then pnpm install, build, link
|
|
276
|
+
buddi init # the terminal wizard: .env, database, service
|
|
277
|
+
pnpm test
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
`./scripts/install.sh` runs `pnpm install`, `pnpm -r build` and
|
|
281
|
+
`pnpm run link`, which puts a global `buddi` on your PATH that points at this
|
|
282
|
+
checkout. `buddi init` is interactive and idempotent; `buddi init --yes` asks
|
|
283
|
+
nothing. It starts the Postgres container, applies migrations, installs the
|
|
284
|
+
service and opens the same wizard in the browser.
|
|
285
|
+
|
|
286
|
+
Commands you will meet in a checkout:
|
|
287
|
+
|
|
288
|
+
```sh
|
|
289
|
+
buddi db up # start the Postgres container after a reboot
|
|
290
|
+
buddi db secure # give it a generated password, kept in the vault
|
|
291
|
+
buddi migrate # apply core and plugin migrations
|
|
292
|
+
buddi serve # the gateway and scheduler in the foreground
|
|
293
|
+
buddi vault set NAME # put a secret in the vault (prompts, hidden)
|
|
294
|
+
buddi plugins dev ../my-plugin
|
|
295
|
+
buddi missions list
|
|
296
|
+
buddi jobs --state failed
|
|
297
|
+
buddi pause # stop claiming work; running jobs finish
|
|
298
|
+
buddi resume # start claiming again
|
|
299
|
+
buddi nudges status
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
To try the packaged install without touching your machine, `pnpm release:trial`
|
|
303
|
+
builds the tarball, puts it in a Docker image and starts it on a fresh volume.
|
|
304
|
+
`pnpm release:pack` builds only the tarball.
|
|
305
|
+
|
|
306
|
+
**Layout.** Under `packages/`:
|
|
307
|
+
|
|
308
|
+
- `core`: domain, database, event log, queue, the tool registry and the plugin
|
|
309
|
+
contract. It never imports a tool.
|
|
310
|
+
- `runtime`: the agent loop and the provider adapters.
|
|
311
|
+
- `gateway`: the surfaces (dashboard server, Telegram, terminal) and the
|
|
312
|
+
scheduler.
|
|
313
|
+
- `web`: the dashboard, React and Vite, built to static files.
|
|
314
|
+
- `cli`: the `buddi` binary for a checkout.
|
|
315
|
+
- `install`: the packaged launcher, the supervisor and the bundled Postgres.
|
|
316
|
+
- `extension`: the Chrome extension for the "Your browser" mode.
|
|
317
|
+
- `tools/*`: the built-in plugins (artifacts, browser, email, host, memory,
|
|
318
|
+
web).
|
|
319
|
+
|
|
320
|
+
The domain plugins (finance, developer, image) live in a separate repository,
|
|
321
|
+
`buddi-plugins`, and install like any other plugin.
|
|
322
|
+
|
|
323
|
+
**CI and releases.** A push to `main` runs the quick lane: four parallel jobs
|
|
324
|
+
(web, gateway, typecheck, the rest), without a database. The full gate, with
|
|
325
|
+
Postgres, runs on pull requests, nightly, on demand and before every release.
|
|
326
|
+
A tag `v<version>` runs the gate, builds the tarball, publishes it to npm
|
|
327
|
+
(pre-release versions under `next`, others under `latest`) and creates the
|
|
328
|
+
GitHub release.
|
|
329
|
+
|
|
330
|
+
Read next: [ARCHITECTURE.md](ARCHITECTURE.md) for the design,
|
|
331
|
+
[docs/plugins.md](docs/plugins.md) to write a plugin, and
|
|
332
|
+
[docs/README.md](docs/README.md) for the index of everything else. The roadmap
|
|
333
|
+
is kept outside this repository.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Status
|
|
338
|
+
|
|
339
|
+
buddi is a 0.1 pre-release. macOS is the reference platform. Linux works and
|
|
340
|
+
is in trial: the file vault, the bundled Postgres and the systemd user unit
|
|
341
|
+
are built, and fixes land as the trial finds them. Windows is not supported
|
|
342
|
+
yet. Native computer control (operating your own apps) is macOS-only. Signing
|
|
343
|
+
in with a Claude subscription and ChatGPT accounts through Codex are
|
|
344
|
+
experiments, off unless enabled
|
|
345
|
+
([docs/anthropic-oauth.md](docs/anthropic-oauth.md),
|
|
346
|
+
[docs/codex-accounts.md](docs/codex-accounts.md)). Host commands are approved,
|
|
347
|
+
not sandboxed ([docs/host-execution.md](docs/host-execution.md)). Nothing an
|
|
348
|
+
agent says is financial, legal or medical advice.
|
|
349
|
+
|
|
350
|
+
## License
|
|
351
|
+
|
|
352
|
+
[Apache License 2.0](LICENSE). Copyright 2026 withbuddi.
|