botmancers 0.3.0 → 0.5.0

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.
Files changed (471) hide show
  1. package/CHANGELOG.md +107 -1
  2. package/README.md +178 -32
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +27 -1
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/prerender-manifest.json +33 -5
  7. package/app/.next/required-server-files.json +2 -2
  8. package/app/.next/routes-manifest.json +198 -0
  9. package/app/.next/server/app/_global-error/page.js +1 -1
  10. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/_global-error.html +1 -1
  13. package/app/.next/server/app/_global-error.rsc +1 -1
  14. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  15. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/app/.next/server/app/_not-found/page.js +1 -1
  18. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/_not-found.html +1 -1
  21. package/app/.next/server/app/_not-found.rsc +2 -2
  22. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/app/.next/server/app/api/agent-deck/decks/route.js +3 -3
  26. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -1
  27. package/app/.next/server/app/api/agent-deck/settings/route.js +3 -3
  28. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -1
  29. package/app/.next/server/app/api/bots/[id]/config/route.js +3 -3
  30. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  31. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/app-paths-manifest.json +3 -0
  32. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/build-manifest.json +12 -0
  33. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
  34. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +12 -0
  35. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -0
  36. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
  37. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  38. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/build-manifest.json +12 -0
  39. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  40. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +9 -0
  41. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -0
  42. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  43. package/app/.next/server/app/api/bots/[id]/sessions/route/app-paths-manifest.json +3 -0
  44. package/app/.next/server/app/api/bots/[id]/sessions/route/build-manifest.json +12 -0
  45. package/app/.next/server/app/api/bots/[id]/sessions/route/server-reference-manifest.json +4 -0
  46. package/app/.next/server/app/api/bots/[id]/sessions/route.js +12 -0
  47. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -0
  48. package/app/.next/server/app/api/bots/[id]/sessions/route_client-reference-manifest.js +3 -0
  49. package/app/.next/server/app/api/bots/[id]/skill/route.js +3 -3
  50. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  51. package/app/.next/server/app/api/bots/availability/route.js +2 -2
  52. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/bots/delete-preview/route.js +4 -4
  54. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/bots/import/route.js +3 -3
  56. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/bots/manage/route.js +3 -3
  58. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/bots/name-migrations/route.js +3 -3
  60. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/bots/route.js +7 -7
  62. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/conversations/[id]/approve/route.js +3 -3
  64. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/conversations/[id]/deny/route.js +3 -3
  66. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/conversations/[id]/draft/route.js +3 -3
  68. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +3 -3
  70. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  71. package/app/.next/server/app/api/conversations/[id]/messages/route.js +6 -6
  72. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  73. package/app/.next/server/app/api/conversations/[id]/route.js +3 -3
  74. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  75. package/app/.next/server/app/api/conversations/[id]/stop/route.js +4 -4
  76. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/conversations/route.js +3 -3
  78. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  80. package/app/.next/server/app/api/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  81. package/app/.next/server/app/api/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  82. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +11 -0
  83. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -0
  84. package/app/.next/server/app/api/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  85. package/app/.next/server/app/api/exchanges/[id]/route/app-paths-manifest.json +3 -0
  86. package/app/.next/server/app/api/exchanges/[id]/route/build-manifest.json +12 -0
  87. package/app/.next/server/app/api/exchanges/[id]/route/server-reference-manifest.json +4 -0
  88. package/app/.next/server/app/api/exchanges/[id]/route.js +11 -0
  89. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -0
  90. package/app/.next/server/app/api/exchanges/[id]/route_client-reference-manifest.js +3 -0
  91. package/app/.next/server/app/api/exchanges/route/app-paths-manifest.json +3 -0
  92. package/app/.next/server/app/api/exchanges/route/build-manifest.json +12 -0
  93. package/app/.next/server/app/api/exchanges/route/server-reference-manifest.json +4 -0
  94. package/app/.next/server/app/api/exchanges/route.js +12 -0
  95. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -0
  96. package/app/.next/server/app/api/exchanges/route_client-reference-manifest.js +3 -0
  97. package/app/.next/server/app/api/files/[name]/route.js +3 -2
  98. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/groups/route.js +3 -3
  100. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/health/route.js +3 -2
  102. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/import-capabilities/route.js +1 -1
  104. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/marketplace-handoff/route.js +1 -1
  106. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/marketplace-handoff/status/route.js +1 -1
  108. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/mcp/route.js +3 -3
  110. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/messages/[id]/between/route.js +3 -3
  112. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/runtime-connections/route/app-paths-manifest.json +3 -0
  114. package/app/.next/server/app/api/runtime-connections/route/build-manifest.json +12 -0
  115. package/app/.next/server/app/api/runtime-connections/route/server-reference-manifest.json +4 -0
  116. package/app/.next/server/app/api/runtime-connections/route.js +9 -0
  117. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -0
  118. package/app/.next/server/app/api/runtime-connections/route_client-reference-manifest.js +3 -0
  119. package/app/.next/server/app/api/service-grants/route/app-paths-manifest.json +3 -0
  120. package/app/.next/server/app/api/service-grants/route/build-manifest.json +12 -0
  121. package/app/.next/server/app/api/service-grants/route/server-reference-manifest.json +4 -0
  122. package/app/.next/server/app/api/service-grants/route.js +9 -0
  123. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -0
  124. package/app/.next/server/app/api/service-grants/route_client-reference-manifest.js +3 -0
  125. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
  126. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/build-manifest.json +12 -0
  127. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
  128. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +12 -0
  129. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -0
  130. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
  131. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/app-paths-manifest.json +3 -0
  132. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/build-manifest.json +12 -0
  133. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route/server-reference-manifest.json +4 -0
  134. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +12 -0
  135. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -0
  136. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route_client-reference-manifest.js +3 -0
  137. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +5 -4
  138. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/app-paths-manifest.json +3 -0
  140. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/build-manifest.json +12 -0
  141. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route/server-reference-manifest.json +4 -0
  142. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +12 -0
  143. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -0
  144. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route_client-reference-manifest.js +3 -0
  145. package/app/.next/server/app/api/v0/agents/[agentId]/route/app-paths-manifest.json +3 -0
  146. package/app/.next/server/app/api/v0/agents/[agentId]/route/build-manifest.json +12 -0
  147. package/app/.next/server/app/api/v0/agents/[agentId]/route/server-reference-manifest.json +4 -0
  148. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +12 -0
  149. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -0
  150. package/app/.next/server/app/api/v0/agents/[agentId]/route_client-reference-manifest.js +3 -0
  151. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/app-paths-manifest.json +3 -0
  152. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/build-manifest.json +12 -0
  153. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route/server-reference-manifest.json +4 -0
  154. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +12 -0
  155. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -0
  156. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route_client-reference-manifest.js +3 -0
  157. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/app-paths-manifest.json +3 -0
  158. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/build-manifest.json +12 -0
  159. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route/server-reference-manifest.json +4 -0
  160. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +12 -0
  161. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -0
  162. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route_client-reference-manifest.js +3 -0
  163. package/app/.next/server/app/api/v0/agents/route/app-paths-manifest.json +3 -0
  164. package/app/.next/server/app/api/v0/agents/route/build-manifest.json +12 -0
  165. package/app/.next/server/app/api/v0/agents/route/server-reference-manifest.json +4 -0
  166. package/app/.next/server/app/api/v0/agents/route.js +12 -0
  167. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -0
  168. package/app/.next/server/app/api/v0/agents/route_client-reference-manifest.js +3 -0
  169. package/app/.next/server/app/api/v0/capabilities/route/app-paths-manifest.json +3 -0
  170. package/app/.next/server/app/api/v0/capabilities/route/build-manifest.json +12 -0
  171. package/app/.next/server/app/api/v0/capabilities/route/server-reference-manifest.json +4 -0
  172. package/app/.next/server/app/api/v0/capabilities/route.js +12 -0
  173. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -0
  174. package/app/.next/server/app/api/v0/capabilities/route_client-reference-manifest.js +3 -0
  175. package/app/.next/server/app/api/v0/conversations/[id]/route.js +5 -4
  176. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/app-paths-manifest.json +3 -0
  178. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/build-manifest.json +12 -0
  179. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route/server-reference-manifest.json +4 -0
  180. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +12 -0
  181. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -0
  182. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route_client-reference-manifest.js +3 -0
  183. package/app/.next/server/app/api/v0/exchanges/[id]/route/app-paths-manifest.json +3 -0
  184. package/app/.next/server/app/api/v0/exchanges/[id]/route/build-manifest.json +12 -0
  185. package/app/.next/server/app/api/v0/exchanges/[id]/route/server-reference-manifest.json +4 -0
  186. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +12 -0
  187. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -0
  188. package/app/.next/server/app/api/v0/exchanges/[id]/route_client-reference-manifest.js +3 -0
  189. package/app/.next/server/app/api/v0/exchanges/route/app-paths-manifest.json +3 -0
  190. package/app/.next/server/app/api/v0/exchanges/route/build-manifest.json +12 -0
  191. package/app/.next/server/app/api/v0/exchanges/route/server-reference-manifest.json +4 -0
  192. package/app/.next/server/app/api/v0/exchanges/route.js +12 -0
  193. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -0
  194. package/app/.next/server/app/api/v0/exchanges/route_client-reference-manifest.js +3 -0
  195. package/app/.next/server/app/api/v0/mcp/route.js +7 -4
  196. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/app-paths-manifest.json +3 -0
  198. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/build-manifest.json +12 -0
  199. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route/server-reference-manifest.json +4 -0
  200. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +12 -0
  201. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -0
  202. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route_client-reference-manifest.js +3 -0
  203. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/app-paths-manifest.json +3 -0
  204. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/build-manifest.json +12 -0
  205. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route/server-reference-manifest.json +4 -0
  206. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +12 -0
  207. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -0
  208. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route_client-reference-manifest.js +3 -0
  209. package/app/.next/server/app/api/v0/pins/[pinRef]/route/app-paths-manifest.json +3 -0
  210. package/app/.next/server/app/api/v0/pins/[pinRef]/route/build-manifest.json +12 -0
  211. package/app/.next/server/app/api/v0/pins/[pinRef]/route/server-reference-manifest.json +4 -0
  212. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +12 -0
  213. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -0
  214. package/app/.next/server/app/api/v0/pins/[pinRef]/route_client-reference-manifest.js +3 -0
  215. package/app/.next/server/app/api/v0/requests/[id]/route.js +5 -4
  216. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/app-paths-manifest.json +3 -0
  218. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/build-manifest.json +12 -0
  219. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route/server-reference-manifest.json +4 -0
  220. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +12 -0
  221. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -0
  222. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route_client-reference-manifest.js +3 -0
  223. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/app-paths-manifest.json +3 -0
  224. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/build-manifest.json +12 -0
  225. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route/server-reference-manifest.json +4 -0
  226. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +12 -0
  227. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -0
  228. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route_client-reference-manifest.js +3 -0
  229. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +5 -5
  230. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/wakes/[id]/decision/route.js +5 -5
  232. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/wakes/[id]/retry/route.js +5 -5
  234. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  235. package/app/.next/server/app/bots/[id]/config/page.js +1 -1
  236. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  237. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/exchanges/page/app-paths-manifest.json +3 -0
  239. package/app/.next/server/app/exchanges/page/build-manifest.json +20 -0
  240. package/app/.next/server/app/exchanges/page/next-font-manifest.json +11 -0
  241. package/app/.next/server/app/exchanges/page/react-loadable-manifest.json +1 -0
  242. package/app/.next/server/app/exchanges/page/server-reference-manifest.json +4 -0
  243. package/app/.next/server/app/exchanges/page.js +13 -0
  244. package/app/.next/server/app/exchanges/page.js.nft.json +1 -0
  245. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +3 -0
  246. package/app/.next/server/app/exchanges.html +1 -0
  247. package/app/.next/server/app/exchanges.meta +34 -0
  248. package/app/.next/server/app/exchanges.rsc +22 -0
  249. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +22 -0
  250. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +4 -0
  251. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +26 -0
  252. package/app/.next/server/app/index.html +1 -1
  253. package/app/.next/server/app/index.rsc +3 -3
  254. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  255. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  256. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  257. package/app/.next/server/app/page.js +1 -1
  258. package/app/.next/server/app/page.js.nft.json +1 -1
  259. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  260. package/app/.next/server/app/settings/page.js +1 -1
  261. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  262. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/settings.html +1 -1
  264. package/app/.next/server/app/settings.rsc +3 -3
  265. package/app/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  266. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  267. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  268. package/app/.next/server/app/threads/[id]/page/app-paths-manifest.json +3 -0
  269. package/app/.next/server/app/threads/[id]/page/build-manifest.json +20 -0
  270. package/app/.next/server/app/threads/[id]/page/next-font-manifest.json +11 -0
  271. package/app/.next/server/app/threads/[id]/page/react-loadable-manifest.json +1 -0
  272. package/app/.next/server/app/threads/[id]/page/server-reference-manifest.json +4 -0
  273. package/app/.next/server/app/threads/[id]/page.js +13 -0
  274. package/app/.next/server/app/threads/[id]/page.js.nft.json +1 -0
  275. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +3 -0
  276. package/app/.next/server/app-paths-manifest.json +27 -1
  277. package/app/.next/server/chunks/0ivl_api_v0_agents_[agentId]_conversations_[conversationId]_route_actions_0lvijtu.js +3 -0
  278. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_sessions_[ref]_pins_route_actions_0e1st6o.js +3 -0
  279. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_conversations_route_actions_0ko3117.js +3 -0
  280. package/app/.next/server/chunks/1oeh_server_app_api_v0_agents_[agentId]_sessions_[ref]_route_actions_0o7q3vt.js +3 -0
  281. package/app/.next/server/chunks/{[externals]__18bqksw._.js → [externals]__06lqs5i._.js} +1 -1
  282. package/app/.next/server/chunks/{[root-of-the-server]__1vxmbdl._.js → [root-of-the-server]__0-45blq._.js} +1 -1
  283. package/app/.next/server/chunks/[root-of-the-server]__02kssr-._.js +3 -0
  284. package/app/.next/server/chunks/[root-of-the-server]__06qkt0f._.js +3 -0
  285. package/app/.next/server/chunks/[root-of-the-server]__08qhrch._.js +3 -0
  286. package/app/.next/server/chunks/[root-of-the-server]__097ptn_._.js +3 -0
  287. package/app/.next/server/chunks/[root-of-the-server]__09m9-pe._.js +3 -0
  288. package/app/.next/server/chunks/[root-of-the-server]__0b7w1z3._.js +3 -0
  289. package/app/.next/server/chunks/[root-of-the-server]__0f5yqjs._.js +3 -0
  290. package/app/.next/server/chunks/[root-of-the-server]__0g4um3-._.js +44 -0
  291. package/app/.next/server/chunks/[root-of-the-server]__0hro5ey._.js +3 -0
  292. package/app/.next/server/chunks/[root-of-the-server]__0hwpgxq._.js +3 -0
  293. package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +582 -55
  294. package/app/.next/server/chunks/{[root-of-the-server]__07l_rgn._.js → [root-of-the-server]__0j0i8xz._.js} +1 -1
  295. package/app/.next/server/chunks/[root-of-the-server]__0lwsto-._.js +5 -0
  296. package/app/.next/server/chunks/[root-of-the-server]__0s1enbp._.js +3 -0
  297. package/app/.next/server/chunks/[root-of-the-server]__0uq7sci._.js +3 -0
  298. package/app/.next/server/chunks/[root-of-the-server]__0wg992i._.js +3 -0
  299. package/app/.next/server/chunks/[root-of-the-server]__13cd2fb._.js +44 -0
  300. package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +3 -0
  301. package/app/.next/server/chunks/[root-of-the-server]__1879cge._.js +3 -0
  302. package/app/.next/server/chunks/{[root-of-the-server]__17oz13o._.js → [root-of-the-server]__1_01-13._.js} +3 -3
  303. package/app/.next/server/chunks/[root-of-the-server]__1a2dh11._.js +3 -0
  304. package/app/.next/server/chunks/[root-of-the-server]__1bhzfu_._.js +7 -0
  305. package/app/.next/server/chunks/{[root-of-the-server]__1khwkvb._.js → [root-of-the-server]__1c3e2ds._.js} +1 -1
  306. package/app/.next/server/chunks/[root-of-the-server]__1co3sok._.js +44 -0
  307. package/app/.next/server/chunks/[root-of-the-server]__1eh30sp._.js +3 -0
  308. package/app/.next/server/chunks/[root-of-the-server]__1fmsid0._.js +44 -0
  309. package/app/.next/server/chunks/[root-of-the-server]__1i388e2._.js +3 -0
  310. package/app/.next/server/chunks/[root-of-the-server]__1kvvs4u._.js +3 -0
  311. package/app/.next/server/chunks/[root-of-the-server]__1qbgs3m._.js +3 -0
  312. package/app/.next/server/chunks/[root-of-the-server]__1s6h1sj._.js +3 -0
  313. package/app/.next/server/chunks/[root-of-the-server]__1slu7d7._.js +7 -0
  314. package/app/.next/server/chunks/[root-of-the-server]__1tuqc5v._.js +3 -0
  315. package/app/.next/server/chunks/[root-of-the-server]__1v609eq._.js +44 -0
  316. package/app/.next/server/chunks/[root-of-the-server]__1y_j43n._.js +3 -0
  317. package/app/.next/server/chunks/[root-of-the-server]__1zdv-vb._.js +3 -0
  318. package/app/.next/server/chunks/[root-of-the-server]__1zjs2tr._.js +3 -0
  319. package/app/.next/server/chunks/_0061c2q._.js +3 -0
  320. package/app/.next/server/chunks/_023se5j._.js +44 -0
  321. package/app/.next/server/chunks/_02pb_qv._.js +44 -0
  322. package/app/.next/server/chunks/_05ro-21._.js +44 -0
  323. package/app/.next/server/chunks/_07on0dc._.js +44 -0
  324. package/app/.next/server/chunks/_08208nz._.js +44 -0
  325. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  326. package/app/.next/server/chunks/_0fe5qz5._.js +44 -0
  327. package/app/.next/server/chunks/_0i8_xso._.js +3 -0
  328. package/app/.next/server/chunks/_0qoji5a._.js +44 -0
  329. package/app/.next/server/chunks/_0uv2pi5._.js +44 -0
  330. package/app/.next/server/chunks/_0wdl90-._.js +44 -0
  331. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  332. package/app/.next/server/chunks/_11-q8k1._.js +3 -0
  333. package/app/.next/server/chunks/_11ijk9k._.js +44 -0
  334. package/app/.next/server/chunks/_198sn69._.js +44 -0
  335. package/app/.next/server/chunks/_1ba_5hd._.js +44 -0
  336. package/app/.next/server/chunks/_1ess5if._.js +3 -0
  337. package/app/.next/server/chunks/_1i0zod4._.js +3 -0
  338. package/app/.next/server/chunks/_1m89jq5._.js +44 -0
  339. package/app/.next/server/chunks/_1n39wr_._.js +44 -0
  340. package/app/.next/server/chunks/_1ryxqo1._.js +44 -0
  341. package/app/.next/server/chunks/_1vemgly._.js +44 -0
  342. package/app/.next/server/chunks/_20azcus._.js +3 -0
  343. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_[ref]_route_actions_02gp9-5.js +3 -0
  344. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_route_actions_1s_wxg4.js +3 -0
  345. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_cancel_route_actions_0lh0fl4.js +3 -0
  346. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_[id]_route_actions_1w4jhin.js +3 -0
  347. package/app/.next/server/chunks/_next-internal_server_app_api_exchanges_route_actions_028wchg.js +3 -0
  348. package/app/.next/server/chunks/_next-internal_server_app_api_runtime-connections_route_actions_06rulng.js +3 -0
  349. package/app/.next/server/chunks/_next-internal_server_app_api_service-grants_route_actions_1459xk1.js +3 -0
  350. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_pins_route_actions_08uftk9.js +3 -0
  351. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_route_actions_127sxvv.js +3 -0
  352. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_sessions_route_actions_0pm6tcu.js +3 -0
  353. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_route_actions_00azkhd.js +3 -0
  354. package/app/.next/server/chunks/_next-internal_server_app_api_v0_capabilities_route_actions_0d-eefd.js +3 -0
  355. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_cancel_route_actions_1hb2q7i.js +3 -0
  356. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_[id]_route_actions_098f50-.js +3 -0
  357. package/app/.next/server/chunks/_next-internal_server_app_api_v0_exchanges_route_actions_1ftmhhm.js +3 -0
  358. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_detach_route_actions_0nk3268.js +3 -0
  359. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_messages_route_actions_1wenu96.js +3 -0
  360. package/app/.next/server/chunks/_next-internal_server_app_api_v0_pins_[pinRef]_route_actions_0z7fu_c.js +3 -0
  361. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_messages_route_actions_1-rgf_k.js +3 -0
  362. package/app/.next/server/chunks/_next-internal_server_app_api_v0_sessions_[ref]_pins_route_actions_0y3ere3.js +3 -0
  363. package/app/.next/server/chunks/lib_0kik6bx._.js +1 -1
  364. package/app/.next/server/chunks/lib_0lqoyb4._.js +217 -0
  365. package/app/.next/server/chunks/lib_0pe3tiv._.js +1 -1
  366. package/app/.next/server/chunks/lib_0riiofz._.js +44 -0
  367. package/app/.next/server/chunks/lib_16j2293._.js +217 -0
  368. package/app/.next/server/chunks/lib_1nb_61e._.js +217 -0
  369. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +25 -0
  370. package/app/.next/server/chunks/lib_session-pins_ts_0lmxnwj._.js +20 -0
  371. package/app/.next/server/chunks/ssr/{[root-of-the-server]__0sq4frf._.js → [root-of-the-server]__03186rx._.js} +1 -1
  372. package/app/.next/server/chunks/ssr/[root-of-the-server]__03xw2d9._.js +3 -0
  373. package/app/.next/server/chunks/ssr/{[root-of-the-server]__1x7o-fe._.js → [root-of-the-server]__0zzcbqg._.js} +1 -1
  374. package/app/.next/server/chunks/ssr/{[root-of-the-server]__029oxo_._.js → [root-of-the-server]__1feicqq._.js} +1 -1
  375. package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +3 -0
  376. package/app/.next/server/chunks/ssr/_0epgorw._.js +3 -0
  377. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +3 -0
  378. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +3 -0
  379. package/app/.next/server/chunks/ssr/_1o94bnv._.js +1 -1
  380. package/app/.next/server/chunks/ssr/_next-internal_server_app_exchanges_page_actions_0hcso2x.js +3 -0
  381. package/app/.next/server/chunks/ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js +3 -0
  382. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +3 -0
  383. package/app/.next/server/chunks/ssr/app_components_AgentDeckRuntime_tsx_024janf._.js +3 -0
  384. package/app/.next/server/chunks/ssr/app_components_ExchangeCard_tsx_1shfcgn._.js +3 -0
  385. package/app/.next/server/chunks/ssr/app_exchanges_page_tsx_0j-n2a1._.js +3 -0
  386. package/app/.next/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
  387. package/app/.next/server/chunks/ssr/node_modules_next_0x3i8za._.js +131 -0
  388. package/app/.next/server/middleware-build-manifest.js +3 -3
  389. package/app/.next/server/middleware.js +1 -1
  390. package/app/.next/server/next-font-manifest.js +1 -1
  391. package/app/.next/server/next-font-manifest.json +8 -0
  392. package/app/.next/server/pages/404.html +1 -1
  393. package/app/.next/server/pages/500.html +1 -1
  394. package/app/.next/server/prefetch-hints.json +14 -0
  395. package/app/.next/server/server-reference-manifest.js +1 -1
  396. package/app/.next/server/server-reference-manifest.json +1 -1
  397. package/app/.next/static/chunks/0bhd8eso48g27.js +1 -0
  398. package/app/.next/static/chunks/1ku9himlsx-hn.js +1 -0
  399. package/app/.next/static/chunks/21aqekm5z0j47.js +1 -0
  400. package/app/.next/static/chunks/2a8bomryx66oj.css +3 -0
  401. package/app/.next/static/chunks/3230ywnpii0s6.js +3 -0
  402. package/app/.next/static/chunks/35l2c95bd-jud.js +1 -0
  403. package/app/.next/static/chunks/3cijpn6vx3yzv.js +1 -0
  404. package/app/.next/static/chunks/3ue9194j59kem.js +1 -0
  405. package/app/.next/static/chunks/44ese2s4gzze_.js +1 -0
  406. package/app/BUILD_INFO.json +2 -2
  407. package/app/package.json +1 -1
  408. package/app/server.js +1 -1
  409. package/dist/cli.d.ts +1 -1
  410. package/dist/cli.js +35 -7
  411. package/dist/clients.d.ts +86 -0
  412. package/dist/clients.js +639 -0
  413. package/dist/config.d.ts +2 -1
  414. package/dist/config.js +7 -6
  415. package/dist/contract.d.ts +7 -1
  416. package/dist/contract.js +33 -8
  417. package/dist/home.d.ts +1 -1
  418. package/dist/home.js +1 -1
  419. package/dist/index.d.ts +1 -1
  420. package/dist/index.js +3 -3
  421. package/dist/managed.js +7 -0
  422. package/dist/product.d.ts +2 -0
  423. package/dist/product.js +7 -1
  424. package/dist/server.js +5 -4
  425. package/dist/upstream.js +21 -7
  426. package/package.json +7 -6
  427. package/schemas/botmancers.mcp.v2.tools.json +4565 -0
  428. package/skills/botmancers-collaboration/SKILL.md +114 -0
  429. package/skills/botmancers-collaboration/references/workflows.md +281 -0
  430. package/app/.next/server/chunks/[root-of-the-server]__08i4wq6._.js +0 -3
  431. package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +0 -3
  432. package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +0 -3
  433. package/app/.next/server/chunks/[root-of-the-server]__0qozubc._.js +0 -3
  434. package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +0 -7
  435. package/app/.next/server/chunks/[root-of-the-server]__10m3szc._.js +0 -3
  436. package/app/.next/server/chunks/[root-of-the-server]__19hjzs0._.js +0 -3
  437. package/app/.next/server/chunks/[root-of-the-server]__1afl75n._.js +0 -3
  438. package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +0 -3
  439. package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +0 -7
  440. package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +0 -3
  441. package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +0 -7
  442. package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +0 -3
  443. package/app/.next/server/chunks/_0ggf7vy._.js +0 -3
  444. package/app/.next/server/chunks/_0gtqbub._.js +0 -3
  445. package/app/.next/server/chunks/_0i7ga8c._.js +0 -3
  446. package/app/.next/server/chunks/_0orubev._.js +0 -3
  447. package/app/.next/server/chunks/_0sfpe9z._.js +0 -3
  448. package/app/.next/server/chunks/_0th2j4w._.js +0 -3
  449. package/app/.next/server/chunks/_1ee4ej2._.js +0 -3
  450. package/app/.next/server/chunks/_1esxu1s._.js +0 -3
  451. package/app/.next/server/chunks/_1gn7eh7._.js +0 -3
  452. package/app/.next/server/chunks/_1gw7qwf._.js +0 -3
  453. package/app/.next/server/chunks/_1inyx08._.js +0 -3
  454. package/app/.next/server/chunks/_1kjsnlr._.js +0 -3
  455. package/app/.next/server/chunks/_1p8rola._.js +0 -3
  456. package/app/.next/server/chunks/app_api_import-capabilities_route_ts_013w1kt._.js +0 -3
  457. package/app/.next/server/chunks/lib_051fv4x._.js +0 -111
  458. package/app/.next/server/chunks/lib_07adeq3._.js +0 -111
  459. package/app/.next/server/chunks/lib_draft_ts_1atoius._.js +0 -3
  460. package/app/.next/server/chunks/ssr/_0k_7i66._.js +0 -131
  461. package/app/.next/server/chunks/ssr/_1flnty7._.js +0 -23
  462. package/app/.next/server/chunks/ssr/app_components_0bhuhd-._.js +0 -3
  463. package/app/.next/server/chunks/ssr/app_components_0w2_b3t._.js +0 -3
  464. package/app/.next/static/chunks/0774d7ob6aze_.js +0 -1
  465. package/app/.next/static/chunks/0d3ein53nlgja.js +0 -1
  466. package/app/.next/static/chunks/0qbtymorcz-l9.js +0 -3
  467. package/app/.next/static/chunks/3wdlh25l1vww9.js +0 -1
  468. package/app/.next/static/chunks/3zqbpbm93yqzh.css +0 -3
  469. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_buildManifest.js +0 -0
  470. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_clientMiddlewareManifest.js +0 -0
  471. /package/app/.next/static/{u4r8RPgEfpxk-DGXeKV6g → gh3shm8hnVqXLr75rmvsL}/_ssgManifest.js +0 -0
