kindflow 0.1.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 (1606) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/agent-runner.js +190 -0
  4. package/agent-runner.js.map +1 -0
  5. package/chunk-2UX7Z5TH.js +95 -0
  6. package/chunk-2UX7Z5TH.js.map +1 -0
  7. package/chunk-2YT53FBK.js +38 -0
  8. package/chunk-2YT53FBK.js.map +1 -0
  9. package/chunk-3AMW7NXZ.js +688 -0
  10. package/chunk-3AMW7NXZ.js.map +1 -0
  11. package/chunk-GZFR7ELC.js +98 -0
  12. package/chunk-GZFR7ELC.js.map +1 -0
  13. package/chunk-P5P73L35.js +17 -0
  14. package/chunk-P5P73L35.js.map +1 -0
  15. package/chunk-UGIMNC7O.js +3134 -0
  16. package/chunk-UGIMNC7O.js.map +1 -0
  17. package/cli.js +153 -0
  18. package/cli.js.map +1 -0
  19. package/cron-runner.js +89 -0
  20. package/cron-runner.js.map +1 -0
  21. package/daemon.js +12 -0
  22. package/daemon.js.map +1 -0
  23. package/database.js +7 -0
  24. package/database.js.map +1 -0
  25. package/imap-runner.js +123 -0
  26. package/imap-runner.js.map +1 -0
  27. package/package.json +58 -0
  28. package/postgresql-TRH2S2OL.js +67 -0
  29. package/postgresql-TRH2S2OL.js.map +1 -0
  30. package/s3.js +7 -0
  31. package/s3.js.map +1 -0
  32. package/sqlite-HPBUYY7A.js +52 -0
  33. package/sqlite-HPBUYY7A.js.map +1 -0
  34. package/telegram-client.js +7 -0
  35. package/telegram-client.js.map +1 -0
  36. package/telegram-runner.js +156 -0
  37. package/telegram-runner.js.map +1 -0
  38. package/templates/agent/agent/.claude/settings.json +12 -0
  39. package/templates/agent/agent/CLAUDE.md +34 -0
  40. package/templates/agent/agent/capabilities/.gitkeep +0 -0
  41. package/templates/agent/agent/config.json +7 -0
  42. package/templates/agent/agent/data/.gitkeep +0 -0
  43. package/templates/agent/agent/resources/.gitkeep +0 -0
  44. package/templates/agent/agent/scripts/.gitkeep +0 -0
  45. package/templates/agent/master/.claude/commands/build-commands.md +10 -0
  46. package/templates/agent/master/.claude/commands/build-identity.md +7 -0
  47. package/templates/agent/master/.claude/commands/build-scripts.md +7 -0
  48. package/templates/agent/master/.claude/commands/discovery.md +46 -0
  49. package/templates/agent/master/.claude/commands/review-agent.md +57 -0
  50. package/templates/agent/master/.claude/commands/setup-database.md +12 -0
  51. package/templates/agent/master/.claude/commands/setup-s3.md +12 -0
  52. package/templates/agent/master/.claude/commands/setup-telegram.md +16 -0
  53. package/templates/agent/master/.claude/settings.json +13 -0
  54. package/templates/agent/master/CLAUDE.md +52 -0
  55. package/templates/agent/master/resources/agent-structure.md +24 -0
  56. package/templates/agent/master/resources/capabilities.md +209 -0
  57. package/types.js +1 -0
  58. package/types.js.map +1 -0
  59. package/web/standalone/.next/static/chunks/0.rhx-_tszlu4.js +6 -0
  60. package/web/standalone/.next/static/chunks/03ezf5l-_j4jg.js +1 -0
  61. package/web/standalone/.next/static/chunks/03~yq9q893hmn.js +1 -0
  62. package/web/standalone/.next/static/chunks/04ck6i02nzj~g.js +1 -0
  63. package/web/standalone/.next/static/chunks/059v8r-yfkdzg.js +1 -0
  64. package/web/standalone/.next/static/chunks/07m3a24dcvltn.js +1 -0
  65. package/web/standalone/.next/static/chunks/0846ex_9lje66.js +1 -0
  66. package/web/standalone/.next/static/chunks/09auzhh4.kw6i.js +1 -0
  67. package/web/standalone/.next/static/chunks/0cs-bbn7o_z8t.js +1 -0
  68. package/web/standalone/.next/static/chunks/0cz5_xjqg2kbi.js +1 -0
  69. package/web/standalone/.next/static/chunks/0d14tm~hn93.2.js +1 -0
  70. package/web/standalone/.next/static/chunks/0dbly4ik_4oyh.css +3 -0
  71. package/web/standalone/.next/static/chunks/0ecr_h8tt8vw7.js +1 -0
  72. package/web/standalone/.next/static/chunks/0emphvehnoi1-.js +2 -0
  73. package/web/standalone/.next/static/chunks/0gpetx3.4k6b4.js +1 -0
  74. package/web/standalone/.next/static/chunks/0hfzu1auqc8ou.js +4 -0
  75. package/web/standalone/.next/static/chunks/0hjgvrv57vh99.js +1 -0
  76. package/web/standalone/.next/static/chunks/0nwzqd02b0bz9.js +1 -0
  77. package/web/standalone/.next/static/chunks/0oja3muheolaf.js +1 -0
  78. package/web/standalone/.next/static/chunks/0qxvztkmx2jf8.js +1 -0
  79. package/web/standalone/.next/static/chunks/0rsdytxfylxaw.js +1 -0
  80. package/web/standalone/.next/static/chunks/0t3kxrf329vtx.js +31 -0
  81. package/web/standalone/.next/static/chunks/0tj~6ee-vyqtu.js +1 -0
  82. package/web/standalone/.next/static/chunks/0vu.7k.x708cp.js +18 -0
  83. package/web/standalone/.next/static/chunks/0yt_9qbiz6hzr.js +1 -0
  84. package/web/standalone/.next/static/chunks/0~6eav_b2pgm..js +1 -0
  85. package/web/standalone/.next/static/chunks/11c0vsuj8ueva.js +1 -0
  86. package/web/standalone/.next/static/chunks/11zn_gydr7w.9.js +1 -0
  87. package/web/standalone/.next/static/chunks/12dnb1g.3zjtg.js +1 -0
  88. package/web/standalone/.next/static/chunks/12~poxkd72k~o.js +1 -0
  89. package/web/standalone/.next/static/chunks/14_1rc6rwie3u.js +1 -0
  90. package/web/standalone/.next/static/chunks/14kp_3wlgnkxp.js +1 -0
  91. package/web/standalone/.next/static/chunks/16hbu0vikyrj2.js +1 -0
  92. package/web/standalone/.next/static/chunks/17irh9suob_1s.js +1 -0
  93. package/web/standalone/.next/static/chunks/17oc2l.ekcs8b.css +1 -0
  94. package/web/standalone/.next/static/chunks/turbopack-03.6m4zxjzd-b.js +1 -0
  95. package/web/standalone/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
  96. package/web/standalone/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
  97. package/web/standalone/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
  98. package/web/standalone/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
  99. package/web/standalone/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
  100. package/web/standalone/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
  101. package/web/standalone/.next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
  102. package/web/standalone/.next/static/rP40PaqmfSDCp0BXJLoC8/_buildManifest.js +11 -0
  103. package/web/standalone/.next/static/rP40PaqmfSDCp0BXJLoC8/_clientMiddlewareManifest.js +1 -0
  104. package/web/standalone/.next/static/rP40PaqmfSDCp0BXJLoC8/_ssgManifest.js +1 -0
  105. package/web/standalone/apps/web/.next/BUILD_ID +1 -0
  106. package/web/standalone/apps/web/.next/app-path-routes-manifest.json +26 -0
  107. package/web/standalone/apps/web/.next/build-manifest.json +21 -0
  108. package/web/standalone/apps/web/.next/package.json +1 -0
  109. package/web/standalone/apps/web/.next/prerender-manifest.json +378 -0
  110. package/web/standalone/apps/web/.next/required-server-files.json +333 -0
  111. package/web/standalone/apps/web/.next/routes-manifest.json +208 -0
  112. package/web/standalone/apps/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  113. package/web/standalone/apps/web/.next/server/app/_global-error/page/build-manifest.json +17 -0
  114. package/web/standalone/apps/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  115. package/web/standalone/apps/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  116. package/web/standalone/apps/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  117. package/web/standalone/apps/web/.next/server/app/_global-error/page.js +10 -0
  118. package/web/standalone/apps/web/.next/server/app/_global-error/page.js.map +5 -0
  119. package/web/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  120. package/web/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  121. package/web/standalone/apps/web/.next/server/app/_global-error.html +1 -0
  122. package/web/standalone/apps/web/.next/server/app/_global-error.meta +15 -0
  123. package/web/standalone/apps/web/.next/server/app/_global-error.rsc +15 -0
  124. package/web/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  125. package/web/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  126. package/web/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
  127. package/web/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  128. package/web/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  129. package/web/standalone/apps/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  130. package/web/standalone/apps/web/.next/server/app/_not-found/page/build-manifest.json +17 -0
  131. package/web/standalone/apps/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  132. package/web/standalone/apps/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  133. package/web/standalone/apps/web/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  134. package/web/standalone/apps/web/.next/server/app/_not-found/page.js +13 -0
  135. package/web/standalone/apps/web/.next/server/app/_not-found/page.js.map +5 -0
  136. package/web/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  137. package/web/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  138. package/web/standalone/apps/web/.next/server/app/_not-found.html +1 -0
  139. package/web/standalone/apps/web/.next/server/app/_not-found.meta +16 -0
  140. package/web/standalone/apps/web/.next/server/app/_not-found.rsc +17 -0
  141. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +17 -0
  142. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  143. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
  144. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  145. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  146. package/web/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  147. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page/app-paths-manifest.json +3 -0
  148. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page/build-manifest.json +17 -0
  149. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page/next-font-manifest.json +11 -0
  150. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page/react-loadable-manifest.json +1 -0
  151. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page/server-reference-manifest.json +4 -0
  152. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page.js +15 -0
  153. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page.js.map +5 -0
  154. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page.js.nft.json +1 -0
  155. package/web/standalone/apps/web/.next/server/app/agents/[id]/edit/page_client-reference-manifest.js +3 -0
  156. package/web/standalone/apps/web/.next/server/app/agents/[id]/page/app-paths-manifest.json +3 -0
  157. package/web/standalone/apps/web/.next/server/app/agents/[id]/page/build-manifest.json +17 -0
  158. package/web/standalone/apps/web/.next/server/app/agents/[id]/page/next-font-manifest.json +11 -0
  159. package/web/standalone/apps/web/.next/server/app/agents/[id]/page/react-loadable-manifest.json +1 -0
  160. package/web/standalone/apps/web/.next/server/app/agents/[id]/page/server-reference-manifest.json +4 -0
  161. package/web/standalone/apps/web/.next/server/app/agents/[id]/page.js +15 -0
  162. package/web/standalone/apps/web/.next/server/app/agents/[id]/page.js.map +5 -0
  163. package/web/standalone/apps/web/.next/server/app/agents/[id]/page.js.nft.json +1 -0
  164. package/web/standalone/apps/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +3 -0
  165. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page/app-paths-manifest.json +3 -0
  166. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page/build-manifest.json +17 -0
  167. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page/next-font-manifest.json +11 -0
  168. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page/react-loadable-manifest.json +1 -0
  169. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page/server-reference-manifest.json +4 -0
  170. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page.js +15 -0
  171. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page.js.map +5 -0
  172. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page.js.nft.json +1 -0
  173. package/web/standalone/apps/web/.next/server/app/agents/[id]/terminal/page_client-reference-manifest.js +3 -0
  174. package/web/standalone/apps/web/.next/server/app/agents/new/page/app-paths-manifest.json +3 -0
  175. package/web/standalone/apps/web/.next/server/app/agents/new/page/build-manifest.json +17 -0
  176. package/web/standalone/apps/web/.next/server/app/agents/new/page/next-font-manifest.json +11 -0
  177. package/web/standalone/apps/web/.next/server/app/agents/new/page/react-loadable-manifest.json +1 -0
  178. package/web/standalone/apps/web/.next/server/app/agents/new/page/server-reference-manifest.json +4 -0
  179. package/web/standalone/apps/web/.next/server/app/agents/new/page.js +15 -0
  180. package/web/standalone/apps/web/.next/server/app/agents/new/page.js.map +5 -0
  181. package/web/standalone/apps/web/.next/server/app/agents/new/page.js.nft.json +1 -0
  182. package/web/standalone/apps/web/.next/server/app/agents/new/page_client-reference-manifest.js +3 -0
  183. package/web/standalone/apps/web/.next/server/app/agents/new.html +1 -0
  184. package/web/standalone/apps/web/.next/server/app/agents/new.meta +16 -0
  185. package/web/standalone/apps/web/.next/server/app/agents/new.rsc +25 -0
  186. package/web/standalone/apps/web/.next/server/app/agents/new.segments/_full.segment.rsc +25 -0
  187. package/web/standalone/apps/web/.next/server/app/agents/new.segments/_head.segment.rsc +6 -0
  188. package/web/standalone/apps/web/.next/server/app/agents/new.segments/_index.segment.rsc +6 -0
  189. package/web/standalone/apps/web/.next/server/app/agents/new.segments/_tree.segment.rsc +4 -0
  190. package/web/standalone/apps/web/.next/server/app/agents/new.segments/agents/new/__PAGE__.segment.rsc +9 -0
  191. package/web/standalone/apps/web/.next/server/app/agents/new.segments/agents/new.segment.rsc +5 -0
  192. package/web/standalone/apps/web/.next/server/app/agents/new.segments/agents.segment.rsc +6 -0
  193. package/web/standalone/apps/web/.next/server/app/agents/page/app-paths-manifest.json +3 -0
  194. package/web/standalone/apps/web/.next/server/app/agents/page/build-manifest.json +17 -0
  195. package/web/standalone/apps/web/.next/server/app/agents/page/next-font-manifest.json +11 -0
  196. package/web/standalone/apps/web/.next/server/app/agents/page/react-loadable-manifest.json +1 -0
  197. package/web/standalone/apps/web/.next/server/app/agents/page/server-reference-manifest.json +4 -0
  198. package/web/standalone/apps/web/.next/server/app/agents/page.js +15 -0
  199. package/web/standalone/apps/web/.next/server/app/agents/page.js.map +5 -0
  200. package/web/standalone/apps/web/.next/server/app/agents/page.js.nft.json +1 -0
  201. package/web/standalone/apps/web/.next/server/app/agents/page_client-reference-manifest.js +3 -0
  202. package/web/standalone/apps/web/.next/server/app/agents.html +1 -0
  203. package/web/standalone/apps/web/.next/server/app/agents.meta +15 -0
  204. package/web/standalone/apps/web/.next/server/app/agents.rsc +23 -0
  205. package/web/standalone/apps/web/.next/server/app/agents.segments/_full.segment.rsc +23 -0
  206. package/web/standalone/apps/web/.next/server/app/agents.segments/_head.segment.rsc +6 -0
  207. package/web/standalone/apps/web/.next/server/app/agents.segments/_index.segment.rsc +6 -0
  208. package/web/standalone/apps/web/.next/server/app/agents.segments/_tree.segment.rsc +4 -0
  209. package/web/standalone/apps/web/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +9 -0
  210. package/web/standalone/apps/web/.next/server/app/agents.segments/agents.segment.rsc +6 -0
  211. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page/app-paths-manifest.json +3 -0
  212. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page/build-manifest.json +17 -0
  213. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page/next-font-manifest.json +11 -0
  214. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page/react-loadable-manifest.json +1 -0
  215. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page/server-reference-manifest.json +4 -0
  216. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page.js +15 -0
  217. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page.js.map +5 -0
  218. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page.js.nft.json +1 -0
  219. package/web/standalone/apps/web/.next/server/app/capabilities/cron/[id]/page_client-reference-manifest.js +3 -0
  220. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page/app-paths-manifest.json +3 -0
  221. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page/build-manifest.json +17 -0
  222. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page/next-font-manifest.json +11 -0
  223. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page/react-loadable-manifest.json +1 -0
  224. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page/server-reference-manifest.json +4 -0
  225. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page.js +15 -0
  226. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page.js.map +5 -0
  227. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page.js.nft.json +1 -0
  228. package/web/standalone/apps/web/.next/server/app/capabilities/cron/page_client-reference-manifest.js +3 -0
  229. package/web/standalone/apps/web/.next/server/app/capabilities/cron.html +1 -0
  230. package/web/standalone/apps/web/.next/server/app/capabilities/cron.meta +16 -0
  231. package/web/standalone/apps/web/.next/server/app/capabilities/cron.rsc +25 -0
  232. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/_full.segment.rsc +25 -0
  233. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/_head.segment.rsc +6 -0
  234. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/_index.segment.rsc +6 -0
  235. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/_tree.segment.rsc +4 -0
  236. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/capabilities/cron/__PAGE__.segment.rsc +9 -0
  237. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/capabilities/cron.segment.rsc +5 -0
  238. package/web/standalone/apps/web/.next/server/app/capabilities/cron.segments/capabilities.segment.rsc +6 -0
  239. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page/app-paths-manifest.json +3 -0
  240. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page/build-manifest.json +17 -0
  241. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page/next-font-manifest.json +11 -0
  242. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page/react-loadable-manifest.json +1 -0
  243. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page/server-reference-manifest.json +4 -0
  244. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page.js +15 -0
  245. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page.js.map +5 -0
  246. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page.js.nft.json +1 -0
  247. package/web/standalone/apps/web/.next/server/app/capabilities/database/[id]/page_client-reference-manifest.js +3 -0
  248. package/web/standalone/apps/web/.next/server/app/capabilities/database/page/app-paths-manifest.json +3 -0
  249. package/web/standalone/apps/web/.next/server/app/capabilities/database/page/build-manifest.json +17 -0
  250. package/web/standalone/apps/web/.next/server/app/capabilities/database/page/next-font-manifest.json +11 -0
  251. package/web/standalone/apps/web/.next/server/app/capabilities/database/page/react-loadable-manifest.json +1 -0
  252. package/web/standalone/apps/web/.next/server/app/capabilities/database/page/server-reference-manifest.json +4 -0
  253. package/web/standalone/apps/web/.next/server/app/capabilities/database/page.js +15 -0
  254. package/web/standalone/apps/web/.next/server/app/capabilities/database/page.js.map +5 -0
  255. package/web/standalone/apps/web/.next/server/app/capabilities/database/page.js.nft.json +1 -0
  256. package/web/standalone/apps/web/.next/server/app/capabilities/database/page_client-reference-manifest.js +3 -0
  257. package/web/standalone/apps/web/.next/server/app/capabilities/database.html +1 -0
  258. package/web/standalone/apps/web/.next/server/app/capabilities/database.meta +16 -0
  259. package/web/standalone/apps/web/.next/server/app/capabilities/database.rsc +25 -0
  260. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/_full.segment.rsc +25 -0
  261. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/_head.segment.rsc +6 -0
  262. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/_index.segment.rsc +6 -0
  263. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/_tree.segment.rsc +4 -0
  264. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/capabilities/database/__PAGE__.segment.rsc +9 -0
  265. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/capabilities/database.segment.rsc +5 -0
  266. package/web/standalone/apps/web/.next/server/app/capabilities/database.segments/capabilities.segment.rsc +6 -0
  267. package/web/standalone/apps/web/.next/server/app/capabilities/email/page/app-paths-manifest.json +3 -0
  268. package/web/standalone/apps/web/.next/server/app/capabilities/email/page/build-manifest.json +17 -0
  269. package/web/standalone/apps/web/.next/server/app/capabilities/email/page/next-font-manifest.json +11 -0
  270. package/web/standalone/apps/web/.next/server/app/capabilities/email/page/react-loadable-manifest.json +1 -0
  271. package/web/standalone/apps/web/.next/server/app/capabilities/email/page/server-reference-manifest.json +4 -0
  272. package/web/standalone/apps/web/.next/server/app/capabilities/email/page.js +15 -0
  273. package/web/standalone/apps/web/.next/server/app/capabilities/email/page.js.map +5 -0
  274. package/web/standalone/apps/web/.next/server/app/capabilities/email/page.js.nft.json +1 -0
  275. package/web/standalone/apps/web/.next/server/app/capabilities/email/page_client-reference-manifest.js +3 -0
  276. package/web/standalone/apps/web/.next/server/app/capabilities/email.html +1 -0
  277. package/web/standalone/apps/web/.next/server/app/capabilities/email.meta +16 -0
  278. package/web/standalone/apps/web/.next/server/app/capabilities/email.rsc +25 -0
  279. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/_full.segment.rsc +25 -0
  280. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/_head.segment.rsc +6 -0
  281. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/_index.segment.rsc +6 -0
  282. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/_tree.segment.rsc +4 -0
  283. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/capabilities/email/__PAGE__.segment.rsc +9 -0
  284. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/capabilities/email.segment.rsc +5 -0
  285. package/web/standalone/apps/web/.next/server/app/capabilities/email.segments/capabilities.segment.rsc +6 -0
  286. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page/app-paths-manifest.json +3 -0
  287. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page/build-manifest.json +17 -0
  288. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page/next-font-manifest.json +11 -0
  289. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page/react-loadable-manifest.json +1 -0
  290. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page/server-reference-manifest.json +4 -0
  291. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page.js +15 -0
  292. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page.js.map +5 -0
  293. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page.js.nft.json +1 -0
  294. package/web/standalone/apps/web/.next/server/app/capabilities/http/[id]/page_client-reference-manifest.js +3 -0
  295. package/web/standalone/apps/web/.next/server/app/capabilities/http/page/app-paths-manifest.json +3 -0
  296. package/web/standalone/apps/web/.next/server/app/capabilities/http/page/build-manifest.json +17 -0
  297. package/web/standalone/apps/web/.next/server/app/capabilities/http/page/next-font-manifest.json +11 -0
  298. package/web/standalone/apps/web/.next/server/app/capabilities/http/page/react-loadable-manifest.json +1 -0
  299. package/web/standalone/apps/web/.next/server/app/capabilities/http/page/server-reference-manifest.json +4 -0
  300. package/web/standalone/apps/web/.next/server/app/capabilities/http/page.js +15 -0
  301. package/web/standalone/apps/web/.next/server/app/capabilities/http/page.js.map +5 -0
  302. package/web/standalone/apps/web/.next/server/app/capabilities/http/page.js.nft.json +1 -0
  303. package/web/standalone/apps/web/.next/server/app/capabilities/http/page_client-reference-manifest.js +3 -0
  304. package/web/standalone/apps/web/.next/server/app/capabilities/http.html +1 -0
  305. package/web/standalone/apps/web/.next/server/app/capabilities/http.meta +16 -0
  306. package/web/standalone/apps/web/.next/server/app/capabilities/http.rsc +25 -0
  307. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/_full.segment.rsc +25 -0
  308. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/_head.segment.rsc +6 -0
  309. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/_index.segment.rsc +6 -0
  310. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/_tree.segment.rsc +4 -0
  311. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/capabilities/http/__PAGE__.segment.rsc +9 -0
  312. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/capabilities/http.segment.rsc +5 -0
  313. package/web/standalone/apps/web/.next/server/app/capabilities/http.segments/capabilities.segment.rsc +6 -0
  314. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page/app-paths-manifest.json +3 -0
  315. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page/build-manifest.json +17 -0
  316. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page/next-font-manifest.json +11 -0
  317. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page/react-loadable-manifest.json +1 -0
  318. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page/server-reference-manifest.json +4 -0
  319. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page.js +15 -0
  320. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page.js.map +5 -0
  321. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page.js.nft.json +1 -0
  322. package/web/standalone/apps/web/.next/server/app/capabilities/s3/[id]/page_client-reference-manifest.js +3 -0
  323. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page/app-paths-manifest.json +3 -0
  324. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page/build-manifest.json +17 -0
  325. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page/next-font-manifest.json +11 -0
  326. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page/react-loadable-manifest.json +1 -0
  327. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page/server-reference-manifest.json +4 -0
  328. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page.js +15 -0
  329. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page.js.map +5 -0
  330. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page.js.nft.json +1 -0
  331. package/web/standalone/apps/web/.next/server/app/capabilities/s3/page_client-reference-manifest.js +3 -0
  332. package/web/standalone/apps/web/.next/server/app/capabilities/s3.html +1 -0
  333. package/web/standalone/apps/web/.next/server/app/capabilities/s3.meta +16 -0
  334. package/web/standalone/apps/web/.next/server/app/capabilities/s3.rsc +25 -0
  335. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/_full.segment.rsc +25 -0
  336. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/_head.segment.rsc +6 -0
  337. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/_index.segment.rsc +6 -0
  338. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/_tree.segment.rsc +4 -0
  339. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/capabilities/s3/__PAGE__.segment.rsc +9 -0
  340. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/capabilities/s3.segment.rsc +5 -0
  341. package/web/standalone/apps/web/.next/server/app/capabilities/s3.segments/capabilities.segment.rsc +6 -0
  342. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page/app-paths-manifest.json +3 -0
  343. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page/build-manifest.json +17 -0
  344. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page/next-font-manifest.json +11 -0
  345. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page/react-loadable-manifest.json +1 -0
  346. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page/server-reference-manifest.json +4 -0
  347. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page.js +15 -0
  348. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page.js.map +5 -0
  349. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page.js.nft.json +1 -0
  350. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/[id]/page_client-reference-manifest.js +3 -0
  351. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page/app-paths-manifest.json +3 -0
  352. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page/build-manifest.json +17 -0
  353. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page/next-font-manifest.json +11 -0
  354. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page/react-loadable-manifest.json +1 -0
  355. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page/server-reference-manifest.json +4 -0
  356. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page.js +15 -0
  357. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page.js.map +5 -0
  358. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page.js.nft.json +1 -0
  359. package/web/standalone/apps/web/.next/server/app/capabilities/telegram/page_client-reference-manifest.js +3 -0
  360. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.html +1 -0
  361. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.meta +16 -0
  362. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.rsc +25 -0
  363. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/_full.segment.rsc +25 -0
  364. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/_head.segment.rsc +6 -0
  365. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/_index.segment.rsc +6 -0
  366. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/_tree.segment.rsc +4 -0
  367. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/capabilities/telegram/__PAGE__.segment.rsc +9 -0
  368. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/capabilities/telegram.segment.rsc +5 -0
  369. package/web/standalone/apps/web/.next/server/app/capabilities/telegram.segments/capabilities.segment.rsc +6 -0
  370. package/web/standalone/apps/web/.next/server/app/dashboard/page/app-paths-manifest.json +3 -0
  371. package/web/standalone/apps/web/.next/server/app/dashboard/page/build-manifest.json +17 -0
  372. package/web/standalone/apps/web/.next/server/app/dashboard/page/next-font-manifest.json +11 -0
  373. package/web/standalone/apps/web/.next/server/app/dashboard/page/react-loadable-manifest.json +1 -0
  374. package/web/standalone/apps/web/.next/server/app/dashboard/page/server-reference-manifest.json +4 -0
  375. package/web/standalone/apps/web/.next/server/app/dashboard/page.js +15 -0
  376. package/web/standalone/apps/web/.next/server/app/dashboard/page.js.map +5 -0
  377. package/web/standalone/apps/web/.next/server/app/dashboard/page.js.nft.json +1 -0
  378. package/web/standalone/apps/web/.next/server/app/dashboard/page_client-reference-manifest.js +3 -0
  379. package/web/standalone/apps/web/.next/server/app/dashboard.html +1 -0
  380. package/web/standalone/apps/web/.next/server/app/dashboard.meta +15 -0
  381. package/web/standalone/apps/web/.next/server/app/dashboard.rsc +23 -0
  382. package/web/standalone/apps/web/.next/server/app/dashboard.segments/_full.segment.rsc +23 -0
  383. package/web/standalone/apps/web/.next/server/app/dashboard.segments/_head.segment.rsc +6 -0
  384. package/web/standalone/apps/web/.next/server/app/dashboard.segments/_index.segment.rsc +6 -0
  385. package/web/standalone/apps/web/.next/server/app/dashboard.segments/_tree.segment.rsc +4 -0
  386. package/web/standalone/apps/web/.next/server/app/dashboard.segments/dashboard/__PAGE__.segment.rsc +9 -0
  387. package/web/standalone/apps/web/.next/server/app/dashboard.segments/dashboard.segment.rsc +6 -0
  388. package/web/standalone/apps/web/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  389. package/web/standalone/apps/web/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
  390. package/web/standalone/apps/web/.next/server/app/favicon.ico/route.js +6 -0
  391. package/web/standalone/apps/web/.next/server/app/favicon.ico/route.js.map +5 -0
  392. package/web/standalone/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  393. package/web/standalone/apps/web/.next/server/app/favicon.ico.body +0 -0
  394. package/web/standalone/apps/web/.next/server/app/favicon.ico.meta +1 -0
  395. package/web/standalone/apps/web/.next/server/app/index.html +1 -0
  396. package/web/standalone/apps/web/.next/server/app/index.meta +14 -0
  397. package/web/standalone/apps/web/.next/server/app/index.rsc +18 -0
  398. package/web/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -0
  399. package/web/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +18 -0
  400. package/web/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +6 -0
  401. package/web/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +6 -0
  402. package/web/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +4 -0
  403. package/web/standalone/apps/web/.next/server/app/page/app-paths-manifest.json +3 -0
  404. package/web/standalone/apps/web/.next/server/app/page/build-manifest.json +17 -0
  405. package/web/standalone/apps/web/.next/server/app/page/next-font-manifest.json +11 -0
  406. package/web/standalone/apps/web/.next/server/app/page/react-loadable-manifest.json +1 -0
  407. package/web/standalone/apps/web/.next/server/app/page/server-reference-manifest.json +4 -0
  408. package/web/standalone/apps/web/.next/server/app/page.js +14 -0
  409. package/web/standalone/apps/web/.next/server/app/page.js.map +5 -0
  410. package/web/standalone/apps/web/.next/server/app/page.js.nft.json +1 -0
  411. package/web/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +3 -0
  412. package/web/standalone/apps/web/.next/server/app/processes/[id]/page/app-paths-manifest.json +3 -0
  413. package/web/standalone/apps/web/.next/server/app/processes/[id]/page/build-manifest.json +17 -0
  414. package/web/standalone/apps/web/.next/server/app/processes/[id]/page/next-font-manifest.json +11 -0
  415. package/web/standalone/apps/web/.next/server/app/processes/[id]/page/react-loadable-manifest.json +1 -0
  416. package/web/standalone/apps/web/.next/server/app/processes/[id]/page/server-reference-manifest.json +4 -0
  417. package/web/standalone/apps/web/.next/server/app/processes/[id]/page.js +15 -0
  418. package/web/standalone/apps/web/.next/server/app/processes/[id]/page.js.map +5 -0
  419. package/web/standalone/apps/web/.next/server/app/processes/[id]/page.js.nft.json +1 -0
  420. package/web/standalone/apps/web/.next/server/app/processes/[id]/page_client-reference-manifest.js +3 -0
  421. package/web/standalone/apps/web/.next/server/app/processes/page/app-paths-manifest.json +3 -0
  422. package/web/standalone/apps/web/.next/server/app/processes/page/build-manifest.json +17 -0
  423. package/web/standalone/apps/web/.next/server/app/processes/page/next-font-manifest.json +11 -0
  424. package/web/standalone/apps/web/.next/server/app/processes/page/react-loadable-manifest.json +1 -0
  425. package/web/standalone/apps/web/.next/server/app/processes/page/server-reference-manifest.json +4 -0
  426. package/web/standalone/apps/web/.next/server/app/processes/page.js +15 -0
  427. package/web/standalone/apps/web/.next/server/app/processes/page.js.map +5 -0
  428. package/web/standalone/apps/web/.next/server/app/processes/page.js.nft.json +1 -0
  429. package/web/standalone/apps/web/.next/server/app/processes/page_client-reference-manifest.js +3 -0
  430. package/web/standalone/apps/web/.next/server/app/processes.html +1 -0
  431. package/web/standalone/apps/web/.next/server/app/processes.meta +15 -0
  432. package/web/standalone/apps/web/.next/server/app/processes.rsc +23 -0
  433. package/web/standalone/apps/web/.next/server/app/processes.segments/_full.segment.rsc +23 -0
  434. package/web/standalone/apps/web/.next/server/app/processes.segments/_head.segment.rsc +6 -0
  435. package/web/standalone/apps/web/.next/server/app/processes.segments/_index.segment.rsc +6 -0
  436. package/web/standalone/apps/web/.next/server/app/processes.segments/_tree.segment.rsc +4 -0
  437. package/web/standalone/apps/web/.next/server/app/processes.segments/processes/__PAGE__.segment.rsc +9 -0
  438. package/web/standalone/apps/web/.next/server/app/processes.segments/processes.segment.rsc +6 -0
  439. package/web/standalone/apps/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  440. package/web/standalone/apps/web/.next/server/app/settings/page/build-manifest.json +17 -0
  441. package/web/standalone/apps/web/.next/server/app/settings/page/next-font-manifest.json +11 -0
  442. package/web/standalone/apps/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  443. package/web/standalone/apps/web/.next/server/app/settings/page/server-reference-manifest.json +4 -0
  444. package/web/standalone/apps/web/.next/server/app/settings/page.js +15 -0
  445. package/web/standalone/apps/web/.next/server/app/settings/page.js.map +5 -0
  446. package/web/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -0
  447. package/web/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +3 -0
  448. package/web/standalone/apps/web/.next/server/app/settings.html +1 -0
  449. package/web/standalone/apps/web/.next/server/app/settings.meta +15 -0
  450. package/web/standalone/apps/web/.next/server/app/settings.rsc +23 -0
  451. package/web/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +23 -0
  452. package/web/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +6 -0
  453. package/web/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +6 -0
  454. package/web/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
  455. package/web/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +9 -0
  456. package/web/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +6 -0
  457. package/web/standalone/apps/web/.next/server/app-paths-manifest.json +26 -0
  458. package/web/standalone/apps/web/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +3 -0
  459. package/web/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0~3j_ga._.js +13 -0
  460. package/web/standalone/apps/web/.next/server/chunks/[turbopack]_runtime.js +903 -0
  461. package/web/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_favicon_ico_route_actions_0h5n1et.js +3 -0
  462. package/web/standalone/apps/web/.next/server/chunks/ssr/02dz_web__next-internal_server_app_capabilities_database_[id]_page_actions_0.-c3vs.js +3 -0
  463. package/web/standalone/apps/web/.next/server/chunks/ssr/02dz_web__next-internal_server_app_capabilities_telegram_[id]_page_actions_00x92aq.js +3 -0
  464. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_0f4v1z5._.js +6 -0
  465. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_05v-uws._.js +3 -0
  466. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_0kt-.cm._.js +6 -0
  467. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_client_components_04~l9~b._.js +3 -0
  468. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_client_components_builtin_forbidden_0a6wr8l.js +3 -0
  469. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_client_components_builtin_global-error_109gj6..js +3 -0
  470. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_client_components_builtin_unauthorized_08_5kf-.js +3 -0
  471. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0-uhk21.js +4 -0
  472. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0.3kkc_.js +4 -0
  473. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_016gfnx.js +4 -0
  474. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_01mctzl.js +4 -0
  475. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_02e3oga.js +4 -0
  476. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_02y4i-c.js +4 -0
  477. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_05ygn2~.js +4 -0
  478. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0_~wwe5.js +4 -0
  479. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0b4dx3w.js +4 -0
  480. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0du38rd.js +4 -0
  481. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0e8g9q0.js +4 -0
  482. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0f2-c.e.js +4 -0
  483. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0gdgxa7.js +4 -0
  484. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0i5zrqw.js +4 -0
  485. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0ljd49j.js +4 -0
  486. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0mi9cdx.js +4 -0
  487. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0oq8du3.js +4 -0
  488. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0pl_g7l.js +4 -0
  489. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0wg3p4e.js +4 -0
  490. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0yc3j~6.js +4 -0
  491. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0yi0vqi.js +4 -0
  492. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_0z1d.gu.js +4 -0
  493. package/web/standalone/apps/web/.next/server/chunks/ssr/0fuv_next_dist_esm_build_templates_app-page_13slyfs.js +4 -0
  494. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__01j9ea3._.js +3 -0
  495. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__01l01-8._.js +3 -0
  496. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02p4wbs._.js +3 -0
  497. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__04v6.qm._.js +3 -0
  498. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__06czjj7._.js +33 -0
  499. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__072vzf1._.js +3 -0
  500. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__08_g-x7._.js +3 -0
  501. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_b.9lv._.js +3 -0
  502. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_jvn9i._.js +3 -0
  503. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0bgnjx2._.js +3 -0
  504. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0cy-jpt._.js +3 -0
  505. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0djkqf8._.js +19 -0
  506. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0djyuc4._.js +3 -0
  507. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0hln-za._.js +3 -0
  508. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ktr_dg._.js +3 -0
  509. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0m19rl3._.js +3 -0
  510. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0m9l~vh._.js +3 -0
  511. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ogkk8r._.js +33 -0
  512. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0q.cram._.js +3 -0
  513. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0rnwev6._.js +3 -0
  514. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0s9xit3._.js +3 -0
  515. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0s~z9ow._.js +3 -0
  516. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ulv~qj._.js +3 -0
  517. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0xnq8g-._.js +3 -0
  518. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0zuw_7g._.js +3 -0
  519. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~9h4iq._.js +3 -0
  520. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~mjqf7._.js +3 -0
  521. package/web/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__12e7-gz._.js +3 -0
  522. package/web/standalone/apps/web/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
  523. package/web/standalone/apps/web/.next/server/chunks/ssr/_0.bdnad._.js +3 -0
  524. package/web/standalone/apps/web/.next/server/chunks/ssr/_00a5evk._.js +3 -0
  525. package/web/standalone/apps/web/.next/server/chunks/ssr/_04--tsw._.js +3 -0
  526. package/web/standalone/apps/web/.next/server/chunks/ssr/_05lesu9._.js +3 -0
  527. package/web/standalone/apps/web/.next/server/chunks/ssr/_05sycvg._.js +3 -0
  528. package/web/standalone/apps/web/.next/server/chunks/ssr/_07a_7z8._.js +3 -0
  529. package/web/standalone/apps/web/.next/server/chunks/ssr/_0fxpl8-._.js +3 -0
  530. package/web/standalone/apps/web/.next/server/chunks/ssr/_0i3-r5p._.js +8 -0
  531. package/web/standalone/apps/web/.next/server/chunks/ssr/_0j04ujl._.js +3 -0
  532. package/web/standalone/apps/web/.next/server/chunks/ssr/_0neh~vy._.js +3 -0
  533. package/web/standalone/apps/web/.next/server/chunks/ssr/_0pixn7s._.js +3 -0
  534. package/web/standalone/apps/web/.next/server/chunks/ssr/_0u3ezmt._.js +3 -0
  535. package/web/standalone/apps/web/.next/server/chunks/ssr/_0xkzxjy._.js +3 -0
  536. package/web/standalone/apps/web/.next/server/chunks/ssr/_0xpz1yw._.js +3 -0
  537. package/web/standalone/apps/web/.next/server/chunks/ssr/_0yrq69.._.js +3 -0
  538. package/web/standalone/apps/web/.next/server/chunks/ssr/_0z_z7lg._.js +33 -0
  539. package/web/standalone/apps/web/.next/server/chunks/ssr/_12.8jw7._.js +3 -0
  540. package/web/standalone/apps/web/.next/server/chunks/ssr/_12ou3y3._.js +3 -0
  541. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_0.u5cfa.js +3 -0
  542. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_0appun9.js +3 -0
  543. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agents_[id]_edit_page_actions_0_lcg_e.js +3 -0
  544. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agents_[id]_page_actions_0sxkzxu.js +3 -0
  545. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agents_[id]_terminal_page_actions_0x5.gii.js +3 -0
  546. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agents_new_page_actions_077_d8h.js +3 -0
  547. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_agents_page_actions_0fcm22n.js +3 -0
  548. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_cron_[id]_page_actions_03ri~.h.js +3 -0
  549. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_cron_page_actions_0i6638x.js +3 -0
  550. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_database_page_actions_084olu1.js +3 -0
  551. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_email_page_actions_0y_8jvo.js +3 -0
  552. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_http_[id]_page_actions_0w_nads.js +3 -0
  553. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_http_page_actions_08q~6ps.js +3 -0
  554. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_s3_[id]_page_actions_0b1va89.js +3 -0
  555. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_s3_page_actions_01-rjn5.js +3 -0
  556. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_capabilities_telegram_page_actions_0~n0cvz.js +3 -0
  557. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_dashboard_page_actions_0d7kn4j.js +3 -0
  558. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_0rm5_5w.js +3 -0
  559. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_processes_[id]_page_actions_00kaa~m.js +3 -0
  560. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_processes_page_actions_01mh_2n.js +3 -0
  561. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_settings_page_actions_0f6epye.js +3 -0
  562. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0.swnkn._.js +3 -0
  563. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_06~qvaf._.js +3 -0
  564. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_07amn01._.js +3 -0
  565. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_07juq0h._.js +3 -0
  566. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0_glyv-._.js +3 -0
  567. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0f3e-_6._.js +3 -0
  568. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0ipwebe._.js +3 -0
  569. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0t.jg~x._.js +3 -0
  570. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0ug8ln8._.js +3 -0
  571. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_capabilities_database_page_tsx_0331n3m._.js +3 -0
  572. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_capabilities_email_page_tsx_0sdgf9o._.js +3 -0
  573. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_processes_[id]_page_tsx_03n8i7e._.js +3 -0
  574. package/web/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +3 -0
  575. package/web/standalone/apps/web/.next/server/chunks/ssr/node_modules_@xterm_addon-fit_lib_addon-fit_mjs_0qsj~me._.js +3 -0
  576. package/web/standalone/apps/web/.next/server/chunks/ssr/node_modules_@xterm_xterm_lib_xterm_mjs_0ruzhkb._.js +20 -0
  577. package/web/standalone/apps/web/.next/server/functions-config-manifest.json +4 -0
  578. package/web/standalone/apps/web/.next/server/middleware-build-manifest.js +21 -0
  579. package/web/standalone/apps/web/.next/server/middleware-manifest.json +6 -0
  580. package/web/standalone/apps/web/.next/server/next-font-manifest.js +1 -0
  581. package/web/standalone/apps/web/.next/server/next-font-manifest.json +95 -0
  582. package/web/standalone/apps/web/.next/server/pages/404.html +1 -0
  583. package/web/standalone/apps/web/.next/server/pages/500.html +1 -0
  584. package/web/standalone/apps/web/.next/server/pages-manifest.json +4 -0
  585. package/web/standalone/apps/web/.next/server/prefetch-hints.json +1 -0
  586. package/web/standalone/apps/web/.next/server/server-reference-manifest.js +1 -0
  587. package/web/standalone/apps/web/.next/server/server-reference-manifest.json +5 -0
  588. package/web/standalone/apps/web/node_modules/@next/env/dist/index.js +1 -0
  589. package/web/standalone/apps/web/node_modules/@next/env/package.json +36 -0
  590. package/web/standalone/apps/web/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
  591. package/web/standalone/apps/web/node_modules/next/dist/build/define-env.js +255 -0
  592. package/web/standalone/apps/web/node_modules/next/dist/build/duration-to-string.js +99 -0
  593. package/web/standalone/apps/web/node_modules/next/dist/build/get-supported-browsers.js +38 -0
  594. package/web/standalone/apps/web/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
  595. package/web/standalone/apps/web/node_modules/next/dist/build/next-config-ts/transpile-config.js +251 -0
  596. package/web/standalone/apps/web/node_modules/next/dist/build/output/format.js +84 -0
  597. package/web/standalone/apps/web/node_modules/next/dist/build/output/log.js +135 -0
  598. package/web/standalone/apps/web/node_modules/next/dist/build/segment-config/app/app-segment-config.js +162 -0
  599. package/web/standalone/apps/web/node_modules/next/dist/build/segment-config/app/app-segments.js +137 -0
  600. package/web/standalone/apps/web/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  601. package/web/standalone/apps/web/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
  602. package/web/standalone/apps/web/node_modules/next/dist/build/static-paths/app.js +735 -0
  603. package/web/standalone/apps/web/node_modules/next/dist/build/static-paths/pages.js +169 -0
  604. package/web/standalone/apps/web/node_modules/next/dist/build/static-paths/utils.js +119 -0
  605. package/web/standalone/apps/web/node_modules/next/dist/build/swc/helpers.js +15 -0
  606. package/web/standalone/apps/web/node_modules/next/dist/build/swc/index.js +1348 -0
  607. package/web/standalone/apps/web/node_modules/next/dist/build/swc/install-bindings.js +30 -0
  608. package/web/standalone/apps/web/node_modules/next/dist/build/swc/jest-transformer.js +76 -0
  609. package/web/standalone/apps/web/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
  610. package/web/standalone/apps/web/node_modules/next/dist/build/swc/options.js +403 -0
  611. package/web/standalone/apps/web/node_modules/next/dist/build/swc/types.js +6 -0
  612. package/web/standalone/apps/web/node_modules/next/dist/build/utils.js +1215 -0
  613. package/web/standalone/apps/web/node_modules/next/dist/cli/next-test.js +170 -0
  614. package/web/standalone/apps/web/node_modules/next/dist/client/add-base-path.js +24 -0
  615. package/web/standalone/apps/web/node_modules/next/dist/client/app-call-server.js +34 -0
  616. package/web/standalone/apps/web/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
  617. package/web/standalone/apps/web/node_modules/next/dist/client/assign-location.js +29 -0
  618. package/web/standalone/apps/web/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
  619. package/web/standalone/apps/web/node_modules/next/dist/client/components/app-router-headers.js +138 -0
  620. package/web/standalone/apps/web/node_modules/next/dist/client/components/app-router-instance.js +397 -0
  621. package/web/standalone/apps/web/node_modules/next/dist/client/components/app-router-utils.js +62 -0
  622. package/web/standalone/apps/web/node_modules/next/dist/client/components/app-router.js +514 -0
  623. package/web/standalone/apps/web/node_modules/next/dist/client/components/builtin/default.js +35 -0
  624. package/web/standalone/apps/web/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
  625. package/web/standalone/apps/web/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
  626. package/web/standalone/apps/web/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  627. package/web/standalone/apps/web/node_modules/next/dist/client/components/error-boundary.js +144 -0
  628. package/web/standalone/apps/web/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  629. package/web/standalone/apps/web/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
  630. package/web/standalone/apps/web/node_modules/next/dist/client/components/forbidden.js +48 -0
  631. package/web/standalone/apps/web/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
  632. package/web/standalone/apps/web/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
  633. package/web/standalone/apps/web/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  634. package/web/standalone/apps/web/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  635. package/web/standalone/apps/web/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
  636. package/web/standalone/apps/web/node_modules/next/dist/client/components/links.js +299 -0
  637. package/web/standalone/apps/web/node_modules/next/dist/client/components/match-segments.js +32 -0
  638. package/web/standalone/apps/web/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
  639. package/web/standalone/apps/web/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
  640. package/web/standalone/apps/web/node_modules/next/dist/client/components/navigation-untracked.js +67 -0
  641. package/web/standalone/apps/web/node_modules/next/dist/client/components/navigation.js +225 -0
  642. package/web/standalone/apps/web/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
  643. package/web/standalone/apps/web/node_modules/next/dist/client/components/not-found.js +42 -0
  644. package/web/standalone/apps/web/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
  645. package/web/standalone/apps/web/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
  646. package/web/standalone/apps/web/node_modules/next/dist/client/components/redirect-error.js +43 -0
  647. package/web/standalone/apps/web/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
  648. package/web/standalone/apps/web/node_modules/next/dist/client/components/redirect.js +91 -0
  649. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +201 -0
  650. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  651. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +153 -0
  652. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  653. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +457 -0
  654. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +59 -0
  655. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1341 -0
  656. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
  657. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
  658. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  659. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
  660. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
  661. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +83 -0
  662. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +62 -0
  663. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +320 -0
  664. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +58 -0
  665. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
  666. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
  667. package/web/standalone/apps/web/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
  668. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
  669. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
  670. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/cache-map.js +305 -0
  671. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/cache.js +1933 -0
  672. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
  673. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
  674. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/navigation.js +597 -0
  675. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
  676. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
  677. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/scheduler.js +1249 -0
  678. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
  679. package/web/standalone/apps/web/node_modules/next/dist/client/components/segment-cache/vary-path.js +278 -0
  680. package/web/standalone/apps/web/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
  681. package/web/standalone/apps/web/node_modules/next/dist/client/components/unauthorized.js +49 -0
  682. package/web/standalone/apps/web/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
  683. package/web/standalone/apps/web/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
  684. package/web/standalone/apps/web/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
  685. package/web/standalone/apps/web/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
  686. package/web/standalone/apps/web/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
  687. package/web/standalone/apps/web/node_modules/next/dist/client/components/use-action-queue.js +148 -0
  688. package/web/standalone/apps/web/node_modules/next/dist/client/dev/debug-channel.js +72 -0
  689. package/web/standalone/apps/web/node_modules/next/dist/client/flight-data-helpers.js +232 -0
  690. package/web/standalone/apps/web/node_modules/next/dist/client/has-base-path.js +23 -0
  691. package/web/standalone/apps/web/node_modules/next/dist/client/lib/console.js +177 -0
  692. package/web/standalone/apps/web/node_modules/next/dist/client/lib/javascript-url.js +32 -0
  693. package/web/standalone/apps/web/node_modules/next/dist/client/navigation-build-id.js +53 -0
  694. package/web/standalone/apps/web/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
  695. package/web/standalone/apps/web/node_modules/next/dist/client/remove-base-path.js +32 -0
  696. package/web/standalone/apps/web/node_modules/next/dist/client/route-params.js +230 -0
  697. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  698. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  699. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  700. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  701. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  702. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  703. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  704. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  705. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  706. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  707. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  708. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  709. package/web/standalone/apps/web/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  710. package/web/standalone/apps/web/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
  711. package/web/standalone/apps/web/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
  712. package/web/standalone/apps/web/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  713. package/web/standalone/apps/web/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  714. package/web/standalone/apps/web/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  715. package/web/standalone/apps/web/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  716. package/web/standalone/apps/web/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  717. package/web/standalone/apps/web/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  718. package/web/standalone/apps/web/node_modules/next/dist/compiled/async-retry/index.js +1 -0
  719. package/web/standalone/apps/web/node_modules/next/dist/compiled/async-retry/package.json +1 -0
  720. package/web/standalone/apps/web/node_modules/next/dist/compiled/async-sema/index.js +1 -0
  721. package/web/standalone/apps/web/node_modules/next/dist/compiled/async-sema/package.json +1 -0
  722. package/web/standalone/apps/web/node_modules/next/dist/compiled/busboy/index.js +1 -0
  723. package/web/standalone/apps/web/node_modules/next/dist/compiled/busboy/package.json +1 -0
  724. package/web/standalone/apps/web/node_modules/next/dist/compiled/bytes/index.js +8 -0
  725. package/web/standalone/apps/web/node_modules/next/dist/compiled/bytes/package.json +1 -0
  726. package/web/standalone/apps/web/node_modules/next/dist/compiled/ci-info/index.js +1 -0
  727. package/web/standalone/apps/web/node_modules/next/dist/compiled/ci-info/package.json +1 -0
  728. package/web/standalone/apps/web/node_modules/next/dist/compiled/commander/index.js +1 -0
  729. package/web/standalone/apps/web/node_modules/next/dist/compiled/commander/package.json +1 -0
  730. package/web/standalone/apps/web/node_modules/next/dist/compiled/comment-json/index.js +7 -0
  731. package/web/standalone/apps/web/node_modules/next/dist/compiled/comment-json/package.json +1 -0
  732. package/web/standalone/apps/web/node_modules/next/dist/compiled/compression/index.js +58 -0
  733. package/web/standalone/apps/web/node_modules/next/dist/compiled/compression/package.json +1 -0
  734. package/web/standalone/apps/web/node_modules/next/dist/compiled/conf/index.js +15 -0
  735. package/web/standalone/apps/web/node_modules/next/dist/compiled/conf/package.json +1 -0
  736. package/web/standalone/apps/web/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
  737. package/web/standalone/apps/web/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
  738. package/web/standalone/apps/web/node_modules/next/dist/compiled/cookie/index.js +7 -0
  739. package/web/standalone/apps/web/node_modules/next/dist/compiled/cookie/package.json +1 -0
  740. package/web/standalone/apps/web/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
  741. package/web/standalone/apps/web/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
  742. package/web/standalone/apps/web/node_modules/next/dist/compiled/debug/index.js +1 -0
  743. package/web/standalone/apps/web/node_modules/next/dist/compiled/debug/package.json +1 -0
  744. package/web/standalone/apps/web/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
  745. package/web/standalone/apps/web/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
  746. package/web/standalone/apps/web/node_modules/next/dist/compiled/find-up/index.js +1 -0
  747. package/web/standalone/apps/web/node_modules/next/dist/compiled/find-up/package.json +1 -0
  748. package/web/standalone/apps/web/node_modules/next/dist/compiled/fresh/index.js +8 -0
  749. package/web/standalone/apps/web/node_modules/next/dist/compiled/fresh/package.json +1 -0
  750. package/web/standalone/apps/web/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
  751. package/web/standalone/apps/web/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
  752. package/web/standalone/apps/web/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
  753. package/web/standalone/apps/web/node_modules/next/dist/compiled/image-size/index.js +1 -0
  754. package/web/standalone/apps/web/node_modules/next/dist/compiled/image-size/package.json +1 -0
  755. package/web/standalone/apps/web/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  756. package/web/standalone/apps/web/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
  757. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-animated/index.js +1 -0
  758. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-animated/package.json +1 -0
  759. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-docker/index.js +1 -0
  760. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-docker/package.json +1 -0
  761. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
  762. package/web/standalone/apps/web/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
  763. package/web/standalone/apps/web/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
  764. package/web/standalone/apps/web/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
  765. package/web/standalone/apps/web/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
  766. package/web/standalone/apps/web/node_modules/next/dist/compiled/nanoid/package.json +1 -0
  767. package/web/standalone/apps/web/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +54 -0
  768. package/web/standalone/apps/web/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +54 -0
  769. package/web/standalone/apps/web/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  770. package/web/standalone/apps/web/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  771. package/web/standalone/apps/web/node_modules/next/dist/compiled/p-limit/index.js +1 -0
  772. package/web/standalone/apps/web/node_modules/next/dist/compiled/p-limit/package.json +1 -0
  773. package/web/standalone/apps/web/node_modules/next/dist/compiled/p-queue/index.js +1 -0
  774. package/web/standalone/apps/web/node_modules/next/dist/compiled/p-queue/package.json +1 -0
  775. package/web/standalone/apps/web/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
  776. package/web/standalone/apps/web/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
  777. package/web/standalone/apps/web/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
  778. package/web/standalone/apps/web/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
  779. package/web/standalone/apps/web/node_modules/next/dist/compiled/picomatch/index.js +1 -0
  780. package/web/standalone/apps/web/node_modules/next/dist/compiled/picomatch/package.json +1 -0
  781. package/web/standalone/apps/web/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  782. package/web/standalone/apps/web/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  783. package/web/standalone/apps/web/node_modules/next/dist/compiled/react-is/index.js +7 -0
  784. package/web/standalone/apps/web/node_modules/next/dist/compiled/react-is/package.json +26 -0
  785. package/web/standalone/apps/web/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
  786. package/web/standalone/apps/web/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  787. package/web/standalone/apps/web/node_modules/next/dist/compiled/semver/index.js +1 -0
  788. package/web/standalone/apps/web/node_modules/next/dist/compiled/semver/package.json +1 -0
  789. package/web/standalone/apps/web/node_modules/next/dist/compiled/send/index.js +70 -0
  790. package/web/standalone/apps/web/node_modules/next/dist/compiled/send/package.json +1 -0
  791. package/web/standalone/apps/web/node_modules/next/dist/compiled/source-map/package.json +1 -0
  792. package/web/standalone/apps/web/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
  793. package/web/standalone/apps/web/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
  794. package/web/standalone/apps/web/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  795. package/web/standalone/apps/web/node_modules/next/dist/compiled/string-hash/index.js +1 -0
  796. package/web/standalone/apps/web/node_modules/next/dist/compiled/string-hash/package.json +1 -0
  797. package/web/standalone/apps/web/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
  798. package/web/standalone/apps/web/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
  799. package/web/standalone/apps/web/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
  800. package/web/standalone/apps/web/node_modules/next/dist/compiled/superstruct/package.json +1 -0
  801. package/web/standalone/apps/web/node_modules/next/dist/compiled/tar/index.min.js +1 -0
  802. package/web/standalone/apps/web/node_modules/next/dist/compiled/tar/package.json +1 -0
  803. package/web/standalone/apps/web/node_modules/next/dist/compiled/text-table/index.js +1 -0
  804. package/web/standalone/apps/web/node_modules/next/dist/compiled/text-table/package.json +1 -0
  805. package/web/standalone/apps/web/node_modules/next/dist/compiled/watchpack/package.json +1 -0
  806. package/web/standalone/apps/web/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
  807. package/web/standalone/apps/web/node_modules/next/dist/compiled/ws/index.js +1 -0
  808. package/web/standalone/apps/web/node_modules/next/dist/compiled/ws/package.json +1 -0
  809. package/web/standalone/apps/web/node_modules/next/dist/compiled/zod/index.cjs +1 -0
  810. package/web/standalone/apps/web/node_modules/next/dist/compiled/zod/package.json +1 -0
  811. package/web/standalone/apps/web/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
  812. package/web/standalone/apps/web/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
  813. package/web/standalone/apps/web/node_modules/next/dist/experimental/testmode/context.js +57 -0
  814. package/web/standalone/apps/web/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
  815. package/web/standalone/apps/web/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
  816. package/web/standalone/apps/web/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
  817. package/web/standalone/apps/web/node_modules/next/dist/experimental/testmode/server.js +62 -0
  818. package/web/standalone/apps/web/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
  819. package/web/standalone/apps/web/node_modules/next/dist/lib/batcher.js +65 -0
  820. package/web/standalone/apps/web/node_modules/next/dist/lib/build-custom-route.js +46 -0
  821. package/web/standalone/apps/web/node_modules/next/dist/lib/bundler.js +97 -0
  822. package/web/standalone/apps/web/node_modules/next/dist/lib/client-and-server-references.js +54 -0
  823. package/web/standalone/apps/web/node_modules/next/dist/lib/coalesced-function.js +39 -0
  824. package/web/standalone/apps/web/node_modules/next/dist/lib/compile-error.js +14 -0
  825. package/web/standalone/apps/web/node_modules/next/dist/lib/constants.js +420 -0
  826. package/web/standalone/apps/web/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
  827. package/web/standalone/apps/web/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
  828. package/web/standalone/apps/web/node_modules/next/dist/lib/detached-promise.js +32 -0
  829. package/web/standalone/apps/web/node_modules/next/dist/lib/detect-typo.js +51 -0
  830. package/web/standalone/apps/web/node_modules/next/dist/lib/download-swc.js +183 -0
  831. package/web/standalone/apps/web/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
  832. package/web/standalone/apps/web/node_modules/next/dist/lib/fallback.js +100 -0
  833. package/web/standalone/apps/web/node_modules/next/dist/lib/fatal-error.js +14 -0
  834. package/web/standalone/apps/web/node_modules/next/dist/lib/file-exists.js +53 -0
  835. package/web/standalone/apps/web/node_modules/next/dist/lib/find-config.js +102 -0
  836. package/web/standalone/apps/web/node_modules/next/dist/lib/find-pages-dir.js +65 -0
  837. package/web/standalone/apps/web/node_modules/next/dist/lib/find-root.js +126 -0
  838. package/web/standalone/apps/web/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
  839. package/web/standalone/apps/web/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
  840. package/web/standalone/apps/web/node_modules/next/dist/lib/format-server-error.js +75 -0
  841. package/web/standalone/apps/web/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
  842. package/web/standalone/apps/web/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
  843. package/web/standalone/apps/web/node_modules/next/dist/lib/fs/rename.js +87 -0
  844. package/web/standalone/apps/web/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
  845. package/web/standalone/apps/web/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
  846. package/web/standalone/apps/web/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
  847. package/web/standalone/apps/web/node_modules/next/dist/lib/get-network-host.js +44 -0
  848. package/web/standalone/apps/web/node_modules/next/dist/lib/get-package-version.js +118 -0
  849. package/web/standalone/apps/web/node_modules/next/dist/lib/get-project-dir.js +51 -0
  850. package/web/standalone/apps/web/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
  851. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
  852. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
  853. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-online.js +50 -0
  854. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
  855. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
  856. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
  857. package/web/standalone/apps/web/node_modules/next/dist/lib/helpers/install.js +83 -0
  858. package/web/standalone/apps/web/node_modules/next/dist/lib/import-next-warning.js +50 -0
  859. package/web/standalone/apps/web/node_modules/next/dist/lib/inline-static-env.js +112 -0
  860. package/web/standalone/apps/web/node_modules/next/dist/lib/install-dependencies.js +40 -0
  861. package/web/standalone/apps/web/node_modules/next/dist/lib/interop-default.js +16 -0
  862. package/web/standalone/apps/web/node_modules/next/dist/lib/is-api-route.js +15 -0
  863. package/web/standalone/apps/web/node_modules/next/dist/lib/is-app-page-route.js +15 -0
  864. package/web/standalone/apps/web/node_modules/next/dist/lib/is-app-route-route.js +15 -0
  865. package/web/standalone/apps/web/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
  866. package/web/standalone/apps/web/node_modules/next/dist/lib/is-error.js +78 -0
  867. package/web/standalone/apps/web/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
  868. package/web/standalone/apps/web/node_modules/next/dist/lib/is-internal-component.js +36 -0
  869. package/web/standalone/apps/web/node_modules/next/dist/lib/is-serializable-props.js +106 -0
  870. package/web/standalone/apps/web/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
  871. package/web/standalone/apps/web/node_modules/next/dist/lib/load-custom-routes.js +594 -0
  872. package/web/standalone/apps/web/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
  873. package/web/standalone/apps/web/node_modules/next/dist/lib/memory/shutdown.js +29 -0
  874. package/web/standalone/apps/web/node_modules/next/dist/lib/memory/startup.js +47 -0
  875. package/web/standalone/apps/web/node_modules/next/dist/lib/memory/trace.js +109 -0
  876. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/constants.js +40 -0
  877. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
  878. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  879. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
  880. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/get-metadata-route.js +123 -0
  881. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
  882. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
  883. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/metadata.js +1686 -0
  884. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
  885. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  886. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  887. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  888. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  889. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  890. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  891. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
  892. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
  893. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
  894. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  895. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
  896. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  897. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
  898. package/web/standalone/apps/web/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
  899. package/web/standalone/apps/web/node_modules/next/dist/lib/mime-type.js +20 -0
  900. package/web/standalone/apps/web/node_modules/next/dist/lib/mkcert.js +204 -0
  901. package/web/standalone/apps/web/node_modules/next/dist/lib/multi-file-writer.js +75 -0
  902. package/web/standalone/apps/web/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
  903. package/web/standalone/apps/web/node_modules/next/dist/lib/non-nullable.js +15 -0
  904. package/web/standalone/apps/web/node_modules/next/dist/lib/normalize-path.js +21 -0
  905. package/web/standalone/apps/web/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
  906. package/web/standalone/apps/web/node_modules/next/dist/lib/page-types.js +18 -0
  907. package/web/standalone/apps/web/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  908. package/web/standalone/apps/web/node_modules/next/dist/lib/pick.js +19 -0
  909. package/web/standalone/apps/web/node_modules/next/dist/lib/picocolors.js +177 -0
  910. package/web/standalone/apps/web/node_modules/next/dist/lib/pretty-bytes.js +74 -0
  911. package/web/standalone/apps/web/node_modules/next/dist/lib/realpath.js +20 -0
  912. package/web/standalone/apps/web/node_modules/next/dist/lib/recursive-copy.js +76 -0
  913. package/web/standalone/apps/web/node_modules/next/dist/lib/recursive-delete.js +137 -0
  914. package/web/standalone/apps/web/node_modules/next/dist/lib/recursive-readdir.js +124 -0
  915. package/web/standalone/apps/web/node_modules/next/dist/lib/redirect-status.js +46 -0
  916. package/web/standalone/apps/web/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
  917. package/web/standalone/apps/web/node_modules/next/dist/lib/resolve-build-paths.js +154 -0
  918. package/web/standalone/apps/web/node_modules/next/dist/lib/resolve-from.js +65 -0
  919. package/web/standalone/apps/web/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
  920. package/web/standalone/apps/web/node_modules/next/dist/lib/scheduler.js +64 -0
  921. package/web/standalone/apps/web/node_modules/next/dist/lib/semver-noop.js +18 -0
  922. package/web/standalone/apps/web/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
  923. package/web/standalone/apps/web/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
  924. package/web/standalone/apps/web/node_modules/next/dist/lib/static-env.js +92 -0
  925. package/web/standalone/apps/web/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
  926. package/web/standalone/apps/web/node_modules/next/dist/lib/turbopack-warning.js +185 -0
  927. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
  928. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
  929. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  930. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
  931. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
  932. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
  933. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +75 -0
  934. package/web/standalone/apps/web/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +391 -0
  935. package/web/standalone/apps/web/node_modules/next/dist/lib/url.js +75 -0
  936. package/web/standalone/apps/web/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
  937. package/web/standalone/apps/web/node_modules/next/dist/lib/verify-root-layout.js +165 -0
  938. package/web/standalone/apps/web/node_modules/next/dist/lib/verify-typescript-setup.js +228 -0
  939. package/web/standalone/apps/web/node_modules/next/dist/lib/wait.js +19 -0
  940. package/web/standalone/apps/web/node_modules/next/dist/lib/with-promise-cache.js +24 -0
  941. package/web/standalone/apps/web/node_modules/next/dist/lib/worker.js +234 -0
  942. package/web/standalone/apps/web/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
  943. package/web/standalone/apps/web/node_modules/next/dist/server/accept-header.js +132 -0
  944. package/web/standalone/apps/web/node_modules/next/dist/server/after/after-context.js +140 -0
  945. package/web/standalone/apps/web/node_modules/next/dist/server/after/after.js +26 -0
  946. package/web/standalone/apps/web/node_modules/next/dist/server/after/awaiter.js +74 -0
  947. package/web/standalone/apps/web/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
  948. package/web/standalone/apps/web/node_modules/next/dist/server/after/index.js +21 -0
  949. package/web/standalone/apps/web/node_modules/next/dist/server/after/run-with-after.js +35 -0
  950. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  951. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/index.js +201 -0
  952. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
  953. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
  954. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
  955. package/web/standalone/apps/web/node_modules/next/dist/server/api-utils/web.js +17 -0
  956. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  957. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
  958. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/action-handler.js +1020 -0
  959. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  960. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  961. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +167 -0
  962. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
  963. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
  964. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/app-render.js +4469 -0
  965. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
  966. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
  967. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/collect-segment-data.js +600 -0
  968. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  969. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
  970. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
  971. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/create-component-tree.js +840 -0
  972. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/create-error-handler.js +189 -0
  973. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +102 -0
  974. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
  975. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
  976. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
  977. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  978. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  979. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/dynamic-rendering.js +1144 -0
  980. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
  981. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
  982. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/encryption.js +259 -0
  983. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/entry-base.js +256 -0
  984. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
  985. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
  986. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
  987. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
  988. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  989. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
  990. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  991. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  992. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
  993. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +103 -0
  994. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
  995. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
  996. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
  997. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
  998. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
  999. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +713 -0
  1000. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
  1001. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/interop-default.js +17 -0
  1002. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
  1003. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/manifests-singleton.js +264 -0
  1004. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
  1005. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  1006. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  1007. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
  1008. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  1009. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/postponed-state.js +157 -0
  1010. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
  1011. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
  1012. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
  1013. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
  1014. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
  1015. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
  1016. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
  1017. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
  1018. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
  1019. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
  1020. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/staged-rendering.js +343 -0
  1021. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/stale-time.js +111 -0
  1022. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
  1023. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
  1024. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
  1025. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/types.js +65 -0
  1026. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/use-flight-response.js +214 -0
  1027. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/vary-params.js +336 -0
  1028. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +232 -0
  1029. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  1030. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
  1031. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  1032. package/web/standalone/apps/web/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +280 -0
  1033. package/web/standalone/apps/web/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  1034. package/web/standalone/apps/web/node_modules/next/dist/server/async-storage/request-store.js +144 -0
  1035. package/web/standalone/apps/web/node_modules/next/dist/server/async-storage/with-store.js +6 -0
  1036. package/web/standalone/apps/web/node_modules/next/dist/server/async-storage/work-store.js +91 -0
  1037. package/web/standalone/apps/web/node_modules/next/dist/server/base-http/helpers.js +36 -0
  1038. package/web/standalone/apps/web/node_modules/next/dist/server/base-http/index.js +54 -0
  1039. package/web/standalone/apps/web/node_modules/next/dist/server/base-http/node.js +147 -0
  1040. package/web/standalone/apps/web/node_modules/next/dist/server/base-http/web.js +124 -0
  1041. package/web/standalone/apps/web/node_modules/next/dist/server/base-server.js +1874 -0
  1042. package/web/standalone/apps/web/node_modules/next/dist/server/body-streams.js +114 -0
  1043. package/web/standalone/apps/web/node_modules/next/dist/server/cache-dir.js +26 -0
  1044. package/web/standalone/apps/web/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
  1045. package/web/standalone/apps/web/node_modules/next/dist/server/ci-info.js +41 -0
  1046. package/web/standalone/apps/web/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
  1047. package/web/standalone/apps/web/node_modules/next/dist/server/config-schema.js +717 -0
  1048. package/web/standalone/apps/web/node_modules/next/dist/server/config-shared.js +369 -0
  1049. package/web/standalone/apps/web/node_modules/next/dist/server/config-utils.js +185 -0
  1050. package/web/standalone/apps/web/node_modules/next/dist/server/config.js +1545 -0
  1051. package/web/standalone/apps/web/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  1052. package/web/standalone/apps/web/node_modules/next/dist/server/crypto-utils.js +70 -0
  1053. package/web/standalone/apps/web/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
  1054. package/web/standalone/apps/web/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +558 -0
  1055. package/web/standalone/apps/web/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
  1056. package/web/standalone/apps/web/node_modules/next/dist/server/dev/debug-channel.js +87 -0
  1057. package/web/standalone/apps/web/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  1058. package/web/standalone/apps/web/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
  1059. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
  1060. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
  1061. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  1062. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1478 -0
  1063. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-reloader-types.js +58 -0
  1064. package/web/standalone/apps/web/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1386 -0
  1065. package/web/standalone/apps/web/node_modules/next/dist/server/dev/log-requests.js +149 -0
  1066. package/web/standalone/apps/web/node_modules/next/dist/server/dev/messages.js +74 -0
  1067. package/web/standalone/apps/web/node_modules/next/dist/server/dev/middleware-turbopack.js +403 -0
  1068. package/web/standalone/apps/web/node_modules/next/dist/server/dev/middleware-webpack.js +483 -0
  1069. package/web/standalone/apps/web/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
  1070. package/web/standalone/apps/web/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
  1071. package/web/standalone/apps/web/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
  1072. package/web/standalone/apps/web/node_modules/next/dist/server/dev/require-cache.js +79 -0
  1073. package/web/standalone/apps/web/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
  1074. package/web/standalone/apps/web/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
  1075. package/web/standalone/apps/web/node_modules/next/dist/server/dev/static-paths-worker.js +104 -0
  1076. package/web/standalone/apps/web/node_modules/next/dist/server/dev/turbopack-utils.js +687 -0
  1077. package/web/standalone/apps/web/node_modules/next/dist/server/dynamic-rendering-utils.js +108 -0
  1078. package/web/standalone/apps/web/node_modules/next/dist/server/font-utils.js +43 -0
  1079. package/web/standalone/apps/web/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  1080. package/web/standalone/apps/web/node_modules/next/dist/server/get-page-files.js +23 -0
  1081. package/web/standalone/apps/web/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
  1082. package/web/standalone/apps/web/node_modules/next/dist/server/htmlescape.js +37 -0
  1083. package/web/standalone/apps/web/node_modules/next/dist/server/image-optimizer.js +1220 -0
  1084. package/web/standalone/apps/web/node_modules/next/dist/server/instrumentation/types.js +6 -0
  1085. package/web/standalone/apps/web/node_modules/next/dist/server/instrumentation/utils.js +21 -0
  1086. package/web/standalone/apps/web/node_modules/next/dist/server/internal-utils.js +39 -0
  1087. package/web/standalone/apps/web/node_modules/next/dist/server/is-private-ip.js +36 -0
  1088. package/web/standalone/apps/web/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
  1089. package/web/standalone/apps/web/node_modules/next/dist/server/lib/app-info-log.js +132 -0
  1090. package/web/standalone/apps/web/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
  1091. package/web/standalone/apps/web/node_modules/next/dist/server/lib/cache-control.js +22 -0
  1092. package/web/standalone/apps/web/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  1093. package/web/standalone/apps/web/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
  1094. package/web/standalone/apps/web/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
  1095. package/web/standalone/apps/web/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  1096. package/web/standalone/apps/web/node_modules/next/dist/server/lib/clone-response.js +77 -0
  1097. package/web/standalone/apps/web/node_modules/next/dist/server/lib/cpu-profile.js +59 -0
  1098. package/web/standalone/apps/web/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  1099. package/web/standalone/apps/web/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
  1100. package/web/standalone/apps/web/node_modules/next/dist/server/lib/dev-bundler-service.js +95 -0
  1101. package/web/standalone/apps/web/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
  1102. package/web/standalone/apps/web/node_modules/next/dist/server/lib/etag.js +56 -0
  1103. package/web/standalone/apps/web/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  1104. package/web/standalone/apps/web/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
  1105. package/web/standalone/apps/web/node_modules/next/dist/server/lib/find-page-file.js +147 -0
  1106. package/web/standalone/apps/web/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
  1107. package/web/standalone/apps/web/node_modules/next/dist/server/lib/format-hostname.js +16 -0
  1108. package/web/standalone/apps/web/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
  1109. package/web/standalone/apps/web/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
  1110. package/web/standalone/apps/web/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +335 -0
  1111. package/web/standalone/apps/web/node_modules/next/dist/server/lib/incremental-cache/index.js +501 -0
  1112. package/web/standalone/apps/web/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +57 -0
  1113. package/web/standalone/apps/web/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
  1114. package/web/standalone/apps/web/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  1115. package/web/standalone/apps/web/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
  1116. package/web/standalone/apps/web/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
  1117. package/web/standalone/apps/web/node_modules/next/dist/server/lib/lazy-result.js +46 -0
  1118. package/web/standalone/apps/web/node_modules/next/dist/server/lib/lru-cache.js +191 -0
  1119. package/web/standalone/apps/web/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
  1120. package/web/standalone/apps/web/node_modules/next/dist/server/lib/mock-request.js +416 -0
  1121. package/web/standalone/apps/web/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
  1122. package/web/standalone/apps/web/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  1123. package/web/standalone/apps/web/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  1124. package/web/standalone/apps/web/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
  1125. package/web/standalone/apps/web/node_modules/next/dist/server/lib/parse-stack.js +46 -0
  1126. package/web/standalone/apps/web/node_modules/next/dist/server/lib/patch-fetch.js +978 -0
  1127. package/web/standalone/apps/web/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
  1128. package/web/standalone/apps/web/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
  1129. package/web/standalone/apps/web/node_modules/next/dist/server/lib/render-server.js +155 -0
  1130. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-server.js +683 -0
  1131. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
  1132. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  1133. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
  1134. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
  1135. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  1136. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/filesystem.js +591 -0
  1137. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  1138. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
  1139. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  1140. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
  1141. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +629 -0
  1142. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
  1143. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  1144. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/typegen.js +858 -0
  1145. package/web/standalone/apps/web/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
  1146. package/web/standalone/apps/web/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
  1147. package/web/standalone/apps/web/node_modules/next/dist/server/lib/server-ipc/utils.js +81 -0
  1148. package/web/standalone/apps/web/node_modules/next/dist/server/lib/source-maps.js +196 -0
  1149. package/web/standalone/apps/web/node_modules/next/dist/server/lib/start-server.js +494 -0
  1150. package/web/standalone/apps/web/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
  1151. package/web/standalone/apps/web/node_modules/next/dist/server/lib/to-route.js +37 -0
  1152. package/web/standalone/apps/web/node_modules/next/dist/server/lib/trace/constants.js +203 -0
  1153. package/web/standalone/apps/web/node_modules/next/dist/server/lib/trace/tracer.js +280 -0
  1154. package/web/standalone/apps/web/node_modules/next/dist/server/lib/trace/utils.js +16 -0
  1155. package/web/standalone/apps/web/node_modules/next/dist/server/lib/types.js +6 -0
  1156. package/web/standalone/apps/web/node_modules/next/dist/server/lib/utils.js +278 -0
  1157. package/web/standalone/apps/web/node_modules/next/dist/server/lib/worker-utils.js +36 -0
  1158. package/web/standalone/apps/web/node_modules/next/dist/server/load-components.js +179 -0
  1159. package/web/standalone/apps/web/node_modules/next/dist/server/load-default-error-components.js +41 -0
  1160. package/web/standalone/apps/web/node_modules/next/dist/server/load-manifest.external.js +117 -0
  1161. package/web/standalone/apps/web/node_modules/next/dist/server/match-bundle.js +25 -0
  1162. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
  1163. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
  1164. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  1165. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
  1166. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
  1167. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
  1168. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
  1169. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
  1170. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
  1171. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  1172. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  1173. package/web/standalone/apps/web/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
  1174. package/web/standalone/apps/web/node_modules/next/dist/server/next-server.js +1429 -0
  1175. package/web/standalone/apps/web/node_modules/next/dist/server/next-typescript.js +13 -0
  1176. package/web/standalone/apps/web/node_modules/next/dist/server/next.js +455 -0
  1177. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-baseline.js +25 -0
  1178. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
  1179. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  1180. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
  1181. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
  1182. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  1183. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
  1184. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  1185. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/io-utils.js +195 -0
  1186. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  1187. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
  1188. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
  1189. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +508 -0
  1190. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  1191. package/web/standalone/apps/web/node_modules/next/dist/server/node-environment.js +19 -0
  1192. package/web/standalone/apps/web/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
  1193. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  1194. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  1195. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  1196. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  1197. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  1198. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
  1199. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
  1200. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  1201. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  1202. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  1203. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  1204. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  1205. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
  1206. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
  1207. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  1208. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
  1209. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
  1210. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  1211. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
  1212. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
  1213. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
  1214. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
  1215. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  1216. package/web/standalone/apps/web/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  1217. package/web/standalone/apps/web/node_modules/next/dist/server/og/image-response.js +53 -0
  1218. package/web/standalone/apps/web/node_modules/next/dist/server/patch-error-inspect.js +453 -0
  1219. package/web/standalone/apps/web/node_modules/next/dist/server/pipe-readable.js +140 -0
  1220. package/web/standalone/apps/web/node_modules/next/dist/server/post-process.js +39 -0
  1221. package/web/standalone/apps/web/node_modules/next/dist/server/render-result.js +204 -0
  1222. package/web/standalone/apps/web/node_modules/next/dist/server/render.js +1140 -0
  1223. package/web/standalone/apps/web/node_modules/next/dist/server/request/connection.js +133 -0
  1224. package/web/standalone/apps/web/node_modules/next/dist/server/request/cookies.js +235 -0
  1225. package/web/standalone/apps/web/node_modules/next/dist/server/request/draft-mode.js +230 -0
  1226. package/web/standalone/apps/web/node_modules/next/dist/server/request/fallback-params.js +69 -0
  1227. package/web/standalone/apps/web/node_modules/next/dist/server/request/headers.js +229 -0
  1228. package/web/standalone/apps/web/node_modules/next/dist/server/request/params.js +527 -0
  1229. package/web/standalone/apps/web/node_modules/next/dist/server/request/pathname.js +119 -0
  1230. package/web/standalone/apps/web/node_modules/next/dist/server/request/root-params.js +194 -0
  1231. package/web/standalone/apps/web/node_modules/next/dist/server/request/search-params.js +526 -0
  1232. package/web/standalone/apps/web/node_modules/next/dist/server/request/utils.js +51 -0
  1233. package/web/standalone/apps/web/node_modules/next/dist/server/request-meta.js +55 -0
  1234. package/web/standalone/apps/web/node_modules/next/dist/server/require-hook.js +82 -0
  1235. package/web/standalone/apps/web/node_modules/next/dist/server/require.js +109 -0
  1236. package/web/standalone/apps/web/node_modules/next/dist/server/response-cache/index.js +311 -0
  1237. package/web/standalone/apps/web/node_modules/next/dist/server/response-cache/types.js +41 -0
  1238. package/web/standalone/apps/web/node_modules/next/dist/server/response-cache/utils.js +104 -0
  1239. package/web/standalone/apps/web/node_modules/next/dist/server/response-cache/web.js +101 -0
  1240. package/web/standalone/apps/web/node_modules/next/dist/server/resume-data-cache/cache-store.js +96 -0
  1241. package/web/standalone/apps/web/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +124 -0
  1242. package/web/standalone/apps/web/node_modules/next/dist/server/revalidation-utils.js +157 -0
  1243. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  1244. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  1245. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  1246. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  1247. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  1248. package/web/standalone/apps/web/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
  1249. package/web/standalone/apps/web/node_modules/next/dist/server/route-kind.js +32 -0
  1250. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  1251. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  1252. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  1253. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  1254. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  1255. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
  1256. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  1257. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  1258. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  1259. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  1260. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  1261. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  1262. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  1263. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  1264. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  1265. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  1266. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  1267. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  1268. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  1269. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  1270. package/web/standalone/apps/web/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  1271. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  1272. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  1273. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  1274. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  1275. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  1276. package/web/standalone/apps/web/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
  1277. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
  1278. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
  1279. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
  1280. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  1281. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
  1282. package/web/standalone/apps/web/node_modules/next/dist/server/route-matches/route-match.js +6 -0
  1283. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
  1284. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  1285. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/module.js +162 -0
  1286. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
  1287. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
  1288. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  1289. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  1290. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  1291. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  1292. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  1293. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  1294. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  1295. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  1296. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  1297. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  1298. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  1299. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  1300. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  1301. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  1302. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  1303. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  1304. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  1305. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  1306. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  1307. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  1308. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  1309. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  1310. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  1311. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  1312. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  1313. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  1314. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  1315. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  1316. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  1317. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  1318. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  1319. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  1320. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/module.js +899 -0
  1321. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  1322. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/checks.js +45 -0
  1323. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  1324. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  1325. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
  1326. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
  1327. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/pages-handler.js +545 -0
  1328. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  1329. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  1330. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  1331. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  1332. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  1333. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  1334. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  1335. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  1336. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  1337. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  1338. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  1339. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
  1340. package/web/standalone/apps/web/node_modules/next/dist/server/route-modules/route-module.js +650 -0
  1341. package/web/standalone/apps/web/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
  1342. package/web/standalone/apps/web/node_modules/next/dist/server/send-payload.js +88 -0
  1343. package/web/standalone/apps/web/node_modules/next/dist/server/send-response.js +70 -0
  1344. package/web/standalone/apps/web/node_modules/next/dist/server/serve-static.js +66 -0
  1345. package/web/standalone/apps/web/node_modules/next/dist/server/server-route-utils.js +30 -0
  1346. package/web/standalone/apps/web/node_modules/next/dist/server/server-utils.js +323 -0
  1347. package/web/standalone/apps/web/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
  1348. package/web/standalone/apps/web/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
  1349. package/web/standalone/apps/web/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +918 -0
  1350. package/web/standalone/apps/web/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
  1351. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/constant.js +98 -0
  1352. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/index.js +199 -0
  1353. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
  1354. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/config.js +512 -0
  1355. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
  1356. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/error.js +38 -0
  1357. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
  1358. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
  1359. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/rules/server.js +79 -0
  1360. package/web/standalone/apps/web/node_modules/next/dist/server/typescript/utils.js +212 -0
  1361. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/cache-life.js +163 -0
  1362. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
  1363. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/constants.js +28 -0
  1364. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/handlers.js +121 -0
  1365. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
  1366. package/web/standalone/apps/web/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1588 -0
  1367. package/web/standalone/apps/web/node_modules/next/dist/server/utils.js +73 -0
  1368. package/web/standalone/apps/web/node_modules/next/dist/server/web/adapter.js +392 -0
  1369. package/web/standalone/apps/web/node_modules/next/dist/server/web/edge-route-module-wrapper.js +123 -0
  1370. package/web/standalone/apps/web/node_modules/next/dist/server/web/error.js +54 -0
  1371. package/web/standalone/apps/web/node_modules/next/dist/server/web/exports/index.js +56 -0
  1372. package/web/standalone/apps/web/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
  1373. package/web/standalone/apps/web/node_modules/next/dist/server/web/globals.js +128 -0
  1374. package/web/standalone/apps/web/node_modules/next/dist/server/web/http.js +39 -0
  1375. package/web/standalone/apps/web/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
  1376. package/web/standalone/apps/web/node_modules/next/dist/server/web/next-url.js +199 -0
  1377. package/web/standalone/apps/web/node_modules/next/dist/server/web/sandbox/context.js +462 -0
  1378. package/web/standalone/apps/web/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  1379. package/web/standalone/apps/web/node_modules/next/dist/server/web/sandbox/index.js +28 -0
  1380. package/web/standalone/apps/web/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
  1381. package/web/standalone/apps/web/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
  1382. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
  1383. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  1384. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  1385. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
  1386. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
  1387. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  1388. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
  1389. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
  1390. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
  1391. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/revalidate.js +214 -0
  1392. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +289 -0
  1393. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
  1394. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
  1395. package/web/standalone/apps/web/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
  1396. package/web/standalone/apps/web/node_modules/next/dist/server/web/types.js +6 -0
  1397. package/web/standalone/apps/web/node_modules/next/dist/server/web/utils.js +151 -0
  1398. package/web/standalone/apps/web/node_modules/next/dist/server/web/web-on-close.js +87 -0
  1399. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
  1400. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  1401. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/app-router-types.js +46 -0
  1402. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/constants.js +448 -0
  1403. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
  1404. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
  1405. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/dset.js +34 -0
  1406. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
  1407. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
  1408. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/error-source.js +36 -0
  1409. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
  1410. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
  1411. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
  1412. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
  1413. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
  1414. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
  1415. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
  1416. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/hash.js +42 -0
  1417. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  1418. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/head.js +163 -0
  1419. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
  1420. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  1421. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  1422. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  1423. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  1424. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
  1425. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  1426. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/image-config.js +77 -0
  1427. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
  1428. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
  1429. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
  1430. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
  1431. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1432. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1433. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1434. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
  1435. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1436. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1437. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1438. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1439. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1440. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1441. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1442. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1443. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1444. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1445. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1446. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1447. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1448. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
  1449. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/routes/app.js +122 -0
  1450. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1451. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1452. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1453. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/app-paths.js +62 -0
  1454. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1455. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
  1456. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1457. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1458. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1459. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
  1460. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1461. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1462. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1463. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1464. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
  1465. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
  1466. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1467. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1468. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1469. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1470. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
  1471. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1472. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
  1473. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
  1474. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1475. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1476. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
  1477. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1478. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1479. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1480. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
  1481. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
  1482. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1483. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1484. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1485. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1486. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1487. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1488. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
  1489. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/segment.js +102 -0
  1490. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1491. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/server-reference-info.js +56 -0
  1492. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/side-effect.js +63 -0
  1493. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/size-limit.js +40 -0
  1494. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1495. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
  1496. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
  1497. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/utils.js +207 -0
  1498. package/web/standalone/apps/web/node_modules/next/dist/shared/lib/zod.js +101 -0
  1499. package/web/standalone/apps/web/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
  1500. package/web/standalone/apps/web/node_modules/next/dist/telemetry/detached-flush.js +56 -0
  1501. package/web/standalone/apps/web/node_modules/next/dist/telemetry/events/build.js +174 -0
  1502. package/web/standalone/apps/web/node_modules/next/dist/telemetry/events/index.js +41 -0
  1503. package/web/standalone/apps/web/node_modules/next/dist/telemetry/events/plugins.js +51 -0
  1504. package/web/standalone/apps/web/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1505. package/web/standalone/apps/web/node_modules/next/dist/telemetry/events/version.js +66 -0
  1506. package/web/standalone/apps/web/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
  1507. package/web/standalone/apps/web/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1508. package/web/standalone/apps/web/node_modules/next/dist/telemetry/project-id.js +48 -0
  1509. package/web/standalone/apps/web/node_modules/next/dist/telemetry/storage.js +301 -0
  1510. package/web/standalone/apps/web/node_modules/next/dist/trace/index.js +58 -0
  1511. package/web/standalone/apps/web/node_modules/next/dist/trace/report/index.js +37 -0
  1512. package/web/standalone/apps/web/node_modules/next/dist/trace/report/to-json-build.js +40 -0
  1513. package/web/standalone/apps/web/node_modules/next/dist/trace/report/to-json.js +165 -0
  1514. package/web/standalone/apps/web/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
  1515. package/web/standalone/apps/web/node_modules/next/dist/trace/shared.js +39 -0
  1516. package/web/standalone/apps/web/node_modules/next/dist/trace/trace.js +211 -0
  1517. package/web/standalone/apps/web/node_modules/next/package.json +378 -0
  1518. package/web/standalone/apps/web/package.json +33 -0
  1519. package/web/standalone/apps/web/server.js +38 -0
  1520. package/web/standalone/node_modules/@img/colour/color.cjs +1596 -0
  1521. package/web/standalone/node_modules/@img/colour/index.cjs +1 -0
  1522. package/web/standalone/node_modules/@img/colour/package.json +58 -0
  1523. package/web/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  1524. package/web/standalone/node_modules/@img/sharp-darwin-arm64/package.json +40 -0
  1525. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/README.md +46 -0
  1526. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
  1527. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +1 -0
  1528. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
  1529. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/package.json +36 -0
  1530. package/web/standalone/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +30 -0
  1531. package/web/standalone/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  1532. package/web/standalone/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  1533. package/web/standalone/node_modules/@swc/helpers/package.json +471 -0
  1534. package/web/standalone/node_modules/client-only/index.js +0 -0
  1535. package/web/standalone/node_modules/client-only/package.json +19 -0
  1536. package/web/standalone/node_modules/detect-libc/lib/detect-libc.js +313 -0
  1537. package/web/standalone/node_modules/detect-libc/lib/elf.js +39 -0
  1538. package/web/standalone/node_modules/detect-libc/lib/filesystem.js +51 -0
  1539. package/web/standalone/node_modules/detect-libc/lib/process.js +24 -0
  1540. package/web/standalone/node_modules/detect-libc/package.json +44 -0
  1541. package/web/standalone/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
  1542. package/web/standalone/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  1543. package/web/standalone/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
  1544. package/web/standalone/node_modules/react/cjs/react.development.js +1284 -0
  1545. package/web/standalone/node_modules/react/cjs/react.production.js +542 -0
  1546. package/web/standalone/node_modules/react/compiler-runtime.js +14 -0
  1547. package/web/standalone/node_modules/react/index.js +7 -0
  1548. package/web/standalone/node_modules/react/jsx-dev-runtime.js +7 -0
  1549. package/web/standalone/node_modules/react/jsx-runtime.js +7 -0
  1550. package/web/standalone/node_modules/react/package.json +51 -0
  1551. package/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
  1552. package/web/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
  1553. package/web/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
  1554. package/web/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
  1555. package/web/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
  1556. package/web/standalone/node_modules/react-dom/cjs/react-dom.production.js +210 -0
  1557. package/web/standalone/node_modules/react-dom/index.js +38 -0
  1558. package/web/standalone/node_modules/react-dom/package.json +117 -0
  1559. package/web/standalone/node_modules/react-dom/server.browser.js +16 -0
  1560. package/web/standalone/node_modules/react-dom/server.edge.js +17 -0
  1561. package/web/standalone/node_modules/react-dom/server.node.js +18 -0
  1562. package/web/standalone/node_modules/react-dom/static.node.js +14 -0
  1563. package/web/standalone/node_modules/sharp/lib/channel.js +177 -0
  1564. package/web/standalone/node_modules/sharp/lib/colour.js +195 -0
  1565. package/web/standalone/node_modules/sharp/lib/composite.js +212 -0
  1566. package/web/standalone/node_modules/sharp/lib/constructor.js +499 -0
  1567. package/web/standalone/node_modules/sharp/lib/index.js +16 -0
  1568. package/web/standalone/node_modules/sharp/lib/input.js +809 -0
  1569. package/web/standalone/node_modules/sharp/lib/is.js +143 -0
  1570. package/web/standalone/node_modules/sharp/lib/libvips.js +207 -0
  1571. package/web/standalone/node_modules/sharp/lib/operation.js +1016 -0
  1572. package/web/standalone/node_modules/sharp/lib/output.js +1666 -0
  1573. package/web/standalone/node_modules/sharp/lib/resize.js +595 -0
  1574. package/web/standalone/node_modules/sharp/lib/sharp.js +121 -0
  1575. package/web/standalone/node_modules/sharp/lib/utility.js +291 -0
  1576. package/web/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +143 -0
  1577. package/web/standalone/node_modules/sharp/node_modules/semver/classes/range.js +557 -0
  1578. package/web/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +333 -0
  1579. package/web/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +54 -0
  1580. package/web/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +62 -0
  1581. package/web/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +7 -0
  1582. package/web/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +5 -0
  1583. package/web/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +5 -0
  1584. package/web/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +5 -0
  1585. package/web/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +5 -0
  1586. package/web/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +5 -0
  1587. package/web/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +5 -0
  1588. package/web/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +18 -0
  1589. package/web/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +12 -0
  1590. package/web/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +37 -0
  1591. package/web/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +11 -0
  1592. package/web/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +29 -0
  1593. package/web/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +42 -0
  1594. package/web/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +17 -0
  1595. package/web/standalone/node_modules/sharp/node_modules/semver/internal/re.js +223 -0
  1596. package/web/standalone/node_modules/sharp/node_modules/semver/package.json +78 -0
  1597. package/web/standalone/node_modules/sharp/package.json +202 -0
  1598. package/web/standalone/node_modules/styled-jsx/dist/index/index.js +499 -0
  1599. package/web/standalone/node_modules/styled-jsx/index.js +1 -0
  1600. package/web/standalone/node_modules/styled-jsx/package.json +132 -0
  1601. package/web/standalone/node_modules/styled-jsx/style.js +1 -0
  1602. package/web/standalone/public/file.svg +1 -0
  1603. package/web/standalone/public/globe.svg +1 -0
  1604. package/web/standalone/public/next.svg +1 -0
  1605. package/web/standalone/public/vercel.svg +1 -0
  1606. package/web/standalone/public/window.svg +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../daemon/src/config/config-store.ts","../../store/src/store.ts","../../store/src/table.ts","../../daemon/src/config/schema.ts","../../daemon/src/process-manager.ts","../../daemon/src/terminal-manager.ts","../../daemon/src/web-server.ts","../../daemon/src/api/server.ts","../../daemon/src/api/routes/agents.ts","../../daemon/src/agent-scanner.ts","../../daemon/src/api/routes/processes.ts","../../daemon/src/api/routes/s3.ts","../../daemon/src/capability-files.ts","../../daemon/src/api/routes/email.ts","../../crypto/src/crypto.ts","../../daemon/src/api/routes/database.ts","../../daemon/src/api/routes/http.ts","../../daemon/src/api/routes/telegram.ts","../../daemon/src/api/routes/cron.ts","../../daemon/src/paths.ts","../../daemon/src/daemon.ts"],"sourcesContent":["import { join } from 'path';\nimport { homedir } from 'os';\nimport { createStore, type Store } from '@repo/store';\nimport type { HelperConfig, S3Profile, S3Connection, DatabaseProfile, DatabaseConnection, GmailAccountConfig, EmailConnectionConfig, OAuthCredentials, TelegramBotProfile, TelegramConnection, HttpEndpoint, HttpConnection, CronJob, CronConnection } from '@repo/types';\nimport { configSchema, type ConfigSchema } from './schema.js';\n\n/**\n * Resolve the Kindflow data directory path.\n * Uses KINDFLOW_DATA_DIR env var if set, otherwise defaults to ~/.kindflow.\n *\n * @returns absolute path to the data directory\n */\nexport const getDataDir = (): string =>\n process.env['KINDFLOW_DATA_DIR'] ?? join(homedir(), '.kindflow');\n\n/**\n * Global config store — only daemon-level settings and helper configs.\n * Agent config is filesystem-driven (apps/<id>/agent/config.json).\n */\nexport interface ConfigStore {\n /** Get all registered helpers. */\n getHelpers: () => HelperConfig[];\n\n /** Get a single helper by ID. */\n getHelper: (id: string) => HelperConfig | undefined;\n\n /** Create or replace a helper configuration. */\n saveHelper: (helper: HelperConfig) => void;\n\n /** Get all S3 profiles. */\n getS3Profiles: () => S3Profile[];\n\n /** Get a single S3 profile by ID. */\n getS3Profile: (id: string) => S3Profile | undefined;\n\n /** Create or replace an S3 profile. */\n saveS3Profile: (profile: S3Profile) => void;\n\n /** Delete an S3 profile. */\n deleteS3Profile: (id: string) => void;\n\n /** Get all S3 connections. */\n getS3Connections: () => S3Connection[];\n\n /** Get all S3 connections for a specific profile. */\n getS3ConnectionsForProfile: (profileId: string) => S3Connection[];\n\n /** Get all S3 connections for a specific agent. */\n getS3ConnectionsForAgent: (agentId: string) => S3Connection[];\n\n /** Create or replace an S3 connection. */\n saveS3Connection: (connection: S3Connection) => void;\n\n /** Delete an S3 connection. */\n deleteS3Connection: (id: string) => void;\n\n /** Get all database profiles. */\n getDatabaseProfiles: () => DatabaseProfile[];\n\n /** Get a single database profile by ID. */\n getDatabaseProfile: (id: string) => DatabaseProfile | undefined;\n\n /** Create or replace a database profile. */\n saveDatabaseProfile: (profile: DatabaseProfile) => void;\n\n /** Delete a database profile. */\n deleteDatabaseProfile: (id: string) => void;\n\n /** Get all database connections. */\n getDatabaseConnections: () => DatabaseConnection[];\n\n /** Get all database connections for a specific profile. */\n getDatabaseConnectionsForProfile: (profileId: string) => DatabaseConnection[];\n\n /** Get all database connections for a specific agent. */\n getDatabaseConnectionsForAgent: (agentId: string) => DatabaseConnection[];\n\n /** Create or replace a database connection. */\n saveDatabaseConnection: (connection: DatabaseConnection) => void;\n\n /** Delete a database connection. */\n deleteDatabaseConnection: (id: string) => void;\n\n /** Get a global setting value by key. */\n getSetting: (key: string) => string | undefined;\n\n /** Set a global setting value. */\n setSetting: (key: string, value: string) => void;\n\n /** Get all Gmail accounts. */\n getEmailAccounts: () => GmailAccountConfig[];\n\n /** Get a single Gmail account by ID. */\n getEmailAccount: (id: string) => GmailAccountConfig | undefined;\n\n /** Create or replace a Gmail account. */\n saveEmailAccount: (account: GmailAccountConfig) => void;\n\n /** Delete a Gmail account and all its connections. */\n deleteEmailAccount: (id: string) => void;\n\n /** Get all email connections. */\n getEmailConnections: () => EmailConnectionConfig[];\n\n /** Get a single email connection by ID. */\n getEmailConnection: (id: string) => EmailConnectionConfig | undefined;\n\n /** Get all connections for a specific account. */\n getEmailConnectionsForAccount: (accountId: string) => EmailConnectionConfig[];\n\n /** Create or replace an email connection. */\n saveEmailConnection: (connection: EmailConnectionConfig) => void;\n\n /** Delete an email connection. */\n deleteEmailConnection: (id: string) => void;\n\n /** Get OAuth credentials for a provider (e.g. \"gmail\"). */\n getOAuthCredentials: (provider: string) => OAuthCredentials | undefined;\n\n /** Save OAuth credentials for a provider. */\n saveOAuthCredentials: (provider: string, creds: OAuthCredentials) => void;\n\n /** Get all Telegram bot profiles. */\n getTelegramBots: () => TelegramBotProfile[];\n\n /** Get a single Telegram bot profile by ID. */\n getTelegramBot: (id: string) => TelegramBotProfile | undefined;\n\n /** Create or replace a Telegram bot profile. */\n saveTelegramBot: (bot: TelegramBotProfile) => void;\n\n /** Delete a Telegram bot and all its connections. */\n deleteTelegramBot: (id: string) => void;\n\n /** Get all Telegram connections. */\n getTelegramConnections: () => TelegramConnection[];\n\n /** Get all connections for a specific bot. */\n getTelegramConnectionsForBot: (botId: string) => TelegramConnection[];\n\n /** Create or replace a Telegram connection. */\n saveTelegramConnection: (connection: TelegramConnection) => void;\n\n /** Delete a Telegram connection. */\n deleteTelegramConnection: (id: string) => void;\n\n /** Get all HTTP endpoints. */\n getHttpEndpoints: () => HttpEndpoint[];\n\n /** Get a single HTTP endpoint by ID. */\n getHttpEndpoint: (id: string) => HttpEndpoint | undefined;\n\n /** Get a single HTTP endpoint by path slug. */\n getHttpEndpointByPath: (path: string) => HttpEndpoint | undefined;\n\n /** Create or replace an HTTP endpoint. */\n saveHttpEndpoint: (endpoint: HttpEndpoint) => void;\n\n /** Delete an HTTP endpoint and all its connections. */\n deleteHttpEndpoint: (id: string) => void;\n\n /** Get all HTTP connections. */\n getHttpConnections: () => HttpConnection[];\n\n /** Get all connections for a specific endpoint. */\n getHttpConnectionsForEndpoint: (endpointId: string) => HttpConnection[];\n\n /** Create or replace an HTTP connection. */\n saveHttpConnection: (connection: HttpConnection) => void;\n\n /** Delete an HTTP connection. */\n deleteHttpConnection: (id: string) => void;\n\n /** Get all cron jobs. */\n getCronJobs: () => CronJob[];\n\n /** Get a single cron job by ID. */\n getCronJob: (id: string) => CronJob | undefined;\n\n /** Create or replace a cron job. */\n saveCronJob: (job: CronJob) => void;\n\n /** Delete a cron job and all its connections. */\n deleteCronJob: (id: string) => void;\n\n /** Get all cron connections. */\n getCronConnections: () => CronConnection[];\n\n /** Get all connections for a specific cron job. */\n getCronConnectionsForJob: (cronJobId: string) => CronConnection[];\n\n /** Create or replace a cron connection. */\n saveCronConnection: (connection: CronConnection) => void;\n\n /** Delete a cron connection. */\n deleteCronConnection: (id: string) => void;\n\n /** Close the database connection. */\n close: () => void;\n}\n\n/** Serialize a HelperConfig to a database row. */\nconst helperToRow = (helper: HelperConfig) => ({\n id: helper.id,\n kind: helper.kind,\n name: helper.name,\n config: JSON.stringify(helper.config),\n auto_start: helper.autoStart ? 1 : 0,\n created_at: helper.createdAt,\n updated_at: helper.updatedAt,\n});\n\n/** Deserialize a database row to a HelperConfig. */\nconst rowToHelper = (row: Record<string, unknown>): HelperConfig => ({\n id: row['id'] as string,\n kind: row['kind'] as string,\n name: row['name'] as string,\n config: JSON.parse(row['config'] as string),\n autoStart: row['auto_start'] === 1,\n createdAt: row['created_at'] as string,\n updatedAt: row['updated_at'] as string,\n});\n\n/** Serialize a GmailAccountConfig to a database row. */\nconst emailAccountToRow = (account: GmailAccountConfig) => ({\n id: account.id,\n name: account.name,\n email: account.email,\n refresh_token: account.refreshToken,\n created_at: account.createdAt,\n updated_at: account.updatedAt,\n});\n\n/** Deserialize a database row to a GmailAccountConfig. */\nconst rowToEmailAccount = (row: Record<string, unknown>): GmailAccountConfig => ({\n id: row['id'] as string,\n name: row['name'] as string,\n email: row['email'] as string,\n refreshToken: row['refresh_token'] as string,\n createdAt: row['created_at'] as string,\n updatedAt: row['updated_at'] as string,\n});\n\n/** Serialize an EmailConnectionConfig to a database row. */\nconst emailConnectionToRow = (conn: EmailConnectionConfig) => ({\n id: conn.id,\n account_id: conn.accountId,\n target_agent: conn.targetAgent,\n command: conn.command,\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n updated_at: conn.updatedAt,\n});\n\n/** Deserialize a database row to an EmailConnectionConfig. */\nconst rowToEmailConnection = (row: Record<string, unknown>): EmailConnectionConfig => ({\n id: row['id'] as string,\n accountId: row['account_id'] as string,\n targetAgent: row['target_agent'] as string,\n command: row['command'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n updatedAt: row['updated_at'] as string,\n});\n\n/** Deserialize a database row to a TelegramBotProfile. */\nconst rowToTelegramBot = (row: Record<string, unknown>): TelegramBotProfile => ({\n id: row['id'] as string,\n name: row['name'] as string,\n token: row['token'] as string,\n botUsername: row['bot_username'] as string,\n polling: row['polling'] === 1,\n webhookUrl: (row['webhook_url'] as string) || null,\n verified: row['verified'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize a TelegramBotProfile to a database row. */\nconst telegramBotToRow = (bot: TelegramBotProfile) => ({\n id: bot.id,\n name: bot.name,\n token: bot.token,\n bot_username: bot.botUsername,\n polling: bot.polling ? 1 : 0,\n webhook_url: bot.webhookUrl ?? '',\n verified: bot.verified ? 1 : 0,\n created_at: bot.createdAt,\n});\n\n/** Deserialize a database row to a TelegramConnection. */\nconst rowToTelegramConnection = (row: Record<string, unknown>): TelegramConnection => ({\n id: row['id'] as string,\n botId: row['bot_id'] as string,\n targetAgent: row['target_agent'] as string,\n chatId: row['chat_id'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize a TelegramConnection to a database row. */\nconst telegramConnectionToRow = (conn: TelegramConnection) => ({\n id: conn.id,\n bot_id: conn.botId,\n target_agent: conn.targetAgent,\n chat_id: conn.chatId,\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n});\n\n/** Deserialize a database row to an HttpEndpoint. */\nconst rowToHttpEndpoint = (row: Record<string, unknown>): HttpEndpoint => ({\n id: row['id'] as string,\n name: row['name'] as string,\n path: row['path'] as string,\n apiKey: (row['api_key'] as string) || null,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize an HttpEndpoint to a database row. */\nconst httpEndpointToRow = (endpoint: HttpEndpoint) => ({\n id: endpoint.id,\n name: endpoint.name,\n path: endpoint.path,\n api_key: endpoint.apiKey ?? '',\n enabled: endpoint.enabled ? 1 : 0,\n created_at: endpoint.createdAt,\n});\n\n/** Deserialize a database row to an HttpConnection. */\nconst rowToHttpConnection = (row: Record<string, unknown>): HttpConnection => ({\n id: row['id'] as string,\n endpointId: row['endpoint_id'] as string,\n targetAgent: row['target_agent'] as string,\n command: (row['command'] as string) || null,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize an HttpConnection to a database row. */\nconst httpConnectionToRow = (conn: HttpConnection) => ({\n id: conn.id,\n endpoint_id: conn.endpointId,\n target_agent: conn.targetAgent,\n command: conn.command ?? '',\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n});\n\n/** Deserialize a database row to an S3Connection. */\nconst rowToS3Connection = (row: Record<string, unknown>): S3Connection => ({\n id: row['id'] as string,\n profileId: row['profile_id'] as string,\n targetAgent: row['target_agent'] as string,\n purpose: row['purpose'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize an S3Connection to a database row. */\nconst s3ConnectionToRow = (conn: S3Connection) => ({\n id: conn.id,\n profile_id: conn.profileId,\n target_agent: conn.targetAgent,\n purpose: conn.purpose,\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n});\n\n/** Deserialize a database row to a DatabaseConnection. */\nconst rowToDatabaseConnection = (row: Record<string, unknown>): DatabaseConnection => ({\n id: row['id'] as string,\n profileId: row['profile_id'] as string,\n targetAgent: row['target_agent'] as string,\n purpose: row['purpose'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize a DatabaseConnection to a database row. */\nconst databaseConnectionToRow = (conn: DatabaseConnection) => ({\n id: conn.id,\n profile_id: conn.profileId,\n target_agent: conn.targetAgent,\n purpose: conn.purpose,\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n});\n\n/** Deserialize a database row to a CronJob. */\nconst rowToCronJob = (row: Record<string, unknown>): CronJob => ({\n id: row['id'] as string,\n name: row['name'] as string,\n schedule: row['schedule'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize a CronJob to a database row. */\nconst cronJobToRow = (job: CronJob) => ({\n id: job.id,\n name: job.name,\n schedule: job.schedule,\n enabled: job.enabled ? 1 : 0,\n created_at: job.createdAt,\n});\n\n/** Deserialize a database row to a CronConnection. */\nconst rowToCronConnection = (row: Record<string, unknown>): CronConnection => ({\n id: row['id'] as string,\n cronJobId: row['cron_job_id'] as string,\n targetAgent: row['target_agent'] as string,\n command: row['command'] as string,\n enabled: row['enabled'] === 1,\n createdAt: row['created_at'] as string,\n});\n\n/** Serialize a CronConnection to a database row. */\nconst cronConnectionToRow = (conn: CronConnection) => ({\n id: conn.id,\n cron_job_id: conn.cronJobId,\n target_agent: conn.targetAgent,\n command: conn.command ?? '',\n enabled: conn.enabled ? 1 : 0,\n created_at: conn.createdAt,\n});\n\n/**\n * Create a ConfigStore backed by SQLite.\n * Only stores global settings and helper configs.\n *\n * @param dataDir - optional override for the data directory\n * @returns a ConfigStore instance\n */\nexport const createConfigStore = async (dataDir?: string): Promise<ConfigStore> => {\n const dir = dataDir ?? getDataDir();\n const dbPath = join(dir, 'config.db');\n\n const store: Store<ConfigSchema> = await createStore({\n path: dbPath,\n tables: configSchema,\n });\n\n const helpers = store.table('helpers');\n const s3Profiles = store.table('s3_profiles');\n const dbProfiles = store.table('database_profiles');\n const settings = store.table('settings');\n const emailAccounts = store.table('email_accounts');\n const emailConnections = store.table('email_connections');\n const oauthCredentials = store.table('oauth_credentials');\n const telegramBots = store.table('telegram_bots');\n const telegramConnections = store.table('telegram_connections');\n const httpEndpoints = store.table('http_endpoints');\n const httpConnectionsTable = store.table('http_connections');\n const cronJobsTable = store.table('cron_jobs');\n const cronConnectionsTable = store.table('cron_connections');\n const s3ConnectionsTable = store.table('s3_connections');\n const databaseConnectionsTable = store.table('database_connections');\n\n /** Convert S3 profile row to typed object. */\n /** Convert database profile row to typed object. */\n const rowToDb = (row: Record<string, unknown>): DatabaseProfile => ({\n id: row['id'] as string,\n name: row['name'] as string,\n type: row['db_type'] as DatabaseProfile['type'],\n host: (row['host'] as string) || null,\n port: (row['port'] as number) || null,\n database: row['database'] as string,\n username: (row['username'] as string) || null,\n password: (row['password'] as string) || null,\n sslMode: (row['ssl_mode'] as DatabaseProfile['sslMode']) || null,\n verified: row['verified'] === 1,\n createdAt: row['created_at'] as string,\n });\n\n const rowToS3 = (row: Record<string, unknown>): S3Profile => ({\n id: row['id'] as string,\n name: row['name'] as string,\n bucket: row['bucket'] as string,\n region: row['region'] as string,\n awsProfile: (row['aws_profile'] as string) || null,\n verified: row['verified'] === 1,\n createdAt: row['created_at'] as string,\n });\n\n return {\n getHelpers: () => helpers.all().map(rowToHelper),\n\n getHelper: (id) => {\n const row = helpers.findOne({ where: { id } });\n return row ? rowToHelper(row) : undefined;\n },\n\n saveHelper: (helper) => {\n const existing = helpers.findOne({ where: { id: helper.id } });\n const row = helperToRow(helper);\n if (existing) {\n helpers.update(row, { where: { id: helper.id } });\n } else {\n helpers.insert(row);\n }\n },\n\n getS3Profiles: () => s3Profiles.all().map(rowToS3),\n\n getS3Profile: (id) => {\n const row = s3Profiles.findOne({ where: { id } });\n return row ? rowToS3(row) : undefined;\n },\n\n saveS3Profile: (profile) => {\n const existing = s3Profiles.findOne({ where: { id: profile.id } });\n const row = { id: profile.id, name: profile.name, bucket: profile.bucket, region: profile.region, aws_profile: profile.awsProfile ?? '', verified: profile.verified ? 1 : 0, created_at: profile.createdAt };\n if (existing) {\n s3Profiles.update(row, { where: { id: profile.id } });\n } else {\n s3Profiles.insert(row);\n }\n },\n\n deleteS3Profile: (id) => s3Profiles.deleteRows({ where: { id } }),\n\n getS3Connections: () =>\n s3ConnectionsTable.all().map((row) => rowToS3Connection(row as Record<string, unknown>)),\n\n getS3ConnectionsForProfile: (profileId) =>\n s3ConnectionsTable\n .findMany({ where: { profile_id: profileId } })\n .map((row) => rowToS3Connection(row as Record<string, unknown>)),\n\n getS3ConnectionsForAgent: (agentId) =>\n s3ConnectionsTable\n .findMany({ where: { target_agent: agentId } })\n .map((row) => rowToS3Connection(row as Record<string, unknown>)),\n\n saveS3Connection: (connection) => {\n const existing = s3ConnectionsTable.findOne({ where: { id: connection.id } });\n const row = s3ConnectionToRow(connection);\n if (existing) {\n s3ConnectionsTable.update(row, { where: { id: connection.id } });\n } else {\n s3ConnectionsTable.insert(row);\n }\n },\n\n deleteS3Connection: (id) => s3ConnectionsTable.deleteRows({ where: { id } }),\n\n getDatabaseProfiles: () => dbProfiles.all().map((row) => rowToDb(row as Record<string, unknown>)),\n\n getDatabaseProfile: (id) => {\n const row = dbProfiles.findOne({ where: { id } });\n return row ? rowToDb(row as Record<string, unknown>) : undefined;\n },\n\n saveDatabaseProfile: (profile) => {\n const existing = dbProfiles.findOne({ where: { id: profile.id } });\n const row = {\n id: profile.id, name: profile.name, db_type: profile.type,\n host: profile.host ?? '', port: profile.port ?? 0,\n database: profile.database, username: profile.username ?? '',\n password: profile.password ?? '', ssl_mode: profile.sslMode ?? '',\n verified: profile.verified ? 1 : 0, created_at: profile.createdAt,\n };\n if (existing) {\n dbProfiles.update(row, { where: { id: profile.id } });\n } else {\n dbProfiles.insert(row);\n }\n },\n\n deleteDatabaseProfile: (id) => dbProfiles.deleteRows({ where: { id } }),\n\n getDatabaseConnections: () =>\n databaseConnectionsTable.all().map((row) => rowToDatabaseConnection(row as Record<string, unknown>)),\n\n getDatabaseConnectionsForProfile: (profileId) =>\n databaseConnectionsTable\n .findMany({ where: { profile_id: profileId } })\n .map((row) => rowToDatabaseConnection(row as Record<string, unknown>)),\n\n getDatabaseConnectionsForAgent: (agentId) =>\n databaseConnectionsTable\n .findMany({ where: { target_agent: agentId } })\n .map((row) => rowToDatabaseConnection(row as Record<string, unknown>)),\n\n saveDatabaseConnection: (connection) => {\n const existing = databaseConnectionsTable.findOne({ where: { id: connection.id } });\n const row = databaseConnectionToRow(connection);\n if (existing) {\n databaseConnectionsTable.update(row, { where: { id: connection.id } });\n } else {\n databaseConnectionsTable.insert(row);\n }\n },\n\n deleteDatabaseConnection: (id) => databaseConnectionsTable.deleteRows({ where: { id } }),\n\n getSetting: (key) => {\n const row = settings.findOne({ where: { key } });\n return row ? (row as Record<string, unknown>)['value'] as string : undefined;\n },\n\n setSetting: (key, value) => {\n const existing = settings.findOne({ where: { key } });\n if (existing) {\n settings.update({ key, value }, { where: { key } });\n } else {\n settings.insert({ key, value });\n }\n },\n\n getEmailAccounts: () =>\n emailAccounts.all().map((row) => rowToEmailAccount(row as Record<string, unknown>)),\n\n getEmailAccount: (id) => {\n const row = emailAccounts.findOne({ where: { id } });\n return row ? rowToEmailAccount(row as Record<string, unknown>) : undefined;\n },\n\n saveEmailAccount: (account) => {\n const existing = emailAccounts.findOne({ where: { id: account.id } });\n const row = emailAccountToRow(account);\n if (existing) {\n emailAccounts.update(row, { where: { id: account.id } });\n } else {\n emailAccounts.insert(row);\n }\n },\n\n deleteEmailAccount: (id) => {\n emailConnections.deleteRows({ where: { account_id: id } });\n emailAccounts.deleteRows({ where: { id } });\n },\n\n getEmailConnections: () =>\n emailConnections.all().map((row) => rowToEmailConnection(row as Record<string, unknown>)),\n\n getEmailConnection: (id) => {\n const row = emailConnections.findOne({ where: { id } });\n return row ? rowToEmailConnection(row as Record<string, unknown>) : undefined;\n },\n\n getEmailConnectionsForAccount: (accountId) =>\n emailConnections\n .findMany({ where: { account_id: accountId } })\n .map((row) => rowToEmailConnection(row as Record<string, unknown>)),\n\n saveEmailConnection: (connection) => {\n const existing = emailConnections.findOne({ where: { id: connection.id } });\n const row = emailConnectionToRow(connection);\n if (existing) {\n emailConnections.update(row, { where: { id: connection.id } });\n } else {\n emailConnections.insert(row);\n }\n },\n\n deleteEmailConnection: (id) => emailConnections.deleteRows({ where: { id } }),\n\n getOAuthCredentials: (provider) => {\n const row = oauthCredentials.findOne({ where: { key: provider } });\n if (!row) return undefined;\n const r = row as Record<string, unknown>;\n return { clientId: r['client_id'] as string, clientSecret: r['client_secret'] as string };\n },\n\n saveOAuthCredentials: (provider, creds) => {\n const existing = oauthCredentials.findOne({ where: { key: provider } });\n const row = { key: provider, client_id: creds.clientId, client_secret: creds.clientSecret };\n if (existing) {\n oauthCredentials.update(row, { where: { key: provider } });\n } else {\n oauthCredentials.insert(row);\n }\n },\n\n getTelegramBots: () =>\n telegramBots.all().map((row) => rowToTelegramBot(row as Record<string, unknown>)),\n\n getTelegramBot: (id) => {\n const row = telegramBots.findOne({ where: { id } });\n return row ? rowToTelegramBot(row as Record<string, unknown>) : undefined;\n },\n\n saveTelegramBot: (bot) => {\n const existing = telegramBots.findOne({ where: { id: bot.id } });\n const row = telegramBotToRow(bot);\n if (existing) {\n telegramBots.update(row, { where: { id: bot.id } });\n } else {\n telegramBots.insert(row);\n }\n },\n\n deleteTelegramBot: (id) => {\n telegramConnections.deleteRows({ where: { bot_id: id } });\n telegramBots.deleteRows({ where: { id } });\n },\n\n getTelegramConnections: () =>\n telegramConnections.all().map((row) => rowToTelegramConnection(row as Record<string, unknown>)),\n\n getTelegramConnectionsForBot: (botId) =>\n telegramConnections\n .findMany({ where: { bot_id: botId } })\n .map((row) => rowToTelegramConnection(row as Record<string, unknown>)),\n\n saveTelegramConnection: (connection) => {\n const existing = telegramConnections.findOne({ where: { id: connection.id } });\n const row = telegramConnectionToRow(connection);\n if (existing) {\n telegramConnections.update(row, { where: { id: connection.id } });\n } else {\n telegramConnections.insert(row);\n }\n },\n\n deleteTelegramConnection: (id) => telegramConnections.deleteRows({ where: { id } }),\n\n getHttpEndpoints: () =>\n httpEndpoints.all().map((row) => rowToHttpEndpoint(row as Record<string, unknown>)),\n\n getHttpEndpoint: (id) => {\n const row = httpEndpoints.findOne({ where: { id } });\n return row ? rowToHttpEndpoint(row as Record<string, unknown>) : undefined;\n },\n\n getHttpEndpointByPath: (path) => {\n const row = httpEndpoints.findOne({ where: { path } });\n return row ? rowToHttpEndpoint(row as Record<string, unknown>) : undefined;\n },\n\n saveHttpEndpoint: (endpoint) => {\n const existing = httpEndpoints.findOne({ where: { id: endpoint.id } });\n const row = httpEndpointToRow(endpoint);\n if (existing) {\n httpEndpoints.update(row, { where: { id: endpoint.id } });\n } else {\n httpEndpoints.insert(row);\n }\n },\n\n deleteHttpEndpoint: (id) => {\n httpConnectionsTable.deleteRows({ where: { endpoint_id: id } });\n httpEndpoints.deleteRows({ where: { id } });\n },\n\n getHttpConnections: () =>\n httpConnectionsTable.all().map((row) => rowToHttpConnection(row as Record<string, unknown>)),\n\n getHttpConnectionsForEndpoint: (endpointId) =>\n httpConnectionsTable\n .findMany({ where: { endpoint_id: endpointId } })\n .map((row) => rowToHttpConnection(row as Record<string, unknown>)),\n\n saveHttpConnection: (connection) => {\n const existing = httpConnectionsTable.findOne({ where: { id: connection.id } });\n const row = httpConnectionToRow(connection);\n if (existing) {\n httpConnectionsTable.update(row, { where: { id: connection.id } });\n } else {\n httpConnectionsTable.insert(row);\n }\n },\n\n deleteHttpConnection: (id) => httpConnectionsTable.deleteRows({ where: { id } }),\n\n getCronJobs: () =>\n cronJobsTable.all().map((row) => rowToCronJob(row as Record<string, unknown>)),\n\n getCronJob: (id) => {\n const row = cronJobsTable.findOne({ where: { id } });\n return row ? rowToCronJob(row as Record<string, unknown>) : undefined;\n },\n\n saveCronJob: (job) => {\n const existing = cronJobsTable.findOne({ where: { id: job.id } });\n const row = cronJobToRow(job);\n if (existing) {\n cronJobsTable.update(row, { where: { id: job.id } });\n } else {\n cronJobsTable.insert(row);\n }\n },\n\n deleteCronJob: (id) => {\n cronConnectionsTable.deleteRows({ where: { cron_job_id: id } });\n cronJobsTable.deleteRows({ where: { id } });\n },\n\n getCronConnections: () =>\n cronConnectionsTable.all().map((row) => rowToCronConnection(row as Record<string, unknown>)),\n\n getCronConnectionsForJob: (cronJobId) =>\n cronConnectionsTable\n .findMany({ where: { cron_job_id: cronJobId } })\n .map((row) => rowToCronConnection(row as Record<string, unknown>)),\n\n saveCronConnection: (connection) => {\n const existing = cronConnectionsTable.findOne({ where: { id: connection.id } });\n const row = cronConnectionToRow(connection);\n if (existing) {\n cronConnectionsTable.update(row, { where: { id: connection.id } });\n } else {\n cronConnectionsTable.insert(row);\n }\n },\n\n deleteCronConnection: (id) => cronConnectionsTable.deleteRows({ where: { id } }),\n\n close: () => store.close(),\n };\n};\n","import initSqlJs, { type SqlValue } from 'sql.js';\nimport { readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { dirname } from 'path';\nimport { createTable } from './table.js';\nimport type { StoreSchema, StoreOptions, TableSchema, RowFromSchema, Table } from './types.js';\n\n/**\n * A Store instance provides typed access to SQLite tables\n * and raw SQL queries. Data is persisted to a file on every mutation.\n */\nexport interface Store<S extends StoreSchema> {\n /** Get a typed Table handle by name. */\n table: <K extends keyof S & string>(name: K) => Table<RowFromSchema<S[K]>>;\n\n /** Execute a raw SQL query and return the results as typed objects. */\n query: <T = Record<string, unknown>>(sql: string, params?: SqlValue[]) => T[];\n\n /** Flush any pending changes and close the database connection. */\n close: () => void;\n}\n\n/**\n * Create a new SQLite-backed store.\n *\n * If the database file exists, it is loaded. Otherwise, a new empty\n * database is created and the directory structure is ensured.\n * All tables defined in the schema are created with CREATE TABLE IF NOT EXISTS.\n *\n * @param options - store configuration including file path and table schemas\n * @returns a Store instance with typed table access and raw query support\n */\nexport const createStore = async <S extends StoreSchema>(\n options: StoreOptions<S>,\n): Promise<Store<S>> => {\n const SQL = await initSqlJs();\n\n /* Try to load an existing database file, or create a new one. */\n let db;\n try {\n const buffer = readFileSync(options.path);\n db = new SQL.Database(buffer);\n } catch {\n mkdirSync(dirname(options.path), { recursive: true });\n db = new SQL.Database();\n }\n\n /** Persist the in-memory database to the file system. */\n const save = () => {\n const data = db.export();\n writeFileSync(options.path, Buffer.from(data));\n };\n\n /* Create table handles for each schema entry. */\n const tables = new Map<string, Table<RowFromSchema<TableSchema>>>();\n for (const [name, schema] of Object.entries(options.tables)) {\n tables.set(name, createTable(db, save, name, schema as TableSchema));\n }\n save();\n\n return {\n table<K extends keyof S & string>(name: K): Table<RowFromSchema<S[K]>> {\n const t = tables.get(name);\n if (!t) throw new Error(`Unknown table: ${name}`);\n return t as Table<RowFromSchema<S[K]>>;\n },\n\n query<T = Record<string, unknown>>(sql: string, params?: SqlValue[]): T[] {\n const result = params ? db.exec(sql, params) : db.exec(sql);\n if (result.length === 0) return [];\n const { columns, values } = result[0]!;\n return values.map((row) => {\n const obj: Record<string, unknown> = {};\n columns.forEach((col, i) => {\n obj[col] = row[i];\n });\n return obj as T;\n });\n },\n\n close(): void {\n save();\n db.close();\n },\n };\n};\n","import type { Database, SqlValue } from 'sql.js';\nimport type { TableSchema, RowFromSchema, WhereClause, Table } from './types.js';\n\n/**\n * Build a SQL WHERE clause and parameter array from a partial row object.\n * Only supports exact equality matching.\n *\n * @param where - key-value pairs to match against\n * @returns an object with the SQL clause string and positional parameter values\n */\nconst buildWhere = <R>(where: Partial<R>): { clause: string; values: SqlValue[] } => {\n const keys = Object.keys(where) as (keyof R & string)[];\n if (keys.length === 0) return { clause: '', values: [] };\n\n const conditions = keys.map((k) => `${k} = ?`);\n const values = keys.map((k) => where[k] as SqlValue);\n return { clause: `WHERE ${conditions.join(' AND ')}`, values };\n};\n\n/**\n * Convert raw SQL result arrays into typed row objects.\n *\n * @param columns - column name array from the query result\n * @param values - 2D array of row values from the query result\n * @returns array of typed row objects\n */\nconst rowsToObjects = <R>(columns: string[], values: SqlValue[][]): R[] =>\n values.map((row) => {\n const obj: Record<string, unknown> = {};\n columns.forEach((col, i) => {\n obj[col] = row[i];\n });\n return obj as R;\n });\n\n/**\n * Build a column definition SQL fragment from a ColumnDef.\n *\n * @param col - column name\n * @param def - column definition\n * @returns SQL fragment for use in CREATE TABLE (e.g. \"id TEXT PRIMARY KEY\")\n */\nconst buildColumnSql = (\n col: string,\n def: { type: string; primaryKey?: boolean; nullable?: boolean; default?: string | number | null; check?: string[] },\n): string => {\n let sql = `${col} ${def.type.toUpperCase()}`;\n if (def.primaryKey) sql += ' PRIMARY KEY';\n if (!def.nullable && !def.primaryKey) sql += ' NOT NULL';\n if (def.default !== undefined) {\n sql += ` DEFAULT ${typeof def.default === 'string' ? `'${def.default}'` : def.default}`;\n }\n if (def.check) {\n sql += ` CHECK(${col} IN (${def.check.map((v) => `'${v}'`).join(', ')}))`;\n }\n return sql;\n};\n\n/**\n * Create a typed Table interface for a given database table.\n * Handles table creation (CREATE TABLE IF NOT EXISTS) and provides\n * insert, findMany, findOne, update, delete, and all operations.\n *\n * @param db - the sql.js Database instance\n * @param saveFn - callback to persist the database to disk after mutations\n * @param name - the table name\n * @param schema - the column definitions for this table\n * @returns a Table object with typed CRUD methods\n */\nexport const createTable = <T extends TableSchema>(\n db: Database,\n saveFn: () => void,\n name: string,\n schema: T,\n): Table<RowFromSchema<T>> => {\n type R = RowFromSchema<T>;\n\n /* Create the table if it does not already exist. */\n const columns = Object.entries(schema).map(([col, def]) => buildColumnSql(col, def));\n db.run(`CREATE TABLE IF NOT EXISTS ${name} (${columns.join(', ')})`);\n\n return {\n /** Insert a new row into the table. */\n insert(row: R): void {\n const keys = Object.keys(row as Record<string, unknown>);\n const placeholders = keys.map(() => '?').join(', ');\n const values = keys.map((k) => (row as Record<string, unknown>)[k] as SqlValue);\n db.run(`INSERT INTO ${name} (${keys.join(', ')}) VALUES (${placeholders})`, values);\n saveFn();\n },\n\n /** Find rows matching an optional WHERE clause. Returns all rows if no clause given. */\n findMany(clause?: WhereClause<R>): R[] {\n let result;\n if (clause) {\n const { clause: where, values } = buildWhere(clause.where);\n result = db.exec(`SELECT * FROM ${name} ${where}`, values);\n } else {\n result = db.exec(`SELECT * FROM ${name}`);\n }\n if (result.length === 0) return [];\n return rowsToObjects<R>(result[0]!.columns, result[0]!.values);\n },\n\n /** Find a single row matching the WHERE clause. Returns undefined if not found. */\n findOne(clause: WhereClause<R>): R | undefined {\n const { clause: where, values } = buildWhere(clause.where);\n const result = db.exec(`SELECT * FROM ${name} ${where} LIMIT 1`, values);\n if (result.length === 0 || result[0]!.values.length === 0) return undefined;\n return rowsToObjects<R>(result[0]!.columns, result[0]!.values)[0];\n },\n\n /** Update rows matching the WHERE clause. Returns the number of modified rows. */\n update(values: Partial<R>, clause: WhereClause<R>): number {\n const setKeys = Object.keys(values as Record<string, unknown>);\n const setClause = setKeys.map((k) => `${k} = ?`).join(', ');\n const setValues = setKeys.map((k) => (values as Record<string, unknown>)[k] as SqlValue);\n const { clause: where, values: whereValues } = buildWhere(clause.where);\n db.run(`UPDATE ${name} SET ${setClause} ${where}`, [...setValues, ...whereValues]);\n /* Capture modified count before save, as db.export() may reset it. */\n const modified = db.getRowsModified();\n saveFn();\n return modified;\n },\n\n /** Delete rows matching the WHERE clause. Returns the number of deleted rows. */\n deleteRows(clause: WhereClause<R>): number {\n const { clause: where, values } = buildWhere(clause.where);\n db.run(`DELETE FROM ${name} ${where}`, values);\n /* Capture modified count before save, as db.export() may reset it. */\n const modified = db.getRowsModified();\n saveFn();\n return modified;\n },\n\n /** Return every row in the table. */\n all(): R[] {\n const result = db.exec(`SELECT * FROM ${name}`);\n if (result.length === 0) return [];\n return rowsToObjects<R>(result[0]!.columns, result[0]!.values);\n },\n };\n};\n","import type { StoreSchema } from '@repo/store';\n\n/**\n * SQLite table schemas for the daemon's global config database.\n *\n * Stored at ~/.kindflow/config.db. Contains ONLY global daemon settings\n * and helper process configs. Agent config is filesystem-driven (config.json).\n * Credentials and secrets are stored here (outside the repo).\n */\nexport const configSchema = {\n /**\n * Singleton helper process configurations.\n * The `kind` column is unique — only one helper per kind.\n */\n helpers: {\n id: { type: 'text' as const, primaryKey: true },\n kind: { type: 'text' as const },\n name: { type: 'text' as const },\n config: { type: 'text' as const },\n auto_start: { type: 'integer' as const, default: 0 },\n created_at: { type: 'text' as const },\n updated_at: { type: 'text' as const },\n },\n\n /**\n * Global S3 bucket profiles. Shared across all agents.\n * Credentials are referenced by AWS profile name (stored in ~/.aws/credentials).\n */\n s3_profiles: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n bucket: { type: 'text' as const },\n region: { type: 'text' as const },\n aws_profile: { type: 'text' as const, nullable: true },\n verified: { type: 'integer' as const, default: 0 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Global key-value settings for the daemon (ports, etc.).\n */\n settings: {\n key: { type: 'text' as const, primaryKey: true },\n value: { type: 'text' as const },\n },\n\n /**\n * Gmail accounts connected via OAuth.\n * Refresh tokens are AES-256-CBC encrypted.\n */\n email_accounts: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n email: { type: 'text' as const },\n refresh_token: { type: 'text' as const },\n created_at: { type: 'text' as const },\n updated_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: email account -> target agent.\n * When a new email arrives on the account, it is forwarded\n * to the target agent via IPC prompt.\n */\n email_connections: {\n id: { type: 'text' as const, primaryKey: true },\n account_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n command: { type: 'text' as const },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n updated_at: { type: 'text' as const },\n },\n\n /**\n * Global database connection profiles. Shared across all agents.\n * Passwords are AES-256-CBC encrypted.\n */\n database_profiles: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n db_type: { type: 'text' as const },\n host: { type: 'text' as const, nullable: true },\n port: { type: 'integer' as const, nullable: true },\n database: { type: 'text' as const },\n username: { type: 'text' as const, nullable: true },\n password: { type: 'text' as const, nullable: true },\n ssl_mode: { type: 'text' as const, nullable: true },\n verified: { type: 'integer' as const, default: 0 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * OAuth client credentials (one row per provider, e.g. \"gmail\").\n * Client secret is AES-256-CBC encrypted.\n */\n oauth_credentials: {\n key: { type: 'text' as const, primaryKey: true },\n client_id: { type: 'text' as const },\n client_secret: { type: 'text' as const },\n },\n\n /**\n * Telegram bot profiles. Bot tokens are AES-256-CBC encrypted.\n * Each bot can be connected to multiple agents via telegram_connections.\n */\n telegram_bots: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n token: { type: 'text' as const },\n bot_username: { type: 'text' as const },\n polling: { type: 'integer' as const, default: 1 },\n webhook_url: { type: 'text' as const, nullable: true },\n verified: { type: 'integer' as const, default: 0 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: Telegram bot + chat -> target agent.\n * When a message arrives on the bot matching the chat_id,\n * it is forwarded to the target agent via IPC prompt.\n */\n telegram_connections: {\n id: { type: 'text' as const, primaryKey: true },\n bot_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n chat_id: { type: 'text' as const },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n /**\n * Global HTTP endpoints. Each endpoint exposes a unique URL path\n * for external systems to trigger agents via POST /api/trigger/:path.\n */\n http_endpoints: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n path: { type: 'text' as const },\n api_key: { type: 'text' as const, nullable: true },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: HTTP endpoint -> target agent.\n * When a POST hits the endpoint, the request is forwarded\n * to the target agent via IPC prompt.\n */\n http_connections: {\n id: { type: 'text' as const, primaryKey: true },\n endpoint_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n command: { type: 'text' as const, nullable: true },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Global cron jobs. Each job fires on a schedule and routes\n * to one or more agents via cron_connections.\n */\n cron_jobs: {\n id: { type: 'text' as const, primaryKey: true },\n name: { type: 'text' as const },\n schedule: { type: 'text' as const },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: cron job -> target agent.\n * When a cron job fires, each enabled connection triggers\n * the target agent with the configured command (or the job\n * name as a free-form prompt if command is null).\n */\n cron_connections: {\n id: { type: 'text' as const, primaryKey: true },\n cron_job_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n command: { type: 'text' as const, nullable: true },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: S3 profile -> target agent.\n * Passive capability — no command, just a purpose description.\n * Auto-generates a capability file in the agent directory.\n */\n s3_connections: {\n id: { type: 'text' as const, primaryKey: true },\n profile_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n purpose: { type: 'text' as const },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n\n /**\n * Routing rules: database profile -> target agent.\n * Passive capability — no command, just a purpose description.\n * Auto-generates a capability file in the agent directory.\n */\n database_connections: {\n id: { type: 'text' as const, primaryKey: true },\n profile_id: { type: 'text' as const },\n target_agent: { type: 'text' as const },\n purpose: { type: 'text' as const },\n enabled: { type: 'integer' as const, default: 1 },\n created_at: { type: 'text' as const },\n },\n} satisfies StoreSchema;\n\n/** Type alias for the config store schema. */\nexport type ConfigSchema = typeof configSchema;\n","import { fork, type ChildProcess } from 'child_process';\nimport { resolve, delimiter } from 'path';\nimport type { ManagedProcess, ProcessStatus, AgentConfig, HelperConfig, ChildToDaemon, DaemonToChild } from '@repo/types';\n\n/**\n * Options for creating the process manager.\n */\nexport interface ProcessManagerOptions {\n /** The IPC hub server ID that children connect to. */\n hubId: string;\n\n /**\n * Directory where runner entry scripts are located.\n * In dev mode: the monorepo `packages/` directory.\n * In CLI mode: the `dist/` directory of the published package.\n */\n runnersDir: string;\n\n /**\n * Whether the daemon is running in dev mode (monorepo with tsx).\n * Determines whether to add tsx loader and how to resolve runner paths.\n */\n isDev: boolean;\n\n /** Optional lifecycle event callbacks. */\n callbacks?: ProcessManagerCallbacks;\n}\n\n/** Maximum number of automatic restarts before marking a process as crashed. */\nconst MAX_RESTARTS = 10;\n\n/** Base delay (ms) for exponential backoff restarts. */\nconst BASE_RESTART_DELAY = 1000;\n\n/** Maximum delay (ms) for restart backoff. */\nconst MAX_RESTART_DELAY = 60_000;\n\n/** Interval (ms) between health check pings. */\nconst HEALTH_CHECK_INTERVAL = 30_000;\n\n/* Health check timeout is enforced by the awaitingPong flag — if pong\n hasn't arrived by the next interval tick, the process is killed. */\n\n/**\n * Callbacks for process lifecycle events, used by the daemon\n * to relay information to the web UI via WebSocket.\n */\nexport interface ProcessManagerCallbacks {\n /** Called when a managed process changes status. */\n onStatusChange?: (id: string, status: ProcessStatus, pid?: number) => void;\n\n /** Called when a child process writes to stdout or stderr. */\n onLog?: (id: string, stream: 'stdout' | 'stderr', data: string) => void;\n\n /** Called when an agent forwards an SDK message. */\n onSdkMessage?: (id: string, message: unknown) => void;\n}\n\n/**\n * Internal record tracking a managed child process.\n */\ninterface ProcessRecord {\n /** The public-facing process metadata. */\n info: ManagedProcess;\n\n /** The Node.js ChildProcess handle. */\n child?: ChildProcess;\n\n /** Configuration used to start the process. */\n config: AgentConfig | HelperConfig;\n\n /** Health check interval timer. */\n healthInterval?: ReturnType<typeof setInterval>;\n\n /** Whether a pong response is pending. */\n awaitingPong: boolean;\n}\n\n/**\n * Manages the lifecycle of child processes (agents and helpers).\n * Handles forking, health checking, automatic restarts, and clean shutdown.\n */\nexport interface ProcessManager {\n /** Start a process with the given configuration. */\n start: (id: string, type: 'agent' | 'helper', config: AgentConfig | HelperConfig) => void;\n\n /** Stop a running process gracefully. */\n stop: (id: string) => Promise<void>;\n\n /** Restart a process (stop then start). */\n restart: (id: string) => Promise<void>;\n\n /** Get the current state of all managed processes. */\n getAll: () => ManagedProcess[];\n\n /** Get a single process by ID. */\n get: (id: string) => ManagedProcess | undefined;\n\n /** Send a control plane message to a specific child process. */\n sendToChild: (id: string, msg: DaemonToChild) => void;\n\n /** Gracefully shut down all processes. */\n shutdownAll: () => Promise<void>;\n}\n\n/**\n * Resolve the entry script path for a process type.\n * In dev mode, resolves to TypeScript source in the monorepo packages.\n * In CLI mode, resolves to compiled .mjs files in the dist directory.\n *\n * @param runnersDir - absolute path to the runners directory\n * @param isDev - whether running in dev mode\n * @param type - the process type\n * @param helperKind - for helpers, which kind (e.g. \"cron\")\n * @returns absolute path to the entry script\n */\nconst resolveEntryScript = (runnersDir: string, isDev: boolean, type: 'agent' | 'helper', helperKind?: string): string => {\n const runnerMap: Record<string, { dev: string; cli: string }> = {\n agent: { dev: 'agent-runner/src/entry.ts', cli: 'agent-runner.mjs' },\n cron: { dev: 'cron-runner/src/entry.ts', cli: 'cron-runner.mjs' },\n 'email-imap': { dev: 'imap-runner/src/entry.ts', cli: 'imap-runner.mjs' },\n telegram: { dev: 'telegram-runner/src/entry.ts', cli: 'telegram-runner.mjs' },\n };\n\n const key = type === 'agent' ? 'agent' : helperKind;\n const entry = key ? runnerMap[key] : undefined;\n if (!entry) throw new Error(`Unknown helper kind: ${helperKind}`);\n\n return resolve(runnersDir, isDev ? entry.dev : entry.cli);\n};\n\n/**\n * Create a ProcessManager that forks and supervises child processes.\n *\n * @param options - process manager configuration including hub ID and runners directory\n * @returns a ProcessManager instance\n */\nexport const createProcessManager = (options: ProcessManagerOptions): ProcessManager => {\n const { hubId, runnersDir, isDev, callbacks } = options;\n const processes = new Map<string, ProcessRecord>();\n\n /**\n * Update a process's status and notify callbacks.\n */\n const setStatus = (id: string, status: ProcessStatus, pid?: number): void => {\n const record = processes.get(id);\n if (!record) return;\n record.info.status = status;\n if (pid !== undefined) record.info.pid = pid;\n callbacks?.onStatusChange?.(id, status, pid);\n };\n\n /**\n * Calculate restart delay with exponential backoff.\n */\n const restartDelay = (restartCount: number): number =>\n Math.min(BASE_RESTART_DELAY * 2 ** restartCount, MAX_RESTART_DELAY);\n\n /**\n * Start health checking for a process.\n */\n const startHealthCheck = (id: string): void => {\n const record = processes.get(id);\n if (!record?.child) return;\n\n record.healthInterval = setInterval(() => {\n if (record.awaitingPong) {\n /* No pong received — process is unresponsive. */\n console.log(`[process-manager] ${id} failed health check, restarting...`);\n record.child?.kill('SIGTERM');\n return;\n }\n record.awaitingPong = true;\n record.child?.send({ type: 'ping' } satisfies DaemonToChild);\n }, HEALTH_CHECK_INTERVAL);\n };\n\n /**\n * Stop health checking for a process.\n */\n const stopHealthCheck = (id: string): void => {\n const record = processes.get(id);\n if (record?.healthInterval) {\n clearInterval(record.healthInterval);\n record.healthInterval = undefined;\n }\n };\n\n /**\n * Fork a child process and wire up event handlers.\n */\n const forkProcess = (id: string, record: ProcessRecord): void => {\n const helperKind = record.info.type === 'helper' ? record.info.helperKind : undefined;\n const entryScript = resolveEntryScript(runnersDir, isDev, record.info.type, helperKind);\n\n setStatus(id, 'starting');\n\n /**\n * In dev mode, use tsx loader for TypeScript source. In CLI mode, entry\n * scripts are pre-compiled .mjs — no loader needed.\n * Set NODE_PATH so agent scripts can resolve `kindflow/s3` etc. from the\n * globally installed package.\n */\n const execArgv = isDev ? ['--import', 'tsx'] : [];\n const globalNodeModules = isDev ? '' : resolve(runnersDir, '..');\n const nodePath = [process.env['NODE_PATH'], globalNodeModules].filter(Boolean).join(delimiter);\n\n const child = fork(entryScript, [], {\n execArgv,\n env: {\n ...process.env,\n KINDFLOW_PROCESS_ID: id,\n KINDFLOW_HUB_ID: hubId,\n NODE_PATH: nodePath,\n },\n stdio: ['pipe', 'pipe', 'pipe', 'ipc'],\n });\n\n record.child = child;\n record.info.pid = child.pid;\n record.info.lastStartedAt = new Date().toISOString();\n\n /* Capture stdout. */\n child.stdout?.on('data', (data: Buffer) => {\n callbacks?.onLog?.(id, 'stdout', data.toString());\n });\n\n /* Capture stderr. */\n child.stderr?.on('data', (data: Buffer) => {\n callbacks?.onLog?.(id, 'stderr', data.toString());\n });\n\n /* Handle control plane messages from child. */\n child.on('message', (msg: ChildToDaemon) => {\n switch (msg.type) {\n case 'ready':\n setStatus(id, 'running', child.pid);\n startHealthCheck(id);\n console.log(`[process-manager] ${id} is ready (PID ${child.pid})`);\n break;\n case 'pong':\n record.awaitingPong = false;\n break;\n case 'agent:sdk-message':\n callbacks?.onSdkMessage?.(id, msg.message);\n break;\n case 'log':\n callbacks?.onLog?.(id, 'stdout', `[${msg.level}] ${msg.message}`);\n break;\n }\n });\n\n /* Handle process exit. */\n child.on('exit', (code) => {\n stopHealthCheck(id);\n record.child = undefined;\n record.info.pid = undefined;\n record.info.lastStoppedAt = new Date().toISOString();\n\n /* If we intentionally stopped it, don't restart. */\n if (record.info.status === 'stopping' || record.info.status === 'stopped') {\n setStatus(id, 'stopped');\n return;\n }\n\n /* Unexpected exit — attempt restart with backoff. */\n record.info.restartCount++;\n if (record.info.restartCount > MAX_RESTARTS) {\n console.log(`[process-manager] ${id} crashed too many times (${MAX_RESTARTS}), giving up`);\n setStatus(id, 'crashed');\n return;\n }\n\n const delay = restartDelay(record.info.restartCount);\n console.log(`[process-manager] ${id} exited (code ${code}), restarting in ${delay}ms (attempt ${record.info.restartCount}/${MAX_RESTARTS})`);\n setTimeout(() => forkProcess(id, record), delay);\n });\n\n /* Send config to the child. */\n child.send({ type: 'config', config: record.config } satisfies DaemonToChild);\n };\n\n return {\n start(id, type, config) {\n if (processes.has(id)) {\n console.log(`[process-manager] ${id} already exists, stopping first`);\n this.stop(id);\n }\n\n const record: ProcessRecord = {\n info: {\n id,\n type,\n helperKind: type === 'helper' ? (config as HelperConfig).kind : undefined,\n status: 'stopped',\n restartCount: 0,\n },\n config,\n awaitingPong: false,\n };\n\n processes.set(id, record);\n forkProcess(id, record);\n },\n\n async stop(id) {\n const record = processes.get(id);\n if (!record?.child) return;\n\n setStatus(id, 'stopping');\n stopHealthCheck(id);\n\n record.child.send({ type: 'stop' } satisfies DaemonToChild);\n\n /* Wait up to 5s for graceful exit, then force kill. */\n await new Promise<void>((resolve) => {\n const timeout = setTimeout(() => {\n record.child?.kill('SIGKILL');\n resolve();\n }, 5000);\n\n record.child?.on('exit', () => {\n clearTimeout(timeout);\n resolve();\n });\n });\n\n setStatus(id, 'stopped');\n },\n\n async restart(id) {\n const record = processes.get(id);\n if (!record) return;\n\n await this.stop(id);\n record.info.restartCount = 0;\n forkProcess(id, record);\n },\n\n getAll: () => [...processes.values()].map((r) => ({ ...r.info })),\n\n get: (id) => {\n const record = processes.get(id);\n return record ? { ...record.info } : undefined;\n },\n\n sendToChild(id, msg) {\n const record = processes.get(id);\n record?.child?.send(msg);\n },\n\n async shutdownAll() {\n console.log(`[process-manager] Shutting down ${processes.size} process(es)...`);\n const stopPromises = [...processes.keys()].map((id) => this.stop(id));\n await Promise.all(stopPromises);\n console.log('[process-manager] All processes stopped');\n },\n };\n};\n","import { execSync } from 'child_process';\nimport * as pty from 'node-pty';\nimport { listSessions } from '@anthropic-ai/claude-agent-sdk';\n\n/**\n * Status of a terminal session.\n */\nexport type TerminalStatus = 'running' | 'closed';\n\n/**\n * A managed terminal session for the master agent.\n */\nexport interface TerminalSession {\n /** Unique session identifier. */\n id: string;\n\n /** The agent being configured in this session. */\n agentId: string;\n\n /** Current session status. */\n status: TerminalStatus;\n\n /** Timestamp of last user input (for idle timeout). */\n lastActivity: Date;\n}\n\n/**\n * Callbacks for terminal session events.\n */\nexport interface TerminalManagerCallbacks {\n /** Called when the PTY produces output. */\n onOutput?: (sessionId: string, data: string) => void;\n\n /** Called when a terminal session closes (exit or idle timeout). */\n onClose?: (sessionId: string) => void;\n}\n\n/**\n * Options for creating the terminal manager.\n */\nexport interface TerminalManagerOptions {\n /** Idle timeout in milliseconds before killing the session. Defaults to 10 minutes. */\n idleTimeoutMs?: number;\n\n /** Event callbacks. */\n callbacks?: TerminalManagerCallbacks;\n}\n\n/**\n * Interface for managing master agent terminal sessions.\n */\nexport interface TerminalManager {\n /** Open a new terminal session for an agent. Spawns Claude Code via PTY. */\n open: (sessionId: string, agentId: string, agentCwd: string) => Promise<TerminalSession>;\n\n /** Send keyboard input to a terminal session. */\n write: (sessionId: string, data: string) => void;\n\n /** Resize a terminal session. */\n resize: (sessionId: string, cols: number, rows: number) => void;\n\n /** Signal that the client is ready to receive output. Flushes any buffered PTY data. */\n flush: (sessionId: string) => void;\n\n /** Close a terminal session and kill the PTY process. */\n close: (sessionId: string) => void;\n\n /** Get a session by ID. */\n get: (sessionId: string) => TerminalSession | undefined;\n\n /** Get a session by agent ID (one session per agent). */\n getByAgent: (agentId: string) => TerminalSession | undefined;\n\n /** Close all active sessions. */\n closeAll: () => void;\n}\n\n/**\n * Internal record for a PTY-backed terminal session.\n */\ninterface PtySession {\n /** Public session metadata. */\n info: TerminalSession;\n\n /** The node-pty process instance. */\n ptyProcess: pty.IPty;\n\n /** Idle timeout timer handle. */\n idleTimer?: ReturnType<typeof setTimeout>;\n\n /**\n * Buffer for early PTY output produced before the WebSocket client connects.\n * Flushed on the first write() call (which signals the client is ready).\n */\n outputBuffer: string[];\n\n /** Whether the buffer has been flushed (client is connected and receiving). */\n flushed: boolean;\n}\n\n/**\n * Resolve the full path to the claude CLI binary.\n * Uses `which` to find it on the system PATH.\n *\n * @returns absolute path to the claude binary, or 'claude' as fallback\n */\nexport const resolveClaudePath = (): string => {\n try {\n return execSync('which claude', { encoding: 'utf-8' }).trim();\n } catch {\n return 'claude';\n }\n};\n\n/**\n * Create a real TerminalManager that spawns Claude Code via node-pty.\n *\n * Each session runs `claude` as a pseudo-terminal process. PTY stdout is\n * forwarded to the web UI via the onOutput callback. Keyboard input from\n * the web UI is written to PTY stdin. Sessions auto-close after idle timeout.\n *\n * @param options - terminal manager configuration\n * @returns a TerminalManager instance backed by real PTY processes\n */\nexport const createTerminalManager = (options: TerminalManagerOptions): TerminalManager => {\n const sessions = new Map<string, PtySession>();\n const idleTimeout = options.idleTimeoutMs ?? 10 * 60 * 1000;\n\n /** Reset the idle timer for a session. */\n const resetIdleTimer = (sessionId: string): void => {\n const session = sessions.get(sessionId);\n if (!session) return;\n\n if (session.idleTimer) clearTimeout(session.idleTimer);\n\n session.idleTimer = setTimeout(() => {\n console.log(`[terminal] Session ${sessionId} idle timeout, closing`);\n manager.close(sessionId);\n }, idleTimeout);\n };\n\n const manager: TerminalManager = {\n async open(sessionId, agentId, agentCwd) {\n /* Close existing session for this agent if any. */\n const existing = this.getByAgent(agentId);\n if (existing) this.close(existing.id);\n\n /* Check if a previous Claude Code session exists for this directory. */\n const previousSessions = await listSessions({ dir: agentCwd });\n const hasPreviousSession = previousSessions.length > 0;\n\n /* Resolve claude path and build the shell command. */\n const claudePath = resolveClaudePath();\n const shell = process.env['SHELL'] ?? '/bin/bash';\n const continueFlag = hasPreviousSession ? \" '--continue'\" : '';\n const fullCommand = `'${claudePath}' '--permission-mode' 'acceptEdits'${continueFlag}`;\n\n console.log(`[terminal] ${hasPreviousSession ? 'Resuming' : 'Starting new'} session for ${agentId} (cwd: ${agentCwd})`);\n\n const ptyProcess = pty.spawn(shell, ['-l', '-c', fullCommand], {\n name: 'xterm-256color',\n cols: 120,\n rows: 30,\n cwd: agentCwd,\n env: { ...process.env } as Record<string, string>,\n });\n\n const session: PtySession = {\n info: {\n id: sessionId,\n agentId,\n status: 'running',\n lastActivity: new Date(),\n },\n ptyProcess,\n outputBuffer: [],\n flushed: false,\n };\n\n sessions.set(sessionId, session);\n\n /**\n * On fresh sessions (no previous conversation), auto-send \"hello\" once\n * the TUI is ready. On resumed sessions, skip — the conversation is already there.\n */\n let helloSent = hasPreviousSession;\n\n /* Forward PTY output to callback, or buffer if client hasn't connected yet. */\n ptyProcess.onData((data: string) => {\n session.info.lastActivity = new Date();\n\n /* Detect TUI ready and send hello on fresh sessions only. */\n if (!helloSent && data.includes('accept edits')) {\n helloSent = true;\n setTimeout(() => {\n if (session.info.status === 'running') {\n ptyProcess.write('hello\\r');\n }\n }, 500);\n }\n\n if (session.flushed) {\n options.callbacks?.onOutput?.(sessionId, data);\n } else {\n session.outputBuffer.push(data);\n }\n });\n\n /* Handle PTY exit (claude process terminates). */\n ptyProcess.onExit(({ exitCode }) => {\n console.log(`[terminal] PTY exited for session ${sessionId} (code ${exitCode})`);\n manager.close(sessionId);\n });\n\n resetIdleTimer(sessionId);\n\n console.log(`[terminal] Opened PTY session ${sessionId} for agent ${agentId} (cwd: ${agentCwd})`);\n return session.info;\n },\n\n flush(sessionId) {\n const session = sessions.get(sessionId);\n if (!session || session.flushed) return;\n\n session.flushed = true;\n console.log(`[terminal] Flushing ${session.outputBuffer.length} buffered chunks for session ${sessionId}`);\n for (const buffered of session.outputBuffer) {\n options.callbacks?.onOutput?.(sessionId, buffered);\n }\n session.outputBuffer = [];\n },\n\n write(sessionId, data) {\n const session = sessions.get(sessionId);\n if (!session || session.info.status !== 'running') return;\n\n /* Auto-flush if not already flushed. */\n if (!session.flushed) this.flush(sessionId);\n\n session.info.lastActivity = new Date();\n resetIdleTimer(sessionId);\n session.ptyProcess.write(data);\n },\n\n resize(sessionId, cols, rows) {\n const session = sessions.get(sessionId);\n if (!session || session.info.status !== 'running') return;\n\n session.ptyProcess.resize(cols, rows);\n },\n\n close(sessionId) {\n const session = sessions.get(sessionId);\n if (!session) return;\n\n session.info.status = 'closed';\n\n /* Clear idle timer. */\n if (session.idleTimer) clearTimeout(session.idleTimer);\n\n /* Kill the PTY process if still running. */\n try {\n session.ptyProcess.kill();\n } catch {\n /* Process may have already exited. */\n }\n\n sessions.delete(sessionId);\n options.callbacks?.onClose?.(sessionId);\n console.log(`[terminal] Closed session ${sessionId}`);\n },\n\n get(sessionId) {\n return sessions.get(sessionId)?.info;\n },\n\n getByAgent(agentId) {\n for (const session of sessions.values()) {\n if (session.info.agentId === agentId) return session.info;\n }\n return undefined;\n },\n\n closeAll() {\n for (const sessionId of [...sessions.keys()]) {\n this.close(sessionId);\n }\n },\n };\n\n return manager;\n};\n","import { fork, type ChildProcess } from 'child_process';\nimport { resolve } from 'path';\nimport { existsSync } from 'fs';\n\n/**\n * Options for the managed web server.\n */\nexport interface WebServerOptions {\n /** Port to run the web server on. Defaults to 7001. */\n port: number;\n\n /**\n * Absolute path to the web app directory.\n * In CLI mode: the standalone build directory containing server.js.\n * In dev mode: the Next.js app directory (apps/web).\n */\n webAppDir: string;\n}\n\n/**\n * A managed web server process.\n */\nexport interface WebServer {\n /** Start the web server. */\n start: () => Promise<void>;\n\n /** Stop the web server. */\n stop: () => void;\n\n /** Whether the server is currently running. */\n isRunning: () => boolean;\n}\n\n/**\n * Create a managed web server that serves the Next.js web UI.\n *\n * In CLI mode (standalone build exists): forks the self-contained server.js.\n * In dev mode (no standalone build): spawns `npx next start` as a child process.\n *\n * @param options - web server configuration\n * @returns a WebServer instance\n */\nexport const createWebServer = (options: WebServerOptions): WebServer => {\n let child: ChildProcess | null = null;\n\n /**\n * Locate the standalone server.js.\n *\n * Next.js standalone output preserves the monorepo directory structure,\n * so the server.js ends up at .next/standalone/apps/web/server.js in a\n * monorepo, or .next/standalone/server.js in a flat project.\n *\n * Checked locations:\n * 1. webAppDir/standalone/server.js (CLI mode, pre-copied by build)\n * 2. webAppDir/.next/standalone/server.js (flat Next.js project)\n * 3. webAppDir/.next/standalone/apps/web/server.js (monorepo layout)\n */\n const candidates = [\n resolve(options.webAppDir, 'standalone', 'server.js'),\n resolve(options.webAppDir, '.next', 'standalone', 'server.js'),\n resolve(options.webAppDir, '.next', 'standalone', 'apps', 'web', 'server.js'),\n ];\n const standaloneServer = candidates.find((p) => existsSync(p));\n\n return {\n start() {\n return new Promise<void>((resolvePromise, reject) => {\n if (!standaloneServer) {\n reject(new Error(\n `No standalone server.js found. Run \"npm run build --workspace=apps/web\" first.\\nLooked in:\\n ${candidates.join('\\n ')}`,\n ));\n return;\n }\n\n child = fork(standaloneServer, [], {\n env: {\n ...process.env,\n PORT: String(options.port),\n HOSTNAME: '0.0.0.0',\n },\n stdio: ['ignore', 'pipe', 'pipe', 'ipc'],\n });\n\n let started = false;\n\n /** Resolve once we see the \"Ready\" message from Next.js. */\n child.stdout?.on('data', (data: Buffer) => {\n const line = data.toString();\n process.stdout.write(`[web] ${line}`);\n if (!started && (line.includes('Ready') || line.includes('Listening'))) {\n started = true;\n resolvePromise();\n }\n });\n\n child.stderr?.on('data', (data: Buffer) => {\n process.stderr.write(`[web] ${data.toString()}`);\n });\n\n child.on('error', (err) => {\n console.error(`[web] Failed to start: ${err.message}`);\n if (!started) reject(err);\n });\n\n child.on('exit', (code) => {\n console.log(`[web] Process exited (code ${code})`);\n child = null;\n if (!started) reject(new Error(`Web server exited with code ${code}`));\n });\n\n /** Timeout — if the server doesn't say \"Ready\" in 30s, resolve anyway. */\n setTimeout(() => {\n if (!started) {\n started = true;\n console.log('[web] Startup timeout — assuming ready');\n resolvePromise();\n }\n }, 30_000);\n });\n },\n\n stop() {\n if (child) {\n console.log('[web] Stopping web server...');\n child.kill('SIGTERM');\n\n /** Force kill after 5 seconds if still running. */\n setTimeout(() => {\n if (child) {\n child.kill('SIGKILL');\n child = null;\n }\n }, 5_000);\n }\n },\n\n isRunning() {\n return child !== null;\n },\n };\n};\n","import { createServer, type IncomingMessage, type ServerResponse } from 'http';\nimport { WebSocketServer, type WebSocket } from 'ws';\nimport type { WsEvent, WsCommand } from '@repo/types';\n\n/**\n * Route handler function signature.\n * Receives the parsed request and sends a JSON response.\n */\nexport type RouteHandler = (\n req: IncomingMessage,\n res: ServerResponse,\n params: Record<string, string>,\n body: unknown,\n) => Promise<void>;\n\n/**\n * A registered route with method, path pattern, and handler.\n */\ninterface Route {\n method: string;\n pattern: RegExp;\n paramNames: string[];\n handler: RouteHandler;\n}\n\n/**\n * Callback for WebSocket commands from the web UI.\n */\nexport type WsCommandHandler = (ws: WebSocket, command: WsCommand) => void;\n\n/**\n * The HTTP + WebSocket API server for the daemon.\n */\nexport interface ApiServer {\n /** Start listening on the given port. */\n listen: (port: number) => Promise<void>;\n\n /** Register a route handler. */\n route: (method: string, path: string, handler: RouteHandler) => void;\n\n /** Set the handler for WebSocket commands. */\n onWsCommand: (handler: WsCommandHandler) => void;\n\n /** Broadcast a WebSocket event to all connected clients. */\n broadcast: (event: WsEvent) => void;\n\n /** Stop the server. */\n close: () => Promise<void>;\n}\n\n/**\n * Parse a route path pattern (e.g. \"/api/agents/:id\") into a regex\n * and extract parameter names.\n *\n * @param path - the route path pattern\n * @returns regex pattern and parameter name list\n */\nconst parsePath = (path: string): { pattern: RegExp; paramNames: string[] } => {\n const paramNames: string[] = [];\n const regexStr = path.replace(/:([^/]+)/g, (_, name) => {\n paramNames.push(name);\n return '([^/]+)';\n });\n return { pattern: new RegExp(`^${regexStr}$`), paramNames };\n};\n\n/**\n * Read the request body as a parsed JSON object.\n *\n * @param req - the incoming HTTP request\n * @returns the parsed body, or null if empty/invalid\n */\nconst readBody = (req: IncomingMessage): Promise<unknown> =>\n new Promise((resolve) => {\n const chunks: Buffer[] = [];\n req.on('data', (chunk: Buffer) => chunks.push(chunk));\n req.on('end', () => {\n const raw = Buffer.concat(chunks).toString();\n if (!raw) return resolve(null);\n try {\n resolve(JSON.parse(raw));\n } catch {\n resolve(null);\n }\n });\n });\n\n/**\n * Send a JSON response with the given status code and body.\n *\n * @param res - the server response object\n * @param statusCode - HTTP status code\n * @param body - response body (will be JSON-serialized)\n */\nexport const sendJson = (res: ServerResponse, statusCode: number, body: unknown): void => {\n const json = JSON.stringify(body);\n res.writeHead(statusCode, {\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type, Authorization',\n });\n res.end(json);\n};\n\n/**\n * Create an HTTP + WebSocket API server.\n *\n * Routes are matched in registration order. The server handles CORS\n * preflight requests automatically. WebSocket connections are accepted\n * at any path (typically /ws).\n *\n * @returns an ApiServer instance\n */\nexport const createApiServer = (): ApiServer => {\n const routes: Route[] = [];\n const wsClients = new Set<WebSocket>();\n let wsCommandHandler: WsCommandHandler | null = null;\n\n const httpServer = createServer(async (req, res) => {\n /* Handle CORS preflight. */\n if (req.method === 'OPTIONS') {\n res.writeHead(204, {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type, Authorization',\n });\n res.end();\n return;\n }\n\n const url = req.url ?? '/';\n const [path] = url.split('?');\n const method = req.method ?? 'GET';\n\n /* Find matching route. */\n for (const route of routes) {\n if (route.method !== method) continue;\n const match = path?.match(route.pattern);\n if (!match) continue;\n\n /* Extract path parameters. */\n const params: Record<string, string> = {};\n route.paramNames.forEach((name, i) => {\n params[name] = match[i + 1] ?? '';\n });\n\n const body = await readBody(req);\n\n try {\n await route.handler(req, res, params, body);\n } catch (err) {\n console.error(`[api] Error handling ${method} ${path}:`, err);\n sendJson(res, 500, { error: 'INTERNAL_ERROR', message: 'Internal server error', statusCode: 500 });\n }\n return;\n }\n\n /* No matching route. */\n sendJson(res, 404, { error: 'NOT_FOUND', message: `No route for ${method} ${path}`, statusCode: 404 });\n });\n\n /* WebSocket server attached to the HTTP server. */\n const wss = new WebSocketServer({ server: httpServer });\n\n wss.on('connection', (ws) => {\n wsClients.add(ws);\n\n ws.on('message', (data) => {\n try {\n const command = JSON.parse(data.toString()) as WsCommand;\n wsCommandHandler?.(ws, command);\n } catch {\n /* Ignore malformed WebSocket messages. */\n }\n });\n\n ws.on('close', () => {\n wsClients.delete(ws);\n });\n });\n\n return {\n listen(port) {\n return new Promise((resolve) => {\n httpServer.listen(port, () => {\n console.log(`[api] HTTP + WebSocket server listening on port ${port}`);\n resolve();\n });\n });\n },\n\n route(method, path, handler) {\n const { pattern, paramNames } = parsePath(path);\n routes.push({ method, pattern, paramNames, handler });\n },\n\n onWsCommand(handler) {\n wsCommandHandler = handler;\n },\n\n broadcast(event) {\n const data = JSON.stringify(event);\n for (const ws of wsClients) {\n if (ws.readyState === ws.OPEN) {\n ws.send(data);\n }\n }\n },\n\n close() {\n return new Promise((resolve) => {\n wss.close();\n httpServer.close(() => resolve());\n });\n },\n };\n};\n","import { randomUUID } from 'crypto';\nimport { resolve } from 'path';\nimport type { CreateAgentRequest } from '@repo/types';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport { scanAgents, readAgent, writeAgentConfig, createAgentFromTemplate, deleteAgentDir, listAgentCommands, generateSlug } from '../../agent-scanner.js';\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { TerminalManager } from '../../terminal-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\n\n/**\n * Delete all connections referencing an agent across all capability types.\n * Called when an agent is deleted to avoid orphaned connections in config.db.\n * The agent directory (including capabilities/) is already deleted by deleteAgentDir.\n *\n * @param configStore - global config store\n * @param agentId - the agent being deleted\n */\nconst cascadeDeleteAgentConnections = (configStore: ConfigStore, agentId: string): void => {\n /* Cron connections. */\n for (const conn of configStore.getCronConnections()) {\n if (conn.targetAgent === agentId) configStore.deleteCronConnection(conn.id);\n }\n /* HTTP connections. */\n for (const conn of configStore.getHttpConnections()) {\n if (conn.targetAgent === agentId) configStore.deleteHttpConnection(conn.id);\n }\n /* Email connections. */\n for (const conn of configStore.getEmailConnections()) {\n if (conn.targetAgent === agentId) configStore.deleteEmailConnection(conn.id);\n }\n /* Telegram connections. */\n for (const conn of configStore.getTelegramConnections()) {\n if (conn.targetAgent === agentId) configStore.deleteTelegramConnection(conn.id);\n }\n /* S3 connections. */\n for (const conn of configStore.getS3Connections()) {\n if (conn.targetAgent === agentId) configStore.deleteS3Connection(conn.id);\n }\n /* Database connections. */\n for (const conn of configStore.getDatabaseConnections()) {\n if (conn.targetAgent === agentId) configStore.deleteDatabaseConnection(conn.id);\n }\n};\n\n/**\n * Register agent-related API routes.\n *\n * @param server - the API server\n * @param processManager - process manager for start/stop\n * @param terminalManager - terminal manager for master agent sessions\n * @param agentsDir - absolute path to the agents directory\n * @param templateDir - absolute path to the agent template directory\n * @param configStore - global config store (for cascade-deleting connections)\n */\nexport const registerAgentRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n terminalManager: TerminalManager,\n agentsDir: string,\n templateDir: string,\n configStore: ConfigStore,\n): void => {\n /** GET /api/agents — list all agents (scanned from filesystem). */\n server.route('GET', '/api/agents', async (_req, res) => {\n const agents = scanAgents(agentsDir);\n sendJson(res, 200, { agents });\n });\n\n /** GET /api/agents/:id — get a single agent. */\n server.route('GET', '/api/agents/:id', async (_req, res, params) => {\n const agent = readAgent(agentsDir, params['id']!);\n if (!agent) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Agent not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, agent);\n });\n\n /** POST /api/agents — create a new agent from template. */\n server.route('POST', '/api/agents', async (_req, res, _params, body) => {\n const input = body as CreateAgentRequest;\n if (!input?.name) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'name is required', statusCode: 400 });\n return;\n }\n\n const slug = generateSlug(input.name);\n const id = slug || randomUUID().slice(0, 8);\n\n const agent = createAgentFromTemplate(agentsDir, templateDir, id, input.name, input.autoStart ?? true);\n sendJson(res, 201, agent);\n });\n\n /** PUT /api/agents/:id — update agent config.json. */\n server.route('PUT', '/api/agents/:id', async (_req, res, params, body) => {\n const agent = readAgent(agentsDir, params['id']!);\n if (!agent) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Agent not found', statusCode: 404 });\n return;\n }\n\n const updates = body as Partial<typeof agent.config>;\n const updated = { ...agent.config, ...updates };\n writeAgentConfig(agentsDir, params['id']!, updated);\n\n const refreshed = readAgent(agentsDir, params['id']!);\n sendJson(res, 200, refreshed);\n });\n\n /** DELETE /api/agents/:id — delete agent with confirmation. */\n server.route('DELETE', '/api/agents/:id', async (_req, res, params, body) => {\n const id = params['id']!;\n const agent = readAgent(agentsDir, id);\n if (!agent) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Agent not found', statusCode: 404 });\n return;\n }\n\n const { confirm } = (body ?? {}) as { confirm?: boolean };\n if (!confirm) {\n sendJson(res, 200, {\n confirm: false,\n willDelete: {\n agent: agent.config.name,\n agentDir: agent.dir,\n process: processManager.get(id)?.status ?? null,\n terminalSession: terminalManager.getByAgent(id)?.id ?? null,\n },\n });\n return;\n }\n\n /* Close terminal session. */\n const session = terminalManager.getByAgent(id);\n if (session) terminalManager.close(session.id);\n\n /* Stop process. */\n const proc = processManager.get(id);\n if (proc && (proc.status === 'running' || proc.status === 'starting')) {\n await processManager.stop(id);\n }\n\n /* Cascade-delete all connections referencing this agent. */\n cascadeDeleteAgentConnections(configStore, id);\n\n /* Delete the agent directory (including capabilities/). */\n deleteAgentDir(agentsDir, id);\n\n sendJson(res, 200, { deleted: true });\n });\n\n /** POST /api/agents/:id/message — send a prompt to a running agent. */\n server.route('POST', '/api/agents/:id/message', async (_req, res, params, body) => {\n const id = params['id']!;\n const proc = processManager.get(id);\n if (!proc || proc.status !== 'running') {\n sendJson(res, 400, { error: 'NOT_RUNNING', message: 'Agent is not running', statusCode: 400 });\n return;\n }\n const { text } = body as { text: string };\n if (!text) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'text is required', statusCode: 400 });\n return;\n }\n sendJson(res, 200, { sent: true });\n });\n\n /** GET /api/agents/:id/commands — list available commands for this agent. */\n server.route('GET', '/api/agents/:id/commands', async (_req, res, params) => {\n const id = params['id']!;\n const agent = readAgent(agentsDir, id);\n if (!agent) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Agent not found', statusCode: 404 });\n return;\n }\n const commands = listAgentCommands(agentsDir, id);\n sendJson(res, 200, { commands });\n });\n\n /** POST /api/agents/:id/terminal — open a master agent terminal session. */\n server.route('POST', '/api/agents/:id/terminal', async (_req, res, params) => {\n const id = params['id']!;\n const agent = readAgent(agentsDir, id);\n if (!agent) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Agent not found', statusCode: 404 });\n return;\n }\n\n const sessionId = randomUUID();\n const masterCwd = resolve(agent.dir, 'master');\n await terminalManager.open(sessionId, id, masterCwd);\n sendJson(res, 200, { sessionId });\n });\n\n /** DELETE /api/agents/:id/terminal — close terminal session. */\n server.route('DELETE', '/api/agents/:id/terminal', async (_req, res, params) => {\n const id = params['id']!;\n const session = terminalManager.getByAgent(id);\n if (!session) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'No terminal session for this agent', statusCode: 404 });\n return;\n }\n terminalManager.close(session.id);\n sendJson(res, 200, { closed: true });\n });\n\n};\n","import { resolve, join } from 'path';\nimport { readdirSync, readFileSync, writeFileSync, existsSync, cpSync, rmSync, mkdirSync } from 'fs';\nimport type { AgentConfig, AgentFileConfig } from '@repo/types';\n\n/**\n * Generate a URL-safe slug from a human-readable name.\n * Lowercases, replaces non-alphanumeric chars with hyphens, strips leading/trailing hyphens.\n *\n * @param name - the raw name to slugify\n * @returns a lowercase hyphen-separated slug\n */\nexport const generateSlug = (name: string): string =>\n name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');\n\n/**\n * Scan the agents directory and discover all agents.\n * An agent is any directory that has an agent/config.json file.\n *\n * @param agentsDir - absolute path to the agents directory\n * @returns array of AgentConfig objects\n */\nexport const scanAgents = (agentsDir: string): AgentConfig[] => {\n if (!existsSync(agentsDir)) return [];\n\n const agents: AgentConfig[] = [];\n\n for (const name of readdirSync(agentsDir, { withFileTypes: true })) {\n if (!name.isDirectory()) continue;\n\n const configPath = join(agentsDir, name.name, 'agent', 'config.json');\n if (!existsSync(configPath)) continue;\n\n try {\n const raw = readFileSync(configPath, 'utf-8');\n const config = JSON.parse(raw) as AgentFileConfig;\n const dir = join(agentsDir, name.name);\n\n agents.push({\n id: name.name,\n dir,\n config,\n sdkOptions: {\n cwd: join(dir, 'agent'),\n model: config.model ?? undefined,\n permissionMode: (config.permissionMode as 'bypassPermissions') ?? 'bypassPermissions',\n allowDangerouslySkipPermissions: config.permissionMode === 'bypassPermissions',\n },\n });\n } catch {\n console.warn(`[scanner] Failed to read config for ${name.name}, skipping`);\n }\n }\n\n return agents;\n};\n\n/**\n * Read a single agent's config from the filesystem.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param id - the agent directory name\n * @returns AgentConfig or undefined if not found\n */\nexport const readAgent = (agentsDir: string, id: string): AgentConfig | undefined => {\n const dir = resolve(agentsDir, id);\n const configPath = join(dir, 'agent', 'config.json');\n if (!existsSync(configPath)) return undefined;\n\n try {\n const raw = readFileSync(configPath, 'utf-8');\n const config = JSON.parse(raw) as AgentFileConfig;\n\n return {\n id,\n dir,\n config,\n sdkOptions: {\n cwd: join(dir, 'agent'),\n model: config.model ?? undefined,\n permissionMode: (config.permissionMode as 'bypassPermissions') ?? 'bypassPermissions',\n allowDangerouslySkipPermissions: config.permissionMode === 'bypassPermissions',\n },\n };\n } catch {\n return undefined;\n }\n};\n\n/**\n * Write an agent's config.json to disk.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param id - the agent directory name\n * @param config - the config to write\n */\nexport const writeAgentConfig = (agentsDir: string, id: string, config: AgentFileConfig): void => {\n const configPath = resolve(agentsDir, id, 'agent', 'config.json');\n writeFileSync(configPath, JSON.stringify(config, null, 2) + '\\n');\n};\n\n/**\n * Create a new agent by copying the template and writing config.json.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param templateDir - absolute path to the agent template directory\n * @param id - the agent directory name (slug)\n * @param name - human-readable agent name\n * @param autoStart - whether to auto-start on daemon boot\n * @returns the new AgentConfig\n */\nexport const createAgentFromTemplate = (\n agentsDir: string,\n templateDir: string,\n id: string,\n name: string,\n autoStart = true,\n): AgentConfig => {\n const agentDir = resolve(agentsDir, id);\n\n /* Copy template. */\n cpSync(templateDir, agentDir, { recursive: true });\n\n /* Write config.json with the name. */\n const config: AgentFileConfig = {\n name,\n autoStart,\n model: null,\n permissionMode: 'bypassPermissions',\n env: {},\n };\n\n writeAgentConfig(agentsDir, id, config);\n\n return {\n id,\n dir: agentDir,\n config,\n sdkOptions: {\n cwd: join(agentDir, 'agent'),\n permissionMode: 'bypassPermissions',\n allowDangerouslySkipPermissions: true,\n },\n };\n};\n\n/**\n * List available commands for an agent by scanning .claude/commands/ directory.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param id - the agent directory name\n * @returns array of command names (without .md extension)\n */\nexport const listAgentCommands = (agentsDir: string, id: string): string[] => {\n const commandsDir = resolve(agentsDir, id, 'agent', '.claude', 'commands');\n if (!existsSync(commandsDir)) return [];\n\n return readdirSync(commandsDir)\n .filter((f) => f.endsWith('.md'))\n .map((f) => f.replace(/\\.md$/, ''));\n};\n\n/**\n * Delete an agent — removes the entire directory.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param id - the agent directory name\n */\nexport const deleteAgentDir = (agentsDir: string, id: string): void => {\n const agentDir = resolve(agentsDir, id);\n if (existsSync(agentDir)) {\n rmSync(agentDir, { recursive: true, force: true });\n }\n};\n","import type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { readAgent } from '../../agent-scanner.js';\n\n/**\n * Register process management API routes.\n *\n * @param server - the API server\n * @param processManager - the process manager\n * @param configStore - global config (for helpers)\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerProcessRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n configStore: ConfigStore,\n agentsDir: string,\n): void => {\n /** GET /api/processes — list all processes with status. */\n server.route('GET', '/api/processes', async (_req, res) => {\n sendJson(res, 200, { processes: processManager.getAll() });\n });\n\n /** GET /api/processes/:id — get a single process. */\n server.route('GET', '/api/processes/:id', async (_req, res, params) => {\n const proc = processManager.get(params['id']!);\n if (!proc) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Process not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, proc);\n });\n\n /** POST /api/processes/:id/start — start a process. */\n server.route('POST', '/api/processes/:id/start', async (_req, res, params) => {\n const id = params['id']!;\n\n /* Check if it's an agent (filesystem). */\n const agent = readAgent(agentsDir, id);\n if (agent) {\n processManager.start(id, 'agent', agent);\n sendJson(res, 200, { started: true });\n return;\n }\n\n /* Check if it's a helper (database). */\n const helper = configStore.getHelper(id);\n if (helper) {\n processManager.start(id, 'helper', helper);\n sendJson(res, 200, { started: true });\n return;\n }\n\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'No agent or helper with this ID', statusCode: 404 });\n });\n\n /** POST /api/processes/:id/stop — stop a process. */\n server.route('POST', '/api/processes/:id/stop', async (_req, res, params) => {\n const proc = processManager.get(params['id']!);\n if (!proc) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Process not found', statusCode: 404 });\n return;\n }\n await processManager.stop(params['id']!);\n sendJson(res, 200, { stopped: true });\n });\n\n /** POST /api/processes/:id/restart — restart a process. */\n server.route('POST', '/api/processes/:id/restart', async (_req, res, params) => {\n const proc = processManager.get(params['id']!);\n if (!proc) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Process not found', statusCode: 404 });\n return;\n }\n await processManager.restart(params['id']!);\n sendJson(res, 200, { restarted: true });\n });\n};\n","import { randomUUID } from 'crypto';\nimport type { S3Profile, S3Connection } from '@repo/types';\nimport { createS3Bucket } from '@repo/s3';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\nimport { readAgent } from '../../agent-scanner.js';\n\n/**\n * Verify an S3 profile by checking bucket access.\n *\n * @param profile - the S3 profile to verify\n * @returns null on success, error message on failure\n */\nconst verifyProfile = async (profile: S3Profile): Promise<string | null> => {\n const bucket = createS3Bucket({\n bucket: profile.bucket,\n region: profile.region,\n profile: profile.awsProfile ?? undefined,\n });\n return bucket.verify();\n};\n\n/**\n * Build the markdown content for an S3 capability file.\n *\n * @param profile - the S3 profile\n * @param connection - the S3 connection\n * @returns markdown string for the capability file\n */\nconst buildS3CapabilityContent = (profile: S3Profile, connection: S3Connection): string => {\n const profileName = profile.awsProfile ? `'${profile.awsProfile}'` : 'undefined';\n return [\n `# S3: ${profile.name}`,\n `Bucket: ${profile.bucket}`,\n `Region: ${profile.region}`,\n profile.awsProfile ? `AWS Profile: ${profile.awsProfile}` : null,\n '',\n '## Usage',\n connection.purpose,\n '',\n '## Code',\n '```ts',\n \"import { createS3Bucket } from 'kindflow/s3';\",\n 'const bucket = createS3Bucket({',\n ` bucket: '${profile.bucket}',`,\n ` region: '${profile.region}',`,\n ` profile: ${profileName}`,\n '});',\n '```',\n ]\n .filter((line) => line !== null)\n .join('\\n');\n};\n\n/**\n * Register S3 profile and connection API routes.\n *\n * @param server - the API server\n * @param configStore - global config store\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerS3Routes = (server: ApiServer, configStore: ConfigStore, agentsDir: string): void => {\n /** GET /api/s3/profiles — list all S3 profiles. */\n server.route('GET', '/api/s3/profiles', async (_req, res) => {\n sendJson(res, 200, { profiles: configStore.getS3Profiles() });\n });\n\n /** GET /api/s3/profiles/:id — get a single profile. */\n server.route('GET', '/api/s3/profiles/:id', async (_req, res, params) => {\n const profile = configStore.getS3Profile(params['id']!);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'S3 profile not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, profile);\n });\n\n /** POST /api/s3/profiles — create a new S3 profile. Auto-verifies on creation. */\n server.route('POST', '/api/s3/profiles', async (_req, res, _params, body) => {\n const input = body as { name: string; bucket: string; region: string; awsProfile?: string };\n if (!input?.name || !input?.bucket || !input?.region) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'name, bucket, and region are required', statusCode: 400 });\n return;\n }\n\n const profile: S3Profile = {\n id: input.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '') || randomUUID().slice(0, 8),\n name: input.name,\n bucket: input.bucket,\n region: input.region,\n awsProfile: input.awsProfile ?? null,\n verified: false,\n createdAt: new Date().toISOString(),\n };\n\n /* Verify bucket access before saving. */\n const error = await verifyProfile(profile);\n if (error) {\n sendJson(res, 400, { error: 'VERIFICATION_FAILED', message: error, statusCode: 400 });\n return;\n }\n\n profile.verified = true;\n configStore.saveS3Profile(profile);\n sendJson(res, 201, profile);\n });\n\n /** POST /api/s3/profiles/:id/verify — re-verify an existing profile. */\n server.route('POST', '/api/s3/profiles/:id/verify', async (_req, res, params) => {\n const profile = configStore.getS3Profile(params['id']!);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'S3 profile not found', statusCode: 404 });\n return;\n }\n\n const error = await verifyProfile(profile);\n if (error) {\n profile.verified = false;\n configStore.saveS3Profile(profile);\n sendJson(res, 200, { verified: false, error });\n return;\n }\n\n profile.verified = true;\n configStore.saveS3Profile(profile);\n sendJson(res, 200, { verified: true });\n });\n\n /** PUT /api/s3/profiles/:id — update an S3 profile. Re-verifies after update. */\n server.route('PUT', '/api/s3/profiles/:id', async (_req, res, params, body) => {\n const existing = configStore.getS3Profile(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'S3 profile not found', statusCode: 404 });\n return;\n }\n\n const updates = body as Partial<S3Profile>;\n const updated: S3Profile = { ...existing, ...updates, id: existing.id, createdAt: existing.createdAt };\n\n /* Re-verify if bucket, region, or credentials changed. */\n if (updates.bucket || updates.region || updates.awsProfile !== undefined) {\n const error = await verifyProfile(updated);\n updated.verified = !error;\n }\n\n configStore.saveS3Profile(updated);\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/s3/profiles/:id — delete an S3 profile. Cascade-deletes connections + files. */\n server.route('DELETE', '/api/s3/profiles/:id', async (_req, res, params) => {\n const existing = configStore.getS3Profile(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'S3 profile not found', statusCode: 404 });\n return;\n }\n\n /* Cascade-delete all connections for this profile and their capability files. */\n const connections = configStore.getS3ConnectionsForProfile(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 's3', conn.id);\n configStore.deleteS3Connection(conn.id);\n }\n\n configStore.deleteS3Profile(params['id']!);\n sendJson(res, 200, { deleted: true });\n });\n\n /* ──────────────── S3 Connection Management ──────────────── */\n\n /** GET /api/s3/connections — list all S3 connections. */\n server.route('GET', '/api/s3/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getS3Connections() });\n });\n\n /** POST /api/s3/connections — create a new S3 connection. */\n server.route('POST', '/api/s3/connections', async (_req, res, _params, body) => {\n const input = body as { profileId?: string; targetAgent?: string; purpose?: string } | null;\n\n if (!input?.profileId || !input?.targetAgent || !input?.purpose) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'profileId, targetAgent, and purpose are required', statusCode: 400 });\n return;\n }\n\n const profile = configStore.getS3Profile(input.profileId);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'S3 profile not found', statusCode: 404 });\n return;\n }\n\n if (!readAgent(agentsDir, input.targetAgent)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Target agent not found', statusCode: 404 });\n return;\n }\n\n const connection: S3Connection = {\n id: randomUUID(),\n profileId: input.profileId,\n targetAgent: input.targetAgent,\n purpose: input.purpose,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveS3Connection(connection);\n generateCapabilityFile(agentsDir, connection.targetAgent, 's3', connection.id, buildS3CapabilityContent(profile, connection));\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/s3/connections/:id — update an S3 connection. */\n server.route('PUT', '/api/s3/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getS3Connections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<S3Connection>;\n const updated: S3Connection = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n purpose: updates.purpose ?? existing.purpose,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveS3Connection(updated);\n\n /* Regenerate capability file with updated content. */\n const profile = configStore.getS3Profile(updated.profileId);\n if (profile) {\n /* Remove old file if agent changed. */\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 's3', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 's3', updated.id, buildS3CapabilityContent(profile, updated));\n }\n\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/s3/connections/:id — delete an S3 connection. */\n server.route('DELETE', '/api/s3/connections/:id', async (_req, res, params) => {\n const existing = configStore.getS3Connections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteS3Connection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 's3', existing.id);\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * Generates and removes capability markdown files in agent directories.\n *\n * Every connection (cron, http, email, telegram, s3, database) auto-generates\n * a file at `<agentsDir>/<agentId>/agent/capabilities/<capabilityType>/<connectionId>.md`.\n * This gives the agent introspectable knowledge of what it is connected to.\n */\n\nimport { mkdirSync, writeFileSync, unlinkSync, rmSync, existsSync, readdirSync } from 'fs';\nimport { resolve, dirname } from 'path';\n\n/**\n * Generate (or overwrite) a capability markdown file for a connection.\n *\n * Creates the directory tree recursively if it does not exist, then writes\n * the content to `<agentsDir>/<agentId>/agent/capabilities/<capabilityType>/<connectionId>.md`.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param agentId - the agent directory name\n * @param capabilityType - the capability category (e.g. \"cron\", \"s3\", \"database\")\n * @param connectionId - unique connection identifier used as the filename\n * @param content - the markdown content to write\n */\nexport const generateCapabilityFile = (\n agentsDir: string,\n agentId: string,\n capabilityType: string,\n connectionId: string,\n content: string,\n): void => {\n const filePath = resolve(agentsDir, agentId, 'agent', 'capabilities', capabilityType, `${connectionId}.md`);\n mkdirSync(dirname(filePath), { recursive: true });\n writeFileSync(filePath, content, 'utf-8');\n};\n\n/**\n * Remove a single capability file for a connection.\n *\n * Silently ignores the case where the file does not exist.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param agentId - the agent directory name\n * @param capabilityType - the capability category (e.g. \"cron\", \"s3\", \"database\")\n * @param connectionId - unique connection identifier used as the filename\n */\nexport const removeCapabilityFile = (\n agentsDir: string,\n agentId: string,\n capabilityType: string,\n connectionId: string,\n): void => {\n const filePath = resolve(agentsDir, agentId, 'agent', 'capabilities', capabilityType, `${connectionId}.md`);\n try {\n unlinkSync(filePath);\n } catch {\n /* File may not exist — that is fine. */\n }\n};\n\n/**\n * Remove all capability files for a given type under an agent.\n *\n * Deletes the entire `<agentsDir>/<agentId>/agent/capabilities/<capabilityType>/` directory\n * and its contents. Silently ignores the case where the directory does not exist.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param agentId - the agent directory name\n * @param capabilityType - the capability category to clear (e.g. \"s3\")\n */\nexport const removeAllCapabilityFiles = (\n agentsDir: string,\n agentId: string,\n capabilityType: string,\n): void => {\n const dirPath = resolve(agentsDir, agentId, 'agent', 'capabilities', capabilityType);\n try {\n rmSync(dirPath, { recursive: true, force: true });\n } catch {\n /* Directory may not exist — that is fine. */\n }\n};\n\n/**\n * List all capability file names (without .md extension) in a type directory.\n *\n * @param agentsDir - absolute path to the agents directory\n * @param agentId - the agent directory name\n * @param capabilityType - the capability category\n * @returns array of connection IDs (file basenames without .md)\n */\nexport const listCapabilityFiles = (\n agentsDir: string,\n agentId: string,\n capabilityType: string,\n): string[] => {\n const dirPath = resolve(agentsDir, agentId, 'agent', 'capabilities', capabilityType);\n if (!existsSync(dirPath)) return [];\n return readdirSync(dirPath)\n .filter((f) => f.endsWith('.md'))\n .map((f) => f.replace(/\\.md$/, ''));\n};\n","/**\n * API routes for email (IMAP) account and connection management.\n *\n * Handles Gmail OAuth setup, account CRUD, connection routing CRUD,\n * and pushes hot-reload messages to the running imap-runner process.\n */\n\nimport { randomUUID } from 'crypto';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\n\n/**\n * Escape a string for safe inclusion in HTML content.\n * Replaces &, <, >, \", and ' with their HTML entity equivalents.\n *\n * @param str - the raw string to escape\n * @returns the HTML-safe string\n */\nconst escapeHtml = (str: string): string =>\n str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport type { GmailAccountConfig, EmailConnectionConfig, OAuthCredentials } from '@repo/types';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\nimport {\n buildConsentUrl,\n exchangeCodeForTokens,\n refreshAccessToken,\n buildXOAuth2Token,\n ImapClient,\n} from '@repo/imap-runner';\nimport { encrypt, decrypt, getOrCreateKey } from '@repo/crypto';\n\n/**\n * Build the markdown content for an email capability file.\n *\n * @param account - the Gmail account\n * @param connection - the email connection\n * @returns markdown string for the capability file\n */\nconst buildEmailCapabilityContent = (account: GmailAccountConfig, connection: EmailConnectionConfig): string =>\n [\n `# Email: ${account.name}`,\n `Account: ${account.email}`,\n `Command: /${connection.command}`,\n `Connected to agent: ${connection.targetAgent}`,\n ].join('\\n');\n\n/**\n * Register email-related API routes on the daemon's API server.\n *\n * @param server - the API server\n * @param processManager - for sending hot-reload messages to the imap-runner\n * @param configStore - global config (email accounts, connections, oauth creds)\n * @param daemonPort - the daemon's HTTP port (for OAuth redirect URI)\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerEmailRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n configStore: ConfigStore,\n daemonPort: number,\n agentsDir: string,\n): void => {\n let encryptionKey: string | null = null;\n\n /** Lazily load the encryption key on first use. */\n const getKey = (): string => {\n if (!encryptionKey) encryptionKey = getOrCreateKey();\n return encryptionKey;\n };\n\n /** Pending OAuth states for CSRF validation. Maps state -> expiry timestamp. */\n const pendingOAuthStates = new Map<string, number>();\n\n /** OAuth state TTL (10 minutes). */\n const OAUTH_STATE_TTL = 10 * 60 * 1000;\n\n /** Sweep expired OAuth states every 5 minutes. */\n setInterval(() => {\n const now = Date.now();\n for (const [state, expiry] of pendingOAuthStates) {\n if (now > expiry) pendingOAuthStates.delete(state);\n }\n }, 5 * 60 * 1000).unref();\n\n /**\n * Push updated accounts + connections to the running imap-runner.\n */\n const syncImapRunner = (): void => {\n const proc = processManager.get('email-imap');\n const oauthCreds = configStore.getOAuthCredentials('gmail');\n const accounts = configStore.getEmailAccounts();\n const connections = configStore.getEmailConnections();\n\n if (proc && proc.status === 'running') {\n /* Runner already running — send updated config. */\n if (!oauthCreds) return;\n processManager.sendToChild('email-imap', {\n type: 'email:update-accounts',\n accounts,\n oauthCredentials: oauthCreds,\n });\n processManager.sendToChild('email-imap', {\n type: 'email:update-connections',\n connections,\n });\n } else if (accounts.length > 0 && connections.length > 0 && oauthCreds) {\n /* Runner not running but accounts + connections exist — start it. */\n const key = getKey();\n const now = new Date().toISOString();\n processManager.start('email-imap', 'helper', {\n id: 'email-imap',\n kind: 'email-imap',\n name: 'Email IMAP Watcher',\n config: {\n accounts: accounts.map((a) => ({\n ...a,\n refreshToken: decrypt(a.refreshToken, key),\n })),\n connections,\n oauthCredentials: {\n clientId: oauthCreds.clientId,\n clientSecret: decrypt(oauthCreds.clientSecret, key),\n },\n },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n });\n console.log(`[email] Auto-started email-imap runner with ${accounts.length} account(s)`);\n }\n };\n\n /* ──────────────── OAuth Setup ──────────────── */\n\n /** POST /api/email/oauth/credentials — save Google OAuth client credentials. */\n server.route('POST', '/api/email/oauth/credentials', async (_req, res, _params, body) => {\n const { clientId, clientSecret } = (body ?? {}) as Partial<OAuthCredentials>;\n\n if (!clientId || !clientSecret) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'clientId and clientSecret are required', statusCode: 400 });\n return;\n }\n\n const encrypted: OAuthCredentials = {\n clientId,\n clientSecret: encrypt(clientSecret, getKey()),\n };\n\n configStore.saveOAuthCredentials('gmail', encrypted);\n sendJson(res, 200, { saved: true });\n });\n\n /** GET /api/email/oauth/credentials — check if OAuth credentials are configured. */\n server.route('GET', '/api/email/oauth/credentials', async (_req, res) => {\n const creds = configStore.getOAuthCredentials('gmail');\n sendJson(res, 200, { configured: !!creds, clientId: creds?.clientId ?? null });\n });\n\n /** GET /api/email/oauth/start — return the Google OAuth consent URL. */\n server.route('GET', '/api/email/oauth/start', async (_req, res) => {\n const creds = configStore.getOAuthCredentials('gmail');\n if (!creds) {\n sendJson(res, 400, { error: 'NOT_CONFIGURED', message: 'OAuth credentials not configured', statusCode: 400 });\n return;\n }\n\n const redirectUri = `http://localhost:${daemonPort}/api/email/oauth/callback`;\n const state = randomUUID();\n pendingOAuthStates.set(state, Date.now() + OAUTH_STATE_TTL);\n const url = buildConsentUrl(creds.clientId, redirectUri, state);\n sendJson(res, 200, { url, state });\n });\n\n /** GET /api/email/oauth/callback — exchange auth code for tokens and create account. */\n server.route('GET', '/api/email/oauth/callback', async (req, res) => {\n const url = new URL(req.url ?? '/', `http://localhost:${daemonPort}`);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n\n if (!code) {\n sendJson(res, 400, { error: 'MISSING_CODE', message: 'Authorization code not found', statusCode: 400 });\n return;\n }\n\n /* Validate CSRF state token. */\n if (!state || !pendingOAuthStates.has(state)) {\n sendJson(res, 400, { error: 'INVALID_STATE', message: 'Invalid or missing OAuth state parameter', statusCode: 400 });\n return;\n }\n const expiry = pendingOAuthStates.get(state)!;\n pendingOAuthStates.delete(state);\n if (Date.now() > expiry) {\n sendJson(res, 400, { error: 'EXPIRED_STATE', message: 'OAuth state has expired, please try again', statusCode: 400 });\n return;\n }\n\n const creds = configStore.getOAuthCredentials('gmail');\n if (!creds) {\n sendJson(res, 400, { error: 'NOT_CONFIGURED', message: 'OAuth credentials not configured', statusCode: 400 });\n return;\n }\n\n const clientSecret = decrypt(creds.clientSecret, getKey());\n const redirectUri = `http://localhost:${daemonPort}/api/email/oauth/callback`;\n\n try {\n const tokens = await exchangeCodeForTokens(code, creds.clientId, clientSecret, redirectUri);\n\n /* Extract email from the access token via Google userinfo. */\n const userInfo = await fetch('https://www.googleapis.com/oauth2/v2/userinfo', {\n headers: { Authorization: `Bearer ${tokens.accessToken}` },\n });\n const { email } = (await userInfo.json()) as { email: string };\n\n const now = new Date().toISOString();\n const account: GmailAccountConfig = {\n id: randomUUID(),\n name: email,\n email,\n refreshToken: encrypt(tokens.refreshToken, getKey()),\n createdAt: now,\n updatedAt: now,\n };\n\n configStore.saveEmailAccount(account);\n syncImapRunner();\n\n /* Respond with HTML that closes the popup. */\n const safeEmail = escapeHtml(email);\n res.writeHead(200, { 'Content-Type': 'text/html' });\n res.end(`<html><body><script>window.close();</script><p>Account added: ${safeEmail}. You can close this window.</p></body></html>`);\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Unknown error';\n sendJson(res, 500, { error: 'OAUTH_EXCHANGE_FAILED', message, statusCode: 500 });\n }\n });\n\n /* ──────────────── Account Management ──────────────── */\n\n /** GET /api/email/accounts — list all Gmail accounts (refresh tokens redacted). */\n server.route('GET', '/api/email/accounts', async (_req, res) => {\n const accounts = configStore.getEmailAccounts().map((a) => ({\n ...a,\n refreshToken: '***',\n }));\n sendJson(res, 200, { accounts });\n });\n\n /** DELETE /api/email/accounts/:id — remove an account and its connections + files. */\n server.route('DELETE', '/api/email/accounts/:id', async (_req, res, params) => {\n const account = configStore.getEmailAccount(params['id']!);\n if (!account) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Account not found', statusCode: 404 });\n return;\n }\n\n /* Remove capability files for all connections before cascade-delete. */\n const connections = configStore.getEmailConnectionsForAccount(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 'email', conn.id);\n }\n\n configStore.deleteEmailAccount(params['id']!);\n syncImapRunner();\n sendJson(res, 200, { deleted: true });\n });\n\n /** POST /api/email/accounts/:id/test — test IMAP connection for an account. */\n server.route('POST', '/api/email/accounts/:id/test', async (_req, res, params) => {\n const account = configStore.getEmailAccount(params['id']!);\n if (!account) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Account not found', statusCode: 404 });\n return;\n }\n\n const creds = configStore.getOAuthCredentials('gmail');\n if (!creds) {\n sendJson(res, 400, { error: 'NOT_CONFIGURED', message: 'OAuth credentials not configured', statusCode: 400 });\n return;\n }\n\n try {\n const refreshToken = decrypt(account.refreshToken, getKey());\n const clientSecret = decrypt(creds.clientSecret, getKey());\n const { accessToken } = await refreshAccessToken(refreshToken, creds.clientId, clientSecret);\n\n const client = new ImapClient();\n await client.connect();\n const token = buildXOAuth2Token(account.email, accessToken);\n await client.authenticate(token);\n const messageCount = await client.select('INBOX');\n await client.logout();\n\n sendJson(res, 200, { success: true, messageCount });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Connection failed';\n sendJson(res, 200, { success: false, error: message });\n }\n });\n\n /* ──────────────── Connection Management ──────────────── */\n\n /** GET /api/email/connections — list all email connections. */\n server.route('GET', '/api/email/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getEmailConnections() });\n });\n\n /** POST /api/email/connections — create a new connection. */\n server.route('POST', '/api/email/connections', async (_req, res, _params, body) => {\n const { accountId, targetAgent, command, enabled } = (body ?? {}) as Partial<EmailConnectionConfig>;\n\n if (!accountId || !targetAgent || !command) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'accountId, targetAgent, and command are required', statusCode: 400 });\n return;\n }\n\n if (!configStore.getEmailAccount(accountId)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Account not found', statusCode: 404 });\n return;\n }\n\n const now = new Date().toISOString();\n const connection: EmailConnectionConfig = {\n id: randomUUID(),\n accountId,\n targetAgent,\n command,\n enabled: enabled !== false,\n createdAt: now,\n updatedAt: now,\n };\n\n configStore.saveEmailConnection(connection);\n\n /* Generate capability file for the new connection. */\n const parentAccount = configStore.getEmailAccount(accountId);\n if (parentAccount) {\n generateCapabilityFile(agentsDir, connection.targetAgent, 'email', connection.id, buildEmailCapabilityContent(parentAccount, connection));\n }\n\n syncImapRunner();\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/email/connections/:id — update a connection. */\n server.route('PUT', '/api/email/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getEmailConnection(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<EmailConnectionConfig>;\n const updated: EmailConnectionConfig = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n command: updates.command ?? existing.command,\n enabled: updates.enabled ?? existing.enabled,\n updatedAt: new Date().toISOString(),\n };\n\n configStore.saveEmailConnection(updated);\n\n /* Regenerate capability file with updated content. */\n const parentAccount = configStore.getEmailAccount(updated.accountId);\n if (parentAccount) {\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 'email', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 'email', updated.id, buildEmailCapabilityContent(parentAccount, updated));\n }\n\n syncImapRunner();\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/email/connections/:id — delete a connection. */\n server.route('DELETE', '/api/email/connections/:id', async (_req, res, params) => {\n const existing = configStore.getEmailConnection(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteEmailConnection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 'email', existing.id);\n syncImapRunner();\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * AES-256-CBC encryption utilities for storing secrets at rest.\n * The encryption key is auto-generated and stored at ~/.kindflow/.encryption-key.\n */\n\nimport { randomBytes, createCipheriv, createDecipheriv } from 'crypto';\nimport { readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\n\n/** IV length for AES-256-CBC. */\nconst IV_LENGTH = 16;\n\n/** Encryption algorithm. */\nconst ALGORITHM = 'aes-256-cbc';\n\n/**\n * Resolve the path to the encryption key file.\n *\n * @returns absolute path to the key file\n */\nconst keyPath = (): string =>\n join(process.env['KINDFLOW_DATA_DIR'] ?? join(homedir(), '.kindflow'), '.encryption-key');\n\n/**\n * Load or create the 32-byte hex encryption key.\n * Creates the parent directory and key file if they don't exist.\n * Key file is created with 0600 permissions (owner read/write only).\n *\n * @returns hex-encoded 32-byte key\n */\nexport const getOrCreateKey = (): string => {\n const path = keyPath();\n\n try {\n return readFileSync(path, 'utf-8').trim();\n } catch {\n const key = randomBytes(32).toString('hex');\n mkdirSync(join(path, '..'), { recursive: true });\n writeFileSync(path, key, { mode: 0o600 });\n return key;\n }\n};\n\n/**\n * Encrypt a plaintext string with AES-256-CBC.\n * Returns \"iv:ciphertext\" in hex encoding.\n *\n * @param text - the plaintext to encrypt\n * @param key - hex-encoded 32-byte key\n * @returns encrypted string in \"iv:ciphertext\" format\n */\nexport const encrypt = (text: string, key: string): string => {\n const iv = randomBytes(IV_LENGTH);\n const cipher = createCipheriv(ALGORITHM, Buffer.from(key, 'hex'), iv);\n let encrypted = cipher.update(text, 'utf8', 'hex');\n encrypted += cipher.final('hex');\n return `${iv.toString('hex')}:${encrypted}`;\n};\n\n/**\n * Decrypt an \"iv:ciphertext\" string produced by {@link encrypt}.\n *\n * @param text - the encrypted string in \"iv:ciphertext\" format\n * @param key - hex-encoded 32-byte key\n * @returns decrypted plaintext\n */\nexport const decrypt = (text: string, key: string): string => {\n if (!text) return '';\n if (!text.includes(':')) {\n console.warn('[crypto] decrypt called on value without iv:ciphertext format — returning raw value.');\n return text;\n }\n const [ivHex, encrypted] = text.split(':') as [string, string];\n const decipher = createDecipheriv(ALGORITHM, Buffer.from(key, 'hex'), Buffer.from(ivHex, 'hex'));\n let decrypted = decipher.update(encrypted, 'hex', 'utf8');\n decrypted += decipher.final('utf8');\n return decrypted;\n};\n","import { randomUUID } from 'crypto';\nimport type { DatabaseProfile, DatabaseConnection } from '@repo/types';\nimport { createDatabaseClient } from '@repo/database';\nimport { encrypt, decrypt, getOrCreateKey } from '@repo/crypto';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\nimport { readAgent } from '../../agent-scanner.js';\n\n/**\n * Redact the password field from a database profile for API responses.\n * Returns a shallow copy with `password` replaced by `'***'` if it was set.\n *\n * @param profile - the database profile to redact\n * @returns a copy of the profile with the password replaced by '***'\n */\nconst redactPassword = (profile: DatabaseProfile): DatabaseProfile => ({\n ...profile,\n password: profile.password ? '***' : null,\n});\n\n/**\n * Verify a database profile by testing the connection.\n * The password stored on the profile is encrypted; `key` is used to decrypt it\n * before building the client config.\n *\n * @param profile - the database profile to verify\n * @param key - hex-encoded encryption key for decrypting the password\n * @returns null on success, error message on failure\n */\nconst verifyProfile = async (profile: DatabaseProfile, key: string): Promise<string | null> => {\n try {\n const client = await createDatabaseClient({\n type: profile.type,\n host: profile.host ?? undefined,\n port: profile.port ?? undefined,\n database: profile.database,\n username: profile.username ?? undefined,\n password: profile.password ? decrypt(profile.password, key) : undefined,\n sslMode: profile.sslMode ?? undefined,\n });\n const error = await client.verify();\n await client.close();\n return error;\n } catch (err) {\n return err instanceof Error ? err.message : String(err);\n }\n};\n\n/**\n * Build the markdown content for a database capability file.\n *\n * @param profile - the database profile\n * @param connection - the database connection\n * @returns markdown string for the capability file\n */\nconst buildDatabaseCapabilityContent = (profile: DatabaseProfile, connection: DatabaseConnection): string => {\n const lines: string[] = [\n `# Database: ${profile.name}`,\n `Type: ${profile.type}`,\n ];\n\n if (profile.host) lines.push(`Host: ${profile.host}${profile.port ? `:${profile.port}` : ''}`);\n lines.push(`Database: ${profile.database}`);\n\n lines.push('', '## Usage', connection.purpose);\n\n lines.push('', '## Code', '```ts');\n lines.push(\"import { createDatabaseClient } from 'kindflow/database';\");\n lines.push('const db = await createDatabaseClient({');\n lines.push(` type: '${profile.type}',`);\n if (profile.host) lines.push(` host: '${profile.host}',`);\n if (profile.port) lines.push(` port: ${profile.port},`);\n lines.push(` database: '${profile.database}',`);\n if (profile.username) lines.push(` username: '...',`);\n if (profile.password) lines.push(` password: '...',`);\n lines.push('});');\n lines.push('```');\n\n return lines.join('\\n');\n};\n\n/**\n * Register database profile and connection API routes.\n *\n * @param server - the API server\n * @param configStore - global config store\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerDatabaseRoutes = (server: ApiServer, configStore: ConfigStore, agentsDir: string): void => {\n let encryptionKey: string | null = null;\n\n /** Lazily load the encryption key on first use. */\n const getKey = (): string => {\n if (!encryptionKey) encryptionKey = getOrCreateKey();\n return encryptionKey;\n };\n /** GET /api/database/profiles — list all profiles (passwords redacted). */\n server.route('GET', '/api/database/profiles', async (_req, res) => {\n sendJson(res, 200, { profiles: configStore.getDatabaseProfiles().map(redactPassword) });\n });\n\n /** GET /api/database/profiles/:id — get a single profile (password redacted). */\n server.route('GET', '/api/database/profiles/:id', async (_req, res, params) => {\n const profile = configStore.getDatabaseProfile(params['id']!);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Database profile not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, redactPassword(profile));\n });\n\n /** POST /api/database/profiles — create a new profile. Auto-verifies. */\n server.route('POST', '/api/database/profiles', async (_req, res, _params, body) => {\n const input = body as { name: string; type: string; host?: string; port?: number; database: string; username?: string; password?: string; sslMode?: string };\n if (!input?.name || !input?.type || !input?.database) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'name, type, and database are required', statusCode: 400 });\n return;\n }\n\n const profile: DatabaseProfile = {\n id: input.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '') || randomUUID().slice(0, 8),\n name: input.name,\n type: input.type as DatabaseProfile['type'],\n host: input.host ?? null,\n port: input.port ?? null,\n database: input.database,\n username: input.username ?? null,\n password: input.password ? encrypt(input.password, getKey()) : null,\n sslMode: (input.sslMode as DatabaseProfile['sslMode']) ?? null,\n verified: false,\n createdAt: new Date().toISOString(),\n };\n\n /* Verify connection before saving (verifyProfile decrypts the password). */\n const error = await verifyProfile(profile, getKey());\n if (error) {\n sendJson(res, 400, { error: 'VERIFICATION_FAILED', message: error, statusCode: 400 });\n return;\n }\n\n profile.verified = true;\n configStore.saveDatabaseProfile(profile);\n sendJson(res, 201, redactPassword(profile));\n });\n\n /** POST /api/database/profiles/:id/verify — re-verify an existing profile. */\n server.route('POST', '/api/database/profiles/:id/verify', async (_req, res, params) => {\n const profile = configStore.getDatabaseProfile(params['id']!);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Database profile not found', statusCode: 404 });\n return;\n }\n\n const error = await verifyProfile(profile, getKey());\n profile.verified = !error;\n configStore.saveDatabaseProfile(profile);\n sendJson(res, 200, { verified: !error, error: error ?? undefined });\n });\n\n /** PUT /api/database/profiles/:id — update a profile. */\n server.route('PUT', '/api/database/profiles/:id', async (_req, res, params, body) => {\n const existing = configStore.getDatabaseProfile(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Database profile not found', statusCode: 404 });\n return;\n }\n\n const updates = body as Partial<DatabaseProfile>;\n\n /* Encrypt the password if a new plaintext value was provided. */\n const updatedPassword = updates.password !== undefined\n ? (updates.password ? encrypt(updates.password, getKey()) : null)\n : existing.password;\n\n const updated: DatabaseProfile = {\n ...existing,\n ...updates,\n id: existing.id,\n createdAt: existing.createdAt,\n password: updatedPassword,\n };\n\n /* Re-verify if connection params changed. */\n if (updates.host !== undefined || updates.port !== undefined || updates.database !== undefined ||\n updates.username !== undefined || updates.password !== undefined || updates.sslMode !== undefined || updates.type !== undefined) {\n const error = await verifyProfile(updated, getKey());\n updated.verified = !error;\n }\n\n configStore.saveDatabaseProfile(updated);\n sendJson(res, 200, redactPassword(updated));\n });\n\n /** DELETE /api/database/profiles/:id — delete a profile. Cascade-deletes connections + files. */\n server.route('DELETE', '/api/database/profiles/:id', async (_req, res, params) => {\n const existing = configStore.getDatabaseProfile(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Database profile not found', statusCode: 404 });\n return;\n }\n\n /* Cascade-delete all connections for this profile and their capability files. */\n const connections = configStore.getDatabaseConnectionsForProfile(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 'database', conn.id);\n configStore.deleteDatabaseConnection(conn.id);\n }\n\n configStore.deleteDatabaseProfile(params['id']!);\n sendJson(res, 200, { deleted: true });\n });\n\n /* ──────────────── Database Connection Management ──────────────── */\n\n /** GET /api/database/connections — list all database connections. */\n server.route('GET', '/api/database/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getDatabaseConnections() });\n });\n\n /** POST /api/database/connections — create a new database connection. */\n server.route('POST', '/api/database/connections', async (_req, res, _params, body) => {\n const input = body as { profileId?: string; targetAgent?: string; purpose?: string } | null;\n\n if (!input?.profileId || !input?.targetAgent || !input?.purpose) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'profileId, targetAgent, and purpose are required', statusCode: 400 });\n return;\n }\n\n const profile = configStore.getDatabaseProfile(input.profileId);\n if (!profile) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Database profile not found', statusCode: 404 });\n return;\n }\n\n if (!readAgent(agentsDir, input.targetAgent)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Target agent not found', statusCode: 404 });\n return;\n }\n\n const connection: DatabaseConnection = {\n id: randomUUID(),\n profileId: input.profileId,\n targetAgent: input.targetAgent,\n purpose: input.purpose,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveDatabaseConnection(connection);\n generateCapabilityFile(agentsDir, connection.targetAgent, 'database', connection.id, buildDatabaseCapabilityContent(profile, connection));\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/database/connections/:id — update a database connection. */\n server.route('PUT', '/api/database/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getDatabaseConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<DatabaseConnection>;\n const updated: DatabaseConnection = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n purpose: updates.purpose ?? existing.purpose,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveDatabaseConnection(updated);\n\n /* Regenerate capability file with updated content. */\n const profile = configStore.getDatabaseProfile(updated.profileId);\n if (profile) {\n /* Remove old file if agent changed. */\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 'database', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 'database', updated.id, buildDatabaseCapabilityContent(profile, updated));\n }\n\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/database/connections/:id — delete a database connection. */\n server.route('DELETE', '/api/database/connections/:id', async (_req, res, params) => {\n const existing = configStore.getDatabaseConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteDatabaseConnection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 'database', existing.id);\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * API routes for HTTP endpoint and connection management.\n *\n * Provides CRUD for endpoints + connections stored in config.db,\n * plus a fire-and-forget trigger route that routes requests to agents via IPC.\n */\n\nimport { randomUUID, timingSafeEqual } from 'crypto';\nimport type { IncomingMessage } from 'http';\nimport type { HttpEndpoint, HttpConnection } from '@repo/types';\nimport { encrypt, decrypt, getOrCreateKey } from '@repo/crypto';\nimport { createMessage } from '@repo/ipc';\nimport type { IpcHub } from '@repo/ipc';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\n\n/** Regex for validating path slugs: lowercase letters, numbers, and hyphens, must start with a letter or number. */\nconst PATH_SLUG_REGEX = /^[a-z0-9][a-z0-9-]*$/;\n\n/**\n * Extract the Bearer token from the Authorization header.\n *\n * @param req - the incoming HTTP request\n * @returns the token string, or null if not present\n */\nconst extractBearerToken = (req: IncomingMessage): string | null => {\n const header = req.headers['authorization'];\n if (!header || !header.startsWith('Bearer ')) return null;\n return header.slice(7);\n};\n\n/**\n * Compare two strings in constant time to prevent timing attacks.\n * Returns false immediately when lengths differ (the length itself\n * is not secret), then delegates to crypto.timingSafeEqual for the\n * byte-level comparison.\n *\n * @param a - first string\n * @param b - second string\n * @returns true if the strings are equal\n */\nconst safeEqual = (a: string, b: string): boolean => {\n const bufA = Buffer.from(a);\n const bufB = Buffer.from(b);\n if (bufA.length !== bufB.length) return false;\n return timingSafeEqual(bufA, bufB);\n};\n\n/**\n * Build the markdown content for an HTTP capability file.\n *\n * @param endpoint - the HTTP endpoint\n * @param connection - the HTTP connection\n * @returns markdown string for the capability file\n */\nconst buildHttpCapabilityContent = (endpoint: HttpEndpoint, connection: HttpConnection): string =>\n [\n `# HTTP: ${endpoint.name}`,\n `Path: /api/trigger/${endpoint.path}`,\n connection.command ? `Command: /${connection.command}` : 'Command: (free-form text from request body)',\n `Connected to agent: ${connection.targetAgent}`,\n ].join('\\n');\n\n/**\n * Register HTTP endpoint routes on the daemon's API server.\n *\n * Handles endpoint CRUD, connection CRUD, and the fire-and-forget\n * trigger route (POST /api/trigger/:path) that looks up the endpoint\n * by its path slug, validates auth, and routes to connected agents via IPC.\n *\n * @param server - the API server instance\n * @param processManager - for checking whether an agent is running\n * @param ipcHub - IPC hub for sending messages to agents\n * @param configStore - global config (http_endpoints, http_connections)\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerHttpRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n ipcHub: IpcHub,\n configStore: ConfigStore,\n agentsDir: string,\n): void => {\n /** Lazily loaded encryption key for API key encryption/decryption. */\n let encryptionKey: string | null = null;\n\n /** Lazily load the encryption key on first use. */\n const getKey = (): string => {\n if (!encryptionKey) encryptionKey = getOrCreateKey();\n return encryptionKey;\n };\n\n /**\n * Redact the apiKey field from an endpoint for API responses.\n * Returns a shallow copy with `apiKey` replaced by `'***'` if it was set.\n *\n * @param endpoint - the HTTP endpoint to redact\n * @returns a copy with apiKey replaced by '***' (or null preserved)\n */\n const redactApiKey = (endpoint: HttpEndpoint): HttpEndpoint => ({\n ...endpoint,\n apiKey: endpoint.apiKey ? '***' : null,\n });\n\n /* ──────────────── Trigger Route ──────────────── */\n\n /**\n * POST /api/trigger/:path\n * Fire-and-forget trigger. Looks up endpoint by path slug,\n * finds connections, routes to agents via IPC hub. Returns 202.\n */\n server.route('POST', '/api/trigger/:path', async (req, res, params, body) => {\n const pathSlug = params['path']!;\n\n const endpoint = configStore.getHttpEndpointByPath(pathSlug);\n if (!endpoint) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint not found', statusCode: 404 });\n return;\n }\n\n if (!endpoint.enabled) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint is disabled', statusCode: 404 });\n return;\n }\n\n /* Auth check: if endpoint has an apiKey, decrypt it and require matching Bearer token. */\n if (endpoint.apiKey) {\n const token = extractBearerToken(req);\n const decryptedKey = decrypt(endpoint.apiKey, getKey());\n if (!token || !safeEqual(token, decryptedKey)) {\n sendJson(res, 401, { error: 'UNAUTHORIZED', message: 'Invalid or missing API key', statusCode: 401 });\n return;\n }\n }\n\n /* Find all enabled connections for this endpoint. */\n const connections = configStore\n .getHttpConnectionsForEndpoint(endpoint.id)\n .filter((c) => c.enabled);\n\n if (connections.length === 0) {\n sendJson(res, 200, { queued: false, reason: 'No enabled connections for this endpoint' });\n return;\n }\n\n let queued = 0;\n\n for (const connection of connections) {\n /* Check agent is running. */\n const proc = processManager.get(connection.targetAgent);\n if (!proc || proc.status !== 'running') continue;\n\n /* Build prompt text: use command if configured, otherwise use request body text. */\n let promptText: string;\n if (connection.command) {\n promptText = `/${connection.command}`;\n } else {\n const { text } = (body ?? {}) as { text?: string };\n if (!text) continue;\n promptText = text;\n }\n\n /* Create and send the IPC message. */\n const message = createMessage('http-trigger', connection.targetAgent, 'prompt', {\n text: promptText,\n metadata: {\n source: 'http',\n endpointId: endpoint.id,\n endpointName: endpoint.name,\n endpointPath: endpoint.path,\n connectionId: connection.id,\n },\n });\n\n ipcHub.sendTo(connection.targetAgent, message);\n queued++;\n }\n\n if (queued === 0) {\n sendJson(res, 200, { queued: false, count: 0, reason: 'No agents were available to receive the message' });\n return;\n }\n\n sendJson(res, 202, { queued: true, count: queued });\n });\n\n /* ──────────────── Endpoint Management ──────────────── */\n\n /** GET /api/http/endpoints — list all endpoints (apiKeys redacted). */\n server.route('GET', '/api/http/endpoints', async (_req, res) => {\n const endpoints = configStore.getHttpEndpoints().map(redactApiKey);\n sendJson(res, 200, { endpoints });\n });\n\n /** POST /api/http/endpoints — create a new endpoint. */\n server.route('POST', '/api/http/endpoints', async (_req, res, _params, body) => {\n const input = body as { name?: string; path?: string; generateApiKey?: boolean } | null;\n\n if (!input?.name || !input?.path) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'name and path are required', statusCode: 400 });\n return;\n }\n\n /* Validate path slug format. */\n if (!PATH_SLUG_REGEX.test(input.path)) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'path must contain only lowercase letters, numbers, and hyphens', statusCode: 400 });\n return;\n }\n\n /* Check for duplicate path. */\n const existing = configStore.getHttpEndpointByPath(input.path);\n if (existing) {\n sendJson(res, 409, { error: 'CONFLICT', message: `An endpoint with path \"${input.path}\" already exists`, statusCode: 409 });\n return;\n }\n\n const rawApiKey = input.generateApiKey ? randomUUID() : null;\n\n const endpoint: HttpEndpoint = {\n id: randomUUID(),\n name: input.name,\n path: input.path,\n apiKey: rawApiKey ? encrypt(rawApiKey, getKey()) : null,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveHttpEndpoint(endpoint);\n sendJson(res, 201, redactApiKey(endpoint));\n });\n\n /** GET /api/http/endpoints/:id — get a single endpoint (apiKey redacted). */\n server.route('GET', '/api/http/endpoints/:id', async (_req, res, params) => {\n const endpoint = configStore.getHttpEndpoint(params['id']!);\n if (!endpoint) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, redactApiKey(endpoint));\n });\n\n /** PUT /api/http/endpoints/:id — update an endpoint. */\n server.route('PUT', '/api/http/endpoints/:id', async (_req, res, params, body) => {\n const existing = configStore.getHttpEndpoint(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<{ name: string; path: string; enabled: boolean; regenerateApiKey: boolean }>;\n\n /* Validate path slug format if changing. */\n if (updates.path !== undefined && !PATH_SLUG_REGEX.test(updates.path)) {\n sendJson(res, 400, { error: 'BAD_REQUEST', message: 'path must contain only lowercase letters, numbers, and hyphens', statusCode: 400 });\n return;\n }\n\n /* Check for duplicate path if changing. */\n if (updates.path && updates.path !== existing.path) {\n const dup = configStore.getHttpEndpointByPath(updates.path);\n if (dup) {\n sendJson(res, 409, { error: 'CONFLICT', message: `An endpoint with path \"${updates.path}\" already exists`, statusCode: 409 });\n return;\n }\n }\n\n const rawApiKey = updates.regenerateApiKey ? randomUUID() : null;\n\n const updated: HttpEndpoint = {\n ...existing,\n name: updates.name ?? existing.name,\n path: updates.path ?? existing.path,\n enabled: updates.enabled ?? existing.enabled,\n apiKey: rawApiKey ? encrypt(rawApiKey, getKey()) : existing.apiKey,\n };\n\n configStore.saveHttpEndpoint(updated);\n sendJson(res, 200, redactApiKey(updated));\n });\n\n /** DELETE /api/http/endpoints/:id — delete an endpoint and all its connections + files. */\n server.route('DELETE', '/api/http/endpoints/:id', async (_req, res, params) => {\n const endpoint = configStore.getHttpEndpoint(params['id']!);\n if (!endpoint) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint not found', statusCode: 404 });\n return;\n }\n\n /* Remove capability files for all connections before cascade-delete. */\n const connections = configStore.getHttpConnectionsForEndpoint(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 'http', conn.id);\n }\n\n configStore.deleteHttpEndpoint(params['id']!);\n sendJson(res, 200, { deleted: true });\n });\n\n /* ──────────────── Connection Management ──────────────── */\n\n /** GET /api/http/connections — list all connections. */\n server.route('GET', '/api/http/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getHttpConnections() });\n });\n\n /** POST /api/http/connections — create a new connection. */\n server.route('POST', '/api/http/connections', async (_req, res, _params, body) => {\n const input = body as { endpointId?: string; targetAgent?: string; command?: string | null } | null;\n\n if (!input?.endpointId || !input?.targetAgent) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'endpointId and targetAgent are required', statusCode: 400 });\n return;\n }\n\n if (!configStore.getHttpEndpoint(input.endpointId)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Endpoint not found', statusCode: 404 });\n return;\n }\n\n const connection: HttpConnection = {\n id: randomUUID(),\n endpointId: input.endpointId,\n targetAgent: input.targetAgent,\n command: input.command ?? null,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveHttpConnection(connection);\n\n /* Generate capability file for the new connection. */\n const parentEndpoint = configStore.getHttpEndpoint(input.endpointId);\n if (parentEndpoint) {\n generateCapabilityFile(agentsDir, connection.targetAgent, 'http', connection.id, buildHttpCapabilityContent(parentEndpoint, connection));\n }\n\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/http/connections/:id — update a connection. */\n server.route('PUT', '/api/http/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getHttpConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<HttpConnection>;\n const updated: HttpConnection = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n command: updates.command !== undefined ? updates.command : existing.command,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveHttpConnection(updated);\n\n /* Regenerate capability file with updated content. */\n const parentEndpoint = configStore.getHttpEndpoint(updated.endpointId);\n if (parentEndpoint) {\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 'http', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 'http', updated.id, buildHttpCapabilityContent(parentEndpoint, updated));\n }\n\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/http/connections/:id — delete a connection. */\n server.route('DELETE', '/api/http/connections/:id', async (_req, res, params) => {\n const existing = configStore.getHttpConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteHttpConnection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 'http', existing.id);\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * API routes for Telegram bot and connection management.\n *\n * Handles bot CRUD, token verification via getMe(), connection routing CRUD,\n * and pushes hot-reload messages to the running telegram-runner process.\n */\n\nimport { randomUUID } from 'crypto';\nimport type { TelegramBotProfile, TelegramConnection } from '@repo/types';\nimport { createTelegramClient } from '@repo/telegram';\nimport { encrypt, decrypt, getOrCreateKey } from '@repo/crypto';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\n\n/**\n * Build the markdown content for a Telegram capability file.\n *\n * @param bot - the Telegram bot profile\n * @param connection - the Telegram connection\n * @returns markdown string for the capability file\n */\nconst buildTelegramCapabilityContent = (bot: TelegramBotProfile, connection: TelegramConnection): string =>\n [\n `# Telegram: ${bot.name}`,\n `Bot: @${bot.botUsername}`,\n `Chat ID: ${connection.chatId}`,\n `Connected to agent: ${connection.targetAgent}`,\n ].join('\\n');\n\n/**\n * Register Telegram-related API routes on the daemon's API server.\n *\n * @param server - the API server\n * @param processManager - for sending hot-reload messages to the telegram-runner\n * @param configStore - global config (telegram bots, connections)\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerTelegramRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n configStore: ConfigStore,\n agentsDir: string,\n): void => {\n let encryptionKey: string | null = null;\n\n /** Lazily load the encryption key on first use. */\n const getKey = (): string => {\n if (!encryptionKey) encryptionKey = getOrCreateKey();\n return encryptionKey;\n };\n\n /**\n * Push updated bots + connections to the running telegram-runner.\n */\n const syncTelegramRunner = (): void => {\n const proc = processManager.get('telegram');\n const bots = configStore.getTelegramBots();\n const connections = configStore.getTelegramConnections();\n\n const decryptedBots = bots.map((b) => ({\n ...b,\n token: decrypt(b.token, getKey()),\n }));\n\n if (proc && proc.status === 'running') {\n /* Runner already running — send updated config. */\n processManager.sendToChild('telegram', { type: 'telegram:update-bots', bots: decryptedBots });\n processManager.sendToChild('telegram', { type: 'telegram:update-connections', connections });\n } else if (bots.length > 0 && connections.length > 0) {\n /* Runner not running but bots + connections exist — start it. */\n const now = new Date().toISOString();\n processManager.start('telegram', 'helper', {\n id: 'telegram',\n kind: 'telegram',\n name: 'Telegram Runner',\n config: { bots: decryptedBots, connections },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n });\n console.log(`[telegram] Auto-started telegram-runner with ${bots.length} bot(s)`);\n }\n };\n\n /* ──────────────── Bot Management ──────────────── */\n\n /** GET /api/telegram/bots — list all bots (tokens redacted). */\n server.route('GET', '/api/telegram/bots', async (_req, res) => {\n const bots = configStore.getTelegramBots().map((b) => ({\n ...b,\n token: '***',\n }));\n sendJson(res, 200, { bots });\n });\n\n /** POST /api/telegram/bots — add a new bot. Auto-verifies token via getMe(). */\n server.route('POST', '/api/telegram/bots', async (_req, res, _params, body) => {\n const input = body as { name?: string; token?: string } | null;\n\n if (!input?.name || !input?.token) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'name and token are required', statusCode: 400 });\n return;\n }\n\n /* Verify the token by calling getMe(). */\n const client = createTelegramClient({ token: input.token });\n const result = await client.verify();\n\n if (!result.ok) {\n sendJson(res, 400, { error: 'VERIFICATION_FAILED', message: `Token verification failed: ${result.error}`, statusCode: 400 });\n return;\n }\n\n const bot: TelegramBotProfile = {\n id: randomUUID(),\n name: input.name,\n token: encrypt(input.token, getKey()),\n botUsername: result.username,\n polling: true,\n webhookUrl: null,\n verified: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveTelegramBot(bot);\n syncTelegramRunner();\n\n sendJson(res, 201, { ...bot, token: '***' });\n });\n\n /** GET /api/telegram/bots/:id — get a single bot (token redacted). */\n server.route('GET', '/api/telegram/bots/:id', async (_req, res, params) => {\n const bot = configStore.getTelegramBot(params['id']!);\n if (!bot) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Bot not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, { ...bot, token: '***' });\n });\n\n /** PUT /api/telegram/bots/:id — update a bot. */\n server.route('PUT', '/api/telegram/bots/:id', async (_req, res, params, body) => {\n const existing = configStore.getTelegramBot(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Bot not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<{ name: string; polling: boolean; webhookUrl: string | null }>;\n const updated: TelegramBotProfile = {\n ...existing,\n name: updates.name ?? existing.name,\n polling: updates.polling ?? existing.polling,\n webhookUrl: updates.webhookUrl !== undefined ? updates.webhookUrl : existing.webhookUrl,\n };\n\n configStore.saveTelegramBot(updated);\n syncTelegramRunner();\n sendJson(res, 200, { ...updated, token: '***' });\n });\n\n /** DELETE /api/telegram/bots/:id — delete a bot and all its connections + files. */\n server.route('DELETE', '/api/telegram/bots/:id', async (_req, res, params) => {\n const bot = configStore.getTelegramBot(params['id']!);\n if (!bot) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Bot not found', statusCode: 404 });\n return;\n }\n\n /* Remove capability files for all connections before cascade-delete. */\n const connections = configStore.getTelegramConnectionsForBot(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 'telegram', conn.id);\n }\n\n configStore.deleteTelegramBot(params['id']!);\n syncTelegramRunner();\n sendJson(res, 200, { deleted: true });\n });\n\n /** POST /api/telegram/bots/:id/verify — re-verify a bot's token. */\n server.route('POST', '/api/telegram/bots/:id/verify', async (_req, res, params) => {\n const bot = configStore.getTelegramBot(params['id']!);\n if (!bot) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Bot not found', statusCode: 404 });\n return;\n }\n\n const token = decrypt(bot.token, getKey());\n const client = createTelegramClient({ token });\n const result = await client.verify();\n\n if (!result.ok) {\n bot.verified = false;\n configStore.saveTelegramBot(bot);\n sendJson(res, 200, { verified: false, error: result.error });\n return;\n }\n\n bot.verified = true;\n bot.botUsername = result.username;\n configStore.saveTelegramBot(bot);\n syncTelegramRunner();\n sendJson(res, 200, { verified: true, username: result.username });\n });\n\n /* ──────────────── Connection Management ──────────────── */\n\n /** GET /api/telegram/connections — list all connections. */\n server.route('GET', '/api/telegram/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getTelegramConnections() });\n });\n\n /** POST /api/telegram/connections — create a new connection. */\n server.route('POST', '/api/telegram/connections', async (_req, res, _params, body) => {\n const input = body as { botId?: string; targetAgent?: string; chatId?: string; enabled?: boolean } | null;\n\n if (!input?.botId || !input?.targetAgent) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'botId and targetAgent are required', statusCode: 400 });\n return;\n }\n\n if (!configStore.getTelegramBot(input.botId)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Bot not found', statusCode: 404 });\n return;\n }\n\n const connection: TelegramConnection = {\n id: randomUUID(),\n botId: input.botId,\n targetAgent: input.targetAgent,\n chatId: input.chatId ?? '*',\n enabled: input.enabled !== false,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveTelegramConnection(connection);\n\n /* Generate capability file for the new connection. */\n const parentBot = configStore.getTelegramBot(input.botId);\n if (parentBot) {\n generateCapabilityFile(agentsDir, connection.targetAgent, 'telegram', connection.id, buildTelegramCapabilityContent(parentBot, connection));\n }\n\n syncTelegramRunner();\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/telegram/connections/:id — update a connection. */\n server.route('PUT', '/api/telegram/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getTelegramConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<TelegramConnection>;\n const updated: TelegramConnection = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n chatId: updates.chatId ?? existing.chatId,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveTelegramConnection(updated);\n\n /* Regenerate capability file with updated content. */\n const parentBot = configStore.getTelegramBot(updated.botId);\n if (parentBot) {\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 'telegram', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 'telegram', updated.id, buildTelegramCapabilityContent(parentBot, updated));\n }\n\n syncTelegramRunner();\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/telegram/connections/:id — delete a connection. */\n server.route('DELETE', '/api/telegram/connections/:id', async (_req, res, params) => {\n const existing = configStore.getTelegramConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteTelegramConnection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 'telegram', existing.id);\n syncTelegramRunner();\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * API routes for global cron job and connection management.\n *\n * Provides CRUD for cron jobs + connections stored in config.db.\n * After every mutation, syncs the cron-runner process with updated config.\n * Follows the same resource + connection pattern as HTTP and Telegram routes.\n */\n\nimport { randomUUID } from 'crypto';\nimport type { CronJob, CronConnection, CronJobConfig } from '@repo/types';\nimport type { ApiServer } from '../server.js';\nimport { sendJson } from '../server.js';\nimport type { ProcessManager } from '../../process-manager.js';\nimport type { ConfigStore } from '../../config/config-store.js';\nimport { generateCapabilityFile, removeCapabilityFile } from '../../capability-files.js';\n\n/**\n * Build CronJobConfig entries for the cron-runner from config.db.\n * Each enabled CronJob + enabled CronConnection becomes one CronJobConfig entry,\n * enabling fan-out (one job can trigger multiple agents).\n *\n * @param configStore - the global config store\n * @returns array of CronJobConfig entries for the cron-runner scheduler\n */\nexport const buildCronRunnerConfig = (configStore: ConfigStore): CronJobConfig[] => {\n const jobs = configStore.getCronJobs().filter((j) => j.enabled);\n const configs: CronJobConfig[] = [];\n\n for (const job of jobs) {\n const connections = configStore.getCronConnectionsForJob(job.id).filter((c) => c.enabled);\n\n for (const conn of connections) {\n configs.push({\n id: `${job.id}-${conn.id}`,\n name: job.name,\n schedule: job.schedule,\n command: conn.command ?? job.name,\n targetAgent: conn.targetAgent,\n enabled: true,\n createdAt: job.createdAt,\n updatedAt: job.createdAt,\n });\n }\n }\n\n return configs;\n};\n\n/**\n * Sync the cron-runner helper process with current config from the database.\n * Sends updated job list via IPC if the runner is active.\n *\n * @param processManager - process manager for sending messages\n * @param configStore - config store to read cron jobs from\n */\nconst syncCronRunner = (processManager: ProcessManager, configStore: ConfigStore): void => {\n const allJobs = buildCronRunnerConfig(configStore);\n const cronProcess = processManager.get('cron');\n\n if (cronProcess && cronProcess.status === 'running') {\n /* Runner already running — send updated config. */\n processManager.sendToChild('cron', { type: 'cron:update-jobs', jobs: allJobs });\n } else if (allJobs.length > 0) {\n /* Runner not running but jobs exist — start it. */\n const now = new Date().toISOString();\n processManager.start('cron', 'helper', {\n id: 'cron',\n kind: 'cron',\n name: 'Cron Runner',\n config: { cronJobs: allJobs },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n });\n console.log(`[cron] Auto-started cron-runner with ${allJobs.length} job(s)`);\n }\n\n console.log(`[cron] Synced ${allJobs.length} cron job config(s)`);\n};\n\n/**\n * Build the markdown content for a cron capability file.\n *\n * @param job - the cron job\n * @param connection - the cron connection\n * @returns markdown string for the capability file\n */\nconst buildCronCapabilityContent = (job: CronJob, connection: CronConnection): string =>\n [\n `# Cron: ${job.name}`,\n `Schedule: ${job.schedule}`,\n `Command: /${connection.command ?? job.name}`,\n `Connected to agent: ${connection.targetAgent}`,\n ].join('\\n');\n\n/**\n * Register cron job and connection API routes on the daemon's API server.\n *\n * Handles job CRUD, connection CRUD, and syncs the cron-runner after mutations.\n *\n * @param server - the API server instance\n * @param processManager - for syncing the cron-runner\n * @param configStore - global config (cron_jobs, cron_connections)\n * @param agentsDir - absolute path to the agents directory\n */\nexport const registerCronRoutes = (\n server: ApiServer,\n processManager: ProcessManager,\n configStore: ConfigStore,\n agentsDir: string,\n): void => {\n /* ──────────────── Job Management ──────────────── */\n\n /** GET /api/cron/jobs — list all cron jobs. */\n server.route('GET', '/api/cron/jobs', async (_req, res) => {\n sendJson(res, 200, { cronJobs: configStore.getCronJobs() });\n });\n\n /** POST /api/cron/jobs — create a new cron job. */\n server.route('POST', '/api/cron/jobs', async (_req, res, _params, body) => {\n const input = body as { name?: string; schedule?: string } | null;\n\n if (!input?.name || !input?.schedule) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'name and schedule are required', statusCode: 400 });\n return;\n }\n\n const job: CronJob = {\n id: randomUUID(),\n name: input.name,\n schedule: input.schedule,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveCronJob(job);\n syncCronRunner(processManager, configStore);\n sendJson(res, 201, job);\n });\n\n /** GET /api/cron/jobs/:id — get a single cron job. */\n server.route('GET', '/api/cron/jobs/:id', async (_req, res, params) => {\n const job = configStore.getCronJob(params['id']!);\n if (!job) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Cron job not found', statusCode: 404 });\n return;\n }\n sendJson(res, 200, job);\n });\n\n /** PUT /api/cron/jobs/:id — update a cron job. */\n server.route('PUT', '/api/cron/jobs/:id', async (_req, res, params, body) => {\n const existing = configStore.getCronJob(params['id']!);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Cron job not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<{ name: string; schedule: string; enabled: boolean }>;\n const updated: CronJob = {\n ...existing,\n name: updates.name ?? existing.name,\n schedule: updates.schedule ?? existing.schedule,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveCronJob(updated);\n syncCronRunner(processManager, configStore);\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/cron/jobs/:id — delete a cron job and cascade-delete its connections + files. */\n server.route('DELETE', '/api/cron/jobs/:id', async (_req, res, params) => {\n const job = configStore.getCronJob(params['id']!);\n if (!job) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Cron job not found', statusCode: 404 });\n return;\n }\n\n /* Remove capability files for all connections before cascade-delete. */\n const connections = configStore.getCronConnectionsForJob(params['id']!);\n for (const conn of connections) {\n removeCapabilityFile(agentsDir, conn.targetAgent, 'cron', conn.id);\n }\n\n configStore.deleteCronJob(params['id']!);\n syncCronRunner(processManager, configStore);\n sendJson(res, 200, { deleted: true });\n });\n\n /* ──────────────── Connection Management ──────────────── */\n\n /** GET /api/cron/connections — list all connections. */\n server.route('GET', '/api/cron/connections', async (_req, res) => {\n sendJson(res, 200, { connections: configStore.getCronConnections() });\n });\n\n /** POST /api/cron/connections — create a new connection. */\n server.route('POST', '/api/cron/connections', async (_req, res, _params, body) => {\n const input = body as { cronJobId?: string; targetAgent?: string; command?: string } | null;\n\n if (!input?.cronJobId || !input?.targetAgent || !input?.command) {\n sendJson(res, 400, { error: 'VALIDATION', message: 'cronJobId, targetAgent, and command are required', statusCode: 400 });\n return;\n }\n\n if (!configStore.getCronJob(input.cronJobId)) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Cron job not found', statusCode: 404 });\n return;\n }\n\n const connection: CronConnection = {\n id: randomUUID(),\n cronJobId: input.cronJobId,\n targetAgent: input.targetAgent,\n command: input.command,\n enabled: true,\n createdAt: new Date().toISOString(),\n };\n\n configStore.saveCronConnection(connection);\n\n /* Generate capability file for the new connection. */\n const parentJob = configStore.getCronJob(input.cronJobId);\n if (parentJob) {\n generateCapabilityFile(agentsDir, connection.targetAgent, 'cron', connection.id, buildCronCapabilityContent(parentJob, connection));\n }\n\n syncCronRunner(processManager, configStore);\n sendJson(res, 201, connection);\n });\n\n /** PUT /api/cron/connections/:id — update a connection. */\n server.route('PUT', '/api/cron/connections/:id', async (_req, res, params, body) => {\n const existing = configStore.getCronConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n const updates = (body ?? {}) as Partial<CronConnection>;\n const updated: CronConnection = {\n ...existing,\n targetAgent: updates.targetAgent ?? existing.targetAgent,\n command: updates.command !== undefined ? updates.command : existing.command,\n enabled: updates.enabled ?? existing.enabled,\n };\n\n configStore.saveCronConnection(updated);\n\n /* Regenerate capability file with updated content. */\n const parentJob = configStore.getCronJob(updated.cronJobId);\n if (parentJob) {\n if (updates.targetAgent && updates.targetAgent !== existing.targetAgent) {\n removeCapabilityFile(agentsDir, existing.targetAgent, 'cron', existing.id);\n }\n generateCapabilityFile(agentsDir, updated.targetAgent, 'cron', updated.id, buildCronCapabilityContent(parentJob, updated));\n }\n\n syncCronRunner(processManager, configStore);\n sendJson(res, 200, updated);\n });\n\n /** DELETE /api/cron/connections/:id — delete a connection. */\n server.route('DELETE', '/api/cron/connections/:id', async (_req, res, params) => {\n const existing = configStore.getCronConnections().find((c) => c.id === params['id']);\n if (!existing) {\n sendJson(res, 404, { error: 'NOT_FOUND', message: 'Connection not found', statusCode: 404 });\n return;\n }\n\n configStore.deleteCronConnection(params['id']!);\n removeCapabilityFile(agentsDir, existing.targetAgent, 'cron', existing.id);\n syncCronRunner(processManager, configStore);\n sendJson(res, 200, { deleted: true });\n });\n};\n","/**\n * Centralized path configuration for the Kindflow daemon.\n *\n * In dev mode (monorepo), paths point to workspace directories.\n * In CLI mode (published npm package), paths point to ~/.kindflow/ and the package's dist/.\n */\n\nimport { resolve, dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { homedir } from 'os';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n/**\n * All configurable paths the daemon needs to operate.\n * Replaces the old `repoRoot` parameter that assumed a monorepo layout.\n */\nexport interface KindflowPaths {\n /** Where agent directories live (each containing agent/ + master/). */\n agentsDir: string;\n\n /** Where agent templates are (copied on `kindflow create`). */\n templateDir: string;\n\n /** Where config.db and encryption keys live. */\n dataDir: string;\n\n /** Where compiled runner entry scripts are located. */\n runnersDir: string;\n\n /** Pre-built web UI directory, or null to skip web serving. */\n webDir: string | null;\n}\n\n/**\n * Detect whether the daemon is running in dev mode (monorepo) or CLI mode (published package).\n *\n * @returns 'dev' if running from TypeScript source, 'cli' if running from compiled JS\n */\nexport const detectMode = (): 'dev' | 'cli' => {\n if (process.env['KINDFLOW_DEV'] === '1') return 'dev';\n if (import.meta.url.endsWith('.ts')) return 'dev';\n return 'cli';\n};\n\n/**\n * Build the default KindflowPaths for dev mode (Turborepo monorepo).\n *\n * @returns paths pointing to the monorepo workspace directories\n */\nexport const devPaths = (): KindflowPaths => {\n const repoRoot = resolve(__dirname, '../../..');\n return {\n agentsDir: resolve(repoRoot, 'apps'),\n templateDir: resolve(repoRoot, 'templates/agent'),\n dataDir: process.env['KINDFLOW_DATA_DIR'] ?? resolve(homedir(), '.kindflow'),\n runnersDir: resolve(repoRoot, 'packages'),\n webDir: null,\n };\n};\n\n/**\n * Build the default KindflowPaths for CLI mode (globally installed npm package).\n *\n * @returns paths pointing to ~/.kindflow/ and the package's dist/\n */\nexport const cliPaths = (): KindflowPaths => {\n const dataDir = process.env['KINDFLOW_DATA_DIR'] ?? resolve(homedir(), '.kindflow');\n return {\n agentsDir: resolve(dataDir, 'agents'),\n templateDir: resolve(__dirname, 'templates/agent'),\n dataDir,\n runnersDir: __dirname,\n webDir: resolve(__dirname, 'web'),\n };\n};\n\n/**\n * Resolve KindflowPaths based on the current mode, with optional overrides.\n *\n * @param overrides - partial overrides for specific paths\n * @returns fully resolved KindflowPaths\n */\nexport const resolvePaths = (overrides?: Partial<KindflowPaths>): KindflowPaths => {\n const mode = detectMode();\n const base = mode === 'dev' ? devPaths() : cliPaths();\n return { ...base, ...overrides };\n};\n","import { createIpcHub } from '@repo/ipc';\nimport type { IpcHub } from '@repo/ipc';\nimport { createConfigStore } from './config/config-store.js';\nimport type { ConfigStore } from './config/config-store.js';\nimport { createProcessManager } from './process-manager.js';\nimport type { ProcessManager } from './process-manager.js';\nimport { createTerminalManager } from './terminal-manager.js';\nimport type { TerminalManager } from './terminal-manager.js';\nimport { createWebServer } from './web-server.js';\nimport type { WebServer } from './web-server.js';\nimport { createApiServer } from './api/server.js';\nimport type { ApiServer } from './api/server.js';\nimport { registerAgentRoutes } from './api/routes/agents.js';\nimport { registerProcessRoutes } from './api/routes/processes.js';\nimport { registerS3Routes } from './api/routes/s3.js';\nimport { registerEmailRoutes } from './api/routes/email.js';\nimport { registerDatabaseRoutes } from './api/routes/database.js';\nimport { registerHttpRoutes } from './api/routes/http.js';\nimport { registerTelegramRoutes } from './api/routes/telegram.js';\nimport { registerCronRoutes, buildCronRunnerConfig } from './api/routes/cron.js';\nimport { decrypt, getOrCreateKey } from '@repo/crypto';\nimport { scanAgents } from './agent-scanner.js';\nimport type { KindflowPaths } from './paths.js';\nimport { resolvePaths, detectMode } from './paths.js';\n\nconst DEFAULT_PORT = 7777;\nconst DEFAULT_WEB_PORT = 7001;\nconst HUB_ID = 'kindflow-hub';\n\n/** Options for starting the daemon. */\nexport interface DaemonOptions {\n /** Override the API port. */\n port?: number;\n\n /** Override the web UI port. */\n webPort?: number;\n\n /** Override specific paths (merged with auto-detected defaults). */\n paths?: Partial<KindflowPaths>;\n}\n\n/** A running daemon instance. */\nexport interface Daemon {\n /** The global config store. */\n configStore: ConfigStore;\n\n /** Manages agent and helper child processes. */\n processManager: ProcessManager;\n\n /** Manages PTY terminal sessions for \"Configure with AI\". */\n terminalManager: TerminalManager;\n\n /** The IPC message hub. */\n ipcHub: IpcHub;\n\n /** The HTTP + WebSocket API server. */\n apiServer: ApiServer;\n\n /** The web UI server (null if web is not enabled). */\n webServer: WebServer | null;\n\n /** Gracefully shut down the daemon. */\n shutdown: () => Promise<void>;\n}\n\n/** Start the Kindflow daemon. */\nexport const startDaemon = async (options?: DaemonOptions): Promise<Daemon> => {\n const paths = resolvePaths(options?.paths);\n\n console.log('[daemon] Starting Kindflow daemon...');\n console.log(`[daemon] Agents dir: ${paths.agentsDir}`);\n console.log(`[daemon] Data dir: ${paths.dataDir}`);\n console.log(`[daemon] Runners dir: ${paths.runnersDir}`);\n\n /* 1. Config store (global settings + helpers only). */\n const configStore = await createConfigStore(paths.dataDir);\n console.log('[daemon] Config store initialized');\n\n const configPort = parseInt(configStore.getSetting('daemon.port') ?? '', 10);\n const configWebPort = parseInt(configStore.getSetting('web.port') ?? '', 10);\n const port = options?.port ?? (configPort || DEFAULT_PORT);\n const webPort = options?.webPort ?? (configWebPort || DEFAULT_WEB_PORT);\n\n /* 2. API server. */\n const apiServer = createApiServer();\n\n /* 3. IPC hub. */\n const ipcHub = createIpcHub({\n id: HUB_ID,\n onMessage: (msg) => {\n if (msg.to !== '*') {\n ipcHub.sendTo(msg.to, msg);\n } else {\n ipcHub.broadcast(msg);\n }\n },\n });\n await ipcHub.start();\n console.log('[daemon] IPC hub started');\n\n /* 4. Process manager. */\n const processManager = createProcessManager({\n hubId: HUB_ID,\n runnersDir: paths.runnersDir,\n isDev: detectMode() === 'dev',\n callbacks: {\n onStatusChange: (id, status, pid) => {\n apiServer.broadcast({ type: 'process:status', id, status, pid });\n },\n onLog: (id, stream, data) => {\n apiServer.broadcast({ type: 'process:log', id, stream, data });\n },\n onSdkMessage: (id, message) => {\n apiServer.broadcast({ type: 'process:log', id, stream: 'stdout', data: JSON.stringify(message) });\n },\n },\n });\n console.log('[daemon] Process manager initialized');\n\n /* 5. Terminal manager. */\n const terminalManager = createTerminalManager({\n callbacks: {\n onOutput: (sessionId, data) => {\n apiServer.broadcast({ type: 'terminal:output', sessionId, data });\n },\n onClose: (sessionId) => {\n apiServer.broadcast({ type: 'terminal:closed', sessionId });\n },\n },\n });\n console.log('[daemon] Terminal manager initialized');\n\n /* 6. Register API routes — pass agentsDir + templateDir instead of repoRoot. */\n registerAgentRoutes(apiServer, processManager, terminalManager, paths.agentsDir, paths.templateDir, configStore);\n registerProcessRoutes(apiServer, processManager, configStore, paths.agentsDir);\n registerS3Routes(apiServer, configStore, paths.agentsDir);\n registerEmailRoutes(apiServer, processManager, configStore, port, paths.agentsDir);\n registerDatabaseRoutes(apiServer, configStore, paths.agentsDir);\n registerHttpRoutes(apiServer, processManager, ipcHub, configStore, paths.agentsDir);\n registerTelegramRoutes(apiServer, processManager, configStore, paths.agentsDir);\n registerCronRoutes(apiServer, processManager, configStore, paths.agentsDir);\n\n /* Handle WebSocket commands. */\n apiServer.onWsCommand((_ws, command) => {\n switch (command.type) {\n case 'terminal:ready':\n terminalManager.flush(command.sessionId);\n break;\n case 'terminal:input':\n terminalManager.write(command.sessionId, command.data);\n break;\n case 'terminal:resize':\n terminalManager.resize(command.sessionId, command.cols, command.rows);\n break;\n }\n });\n\n await apiServer.listen(port);\n\n /* 7. Auto-start agents (scanned from filesystem). */\n const allAgents = scanAgents(paths.agentsDir);\n const agents = allAgents.filter((a) => a.config.autoStart);\n const helpers = configStore.getHelpers().filter((h) => h.autoStart);\n\n for (const agent of agents) {\n console.log(`[daemon] Auto-starting agent: ${agent.config.name}`);\n processManager.start(agent.id, 'agent', agent);\n }\n\n for (const helper of helpers) {\n console.log(`[daemon] Auto-starting helper: ${helper.name}`);\n processManager.start(helper.id, 'helper', helper);\n }\n\n console.log(`[daemon] Discovered ${allAgents.length} agent(s), auto-started ${agents.length}`);\n\n /* 7b. Auto-start email-imap helper if accounts exist (skip if already started by generic helper loop). */\n const emailAccounts = configStore.getEmailAccounts();\n const oauthCreds = configStore.getOAuthCredentials('gmail');\n if (emailAccounts.length > 0 && oauthCreds && !processManager.get('email-imap')) {\n const now = new Date().toISOString();\n const imapHelper = {\n id: 'email-imap',\n kind: 'email-imap',\n name: 'Email IMAP Watcher',\n config: {\n accounts: emailAccounts,\n connections: configStore.getEmailConnections(),\n oauthCredentials: oauthCreds,\n },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n };\n configStore.saveHelper(imapHelper);\n console.log(`[daemon] Auto-starting email-imap helper (${emailAccounts.length} account(s))`);\n processManager.start('email-imap', 'helper', imapHelper);\n }\n\n /* 7c. Auto-start telegram helper if bots + connections exist. */\n const telegramBots = configStore.getTelegramBots();\n const telegramConns = configStore.getTelegramConnections();\n if (telegramBots.length > 0 && telegramConns.length > 0 && !processManager.get('telegram')) {\n const now = new Date().toISOString();\n const telegramEncKey = getOrCreateKey();\n const decryptedBots = telegramBots.map((b) => ({\n ...b,\n token: decrypt(b.token, telegramEncKey),\n }));\n const telegramHelper = {\n id: 'telegram',\n kind: 'telegram',\n name: 'Telegram Bot Runner',\n config: {\n bots: decryptedBots,\n connections: telegramConns,\n },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n };\n configStore.saveHelper(telegramHelper);\n console.log(`[daemon] Auto-starting telegram helper (${telegramBots.length} bot(s), ${telegramConns.length} connection(s))`);\n processManager.start('telegram', 'helper', telegramHelper);\n }\n\n /* 7d. Auto-start cron-runner if any enabled cron jobs with enabled connections exist. */\n const cronRunnerJobs = buildCronRunnerConfig(configStore);\n if (cronRunnerJobs.length > 0 && !processManager.get('cron')) {\n const now = new Date().toISOString();\n const cronHelper = {\n id: 'cron',\n kind: 'cron',\n name: 'Cron Runner',\n config: { cronJobs: cronRunnerJobs },\n autoStart: true,\n createdAt: now,\n updatedAt: now,\n };\n configStore.saveHelper(cronHelper);\n console.log(`[daemon] Auto-starting cron-runner (${cronRunnerJobs.length} job config(s))`);\n processManager.start('cron', 'helper', cronHelper);\n }\n\n /* 8. Web server (only when webDir is provided). */\n let webServer: WebServer | null = null;\n if (paths.webDir) {\n webServer = createWebServer({ port: webPort, webAppDir: paths.webDir });\n try {\n await webServer.start();\n console.log(`[daemon] Web UI: http://localhost:${webPort}`);\n } catch (err) {\n console.error(`[daemon] Failed to start web UI: ${err instanceof Error ? err.message : err}`);\n }\n }\n\n console.log(`[daemon] API: http://localhost:${port}`);\n\n const shutdown = async (): Promise<void> => {\n console.log('[daemon] Shutting down...');\n webServer?.stop();\n terminalManager.closeAll();\n await processManager.shutdownAll();\n ipcHub.stop();\n await apiServer.close();\n configStore.close();\n console.log('[daemon] Shutdown complete');\n };\n\n return { configStore, processManager, terminalManager, ipcHub, apiServer, webServer, shutdown };\n};\n"],"mappings":"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","names":["resolve","fork","resolve","resolve","resolve","resolve","join","readFileSync","writeFileSync","existsSync","resolve","randomUUID","mkdirSync","writeFileSync","rmSync","existsSync","readdirSync","resolve","dirname","randomUUID","randomUUID","readFileSync","writeFileSync","mkdirSync","join","homedir","getOrCreateKey","encrypt","decrypt","getOrCreateKey","decrypt","encrypt","randomUUID","randomUUID","verifyProfile","decrypt","getOrCreateKey","randomUUID","encrypt","randomUUID","getOrCreateKey","decrypt","randomUUID","encrypt","randomUUID","getOrCreateKey","decrypt","randomUUID","encrypt","randomUUID","randomUUID","resolve","dirname","homedir","getOrCreateKey","decrypt"]}