@withbuddi/buddi 0.1.0-pre.31 → 0.1.0-pre.32
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/examples/agents/concierge/agent.md +10 -2
- package/extension/manifest.json +2 -2
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/agents-catalogue-cmd.d.ts +50 -0
- package/node_modules/@buddi/cli/dist/agents-catalogue-cmd.d.ts.map +1 -0
- package/node_modules/@buddi/cli/dist/agents-catalogue-cmd.js +328 -0
- package/node_modules/@buddi/cli/dist/agents-catalogue-cmd.js.map +1 -0
- package/node_modules/@buddi/cli/dist/args.d.ts +5 -0
- package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/args.js +8 -0
- package/node_modules/@buddi/cli/dist/args.js.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/commands.js +62 -0
- package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +22 -1
- package/node_modules/@buddi/cli/dist/main.js.map +1 -1
- package/node_modules/@buddi/cli/dist/skills-cmd.d.ts +15 -0
- package/node_modules/@buddi/cli/dist/skills-cmd.d.ts.map +1 -0
- package/node_modules/@buddi/cli/dist/skills-cmd.js +54 -0
- package/node_modules/@buddi/cli/dist/skills-cmd.js.map +1 -0
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts +11 -3
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js +58 -10
- package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.js +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.d.ts +29 -3
- package/node_modules/@buddi/core/dist/agents/skills.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.js +49 -2
- package/node_modules/@buddi/core/dist/agents/skills.js.map +1 -1
- package/node_modules/@buddi/core/dist/offers/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/offers/store.js +9 -4
- package/node_modules/@buddi/core/dist/offers/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/offers/types.d.ts +24 -1
- package/node_modules/@buddi/core/dist/offers/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/offers/types.js +23 -1
- package/node_modules/@buddi/core/dist/offers/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts +46 -0
- package/node_modules/@buddi/core/dist/scheduler/missions.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/missions.js +119 -22
- package/node_modules/@buddi/core/dist/scheduler/missions.js.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/runner.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/runner.js +6 -1
- package/node_modules/@buddi/core/dist/scheduler/runner.js.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts +15 -0
- package/node_modules/@buddi/core/dist/scheduler/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/scheduler/types.js +5 -0
- package/node_modules/@buddi/core/dist/scheduler/types.js.map +1 -1
- package/node_modules/@buddi/core/migrations/070_offer_handoff.sql +15 -0
- package/node_modules/@buddi/core/migrations/071_mission_lifespan.sql +19 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts +6 -6
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +313 -0
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +356 -0
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +361 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +1021 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-names.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-names.js +3 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-names.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +62 -25
- package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform.js +121 -29
- package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents-cli.js +6 -0
- package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js +13 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +6 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js +74 -2
- package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/missions/reminders.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/reminders.js +84 -18
- package/node_modules/@buddi/gateway/dist/missions/reminders.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/zone-provenance.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/zone-provenance.js +5 -10
- package/node_modules/@buddi/gateway/dist/missions/zone-provenance.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/load.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/load.js +12 -5
- package/node_modules/@buddi/gateway/dist/plugins/load.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/provenance.d.ts +35 -1
- package/node_modules/@buddi/gateway/dist/plugins/provenance.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins/provenance.js +39 -1
- package/node_modules/@buddi/gateway/dist/plugins/provenance.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/handoff.d.ts +62 -0
- package/node_modules/@buddi/gateway/dist/surfaces/handoff.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/surfaces/handoff.js +121 -0
- package/node_modules/@buddi/gateway/dist/surfaces/handoff.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.js +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/offered-actions.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.js +7 -1
- package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +9 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/surface.js +58 -6
- package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts +0 -30
- package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/agent-offers.js +1 -64
- package/node_modules/@buddi/gateway/dist/web/agent-offers.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +118 -4
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/catalogue-source.d.ts +33 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue-source.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue-source.js +124 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue-source.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue.d.ts +155 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue.js +734 -0
- package/node_modules/@buddi/gateway/dist/web/catalogue.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts +3 -1
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.js +8 -1
- package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/client-key.d.ts +24 -0
- package/node_modules/@buddi/gateway/dist/web/client-key.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/client-key.js +17 -0
- package/node_modules/@buddi/gateway/dist/web/client-key.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/market.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/web/market.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/market.js +6 -0
- package/node_modules/@buddi/gateway/dist/web/market.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/read.d.ts +10 -0
- package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/read.js +5 -0
- package/node_modules/@buddi/gateway/dist/web/read.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 +137 -10
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/skills.d.ts +120 -0
- package/node_modules/@buddi/gateway/dist/web/skills.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/skills.js +672 -0
- package/node_modules/@buddi/gateway/dist/web/skills.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/take-on.d.ts +35 -1
- package/node_modules/@buddi/gateway/dist/web/take-on.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/take-on.js +76 -51
- package/node_modules/@buddi/gateway/dist/web/take-on.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/write.d.ts +9 -1
- package/node_modules/@buddi/gateway/dist/web/write.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/write.js +35 -2
- package/node_modules/@buddi/gateway/dist/web/write.js.map +1 -1
- package/node_modules/@buddi/gateway/package.json +0 -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-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/agents-catalogue-cmd.d.ts +50 -0
- package/packages/cli/dist/agents-catalogue-cmd.d.ts.map +1 -0
- package/packages/cli/dist/agents-catalogue-cmd.js +328 -0
- package/packages/cli/dist/agents-catalogue-cmd.js.map +1 -0
- package/packages/cli/dist/args.d.ts +5 -0
- package/packages/cli/dist/args.d.ts.map +1 -1
- package/packages/cli/dist/args.js +8 -0
- package/packages/cli/dist/args.js.map +1 -1
- package/packages/cli/dist/commands.d.ts.map +1 -1
- package/packages/cli/dist/commands.js +62 -0
- package/packages/cli/dist/commands.js.map +1 -1
- package/packages/cli/dist/main.d.ts.map +1 -1
- package/packages/cli/dist/main.js +22 -1
- package/packages/cli/dist/main.js.map +1 -1
- package/packages/cli/dist/skills-cmd.d.ts +15 -0
- package/packages/cli/dist/skills-cmd.d.ts.map +1 -0
- package/packages/cli/dist/skills-cmd.js +54 -0
- package/packages/cli/dist/skills-cmd.js.map +1 -0
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/catalog.d.ts +11 -3
- package/packages/core/dist/agents/catalog.d.ts.map +1 -1
- package/packages/core/dist/agents/catalog.js +58 -10
- package/packages/core/dist/agents/catalog.js.map +1 -1
- package/packages/core/dist/agents/frontmatter.d.ts +1 -1
- package/packages/core/dist/agents/frontmatter.d.ts.map +1 -1
- package/packages/core/dist/agents/frontmatter.js +1 -1
- package/packages/core/dist/agents/frontmatter.js.map +1 -1
- package/packages/core/dist/agents/skills.d.ts +29 -3
- package/packages/core/dist/agents/skills.d.ts.map +1 -1
- package/packages/core/dist/agents/skills.js +49 -2
- package/packages/core/dist/agents/skills.js.map +1 -1
- package/packages/core/dist/offers/store.d.ts.map +1 -1
- package/packages/core/dist/offers/store.js +9 -4
- package/packages/core/dist/offers/store.js.map +1 -1
- package/packages/core/dist/offers/types.d.ts +24 -1
- package/packages/core/dist/offers/types.d.ts.map +1 -1
- package/packages/core/dist/offers/types.js +23 -1
- package/packages/core/dist/offers/types.js.map +1 -1
- package/packages/core/dist/scheduler/missions.d.ts +46 -0
- package/packages/core/dist/scheduler/missions.d.ts.map +1 -1
- package/packages/core/dist/scheduler/missions.js +119 -22
- package/packages/core/dist/scheduler/missions.js.map +1 -1
- package/packages/core/dist/scheduler/runner.d.ts.map +1 -1
- package/packages/core/dist/scheduler/runner.js +6 -1
- package/packages/core/dist/scheduler/runner.js.map +1 -1
- package/packages/core/dist/scheduler/types.d.ts +15 -0
- package/packages/core/dist/scheduler/types.d.ts.map +1 -1
- package/packages/core/dist/scheduler/types.js +5 -0
- package/packages/core/dist/scheduler/types.js.map +1 -1
- package/packages/core/migrations/070_offer_handoff.sql +15 -0
- package/packages/core/migrations/071_mission_lifespan.sql +19 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/canvas.d.ts +6 -6
- package/packages/gateway/dist/agents/catalogue-package.d.ts +313 -0
- package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -0
- package/packages/gateway/dist/agents/catalogue-package.js +356 -0
- package/packages/gateway/dist/agents/catalogue-package.js.map +1 -0
- package/packages/gateway/dist/agents/platform-catalogue.d.ts +361 -0
- package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -0
- package/packages/gateway/dist/agents/platform-catalogue.js +1021 -0
- package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -0
- package/packages/gateway/dist/agents/platform-names.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform-names.js +3 -0
- package/packages/gateway/dist/agents/platform-names.js.map +1 -1
- package/packages/gateway/dist/agents/platform.d.ts +62 -25
- package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform.js +121 -29
- package/packages/gateway/dist/agents/platform.js.map +1 -1
- package/packages/gateway/dist/agents-cli.d.ts +1 -1
- package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
- package/packages/gateway/dist/agents-cli.js +6 -0
- package/packages/gateway/dist/agents-cli.js.map +1 -1
- package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
- package/packages/gateway/dist/bootstrap.js +13 -1
- package/packages/gateway/dist/bootstrap.js.map +1 -1
- package/packages/gateway/dist/missions/execute.d.ts +6 -0
- package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
- package/packages/gateway/dist/missions/execute.js +74 -2
- package/packages/gateway/dist/missions/execute.js.map +1 -1
- package/packages/gateway/dist/missions/reminders.d.ts +10 -0
- package/packages/gateway/dist/missions/reminders.d.ts.map +1 -1
- package/packages/gateway/dist/missions/reminders.js +84 -18
- package/packages/gateway/dist/missions/reminders.js.map +1 -1
- package/packages/gateway/dist/missions/zone-provenance.d.ts.map +1 -1
- package/packages/gateway/dist/missions/zone-provenance.js +5 -10
- package/packages/gateway/dist/missions/zone-provenance.js.map +1 -1
- package/packages/gateway/dist/plugins/load.d.ts.map +1 -1
- package/packages/gateway/dist/plugins/load.js +12 -5
- package/packages/gateway/dist/plugins/load.js.map +1 -1
- package/packages/gateway/dist/plugins/provenance.d.ts +35 -1
- package/packages/gateway/dist/plugins/provenance.d.ts.map +1 -1
- package/packages/gateway/dist/plugins/provenance.js +39 -1
- package/packages/gateway/dist/plugins/provenance.js.map +1 -1
- package/packages/gateway/dist/surfaces/handoff.d.ts +62 -0
- package/packages/gateway/dist/surfaces/handoff.d.ts.map +1 -0
- package/packages/gateway/dist/surfaces/handoff.js +121 -0
- package/packages/gateway/dist/surfaces/handoff.js.map +1 -0
- package/packages/gateway/dist/surfaces/offered-actions.d.ts +2 -0
- package/packages/gateway/dist/surfaces/offered-actions.d.ts.map +1 -1
- package/packages/gateway/dist/surfaces/offered-actions.js +1 -1
- package/packages/gateway/dist/surfaces/offered-actions.js.map +1 -1
- package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/main.js +7 -1
- package/packages/gateway/dist/telegram/main.js.map +1 -1
- package/packages/gateway/dist/telegram/surface.d.ts +9 -1
- package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/surface.js +58 -6
- package/packages/gateway/dist/telegram/surface.js.map +1 -1
- package/packages/gateway/dist/web/agent-offers.d.ts +0 -30
- package/packages/gateway/dist/web/agent-offers.d.ts.map +1 -1
- package/packages/gateway/dist/web/agent-offers.js +1 -64
- package/packages/gateway/dist/web/agent-offers.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts +1 -0
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +118 -4
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/catalogue-source.d.ts +33 -0
- package/packages/gateway/dist/web/catalogue-source.d.ts.map +1 -0
- package/packages/gateway/dist/web/catalogue-source.js +124 -0
- package/packages/gateway/dist/web/catalogue-source.js.map +1 -0
- package/packages/gateway/dist/web/catalogue.d.ts +155 -0
- package/packages/gateway/dist/web/catalogue.d.ts.map +1 -0
- package/packages/gateway/dist/web/catalogue.js +734 -0
- package/packages/gateway/dist/web/catalogue.js.map +1 -0
- package/packages/gateway/dist/web/chat.d.ts +3 -1
- package/packages/gateway/dist/web/chat.d.ts.map +1 -1
- package/packages/gateway/dist/web/chat.js +8 -1
- package/packages/gateway/dist/web/chat.js.map +1 -1
- package/packages/gateway/dist/web/client-key.d.ts +24 -0
- package/packages/gateway/dist/web/client-key.d.ts.map +1 -0
- package/packages/gateway/dist/web/client-key.js +17 -0
- package/packages/gateway/dist/web/client-key.js.map +1 -0
- package/packages/gateway/dist/web/market.d.ts +1 -0
- package/packages/gateway/dist/web/market.d.ts.map +1 -1
- package/packages/gateway/dist/web/market.js +6 -0
- package/packages/gateway/dist/web/market.js.map +1 -1
- package/packages/gateway/dist/web/read.d.ts +10 -0
- package/packages/gateway/dist/web/read.d.ts.map +1 -1
- package/packages/gateway/dist/web/read.js +5 -0
- package/packages/gateway/dist/web/read.js.map +1 -1
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +137 -10
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/gateway/dist/web/skills.d.ts +120 -0
- package/packages/gateway/dist/web/skills.d.ts.map +1 -0
- package/packages/gateway/dist/web/skills.js +672 -0
- package/packages/gateway/dist/web/skills.js.map +1 -0
- package/packages/gateway/dist/web/take-on.d.ts +35 -1
- package/packages/gateway/dist/web/take-on.d.ts.map +1 -1
- package/packages/gateway/dist/web/take-on.js +76 -51
- package/packages/gateway/dist/web/take-on.js.map +1 -1
- package/packages/gateway/dist/web/write.d.ts +9 -1
- package/packages/gateway/dist/web/write.d.ts.map +1 -1
- package/packages/gateway/dist/web/write.js +35 -2
- package/packages/gateway/dist/web/write.js.map +1 -1
- package/packages/gateway/package.json +0 -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/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/index-BldmgplG.css +1 -0
- package/packages/web/dist/assets/index-C8GaSH__.js +132 -0
- package/packages/web/dist/assets/{lottie_light-DU37j1-6.js → lottie_light-DdwKPR04.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/precache.json +4 -4
- package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts +0 -59
- package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts.map +0 -1
- package/node_modules/@buddi/gateway/dist/agents/starter-team.js +0 -156
- package/node_modules/@buddi/gateway/dist/agents/starter-team.js.map +0 -1
- package/node_modules/@buddi/gateway/src/agents/starter/keeper/agent.md +0 -31
- package/node_modules/@buddi/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +0 -22
- package/node_modules/@buddi/gateway/src/agents/starter/planner/agent.md +0 -30
- package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +0 -17
- package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +0 -32
- package/node_modules/@buddi/gateway/src/agents/starter/scout/agent.md +0 -33
- package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/answering-with-sources.md +0 -23
- package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +0 -25
- package/packages/gateway/dist/agents/starter-team.d.ts +0 -59
- package/packages/gateway/dist/agents/starter-team.d.ts.map +0 -1
- package/packages/gateway/dist/agents/starter-team.js +0 -156
- package/packages/gateway/dist/agents/starter-team.js.map +0 -1
- package/packages/gateway/src/agents/starter/keeper/agent.md +0 -31
- package/packages/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +0 -22
- package/packages/gateway/src/agents/starter/planner/agent.md +0 -30
- package/packages/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +0 -17
- package/packages/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +0 -32
- package/packages/gateway/src/agents/starter/scout/agent.md +0 -33
- package/packages/gateway/src/agents/starter/scout/skills/answering-with-sources.md +0 -23
- package/packages/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +0 -25
- package/packages/web/dist/assets/index-BYRgwiZp.css +0 -1
- package/packages/web/dist/assets/index-Qb1N-6kN.js +0 -129
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An agent package from the catalogue (buddi-planning/specs/agent-catalogue.md
|
|
3
|
+
* §3): what one listing in the market's `agents` index is, read strictly.
|
|
4
|
+
*
|
|
5
|
+
* A package is configuration, never code: a persona, a few text skills, a
|
|
6
|
+
* tool grant, missions that arrive off, the picks the install sheet asks, and
|
|
7
|
+
* three example asks. Nothing in it runs. So the reading here is strict on
|
|
8
|
+
* purpose: an unknown field is refused, a field v1 does not allow (`model`,
|
|
9
|
+
* `provider`, `account`, `delegates`, `bundles`, roles) is refused by name, and
|
|
10
|
+
* the integrity the market wrote is recomputed and must match before anything
|
|
11
|
+
* is planned from it.
|
|
12
|
+
*
|
|
13
|
+
* The index carries each package as its `agent.json` plus what the folder
|
|
14
|
+
* holds beside it (buddi-market `scripts/index.mjs`): `persona` (persona.md,
|
|
15
|
+
* inline), `skills` (`[{ file, text }]`, each `skills/<file>`), `avatar`
|
|
16
|
+
* (`{ url, sha256 }`: the picture on withbuddi.com and its hash) and `page`.
|
|
17
|
+
*
|
|
18
|
+
* The integrity (buddi-market `scripts/agents.mjs`, `agentIntegrity`) is
|
|
19
|
+
* `sha256-<base64>` of one canonical JSON document:
|
|
20
|
+
*
|
|
21
|
+
* { "agent.json": <agent.json without integrity and claims>,
|
|
22
|
+
* "persona.md": <its text>,
|
|
23
|
+
* "skills": { "<file>.md": <its text>, … },
|
|
24
|
+
* "avatar.png": "sha256-<base64 of the picture's sha256>" | null }
|
|
25
|
+
*
|
|
26
|
+
* canonical: keys sorted at every depth, no whitespace. Key order and
|
|
27
|
+
* whitespace in the file therefore never move it.
|
|
28
|
+
*/
|
|
29
|
+
import { createHash } from 'node:crypto';
|
|
30
|
+
import { z } from 'zod';
|
|
31
|
+
import { HANDLE, HANDLE_MIN, IDLE_ROLLOVERS, KEBAB, parseCron, parseSkillFile, STARTERS_MAX, } from '@buddi/core';
|
|
32
|
+
/** The catalogue's categories, in the order the chips are drawn (§13: Life is the sixth). */
|
|
33
|
+
export const CATALOGUE_CATEGORIES = ['work', 'money', 'home', 'health', 'learning', 'life'];
|
|
34
|
+
/** What the install sheet may ask (§7). */
|
|
35
|
+
export const FILL_KINDS = ['mailbox', 'calendar', 'place', 'time', 'text'];
|
|
36
|
+
/** Requirements that are not plugins (§3 `needs`). */
|
|
37
|
+
export const PACKAGE_NEEDS = ['mailbox', 'image-account'];
|
|
38
|
+
/** As a package writes them: `mailbox?` is a mailbox that makes it better, never one it waits for. */
|
|
39
|
+
export const PACKAGE_NEED_WORDS = ['mailbox', 'mailbox?', 'image-account'];
|
|
40
|
+
/** Sizes the market check holds a package to; buddi holds the index to the same. */
|
|
41
|
+
export const MAX_PERSONA_BYTES = 16 * 1024;
|
|
42
|
+
export const MAX_SKILL_BYTES = 8 * 1024;
|
|
43
|
+
export const MAX_SKILLS = 8;
|
|
44
|
+
/**
|
|
45
|
+
* Tools no package may ask for in v1 (§9), on top of `checkTools`' own rule
|
|
46
|
+
* that no `platform.*` write is grantable. Owner-only tools are left out of
|
|
47
|
+
* every grant by the registry already. The owner may add any of these by hand
|
|
48
|
+
* after the install; a package never carries them.
|
|
49
|
+
*/
|
|
50
|
+
export const CATALOGUE_DENIED = [
|
|
51
|
+
'host.*',
|
|
52
|
+
'secret.*',
|
|
53
|
+
'secrets.*',
|
|
54
|
+
'developer.*',
|
|
55
|
+
'mcp.*',
|
|
56
|
+
'agent.delegate',
|
|
57
|
+
'owner.set_profile',
|
|
58
|
+
'owner.finish_onboarding',
|
|
59
|
+
'owner.rename_me',
|
|
60
|
+
'email.send',
|
|
61
|
+
'email.add_account',
|
|
62
|
+
'email.remove_account',
|
|
63
|
+
'email.set_password',
|
|
64
|
+
];
|
|
65
|
+
/** Fields a v1 package may not carry, refused by name rather than as "unknown". */
|
|
66
|
+
const NOT_IN_V1 = ['model', 'provider', 'account', 'delegates', 'bundles'];
|
|
67
|
+
const semverLike = z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-[0-9A-Za-z.-]+)?$/, 'a semver version, like 1.0.0');
|
|
68
|
+
const kebab = z.string().regex(KEBAB, 'kebab-case');
|
|
69
|
+
const ident = z.string().regex(/^[a-z][a-z0-9-]{1,39}$/, 'lower-case letters, digits and hyphens');
|
|
70
|
+
const rangeMap = z.record(kebab, z.string().min(1).max(64));
|
|
71
|
+
const missionSchema = z
|
|
72
|
+
.object({
|
|
73
|
+
id: ident,
|
|
74
|
+
name: z.string().min(1).max(60),
|
|
75
|
+
cron: z.string().regex(/^\S+ \S+ \S+ \S+ \S+$/, 'five cron fields'),
|
|
76
|
+
prompt: z.string().min(1).max(4000),
|
|
77
|
+
misfirePolicy: z.enum(['replay-all', 'coalesce', 'latest-only', 'skip-after-deadline']).optional(),
|
|
78
|
+
alwaysDeliver: z.boolean().optional(),
|
|
79
|
+
})
|
|
80
|
+
.strict();
|
|
81
|
+
const fillSchema = z
|
|
82
|
+
.object({
|
|
83
|
+
id: ident,
|
|
84
|
+
kind: z.enum(FILL_KINDS),
|
|
85
|
+
label: z.string().min(1).max(80),
|
|
86
|
+
optional: z.boolean().optional(),
|
|
87
|
+
/** For a `time` pick: which mission's hour it sets. */
|
|
88
|
+
mission: ident.optional(),
|
|
89
|
+
})
|
|
90
|
+
.strict();
|
|
91
|
+
/** `agent.json`, strict. */
|
|
92
|
+
export const agentManifestSchema = z
|
|
93
|
+
.object({
|
|
94
|
+
kind: z.literal('agent'),
|
|
95
|
+
name: ident,
|
|
96
|
+
version: semverLike,
|
|
97
|
+
handle: z.string().min(HANDLE_MIN).max(32).regex(HANDLE, 'a handle: lower-case letters, digits and hyphens'),
|
|
98
|
+
title: z.string().min(1).max(40),
|
|
99
|
+
pitch: z.string().min(1).max(120),
|
|
100
|
+
description: z.string().min(1).max(240),
|
|
101
|
+
about: z.string().min(1).max(600),
|
|
102
|
+
category: z.enum(CATALOGUE_CATEGORIES),
|
|
103
|
+
trust: z.literal('by-buddi'),
|
|
104
|
+
author: z.object({ name: z.string().min(1).max(80), url: z.string().regex(/^https:\/\//).optional() }).strict(),
|
|
105
|
+
license: z.string().min(1).max(60),
|
|
106
|
+
buddi: z.string().min(1).max(64),
|
|
107
|
+
requires: rangeMap,
|
|
108
|
+
optional: rangeMap,
|
|
109
|
+
needs: z.array(z.enum(PACKAGE_NEED_WORDS)).max(4),
|
|
110
|
+
tools: z.array(z.string().regex(/^[a-z][a-z0-9_]*\.([a-z][a-z0-9_]*|\*)\??$/, 'a tool name or family glob')).min(1).max(64),
|
|
111
|
+
missions: z.array(missionSchema).max(6),
|
|
112
|
+
fills: z.array(fillSchema).max(6),
|
|
113
|
+
examples: z.array(z.string().min(1).max(120)).max(STARTERS_MAX),
|
|
114
|
+
language: z.enum(['mirror', 'en', 'fr']),
|
|
115
|
+
idleRollover: z.enum(IDLE_ROLLOVERS).optional(),
|
|
116
|
+
/** By-buddi packages may answer for roles (CFO: overview, recap, credit), so role missions and watchers reach them. */
|
|
117
|
+
roles: z.array(z.string().regex(/^[a-z][a-z0-9-]{1,31}$/)).max(6).optional(),
|
|
118
|
+
replaces: z.array(z.string().regex(/^[a-z][a-z0-9-]*\/[a-z][a-z0-9-]*$/, '<source>/<agent id>')).max(4),
|
|
119
|
+
changes: z.string().min(1).max(200),
|
|
120
|
+
integrity: z.string().regex(/^sha256-[A-Za-z0-9+/]{43}=$/, 'sha256-<base64>'),
|
|
121
|
+
claims: z.record(z.string(), z.unknown()).optional(),
|
|
122
|
+
})
|
|
123
|
+
.strict();
|
|
124
|
+
export class PackageRefusal extends Error {
|
|
125
|
+
name = 'PackageRefusal';
|
|
126
|
+
}
|
|
127
|
+
const indexExtras = z
|
|
128
|
+
.object({
|
|
129
|
+
persona: z.string().min(1),
|
|
130
|
+
skills: z.array(z.object({ file: z.string().regex(/^[a-z][a-z0-9-]{1,63}\.md$/), text: z.string() }).strict()).max(MAX_SKILLS).optional(),
|
|
131
|
+
avatar: z
|
|
132
|
+
.object({ url: z.string().url(), sha256: z.string().regex(/^sha256-[A-Za-z0-9+/]{43}=$/) })
|
|
133
|
+
.strict()
|
|
134
|
+
.nullable()
|
|
135
|
+
.optional(),
|
|
136
|
+
page: z.string().url().nullable().optional(),
|
|
137
|
+
})
|
|
138
|
+
.strict();
|
|
139
|
+
const INDEX_EXTRA_KEYS = ['persona', 'skills', 'avatar', 'page'];
|
|
140
|
+
function sha256Hex(text) {
|
|
141
|
+
return createHash('sha256').update(text).digest('hex');
|
|
142
|
+
}
|
|
143
|
+
/** `sha256-<base64>`: how the market writes a hash. */
|
|
144
|
+
export function sriSha256(bytes) {
|
|
145
|
+
return `sha256-${createHash('sha256').update(bytes).digest('base64')}`;
|
|
146
|
+
}
|
|
147
|
+
/** Keys sorted at every depth, no whitespace: the form the integrity hashes. */
|
|
148
|
+
export function canonicalJson(value) {
|
|
149
|
+
if (Array.isArray(value))
|
|
150
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
151
|
+
if (value !== null && typeof value === 'object') {
|
|
152
|
+
const record = value;
|
|
153
|
+
return `{${Object.keys(record)
|
|
154
|
+
.sort()
|
|
155
|
+
.map((k) => `${JSON.stringify(k)}:${canonicalJson(record[k])}`)
|
|
156
|
+
.join(',')}}`;
|
|
157
|
+
}
|
|
158
|
+
return JSON.stringify(value);
|
|
159
|
+
}
|
|
160
|
+
/** The package integrity (see the header): over the manifest, the persona, each skill and the picture's hash. */
|
|
161
|
+
export function packageIntegrity(input) {
|
|
162
|
+
const { integrity: _integrity, claims: _claims, ...manifest } = input.manifest;
|
|
163
|
+
const doc = {
|
|
164
|
+
'agent.json': manifest,
|
|
165
|
+
'persona.md': input.persona,
|
|
166
|
+
skills: Object.fromEntries(input.skills.map((skill) => [skill.file, skill.text])),
|
|
167
|
+
'avatar.png': input.avatarSha256,
|
|
168
|
+
};
|
|
169
|
+
return sriSha256(Buffer.from(canonicalJson(doc), 'utf8'));
|
|
170
|
+
}
|
|
171
|
+
/** The first zod problem, as one sentence with its path. */
|
|
172
|
+
function firstIssue(error) {
|
|
173
|
+
const issue = error.issues[0];
|
|
174
|
+
if (!issue)
|
|
175
|
+
return 'not a package';
|
|
176
|
+
if (issue.code === 'unrecognized_keys')
|
|
177
|
+
return `unknown field ${issue.keys.map((k) => `"${k}"`).join(', ')}`;
|
|
178
|
+
const where = issue.path.length === 0 ? '' : `${issue.path.join('.')}: `;
|
|
179
|
+
return `${where}${issue.message}`;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Read one index listing into a package, or refuse with the reason. Checks the
|
|
183
|
+
* shape, the v1 limits, the sizes, the skills' own frontmatter, the missions'
|
|
184
|
+
* schedules, the fills' references, the `?` tools against `optional`, the
|
|
185
|
+
* denylist, and the integrity.
|
|
186
|
+
*/
|
|
187
|
+
export function parseAgentPackage(raw) {
|
|
188
|
+
if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
|
|
189
|
+
throw new PackageRefusal('a listing is an object');
|
|
190
|
+
const record = raw;
|
|
191
|
+
const name = typeof record.name === 'string' ? record.name : '?';
|
|
192
|
+
for (const field of NOT_IN_V1) {
|
|
193
|
+
if (field in record)
|
|
194
|
+
throw new PackageRefusal(`${name}: "${field}" is not allowed in a v1 package`);
|
|
195
|
+
}
|
|
196
|
+
const manifestPart = {};
|
|
197
|
+
const extraPart = {};
|
|
198
|
+
for (const [key, value] of Object.entries(record)) {
|
|
199
|
+
if (INDEX_EXTRA_KEYS.includes(key))
|
|
200
|
+
extraPart[key] = value;
|
|
201
|
+
else
|
|
202
|
+
manifestPart[key] = value;
|
|
203
|
+
}
|
|
204
|
+
const manifest = agentManifestSchema.safeParse(manifestPart);
|
|
205
|
+
if (!manifest.success)
|
|
206
|
+
throw new PackageRefusal(`${name}: ${firstIssue(manifest.error)}`);
|
|
207
|
+
const extras = indexExtras.safeParse(extraPart);
|
|
208
|
+
if (!extras.success)
|
|
209
|
+
throw new PackageRefusal(`${name}: ${firstIssue(extras.error)}`);
|
|
210
|
+
const m = manifest.data;
|
|
211
|
+
const persona = extras.data.persona;
|
|
212
|
+
if (Buffer.byteLength(persona, 'utf8') > MAX_PERSONA_BYTES)
|
|
213
|
+
throw new PackageRefusal(`${name}: persona.md is larger than 16 KB`);
|
|
214
|
+
const skills = (extras.data.skills ?? []).map((skill) => {
|
|
215
|
+
if (Buffer.byteLength(skill.text, 'utf8') > MAX_SKILL_BYTES) {
|
|
216
|
+
throw new PackageRefusal(`${name}: skills/${skill.file} is larger than 8 KB`);
|
|
217
|
+
}
|
|
218
|
+
const fileName = skill.file.slice(0, -'.md'.length);
|
|
219
|
+
let parsed;
|
|
220
|
+
try {
|
|
221
|
+
parsed = parseSkillFile(skill.text, { fileName });
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
throw new PackageRefusal(`${name}: skills/${skill.file} does not load: ${err instanceof Error ? err.message : String(err)}`);
|
|
225
|
+
}
|
|
226
|
+
return { file: skill.file, text: skill.text, name: parsed.name, description: parsed.description, body: parsed.body };
|
|
227
|
+
});
|
|
228
|
+
if ((m.roles?.length ?? 0) > 0 && m.trust !== 'by-buddi')
|
|
229
|
+
throw new PackageRefusal(`${name}: roles are for by-buddi packages only`);
|
|
230
|
+
if (m.needs.includes('mailbox') && m.needs.includes('mailbox?'))
|
|
231
|
+
throw new PackageRefusal(`${name}: needs names mailbox and mailbox? both`);
|
|
232
|
+
for (const mission of m.missions) {
|
|
233
|
+
if (mission.misfirePolicy === 'skip-after-deadline') {
|
|
234
|
+
throw new PackageRefusal(`${name}: mission "${mission.id}" skips after a deadline it cannot name; buddi takes another misfire policy`);
|
|
235
|
+
}
|
|
236
|
+
try {
|
|
237
|
+
parseCron(mission.cron);
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
throw new PackageRefusal(`${name}: mission "${mission.id}" has a schedule that does not parse: ${err instanceof Error ? err.message : String(err)}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const missionIds = new Set(m.missions.map((mission) => mission.id));
|
|
244
|
+
if (missionIds.size !== m.missions.length)
|
|
245
|
+
throw new PackageRefusal(`${name}: two missions share an id`);
|
|
246
|
+
const fillIds = new Set(m.fills.map((fill) => fill.id));
|
|
247
|
+
if (fillIds.size !== m.fills.length)
|
|
248
|
+
throw new PackageRefusal(`${name}: two picks share an id`);
|
|
249
|
+
for (const fill of m.fills) {
|
|
250
|
+
if (fill.kind === 'time') {
|
|
251
|
+
if (fill.mission === undefined || !missionIds.has(fill.mission)) {
|
|
252
|
+
throw new PackageRefusal(`${name}: the time pick "${fill.id}" must name one of the package's missions`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else if (fill.mission !== undefined) {
|
|
256
|
+
throw new PackageRefusal(`${name}: only a time pick names a mission ("${fill.id}" is ${fill.kind})`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
for (const tool of m.tools) {
|
|
260
|
+
const trimmed = tool.trim();
|
|
261
|
+
if (trimmed.endsWith('?')) {
|
|
262
|
+
const family = trimmed.slice(0, -1).split('.')[0] ?? '';
|
|
263
|
+
// A mail tool holds only if provided when the mailbox is optional (`mailbox?`).
|
|
264
|
+
if (family === 'email' && m.needs.includes('mailbox?'))
|
|
265
|
+
continue;
|
|
266
|
+
if (!(family in m.optional)) {
|
|
267
|
+
throw new PackageRefusal(`${name}: "${trimmed}" holds only if provided, so its plugin "${family}" must be in "optional"`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const denied = deniedTools(m.tools, []);
|
|
272
|
+
if (denied.length > 0)
|
|
273
|
+
throw new PackageRefusal(`${name}: a package may not ask for ${denied.join(', ')}`);
|
|
274
|
+
for (const plugin of Object.keys(m.requires)) {
|
|
275
|
+
if (plugin in m.optional)
|
|
276
|
+
throw new PackageRefusal(`${name}: "${plugin}" is both required and optional`);
|
|
277
|
+
}
|
|
278
|
+
const avatar = extras.data.avatar?.url ?? null;
|
|
279
|
+
const avatarSha256 = extras.data.avatar?.sha256 ?? null;
|
|
280
|
+
const computed = packageIntegrity({ manifest: manifestPart, persona, skills, avatarSha256 });
|
|
281
|
+
if (computed !== m.integrity) {
|
|
282
|
+
throw new PackageRefusal(`${name}: what withbuddi.com lists does not hash to its integrity (${m.integrity}), so buddi will not use it`);
|
|
283
|
+
}
|
|
284
|
+
return { manifest: m, persona, skills, avatar, avatarSha256, page: extras.data.page ?? null };
|
|
285
|
+
}
|
|
286
|
+
function globMatches(pattern, name) {
|
|
287
|
+
if (!pattern.includes('*'))
|
|
288
|
+
return pattern === name;
|
|
289
|
+
const re = new RegExp(`^${pattern.split('*').map((part) => part.replace(/[.+^${}()|[\]\\?]/g, '\\$&')).join('.*')}$`);
|
|
290
|
+
return re.test(name);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* The tools the denylist refuses: any resolved name it covers, and any
|
|
294
|
+
* declared entry that names a denied family or tool even while nothing here
|
|
295
|
+
* provides it (`host.*?`).
|
|
296
|
+
*/
|
|
297
|
+
export function deniedTools(declared, resolved) {
|
|
298
|
+
const out = new Set();
|
|
299
|
+
for (const name of resolved)
|
|
300
|
+
if (CATALOGUE_DENIED.some((deny) => globMatches(deny, name)))
|
|
301
|
+
out.add(name);
|
|
302
|
+
for (const entry of declared) {
|
|
303
|
+
const pattern = entry.trim().replace(/\?$/, '');
|
|
304
|
+
for (const deny of CATALOGUE_DENIED) {
|
|
305
|
+
const denyFamily = deny.endsWith('.*') ? deny.slice(0, -2) : null;
|
|
306
|
+
const entryFamily = pattern.endsWith('.*') ? pattern.slice(0, -2) : null;
|
|
307
|
+
if (globMatches(deny, pattern) ||
|
|
308
|
+
(denyFamily !== null && (pattern === denyFamily || pattern.startsWith(`${denyFamily}.`))) ||
|
|
309
|
+
// `email.*` would reach `email.send`: refused as the family it is.
|
|
310
|
+
(entryFamily !== null && !deny.includes('*') && deny.startsWith(`${entryFamily}.`))) {
|
|
311
|
+
out.add(pattern);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return [...out];
|
|
316
|
+
}
|
|
317
|
+
/** `17:00` → [17, 0]; null when it is not a time of day. */
|
|
318
|
+
export function parseClock(value) {
|
|
319
|
+
const match = /^([01]?\d|2[0-3]):([0-5]\d)$/.exec(value.trim());
|
|
320
|
+
return match ? [Number(match[1]), Number(match[2])] : null;
|
|
321
|
+
}
|
|
322
|
+
/** The hour a cron fires at, as HH:MM, when it names exactly one. */
|
|
323
|
+
export function cronClock(cron) {
|
|
324
|
+
const [minute, hour] = cron.trim().split(/\s+/);
|
|
325
|
+
if (!minute || !hour || !/^\d+$/.test(minute) || !/^\d+$/.test(hour))
|
|
326
|
+
return null;
|
|
327
|
+
return `${hour.padStart(2, '0')}:${minute.padStart(2, '0')}`;
|
|
328
|
+
}
|
|
329
|
+
/** The cron with its minute and hour moved to `clock`; unchanged when either is not a plain number. */
|
|
330
|
+
export function cronAt(cron, clock) {
|
|
331
|
+
const parts = cron.trim().split(/\s+/);
|
|
332
|
+
const at = parseClock(clock);
|
|
333
|
+
if (!at || parts.length !== 5 || cronClock(cron) === null)
|
|
334
|
+
return cron;
|
|
335
|
+
return [String(at[1]), String(at[0]), ...parts.slice(2)].join(' ');
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* The persona as written into the agent file: the package's verbatim, then
|
|
339
|
+
* "## For this owner" built from the picks and nothing else (§7). A time pick
|
|
340
|
+
* moves its mission instead; an empty pick says nothing. The owner's name,
|
|
341
|
+
* timezone, language and places are never written: every agent is told them
|
|
342
|
+
* on every turn.
|
|
343
|
+
*/
|
|
344
|
+
export function composePackagePersona(persona, picks) {
|
|
345
|
+
const lines = picks
|
|
346
|
+
.filter((pick) => pick.kind !== 'time' && pick.value.trim() !== '')
|
|
347
|
+
.map((pick) => `- ${pick.label.trim().replace(/[?:.\s]+$/, '')}: ${pick.value.trim()}`);
|
|
348
|
+
if (lines.length === 0)
|
|
349
|
+
return persona.trim();
|
|
350
|
+
return `${persona.trim()}\n\n## For this owner\n\n${lines.join('\n')}`;
|
|
351
|
+
}
|
|
352
|
+
/** sha256 hex of a text, for the sidecar's file hash. */
|
|
353
|
+
export function fileHash(text) {
|
|
354
|
+
return sha256Hex(text);
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=catalogue-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogue-package.js","sourceRoot":"","sources":["../../src/agents/catalogue-package.ts"],"names":[],"mappings":"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"}
|