package/CHANGELOG.md CHANGED
@@ -3,7 +3,113 @@
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, as `botmancers.mcp.v1`.
6
+ versioned separately: `botmancers.mcp.v1` (frozen) and `botmancers.mcp.v2`.
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.5.0] - 2026-10-19
11
+
12
+ ### Added
13
+
14
+ - `botmancers.mcp.v2` (additive): `botmancers_message_agent`,
15
+ `botmancers_pin_session`, `botmancers_send_to_pin`, `botmancers_get_pin`,
16
+ and `botmancers_detach_pin` for registered-Agent messaging and exact-session
17
+ pins; `home` and `actions` on session items, `messaging` on Agent items,
18
+ and a `recovery` hint on errors. Every existing tool is unchanged.
19
+ The five new tools are marked `botmancers/optional`: the bridge still
20
+ starts against a Botmancers that serves the earlier v2 surface without them.
21
+ - The collaboration skill teaches registered-Agent addressing, pinned
22
+ sessions, and the three session actions: Ask from this context, Resume
23
+ work here, and Hand off to….
24
+ - Native session providers behind a `SessionProvider` boundary: Botmancers
25
+ discovers and resumes sessions created by Claude Code, Codex, Cursor
26
+ (Agent CLI or SDK), and Muse Code, and imports them as native sessions.
27
+ - Sessions show reported token usage and cost.
28
+
29
+ ### Changed
30
+
31
+ - Agent Deck is now an optional launch profile at registration, not a
32
+ requirement.
33
+ - The default ports are now UI 3333 and MCP 3332. Update any configuration
34
+ or bookmarks that use the old ports, or set the ports explicitly.
35
+ - `npm run release:publish` no longer needs `--otp`; npm's browser login
36
+ works.
37
+
38
+ ## [0.4.2] - 2026-10-17
39
+
40
+ ### Changed
41
+
42
+ - Releases are published once, straight to `latest`, by the maintainer
43
+ (`npm run release:publish`). The `canary` dist-tag, the CI publish, npm
44
+ trusted publishing, and the bootstrap token are gone;
45
+ `release-botmancers.yml` now only runs the release check on the tag. The
46
+ package contents are unchanged from 0.4.1.
47
+ - 0.4.1 was tagged but never published, so 0.4.2 carries its contents
48
+ (below) and the 0.4.0 contents.
49
+
50
+ ## [0.4.1] - 2026-10-17
51
+
52
+ Not published; see 0.4.2.
53
+
54
+ ### Fixed
55
+
56
+ - 0.4.0 was never published: its release check failed on the Linux release
57
+ runner. `npm test` passed a directory to `node --test`, which Node 24 treats
58
+ as a module path; it now passes a glob. The clean-install smoke signalled
59
+ `npx`, which on npm 11.19 does not forward `SIGTERM` to the bridge; it now
60
+ signals the process group and checks that the bridge port closes.
61
+ - `release:check` shows the failing test and smoke output, drains stdout
62
+ before exiting, and writes its `--out` transcript as it goes.
63
+
64
+ ### Changed
65
+
66
+ - A `ci-botmancers` workflow runs the same release check on pull requests that
67
+ touch the app or the package, so release failures show up before a tag.
68
+ - 0.4.1 carries everything 0.4.0 would have shipped (below).
69
+
70
+ ## [0.4.0] - 2026-10-17
71
+
72
+ Not published; see 0.4.1.
73
+
74
+ ### Added
75
+
76
+ - The Botmancers app bundled in the package adds the durable Agent session
77
+ catalog and Sessions UI, session-targeted Ask and Continue exchanges with
78
+ inline exchange cards, and an Agent Exchanges ledger.
79
+ - Service grants let the owner give another Agent narrow, audited access to
80
+ sessions, conversations, and exchanges (`docs/service-grants.md`). Grants
81
+ are re-checked at read time, and an unregistered Agent invalidates the
82
+ document.
83
+
84
+ - `botmancers setup --client codex|cursor|claude [--remove]`: connects the
85
+ client to the local MCP bridge and installs the optional
86
+ `botmancers-collaboration` Agent Skill (shipped in `skills/`). An
87
+ ownership record in `config/clients/<client>.json` (versions and SHA-256
88
+ hashes, no token) lets re-runs, upgrades, and rollbacks refresh only
89
+ unmodified Botmancers files. Edited or foreign files are never overwritten
90
+ (exit 12), a missing client writes nothing (exit 11), and a failed write is
91
+ rolled back. Plain `botmancers setup` refreshes the clients already set up.
92
+ `botmancers doctor` reports each client as connected, missing, stale, or
93
+ conflicted, with the repair command.
94
+
95
+ - MCP contract `botmancers.mcp.v2`: `botmancers_capabilities`,
96
+ `botmancers_list_agents`, `botmancers_list_sessions`,
97
+ `botmancers_list_conversations`, `botmancers_send_to_session`,
98
+ `botmancers_create_exchange`, `botmancers_get_exchange`, and
99
+ `botmancers_list_exchanges`, plus a v2 (`agent_id`) path of
100
+ `botmancers_get_conversation`, over the owner's service grants. The bundled
101
+ schema is `schemas/botmancers.mcp.v2.tools.json`; every v2 call is forwarded
102
+ unchanged. `GET /healthz` adds `contracts`. Library exports add
103
+ `MCP_CONTRACT_V1`, `MCP_CONTRACTS`, `TOOL_SCHEMA_V1_URL`, and
104
+ `toolContractOf`.
105
+
106
+ ### Changed
107
+
108
+ - `MCP_CONTRACT` and `/healthz` `contract` are now `botmancers.mcp.v2`;
109
+ `tools/list` returns the v1 tools unchanged, then the v2 tools.
110
+ - Startup preflight refuses (exit 4) a Botmancers that lacks any bundled v1 or
111
+ v2 tool, or the v2 path of `botmancers_get_conversation`, and names what is
112
+ missing. It still sends only `initialize` and `tools/list`.
7
113
 
