botmancers 0.1.0 → 0.3.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 (1525) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +214 -19
  3. package/app/.next/BUILD_ID +1 -0
  4. package/app/.next/app-path-routes-manifest.json +40 -0
  5. package/app/.next/build-manifest.json +24 -0
  6. package/app/.next/node_modules/better-sqlite3-90e2652d1716b047/index.js +1 -0
  7. package/app/.next/node_modules/better-sqlite3-90e2652d1716b047/package.json +1 -0
  8. package/app/.next/package.json +1 -0
  9. package/app/.next/prerender-manifest.json +125 -0
  10. package/app/.next/required-server-files.json +365 -0
  11. package/app/.next/routes-manifest.json +317 -0
  12. package/app/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  13. package/app/.next/server/app/_global-error/page/build-manifest.json +20 -0
  14. package/app/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  15. package/app/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  16. package/app/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  17. package/app/.next/server/app/_global-error/page.js +9 -0
  18. package/app/.next/server/app/_global-error/page.js.nft.json +1 -0
  19. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  20. package/app/.next/server/app/_global-error.html +1 -0
  21. package/app/.next/server/app/_global-error.meta +30 -0
  22. package/app/.next/server/app/_global-error.rsc +14 -0
  23. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +19 -0
  24. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  25. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  26. package/app/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  27. package/app/.next/server/app/_not-found/page/build-manifest.json +20 -0
  28. package/app/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  29. package/app/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  30. package/app/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  31. package/app/.next/server/app/_not-found/page.js +12 -0
  32. package/app/.next/server/app/_not-found/page.js.nft.json +1 -0
  33. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  34. package/app/.next/server/app/_not-found.html +1 -0
  35. package/app/.next/server/app/_not-found.meta +35 -0
  36. package/app/.next/server/app/_not-found.rsc +16 -0
  37. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
  38. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +22 -0
  39. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  40. package/app/.next/server/app/api/agent-deck/decks/route/app-paths-manifest.json +3 -0
  41. package/app/.next/server/app/api/agent-deck/decks/route/build-manifest.json +12 -0
  42. package/app/.next/server/app/api/agent-deck/decks/route/server-reference-manifest.json +4 -0
  43. package/app/.next/server/app/api/agent-deck/decks/route.js +9 -0
  44. package/app/.next/server/app/api/agent-deck/decks/route.js.nft.json +1 -0
  45. package/app/.next/server/app/api/agent-deck/decks/route_client-reference-manifest.js +3 -0
  46. package/app/.next/server/app/api/agent-deck/settings/route/app-paths-manifest.json +3 -0
  47. package/app/.next/server/app/api/agent-deck/settings/route/build-manifest.json +12 -0
  48. package/app/.next/server/app/api/agent-deck/settings/route/server-reference-manifest.json +4 -0
  49. package/app/.next/server/app/api/agent-deck/settings/route.js +9 -0
  50. package/app/.next/server/app/api/agent-deck/settings/route.js.nft.json +1 -0
  51. package/app/.next/server/app/api/agent-deck/settings/route_client-reference-manifest.js +3 -0
  52. package/app/.next/server/app/api/bots/[id]/config/route/app-paths-manifest.json +3 -0
  53. package/app/.next/server/app/api/bots/[id]/config/route/build-manifest.json +12 -0
  54. package/app/.next/server/app/api/bots/[id]/config/route/server-reference-manifest.json +4 -0
  55. package/app/.next/server/app/api/bots/[id]/config/route.js +9 -0
  56. package/app/.next/server/app/api/bots/[id]/config/route.js.nft.json +1 -0
  57. package/app/.next/server/app/api/bots/[id]/config/route_client-reference-manifest.js +3 -0
  58. package/app/.next/server/app/api/bots/[id]/skill/route/app-paths-manifest.json +3 -0
  59. package/app/.next/server/app/api/bots/[id]/skill/route/build-manifest.json +12 -0
  60. package/app/.next/server/app/api/bots/[id]/skill/route/server-reference-manifest.json +4 -0
  61. package/app/.next/server/app/api/bots/[id]/skill/route.js +9 -0
  62. package/app/.next/server/app/api/bots/[id]/skill/route.js.nft.json +1 -0
  63. package/app/.next/server/app/api/bots/[id]/skill/route_client-reference-manifest.js +3 -0
  64. package/app/.next/server/app/api/bots/availability/route/app-paths-manifest.json +3 -0
  65. package/app/.next/server/app/api/bots/availability/route/build-manifest.json +12 -0
  66. package/app/.next/server/app/api/bots/availability/route/server-reference-manifest.json +4 -0
  67. package/app/.next/server/app/api/bots/availability/route.js +8 -0
  68. package/app/.next/server/app/api/bots/availability/route.js.nft.json +1 -0
  69. package/app/.next/server/app/api/bots/availability/route_client-reference-manifest.js +3 -0
  70. package/app/.next/server/app/api/bots/delete-preview/route/app-paths-manifest.json +3 -0
  71. package/app/.next/server/app/api/bots/delete-preview/route/build-manifest.json +12 -0
  72. package/app/.next/server/app/api/bots/delete-preview/route/server-reference-manifest.json +4 -0
  73. package/app/.next/server/app/api/bots/delete-preview/route.js +9 -0
  74. package/app/.next/server/app/api/bots/delete-preview/route.js.nft.json +1 -0
  75. package/app/.next/server/app/api/bots/delete-preview/route_client-reference-manifest.js +3 -0
  76. package/app/.next/server/app/api/bots/import/route/app-paths-manifest.json +3 -0
  77. package/app/.next/server/app/api/bots/import/route/build-manifest.json +12 -0
  78. package/app/.next/server/app/api/bots/import/route/server-reference-manifest.json +4 -0
  79. package/app/.next/server/app/api/bots/import/route.js +10 -0
  80. package/app/.next/server/app/api/bots/import/route.js.nft.json +1 -0
  81. package/app/.next/server/app/api/bots/import/route_client-reference-manifest.js +3 -0
  82. package/app/.next/server/app/api/bots/manage/route/app-paths-manifest.json +3 -0
  83. package/app/.next/server/app/api/bots/manage/route/build-manifest.json +12 -0
  84. package/app/.next/server/app/api/bots/manage/route/server-reference-manifest.json +4 -0
  85. package/app/.next/server/app/api/bots/manage/route.js +9 -0
  86. package/app/.next/server/app/api/bots/manage/route.js.nft.json +1 -0
  87. package/app/.next/server/app/api/bots/manage/route_client-reference-manifest.js +3 -0
  88. package/app/.next/server/app/api/bots/name-migrations/route/app-paths-manifest.json +3 -0
  89. package/app/.next/server/app/api/bots/name-migrations/route/build-manifest.json +12 -0
  90. package/app/.next/server/app/api/bots/name-migrations/route/server-reference-manifest.json +4 -0
  91. package/app/.next/server/app/api/bots/name-migrations/route.js +9 -0
  92. package/app/.next/server/app/api/bots/name-migrations/route.js.nft.json +1 -0
  93. package/app/.next/server/app/api/bots/name-migrations/route_client-reference-manifest.js +3 -0
  94. package/app/.next/server/app/api/bots/route/app-paths-manifest.json +3 -0
  95. package/app/.next/server/app/api/bots/route/build-manifest.json +12 -0
  96. package/app/.next/server/app/api/bots/route/server-reference-manifest.json +4 -0
  97. package/app/.next/server/app/api/bots/route.js +15 -0
  98. package/app/.next/server/app/api/bots/route.js.nft.json +1 -0
  99. package/app/.next/server/app/api/bots/route_client-reference-manifest.js +3 -0
  100. package/app/.next/server/app/api/conversations/[id]/approve/route/app-paths-manifest.json +3 -0
  101. package/app/.next/server/app/api/conversations/[id]/approve/route/build-manifest.json +12 -0
  102. package/app/.next/server/app/api/conversations/[id]/approve/route/server-reference-manifest.json +4 -0
  103. package/app/.next/server/app/api/conversations/[id]/approve/route.js +10 -0
  104. package/app/.next/server/app/api/conversations/[id]/approve/route.js.nft.json +1 -0
  105. package/app/.next/server/app/api/conversations/[id]/approve/route_client-reference-manifest.js +3 -0
  106. package/app/.next/server/app/api/conversations/[id]/deny/route/app-paths-manifest.json +3 -0
  107. package/app/.next/server/app/api/conversations/[id]/deny/route/build-manifest.json +12 -0
  108. package/app/.next/server/app/api/conversations/[id]/deny/route/server-reference-manifest.json +4 -0
  109. package/app/.next/server/app/api/conversations/[id]/deny/route.js +10 -0
  110. package/app/.next/server/app/api/conversations/[id]/deny/route.js.nft.json +1 -0
  111. package/app/.next/server/app/api/conversations/[id]/deny/route_client-reference-manifest.js +3 -0
  112. package/app/.next/server/app/api/conversations/[id]/draft/route/app-paths-manifest.json +3 -0
  113. package/app/.next/server/app/api/conversations/[id]/draft/route/build-manifest.json +12 -0
  114. package/app/.next/server/app/api/conversations/[id]/draft/route/server-reference-manifest.json +4 -0
  115. package/app/.next/server/app/api/conversations/[id]/draft/route.js +10 -0
  116. package/app/.next/server/app/api/conversations/[id]/draft/route.js.nft.json +1 -0
  117. package/app/.next/server/app/api/conversations/[id]/draft/route_client-reference-manifest.js +3 -0
  118. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/app-paths-manifest.json +3 -0
  119. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/build-manifest.json +12 -0
  120. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route/server-reference-manifest.json +4 -0
  121. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js +10 -0
  122. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route.js.nft.json +1 -0
  123. package/app/.next/server/app/api/conversations/[id]/messages/[messageId]/stop/route_client-reference-manifest.js +3 -0
  124. package/app/.next/server/app/api/conversations/[id]/messages/route/app-paths-manifest.json +3 -0
  125. package/app/.next/server/app/api/conversations/[id]/messages/route/build-manifest.json +12 -0
  126. package/app/.next/server/app/api/conversations/[id]/messages/route/server-reference-manifest.json +4 -0
  127. package/app/.next/server/app/api/conversations/[id]/messages/route.js +14 -0
  128. package/app/.next/server/app/api/conversations/[id]/messages/route.js.nft.json +1 -0
  129. package/app/.next/server/app/api/conversations/[id]/messages/route_client-reference-manifest.js +3 -0
  130. package/app/.next/server/app/api/conversations/[id]/route/app-paths-manifest.json +3 -0
  131. package/app/.next/server/app/api/conversations/[id]/route/build-manifest.json +12 -0
  132. package/app/.next/server/app/api/conversations/[id]/route/server-reference-manifest.json +4 -0
  133. package/app/.next/server/app/api/conversations/[id]/route.js +9 -0
  134. package/app/.next/server/app/api/conversations/[id]/route.js.nft.json +1 -0
  135. package/app/.next/server/app/api/conversations/[id]/route_client-reference-manifest.js +3 -0
  136. package/app/.next/server/app/api/conversations/[id]/stop/route/app-paths-manifest.json +3 -0
  137. package/app/.next/server/app/api/conversations/[id]/stop/route/build-manifest.json +12 -0
  138. package/app/.next/server/app/api/conversations/[id]/stop/route/server-reference-manifest.json +4 -0
  139. package/app/.next/server/app/api/conversations/[id]/stop/route.js +14 -0
  140. package/app/.next/server/app/api/conversations/[id]/stop/route.js.nft.json +1 -0
  141. package/app/.next/server/app/api/conversations/[id]/stop/route_client-reference-manifest.js +3 -0
  142. package/app/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
  143. package/app/.next/server/app/api/conversations/route/build-manifest.json +12 -0
  144. package/app/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
  145. package/app/.next/server/app/api/conversations/route.js +9 -0
  146. package/app/.next/server/app/api/conversations/route.js.nft.json +1 -0
  147. package/app/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
  148. package/app/.next/server/app/api/files/[name]/route/app-paths-manifest.json +3 -0
  149. package/app/.next/server/app/api/files/[name]/route/build-manifest.json +12 -0
  150. package/app/.next/server/app/api/files/[name]/route/server-reference-manifest.json +4 -0
  151. package/app/.next/server/app/api/files/[name]/route.js +7 -0
  152. package/app/.next/server/app/api/files/[name]/route.js.nft.json +1 -0
  153. package/app/.next/server/app/api/files/[name]/route_client-reference-manifest.js +3 -0
  154. package/app/.next/server/app/api/groups/route/app-paths-manifest.json +3 -0
  155. package/app/.next/server/app/api/groups/route/build-manifest.json +12 -0
  156. package/app/.next/server/app/api/groups/route/server-reference-manifest.json +4 -0
  157. package/app/.next/server/app/api/groups/route.js +9 -0
  158. package/app/.next/server/app/api/groups/route.js.nft.json +1 -0
  159. package/app/.next/server/app/api/groups/route_client-reference-manifest.js +3 -0
  160. package/app/.next/server/app/api/health/route/app-paths-manifest.json +3 -0
  161. package/app/.next/server/app/api/health/route/build-manifest.json +12 -0
  162. package/app/.next/server/app/api/health/route/server-reference-manifest.json +4 -0
  163. package/app/.next/server/app/api/health/route.js +7 -0
  164. package/app/.next/server/app/api/health/route.js.nft.json +1 -0
  165. package/app/.next/server/app/api/health/route_client-reference-manifest.js +3 -0
  166. package/app/.next/server/app/api/import-capabilities/route/app-paths-manifest.json +3 -0
  167. package/app/.next/server/app/api/import-capabilities/route/build-manifest.json +12 -0
  168. package/app/.next/server/app/api/import-capabilities/route/server-reference-manifest.json +4 -0
  169. package/app/.next/server/app/api/import-capabilities/route.js +7 -0
  170. package/app/.next/server/app/api/import-capabilities/route.js.nft.json +1 -0
  171. package/app/.next/server/app/api/import-capabilities/route_client-reference-manifest.js +3 -0
  172. package/app/.next/server/app/api/marketplace-handoff/route/app-paths-manifest.json +3 -0
  173. package/app/.next/server/app/api/marketplace-handoff/route/build-manifest.json +12 -0
  174. package/app/.next/server/app/api/marketplace-handoff/route/server-reference-manifest.json +4 -0
  175. package/app/.next/server/app/api/marketplace-handoff/route.js +7 -0
  176. package/app/.next/server/app/api/marketplace-handoff/route.js.nft.json +1 -0
  177. package/app/.next/server/app/api/marketplace-handoff/route_client-reference-manifest.js +3 -0
  178. package/app/.next/server/app/api/marketplace-handoff/status/route/app-paths-manifest.json +3 -0
  179. package/app/.next/server/app/api/marketplace-handoff/status/route/build-manifest.json +12 -0
  180. package/app/.next/server/app/api/marketplace-handoff/status/route/server-reference-manifest.json +4 -0
  181. package/app/.next/server/app/api/marketplace-handoff/status/route.js +7 -0
  182. package/app/.next/server/app/api/marketplace-handoff/status/route.js.nft.json +1 -0
  183. package/app/.next/server/app/api/marketplace-handoff/status/route_client-reference-manifest.js +3 -0
  184. package/app/.next/server/app/api/mcp/route/app-paths-manifest.json +3 -0
  185. package/app/.next/server/app/api/mcp/route/build-manifest.json +12 -0
  186. package/app/.next/server/app/api/mcp/route/server-reference-manifest.json +4 -0
  187. package/app/.next/server/app/api/mcp/route.js +9 -0
  188. package/app/.next/server/app/api/mcp/route.js.nft.json +1 -0
  189. package/app/.next/server/app/api/mcp/route_client-reference-manifest.js +3 -0
  190. package/app/.next/server/app/api/messages/[id]/between/route/app-paths-manifest.json +3 -0
  191. package/app/.next/server/app/api/messages/[id]/between/route/build-manifest.json +12 -0
  192. package/app/.next/server/app/api/messages/[id]/between/route/server-reference-manifest.json +4 -0
  193. package/app/.next/server/app/api/messages/[id]/between/route.js +9 -0
  194. package/app/.next/server/app/api/messages/[id]/between/route.js.nft.json +1 -0
  195. package/app/.next/server/app/api/messages/[id]/between/route_client-reference-manifest.js +3 -0
  196. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/app-paths-manifest.json +3 -0
  197. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/build-manifest.json +12 -0
  198. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route/server-reference-manifest.json +4 -0
  199. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js +9 -0
  200. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route.js.nft.json +1 -0
  201. package/app/.next/server/app/api/v0/agents/[agentId]/messages/route_client-reference-manifest.js +3 -0
  202. package/app/.next/server/app/api/v0/conversations/[id]/route/app-paths-manifest.json +3 -0
  203. package/app/.next/server/app/api/v0/conversations/[id]/route/build-manifest.json +12 -0
  204. package/app/.next/server/app/api/v0/conversations/[id]/route/server-reference-manifest.json +4 -0
  205. package/app/.next/server/app/api/v0/conversations/[id]/route.js +9 -0
  206. package/app/.next/server/app/api/v0/conversations/[id]/route.js.nft.json +1 -0
  207. package/app/.next/server/app/api/v0/conversations/[id]/route_client-reference-manifest.js +3 -0
  208. package/app/.next/server/app/api/v0/mcp/route/app-paths-manifest.json +3 -0
  209. package/app/.next/server/app/api/v0/mcp/route/build-manifest.json +12 -0
  210. package/app/.next/server/app/api/v0/mcp/route/server-reference-manifest.json +4 -0
  211. package/app/.next/server/app/api/v0/mcp/route.js +10 -0
  212. package/app/.next/server/app/api/v0/mcp/route.js.nft.json +1 -0
  213. package/app/.next/server/app/api/v0/mcp/route_client-reference-manifest.js +3 -0
  214. package/app/.next/server/app/api/v0/requests/[id]/route/app-paths-manifest.json +3 -0
  215. package/app/.next/server/app/api/v0/requests/[id]/route/build-manifest.json +12 -0
  216. package/app/.next/server/app/api/v0/requests/[id]/route/server-reference-manifest.json +4 -0
  217. package/app/.next/server/app/api/v0/requests/[id]/route.js +9 -0
  218. package/app/.next/server/app/api/v0/requests/[id]/route.js.nft.json +1 -0
  219. package/app/.next/server/app/api/v0/requests/[id]/route_client-reference-manifest.js +3 -0
  220. package/app/.next/server/app/api/wake-grants/[id]/revoke/route/app-paths-manifest.json +3 -0
  221. package/app/.next/server/app/api/wake-grants/[id]/revoke/route/build-manifest.json +12 -0
  222. package/app/.next/server/app/api/wake-grants/[id]/revoke/route/server-reference-manifest.json +4 -0
  223. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js +11 -0
  224. package/app/.next/server/app/api/wake-grants/[id]/revoke/route.js.nft.json +1 -0
  225. package/app/.next/server/app/api/wake-grants/[id]/revoke/route_client-reference-manifest.js +3 -0
  226. package/app/.next/server/app/api/wakes/[id]/decision/route/app-paths-manifest.json +3 -0
  227. package/app/.next/server/app/api/wakes/[id]/decision/route/build-manifest.json +12 -0
  228. package/app/.next/server/app/api/wakes/[id]/decision/route/server-reference-manifest.json +4 -0
  229. package/app/.next/server/app/api/wakes/[id]/decision/route.js +11 -0
  230. package/app/.next/server/app/api/wakes/[id]/decision/route.js.nft.json +1 -0
  231. package/app/.next/server/app/api/wakes/[id]/decision/route_client-reference-manifest.js +3 -0
  232. package/app/.next/server/app/api/wakes/[id]/retry/route/app-paths-manifest.json +3 -0
  233. package/app/.next/server/app/api/wakes/[id]/retry/route/build-manifest.json +12 -0
  234. package/app/.next/server/app/api/wakes/[id]/retry/route/server-reference-manifest.json +4 -0
  235. package/app/.next/server/app/api/wakes/[id]/retry/route.js +11 -0
  236. package/app/.next/server/app/api/wakes/[id]/retry/route.js.nft.json +1 -0
  237. package/app/.next/server/app/api/wakes/[id]/retry/route_client-reference-manifest.js +3 -0
  238. package/app/.next/server/app/bots/[id]/config/page/app-paths-manifest.json +3 -0
  239. package/app/.next/server/app/bots/[id]/config/page/build-manifest.json +20 -0
  240. package/app/.next/server/app/bots/[id]/config/page/next-font-manifest.json +11 -0
  241. package/app/.next/server/app/bots/[id]/config/page/react-loadable-manifest.json +1 -0
  242. package/app/.next/server/app/bots/[id]/config/page/server-reference-manifest.json +4 -0
  243. package/app/.next/server/app/bots/[id]/config/page.js +13 -0
  244. package/app/.next/server/app/bots/[id]/config/page.js.nft.json +1 -0
  245. package/app/.next/server/app/bots/[id]/config/page_client-reference-manifest.js +3 -0
  246. package/app/.next/server/app/index.html +1 -0
  247. package/app/.next/server/app/index.meta +29 -0
  248. package/app/.next/server/app/index.rsc +20 -0
  249. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +23 -0
  250. package/app/.next/server/app/index.segments/_full.segment.rsc +20 -0
  251. package/app/.next/server/app/index.segments/_tree.segment.rsc +4 -0
  252. package/app/.next/server/app/page/app-paths-manifest.json +3 -0
  253. package/app/.next/server/app/page/build-manifest.json +20 -0
  254. package/app/.next/server/app/page/next-font-manifest.json +11 -0
  255. package/app/.next/server/app/page/react-loadable-manifest.json +1 -0
  256. package/app/.next/server/app/page/server-reference-manifest.json +4 -0
  257. package/app/.next/server/app/page.js +13 -0
  258. package/app/.next/server/app/page.js.nft.json +1 -0
  259. package/app/.next/server/app/page_client-reference-manifest.js +3 -0
  260. package/app/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  261. package/app/.next/server/app/settings/page/build-manifest.json +20 -0
  262. package/app/.next/server/app/settings/page/next-font-manifest.json +11 -0
  263. package/app/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  264. package/app/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  265. package/app/.next/server/app/settings/page.js +13 -0
  266. package/app/.next/server/app/settings/page.js.nft.json +1 -0
  267. package/app/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  268. package/app/.next/server/app/settings.html +1 -0
  269. package/app/.next/server/app/settings.meta +34 -0
  270. package/app/.next/server/app/settings.rsc +22 -0
  271. package/app/.next/server/app/settings.segments/_full.segment.rsc +22 -0
  272. package/app/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
  273. package/app/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +26 -0
  274. package/app/.next/server/app-paths-manifest.json +40 -0
  275. package/app/.next/server/chunks/1jng_app_api_conversations_[id]_messages_[messageId]_stop_route_actions_1qahzxv.js +3 -0
  276. package/app/.next/server/chunks/[externals]__18bqksw._.js +3 -0
  277. package/app/.next/server/chunks/[root-of-the-server]__00ntari._.js +165 -0
  278. package/app/.next/server/chunks/[root-of-the-server]__07l_rgn._.js +3 -0
  279. package/app/.next/server/chunks/[root-of-the-server]__08i4wq6._.js +3 -0
  280. package/app/.next/server/chunks/[root-of-the-server]__09d-yrq._.js +3 -0
  281. package/app/.next/server/chunks/[root-of-the-server]__0ab4e_k._.js +3 -0
  282. package/app/.next/server/chunks/[root-of-the-server]__0d3fjix._.js +3 -0
  283. package/app/.next/server/chunks/[root-of-the-server]__0izjfmr._.js +1424 -0
  284. package/app/.next/server/chunks/[root-of-the-server]__0qozubc._.js +3 -0
  285. package/app/.next/server/chunks/[root-of-the-server]__0za34e1._.js +7 -0
  286. package/app/.next/server/chunks/[root-of-the-server]__10m3szc._.js +3 -0
  287. package/app/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
  288. package/app/.next/server/chunks/[root-of-the-server]__17oz13o._.js +5 -0
  289. package/app/.next/server/chunks/[root-of-the-server]__19hjzs0._.js +3 -0
  290. package/app/.next/server/chunks/[root-of-the-server]__1afl75n._.js +3 -0
  291. package/app/.next/server/chunks/[root-of-the-server]__1fjpie4._.js +3 -0
  292. package/app/.next/server/chunks/[root-of-the-server]__1khwkvb._.js +3 -0
  293. package/app/.next/server/chunks/[root-of-the-server]__1kvvdpx._.js +7 -0
  294. package/app/.next/server/chunks/[root-of-the-server]__1qanlbg._.js +3 -0
  295. package/app/.next/server/chunks/[root-of-the-server]__1qoa704._.js +7 -0
  296. package/app/.next/server/chunks/[root-of-the-server]__1vxmbdl._.js +3 -0
  297. package/app/.next/server/chunks/[root-of-the-server]__20wve4_._.js +3 -0
  298. package/app/.next/server/chunks/[turbopack]_runtime.js +807 -0
  299. package/app/.next/server/chunks/_001yhxu._.js +3 -0
  300. package/app/.next/server/chunks/_09vfvrb._.js +4 -0
  301. package/app/.next/server/chunks/_0a2do3x._.js +3 -0
  302. package/app/.next/server/chunks/_0dc333_._.js +3 -0
  303. package/app/.next/server/chunks/_0ggf7vy._.js +3 -0
  304. package/app/.next/server/chunks/_0gtqbub._.js +3 -0
  305. package/app/.next/server/chunks/_0i7ga8c._.js +3 -0
  306. package/app/.next/server/chunks/_0orubev._.js +3 -0
  307. package/app/.next/server/chunks/_0sfpe9z._.js +3 -0
  308. package/app/.next/server/chunks/_0th2j4w._.js +3 -0
  309. package/app/.next/server/chunks/_0unhh2a._.js +3 -0
  310. package/app/.next/server/chunks/_1-5mthb._.js +3 -0
  311. package/app/.next/server/chunks/_199jbje._.js +3 -0
  312. package/app/.next/server/chunks/_1ee4ej2._.js +3 -0
  313. package/app/.next/server/chunks/_1esxu1s._.js +3 -0
  314. package/app/.next/server/chunks/_1gn7eh7._.js +3 -0
  315. package/app/.next/server/chunks/_1gw7qwf._.js +3 -0
  316. package/app/.next/server/chunks/_1ho6alp._.js +3 -0
  317. package/app/.next/server/chunks/_1inyx08._.js +3 -0
  318. package/app/.next/server/chunks/_1kjsnlr._.js +3 -0
  319. package/app/.next/server/chunks/_1p8rola._.js +3 -0
  320. package/app/.next/server/chunks/_1t5yl-5._.js +3 -0
  321. package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_decks_route_actions_0yguyfv.js +3 -0
  322. package/app/.next/server/chunks/_next-internal_server_app_api_agent-deck_settings_route_actions_0z_nbkb.js +3 -0
  323. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_config_route_actions_0ze4d5o.js +3 -0
  324. package/app/.next/server/chunks/_next-internal_server_app_api_bots_[id]_skill_route_actions_0g0-9mf.js +3 -0
  325. package/app/.next/server/chunks/_next-internal_server_app_api_bots_availability_route_actions_1i4p_al.js +3 -0
  326. package/app/.next/server/chunks/_next-internal_server_app_api_bots_delete-preview_route_actions_1_i3b_g.js +3 -0
  327. package/app/.next/server/chunks/_next-internal_server_app_api_bots_import_route_actions_1rvqr5o.js +3 -0
  328. package/app/.next/server/chunks/_next-internal_server_app_api_bots_manage_route_actions_1w4bk3a.js +3 -0
  329. package/app/.next/server/chunks/_next-internal_server_app_api_bots_name-migrations_route_actions_1pbn_xd.js +3 -0
  330. package/app/.next/server/chunks/_next-internal_server_app_api_bots_route_actions_0nc-7_e.js +3 -0
  331. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_approve_route_actions_0bn9gyy.js +3 -0
  332. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_deny_route_actions_0028jzm.js +3 -0
  333. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_draft_route_actions_0-i84n9.js +3 -0
  334. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_messages_route_actions_18znalg.js +3 -0
  335. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_route_actions_1d9cstb.js +3 -0
  336. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_[id]_stop_route_actions_01th9do.js +3 -0
  337. package/app/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
  338. package/app/.next/server/chunks/_next-internal_server_app_api_files_[name]_route_actions_0_4hwjw.js +3 -0
  339. package/app/.next/server/chunks/_next-internal_server_app_api_groups_route_actions_1g3bvao.js +3 -0
  340. package/app/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +3 -0
  341. package/app/.next/server/chunks/_next-internal_server_app_api_import-capabilities_route_actions_0ojiaoa.js +3 -0
  342. package/app/.next/server/chunks/_next-internal_server_app_api_marketplace-handoff_route_actions_06sqt8e.js +3 -0
  343. package/app/.next/server/chunks/_next-internal_server_app_api_marketplace-handoff_status_route_actions_1wspmjr.js +3 -0
  344. package/app/.next/server/chunks/_next-internal_server_app_api_mcp_route_actions_1thtluk.js +3 -0
  345. package/app/.next/server/chunks/_next-internal_server_app_api_messages_[id]_between_route_actions_1fh_y5e.js +3 -0
  346. package/app/.next/server/chunks/_next-internal_server_app_api_v0_agents_[agentId]_messages_route_actions_04p39zy.js +3 -0
  347. package/app/.next/server/chunks/_next-internal_server_app_api_v0_conversations_[id]_route_actions_1p4d001.js +3 -0
  348. package/app/.next/server/chunks/_next-internal_server_app_api_v0_mcp_route_actions_0rqg06l.js +3 -0
  349. package/app/.next/server/chunks/_next-internal_server_app_api_v0_requests_[id]_route_actions_0goo151.js +3 -0
  350. package/app/.next/server/chunks/_next-internal_server_app_api_wake-grants_[id]_revoke_route_actions_0esbzxd.js +3 -0
  351. package/app/.next/server/chunks/_next-internal_server_app_api_wakes_[id]_decision_route_actions_0torew3.js +3 -0
  352. package/app/.next/server/chunks/_next-internal_server_app_api_wakes_[id]_retry_route_actions_0hrpzfl.js +3 -0
  353. package/app/.next/server/chunks/app_api_import-capabilities_route_ts_013w1kt._.js +3 -0
  354. package/app/.next/server/chunks/lib_051fv4x._.js +111 -0
  355. package/app/.next/server/chunks/lib_07adeq3._.js +111 -0
  356. package/app/.next/server/chunks/lib_0kik6bx._.js +59 -0
  357. package/app/.next/server/chunks/lib_0pe3tiv._.js +59 -0
  358. package/app/.next/server/chunks/lib_0v6lblw._.js +5 -0
  359. package/app/.next/server/chunks/lib_bot-deletion_ts_0zx9yv7._.js +3 -0
  360. package/app/.next/server/chunks/lib_draft_ts_1atoius._.js +3 -0
  361. package/app/.next/server/chunks/node_modules_next_1zc5q0a._.js +158 -0
  362. package/app/.next/server/chunks/ssr/[root-of-the-server]__029oxo_._.js +3 -0
  363. package/app/.next/server/chunks/ssr/[root-of-the-server]__07-2zug._.js +3 -0
  364. package/app/.next/server/chunks/ssr/[root-of-the-server]__0_wvthf._.js +3 -0
  365. package/app/.next/server/chunks/ssr/[root-of-the-server]__0gz0l81._.js +14 -0
  366. package/app/.next/server/chunks/ssr/[root-of-the-server]__0sq4frf._.js +3 -0
  367. package/app/.next/server/chunks/ssr/[root-of-the-server]__194qvx8._.js +3 -0
  368. package/app/.next/server/chunks/ssr/[root-of-the-server]__1aesokn._.js +3 -0
  369. package/app/.next/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +33 -0
  370. package/app/.next/server/chunks/ssr/[root-of-the-server]__1x7o-fe._.js +33 -0
  371. package/app/.next/server/chunks/ssr/[root-of-the-server]__1ypl2q0._.js +3 -0
  372. package/app/.next/server/chunks/ssr/[turbopack]_runtime.js +807 -0
  373. package/app/.next/server/chunks/ssr/_0k_7i66._.js +131 -0
  374. package/app/.next/server/chunks/ssr/_1flnty7._.js +23 -0
  375. package/app/.next/server/chunks/ssr/_1o94bnv._.js +5 -0
  376. package/app/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
  377. package/app/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
  378. package/app/.next/server/chunks/ssr/_next-internal_server_app_bots_[id]_config_page_actions_0lfijvr.js +3 -0
  379. package/app/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
  380. package/app/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js +3 -0
  381. package/app/.next/server/chunks/ssr/app_components_0bhuhd-._.js +3 -0
  382. package/app/.next/server/chunks/ssr/app_components_0w2_b3t._.js +3 -0
  383. package/app/.next/server/chunks/ssr/app_settings_page_tsx_1t-rdz-._.js +3 -0
  384. package/app/.next/server/chunks/ssr/node_modules_1wax83z._.js +33 -0
  385. package/app/.next/server/chunks/ssr/node_modules_@swc_helpers_cjs__interop_require_default_cjs_1ztp13a._.js +3 -0
  386. package/app/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +6 -0
  387. package/app/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +3 -0
  388. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
  389. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
  390. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +3 -0
  391. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
  392. package/app/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +3 -0
  393. package/app/.next/server/functions-config-manifest.json +14 -0
  394. package/app/.next/server/middleware-build-manifest.js +24 -0
  395. package/app/.next/server/middleware-manifest.json +6 -0
  396. package/app/.next/server/middleware.js +5 -0
  397. package/app/.next/server/next-font-manifest.js +1 -0
  398. package/app/.next/server/next-font-manifest.json +23 -0
  399. package/app/.next/server/pages/404.html +1 -0
  400. package/app/.next/server/pages/500.html +1 -0
  401. package/app/.next/server/pages-manifest.json +4 -0
  402. package/app/.next/server/prefetch-hints.json +48 -0
  403. package/app/.next/server/server-reference-manifest.js +1 -0
  404. package/app/.next/server/server-reference-manifest.json +5 -0
  405. package/app/.next/static/chunks/0774d7ob6aze_.js +1 -0
  406. package/app/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  407. package/app/.next/static/chunks/0d3ein53nlgja.js +1 -0
  408. package/app/.next/static/chunks/0qbtymorcz-l9.js +3 -0
  409. package/app/.next/static/chunks/19mx3mg6lkumu.js +1 -0
  410. package/app/.next/static/chunks/2z-e6jheq0ftu.js +22 -0
  411. package/app/.next/static/chunks/3fntmmi971322.js +1 -0
  412. package/app/.next/static/chunks/3g4px251sg85e.js +1 -0
  413. package/app/.next/static/chunks/3s6nzrbk-8mnv.js +31 -0
  414. package/app/.next/static/chunks/3wdlh25l1vww9.js +1 -0
  415. package/app/.next/static/chunks/3zqbpbm93yqzh.css +3 -0
  416. package/app/.next/static/chunks/turbopack-03rfayxv7ep_b.js +1 -0
  417. package/app/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 +0 -0
  418. package/app/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 +0 -0
  419. package/app/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 +0 -0
  420. package/app/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 +0 -0
  421. package/app/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 +0 -0
  422. package/app/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 +0 -0
  423. package/app/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 +0 -0
  424. package/app/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 +0 -0
  425. package/app/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 +0 -0
  426. package/app/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 +0 -0
  427. package/app/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 +0 -0
  428. package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_buildManifest.js +16 -0
  429. package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_clientMiddlewareManifest.js +6 -0
  430. package/app/.next/static/u4r8RPgEfpxk-DGXeKV6g/_ssgManifest.js +1 -0
  431. package/app/BUILD_INFO.json +7 -0
  432. package/app/node_modules/@next/env/dist/index.js +1 -0
  433. package/app/node_modules/@next/env/package.json +36 -0
  434. package/app/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  435. package/app/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  436. package/app/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
  437. package/app/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
  438. package/app/node_modules/@swc/helpers/package.json +705 -0
  439. package/app/node_modules/better-sqlite3/LICENSE +21 -0
  440. package/app/node_modules/better-sqlite3/lib/binding.js +62 -0
  441. package/app/node_modules/better-sqlite3/lib/darwin-arm64.js +3 -0
  442. package/app/node_modules/better-sqlite3/lib/darwin-x64.js +3 -0
  443. package/app/node_modules/better-sqlite3/lib/database.js +109 -0
  444. package/app/node_modules/better-sqlite3/lib/index.js +3 -0
  445. package/app/node_modules/better-sqlite3/lib/linux-arm64.js +3 -0
  446. package/app/node_modules/better-sqlite3/lib/linux-x64.js +3 -0
  447. package/app/node_modules/better-sqlite3/lib/linuxmusl-arm64.js +4 -0
  448. package/app/node_modules/better-sqlite3/lib/linuxmusl-x64.js +4 -0
  449. package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  450. package/app/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  451. package/app/node_modules/better-sqlite3/lib/methods/explain.js +9 -0
  452. package/app/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  453. package/app/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  454. package/app/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  455. package/app/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  456. package/app/node_modules/better-sqlite3/lib/methods/table.js +195 -0
  457. package/app/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  458. package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  459. package/app/node_modules/better-sqlite3/lib/sqlite-error.js +25 -0
  460. package/app/node_modules/better-sqlite3/lib/util.js +12 -0
  461. package/app/node_modules/better-sqlite3/lib/win32-arm64.js +3 -0
  462. package/app/node_modules/better-sqlite3/lib/win32-x64.js +3 -0
  463. package/app/node_modules/better-sqlite3/package.json +67 -0
  464. package/app/node_modules/better-sqlite3/prebuilds/darwin-arm64.node +0 -0
  465. package/app/node_modules/better-sqlite3/prebuilds/darwin-x64.node +0 -0
  466. package/app/node_modules/better-sqlite3/prebuilds/linux-arm64.node +0 -0
  467. package/app/node_modules/better-sqlite3/prebuilds/linux-x64.node +0 -0
  468. package/app/node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node +0 -0
  469. package/app/node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node +0 -0
  470. package/app/node_modules/better-sqlite3/prebuilds/win32-arm64.node +0 -0
  471. package/app/node_modules/better-sqlite3/prebuilds/win32-x64.node +0 -0
  472. package/app/node_modules/client-only/index.js +0 -0
  473. package/app/node_modules/client-only/package.json +19 -0
  474. package/app/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
  475. package/app/node_modules/next/dist/build/define-env.js +263 -0
  476. package/app/node_modules/next/dist/build/duration-to-string.js +98 -0
  477. package/app/node_modules/next/dist/build/get-supported-browsers.js +38 -0
  478. package/app/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
  479. package/app/node_modules/next/dist/build/next-config-ts/transpile-config.js +140 -0
  480. package/app/node_modules/next/dist/build/output/format.js +84 -0
  481. package/app/node_modules/next/dist/build/output/log.js +135 -0
  482. package/app/node_modules/next/dist/build/segment-config/app/app-segment-config.js +178 -0
  483. package/app/node_modules/next/dist/build/segment-config/app/app-segments.js +147 -0
  484. package/app/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  485. package/app/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
  486. package/app/node_modules/next/dist/build/static-paths/app.js +783 -0
  487. package/app/node_modules/next/dist/build/static-paths/pages.js +169 -0
  488. package/app/node_modules/next/dist/build/static-paths/utils.js +119 -0
  489. package/app/node_modules/next/dist/build/swc/helpers.js +15 -0
  490. package/app/node_modules/next/dist/build/swc/index.js +1409 -0
  491. package/app/node_modules/next/dist/build/swc/install-bindings.js +30 -0
  492. package/app/node_modules/next/dist/build/swc/jest-transformer.js +77 -0
  493. package/app/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
  494. package/app/node_modules/next/dist/build/swc/options.js +411 -0
  495. package/app/node_modules/next/dist/build/swc/types.js +6 -0
  496. package/app/node_modules/next/dist/build/utils.js +1258 -0
  497. package/app/node_modules/next/dist/cli/next-test.js +171 -0
  498. package/app/node_modules/next/dist/client/add-base-path.js +24 -0
  499. package/app/node_modules/next/dist/client/app-call-server.js +34 -0
  500. package/app/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
  501. package/app/node_modules/next/dist/client/assign-location.js +29 -0
  502. package/app/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
  503. package/app/node_modules/next/dist/client/components/app-router-headers.js +128 -0
  504. package/app/node_modules/next/dist/client/components/app-router-instance.js +407 -0
  505. package/app/node_modules/next/dist/client/components/app-router-utils.js +62 -0
  506. package/app/node_modules/next/dist/client/components/app-router.js +522 -0
  507. package/app/node_modules/next/dist/client/components/builtin/default.js +35 -0
  508. package/app/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
  509. package/app/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
  510. package/app/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  511. package/app/node_modules/next/dist/client/components/error-boundary.js +148 -0
  512. package/app/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  513. package/app/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
  514. package/app/node_modules/next/dist/client/components/forbidden.js +48 -0
  515. package/app/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
  516. package/app/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
  517. package/app/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  518. package/app/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  519. package/app/node_modules/next/dist/client/components/instant-samples.js +134 -0
  520. package/app/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
  521. package/app/node_modules/next/dist/client/components/links.js +316 -0
  522. package/app/node_modules/next/dist/client/components/match-segments.js +32 -0
  523. package/app/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
  524. package/app/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
  525. package/app/node_modules/next/dist/client/components/navigation-dynamic-rendering.js +38 -0
  526. package/app/node_modules/next/dist/client/components/navigation-untracked.js +69 -0
  527. package/app/node_modules/next/dist/client/components/navigation.js +246 -0
  528. package/app/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
  529. package/app/node_modules/next/dist/client/components/not-found.js +42 -0
  530. package/app/node_modules/next/dist/client/components/offline.js +172 -0
  531. package/app/node_modules/next/dist/client/components/readonly-url-search-params.js +46 -0
  532. package/app/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
  533. package/app/node_modules/next/dist/client/components/redirect-error.js +43 -0
  534. package/app/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
  535. package/app/node_modules/next/dist/client/components/redirect.js +91 -0
  536. package/app/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +205 -0
  537. package/app/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  538. package/app/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +161 -0
  539. package/app/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  540. package/app/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +603 -0
  541. package/app/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +70 -0
  542. package/app/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1474 -0
  543. package/app/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
  544. package/app/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
  545. package/app/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  546. package/app/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +29 -0
  547. package/app/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
  548. package/app/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +90 -0
  549. package/app/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +75 -0
  550. package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +349 -0
  551. package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +67 -0
  552. package/app/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
  553. package/app/node_modules/next/dist/client/components/router-reducer/router-reducer.js +74 -0
  554. package/app/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +66 -0
  555. package/app/node_modules/next/dist/client/components/router-transition.js +135 -0
  556. package/app/node_modules/next/dist/client/components/segment-cache/bfcache.js +130 -0
  557. package/app/node_modules/next/dist/client/components/segment-cache/cache-key.js +56 -0
  558. package/app/node_modules/next/dist/client/components/segment-cache/cache-map.js +326 -0
  559. package/app/node_modules/next/dist/client/components/segment-cache/cache.js +2684 -0
  560. package/app/node_modules/next/dist/client/components/segment-cache/fetch.js +37 -0
  561. package/app/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
  562. package/app/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +415 -0
  563. package/app/node_modules/next/dist/client/components/segment-cache/navigation.js +773 -0
  564. package/app/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +648 -0
  565. package/app/node_modules/next/dist/client/components/segment-cache/prefetch.js +32 -0
  566. package/app/node_modules/next/dist/client/components/segment-cache/scheduler.js +1770 -0
  567. package/app/node_modules/next/dist/client/components/segment-cache/types.js +84 -0
  568. package/app/node_modules/next/dist/client/components/segment-cache/vary-path.js +326 -0
  569. package/app/node_modules/next/dist/client/components/server-async-storage.js +43 -0
  570. package/app/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
  571. package/app/node_modules/next/dist/client/components/unauthorized.js +49 -0
  572. package/app/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
  573. package/app/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
  574. package/app/node_modules/next/dist/client/components/unstable-rethrow.js +32 -0
  575. package/app/node_modules/next/dist/client/components/use-action-queue.js +148 -0
  576. package/app/node_modules/next/dist/client/components/use-offline.js +68 -0
  577. package/app/node_modules/next/dist/client/dev/debug-channel.js +428 -0
  578. package/app/node_modules/next/dist/client/flight-data-helpers.js +235 -0
  579. package/app/node_modules/next/dist/client/has-base-path.js +23 -0
  580. package/app/node_modules/next/dist/client/lib/console.js +177 -0
  581. package/app/node_modules/next/dist/client/lib/javascript-url.js +32 -0
  582. package/app/node_modules/next/dist/client/navigation-build-id.js +53 -0
  583. package/app/node_modules/next/dist/client/normalize-trailing-slash.js +37 -0
  584. package/app/node_modules/next/dist/client/remove-base-path.js +32 -0
  585. package/app/node_modules/next/dist/client/route-params.js +249 -0
  586. package/app/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  587. package/app/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  588. package/app/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  589. package/app/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  590. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  591. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  592. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  593. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  594. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  595. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  596. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  597. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  598. package/app/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  599. package/app/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
  600. package/app/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
  601. package/app/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  602. package/app/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  603. package/app/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  604. package/app/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  605. package/app/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  606. package/app/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  607. package/app/node_modules/next/dist/compiled/@vercel/detect-agent/index.js +1 -0
  608. package/app/node_modules/next/dist/compiled/@vercel/detect-agent/package.json +1 -0
  609. package/app/node_modules/next/dist/compiled/async-retry/index.js +1 -0
  610. package/app/node_modules/next/dist/compiled/async-retry/package.json +1 -0
  611. package/app/node_modules/next/dist/compiled/async-sema/index.js +1 -0
  612. package/app/node_modules/next/dist/compiled/async-sema/package.json +1 -0
  613. package/app/node_modules/next/dist/compiled/busboy/index.js +1 -0
  614. package/app/node_modules/next/dist/compiled/busboy/package.json +1 -0
  615. package/app/node_modules/next/dist/compiled/bytes/index.js +8 -0
  616. package/app/node_modules/next/dist/compiled/bytes/package.json +1 -0
  617. package/app/node_modules/next/dist/compiled/ci-info/index.js +1 -0
  618. package/app/node_modules/next/dist/compiled/ci-info/package.json +1 -0
  619. package/app/node_modules/next/dist/compiled/commander/index.js +1 -0
  620. package/app/node_modules/next/dist/compiled/commander/package.json +1 -0
  621. package/app/node_modules/next/dist/compiled/comment-json/index.js +7 -0
  622. package/app/node_modules/next/dist/compiled/comment-json/package.json +1 -0
  623. package/app/node_modules/next/dist/compiled/compression/index.js +58 -0
  624. package/app/node_modules/next/dist/compiled/compression/package.json +1 -0
  625. package/app/node_modules/next/dist/compiled/conf/index.js +3 -0
  626. package/app/node_modules/next/dist/compiled/conf/package.json +1 -0
  627. package/app/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
  628. package/app/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
  629. package/app/node_modules/next/dist/compiled/cookie/index.js +7 -0
  630. package/app/node_modules/next/dist/compiled/cookie/package.json +1 -0
  631. package/app/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
  632. package/app/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
  633. package/app/node_modules/next/dist/compiled/debug/index.js +1 -0
  634. package/app/node_modules/next/dist/compiled/debug/package.json +1 -0
  635. package/app/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
  636. package/app/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
  637. package/app/node_modules/next/dist/compiled/find-up/index.js +1 -0
  638. package/app/node_modules/next/dist/compiled/find-up/package.json +1 -0
  639. package/app/node_modules/next/dist/compiled/fresh/index.js +8 -0
  640. package/app/node_modules/next/dist/compiled/fresh/package.json +1 -0
  641. package/app/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
  642. package/app/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
  643. package/app/node_modules/next/dist/compiled/httpxy/index.js +1 -0
  644. package/app/node_modules/next/dist/compiled/httpxy/package.json +1 -0
  645. package/app/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
  646. package/app/node_modules/next/dist/compiled/image-size/index.js +1 -0
  647. package/app/node_modules/next/dist/compiled/image-size/package.json +1 -0
  648. package/app/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  649. package/app/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
  650. package/app/node_modules/next/dist/compiled/is-animated/index.js +1 -0
  651. package/app/node_modules/next/dist/compiled/is-animated/package.json +1 -0
  652. package/app/node_modules/next/dist/compiled/is-docker/index.js +1 -0
  653. package/app/node_modules/next/dist/compiled/is-docker/package.json +1 -0
  654. package/app/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
  655. package/app/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
  656. package/app/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
  657. package/app/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
  658. package/app/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
  659. package/app/node_modules/next/dist/compiled/nanoid/package.json +1 -0
  660. package/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +183 -0
  661. package/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +183 -0
  662. package/app/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  663. package/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  664. package/app/node_modules/next/dist/compiled/p-limit/index.js +1 -0
  665. package/app/node_modules/next/dist/compiled/p-limit/package.json +1 -0
  666. package/app/node_modules/next/dist/compiled/p-queue/index.js +1 -0
  667. package/app/node_modules/next/dist/compiled/p-queue/package.json +1 -0
  668. package/app/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
  669. package/app/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
  670. package/app/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
  671. package/app/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
  672. package/app/node_modules/next/dist/compiled/picomatch/index.js +1 -0
  673. package/app/node_modules/next/dist/compiled/picomatch/package.json +1 -0
  674. package/app/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  675. package/app/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  676. package/app/node_modules/next/dist/compiled/react-is/index.js +7 -0
  677. package/app/node_modules/next/dist/compiled/react-is/package.json +26 -0
  678. package/app/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
  679. package/app/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  680. package/app/node_modules/next/dist/compiled/semver/index.js +1 -0
  681. package/app/node_modules/next/dist/compiled/semver/package.json +1 -0
  682. package/app/node_modules/next/dist/compiled/send/index.js +70 -0
  683. package/app/node_modules/next/dist/compiled/send/package.json +1 -0
  684. package/app/node_modules/next/dist/compiled/source-map/package.json +1 -0
  685. package/app/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
  686. package/app/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
  687. package/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  688. package/app/node_modules/next/dist/compiled/string-hash/index.js +1 -0
  689. package/app/node_modules/next/dist/compiled/string-hash/package.json +1 -0
  690. package/app/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
  691. package/app/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
  692. package/app/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
  693. package/app/node_modules/next/dist/compiled/superstruct/package.json +1 -0
  694. package/app/node_modules/next/dist/compiled/tar/index.min.js +1 -0
  695. package/app/node_modules/next/dist/compiled/tar/package.json +1 -0
  696. package/app/node_modules/next/dist/compiled/text-table/index.js +1 -0
  697. package/app/node_modules/next/dist/compiled/text-table/package.json +1 -0
  698. package/app/node_modules/next/dist/compiled/watchpack/package.json +1 -0
  699. package/app/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
  700. package/app/node_modules/next/dist/compiled/write-file-atomic/index.js +1 -0
  701. package/app/node_modules/next/dist/compiled/write-file-atomic/package.json +1 -0
  702. package/app/node_modules/next/dist/compiled/ws/index.js +1 -0
  703. package/app/node_modules/next/dist/compiled/ws/package.json +1 -0
  704. package/app/node_modules/next/dist/compiled/zod/index.cjs +1 -0
  705. package/app/node_modules/next/dist/compiled/zod/package.json +1 -0
  706. package/app/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
  707. package/app/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
  708. package/app/node_modules/next/dist/experimental/testmode/context.js +57 -0
  709. package/app/node_modules/next/dist/experimental/testmode/fetch.js +158 -0
  710. package/app/node_modules/next/dist/experimental/testmode/httpget.js +33 -0
  711. package/app/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
  712. package/app/node_modules/next/dist/experimental/testmode/server.js +73 -0
  713. package/app/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
  714. package/app/node_modules/next/dist/lib/batcher.js +65 -0
  715. package/app/node_modules/next/dist/lib/build-custom-route.js +46 -0
  716. package/app/node_modules/next/dist/lib/bundler.js +168 -0
  717. package/app/node_modules/next/dist/lib/client-and-server-references.js +54 -0
  718. package/app/node_modules/next/dist/lib/coalesced-function.js +39 -0
  719. package/app/node_modules/next/dist/lib/compile-error.js +14 -0
  720. package/app/node_modules/next/dist/lib/constants.js +420 -0
  721. package/app/node_modules/next/dist/lib/create-client-router-filter.js +83 -0
  722. package/app/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
  723. package/app/node_modules/next/dist/lib/detached-promise.js +32 -0
  724. package/app/node_modules/next/dist/lib/detect-typo.js +51 -0
  725. package/app/node_modules/next/dist/lib/download-swc.js +183 -0
  726. package/app/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
  727. package/app/node_modules/next/dist/lib/fallback.js +100 -0
  728. package/app/node_modules/next/dist/lib/file-exists.js +53 -0
  729. package/app/node_modules/next/dist/lib/find-config.js +102 -0
  730. package/app/node_modules/next/dist/lib/find-pages-dir.js +65 -0
  731. package/app/node_modules/next/dist/lib/find-root.js +280 -0
  732. package/app/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
  733. package/app/node_modules/next/dist/lib/format-dynamic-import-path.js +43 -0
  734. package/app/node_modules/next/dist/lib/format-server-error.js +75 -0
  735. package/app/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
  736. package/app/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
  737. package/app/node_modules/next/dist/lib/fs/rename.js +87 -0
  738. package/app/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
  739. package/app/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
  740. package/app/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
  741. package/app/node_modules/next/dist/lib/get-network-host.js +44 -0
  742. package/app/node_modules/next/dist/lib/get-package-version.js +118 -0
  743. package/app/node_modules/next/dist/lib/get-project-dir.js +51 -0
  744. package/app/node_modules/next/dist/lib/git-worktree.js +74 -0
  745. package/app/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
  746. package/app/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
  747. package/app/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
  748. package/app/node_modules/next/dist/lib/helpers/get-online.js +50 -0
  749. package/app/node_modules/next/dist/lib/helpers/get-pkg-manager.js +65 -0
  750. package/app/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
  751. package/app/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
  752. package/app/node_modules/next/dist/lib/helpers/git.js +59 -0
  753. package/app/node_modules/next/dist/lib/helpers/install.js +83 -0
  754. package/app/node_modules/next/dist/lib/import-next-warning.js +50 -0
  755. package/app/node_modules/next/dist/lib/inline-static-env.js +112 -0
  756. package/app/node_modules/next/dist/lib/install-dependencies.js +40 -0
  757. package/app/node_modules/next/dist/lib/interop-default.js +16 -0
  758. package/app/node_modules/next/dist/lib/is-api-route.js +15 -0
  759. package/app/node_modules/next/dist/lib/is-app-page-route.js +15 -0
  760. package/app/node_modules/next/dist/lib/is-app-route-route.js +15 -0
  761. package/app/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
  762. package/app/node_modules/next/dist/lib/is-error.js +78 -0
  763. package/app/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
  764. package/app/node_modules/next/dist/lib/is-internal-component.js +36 -0
  765. package/app/node_modules/next/dist/lib/is-serializable-props.js +111 -0
  766. package/app/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
  767. package/app/node_modules/next/dist/lib/load-custom-routes.js +594 -0
  768. package/app/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
  769. package/app/node_modules/next/dist/lib/memory/shutdown.js +29 -0
  770. package/app/node_modules/next/dist/lib/memory/startup.js +47 -0
  771. package/app/node_modules/next/dist/lib/memory/trace.js +109 -0
  772. package/app/node_modules/next/dist/lib/metadata/constants.js +40 -0
  773. package/app/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
  774. package/app/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  775. package/app/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
  776. package/app/node_modules/next/dist/lib/metadata/get-metadata-route.js +162 -0
  777. package/app/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
  778. package/app/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
  779. package/app/node_modules/next/dist/lib/metadata/metadata.js +1660 -0
  780. package/app/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
  781. package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  782. package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  783. package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  784. package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  785. package/app/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  786. package/app/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  787. package/app/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
  788. package/app/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
  789. package/app/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
  790. package/app/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  791. package/app/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
  792. package/app/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  793. package/app/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
  794. package/app/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
  795. package/app/node_modules/next/dist/lib/mime-type.js +20 -0
  796. package/app/node_modules/next/dist/lib/mkcert.js +204 -0
  797. package/app/node_modules/next/dist/lib/multi-file-writer.js +75 -0
  798. package/app/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
  799. package/app/node_modules/next/dist/lib/non-nullable.js +15 -0
  800. package/app/node_modules/next/dist/lib/normalize-path.js +21 -0
  801. package/app/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
  802. package/app/node_modules/next/dist/lib/page-types.js +18 -0
  803. package/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  804. package/app/node_modules/next/dist/lib/pick.js +19 -0
  805. package/app/node_modules/next/dist/lib/picocolors.js +177 -0
  806. package/app/node_modules/next/dist/lib/pretty-bytes.js +74 -0
  807. package/app/node_modules/next/dist/lib/profiles-dir.js +45 -0
  808. package/app/node_modules/next/dist/lib/realpath.js +20 -0
  809. package/app/node_modules/next/dist/lib/recursive-copy.js +76 -0
  810. package/app/node_modules/next/dist/lib/recursive-delete.js +137 -0
  811. package/app/node_modules/next/dist/lib/recursive-readdir.js +124 -0
  812. package/app/node_modules/next/dist/lib/redirect-status.js +46 -0
  813. package/app/node_modules/next/dist/lib/require-instrumentation-client.js +32 -0
  814. package/app/node_modules/next/dist/lib/resolve-build-paths.js +182 -0
  815. package/app/node_modules/next/dist/lib/resolve-from.js +65 -0
  816. package/app/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
  817. package/app/node_modules/next/dist/lib/scheduler.js +64 -0
  818. package/app/node_modules/next/dist/lib/semver-noop.js +18 -0
  819. package/app/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
  820. package/app/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
  821. package/app/node_modules/next/dist/lib/static-env.js +92 -0
  822. package/app/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
  823. package/app/node_modules/next/dist/lib/turbopack-cache-seed.js +171 -0
  824. package/app/node_modules/next/dist/lib/turbopack-warning.js +185 -0
  825. package/app/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
  826. package/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
  827. package/app/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  828. package/app/node_modules/next/dist/lib/typescript/loadTsConfig.js +181 -0
  829. package/app/node_modules/next/dist/lib/typescript/missingDependencyError.js +26 -0
  830. package/app/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
  831. package/app/node_modules/next/dist/lib/typescript/runTypeCheckCli.js +53 -0
  832. package/app/node_modules/next/dist/lib/typescript/runTypeScriptCli.js +256 -0
  833. package/app/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
  834. package/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +77 -0
  835. package/app/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
  836. package/app/node_modules/next/dist/lib/url.js +75 -0
  837. package/app/node_modules/next/dist/lib/verify-partytown-setup.js +104 -0
  838. package/app/node_modules/next/dist/lib/verify-root-layout.js +165 -0
  839. package/app/node_modules/next/dist/lib/verify-typescript-setup.js +271 -0
  840. package/app/node_modules/next/dist/lib/wait.js +19 -0
  841. package/app/node_modules/next/dist/lib/with-promise-cache.js +24 -0
  842. package/app/node_modules/next/dist/lib/worker.js +234 -0
  843. package/app/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
  844. package/app/node_modules/next/dist/server/accept-header.js +132 -0
  845. package/app/node_modules/next/dist/server/after/after-context.js +178 -0
  846. package/app/node_modules/next/dist/server/after/after.js +28 -0
  847. package/app/node_modules/next/dist/server/after/awaiter.js +74 -0
  848. package/app/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
  849. package/app/node_modules/next/dist/server/after/index.js +21 -0
  850. package/app/node_modules/next/dist/server/after/run-with-after.js +35 -0
  851. package/app/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  852. package/app/node_modules/next/dist/server/api-utils/index.js +217 -0
  853. package/app/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
  854. package/app/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
  855. package/app/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +89 -0
  856. package/app/node_modules/next/dist/server/api-utils/web.js +17 -0
  857. package/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  858. package/app/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
  859. package/app/node_modules/next/dist/server/app-render/action-handler.js +1125 -0
  860. package/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  861. package/app/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  862. package/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +332 -0
  863. package/app/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
  864. package/app/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
  865. package/app/node_modules/next/dist/server/app-render/app-render.js +6496 -0
  866. package/app/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
  867. package/app/node_modules/next/dist/server/app-render/blocking-route-messages.js +181 -0
  868. package/app/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
  869. package/app/node_modules/next/dist/server/app-render/collect-segment-data.js +937 -0
  870. package/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  871. package/app/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
  872. package/app/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +39 -0
  873. package/app/node_modules/next/dist/server/app-render/create-component-tree.js +806 -0
  874. package/app/node_modules/next/dist/server/app-render/create-error-handler.js +190 -0
  875. package/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +154 -0
  876. package/app/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
  877. package/app/node_modules/next/dist/server/app-render/debug-channel-server.js +47 -0
  878. package/app/node_modules/next/dist/server/app-render/debug-channel-server.node.js +60 -0
  879. package/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js +60 -0
  880. package/app/node_modules/next/dist/server/app-render/dev-validation-error-delivery.js +37 -0
  881. package/app/node_modules/next/dist/server/app-render/dev-validation-events.js +26 -0
  882. package/app/node_modules/next/dist/server/app-render/dev-validation-scheduler.js +87 -0
  883. package/app/node_modules/next/dist/server/app-render/dev-validation-worker-globals.js +41 -0
  884. package/app/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +79 -0
  885. package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  886. package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  887. package/app/node_modules/next/dist/server/app-render/dynamic-rendering.js +1201 -0
  888. package/app/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
  889. package/app/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
  890. package/app/node_modules/next/dist/server/app-render/encryption.js +261 -0
  891. package/app/node_modules/next/dist/server/app-render/entry-base.js +265 -0
  892. package/app/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
  893. package/app/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
  894. package/app/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +45 -0
  895. package/app/node_modules/next/dist/server/app-render/get-layer-assets.js +69 -0
  896. package/app/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  897. package/app/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +32 -0
  898. package/app/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  899. package/app/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  900. package/app/node_modules/next/dist/server/app-render/instant-test-bootstrap.js +20 -0
  901. package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +31 -0
  902. package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +127 -0
  903. package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +38 -0
  904. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +241 -0
  905. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
  906. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
  907. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +934 -0
  908. package/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
  909. package/app/node_modules/next/dist/server/app-render/interop-default.js +17 -0
  910. package/app/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +91 -0
  911. package/app/node_modules/next/dist/server/app-render/manifests-singleton.js +327 -0
  912. package/app/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +29 -0
  913. package/app/node_modules/next/dist/server/app-render/module-loading/instrument-module-getter.js +32 -0
  914. package/app/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  915. package/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  916. package/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +62 -0
  917. package/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  918. package/app/node_modules/next/dist/server/app-render/postponed-state.js +230 -0
  919. package/app/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
  920. package/app/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
  921. package/app/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
  922. package/app/node_modules/next/dist/server/app-render/render-css-resource.js +57 -0
  923. package/app/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
  924. package/app/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
  925. package/app/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
  926. package/app/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
  927. package/app/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
  928. package/app/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
  929. package/app/node_modules/next/dist/server/app-render/staged-rendering.js +324 -0
  930. package/app/node_modules/next/dist/server/app-render/stale-time.js +101 -0
  931. package/app/node_modules/next/dist/server/app-render/stream-ops.js +155 -0
  932. package/app/node_modules/next/dist/server/app-render/stream-ops.node.js +842 -0
  933. package/app/node_modules/next/dist/server/app-render/stream-ops.web.js +249 -0
  934. package/app/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
  935. package/app/node_modules/next/dist/server/app-render/sync-io-messages.js +67 -0
  936. package/app/node_modules/next/dist/server/app-render/types.js +65 -0
  937. package/app/node_modules/next/dist/server/app-render/use-flight-response.js +217 -0
  938. package/app/node_modules/next/dist/server/app-render/vary-params.js +261 -0
  939. package/app/node_modules/next/dist/server/app-render/wait-for-response.js +36 -0
  940. package/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +237 -0
  941. package/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  942. package/app/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
  943. package/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  944. package/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +250 -0
  945. package/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  946. package/app/node_modules/next/dist/server/async-storage/request-store.js +201 -0
  947. package/app/node_modules/next/dist/server/async-storage/with-store.js +6 -0
  948. package/app/node_modules/next/dist/server/async-storage/work-store.js +98 -0
  949. package/app/node_modules/next/dist/server/base-http/helpers.js +36 -0
  950. package/app/node_modules/next/dist/server/base-http/index.js +54 -0
  951. package/app/node_modules/next/dist/server/base-http/node.js +147 -0
  952. package/app/node_modules/next/dist/server/base-http/web.js +124 -0
  953. package/app/node_modules/next/dist/server/base-server.js +1956 -0
  954. package/app/node_modules/next/dist/server/body-streams.js +122 -0
  955. package/app/node_modules/next/dist/server/cache-dir.js +26 -0
  956. package/app/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
  957. package/app/node_modules/next/dist/server/ci-info.js +41 -0
  958. package/app/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
  959. package/app/node_modules/next/dist/server/config-schema.js +800 -0
  960. package/app/node_modules/next/dist/server/config-shared.js +395 -0
  961. package/app/node_modules/next/dist/server/config-utils.js +185 -0
  962. package/app/node_modules/next/dist/server/config.js +1836 -0
  963. package/app/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  964. package/app/node_modules/next/dist/server/crypto-utils.js +70 -0
  965. package/app/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
  966. package/app/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +610 -0
  967. package/app/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
  968. package/app/node_modules/next/dist/server/dev/debug-channel.js +112 -0
  969. package/app/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  970. package/app/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +232 -0
  971. package/app/node_modules/next/dist/server/dev/dev-validation-worker.js +308 -0
  972. package/app/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
  973. package/app/node_modules/next/dist/server/dev/hot-middleware.js +276 -0
  974. package/app/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
  975. package/app/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  976. package/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1756 -0
  977. package/app/node_modules/next/dist/server/dev/hot-reloader-types.js +60 -0
  978. package/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1380 -0
  979. package/app/node_modules/next/dist/server/dev/log-requests.js +152 -0
  980. package/app/node_modules/next/dist/server/dev/messages.js +74 -0
  981. package/app/node_modules/next/dist/server/dev/middleware-turbopack.js +422 -0
  982. package/app/node_modules/next/dist/server/dev/middleware-webpack.js +495 -0
  983. package/app/node_modules/next/dist/server/dev/node-stack-frames.js +81 -0
  984. package/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
  985. package/app/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
  986. package/app/node_modules/next/dist/server/dev/require-cache.js +109 -0
  987. package/app/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
  988. package/app/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
  989. package/app/node_modules/next/dist/server/dev/static-paths-worker.js +106 -0
  990. package/app/node_modules/next/dist/server/dev/turbopack-utils.js +727 -0
  991. package/app/node_modules/next/dist/server/dev/use-cache-probe-pool.js +177 -0
  992. package/app/node_modules/next/dist/server/dev/use-cache-probe-worker.js +180 -0
  993. package/app/node_modules/next/dist/server/dynamic-rendering-utils.js +285 -0
  994. package/app/node_modules/next/dist/server/font-utils.js +43 -0
  995. package/app/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  996. package/app/node_modules/next/dist/server/get-page-files.js +40 -0
  997. package/app/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
  998. package/app/node_modules/next/dist/server/image-optimizer.js +1474 -0
  999. package/app/node_modules/next/dist/server/instrumentation/types.js +6 -0
  1000. package/app/node_modules/next/dist/server/instrumentation/utils.js +21 -0
  1001. package/app/node_modules/next/dist/server/internal-utils.js +39 -0
  1002. package/app/node_modules/next/dist/server/is-private-ip.js +36 -0
  1003. package/app/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
  1004. package/app/node_modules/next/dist/server/lib/app-info-log.js +135 -0
  1005. package/app/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
  1006. package/app/node_modules/next/dist/server/lib/cache-control.js +22 -0
  1007. package/app/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  1008. package/app/node_modules/next/dist/server/lib/cache-handlers/default.js +196 -0
  1009. package/app/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
  1010. package/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  1011. package/app/node_modules/next/dist/server/lib/clone-response.js +77 -0
  1012. package/app/node_modules/next/dist/server/lib/cpu-profile.js +56 -0
  1013. package/app/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  1014. package/app/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
  1015. package/app/node_modules/next/dist/server/lib/dev-bundler-service.js +110 -0
  1016. package/app/node_modules/next/dist/server/lib/disk-lru-cache.external.js +63 -0
  1017. package/app/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
  1018. package/app/node_modules/next/dist/server/lib/etag.js +56 -0
  1019. package/app/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  1020. package/app/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
  1021. package/app/node_modules/next/dist/server/lib/find-page-file.js +147 -0
  1022. package/app/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
  1023. package/app/node_modules/next/dist/server/lib/format-hostname.js +16 -0
  1024. package/app/node_modules/next/dist/server/lib/generate-agent-files.js +180 -0
  1025. package/app/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
  1026. package/app/node_modules/next/dist/server/lib/implicit-tags.js +87 -0
  1027. package/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +506 -0
  1028. package/app/node_modules/next/dist/server/lib/incremental-cache/index.js +566 -0
  1029. package/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +59 -0
  1030. package/app/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +81 -0
  1031. package/app/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  1032. package/app/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
  1033. package/app/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
  1034. package/app/node_modules/next/dist/server/lib/is-non-html-sec-fetch-dest.js +38 -0
  1035. package/app/node_modules/next/dist/server/lib/is-rsc-request.js +18 -0
  1036. package/app/node_modules/next/dist/server/lib/lazy-module.js +80 -0
  1037. package/app/node_modules/next/dist/server/lib/lazy-result.js +46 -0
  1038. package/app/node_modules/next/dist/server/lib/lru-cache.js +191 -0
  1039. package/app/node_modules/next/dist/server/lib/match-next-data-pathname.js +20 -0
  1040. package/app/node_modules/next/dist/server/lib/mock-request.js +441 -0
  1041. package/app/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
  1042. package/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  1043. package/app/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  1044. package/app/node_modules/next/dist/server/lib/node-fs-methods.js +42 -0
  1045. package/app/node_modules/next/dist/server/lib/params-utils.js +70 -0
  1046. package/app/node_modules/next/dist/server/lib/parse-stack.js +46 -0
  1047. package/app/node_modules/next/dist/server/lib/patch-fetch.js +1027 -0
  1048. package/app/node_modules/next/dist/server/lib/patch-set-header.js +45 -0
  1049. package/app/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
  1050. package/app/node_modules/next/dist/server/lib/release-compression-stream.js +24 -0
  1051. package/app/node_modules/next/dist/server/lib/render-server.js +157 -0
  1052. package/app/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
  1053. package/app/node_modules/next/dist/server/lib/router-server.js +756 -0
  1054. package/app/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +108 -0
  1055. package/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  1056. package/app/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
  1057. package/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +212 -0
  1058. package/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  1059. package/app/node_modules/next/dist/server/lib/router-utils/filesystem.js +612 -0
  1060. package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  1061. package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +114 -0
  1062. package/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  1063. package/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js +128 -0
  1064. package/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +646 -0
  1065. package/app/node_modules/next/dist/server/lib/router-utils/root-params-type-utils.js +61 -0
  1066. package/app/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +326 -0
  1067. package/app/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  1068. package/app/node_modules/next/dist/server/lib/router-utils/typegen.js +892 -0
  1069. package/app/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
  1070. package/app/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
  1071. package/app/node_modules/next/dist/server/lib/server-ipc/utils.js +83 -0
  1072. package/app/node_modules/next/dist/server/lib/source-maps.js +241 -0
  1073. package/app/node_modules/next/dist/server/lib/start-server.js +540 -0
  1074. package/app/node_modules/next/dist/server/lib/streaming-metadata.js +27 -0
  1075. package/app/node_modules/next/dist/server/lib/to-route.js +37 -0
  1076. package/app/node_modules/next/dist/server/lib/trace/constants.js +208 -0
  1077. package/app/node_modules/next/dist/server/lib/trace/local-span-recorder.js +385 -0
  1078. package/app/node_modules/next/dist/server/lib/trace/request-insights-identity.js +39 -0
  1079. package/app/node_modules/next/dist/server/lib/trace/request-insights.js +308 -0
  1080. package/app/node_modules/next/dist/server/lib/trace/span-store.js +69 -0
  1081. package/app/node_modules/next/dist/server/lib/trace/tracer.js +392 -0
  1082. package/app/node_modules/next/dist/server/lib/trace/utils.js +16 -0
  1083. package/app/node_modules/next/dist/server/lib/types.js +6 -0
  1084. package/app/node_modules/next/dist/server/lib/utils.js +292 -0
  1085. package/app/node_modules/next/dist/server/lib/worker-utils.js +36 -0
  1086. package/app/node_modules/next/dist/server/load-components.js +185 -0
  1087. package/app/node_modules/next/dist/server/load-default-error-components.js +41 -0
  1088. package/app/node_modules/next/dist/server/load-manifest.external.js +117 -0
  1089. package/app/node_modules/next/dist/server/match-bundle.js +25 -0
  1090. package/app/node_modules/next/dist/server/mcp/get-mcp-middleware.js +51 -0
  1091. package/app/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +51 -0
  1092. package/app/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  1093. package/app/node_modules/next/dist/server/mcp/tools/compile-route.js +86 -0
  1094. package/app/node_modules/next/dist/server/mcp/tools/get-compilation-issues.js +68 -0
  1095. package/app/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
  1096. package/app/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
  1097. package/app/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
  1098. package/app/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
  1099. package/app/node_modules/next/dist/server/mcp/tools/get-request-insights.js +57 -0
  1100. package/app/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
  1101. package/app/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
  1102. package/app/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  1103. package/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  1104. package/app/node_modules/next/dist/server/mcp/tools/utils/format-compilation-issues.js +72 -0
  1105. package/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
  1106. package/app/node_modules/next/dist/server/mcp/tools/utils/resolve-path-to-route.js +49 -0
  1107. package/app/node_modules/next/dist/server/next-server.js +1447 -0
  1108. package/app/node_modules/next/dist/server/next-typescript.js +13 -0
  1109. package/app/node_modules/next/dist/server/next.js +485 -0
  1110. package/app/node_modules/next/dist/server/node-environment-baseline.js +25 -0
  1111. package/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
  1112. package/app/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  1113. package/app/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
  1114. package/app/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
  1115. package/app/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  1116. package/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
  1117. package/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  1118. package/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js +102 -0
  1119. package/app/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  1120. package/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +170 -0
  1121. package/app/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
  1122. package/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +518 -0
  1123. package/app/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  1124. package/app/node_modules/next/dist/server/node-environment.js +19 -0
  1125. package/app/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
  1126. package/app/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  1127. package/app/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  1128. package/app/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  1129. package/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  1130. package/app/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  1131. package/app/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
  1132. package/app/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
  1133. package/app/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  1134. package/app/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  1135. package/app/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  1136. package/app/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  1137. package/app/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  1138. package/app/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
  1139. package/app/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
  1140. package/app/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  1141. package/app/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
  1142. package/app/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
  1143. package/app/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  1144. package/app/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
  1145. package/app/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
  1146. package/app/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
  1147. package/app/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
  1148. package/app/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  1149. package/app/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  1150. package/app/node_modules/next/dist/server/og/cache-image-response.js +341 -0
  1151. package/app/node_modules/next/dist/server/og/image-response.js +72 -0
  1152. package/app/node_modules/next/dist/server/patch-error-inspect.js +507 -0
  1153. package/app/node_modules/next/dist/server/pipe-readable.js +212 -0
  1154. package/app/node_modules/next/dist/server/post-process.js +39 -0
  1155. package/app/node_modules/next/dist/server/render-result.js +246 -0
  1156. package/app/node_modules/next/dist/server/render.js +1150 -0
  1157. package/app/node_modules/next/dist/server/request/connection.js +135 -0
  1158. package/app/node_modules/next/dist/server/request/cookies.js +239 -0
  1159. package/app/node_modules/next/dist/server/request/draft-mode.js +238 -0
  1160. package/app/node_modules/next/dist/server/request/fallback-params.js +95 -0
  1161. package/app/node_modules/next/dist/server/request/headers.js +235 -0
  1162. package/app/node_modules/next/dist/server/request/io.js +96 -0
  1163. package/app/node_modules/next/dist/server/request/params.js +634 -0
  1164. package/app/node_modules/next/dist/server/request/pathname.js +141 -0
  1165. package/app/node_modules/next/dist/server/request/root-params.js +202 -0
  1166. package/app/node_modules/next/dist/server/request/search-params.js +582 -0
  1167. package/app/node_modules/next/dist/server/request/utils.js +84 -0
  1168. package/app/node_modules/next/dist/server/request-meta.js +55 -0
  1169. package/app/node_modules/next/dist/server/require-hook.js +82 -0
  1170. package/app/node_modules/next/dist/server/require.js +109 -0
  1171. package/app/node_modules/next/dist/server/response-cache/index.js +339 -0
  1172. package/app/node_modules/next/dist/server/response-cache/types.js +41 -0
  1173. package/app/node_modules/next/dist/server/response-cache/utils.js +104 -0
  1174. package/app/node_modules/next/dist/server/response-cache/web.js +101 -0
  1175. package/app/node_modules/next/dist/server/resume-data-cache/cache-store.js +101 -0
  1176. package/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +142 -0
  1177. package/app/node_modules/next/dist/server/revalidation-utils.js +156 -0
  1178. package/app/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  1179. package/app/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  1180. package/app/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  1181. package/app/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  1182. package/app/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  1183. package/app/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
  1184. package/app/node_modules/next/dist/server/route-kind.js +32 -0
  1185. package/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  1186. package/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  1187. package/app/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  1188. package/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  1189. package/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  1190. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
  1191. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  1192. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  1193. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  1194. package/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  1195. package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  1196. package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  1197. package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  1198. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  1199. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  1200. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  1201. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  1202. package/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  1203. package/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  1204. package/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  1205. package/app/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  1206. package/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  1207. package/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  1208. package/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  1209. package/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  1210. package/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  1211. package/app/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
  1212. package/app/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
  1213. package/app/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
  1214. package/app/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
  1215. package/app/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  1216. package/app/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
  1217. package/app/node_modules/next/dist/server/route-matches/route-match.js +6 -0
  1218. package/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
  1219. package/app/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  1220. package/app/node_modules/next/dist/server/route-modules/app-page/module.js +176 -0
  1221. package/app/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
  1222. package/app/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +62 -0
  1223. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  1224. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  1225. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  1226. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  1227. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  1228. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  1229. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  1230. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  1231. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  1232. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  1233. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  1234. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  1235. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  1236. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  1237. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  1238. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  1239. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  1240. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  1241. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  1242. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  1243. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  1244. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  1245. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  1246. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  1247. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  1248. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  1249. package/app/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  1250. package/app/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  1251. package/app/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  1252. package/app/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  1253. package/app/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  1254. package/app/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  1255. package/app/node_modules/next/dist/server/route-modules/app-route/module.js +948 -0
  1256. package/app/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  1257. package/app/node_modules/next/dist/server/route-modules/checks.js +45 -0
  1258. package/app/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  1259. package/app/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  1260. package/app/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
  1261. package/app/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
  1262. package/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js +572 -0
  1263. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  1264. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  1265. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  1266. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  1267. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  1268. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  1269. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  1270. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  1271. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  1272. package/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  1273. package/app/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  1274. package/app/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
  1275. package/app/node_modules/next/dist/server/route-modules/route-module.js +704 -0
  1276. package/app/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
  1277. package/app/node_modules/next/dist/server/send-payload.js +88 -0
  1278. package/app/node_modules/next/dist/server/send-response.js +70 -0
  1279. package/app/node_modules/next/dist/server/serve-static.js +66 -0
  1280. package/app/node_modules/next/dist/server/server-route-utils.js +30 -0
  1281. package/app/node_modules/next/dist/server/server-utils.js +340 -0
  1282. package/app/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
  1283. package/app/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
  1284. package/app/node_modules/next/dist/server/stream-utils/node-buffered-transform-stream.js +51 -0
  1285. package/app/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +939 -0
  1286. package/app/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
  1287. package/app/node_modules/next/dist/server/typescript/constant.js +98 -0
  1288. package/app/node_modules/next/dist/server/typescript/index.js +199 -0
  1289. package/app/node_modules/next/dist/server/typescript/rules/client-boundary.js +100 -0
  1290. package/app/node_modules/next/dist/server/typescript/rules/config.js +534 -0
  1291. package/app/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
  1292. package/app/node_modules/next/dist/server/typescript/rules/error.js +38 -0
  1293. package/app/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
  1294. package/app/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
  1295. package/app/node_modules/next/dist/server/typescript/rules/server.js +79 -0
  1296. package/app/node_modules/next/dist/server/typescript/utils.js +212 -0
  1297. package/app/node_modules/next/dist/server/use-cache/cache-life-profile.js +84 -0
  1298. package/app/node_modules/next/dist/server/use-cache/cache-life.js +102 -0
  1299. package/app/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
  1300. package/app/node_modules/next/dist/server/use-cache/clone-cache-entry.js +28 -0
  1301. package/app/node_modules/next/dist/server/use-cache/constants.js +44 -0
  1302. package/app/node_modules/next/dist/server/use-cache/handlers.js +274 -0
  1303. package/app/node_modules/next/dist/server/use-cache/tiered-cache-handler.js +145 -0
  1304. package/app/node_modules/next/dist/server/use-cache/use-cache-errors.js +59 -0
  1305. package/app/node_modules/next/dist/server/use-cache/use-cache-probe-globals.js +39 -0
  1306. package/app/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +117 -0
  1307. package/app/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +2611 -0
  1308. package/app/node_modules/next/dist/server/utils.js +73 -0
  1309. package/app/node_modules/next/dist/server/web/adapter.js +428 -0
  1310. package/app/node_modules/next/dist/server/web/edge-route-module-wrapper.js +136 -0
  1311. package/app/node_modules/next/dist/server/web/error.js +69 -0
  1312. package/app/node_modules/next/dist/server/web/exports/index.js +56 -0
  1313. package/app/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
  1314. package/app/node_modules/next/dist/server/web/globals.js +128 -0
  1315. package/app/node_modules/next/dist/server/web/http.js +39 -0
  1316. package/app/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
  1317. package/app/node_modules/next/dist/server/web/next-url.js +199 -0
  1318. package/app/node_modules/next/dist/server/web/sandbox/context.js +468 -0
  1319. package/app/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  1320. package/app/node_modules/next/dist/server/web/sandbox/index.js +28 -0
  1321. package/app/node_modules/next/dist/server/web/sandbox/resource-managers.js +123 -0
  1322. package/app/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
  1323. package/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +293 -0
  1324. package/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  1325. package/app/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  1326. package/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +226 -0
  1327. package/app/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
  1328. package/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  1329. package/app/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
  1330. package/app/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
  1331. package/app/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
  1332. package/app/node_modules/next/dist/server/web/spec-extension/revalidate.js +226 -0
  1333. package/app/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +307 -0
  1334. package/app/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
  1335. package/app/node_modules/next/dist/server/web/spec-extension/url-pattern.js +13 -0
  1336. package/app/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
  1337. package/app/node_modules/next/dist/server/web/types.js +6 -0
  1338. package/app/node_modules/next/dist/server/web/utils.js +151 -0
  1339. package/app/node_modules/next/dist/server/web/web-on-close.js +87 -0
  1340. package/app/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
  1341. package/app/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  1342. package/app/node_modules/next/dist/shared/lib/app-router-types.js +159 -0
  1343. package/app/node_modules/next/dist/shared/lib/constants.js +453 -0
  1344. package/app/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
  1345. package/app/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
  1346. package/app/node_modules/next/dist/shared/lib/dset.js +34 -0
  1347. package/app/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
  1348. package/app/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
  1349. package/app/node_modules/next/dist/shared/lib/error-source.js +36 -0
  1350. package/app/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
  1351. package/app/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
  1352. package/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +31 -0
  1353. package/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +25 -0
  1354. package/app/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
  1355. package/app/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
  1356. package/app/node_modules/next/dist/shared/lib/hash.js +42 -0
  1357. package/app/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  1358. package/app/node_modules/next/dist/shared/lib/head.js +164 -0
  1359. package/app/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
  1360. package/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  1361. package/app/node_modules/next/dist/shared/lib/htmlescape.js +52 -0
  1362. package/app/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  1363. package/app/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  1364. package/app/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  1365. package/app/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
  1366. package/app/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  1367. package/app/node_modules/next/dist/shared/lib/image-config.js +77 -0
  1368. package/app/node_modules/next/dist/shared/lib/instant-messages.js +43 -0
  1369. package/app/node_modules/next/dist/shared/lib/invariant-error.js +23 -0
  1370. package/app/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
  1371. package/app/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
  1372. package/app/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
  1373. package/app/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1374. package/app/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1375. package/app/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1376. package/app/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
  1377. package/app/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1378. package/app/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1379. package/app/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1380. package/app/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1381. package/app/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1382. package/app/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1383. package/app/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1384. package/app/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1385. package/app/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1386. package/app/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1387. package/app/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1388. package/app/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1389. package/app/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1390. package/app/node_modules/next/dist/shared/lib/request-insights.js +30 -0
  1391. package/app/node_modules/next/dist/shared/lib/router/adapters.js +139 -0
  1392. package/app/node_modules/next/dist/shared/lib/router/routes/app.js +158 -0
  1393. package/app/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1394. package/app/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1395. package/app/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1396. package/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js +79 -0
  1397. package/app/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1398. package/app/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +70 -0
  1399. package/app/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1400. package/app/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1401. package/app/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1402. package/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
  1403. package/app/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1404. package/app/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1405. package/app/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1406. package/app/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1407. package/app/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
  1408. package/app/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
  1409. package/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1410. package/app/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1411. package/app/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1412. package/app/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1413. package/app/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
  1414. package/app/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1415. package/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
  1416. package/app/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
  1417. package/app/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1418. package/app/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1419. package/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +293 -0
  1420. package/app/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1421. package/app/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1422. package/app/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1423. package/app/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +22 -0
  1424. package/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
  1425. package/app/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1426. package/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1427. package/app/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1428. package/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1429. package/app/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1430. package/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1431. package/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +66 -0
  1432. package/app/node_modules/next/dist/shared/lib/segment.js +102 -0
  1433. package/app/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1434. package/app/node_modules/next/dist/shared/lib/server-reference-info.js +68 -0
  1435. package/app/node_modules/next/dist/shared/lib/side-effect.js +63 -0
  1436. package/app/node_modules/next/dist/shared/lib/size-limit.js +40 -0
  1437. package/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1438. package/app/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
  1439. package/app/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
  1440. package/app/node_modules/next/dist/shared/lib/utils.js +216 -0
  1441. package/app/node_modules/next/dist/shared/lib/zod.js +101 -0
  1442. package/app/node_modules/next/dist/telemetry/agent-name.js +20 -0
  1443. package/app/node_modules/next/dist/telemetry/anonymous-meta.js +91 -0
  1444. package/app/node_modules/next/dist/telemetry/detached-flush.js +56 -0
  1445. package/app/node_modules/next/dist/telemetry/events/build.js +187 -0
  1446. package/app/node_modules/next/dist/telemetry/events/index.js +41 -0
  1447. package/app/node_modules/next/dist/telemetry/events/plugins.js +51 -0
  1448. package/app/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1449. package/app/node_modules/next/dist/telemetry/events/version.js +68 -0
  1450. package/app/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
  1451. package/app/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1452. package/app/node_modules/next/dist/telemetry/project-id.js +48 -0
  1453. package/app/node_modules/next/dist/telemetry/storage.js +305 -0
  1454. package/app/node_modules/next/dist/trace/index.js +58 -0
  1455. package/app/node_modules/next/dist/trace/report/index.js +37 -0
  1456. package/app/node_modules/next/dist/trace/report/to-json-build.js +40 -0
  1457. package/app/node_modules/next/dist/trace/report/to-json.js +171 -0
  1458. package/app/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
  1459. package/app/node_modules/next/dist/trace/shared.js +39 -0
  1460. package/app/node_modules/next/dist/trace/trace.js +211 -0
  1461. package/app/node_modules/next/package.json +139 -0
  1462. package/app/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
  1463. package/app/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  1464. package/app/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
  1465. package/app/node_modules/react/cjs/react.development.js +1284 -0
  1466. package/app/node_modules/react/cjs/react.production.js +542 -0
  1467. package/app/node_modules/react/compiler-runtime.js +14 -0
  1468. package/app/node_modules/react/index.js +7 -0
  1469. package/app/node_modules/react/jsx-dev-runtime.js +7 -0
  1470. package/app/node_modules/react/jsx-runtime.js +7 -0
  1471. package/app/node_modules/react/package.json +51 -0
  1472. package/app/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
  1473. package/app/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
  1474. package/app/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
  1475. package/app/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
  1476. package/app/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
  1477. package/app/node_modules/react-dom/cjs/react-dom.production.js +210 -0
  1478. package/app/node_modules/react-dom/index.js +38 -0
  1479. package/app/node_modules/react-dom/package.json +117 -0
  1480. package/app/node_modules/react-dom/server.browser.js +16 -0
  1481. package/app/node_modules/react-dom/server.edge.js +17 -0
  1482. package/app/node_modules/react-dom/server.node.js +18 -0
  1483. package/app/node_modules/react-dom/static.node.js +14 -0
  1484. package/app/node_modules/semver/package.json +38 -0
  1485. package/app/node_modules/styled-jsx/dist/index/index.js +499 -0
  1486. package/app/node_modules/styled-jsx/index.js +1 -0
  1487. package/app/node_modules/styled-jsx/package.json +132 -0
  1488. package/app/node_modules/styled-jsx/style.js +1 -0
  1489. package/app/package.json +6 -0
  1490. package/app/public/brand/botmancers-logo-filled-1024.png +0 -0
  1491. package/app/public/brand/botmancers-logo-filled-256.png +0 -0
  1492. package/app/public/brand/botmancers-logo-filled-512.png +0 -0
  1493. package/app/public/brand/botmancers-logo-filled-64.png +0 -0
  1494. package/app/public/brand/botmancers-logo-outline-1024.png +0 -0
  1495. package/app/public/brand/botmancers-logo-outline-256.png +0 -0
  1496. package/app/public/brand/botmancers-logo-outline-512.png +0 -0
  1497. package/app/public/brand/botmancers-logo-outline-64.png +0 -0
  1498. package/app/public/computer/dock-chrome.png +0 -0
  1499. package/app/public/computer/dock-gray.png +0 -0
  1500. package/app/public/computer/dock-terminal.png +0 -0
  1501. package/app/public/computer/wallpaper.png +0 -0
  1502. package/app/public/dock-chrome_c5c1.png +0 -0
  1503. package/app/public/dock-gray_6226.png +0 -0
  1504. package/app/public/dock-terminal_166d.png +0 -0
  1505. package/app/public/file.svg +1 -0
  1506. package/app/public/globe.svg +1 -0
  1507. package/app/public/next.svg +1 -0
  1508. package/app/public/vercel.svg +1 -0
  1509. package/app/public/wallpaper_1c49.png +0 -0
  1510. package/app/public/window.svg +1 -0
  1511. package/app/server.js +38 -0
  1512. package/dist/cli.d.ts +6 -0
  1513. package/dist/cli.js +110 -2
  1514. package/dist/config.js +4 -0
  1515. package/dist/home.d.ts +39 -0
  1516. package/dist/home.js +131 -0
  1517. package/dist/managed.d.ts +145 -0
  1518. package/dist/managed.js +749 -0
  1519. package/dist/product.d.ts +113 -0
  1520. package/dist/product.js +1015 -0
  1521. package/dist/setup.d.ts +20 -0
  1522. package/dist/setup.js +136 -0
  1523. package/dist/upgrade.d.ts +15 -0
  1524. package/dist/upgrade.js +275 -0
  1525. package/package.json +11 -5
