botmancers 0.3.0 → 0.4.2
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/CHANGELOG.md +79 -1
- package/README.md +162 -21
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +20 -1
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +32 -4
- package/app/.next/required-server-files.json +2 -2
- package/app/.next/routes-manifest.json +143 -0
- package/app/.next/server/app/_global-error/page.js +1 -1
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +1 -1
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/agent-deck/decks/route.js +2 -2
- package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
- package/app/.next/server/app/api/agent-deck/settings/route.js +2 -2
- package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/config/route.js +2 -2
- package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +9 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route.js +9 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -0
- package/app/.next/server/app/api/bots/[id]/sessions/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/bots/[id]/skill/route.js +2 -2
- package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/availability/route.js +1 -1
- package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/delete-preview/route.js +3 -3
- package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/import/route.js +2 -2
- package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/manage/route.js +2 -2
- package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/name-migrations/route.js +2 -2
- package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/bots/route.js +6 -6
- package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/approve/route.js +2 -2
- package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/deny/route.js +2 -2
- package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/draft/route.js +2 -2
- package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +2 -2
- package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/messages/route.js +6 -6
- package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/route.js +2 -2
- package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/[id]/stop/route.js +3 -3
- package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
- package/app/.next/server/app/api/conversations/route.js +2 -2
- package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +11 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/exchanges/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/[id]/route.js +11 -0
- package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/exchanges/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/exchanges/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/exchanges/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/exchanges/route.js +12 -0
- package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -0
- package/app/.next/server/app/api/exchanges/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/files/[name]/route.js +1 -1
- package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/groups/route.js +2 -2
- package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/import-capabilities/route.js +1 -1
- package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
- package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
- package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
- package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
- package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/route.js +2 -2
- package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/app/.next/server/app/api/messages/[id]/between/route.js +2 -2
- package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
- package/app/.next/server/app/api/service-grants/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/service-grants/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/service-grants/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/service-grants/route.js +9 -0
- package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -0
- package/app/.next/server/app/api/service-grants/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +4 -3
- package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/agents/[agentId]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/agents/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/agents/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/agents/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/agents/route.js +11 -0
- package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/agents/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/capabilities/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/capabilities/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/capabilities/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/capabilities/route.js +11 -0
- package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/capabilities/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/conversations/[id]/route.js +4 -3
- package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +11 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js +11 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/[id]/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/exchanges/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/exchanges/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/exchanges/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/exchanges/route.js +11 -0
- package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/exchanges/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/v0/mcp/route.js +5 -3
- package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/requests/[id]/route.js +4 -3
- package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/app-paths-manifest.json +3 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/build-manifest.json +12 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/server-reference-manifest.json +4 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +11 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v0/sessions/[ref]/messages/route_client-reference-manifest.js +3 -0
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +5 -5
- package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
- package/app/.next/server/app/api/wakes/[id]/decision/route.js +5 -5
- package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
- package/app/.next/server/app/api/wakes/[id]/retry/route.js +5 -5
- package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
- package/app/.next/server/app/bots/[id]/config/page.js +1 -1
- package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
- package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/exchanges/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/exchanges/page/build-manifest.json +20 -0
- package/app/.next/server/app/exchanges/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/exchanges/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/exchanges/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/exchanges/page.js +13 -0
- package/app/.next/server/app/exchanges/page.js.nft.json +1 -0
- package/app/.next/server/app/exchanges/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app/exchanges.html +1 -0
- package/app/.next/server/app/exchanges.meta +34 -0
- package/app/.next/server/app/exchanges.rsc +22 -0
- package/app/.next/server/app/exchanges.segments/_full.segment.rsc +22 -0
- package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +4 -0
- package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +26 -0
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/page.js +1 -1
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/settings/page.js +1 -1
- package/app/.next/server/app/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/settings.html +1 -1
- package/app/.next/server/app/settings.rsc +2 -2
- package/app/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/threads/[id]/page/app-paths-manifest.json +3 -0
- package/app/.next/server/app/threads/[id]/page/build-manifest.json +20 -0
- package/app/.next/server/app/threads/[id]/page/next-font-manifest.json +11 -0
- package/app/.next/server/app/threads/[id]/page/react-loadable-manifest.json +1 -0
- package/app/.next/server/app/threads/[id]/page/server-reference-manifest.json +4 -0
- package/app/.next/server/app/threads/[id]/page.js +13 -0
- package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -0
- package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +3 -0
- package/app/.next/server/app-paths-manifest.json +20 -1
- package/app/.next/server/chunks/0ivl_api_v0_agents_[agentId]_conversations_[conversationId]_route_actions_0lvijtu.js +3 -0
- package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_conversations_route_actions_0ko3117.js +3 -0
- package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_sessions_[ref]_route_actions_0o7q3vt.js +3 -0
- package/app/.next/server/chunks/{[externals]__18bqksw._.js → [externals]__06lqs5i._.js} +1 -1
- package/app/.next/server/chunks/{[root-of-the-server]__1vxmbdl._.js → [root-of-the-server]__0-45blq._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +285 -53
- package/app/.next/server/chunks/{[root-of-the-server]__07l_rgn._.js → [root-of-the-server]__0j0i8xz._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__0wtzcge._.js +3 -0
- package/app/.next/server/chunks/{[root-of-the-server]__19hjzs0._.js → [root-of-the-server]__15hknun._.js} +1 -1
- package/app/.next/server/chunks/{[root-of-the-server]__08i4wq6._.js → [root-of-the-server]__16ikszu._.js} +1 -1
- package/app/.next/server/chunks/{[root-of-the-server]__1khwkvb._.js → [root-of-the-server]__1c3e2ds._.js} +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +7 -0
- package/app/.next/server/chunks/_06rti77._.js +30 -0
- package/app/.next/server/chunks/_09k38l1._.js +3 -0
- package/app/.next/server/chunks/_0dlg5kj._.js +30 -0
- package/app/.next/server/chunks/_0dyculb._.js +30 -0
- package/app/.next/server/chunks/_0eig2jc._.js +30 -0
- package/app/.next/server/chunks/_0ggf7vy._.js +1 -1
- package/app/.next/server/chunks/_0kghtb6._.js +3 -0
- package/app/.next/server/chunks/_0th2j4w._.js +1 -1
- package/app/.next/server/chunks/_0uz7r06._.js +30 -0
- package/app/.next/server/chunks/_0x05ts4._.js +3 -0
- package/app/.next/server/chunks/_0y3geoj._.js +30 -0
- package/app/.next/server/chunks/_1-5mthb._.js +1 -1
- package/app/.next/server/chunks/_12tq5uv._.js +30 -0
- package/app/.next/server/chunks/_147-4gl._.js +3 -0
- package/app/.next/server/chunks/_14ky6a2._.js +30 -0
- package/app/.next/server/chunks/_16kbxdt._.js +30 -0
- package/app/.next/server/chunks/_1963m2f._.js +30 -0
- package/app/.next/server/chunks/_1_34_h3._.js +30 -0
- package/app/.next/server/chunks/_1cc-2mx._.js +3 -0
- package/app/.next/server/chunks/_1inyx08._.js +1 -1
- package/app/.next/server/chunks/_1nurj3f._.js +30 -0
- package/app/.next/server/chunks/_1p2rf_n._.js +30 -0
- package/app/.next/server/chunks/_1u6tw78._.js +30 -0
- package/app/.next/server/chunks/_20azcus._.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_[ref]_route_actions_02gp9-5.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_route_actions_1s_wxg4.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_cancel_route_actions_0lh0fl4.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_route_actions_1w4jhin.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_route_actions_028wchg.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_service-grants_route_actions_1459xk1.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_route_actions_127sxvv.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_sessions_route_actions_0pm6tcu.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_route_actions_00azkhd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_capabilities_route_actions_0d-eefd.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_cancel_route_actions_1hb2q7i.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_route_actions_098f50-.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_route_actions_1ftmhhm.js +3 -0
- package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_messages_route_actions_1-rgf_k.js +3 -0
- package/app/.next/server/chunks/lib_0kik6bx._.js +1 -1
- package/app/.next/server/chunks/lib_0pe3tiv._.js +1 -1
- package/app/.next/server/chunks/lib_0t3s3rj._.js +30 -0
- package/app/.next/server/chunks/lib_0zxi6rx._.js +148 -0
- package/app/.next/server/chunks/lib_12udr7g._.js +148 -0
- package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +25 -0
- package/app/.next/server/chunks/lib_session-catalog_ts_1i7f38f._.js +30 -0
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__0sq4frf._.js → [root-of-the-server]__03186rx._.js} +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__03xw2d9._.js +3 -0
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__1x7o-fe._.js → [root-of-the-server]__0zzcbqg._.js} +1 -1
- package/app/.next/server/chunks/ssr/{[root-of-the-server]__029oxo_._.js → [root-of-the-server]__1feicqq._.js} +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +3 -0
- package/app/.next/server/chunks/ssr/_00ysoah._.js +3 -0
- package/app/.next/server/chunks/ssr/_157wnb_._.js +3 -0
- package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
- package/app/.next/server/chunks/ssr/_next-internal_server_app_exchanges_page_actions_0hcso2x.js +3 -0
- package/app/.next/server/chunks/ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js +3 -0
- package/app/.next/server/chunks/ssr/app_1-nwnha._.js +3 -0
- package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +3 -0
- package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +3 -0
- package/app/.next/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
- package/app/.next/server/chunks/ssr/node_modules_next_0x3i8za._.js +131 -0
- package/app/.next/server/middleware-build-manifest.js +3 -3
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/next-font-manifest.js +1 -1
- package/app/.next/server/next-font-manifest.json +8 -0
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/prefetch-hints.json +14 -0
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/1i5xroz391zkb.js +1 -0
- package/app/.next/static/chunks/{3zqbpbm93yqzh.css → 1vz50l951sr9e.css} +1 -1
- package/app/.next/static/chunks/24ggj819yt3y6.js +1 -0
- package/app/.next/static/chunks/2_8lcalraul5s.js +3 -0
- package/app/.next/static/chunks/30i0-l04mmdvk.js +1 -0
- package/app/BUILD_INFO.json +2 -2
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +33 -5
- package/dist/clients.d.ts +86 -0
- package/dist/clients.js +635 -0
- package/dist/config.js +2 -2
- package/dist/contract.d.ts +6 -1
- package/dist/contract.js +28 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/managed.js +7 -0
- package/dist/product.d.ts +2 -0
- package/dist/product.js +6 -0
- package/dist/server.js +5 -4
- package/dist/upstream.js +21 -7
- package/package.json +7 -6
- package/schemas/botmancers.mcp.v2.tools.json +2981 -0
- package/skills/botmancers-collaboration/SKILL.md +99 -0
- package/skills/botmancers-collaboration/references/workflows.md +209 -0
- package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +0 -7
- package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +0 -3
- package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +0 -3
- package/app/.next/server/chunks/lib_051fv4x._.js +0 -111
- package/app/.next/server/chunks/lib_07adeq3._.js +0 -111
- package/app/.next/server/chunks/ssr/_0k_7i66._.js +0 -131
- package/app/.next/server/chunks/ssr/_1flnty7._.js +0 -23
- package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +0 -3
- package/app/.next/static/chunks/0qbtymorcz-l9.js +0 -3
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_buildManifest.js +0 -0
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_clientMiddlewareManifest.js +0 -0
- /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → ewp56HqU5-d9bpFog3bli}/_ssgManifest.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,85 @@
|
|
|
3
3
|
All notable changes to the `botmancers` npm package. It uses
|
|
4
4
|
[Semantic Versioning](https://semver.org): while the package is `0.x`, a
|
|
5
5
|
minor version may change the CLI or configuration. The MCP tool contract is
|
|
6
|
-
versioned separately
|
|
6
|
+
versioned separately: `botmancers.mcp.v1` (frozen) and `botmancers.mcp.v2`.
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.4.2] - 2026-10-17
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Releases are published once, straight to `latest`, by the maintainer
|
|
15
|
+
(`npm run release:publish`). The `canary` dist-tag, the CI publish, npm
|
|
16
|
+
trusted publishing, and the bootstrap token are gone;
|
|
17
|
+
`release-botmancers.yml` now only runs the release check on the tag. The
|
|
18
|
+
package contents are unchanged from 0.4.1.
|
|
19
|
+
- 0.4.1 was tagged but never published, so 0.4.2 carries its contents
|
|
20
|
+
(below) and the 0.4.0 contents.
|
|
21
|
+
|
|
22
|
+
## [0.4.1] - 2026-10-17
|
|
23
|
+
|
|
24
|
+
Not published; see 0.4.2.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- 0.4.0 was never published: its release check failed on the Linux release
|
|
29
|
+
runner. `npm test` passed a directory to `node --test`, which Node 24 treats
|
|
30
|
+
as a module path; it now passes a glob. The clean-install smoke signalled
|
|
31
|
+
`npx`, which on npm 11.19 does not forward `SIGTERM` to the bridge; it now
|
|
32
|
+
signals the process group and checks that the bridge port closes.
|
|
33
|
+
- `release:check` shows the failing test and smoke output, drains stdout
|
|
34
|
+
before exiting, and writes its `--out` transcript as it goes.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- A `ci-botmancers` workflow runs the same release check on pull requests that
|
|
39
|
+
touch the app or the package, so release failures show up before a tag.
|
|
40
|
+
- 0.4.1 carries everything 0.4.0 would have shipped (below).
|
|
41
|
+
|
|
42
|
+
## [0.4.0] - 2026-10-17
|
|
43
|
+
|
|
44
|
+
Not published; see 0.4.1.
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- The Botmancers app bundled in the package adds the durable Agent session
|
|
49
|
+
catalog and Sessions UI, session-targeted Ask and Continue exchanges with
|
|
50
|
+
inline exchange cards, and an Agent Exchanges ledger.
|
|
51
|
+
- Service grants let the owner give another Agent narrow, audited access to
|
|
52
|
+
sessions, conversations, and exchanges (`docs/service-grants.md`). Grants
|
|
53
|
+
are re-checked at read time, and an unregistered Agent invalidates the
|
|
54
|
+
document.
|
|
55
|
+
|
|
56
|
+
- `botmancers setup --client codex|cursor|claude [--remove]`: connects the
|
|
57
|
+
client to the local MCP bridge and installs the optional
|
|
58
|
+
`botmancers-collaboration` Agent Skill (shipped in `skills/`). An
|
|
59
|
+
ownership record in `config/clients/<client>.json` (versions and SHA-256
|
|
60
|
+
hashes, no token) lets re-runs, upgrades, and rollbacks refresh only
|
|
61
|
+
unmodified Botmancers files. Edited or foreign files are never overwritten
|
|
62
|
+
(exit 12), a missing client writes nothing (exit 11), and a failed write is
|
|
63
|
+
rolled back. Plain `botmancers setup` refreshes the clients already set up.
|
|
64
|
+
`botmancers doctor` reports each client as connected, missing, stale, or
|
|
65
|
+
conflicted, with the repair command.
|
|
66
|
+
|
|
67
|
+
- MCP contract `botmancers.mcp.v2`: `botmancers_capabilities`,
|
|
68
|
+
`botmancers_list_agents`, `botmancers_list_sessions`,
|
|
69
|
+
`botmancers_list_conversations`, `botmancers_send_to_session`,
|
|
70
|
+
`botmancers_create_exchange`, `botmancers_get_exchange`, and
|
|
71
|
+
`botmancers_list_exchanges`, plus a v2 (`agent_id`) path of
|
|
72
|
+
`botmancers_get_conversation`, over the owner's service grants. The bundled
|
|
73
|
+
schema is `schemas/botmancers.mcp.v2.tools.json`; every v2 call is forwarded
|
|
74
|
+
unchanged. `GET /healthz` adds `contracts`. Library exports add
|
|
75
|
+
`MCP_CONTRACT_V1`, `MCP_CONTRACTS`, `TOOL_SCHEMA_V1_URL`, and
|
|
76
|
+
`toolContractOf`.
|
|
77
|
+
|
|
78
|
+
### Changed
|
|
79
|
+
|
|
80
|
+
- `MCP_CONTRACT` and `/healthz` `contract` are now `botmancers.mcp.v2`;
|
|
81
|
+
`tools/list` returns the v1 tools unchanged, then the v2 tools.
|
|
82
|
+
- Startup preflight refuses (exit 4) a Botmancers that lacks any bundled v1 or
|
|
83
|
+
v2 tool, or the v2 path of `botmancers_get_conversation`, and names what is
|
|
84
|
+
missing. It still sends only `initialize` and `tools/list`.
|
|
7
85
|
|
|
8
86
|
## [0.3.0] - 2026-10-16
|
|
9
87
|
|
package/README.md
CHANGED
|
@@ -13,16 +13,42 @@ No source checkout or separately started app is needed.
|
|
|
13
13
|
a Botmancers app you run yourself, exactly as in 0.1.0, so existing MCP
|
|
14
14
|
configurations keep working.
|
|
15
15
|
|
|
16
|
-
The tool contract is `botmancers.mcp.
|
|
17
|
-
|
|
16
|
+
The tool contract is `botmancers.mcp.v2`, which serves every
|
|
17
|
+
`botmancers.mcp.v1` tool unchanged and adds granted access to Agents,
|
|
18
|
+
sessions, conversations, and exchanges. Its JSON schema ships in this
|
|
19
|
+
package at `schemas/botmancers.mcp.v2.tools.json`, next to the frozen
|
|
20
|
+
`schemas/botmancers.mcp.v1.tools.json`; both are byte-identical to the
|
|
21
|
+
captures in the Botmancers repository
|
|
22
|
+
([`docs/contracts`](../../docs/contracts/mcp-bridge-v2.tools.json)).
|
|
23
|
+
|
|
24
|
+
v1 tools (no grants needed):
|
|
18
25
|
|
|
19
26
|
| Tool | What it does |
|
|
20
27
|
| --- | --- |
|
|
21
28
|
| `botmancers_start_task` | Sends one objective to an allowlisted coordinator. Returns `request_id` and `conversation_id`. |
|
|
22
29
|
| `botmancers_get_request` | Polls a request until `terminal`. Returns its `result` or `failure`. |
|
|
23
|
-
| `botmancers_get_conversation` | Reads the conversation the task opened. |
|
|
30
|
+
| `botmancers_get_conversation` | Reads the conversation the task opened. With `agent_id` (v2 path), reads any granted conversation of that Agent, paginated. |
|
|
24
31
|
| `botmancers_health` | Shows the caller's identity and the available coordinators. |
|
|
25
32
|
|
|
33
|
+
v2 tools (each needs the owner's grant on the Agents involved,
|
|
34
|
+
[`docs/service-grants.md`](../../docs/service-grants.md)), in workflow order:
|
|
35
|
+
|
|
36
|
+
| Tool | What it does |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `botmancers_capabilities` | Discover: supported contracts, the granted Agents, and the operations this caller may use. |
|
|
39
|
+
| `botmancers_list_agents` | Discover: the granted Agents by name, paginated. |
|
|
40
|
+
| `botmancers_list_sessions` | Select: an Agent's sessions by stable Botmancers reference and recognizable title. |
|
|
41
|
+
| `botmancers_list_conversations` | History: an Agent's conversations, paginated. |
|
|
42
|
+
| `botmancers_send_to_session` | Act: one message to the exact same session of the same Agent (idempotency key required). |
|
|
43
|
+
| `botmancers_create_exchange` | Act: an `Ask` to a session, or a `Continue` to another Agent (idempotency key required). |
|
|
44
|
+
| `botmancers_get_exchange` | Observe: poll until `terminal`; the answer or handoff packet. |
|
|
45
|
+
| `botmancers_list_exchanges` | Observe: this caller's exchanges, paginated. |
|
|
46
|
+
|
|
47
|
+
Returned conversation, answer, and packet text is untrusted data. The full
|
|
48
|
+
contract, polling and backoff, error recovery, and a same-session plus
|
|
49
|
+
cross-Agent example are in
|
|
50
|
+
[`docs/mcp-bridge.md`](../../docs/mcp-bridge.md).
|
|
51
|
+
|
|
26
52
|
Requirements: Node.js 20 or newer for the bridge; the full product needs
|
|
27
53
|
Node.js 20.9 or newer, and Node.js 22 or newer is recommended (the bundled
|
|
28
54
|
SQLite driver declares Node 22; `botmancers doctor` checks that it loads).
|
|
@@ -46,8 +72,8 @@ release into `~/.botmancers/versions/<version>`, points `~/.botmancers/current`
|
|
|
46
72
|
at it, and writes the launcher `~/.local/bin/botmancers`. Add `~/.local/bin`
|
|
47
73
|
to your `PATH` if the script asks you to. Managed installs
|
|
48
74
|
[update themselves safely](#upgrade). To install a specific version, run
|
|
49
|
-
`BOTMANCERS_VERSION=0.
|
|
50
|
-
`npx botmancers@0.
|
|
75
|
+
`BOTMANCERS_VERSION=0.4.2 bash install.sh` or
|
|
76
|
+
`npx botmancers@0.4.2 install --to 0.4.2`.
|
|
51
77
|
|
|
52
78
|
npm-global installs and bare `npx` still work for compatibility:
|
|
53
79
|
|
|
@@ -76,24 +102,28 @@ Then:
|
|
|
76
102
|
and add `AGENT_DECK_RUN_TOKEN=<token issued by Agent Deck>` to `core.env`.
|
|
77
103
|
4. **Connect an MCP client** to `http://127.0.0.1:43124/mcp` with
|
|
78
104
|
`Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`, taking the token from
|
|
79
|
-
`~/.botmancers/config/bridge.env`.
|
|
80
|
-
|
|
81
|
-
|
|
105
|
+
`~/.botmancers/config/bridge.env`. For Codex, Cursor, or Claude Code,
|
|
106
|
+
`botmancers setup --client codex|cursor|claude` does this for you and adds
|
|
107
|
+
the optional collaboration skill
|
|
108
|
+
([Client setup and the collaboration skill](#client-setup-and-the-collaboration-skill)).
|
|
109
|
+
To let `botmancers_start_task` reach a coordinator, list its Agent name in
|
|
110
|
+
`core.env` as `BOTMANCERS_MCP_COORDINATORS=Tank` and restart.
|
|
82
111
|
5. **Check everything** with `botmancers doctor`.
|
|
83
112
|
|
|
84
113
|
For anything long-running, use the managed install, or a pinned global
|
|
85
|
-
release rather than `npx`: `npm install -g botmancers@0.
|
|
114
|
+
release rather than `npx`: `npm install -g botmancers@0.4.2`, then run
|
|
86
115
|
`botmancers setup` and `botmancers start --daemon`.
|
|
87
116
|
|
|
88
117
|
### Product commands
|
|
89
118
|
|
|
90
119
|
| Command | What it does | Exit codes |
|
|
91
120
|
| --- | --- | --- |
|
|
92
|
-
| `botmancers setup` | Creates `BOTMANCERS_HOME` and its credentials; re-running keeps them and re-tightens permissions
|
|
121
|
+
| `botmancers setup` | Creates `BOTMANCERS_HOME` and its credentials; re-running keeps them and re-tightens permissions, and refreshes the clients set up with `--client`. | `0`; `9` home not writable |
|
|
122
|
+
| `botmancers setup --client codex\|cursor\|claude [--remove]` | Connects that MCP client to the bridge and installs the optional collaboration skill, or removes both. Files you edited are never overwritten. See [Client setup](#client-setup-and-the-collaboration-skill). | `0`; `2` usage or unsupported client; `11` client not installed; `12` conflicting files (nothing written) |
|
|
93
123
|
| `botmancers start [--daemon] [--open]` | Starts the UI/core and the bridge. Without `--daemon` it stays in the foreground until Ctrl-C. Starting a healthy product again changes nothing. | `0` running; `1` a previous start is degraded; `6` a port is in use; `7` the core or bridge failed (both are stopped); `8` packaged app incomplete; `9` home not writable; `10` not set up |
|
|
94
124
|
| `botmancers stop` | Stops the supervisor, the core, and the bridge. Safe to repeat. | `0`; `1` a process would not stop |
|
|
95
125
|
| `botmancers status` | Reports `healthy`, `degraded`, or `stopped`, with the install kind, launcher, the CLI, current, and pending versions, the versions the live core and bridge report, both endpoints, process ids, and the restart action. | `0` healthy; `1` degraded; `3` stopped |
|
|
96
|
-
| `botmancers doctor` | Checks the install kind, the launcher and `PATH` shadowing, the updater, Node, the packaged app, the home and its permissions, the credentials, the SQLite driver, ports, Hermes,
|
|
126
|
+
| `botmancers doctor` | Checks the install kind, the launcher and `PATH` shadowing, the updater, Node, the packaged app, the home and its permissions, the credentials, the SQLite driver, ports, Hermes, Agent Deck, and the MCP clients set up with `--client`. Hermes, Agent Deck, and clients are optional and only warn. | `0` ok; `1` a check failed |
|
|
97
127
|
| `botmancers open` | Opens the UI in a browser (`BOTMANCERS_BROWSER` overrides the command). | `0`; `1` no browser; `3` not running |
|
|
98
128
|
| `botmancers mcp [options]` | Runs only the bridge; identical to bare `botmancers`. | see [bridge exit codes](#startup-checks-and-exit-codes) |
|
|
99
129
|
| `botmancers install [--to VERSION] [--migrate-cli] [--purge-global]` | Managed install or rollback: downloads the release into `~/.botmancers/versions/VERSION`, verifies it, makes it current, and writes the launcher. `--purge-global` also runs `npm uninstall -g botmancers`; nothing else uninstalls it. | `0`; `1` download or verification failed; `2` usage |
|
|
@@ -121,6 +151,7 @@ Everything the product writes lives under `BOTMANCERS_HOME` (default
|
|
|
121
151
|
| --- | --- |
|
|
122
152
|
| `config/core.env` | Core engine configuration: the bridge's service-token digest and anything you add (Hermes, Agent Deck, coordinators). Variables exported in your shell take precedence. |
|
|
123
153
|
| `config/bridge.env` | The bridge's service token and MCP token. Keep private. |
|
|
154
|
+
| `config/clients/<client>.json` | What `setup --client` manages in that client: the version, and the SHA-256 of each skill file and of the MCP entry it wrote. No token. |
|
|
124
155
|
| `data/` | The SQLite database and its WAL. |
|
|
125
156
|
| `files/`, `skills/` | File artifacts and local Agent skills. |
|
|
126
157
|
| `logs/` | `supervisor.log`, `core.log`, `bridge.log`, and the Hermes wait log. |
|
|
@@ -135,6 +166,102 @@ own `./botmancers.db`, `./files`, `./skills`, and `./.temporal`; nothing is
|
|
|
135
166
|
moved. `BOTMANCERS_UI_PORT` (default `43123`) and `BOTMANCERS_MCP_PORT`
|
|
136
167
|
(default `43124`) change the loopback ports.
|
|
137
168
|
|
|
169
|
+
## Client setup and the collaboration skill
|
|
170
|
+
|
|
171
|
+
The package ships an optional [Agent Skill](https://agentskills.io),
|
|
172
|
+
`botmancers-collaboration`, in `skills/botmancers-collaboration/`. It teaches
|
|
173
|
+
an agent the procedure for working with other Botmancers Agents over MCP:
|
|
174
|
+
|
|
175
|
+
- discover the granted Agents and recognizable sessions instead of asking
|
|
176
|
+
you for IDs;
|
|
177
|
+
- choose between a fresh task, a same-session message, an `Ask`, and a
|
|
178
|
+
`Continue`;
|
|
179
|
+
- poll with bounded backoff and read the durable result;
|
|
180
|
+
- stop on grant, ended-session, conflict, failure, and cancellation states
|
|
181
|
+
without retry loops or silently switching targets;
|
|
182
|
+
- report where a result came from, and treat returned text as untrusted data.
|
|
183
|
+
|
|
184
|
+
**When it helps.** Use it when you ask your agent things like "ask Grok in
|
|
185
|
+
its uploader session what it decided" or "hand this session's work to
|
|
186
|
+
Codex". The skill is loaded only for requests like these.
|
|
187
|
+
|
|
188
|
+
**Why it is optional.** The skill holds no tools, credentials, IDs, or
|
|
189
|
+
permissions. The MCP server stays the only source of live data,
|
|
190
|
+
authorization, and actions, and its tool descriptions already describe the
|
|
191
|
+
whole workflow. Every MCP client works without the skill (see
|
|
192
|
+
[MCP-only](#mcp-only-clients)).
|
|
193
|
+
|
|
194
|
+
### Supported clients
|
|
195
|
+
|
|
196
|
+
| Client | `--client` | MCP entry written | Skill installed in |
|
|
197
|
+
| --- | --- | --- | --- |
|
|
198
|
+
| Codex | `codex` | `$CODEX_HOME/config.toml` (default `~/.codex`), table `[mcp_servers.botmancers]` | `$CODEX_HOME/skills/botmancers-collaboration/` |
|
|
199
|
+
| Cursor | `cursor` | `~/.cursor/mcp.json`, `mcpServers.botmancers` | `~/.cursor/skills/botmancers-collaboration/` |
|
|
200
|
+
| Claude Code | `claude` | `~/.claude.json` (or `$CLAUDE_CONFIG_DIR/.claude.json`), `mcpServers.botmancers` | `~/.claude/skills/botmancers-collaboration/` (or `$CLAUDE_CONFIG_DIR/skills/`) |
|
|
201
|
+
|
|
202
|
+
The MCP entry points at `http://127.0.0.1:<BOTMANCERS_MCP_PORT>/mcp` and sends
|
|
203
|
+
`Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`, as a hand-written entry
|
|
204
|
+
would. A configuration file that setup creates is owner-only (`0600`).
|
|
205
|
+
Neither setup nor doctor ever prints a token, and neither starts a task,
|
|
206
|
+
conversation, or exchange.
|
|
207
|
+
|
|
208
|
+
### Install, update, and remove
|
|
209
|
+
|
|
210
|
+
```sh
|
|
211
|
+
botmancers setup --client codex # or cursor, claude; --client codex,cursor for several
|
|
212
|
+
botmancers setup # refreshes every client set up with --client
|
|
213
|
+
botmancers doctor # connected / missing / stale / conflicted, with the repair command
|
|
214
|
+
botmancers setup --client codex --remove
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
- **Install.** The client must already be installed for your user (its
|
|
218
|
+
directory exists). Otherwise setup exits 11, writes nothing, and prints the
|
|
219
|
+
MCP-only connection details. Restart the client, or reload its MCP
|
|
220
|
+
servers, afterwards.
|
|
221
|
+
- **Update.** Re-running is idempotent: unchanged files are not rewritten. A
|
|
222
|
+
new release ships the new skill version in the managed install. After
|
|
223
|
+
`botmancers upgrade`, or an automatic update, `botmancers doctor` reports the
|
|
224
|
+
client skill as `stale`, and `botmancers setup` refreshes it. After a
|
|
225
|
+
rotated MCP token or a changed `BOTMANCERS_MCP_PORT`, doctor reports the
|
|
226
|
+
MCP entry `stale` for the same repair. A rollback (`botmancers install
|
|
227
|
+
--to VERSION`) followed by `botmancers setup` puts that release's skill
|
|
228
|
+
back.
|
|
229
|
+
- **Remove.** `--remove` deletes the skill files and the MCP entry that are
|
|
230
|
+
still exactly as Botmancers wrote them, and the ownership record. Anything
|
|
231
|
+
you edited is kept and listed.
|
|
232
|
+
|
|
233
|
+
### Managed-file ownership
|
|
234
|
+
|
|
235
|
+
Setup records each file and MCP entry it writes, with its SHA-256, in
|
|
236
|
+
`config/clients/<client>.json` under `BOTMANCERS_HOME`. It replaces only a file
|
|
237
|
+
or entry that still has the recorded hash, or that already has the wanted
|
|
238
|
+
content. Your own MCP servers, other keys in the configuration file, and
|
|
239
|
+
other skills are never touched. If the skill directory holds a file you
|
|
240
|
+
edited, or the configuration already has a `botmancers` server that setup
|
|
241
|
+
did not write, setup changes nothing for that client, exits 12, and lists
|
|
242
|
+
what conflicts. To hand it back to Botmancers, keep a copy of your
|
|
243
|
+
version, remove the listed files or entry, and re-run setup. If a write
|
|
244
|
+
fails part way, setup restores every file it had already changed for that
|
|
245
|
+
client. Credentials in `config/` are never rewritten by `--client`.
|
|
246
|
+
|
|
247
|
+
### MCP-only clients
|
|
248
|
+
|
|
249
|
+
Any other MCP client needs no setup and no skill. Connect it to the URL and
|
|
250
|
+
header that `botmancers setup` prints:
|
|
251
|
+
|
|
252
|
+
```text
|
|
253
|
+
URL http://127.0.0.1:43124/mcp
|
|
254
|
+
Header Authorization: Bearer <BOTMANCERS_MCP_TOKEN from ~/.botmancers/config/bridge.env>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Then follow the tool descriptions in workflow order: `botmancers_capabilities`,
|
|
258
|
+
`botmancers_list_agents`, `botmancers_list_sessions`, an action, and
|
|
259
|
+
`botmancers_get_exchange` until `terminal`
|
|
260
|
+
([`docs/mcp-bridge.md`](../../docs/mcp-bridge.md)). A client that supports
|
|
261
|
+
Agent Skills but is not listed above can also load the skill directly: copy
|
|
262
|
+
`skills/botmancers-collaboration/` from this package into that client's skills
|
|
263
|
+
directory. Setup does not manage that copy.
|
|
264
|
+
|
|
138
265
|
## Bridge only
|
|
139
266
|
|
|
140
267
|
Use bare `botmancers` (or `botmancers mcp`) when you run the Botmancers app
|
|
@@ -177,7 +304,7 @@ newer and a running Botmancers app.
|
|
|
177
304
|
To pin an exact release, which is recommended for anything long-running:
|
|
178
305
|
|
|
179
306
|
```sh
|
|
180
|
-
BOTMANCERS_URL=http://127.0.0.1:43123 npx botmancers@0.
|
|
307
|
+
BOTMANCERS_URL=http://127.0.0.1:43123 npx botmancers@0.4.2
|
|
181
308
|
```
|
|
182
309
|
|
|
183
310
|
## Bridge configuration
|
|
@@ -204,23 +331,33 @@ installed version.
|
|
|
204
331
|
`2025-03-26`. Every request needs `Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`.
|
|
205
332
|
`GET` and `DELETE` return 405 because the bridge opens no SSE stream and
|
|
206
333
|
issues no session. Bodies over 256 KiB are refused with 413.
|
|
207
|
-
- `GET /healthz` returns `{"status":"ok","contract":"botmancers.mcp.v1","version":"<version>"}`.
|
|
334
|
+
- `GET /healthz` returns `{"status":"ok","contract":"botmancers.mcp.v2","contracts":["botmancers.mcp.v1","botmancers.mcp.v2"],"version":"<version>"}`.
|
|
208
335
|
It needs no authentication and does not call Botmancers. Use the
|
|
209
336
|
`botmancers_health` tool to check the end-to-end path.
|
|
210
337
|
|
|
211
338
|
### Startup checks and exit codes
|
|
212
339
|
|
|
213
|
-
Before listening, the bridge validates its configuration. It then
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
340
|
+
Before listening, the bridge validates its configuration. It then runs a
|
|
341
|
+
compatibility preflight: an MCP `initialize` and a `tools/list` with the
|
|
342
|
+
service token, never a tool call, so it writes nothing and does not count
|
|
343
|
+
against the rate limit. Botmancers must offer every bundled tool: all of
|
|
344
|
+
`botmancers.mcp.v1`, all of `botmancers.mcp.v2`, and the v2 `agent_id` path of
|
|
345
|
+
`botmancers_get_conversation`. Otherwise the bridge exits 4 naming exactly
|
|
346
|
+
what is missing, for example `it serves only botmancers.mcp.v1; this bridge
|
|
347
|
+
needs botmancers.mcp.v2 (missing botmancers_capabilities, ...)` or `missing
|
|
348
|
+
botmancers.mcp.v2 tools: botmancers_send_to_session`. Upgrade that Botmancers,
|
|
349
|
+
or pin a bridge release that predates v2. No error message contains a token.
|
|
350
|
+
|
|
351
|
+
Every v1 and v2 `tools/call` is forwarded to Botmancers unchanged, and its
|
|
352
|
+
result returned unchanged; Botmancers validates the arguments and applies
|
|
353
|
+
the grants.
|
|
217
354
|
|
|
218
355
|
| Exit | Meaning | What to do |
|
|
219
356
|
| --- | --- | --- |
|
|
220
357
|
| `0` | Stopped by SIGINT or SIGTERM. | Nothing. |
|
|
221
358
|
| `2` | Configuration error: a missing or invalid variable or flag. Every problem is listed. | Fix the listed settings. |
|
|
222
359
|
| `3` | Cannot listen, for example because the port is already in use. | Stop the other process, or choose another `--port`. |
|
|
223
|
-
| `4` | Botmancers is unreachable, or `BOTMANCERS_URL` is not a Botmancers MCP endpoint (the server is not named `botmancers
|
|
360
|
+
| `4` | Botmancers is unreachable, or `BOTMANCERS_URL` is not a compatible Botmancers MCP endpoint (the server is not named `botmancers`, or lacks a `botmancers.mcp.v1` or `botmancers.mcp.v2` tool). | Start or upgrade the app, or fix the URL. |
|
|
224
361
|
| `5` | Botmancers rejected the service token, or the app has no service tokens configured. | Check `BOTMANCERS_SERVICE_TOKEN` against the app's `BOTMANCERS_SERVICE_TOKENS`. |
|
|
225
362
|
|
|
226
363
|
If Botmancers becomes unavailable after startup, tool calls return a JSON-RPC
|
|
@@ -317,7 +454,7 @@ time. After that, npx may reuse its cached copy. To move deliberately, name
|
|
|
317
454
|
the version:
|
|
318
455
|
|
|
319
456
|
```sh
|
|
320
|
-
npx botmancers@0.
|
|
457
|
+
npx botmancers@0.4.2 --version
|
|
321
458
|
```
|
|
322
459
|
|
|
323
460
|
For a global full product, stop it, upgrade, and start it again. Your state
|
|
@@ -337,8 +474,9 @@ npm install -g botmancers@latest # global
|
|
|
337
474
|
```
|
|
338
475
|
|
|
339
476
|
Check the [changelog](CHANGELOG.md) before upgrading across a minor version
|
|
340
|
-
while the package is `0.x`. The tool contract
|
|
341
|
-
|
|
477
|
+
while the package is `0.x`. The tool contract is versioned separately: the
|
|
478
|
+
bundled `botmancers.mcp.v2` keeps `botmancers.mcp.v1` frozen, changes within v2
|
|
479
|
+
are additive, and a breaking change is a new contract version.
|
|
342
480
|
|
|
343
481
|
## Uninstall
|
|
344
482
|
|
|
@@ -352,6 +490,9 @@ npm cache clean --force # optional: drops npx's cached copy
|
|
|
352
490
|
rm -rf ~/.botmancers/versions ~/.botmancers/current ~/.botmancers/update-state.json ~/.local/bin/botmancers # managed install
|
|
353
491
|
```
|
|
354
492
|
|
|
493
|
+
Before deleting the home, remove the client connections:
|
|
494
|
+
`botmancers setup --client codex --remove` (and `cursor`, `claude`).
|
|
495
|
+
|
|
355
496
|
For the full product, delete `~/.botmancers` (or your `BOTMANCERS_HOME`)
|
|
356
497
|
only if you also want to delete its database, files, and credentials.
|
|
357
498
|
|
package/app/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ewp56HqU5-d9bpFog3bli
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
"/api/agent-deck/decks/route": "/api/agent-deck/decks",
|
|
5
5
|
"/api/agent-deck/settings/route": "/api/agent-deck/settings",
|
|
6
6
|
"/api/bots/[id]/config/route": "/api/bots/[id]/config",
|
|
7
|
+
"/api/bots/[id]/sessions/[ref]/route": "/api/bots/[id]/sessions/[ref]",
|
|
8
|
+
"/api/bots/[id]/sessions/route": "/api/bots/[id]/sessions",
|
|
7
9
|
"/api/bots/[id]/skill/route": "/api/bots/[id]/skill",
|
|
8
10
|
"/api/bots/availability/route": "/api/bots/availability",
|
|
9
11
|
"/api/bots/delete-preview/route": "/api/bots/delete-preview",
|
|
@@ -19,6 +21,9 @@
|
|
|
19
21
|
"/api/conversations/[id]/route": "/api/conversations/[id]",
|
|
20
22
|
"/api/conversations/[id]/stop/route": "/api/conversations/[id]/stop",
|
|
21
23
|
"/api/conversations/route": "/api/conversations",
|
|
24
|
+
"/api/exchanges/[id]/cancel/route": "/api/exchanges/[id]/cancel",
|
|
25
|
+
"/api/exchanges/[id]/route": "/api/exchanges/[id]",
|
|
26
|
+
"/api/exchanges/route": "/api/exchanges",
|
|
22
27
|
"/api/files/[name]/route": "/api/files/[name]",
|
|
23
28
|
"/api/groups/route": "/api/groups",
|
|
24
29
|
"/api/health/route": "/api/health",
|
|
@@ -27,14 +32,28 @@
|
|
|
27
32
|
"/api/marketplace-handoff/status/route": "/api/marketplace-handoff/status",
|
|
28
33
|
"/api/mcp/route": "/api/mcp",
|
|
29
34
|
"/api/messages/[id]/between/route": "/api/messages/[id]/between",
|
|
35
|
+
"/api/service-grants/route": "/api/service-grants",
|
|
36
|
+
"/api/v0/agents/[agentId]/conversations/[conversationId]/route": "/api/v0/agents/[agentId]/conversations/[conversationId]",
|
|
37
|
+
"/api/v0/agents/[agentId]/conversations/route": "/api/v0/agents/[agentId]/conversations",
|
|
30
38
|
"/api/v0/agents/[agentId]/messages/route": "/api/v0/agents/[agentId]/messages",
|
|
39
|
+
"/api/v0/agents/[agentId]/route": "/api/v0/agents/[agentId]",
|
|
40
|
+
"/api/v0/agents/[agentId]/sessions/[ref]/route": "/api/v0/agents/[agentId]/sessions/[ref]",
|
|
41
|
+
"/api/v0/agents/[agentId]/sessions/route": "/api/v0/agents/[agentId]/sessions",
|
|
42
|
+
"/api/v0/agents/route": "/api/v0/agents",
|
|
43
|
+
"/api/v0/capabilities/route": "/api/v0/capabilities",
|
|
31
44
|
"/api/v0/conversations/[id]/route": "/api/v0/conversations/[id]",
|
|
45
|
+
"/api/v0/exchanges/[id]/cancel/route": "/api/v0/exchanges/[id]/cancel",
|
|
46
|
+
"/api/v0/exchanges/[id]/route": "/api/v0/exchanges/[id]",
|
|
47
|
+
"/api/v0/exchanges/route": "/api/v0/exchanges",
|
|
32
48
|
"/api/v0/mcp/route": "/api/v0/mcp",
|
|
33
49
|
"/api/v0/requests/[id]/route": "/api/v0/requests/[id]",
|
|
50
|
+
"/api/v0/sessions/[ref]/messages/route": "/api/v0/sessions/[ref]/messages",
|
|
34
51
|
"/api/wake-grants/[id]/revoke/route": "/api/wake-grants/[id]/revoke",
|
|
35
52
|
"/api/wakes/[id]/decision/route": "/api/wakes/[id]/decision",
|
|
36
53
|
"/api/wakes/[id]/retry/route": "/api/wakes/[id]/retry",
|
|
37
54
|
"/bots/[id]/config/page": "/bots/[id]/config",
|
|
55
|
+
"/exchanges/page": "/exchanges",
|
|
38
56
|
"/page": "/",
|
|
39
|
-
"/settings/page": "/settings"
|
|
57
|
+
"/settings/page": "/settings",
|
|
58
|
+
"/threads/[id]/page": "/threads/[id]"
|
|
40
59
|
}
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
"static/chunks/0cz1d0mv5g_q7.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/ewp56HqU5-d9bpFog3bli/_buildManifest.js",
|
|
11
|
+
"static/ewp56HqU5-d9bpFog3bli/_ssgManifest.js",
|
|
12
|
+
"static/ewp56HqU5-d9bpFog3bli/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/3s6nzrbk-8mnv.js",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"routeType": "page",
|
|
6
6
|
"response": "complete",
|
|
7
7
|
"compute": "static",
|
|
8
|
-
"htmlSize":
|
|
8
|
+
"htmlSize": 8549,
|
|
9
9
|
"experimentalBypassFor": [
|
|
10
10
|
{
|
|
11
11
|
"type": "header",
|
|
@@ -86,6 +86,34 @@
|
|
|
86
86
|
"x-next-revalidate-tag-token"
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
|
+
"/exchanges": {
|
|
90
|
+
"routeType": "page",
|
|
91
|
+
"response": "complete",
|
|
92
|
+
"compute": "static",
|
|
93
|
+
"htmlSize": 9850,
|
|
94
|
+
"experimentalBypassFor": [
|
|
95
|
+
{
|
|
96
|
+
"type": "header",
|
|
97
|
+
"key": "next-action"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"type": "header",
|
|
101
|
+
"key": "content-type",
|
|
102
|
+
"value": "multipart/form-data;.*"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"initialRevalidateSeconds": false,
|
|
106
|
+
"srcRoute": "/exchanges",
|
|
107
|
+
"dataRoute": "/exchanges.rsc",
|
|
108
|
+
"allowHeader": [
|
|
109
|
+
"host",
|
|
110
|
+
"x-matched-path",
|
|
111
|
+
"x-prerender-revalidate",
|
|
112
|
+
"x-prerender-revalidate-if-generated",
|
|
113
|
+
"x-next-revalidated-tags",
|
|
114
|
+
"x-next-revalidate-tag-token"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
89
117
|
"/settings": {
|
|
90
118
|
"routeType": "page",
|
|
91
119
|
"response": "complete",
|
|
@@ -118,8 +146,8 @@
|
|
|
118
146
|
"dynamicRoutes": {},
|
|
119
147
|
"notFoundRoutes": [],
|
|
120
148
|
"preview": {
|
|
121
|
-
"previewModeId": "
|
|
122
|
-
"previewModeSigningKey": "
|
|
123
|
-
"previewModeEncryptionKey": "
|
|
149
|
+
"previewModeId": "846aa4e09ce4f3faa5bf8717358d53a5",
|
|
150
|
+
"previewModeSigningKey": "c0fcf234bafb047e3cf9f0f35315a89f0d0e84da304b9b69a8360f1e7af997c9",
|
|
151
|
+
"previewModeEncryptionKey": "c23cedda26027a9233530595817c6c8d608d324ceae95c2aa140959f35f6d7af"
|
|
124
152
|
}
|
|
125
153
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"version": 1,
|
|
3
3
|
"config": {
|
|
4
4
|
"env": {
|
|
5
|
-
"BOTMANCERS_BUILD_VERSION": "0.
|
|
6
|
-
"BOTMANCERS_BUILD_COMMIT": "
|
|
5
|
+
"BOTMANCERS_BUILD_VERSION": "0.4.2",
|
|
6
|
+
"BOTMANCERS_BUILD_COMMIT": "4f4ccf7d9ccd5e7ffa3f2fe12c724dafb8de31f4"
|
|
7
7
|
},
|
|
8
8
|
"webpack": null,
|
|
9
9
|
"typescript": {
|