8
114
  ## [0.3.0] - 2026-10-16
9
115
 
package/README.md CHANGED
@@ -7,22 +7,53 @@ result. Examples of such agents are Cursor's Grok Bot or any other MCP client.
7
7
  No source checkout or separately started app is needed.
8
8
 
9
9
  - `botmancers setup` / `botmancers start` run the **full product**: the UI and
10
- core engine on `http://127.0.0.1:43123` and the MCP bridge on
11
- `http://127.0.0.1:43124/mcp`, under one supervisor.
10
+ core engine on `http://127.0.0.1:3333` and the MCP bridge on
11
+ `http://127.0.0.1:3332/mcp`, under one supervisor.
12
12
  - Bare `botmancers` (or `botmancers mcp`) runs **only the bridge** in front of
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.v1`, and its JSON schema ships in this
17
- package at `schemas/botmancers.mcp.v1.tools.json`.
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
+ | `botmancers_message_agent` | Act: message a registered Agent without naming a session; Botmancers resolves and pins it. |
47
+ | `botmancers_pin_session` | Act: pin an exact past session to Ask from this context or Resume work here (explicit approval). |
48
+ | `botmancers_send_to_pin` | Act: a follow-up on exactly the pinned session. |
49
+ | `botmancers_get_pin` | Observe: the pin and its turns' answers. |
50
+ | `botmancers_detach_pin` | Stop: detach a pin (switch with `replace_pin_ref`). |
51
+
52
+ Returned conversation, answer, and packet text is untrusted data. The full
53
+ contract, polling and backoff, error recovery, and a same-session plus
54
+ cross-Agent example are in
55
+ [`docs/mcp-bridge.md`](../../docs/mcp-bridge.md).
56
+
26
57
  Requirements: Node.js 20 or newer for the bridge; the full product needs
27
58
  Node.js 20.9 or newer, and Node.js 22 or newer is recommended (the bundled
28
59
  SQLite driver declares Node 22; `botmancers doctor` checks that it loads).
@@ -46,8 +77,8 @@ release into `~/.botmancers/versions/<version>`, points `~/.botmancers/current`
46
77
  at it, and writes the launcher `~/.local/bin/botmancers`. Add `~/.local/bin`
47
78
  to your `PATH` if the script asks you to. Managed installs
48
79
  [update themselves safely](#upgrade). To install a specific version, run
49
- `BOTMANCERS_VERSION=0.3.0 bash install.sh` or
50
- `npx botmancers@0.3.0 install --to 0.3.0`.
80
+ `BOTMANCERS_VERSION=0.5.0 bash install.sh` or
81
+ `npx botmancers@0.5.0 install --to 0.5.0`.
51
82
 
52
83
  npm-global installs and bare `npx` still work for compatibility:
53
84
 
@@ -66,7 +97,7 @@ healthy; `--open` opens the UI in your browser.
66
97
 
67
98
  Then:
68
99
 
69
- 1. **Open the UI** at `http://127.0.0.1:43123` (or run `botmancers open`).
100
+ 1. **Open the UI** at `http://127.0.0.1:3333` (or run `botmancers open`).
70
101
  2. **Configure Hermes** for conversational turns: add