@@ -0,0 +1,1015 @@
1
+ // The supervised Botmancers product: the packaged UI/API/core engine on
2
+ // 127.0.0.1:43123 and the MCP bridge on 127.0.0.1:43124, run as two child
3
+ // processes of one supervisor and reported as one health model.
4
+ //
5
+ // start [--daemon] [--open] launch (idempotent: an already healthy product is left alone)
6
+ // stop terminate the supervisor and both children
7
+ // status healthy / degraded / stopped, with versions and endpoints
8
+ // doctor preflight checks, including optional Hermes and Agent Deck
9
+ // open open the UI in a browser
10
+ //
11
+ // Health: healthy only when the supervisor and both children are alive, the
12
+ // core's /api/health and the bridge's /healthz both answer with the installed
13
+ // release version, and an authenticated bridge call reaches the core. Any
14
+ // other running combination is degraded. Run metadata lives in
15
+ // <home>/run/product.json and records each process's PID plus its start time;
16
+ // metadata whose processes are gone is removed, and a PID is only signalled
17
+ // when its start time and command line both still match the record. When the
18
+ // identity cannot be verified nothing is signalled and the metadata is kept.
19
+ import { spawn, execFileSync } from 'node:child_process';
20
+ import { closeSync, existsSync, linkSync, openSync, readFileSync, readSync, renameSync, rmSync, statSync, writeFileSync, accessSync, constants as fsConstants } from 'node:fs';
21
+ import { createServer } from 'node:net';
22
+ import { delimiter, join } from 'node:path';
23
+ import { DEFAULT_PORT, ENV } from './config.js';
24
+ import { packageVersion } from './contract.js';
25
+ import { CLI_PATH, HOME_DIRS, PRODUCT_HOST, UI_PORT_ENV, DEFAULT_UI_PORT, appDir, homePaths, missingAppFiles, modeOf, portFrom, readBuildInfo, readEnvFile, resolveHome, } from './home.js';
26
+ import { RESTART_ACTION, START_LOCK_ENV, activateRelease, activatablePending, cliEntryIn, beginHandOff, handOffFileLock, managedPaths, managedReport, scheduleAutoUpdate, versionDir, waitForFileLock, writeUpdateState } from './managed.js';
27
+ import { createRedactor } from './redact.js';
28
+ import { BRIDGE_SERVICE_ID, SERVICE_TOKENS_ENV, credentialState } from './setup.js';
29
+ export const PRODUCT_EXIT = {
30
+ ok: 0,
31
+ degraded: 1, // running but not healthy; doctor found a problem; browser launch failed
32
+ usage: 2,
33
+ stopped: 3, // status/open: not running
34
+ portInUse: 6,
35
+ childFailed: 7, // the core or the bridge did not come up
36
+ missingAssets: 8, // the packaged app is incomplete
37
+ home: 9, // BOTMANCERS_HOME is not writable
38
+ notSetUp: 10, // run `botmancers setup` first
39
+ };
40
+ export const STARTUP_TIMEOUT_ENV = 'BOTMANCERS_STARTUP_TIMEOUT_MS';
41
+ export const BROWSER_ENV = 'BOTMANCERS_BROWSER';
42
+ export const AGENT_DECK_URL_ENV = 'BOTMANCERS_AGENT_DECK_URL';
43
+ export const CORE_HEALTH_PATH = '/api/health';
44
+ export const BRIDGE_HEALTH_PATH = '/healthz';
45
+ const DEFAULT_STARTUP_TIMEOUT_MS = 60_000;
46
+ const DEFAULT_AGENT_DECK_URL = 'http://127.0.0.1:1111';
47
+ export class UsageError extends Error {
48
+ }
49
+ export function productContext(env, io) {
50
+ const paths = homePaths(resolveHome(env));
51
+ let uiPort;
52
+ let mcpPort;
53
+ try {
54
+ uiPort = portFrom(env, UI_PORT_ENV, DEFAULT_UI_PORT);
55
+ mcpPort = portFrom(env, ENV.port, DEFAULT_PORT);
56
+ }
57
+ catch (error) {
58
+ throw new UsageError(error.message);
59
+ }
60
+ const bridge = readEnvFile(paths.bridgeEnv) ?? {};
61
+ const redact = createRedactor([bridge[ENV.serviceToken], bridge[ENV.mcpToken], env[ENV.serviceToken], env[ENV.mcpToken]]);
62
+ const out = (write) => (text) => write(redact(text));
63
+ return { env, io: { stdout: out(io.stdout), stderr: out(io.stderr) }, paths, appDir: appDir(env), uiPort, mcpPort, version: packageVersion(), redact };
64
+ }
65
+ const uiUrl = (ctx) => `http://${PRODUCT_HOST}:${ctx.uiPort}`;
66
+ const mcpBase = (ctx) => `http://${PRODUCT_HOST}:${ctx.mcpPort}`;
67
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
68
+ function startupTimeout(env) {
69
+ const value = Number(env[STARTUP_TIMEOUT_ENV]);
70
+ return Number.isFinite(value) && value > 0 ? value : DEFAULT_STARTUP_TIMEOUT_MS;
71
+ }
72
+ // How long a start (or an explicit activation) waits for another start to
73
+ // claim the home: as long as a daemon start waits for its supervisor.
74
+ export function startLockTimeout(env) {
75
+ return startupTimeout(env) * 2 + 5000;
76
+ }
77
+ export function readRun(paths) {
78
+ try {
79
+ const record = JSON.parse(readFileSync(paths.runFile, 'utf8'));
80
+ return record && record.schema === 1 && typeof record.supervisor?.pid === 'number' ? record : null;
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ }
86
+ // The run record is replaced atomically (owner-only temp file, then rename),
87
+ // so a concurrent status, doctor, open, or start never reads a truncated
88
+ // file and mistakes it for stale metadata. Start creates it exclusively the
89
+ // same way: link() publishes the finished file and fails with EEXIST when
90
+ // another start already owns the home.
91
+ export function writeRun(paths, record, exclusive = false) {
92
+ const temp = `${paths.runFile}.${process.pid}.tmp`;
93
+ writeFileSync(temp, `${JSON.stringify(record, null, 2)}\n`, { mode: 0o600 });
94
+ try {
95
+ if (exclusive)
96
+ linkSync(temp, paths.runFile);
97
+ else
98
+ renameSync(temp, paths.runFile);
99
+ }
100
+ finally {
101
+ rmSync(temp, { force: true });
102
+ }
103
+ }
104
+ export function pidAlive(pid) {
105
+ if (!pid || pid <= 0)
106
+ return false;
107
+ try {
108
+ process.kill(pid, 0);
109
+ return true;
110
+ }
111
+ catch (error) {
112
+ return error.code === 'EPERM';
113
+ }
114
+ }
115
+ // The start time and command line of a live process, null when it is gone,
116
+ // or 'unverifiable' when this platform cannot tell (no ps, a failing ps,
117
+ // unparseable output). Fails closed: a ps failure only means "gone" when an
118
+ // independent liveness check also says the pid is not running.
119
+ export function processIdentity(pid) {
120
+ let out;
121
+ try {
122
+ out = execFileSync('ps', ['-p', String(pid), '-o', 'lstart=', '-o', 'command='], {
123
+ encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'], env: { ...process.env, LC_ALL: 'C' },
124
+ });
125
+ }
126
+ catch {
127
+ return pidAlive(pid) ? 'unverifiable' : null;
128
+ }
129
+ const match = /^\s*(\w{3} \w{3} +\d+ \d\d:\d\d:\d\d \d{4})\s+(.*)$/.exec(out.trim());
130
+ return match ? { started: match[1].replace(/ +/g, ' '), command: match[2] } : 'unverifiable';
131
+ }
132
+ export function processStarted(pid) {
133
+ if (!pid)
134
+ return undefined;
135
+ const identity = processIdentity(pid);
136
+ return identity && identity !== 'unverifiable' ? identity.started : undefined;
137
+ }
138
+ export function ownership(pid, started, markers) {
139
+ if (!pidAlive(pid))
140
+ return 'gone';
141
+ const identity = processIdentity(pid);
142
+ if (identity === 'unverifiable')
143
+ return 'unverified';
144
+ if (identity === null)
145
+ return 'gone';
146
+ if (!markers.some(marker => identity.command.includes(marker)))
147
+ return 'gone';
148
+ if (!started)
149
+ return 'unverified';
150
+ return identity.started === started ? 'owned' : 'gone';
151
+ }
152
+ // A foreground `botmancers start` may run through the npm bin link. The
153
+ // recorded CLI path matters after a managed release switch: a product started
154
+ // from versions/N must still be recognized by the CLI of versions/N+1.
155
+ const supervisorMarkers = (record) => [record.cli ?? CLI_PATH, 'botmancers'];
156
+ const bridgeMarkers = (record) => [`${record.cli ?? CLI_PATH} mcp`];
157
+ // Next renames its process to "next-server (vX)" on some platforms; the
158
+ // recorded start time is what tells ours apart from any other Next server.
159
+ const coreMarkers = (record) => [join(record.appDir, 'server.js'), 'next-server'];
160
+ function targetsOf(record) {
161
+ return [
162
+ { name: 'supervisor', pid: record.supervisor.pid, owner: ownership(record.supervisor.pid, record.supervisor.started, supervisorMarkers(record)) },
163
+ { name: 'core', pid: record.ui.pid, owner: ownership(record.ui.pid, record.ui.started, coreMarkers(record)) },
164
+ { name: 'bridge', pid: record.mcp.pid, owner: ownership(record.mcp.pid, record.mcp.started, bridgeMarkers(record)) },
165
+ ];
166
+ }
167
+ const unverifiedNote = (targets) => `cannot verify that ${targets.map(t => `${t.name} pid ${t.pid}`).join(', ')} ${targets.length > 1 ? 'are' : 'is'} botmancers (no start-time identity); not signalled`;
168
+ async function getJson(url, init = {}, timeoutMs = 2500) {
169
+ const response = await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs), redirect: 'error' });
170
+ const text = await response.text();
171
+ let body = null;
172
+ try {
173
+ body = text ? JSON.parse(text) : null;
174
+ }
175
+ catch {
176
+ body = null;
177
+ }
178
+ return { status: response.status, body };
179
+ }
180
+ function unreachable(error) {
181
+ const cause = error.cause?.code ?? error.name;
182
+ return `not answering (${cause})`;
183
+ }
184
+ export async function probeCore(url) {
185
+ try {
186
+ const { status, body } = await getJson(`${url}${CORE_HEALTH_PATH}`);
187
+ if (status !== 200 || body?.service !== 'botmancers-core' || body?.status !== 'ok') {
188
+ return { ok: false, version: typeof body?.version === 'string' ? body.version : null, detail: `unhealthy (HTTP ${status})`, body: body ?? undefined };
189
+ }
190
+ return { ok: true, version: String(body.version), detail: 'ok', body };
191
+ }
192
+ catch (error) {
193
+ return { ok: false, version: null, detail: unreachable(error) };
194
+ }
195
+ }
196
+ export async function probeBridge(base) {
197
+ try {
198
+ const { status, body } = await getJson(`${base}${BRIDGE_HEALTH_PATH}`);
199
+ if (status !== 200 || body?.status !== 'ok')
200
+ return { ok: false, version: null, detail: `unhealthy (HTTP ${status})` };
201
+ return { ok: true, version: String(body.version), detail: 'ok', body };
202
+ }
203
+ catch (error) {
204
+ return { ok: false, version: null, detail: unreachable(error) };
205
+ }
206
+ }
207
+ // An authenticated, read-only bridge round trip that the bridge forwards to
208
+ // the core: proves the bridge reaches this engine with valid credentials.
209
+ export async function probeLink(base, mcpToken) {
210
+ if (!mcpToken)
211
+ return { ok: false, version: null, detail: 'no MCP token in bridge.env' };
212
+ try {
213
+ const { status, body } = await getJson(`${base}/mcp`, {
214
+ method: 'POST',
215
+ headers: { 'content-type': 'application/json', accept: 'application/json', authorization: `Bearer ${mcpToken}` },
216
+ body: JSON.stringify({ jsonrpc: '2.0', id: 'botmancers-status', method: 'tools/call', params: { name: 'botmancers_health', arguments: {} } }),
217
+ }, 5000);
218
+ const result = (body?.result ?? null);
219
+ if (status !== 200 || !result || result.isError || result.structuredContent?.status !== 'ok') {
220
+ const message = body?.error?.message;
221
+ return { ok: false, version: null, detail: `bridge call failed (HTTP ${status}${message ? `: ${message.slice(0, 160)}` : ''})` };
222
+ }
223
+ const principal = result.structuredContent.principal;
224
+ return { ok: true, version: null, detail: `ok (${principal?.kind}:${principal?.id})` };
225
+ }
226
+ catch (error) {
227
+ return { ok: false, version: null, detail: unreachable(error) };
228
+ }
229
+ }
230
+ export function portFree(port, host = PRODUCT_HOST) {
231
+ return new Promise(resolve => {
232
+ const server = createServer();
233
+ server.once('error', () => resolve(false));
234
+ server.listen(port, host, () => server.close(() => resolve(true)));
235
+ });
236
+ }
237
+ export async function inspect(ctx) {
238
+ const record = readRun(ctx.paths);
239
+ const none = { supervisor: false, ui: false, mcp: false };
240
+ if (!record) {
241
+ const stray = existsSync(ctx.paths.runFile);
242
+ if (stray)
243
+ rmSync(ctx.paths.runFile, { force: true });
244
+ return { state: 'stopped', record: null, problems: [], repaired: stray ? 'removed unreadable run metadata' : null, alive: none, core: null, bridge: null, link: null };
245
+ }
246
+ const targets = targetsOf(record);
247
+ const [supervisor, ui, mcp] = targets.map(target => target.owner === 'owned');
248
+ const alive = { supervisor, ui, mcp };
249
+ const unverified = targets.filter(target => target.owner === 'unverified');
250
+ if (targets.every(target => target.owner === 'gone')) {
251
+ rmSync(ctx.paths.runFile, { force: true });
252
+ return {
253
+ state: 'stopped', record: null, problems: [], alive, core: null, bridge: null, link: null,
254
+ repaired: `removed stale run metadata (supervisor pid ${record.supervisor.pid} is not running)`,
255
+ };
256
+ }
257
+ const [core, bridge] = await Promise.all([probeCore(record.ui.url), probeBridge(record.mcp.url.replace(/\/mcp$/, ''))]);
258
+ // The link probe is the only credential-bearing request: it carries the
259
+ // owner-only MCP bearer token to the bridge, which forwards the service
260
+ // token to the core. Both listeners must therefore be confirmed ours; a
261
+ // process that is gone or unverifiable may be another program on its port.
262
+ const link = bridge.ok && core.ok && mcp && ui ? await probeLink(record.mcp.url.replace(/\/mcp$/, ''), readEnvFile(ctx.paths.bridgeEnv)?.[ENV.mcpToken]) : null;
263
+ const problems = [];
264
+ if (unverified.length)
265
+ problems.push(unverifiedNote(unverified));
266
+ if (record.state === 'starting')
267
+ problems.push('startup has not finished');
268
+ if (record.state === 'stopping')
269
+ problems.push('shutdown in progress');
270
+ const isUnverified = (name) => unverified.some(target => target.name === name);
271
+ if (!alive.supervisor && !isUnverified('supervisor'))
272
+ problems.push(`supervisor (pid ${record.supervisor.pid}) is not running`);
273
+ if (!alive.ui && !isUnverified('core'))
274
+ problems.push(`core (pid ${record.ui.pid ?? '-'}) is not running${record.ui.exited ? ` (exited ${record.ui.exited.code ?? record.ui.exited.signal})` : ''}`);
275
+ if (!alive.mcp && !isUnverified('bridge'))
276
+ problems.push(`bridge (pid ${record.mcp.pid ?? '-'}) is not running${record.mcp.exited ? ` (exited ${record.mcp.exited.code ?? record.mcp.exited.signal})` : ''}`);
277
+ if (!core.ok)
278
+ problems.push(`core health ${core.detail}`);
279
+ else if (core.version !== ctx.version)
280
+ problems.push(`version mismatch: core reports ${core.version}, installed ${ctx.version}`);
281
+ else if (core.body?.home !== ctx.paths.home)
282
+ problems.push(`core is serving another home (${String(core.body?.home)})`);
283
+ if (!bridge.ok)
284
+ problems.push(`bridge health ${bridge.detail}`);
285
+ else if (bridge.version !== ctx.version)
286
+ problems.push(`version mismatch: bridge reports ${bridge.version}, installed ${ctx.version}`);
287
+ if (link && !link.ok)
288
+ problems.push(`bridge -> core ${link.detail}`);
289
+ if (record.version !== ctx.version)
290
+ problems.push(`started by botmancers ${record.version}, installed ${ctx.version}`);
291
+ return { state: problems.length ? 'degraded' : 'healthy', record, problems, repaired: null, alive, core, bridge, link };
292
+ }
293
+ // Install kind, launcher, and the versions that are installed, staged, and
294
+ // actually running. The running versions come only from the live health
295
+ // endpoints: a staged release or a moved `current` link never counts.
296
+ function installLines(ctx, view, report) {
297
+ const lines = [` install ${report.install.kind} (${report.install.cliPath})`];
298
+ if (report.launcher) {
299
+ lines.push(` launcher ${report.paths.launcher}${report.shadowedBy ? ` (shadowed on PATH by ${report.shadowedBy})` : report.resolved ? '' : ' (not on PATH)'}`);
300
+ }
301
+ else if (report.resolved) {
302
+ lines.push(` launcher PATH resolves botmancers to ${report.resolved}`);
303
+ }
304
+ const versions = [`cli ${ctx.version}`];
305
+ if (report.current)
306
+ versions.push(`current ${report.current}`);
307
+ if (report.pending)
308
+ versions.push(`pending ${report.pending} (staged, not running${report.autoupdate ? '' : '; auto-update disabled'})`);
309
+ lines.push(` versions ${versions.join(', ')}`);
310
+ if (view.record) {
311
+ const shown = (probe) => probe?.version ?? (probe?.ok === false ? 'down' : 'unknown');
312
+ lines.push(` running core ${shown(view.core)}, bridge ${shown(view.bridge)} (started by ${view.record.version})`);
313
+ }
314
+ return lines;
315
+ }
316
+ export function formatStatus(ctx, view, report = managedReport(ctx.env)) {
317
+ const lines = [`botmancers ${ctx.version}: ${view.state}`];
318
+ if (view.repaired)
319
+ lines.push(` note ${view.repaired}`);
320
+ lines.push(` home ${ctx.paths.home}`);
321
+ lines.push(...installLines(ctx, view, report));
322
+ const activates = report.pending && report.autoupdate ? ` (activates ${report.pending})` : '';
323
+ const record = view.record;
324
+ if (record) {
325
+ const show = (probe) => (probe ? `${probe.ok ? 'ok' : 'DOWN'}${probe.version ? ` version ${probe.version}` : ''}` : '-');
326
+ lines.push(` ui/core ${record.ui.url} ${show(view.core)} (pid ${record.ui.pid ?? '-'})`);
327
+ lines.push(` mcp bridge ${record.mcp.url} ${show(view.bridge)} (pid ${record.mcp.pid ?? '-'})`);
328
+ if (view.link)
329
+ lines.push(` bridge→core ${view.link.detail}`);
330
+ lines.push(` supervisor pid ${record.supervisor.pid}${view.alive.supervisor ? '' : ' (not running)'}, started ${record.startedAt}`);
331
+ for (const problem of view.problems)
332
+ lines.push(` problem ${problem}`);
333
+ if (view.state === 'degraded')
334
+ lines.push(` fix ${RESTART_ACTION} (logs: ${ctx.paths.logs})${activates}`);
335
+ else if (activates)
336
+ lines.push(` restart ${RESTART_ACTION}${activates}`);
337
+ }
338
+ else {
339
+ lines.push(` ui/core ${uiUrl(ctx)} (not running)`);
340
+ lines.push(` mcp bridge ${mcpBase(ctx)}/mcp (not running)`);
341
+ if (activates)
342
+ lines.push(` next start botmancers start --daemon${activates}`);
343
+ }
344
+ return `${lines.join('\n')}\n`;
345
+ }
346
+ export async function status(ctx) {
347
+ const view = await inspect(ctx);
348
+ ctx.io.stdout(formatStatus(ctx, view));
349
+ return view.state === 'healthy' ? PRODUCT_EXIT.ok : view.state === 'degraded' ? PRODUCT_EXIT.degraded : PRODUCT_EXIT.stopped;
350
+ }
351
+ // ---------------------------------------------------------------------
352
+ // Preconditions shared by start and doctor.
353
+ function homeWritable(paths) {
354
+ try {
355
+ accessSync(paths.home, fsConstants.W_OK);
356
+ for (const dir of HOME_DIRS)
357
+ accessSync(join(paths.home, dir), fsConstants.W_OK);
358
+ const probe = join(paths.run, `.write-probe-${process.pid}`);
359
+ writeFileSync(probe, '');
360
+ rmSync(probe);
361
+ return null;
362
+ }
363
+ catch (error) {
364
+ return error.code ?? 'unwritable';
365
+ }
366
+ }
367
+ function preconditions(ctx) {
368
+ const missing = missingAppFiles(ctx.appDir);
369
+ if (missing.length) {
370
+ return { code: PRODUCT_EXIT.missingAssets, message: `the packaged app at ${ctx.appDir} is incomplete (missing ${missing.join(', ')}). Reinstall botmancers.` };
371
+ }
372
+ if (!existsSync(ctx.paths.home)) {
373
+ return { code: PRODUCT_EXIT.notSetUp, message: `${ctx.paths.home} does not exist. Run: botmancers setup` };
374
+ }
375
+ const unwritable = homeWritable(ctx.paths);
376
+ if (unwritable === 'ENOENT')
377
+ return { code: PRODUCT_EXIT.notSetUp, message: `${ctx.paths.home} is not fully set up. Run: botmancers setup` };
378
+ if (unwritable)
379
+ return { code: PRODUCT_EXIT.home, message: `BOTMANCERS_HOME ${ctx.paths.home} is not writable (${unwritable}). Fix its permissions or choose another BOTMANCERS_HOME.` };
380
+ const credentials = credentialState(ctx.paths);
381
+ if (!credentials.ok)
382
+ return { code: PRODUCT_EXIT.notSetUp, message: `${credentials.problems.join('; ')}. Run: botmancers setup` };
383
+ return null;
384
+ }
385
+ // ---------------------------------------------------------------------
386
+ // The supervisor.
387
+ // BOTMANCERS_SERVICE_TOKENS is a list of `<service-id>=sha256:<hex>` entries.
388
+ // An operator's explicit entries stay authoritative; the generated internal
389
+ // bridge entry is merged in and always wins its own id, so the bridge can
390
+ // authenticate whatever the shell exports. Later entries replace earlier ones
391
+ // with the same id (config file, then shell, then the generated entry).
392
+ export function mergeServiceTokens(generated, ...explicit) {
393
+ const entries = new Map();
394
+ const add = (list) => {
395
+ for (const entry of (list ?? '').split(/[,\s]+/).filter(Boolean)) {
396
+ const id = entry.slice(0, Math.max(entry.indexOf('='), 0));
397
+ entries.set(id || entry, entry);
398
+ }
399
+ };
400
+ for (const list of explicit)
401
+ add(list);
402
+ const bridge = (generated ?? '').split(/[,\s]+/).filter(entry => entry.startsWith(`${BRIDGE_SERVICE_ID}=`));
403
+ entries.delete(BRIDGE_SERVICE_ID);
404
+ for (const entry of bridge)
405
+ entries.set(BRIDGE_SERVICE_ID, entry);
406
+ return [...entries.values()].join(',');
407
+ }
408
+ function childEnvs(ctx) {
409
+ const coreFile = readEnvFile(ctx.paths.coreEnv) ?? {};
410
+ const bridgeFile = readEnvFile(ctx.paths.bridgeEnv) ?? {};
411
+ const shell = { ...ctx.env };
412
+ // The core never holds the raw bridge tokens.
413
+ for (const key of [ENV.serviceToken, ENV.mcpToken, ENV.url, ENV.host, ENV.port, UI_PORT_ENV])
414
+ delete shell[key];
415
+ const home = ctx.paths.home;
416
+ return {
417
+ core: {
418
+ ...coreFile,
419
+ ...shell,
420
+ [SERVICE_TOKENS_ENV]: mergeServiceTokens(coreFile[SERVICE_TOKENS_ENV], coreFile[SERVICE_TOKENS_ENV], shell[SERVICE_TOKENS_ENV]),
421
+ BOTMANCERS_HOME: home,
422
+ PORT: String(ctx.uiPort),
423
+ HOSTNAME: PRODUCT_HOST,
424
+ NODE_ENV: 'production',
425
+ NEXT_TELEMETRY_DISABLED: '1',
426
+ },
427
+ bridge: {
428
+ ...shell,
429
+ [ENV.serviceToken]: bridgeFile[ENV.serviceToken],
430
+ [ENV.mcpToken]: bridgeFile[ENV.mcpToken],
431
+ [ENV.url]: uiUrl(ctx),
432
+ [ENV.host]: PRODUCT_HOST,
433
+ [ENV.port]: String(ctx.mcpPort),
434
+ BOTMANCERS_HOME: home,
435
+ },
436
+ };
437
+ }
438
+ function spawnLogged(args, options) {
439
+ const fd = openSync(options.log, 'a', 0o600);
440
+ try {
441
+ return spawn(process.execPath, args, { cwd: options.cwd, env: options.env, stdio: ['ignore', fd, fd] });
442
+ }
443
+ finally {
444
+ closeSync(fd);
445
+ }
446
+ }
447
+ async function waitUntil(child, check, timeoutMs) {
448
+ const deadline = Date.now() + timeoutMs;
449
+ while (Date.now() < deadline) {
450
+ if (child.exitCode !== null || child.signalCode !== null)
451
+ return 'exited';
452
+ if (await check())
453
+ return 'ready';
454
+ await sleep(200);
455
+ }
456
+ return 'timeout';
457
+ }
458
+ function terminate(children, graceMs = 8000) {
459
+ const live = children.filter(child => child.exitCode === null && child.signalCode === null);
460
+ if (!live.length)
461
+ return Promise.resolve();
462
+ return new Promise(resolve => {
463
+ let pending = live.length;
464
+ const timer = setTimeout(() => {
465
+ for (const child of live)
466
+ if (child.exitCode === null && child.signalCode === null)
467
+ child.kill('SIGKILL');
468
+ }, graceMs);
469
+ for (const child of live) {
470
+ child.once('exit', () => {
471
+ if (--pending === 0) {
472
+ clearTimeout(timer);
473
+ resolve();
474
+ }
475
+ });
476
+ child.kill('SIGTERM');
477
+ }
478
+ });
479
+ }
480
+ function tail(path, from, maxLines = 12) {
481
+ try {
482
+ const size = statSync(path).size;
483
+ if (size <= from)
484
+ return [];
485
+ const fd = openSync(path, 'r');
486
+ const buffer = Buffer.alloc(Math.min(size - from, 64 * 1024));
487
+ readSync(fd, buffer, 0, buffer.length, size - buffer.length);
488
+ closeSync(fd);
489
+ return buffer.toString('utf8').trimEnd().split('\n').slice(-maxLines);
490
+ }
491
+ catch {
492
+ return [];
493
+ }
494
+ }
495
+ const logSize = (path) => { try {
496
+ return statSync(path).size;
497
+ }
498
+ catch {
499
+ return 0;
500
+ } };
501
+ // Runs the product in this process until a signal. Resolves with an exit
502
+ // code when startup fails or after a signal-initiated shutdown; calls
503
+ // onReady once both children are healthy.
504
+ export async function supervise(ctx, onReady, onClaim = () => { }) {
505
+ const log = (line) => ctx.io.stderr(`[${new Date().toISOString()}] botmancers supervisor: ${line}\n`);
506
+ const record = {
507
+ schema: 1,
508
+ version: ctx.version,
509
+ home: ctx.paths.home,
510
+ appDir: ctx.appDir,
511
+ state: 'starting',
512
+ startedAt: new Date().toISOString(),
513
+ supervisor: { pid: process.pid, started: processStarted(process.pid) },
514
+ cli: CLI_PATH,
515
+ ui: { pid: null, port: ctx.uiPort, url: uiUrl(ctx) },
516
+ mcp: { pid: null, port: ctx.mcpPort, url: `${mcpBase(ctx)}/mcp` },
517
+ };
518
+ try {
519
+ writeRun(ctx.paths, record, true);
520
+ }
521
+ catch (error) {
522
+ if (error.code !== 'EEXIST')
523
+ throw error;
524
+ log('another botmancers start owns this home; leaving it alone.');
525
+ return PRODUCT_EXIT.degraded;
526
+ }
527
+ finally {
528
+ onClaim();
529
+ }
530
+ const owned = () => readRun(ctx.paths)?.supervisor.pid === process.pid;
531
+ const save = () => { if (owned())
532
+ writeRun(ctx.paths, record); };
533
+ const children = [];
534
+ let shuttingDown = false;
535
+ const fail = async (code, message) => {
536
+ shuttingDown = true;
537
+ log(message);
538
+ await terminate(children);
539
+ if (owned())
540
+ rmSync(ctx.paths.runFile, { force: true });
541
+ return code;
542
+ };
543
+ const envs = childEnvs(ctx);
544
+ const timeout = startupTimeout(ctx.env);
545
+ const watch = (name, child) => {
546
+ child.on('exit', (code, signal) => {
547
+ record[name].exited = { code, signal, at: new Date().toISOString() };
548
+ if (shuttingDown)
549
+ return;
550
+ log(`${name === 'ui' ? 'core' : 'bridge'} (pid ${child.pid}) exited unexpectedly (${code ?? signal}); the product is degraded. See ${name === 'ui' ? ctx.paths.uiLog : ctx.paths.mcpLog}.`);
551
+ save();
552
+ });
553
+ };
554
+ log(`starting botmancers ${ctx.version} (home ${ctx.paths.home})`);
555
+ const coreLogStart = logSize(ctx.paths.uiLog);
556
+ const ui = spawnLogged([join(ctx.appDir, 'server.js')], { cwd: ctx.appDir, env: envs.core, log: ctx.paths.uiLog });
557
+ children.push(ui);
558
+ record.ui.pid = ui.pid ?? null;
559
+ record.ui.started = processStarted(ui.pid);
560
+ watch('ui', ui);
561
+ save();
562
+ const coreUp = await waitUntil(ui, async () => (await probeCore(record.ui.url)).ok, timeout);
563
+ if (coreUp !== 'ready') {
564
+ const why = tail(ctx.paths.uiLog, coreLogStart).map(line => ` ${line}`).join('\n');
565
+ const inUse = /EADDRINUSE/.test(why);
566
+ return fail(inUse ? PRODUCT_EXIT.portInUse : PRODUCT_EXIT.childFailed, `degraded start: the core ${coreUp === 'exited' ? `exited (${ui.exitCode ?? ui.signalCode})` : `did not become healthy within ${timeout} ms`}${inUse ? `: port ${ctx.uiPort} is in use` : ''}; nothing left running. Log ${ctx.paths.uiLog}:\n${why}`);
567
+ }
568
+ log(`core healthy at ${record.ui.url} (pid ${ui.pid})`);
569
+ const bridgeLogStart = logSize(ctx.paths.mcpLog);
570
+ const mcp = spawnLogged([CLI_PATH, 'mcp'], { cwd: ctx.paths.home, env: envs.bridge, log: ctx.paths.mcpLog });
571
+ children.push(mcp);
572
+ record.mcp.pid = mcp.pid ?? null;
573
+ record.mcp.started = processStarted(mcp.pid);
574
+ watch('mcp', mcp);
575
+ save();
576
+ const bridgeUp = await waitUntil(mcp, async () => (await probeBridge(mcpBase(ctx))).ok, timeout);
577
+ if (bridgeUp !== 'ready') {
578
+ const why = tail(ctx.paths.mcpLog, bridgeLogStart).map(line => ` ${ctx.redact(line)}`).join('\n');
579
+ const inUse = mcp.exitCode === 3;
580
+ return fail(inUse ? PRODUCT_EXIT.portInUse : PRODUCT_EXIT.childFailed, `degraded start: the core started but the bridge ${bridgeUp === 'exited' ? `exited (${mcp.exitCode ?? mcp.signalCode})` : `did not become healthy within ${timeout} ms`}${inUse ? `: port ${ctx.mcpPort} is in use` : ''}; stopped the core too. Log ${ctx.paths.mcpLog}:\n${why}`);
581
+ }
582
+ log(`bridge healthy at ${record.mcp.url} (pid ${mcp.pid})`);
583
+ record.state = 'running';
584
+ save();
585
+ onReady(record);
586
+ // The running product checks for updates (at most daily, in a detached
587
+ // worker); a staged release waits for the next start.
588
+ scheduleAutoUpdate(ctx.env);
589
+ setInterval(() => scheduleAutoUpdate(ctx.env), 60 * 60 * 1000).unref();
590
+ return new Promise(resolve => {
591
+ const stop = (signal) => {
592
+ if (shuttingDown)
593
+ return;
594
+ shuttingDown = true;
595
+ log(`${signal} received; stopping core and bridge.`);
596
+ record.state = 'stopping';
597
+ save();
598
+ terminate(children).then(() => {
599
+ if (owned())
600
+ rmSync(ctx.paths.runFile, { force: true });
601
+ log('stopped.');
602
+ resolve(PRODUCT_EXIT.ok);
603
+ });
604
+ };
605
+ process.once('SIGTERM', () => stop('SIGTERM'));
606
+ process.once('SIGINT', () => stop('SIGINT'));
607
+ process.once('SIGHUP', () => stop('SIGHUP'));
608
+ });
609
+ }
610
+ // ---------------------------------------------------------------------
611
+ // Commands.
612
+ function browserCommand(env) {
613
+ const custom = (env[BROWSER_ENV] ?? '').trim();
614
+ if (custom)
615
+ return custom.split(/\s+/);
616
+ if (process.platform === 'darwin')
617
+ return ['open'];
618
+ if (process.platform === 'win32')
619
+ return ['cmd', '/c', 'start', '""'];
620
+ return ['xdg-open'];
621
+ }
622
+ function launchBrowser(ctx, url) {
623
+ const [command, ...args] = browserCommand(ctx.env);
624
+ return new Promise(resolve => {
625
+ const child = spawn(command, [...args, url], { stdio: 'ignore', detached: true });
626
+ child.once('error', () => resolve(false));
627
+ child.once('spawn', () => {
628
+ child.unref();
629
+ resolve(true);
630
+ });
631
+ });
632
+ }
633
+ export async function open(ctx) {
634
+ const view = await inspect(ctx);
635
+ if (view.state === 'stopped' || !view.core?.ok) {
636
+ ctx.io.stderr(`botmancers: the UI is not running (${view.state}). Start it with: botmancers start --daemon --open\n`);
637
+ return PRODUCT_EXIT.stopped;
638
+ }
639
+ const url = view.record.ui.url;
640
+ if (await launchBrowser(ctx, url)) {
641
+ ctx.io.stdout(`botmancers: opened ${url}\n`);
642
+ return PRODUCT_EXIT.ok;
643
+ }
644
+ ctx.io.stderr(`botmancers: could not launch a browser; open ${url} yourself.\n`);
645
+ return PRODUCT_EXIT.degraded;
646
+ }
647
+ export function parseStartArgs(argv) {
648
+ const options = { daemon: false, open: false, supervise: false };
649
+ for (const arg of argv) {
650
+ if (arg === '--daemon' || arg === '-d')
651
+ options.daemon = true;
652
+ else if (arg === '--open')
653
+ options.open = true;
654
+ else if (arg === '--supervise')
655
+ options.supervise = true; // internal: the detached supervisor
656
+ else
657
+ throw new UsageError(/^--?[a-z][a-z0-9-]{0,38}$/.test(arg) ? `Unknown argument ${JSON.stringify(arg)} for start.` : 'Unexpected argument for start (value not shown).');
658
+ }
659
+ return options;
660
+ }
661
+ export async function start(ctx, options) {
662
+ const blocked = preconditions(ctx);
663
+ if (blocked) {
664
+ ctx.io.stderr(`botmancers: ${blocked.message}\n`);
665
+ return blocked.code;
666
+ }
667
+ if (options.supervise) {
668
+ // The detached supervisor started by `start --daemon`; its parent already checked.
669
+ const code = await supervise(ctx, () => { });
670
+ return code;
671
+ }
672
+ // The stopped proof, a pending release's activation, and the supervisor's
673
+ // claim on the home (its run record) happen under start.lock, so neither a
674
+ // concurrent start nor an explicit upgrade can act between them.
675
+ const lock = await waitForFileLock(managedPaths(ctx.env).startLock, {
676
+ timeoutMs: startLockTimeout(ctx.env),
677
+ inherit: ctx.env[START_LOCK_ENV],
678
+ onWait: () => ctx.io.stderr('botmancers: waiting for another botmancers start or upgrade of this home...\n'),
679
+ });
680
+ if (!lock) {
681
+ ctx.io.stderr(`botmancers: another botmancers start or upgrade of ${ctx.paths.home} did not finish; run \`botmancers status\`.\n`);
682
+ return PRODUCT_EXIT.degraded;
683
+ }
684
+ try {
685
+ return await startLocked(ctx, options, lock);
686
+ }
687
+ finally {
688
+ lock.release();
689
+ }
690
+ }
691
+ async function startLocked(ctx, options, lock) {
692
+ const view = await inspect(ctx);
693
+ if (view.repaired)
694
+ ctx.io.stderr(`botmancers: ${view.repaired}\n`);
695
+ if (view.state === 'healthy') {
696
+ ctx.io.stdout(`botmancers: already running.\n${formatStatus(ctx, view)}`);
697
+ if (options.open)
698
+ await launchBrowser(ctx, view.record.ui.url);
699
+ return PRODUCT_EXIT.ok;
700
+ }
701
+ if (view.state === 'degraded') {
702
+ ctx.io.stdout(formatStatus(ctx, view));
703
+ ctx.io.stderr('botmancers: a previous start is degraded; see the fix line above.\n');
704
+ return PRODUCT_EXIT.degraded;
705
+ }
706
+ // Nothing from this home is live (inspect proved every recorded process is
707
+ // gone) and no other start can begin until this one's supervisor claims the
708
+ // home, so a staged managed release can become current now (NOT-279).
709
+ const activated = await activatePendingAndRestart(ctx, options, lock);
710
+ if (activated !== null)
711
+ return activated;
712
+ for (const [port, what] of [[ctx.uiPort, 'UI/core'], [ctx.mcpPort, 'MCP bridge']]) {
713
+ if (!(await portFree(port))) {
714
+ ctx.io.stderr(`botmancers: port ${port} on ${PRODUCT_HOST} (${what}) is in use by another process. Stop it, or choose another port with ${what === 'UI/core' ? UI_PORT_ENV : ENV.port}.\n`);
715
+ return PRODUCT_EXIT.portInUse;
716
+ }
717
+ }
718
+ const announce = async (record) => {
719
+ ctx.io.stdout(`botmancers ${ctx.version}: running\n UI ${record.ui.url}\n MCP ${record.mcp.url}\n home ${ctx.paths.home}\n`);
720
+ if (options.open) {
721
+ if (!(await launchBrowser(ctx, record.ui.url)))
722
+ ctx.io.stderr(`botmancers: could not launch a browser; open ${record.ui.url} yourself.\n`);
723
+ }
724
+ };
725
+ if (!options.daemon) {
726
+ const code = await supervise({ ...ctx, io: { stdout: ctx.io.stdout, stderr: ctx.io.stderr } }, record => { void announce(record); }, lock.release);
727
+ return code;
728
+ }
729
+ const { [START_LOCK_ENV]: _inherited, ...childEnv } = ctx.env;
730
+ const from = logSize(ctx.paths.supervisorLog);
731
+ const fd = openSync(ctx.paths.supervisorLog, 'a', 0o600);
732
+ const child = spawn(process.execPath, [CLI_PATH, 'start', '--supervise'], {
733
+ cwd: ctx.paths.home,
734
+ env: { ...childEnv, BOTMANCERS_HOME: ctx.paths.home },
735
+ detached: true,
736
+ stdio: ['ignore', fd, fd],
737
+ });
738
+ closeSync(fd);
739
+ let exitCode = null;
740
+ child.once('exit', code => { exitCode = code ?? PRODUCT_EXIT.childFailed; });
741
+ const deadline = Date.now() + startupTimeout(ctx.env) * 2 + 5000;
742
+ while (Date.now() < deadline) {
743
+ await sleep(250);
744
+ if (exitCode !== null)
745
+ break;
746
+ const record = readRun(ctx.paths);
747
+ // The supervisor has claimed the home: later starts see it as live.
748
+ if (record?.supervisor.pid === child.pid)
749
+ lock.release();
750
+ if (record?.state === 'running' && record.supervisor.pid === child.pid) {
751
+ child.unref();
752
+ await announce(record);
753
+ return PRODUCT_EXIT.ok;
754
+ }
755
+ }
756
+ if (exitCode === null) {
757
+ child.kill('SIGTERM');
758
+ exitCode = PRODUCT_EXIT.childFailed;
759
+ }
760
+ ctx.io.stderr(`botmancers: start failed (exit ${exitCode}). Supervisor log ${ctx.paths.supervisorLog}:\n`);
761
+ for (const line of tail(ctx.paths.supervisorLog, from, 40))
762
+ ctx.io.stderr(` ${line}\n`);
763
+ return exitCode;
764
+ }
765
+ // Switches `current` to the staged release and hands this start over to the
766
+ // new release's CLI, which owns start.lock (handed off by token) until its
767
+ // supervisor claims the home. Returns null when there is nothing to activate.
768
+ async function activatePendingAndRestart(ctx, options, lock) {
769
+ const pending = activatablePending(ctx.env);
770
+ if (!pending)
771
+ return null;
772
+ const paths = managedPaths(ctx.env);
773
+ try {
774
+ activateRelease(paths, pending);
775
+ }
776
+ catch (error) {
777
+ writeUpdateState(paths, { pendingVersion: null, pendingIntegrity: null, stagedAt: null, lastError: error.message });
778
+ ctx.io.stderr(`botmancers: not activating ${pending}: ${error.message}; starting ${ctx.version}.\n`);
779
+ return null;
780
+ }
781
+ ctx.io.stdout(`botmancers: activated ${pending} (was ${ctx.version}).\n`);
782
+ const args = [cliEntryIn(versionDir(paths, pending)), 'start', ...(options.daemon ? ['--daemon'] : []), ...(options.open ? ['--open'] : [])];
783
+ // Announce the hand-off before spawning: if this process dies anywhere
784
+ // between here and the point where the new CLI owns start.lock, the lock
785
+ // stays live for the lease and the new CLI can still adopt it by token.
786
+ beginHandOff(paths.startLock, lock.token);
787
+ const child = spawn(process.execPath, args, { env: { ...ctx.env, [START_LOCK_ENV]: lock.token }, stdio: 'inherit' });
788
+ // Once spawned, start.lock lives as long as the new CLI, even if this
789
+ // process dies before its supervisor claims the home.
790
+ if (child.pid)
791
+ handOffFileLock(paths.startLock, lock.token, child.pid);
792
+ const claimed = setInterval(() => { if (readRun(ctx.paths))
793
+ lock.release(); }, 200);
794
+ const forward = (signal) => () => child.kill(signal);
795
+ const onInt = forward('SIGINT');
796
+ const onTerm = forward('SIGTERM');
797
+ process.on('SIGINT', onInt);
798
+ process.on('SIGTERM', onTerm);
799
+ return new Promise(resolve => {
800
+ child.once('error', error => {
801
+ clearInterval(claimed);
802
+ ctx.io.stderr(`botmancers: could not run ${pending}: ${error.message}\n`);
803
+ resolve(PRODUCT_EXIT.childFailed);
804
+ });
805
+ child.once('exit', (code, signal) => {
806
+ clearInterval(claimed);
807
+ process.off('SIGINT', onInt);
808
+ process.off('SIGTERM', onTerm);
809
+ resolve(code ?? (signal ? PRODUCT_EXIT.childFailed : PRODUCT_EXIT.ok));
810
+ });
811
+ });
812
+ }
813
+ // Re-checks identity each round, so a reaped-and-recycled PID counts as gone.
814
+ async function waitGone(record, names, timeoutMs) {
815
+ const deadline = Date.now() + timeoutMs;
816
+ for (;;) {
817
+ const left = targetsOf(record).filter(target => names.includes(target.name) && target.owner === 'owned');
818
+ if (!left.length || Date.now() >= deadline)
819
+ return left;
820
+ await sleep(150);
821
+ }
822
+ }
823
+ export async function stop(ctx) {
824
+ const record = readRun(ctx.paths);
825
+ if (!record) {
826
+ if (existsSync(ctx.paths.runFile))
827
+ rmSync(ctx.paths.runFile, { force: true });
828
+ ctx.io.stdout(`botmancers: not running (home ${ctx.paths.home}).\n`);
829
+ return PRODUCT_EXIT.ok;
830
+ }
831
+ const targets = targetsOf(record);
832
+ const owned = targets.filter(target => target.owner === 'owned');
833
+ const unverified = targets.filter(target => target.owner === 'unverified');
834
+ if (!owned.length && !unverified.length) {
835
+ rmSync(ctx.paths.runFile, { force: true });
836
+ ctx.io.stdout(`botmancers: not running; removed stale run metadata (supervisor pid ${record.supervisor.pid} is gone).\n`);
837
+ return PRODUCT_EXIT.ok;
838
+ }
839
+ // The supervisor stops its children; orphans (supervisor gone) are signalled directly.
840
+ const supervisorAlive = owned.some(target => target.name === 'supervisor');
841
+ for (const { name, pid } of owned) {
842
+ if (name === 'supervisor' || !supervisorAlive) {
843
+ try {
844
+ process.kill(pid, 'SIGTERM');
845
+ }
846
+ catch { /* already gone */ }
847
+ }
848
+ }
849
+ const names = owned.map(target => target.name);
850
+ let survivors = await waitGone(record, names, 15_000);
851
+ if (survivors.length) {
852
+ for (const { pid } of survivors) {
853
+ try {
854
+ process.kill(pid, 'SIGKILL');
855
+ }
856
+ catch { /* already gone */ }
857
+ }
858
+ survivors = await waitGone(record, names, 3000);
859
+ }
860
+ const remaining = [...survivors, ...unverified];
861
+ if (remaining.length) {
862
+ // Keep the ownership record (the supervisor may have removed it on its way
863
+ // out) so status reports the survivors and a later stop can retry.
864
+ writeRun(ctx.paths, owned.length ? { ...record, state: 'stopping' } : record);
865
+ if (survivors.length)
866
+ ctx.io.stderr(`botmancers: could not stop ${survivors.map(({ name, pid }) => `${name} (pid ${pid})`).join(', ')}.\n`);
867
+ if (unverified.length)
868
+ ctx.io.stderr(`botmancers: ${unverifiedNote(unverified)}. If they are not botmancers, remove ${ctx.paths.runFile}.\n`);
869
+ ctx.io.stderr(`botmancers: run metadata kept in ${ctx.paths.runFile}; retry with botmancers stop.\n`);
870
+ return PRODUCT_EXIT.degraded;
871
+ }
872
+ rmSync(ctx.paths.runFile, { force: true });
873
+ ctx.io.stdout(`botmancers: stopped (${owned.map(({ name, pid }) => `${name} pid ${pid}`).join(', ')}).\n`);
874
+ return PRODUCT_EXIT.ok;
875
+ }
876
+ function onPath(command, env) {
877
+ const exts = process.platform === 'win32' ? (env.PATHEXT ?? '.EXE;.CMD;.BAT').split(';') : [''];
878
+ for (const dir of (env.PATH ?? '').split(delimiter).filter(Boolean)) {
879
+ for (const ext of exts) {
880
+ const candidate = join(dir, command + ext);
881
+ try {
882
+ accessSync(candidate, fsConstants.X_OK);
883
+ if (statSync(candidate).isFile())
884
+ return candidate;
885
+ }
886
+ catch { /* keep looking */ }
887
+ }
888
+ }
889
+ return null;
890
+ }
891
+ async function reachable(url) {
892
+ try {
893
+ await fetch(url, { signal: AbortSignal.timeout(1500), redirect: 'manual' });
894
+ return true;
895
+ }
896
+ catch {
897
+ return false;
898
+ }
899
+ }
900
+ export async function doctor(ctx) {
901
+ const checks = [];
902
+ const add = (level, name, detail) => checks.push([level, name, detail]);
903
+ const [major, minor] = process.versions.node.split('.').map(Number);
904
+ if (major < 20 || (major === 20 && minor < 9))
905
+ add('fail', 'node', `Node ${process.version} is too old; the UI/core needs Node 20.9 or newer (22+ recommended).`);
906
+ else if (major < 22)
907
+ add('warn', 'node', `Node ${process.version}: the bundled better-sqlite3 declares Node 22+; the native check below decides.`);
908
+ else
909
+ add('ok', 'node', `Node ${process.version}`);
910
+ const missing = missingAppFiles(ctx.appDir);
911
+ const build = readBuildInfo(ctx.appDir);
912
+ if (missing.length)
913
+ add('fail', 'assets', `packaged app at ${ctx.appDir} is missing ${missing.join(', ')}; reinstall botmancers.`);
914
+ else if (build?.version !== ctx.version)
915
+ add('fail', 'assets', `packaged app is version ${build?.version ?? 'unknown'}, CLI is ${ctx.version}; reinstall botmancers.`);
916
+ else
917
+ add('ok', 'assets', `packaged UI/core ${build.version} (commit ${build.commit.slice(0, 12)})`);
918
+ const report = managedReport(ctx.env);
919
+ add('info', 'install', `${report.install.kind} (${report.install.cliPath})`);
920
+ if (report.install.kind === 'managed' && !report.launcher)
921
+ add('warn', 'launcher', `${report.paths.launcher} is missing or modified; re-run botmancers install --to ${report.current ?? ctx.version}.`);
922
+ if (report.shadowedBy)
923
+ add('warn', 'path', `\`botmancers\` on PATH resolves to ${report.shadowedBy}, not the managed launcher ${report.paths.launcher}; put ${report.paths.localBin} first on PATH (or botmancers install --purge-global).`);
924
+ else if (report.launcher && !report.resolved)
925
+ add('warn', 'path', `${report.paths.localBin} is not on PATH; add it: export PATH="${report.paths.localBin}:$PATH"`);
926
+ else if (report.resolved)
927
+ add('ok', 'path', `PATH resolves botmancers to ${report.resolved}`);
928
+ if (report.current || report.pending) {
929
+ add('info', 'versions', `cli ${ctx.version}, current ${report.current ?? '-'}${report.pending ? `, pending ${report.pending} (staged, not running; activates at the next botmancers start after ${RESTART_ACTION.split(' && ')[0]})` : ''}`);
930
+ }
931
+ if (report.install.kind === 'managed') {
932
+ const when = report.state.checkedAt ? `last check ${report.state.checkedAt}${report.state.latest ? `, npm latest ${report.state.latest}` : ''}` : 'not checked yet';
933
+ if (!report.autoupdate)
934
+ add('info', 'updater', 'automatic updates disabled (BOTMANCERS_DISABLE_AUTOUPDATER); botmancers upgrade still works');
935
+ else if (report.state.lastError)
936
+ add('warn', 'updater', `${when}; ${report.state.lastError}`);
937
+ else
938
+ add('ok', 'updater', `automatic updates on (${when})`);
939
+ }
940
+ if (!existsSync(ctx.paths.home)) {
941
+ add('fail', 'home', `${ctx.paths.home} does not exist; run botmancers setup.`);
942
+ }
943
+ else {
944
+ const unwritable = homeWritable(ctx.paths);
945
+ const mode = modeOf(ctx.paths.home);
946
+ if (unwritable === 'ENOENT')
947
+ add('fail', 'home', `${ctx.paths.home} is not fully set up; run botmancers setup.`);
948
+ else if (unwritable)
949
+ add('fail', 'home', `${ctx.paths.home} is not writable (${unwritable}).`);
950
+ else if (mode !== null && (mode & 0o077) !== 0)
951
+ add('warn', 'home', `${ctx.paths.home} is readable by others (mode ${mode.toString(8)}); run botmancers setup to restore owner-only.`);
952
+ else
953
+ add('ok', 'home', `${ctx.paths.home} is owner-only and writable`);
954
+ }
955
+ const credentials = credentialState(ctx.paths);
956
+ if (!credentials.ok)
957
+ add('fail', 'config', `${credentials.problems.join('; ')}; run botmancers setup.`);
958
+ else {
959
+ const loose = [ctx.paths.coreEnv, ctx.paths.bridgeEnv].filter(path => ((modeOf(path) ?? 0) & 0o077) !== 0);
960
+ if (loose.length)
961
+ add('fail', 'config', `${loose.join(', ')} readable by others; run botmancers setup.`);
962
+ else
963
+ add('ok', 'config', 'core.env and bridge.env are owner-only; the core lists the digest of the bridge service token');
964
+ }
965
+ if (!missing.includes('node_modules/better-sqlite3/package.json')) {
966
+ try {
967
+ execFileSync(process.execPath, ['-e', `const D=require(${JSON.stringify(join(ctx.appDir, 'node_modules/better-sqlite3'))});new D(':memory:').prepare('select 1').get()`], { cwd: ctx.appDir, stdio: ['ignore', 'ignore', 'pipe'], timeout: 15_000 });
968
+ add('ok', 'native', `better-sqlite3 loads on ${process.platform}-${process.arch}`);
969
+ }
970
+ catch (error) {
971
+ const message = String(error.stderr ?? '').split('\n').find(line => /Error/.test(line)) ?? 'load failed';
972
+ add('fail', 'native', `better-sqlite3 does not load on ${process.platform}-${process.arch}: ${message.trim().slice(0, 200)}`);
973
+ }
974
+ }
975
+ const view = await inspect(ctx);
976
+ if (view.record)
977
+ add('info', 'running', `core ${view.core?.version ?? 'unknown'}, bridge ${view.bridge?.version ?? 'unknown'} (started by ${view.record.version})`);
978
+ if (view.state === 'healthy')
979
+ add('ok', 'product', `running and healthy: UI ${view.record.ui.url}, MCP ${view.record.mcp.url}${report.pending && report.autoupdate ? `; restart to activate ${report.pending}: ${RESTART_ACTION}` : ''}`);
980
+ else if (view.state === 'degraded')
981
+ add('fail', 'product', `running but degraded: ${view.problems.join('; ')}; fix: ${RESTART_ACTION}`);
982
+ else {
983
+ const busy = [];
984
+ for (const port of [ctx.uiPort, ctx.mcpPort])
985
+ if (!(await portFree(port)))
986
+ busy.push(String(port));
987
+ if (busy.length)
988
+ add('fail', 'ports', `port${busy.length > 1 ? 's' : ''} ${busy.join(' and ')} on ${PRODUCT_HOST} ${busy.length > 1 ? 'are' : 'is'} in use by another process; botmancers start would fail.`);
989
+ else
990
+ add('ok', 'ports', `${PRODUCT_HOST}:${ctx.uiPort} and ${PRODUCT_HOST}:${ctx.mcpPort} are free (product stopped)`);
991
+ }
992
+ const core = { ...(readEnvFile(ctx.paths.coreEnv) ?? {}), ...ctx.env };
993
+ if ((core.HERMES_API_SERVER_KEY ?? '').trim())
994
+ add('ok', 'hermes', `HERMES_API_SERVER_KEY is configured (gateway ${core.HERMES_BASE_URL?.trim() || 'http://127.0.0.1:8642'})`);
995
+ else
996
+ add('warn', 'hermes', `Hermes is not configured: conversational turns post a Hermes error until HERMES_API_SERVER_KEY is set in ${ctx.paths.coreEnv}.`);
997
+ const deckUrl = (ctx.env[AGENT_DECK_URL_ENV] ?? '').trim() || DEFAULT_AGENT_DECK_URL;
998
+ const deckBin = onPath('agent-deck', ctx.env);
999
+ if (!deckBin)
1000
+ add('warn', 'agent-deck', 'Agent Deck is unavailable: `agent-deck` is not on PATH; coding-agent runs cannot launch.');
1001
+ else if (!(await reachable(deckUrl)))
1002
+ add('warn', 'agent-deck', `Agent Deck is unavailable: ${deckBin} found, but its server at ${deckUrl} is not answering.`);
1003
+ else if (!(core.AGENT_DECK_RUN_TOKEN ?? '').trim())
1004
+ add('warn', 'agent-deck', `Agent Deck is reachable at ${deckUrl}, but AGENT_DECK_RUN_TOKEN is not set in ${ctx.paths.coreEnv}.`);
1005
+ else
1006
+ add('ok', 'agent-deck', `agent-deck on PATH, server ${deckUrl} reachable, run token configured`);
1007
+ const failures = checks.filter(([level]) => level === 'fail').length;
1008
+ const warnings = checks.filter(([level]) => level === 'warn').length;
1009
+ const lines = [`botmancers doctor ${ctx.version} (home ${ctx.paths.home})`];
1010
+ for (const [level, name, detail] of checks)
1011
+ lines.push(` ${level.padEnd(5)} ${name.padEnd(11)} ${detail}`);
1012
+ lines.push(failures ? `result: FAILED (${failures} problem${failures > 1 ? 's' : ''}, ${warnings} warning${warnings === 1 ? '' : 's'})` : `result: ok (${warnings} warning${warnings === 1 ? '' : 's'})`);
1013
+ ctx.io.stdout(`${lines.join('\n')}\n`);
1014
+ return failures ? PRODUCT_EXIT.degraded : PRODUCT_EXIT.ok;
1015
+ }