@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
|
@@ -46,6 +46,7 @@ import { agentMuteRoute, focusRoute, listNotificationsRoute, markSeenRoute, noti
|
|
|
46
46
|
import { catalogSkillLookup, discardProposalFromWeb, keepAllProposalsFromWeb, keepProposalFromWeb, readProposals, registryChangeLookup } from './proposals.js';
|
|
47
47
|
import { latestDigest, readDigestSchedule, setDigestSchedule } from '../agents/learning-digest.js';
|
|
48
48
|
import { readAgentSkills, removeLearnedSkillFromWeb } from '../agents/learned-skills.js';
|
|
49
|
+
import { createSkillRoute, deleteSkillRoute, editSkillRoute, grantSkillRoute, listSkillsRoute, skillDetailRoute, skillDownload, trustSkillRoute, } from './skills.js';
|
|
49
50
|
import { bindMcpRequests, requestThroughMcp } from '../mcp/requests.js';
|
|
50
51
|
import { randomUUID, createHmac } from 'node:crypto';
|
|
51
52
|
import { StringDecoder } from 'node:string_decoder';
|
|
@@ -90,16 +91,20 @@ import { readAgentAttention, streamAttention } from './attention.js';
|
|
|
90
91
|
import { PreviewApp, PreviewTickets, parsePreviewApiPath } from './preview.js';
|
|
91
92
|
import { allowedOrigins, isLoopback, webAssetsDir, webUrl } from './config.js';
|
|
92
93
|
import { TAILSCALE_SETTING_KEY, daemonWhois, isLoginRefusal, isUnansweredRefusal, plausibleLogin, proxiedThroughTailscale, sameLogin, tailscaleIdentity, tailscaleRefusalReason, tailscaleSelf, toTailscaleSetting, } from './tailscale.js';
|
|
94
|
+
import { clientKey } from './client-key.js';
|
|
93
95
|
import { retryHref, sendSignedOut, wantsSignedOutPage } from './signed-out.js';
|
|
94
96
|
import { extensionEndpoint } from './extension.js';
|
|
95
97
|
import { REMOTE_HAND_SOCKET_PATH, RemoteHandEndpoint } from './remote-hand.js';
|
|
96
|
-
import { csrfCookieName, CSRF_HEADER, sessionCookieName, requestPort, BodyTooLargeError, first, cookieHeader, parseCookies, parseUrl, readJsonBody,
|
|
98
|
+
import { csrfCookieName, CSRF_HEADER, sessionCookieName, requestPort, BodyTooLargeError, first, cookieHeader, parseCookies, parseUrl, readJsonBody, requestOrigin, requestScope, sendEmpty, sendJson, sendText, } from './http.js';
|
|
97
99
|
import { boundedLimit, readAgents, readApprovals, readConversation, readConversations, readEventKinds, readEvents, readJobs, readJobFailures, readMissions, readOverview, setGlanceHidden, setHomeDismissed, readOffers, readReminders, readSentinels, toApprovalView, } from './read.js';
|
|
98
100
|
import { RateLimiter, SessionStore, } from './sessions.js';
|
|
99
101
|
import { supervisorCall } from './service.js';
|
|
100
102
|
import { backupJobRoute, createBackupRoute, discardUpload, listBackups, passphraseRoute, receiveUpload, restoreRoute, scheduleRoute, verifyBackupRoute, } from './backups.js';
|
|
101
103
|
import { acceptAgentRoute, approveRoute, listPlugins, pluginJobRoute, receivePluginUpload, rejectRoute, openedRoute, stageRoute, toggleRoute, uninstallRoute, updateRoute, uploadRoute, } from './plugins.js';
|
|
102
104
|
import { marketAssetRoute, marketRoute } from './market.js';
|
|
105
|
+
import { catalogueRoute, agentsCatalogue, installRoute as catalogueInstallRoute, jobRoute as catalogueJobRoute, confirmJobRoute as catalogueConfirmJobRoute, planRoute as cataloguePlanRoute, removePreviewRoute, removeRoute as removeAgentRoute, updatePlanRoute as catalogueUpdatePlanRoute, updateRoute as catalogueUpdateRoute, } from './catalogue.js';
|
|
106
|
+
import { createCatalogueService } from './catalogue-source.js';
|
|
107
|
+
import { catalogueBindingOf } from '../agents/platform.js';
|
|
103
108
|
import { pluginFoldersRoute } from './folders.js';
|
|
104
109
|
import { tipsRoute } from '../tips/route.js';
|
|
105
110
|
import { createWidgets, widgetsRoute } from './widgets.js';
|
|
@@ -107,7 +112,7 @@ import { createRequirements } from '../plugins/requires.js';
|
|
|
107
112
|
import { placesList, placesRoute } from './places.js';
|
|
108
113
|
import { OWNER_DATE_FORMATS, OWNER_TIME_FORMATS } from '@buddi/core';
|
|
109
114
|
import { readFacts, webSettingsStore } from '../tips/facts.js';
|
|
110
|
-
import { dismissAgentOffer, isPendingAccept, raiseAgentOffers, readAgentOffers
|
|
115
|
+
import { dismissAgentOffer, isPendingAccept, raiseAgentOffers, readAgentOffers } from './agent-offers.js';
|
|
111
116
|
import { currentVersion, upgradeJobRoute, upgradeRoute, versionCheckRoute, versionRoute, } from './version.js';
|
|
112
117
|
import { leaveRecoveryMode, readRecoveryView } from './recovery.js';
|
|
113
118
|
import { readNeedsYou } from './needs-you.js';
|
|
@@ -120,7 +125,7 @@ import { LOCKED_BODY, LockUnavailable, allowedWhileLocked, clientOf, createLock
|
|
|
120
125
|
import { matchApiRoute, TOKEN_REFUSALS } from './api-routes.js';
|
|
121
126
|
import { apiTokensRoute, bearerOf, verifyApiToken } from './api-tokens.js';
|
|
122
127
|
import { LockImageRefusal, MAX_LOCK_IMAGE_BYTES, normaliseLockImage } from './lock-image.js';
|
|
123
|
-
import { cancelJobFromWeb, cancelReminderFromWeb, decideApprovalFromWeb, retryJobFromWeb, retryJobsFromWeb, dismissJobsFromWeb, undismissJobsFromWeb, setMissionEnabledFromWeb, setPausedFromWeb, setScheduleFromWeb, dismissOfferFromWeb, dismissOffersFromWeb, takeOfferFromWeb, } from './write.js';
|
|
128
|
+
import { cancelJobFromWeb, cancelReminderFromWeb, decideApprovalFromWeb, retryJobFromWeb, retryJobsFromWeb, dismissJobsFromWeb, undismissJobsFromWeb, setMissionEnabledFromWeb, keepMissionFromWeb, setPausedFromWeb, setScheduleFromWeb, dismissOfferFromWeb, dismissOffersFromWeb, takeOfferFromWeb, } from './write.js';
|
|
124
129
|
/** How often approvals past their expiry are swept, and waiting delegations told. */
|
|
125
130
|
export const EXPIRY_SWEEP_MS = 60_000;
|
|
126
131
|
/**
|
|
@@ -552,7 +557,7 @@ export function createWebApp(deps) {
|
|
|
552
557
|
const scope = requestScope(req);
|
|
553
558
|
const arrived = proxied || (publicHost !== undefined && host === publicHost) ? 'tailnet' : scope === 'local' ? 'local' : 'remote';
|
|
554
559
|
const setting = arrived === 'tailnet' ? await readTailscaleSetting() : null;
|
|
555
|
-
const lockedForMs = limiter.retryAfterMs(
|
|
560
|
+
const lockedForMs = limiter.retryAfterMs(clientKey(req), now);
|
|
556
561
|
return {
|
|
557
562
|
retry: retryHref(pathname, search),
|
|
558
563
|
arrived,
|
|
@@ -644,7 +649,7 @@ export function createWebApp(deps) {
|
|
|
644
649
|
const now = deps.now();
|
|
645
650
|
const method = (req.method ?? 'GET').toUpperCase();
|
|
646
651
|
const url = parseUrl(req);
|
|
647
|
-
const key =
|
|
652
|
+
const key = clientKey(req);
|
|
648
653
|
// No CORS, and therefore no preflight.
|
|
649
654
|
if (method === 'OPTIONS')
|
|
650
655
|
return sendEmpty(res, 405);
|
|
@@ -961,6 +966,44 @@ export function createWebApp(deps) {
|
|
|
961
966
|
requirements,
|
|
962
967
|
...(deps.plugins ? { engine: deps.plugins } : {}),
|
|
963
968
|
});
|
|
969
|
+
/**
|
|
970
|
+
* The agent catalogue (catalogue.ts): the service the platform tools are
|
|
971
|
+
* bound to when there is one, so the routes and Agent Father read the same
|
|
972
|
+
* list; else one built here over the same market cache.
|
|
973
|
+
*/
|
|
974
|
+
const catalogueDeps = () => {
|
|
975
|
+
const live = deps.registry;
|
|
976
|
+
const bound = catalogueBindingOf(deps.registry);
|
|
977
|
+
const env = deps.env ?? process.env;
|
|
978
|
+
const agentsDir = bound?.agentsDir ?? agentSearchPath(env).owner.dir;
|
|
979
|
+
return {
|
|
980
|
+
...pagesDeps(),
|
|
981
|
+
env,
|
|
982
|
+
log,
|
|
983
|
+
pool: deps.pool,
|
|
984
|
+
service: bound?.service ?? createCatalogueService({ env, log, registry: deps.registry, ctx: deps.ctx, now: deps.now }),
|
|
985
|
+
binding: bound ?? { catalog: deps.catalog, agentsDir, trashRoot: path_.join(path_.dirname(path_.resolve(agentsDir)), '.trash') },
|
|
986
|
+
approve: (actionId) => decideApprovalFromWeb(writeDeps, actionId, 'approved'),
|
|
987
|
+
reject: (actionId) => decideApprovalFromWeb(writeDeps, actionId, 'rejected'),
|
|
988
|
+
...(deps.plugins ? { engine: deps.plugins } : {}),
|
|
989
|
+
...(live.register && live.unregister && live.manifests ? { liveRegistry: deps.registry } : {}),
|
|
990
|
+
};
|
|
991
|
+
};
|
|
992
|
+
/** The Skills page (skills.ts): the owner's folders, the catalog to check each write against. */
|
|
993
|
+
const skillsDeps = () => {
|
|
994
|
+
const bound = catalogueBindingOf(deps.registry);
|
|
995
|
+
const search = agentSearchPath(deps.env ?? process.env);
|
|
996
|
+
const agentsDir = bound?.agentsDir ?? search.owner.dir;
|
|
997
|
+
return {
|
|
998
|
+
catalog: deps.catalog,
|
|
999
|
+
agentsDir,
|
|
1000
|
+
skillsDir: search.owner.skillsDir,
|
|
1001
|
+
trashRoot: bound?.trashRoot ?? path_.join(path_.dirname(path_.resolve(agentsDir)), '.trash'),
|
|
1002
|
+
plugins: () => deps.registry.manifests().map((m) => m.name),
|
|
1003
|
+
now: deps.now,
|
|
1004
|
+
pool: deps.pool,
|
|
1005
|
+
};
|
|
1006
|
+
};
|
|
964
1007
|
/** Is a mailbox connected? The email plugin's own read, the one Home's offer asks. */
|
|
965
1008
|
const mailboxSet = async () => {
|
|
966
1009
|
const answer = await runPageQuery(pagesDeps(), 'email', 'triage_offer', new URLSearchParams()).catch(() => null);
|
|
@@ -1462,10 +1505,12 @@ export function createWebApp(deps) {
|
|
|
1462
1505
|
// Agents a plugin offers on Home while nobody has them. Accepting
|
|
1463
1506
|
// is the Plugins page's own accept route, below.
|
|
1464
1507
|
return sendJson(res, 200, await readAgentOffers(agentOffersDeps()));
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1508
|
+
/*
|
|
1509
|
+
* The agent catalogue: buddi's ready-made agents from withbuddi.com,
|
|
1510
|
+
* each with where it stands here. Fetched when stale, the copy offline.
|
|
1511
|
+
*/
|
|
1512
|
+
case '/api/catalogue':
|
|
1513
|
+
return reply(res, await catalogueRoute(catalogueDeps(), url));
|
|
1469
1514
|
case '/api/chat/views':
|
|
1470
1515
|
// How the installed plugins want their tool output drawn. The page
|
|
1471
1516
|
// owns the renderers and learns the domain mapping from here, so an
|
|
@@ -1483,6 +1528,9 @@ export function createWebApp(deps) {
|
|
|
1483
1528
|
// Which agent a chat that names nobody lands on, and whether the
|
|
1484
1529
|
// files disagree about it. An installation fact, not a file flag.
|
|
1485
1530
|
default: readDefaultAgent(deps.catalog),
|
|
1531
|
+
// Which agents came from the catalogue, with their drift against the
|
|
1532
|
+
// kept list, so an agent's page needs no catalogue fetch. Never fetches.
|
|
1533
|
+
catalogue: await agentsCatalogue(catalogueDeps()).catch(() => ({})),
|
|
1486
1534
|
});
|
|
1487
1535
|
case '/api/groups':
|
|
1488
1536
|
// The list is read every few seconds, so it is also where a delete whose minute has passed is made final.
|
|
@@ -1656,6 +1704,13 @@ export function createWebApp(deps) {
|
|
|
1656
1704
|
const backupJob = /^\/api\/backups\/jobs\/([0-9a-f-]{36})$/i.exec(path);
|
|
1657
1705
|
if (backupJob)
|
|
1658
1706
|
return reply(res, await backupJobRoute(backupDeps(), backupJob[1]));
|
|
1707
|
+
const catalogueJob = /^\/api\/catalogue\/jobs\/([0-9a-f-]{36})$/i.exec(path);
|
|
1708
|
+
if (catalogueJob)
|
|
1709
|
+
return reply(res, catalogueJobRoute(catalogueJob[1]));
|
|
1710
|
+
// What removing an agent does, before the owner says so: nothing changes.
|
|
1711
|
+
const removePreview = /^\/api\/agents\/([^/]+)\/remove$/.exec(path);
|
|
1712
|
+
if (removePreview)
|
|
1713
|
+
return reply(res, await removePreviewRoute(catalogueDeps(), decodeURIComponent(removePreview[1])));
|
|
1659
1714
|
const pluginJob = /^\/api\/plugins\/jobs\/([0-9a-f-]{36})$/i.exec(path);
|
|
1660
1715
|
if (pluginJob)
|
|
1661
1716
|
return reply(res, pluginJobRoute(pluginDeps(), pluginJob[1]));
|
|
@@ -1730,6 +1785,25 @@ export function createWebApp(deps) {
|
|
|
1730
1785
|
return sendJson(res, 404, { error: 'no such agent' });
|
|
1731
1786
|
return sendJson(res, 200, view);
|
|
1732
1787
|
}
|
|
1788
|
+
// The Skills page: every skill, grouped, who holds each; one whole; one as its file.
|
|
1789
|
+
if (path === '/api/skills')
|
|
1790
|
+
return reply(res, listSkillsRoute(skillsDeps()));
|
|
1791
|
+
const skillRead = /^\/api\/skills\/([^/]+)(\/download)?$/.exec(path);
|
|
1792
|
+
if (skillRead) {
|
|
1793
|
+
const id = decodeURIComponent(skillRead[1]);
|
|
1794
|
+
if (!skillRead[2])
|
|
1795
|
+
return reply(res, skillDetailRoute(skillsDeps(), id));
|
|
1796
|
+
const file = skillDownload(skillsDeps(), id);
|
|
1797
|
+
if (!file)
|
|
1798
|
+
return sendJson(res, 404, { error: `There is no skill "${id}".` });
|
|
1799
|
+
res.statusCode = 200;
|
|
1800
|
+
res.setHeader('Content-Type', 'text/markdown; charset=utf-8');
|
|
1801
|
+
res.setHeader('Content-Disposition', `attachment; filename="${file.filename}"`);
|
|
1802
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
1803
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
1804
|
+
res.end(method === 'HEAD' ? undefined : file.text);
|
|
1805
|
+
return;
|
|
1806
|
+
}
|
|
1733
1807
|
// The Skills tab: every skill the agent loads, learned ones with their versions.
|
|
1734
1808
|
const agentSkills = /^\/api\/agents\/([^/]+)\/skills$/.exec(path);
|
|
1735
1809
|
if (agentSkills) {
|
|
@@ -1932,6 +2006,10 @@ export function createWebApp(deps) {
|
|
|
1932
2006
|
const forgotten = await extension.unpair();
|
|
1933
2007
|
return sendJson(res, forgotten.status, forgotten.body);
|
|
1934
2008
|
}
|
|
2009
|
+
// Delete a skill: the agents that asked for it stop, the file goes to the trash.
|
|
2010
|
+
const skillGone = /^\/api\/skills\/([^/]+)$/.exec(path);
|
|
2011
|
+
if (skillGone)
|
|
2012
|
+
return reply(res, await deleteSkillRoute(skillsDeps(), decodeURIComponent(skillGone[1])));
|
|
1935
2013
|
// Revoke an API token: the next request carrying it is a 401.
|
|
1936
2014
|
const tokenGone = /^\/api\/api-tokens\/([0-9a-f-]{36})$/i.exec(path);
|
|
1937
2015
|
if (tokenGone) {
|
|
@@ -2163,6 +2241,15 @@ export function createWebApp(deps) {
|
|
|
2163
2241
|
// shows the mode's own sentence when it cannot.
|
|
2164
2242
|
const taken = sessionId ?? status.session?.id;
|
|
2165
2243
|
const offer = action === 'takeover' && taken ? browser.hand?.({ sessionId: taken }) : undefined;
|
|
2244
|
+
/*
|
|
2245
|
+
* "Your browser" with Chrome closed: the take-over itself succeeds (the
|
|
2246
|
+
* agent is paused), but there is no tab anywhere to show or drive. Said
|
|
2247
|
+
* as that, with a reason the dashboard offers its ways out on, rather
|
|
2248
|
+
* than the mode's "use this conversation's host tab".
|
|
2249
|
+
*/
|
|
2250
|
+
if (offer && offer.supported && !offer.hand && status.mode === 'extension' && !extension.connected()) {
|
|
2251
|
+
return sendJson(res, 200, { ...status, hand: false, handReason: 'browser-offline', handMessage: 'Your browser isn’t connected.' });
|
|
2252
|
+
}
|
|
2166
2253
|
return sendJson(res, 200, offer
|
|
2167
2254
|
? { ...status, hand: !!offer.hand, ...(offer.hand ? {} : { handMessage: offer.message }) }
|
|
2168
2255
|
: status);
|
|
@@ -2462,6 +2549,9 @@ export function createWebApp(deps) {
|
|
|
2462
2549
|
}
|
|
2463
2550
|
return finish(res, await setMissionEnabledFromWeb(writeDeps, decodeURIComponent(missionEnabled[1]), enabled));
|
|
2464
2551
|
}
|
|
2552
|
+
const missionKeep = /^\/api\/missions\/([^/]+)\/keep$/.exec(path);
|
|
2553
|
+
if (missionKeep)
|
|
2554
|
+
return finish(res, await keepMissionFromWeb(writeDeps, decodeURIComponent(missionKeep[1])));
|
|
2465
2555
|
const missionSchedule = /^\/api\/missions\/([^/]+)\/schedule$/.exec(path);
|
|
2466
2556
|
if (missionSchedule) {
|
|
2467
2557
|
return finish(res, await setScheduleFromWeb(writeDeps, decodeURIComponent(missionSchedule[1]), {
|
|
@@ -2558,6 +2648,31 @@ export function createWebApp(deps) {
|
|
|
2558
2648
|
if (offerDismissed) {
|
|
2559
2649
|
return reply(res, await dismissAgentOffer(agentOffersDeps(), decodeURIComponent(offerDismissed[1]), decodeURIComponent(offerDismissed[2])));
|
|
2560
2650
|
}
|
|
2651
|
+
/*
|
|
2652
|
+
* The agent catalogue's writes: a plan writes nothing; install answers a
|
|
2653
|
+
* job; update and remove are the owner's click as the approval, like the
|
|
2654
|
+
* accept route below.
|
|
2655
|
+
*/
|
|
2656
|
+
const catalogueConfirm = /^\/api\/catalogue\/jobs\/([0-9a-f-]{36})\/confirm$/i.exec(path);
|
|
2657
|
+
if (catalogueConfirm) {
|
|
2658
|
+
return reply(res, await catalogueConfirmJobRoute(catalogueDeps(), catalogueConfirm[1], (body ?? {})));
|
|
2659
|
+
}
|
|
2660
|
+
const catalogueWrite = /^\/api\/catalogue\/([a-z][a-z0-9-]{0,39})\/(plan|install|update\/plan|update)$/.exec(path);
|
|
2661
|
+
if (catalogueWrite) {
|
|
2662
|
+
const name = catalogueWrite[1];
|
|
2663
|
+
const verb = catalogueWrite[2];
|
|
2664
|
+
const input = (body ?? {});
|
|
2665
|
+
if (verb === 'plan')
|
|
2666
|
+
return reply(res, await cataloguePlanRoute(catalogueDeps(), name, input));
|
|
2667
|
+
if (verb === 'install')
|
|
2668
|
+
return reply(res, await catalogueInstallRoute(catalogueDeps(), name, input));
|
|
2669
|
+
if (verb === 'update/plan')
|
|
2670
|
+
return reply(res, await catalogueUpdatePlanRoute(catalogueDeps(), name, input));
|
|
2671
|
+
return reply(res, await catalogueUpdateRoute(catalogueDeps(), name, input));
|
|
2672
|
+
}
|
|
2673
|
+
const removeAgent = /^\/api\/agents\/([^/]+)\/remove$/.exec(path);
|
|
2674
|
+
if (removeAgent)
|
|
2675
|
+
return reply(res, await removeAgentRoute(catalogueDeps(), decodeURIComponent(removeAgent[1])));
|
|
2561
2676
|
const acceptAgent = /^\/api\/plugins\/([^/]+)\/agents\/([^/]+)\/accept$/.exec(path);
|
|
2562
2677
|
if (acceptAgent) {
|
|
2563
2678
|
return reply(res, await acceptAgentRoute({
|
|
@@ -3186,7 +3301,7 @@ export function createWebApp(deps) {
|
|
|
3186
3301
|
? {
|
|
3187
3302
|
send: (input) => chat.send({
|
|
3188
3303
|
agentId: input.agentId,
|
|
3189
|
-
conversationId: input.conversationId,
|
|
3304
|
+
...(input.conversationId === undefined ? {} : { conversationId: input.conversationId }),
|
|
3190
3305
|
text: input.prompt,
|
|
3191
3306
|
offer: input.offer,
|
|
3192
3307
|
}),
|
|
@@ -3228,6 +3343,18 @@ export function createWebApp(deps) {
|
|
|
3228
3343
|
})
|
|
3229
3344
|
: await discardProposalFromWeb(writeDeps, id, typeof body.reason === 'string' ? body.reason : undefined));
|
|
3230
3345
|
}
|
|
3346
|
+
/* The Skills page's writes (skills.ts): each checked by reloading the catalog. */
|
|
3347
|
+
if (path === '/api/skills')
|
|
3348
|
+
return reply(res, createSkillRoute(skillsDeps(), body));
|
|
3349
|
+
const skillWrite = /^\/api\/skills\/([^/]+)\/(text|grants|trust)$/.exec(path);
|
|
3350
|
+
if (skillWrite) {
|
|
3351
|
+
const id = decodeURIComponent(skillWrite[1]);
|
|
3352
|
+
if (skillWrite[2] === 'text')
|
|
3353
|
+
return reply(res, editSkillRoute(skillsDeps(), id, body));
|
|
3354
|
+
if (skillWrite[2] === 'grants')
|
|
3355
|
+
return reply(res, grantSkillRoute(skillsDeps(), id, body));
|
|
3356
|
+
return reply(res, trustSkillRoute(skillsDeps(), id));
|
|
3357
|
+
}
|
|
3231
3358
|
/*
|
|
3232
3359
|
* "Remove this skill": a learned skill's current file goes, its versions
|
|
3233
3360
|
* stay, and the proposal it came from counts as discarded from now.
|