botmancers 0.7.0 → 0.9.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 (389) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +5 -5
  3. package/app/.next/BUILD_ID +1 -1
  4. package/app/.next/app-path-routes-manifest.json +12 -1
  5. package/app/.next/build-manifest.json +3 -3
  6. package/app/.next/prerender-manifest.json +4 -4
  7. package/app/.next/required-server-files.json +2 -2
  8. package/app/.next/routes-manifest.json +90 -0
  9. package/app/.next/server/app/_global-error.html +1 -1
  10. package/app/.next/server/app/_global-error.rsc +1 -1
  11. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/_not-found.html +1 -1
  17. package/app/.next/server/app/_not-found.rsc +2 -2
  18. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  20. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/app/.next/server/app/agents/[id]/activity/page/app-paths-manifest.json +3 -0
  22. package/app/.next/server/app/agents/[id]/activity/page/next-font-manifest.json +11 -0
  23. package/app/.next/server/app/agents/[id]/activity/page.js +14 -0
  24. package/app/.next/server/app/agents/[id]/activity/page.js.nft.json +1 -0
  25. package/app/.next/server/app/agents/[id]/activity/page_client-reference-manifest.js +3 -0
  26. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page/app-paths-manifest.json +3 -0
  27. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page/build-manifest.json +20 -0
  28. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page/next-font-manifest.json +11 -0
  29. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page/react-loadable-manifest.json +1 -0
  30. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page/server-reference-manifest.json +4 -0
  31. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page.js +14 -0
  32. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page.js.nft.json +1 -0
  33. package/app/.next/server/app/agents/[id]/conversations/[conversationId]/page_client-reference-manifest.js +3 -0
  34. package/app/.next/server/app/agents/[id]/conversations/page/app-paths-manifest.json +3 -0
  35. package/app/.next/server/app/agents/[id]/conversations/page/build-manifest.json +20 -0
  36. package/app/.next/server/app/agents/[id]/conversations/page/next-font-manifest.json +11 -0
  37. package/app/.next/server/app/agents/[id]/conversations/page/react-loadable-manifest.json +1 -0
  38. package/app/.next/server/app/agents/[id]/conversations/page/server-reference-manifest.json +4 -0
  39. package/app/.next/server/app/agents/[id]/conversations/page.js +14 -0
  40. package/app/.next/server/app/agents/[id]/conversations/page.js.nft.json +1 -0
  41. package/app/.next/server/app/agents/[id]/conversations/page_client-reference-manifest.js +3 -0
  42. package/app/.next/server/app/agents/[id]/page/app-paths-manifest.json +3 -0
  43. package/app/.next/server/app/agents/[id]/page/build-manifest.json +20 -0
  44. package/app/.next/server/app/{threads → agents}/[id]/page/next-font-manifest.json +1 -1
  45. package/app/.next/server/app/agents/[id]/page/react-loadable-manifest.json +1 -0
  46. package/app/.next/server/app/agents/[id]/page/server-reference-manifest.json +4 -0
  47. package/app/.next/server/app/{threads → agents}/[id]/page.js +6 -5
  48. package/app/.next/server/app/{threads → agents}/[id]/page.js.nft.json +1 -1
  49. package/app/.next/server/app/agents/[id]/page_client-reference-manifest.js +3 -0
  50. package/app/.next/server/app/agents/[id]/sessions/page/app-paths-manifest.json +3 -0
  51. package/app/.next/server/app/agents/[id]/sessions/page/build-manifest.json +20 -0
  52. package/app/.next/server/app/agents/[id]/sessions/page/next-font-manifest.json +11 -0
  53. package/app/.next/server/app/agents/[id]/sessions/page/react-loadable-manifest.json +1 -0
  54. package/app/.next/server/app/agents/[id]/sessions/page/server-reference-manifest.json +4 -0
  55. package/app/.next/server/app/agents/[id]/sessions/page.js +14 -0
  56. package/app/.next/server/app/agents/[id]/sessions/page.js.nft.json +1 -0
  57. package/app/.next/server/app/agents/[id]/sessions/page_client-reference-manifest.js +3 -0
  58. package/app/.next/server/app/agents/[id]/slack/page/app-paths-manifest.json +3 -0
  59. package/app/.next/server/app/agents/[id]/slack/page/build-manifest.json +20 -0
  60. package/app/.next/server/app/agents/[id]/slack/page/next-font-manifest.json +11 -0
  61. package/app/.next/server/app/agents/[id]/slack/page/react-loadable-manifest.json +1 -0
  62. package/app/.next/server/app/agents/[id]/slack/page/server-reference-manifest.json +4 -0
  63. package/app/.next/server/app/agents/[id]/slack/page.js +14 -0
  64. package/app/.next/server/app/agents/[id]/slack/page.js.nft.json +1 -0
  65. package/app/.next/server/app/agents/[id]/slack/page_client-reference-manifest.js +3 -0
  66. package/app/.next/server/app/api/bots/[id]/activity/route/app-paths-manifest.json +3 -0
  67. package/app/.next/server/app/api/bots/[id]/activity/route/build-manifest.json +12 -0
  68. package/app/.next/server/app/api/bots/[id]/activity/route/server-reference-manifest.json +4 -0
  69. package/app/.next/server/app/api/bots/[id]/activity/route.js +9 -0
  70. package/app/.next/server/app/api/bots/[id]/activity/route.js.nft.json +1 -0
  71. package/app/.next/server/app/api/bots/[id]/activity/route_client-reference-manifest.js +3 -0
  72. package/app/.next/server/app/api/bots/[id]/config/route.js +1 -1
  73. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route/app-paths-manifest.json +3 -0
  75. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route/build-manifest.json +12 -0
  76. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route/server-reference-manifest.json +4 -0
  77. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route.js +12 -0
  78. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route.js.nft.json +1 -0
  79. package/app/.next/server/app/api/bots/[id]/conversations/[conversationId]/route_client-reference-manifest.js +3 -0
  80. package/app/.next/server/app/api/bots/[id]/conversations/route/app-paths-manifest.json +3 -0
  81. package/app/.next/server/app/api/bots/[id]/conversations/route/build-manifest.json +12 -0
  82. package/app/.next/server/app/api/bots/[id]/conversations/route/server-reference-manifest.json +4 -0
  83. package/app/.next/server/app/api/bots/[id]/conversations/route.js +12 -0
  84. package/app/.next/server/app/api/bots/[id]/conversations/route.js.nft.json +1 -0
  85. package/app/.next/server/app/api/bots/[id]/conversations/route_client-reference-manifest.js +3 -0
  86. package/app/.next/server/app/api/bots/[id]/overview/route/app-paths-manifest.json +3 -0
  87. package/app/.next/server/app/api/bots/[id]/overview/route/build-manifest.json +12 -0
  88. package/app/.next/server/app/api/bots/[id]/overview/route/server-reference-manifest.json +4 -0
  89. package/app/.next/server/app/api/bots/[id]/overview/route.js +12 -0
  90. package/app/.next/server/app/api/bots/[id]/overview/route.js.nft.json +1 -0
  91. package/app/.next/server/app/api/bots/[id]/overview/route_client-reference-manifest.js +3 -0
  92. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js +2 -2
  93. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/pins/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js +2 -2
  95. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js +1 -1
  97. package/app/.next/server/app/api/bots/[id]/sessions/[ref]/shares/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/bots/[id]/sessions/route.js +3 -3
  99. package/app/.next/server/app/api/bots/[id]/sessions/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/bots/[id]/sessions/sync/route/app-paths-manifest.json +3 -0
  101. package/app/.next/server/app/api/bots/[id]/sessions/sync/route/build-manifest.json +12 -0
  102. package/app/.next/server/app/api/bots/[id]/sessions/sync/route/server-reference-manifest.json +4 -0
  103. package/app/.next/server/app/api/bots/[id]/sessions/sync/route.js +11 -0
  104. package/app/.next/server/app/api/bots/[id]/sessions/sync/route.js.nft.json +1 -0
  105. package/app/.next/server/app/api/bots/[id]/sessions/sync/route_client-reference-manifest.js +3 -0
  106. package/app/.next/server/app/api/bots/[id]/share-policy/route.js +1 -1
  107. package/app/.next/server/app/api/bots/[id]/share-policy/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/bots/[id]/skill/route.js +1 -1
  109. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/bots/delete-preview/route.js +1 -1
  112. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/bots/import/route.js +1 -1
  114. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/bots/manage/route.js +1 -1
  116. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/bots/name-migrations/route.js +1 -1
  118. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/bots/route.js +5 -5
  120. package/app/.next/server/app/api/bots/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/conversations/[id]/draft/route.js +1 -1
  124. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/conversations/[id]/messages/route.js +5 -5
  127. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/conversations/[id]/route.js +1 -1
  129. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/conversations/[id]/stop/route.js +6 -6
  131. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/conversations/route.js +1 -1
  133. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js +1 -1
  135. package/app/.next/server/app/api/exchanges/[id]/cancel/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/exchanges/[id]/route.js +1 -1
  137. package/app/.next/server/app/api/exchanges/[id]/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/exchanges/route.js +2 -2
  139. package/app/.next/server/app/api/exchanges/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/files/[name]/route.js +1 -1
  141. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/groups/route.js +1 -1
  143. package/app/.next/server/app/api/groups/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/health/route.js +1 -1
  145. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/mcp/route.js +1 -1
  150. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/messages/[id]/between/route.js +1 -1
  152. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/runtime-connections/route.js +1 -1
  154. package/app/.next/server/app/api/runtime-connections/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/service-grants/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js +1 -1
  157. package/app/.next/server/app/api/shares/[shareRef]/revoke/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/shares/route.js +1 -1
  159. package/app/.next/server/app/api/shares/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js +4 -3
  161. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/[conversationId]/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js +4 -3
  163. package/app/.next/server/app/api/v0/agents/[agentId]/conversations/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +1 -1
  165. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js +4 -3
  167. package/app/.next/server/app/api/v0/agents/[agentId]/pins/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/v0/agents/[agentId]/route.js +4 -3
  169. package/app/.next/server/app/api/v0/agents/[agentId]/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js +4 -3
  171. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/[ref]/route.js.nft.json +1 -1
  172. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js +4 -3
  173. package/app/.next/server/app/api/v0/agents/[agentId]/sessions/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/v0/agents/route.js +4 -3
  175. package/app/.next/server/app/api/v0/agents/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/v0/capabilities/route.js +4 -3
  177. package/app/.next/server/app/api/v0/capabilities/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/v0/conversations/[id]/route.js +1 -1
  179. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js +4 -3
  181. package/app/.next/server/app/api/v0/exchanges/[id]/cancel/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/v0/exchanges/[id]/route.js +4 -3
  183. package/app/.next/server/app/api/v0/exchanges/[id]/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/v0/exchanges/route.js +4 -3
  185. package/app/.next/server/app/api/v0/exchanges/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/v0/mcp/route.js +6 -5
  187. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js +4 -3
  189. package/app/.next/server/app/api/v0/pins/[pinRef]/detach/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js +4 -3
  191. package/app/.next/server/app/api/v0/pins/[pinRef]/messages/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js +4 -3
  193. package/app/.next/server/app/api/v0/pins/[pinRef]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/v0/requests/[id]/route.js +1 -1
  195. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -1
  196. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js +4 -3
  197. package/app/.next/server/app/api/v0/sessions/[ref]/messages/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js +4 -3
  199. package/app/.next/server/app/api/v0/sessions/[ref]/pins/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js +4 -3
  201. package/app/.next/server/app/api/v0/sessions/[ref]/shares/route.js.nft.json +1 -1
  202. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js +4 -3
  203. package/app/.next/server/app/api/v0/shares/[shareRef]/revoke/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js +4 -3
  205. package/app/.next/server/app/api/v0/shares/[shareRef]/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/v0/shares/current/route.js +4 -3
  207. package/app/.next/server/app/api/v0/shares/current/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/v0/shares/route.js +4 -3
  209. package/app/.next/server/app/api/v0/shares/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +1 -1
  211. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/wakes/[id]/decision/route.js +1 -1
  213. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/wakes/[id]/retry/route.js +1 -1
  215. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -1
  216. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -1
  217. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/exchanges/page.js.nft.json +1 -1
  219. package/app/.next/server/app/exchanges/page_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/exchanges.html +1 -1
  221. package/app/.next/server/app/exchanges.rsc +3 -3
  222. package/app/.next/server/app/exchanges.segments/_full.segment.rsc +3 -3
  223. package/app/.next/server/app/exchanges.segments/_tree.segment.rsc +2 -2
  224. package/app/.next/server/app/exchanges.segments/exchanges/__PAGE__.segment.rsc +3 -3
  225. package/app/.next/server/app/index.html +1 -1
  226. package/app/.next/server/app/index.rsc +3 -3
  227. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  228. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  229. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  230. package/app/.next/server/app/page.js.nft.json +1 -1
  231. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/settings/page.js.nft.json +1 -1
  233. package/app/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/settings.html +1 -1
  235. package/app/.next/server/app/settings.rsc +2 -2
  236. package/app/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  237. package/app/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  238. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  239. package/app/.next/server/app/threads/[id]/route/app-paths-manifest.json +3 -0
  240. package/app/.next/server/app/threads/[id]/route/build-manifest.json +12 -0
  241. package/app/.next/server/app/threads/[id]/route/server-reference-manifest.json +4 -0
  242. package/app/.next/server/app/threads/[id]/route.js +10 -0
  243. package/app/.next/server/app/threads/[id]/route.js.nft.json +1 -0
  244. package/app/.next/server/app/threads/[id]/route_client-reference-manifest.js +3 -0
  245. package/app/.next/server/app-paths-manifest.json +12 -1
  246. package/app/.next/server/chunks/1oeh_server_app_api_bots_[id]_conversations_[conversationId]_route_actions_11cb2lr.js +3 -0
  247. package/app/.next/server/chunks/{[root-of-the-server]__17xl_55._.js → [root-of-the-server]__03pk_x_._.js} +1 -1
  248. package/app/.next/server/chunks/{[root-of-the-server]__0mp8bap._.js → [root-of-the-server]__05ds5md._.js} +1 -1
  249. package/app/.next/server/chunks/[root-of-the-server]__0anfwiu._.js +52 -0
  250. package/app/.next/server/chunks/{[root-of-the-server]__0-w_t2y._.js → [root-of-the-server]__0atpy-s._.js} +1 -1
  251. package/app/.next/server/chunks/[root-of-the-server]__0hhill-._.js +3 -0
  252. package/app/.next/server/chunks/{[root-of-the-server]__06w5xhe._.js → [root-of-the-server]__0hiikkz._.js} +1 -1
  253. package/app/.next/server/chunks/[root-of-the-server]__0k8wfe2._.js +3 -0
  254. package/app/.next/server/chunks/{[root-of-the-server]__1eps2a4._.js → [root-of-the-server]__0pp5x67._.js} +1 -1
  255. package/app/.next/server/chunks/[root-of-the-server]__0qqsovi._.js +3 -0
  256. package/app/.next/server/chunks/{[root-of-the-server]__1dxr858._.js → [root-of-the-server]__0thkp5l._.js} +1 -1
  257. package/app/.next/server/chunks/[root-of-the-server]__0xhwlr4._.js +3 -0
  258. package/app/.next/server/chunks/{[root-of-the-server]__0-vcyi-._.js → [root-of-the-server]__11yt1hv._.js} +1 -1
  259. package/app/.next/server/chunks/[root-of-the-server]__1280ke1._.js +46 -0
  260. package/app/.next/server/chunks/{[root-of-the-server]__0iqh5ta._.js → [root-of-the-server]__12wk406._.js} +1 -1
  261. package/app/.next/server/chunks/[root-of-the-server]__13wghn3._.js +46 -0
  262. package/app/.next/server/chunks/{[root-of-the-server]__0lwsto-._.js → [root-of-the-server]__14cwco7._.js} +3 -3
  263. package/app/.next/server/chunks/{[root-of-the-server]__1kczttr._.js → [root-of-the-server]__185i_bv._.js} +1 -1
  264. package/app/.next/server/chunks/[root-of-the-server]__1byhehl._.js +3 -0
  265. package/app/.next/server/chunks/{[root-of-the-server]__10b5-i-._.js → [root-of-the-server]__1ez_5xy._.js} +1 -1
  266. package/app/.next/server/chunks/[root-of-the-server]__1jxwu9_._.js +52 -0
  267. package/app/.next/server/chunks/{[root-of-the-server]__0o9ijih._.js → [root-of-the-server]__1mxp6z6._.js} +1 -1
  268. package/app/.next/server/chunks/{[root-of-the-server]__0ey3_2x._.js → [root-of-the-server]__1s2-vw3._.js} +1 -1
  269. package/app/.next/server/chunks/{[root-of-the-server]__1hwy3jx._.js → [root-of-the-server]__1xq61ti._.js} +1 -1
  270. package/app/.next/server/chunks/{[root-of-the-server]__04b3ml2._.js → [root-of-the-server]__20om7um._.js} +1 -1
  271. package/app/.next/server/chunks/_0061c2q._.js +1 -1
  272. package/app/.next/server/chunks/_0_b7py8._.js +3 -0
  273. package/app/.next/server/chunks/_0a2do3x._.js +1 -1
  274. package/app/.next/server/chunks/_1-5mthb._.js +1 -1
  275. package/app/.next/server/chunks/_12i5gam._.js +7 -0
  276. package/app/.next/server/chunks/_1a0er16._.js +18 -0
  277. package/app/.next/server/chunks/_1uxmsh3._.js +18 -0
  278. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_activity_route_actions_06oyah6.js +3 -0
  279. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_conversations_route_actions_0op0mjv.js +3 -0
  280. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_overview_route_actions_20nuetv.js +3 -0
  281. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_sessions_sync_route_actions_00y6n-f.js +3 -0
  282. package/app/.next/server/chunks/{ssr/_next-internal_server_app_threads_[id]_page_actions_1fte2n3.js → _next-internal_server_app_threads_[id]_route_actions_13zq3u6.js} +2 -2
  283. package/app/.next/server/chunks/lib_0-opbv7._.js +69 -55
  284. package/app/.next/server/chunks/lib_0aejojj._.js +69 -55
  285. package/app/.next/server/chunks/lib_0al5wbc._.js +330 -0
  286. package/app/.next/server/chunks/lib_0i8cm07._.js +3 -0
  287. package/app/.next/server/chunks/lib_0il0ml1._.js +69 -55
  288. package/app/.next/server/chunks/lib_0iujsdg._.js +69 -55
  289. package/app/.next/server/chunks/{lib_15adnlz._.js → lib_15a9ejf._.js} +53 -44
  290. package/app/.next/server/chunks/{lib_1zc7-gl._.js → lib_19pzc33._.js} +53 -44
  291. package/app/.next/server/chunks/lib_1a4ucxv._.js +330 -0
  292. package/app/.next/server/chunks/lib_1dehbst._.js +69 -55
  293. package/app/.next/server/chunks/lib_1z4vnh4._.js +69 -55
  294. package/app/.next/server/chunks/lib_1z7d95m._.js +2181 -0
  295. package/app/.next/server/chunks/lib_service-api-http_ts_0xzqhny._.js +1 -23
  296. package/app/.next/server/chunks/lib_service-api_ts_18eok4w._.js +25 -0
  297. package/app/.next/server/chunks/node_modules_next_1zc5q0a._.js +11 -11
  298. package/app/.next/server/chunks/ssr/1oeh_server_app_agents_[id]_conversations_[conversationId]_page_actions_08lev_i.js +3 -0
  299. package/app/.next/server/chunks/ssr/[root-of-the-server]__06s7ons._.js +3 -0
  300. package/app/.next/server/chunks/ssr/[root-of-the-server]__0r8nmcc._.js +3 -0
  301. package/app/.next/server/chunks/ssr/[root-of-the-server]__19qlmru._.js +3 -0
  302. package/app/.next/server/chunks/ssr/[root-of-the-server]__1dpye-p._.js +3 -0
  303. package/app/.next/server/chunks/ssr/[root-of-the-server]__1fxu3a8._.js +3 -0
  304. package/app/.next/server/chunks/ssr/[root-of-the-server]__1t9ljq3._.js +3 -0
  305. package/app/.next/server/chunks/ssr/_0_u9-u6._.js +3 -0
  306. package/app/.next/server/chunks/ssr/_0g3y1u9._.js +3 -0
  307. package/app/.next/server/chunks/ssr/{node_modules_next_0x3i8za._.js → _0gzxfz3._.js} +2 -2
  308. package/app/.next/server/chunks/ssr/_0rvu-il._.js +131 -0
  309. package/app/.next/server/chunks/ssr/_0u7urta._.js +5 -0
  310. package/app/.next/server/chunks/ssr/_17ngohj._.js +3 -0
  311. package/app/.next/server/chunks/ssr/_1iq-7cn._.js +3 -0
  312. package/app/.next/server/chunks/ssr/_next-internal_server_app_agents_[id]_activity_page_actions_1a_v567.js +3 -0
  313. package/app/.next/server/chunks/ssr/_next-internal_server_app_agents_[id]_conversations_page_actions_1dpbbj-.js +3 -0
  314. package/app/.next/server/chunks/ssr/_next-internal_server_app_agents_[id]_page_actions_0k__y7g.js +3 -0
  315. package/app/.next/server/chunks/ssr/_next-internal_server_app_agents_[id]_sessions_page_actions_1hft42g.js +3 -0
  316. package/app/.next/server/chunks/ssr/_next-internal_server_app_agents_[id]_slack_page_actions_0dmtbj_.js +3 -0
  317. package/app/.next/server/chunks/ssr/app_1-nwnha._.js +3 -0
  318. package/app/.next/server/chunks/ssr/app_agents_[id]_009y8_j._.js +3 -0
  319. package/app/.next/server/chunks/ssr/app_agents_[id]_0sr4fdg._.js +3 -0
  320. package/app/.next/server/chunks/ssr/app_agents_[id]_activity_AgentActivityPage_tsx_042-590._.js +3 -0
  321. package/app/.next/server/chunks/ssr/app_agents_[id]_conversations_page_tsx_15zl_c8._.js +3 -0
  322. package/app/.next/server/chunks/ssr/app_agents_[id]_sessions_page_tsx_0tfup-2._.js +10 -0
  323. package/app/.next/server/chunks/ssr/app_agents_[id]_slack_AgentSlackPage_tsx_20njhs1._.js +3 -0
  324. package/app/.next/server/chunks/ssr/app_bots_[id]_config_page_tsx_1e0uue9._.js +1 -1
  325. package/app/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js +3 -0
  326. package/app/.next/server/chunks/ssr/lib_0pfn9gs._.js +3 -0
  327. package/app/.next/server/chunks/ssr/lib_agent-registration-ui_ts_1z582mm._.js +3 -0
  328. package/app/.next/server/chunks/ssr/lib_exchange-view_ts_1a4q9ju._.js +3 -0
  329. package/app/.next/server/chunks/ssr/lib_share-view_ts_08psw5o._.js +3 -0
  330. package/app/.next/server/instrumentation.js +1 -1
  331. package/app/.next/server/middleware-build-manifest.js +3 -3
  332. package/app/.next/server/next-font-manifest.js +1 -1
  333. package/app/.next/server/next-font-manifest.json +24 -4
  334. package/app/.next/server/pages/404.html +1 -1
  335. package/app/.next/server/pages/500.html +1 -1
  336. package/app/.next/server/server-reference-manifest.js +1 -1
  337. package/app/.next/server/server-reference-manifest.json +1 -1
  338. package/app/.next/static/chunks/02q7gb87r2ca3.css +3 -0
  339. package/app/.next/static/chunks/06i_6p0-ipitj.js +1 -0
  340. package/app/.next/static/chunks/0cjh4u-f7mlwd.js +1 -0
  341. package/app/.next/static/chunks/1dhk3pcv7yvm6.js +1 -0
  342. package/app/.next/static/chunks/1ka9dp1l6c0ga.js +3 -0
  343. package/app/.next/static/chunks/1ttvnc6qdye8s.js +1 -0
  344. package/app/.next/static/chunks/1ypwptc0fsn4w.js +1 -0
  345. package/app/.next/static/chunks/2-fhbx41zyanc.js +1 -0
  346. package/app/.next/static/chunks/2cc4uzbhs_v23.js +1 -0
  347. package/app/.next/static/chunks/2n1u8a2efnt88.js +1 -0
  348. package/app/.next/static/chunks/34v8aumua0x5n.js +1 -0
  349. package/app/.next/static/chunks/3aasli1i-eiio.js +1 -0
  350. package/app/.next/static/chunks/3p_p4gnr0d2-x.js +1 -0
  351. package/app/.next/static/chunks/3s9t477v-z09o.js +1 -0
  352. package/app/.next/static/chunks/3y5bo6syunkzn.js +8 -0
  353. package/app/BUILD_INFO.json +2 -2
  354. package/app/package.json +1 -1
  355. package/app/server.js +1 -1
  356. package/package.json +1 -1
  357. package/app/.next/server/app/threads/[id]/page/app-paths-manifest.json +0 -3
  358. package/app/.next/server/app/threads/[id]/page_client-reference-manifest.js +0 -3
  359. package/app/.next/server/chunks/[root-of-the-server]__0792yb1._.js +0 -44
  360. package/app/.next/server/chunks/[root-of-the-server]__0d3fjix._.js +0 -3
  361. package/app/.next/server/chunks/[root-of-the-server]__0e_agq4._.js +0 -3
  362. package/app/.next/server/chunks/[root-of-the-server]__0qaiqut._.js +0 -44
  363. package/app/.next/server/chunks/[root-of-the-server]__17mum5-._.js +0 -3
  364. package/app/.next/server/chunks/[root-of-the-server]__1x8phwp._.js +0 -44
  365. package/app/.next/server/chunks/_0qv-4by._.js +0 -3
  366. package/app/.next/server/chunks/lib_0v6lblw._.js +0 -5
  367. package/app/.next/server/chunks/lib_agent-api_ts_0iv52-o._.js +0 -3
  368. package/app/.next/server/chunks/ssr/[root-of-the-server]__1t063pe._.js +0 -3
  369. package/app/.next/server/chunks/ssr/_0_fa0na._.js +0 -3
  370. package/app/.next/server/chunks/ssr/_0a6r_bx._.js +0 -3
  371. package/app/.next/server/chunks/ssr/_0epgorw._.js +0 -3
  372. package/app/.next/server/chunks/ssr/_1cvuhjt._.js +0 -3
  373. package/app/.next/server/chunks/ssr/_1is_iwu._.js +0 -3
  374. package/app/.next/server/chunks/ssr/_1n5mvo5._.js +0 -3
  375. package/app/.next/server/chunks/ssr/_1o94bnv._.js +0 -5
  376. package/app/.next/server/chunks/ssr/app_exchanges_page_tsx_0j-n2a1._.js +0 -3
  377. package/app/.next/static/chunks/1ouuczm-gmvxs.js +0 -1
  378. package/app/.next/static/chunks/1w72fds3-utrx.js +0 -1
  379. package/app/.next/static/chunks/2095-o17ji0fs.css +0 -3
  380. package/app/.next/static/chunks/2q-tgwkalrnms.js +0 -1
  381. package/app/.next/static/chunks/34bv9o9bjkwk0.js +0 -3
  382. package/app/.next/static/chunks/3rwwunh5sdjzg.js +0 -1
  383. package/app/.next/static/chunks/3z3mn526_3fwd.js +0 -1
  384. /package/app/.next/server/app/{threads/[id] → agents/[id]/activity}/page/build-manifest.json +0 -0
  385. /package/app/.next/server/app/{threads/[id] → agents/[id]/activity}/page/react-loadable-manifest.json +0 -0
  386. /package/app/.next/server/app/{threads/[id] → agents/[id]/activity}/page/server-reference-manifest.json +0 -0
  387. /package/app/.next/static/{A9sQnaf9i6YzjHNoPgRfU → nOdd5VXbf23ohQcBBjvHa}/_buildManifest.js +0 -0
  388. /package/app/.next/static/{A9sQnaf9i6YzjHNoPgRfU → nOdd5VXbf23ohQcBBjvHa}/_clientMiddlewareManifest.js +0 -0
  389. /package/app/.next/static/{A9sQnaf9i6YzjHNoPgRfU → nOdd5VXbf23ohQcBBjvHa}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[24836,(t,e,n)=>{e.exports=t.x("https",()=>require("https"))},49166,t=>{"use strict";var e=t.i(89171);let n="1.0.0";async function r(){return e.NextResponse.json({schema_version:n,supported:{identity:!0,description:!0,avatar:!0,verification:!0},unsupported:{memories:!0,skills:!0,routines:!0,integrations:!0}})}t.s(["GET",0,r,"IMPORT_SCHEMA_VERSION",0,n])},2803,77099,t=>{"use strict";var e=t.i(33405),n=t.i(14747),r=t.i(24836),s=t.i(62294);function o(t){try{let e=new URL(t);if("https:"!==e.protocol||e.username||e.password)return null;return t}catch{return null}}function i(t){let e,n=t.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!n)return null;try{e=JSON.parse(n[1])}catch{return null}if(!e||"object"!=typeof e)return null;let r=e,s="string"==typeof r.page?r.page:"string"==typeof r.html?r.html:void 0,o=void 0===s?{}:{page:s,html:s};return"running"===r.state||"stopped"===r.state?{state:r.state,...o}:"done"===r.state&&"string"==typeof r.output?{state:"done",output:r.output,...o}:null}function a(t){let e={state:t.state};"done"===t.state&&"string"==typeof t.output&&(e.output=t.output);let n="string"==typeof t.page?t.page:"string"==typeof t.html?t.html:void 0;return void 0!==n&&(e.page=n),"[run]\n"+JSON.stringify(e)}t.s(["parseCodingLimbAsk",0,function(t){let e=t.trim();return(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Ask the coding limb which file holds parsePublicPageReadAsk and reply with that path"===e)?{seconds:4}:"Ask the coding limb which file holds parsePublicPageReadAsk and reply with that path wait 20 seconds"===e?{seconds:20}:null},"parseFileReadAsk",0,function(t){let e=t.trim();return(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Read the file filemint6.txt"===e)?{seconds:4}:"Read the file filemint6.txt wait 20 seconds"===e?{seconds:20}:null},"parsePublicPageReadAsk",0,function(t){let e=t.trim();if(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Open https://example.com and reply with one word from it"===e)return{seconds:4};let n=e.match(/^Open https:\/\/example\.com and reply with one word from it wait (\d+) seconds$/);if(n&&"20"===n[1])return{seconds:20};let r=e.match(/^Open (https:\/\/[^\s]+) and reply with the page title$/);if(r){let t=o(r[1]);return t?{seconds:4,url:t}:null}let s=e.match(/^Open (https:\/\/[^\s]+) and reply with the page title wait (\d+) seconds$/);if(s&&"20"===s[2]){let t=o(s[1]);return t?{seconds:20,url:t}:null}return null},"parseRun",0,i,"serializeRun",0,a],77099);var l=t.i(52036),u=t.i(51714);let p=globalThis;p.__botmancerFileRuns||(p.__botmancerFileRuns=new Map);let d=p.__botmancerFileRuns;function c(t,e){if(e.stopped)return!1;let n=s.messages.getById(t),r=n?i(n.content):null;return r?.state==="running"}function m(t){let e=s.messages.getById(t),n=e?i(e.content):null;n&&"running"===n.state&&s.messages.replaceContent(t,a({state:"stopped"}))}function f(t,e){let n=d.get(t);n?.child===e&&d.delete(t)}function h(){let t=(0,l.filesRootPath)(),e=n.default.resolve(t,"filemint6.txt");return"filemint6.txt"===n.default.relative(t,e)&&e.startsWith(t+n.default.sep)?e:null}let g=globalThis;g.__botmancerPageRuns||(g.__botmancerPageRuns=new Map);let _=g.__botmancerPageRuns;function y(t,e){let n=_.get(t);n?.child===e&&_.delete(t)}function R(t,e){return new Promise((n,s)=>{let o=r.default.get(t,{timeout:1e4},r=>{if(301===r.statusCode||302===r.statusCode||307===r.statusCode||308===r.statusCode){let n=r.headers.location;if(n)try{if(new URL(n,t).hostname!==e)return void s(Error("Redirect to different host not allowed"))}catch{s(Error("Invalid redirect location"));return}s(Error("Redirect detected"));return}if(200!==r.statusCode)return void s(Error(`HTTP ${r.statusCode}`));let o="";r.on("data",t=>{(o+=t.toString("utf8")).length>1e5&&(r.destroy(),s(Error("Response too large")))}),r.on("end",()=>n(o))});o.on("error",s),o.on("timeout",()=>{o.destroy(),s(Error("Timeout"))})})}let w=globalThis;w.__botmancerCodingLimbRuns||(w.__botmancerCodingLimbRuns=new Map);let S=w.__botmancerCodingLimbRuns;function b(t,e){let n=S.get(t);n?.child===e&&S.delete(t)}async function v(t,e){let n=process.env.CURSOR_API_KEY;if(n)try{await fetch(`https://api.cursor.com/v1/agents/${t}/runs/${e}/cancel`,{method:"POST",headers:{Authorization:`Bearer ${n}`}})}catch{}}let C=globalThis;C.__botmancerCommandRuns||(C.__botmancerCommandRuns=new Map);let k=C.__botmancerCommandRuns;function I(t,e){let n=k.get(t);n?.child===e&&(n.timer&&clearTimeout(n.timer),k.delete(t))}function P(t){try{t.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{t.child.kill("SIGKILL")}catch{}},2e3).unref?.()}t.s(["beginCodingLimbRun",0,function(t,n){if(4!==n&&20!==n||S.has(t))return;let r=s.messages.getById(t),o=r?i(r.content):null;if(!o||"running"!==o.state)return;let l={child:void 0,stopped:!1,agentId:void 0,runId:void 0},u=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});l.child=u,S.set(t,l),u.on("error",()=>{l.stopped=!0,b(t,u),m(t)}),u.on("exit",async(e,n)=>{if(b(t,u),l.stopped||!c(t,l)||n||0!==e||l.stopped||!c(t,l)){l.stopped&&m(t);return}try{let e=process.env.CURSOR_API_KEY;if(!e){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: CURSOR_API_KEY not set"}));return}let n=await fetch("https://api.cursor.com/v1/agents",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({prompt:{text:"Which file holds parsePublicPageReadAsk in not-so-fat/botmancers? Reply with the path. Do not edit, commit, push, or open a pull request."},repos:[{url:"https://github.com/not-so-fat/botmancers",startingRef:"main"}],autoCreatePR:!1,mode:"plan"})});if(l.stopped||!c(t,l)){l.stopped&&m(t);return}if(!n.ok){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Create failed: ${n.status}`}));return}let r=await n.json(),o=r.agent?.id,i=r.run?.id;if(!o||!i){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: No agent or run ID returned"}));return}if(l.agentId=o,l.runId=i,l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}let u=0;for(;u<120;){if(await new Promise(t=>setTimeout(t,2e3)),u++,l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}let n=await fetch(`https://api.cursor.com/v1/agents/${o}/runs/${i}`,{headers:{Authorization:`Bearer ${e}`}});if(!n.ok){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Poll failed: ${n.status}`}));return}let r=await n.json();if(l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}if("FINISHED"===r.status){if("string"==typeof r.result&&c(t,l))return void s.messages.replaceContent(t,a({state:"done",output:r.result}));!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: No result in response"}));return}if("FAILED"===r.status||"CANCELLED"===r.status){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Run ${r.status.toLowerCase()}`}));return}}!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Timeout waiting for result"}))}catch(e){if(!l.stopped&&c(t,l)){let n=e instanceof Error?e.message.slice(0,40):"Unknown";s.messages.replaceContent(t,a({state:"done",output:`Network error: ${n}`}))}}})},"beginCommandRun",0,function(t,n,r={}){let o=(0,u.validateCommandRequest)({command:n.command,args:n.args,waitSeconds:n.waitSeconds}),l=(0,u.resolveCommand)({command:o.command,args:o.args});if(k.has(t))return;let p=s.messages.getById(t),d=p?i(p.content):null;if(!d||"running"!==d.state)return;let f=r.timeoutMs??(0,u.commandTimeoutMs)(o.waitSeconds),h=r.outputMaxBytes??u.COMMAND_OUTPUT_MAX_BYTES,g={child:void 0,stopped:!1},_=(0,e.spawn)("/bin/sleep",[String(o.waitSeconds)],{stdio:"ignore"});g.child=_,k.set(t,g);let y=()=>{g.stopped=!0,I(t,g.child),m(t)};g.timer=setTimeout(()=>{P(g),y()},f),g.timer.unref?.(),s.messages.replaceContent(t,a({state:"running",page:(0,u.commandRunPage)(o,null)})),_.on("error",()=>{P(g),y()}),_.on("exit",(n,r)=>{if(g.stopped||!c(t,g)||r||0!==n){g.stopped&&(I(t,_),m(t));return}let i="",p=!1,d=(0,e.spawn)(l.bin,l.argv,{stdio:["ignore","pipe","ignore"]});g.child=d,k.set(t,g),d.stdout?.on("data",t=>{!p&&(i+=t.toString("utf8"),Buffer.byteLength(i,"utf8")>h&&(p=!0,i=Buffer.from(i,"utf8").subarray(0,h).toString("utf8"),P({child:d})))}),d.on("error",()=>{P(g),y()}),d.on("close",(e,n)=>{if(I(t,d),g.stopped||!c(t,g)){g.stopped&&m(t);return}if((n||0!==e)&&!p)return void m(t);let r=(0,u.commandRunPage)(o,i);s.messages.replaceContent(t,a({state:"done",output:i,page:r}))}),(g.stopped||!c(t,g))&&P(g)})},"beginFileReadRun",0,function(t,n){if(4!==n&&20!==n||d.has(t))return;let r=s.messages.getById(t),o=r?i(r.content):null;if(!o||"running"!==o.state||!h())return;let l={child:void 0,stopped:!1},u=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});l.child=u,d.set(t,l),u.on("error",()=>{l.stopped=!0,f(t,u),m(t)}),u.on("exit",(n,r)=>{if(f(t,u),l.stopped||!c(t,l)||r||0!==n){l.stopped&&m(t);return}let o=h();if(!o||l.stopped){l.stopped&&m(t);return}let i="",p=(0,e.spawn)("/bin/cat",[o],{stdio:["ignore","pipe","ignore"]});if(l.child=p,d.set(t,l),p.stdout?.on("data",t=>{i+=t.toString("utf8")}),p.on("error",()=>{l.stopped=!0,f(t,p),m(t)}),p.on("close",(e,n)=>{if(f(t,p),!c(t,l)||n||0!==e){l.stopped&&m(t);return}let r=i.endsWith("\n")?i.slice(0,-1):"";i===r+"\n"&&"filemint6"===r&&s.messages.replaceContent(t,a({state:"done",output:r}))}),l.stopped||!c(t,l))try{p.kill("SIGTERM")}catch{}})},"beginPublicPageReadRun",0,function(t,n,r){if(4!==n&&20!==n||_.has(t))return;let o=s.messages.getById(t),l=o?i(o.content):null;if(!l||"running"!==l.state)return;let u={child:void 0,stopped:!1},p=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});u.child=p,_.set(t,u),p.on("error",()=>{u.stopped=!0,y(t,p),m(t)}),p.on("exit",async(e,n)=>{if(y(t,p),u.stopped||!c(t,u)||n||0!==e||u.stopped||!c(t,u)){u.stopped&&m(t);return}try{if(r){let e,n=new URL(r),o=await R(r,n.hostname);if(u.stopped||!c(t,u)||(s.messages.replaceContent(t,a({state:"running",page:o})),await new Promise(t=>setTimeout(t,3e3)),u.stopped||!c(t,u))){u.stopped&&m(t);return}let i=(e=o.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&e[1].replace(/<[^>]+>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&apos;/g,"'").replace(/\s+/g," ").trim()||null;i&&c(t,u)&&s.messages.replaceContent(t,a({state:"done",output:i,page:o}))}else{let e=await R("https://example.com","example.com");if(u.stopped||!c(t,u)){u.stopped&&m(t);return}let n=function(t){let e=t.match(/<title[^>]*>([^<]*)<\/title>/i);if(e&&e[1]){let t=e[1].trim().split(/\s+/)[0];if(t)return t}let n=t.match(/<h1[^>]*>([^<]*)<\/h1>/i);if(n&&n[1]){let t=n[1].trim().split(/\s+/)[0];if(t)return t}return null}(e);"Example"===n&&c(t,u)&&s.messages.replaceContent(t,a({state:"done",output:"Example"}))}}catch(t){console.error("Public page fetch failed:",t)}})},"stopCodingLimbRun",0,function(t){let e=S.get(t);if(e&&(e.stopped=!0,e.agentId&&e.runId&&v(e.agentId,e.runId).catch(()=>{})),m(t),e){try{e.child.kill("SIGTERM")}catch{}b(t,e.child)}},"stopCommandRun",0,function(t){let e=k.get(t);e&&(e.stopped=!0),m(t),e&&(P(e),I(t,e.child))},"stopFileReadRun",0,function(t){let e=d.get(t);if(e&&(e.stopped=!0),m(t),e){try{e.child.kill("SIGTERM")}catch{}f(t,e.child)}},"stopPublicPageReadRun",0,function(t){let e=_.get(t);if(e&&(e.stopped=!0),m(t),e){try{e.child.kill("SIGTERM")}catch{}y(t,e.child)}}],2803)},10860,t=>{"use strict";var e=t.i(22734),n=t.i(14747),r=t.i(52036);function s(t){if(!/^[A-Za-z0-9_-]+$/.test(t))return null;let s=(0,r.skillsRootPath)(),o=n.default.resolve(s,t,"SKILL.md");if(!o.startsWith(s+n.default.sep))return null;try{let t=e.default.readFileSync(o,"utf8");return t.trim()?t:null}catch{return null}}function o(t){return/^[A-Za-z0-9_-]+$/.test(t)}function i(t){if(!t)return null;let e=s(t);if(!e)return null;let n=e.match(/ends with the exact token\s+(\S+)/i);return n?n[1]:null}function a(t){return o(t)?`skills/${t}/SKILL.md`:null}t.s(["applySkillEndToken",0,function(t,e){let n=i(t);return n?e?e.trimEnd().endsWith(n)?e:e+"\n"+n:n:e},"isSupportedSkillName",0,o,"localSkillForBot",0,s,"readSkillState",0,function(t){let e=a(t);if(!e)return{path:null,present:!1,content:null,status:"unsupported"};let n=s(t);return null===n?{path:e,present:!1,content:null,status:"absent"}:{path:e,present:!0,content:n,status:"present"}},"skillEndToken",0,i,"writeSkillForBot",0,function(t,s){let o=a(t);if(!o)throw Error("Skill files need a bot name matching /^[A-Za-z0-9_-]+$/");let i=(0,r.skillsRootPath)(),l=n.default.resolve(i,t,"SKILL.md");if(!l.startsWith(i+n.default.sep))throw Error("Skill files need a bot name matching /^[A-Za-z0-9_-]+$/");if(!s.trim()){try{e.default.rmSync(l)}catch{}return{path:o,present:!1,content:null,status:"absent"}}return e.default.mkdirSync(n.default.dirname(l),{recursive:!0}),e.default.writeFileSync(l,s),{path:o,present:!0,content:s,status:"present"}}])},38636,(t,e,n)=>{let{createHash:r}=t.r(54799);function s(t){if(Array.isArray(t))return t.map(s);if(null!==t&&"object"==typeof t){let e={};for(let n of Object.keys(t).sort())e[n]=s(t[n]);return e}return t}function o(t){return JSON.stringify(s(t))}function i(t){return null==t?null:String(t)}function a(t){return null==t?null:String(t).trim()||null}e.exports={sortKeysDeep:s,canonicalJson:o,hashSnapshot:function(t){return r("sha256").update(o(t),"utf8").digest("hex")},buildSnapshotInput:function(t,e,n=null){return{agent:a(t.agent)||"hermes",avatar_accessory:i(t.avatar_accessory),avatar_color:i(t.avatar_color),avatar_eyes:i(t.avatar_eyes),avatar_hands:i(t.avatar_hands),default_workspace:a(t.default_workspace),description:null===t.description||void 0===t.description?"":String(t.description),import_operation_id:i(t.import_operation_id),import_schema_version:i(t.import_schema_version),memories:null==n?null:n.map(t=>String(t)),name:String(t.name),runtime_connection_id:a(t.runtime_connection_id),skill_content:i(e.content),skill_path:i(e.path),skill_present:null===e.present||void 0===e.present?null:!!e.present,source_provider:i(t.source_provider),template_id:i(t.template_id),template_url:i(t.template_url),title:null===t.title||void 0===t.title?"":String(t.title),working_directory:a(t.working_directory)}}}}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0d3fjix._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},53293,e=>{"use strict";var t=e.i(89171),r=e.i(62294),a=e.i(90027),s=e.i(674),n=e.i(16789);async function i(e,{params:o}){try{let{id:i}=await o;if(!(0,a.agentExists)(r.default,i))return t.NextResponse.json({error:"Agent not found"},{status:404});let l=new URL(e.url).searchParams.get("status")??"all";if(!(0,a.isSessionFilter)(l))return t.NextResponse.json({error:"status must be active, ended, or all"},{status:400});return await (0,n.warmAgentProvider)(r.default,i,{onlyWithSessions:!0}),t.NextResponse.json({status:l,sessions:(0,s.sessionsWithActions)(i,(0,a.listAgentSessions)(r.default,i,l))})}catch(e){return console.error("Error listing agent sessions:",e),t.NextResponse.json({error:"Failed to list sessions"},{status:500})}}e.s(["GET",0,i])},58554,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),R=e.i(26937),v=e.i(10372),g=e.i(93695),f=e.i(9580);e.i(52474);var x=e.i(220);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/bots/[id]/sessions/route",pathname:"/api/bots/[id]/sessions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bots/[id]/sessions/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(53293),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:E,serverHooks:C}=m;async function A(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/bots/[id]/sessions/route";w=w.replace(/\/index$/,"")||"/";let E=await m.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:A,params:y,nextConfig:T,parsedUrl:b,isDraftMode:S,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:q,clientReferenceManifest:H,serverActionsManifest:I}=E,M=(0,o.normalizeAppPath)(w),U=!!N.routes[q]&&(m.isDev||(0,f.isRouteCacheOwner)(q,m.cacheOwner,N.routes[q])),j=!!(N.dynamicRoutes[M]||U),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,b,!1):t.end("This page could not be found"),null);if(j&&!S){let e=N.dynamicRoutes[M];if(e&&!1===e.fallback&&!U){if(T.adapterPath)return await k();throw new g.NoFallbackError}}let D=null;!j||m.isDev||S||(D="/index"===(D=q)?"/":D);let F=!0===m.isDev||!j,K=j&&!F;I&&H&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:H,serverActionsManifest:I});let L=e.method||"GET",$=(0,n.getTracer)(),B=$.getActiveScopeSpan(),G=!!(null==P?void 0:P.isWrappedByNextServer),W=!!(0,s.getRequestMeta)(e,"minimalMode"),V=(0,s.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,T,N,W);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let X={params:y,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts,useCacheTimeout:T.experimental.useCacheTimeout},cacheComponents:!!T.cacheComponents,validationLevel:T.experimental.instantInsights.validationLevel,isDraftMode:S,supportsDynamicResponse:F,incrementalCache:V,hmrRefreshHash:(0,s.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:T.cacheLife,staticPageGenerationTimeout:T.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>m.onRequestError(e,t,a,s,P)},sharedContext:{buildId:C,deploymentId:A}},z=new l.NodeNextRequest(e),Z=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Q=async({previousCacheEntry:r})=>{try{if(!W&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await m.handle(J,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&a.waitUntil&&(a.waitUntil(n),n=void 0);let i=X.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(z,Z,s,n),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,a=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==r&&r>0?T.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:O})},!1,P),t}},Y=async(s,i)=>{try{var o,l;let s=await m.handleResponse({req:e,nextConfig:T,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:Q,waitUntil:a.waitUntil,isMinimalMode:W});if(!j)return;if((null==s||null==(o=s.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==s||null==(l=s.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",O?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let n=(0,h.fromNodeOutgoingHttpHeaders)(s.value.headers);W&&j||n.delete(v.NEXT_CACHE_TAGS_HEADER),!s.cacheControl||t.getHeader("Cache-Control")||n.get("Cache-Control")||n.set("Cache-Control",(0,R.getCacheControlHeader)(s.cacheControl)),await (0,p.sendResponse)(z,Z,new Response(s.value.body,{headers:n,status:s.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:O})},!1,P),j)throw t;await (0,p.sendResponse)(z,Z,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:n.SpanStatusCode.ERROR}),s.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||M,o=`${L} ${a}`;s.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),s.updateName(o),i&&i!==s&&(i.setAttribute("http.route",a),i.updateName(o))})()}};if(G&&B)await Y(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>Y(e,t)),void 0,!G)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:E})},"routeModule",0,m,"serverHooks",0,C,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,E])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0e_agq4._.js.map
@@ -1,44 +0,0 @@
1
- module.exports=[85148,(e,t,a)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},22734,(e,t,a)=>{t.exports=e.x("fs",()=>require("fs"))},20635,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},8637,e=>{"use strict";var t=e.i(89171),a=e.i(62294),r=e.i(90027);async function n(e,{params:s}){try{let{id:n,ref:i}=await s;if(!(0,r.agentExists)(a.default,n))return t.NextResponse.json({error:"Agent not found"},{status:404});let o=(0,r.getAgentSession)(a.default,n,i);if(!o)return t.NextResponse.json({error:"Session not found"},{status:404});if("external_session_id"===new URL(e.url).searchParams.get("debug"))return t.NextResponse.json({session:o,debug:{external_session_id:(0,r.sessionDebugExternalId)(a.default,n,i)??null}});return t.NextResponse.json({session:o})}catch(e){return console.error("Error reading agent session:",e),t.NextResponse.json({error:"Failed to read session"},{status:500})}}e.s(["GET",0,n])},84098,e=>{"use strict";var t=e.i(47909),a=e.i(74017),r=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),l=e.i(87718),u=e.i(95169),p=e.i(47587),_=e.i(66012),c=e.i(70101),g=e.i(26937),v=e.i(10372),E=e.i(93695),b=e.i(9580);e.i(52474);var m=e.i(220);let h=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/bots/[id]/sessions/[ref]/route",pathname:"/api/bots/[id]/sessions/[ref]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bots/[id]/sessions/[ref]/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(8637),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:R,serverHooks:S}=h;async function A(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),h.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/bots/[id]/sessions/[ref]/route";f=f.replace(/\/index$/,"")||"/";let R=await h.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:S,deploymentId:A,params:y,nextConfig:x,parsedUrl:N,isDraftMode:C,prerenderManifest:O,routerServerContext:w,isOnDemandRevalidate:T,revalidateOnlyGenerated:q,resolvedPathname:k,clientReferenceManifest:L,serverActionsManifest:I}=R,H=(0,o.normalizeAppPath)(f),D=!!O.routes[k]&&(h.isDev||(0,b.isRouteCacheOwner)(k,h.cacheOwner,O.routes[k])),M=!!(O.dynamicRoutes[H]||D),F=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,N,!1):t.end("This page could not be found"),null);if(M&&!C){let e=O.dynamicRoutes[H];if(e&&!1===e.fallback&&!D){if(x.adapterPath)return await F();throw new E.NoFallbackError}}let P=null;!M||h.isDev||C||(P="/index"===(P=k)?"/":P);let U=!0===h.isDev||!M,$=M&&!U;I&&L&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:L,serverActionsManifest:I});let j=e.method||"GET",W=(0,s.getTracer)(),J=W.getActiveScopeSpan(),G=!!(null==w?void 0:w.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),X=(0,n.getRequestMeta)(e,"incrementalCache")||await h.getIncrementalCache(e,x,O,K);null==X||X.resetRequestCache(),globalThis.__incrementalCache=X;let B={params:y,previewProps:O.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts,useCacheTimeout:x.experimental.useCacheTimeout},cacheComponents:!!x.cacheComponents,validationLevel:x.experimental.instantInsights.validationLevel,isDraftMode:C,supportsDynamicResponse:U,incrementalCache:X,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:x.cacheLife,staticPageGenerationTimeout:x.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>h.onRequestError(e,t,r,n,w)},sharedContext:{buildId:S,deploymentId:A}},V=new d.NodeNextRequest(e),z=new d.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!K&&T&&q&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await h.handle(Y,B);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=B.renderOpts.collectedTags;if(!M)return await (0,_.sendResponse)(V,z,n,s),null;{let e=await n.blob(),t=(0,c.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,r=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?x.expireTime:void 0:B.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await h.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:T})},!1,w),t}},Q=async(n,i)=>{try{var o,d;let n=await h.handleResponse({req:e,nextConfig:x,cacheKey:P,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:q,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:K});if(!M)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(d=n.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",T?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,c.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&M||s.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,g.getCacheControlHeader)(n.cacheControl)),await (0,_.sendResponse)(V,z,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof E.NoFallbackError||await h.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:T})},!1,w),M)throw t;await (0,_.sendResponse)(V,z,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=W.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||H,o=`${j} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if(G&&J)await Q(J,void 0);else{let t=W.getActiveScopeSpan();await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${j} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>Q(e,t)),void 0,!G)}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:R})},"routeModule",0,h,"serverHooks",0,S,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,R])},90027,e=>{"use strict";var t=e.i(62349),a=e.i(28420);let r=["active","ended","all"],n=["implementation","revision"],s=`
2
- SELECT b.*, bot.name AS agent_name, bot.agent AS agent_runtime, r.id AS origin_request_id, c.id AS origin_conversation_id,
3
- c.type AS conversation_type, c.bot_id AS conversation_bot_id, tb.name AS thread_agent_name, g.name AS group_name,
4
- r.intent AS request_intent, r.execution_kind AS request_kind, r.state AS request_state,
5
- r.source_conversation_id AS request_conversation_id, r.target_agent_id AS request_target_agent_id,
6
- sa.launch_snapshot AS source_snapshot, sa.finished_at AS source_finished_at,
7
- (SELECT MAX(COALESCE(ra.finished_at, ra.started_at)) FROM work_attempts ra WHERE ra.resumed_session_binding_id = b.id) AS resumed_last_at,
8
- EXISTS (SELECT 1 FROM work_attempts oa WHERE oa.resumed_session_binding_id = b.id AND oa.finished_at IS NULL) AS attempt_running,
9
- ps.availability AS ps_availability, ps.lifecycle AS ps_lifecycle, ps.resumable AS ps_resumable, ps.busy AS ps_busy,
10
- ps.workspace AS ps_workspace, ps.last_synced_at AS ps_synced_at,
11
- EXISTS (SELECT 1 FROM provider_session_turns pt WHERE pt.session_ref = ps.id AND pt.state = 'running') AS ps_running
12
- FROM session_bindings b
13
- JOIN bots bot ON bot.id = b.agent_id
14
- LEFT JOIN provider_sessions ps ON ps.binding_id = b.id
15
- LEFT JOIN work_attempts sa ON sa.id = b.source_attempt_id
16
- LEFT JOIN work_requests r ON r.id = COALESCE(b.request_id, sa.request_id)
17
- LEFT JOIN conversations c ON c.id = COALESCE(b.conversation_id, r.source_conversation_id)
18
- LEFT JOIN bots tb ON tb.id = c.bot_id
19
- LEFT JOIN groups g ON g.id = c.group_id
20
- `,i=`
21
- SELECT ps.id, ps.agent_id, bot.name AS agent_name, ps.provider_kind, ps.title, ps.workspace,
22
- ps.provider_created_at, ps.provider_updated_at, ps.availability, ps.lifecycle, ps.resumable, ps.busy,
23
- ps.last_synced_at, ps.created_at, ps.updated_at,
24
- (SELECT MAX(COALESCE(t.finished_at, t.created_at)) FROM provider_session_turns t WHERE t.session_ref = ps.id) AS turn_last_at,
25
- EXISTS (SELECT 1 FROM provider_session_turns t WHERE t.session_ref = ps.id AND t.state = 'running') AS running
26
- FROM provider_sessions ps
27
- JOIN bots bot ON bot.id = ps.agent_id
28
- WHERE ps.binding_id IS NULL
29
- `;function o(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}function d(e,t){let a=e?.[t];return"string"==typeof a&&a.trim().length>0?a:null}function l(e){let t=e.origin_conversation_id;return t?"group"===e.conversation_type?{id:t,kind:"group",label:e.group_name?`Group ${e.group_name}`:"Group thread",thread_agent_id:null}:"bot"===e.conversation_type&&e.conversation_bot_id?{id:t,kind:"direct",label:e.thread_agent_name?`${e.thread_agent_name} thread`:"Agent thread",thread_agent_id:e.thread_agent_name?e.conversation_bot_id:null}:{id:t,kind:"agent_api",label:"Agent API conversation",thread_agent_id:null}:null}function u(e,r=(0,a.emptyUsage)()){let s,i=null;try{i=e.source_snapshot?JSON.parse(e.source_snapshot):null}catch{}let p=l(e),_=null===e.released_at?"active":"ended",c=((s=(e.request_intent??"").split("\n").map(e=>e.trim()).find(e=>e.length>0))?s.length>80?`${s.slice(0,79).trimEnd()}…`:s:null)??(p?.kind==="group"?p.label:null)??`${e.agent_name} \xb7 ${o(e.created_at)}`;return{ref:e.id,source:"botmancers",agent:{id:e.agent_id,name:e.agent_name,adapter:e.adapter,transport:d(i,"transport")},title:c,status:_,resumable:null===e.released_at&&null!==e.request_id&&null!==e.request_kind&&n.includes(e.request_kind)&&e.request_target_agent_id===e.agent_id&&(e.conversation_id??"")===(e.request_conversation_id??"")&&e.adapter===(0,t.resolveAgent)({agent:e.agent_runtime}).agent,state:{availability:e.ps_availability??"available",lifecycle:e.ps_lifecycle??"open",resumable:null===e.ps_resumable||void 0===e.ps_resumable?null:1===e.ps_resumable,busy:1===e.ps_busy||!!e.attempt_running||!!e.ps_running,synced_at:e.ps_synced_at??null},created_at:e.created_at,ended_at:e.released_at,last_activity_at:Math.max(e.created_at,e.released_at??0,e.source_finished_at??0,e.resumed_last_at??0),origin:{conversation:p,work_request:e.origin_request_id&&e.request_kind&&e.request_state?{id:e.origin_request_id,execution_kind:e.request_kind,state:e.request_state}:null},context:{workspace:d(i,"cwd")??e.ps_workspace??null},usage:r}}function p(e,t=(0,a.emptyUsage)()){let r=e.provider_created_at??e.created_at,n=null===e.resumable?null:1===e.resumable,s="archived"===e.lifecycle?e.provider_updated_at??e.updated_at:null;return{ref:e.id,source:"native",agent:{id:e.agent_id,name:e.agent_name,adapter:e.provider_kind,transport:null},title:e.title??`${e.agent_name} \xb7 ${o(r)}`,status:"open"===e.lifecycle?"active":"ended",resumable:!1,state:{availability:e.availability,lifecycle:e.lifecycle,resumable:n,busy:1===e.busy||!!e.running,synced_at:e.last_synced_at},created_at:r,ended_at:s,last_activity_at:Math.max(r,e.provider_updated_at??0,e.turn_last_at??0),origin:{conversation:null,work_request:null},context:{workspace:e.workspace},usage:t}}function _(e,t){return t.last_activity_at-e.last_activity_at||t.created_at-e.created_at||(e.ref<t.ref?-1:+(e.ref>t.ref))}function c(e,t,a){return e.prepare(`${i} AND ps.id = ? AND ps.agent_id = ?`).get(a,t)}function g(e,t,a){return e.prepare(`${s} WHERE b.id = ? AND b.agent_id = ?`).get(a,t)}e.s(["agentExists",0,function(e,t){return!!e.prepare("SELECT 1 FROM bots WHERE id = ?").get(t)},"conversationRef",0,function(e,t){let a=e.prepare(`
30
- SELECT c.id AS origin_conversation_id, c.type AS conversation_type, c.bot_id AS conversation_bot_id,
31
- tb.name AS thread_agent_name, g.name AS group_name
32
- FROM conversations c
33
- LEFT JOIN bots tb ON tb.id = c.bot_id
34
- LEFT JOIN groups g ON g.id = c.group_id
35
- WHERE c.id = ?
36
- `).get(t);return a?l(a):null},"getAgentSession",0,function(e,t,r){let n=g(e,t,r);if(!n){let n=c(e,t,r);if(!n)return;let{usage:s,samples:i}=(0,a.sessionUsageSamples)(e,t,r);return{...p(n,s),attempts:[],usage_samples:i}}let s=e.prepare(`
37
- SELECT a.attempt_number, a.kind, a.request_id, a.outcome, a.started_at, a.finished_at,
38
- CASE WHEN a.id = ? THEN 'source' ELSE 'resume' END AS role
39
- FROM work_attempts a
40
- WHERE a.id = ? OR a.resumed_session_binding_id = ?
41
- ORDER BY a.started_at ASC, a.id ASC
42
- `).all(n.source_attempt_id,n.source_attempt_id,n.id),{usage:i,samples:o}=(0,a.sessionUsageSamples)(e,t,r);return{...u(n,i),attempts:s,usage_samples:o}},"isSessionFilter",0,function(e){return"string"==typeof e&&r.includes(e)},"listAgentSessions",0,function(e,t,r="all"){let n=e.prepare(`${s} WHERE b.agent_id = ? ${"active"===r?"AND b.released_at IS NULL":"ended"===r?"AND b.released_at IS NOT NULL":""}`).all(t),o=e.prepare(`${i} AND ps.agent_id = ? ${"active"===r?"AND ps.lifecycle = 'open'":"ended"===r?"AND ps.lifecycle = 'archived'":""}`).all(t),d=(0,a.agentSessionUsage)(e,t);return[...n.map(e=>u(e,d.get(e.id))),...o.map(e=>p(e,d.get(e.id)))].sort(_)},"sessionDebugExternalId",0,function(e,t,a){let r=g(e,t,a)?.external_session_id;if(void 0!==r)return r;if(!c(e,t,a))return;let n=e.prepare("SELECT provider_session_id FROM provider_sessions WHERE id = ? AND agent_id = ?").get(a,t);return n?.provider_session_id},"sessionTitle",0,function(e,t,a){let r=g(e,t,a);if(r)return u(r).title;let n=c(e,t,a);return n?p(n).title:null}])}];
43
-
44
- //# sourceMappingURL=%5Broot-of-the-server%5D__0qaiqut._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[24836,(t,e,n)=>{e.exports=t.x("https",()=>require("https"))},20635,(t,e,n)=>{e.exports=t.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(t,e,n)=>{e.exports=t.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},49166,t=>{"use strict";var e=t.i(89171);let n="1.0.0";async function r(){return e.NextResponse.json({schema_version:n,supported:{identity:!0,description:!0,avatar:!0,verification:!0},unsupported:{memories:!0,skills:!0,routines:!0,integrations:!0}})}t.s(["GET",0,r,"IMPORT_SCHEMA_VERSION",0,n])},2803,77099,t=>{"use strict";var e=t.i(33405),n=t.i(14747),r=t.i(24836),s=t.i(62294);function o(t){try{let e=new URL(t);if("https:"!==e.protocol||e.username||e.password)return null;return t}catch{return null}}function i(t){let e,n=t.match(/^\s*\[run\]\s*([\s\S]*)$/);if(!n)return null;try{e=JSON.parse(n[1])}catch{return null}if(!e||"object"!=typeof e)return null;let r=e,s="string"==typeof r.page?r.page:"string"==typeof r.html?r.html:void 0,o=void 0===s?{}:{page:s,html:s};return"running"===r.state||"stopped"===r.state?{state:r.state,...o}:"done"===r.state&&"string"==typeof r.output?{state:"done",output:r.output,...o}:null}function a(t){let e={state:t.state};"done"===t.state&&"string"==typeof t.output&&(e.output=t.output);let n="string"==typeof t.page?t.page:"string"==typeof t.html?t.html:void 0;return void 0!==n&&(e.page=n),"[run]\n"+JSON.stringify(e)}t.s(["parseCodingLimbAsk",0,function(t){let e=t.trim();return(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Ask the coding limb which file holds parsePublicPageReadAsk and reply with that path"===e)?{seconds:4}:"Ask the coding limb which file holds parsePublicPageReadAsk and reply with that path wait 20 seconds"===e?{seconds:20}:null},"parseFileReadAsk",0,function(t){let e=t.trim();return(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Read the file filemint6.txt"===e)?{seconds:4}:"Read the file filemint6.txt wait 20 seconds"===e?{seconds:20}:null},"parsePublicPageReadAsk",0,function(t){let e=t.trim();if(e.endsWith(".")&&(e=e.slice(0,-1).trim()),"Open https://example.com and reply with one word from it"===e)return{seconds:4};let n=e.match(/^Open https:\/\/example\.com and reply with one word from it wait (\d+) seconds$/);if(n&&"20"===n[1])return{seconds:20};let r=e.match(/^Open (https:\/\/[^\s]+) and reply with the page title$/);if(r){let t=o(r[1]);return t?{seconds:4,url:t}:null}let s=e.match(/^Open (https:\/\/[^\s]+) and reply with the page title wait (\d+) seconds$/);if(s&&"20"===s[2]){let t=o(s[1]);return t?{seconds:20,url:t}:null}return null},"parseRun",0,i,"serializeRun",0,a],77099);var l=t.i(52036),u=t.i(51714);let p=globalThis;p.__botmancerFileRuns||(p.__botmancerFileRuns=new Map);let d=p.__botmancerFileRuns;function c(t,e){if(e.stopped)return!1;let n=s.messages.getById(t),r=n?i(n.content):null;return r?.state==="running"}function m(t){let e=s.messages.getById(t),n=e?i(e.content):null;n&&"running"===n.state&&s.messages.replaceContent(t,a({state:"stopped"}))}function f(t,e){let n=d.get(t);n?.child===e&&d.delete(t)}function g(){let t=(0,l.filesRootPath)(),e=n.default.resolve(t,"filemint6.txt");return"filemint6.txt"===n.default.relative(t,e)&&e.startsWith(t+n.default.sep)?e:null}let h=globalThis;h.__botmancerPageRuns||(h.__botmancerPageRuns=new Map);let _=h.__botmancerPageRuns;function y(t,e){let n=_.get(t);n?.child===e&&_.delete(t)}function R(t,e){return new Promise((n,s)=>{let o=r.default.get(t,{timeout:1e4},r=>{if(301===r.statusCode||302===r.statusCode||307===r.statusCode||308===r.statusCode){let n=r.headers.location;if(n)try{if(new URL(n,t).hostname!==e)return void s(Error("Redirect to different host not allowed"))}catch{s(Error("Invalid redirect location"));return}s(Error("Redirect detected"));return}if(200!==r.statusCode)return void s(Error(`HTTP ${r.statusCode}`));let o="";r.on("data",t=>{(o+=t.toString("utf8")).length>1e5&&(r.destroy(),s(Error("Response too large")))}),r.on("end",()=>n(o))});o.on("error",s),o.on("timeout",()=>{o.destroy(),s(Error("Timeout"))})})}let w=globalThis;w.__botmancerCodingLimbRuns||(w.__botmancerCodingLimbRuns=new Map);let S=w.__botmancerCodingLimbRuns;function b(t,e){let n=S.get(t);n?.child===e&&S.delete(t)}async function v(t,e){let n=process.env.CURSOR_API_KEY;if(n)try{await fetch(`https://api.cursor.com/v1/agents/${t}/runs/${e}/cancel`,{method:"POST",headers:{Authorization:`Bearer ${n}`}})}catch{}}let C=globalThis;C.__botmancerCommandRuns||(C.__botmancerCommandRuns=new Map);let k=C.__botmancerCommandRuns;function x(t,e){let n=k.get(t);n?.child===e&&(n.timer&&clearTimeout(n.timer),k.delete(t))}function I(t){try{t.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{t.child.kill("SIGKILL")}catch{}},2e3).unref?.()}t.s(["beginCodingLimbRun",0,function(t,n){if(4!==n&&20!==n||S.has(t))return;let r=s.messages.getById(t),o=r?i(r.content):null;if(!o||"running"!==o.state)return;let l={child:void 0,stopped:!1,agentId:void 0,runId:void 0},u=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});l.child=u,S.set(t,l),u.on("error",()=>{l.stopped=!0,b(t,u),m(t)}),u.on("exit",async(e,n)=>{if(b(t,u),l.stopped||!c(t,l)||n||0!==e||l.stopped||!c(t,l)){l.stopped&&m(t);return}try{let e=process.env.CURSOR_API_KEY;if(!e){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: CURSOR_API_KEY not set"}));return}let n=await fetch("https://api.cursor.com/v1/agents",{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({prompt:{text:"Which file holds parsePublicPageReadAsk in not-so-fat/botmancers? Reply with the path. Do not edit, commit, push, or open a pull request."},repos:[{url:"https://github.com/not-so-fat/botmancers",startingRef:"main"}],autoCreatePR:!1,mode:"plan"})});if(l.stopped||!c(t,l)){l.stopped&&m(t);return}if(!n.ok){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Create failed: ${n.status}`}));return}let r=await n.json(),o=r.agent?.id,i=r.run?.id;if(!o||!i){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: No agent or run ID returned"}));return}if(l.agentId=o,l.runId=i,l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}let u=0;for(;u<120;){if(await new Promise(t=>setTimeout(t,2e3)),u++,l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}let n=await fetch(`https://api.cursor.com/v1/agents/${o}/runs/${i}`,{headers:{Authorization:`Bearer ${e}`}});if(!n.ok){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Poll failed: ${n.status}`}));return}let r=await n.json();if(l.stopped||!c(t,l)){await v(o,i),l.stopped&&m(t);return}if("FINISHED"===r.status){if("string"==typeof r.result&&c(t,l))return void s.messages.replaceContent(t,a({state:"done",output:r.result}));!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Error: No result in response"}));return}if("FAILED"===r.status||"CANCELLED"===r.status){!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:`Run ${r.status.toLowerCase()}`}));return}}!l.stopped&&c(t,l)&&s.messages.replaceContent(t,a({state:"done",output:"Timeout waiting for result"}))}catch(e){if(!l.stopped&&c(t,l)){let n=e instanceof Error?e.message.slice(0,40):"Unknown";s.messages.replaceContent(t,a({state:"done",output:`Network error: ${n}`}))}}})},"beginCommandRun",0,function(t,n,r={}){let o=(0,u.validateCommandRequest)({command:n.command,args:n.args,waitSeconds:n.waitSeconds}),l=(0,u.resolveCommand)({command:o.command,args:o.args});if(k.has(t))return;let p=s.messages.getById(t),d=p?i(p.content):null;if(!d||"running"!==d.state)return;let f=r.timeoutMs??(0,u.commandTimeoutMs)(o.waitSeconds),g=r.outputMaxBytes??u.COMMAND_OUTPUT_MAX_BYTES,h={child:void 0,stopped:!1},_=(0,e.spawn)("/bin/sleep",[String(o.waitSeconds)],{stdio:"ignore"});h.child=_,k.set(t,h);let y=()=>{h.stopped=!0,x(t,h.child),m(t)};h.timer=setTimeout(()=>{I(h),y()},f),h.timer.unref?.(),s.messages.replaceContent(t,a({state:"running",page:(0,u.commandRunPage)(o,null)})),_.on("error",()=>{I(h),y()}),_.on("exit",(n,r)=>{if(h.stopped||!c(t,h)||r||0!==n){h.stopped&&(x(t,_),m(t));return}let i="",p=!1,d=(0,e.spawn)(l.bin,l.argv,{stdio:["ignore","pipe","ignore"]});h.child=d,k.set(t,h),d.stdout?.on("data",t=>{!p&&(i+=t.toString("utf8"),Buffer.byteLength(i,"utf8")>g&&(p=!0,i=Buffer.from(i,"utf8").subarray(0,g).toString("utf8"),I({child:d})))}),d.on("error",()=>{I(h),y()}),d.on("close",(e,n)=>{if(x(t,d),h.stopped||!c(t,h)){h.stopped&&m(t);return}if((n||0!==e)&&!p)return void m(t);let r=(0,u.commandRunPage)(o,i);s.messages.replaceContent(t,a({state:"done",output:i,page:r}))}),(h.stopped||!c(t,h))&&I(h)})},"beginFileReadRun",0,function(t,n){if(4!==n&&20!==n||d.has(t))return;let r=s.messages.getById(t),o=r?i(r.content):null;if(!o||"running"!==o.state||!g())return;let l={child:void 0,stopped:!1},u=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});l.child=u,d.set(t,l),u.on("error",()=>{l.stopped=!0,f(t,u),m(t)}),u.on("exit",(n,r)=>{if(f(t,u),l.stopped||!c(t,l)||r||0!==n){l.stopped&&m(t);return}let o=g();if(!o||l.stopped){l.stopped&&m(t);return}let i="",p=(0,e.spawn)("/bin/cat",[o],{stdio:["ignore","pipe","ignore"]});if(l.child=p,d.set(t,l),p.stdout?.on("data",t=>{i+=t.toString("utf8")}),p.on("error",()=>{l.stopped=!0,f(t,p),m(t)}),p.on("close",(e,n)=>{if(f(t,p),!c(t,l)||n||0!==e){l.stopped&&m(t);return}let r=i.endsWith("\n")?i.slice(0,-1):"";i===r+"\n"&&"filemint6"===r&&s.messages.replaceContent(t,a({state:"done",output:r}))}),l.stopped||!c(t,l))try{p.kill("SIGTERM")}catch{}})},"beginPublicPageReadRun",0,function(t,n,r){if(4!==n&&20!==n||_.has(t))return;let o=s.messages.getById(t),l=o?i(o.content):null;if(!l||"running"!==l.state)return;let u={child:void 0,stopped:!1},p=(0,e.spawn)("/bin/sleep",[String(n)],{stdio:"ignore"});u.child=p,_.set(t,u),p.on("error",()=>{u.stopped=!0,y(t,p),m(t)}),p.on("exit",async(e,n)=>{if(y(t,p),u.stopped||!c(t,u)||n||0!==e||u.stopped||!c(t,u)){u.stopped&&m(t);return}try{if(r){let e,n=new URL(r),o=await R(r,n.hostname);if(u.stopped||!c(t,u)||(s.messages.replaceContent(t,a({state:"running",page:o})),await new Promise(t=>setTimeout(t,3e3)),u.stopped||!c(t,u))){u.stopped&&m(t);return}let i=(e=o.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&e[1].replace(/<[^>]+>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&apos;/g,"'").replace(/\s+/g," ").trim()||null;i&&c(t,u)&&s.messages.replaceContent(t,a({state:"done",output:i,page:o}))}else{let e=await R("https://example.com","example.com");if(u.stopped||!c(t,u)){u.stopped&&m(t);return}let n=function(t){let e=t.match(/<title[^>]*>([^<]*)<\/title>/i);if(e&&e[1]){let t=e[1].trim().split(/\s+/)[0];if(t)return t}let n=t.match(/<h1[^>]*>([^<]*)<\/h1>/i);if(n&&n[1]){let t=n[1].trim().split(/\s+/)[0];if(t)return t}return null}(e);"Example"===n&&c(t,u)&&s.messages.replaceContent(t,a({state:"done",output:"Example"}))}}catch(t){console.error("Public page fetch failed:",t)}})},"stopCodingLimbRun",0,function(t){let e=S.get(t);if(e&&(e.stopped=!0,e.agentId&&e.runId&&v(e.agentId,e.runId).catch(()=>{})),m(t),e){try{e.child.kill("SIGTERM")}catch{}b(t,e.child)}},"stopCommandRun",0,function(t){let e=k.get(t);e&&(e.stopped=!0),m(t),e&&(I(e),x(t,e.child))},"stopFileReadRun",0,function(t){let e=d.get(t);if(e&&(e.stopped=!0),m(t),e){try{e.child.kill("SIGTERM")}catch{}f(t,e.child)}},"stopPublicPageReadRun",0,function(t){let e=_.get(t);if(e&&(e.stopped=!0),m(t),e){try{e.child.kill("SIGTERM")}catch{}y(t,e.child)}}],2803)},10860,t=>{"use strict";var e=t.i(22734),n=t.i(14747),r=t.i(52036);function s(t){if(!/^[A-Za-z0-9_-]+$/.test(t))return null;let s=(0,r.skillsRootPath)(),o=n.default.resolve(s,t,"SKILL.md");if(!o.startsWith(s+n.default.sep))return null;try{let t=e.default.readFileSync(o,"utf8");return t.trim()?t:null}catch{return null}}function o(t){return/^[A-Za-z0-9_-]+$/.test(t)}function i(t){if(!t)return null;let e=s(t);if(!e)return null;let n=e.match(/ends with the exact token\s+(\S+)/i);return n?n[1]:null}function a(t){return o(t)?`skills/${t}/SKILL.md`:null}t.s(["applySkillEndToken",0,function(t,e){let n=i(t);return n?e?e.trimEnd().endsWith(n)?e:e+"\n"+n:n:e},"isSupportedSkillName",0,o,"localSkillForBot",0,s,"readSkillState",0,function(t){let e=a(t);if(!e)return{path:null,present:!1,content:null,status:"unsupported"};let n=s(t);return null===n?{path:e,present:!1,content:null,status:"absent"}:{path:e,present:!0,content:n,status:"present"}},"skillEndToken",0,i,"writeSkillForBot",0,function(t,s){let o=a(t);if(!o)throw Error("Skill files need a bot name matching /^[A-Za-z0-9_-]+$/");let i=(0,r.skillsRootPath)(),l=n.default.resolve(i,t,"SKILL.md");if(!l.startsWith(i+n.default.sep))throw Error("Skill files need a bot name matching /^[A-Za-z0-9_-]+$/");if(!s.trim()){try{e.default.rmSync(l)}catch{}return{path:o,present:!1,content:null,status:"absent"}}return e.default.mkdirSync(n.default.dirname(l),{recursive:!0}),e.default.writeFileSync(l,s),{path:o,present:!0,content:s,status:"present"}}])},38636,(t,e,n)=>{let{createHash:r}=t.r(54799);function s(t){if(Array.isArray(t))return t.map(s);if(null!==t&&"object"==typeof t){let e={};for(let n of Object.keys(t).sort())e[n]=s(t[n]);return e}return t}function o(t){return JSON.stringify(s(t))}function i(t){return null==t?null:String(t)}function a(t){return null==t?null:String(t).trim()||null}e.exports={sortKeysDeep:s,canonicalJson:o,hashSnapshot:function(t){return r("sha256").update(o(t),"utf8").digest("hex")},buildSnapshotInput:function(t,e,n=null){return{agent:a(t.agent)||"hermes",avatar_accessory:i(t.avatar_accessory),avatar_color:i(t.avatar_color),avatar_eyes:i(t.avatar_eyes),avatar_hands:i(t.avatar_hands),default_workspace:a(t.default_workspace),description:null===t.description||void 0===t.description?"":String(t.description),import_operation_id:i(t.import_operation_id),import_schema_version:i(t.import_schema_version),memories:null==n?null:n.map(t=>String(t)),name:String(t.name),runtime_connection_id:a(t.runtime_connection_id),skill_content:i(e.content),skill_path:i(e.path),skill_present:null===e.present||void 0===e.present?null:!!e.present,source_provider:i(t.source_provider),template_id:i(t.template_id),template_url:i(t.template_url),title:null===t.title||void 0===t.title?"":String(t.title),working_directory:a(t.working_directory)}}}}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__17mum5-._.js.map
@@ -1,44 +0,0 @@
1
- module.exports=[85148,(e,t,r)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},51749,e=>{"use strict";var t=e.i(54799),r=e.i(22734),n=e.i(14747),s=e.i(52036);let a="/v1/chat/completions";class i extends Error{code;status;constructor(e,t,r){super(t),this.name="HermesError",this.code=e,this.status=r}}function o(e,t){return`${t.sessionPrefix}${e}`}function l(e,t){return new i("aborted","Hermes request aborted")}async function d(e){var t;let r,n,{config:s,profilePath:a,sessionId:o,messages:d,signal:u}=e,c=e.fetchImpl||((e,t)=>fetch(e,t)),_=(t=s.baseUrl,r=t.replace(/\/+$/,""),n=a.startsWith("/")?a:`/${a}`,`${r}${n}`),p=new AbortController,g=!1,m=setTimeout(()=>{g=!0,p.abort()},s.timeoutMs);m.unref&&m.unref();let f=()=>p.abort();if(u){if(u.aborted)throw clearTimeout(m),l(u,s.timeoutMs);u.addEventListener("abort",f,{once:!0})}try{let e,t;try{e=await c(_,{method:"POST",headers:{Authorization:`Bearer ${s.apiKey}`,"Content-Type":"application/json","X-Hermes-Session-Id":o},body:JSON.stringify({model:s.model,stream:!1,messages:d}),signal:p.signal})}catch(e){if(g)throw new i("timeout",`Hermes request timed out after ${s.timeoutMs} ms`);if(p.signal.aborted)throw l(u??p.signal,s.timeoutMs);throw new i("network",`Hermes request failed: ${String(e)}`)}let r="";try{r=await e.text()}catch{r=""}if(!e.ok){let t=`Hermes turn failed with status ${e.status}`;try{let e=JSON.parse(r);e?.error?.message&&(t=e.error.message)}catch{let e=r.trim().slice(0,120);e&&(t=`${t}: ${e}`)}throw new i("http",t,e.status)}try{t=JSON.parse(r)}catch{throw new i("protocol","Hermes reply was not JSON",e.status)}return t.choices?.[0]?.message?.content?.trim()||"No response"}finally{clearTimeout(m),u&&u.removeEventListener("abort",f)}}e.s(["HERMES_DEFAULT_CHAT_PATH",0,a,"HermesError",0,i,"appendHermesWaitLog",0,function(e){try{let t=function(e=process.env){return(0,s.waitLogPath)(e)}();r.default.mkdirSync(n.default.dirname(t),{recursive:!0}),r.default.appendFileSync(t,JSON.stringify({at:new Date().toISOString(),...e})+"\n")}catch(e){console.error("wait log failed",e)}},"hermesChat",0,d,"hermesFreshSessionIdForBot",0,function(e,r){return`${o(e,r)}-x-${(0,t.randomUUID)()}`},"hermesProfilePathForBot",0,function(e){let t=(e.hermes_profile||"").trim();if(!t)return a;let r=t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return r?`/p/${r}${a}`:a},"hermesSessionIdForBot",0,o,"loadHermesConfig",0,function(e=process.env){var t;let r,n=(e.HERMES_API_SERVER_KEY||"").trim();if(!n)return null;let s=(e.HERMES_BASE_URL||"").trim()||"http://127.0.0.1:8642",a=(e.HERMES_SESSION_PREFIX||"").trim()||"botmancer-specialist-",i=(e.HERMES_MODEL||"").trim()||"hermes";return{baseUrl:s.replace(/\/+$/,""),apiKey:n,timeoutMs:(r=Number(t=e.HERMES_TIMEOUT_MS),void 0!==t&&""!==t&&Number.isFinite(r)&&r>0?Math.floor(r):24e4),sessionPrefix:a,model:i}}])},91253,26571,e=>{"use strict";var t=e.i(22734),r=e.i(14747),n=e.i(54799),s=e.i(62294),a=e.i(52036);let i="BOTMANCERS_SERVICE_TOKENS",o=["botmancers-exchanges","botmancers-engine","botmancers-session-share","botmancers-session-context"],l=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,d=/^sha256:([0-9a-f]{64})$/;class u extends Error{constructor(e){super(e),this.name="ServiceTokenConfigError"}}function c(e){if(!e||!e.trim())return[];let t=[],r=new Set;for(let n of e.split(/[,\s]+/).filter(Boolean)){let e=n.indexOf("="),s=e>0?n.slice(0,e):"",a=d.exec(e>0?n.slice(e+1).toLowerCase():"");if(!l.test(s)||!a)throw new u(`${i} entries must be <service-id>=sha256:<64 hex digits>.`);if(r.has(s))throw new u(`${i} lists service ${s} twice.`);if(o.includes(s))throw new u(`${i} names the reserved engine principal ${s}.`);r.add(s),t.push({serviceId:s,digest:Buffer.from(a[1],"hex")})}return t}e.s(["RESERVED_SERVICE_IDS",0,o,"SERVICE_TOKENS_ENV",0,i,"ServiceTokenConfigError",0,u,"parseServiceTokens",0,c,"serviceTokenAuthenticatorFromEnv",0,function(e=process.env){let t=c(e[i]);return t.length?e=>{let r,s,a=(s=(r=e.headers.get("authorization"))?/^Bearer[ \t]+(\S+)[ \t]*$/i.exec(r):null)?s[1]:null;if(!a||a.length>4096)return null;let i=(0,n.createHash)("sha256").update(a,"utf8").digest(),o=null;for(let e of t)(0,n.timingSafeEqual)(i,e.digest)&&null===o&&(o=e.serviceId);return o?{kind:"service",id:o}:null}:null}],26571);let _=["agents:read","sessions:read","conversations:read","sessions:message","exchanges:read","exchanges:create","sessions:start","sessions:resume","shares:create"],p=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,g=/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;class m extends Error{constructor(e){super(e),this.name="ServiceGrantsError"}}function f(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function h(e,t,r){let n=Object.keys(e).find(e=>!t.includes(e));if(void 0!==n)throw new m(`${r} has an unknown field "${n}".`)}let E=null;e.s(["EXCHANGE_KEY_PREFIX",0,"exchange:","MESSAGE_KEY_PREFIX",0,"message:","SERVICE_CAPABILITIES",0,_,"loadServiceGrants",0,function(e=process.env){let l,d=function(e=process.env){let t=(e.BOTMANCERS_SERVICE_GRANTS_PATH||"").trim();if(t)return r.default.resolve(t);let n=(0,a.botmancersHome)(e);return n?r.default.join(n,"config/service-grants.json"):null}(e);if(!d)return{state:"absent",path:null};try{l=t.default.statSync(d)}catch(e){if("ENOENT"===e.code)return{state:"absent",path:d};return{state:"invalid",path:d,reason:"The document cannot be read."}}let b=(0,n.createHash)("sha256").update(e[i]??"","utf8").digest("hex"),S=new Set(s.default.prepare("SELECT id FROM bots").all().map(e=>e.id)),v=(0,n.createHash)("sha256").update([...S].sort().join("\n"),"utf8").digest("hex"),w=[d,l.ino,l.size,l.mode,l.uid,l.mtimeMs,b,v].join(":");if(E&&E.key===w)return E.state;let A=function(e,r,n,s){let a;if(!r.isFile())return{state:"invalid",path:e,reason:"The document is not a regular file."};if("function"==typeof process.getuid&&r.uid!==process.getuid())return{state:"invalid",path:e,reason:"The document must be owned by the user running Botmancers."};if((63&r.mode)!=0)return{state:"invalid",path:e,reason:"The document must not be readable or writable by group or others (chmod 600)."};if("string"==typeof n)return{state:"invalid",path:e,reason:n};if(r.size>65536)return{state:"invalid",path:e,reason:"The document exceeds 65536 bytes."};try{a=t.default.readFileSync(e,"utf8")}catch{return{state:"invalid",path:e,reason:"The document cannot be read."}}try{return{state:"loaded",path:e,grants:function(e,t,r){let n;try{n=JSON.parse(e)}catch{throw new m("The document is not valid JSON.")}if(!f(n))throw new m("The document must be a JSON object.");if(h(n,["version","grants"],"The document"),1!==n.version)throw new m("version must be 1.");if(!Array.isArray(n.grants))throw new m("grants must be a list.");if(n.grants.length>512)throw new m("grants has more than 512 entries.");let s=new Map;return n.grants.forEach((e,n)=>{let a=`grants[${n}]`;if(!f(e))throw new m(`${a} must be an object.`);h(e,["service","agent","capabilities"],a);let{service:l,agent:d,capabilities:u}=e;if("string"!=typeof l||!p.test(l))throw new m(`${a}.service must be a configured service id (letters, digits, ".", "_", "-").`);if(o.includes(l))throw new m(`${a}.service names a reserved engine principal.`);if(t&&!t.has(l))throw new m(`${a}.service is not a configured service principal (${i}).`);if("string"!=typeof d||!g.test(d))throw new m(`${a}.agent must be one Agent id; wildcards are not allowed.`);if(r&&!r.has(d))throw new m(`${a}.agent is not a registered Agent.`);if(!Array.isArray(u)||0===u.length)throw new m(`${a}.capabilities must list at least one capability.`);let c=new Set;for(let e of u){if(!("string"==typeof e&&_.includes(e)))throw new m(`${a}.capabilities has an unknown capability.`);if(c.has(e))throw new m(`${a}.capabilities lists ${e} twice.`);c.add(e)}let E=s.get(l)??new Map;if(E.has(d))throw new m(`${a} repeats the grant of service ${l} for that Agent.`);E.set(d,c),s.set(l,E)}),s}(a,n,s)}}catch(t){if(t instanceof m)return{state:"invalid",path:e,reason:t.message};throw t}}(d,l,function(e){try{return new Set(c(e[i]).map(e=>e.serviceId))}catch(e){if(e instanceof u)return`${i} is malformed, so no grant can name a configured service.`;throw e}}(e),S);return E={key:w,state:A},A}],91253)},90027,e=>{"use strict";var t=e.i(62349),r=e.i(28420);let n=["active","ended","all"],s=["implementation","revision"],a=`
2
- SELECT b.*, bot.name AS agent_name, bot.agent AS agent_runtime, r.id AS origin_request_id, c.id AS origin_conversation_id,
3
- c.type AS conversation_type, c.bot_id AS conversation_bot_id, tb.name AS thread_agent_name, g.name AS group_name,
4
- r.intent AS request_intent, r.execution_kind AS request_kind, r.state AS request_state,
5
- r.source_conversation_id AS request_conversation_id, r.target_agent_id AS request_target_agent_id,
6
- sa.launch_snapshot AS source_snapshot, sa.finished_at AS source_finished_at,
7
- (SELECT MAX(COALESCE(ra.finished_at, ra.started_at)) FROM work_attempts ra WHERE ra.resumed_session_binding_id = b.id) AS resumed_last_at,
8
- EXISTS (SELECT 1 FROM work_attempts oa WHERE oa.resumed_session_binding_id = b.id AND oa.finished_at IS NULL) AS attempt_running,
9
- ps.availability AS ps_availability, ps.lifecycle AS ps_lifecycle, ps.resumable AS ps_resumable, ps.busy AS ps_busy,
10
- ps.workspace AS ps_workspace, ps.last_synced_at AS ps_synced_at,
11
- EXISTS (SELECT 1 FROM provider_session_turns pt WHERE pt.session_ref = ps.id AND pt.state = 'running') AS ps_running
12
- FROM session_bindings b
13
- JOIN bots bot ON bot.id = b.agent_id
14
- LEFT JOIN provider_sessions ps ON ps.binding_id = b.id
15
- LEFT JOIN work_attempts sa ON sa.id = b.source_attempt_id
16
- LEFT JOIN work_requests r ON r.id = COALESCE(b.request_id, sa.request_id)
17
- LEFT JOIN conversations c ON c.id = COALESCE(b.conversation_id, r.source_conversation_id)
18
- LEFT JOIN bots tb ON tb.id = c.bot_id
19
- LEFT JOIN groups g ON g.id = c.group_id
20
- `,i=`
21
- SELECT ps.id, ps.agent_id, bot.name AS agent_name, ps.provider_kind, ps.title, ps.workspace,
22
- ps.provider_created_at, ps.provider_updated_at, ps.availability, ps.lifecycle, ps.resumable, ps.busy,
23
- ps.last_synced_at, ps.created_at, ps.updated_at,
24
- (SELECT MAX(COALESCE(t.finished_at, t.created_at)) FROM provider_session_turns t WHERE t.session_ref = ps.id) AS turn_last_at,
25
- EXISTS (SELECT 1 FROM provider_session_turns t WHERE t.session_ref = ps.id AND t.state = 'running') AS running
26
- FROM provider_sessions ps
27
- JOIN bots bot ON bot.id = ps.agent_id
28
- WHERE ps.binding_id IS NULL
29
- `;function o(e){return`${new Date(e).toISOString().slice(0,16).replace("T"," ")} UTC`}function l(e,t){let r=e?.[t];return"string"==typeof r&&r.trim().length>0?r:null}function d(e){let t=e.origin_conversation_id;return t?"group"===e.conversation_type?{id:t,kind:"group",label:e.group_name?`Group ${e.group_name}`:"Group thread",thread_agent_id:null}:"bot"===e.conversation_type&&e.conversation_bot_id?{id:t,kind:"direct",label:e.thread_agent_name?`${e.thread_agent_name} thread`:"Agent thread",thread_agent_id:e.thread_agent_name?e.conversation_bot_id:null}:{id:t,kind:"agent_api",label:"Agent API conversation",thread_agent_id:null}:null}function u(e,n=(0,r.emptyUsage)()){let a,i=null;try{i=e.source_snapshot?JSON.parse(e.source_snapshot):null}catch{}let c=d(e),_=null===e.released_at?"active":"ended",p=((a=(e.request_intent??"").split("\n").map(e=>e.trim()).find(e=>e.length>0))?a.length>80?`${a.slice(0,79).trimEnd()}…`:a:null)??(c?.kind==="group"?c.label:null)??`${e.agent_name} \xb7 ${o(e.created_at)}`;return{ref:e.id,source:"botmancers",agent:{id:e.agent_id,name:e.agent_name,adapter:e.adapter,transport:l(i,"transport")},title:p,status:_,resumable:null===e.released_at&&null!==e.request_id&&null!==e.request_kind&&s.includes(e.request_kind)&&e.request_target_agent_id===e.agent_id&&(e.conversation_id??"")===(e.request_conversation_id??"")&&e.adapter===(0,t.resolveAgent)({agent:e.agent_runtime}).agent,state:{availability:e.ps_availability??"available",lifecycle:e.ps_lifecycle??"open",resumable:null===e.ps_resumable||void 0===e.ps_resumable?null:1===e.ps_resumable,busy:1===e.ps_busy||!!e.attempt_running||!!e.ps_running,synced_at:e.ps_synced_at??null},created_at:e.created_at,ended_at:e.released_at,last_activity_at:Math.max(e.created_at,e.released_at??0,e.source_finished_at??0,e.resumed_last_at??0),origin:{conversation:c,work_request:e.origin_request_id&&e.request_kind&&e.request_state?{id:e.origin_request_id,execution_kind:e.request_kind,state:e.request_state}:null},context:{workspace:l(i,"cwd")??e.ps_workspace??null},usage:n}}function c(e,t=(0,r.emptyUsage)()){let n=e.provider_created_at??e.created_at,s=null===e.resumable?null:1===e.resumable,a="archived"===e.lifecycle?e.provider_updated_at??e.updated_at:null;return{ref:e.id,source:"native",agent:{id:e.agent_id,name:e.agent_name,adapter:e.provider_kind,transport:null},title:e.title??`${e.agent_name} \xb7 ${o(n)}`,status:"open"===e.lifecycle?"active":"ended",resumable:!1,state:{availability:e.availability,lifecycle:e.lifecycle,resumable:s,busy:1===e.busy||!!e.running,synced_at:e.last_synced_at},created_at:n,ended_at:a,last_activity_at:Math.max(n,e.provider_updated_at??0,e.turn_last_at??0),origin:{conversation:null,work_request:null},context:{workspace:e.workspace},usage:t}}function _(e,t){return t.last_activity_at-e.last_activity_at||t.created_at-e.created_at||(e.ref<t.ref?-1:+(e.ref>t.ref))}function p(e,t,r){return e.prepare(`${i} AND ps.id = ? AND ps.agent_id = ?`).get(r,t)}function g(e,t,r){return e.prepare(`${a} WHERE b.id = ? AND b.agent_id = ?`).get(r,t)}e.s(["agentExists",0,function(e,t){return!!e.prepare("SELECT 1 FROM bots WHERE id = ?").get(t)},"conversationRef",0,function(e,t){let r=e.prepare(`
30
- SELECT c.id AS origin_conversation_id, c.type AS conversation_type, c.bot_id AS conversation_bot_id,
31
- tb.name AS thread_agent_name, g.name AS group_name
32
- FROM conversations c
33
- LEFT JOIN bots tb ON tb.id = c.bot_id
34
- LEFT JOIN groups g ON g.id = c.group_id
35
- WHERE c.id = ?
36
- `).get(t);return r?d(r):null},"getAgentSession",0,function(e,t,n){let s=g(e,t,n);if(!s){let s=p(e,t,n);if(!s)return;let{usage:a,samples:i}=(0,r.sessionUsageSamples)(e,t,n);return{...c(s,a),attempts:[],usage_samples:i}}let a=e.prepare(`
37
- SELECT a.attempt_number, a.kind, a.request_id, a.outcome, a.started_at, a.finished_at,
38
- CASE WHEN a.id = ? THEN 'source' ELSE 'resume' END AS role
39
- FROM work_attempts a
40
- WHERE a.id = ? OR a.resumed_session_binding_id = ?
41
- ORDER BY a.started_at ASC, a.id ASC
42
- `).all(s.source_attempt_id,s.source_attempt_id,s.id),{usage:i,samples:o}=(0,r.sessionUsageSamples)(e,t,n);return{...u(s,i),attempts:a,usage_samples:o}},"isSessionFilter",0,function(e){return"string"==typeof e&&n.includes(e)},"listAgentSessions",0,function(e,t,n="all"){let s=e.prepare(`${a} WHERE b.agent_id = ? ${"active"===n?"AND b.released_at IS NULL":"ended"===n?"AND b.released_at IS NOT NULL":""}`).all(t),o=e.prepare(`${i} AND ps.agent_id = ? ${"active"===n?"AND ps.lifecycle = 'open'":"ended"===n?"AND ps.lifecycle = 'archived'":""}`).all(t),l=(0,r.agentSessionUsage)(e,t);return[...s.map(e=>u(e,l.get(e.id))),...o.map(e=>c(e,l.get(e.id)))].sort(_)},"sessionDebugExternalId",0,function(e,t,r){let n=g(e,t,r)?.external_session_id;if(void 0!==n)return n;if(!p(e,t,r))return;let s=e.prepare("SELECT provider_session_id FROM provider_sessions WHERE id = ? AND agent_id = ?").get(r,t);return s?.provider_session_id},"sessionTitle",0,function(e,t,r){let n=g(e,t,r);if(n)return u(n).title;let s=p(e,t,r);return s?c(s).title:null}])}];
43
-
44
- //# sourceMappingURL=%5Broot-of-the-server%5D__1x8phwp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[69449,e=>{"use strict";async function s(){let{runSlackInServer:s}=await e.A(61891);s();let{runShareSweeperInServer:r}=await e.A(99787);r()}e.s(["register",0,s])},99787,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]__0888o0_._.js","server/chunks/lib_1zc7-gl._.js"].map(s=>e.l(s))).then(()=>s(97350)))},61891,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__17bolvp._.js","server/chunks/lib_15adnlz._.js","server/chunks/lib_slack-runtime_ts_0fgsejy._.js"].map(s=>e.l(s))).then(()=>s(15050)))}];
2
-
3
- //# sourceMappingURL=_0qv-4by._.js.map
@@ -1,5 +0,0 @@
1
- module.exports=[64909,e=>{"use strict";var t=e.i(54799),n=e.i(33405),r=e.i(22734),i=e.i(14747),a=e.i(62294),s=e.i(25211),l=e.i(51714),o=e.i(10860),u=e.i(85072);let c=["read_file","run_command","send_draft","write_file"];function d(e){return"string"==typeof e&&c.includes(e)}let f=/^[A-Za-z0-9][A-Za-z0-9_-]*$/;class p extends Error{}function m(e){throw new p(e)}function y(e){let t=e?.name;"string"==typeof t&&t||m("read_file needs a file name"),(0,s.isSafeFileName)(t)||m(`refused: unsafe file name ${JSON.stringify(t)}`);let n=(0,u.filesRoot)();return i.default.resolve(n,t).startsWith(n+i.default.sep)||m(`refused: path traversal in ${JSON.stringify(t)}`),t}function g(e){try{return(0,l.resolveCommand)({command:e?.command??"printf",format:e?.format,word:e?.word}).argv[1]}catch(e){m(e instanceof Error?e.message:"refused: command not allowlisted")}}function h(e){let t=e?.recipient,n=e?.body;return"string"==typeof t&&t.trim()||m("send_draft needs a recipient"),"string"==typeof n&&n.trim()||m("send_draft needs a body"),e?.channel!==void 0&&"email"!==e.channel&&"slack"!==e.channel&&m("send_draft channel must be email or slack"),{recipient:t.trim(),body:n.trim()}}function w(e){let t=e?.name;"string"==typeof t&&t||m("write_file needs a file name"),(0,s.isSafeFileName)(t)||m(`refused: unsafe file name ${JSON.stringify(t)}`);let n=(0,u.filesRoot)();i.default.resolve(n,t).startsWith(n+i.default.sep)||m(`refused: path traversal in ${JSON.stringify(t)}`);let r=e?.content;return"string"==typeof r&&r||m("write_file needs content"),Buffer.byteLength(r,"utf8")>u.ARTIFACT_MAX_BYTES&&m(`refused: file content exceeds ${u.ARTIFACT_MAX_BYTES} bytes`),{name:t,content:r}}let b={read_file:{validate:e=>{y(e)},run:e=>{let t=y(e),n=i.default.join((0,u.filesRoot)(),t),a=r.default.readFileSync(n,"utf8");return{ok:!0,lines:[`[tool call] readFile ${JSON.stringify([t])}`,`[tool result] ${a}`],result:a}}},run_command:{validate:e=>{g(e)},run:e=>{let t=g(e),r=(0,n.execFileSync)("printf",["%s",t],{encoding:"utf8"});return{ok:!0,lines:[`[tool call] printf ${JSON.stringify(["%s",t])}`,`[tool result] ${r}`],result:r}}},send_draft:{validate:e=>{h(e)},run:e=>{let{recipient:t,body:n}=h(e),r=`[Sent to ${t}] ${n}`;return{ok:!0,lines:[r],result:r}}},write_file:{validate:e=>{w(e)},run:e=>{let{name:t,content:n}=w(e),a=(0,u.filesRoot)();r.default.mkdirSync(a,{recursive:!0});let s=i.default.resolve(a,t);if(!s.startsWith(a+i.default.sep))throw new p(`refused: path traversal in ${JSON.stringify(t)}`);return r.default.writeFileSync(s,n,"utf8"),{ok:!0,lines:[`[file] ${t}`],result:t}}}};function _(e,t){let n=a.default.prepare("SELECT * FROM approval_requests WHERE conversation_id = ? AND code = ?").get(e,t);return n?function(e){let t=null;if("string"==typeof e.action_args&&e.action_args)try{let n=JSON.parse(e.action_args);n&&"object"==typeof n&&!Array.isArray(n)&&(t=n)}catch{t=null}return{id:String(e.id),conversation_id:String(e.conversation_id),bot_id:e.bot_id??null,code:String(e.code),action_type:e.action_type??null,action_args:t,message_id:e.message_id??null,status:e.status,result:e.result??null,created_at:Number(e.created_at),resolved_at:e.resolved_at??null}}(n):void 0}function v(e){let n=(e.code||"").trim();if(!f.test(n))throw Error("approval code is required");let r=e.actionType??null,i=e.actionArgs??null;if(null!==r){if(!d(r))throw new p(`refused: unknown action type ${JSON.stringify(r)}`);b[r].validate(i)}let s=Date.now();a.default.prepare(`INSERT OR IGNORE INTO approval_requests
2
- (id, conversation_id, bot_id, code, action_type, action_args, message_id, status, created_at)
3
- VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?)`).run((0,t.randomUUID)(),e.conversationId,e.botId??null,n,r,i?JSON.stringify(i):null,e.messageId??null,s);let l=_(e.conversationId,n);if(!l)throw Error("failed to store approval request");return l}function A(e,t,n){a.default.prepare("UPDATE approval_requests SET message_id = ? WHERE conversation_id = ? AND code = ?").run(n,e,t)}function $(e){let n=e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,16)||"gate";return`${n}-${(0,t.randomBytes)(2).toString("hex")}`}function S(e){return e?a.bots.getById(e)?.name??null:null}function E(e,t){a.messages.create(e.conversation_id,"bot",t,e.bot_id??void 0)}function N(e){return`Approve using the code ${e}`}function T(e,t){for(let n=0;n<8;n++){let n=$(t);if(!_(e,n))return n}return $(`${t}-${Date.now().toString(36)}`)}e.s(["ApprovalActionRefused",0,p,"approvalCardText",0,N,"createApprovalRequest",0,v,"decideApproval",0,function(e,t,n){let r,i=_(e,t);if(!i)throw Error("Approval request not found");if("pending"!==i.status)return{status:i.status,code:t,ran:!1,already:!0};if("deny"===n){if(1!==Number(a.default.prepare("UPDATE approval_requests SET status = 'denied', resolved_at = ? WHERE conversation_id = ? AND code = ? AND status = 'pending'").run(Date.now(),e,t).changes)){let n=_(e,t);return{status:n?.status??"denied",code:t,ran:!1,already:!0}}return E(i,(0,o.applySkillEndToken)(S(i.bot_id),`Denied ${t}`)),{status:"denied",code:t,ran:!1,already:!1}}if(null!==i.action_type&&!d(i.action_type))return{status:"pending",code:t,ran:!1,already:!1,refused:`refused: unknown action type ${JSON.stringify(i.action_type)}`};if(null!==i.action_type)try{b[i.action_type].validate(i.action_args)}catch(e){return{status:"pending",code:t,ran:!1,already:!1,refused:e instanceof Error?e.message:String(e)}}if(1!==Number(a.default.prepare("UPDATE approval_requests SET status = 'approved', resolved_at = ? WHERE conversation_id = ? AND code = ? AND status = 'pending'").run(Date.now(),e,t).changes)){let n=_(e,t);return{status:n?.status??"approved",code:t,ran:!1,already:!0}}if(null===i.action_type)return E(i,(0,o.applySkillEndToken)(S(i.bot_id),t)),{status:"approved",code:t,ran:!1,already:!1};try{r=b[i.action_type].run(i.action_args,{conversationId:e,botId:i.bot_id})}catch(t){let e=t instanceof Error?t.message:String(t);r={ok:!1,lines:[`[tool result] Error: ${e}`],result:`Error: ${e}`}}for(let e of r.lines)E(i,e);let s=function(e){if(!e)return null;let t=a.bots.getById(e);return(0,o.skillEndToken)(t?.name)}(i.bot_id);return s&&E(i,s),a.default.prepare("UPDATE approval_requests SET status = ?, result = ? WHERE conversation_id = ? AND code = ?").run("executed",r.result,e,t),{status:"executed",code:t,ran:r.ok,already:!1}},"getApprovalByCode",0,_,"mintApprovalCode",0,$,"raiseApprovalFromUserInstruction",0,function(e){let t,n,r,{conversationId:i,botId:l,botName:u,userMessage:c,thread:d}=e,m=function(e){let t=(e||"").trim();if(!t)return null;let n=t.match(/^(?:please\s+|could you\s+)?(read|open|cat|display|show)\s+(?:me\s+)?(?:the\s+)?(?:file\s+|contents\s+of\s+(?:the\s+)?(?:file\s+)?)(\S+?)\s*(?:for me\s*)?[.?!]?\s*$/i);if(!n)return null;let r=n[2].replace(/^[`"'"]+|[`"'"]+$/g,"").replace(/[.?!]+$/,"");return r?{name:r}:null}(c.content),y=m?null:function(e){let t=(e||"").trim();if(!t)return null;let n=t.match(/^(?:please\s+)?(run|execute)\s+(?:a\s+)?command\s+(?:that\s+prints|to\s+print|printing)\s+(?:the\s+)?word\s+([A-Za-z0-9_-]+)\s*[.?!]?\s*$/i);return n?{word:n[2]}:null}(c.content),g=m||y?null:function(e){let t,n=(e||"").trim();if(!n||!/\bask\b/i.test(n)||!/\bapprov(?:e|al)\b/i.test(n)||!/\bcode\b/i.test(n)||!/\bwait\b/i.test(n))return null;let r=n.match(/code\s*:?\s*[`"'"]?([A-Za-z0-9][A-Za-z0-9_.-]*)[`"'"]?/i);return r?(t=r[1].replace(/^[`"'"]+|[`"'"]+$/g,"").replace(/[^A-Za-z0-9_-]+$/,""),f.test(t)?t:null):null}(c.content);if(!m&&!y&&!g)return!1;if(d.some(e=>{let t;return"bot"===e.sender_type&&e.sender_id===l&&e.created_at>c.created_at&&!!(t=(0,s.parseApprovalCode)(e.content))&&!!_(i,t)}))return!0;m?(t=T(i,`read-${m.name}`),n="read_file",r={name:m.name}):y?(t=T(i,`run-${y.word}`),n="run_command",r={command:"printf",format:"%s",word:y.word}):(t=g,n=null,r=null);try{v({conversationId:i,botId:l,code:t,actionType:n,actionArgs:r})}catch(e){if(e instanceof p)return!0;throw e}let h=(0,o.applySkillEndToken)(u,N(t)),w=a.messages.create(i,"bot",h,l);return A(i,t,w.id),!0},"recordModelApproval",0,function(e,t){let n=function(e){let t,n=(0,s.parseApprovalCode)(e||"");if(!n||!f.test(n))return null;let r=(e||"").match(/\[approval-action\]\s*(\{[\s\S]*?\})\s*(?:\r?\n|$)/i);if(!r)return{code:n,actionType:null,actionArgs:null};try{t=JSON.parse(r[1])}catch{return{code:n,actionType:null,actionArgs:null}}if(!t||"object"!=typeof t||Array.isArray(t))return{code:n,actionType:null,actionArgs:null};let i=t;if(!d(i.type))return{code:n,actionType:null,actionArgs:null};let a={};for(let[e,t]of Object.entries(i))"type"!==e&&(a[e]=t);try{b[i.type].validate(a)}catch{return{code:n,actionType:null,actionArgs:null}}return{code:n,actionType:i.type,actionArgs:a}}(t.content);if(!n)return null;let r=v({conversationId:e,botId:t.sender_id??null,code:n.code,actionType:n.actionType,actionArgs:n.actionArgs,messageId:t.id});return r.message_id||A(e,n.code,t.id),r},"setApprovalMessage",0,A])},85072,3620,e=>{"use strict";var t=e.i(22734),n=e.i(14747),r=e.i(25211);class i extends Error{}function a(e,t){return RegExp("\\b"+t+"\\b","i").test(e)}function s(e){return e.trim().replace(/^[@"'`]+|["'`]+$/g,"").replace(/[.?!;,:'"`]+$/g,"").trim()}function l(e){if(!e||"object"!=typeof e||Array.isArray(e))throw new i("draft needs {channel, recipient, body}");if("email"!==e.channel&&"slack"!==e.channel)throw new i("draft channel must be email or slack");if("string"!=typeof e.recipient)throw new i("draft needs a recipient string");if("string"!=typeof e.body)throw new i("draft needs a body string");let t=e.recipient.trim(),n=e.body.trim();if(t.length>256)throw new i("draft recipient is too long");if(!n)throw new i("draft needs a body");if(Buffer.byteLength(n,"utf8")>32768)throw new i("draft body is too large");return{channel:e.channel,recipient:t,body:n}}e.s(["createDraft",0,function(e){let t=l(e);return{channel:t.channel,recipient:t.recipient,body:t.body,state:"open"}},"parseDraftRequest",0,function(e){let t=(e||"").trim();if(!t||/^\s*(create a specialist|duplicate)\b/i.test(t))return null;let n=null;if(a(t,"email")?n="email":a(t,"slack")&&(n="slack"),!n)return null;let r=/\b(draft|write|compose|create|prepare|send)\b/i.test(t),i=/\bplease\b/i.test(t),o=/\b(can|could|would)\s+you\b/i.test(t),u=/^\s*(please\s+)?(email|slack)\b/i.test(t);if(!r&&!i&&!o&&!u)return null;let c=function(e){if(e.toLowerCase().includes("one-line note"))return"One-line note.";let t=e.toLowerCase(),n=-1,r="";for(let e of["that says","saying","note:"]){let i=t.indexOf(e);i>=0&&(n<0||i<n)&&(n=i,r=e)}return n<0?null:e.slice(n+r.length).trim()||null}(t);if(c){let e=function(e){let t=e.toLowerCase(),n=-1;for(let e of["that says","saying","note:"]){let r=t.indexOf(e);r>=0&&(n<0||r<n)&&(n=r)}return n<0?e:e.slice(0,n)}(t),r="",i=e.match(/\bto\s+@?([A-Za-z0-9_.-]+(?:@[A-Za-z0-9_.-]+\.[A-Za-z]+)?)/i);if(i)r=s(i[1]||"");else{let t=e.match(/\b(email|slack)\b\s+@?([A-Za-z0-9_.-]+)/i);if(t){let e=s(t[2]||"");e&&!["to","a","an","the","that","saying","note"].includes(e.toLowerCase())&&(r=e)}}try{return l({channel:n,recipient:r,body:c})}catch{return null}}if(!u)return null;let d=t.match(/^\s*(?:please\s+)?(?:email|slack)\s+@?([A-Za-z0-9_.-]+)\s+(.+?)\s*[.?!]?\s*$/i);if(!d)return null;let f=s(d[1]||""),p=(d[2]||"").trim();if(!f||["to","a","an","the","that","saying","note"].includes(f.toLowerCase())||!p||p.length<2)return null;try{return l({channel:n,recipient:f,body:p})}catch{return null}},"validateDraftRequest",0,l],3620);var o=e.i(52036);class u extends Error{}function c(){return(0,o.filesRootPath)()}function d(e){let t=f(e),r=c(),i=n.default.resolve(r,t);if(i!==r&&!i.startsWith(r+n.default.sep))throw new u(`refused: path traversal in ${JSON.stringify(e)}`);return i}function f(e){if("string"!=typeof e||!e)throw new u("file needs a name");if(e.length>128)throw new u(`refused: file name too long ${JSON.stringify(e)}`);if(!(0,r.isSafeFileName)(e))throw new u(`refused: unsafe file name ${JSON.stringify(e)}`);return e}function p(e){if(!e||"object"!=typeof e||Array.isArray(e))throw new u("file needs {name, content}");return{name:f(e.name),content:function(e){if("string"!=typeof e)throw new u("file needs string content");let t=Buffer.byteLength(e,"utf8");if(0===t)throw new u("file needs content");if(t>65536)throw new u("refused: file content exceeds 65536 bytes");return e}(e.content)}}e.s(["ARTIFACT_MAX_BYTES",0,65536,"artifactCardText",0,function(e){return`[file] ${e}`},"filesRoot",0,c,"parseFileWriteRequest",0,function(e){let t,n=(e||"").trim();if(!n||!/\b(write|create|make)\b/i.test(n)||!/\bfile\b/i.test(n)||!/\bfile\b\s+(named|called)\b/i.test(n))return null;let r=n.match(/\bfile\b\s+(?:named|called)\s+([`"'\u201c\u201d]?\S+?[`"'\u201c\u201d]?)(?:\s+|$)/i);if(!r)return null;let i=(t=(r[1]||"").trim().replace(/^["'`\u201c\u201d]+|["'`\u201c\u201d]+$/g,"").replace(/[?!;,:'"`]+$/,"").trim(),/^\.+$/.test(t)?t:t.replace(/[.]+$/,""));if(!i)return null;let a=n.match(/(?:whose\s+contents?\s+are\s+the\s+word|containing\s+the\s+word|with\s+the\s+word)\s+[`"'\u201c\u201d]?([A-Za-z0-9_-]+)[`"'\u201c\u201d]?/i);if(a)return{name:i,content:a[1]};let s=n.match(/(?:containing|with\s+contents?)\s+["\u201c](.+?)["\u201d]/i);if(s&&s[1].trim())return{name:i,content:s[1]};let l=n.match(/(?:containing|with\s+contents?)\s*:\s*(.+?)\s*$/i);if(l&&l[1].trim()){let e=l[1].trim().replace(/^["'`\u201c\u201d]+|["'`\u201c\u201d]+$/g,"").trim();if(e)return{name:i,content:e}}let o=n.match(/(?:containing|with\s+contents?)\s+(?!the\s+word\b)(.+?)\s*$/i);if(o&&o[1].trim()){let e=o[1].trim().replace(/^["'`\u201c\u201d]+|["'`\u201c\u201d]+$/g,"").trim();if(e=e.replace(/[.?!]+$/,"").trim())return{name:i,content:e}}return null},"parseTypedResult",0,function(e){for(let t of function(e){let t=[];for(let n of(e||"").split(/\r?\n/)){let e=n.match(/^\s*\[produce\]\s*(\{.*\})\s*$/i);if(e)try{t.push(JSON.parse(e[1]))}catch{}}return t}(e))if(!(!t||"object"!=typeof t||Array.isArray(t))){if("draft"===t.type)try{let e=l({channel:t.channel,recipient:t.recipient??"",body:t.body});return{kind:"draft",draft:e}}catch{break}if("file"===t.type)try{let e=p({name:t.name,content:t.content});return{kind:"file",file:e}}catch{}break}return null},"resolveArtifactPath",0,d,"validateArtifact",0,p,"writeArtifactFile",0,function(e,n,r){let i=p({name:e,content:n}),a=c();t.default.mkdirSync(a,{recursive:!0});let s=d(i.name);if(t.default.existsSync(s)){let e;try{e=t.default.statSync(s)}catch{throw new u(`refused: cannot stat ${JSON.stringify(i.name)}`)}if(!e.isFile())throw new u(`refused: not a file ${JSON.stringify(i.name)}`);if(!r?.allowOverwrite)throw new u(`refused: ${JSON.stringify(i.name)} already exists`)}return t.default.writeFileSync(s,i.content,"utf8"),s}],85072)},51714,e=>{"use strict";let t=/^[A-Za-z0-9_-]+$/;function n(e){return"printf"===e}class r extends Error{}function i(e){throw new r(e)}function a(e){return"string"==typeof e&&t.test(e)||i("refused: command not allowlisted"),e.length>64&&i("refused: command not allowlisted"),e}let s=/^(?:please\s+)?(?:print|output|display|show|echo)\s+(?:the\s+)?word\s+([A-Za-z0-9_-]+)\s*(.*?)\s*[.?!]?\s*$/i,l=[/^$/,/^wait\s+(\d+)\s*seconds?$/,/^and\s+wait\s+(\d+)\s*seconds?$/,/^wait\s+for\s+(\d+)\s*seconds?$/,/^and\s+wait\s+for\s+(\d+)\s*seconds?$/,/^then\s+wait\s+(\d+)\s*seconds?$/];function o(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}e.s(["COMMAND_OUTPUT_MAX_BYTES",0,4096,"commandRunPage",0,function(e,t){let n=`printf %s ${e.args.word}`;return'<!doctype html><html><body style="margin:0;background:#0d1117;color:#c9d1d9;font:13px/1.5 ui-monospace,monospace;padding:12px">'+(null===t?`<div class="cmd">$ ${o(n)}</div><div class="dim">waiting ${e.waitSeconds}s…</div>`:`<div class="cmd">$ ${o(n)}</div><div class="out">${o(t)}</div>`)+"</body></html>"},"commandTimeoutMs",0,function(e){return 1e3*e+1e4},"parseCommandAsk",0,function(e){let n=(e||"").trim();if(!n||/^(?:please\s+)?(run|execute)\s+(?:a\s+)?command\b/i.test(n))return null;let r=n.match(s);if(!r)return null;let i=r[1];if(!t.test(i)||i.length>64)return null;let a=(r[2]||"").trim().replace(/^[,\s]+/,"").trim();for(let e of(a=a.replace(/\s+/g," "),l)){let t=a.match(e);if(!t)continue;if(!t[1])return{command:"printf",args:{word:i},waitSeconds:4};let n=Number(t[1]);if(!Number.isInteger(n)||n<1||n>30)break;return{command:"printf",args:{word:i},waitSeconds:n}}return null},"resolveCommand",0,function(e){n(e.command)||i("refused: command not allowlisted");let t=e.args??null,r=t?.format??e.format;void 0!==r&&"%s"!==r&&i("refused: command not allowlisted");let s=a(t?.word??e.word);return{bin:"/usr/bin/printf",argv:["%s",s],display:`printf %s ${s}`}},"validateCommandRequest",0,function(e){var t;n(e.command)||i("refused: command not allowlisted");let r=e.args,s=a(r?.word);return{command:e.command,args:{word:s},waitSeconds:(("number"!=typeof(t=e.waitSeconds)||!Number.isInteger(t)||t<1||t>30)&&i("refused: wait must be 1 to 30 seconds"),t)}}])},25211,e=>{"use strict";let t=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;e.s(["isSafeFileName",0,function(e){return t.test(e)},"parseApprovalCode",0,function(e){let t=e.match(/approve using the code ([A-Za-z0-9][A-Za-z0-9_-]*)/i);return t?t[1]:null},"parseDraft",0,function(e){let t,n=e.match(/^\s*\[draft\]\s*([\s\S]*)$/);if(!n)return null;try{t=JSON.parse(n[1])}catch{return null}if(!t||"object"!=typeof t)return null;let r=t;return"email"!==r.channel&&"slack"!==r.channel||"open"!==r.state&&"sent"!==r.state&&"discarded"!==r.state||"string"!=typeof r.recipient||"string"!=typeof r.body?null:{channel:r.channel,recipient:r.recipient,body:r.body,state:r.state}},"parseFileNames",0,function(e){let t=[];for(let n of e.split("\n")){let e=n.match(/^\s*\[file\]\s*(\S+)\s*$/i);e&&!t.includes(e[1])&&t.push(e[1])}return t},"serializeDraft",0,function(e){return"[draft]\n"+JSON.stringify({channel:e.channel,recipient:e.recipient,body:e.body,state:e.state})}])}];
4
-
5
- //# sourceMappingURL=lib_0v6lblw._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[43345,e=>{"use strict";var t=e.i(62294),n=e.i(26571),r=e.i(45383);let i=["authentication_unavailable","unauthenticated","principal_mismatch","agent_not_found","conversation_not_found","request_not_found"];async function a(e,n){let a,o=null,s=!1,c=null;try{a=await e(e=>{o=e},()=>{let e=o;n&&e&&"service"===e.kind&&t.serviceAudit.append({principal:e,operation:n.operation,capability:"participant",targetKind:n.targetKind,targetRef:n.targetRef,outcome:"allowed",code:null}),s=!0})}catch(e){if(e instanceof r.AgentApiError)c=e.code,a=Response.json({error:{code:e.code,message:e.message}},{status:e.status});else console.error("Agent conversation API error:",e),c="internal_error",a=Response.json({error:{code:"internal_error",message:"The request could not be processed."}},{status:500})}let d=o;if(s&&null===c)return a;if(n&&d&&"service"===d.kind)try{t.serviceAudit.append({principal:d,operation:n.operation,capability:"participant",targetKind:n.targetKind,targetRef:n.targetRef,outcome:null===c?"allowed":"internal_error"===c?"error":i.includes(c)?"denied":"rejected",code:c})}catch(e){return console.error("Service audit append failed:",e instanceof Error?e.message:"unknown error"),Response.json({error:{code:"internal_error",message:"The request could not be processed."}},{status:500})}return a}async function o(e){let t,i=function(){try{return(0,n.serviceTokenAuthenticatorFromEnv)()}catch(e){if(e instanceof n.ServiceTokenConfigError)return console.error(`Agent API authentication disabled: ${e.message}`),null;throw e}}();if(!i)throw new r.AgentApiError("authentication_unavailable","No authenticator is configured for the agent conversation API.");try{t=await i(e)}catch{t=null}if(!t||!(0,r.isPrincipalKind)(t.kind)||"string"!=typeof t.id||!t.id.trim())throw new r.AgentApiError("unauthenticated","Authentication failed.");return{kind:t.kind,id:t.id}}async function s(e,t){return a(async(n,i)=>{var a;let s,c=await o(e);n(c);try{let t=await e.json();if(!t||"object"!=typeof t||Array.isArray(t))throw Error("not an object");s=t}catch{throw new r.AgentApiError("invalid_request","The request body must be a JSON object.")}let d=null==(a=s.principal)?null:{kind:a.kind,id:String(a.id??"")};if(d&&!(0,r.samePrincipal)(d,c))throw new r.AgentApiError("principal_mismatch","The declared principal does not match the authenticated principal.");let l=e.headers.get("idempotency-key"),u="string"==typeof s.idempotencyKey?s.idempotencyKey:null;if(l&&u&&l!==u)throw new r.AgentApiError("invalid_request","Idempotency-Key header and body idempotencyKey differ.");let p=l??u??"";if(p.toLowerCase().startsWith(r.MCP_IDEMPOTENCY_PREFIX))throw new r.AgentApiError("invalid_request",`Idempotency keys starting with "${r.MCP_IDEMPOTENCY_PREFIX}" are reserved for the MCP bridge.`);let{accepted:g,dispatched:f}=(0,r.acceptAgentMessage)(c,{agentId:t,content:"string"==typeof s.content?s.content:"",idempotencyKey:p,conversationId:"string"==typeof s.conversationId?s.conversationId:null==s.conversationId?null:""},i);return!0===s.wait?(await f,Response.json({...(0,r.getAgentRequest)(c,g.requestId),replayed:g.replayed})):Response.json(g,{status:g.replayed?200:202})},{operation:"agents.message",targetKind:"agent",targetRef:t})}async function c(e,t){return a(async n=>{let i=await o(e);return n(i),Response.json((0,r.getConversation)(i,t))},{operation:"conversations.read",targetKind:"conversation",targetRef:t})}async function d(e,t){return a(async n=>{let i=await o(e);return n(i),Response.json((0,r.getAgentRequest)(i,t))},{operation:"requests.read",targetKind:"request",targetRef:t})}e.s(["authenticate",0,o,"handleGetAgentRequest",0,d,"handleGetConversation",0,c,"handleSendAgentMessage",0,s])}];
2
-
3
- //# sourceMappingURL=lib_agent-api_ts_0iv52-o._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},76684,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/threads/[id]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/threads/[id]/page.tsx","default")},2102,a=>{"use strict";var b=a.i(76684);a.n(b)},34611,function(a){a.n(a.i(2102))},95091,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(43619)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=["",{children:["threads",{children:["[id]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(34611)),"[project]/app/threads/[id]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],"not-found":[f,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],k=a.r.bind(a),l=a.l.bind(a),m=(0,c.createAppPageEntrypoint)({tree:j,page:"/threads/[id]/page",pathname:"/threads/[id]",require:k,loadChunk:l,interopDefault:d.interopDefault}),n=m.__next_app__,o=m.routeModule,p=m.handler;a.s(["__next_app__",0,n,"handler",0,p,"routeModule",0,o],99638),a.i(99638);var q=a.i(22922);a.s(["ClientPageRoot",()=>q.ClientPageRoot,"ClientSegmentRoot",()=>q.ClientSegmentRoot,"Fragment",()=>q.Fragment,"HTTPAccessFallbackBoundary",()=>q.HTTPAccessFallbackBoundary,"InstantValidation",()=>q.InstantValidation,"LayoutRouter",()=>q.LayoutRouter,"LoadingBoundaryProvider",()=>q.LoadingBoundaryProvider,"Postpone",()=>q.Postpone,"RenderFromTemplateContext",()=>q.RenderFromTemplateContext,"RootLayoutBoundary",()=>q.RootLayoutBoundary,"SegmentViewNode",()=>q.SegmentViewNode,"SegmentViewStateNode",()=>q.SegmentViewStateNode,"__next_app__",0,n,"captureOwnerStack",()=>q.captureOwnerStack,"collectPrefetchHints",()=>q.collectPrefetchHints,"collectSegmentData",()=>q.collectSegmentData,"createElement",()=>q.createElement,"createMetadataComponents",()=>q.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>q.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>q.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>q.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>q.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>q.createTemporaryReferenceSet,"decodeAction",()=>q.decodeAction,"decodeFormState",()=>q.decodeFormState,"decodeReply",()=>q.decodeReply,"handler",0,p,"isEmptyHTMLPrelude",()=>q.isEmptyHTMLPrelude,"patchFetch",()=>q.patchFetch,"preconnect",()=>q.preconnect,"preloadFont",()=>q.preloadFont,"preloadStyle",()=>q.preloadStyle,"prerender",()=>q.prerender,"prerenderToNodeStream",()=>q.prerenderToNodeStream,"renderToPipeableStream",()=>q.renderToPipeableStream,"renderToReadableStream",()=>q.renderToReadableStream,"routeModule",0,o,"serverHooks",()=>q.serverHooks,"taintObjectReference",()=>q.taintObjectReference],95091)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__1t063pe._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[27828,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(35099);a.s(["default",0,function({summary:a,onChanged:f}){let[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(""),k=(0,e.stateTone)(a.state),l=(0,e.outcomeLine)(a),m=(0,e.failureAdvice)(a),n=`exchange-${a.id}-title`,o=async()=>{if(!g){h(!0),j("");try{let b=await fetch(`/api/exchanges/${encodeURIComponent(a.id)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!b.ok){let a=await b.json().catch(()=>null);j("string"==typeof a?.error?.message?a.error.message:"Could not cancel. Try again.")}}catch{j("Could not cancel. Try again.")}finally{h(!1),f?.()}}};return(0,b.jsxs)("article",{id:`exchange-${a.id}`,className:`exchange-card is-${k} is-${a.state}`,"data-exchange-id":a.id,"data-exchange-state":a.state,"aria-labelledby":n,tabIndex:-1,children:[(0,b.jsxs)("p",{className:"exchange-card-line",children:[(0,b.jsx)("span",{className:"exchange-card-mode",children:(0,e.modeLabel)(a.mode)}),(0,b.jsx)("span",{id:n,className:"exchange-card-title",children:(0,e.participantsLabel)(a)}),(0,b.jsx)("span",{className:"exchange-card-state",role:"status",children:(0,e.liveStateLabel)(a)})]}),(0,b.jsx)("p",{className:"exchange-card-session",children:(0,e.sessionLabel)(a)}),(0,b.jsxs)("p",{className:"exchange-card-instruction",children:[(0,b.jsx)("span",{className:"exchange-card-key",children:(0,e.instructionHeading)(a.mode)})," ",(0,e.excerpt)(a.instruction,220)]}),l?(0,b.jsx)("p",{className:"failed"===a.state?"exchange-card-outcome is-failure":"exchange-card-outcome",children:l}):null,m?(0,b.jsx)("p",{className:"exchange-card-advice",children:m}):null,i?(0,b.jsx)("p",{className:"exchange-card-error",role:"alert",children:i}):null,(0,b.jsxs)("p",{className:"exchange-card-foot",children:[(0,b.jsxs)("span",{className:"exchange-card-time",children:["Updated ",(0,e.formatExchangeTime)(a.updated_at)]}),(0,b.jsx)(d.default,{className:"exchange-card-link",href:(0,e.detailsHref)(a.id),"aria-label":`Details: ${(0,e.modeLabel)(a.mode)} ${(0,e.participantsLabel)(a)}`,children:"Details"}),a.can_cancel?(0,b.jsx)("button",{type:"button",className:"exchange-card-cancel",disabled:g,onClick:()=>{o()},children:g?"Cancelling…":"Cancel"}):null]})]})}])},35099,65221,a=>{"use strict";function b(a){return`${new Date(a).toISOString().slice(0,16).replace("T"," ")} UTC`}let c="Not reported";function d(a){return a.toFixed(1).replace(/\.0$/,"")}function e(a){return a.toLocaleString("en-US")}function f(a){return 0===a?"$0.00":a>=.01?`$${a.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:a<1e-4?"<$0.0001":`$${a.toFixed(4)}`}let g={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function h(a,b,c){return"cost_usd"===a?f(b):c?e(b):b<1e3?String(b):b<999950?`${d(b/1e3)}k`:b<99995e4?`${d(b/1e6)}M`:`${d(b/1e9)}B`}function i(a){return`${a} ${1===a?"run":"runs"}`}function j(a,b,d=!1){let e=g[a];if(!b||"unavailable"===b.quality||null===b.sum)return{name:e,text:c,quality:"unavailable",coverage:b&&b.total>0?`0 of ${i(b.total)} reported`:"No runs recorded",label:`${e}: not reported`};let f=h(a,b.sum,d),k=h(a,b.sum,!0);return"partial"===b.quality?{name:e,text:f,quality:"partial",coverage:`Partial: ${b.known} of ${i(b.total)} reported`,label:`${e}: at least ${k}, partial, reported by ${b.known} of ${i(b.total)}`}:{name:e,text:f,quality:"complete",coverage:`All ${i(b.total)} reported`,label:`${e}: ${k}, reported by all ${i(b.total)}`}}a.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(a){let b="source"===a.role?"Started the session":"Resumed the session";return`${b} \xb7 ${a.outcome??"running"}`},"emptySessionsCopy",0,function(a,b){return"active"===a?`${b} has no active sessions.`:"ended"===a?`${b} has no ended sessions.`:`${b} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,b,"runtimeLabel",0,function(a){return a.agent.transport?`${a.agent.adapter} \xb7 ${a.agent.transport}`:a.agent.adapter},"sessionStateTags",0,function(a){let b=[];return(a.home&&b.push("Home"),a.state?.availability==="missing")?[...b,"Missing"]:(a.state?.lifecycle==="archived"&&b.push("Archived"),a.state?.busy&&b.push("Busy"),(a.resumable||a.state?.resumable===!0)&&b.push("Resumable"),b)},"sessionUsageLine",0,function(a){let b=j("input_tokens",a?.input_tokens),d=j("output_tokens",a?.output_tokens),e=j("cost_usd",a?.cost_usd),f=[b,d,e];if(f.every(a=>"unavailable"===a.quality))return{text:c,label:"Usage: not reported",quality:"unavailable",partial:!1};let g=["unavailable"===b.quality?"input not reported":`${b.text} in`,"unavailable"===d.quality?"output not reported":`${d.text} out`,"unavailable"===e.quality?"cost not reported":e.text].join(" · "),h=f.some(a=>"partial"===a.quality),i=h||f.some(a=>"unavailable"===a.quality)?"partial":"complete";return{text:g,label:`Reported usage: ${f.map(a=>a.label).join("; ")}`,quality:i,partial:h}},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"usageMetricView",0,j,"usageSampleLabel",0,function(a,b){let c="turn"===a.kind?"start"===a.turn_kind?"provider turn, started":"provider turn":"resume"===a.turn_kind?"resumed":"started";return`Run ${b+1} \xb7 ${c}`},"usageSampleValues",0,function(a){return{input:null===a.input_tokens?c:e(a.input_tokens),output:null===a.output_tokens?c:e(a.output_tokens),cost:null===a.cost_usd?c:f(a.cost_usd)}},"workRequestLabel",0,function(a){var b;let c=a.origin.work_request;return c?`${(b=c.execution_kind)?b[0].toUpperCase()+b.slice(1):b} \xb7 ${c.state}`:null}],65221);let k={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},l=["queued","extracting","delivering","completed","failed","cancelled"],m=["completed","failed","cancelled"];function n(a,b){switch(b){case"queued":return"Queued";case"extracting":return"ask"===a?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===a?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function o(a,b=140){let c=String(a??"").split("\n").map(a=>a.trim()).filter(a=>a.length>0).join(" ");return c.length>b?`${c.slice(0,b-1).trimEnd()}…`:c}function p(a,b){return b.updated_at-a.updated_at||b.created_at-a.created_at||(a.id<b.id?-1:+(a.id>b.id))}a.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,function(a){return`/exchanges?id=${encodeURIComponent(a)}`},"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",f="string"==typeof c.hop?c.hop:null;switch(a.type){case"created":return"ask"===b.mode?`You asked ${d}'s session a question`:`You handed ${d}'s session to ${e}`;case"hop_queued":if("deliver"===f)return`Handoff queued for ${e}'s new session`;return"extract"===f?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===f)return`${e} started a new session`;return"extract"===f?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&l.includes(c.to)?c.to:null;return a?`Now ${n(b.mode,a).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${b.origin?.label??"the origin thread"}${c.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof c.reason?`: ${c.reason}`:""}`;case"destination_replied":return`${e} replied in ${b.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${e}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return a.type.replace(/_/g," ")}},"excerpt",0,o,"exchangeRequestBody",0,function(a,b,c){let d={mode:a.mode,idempotency_key:c,origin_conversation_id:a.originConversationId,source:{agent_id:b.agentId,session_ref:b.sessionRef},instruction:a.instruction.trim()};return"continue"===a.mode&&(d.destination={agent_id:a.destinationAgentId}),d},"failureAdvice",0,function(a){if("failed"!==a.state)return null;switch(a.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}},"formatExchangeTime",0,function(a){return b(a)},"instructionHeading",0,function(a){return"ask"===a?"Question":"Objective"},"ledgerAgents",0,function(a){let b=new Map;for(let c of a)b.set(c.source.agent_id,c.source.agent_name),c.destination&&b.set(c.destination.agent_id,c.destination.agent_name);return[...b.entries()].map(([a,b])=>({id:a,name:b})).sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id))},"ledgerRows",0,function(a,b){return a.filter(a=>("all"===b.mode||a.mode===b.mode)&&("active"!==b.state||!a.terminal)&&("all"===b.state||"active"===b.state||a.state===b.state)&&(!b.agentId||a.source.agent_id===b.agentId||a.destination?.agent_id===b.agentId)).sort(p)},"ledgerView",0,function(a,b,c){return null===a?b?"error":"loading":0===a.length?"empty":0===c.length?"filtered-out":"rows"},"linkRoleLabel",0,function(a){let b={origin:"Started here",source:"Source session",destination:"Destination"};return a.map(a=>b[a]).join(" · ")},"liveStateLabel",0,function(a){var b;return a.cancel_requested&&(b=a.state,!m.includes(b))?"Cancelling…":n(a.mode,a.state)},"modeLabel",0,function(a){return"ask"===a?"Ask":"Continue"},"outcomeLine",0,function(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${o(a.outcome.answer,200)}`:`Answered in ${b}.`}let b=a.destination?.agent_name??"The destination Agent";return a.outcome.reply?`${b} picked it up in a new session: ${o(a.outcome.reply,200)}`:`${b} picked it up in a new session.`}return"failed"===a.state?a.failure?.message||"The exchange failed.":"cancelled"===a.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(a,b,c,d,e){return{action:a,content:b.trim(),conversation_id:c,idempotency_key:e,..."resume"===a?{approve_write:d}:{}}},"sessionDialogMode",0,function(a){return"handoff"===a?"continue":a},"sessionDialogTitle",0,function(a){return k["continue"===a?"handoff":a]},"sessionDialogUsesPin",0,function(a,b){return"resume"===a||"ask"===a&&"provider"===b},"sessionLabel",0,function(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`},"sessionRowActions",0,function(a){let b;if(a.actions)b=a.actions;else{let c="ended"===a.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`},d=c.available?{available:!0}:{available:!1,code:"ended"===a.status?"session_ended":"session_not_resumable",reason:c.reason,recovery:"choose_session"};b={ask:d,resume:{available:!1,code:"action_unavailable",reason:`${k.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:d}}return["ask","resume","handoff"].map(a=>({action:a,label:k[a],availability:b[a]}))},"stateTone",0,function(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"},"submitErrorMessage",0,function(a,b){switch(a){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return b||"That Agent can’t launch yet. Choose its runtime connection and session scope in Config.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return b||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return b||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return b||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(a,b){let c=new URLSearchParams;if(a.thread_agent_id)return c.set("agent",a.thread_agent_id),b&&c.set("exchange",b),`/?${c.toString()}`;if("group"!==a.kind)return null;b&&c.set("exchange",b);let d=c.toString();return`/threads/${encodeURIComponent(a.id)}${d?`?${d}`:""}`},"validateDraft",0,function(a){let b={},c=a.instruction.trim(),d="ask"===a.mode?"a question":"an objective";return c?a.instruction.length>4e3&&(b.instruction="Keep it under 4000 characters."):b.instruction=`Enter ${d}.`,a.originConversationId||(b.origin="Choose the thread that follows this exchange."),"continue"!==a.mode||a.destinationAgentId||(b.destination="Choose the Agent who continues the work."),b},"validateResumeDraft",0,function(a,b){let c={};return a.trim()?a.length>4e3&&(c.instruction="Keep it under 4000 characters."):c.instruction="Enter what to work on.",b||(c.approval="Approve edits in this session to resume work here."),c}],35099)}];
2
-
3
- //# sourceMappingURL=_0_fa0na._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[20851,22151,a=>{"use strict";let b=["hermes","cursor","claude","codex","muse"],c={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},d="hermes";function e(a){return b.includes(String(a))?c[a]:String(a??"")}b.join("|"),a.s(["AGENTS",0,b,"AGENT_LABELS",0,c,"DEFAULT_AGENT",0,d,"agentLabel",0,e],22151);let f=b.map(a=>({value:a,label:c[a]}));function g(a){return e((a.agent??"").trim()||d)}function h(a){let b=a.runtime_connection;return b&&b.label.trim()?b.label.trim():(a.runtime_connection_id??"").trim()?(a.runtime_connection_id??"").trim():null}function i(a){return`~/.botmancers/${a}`}let j="~/.botmancers/{agentID}",k=`Default: ${j} — {agentID} is this agent's ID, assigned at creation.`;function l(a){return String(a).padStart(2,"0")}let m=[{prefix:"[Agent failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck handoff]",kind:"handoff",label:"Agent launch"},{prefix:"[Deck run]",kind:"run",label:"Agent run"},{prefix:"[Deck review]",kind:"review",label:"Agent review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent resume"},{prefix:"[Deck result]",kind:"result",label:"Agent result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent needs setup"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent needs setup"}];a.s(["AGENT_OPTIONS",0,f,"NEW_AGENT_WORKSPACE_HINT",0,k,"WORKSPACE_TEMPLATE",0,j,"agentEventDisplay",0,function(a){let b=String(a??"").trimStart(),c=m.find(a=>b.startsWith(a.prefix));return c?{label:c.label,detail:b.slice(c.prefix.length).trim()}:null},"botAgentLabel",0,g,"botConnectionLabel",0,h,"configWorkspaceHint",0,function(a){return`Default: ${i(a)} — leave blank to use it.`},"defaultWorkdirFor",0,i,"formatClock",0,function(a){let b=new Date(a);return`${l(b.getHours())}:${l(b.getMinutes())}:${l(b.getSeconds())}`},"rosterRuntimeLine",0,function(a){let b=`Agent: ${g(a)} \xb7 `+(h(a)??"No connection");return!1===a.launchable?b+" — see Config":b}],20851)},35099,65221,a=>{"use strict";function b(a){return`${new Date(a).toISOString().slice(0,16).replace("T"," ")} UTC`}let c="Not reported";function d(a){return a.toFixed(1).replace(/\.0$/,"")}function e(a){return a.toLocaleString("en-US")}function f(a){return 0===a?"$0.00":a>=.01?`$${a.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`:a<1e-4?"<$0.0001":`$${a.toFixed(4)}`}let g={input_tokens:"Input tokens",output_tokens:"Output tokens",cost_usd:"Cost"};function h(a,b,c){return"cost_usd"===a?f(b):c?e(b):b<1e3?String(b):b<999950?`${d(b/1e3)}k`:b<99995e4?`${d(b/1e6)}M`:`${d(b/1e9)}B`}function i(a){return`${a} ${1===a?"run":"runs"}`}function j(a,b,d=!1){let e=g[a];if(!b||"unavailable"===b.quality||null===b.sum)return{name:e,text:c,quality:"unavailable",coverage:b&&b.total>0?`0 of ${i(b.total)} reported`:"No runs recorded",label:`${e}: not reported`};let f=h(a,b.sum,d),k=h(a,b.sum,!0);return"partial"===b.quality?{name:e,text:f,quality:"partial",coverage:`Partial: ${b.known} of ${i(b.total)} reported`,label:`${e}: at least ${k}, partial, reported by ${b.known} of ${i(b.total)}`}:{name:e,text:f,quality:"complete",coverage:`All ${i(b.total)} reported`,label:`${e}: ${k}, reported by all ${i(b.total)}`}}a.s(["SESSION_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"ended",label:"Ended"}],"attemptLabel",0,function(a){let b="source"===a.role?"Started the session":"Resumed the session";return`${b} \xb7 ${a.outcome??"running"}`},"emptySessionsCopy",0,function(a,b){return"active"===a?`${b} has no active sessions.`:"ended"===a?`${b} has no ended sessions.`:`${b} has no sessions yet. One appears after a coding run keeps its runtime context.`},"formatSessionDate",0,b,"runtimeLabel",0,function(a){return a.agent.transport?`${a.agent.adapter} \xb7 ${a.agent.transport}`:a.agent.adapter},"sessionStateTags",0,function(a){let b=[];return(a.home&&b.push("Home"),a.state?.availability==="missing")?[...b,"Missing"]:(a.state?.lifecycle==="archived"&&b.push("Archived"),a.state?.busy&&b.push("Busy"),(a.resumable||a.state?.resumable===!0)&&b.push("Resumable"),b)},"sessionUsageLine",0,function(a){let b=j("input_tokens",a?.input_tokens),d=j("output_tokens",a?.output_tokens),e=j("cost_usd",a?.cost_usd),f=[b,d,e];if(f.every(a=>"unavailable"===a.quality))return{text:c,label:"Usage: not reported",quality:"unavailable",partial:!1};let g=["unavailable"===b.quality?"input not reported":`${b.text} in`,"unavailable"===d.quality?"output not reported":`${d.text} out`,"unavailable"===e.quality?"cost not reported":e.text].join(" · "),h=f.some(a=>"partial"===a.quality),i=h||f.some(a=>"unavailable"===a.quality)?"partial":"complete";return{text:g,label:`Reported usage: ${f.map(a=>a.label).join("; ")}`,quality:i,partial:h}},"statusLabel",0,function(a){return"active"===a.status?"Active":"Ended"},"usageMetricView",0,j,"usageSampleLabel",0,function(a,b){let c="turn"===a.kind?"start"===a.turn_kind?"provider turn, started":"provider turn":"resume"===a.turn_kind?"resumed":"started";return`Run ${b+1} \xb7 ${c}`},"usageSampleValues",0,function(a){return{input:null===a.input_tokens?c:e(a.input_tokens),output:null===a.output_tokens?c:e(a.output_tokens),cost:null===a.cost_usd?c:f(a.cost_usd)}},"workRequestLabel",0,function(a){var b;let c=a.origin.work_request;return c?`${(b=c.execution_kind)?b[0].toUpperCase()+b.slice(1):b} \xb7 ${c.state}`:null}],65221);let k={ask:"Ask from this context",resume:"Resume work here",handoff:"Hand off to…"},l=["queued","extracting","delivering","completed","failed","cancelled"],m=["completed","failed","cancelled"];function n(a,b){switch(b){case"queued":return"Queued";case"extracting":return"ask"===a?"Asking the session":"Extracting handoff";case"delivering":return"Delivering handoff";case"completed":return"ask"===a?"Answered":"Handed off";case"failed":return"Failed";case"cancelled":return"Cancelled"}}function o(a,b=140){let c=String(a??"").split("\n").map(a=>a.trim()).filter(a=>a.length>0).join(" ");return c.length>b?`${c.slice(0,b-1).trimEnd()}…`:c}function p(a,b){return b.updated_at-a.updated_at||b.created_at-a.created_at||(a.id<b.id?-1:+(a.id>b.id))}a.s(["DEFAULT_LEDGER_FILTER",0,{mode:"all",state:"all",agentId:""},"INSTRUCTION_LIMIT",0,4e3,"MODE_FILTER_OPTIONS",0,[{value:"all",label:"All"},{value:"ask",label:"Ask"},{value:"continue",label:"Continue"}],"STATE_FILTER_OPTIONS",0,[{value:"all",label:"Any status"},{value:"active",label:"In progress"},{value:"queued",label:"Queued"},{value:"extracting",label:"Asking / extracting"},{value:"delivering",label:"Delivering"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"},{value:"cancelled",label:"Cancelled"}],"detailsHref",0,function(a){return`/exchanges?id=${encodeURIComponent(a)}`},"eventLabel",0,function(a,b){let c=a.data??{},d=b.source.agent_name,e=b.destination?.agent_name??"the destination Agent",f="string"==typeof c.hop?c.hop:null;switch(a.type){case"created":return"ask"===b.mode?`You asked ${d}'s session a question`:`You handed ${d}'s session to ${e}`;case"hop_queued":if("deliver"===f)return`Handoff queued for ${e}'s new session`;return"extract"===f?`Handoff extraction queued in ${d}'s session`:`Question queued for ${d}'s session`;case"hop_started":if("deliver"===f)return`${e} started a new session`;return"extract"===f?`${d}'s session started extracting the handoff`:`${d}'s session started answering`;case"state_changed":{let a="string"==typeof c.to&&l.includes(c.to)?c.to:null;return a?`Now ${n(b.mode,a).toLowerCase()}`:"State changed"}case"answer_returned":return`Answer returned to ${b.origin?.label??"the origin thread"}${c.truncated?" (shortened)":""}`;case"packet_extracted":return"Handoff packet extracted";case"packet_rejected":return`Handoff packet refused${"string"==typeof c.reason?`: ${c.reason}`:""}`;case"destination_replied":return`${e} replied in ${b.destination?.conversation?.label??"its thread"}`;case"destination_session_rejected":return`${e}'s session was not new; the handoff stopped`;case"cancel_requested":return"You asked to cancel";case"hop_result_discarded":return"A late result was discarded";default:return a.type.replace(/_/g," ")}},"excerpt",0,o,"exchangeRequestBody",0,function(a,b,c){let d={mode:a.mode,idempotency_key:c,origin_conversation_id:a.originConversationId,source:{agent_id:b.agentId,session_ref:b.sessionRef},instruction:a.instruction.trim()};return"continue"===a.mode&&(d.destination={agent_id:a.destinationAgentId}),d},"failureAdvice",0,function(a){if("failed"!==a.state)return null;switch(a.failure?.code){case"packet_invalid":case"packet_missing":return"The source session did not return a usable handoff. Start a new Continue with a clearer objective.";case"destination_session_invalid":return"The destination did not start a fresh session. Check its runtime, then start a new Continue.";case"destination_turn_failed":return"Check the destination Agent’s runtime, then start a new Continue from the source session.";case"source_turn_failed":return"Check the source Agent’s runtime, then start a new exchange from its Sessions.";default:return"Start a new exchange from the session to try again."}},"formatExchangeTime",0,function(a){return b(a)},"instructionHeading",0,function(a){return"ask"===a?"Question":"Objective"},"ledgerAgents",0,function(a){let b=new Map;for(let c of a)b.set(c.source.agent_id,c.source.agent_name),c.destination&&b.set(c.destination.agent_id,c.destination.agent_name);return[...b.entries()].map(([a,b])=>({id:a,name:b})).sort((a,b)=>a.name.localeCompare(b.name)||a.id.localeCompare(b.id))},"ledgerRows",0,function(a,b){return a.filter(a=>("all"===b.mode||a.mode===b.mode)&&("active"!==b.state||!a.terminal)&&("all"===b.state||"active"===b.state||a.state===b.state)&&(!b.agentId||a.source.agent_id===b.agentId||a.destination?.agent_id===b.agentId)).sort(p)},"ledgerView",0,function(a,b,c){return null===a?b?"error":"loading":0===a.length?"empty":0===c.length?"filtered-out":"rows"},"linkRoleLabel",0,function(a){let b={origin:"Started here",source:"Source session",destination:"Destination"};return a.map(a=>b[a]).join(" · ")},"liveStateLabel",0,function(a){var b;return a.cancel_requested&&(b=a.state,!m.includes(b))?"Cancelling…":n(a.mode,a.state)},"modeLabel",0,function(a){return"ask"===a?"Ask":"Continue"},"outcomeLine",0,function(a){if("completed"===a.state){if("ask"===a.mode){let b=a.origin?.label??"the origin thread";return a.outcome.answer?`Answer in ${b}: ${o(a.outcome.answer,200)}`:`Answered in ${b}.`}let b=a.destination?.agent_name??"The destination Agent";return a.outcome.reply?`${b} picked it up in a new session: ${o(a.outcome.reply,200)}`:`${b} picked it up in a new session.`}return"failed"===a.state?a.failure?.message||"The exchange failed.":"cancelled"===a.state?"Cancelled before it finished. Nothing more will run.":null},"participantsLabel",0,function(a){return"ask"===a.mode?`You → ${a.source.agent_name}`:`${a.source.agent_name} → ${a.destination?.agent_name??"another Agent"}`},"pinRequestBody",0,function(a,b,c,d,e){return{action:a,content:b.trim(),conversation_id:c,idempotency_key:e,..."resume"===a?{approve_write:d}:{}}},"sessionDialogMode",0,function(a){return"handoff"===a?"continue":a},"sessionDialogTitle",0,function(a){return k["continue"===a?"handoff":a]},"sessionDialogUsesPin",0,function(a,b){return"resume"===a||"ask"===a&&"provider"===b},"sessionLabel",0,function(a){return`${a.source.agent_name}'s session “${a.source.session_title}”`},"sessionRowActions",0,function(a){let b;if(a.actions)b=a.actions;else{let c="ended"===a.status?{available:!1,reason:"Ask from this context and Hand off to… are unavailable: this session has ended. Its history stays here."}:a.resumable?{available:!0}:{available:!1,reason:`Ask from this context and Hand off to… are unavailable: Botmancers can’t resume this session under ${a.agent.name}’s current runtime.`},d=c.available?{available:!0}:{available:!1,code:"ended"===a.status?"session_ended":"session_not_resumable",reason:c.reason,recovery:"choose_session"};b={ask:d,resume:{available:!1,code:"action_unavailable",reason:`${k.resume} is unavailable: this runtime can’t resume a session with edits.`,recovery:"choose_action"},handoff:d}}return["ask","resume","handoff"].map(a=>({action:a,label:k[a],availability:b[a]}))},"stateTone",0,function(a){return"completed"===a?"done":"failed"===a||"cancelled"===a?"stopped":"active"},"submitErrorMessage",0,function(a,b){switch(a){case"session_ended":return"This session has ended and can’t be resumed.";case"session_not_resumable":return"Botmancers can’t resume this session under the Agent’s current runtime.";case"source_session_busy":return"This session already has an exchange in progress. Wait for it or cancel it from its card.";case"agent_unavailable":return b||"That Agent can’t launch yet. Choose its runtime connection and session scope in Config.";case"idempotency_conflict":return"This request changed while it was being sent. Send again.";case"session_missing":return"The runtime no longer has this session. Its history stays here; choose another session.";case"approval_required":return"Resume work here needs your approval of edits. Tick the approval, then send again.";case"authority_not_allowed":return b||"This Agent’s policy doesn’t allow edits in a resumed session. Change it in Config.";case"action_unavailable":return b||"This runtime can’t do that in this session. Choose another action.";case"provider_failed":return"The runtime failed this turn. Nothing moved to another session; try again later.";default:return b||"The exchange could not be started. Your draft is kept; try again."}},"threadHref",0,function(a,b){let c=new URLSearchParams;if(a.thread_agent_id)return c.set("agent",a.thread_agent_id),b&&c.set("exchange",b),`/?${c.toString()}`;if("group"!==a.kind)return null;b&&c.set("exchange",b);let d=c.toString();return`/threads/${encodeURIComponent(a.id)}${d?`?${d}`:""}`},"validateDraft",0,function(a){let b={},c=a.instruction.trim(),d="ask"===a.mode?"a question":"an objective";return c?a.instruction.length>4e3&&(b.instruction="Keep it under 4000 characters."):b.instruction=`Enter ${d}.`,a.originConversationId||(b.origin="Choose the thread that follows this exchange."),"continue"!==a.mode||a.destinationAgentId||(b.destination="Choose the Agent who continues the work."),b},"validateResumeDraft",0,function(a,b){let c={};return a.trim()?a.length>4e3&&(c.instruction="Keep it under 4000 characters."):c.instruction="Enter what to work on.",b||(c.approval="Approve edits in this session to resume work here."),c}],35099)},69789,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
-
3
- //# sourceMappingURL=_0a6r_bx._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[63718,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(50944),f=a.i(27828);a.s(["default",0,function(){let a=String((0,e.useParams)().id??""),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(0),q=(0,c.useRef)(null);(0,c.useEffect)(()=>{q.current=new URLSearchParams(window.location.search).get("exchange")},[]),(0,c.useEffect)(()=>{if(!a)return;let b=!1,c=async()=>{try{let[c,d,e]=await Promise.all([fetch(`/api/conversations/${encodeURIComponent(a)}`,{cache:"no-store"}),fetch(`/api/conversations/${encodeURIComponent(a)}/messages`,{cache:"no-store"}),fetch(`/api/exchanges?conversation=${encodeURIComponent(a)}`,{cache:"no-store"})]);if(b)return;if(!c.ok)return void n(404===c.status?"This thread no longer exists.":"Could not load this thread.");let f=await c.json(),g=await d.json().catch(()=>null),i=await e.json().catch(()=>null);if(b)return;let k=f?.details??null,m=Array.isArray(k?.members)?k.members.map(a=>a?.name).filter(Boolean):[];h({label:k?.name?`Group ${k.name}`:"Group thread",members:m}),d.ok&&Array.isArray(g)&&j(g),e.ok&&Array.isArray(i?.exchanges)&&l(i.exchanges),n("")}catch{b||n("Could not load this thread.")}};c();let d=setInterval(c,2e3);return()=>{b=!0,clearInterval(d)}},[a,o]),(0,c.useEffect)(()=>{let a=q.current;if(!a)return;let b=document.getElementById(`exchange-${a}`);b&&(q.current=null,b.scrollIntoView({block:"center"}),b.focus({preventScroll:!0}))},[k]);let r=new Set,s=a=>(0,b.jsx)("li",{className:"msg-status",children:(0,b.jsx)(f.default,{summary:a,onChanged:()=>p(a=>a+1)})},`exchange-${a.id}`),t=a=>{let b=k.filter(b=>!r.has(b.id)&&b.created_at<a).sort((a,b)=>a.created_at-b.created_at||(a.id<b.id?-1:1));return b.forEach(a=>r.add(a.id)),b.map(s)};return(0,b.jsxs)("div",{className:"ledger-page group-thread-page",children:[(0,b.jsxs)("header",{className:"ledger-head",children:[(0,b.jsxs)("nav",{className:"group-thread-nav","aria-label":"Thread navigation",children:[(0,b.jsx)(d.default,{href:"/",className:"cfg-link ledger-back",children:"← Back to chat"}),(0,b.jsx)(d.default,{href:"/exchanges",className:"cfg-link ledger-back",children:"Agent Exchanges"})]}),(0,b.jsx)("h1",{className:"ledger-title",children:g?.label??"Group thread"}),g&&g.members.length>0?(0,b.jsxs)("p",{className:"ledger-sub",children:["With ",g.members.join(", ")]}):null]}),(0,b.jsx)("main",{className:"group-thread-main","aria-label":"Thread",children:m?(0,b.jsxs)("div",{className:"ledger-state",role:"alert",children:[(0,b.jsx)("p",{className:"delete-error",children:m}),(0,b.jsx)("button",{type:"button",className:"pin-word",onClick:()=>p(a=>a+1),children:"Retry"})]}):g?(0,b.jsxs)("ol",{className:"group-thread-list","aria-label":"Messages and exchanges",children:[i.map(a=>(0,b.jsxs)(c.Fragment,{children:[t(a.created_at),(0,b.jsxs)("li",{className:"user"===a.sender_type?"msg-you":"msg-bot",children:[(0,b.jsx)("div",{className:"user"===a.sender_type?"msg-name msg-name-you":"msg-name",children:"user"===a.sender_type?"You":a.sender_name||"Agent"}),(0,b.jsx)("div",{className:"msg-body group-thread-body",children:a.content.replace(/^\s*\[Message from [^\]]+\]\s*(?:\r?\n)?/,"").replace(/^\s+/,"")})]})]},a.id)),t(1/0),0===i.length&&0===k.length?(0,b.jsx)("li",{className:"ledger-state",children:"No messages in this thread yet."}):null]}):(0,b.jsx)("p",{className:"ledger-state",role:"status",children:"Loading thread…"})})]})}])},69789,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
-
3
- //# sourceMappingURL=_0epgorw._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[36391,5020,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{id:"purple",label:"Purple",hex:"#7C3AED"},{id:"blue",label:"Blue",hex:"#2563EB"},{id:"teal",label:"Teal",hex:"#0D9488"},{id:"green",label:"Green",hex:"#16A34A"},{id:"amber",label:"Amber",hex:"#B45309"},{id:"orange",label:"Orange",hex:"#EA580C"},{id:"pink",label:"Pink",hex:"#DB2777"},{id:"slate",label:"Slate",hex:"#64748B"}],e=[{id:"dots",label:"Round dots"},{id:"sleepy",label:"Sleepy"},{id:"happy",label:"Happy arcs"},{id:"wide",label:"Wide ovals"}],f=[{id:"folded",label:"Folded arms"},{id:"reaching",label:"Reaching right"},{id:"waving",label:"Waving"}],g=[{id:"none",label:"None"},{id:"crown",label:"Crown"},{id:"glasses",label:"Glasses"},{id:"headset",label:"Headset"},{id:"hat",label:"Hat"},{id:"bow",label:"Bow"}],h={color:"purple",eyes:"dots",hands:"folded",accessory:"none"},i={...h,accessory:"crown"};function j(a,b){return"string"==typeof b&&a.some(a=>a.id===b)}function k(a){let b=j(d,a.avatar_color)?a.avatar_color:h.color,c=j(e,a.avatar_eyes)?a.avatar_eyes:h.eyes;return{color:b,eyes:c,hands:j(f,a.avatar_hands)?a.avatar_hands:h.hands,accessory:j(g,a.avatar_accessory)?a.avatar_accessory:"chief-of-staff"===String(a.name??"").trim().toLowerCase()?i.accessory:h.accessory}}let l=[{x:70,y:70.5,w:38,h:6},{x:70,y:82,w:38,h:6}];function m(a){return l.map(b=>`<rect x="${b.x}" y="${b.y}" width="${b.w}" height="${b.h}" rx="${b.h/2}" ${a}/>`).join("")}function n(a,b="static"){var c,e;let f,g,h=d.find(b=>b.id===a.color)?.hex??d[0].hex,i=String(b).replace(/[^A-Za-z0-9_-]/g,"")||"static",j=`avatar-knockout-${i}`,k=`fill="none" stroke="${h}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`,l=(c=a.hands,e=a.accessory,f=[],"reaching"===c&&f.push({x1:87.6,y1:69,x2:90.4,y2:86.5,w:8}),"waving"===c&&f.push({x1:35,y1:59,x2:28,y2:72,w:10}),"crown"===e&&f.push({x1:44,y1:30,x2:76,y2:30,w:9}),"hat"===e&&f.push({x1:38,y1:34,x2:82,y2:34,w:9}),"bow"===e&&f.push({x1:60,y1:28.5,x2:84,y2:28,w:10}),"headset"===e&&(f.push({x1:42,y1:24.5,x2:78,y2:24.5,w:10}),f.push({x1:33,y1:55,x2:37,y2:64,w:8}),f.push({x1:83,y1:55,x2:87,y2:64,w:8})),"glasses"===e&&(f.push({x1:29,y1:56,x2:34,y2:62,w:8}),f.push({x1:86,y1:62,x2:91,y2:56,w:8})),f).map(a=>`<line x1="${a.x1}" y1="${a.y1}" x2="${a.x2}" y2="${a.y2}" stroke="#000000" stroke-width="${a.w}" stroke-linecap="round"/>`).join(""),o=`avatar-arms-${i}`,p="reaching"===a.hands,q=p?`<mask id="${o}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${m('fill="#000000" stroke="#000000" stroke-width="7"')}</mask>`:"",r=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"sleepy":return`<g data-avatar-layer="eyes" data-avatar-eyes="sleepy"><path d="M42 61 Q48 64 54 61" ${c}/><path d="M66 61 Q72 64 78 61" ${c}/></g>`;case"happy":return`<g data-avatar-layer="eyes" data-avatar-eyes="happy"><path d="M42 63 Q48 54 54 63" ${c}/><path d="M66 63 Q72 54 78 63" ${c}/></g>`;case"wide":return`<g data-avatar-layer="eyes" data-avatar-eyes="wide"><ellipse cx="48" cy="60" rx="5.5" ry="8" ${c}/><ellipse cx="72" cy="60" rx="5.5" ry="8" ${c}/></g>`;default:return`<g data-avatar-layer="eyes" data-avatar-eyes="dots"><circle cx="48" cy="60" r="3.5" ${c}/><circle cx="72" cy="60" r="3.5" ${c}/></g>`}}(a.eyes,h),s=function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"crown":return`<g data-avatar-layer="accessory" data-avatar-accessory="crown"><path d="M44 31 L46.5 14 L54 24 L60 10 L66 24 L73.5 14 L76 31 Z" ${c}/></g>`;case"glasses":return`<g data-avatar-layer="accessory" data-avatar-accessory="glasses"><circle cx="48" cy="60" r="9" ${c}/><circle cx="72" cy="60" r="9" ${c}/><path d="M57 60 Q60 57 63 60" ${c}/><path d="M39 59 L32 57" ${c}/><path d="M81 59 L88 57" ${c}/></g>`;case"headset":return`<g data-avatar-layer="accessory" data-avatar-accessory="headset"><path d="M36 62 Q34 24 60 24 Q86 24 84 62" ${c}/><rect x="79" y="54" width="10" height="17" rx="5" ${c}/><path d="M84 71 Q80 84 66 84" ${c}/></g>`;case"hat":return`<g data-avatar-layer="accessory" data-avatar-accessory="hat"><path d="M38 34 Q60 40 82 34" ${c}/><path d="M46 34 Q48 14 60 14 Q72 14 74 34" ${c}/></g>`;case"bow":return`<g data-avatar-layer="accessory" data-avatar-accessory="bow"><circle cx="79" cy="29" r="3.5" ${c}/><path d="M76 27 L62 18 Q60 26 66 32 Z" ${c}/><path d="M82 27 L95 19 Q97 27 91 32 Z" ${c}/></g>`;default:return'<g data-avatar-layer="accessory" data-avatar-accessory="none"></g>'}}(a.accessory,h);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" role="img" data-avatar-color="${a.color}" data-avatar-eyes="${a.eyes}" data-avatar-hands="${a.hands}" data-avatar-accessory="${a.accessory}"><mask id="${j}"><rect x="0" y="0" width="120" height="120" fill="#ffffff"/>${l}</mask>`+q+`<g data-avatar-layer="body" mask="url(#${j})">`+`<path d="M60 28 C75 28 84 39 85.5 56 L91 90 C92.5 98 87 102 79 102 L41 102 C33 102 27.5 98 29 90 L34.5 56 C36 39 45 28 60 28 Z" ${k}/>`+`<path d="M54 71 Q60 75.5 66 71" ${k}/>`+`<path data-avatar-brows="straight" d="${g="wide"===a.eyes?45:46,`M42 ${g} H54 M66 ${g} H78`}" fill="none" stroke="${h}" stroke-width="4.8" stroke-linecap="round"/>`+"</g>"+(p?`<g mask="url(#${o})">${r}</g>`:r)+function(a,b){let c=`fill="none" stroke="${b}" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"`;switch(a){case"reaching":return'<g data-avatar-layer="hands" data-avatar-hands="reaching">'+m(c)+"</g>";case"waving":return`<g data-avatar-layer="hands" data-avatar-hands="waving"><path d="M32 68 Q24 60 22 48" ${c}/><circle cx="21" cy="41" r="5" ${c}/><path d="M11 36 Q9 46 12 54" ${c}/></g>`;default:return`<g data-avatar-layer="hands" data-avatar-hands="folded"><rect x="44" y="79" width="32" height="9" rx="4.5" ${c}/><rect x="46" y="90" width="28" height="9" rx="4.5" ${c}/></g>`}}(a.hands,h)+(p?`<g mask="url(#${o})">${s}</g>`:s)+"</svg>"}a.s(["AVATAR_ACCESSORIES",0,g,"AVATAR_COLORS",0,d,"AVATAR_EYES",0,e,"AVATAR_HANDS",0,f,"renderAvatarSvg",0,n,"resolveAvatar",0,k],5020),a.s(["default",0,function({bot:a,config:d,size:e=28,className:f,title:g}){let h=(0,c.useId)().replace(/[^A-Za-z0-9_-]/g,"")||"avatar",i=n(d??a?.avatar_config??k(a??{}),h).replace("<svg ",`<svg width="${e}" height="${e}" `);return(0,b.jsx)("span",{className:f??"bot-avatar",style:{display:"inline-flex",width:e,height:e,flex:"none"},title:g,"aria-label":g??"Agent avatar",role:"img",dangerouslySetInnerHTML:{__html:i}})}],36391)},60193,35832,23464,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d="Permanently removes each agent with its direct conversation, messages, queue rows, approvals, launch snapshots, memories, one-shots, routines, and pending questions. There is no undo.",e="Skill files, working directories, Hermes profiles, and imported source files stay on disk.";function f(a){return"chief"===a?"Chief of Staff cannot be deleted.":"Working now — stop it or let it finish before deleting."}function g(a){return 1===a?"Delete agent":`Delete ${a} agents`}a.s(["DELETE_KEEPS_COPY",0,e,"DELETE_REMOVES_COPY",0,d,"blockedReasonCopy",0,f,"deleteConfirmLabel",0,g,"deletedStatusLine",0,function(a){return 1===a?"Deleted 1 agent.":`Deleted ${a} agents.`}],35832),a.s(["default",0,function({ids:a,onCancel:h,onDeleted:i}){let j=(0,c.useId)(),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=a.join("\n");(0,c.useEffect)(()=>{let a=!1;return fetch("/api/bots/delete-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:u.split("\n")})}).then(async b=>{let c=await b.json().catch(()=>null);if(!a){if(!b.ok)return void n("string"==typeof c?.error?c.error:"Could not load the deletion preview.");l(c)}}).catch(()=>{a||n("Could not load the deletion preview.")}),()=>{a=!0}},[u]),(0,c.useEffect)(()=>{s.current?.focus()},[]),(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&(a.stopPropagation(),q||h())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[q,h]);let v=a.length,w=!k||k.blocked.length>0||k.missing.length>0,x=async()=>{if(!q&&!w){r(!0),p("");try{let b=await fetch("/api/bots",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:a})}),c=await b.json().catch(()=>null);if(!b.ok){p("string"==typeof c?.error&&c.error?c.error:`Delete failed (${b.status}).`),r(!1),requestAnimationFrame(()=>s.current?.focus());return}i(Array.isArray(c?.deleted)?c.deleted:[])}catch{p("Delete failed: the server did not respond."),r(!1),requestAnimationFrame(()=>s.current?.focus())}}};return(0,b.jsx)("div",{className:"modal-scrim delete-scrim",onKeyDown:a=>{if("Tab"!==a.key||!t.current)return;let b=Array.from(t.current.querySelectorAll("button:not(:disabled)"));if(0===b.length)return;let c=b[0],d=b[b.length-1];a.shiftKey&&document.activeElement===c?(a.preventDefault(),d.focus()):a.shiftKey||document.activeElement!==d||(a.preventDefault(),c.focus())},children:(0,b.jsxs)("div",{ref:t,className:"delete-card",role:"alertdialog","aria-modal":"true","aria-labelledby":j,"data-testid":"delete-agents-dialog",children:[(0,b.jsx)("h2",{id:j,className:"delete-title",children:1===v?"Delete this agent permanently?":`Delete ${v} agents permanently?`}),m?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:m}):null,k||m?null:(0,b.jsx)("p",{className:"delete-copy",children:"Checking what will be removed…"}),k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("ul",{className:"delete-names","aria-label":"Agents to delete",children:[k.agents.map(a=>(0,b.jsx)("li",{children:a.name},a.id)),k.missing.map(a=>(0,b.jsxs)("li",{children:["Not found: ",a]},a))]}),k.blocked.length>0?(0,b.jsxs)("div",{className:"delete-blocked",role:"alert",children:[(0,b.jsx)("p",{children:"Nothing can be deleted until these are deselected:"}),(0,b.jsx)("ul",{children:k.blocked.map(a=>(0,b.jsxs)("li",{children:[a.name," — ",f(a.reason)]},a.id))})]}):null,(0,b.jsx)("p",{className:"delete-copy",children:d}),(0,b.jsx)("p",{className:"delete-copy delete-keeps",children:e})]}):null,o?(0,b.jsx)("p",{className:"delete-error",role:"alert",children:o}):null,(0,b.jsxs)("div",{className:"form-actions delete-actions",children:[(0,b.jsx)("button",{ref:s,type:"button",className:"cancel-btn",onClick:h,disabled:q,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"delete-btn",onClick:()=>{x()},disabled:q||w,children:q?"Deleting…":g(v)})]})]})})}],60193);var h=a.i(65221),i=a.i(35099);function j(a){return"active"===a.state}let k=/^T[A-Z0-9]{2,20}$/,l=/^[CG][A-Z0-9]{2,20}$/;a.s(["SHARE_DURATIONS",0,[{label:"5 minutes",seconds:300},{label:"1 hour",seconds:3600},{label:"8 hours",seconds:28800},{label:"24 hours",seconds:86400}],"SHARE_STATUS_LABELS",0,{active:"Active",exhausted:"Questions used",answering:"Answering",recovering:"Recovering",expired:"Expired",revoked:"Revoked"},"audienceInputError",0,function(a,b,c){let d=a.trim(),e=b.trim();return k.test(d)?l.test(e)?c.some(a=>a.team_id===d&&a.channel_id===e)?"That channel is already on the allowlist.":null:"Channel ID must look like C0123ABCD (a public or private channel ID; no wildcards).":"Workspace ID must look like T0123ABCD (a Slack team ID; no wildcards)."},"audienceLabel",0,function(a){return`Slack channel ${a.channel_id} \xb7 workspace ${a.team_id}`},"createdByLabel",0,function(a){return"owner"===a.created_by?"Shared by you":"current_session"===a.created_by?"Shared from a turn of this session":"Shared by a service"},"expiryLabel",0,function(a,b=Date.now()){return"revoked"===a.state?`Revoked ${(0,h.formatSessionDate)(a.revoked_at??a.expires_at)}`:"expired"===a.state||a.expires_at<=b?`Expired ${(0,h.formatSessionDate)(a.expires_at)}`:`Expires ${(0,h.formatSessionDate)(a.expires_at)} (in ${function(a){let b=Math.max(1,Math.round(a/6e4));if(b<60)return`${b} min`;let c=Math.floor(b/60),d=b%60;return d?`${c} h ${d} min`:`${c} h`}(a.expires_at-b)})`},"sessionShares",0,function(a,b){let c=a.filter(a=>a.session_ref===b);return[...c.filter(j).sort((a,b)=>b.created_at-a.created_at),...c.filter(a=>!j(a)).sort((a,b)=>(b.revoked_at??b.expires_at)-(a.revoked_at??a.expires_at))]},"shareCreateAvailability",0,function(a,b){let c=`/bots/${encodeURIComponent(a.agent.id)}/config#session-sharing`;if(!b)return{available:!1,reason:"Share to Slack is unavailable: the share policy could not be loaded.",configHref:null};let d=(0,i.sessionRowActions)(a).find(a=>"ask"===a.action);return d&&!d.availability.available?{available:!1,reason:d.availability.reason.replace(/^Ask from this context is unavailable:/,"Share to Slack is unavailable:"),configHref:null}:"invalid"===b.state?{available:!1,reason:"Share to Slack is unavailable: the share policy file is invalid. Fix it in Config.",configHref:c}:0===b.audiences.length?{available:!1,reason:"Share to Slack needs a Slack channel on the share allowlist. Add one in Config.",configHref:c}:{available:!0}},"shareCreateBody",0,function(a,b,c,d){return{audience:{team_id:a.team_id,channel_id:a.channel_id},ttl_seconds:b,max_turns:c,idempotency_key:d}},"shareFromTurnNote",0,function(a){return a.agent.share_current.supported?a.agent.share_from_turn?"On: a turn Botmancers launches for this Agent can share its own session to an allowlisted channel. Turning it off revokes every live turn context at once.":"Off: no turn of this Agent can share its own session. Sessions can still be shared from the Sessions drawer.":a.agent.share_current.reason??"This runtime cannot share its own session from a turn."},"shareIsLive",0,j,"shareStatusNote",0,function(a){switch(a.status){case"active":return"Slack replies in its thread ask this session (read-only).";case"answering":return"A Slack question is being answered now. The next one waits until it finishes.";case"recovering":return"A question was interrupted by a Botmancers restart. The next Slack question clears it.";case"exhausted":return`All ${a.max_turns} questions are used. Slack questions get the limit notice; create a new share to keep going.`;case"expired":return"Expired: Slack questions get the expired notice. Its history stays here.";case"revoked":return"Revoked: Slack questions get the revoked notice. Its history stays here."}},"threadLabel",0,function(a){return a.thread.posted?`Slack thread posted ${(0,h.formatSessionDate)(a.thread.posted_at??0)}`:"active"===a.state?"Waiting for the Slack relay to post the thread":"No Slack thread was posted"},"turnsLabel",0,function(a){return`${a.turns_used} of ${a.max_turns} question${1===a.max_turns?"":"s"} used`}],23464)},1160,22855,79202,a=>{"use strict";var b=a.i(22151);let c="This computer",d={read_only:"Read only",workspace_write:"Workspace write"},e={workspaces:"Selected workspaces",sessions:"Selected imported sessions",all_provider_sessions:"All sessions this runtime can see"};function f(a){return a.startsWith("/")||"~"===a||a.startsWith("~/")}function g(a){return a.length>1?a.replace(/\/+$/,""):a}b.AGENTS.join("|");let h="/api/runtime-connections",i={connection:"Runtime connection",scope:"Session scope",defaultWorkspace:"Default workspace (optional)",policy:"Policy",homeSession:"Home session (optional)"},j={connection:"The runtime installation or account this Agent uses. Several Agents can share one.",workspaces:"One absolute path per line. An empty scope never means unrestricted.",sessions:"Only this Agent’s own Botmancers sessions can be selected.",noSessions:"This Agent has no sessions yet. Choose workspaces or all sessions for now.",allSessions:"Every session this runtime can see. Choose this only on purpose.",defaultWorkspace:"Where new sessions start. Convenience only — not a permission.",resumeEdits:"Needs Workspace write.",homeSession:"A stable session to return to. Must be one of this Agent’s sessions.",addConnection:"Stores a name and host only. Credentials stay with the runtime."},k="Loading runtime connections…",l="Couldn't load runtime connections — retry.";function m(){return{status:"loading",connections:[],error:""}}function n(a){return`${a.label} \xb7 ${b.AGENT_LABELS[a.provider]??a.provider}`}function o(a){if("object"!=typeof a||null===a)return null;let b=a.connections;if(!Array.isArray(b))return null;let c=[];for(let a of b){if("object"!=typeof a||null===a||"string"!=typeof a.id||"string"!=typeof a.provider||"string"!=typeof a.label)return null;c.push({id:a.id,provider:a.provider,label:a.label,host:"string"==typeof a.host?a.host:"",agent_count:"number"==typeof a.agent_count?a.agent_count:void 0})}return c}function p(a){let b=[];for(let c of a.split("\n")){let a=c.trim();a&&!b.includes(a)&&b.push(a)}return b}function q(a){return"workspaces"===a.scopeKind?{kind:"workspaces",workspaces:p(a.workspaces)}:"sessions"===a.scopeKind?{kind:"sessions",sessions:a.sessions}:{kind:a.scopeKind}}function r(a){return{mode:a.policyMode,allow_new_sessions:a.allowNewSessions,allow_resume_with_edits:a.allowResumeWithEdits}}a.s(["CONNECTIONS_ENDPOINT",0,h,"CONNECTIONS_ERROR_COPY",0,l,"CONNECTIONS_LOADING_COPY",0,k,"DEFAULT_REGISTRATION_FORM",0,{connectionId:"",scopeKind:"",workspaces:"",sessions:[],defaultWorkspace:"",policyMode:"read_only",allowNewSessions:!0,allowResumeWithEdits:!1,homeSessionId:""},"HINTS",0,j,"LABELS",0,i,"connectionOptionLabel",0,n,"hasRegistrationErrors",0,function(a){return Object.keys(a.errors).length>0},"initialConnectionListState",0,m,"parseConnectionList",0,o,"registrationCreateBody",0,function(a,b){let c={name:String(a??"").trim(),runtime_connection_id:b.connectionId,session_scope:q(b),policy:r(b)},d=b.defaultWorkspace.trim();return d&&(c.default_workspace=d),c},"registrationFormFromBot",0,function(a){let b=a.session_scope??null;return{connectionId:a.runtime_connection_id??"",scopeKind:b?.kind??"",workspaces:b?.kind==="workspaces"?b.workspaces.join("\n"):"",sessions:b?.kind==="sessions"?[...b.sessions]:[],defaultWorkspace:a.default_workspace??"",policyMode:a.policy?.mode??"read_only",allowNewSessions:!a.policy||a.policy.allow_new_sessions,allowResumeWithEdits:!!a.policy&&a.policy.allow_resume_with_edits,homeSessionId:a.home_session_id??""}},"registrationFormView",0,function(a,b){let c={};a.connectionId||(c.connection="Pick a runtime connection.");let d=p(a.workspaces);a.scopeKind?"workspaces"===a.scopeKind?0===d.length?c.workspaces="Add at least one workspace.":d.every(f)||(c.workspaces="Workspaces must be absolute paths (or start with ~/)."):"sessions"===a.scopeKind&&0===a.sessions.length&&(c.sessions="Select at least one session."):c.scope="Choose a session scope.";let e=a.defaultWorkspace.trim();e&&(f(e)?"workspaces"!==a.scopeKind||c.workspaces||d.some(a=>{let b,c;return b=g(a),b===(c=g(e))||c.startsWith("/"===b?"/":`${b}/`)})||(c.defaultWorkspace="The default workspace must be inside one of the selected workspaces."):c.defaultWorkspace="The default workspace must be an absolute path (or start with ~/)."),a.allowResumeWithEdits&&"workspace_write"!==a.policyMode&&(c.policy="Resume with edits needs the Workspace write policy.");let h="",i=!1;return"ready"!==b.status&&(i=!0,h="error"===b.status?l:""),{errors:c,submitDisabled:i,blocker:h}},"registrationPatchBody",0,function(a,b){return{id:a,runtime_connection_id:b.connectionId,session_scope:q(b),default_workspace:b.defaultWorkspace.trim(),policy:r(b),home_session_id:b.homeSessionId}},"registrationReadView",0,function(a,c){var f;let g,h=[{key:"connection",label:i.connection,value:(g=a.runtime_connection)?`${g.label} (${(0,b.agentLabel)(g.provider)} \xb7 ${g.host})`:"Not set"},{key:"scope",label:i.scope,value:function(a,b){if(!a)return"Not set — this Agent cannot launch until a scope is chosen.";if("all_provider_sessions"===a.kind)return e.all_provider_sessions;if("workspaces"===a.kind)return`${e.workspaces}: ${a.workspaces.join(", ")}`;let c=a.sessions.map(a=>b?.find(b=>b.ref===a)?.title??a);return`${e.sessions}: ${c.join(", ")}`}(a.session_scope,c)},{key:"defaultWorkspace",label:"Default workspace",value:a.default_workspace||"None"},{key:"policy",label:i.policy,value:(f=a.policy)?[d[f.mode],f.allow_new_sessions?"new sessions allowed":"no new sessions",f.allow_resume_with_edits?"resume with edits allowed":"no resume with edits"].join(" · "):"Not set"}],j=[];return h.push({key:"homeSession",label:"Home session",value:a.home_session_id?c?.find(b=>b.ref===a.home_session_id)?.title??a.home_session_id:"None"}),"connection"===a.launch_blocker?j.push("Choose a runtime connection before this Agent can run."):"session_scope"===a.launch_blocker?j.push("Choose a session scope before this Agent can run."):"agent"===a.launch_blocker&&j.push("This Agent has an unsupported Agent type."),{rows:h,notices:j}}],1160);var s=a.i(87924),t=a.i(72131),u=a.i(20851);let v={modal:{fieldset:"agent-fieldset reg-fieldset",legend:"field-legend",label:"",picks:"runtime-picks",pick:"runtime-pick",stack:"reg-stack",control:"reg-control",input:"",hint:"runtime-hint",error:"form-error reg-error",button:"runtime-retry",note:"runtime-note"},config:{fieldset:"agent-fieldset reg-fieldset",legend:"block text-sm cfg-muted mt-3 mb-1 p-0",label:"block text-sm cfg-muted mt-3 mb-1",picks:"flex flex-wrap gap-x-4 gap-y-1 text-sm cfg-muted",pick:"text-sm cfg-muted",stack:"flex flex-col gap-1 text-sm cfg-muted",control:"cfg-input text-sm",input:"cfg-input text-sm",hint:"mt-1 text-xs cfg-faint",error:"mt-1 text-sm cfg-error",button:"cfg-link text-sm",note:"text-sm cfg-muted mt-1"}};function w({id:a,message:b,variant:c}){return b?(0,s.jsx)("p",{id:a,className:v[c].error,role:"alert",children:b}):null}function x({idPrefix:a,variant:b,onAdd:d}){let e=v[b],[f,g]=(0,t.useState)(!1),[h,i]=(0,t.useState)(u.AGENT_OPTIONS[0].value),[k,l]=(0,t.useState)(""),[m,n]=(0,t.useState)(""),[o,p]=(0,t.useState)(""),[q,r]=(0,t.useState)(!1),w=async()=>{if(q)return;r(!0),p("");let a=await d({provider:h,label:k,host:m.trim()||c});(r(!1),"string"==typeof a)?p(a):(g(!1),l(""),n(""))};return f?(0,s.jsxs)("div",{id:`${a}-add-connection`,className:"reg-add-connection",role:"group","aria-label":"Add connection",children:[(0,s.jsx)("label",{className:e.label,htmlFor:`${a}-add-provider`,children:"Provider"}),(0,s.jsx)("select",{id:`${a}-add-provider`,className:e.control,value:h,onChange:a=>i(a.target.value),children:u.AGENT_OPTIONS.map(a=>(0,s.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,s.jsx)("label",{className:e.label,htmlFor:`${a}-add-label`,children:"Connection name"}),(0,s.jsx)("input",{id:`${a}-add-label`,type:"text",className:e.input||void 0,value:k,placeholder:"Codex on my laptop",onChange:a=>l(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),w())}}),(0,s.jsx)("label",{className:e.label,htmlFor:`${a}-add-host`,children:"Host"}),(0,s.jsx)("input",{id:`${a}-add-host`,type:"text",className:e.input||void 0,value:m,placeholder:c,"aria-describedby":`${a}-add-hint`,onChange:a=>n(a.target.value)}),(0,s.jsx)("p",{id:`${a}-add-hint`,className:e.hint,children:j.addConnection}),o?(0,s.jsx)("p",{className:e.error,role:"alert",children:o}):null,(0,s.jsxs)("div",{className:"reg-actions",children:[(0,s.jsx)("button",{type:"button",className:e.button,onClick:()=>void w(),disabled:q,children:q?"Adding…":"Add"}),(0,s.jsx)("button",{type:"button",className:e.button,"aria-expanded":"true",onClick:()=>g(!1),children:"Cancel"})]})]}):(0,s.jsx)("button",{type:"button",className:e.button,"aria-expanded":"false","aria-controls":`${a}-add-connection`,onClick:()=>g(!0),children:"Add connection…"})}a.s(["RegistrationFields",0,function({idPrefix:a,variant:b,form:c,onChange:f,view:g,showErrors:h,connections:m,onRetryConnections:o,onAddConnection:p,workspacePlaceholder:q,workspaceHint:r,sessions:t,includeHomeSession:u}){let y=v[b],z=a=>h?g.errors[a]:void 0,A=b=>`${a}-${b}-error`,B=(a,...b)=>[...b,z(a)?A(a):""].filter(Boolean).join(" ")||void 0,C=!!(t&&t.length>0);return(0,s.jsxs)("div",{className:"registration-fields","data-registration":b,children:[(0,s.jsxs)("fieldset",{className:y.fieldset,"data-field":"connection","aria-describedby":B("connection",`${a}-connection-hint`),children:[(0,s.jsx)("legend",{className:y.legend,id:`${a}-connection-legend`,children:i.connection}),"loading"===m.status?(0,s.jsx)("p",{className:y.note,role:"status",children:k}):"error"===m.status?(0,s.jsxs)("p",{className:y.note,role:"status",children:[l," ",(0,s.jsx)("button",{type:"button",className:y.button,onClick:o,children:"Retry"})]}):(0,s.jsxs)("select",{id:`${a}-connection`,className:y.control,"aria-labelledby":`${a}-connection-legend`,"aria-required":"true","aria-invalid":!!z("connection")||void 0,value:c.connectionId,onChange:a=>f({connectionId:a.target.value}),children:[(0,s.jsx)("option",{value:"",disabled:!0,children:"Select a connection…"}),m.connections.map(a=>(0,s.jsx)("option",{value:a.id,children:n(a)},a.id))]}),(0,s.jsx)("p",{id:`${a}-connection-hint`,className:y.hint,children:j.connection}),(0,s.jsx)(w,{id:A("connection"),message:z("connection"),variant:b}),"ready"===m.status?(0,s.jsx)(x,{idPrefix:a,variant:b,onAdd:async a=>{let b=await p(a);return"string"!=typeof b&&f({connectionId:b.id}),b}}):null]}),(0,s.jsxs)("fieldset",{className:y.fieldset,"data-field":"scope",children:[(0,s.jsx)("legend",{className:y.legend,id:`${a}-scope-legend`,children:i.scope}),(0,s.jsx)("div",{className:y.stack,role:"radiogroup","aria-labelledby":`${a}-scope-legend`,"aria-required":"true","aria-describedby":B("scope"),children:["workspaces","sessions","all_provider_sessions"].map(b=>(0,s.jsxs)("label",{className:y.pick,children:[(0,s.jsx)("input",{type:"radio",name:`${a}-scope`,value:b,checked:c.scopeKind===b,disabled:"sessions"===b&&!C,onChange:()=>f({scopeKind:b})})," "+e[b]]},b))}),C?null:(0,s.jsx)("p",{className:y.hint,children:j.noSessions}),(0,s.jsx)(w,{id:A("scope"),message:z("scope"),variant:b}),"workspaces"===c.scopeKind?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("label",{className:y.label,htmlFor:`${a}-workspaces`,children:"Workspaces"}),(0,s.jsx)("textarea",{id:`${a}-workspaces`,className:y.input||void 0,rows:2,value:c.workspaces,placeholder:"/Users/you/work/project","aria-required":"true","aria-invalid":!!z("workspaces")||void 0,"aria-describedby":B("workspaces",`${a}-workspaces-hint`),onChange:a=>f({workspaces:a.target.value})}),(0,s.jsx)("p",{id:`${a}-workspaces-hint`,className:y.hint,children:j.workspaces}),(0,s.jsx)(w,{id:A("workspaces"),message:z("workspaces"),variant:b})]}):null,"sessions"===c.scopeKind&&t?(0,s.jsxs)("div",{className:y.stack,role:"group","aria-label":"Sessions in scope","aria-describedby":B("sessions",`${a}-sessions-hint`),children:[t.map(a=>(0,s.jsxs)("label",{className:y.pick,children:[(0,s.jsx)("input",{type:"checkbox",checked:c.sessions.includes(a.ref),onChange:b=>f({sessions:b.target.checked?[...c.sessions,a.ref]:c.sessions.filter(b=>b!==a.ref)})}),` ${a.title} (${a.status})`]},a.ref)),(0,s.jsx)("p",{id:`${a}-sessions-hint`,className:y.hint,children:j.sessions}),(0,s.jsx)(w,{id:A("sessions"),message:z("sessions"),variant:b})]}):null,"all_provider_sessions"===c.scopeKind?(0,s.jsx)("p",{className:y.hint,children:j.allSessions}):null]}),(0,s.jsxs)("div",{"data-field":"default-workspace",children:[(0,s.jsx)("label",{className:y.label,htmlFor:`${a}-default-workspace`,children:i.defaultWorkspace}),(0,s.jsx)("input",{id:`${a}-default-workspace`,type:"text",className:y.input||void 0,value:c.defaultWorkspace,placeholder:q,"aria-invalid":!!z("defaultWorkspace")||void 0,"aria-describedby":B("defaultWorkspace",`${a}-default-workspace-hint`,`${a}-default-workspace-note`),onChange:a=>f({defaultWorkspace:a.target.value})}),(0,s.jsx)("p",{id:`${a}-default-workspace-hint`,className:y.hint,children:r}),(0,s.jsx)("p",{id:`${a}-default-workspace-note`,className:y.hint,children:j.defaultWorkspace}),(0,s.jsx)(w,{id:A("defaultWorkspace"),message:z("defaultWorkspace"),variant:b})]}),(0,s.jsxs)("fieldset",{className:y.fieldset,"data-field":"policy",children:[(0,s.jsx)("legend",{className:y.legend,id:`${a}-policy-legend`,children:i.policy}),(0,s.jsx)("div",{className:y.picks,role:"radiogroup","aria-labelledby":`${a}-policy-legend`,children:["read_only","workspace_write"].map(b=>(0,s.jsxs)("label",{className:y.pick,children:[(0,s.jsx)("input",{type:"radio",name:`${a}-policy`,value:b,checked:c.policyMode===b,onChange:()=>f("read_only"===b?{policyMode:b,allowResumeWithEdits:!1}:{policyMode:b})})," "+d[b]]},b))}),(0,s.jsxs)("div",{className:y.stack,children:[(0,s.jsxs)("label",{className:y.pick,children:[(0,s.jsx)("input",{type:"checkbox",checked:c.allowNewSessions,onChange:a=>f({allowNewSessions:a.target.checked})})," Allow new sessions"]}),(0,s.jsxs)("label",{className:y.pick,children:[(0,s.jsx)("input",{type:"checkbox",checked:c.allowResumeWithEdits,disabled:"workspace_write"!==c.policyMode,"aria-describedby":`${a}-resume-hint`,onChange:a=>f({allowResumeWithEdits:a.target.checked})})," Allow resume with edits"]}),(0,s.jsx)("p",{id:`${a}-resume-hint`,className:y.hint,children:j.resumeEdits})]}),(0,s.jsx)(w,{id:A("policy"),message:z("policy"),variant:b})]}),u?(0,s.jsxs)("div",{"data-field":"home-session",children:[(0,s.jsx)("label",{className:y.label,htmlFor:`${a}-home-session`,children:i.homeSession}),(0,s.jsxs)("select",{id:`${a}-home-session`,className:y.control,value:c.homeSessionId,"aria-describedby":`${a}-home-session-hint`,onChange:a=>f({homeSessionId:a.target.value}),children:[(0,s.jsx)("option",{value:"",children:"None"}),(t??[]).map(a=>(0,s.jsx)("option",{value:a.ref,children:`${a.title} (${a.status})`},a.ref))]}),(0,s.jsx)("p",{id:`${a}-home-session-hint`,className:y.hint,children:j.homeSession})]}):null]})}],22855),a.s(["useRuntimeConnections",0,function(){let[a,b]=(0,t.useState)(()=>m()),[c,d]=(0,t.useState)(0);return(0,t.useEffect)(()=>{let a=!1;return fetch(h,{cache:"no-store"}).then(async c=>{let d=c.ok?o(await c.json().catch(()=>null)):null;a||b(d?{status:"ready",connections:d,error:""}:{status:"error",connections:[],error:`HTTP ${c.status}`})}).catch(c=>{a||b({status:"error",connections:[],error:c instanceof Error?c.message:String(c)})}),()=>{a=!0}},[c]),{state:a,retry:(0,t.useCallback)(()=>{b(m()),d(a=>a+1)},[]),add:(0,t.useCallback)(async a=>{let c=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>null);if(!c.ok)return"string"==typeof d?.error?d.error:"Failed to add the connection";let e=o({connections:[d]})?.[0];return e?(b(a=>({status:"ready",connections:[...a.connections,e],error:""})),e):"Failed to add the connection"},[])}}],79202)},80219,a=>{"use strict";let b="imported",c=/^[A-Za-z0-9_-]{1,128}$/;function d(a){let d=new URLSearchParams(a).get(b);if(null===d)return null;let e=d.trim();return c.test(e)?e:""}function e(a){return`/bots/${encodeURIComponent(a)}/config`}async function f(a,b,c){let f=d(a);if(null===f)return{kind:"none"};if(!f)return{kind:"missing"};if(f===b)return{kind:"stay"};try{return await c(f)?{kind:"open",path:e(f)}:{kind:"missing"}}catch{return{kind:"missing"}}}a.s(["HANDOFF_STATUS_PATH",0,"/api/marketplace-handoff/status","IMPORT_RETURN_QUERY",0,b,"handoffStartPath",0,function(a,b){return`/api/marketplace-handoff?return=${encodeURIComponent(a+b)}`},"importedBotId",0,d,"importedConfigPath",0,e,"marketImportView",0,function(a){switch(a){case"checking":return{busy:!0,tone:"muted",message:"Checking Grok Marketplace…"};case"redirecting":return{busy:!0,tone:"muted",message:"Opening Grok Marketplace…"};case"unavailable":return{busy:!1,tone:"error",message:"Grok Marketplace isn't configured. Set CLONE_MARKET_URL on the Botmancers server."};case"failed":return{busy:!1,tone:"error",message:"Couldn't reach Botmancers to start the import. Try again."};case"missing":return{busy:!1,tone:"error",message:"Imported agent not found. The import may not have completed."};default:return{busy:!1,tone:"muted",message:"Imports a new agent and opens its Config. This agent is not changed."}}},"resolveImportReturn",0,f])}];
2
-
3
- //# sourceMappingURL=_1cvuhjt._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[20851,22151,a=>{"use strict";let b=["hermes","cursor","claude","codex","muse"],c={hermes:"Hermes",cursor:"Cursor",claude:"Claude",codex:"Codex",muse:"Muse Code"},d="hermes";function e(a){return b.includes(String(a))?c[a]:String(a??"")}b.join("|"),a.s(["AGENTS",0,b,"AGENT_LABELS",0,c,"DEFAULT_AGENT",0,d,"agentLabel",0,e],22151);let f=b.map(a=>({value:a,label:c[a]}));function g(a){return e((a.agent??"").trim()||d)}function h(a){let b=a.runtime_connection;return b&&b.label.trim()?b.label.trim():(a.runtime_connection_id??"").trim()?(a.runtime_connection_id??"").trim():null}function i(a){return`~/.botmancers/${a}`}let j="~/.botmancers/{agentID}",k=`Default: ${j} — {agentID} is this agent's ID, assigned at creation.`;function l(a){return String(a).padStart(2,"0")}let m=[{prefix:"[Agent failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck handoff]",kind:"handoff",label:"Agent launch"},{prefix:"[Deck run]",kind:"run",label:"Agent run"},{prefix:"[Deck review]",kind:"review",label:"Agent review"},{prefix:"[Deck resume]",kind:"resume",label:"Agent resume"},{prefix:"[Deck result]",kind:"result",label:"Agent result"},{prefix:"[Deck failed]",kind:"failed",label:"Agent failed"},{prefix:"[Deck needs selection]",kind:"reselection",label:"Agent needs setup"},{prefix:"[Deck needs reselection]",kind:"reselection",label:"Agent needs setup"}];a.s(["AGENT_OPTIONS",0,f,"NEW_AGENT_WORKSPACE_HINT",0,k,"WORKSPACE_TEMPLATE",0,j,"agentEventDisplay",0,function(a){let b=String(a??"").trimStart(),c=m.find(a=>b.startsWith(a.prefix));return c?{label:c.label,detail:b.slice(c.prefix.length).trim()}:null},"botAgentLabel",0,g,"botConnectionLabel",0,h,"configWorkspaceHint",0,function(a){return`Default: ${i(a)} — leave blank to use it.`},"defaultWorkdirFor",0,i,"formatClock",0,function(a){let b=new Date(a);return`${l(b.getHours())}:${l(b.getMinutes())}:${l(b.getSeconds())}`},"rosterRuntimeLine",0,function(a){let b=`Agent: ${g(a)} \xb7 `+(h(a)??"No connection");return!1===a.launchable?b+" — see Config":b}],20851)},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}}];
2
-
3
- //# sourceMappingURL=_1is_iwu._.js.map