71
102
  `HERMES_API_SERVER_KEY=<your gateway key>` (and `HERMES_BASE_URL` if the
72
103
  gateway is not `http://127.0.0.1:8642`) to `~/.botmancers/config/core.env`,
@@ -74,26 +105,30 @@ Then:
74
105
  3. **Configure Agent Deck** for coding-agent runs: install Agent Deck so
75
106
  `agent-deck` is on `PATH` and its server runs on `http://127.0.0.1:1111`,
76
107
  and add `AGENT_DECK_RUN_TOKEN=<token issued by Agent Deck>` to `core.env`.
77
- 4. **Connect an MCP client** to `http://127.0.0.1:43124/mcp` with
108
+ 4. **Connect an MCP client** to `http://127.0.0.1:3332/mcp` with
78
109
  `Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`, taking the token from
79
- `~/.botmancers/config/bridge.env`. To let `botmancers_start_task` reach a
80
- coordinator, list its Agent name in `core.env` as
81
- `BOTMANCERS_MCP_COORDINATORS=Tank` and restart.
110
+ `~/.botmancers/config/bridge.env`. For Codex, Cursor, or Claude Code,
111
+ `botmancers setup --client codex|cursor|claude` does this for you and adds
112
+ the optional collaboration skill
113
+ ([Client setup and the collaboration skill](#client-setup-and-the-collaboration-skill)).
114
+ To let `botmancers_start_task` reach a coordinator, list its Agent name in
115
+ `core.env` as `BOTMANCERS_MCP_COORDINATORS=Tank` and restart.
82
116
  5. **Check everything** with `botmancers doctor`.
83
117
 
84
118
  For anything long-running, use the managed install, or a pinned global
85
- release rather than `npx`: `npm install -g botmancers@0.3.0`, then run
119
+ release rather than `npx`: `npm install -g botmancers@0.5.0`, then run
86
120
  `botmancers setup` and `botmancers start --daemon`.
87
121
 
88
122
  ### Product commands
89
123
 
90
124
  | Command | What it does | Exit codes |
91
125
  | --- | --- | --- |
92
- | `botmancers setup` | Creates `BOTMANCERS_HOME` and its credentials; re-running keeps them and re-tightens permissions. | `0`; `9` home not writable |
126
+ | `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 |
127
+ | `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
128
  | `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
129
  | `botmancers stop` | Stops the supervisor, the core, and the bridge. Safe to repeat. | `0`; `1` a process would not stop |
95
130
  | `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, and Agent Deck. Hermes and Agent Deck are optional and only warn. | `0` ok; `1` a check failed |
131
+ | `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
132
  | `botmancers open` | Opens the UI in a browser (`BOTMANCERS_BROWSER` overrides the command). | `0`; `1` no browser; `3` not running |
98
133
  | `botmancers mcp [options]` | Runs only the bridge; identical to bare `botmancers`. | see [bridge exit codes](#startup-checks-and-exit-codes) |
99
134
  | `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 +156,7 @@ Everything the product writes lives under `BOTMANCERS_HOME` (default
121
156
  | --- | --- |
122
157
  | `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
158
  | `config/bridge.env` | The bridge's service token and MCP token. Keep private. |
159
+ | `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
160
  | `data/` | The SQLite database and its WAL. |
125
161
  | `files/`, `skills/` | File artifacts and local Agent skills. |
126
162
  | `logs/` | `supervisor.log`, `core.log`, `bridge.log`, and the Hermes wait log. |
@@ -132,8 +168,104 @@ Existing explicit path variables still win over these defaults:
132
168
  `BOTMANCERS_DB_PATH`, `BOTMANCERS_FILES_ROOT`, `BOTMANCERS_SKILLS_ROOT`, and
133
169
  `HERMES_WAIT_LOG_PATH`. A source checkout run with `npm run dev` keeps its
134
170
  own `./botmancers.db`, `./files`, `./skills`, and `./.temporal`; nothing is
135
- moved. `BOTMANCERS_UI_PORT` (default `43123`) and `BOTMANCERS_MCP_PORT`
136
- (default `43124`) change the loopback ports.
171
+ moved. `BOTMANCERS_UI_PORT` (default `3333`) and `BOTMANCERS_MCP_PORT`
172
+ (default `3332`) change the loopback ports.
173
+
174
+ ## Client setup and the collaboration skill
175
+
176
+ The package ships an optional [Agent Skill](https://agentskills.io),
177
+ `botmancers-collaboration`, in `skills/botmancers-collaboration/`. It teaches
178
+ an agent the procedure for working with other Botmancers Agents over MCP:
179
+
180
+ - discover the granted Agents and recognizable sessions instead of asking
181
+ you for IDs;
182
+ - choose between a fresh task, a same-session message, an `Ask`, and a
183
+ `Continue`;
184
+ - poll with bounded backoff and read the durable result;
185
+ - stop on grant, ended-session, conflict, failure, and cancellation states
186
+ without retry loops or silently switching targets;
187
+ - report where a result came from, and treat returned text as untrusted data.
188
+
189
+ **When it helps.** Use it when you ask your agent things like "ask Grok in
190
+ its uploader session what it decided" or "hand this session's work to
191
+ Codex". The skill is loaded only for requests like these.
192
+
193
+ **Why it is optional.** The skill holds no tools, credentials, IDs, or
194
+ permissions. The MCP server stays the only source of live data,
195
+ authorization, and actions, and its tool descriptions already describe the
196
+ whole workflow. Every MCP client works without the skill (see
197
+ [MCP-only](#mcp-only-clients)).
198
+
199
+ ### Supported clients
200
+
201
+ | Client | `--client` | MCP entry written | Skill installed in |
202
+ | --- | --- | --- | --- |
203
+ | Codex | `codex` | `$CODEX_HOME/config.toml` (default `~/.codex`), table `[mcp_servers.botmancers]` | `$CODEX_HOME/skills/botmancers-collaboration/` |
204
+ | Cursor | `cursor` | `~/.cursor/mcp.json`, `mcpServers.botmancers` | `~/.cursor/skills/botmancers-collaboration/` |
205
+ | Claude Code | `claude` | `~/.claude.json` (or `$CLAUDE_CONFIG_DIR/.claude.json`), `mcpServers.botmancers` | `~/.claude/skills/botmancers-collaboration/` (or `$CLAUDE_CONFIG_DIR/skills/`) |
206
+
207
+ The MCP entry points at `http://127.0.0.1:<BOTMANCERS_MCP_PORT>/mcp` and sends
208
+ `Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`, as a hand-written entry
209
+ would. A configuration file that setup creates is owner-only (`0600`).
210
+ Neither setup nor doctor ever prints a token, and neither starts a task,
211
+ conversation, or exchange.
212
+
213
+ ### Install, update, and remove
214
+
215
+ ```sh
216
+ botmancers setup --client codex # or cursor, claude; --client codex,cursor for several
217
+ botmancers setup # refreshes every client set up with --client
218
+ botmancers doctor # connected / missing / stale / conflicted, with the repair command
219
+ botmancers setup --client codex --remove
220
+ ```
221
+
222
+ - **Install.** The client must already be installed for your user (its
223
+ directory exists). Otherwise setup exits 11, writes nothing, and prints the
224
+ MCP-only connection details. Restart the client, or reload its MCP
225
+ servers, afterwards.
226
+ - **Update.** Re-running is idempotent: unchanged files are not rewritten. A
227
+ new release ships the new skill version in the managed install. After
228
+ `botmancers upgrade`, or an automatic update, `botmancers doctor` reports the
229
+ client skill as `stale`, and `botmancers setup` refreshes it. After a
230
+ rotated MCP token or a changed `BOTMANCERS_MCP_PORT`, doctor reports the
231
+ MCP entry `stale` for the same repair. A rollback (`botmancers install
232
+ --to VERSION`) followed by `botmancers setup` puts that release's skill
233
+ back.
234
+ - **Remove.** `--remove` deletes the skill files and the MCP entry that are
235
+ still exactly as Botmancers wrote them, and the ownership record. Anything
236
+ you edited is kept and listed.
237
+
238
+ ### Managed-file ownership
239
+
240
+ Setup records each file and MCP entry it writes, with its SHA-256, in
241
+ `config/clients/<client>.json` under `BOTMANCERS_HOME`. It replaces only a file
242
+ or entry that still has the recorded hash, or that already has the wanted
243
+ content. Your own MCP servers, other keys in the configuration file, and
244
+ other skills are never touched. If the skill directory holds a file you
245
+ edited, or the configuration already has a `botmancers` server that setup
246
+ did not write, setup changes nothing for that client, exits 12, and lists
247
+ what conflicts. To hand it back to Botmancers, keep a copy of your
248
+ version, remove the listed files or entry, and re-run setup. If a write
249
+ fails part way, setup restores every file it had already changed for that
250
+ client. Credentials in `config/` are never rewritten by `--client`.
251
+
252
+ ### MCP-only clients
253
+
254
+ Any other MCP client needs no setup and no skill. Connect it to the URL and
255
+ header that `botmancers setup` prints:
256
+
257
+ ```text
258
+ URL http://127.0.0.1:3332/mcp
259
+ Header Authorization: Bearer <BOTMANCERS_MCP_TOKEN from ~/.botmancers/config/bridge.env>
260
+ ```
261
+
262
+ Then follow the tool descriptions in workflow order: `botmancers_capabilities`,
263
+ `botmancers_list_agents`, `botmancers_list_sessions`, an action, and
264
+ `botmancers_get_exchange` until `terminal`
265
+ ([`docs/mcp-bridge.md`](../../docs/mcp-bridge.md)). A client that supports
266
+ Agent Skills but is not listed above can also load the skill directly: copy
267
+ `skills/botmancers-collaboration/` from this package into that client's skills
268
+ directory. Setup does not manage that copy.
137
269
 
138
270
  ## Bridge only
139
271
 
@@ -162,14 +294,14 @@ newer and a running Botmancers app.
162
294
  3. **Start the bridge:**
163
295
 
164
296
  ```sh
165
- BOTMANCERS_URL=http://127.0.0.1:43123 npx botmancers
297
+ BOTMANCERS_URL=http://127.0.0.1:3333 npx botmancers
166
298
  ```
167
299
 
168
300
  It prints
169
- `botmancers <version>: MCP bridge listening on http://127.0.0.1:43124/mcp ...`
301
+ `botmancers <version>: MCP bridge listening on http://127.0.0.1:3332/mcp ...`
170
302
  and keeps running until you press Ctrl-C.
171
303
 
172
- 4. **Connect an MCP client** to `http://127.0.0.1:43124/mcp` with the header
304
+ 4. **Connect an MCP client** to `http://127.0.0.1:3332/mcp` with the header
173
305
  `Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`. Then call
174
306
  `botmancers_health`. It should return `status: "ok"` and each coordinator
175
307
  with `available: true`.
@@ -177,18 +309,18 @@ newer and a running Botmancers app.
177
309
  To pin an exact release, which is recommended for anything long-running:
178
310
 
179
311
  ```sh
180
- BOTMANCERS_URL=http://127.0.0.1:43123 npx botmancers@0.3.0
312
+ BOTMANCERS_URL=http://127.0.0.1:3333 npx botmancers@0.5.0
181
313
  ```
182
314
 
183
315
  ## Bridge configuration
184
316
 
185
317
  | Variable | Flag | Required | Default | Meaning |
186
318
  | --- | --- | --- | --- | --- |
187
- | `BOTMANCERS_URL` | `--botmancers-url` | yes | none | Base URL of the Botmancers app, for example `http://127.0.0.1:43123`. Must be `http://` or `https://`, with no credentials, query, or fragment. The bridge calls `<url>/api/v0/mcp`. |
319
+ | `BOTMANCERS_URL` | `--botmancers-url` | yes | none | Base URL of the Botmancers app, for example `http://127.0.0.1:3333`. Must be `http://` or `https://`, with no credentials, query, or fragment. The bridge calls `<url>/api/v0/mcp`. |
188
320
  | `BOTMANCERS_SERVICE_TOKEN` | none (environment only) | yes | none | Bearer token the bridge sends to Botmancers. Its SHA-256 digest must be listed in the app's `BOTMANCERS_SERVICE_TOKENS`. |
189
321
  | `BOTMANCERS_MCP_TOKEN` | none (environment only) | yes | none | Bearer token MCP clients must send to the bridge. At least 16 characters, and must differ from the service token. |
190
322
  | `BOTMANCERS_MCP_HOST` | `--host` | no | `127.0.0.1` | Address to bind. |
191
- | `BOTMANCERS_MCP_PORT` | `--port` | no | `43124` | Port to bind. `0` picks a free port. |
323
+ | `BOTMANCERS_MCP_PORT` | `--port` | no | `3332` | Port to bind. `0` picks a free port. |
192
324
 
193
325
  Flags override environment variables. Secrets are accepted only from the
194
326
  environment, because command-line flags are visible to every local user in
@@ -204,23 +336,33 @@ installed version.
204
336
  `2025-03-26`. Every request needs `Authorization: Bearer <BOTMANCERS_MCP_TOKEN>`.
205
337
  `GET` and `DELETE` return 405 because the bridge opens no SSE stream and
206
338
  issues no session. Bodies over 256 KiB are refused with 413.
207
- - `GET /healthz` returns `{"status":"ok","contract":"botmancers.mcp.v1","version":"<version>"}`.
339
+ - `GET /healthz` returns `{"status":"ok","contract":"botmancers.mcp.v2","contracts":["botmancers.mcp.v1","botmancers.mcp.v2"],"version":"<version>"}`.
208
340
  It needs no authentication and does not call Botmancers. Use the
209
341
  `botmancers_health` tool to check the end-to-end path.
210
342
 
211
343
  ### Startup checks and exit codes
212
344
 
213
- Before listening, the bridge validates its configuration. It then sends
214
- Botmancers an MCP `initialize` with the service token. That call writes
215
- nothing and does not count against the rate limit. No error message contains
216
- a token.
345
+ Before listening, the bridge validates its configuration. It then runs a
346
+ compatibility preflight: an MCP `initialize` and a `tools/list` with the
347
+ service token, never a tool call, so it writes nothing and does not count
348
+ against the rate limit. Botmancers must offer every bundled tool: all of
349
+ `botmancers.mcp.v1`, all of `botmancers.mcp.v2`, and the v2 `agent_id` path of
350
+ `botmancers_get_conversation`. Otherwise the bridge exits 4 naming exactly
351
+ what is missing, for example `it serves only botmancers.mcp.v1; this bridge
352
+ needs botmancers.mcp.v2 (missing botmancers_capabilities, ...)` or `missing
353
+ botmancers.mcp.v2 tools: botmancers_send_to_session`. Upgrade that Botmancers,
354
+ or pin a bridge release that predates v2. No error message contains a token.
355
+
356
+ Every v1 and v2 `tools/call` is forwarded to Botmancers unchanged, and its
357
+ result returned unchanged; Botmancers validates the arguments and applies
358
+ the grants.
217
359
 
218
360
  | Exit | Meaning | What to do |
219
361
  | --- | --- | --- |
220
362
  | `0` | Stopped by SIGINT or SIGTERM. | Nothing. |
221
363
  | `2` | Configuration error: a missing or invalid variable or flag. Every problem is listed. | Fix the listed settings. |
222
364
  | `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` or lacks a `botmancers.mcp.v1` tool). | Start the app, or fix the URL. |
365
+ | `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
366
  | `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
367
 
226
368
  If Botmancers becomes unavailable after startup, tool calls return a JSON-RPC
@@ -317,7 +459,7 @@ time. After that, npx may reuse its cached copy. To move deliberately, name
317
459
  the version:
318
460
 
319
461
  ```sh
320
- npx botmancers@0.3.0 --version
462
+ npx botmancers@0.5.0 --version
321
463
  ```
322
464
 
323
465
  For a global full product, stop it, upgrade, and start it again. Your state
@@ -337,8 +479,9 @@ npm install -g botmancers@latest # global
337
479
  ```
338
480
 
339
481
  Check the [changelog](CHANGELOG.md) before upgrading across a minor version
340
- while the package is `0.x`. The tool contract version, `botmancers.mcp.v1`,
341
- changes only with a major contract revision.
482
+ while the package is `0.x`. The tool contract is versioned separately: the
483
+ bundled `botmancers.mcp.v2` keeps `botmancers.mcp.v1` frozen, changes within v2
484
+ are additive, and a breaking change is a new contract version.
342
485
 
343
486
  ## Uninstall
344
487
 
@@ -352,6 +495,9 @@ npm cache clean --force # optional: drops npx's cached copy
352
495
  rm -rf ~/.botmancers/versions ~/.botmancers/current ~/.botmancers/update-state.json ~/.local/bin/botmancers # managed install
353
496
  ```
354
497
 
498
+ Before deleting the home, remove the client connections:
499
+ `botmancers setup --client codex --remove` (and `cursor`, `claude`).
500
+
355
501
  For the full product, delete `~/.botmancers` (or your `BOTMANCERS_HOME`)
356
502
  only if you also want to delete its database, files, and credentials.
357
503
 
@@ -1 +1 @@
1
- u4r8RPgEfpxk-DGXeKV6g
1
+ gh3shm8hnVqXLr75rmvsL
@@ -4,6 +4,9 @@
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]/pins/route": "/api/bots/[id]/sessions/[ref]/pins",
8
+ "/api/bots/[id]/sessions/[ref]/route": "/api/bots/[id]/sessions/[ref]",
9
+ "/api/bots/[id]/sessions/route": "/api/bots/[id]/sessions",
7
10
  "/api/bots/[id]/skill/route": "/api/bots/[id]/skill",
8
11
  "/api/bots/availability/route": "/api/bots/availability",
9
12
  "/api/bots/delete-preview/route": "/api/bots/delete-preview",
@@ -19,6 +22,9 @@
19
22
  "/api/conversations/[id]/route": "/api/conversations/[id]",
20
23
  "/api/conversations/[id]/stop/route": "/api/conversations/[id]/stop",
21
24
  "/api/conversations/route": "/api/conversations",
25
+ "/api/exchanges/[id]/cancel/route": "/api/exchanges/[id]/cancel",
26
+ "/api/exchanges/[id]/route": "/api/exchanges/[id]",
27
+ "/api/exchanges/route": "/api/exchanges",
22
28
  "/api/files/[name]/route": "/api/files/[name]",
23
29
  "/api/groups/route": "/api/groups",
24
30
  "/api/health/route": "/api/health",
@@ -27,14 +33,34 @@
27
33
  "/api/marketplace-handoff/status/route": "/api/marketplace-handoff/status",
28
34
  "/api/mcp/route": "/api/mcp",
29
35
  "/api/messages/[id]/between/route": "/api/messages/[id]/between",
36
+ "/api/runtime-connections/route": "/api/runtime-connections",
37
+ "/api/service-grants/route": "/api/service-grants",
38
+ "/api/v0/agents/[agentId]/conversations/[conversationId]/route": "/api/v0/agents/[agentId]/conversations/[conversationId]",
39
+ "/api/v0/agents/[agentId]/conversations/route": "/api/v0/agents/[agentId]/conversations",
30
40
  "/api/v0/agents/[agentId]/messages/route": "/api/v0/agents/[agentId]/messages",
41
+ "/api/v0/agents/[agentId]/pins/route": "/api/v0/agents/[agentId]/pins",
42
+ "/api/v0/agents/[agentId]/route": "/api/v0/agents/[agentId]",
43
+ "/api/v0/agents/[agentId]/sessions/[ref]/route": "/api/v0/agents/[agentId]/sessions/[ref]",
44
+ "/api/v0/agents/[agentId]/sessions/route": "/api/v0/agents/[agentId]/sessions",
45
+ "/api/v0/agents/route": "/api/v0/agents",
46
+ "/api/v0/capabilities/route": "/api/v0/capabilities",
31
47
  "/api/v0/conversations/[id]/route": "/api/v0/conversations/[id]",
48
+ "/api/v0/exchanges/[id]/cancel/route": "/api/v0/exchanges/[id]/cancel",
49
+ "/api/v0/exchanges/[id]/route": "/api/v0/exchanges/[id]",
50
+ "/api/v0/exchanges/route": "/api/v0/exchanges",
32
51
  "/api/v0/mcp/route": "/api/v0/mcp",
52
+ "/api/v0/pins/[pinRef]/detach/route": "/api/v0/pins/[pinRef]/detach",
53
+ "/api/v0/pins/[pinRef]/messages/route": "/api/v0/pins/[pinRef]/messages",
54
+ "/api/v0/pins/[pinRef]/route": "/api/v0/pins/[pinRef]",
33
55
  "/api/v0/requests/[id]/route": "/api/v0/requests/[id]",
56
+ "/api/v0/sessions/[ref]/messages/route": "/api/v0/sessions/[ref]/messages",
57
+ "/api/v0/sessions/[ref]/pins/route": "/api/v0/sessions/[ref]/pins",
34
58
  "/api/wake-grants/[id]/revoke/route": "/api/wake-grants/[id]/revoke",
35
59
  "/api/wakes/[id]/decision/route": "/api/wakes/[id]/decision",
36
60
  "/api/wakes/[id]/retry/route": "/api/wakes/[id]/retry",
37
61
  "/bots/[id]/config/page": "/bots/[id]/config",
62
+ "/exchanges/page": "/exchanges",
38
63
  "/page": "/",
39
- "/settings/page": "/settings"
64
+ "/settings/page": "/settings",
65
+ "/threads/[id]/page": "/threads/[id]"
40
66
  }
@@ -7,9 +7,9 @@
7
7
  "static/chunks/0cz1d0mv5g_q7.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/u4r8RPgEfpxk-DGXeKV6g/_buildManifest.js",
11
- "static/u4r8RPgEfpxk-DGXeKV6g/_ssgManifest.js",
12
- "static/u4r8RPgEfpxk-DGXeKV6g/_clientMiddlewareManifest.js"
10
+ "static/gh3shm8hnVqXLr75rmvsL/_buildManifest.js",
11
+ "static/gh3shm8hnVqXLr75rmvsL/_ssgManifest.js",
12
+ "static/gh3shm8hnVqXLr75rmvsL/_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": 8434,
8
+ "htmlSize": 8785,
9
9
  "experimentalBypassFor": [
10
10
  {
11
11
  "type": "header",
@@ -86,11 +86,39 @@
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",
92
120
  "compute": "static",
93
- "htmlSize": 8802,
121
+ "htmlSize": 9038,
94
122
  "experimentalBypassFor": [
95
123
  {
96
124
  "type": "header",
@@ -118,8 +146,8 @@
118
146
  "dynamicRoutes": {},
119
147
  "notFoundRoutes": [],
120
148
  "preview": {
121
- "previewModeId": "2dafcdf4ba176137ac2fed825477055c",
122
- "previewModeSigningKey": "e7e86d5fa0a1417836f6f550b33f2c1a209a012ed7fdc48058a2739a537bb02e",
123
- "previewModeEncryptionKey": "fbc5f85fcf768d76d55e8363de7bb023ee40b8dac5219ad09afa91db80b775a5"
149
+ "previewModeId": "6c55e1ba527fcb83f7b80eee1c24bc4c",
150
+ "previewModeSigningKey": "bd7a056fdf6b23a83b52e2bf319cf8c2d1b695b40f239a5b8bf795df2d06b1b3",
151
+ "previewModeEncryptionKey": "ef09c30a78d1197e9dc468ecb1145834b8f330cdb0c6b3b1b3b71c8a13b782fe"
124
152
  }
125
153
  }
@@ -2,8 +2,8 @@
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {
5
- "BOTMANCERS_BUILD_VERSION": "0.3.0",
6
- "BOTMANCERS_BUILD_COMMIT": "a08e532e759845e03310017398ab584ebc9d5b9e"
5
+ "BOTMANCERS_BUILD_VERSION": "0.5.0",
6
+ "BOTMANCERS_BUILD_COMMIT": "47984e52c3b4b718ad944d03532e9b80efc95529"
7
7
  },
8
8
  "webpack": null,
9
9
  "typescript": {