@jiggai/kitchen 0.3.33 → 0.3.48

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 (570) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -0
  3. package/.next/build-manifest.json +5 -5
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +4 -4
  6. package/.next/required-server-files.json +4 -4
  7. package/.next/routes-manifest.json +24 -0
  8. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/.next/server/app/_global-error.html +2 -2
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  19. package/.next/server/app/_not-found/page.js +2 -2
  20. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/_not-found.html +1 -1
  23. package/.next/server/app/_not-found.rsc +5 -5
  24. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  25. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  27. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/.next/server/app/agents/[agentId]/page/build-manifest.json +3 -3
  31. package/.next/server/app/agents/[agentId]/page.js +2 -2
  32. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  33. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/agents/[id]/route.js +1 -1
  35. package/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  36. package/.next/server/app/api/agents/add/route.js.nft.json +1 -1
  37. package/.next/server/app/api/agents/file/route.js.nft.json +1 -1
  38. package/.next/server/app/api/agents/files/route.js.nft.json +1 -1
  39. package/.next/server/app/api/agents/route.js +1 -1
  40. package/.next/server/app/api/agents/route.js.nft.json +1 -1
  41. package/.next/server/app/api/agents/skills/install/route.js.nft.json +1 -1
  42. package/.next/server/app/api/agents/skills/route.js.nft.json +1 -1
  43. package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
  44. package/.next/server/app/api/channels/bindings/route.js +1 -1
  45. package/.next/server/app/api/channels/bindings/route.js.nft.json +1 -1
  46. package/.next/server/app/api/cron/bulk/route/app-paths-manifest.json +3 -0
  47. package/.next/server/app/api/cron/bulk/route/build-manifest.json +11 -0
  48. package/.next/server/app/api/cron/bulk/route/server-reference-manifest.json +4 -0
  49. package/.next/server/app/api/cron/bulk/route.js +6 -0
  50. package/.next/server/app/api/cron/bulk/route.js.map +5 -0
  51. package/.next/server/app/api/cron/bulk/route.js.nft.json +1 -0
  52. package/.next/server/app/api/cron/bulk/route_client-reference-manifest.js +2 -0
  53. package/.next/server/app/api/cron/delete/route.js.nft.json +1 -1
  54. package/.next/server/app/api/cron/jobs/route.js.nft.json +1 -1
  55. package/.next/server/app/api/cron/recipe-installed/route.js.nft.json +1 -1
  56. package/.next/server/app/api/cron/worker/route.js +2 -1
  57. package/.next/server/app/api/cron/worker/route.js.nft.json +1 -1
  58. package/.next/server/app/api/goals/[id]/promote/route.js.nft.json +1 -1
  59. package/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/goals/route.js.nft.json +1 -1
  61. package/.next/server/app/api/ids/check/route.js.nft.json +1 -1
  62. package/.next/server/app/api/manifest/route/app-paths-manifest.json +3 -0
  63. package/.next/server/app/api/manifest/route/build-manifest.json +11 -0
  64. package/.next/server/app/api/manifest/route/server-reference-manifest.json +4 -0
  65. package/.next/server/app/api/manifest/route.js +6 -0
  66. package/.next/server/app/api/manifest/route.js.map +5 -0
  67. package/.next/server/app/api/manifest/route.js.nft.json +1 -0
  68. package/.next/server/app/api/manifest/route_client-reference-manifest.js +2 -0
  69. package/.next/server/app/api/marketplace/recipes/[slug]/route.js +1 -1
  70. package/.next/server/app/api/marketplace/recipes/[slug]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/marketplace/recipes/route.js +1 -1
  72. package/.next/server/app/api/marketplace/recipes/route.js.nft.json +1 -1
  73. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js +2 -2
  74. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js +1 -1
  76. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/plugins/route.js +1 -1
  78. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  79. package/.next/server/app/api/plugins/test/route.js +1 -1
  80. package/.next/server/app/api/plugins/test/route.js.nft.json +1 -1
  81. package/.next/server/app/api/recipes/[id]/route.js.nft.json +1 -1
  82. package/.next/server/app/api/recipes/clone/route.js.nft.json +1 -1
  83. package/.next/server/app/api/recipes/custom-team/route.js.nft.json +1 -1
  84. package/.next/server/app/api/recipes/delete/route.js.nft.json +1 -1
  85. package/.next/server/app/api/recipes/local-agent-catalog/route.js.nft.json +1 -1
  86. package/.next/server/app/api/recipes/route.js +1 -1
  87. package/.next/server/app/api/recipes/route.js.nft.json +1 -1
  88. package/.next/server/app/api/recipes/team-agents/route.js.nft.json +1 -1
  89. package/.next/server/app/api/scaffold/route.js.nft.json +1 -1
  90. package/.next/server/app/api/settings/cron-installation/route.js.nft.json +1 -1
  91. package/.next/server/app/api/settings/model-options/route.js +1 -1
  92. package/.next/server/app/api/settings/model-options/route.js.nft.json +1 -1
  93. package/.next/server/app/api/swarms/start/route.js +1 -1
  94. package/.next/server/app/api/swarms/start/route.js.nft.json +1 -1
  95. package/.next/server/app/api/swarms/status/route.js +1 -1
  96. package/.next/server/app/api/swarms/status/route.js.nft.json +1 -1
  97. package/.next/server/app/api/teams/[teamId]/media-providers/route.js +1 -1
  98. package/.next/server/app/api/teams/[teamId]/media-providers/route.js.nft.json +1 -1
  99. package/.next/server/app/api/teams/[teamId]/tickets/assign/route.js.nft.json +1 -1
  100. package/.next/server/app/api/teams/[teamId]/tickets/assignees/route.js.nft.json +1 -1
  101. package/.next/server/app/api/teams/[teamId]/tickets/comment/route.js.nft.json +1 -1
  102. package/.next/server/app/api/teams/[teamId]/tickets/delete/route.js.nft.json +1 -1
  103. package/.next/server/app/api/teams/[teamId]/tickets/move/route.js.nft.json +1 -1
  104. package/.next/server/app/api/teams/[teamId]/tickets/move-to-goals/route.js.nft.json +1 -1
  105. package/.next/server/app/api/teams/file/route.js.nft.json +1 -1
  106. package/.next/server/app/api/teams/files/route.js.nft.json +1 -1
  107. package/.next/server/app/api/teams/list/route/app-paths-manifest.json +3 -0
  108. package/.next/server/app/api/teams/list/route/build-manifest.json +11 -0
  109. package/.next/server/app/api/teams/list/route/server-reference-manifest.json +4 -0
  110. package/.next/server/app/api/teams/list/route.js +6 -0
  111. package/.next/server/app/api/teams/list/route.js.map +5 -0
  112. package/.next/server/app/api/teams/list/route.js.nft.json +1 -0
  113. package/.next/server/app/api/teams/list/route_client-reference-manifest.js +2 -0
  114. package/.next/server/app/api/teams/memory/route.js.nft.json +1 -1
  115. package/.next/server/app/api/teams/meta/route.js.nft.json +1 -1
  116. package/.next/server/app/api/teams/orchestrator/route.js +1 -1
  117. package/.next/server/app/api/teams/orchestrator/route.js.nft.json +1 -1
  118. package/.next/server/app/api/teams/remove-team/route.js.nft.json +1 -1
  119. package/.next/server/app/api/teams/skills/install/route.js.nft.json +1 -1
  120. package/.next/server/app/api/teams/skills/route.js.nft.json +1 -1
  121. package/.next/server/app/api/teams/workflow-deliverables/file/route.js +1 -1
  122. package/.next/server/app/api/teams/workflow-deliverables/file/route.js.nft.json +1 -1
  123. package/.next/server/app/api/teams/workflow-deliverables/route.js.nft.json +1 -1
  124. package/.next/server/app/api/teams/workflow-runs/route.js.nft.json +1 -1
  125. package/.next/server/app/api/teams/workflow-templates/route.js.nft.json +1 -1
  126. package/.next/server/app/api/teams/workflow-triggers/route/app-paths-manifest.json +3 -0
  127. package/.next/server/app/api/teams/workflow-triggers/route/build-manifest.json +11 -0
  128. package/.next/server/app/api/teams/workflow-triggers/route/server-reference-manifest.json +4 -0
  129. package/.next/server/app/api/teams/workflow-triggers/route.js +6 -0
  130. package/.next/server/app/api/teams/workflow-triggers/route.js.map +5 -0
  131. package/.next/server/app/api/teams/workflow-triggers/route.js.nft.json +1 -0
  132. package/.next/server/app/api/teams/workflow-triggers/route_client-reference-manifest.js +2 -0
  133. package/.next/server/app/api/teams/workflows/route.js.nft.json +1 -1
  134. package/.next/server/app/api/tickets/assign/route.js.nft.json +1 -1
  135. package/.next/server/app/api/tickets/assignees/route.js.nft.json +1 -1
  136. package/.next/server/app/api/tickets/move/route.js.nft.json +1 -1
  137. package/.next/server/app/channels/page/build-manifest.json +3 -3
  138. package/.next/server/app/channels/page.js +2 -2
  139. package/.next/server/app/channels/page.js.nft.json +1 -1
  140. package/.next/server/app/channels/page_client-reference-manifest.js +1 -1
  141. package/.next/server/app/channels.html +2 -2
  142. package/.next/server/app/channels.rsc +6 -6
  143. package/.next/server/app/channels.segments/_full.segment.rsc +6 -6
  144. package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
  145. package/.next/server/app/channels.segments/_index.segment.rsc +3 -3
  146. package/.next/server/app/channels.segments/_tree.segment.rsc +2 -2
  147. package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +2 -2
  148. package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
  149. package/.next/server/app/cron-jobs/page/build-manifest.json +3 -3
  150. package/.next/server/app/cron-jobs/page.js +2 -2
  151. package/.next/server/app/cron-jobs/page.js.nft.json +1 -1
  152. package/.next/server/app/cron-jobs/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/goals/[id]/page/build-manifest.json +3 -3
  154. package/.next/server/app/goals/[id]/page.js +2 -2
  155. package/.next/server/app/goals/[id]/page.js.nft.json +1 -1
  156. package/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/goals/new/page/build-manifest.json +3 -3
  158. package/.next/server/app/goals/new/page.js +2 -2
  159. package/.next/server/app/goals/new/page.js.nft.json +1 -1
  160. package/.next/server/app/goals/new/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/goals/new.html +2 -2
  162. package/.next/server/app/goals/new.rsc +6 -6
  163. package/.next/server/app/goals/new.segments/_full.segment.rsc +6 -6
  164. package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
  165. package/.next/server/app/goals/new.segments/_index.segment.rsc +3 -3
  166. package/.next/server/app/goals/new.segments/_tree.segment.rsc +2 -2
  167. package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +2 -2
  168. package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
  169. package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
  170. package/.next/server/app/goals/page/build-manifest.json +3 -3
  171. package/.next/server/app/goals/page.js +2 -2
  172. package/.next/server/app/goals/page.js.nft.json +1 -1
  173. package/.next/server/app/goals/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/goals.html +1 -1
  175. package/.next/server/app/goals.rsc +6 -6
  176. package/.next/server/app/goals.segments/_full.segment.rsc +6 -6
  177. package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
  178. package/.next/server/app/goals.segments/_index.segment.rsc +3 -3
  179. package/.next/server/app/goals.segments/_tree.segment.rsc +2 -2
  180. package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +2 -2
  181. package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
  182. package/.next/server/app/page/build-manifest.json +3 -3
  183. package/.next/server/app/page.js +4 -4
  184. package/.next/server/app/page.js.nft.json +1 -1
  185. package/.next/server/app/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/recipes/[id]/page/build-manifest.json +3 -3
  187. package/.next/server/app/recipes/[id]/page.js +4 -4
  188. package/.next/server/app/recipes/[id]/page.js.nft.json +1 -1
  189. package/.next/server/app/recipes/[id]/page_client-reference-manifest.js +1 -1
  190. package/.next/server/app/recipes/page/build-manifest.json +3 -3
  191. package/.next/server/app/recipes/page.js +4 -4
  192. package/.next/server/app/recipes/page.js.nft.json +1 -1
  193. package/.next/server/app/recipes/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app/runs/page/build-manifest.json +3 -3
  195. package/.next/server/app/runs/page.js +5 -7
  196. package/.next/server/app/runs/page.js.nft.json +1 -1
  197. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/settings/page/build-manifest.json +3 -3
  199. package/.next/server/app/settings/page.js +2 -2
  200. package/.next/server/app/settings/page.js.nft.json +1 -1
  201. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  202. package/.next/server/app/settings.html +1 -1
  203. package/.next/server/app/settings.rsc +6 -6
  204. package/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  205. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  206. package/.next/server/app/settings.segments/_index.segment.rsc +3 -3
  207. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  208. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  209. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  210. package/.next/server/app/teams/[teamId]/deliverables/page/build-manifest.json +3 -3
  211. package/.next/server/app/teams/[teamId]/deliverables/page.js +5 -5
  212. package/.next/server/app/teams/[teamId]/deliverables/page.js.nft.json +1 -1
  213. package/.next/server/app/teams/[teamId]/deliverables/page_client-reference-manifest.js +1 -1
  214. package/.next/server/app/teams/[teamId]/page/build-manifest.json +3 -3
  215. package/.next/server/app/teams/[teamId]/page.js +5 -6
  216. package/.next/server/app/teams/[teamId]/page.js.nft.json +1 -1
  217. package/.next/server/app/teams/[teamId]/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page/build-manifest.json +3 -3
  219. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js +5 -6
  220. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js.nft.json +1 -1
  221. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app/teams/[teamId]/runs/page/build-manifest.json +3 -3
  223. package/.next/server/app/teams/[teamId]/runs/page.js +2 -2
  224. package/.next/server/app/teams/[teamId]/runs/page.js.nft.json +1 -1
  225. package/.next/server/app/teams/[teamId]/runs/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page/build-manifest.json +3 -3
  227. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js +2 -2
  228. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js.nft.json +1 -1
  229. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  230. package/.next/server/app/teams/[teamId]/tickets/page/build-manifest.json +3 -3
  231. package/.next/server/app/teams/[teamId]/tickets/page.js +2 -2
  232. package/.next/server/app/teams/[teamId]/tickets/page.js.nft.json +1 -1
  233. package/.next/server/app/teams/[teamId]/tickets/page_client-reference-manifest.js +1 -1
  234. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page/build-manifest.json +3 -3
  235. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js +5 -5
  236. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js.nft.json +1 -1
  237. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/teams/[teamId]/workflows/page/build-manifest.json +3 -3
  239. package/.next/server/app/teams/[teamId]/workflows/page.js +5 -5
  240. package/.next/server/app/teams/[teamId]/workflows/page.js.nft.json +1 -1
  241. package/.next/server/app/teams/[teamId]/workflows/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/tickets/[ticket]/page/build-manifest.json +3 -3
  243. package/.next/server/app/tickets/[ticket]/page.js +2 -2
  244. package/.next/server/app/tickets/[ticket]/page.js.nft.json +1 -1
  245. package/.next/server/app/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  246. package/.next/server/app/tickets/page/build-manifest.json +3 -3
  247. package/.next/server/app/tickets/page.js +2 -2
  248. package/.next/server/app/tickets/page.js.nft.json +1 -1
  249. package/.next/server/app/tickets/page_client-reference-manifest.js +1 -1
  250. package/.next/server/app-paths-manifest.json +4 -0
  251. package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js +3 -0
  252. package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js.map +1 -0
  253. package/.next/server/chunks/[root-of-the-server]__00a30f40._.js +1 -1
  254. package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js +3 -0
  255. package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js.map +1 -0
  256. package/.next/server/chunks/[root-of-the-server]__04f289da._.js +1 -1
  257. package/.next/server/chunks/[root-of-the-server]__08b4c8f2._.js +1 -1
  258. package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js +3 -0
  259. package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js.map +1 -0
  260. package/.next/server/chunks/[root-of-the-server]__0f55461f._.js +1 -1
  261. package/.next/server/chunks/[root-of-the-server]__1311d7a3._.js +1 -1
  262. package/.next/server/chunks/[root-of-the-server]__1480ffda._.js +1 -1
  263. package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js → [root-of-the-server]__17fa6089._.js} +2 -2
  264. package/.next/server/chunks/[root-of-the-server]__1873f417._.js +1 -1
  265. package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js +3 -0
  266. package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js.map +1 -0
  267. package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js +3 -0
  268. package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js.map +1 -0
  269. package/.next/server/chunks/[root-of-the-server]__1f1e62ac._.js +1 -1
  270. package/.next/server/chunks/[root-of-the-server]__20b1f42d._.js +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__21ad9eeb._.js +1 -1
  272. package/.next/server/chunks/[root-of-the-server]__2c207e60._.js +1 -1
  273. package/.next/server/chunks/[root-of-the-server]__2dd1afff._.js +1 -1
  274. package/.next/server/chunks/[root-of-the-server]__3021a250._.js +1 -1
  275. package/.next/server/chunks/[root-of-the-server]__30cd38e9._.js +1 -1
  276. package/.next/server/chunks/[root-of-the-server]__392e585d._.js +2 -2
  277. package/.next/server/chunks/[root-of-the-server]__3bfad714._.js +1 -1
  278. package/.next/server/chunks/[root-of-the-server]__3d15e850._.js +1 -1
  279. package/.next/server/chunks/[root-of-the-server]__3f648b9b._.js +1 -1
  280. package/.next/server/chunks/[root-of-the-server]__482575d2._.js +1 -1
  281. package/.next/server/chunks/[root-of-the-server]__4898071c._.js +4 -4
  282. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js +22 -0
  283. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js.map +1 -0
  284. package/.next/server/chunks/[root-of-the-server]__4ee12514._.js +1 -1
  285. package/.next/server/chunks/[root-of-the-server]__55defc7c._.js +1 -1
  286. package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js → [root-of-the-server]__5792c29e._.js} +2 -2
  287. package/.next/server/chunks/[root-of-the-server]__5aa1dc93._.js +1 -1
  288. package/.next/server/chunks/[root-of-the-server]__5c5990a6._.js +1 -1
  289. package/.next/server/chunks/[root-of-the-server]__603cb0fa._.js +1 -1
  290. package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js +1 -1
  291. package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js.map +1 -1
  292. package/.next/server/chunks/[root-of-the-server]__636919a0._.js +1 -1
  293. package/.next/server/chunks/[root-of-the-server]__653d42f0._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__653d42f0._.js.map +1 -0
  295. package/.next/server/chunks/[root-of-the-server]__663e79ff._.js +1 -1
  296. package/.next/server/chunks/{[root-of-the-server]__0883634a._.js → [root-of-the-server]__68a21bb1._.js} +2 -2
  297. package/.next/server/chunks/{[root-of-the-server]__0883634a._.js.map → [root-of-the-server]__68a21bb1._.js.map} +1 -1
  298. package/.next/server/chunks/[root-of-the-server]__69c065ce._.js +1 -1
  299. package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js.map +1 -0
  301. package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js → [root-of-the-server]__7194dfe2._.js} +3 -3
  302. package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js → [root-of-the-server]__7347e39f._.js} +2 -2
  303. package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js.map → [root-of-the-server]__7347e39f._.js.map} +1 -1
  304. package/.next/server/chunks/[root-of-the-server]__74e2a9ba._.js +1 -1
  305. package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js +1 -1
  306. package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js.map +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__7e12b9f4._.js +1 -1
  308. package/.next/server/chunks/[root-of-the-server]__87875179._.js +1 -1
  309. package/.next/server/chunks/{[root-of-the-server]__17124952._.js → [root-of-the-server]__89f2190c._.js} +3 -3
  310. package/.next/server/chunks/[root-of-the-server]__8f8e110f._.js +1 -1
  311. package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js +1 -1
  312. package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js.map +1 -1
  313. package/.next/server/chunks/[root-of-the-server]__937b40e2._.js +3 -0
  314. package/.next/server/chunks/[root-of-the-server]__937b40e2._.js.map +1 -0
  315. package/.next/server/chunks/[root-of-the-server]__9853b72d._.js +1 -1
  316. package/.next/server/chunks/[root-of-the-server]__9dba20b3._.js +1 -1
  317. package/.next/server/chunks/[root-of-the-server]__9e96d37b._.js +1 -1
  318. package/.next/server/chunks/[root-of-the-server]__aba68368._.js +1 -1
  319. package/.next/server/chunks/[root-of-the-server]__aed4e4f2._.js +1 -1
  320. package/.next/server/chunks/[root-of-the-server]__b6cff26d._.js +1 -1
  321. package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js → [root-of-the-server]__b986660c._.js} +2 -2
  322. package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js.map → [root-of-the-server]__b986660c._.js.map} +1 -1
  323. package/.next/server/chunks/{[root-of-the-server]__343776df._.js → [root-of-the-server]__bbed0e46._.js} +2 -2
  324. package/.next/server/chunks/[root-of-the-server]__c15c5141._.js +1 -1
  325. package/.next/server/chunks/[root-of-the-server]__c50e4bc4._.js +1 -1
  326. package/.next/server/chunks/[root-of-the-server]__cc0860cb._.js +1 -1
  327. package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js +3 -0
  328. package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js.map +1 -0
  329. package/.next/server/chunks/[root-of-the-server]__d302afb4._.js +1 -1
  330. package/.next/server/chunks/[root-of-the-server]__d4a8660e._.js +1 -1
  331. package/.next/server/chunks/[root-of-the-server]__e1432bba._.js +3 -0
  332. package/.next/server/chunks/[root-of-the-server]__e1432bba._.js.map +1 -0
  333. package/.next/server/chunks/[root-of-the-server]__e478ef0d._.js +1 -1
  334. package/.next/server/chunks/[root-of-the-server]__e9acbabd._.js +1 -1
  335. package/.next/server/chunks/[root-of-the-server]__e9d9d570._.js +1 -1
  336. package/.next/server/chunks/[root-of-the-server]__f408c708._.js +2 -2
  337. package/.next/server/chunks/[root-of-the-server]__f4cbadf7._.js +1 -1
  338. package/.next/server/chunks/[root-of-the-server]__f5cd81f1._.js +1 -1
  339. package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js +3 -0
  340. package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js.map +1 -0
  341. package/.next/server/chunks/[root-of-the-server]__f994dc62._.js +1 -1
  342. package/.next/server/chunks/[root-of-the-server]__fb22e719._.js +3 -0
  343. package/.next/server/chunks/[root-of-the-server]__fb22e719._.js.map +1 -0
  344. package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js +3 -0
  345. package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js.map +1 -0
  346. package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js +3 -0
  347. package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js.map +1 -0
  348. package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js +3 -0
  349. package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js.map +1 -0
  350. package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js +3 -0
  351. package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js.map +1 -0
  352. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js +1 -1
  353. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js.map +1 -1
  354. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3a1b29e4.js +1 -1
  355. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js +13 -0
  356. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js.map +1 -0
  357. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f5680d9e.js +1 -1
  358. package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js +1 -1
  359. package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js.map +1 -1
  360. package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js +2 -2
  361. package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js.map +1 -1
  362. package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js +3 -0
  363. package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js.map +1 -0
  364. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
  365. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
  366. package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js +3 -0
  367. package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js.map +1 -0
  368. package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js +1 -1
  369. package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js.map +1 -1
  370. package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js +3 -0
  371. package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js.map +1 -0
  372. package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js +3 -0
  373. package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js.map +1 -0
  374. package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js +3 -0
  375. package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js.map +1 -0
  376. package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js +3 -0
  377. package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js.map +1 -0
  378. package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js +3 -0
  379. package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js.map +1 -0
  380. package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js → [root-of-the-server]__8e8f535b._.js} +2 -2
  381. package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js.map → [root-of-the-server]__8e8f535b._.js.map} +1 -1
  382. package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js +1 -1
  383. package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js.map +1 -1
  384. package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js +1 -1
  385. package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js.map +1 -1
  386. package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js +3 -0
  387. package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js.map +1 -0
  388. package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js +1 -1
  389. package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js.map +1 -1
  390. package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js +3 -0
  391. package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js.map +1 -0
  392. package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js +1 -1
  393. package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js.map +1 -1
  394. package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js +1 -1
  395. package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js.map +1 -1
  396. package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js +3 -0
  397. package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js.map +1 -0
  398. package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js +3 -0
  399. package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js.map +1 -0
  400. package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js +3 -0
  401. package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js.map +1 -0
  402. package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js +3 -0
  403. package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js.map +1 -0
  404. package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js +1 -1
  405. package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js.map +1 -1
  406. package/.next/server/chunks/ssr/_1ee3bd7b._.js +1 -1
  407. package/.next/server/chunks/ssr/_1ee3bd7b._.js.map +1 -1
  408. package/.next/server/chunks/ssr/{_deb7a691._.js → _2ab986a4._.js} +2 -2
  409. package/.next/server/chunks/ssr/_2ab986a4._.js.map +1 -0
  410. package/.next/server/chunks/ssr/_2d8d7232._.js +1 -1
  411. package/.next/server/chunks/ssr/_2d8d7232._.js.map +1 -1
  412. package/.next/server/chunks/ssr/_43a80c61._.js +1 -1
  413. package/.next/server/chunks/ssr/_43a80c61._.js.map +1 -1
  414. package/.next/server/chunks/ssr/_641f29bc._.js +3 -0
  415. package/.next/server/chunks/ssr/_641f29bc._.js.map +1 -0
  416. package/.next/server/chunks/ssr/_ac993243._.js +3 -0
  417. package/.next/server/chunks/ssr/_ac993243._.js.map +1 -0
  418. package/.next/server/chunks/ssr/_f636ce67._.js +3 -0
  419. package/.next/server/chunks/ssr/_f636ce67._.js.map +1 -0
  420. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js +7 -1
  421. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js.map +1 -1
  422. package/.next/server/chunks/ssr/{_7f9e89d2._.js → node_modules_next_10fb6ad9._.js} +3 -3
  423. package/.next/server/chunks/ssr/node_modules_next_10fb6ad9._.js.map +1 -0
  424. package/.next/server/chunks/ssr/node_modules_next_dist_25a30daf._.js +1 -1
  425. package/.next/server/chunks/ssr/node_modules_next_dist_compiled_bc6b8ddf._.js +1 -1
  426. package/.next/server/chunks/ssr/node_modules_yaml_dist_18db9ed7._.js +2 -2
  427. package/.next/server/chunks/ssr/src_13139e3d._.js +1 -1
  428. package/.next/server/chunks/ssr/src_13139e3d._.js.map +1 -1
  429. package/.next/server/chunks/ssr/src_2a73b867._.js +1 -1
  430. package/.next/server/chunks/ssr/src_2a73b867._.js.map +1 -1
  431. package/.next/server/chunks/ssr/src_2dbb3b7f._.js +1 -1
  432. package/.next/server/chunks/ssr/src_2dbb3b7f._.js.map +1 -1
  433. package/.next/server/chunks/ssr/src_417bc4a6._.js +1 -1
  434. package/.next/server/chunks/ssr/src_417bc4a6._.js.map +1 -1
  435. package/.next/server/chunks/ssr/src_59477309._.js +1 -1
  436. package/.next/server/chunks/ssr/src_59477309._.js.map +1 -1
  437. package/.next/server/chunks/ssr/src_79d55c05._.js +1 -1
  438. package/.next/server/chunks/ssr/src_79d55c05._.js.map +1 -1
  439. package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js +1 -1
  440. package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js.map +1 -1
  441. package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js +1 -1
  442. package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js.map +1 -1
  443. package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js +1 -1
  444. package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js.map +1 -1
  445. package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js +1 -1
  446. package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js.map +1 -1
  447. package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js +1 -1
  448. package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js.map +1 -1
  449. package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js +3 -0
  450. package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js.map +1 -0
  451. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js +1 -1
  452. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js.map +1 -1
  453. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js +1 -1
  454. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js.map +1 -1
  455. package/.next/server/middleware-build-manifest.js +3 -3
  456. package/.next/server/pages/404.html +1 -1
  457. package/.next/server/pages/500.html +2 -2
  458. package/.next/server/server-reference-manifest.js +1 -1
  459. package/.next/server/server-reference-manifest.json +1 -1
  460. package/.next/static/chunks/001f840e2d5598af.js +10 -0
  461. package/.next/static/chunks/212477db59154fa7.js +3 -0
  462. package/.next/static/chunks/242fee5849d79d1b.js +1 -0
  463. package/.next/static/chunks/26d8587a145bded7.js +1 -0
  464. package/.next/static/chunks/{b83c1ca03c3b8c6d.js → 372ac1d07db9969a.js} +1 -1
  465. package/.next/static/chunks/4a0d27f3023676a5.js +1 -0
  466. package/.next/static/chunks/4ad57cfc54e20abd.js +1 -0
  467. package/.next/static/chunks/4e8866ad8f1f6b2b.js +1 -0
  468. package/.next/static/chunks/7d9e7a36b92578fd.js +1 -0
  469. package/.next/static/chunks/87f63f654bc046a2.js +3 -0
  470. package/.next/static/chunks/8aac543d98940eb3.js +2 -0
  471. package/.next/static/chunks/8acd42df55d57556.js +1 -0
  472. package/.next/static/chunks/95b7564f2360e762.js +1 -0
  473. package/.next/static/chunks/9801fc48f532d076.js +1 -0
  474. package/.next/static/chunks/{d6e1b7307a9274ce.js → 9c627cb11f73ac4c.js} +1 -1
  475. package/.next/static/chunks/ad652e4b50e1fb17.js +1 -0
  476. package/.next/static/chunks/aff32612e6b9d901.js +1 -0
  477. package/.next/static/chunks/c6c561355e97baa8.js +7 -0
  478. package/.next/static/chunks/d4c855575c079ffc.js +3 -0
  479. package/.next/static/chunks/d593ea5e91e81b45.js +1 -0
  480. package/.next/static/chunks/{87879d67a1601ee0.js → e0984ec981f01c0d.js} +1 -1
  481. package/.next/static/chunks/f5039461b97678c7.js +1 -0
  482. package/.next/static/chunks/f51763a2aea0a4b6.js +1 -0
  483. package/.next/static/chunks/f7f157ba542e1ae5.js +1 -0
  484. package/.next/static/chunks/fb008837ba324b34.css +3 -0
  485. package/.next/static/chunks/{turbopack-dbf3078dbf5863bd.js → turbopack-bdd9478663f034d6.js} +1 -1
  486. package/LICENSE +192 -0
  487. package/README.md +19 -5
  488. package/openclaw/index.ts +144 -5
  489. package/openclaw.plugin.json +2 -8
  490. package/package.json +5 -2
  491. package/.next/server/chunks/[root-of-the-server]__18423bab._.js +0 -3
  492. package/.next/server/chunks/[root-of-the-server]__18423bab._.js.map +0 -1
  493. package/.next/server/chunks/[root-of-the-server]__35ec765d._.js +0 -13
  494. package/.next/server/chunks/[root-of-the-server]__35ec765d._.js.map +0 -1
  495. package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js +0 -3
  496. package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js.map +0 -1
  497. package/.next/server/chunks/[root-of-the-server]__813dd669._.js +0 -3
  498. package/.next/server/chunks/[root-of-the-server]__813dd669._.js.map +0 -1
  499. package/.next/server/chunks/[root-of-the-server]__b457b884._.js +0 -22
  500. package/.next/server/chunks/[root-of-the-server]__b457b884._.js.map +0 -1
  501. package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js +0 -3
  502. package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js.map +0 -1
  503. package/.next/server/chunks/[root-of-the-server]__da7df58d._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__da7df58d._.js.map +0 -1
  505. package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js +0 -3
  506. package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js.map +0 -1
  507. package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js +0 -3
  508. package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js.map +0 -1
  509. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js +0 -3
  510. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js.map +0 -1
  511. package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js +0 -3
  512. package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js.map +0 -1
  513. package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js +0 -3
  514. package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js.map +0 -1
  515. package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js +0 -3
  516. package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js.map +0 -1
  517. package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js +0 -3
  518. package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js.map +0 -1
  519. package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js +0 -3
  520. package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js.map +0 -1
  521. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js +0 -3
  522. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js.map +0 -1
  523. package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js +0 -3
  524. package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js.map +0 -1
  525. package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js +0 -3
  526. package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js.map +0 -1
  527. package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js +0 -3
  528. package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js.map +0 -1
  529. package/.next/server/chunks/ssr/_32beff4b._.js +0 -3
  530. package/.next/server/chunks/ssr/_32beff4b._.js.map +0 -1
  531. package/.next/server/chunks/ssr/_7f9e89d2._.js.map +0 -1
  532. package/.next/server/chunks/ssr/_8538617d._.js +0 -3
  533. package/.next/server/chunks/ssr/_8538617d._.js.map +0 -1
  534. package/.next/server/chunks/ssr/_a506fcf8._.js +0 -3
  535. package/.next/server/chunks/ssr/_a506fcf8._.js.map +0 -1
  536. package/.next/server/chunks/ssr/_deb7a691._.js.map +0 -1
  537. package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js +0 -3
  538. package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js.map +0 -1
  539. package/.next/server/chunks/ssr/src_app_21685f67._.js +0 -3
  540. package/.next/server/chunks/ssr/src_app_21685f67._.js.map +0 -1
  541. package/.next/static/chunks/0edab8a24d59a626.js +0 -2
  542. package/.next/static/chunks/410dc851d0e3033d.js +0 -1
  543. package/.next/static/chunks/4e38b3f280ced64c.js +0 -1
  544. package/.next/static/chunks/4f2b8a07ace7e02b.js +0 -1
  545. package/.next/static/chunks/57ad5290f7e92ffd.css +0 -3
  546. package/.next/static/chunks/8a919077b73862da.js +0 -1
  547. package/.next/static/chunks/9906444fb1191bb4.js +0 -1
  548. package/.next/static/chunks/a625725b4cd85ea3.js +0 -1
  549. package/.next/static/chunks/ac32974713c57cb3.js +0 -1
  550. package/.next/static/chunks/bdb7ebd88ea13111.js +0 -1
  551. package/.next/static/chunks/bfcfbe145220d365.js +0 -1
  552. package/.next/static/chunks/c0d9f53d91cc65c5.js +0 -10
  553. package/.next/static/chunks/c0e2f959abc4cc13.js +0 -1
  554. package/.next/static/chunks/c822e53f79a492c7.js +0 -1
  555. package/.next/static/chunks/ce6b2024d13b4333.js +0 -1
  556. package/.next/static/chunks/d13249af74d111cf.js +0 -3
  557. package/.next/static/chunks/d16f64ca3a8ed208.js +0 -1
  558. package/.next/static/chunks/d7541a171116ec9c.js +0 -1
  559. package/.next/static/chunks/e03137fd069b1514.js +0 -1
  560. package/.next/static/chunks/e10faa9296c8b246.js +0 -1
  561. package/.next/static/chunks/ec24877f7b7f82c5.js +0 -3
  562. package/.next/static/chunks/ff3bbb5df40b2cc4.js +0 -1
  563. /package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js.map → [root-of-the-server]__17fa6089._.js.map} +0 -0
  564. /package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js.map → [root-of-the-server]__5792c29e._.js.map} +0 -0
  565. /package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js.map → [root-of-the-server]__7194dfe2._.js.map} +0 -0
  566. /package/.next/server/chunks/{[root-of-the-server]__17124952._.js.map → [root-of-the-server]__89f2190c._.js.map} +0 -0
  567. /package/.next/server/chunks/{[root-of-the-server]__343776df._.js.map → [root-of-the-server]__bbed0e46._.js.map} +0 -0
  568. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → bTCL-c1-1vqxgA-ZN8TUy}/_buildManifest.js +0 -0
  569. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → bTCL-c1-1vqxgA-ZN8TUy}/_clientMiddlewareManifest.json +0 -0
  570. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → bTCL-c1-1vqxgA-ZN8TUy}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function a(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function i(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function o(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),a=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(a>0){let e=n.slice(a).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function s(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),a=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?o(a):a,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:i(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return s(e,{sanitizeStdout:!1})}async function c(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return s(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=o(String(t.stdout??"")),a=String(t.stderr??""),i="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==i)return{ok:!1,exitCode:i,stdout:n,stderr:a};return{ok:!0,exitCode:0,stdout:n,stderr:a}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:i(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>c,"runOpenClawRaw",()=>u])},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);async function a(){let e=n.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function i(){let e=await a(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function o(){let e=await i();return n.default.join(e,"recipes")}async function s(){let e=await i(),r=n.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return n.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return n.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?n.default.resolve(e):n.default.resolve(e,"..",`workspace-${t}`)}function c(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function d(){let e=await a(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return n.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>c,"getBuiltinRecipesDir",()=>d,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>i,"getWorkspaceGoalsDir",()=>s,"getWorkspaceRecipesDir",()=>o,"readOpenClawConfig",()=>a,"teamDirFromBaseWorkspace",()=>u])},8884,e=>{"use strict";var t=e.i(12714),r=e.i(50227),n=e.i(5003);function a(e){return"team"===e.kind?`/teams/${encodeURIComponent(e.id)}`:`/agents/${encodeURIComponent(e.id)}`}function i(e,t,r,n){for(let[i,o]of Object.entries(e)){if(!o||o.orphaned)continue;let e=String(o.installedCronId??"").trim();if(e){{let t=String(i).match(/^team:([^:]+):recipe:workflow-worker:cron:/),o=t||"agent"!==r?null:String(i).match(/^workflow-worker:([^:]+):/),s=String((t??o)?.[1]??"").trim();if(s){n.set(e,{kind:"team",id:s,label:s,href:a({kind:"team",id:s})});continue}}n.set(e,{kind:r,id:t,label:t,href:a({kind:r,id:t})})}}}async function o(e){try{let a=await (0,n.runOpenClaw)(["config","get","agents.list","--no-color"]);if(!a.ok)return;for(let n of JSON.parse(String(a.stdout??"[]"))){let a=String(n.id??""),o=String(n.workspace??"");if(!a||!o)continue;let s=r.default.join(o,"notes","cron-jobs.json");try{let r=await t.default.readFile(s,"utf8"),n=JSON.parse(r);i(n.entries??{},a,"agent",e)}catch{}}}catch{}}async function s(e){let n=new Map,a=r.default.resolve(e,"..");for(let e of(await t.default.readdir(a,{withFileTypes:!0}))){if(!e.isDirectory()||!e.name.startsWith("workspace-"))continue;let o=e.name.replace(/^workspace-/,""),s=r.default.join(a,e.name,"team.json"),l=r.default.join(a,e.name,"notes","cron-jobs.json");try{await t.default.stat(s)}catch{continue}try{let e=await t.default.readFile(l,"utf8"),r=JSON.parse(e);i(r.entries??{},o,"team",n)}catch{}}return await o(n),n}async function l(e){try{let r=await t.default.readFile(e,"utf8"),n=JSON.parse(r).entries??{};return Object.values(n).filter(e=>!e.orphaned).map(e=>String(e.installedCronId??"").trim()).filter(Boolean)}catch{return[]}}function u(e,t){return e.map(e=>{let r=String(e.id??""),n=r?t.get(r):void 0;return n?{...e,scope:n}:e})}async function c(e,r,n){try{let a=await t.default.readFile(r,"utf8"),i=JSON.parse(a);if(!i||1!==i.version||!i.entries)return null;let o=!1,s=[];for(let[t,r]of Object.entries(i.entries))String(r?.installedCronId??"").trim()!==e||r.orphaned||(i.entries[t]={...r,orphaned:!0},o=!0,s.push(t));if(!o)return null;return await t.default.writeFile(r,JSON.stringify(i,null,2)+"\n","utf8"),{teamId:n,mappingPath:r,keys:s}}catch{return null}}async function d(e,n){let a=[],i=r.default.resolve(n,"..");for(let n of(await t.default.readdir(i,{withFileTypes:!0}))){if(!n.isDirectory()||!n.name.startsWith("workspace-"))continue;let o=n.name.replace(/^workspace-/,""),s=r.default.join(i,n.name,"team.json"),l=r.default.join(i,n.name,"notes","cron-jobs.json");try{await t.default.stat(s)}catch{continue}let u=await c(e,l,o);u&&a.push(u)}return a}async function p(e){let t=await e({tool:"gateway",args:{action:"config.get",raw:"{}"}}),r=t?.content?.find(e=>"text"===e.type)?.text??"",n=r?JSON.parse(r):null,a=String(n?.result?.raw??""),i=a?JSON.parse(a):null;return String(i?.agents?.defaults?.workspace??"").trim()}e.s(["buildIdToScopeMap",()=>s,"enrichJobsWithScope",()=>u,"getBaseWorkspaceFromGateway",()=>p,"getInstalledIdsForTeam",()=>l,"markOrphanedInTeamWorkspaces",()=>d])},71417,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(54468),w=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220),x=e.i(50227),y=e.i(89171),R=e.i(5003),S=e.i(7367),v=e.i(40317),k=e.i(8884);async function j(e){try{let t=new URL(e.url),r=String(t.searchParams.get("teamId")??"").trim(),n=await (0,R.runOpenClaw)(["cron","list","--all","--json"]);if(!n.ok)return y.NextResponse.json({ok:!1,error:n.stderr||n.stdout},{status:500});let a=JSON.parse(String(n.stdout||"{}")),i=Array.isArray(a.jobs)?a.jobs:[],o=String((await (0,S.readOpenClawConfig)()).agents?.defaults?.workspace??"").trim(),s=o?await (0,k.buildIdToScopeMap)(o):new Map,l=(0,k.enrichJobsWithScope)(i,s);if(!r)return y.NextResponse.json({ok:!0,jobs:l});let u=await (0,S.getTeamWorkspaceDir)(r),c=x.default.join(u,"notes","cron-jobs.json"),d=await (0,k.getInstalledIdsForTeam)(c),p=l.filter(e=>d.includes(String(e.id??"")));return y.NextResponse.json({ok:!0,jobs:p,teamId:r,provenancePath:c,installedIds:d})}catch(t){let e=(0,v.errorMessage)(t);return y.NextResponse.json({ok:!1,error:e},{status:500})}}e.s(["GET",()=>j],46311);var b=e.i(46311);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cron/jobs/route",pathname:"/api/cron/jobs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cron/jobs/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:E,workUnitAsyncStorage:O,serverHooks:N}=C;function T(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:O})}async function A(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cron/jobs/route";x=x.replace(/\/index$/,"")||"/";let y=await C.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:S,nextConfig:v,parsedUrl:k,isDraftMode:j,prerenderManifest:b,routerServerContext:E,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:A,serverActionsManifest:I}=y,P=(0,s.normalizeAppPath)(x),q=!!(b.dynamicRoutes[P]||b.routes[T]),_=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,k,!1):t.end("This page could not be found"),null);if(q&&!j){let e=!!b.routes[T],t=b.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(v.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let D=null;!q||C.isDev||j||(D="/index"===(D=T)?"/":D);let F=!0===C.isDev||!q,M=q&&!F;I&&A&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:A,serverActionsManifest:I});let U=e.method||"GET",H=(0,i.getTracer)(),J=H.getActiveScopeSpan(),W={params:S,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts},cacheComponents:!!v.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:v.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>C.onRequestError(e,t,n,a,E)},sharedContext:{buildId:R}},$=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest($,(0,u.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${x}`)}),s=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var i,l;let u=async({previousCacheEntry:r})=>{try{if(!s&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(a);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=W.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)($,K,i,W.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[w.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,E),t}},c=await C.handleResponse({req:e,nextConfig:v,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:s});if(!q)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&q||g.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)($,K,new Response(c.value.body,{headers:g,status:c.value.status||200})),null};J?await l(J):await H.withPropagatedContext(e.headers,()=>H.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${x}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,E),q)throw t;return await (0,p.sendResponse)($,K,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>T,"routeModule",()=>C,"serverHooks",()=>N,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>O],71417)}];
1
+ module.exports=[40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function a(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function i(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function o(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),a=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(a>0){let e=n.slice(a).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function s(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),a=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?o(a):a,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:i(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return s(e,{sanitizeStdout:!1})}async function c(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return s(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=o(String(t.stdout??"")),a=String(t.stderr??""),i="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==i)return{ok:!1,exitCode:i,stdout:n,stderr:a};return{ok:!0,exitCode:0,stdout:n,stderr:a}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:i(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>c,"runOpenClawRaw",()=>u])},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);async function a(){let e=n.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function i(){let e=await a(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function o(){let e=await i();return n.default.join(e,"recipes")}async function s(){let e=await i(),r=n.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return n.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return n.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?n.default.resolve(e):n.default.resolve(e,"..",`workspace-${t}`)}function c(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function d(){let e=await a(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return n.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>c,"getBuiltinRecipesDir",()=>d,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>i,"getWorkspaceGoalsDir",()=>s,"getWorkspaceRecipesDir",()=>o,"readOpenClawConfig",()=>a,"teamDirFromBaseWorkspace",()=>u])},8884,e=>{"use strict";var t=e.i(12714),r=e.i(50227),n=e.i(5003);function a(e){return"team"===e.kind?`/teams/${encodeURIComponent(e.id)}`:`/agents/${encodeURIComponent(e.id)}`}function i(e,t,r,n){for(let[i,o]of Object.entries(e)){if(!o||o.orphaned)continue;let e=String(o.installedCronId??"").trim();if(e){{let t=String(i).match(/^team:([^:]+):recipe:workflow-worker:cron:/),o=t||"agent"!==r?null:String(i).match(/^workflow-worker:([^:]+):/),s=String((t??o)?.[1]??"").trim();if(s){n.set(e,{kind:"team",id:s,label:s,href:a({kind:"team",id:s})});continue}}n.set(e,{kind:r,id:t,label:t,href:a({kind:r,id:t})})}}}async function o(e){try{let a=await (0,n.runOpenClaw)(["config","get","agents.list","--no-color"]);if(!a.ok)return;for(let n of JSON.parse(String(a.stdout??"[]"))){let a=String(n.id??""),o=String(n.workspace??"");if(!a||!o)continue;let s=r.default.join(o,"notes","cron-jobs.json");try{let r=await t.default.readFile(s,"utf8"),n=JSON.parse(r);i(n.entries??{},a,"agent",e)}catch{}}}catch{}}async function s(e){let n=new Map,a=r.default.resolve(e,"..");for(let e of(await t.default.readdir(a,{withFileTypes:!0}))){if(!e.isDirectory()||!e.name.startsWith("workspace-"))continue;let o=e.name.replace(/^workspace-/,""),s=r.default.join(a,e.name,"team.json"),l=r.default.join(a,e.name,"notes","cron-jobs.json");try{await t.default.stat(s)}catch{continue}try{let e=await t.default.readFile(l,"utf8"),r=JSON.parse(e);i(r.entries??{},o,"team",n)}catch{}}return await o(n),n}async function l(e){try{let r=await t.default.readFile(e,"utf8"),n=JSON.parse(r).entries??{};return Object.values(n).filter(e=>!e.orphaned).map(e=>String(e.installedCronId??"").trim()).filter(Boolean)}catch{return[]}}function u(e,t){return e.map(e=>{let r=String(e.id??""),n=r?t.get(r):void 0;return n?{...e,scope:n}:e})}async function c(e,r,n){try{let a=await t.default.readFile(r,"utf8"),i=JSON.parse(a);if(!i||1!==i.version||!i.entries)return null;let o=!1,s=[];for(let[t,r]of Object.entries(i.entries))String(r?.installedCronId??"").trim()!==e||r.orphaned||(i.entries[t]={...r,orphaned:!0},o=!0,s.push(t));if(!o)return null;return await t.default.writeFile(r,JSON.stringify(i,null,2)+"\n","utf8"),{teamId:n,mappingPath:r,keys:s}}catch{return null}}async function d(e,n){let a=[],i=r.default.resolve(n,"..");for(let n of(await t.default.readdir(i,{withFileTypes:!0}))){if(!n.isDirectory()||!n.name.startsWith("workspace-"))continue;let o=n.name.replace(/^workspace-/,""),s=r.default.join(i,n.name,"team.json"),l=r.default.join(i,n.name,"notes","cron-jobs.json");try{await t.default.stat(s)}catch{continue}let u=await c(e,l,o);u&&a.push(u)}return a}async function p(e){let t=await e({tool:"gateway",args:{action:"config.get",raw:"{}"}}),r=t?.content?.find(e=>"text"===e.type)?.text??"",n=r?JSON.parse(r):null,a=String(n?.result?.raw??""),i=a?JSON.parse(a):null;return String(i?.agents?.defaults?.workspace??"").trim()}e.s(["buildIdToScopeMap",()=>s,"enrichJobsWithScope",()=>u,"getBaseWorkspaceFromGateway",()=>p,"getInstalledIdsForTeam",()=>l,"markOrphanedInTeamWorkspaces",()=>d])},71417,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),w=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220),x=e.i(50227),y=e.i(89171),R=e.i(5003),S=e.i(7367),v=e.i(40317),k=e.i(8884);async function j(e){try{let t=new URL(e.url),r=String(t.searchParams.get("teamId")??"").trim(),n=await (0,R.runOpenClaw)(["cron","list","--all","--json"]);if(!n.ok)return y.NextResponse.json({ok:!1,error:n.stderr||n.stdout},{status:500});let a=JSON.parse(String(n.stdout||"{}")),i=Array.isArray(a.jobs)?a.jobs:[],o=String((await (0,S.readOpenClawConfig)()).agents?.defaults?.workspace??"").trim(),s=o?await (0,k.buildIdToScopeMap)(o):new Map,l=(0,k.enrichJobsWithScope)(i,s);if(!r)return y.NextResponse.json({ok:!0,jobs:l});let u=await (0,S.getTeamWorkspaceDir)(r),c=x.default.join(u,"notes","cron-jobs.json"),d=await (0,k.getInstalledIdsForTeam)(c),p=l.filter(e=>d.includes(String(e.id??"")));return y.NextResponse.json({ok:!0,jobs:p,teamId:r,provenancePath:c,installedIds:d})}catch(t){let e=(0,v.errorMessage)(t);return y.NextResponse.json({ok:!1,error:e},{status:500})}}e.s(["GET",()=>j],46311);var b=e.i(46311);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cron/jobs/route",pathname:"/api/cron/jobs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cron/jobs/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:E,workUnitAsyncStorage:O,serverHooks:N}=C;function T(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:O})}async function A(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/cron/jobs/route";x=x.replace(/\/index$/,"")||"/";let y=await C.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:S,nextConfig:v,parsedUrl:k,isDraftMode:j,prerenderManifest:b,routerServerContext:E,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:A,serverActionsManifest:I}=y,P=(0,s.normalizeAppPath)(x),q=!!(b.dynamicRoutes[P]||b.routes[T]),_=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,k,!1):t.end("This page could not be found"),null);if(q&&!j){let e=!!b.routes[T],t=b.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(v.experimental.adapterPath)return await _();throw new g.NoFallbackError}}let D=null;!q||C.isDev||j||(D="/index"===(D=T)?"/":D);let F=!0===C.isDev||!q,M=q&&!F;I&&A&&(0,o.setManifestsSingleton)({page:x,clientReferenceManifest:A,serverActionsManifest:I});let U=e.method||"GET",H=(0,i.getTracer)(),J=H.getActiveScopeSpan(),W={params:S,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts},cacheComponents:!!v.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:v.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>C.onRequestError(e,t,n,a,E)},sharedContext:{buildId:R}},$=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest($,(0,u.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${U} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${x}`)}),s=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var i,l;let u=async({previousCacheEntry:r})=>{try{if(!s&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(a);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=W.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)($,K,i,W.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[w.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,E),t}},c=await C.handleResponse({req:e,nextConfig:v,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:s});if(!q)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&q||g.delete(w.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)($,K,new Response(c.value.body,{headers:g,status:c.value.status||200})),null};J?await l(J):await H.withPropagatedContext(e.headers,()=>H.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${x}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,E),q)throw t;return await (0,p.sendResponse)($,K,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>T,"routeModule",()=>C,"serverHooks",()=>N,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>O],71417)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__04f289da._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function a(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function s(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function i(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),a=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(a>0){let e=n.slice(a).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),a=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?i(a):a,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:s(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=i(String(t.stdout??"")),a=String(t.stderr??""),s="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==s)return{ok:!1,exitCode:s,stdout:n,stderr:a};return{ok:!0,exitCode:0,stdout:n,stderr:a}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:s(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},35121,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(54468),x=e.i(10372),g=e.i(93695);e.i(52474);var y=e.i(220),m=e.i(89171),w=e.i(40317),R=e.i(5003);async function v(){try{return setTimeout(()=>{(0,R.runOpenClaw)(["gateway","restart"])},50),m.NextResponse.json({ok:!0,scheduled:!0})}catch(e){return m.NextResponse.json({ok:!1,error:(0,w.errorMessage)(e)},{status:500})}}e.s(["POST",()=>v],28676);var C=e.i(28676);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/gateway/restart/route",pathname:"/api/gateway/restart",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/gateway/restart/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:k}=E;function A(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})}async function O(e,t,n){E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/gateway/restart/route";m=m.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:C,parsedUrl:S,isDraftMode:b,prerenderManifest:k,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:P,serverActionsManifest:_}=w,j=(0,o.normalizeAppPath)(m),q=!!(k.dynamicRoutes[j]||k.routes[T]),H=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!k.routes[T],t=k.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new g.NoFallbackError}}let I=null;!q||E.isDev||b||(I="/index"===(I=T)?"/":I);let U=!0===E.isDev||!q,M=q&&!U;_&&P&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:P,serverActionsManifest:_});let D=e.method||"GET",K=(0,s.getTracer)(),F=K.getActiveScopeSpan(),$={params:v,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>E.onRequestError(e,t,n,a,A)},sharedContext:{buildId:R}},B=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>E.handle(L,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${m}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(B,J,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),t}},d=await E.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!q)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,J,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};F?await l(F):await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),q)throw t;return await (0,p.sendResponse)(B,J,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>E,"serverHooks",()=>k,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>b],35121)}];
1
+ module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function a(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function s(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function i(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),a=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(a>0){let e=n.slice(a).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),a=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?i(a):a,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:s(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=i(String(t.stdout??"")),a=String(t.stderr??""),s="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==s)return{ok:!1,exitCode:s,stdout:n,stderr:a};return{ok:!0,exitCode:0,stdout:n,stderr:a}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:s(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},35121,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),x=e.i(10372),g=e.i(93695);e.i(52474);var y=e.i(220),m=e.i(89171),w=e.i(40317),R=e.i(5003);async function v(){try{return setTimeout(()=>{(0,R.runOpenClaw)(["gateway","restart"])},50),m.NextResponse.json({ok:!0,scheduled:!0})}catch(e){return m.NextResponse.json({ok:!1,error:(0,w.errorMessage)(e)},{status:500})}}e.s(["POST",()=>v],28676);var C=e.i(28676);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/gateway/restart/route",pathname:"/api/gateway/restart",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/gateway/restart/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:k}=E;function A(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})}async function O(e,t,n){E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/gateway/restart/route";m=m.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:C,parsedUrl:S,isDraftMode:b,prerenderManifest:k,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:P,serverActionsManifest:_}=w,j=(0,o.normalizeAppPath)(m),q=!!(k.dynamicRoutes[j]||k.routes[T]),H=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,S,!1):t.end("This page could not be found"),null);if(q&&!b){let e=!!k.routes[T],t=k.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new g.NoFallbackError}}let I=null;!q||E.isDev||b||(I="/index"===(I=T)?"/":I);let U=!0===E.isDev||!q,M=q&&!U;_&&P&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:P,serverActionsManifest:_});let D=e.method||"GET",K=(0,s.getTracer)(),F=K.getActiveScopeSpan(),$={params:v,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>E.onRequestError(e,t,n,a,A)},sharedContext:{buildId:R}},B=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>E.handle(L,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${m}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(B,J,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),t}},d=await E.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!q)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,J,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};F?await l(F):await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${m}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),q)throw t;return await (0,p.sendResponse)(B,J,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>E,"serverHooks",()=>k,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>b],35121)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__08b4c8f2._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function a(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function o(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function i(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),a=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(a>0){let e=n.slice(a).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function s(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),a=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?i(a):a,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:o(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function d(e){return s(e,{sanitizeStdout:!1})}async function u(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return s(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=i(String(t.stdout??"")),a=String(t.stderr??""),o="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==o)return{ok:!1,exitCode:o,stdout:n,stderr:a};return{ok:!0,exitCode:0,stdout:n,stderr:a}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:a(t),stderr:o(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>u,"runOpenClawRaw",()=>d])},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);async function a(){let e=n.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function o(){let e=await a(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function i(){let e=await o();return n.default.join(e,"recipes")}async function s(){let e=await o(),r=n.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return n.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return n.default.join(t,".openclaw",`workspace-${e}`)}function d(e,t){return"main"===t?n.default.resolve(e):n.default.resolve(e,"..",`workspace-${t}`)}function u(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function c(){let e=await a(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return n.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>u,"getBuiltinRecipesDir",()=>c,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>o,"getWorkspaceGoalsDir",()=>s,"getWorkspaceRecipesDir",()=>i,"readOpenClawConfig",()=>a,"teamDirFromBaseWorkspace",()=>d])},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},62151,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),w=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220),x=e.i(12714),y=e.i(50227),v=e.i(89171),k=e.i(5003),R=e.i(7367),b=e.i(40317),C=e.i(66680);function E(e,t,r){return`workflow-trigger:${e}:${t}:${r}`}function j(e,t){return`openclaw recipes workflows enqueue --team-id ${e} --workflow-id ${t} && openclaw recipes workflows runner-tick --team-id ${e} --concurrency 4`}async function S(e){try{let t=await x.default.readFile(e,"utf8"),r=JSON.parse(t);if(!r||1!==r.version||!r.entries)return{version:1,entries:{}};return r}catch{return{version:1,entries:{}}}}async function O(e,t){await x.default.mkdir(y.default.dirname(e),{recursive:!0}),await x.default.writeFile(e,JSON.stringify(t,null,2)+"\n","utf8")}async function A(e,t,r){let n=E(e,t,r.id),a=j(e,t),o=["cron","add","--agent","main","--session","isolated","--no-deliver","--model","anthropic/claude-sonnet-4-20250514","--name",n,"--description",`Workflow trigger: ${r.name||r.id}`,"--message",a,"--cron",r.expr,"--json"];r.tz&&o.push("--tz",r.tz);let i=await (0,k.runOpenClaw)(o);if(!i.ok)throw Error(i.stderr||i.stdout||"Failed to create cron job");let s=JSON.parse(i.stdout),l=s.id||s.job?.id;if(!l)throw Error("Cron creation succeeded but did not return id");return l}async function N(e,t,r,n){let a=E(t,r,n.id),o=j(t,r),i=["cron","edit",e,"--name",a,"--description",`Workflow trigger: ${n.name||n.id}`,"--message",o,"--cron",n.expr];n.tz&&i.push("--tz",n.tz);let s=await (0,k.runOpenClaw)(i);if(!s.ok)throw Error(s.stderr||s.stdout||"Failed to update cron job")}async function I(e){let t=await (0,k.runOpenClaw)(["cron","enable",e]);if(!t.ok)throw Error(t.stderr||t.stdout||"Failed to enable cron job")}async function T(e){let t=await (0,k.runOpenClaw)(["cron","disable",e]);if(!t.ok)throw Error(t.stderr||t.stdout||"Failed to disable cron job")}async function q(e){let t=await (0,k.runOpenClaw)(["cron","remove",e]);if(!t.ok)throw Error(t.stderr||t.stdout||"Failed to remove cron job")}async function P(e,t,r){var n,a;let o=(n=await (0,R.getTeamWorkspaceDir)(e),y.default.join(n,"notes","cron-jobs.json")),i=await S(o),s=Date.now(),l={created:[],updated:[],enabled:[],disabled:[],removed:[]},d=new Set(r.map(e=>e.id));for(let n of r){let r=(a=n.id,`team:${e}:workflow:${t}:trigger:${a}`),o=function(e){let t=JSON.stringify(e,Object.keys(e).sort());return C.default.createHash("sha256").update(t).digest("hex").slice(0,16)}({expr:n.expr,tz:n.tz||"",enabled:n.enabled??!0}),d=i.entries[r];if(!d||d.orphaned){if(!1!==n.enabled){let a=await A(e,t,n);i.entries[r]={installedCronId:a,specHash:o,updatedAtMs:s},l.created.push({triggerId:n.id,cronId:a})}}else{let a=d.installedCronId;d.specHash!==o?(!1!==n.enabled?(await N(a,e,t,n),await I(a),l.updated.push({triggerId:n.id,cronId:a})):(await T(a),l.disabled.push({triggerId:n.id,cronId:a})),i.entries[r]={installedCronId:a,specHash:o,updatedAtMs:s}):(!1!==n.enabled?(await I(a),l.enabled.push({triggerId:n.id,cronId:a})):(await T(a),l.disabled.push({triggerId:n.id,cronId:a})),i.entries[r]={...d,updatedAtMs:s})}}let u=`team:${e}:workflow:${t}:trigger:`;for(let[e,t]of Object.entries(i.entries)){if(!e.startsWith(u))continue;let r=e.slice(u.length);d.has(r)||t.orphaned||(await q(t.installedCronId),i.entries[e]={...t,orphaned:!0,updatedAtMs:s},l.removed.push({triggerId:r,cronId:t.installedCronId}))}return await O(o,i),l}async function _(e){try{let{action:t,teamId:r,workflowId:n,triggers:a}=await e.json();if(!t||"sync"!==t)return v.NextResponse.json({ok:!1,error:"action must be 'sync'"},{status:400});if(!r||!n)return v.NextResponse.json({ok:!1,error:"teamId and workflowId are required"},{status:400});if(!Array.isArray(a))return v.NextResponse.json({ok:!1,error:"triggers must be an array"},{status:400});let o=a.filter(e=>"cron"===e.kind),i=await P(r,n,o);return v.NextResponse.json({ok:!0,action:t,teamId:r,workflowId:n,...i})}catch(e){return v.NextResponse.json({ok:!1,error:(0,b.errorMessage)(e)},{status:500})}}e.s(["POST",()=>_],87019);var $=e.i(87019);let D=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/teams/workflow-triggers/route",pathname:"/api/teams/workflow-triggers",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/teams/workflow-triggers/route.ts",nextConfigOutput:"standalone",userland:$}),{workAsyncStorage:H,workUnitAsyncStorage:F,serverHooks:M}=D;function U(){return(0,n.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:F})}async function W(e,t,n){D.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/teams/workflow-triggers/route";x=x.replace(/\/index$/,"")||"/";let y=await D.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:v,params:k,nextConfig:R,parsedUrl:b,isDraftMode:C,prerenderManifest:E,routerServerContext:j,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,resolvedPathname:A,clientReferenceManifest:N,serverActionsManifest:I}=y,T=(0,s.normalizeAppPath)(x),q=!!(E.dynamicRoutes[T]||E.routes[A]),P=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!C){let e=!!E.routes[A],t=E.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await P();throw new g.NoFallbackError}}let _=null;!q||D.isDev||C||(_="/index"===(_=A)?"/":_);let $=!0===D.isDev||!q,H=q&&!$;I&&N&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:N,serverActionsManifest:I});let F=e.method||"GET",M=(0,o.getTracer)(),U=M.getActiveScopeSpan(),W={params:k,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:$,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>D.onRequestError(e,t,n,a,j)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),J=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let i=async e=>D.handle(J,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${x}`)}),s=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&S&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(a);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=W.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(K,z,o,W.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await D.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,j),t}},u=await D.handleResponse({req:e,nextConfig:R,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",S?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&q||g.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,w.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(K,z,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};U?await l(U):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${x}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await D.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,j),q)throw t;return await (0,p.sendResponse)(K,z,new Response(null,{status:500})),null}}e.s(["handler",()=>W,"patchFetch",()=>U,"routeModule",()=>D,"serverHooks",()=>M,"workAsyncStorage",()=>H,"workUnitAsyncStorage",()=>F],62151)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0b2c557c._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/errors.ts","../../../src/lib/kitchen-api.ts","../../../src/lib/openclaw.ts","../../../src/lib/paths.ts","../../../src/app/api/teams/workflow-triggers/route.ts","../../../src/lib/spec-hash-utils.ts","../../../node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["/**\n * Extracts a string message from an unknown error value.\n * Used consistently across API routes and client components.\n */\nexport function errorMessage(e: unknown): string {\n return e instanceof Error ? e.message : String(e);\n}\n","// NOTE: This file is compiled by Next.js.\n// Do not import `openclaw/plugin-sdk` here (it is provided by the gateway runtime, not as an npm dep).\n\ntype KitchenApi = {\n config: unknown;\n runtime: {\n system: { runCommandWithTimeout: (argv: string[], opts: { timeoutMs: number }) => Promise<{ stdout?: string; stderr?: string }> };\n };\n};\n\nexport function getKitchenApi(): KitchenApi {\n const api = (globalThis as unknown as { __clawkitchen_api?: KitchenApi }).__clawkitchen_api;\n if (!api) {\n throw new Error(\n \"ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)\",\n );\n }\n return api;\n}\n","import { getKitchenApi } from \"@/lib/kitchen-api\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n\nconst execFileAsync = promisify(execFile);\n\nexport type OpenClawExecResult = {\n ok: boolean;\n exitCode: number;\n stdout: string;\n stderr: string;\n};\n\nfunction extractStdout(err: { stdout?: unknown }): string {\n if (typeof err.stdout === \"string\") return err.stdout;\n if (err.stdout && typeof err.stdout === \"object\" && \"toString\" in err.stdout) {\n return String((err.stdout as { toString: () => string }).toString());\n }\n return \"\";\n}\n\nfunction resolveExitCode(res: { exitCode?: unknown; code?: unknown; status?: unknown }): number {\n if (typeof res.exitCode === \"number\") return res.exitCode;\n if (typeof res.code === \"number\") return res.code;\n if (typeof res.status === \"number\") return res.status;\n return 0;\n}\n\nfunction extractStderr(err: { stderr?: unknown; message?: unknown }, fallback: unknown): string {\n if (typeof err.stderr === \"string\") return err.stderr;\n if (err.stderr && typeof err.stderr === \"object\" && \"toString\" in err.stderr) {\n return String((err.stderr as { toString: () => string }).toString());\n }\n if (typeof err.message === \"string\") return err.message;\n return String(fallback);\n}\n\n/**\n * Strip non-JSON diagnostic lines from stdout.\n *\n * OpenClaw may print plugin/doctor/diagnostic lines to stdout before the\n * actual JSON payload (e.g. \"[doctor] ...\", \"[plugins] ...\", \"🦞 OpenClaw ...\").\n * This breaks callers that do JSON.parse(stdout).\n *\n * If stdout looks like it contains a JSON payload with leading noise, strip the\n * noise lines. Otherwise return as-is (non-JSON commands like `config get` may\n * return plain text).\n */\nfunction sanitizeStdout(raw: string): string {\n const trimmed = raw.trim();\n if (!trimmed) return raw;\n\n // Fast path: already starts with JSON\n const firstChar = trimmed[0];\n if (firstChar === \"[\" || firstChar === \"{\" || firstChar === '\"') return raw;\n\n // Look for the first line starting with a JSON token\n const lines = trimmed.split(\"\\n\");\n const jsonStartIdx = lines.findIndex((l) => /^\\s*[[\\{\"]/.test(l));\n if (jsonStartIdx > 0) {\n // Verify the remainder is valid JSON before stripping\n const candidate = lines.slice(jsonStartIdx).join(\"\\n\");\n try {\n JSON.parse(candidate);\n return candidate;\n } catch {\n // Not valid JSON after stripping — return original\n }\n }\n\n return raw;\n}\n\nasync function runOpenClawLocal(args: string[], options: { sanitizeStdout?: boolean } = {}): Promise<OpenClawExecResult> {\n const { sanitizeStdout: shouldSanitize = true } = options;\n \n try {\n const isWindows = process.platform === \"win32\";\n const res = await execFileAsync(\"openclaw\", args, {\n timeout: 120000,\n windowsHide: true,\n maxBuffer: 10 * 1024 * 1024,\n // Windows requires shell:true to resolve executables on PATH via PATHEXT.\n // Without it, execFile throws ENOENT even when openclaw is installed globally.\n ...(isWindows ? { shell: true } : {}),\n });\n\n const rawStdout = String(res.stdout ?? \"\");\n \n return {\n ok: true,\n exitCode: 0,\n stdout: shouldSanitize ? sanitizeStdout(rawStdout) : rawStdout,\n stderr: String(res.stderr ?? \"\"),\n };\n } catch (e: unknown) {\n const err = e as { code?: unknown; stdout?: unknown; stderr?: unknown; message?: unknown };\n const exitCode = typeof err.code === \"number\" ? err.code : 1;\n const stdout = extractStdout(err);\n const stderr = extractStderr(err, e);\n return { ok: false, exitCode, stdout, stderr };\n }\n}\n\n/**\n * Extract a JSON payload from stdout that may contain non-JSON diagnostic lines\n * (e.g. [doctor], [plugins], [recipes] log lines before the actual JSON).\n * Returns the parsed value or null if no JSON found.\n */\nexport function extractJson<T = unknown>(stdout: string): T | null {\n const trimmed = stdout.trim();\n if (!trimmed) return null;\n\n // Fast path: pure JSON\n try {\n return JSON.parse(trimmed) as T;\n } catch {\n // fall through\n }\n\n // Find the first line starting with [ or { (JSON array/object)\n const lines = trimmed.split(\"\\n\");\n const jsonStartIdx = lines.findIndex((l) => /^\\s*[[\\{]/.test(l));\n if (jsonStartIdx >= 0) {\n const jsonSlice = lines.slice(jsonStartIdx).join(\"\\n\");\n try {\n return JSON.parse(jsonSlice) as T;\n } catch {\n // fall through\n }\n }\n\n // Last resort: find the last JSON block (scan from end)\n for (let i = lines.length - 1; i >= 0; i--) {\n if (/^\\s*[\\]}]/.test(lines[i])) {\n // Walk backward to find the matching open\n for (let j = i; j >= 0; j--) {\n if (/^\\s*[[\\{]/.test(lines[j])) {\n try {\n return JSON.parse(lines.slice(j, i + 1).join(\"\\n\")) as T;\n } catch {\n // continue searching\n }\n }\n }\n }\n }\n\n return null;\n}\n\n/**\n * Run OpenClaw without stdout sanitization (for raw text output like recipe markdown)\n */\nexport async function runOpenClawRaw(args: string[]): Promise<OpenClawExecResult> {\n // Always use local exec for raw content to avoid Kitchen runtime restrictions\n return runOpenClawLocal(args, { sanitizeStdout: false });\n}\n\nexport async function runOpenClaw(args: string[]): Promise<OpenClawExecResult> {\n // In some Kitchen runtime contexts, `api.runtime.system.runCommandWithTimeout`\n // is executed with a restricted allowlist that does not include the `cron` tool,\n // causing `openclaw cron ...` to fail with \"Tool not available: cron\".\n //\n // Cron routes need to work in the gateway-run Kitchen environment, so for cron\n // specifically we prefer a local exec (host OpenClaw).\n if (args[0] === \"cron\") return runOpenClawLocal(args);\n\n // Workflow runner/worker commands are long-running orchestration processes that\n // acquire locks and claims. The runtime command wrapper (runCommandWithTimeout)\n // has a 120s hard timeout that can kill these mid-execution, orphaning locks and\n // leaving runs stuck in waiting_workers. Route them through local exec instead.\n if (\n args[0] === \"recipes\" &&\n args[1] === \"workflows\" &&\n [\"runner-once\", \"runner-tick\", \"worker-tick\"].includes(args[2])\n ) {\n return runOpenClawLocal(args);\n }\n\n const api = getKitchenApi();\n try {\n const res = (await api.runtime.system.runCommandWithTimeout([\"openclaw\", ...args], { timeoutMs: 120000 })) as {\n stdout?: unknown;\n stderr?: unknown;\n exitCode?: unknown;\n code?: unknown;\n status?: unknown;\n };\n\n const stdout = sanitizeStdout(String(res.stdout ?? \"\"));\n const stderr = String(res.stderr ?? \"\");\n const exitCode = resolveExitCode(res);\n\n if (exitCode !== 0) return { ok: false, exitCode, stdout, stderr };\n return { ok: true, exitCode: 0, stdout, stderr };\n } catch (e: unknown) {\n const err = e as { code?: unknown; stdout?: unknown; stderr?: unknown; message?: unknown };\n const exitCode = typeof err.code === \"number\" ? err.code : 1;\n const stdout = extractStdout(err);\n const stderr = extractStderr(err, e);\n return { ok: false, exitCode, stdout, stderr };\n }\n}\n","import fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\ntype OpenClawConfig = {\n agents?: { defaults?: { workspace?: string } };\n gateway?: { port?: number; auth?: { token?: string } };\n tools?: {\n agentToAgent?: {\n enabled?: boolean;\n allow?: string[];\n };\n };\n plugins?: {\n installs?: { recipes?: { installPath?: string; sourcePath?: string } };\n load?: { paths?: string[] };\n };\n // OpenClaw message routing bindings (used for HITL approvals, etc.)\n bindings?: unknown[];\n};\n\nexport async function readOpenClawConfig(): Promise<OpenClawConfig> {\n const p = path.join(os.homedir(), \".openclaw\", \"openclaw.json\");\n const text = await fs.readFile(p, \"utf8\");\n return JSON.parse(text) as OpenClawConfig;\n}\n\nexport async function getWorkspaceDir() {\n const cfg = await readOpenClawConfig();\n const ws = cfg.agents?.defaults?.workspace;\n if (!ws) throw new Error(\"agents.defaults.workspace is not set in ~/.openclaw/openclaw.json\");\n return ws;\n}\n\nexport async function getWorkspaceRecipesDir() {\n const ws = await getWorkspaceDir();\n return path.join(ws, \"recipes\");\n}\n\nexport async function getWorkspaceGoalsDir() {\n const ws = await getWorkspaceDir();\n\n // Back-compat: some installs keep goals at <workspace>/goals.\n // Prefer that when present, otherwise fall back to <workspace>/notes/goals.\n const direct = path.join(ws, \"goals\");\n try {\n const st = await fs.stat(direct);\n if (st.isDirectory()) return direct;\n } catch {\n // ignore\n }\n\n return path.join(ws, \"notes\", \"goals\");\n}\n\nexport async function getTeamWorkspaceDir(teamId: string) {\n const home = os.homedir();\n if (!home) throw new Error(\"Could not resolve home directory\");\n return path.join(home, \".openclaw\", `workspace-${teamId}`);\n}\n\n/** Team workspace dir derived from agents.defaults.workspace (sibling: .. / workspace-{teamId}) */\nexport function teamDirFromBaseWorkspace(baseWorkspace: string, teamId: string) {\n // Special-case: treat \"main\" as the personal workspace (agents.defaults.workspace).\n // This lets Kitchen expose a selectable \"main\" scope without creating a separate\n // ~/.openclaw/workspace-main folder.\n if (teamId === \"main\") return path.resolve(baseWorkspace);\n return path.resolve(baseWorkspace, \"..\", `workspace-${teamId}`);\n}\n\n/** Rejects path traversal and empty names; returns normalized name. */\nexport function assertSafeRelativeFileName(name: string): string {\n const n = name.replace(/\\\\/g, \"/\");\n if (!n || n.startsWith(\"/\") || n.includes(\"..\")) throw new Error(\"Invalid file name\");\n return n;\n}\n\nexport async function getBuiltinRecipesDir() {\n const cfg = await readOpenClawConfig();\n const p =\n cfg.plugins?.installs?.recipes?.installPath ||\n cfg.plugins?.installs?.recipes?.sourcePath ||\n cfg.plugins?.load?.paths?.[0];\n if (!p) throw new Error(\"Could not determine recipes plugin install path from ~/.openclaw/openclaw.json\");\n return path.join(p, \"recipes\", \"default\");\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { NextResponse } from \"next/server\";\nimport { runOpenClaw } from \"@/lib/openclaw\";\nimport { getTeamWorkspaceDir } from \"@/lib/paths\";\nimport { errorMessage } from \"@/lib/errors\";\nimport { createSpecHash } from \"@/lib/spec-hash-utils\";\nimport type { WorkflowTriggerCronV1 } from \"@/lib/workflows/types\";\n\n// ---------------------------------------------------------------------------\n// Provenance format — matches ClawRecipes CronMappingStateV1 so both systems\n// read/write the same file and never create duplicates.\n// ---------------------------------------------------------------------------\ntype MappingStateV1 = {\n version: 1;\n entries: Record<string, {\n installedCronId: string;\n specHash?: string;\n orphaned?: boolean;\n updatedAtMs?: number;\n }>;\n};\n\n/**\n * Provenance key for workflow triggers\n * Format: team:{teamId}:workflow:{workflowId}:trigger:{triggerId}\n */\nfunction triggerKey(teamId: string, workflowId: string, triggerId: string) {\n return `team:${teamId}:workflow:${workflowId}:trigger:${triggerId}`;\n}\n\n/**\n * Cron job name for workflow triggers\n */\nfunction triggerCronName(teamId: string, workflowId: string, triggerId: string) {\n return `workflow-trigger:${teamId}:${workflowId}:${triggerId}`;\n}\n\n/**\n * Build the message for a workflow trigger cron job\n */\nfunction buildTriggerMessage(teamId: string, workflowId: string) {\n return `openclaw recipes workflows enqueue --team-id ${teamId} --workflow-id ${workflowId} && openclaw recipes workflows runner-tick --team-id ${teamId} --concurrency 4`;\n}\n\n// ---------------------------------------------------------------------------\n// Single provenance file: <teamDir>/notes/cron-jobs.json\n// ---------------------------------------------------------------------------\n\nasync function readMapping(mappingPath: string): Promise<MappingStateV1> {\n try {\n const raw = await fs.readFile(mappingPath, \"utf8\");\n const parsed = JSON.parse(raw) as MappingStateV1;\n if (!parsed || parsed.version !== 1 || !parsed.entries) return { version: 1, entries: {} };\n return parsed;\n } catch {\n return { version: 1, entries: {} };\n }\n}\n\nasync function writeMapping(mappingPath: string, mapping: MappingStateV1): Promise<void> {\n await fs.mkdir(path.dirname(mappingPath), { recursive: true });\n await fs.writeFile(mappingPath, JSON.stringify(mapping, null, 2) + \"\\n\", \"utf8\");\n}\n\nfunction teamMappingPath(teamDir: string): string {\n return path.join(teamDir, \"notes\", \"cron-jobs.json\");\n}\n\nasync function createTriggerCronJob(\n teamId: string,\n workflowId: string,\n trigger: WorkflowTriggerCronV1\n): Promise<string> {\n const name = triggerCronName(teamId, workflowId, trigger.id);\n const message = buildTriggerMessage(teamId, workflowId);\n const description = `Workflow trigger: ${trigger.name || trigger.id}`;\n\n const args = [\n \"cron\",\n \"add\",\n \"--agent\",\n \"main\",\n \"--session\",\n \"isolated\",\n \"--no-deliver\",\n \"--model\",\n \"anthropic/claude-sonnet-4-20250514\",\n \"--name\",\n name,\n \"--description\",\n description,\n \"--message\",\n message,\n \"--cron\",\n trigger.expr,\n \"--json\"\n ];\n\n if (trigger.tz) {\n args.push(\"--tz\", trigger.tz);\n }\n\n const result = await runOpenClaw(args);\n if (!result.ok) {\n throw new Error(result.stderr || result.stdout || \"Failed to create cron job\");\n }\n\n const parsed = JSON.parse(result.stdout) as { id?: string; job?: { id?: string } };\n const cronId = parsed.id || parsed.job?.id;\n if (!cronId) {\n throw new Error(\"Cron creation succeeded but did not return id\");\n }\n\n return cronId;\n}\n\nasync function updateTriggerCronJob(\n cronId: string,\n teamId: string,\n workflowId: string,\n trigger: WorkflowTriggerCronV1\n): Promise<void> {\n const name = triggerCronName(teamId, workflowId, trigger.id);\n const message = buildTriggerMessage(teamId, workflowId);\n const description = `Workflow trigger: ${trigger.name || trigger.id}`;\n\n const args = [\n \"cron\",\n \"edit\",\n cronId,\n \"--name\",\n name,\n \"--description\",\n description,\n \"--message\",\n message,\n \"--cron\",\n trigger.expr\n ];\n\n if (trigger.tz) {\n args.push(\"--tz\", trigger.tz);\n }\n\n const result = await runOpenClaw(args);\n if (!result.ok) {\n throw new Error(result.stderr || result.stdout || \"Failed to update cron job\");\n }\n}\n\nasync function enableCronJob(cronId: string): Promise<void> {\n const result = await runOpenClaw([\"cron\", \"enable\", cronId]);\n if (!result.ok) {\n throw new Error(result.stderr || result.stdout || \"Failed to enable cron job\");\n }\n}\n\nasync function disableCronJob(cronId: string): Promise<void> {\n const result = await runOpenClaw([\"cron\", \"disable\", cronId]);\n if (!result.ok) {\n throw new Error(result.stderr || result.stdout || \"Failed to disable cron job\");\n }\n}\n\nasync function removeCronJob(cronId: string): Promise<void> {\n const result = await runOpenClaw([\"cron\", \"remove\", cronId]);\n if (!result.ok) {\n throw new Error(result.stderr || result.stdout || \"Failed to remove cron job\");\n }\n}\n\n/**\n * Sync workflow triggers with OpenClaw cron jobs\n */\nasync function syncTriggers(\n teamId: string,\n workflowId: string,\n triggers: WorkflowTriggerCronV1[]\n): Promise<{\n created: Array<{ triggerId: string; cronId: string; }>;\n updated: Array<{ triggerId: string; cronId: string; }>;\n enabled: Array<{ triggerId: string; cronId: string; }>;\n disabled: Array<{ triggerId: string; cronId: string; }>;\n removed: Array<{ triggerId: string; cronId: string; }>;\n}> {\n const teamDir = await getTeamWorkspaceDir(teamId);\n const mappingPath = teamMappingPath(teamDir);\n const mapping = await readMapping(mappingPath);\n const now = Date.now();\n\n const result = {\n created: [] as Array<{ triggerId: string; cronId: string; }>,\n updated: [] as Array<{ triggerId: string; cronId: string; }>,\n enabled: [] as Array<{ triggerId: string; cronId: string; }>,\n disabled: [] as Array<{ triggerId: string; cronId: string; }>,\n removed: [] as Array<{ triggerId: string; cronId: string; }>,\n };\n\n // Track which triggers are currently active\n const activeTriggerIds = new Set(triggers.map(t => t.id));\n\n // Process each trigger\n for (const trigger of triggers) {\n const key = triggerKey(teamId, workflowId, trigger.id);\n const specHash = createSpecHash({\n expr: trigger.expr,\n tz: trigger.tz || \"\",\n enabled: trigger.enabled ?? true\n });\n \n const existing = mapping.entries[key];\n\n if (!existing || existing.orphaned) {\n // Create new cron job for enabled triggers\n if (trigger.enabled !== false) {\n const cronId = await createTriggerCronJob(teamId, workflowId, trigger);\n mapping.entries[key] = { installedCronId: cronId, specHash, updatedAtMs: now };\n result.created.push({ triggerId: trigger.id, cronId });\n }\n } else {\n // Update existing cron job\n const cronId = existing.installedCronId;\n const needsUpdate = existing.specHash !== specHash;\n\n if (needsUpdate) {\n if (trigger.enabled !== false) {\n await updateTriggerCronJob(cronId, teamId, workflowId, trigger);\n await enableCronJob(cronId);\n result.updated.push({ triggerId: trigger.id, cronId });\n } else {\n await disableCronJob(cronId);\n result.disabled.push({ triggerId: trigger.id, cronId });\n }\n mapping.entries[key] = { installedCronId: cronId, specHash, updatedAtMs: now };\n } else {\n // No changes to spec, but check enable/disable state\n if (trigger.enabled !== false) {\n await enableCronJob(cronId);\n result.enabled.push({ triggerId: trigger.id, cronId });\n } else {\n await disableCronJob(cronId);\n result.disabled.push({ triggerId: trigger.id, cronId });\n }\n mapping.entries[key] = { ...existing, updatedAtMs: now };\n }\n }\n }\n\n // Remove orphaned triggers (those that were removed from workflow)\n const workflowKeyPrefix = `team:${teamId}:workflow:${workflowId}:trigger:`;\n for (const [key, entry] of Object.entries(mapping.entries)) {\n if (!key.startsWith(workflowKeyPrefix)) continue;\n \n const triggerId = key.slice(workflowKeyPrefix.length);\n if (!activeTriggerIds.has(triggerId) && !entry.orphaned) {\n await removeCronJob(entry.installedCronId);\n mapping.entries[key] = { ...entry, orphaned: true, updatedAtMs: now };\n result.removed.push({ triggerId, cronId: entry.installedCronId });\n }\n }\n\n await writeMapping(mappingPath, mapping);\n return result;\n}\n\nexport async function POST(req: Request) {\n try {\n const body = (await req.json()) as {\n action?: string;\n teamId?: string;\n workflowId?: string;\n triggers?: WorkflowTriggerCronV1[];\n };\n\n const { action, teamId, workflowId, triggers } = body;\n\n if (!action || action !== \"sync\") {\n return NextResponse.json({ ok: false, error: \"action must be 'sync'\" }, { status: 400 });\n }\n\n if (!teamId || !workflowId) {\n return NextResponse.json({ ok: false, error: \"teamId and workflowId are required\" }, { status: 400 });\n }\n\n if (!Array.isArray(triggers)) {\n return NextResponse.json({ ok: false, error: \"triggers must be an array\" }, { status: 400 });\n }\n\n // Filter to only cron triggers\n const cronTriggers = triggers.filter(t => t.kind === \"cron\") as WorkflowTriggerCronV1[];\n\n const result = await syncTriggers(teamId, workflowId, cronTriggers);\n\n return NextResponse.json({\n ok: true,\n action,\n teamId,\n workflowId,\n ...result\n });\n } catch (e: unknown) {\n return NextResponse.json({ ok: false, error: errorMessage(e) }, { status: 500 });\n }\n}","import crypto from \"node:crypto\";\n\n/**\n * Generate a hash for trigger spec to detect changes\n */\nexport function createSpecHash(data: Record<string, unknown>): string {\n const normalized = JSON.stringify(data, Object.keys(data).sort());\n return crypto.createHash(\"sha256\").update(normalized).digest(\"hex\").slice(0, 16);\n}","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"standalone\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/teams/workflow-triggers/route\",\n pathname: \"/api/teams/workflow-triggers\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/app/api/teams/workflow-triggers/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/teams/workflow-triggers/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n"],"names":[],"mappings":"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","ignoreList":[6]}
@@ -1,3 +1,3 @@
1
- module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),a=e.i(50227);async function n(){let e=a.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function o(){let e=await n(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function s(){let e=await o();return a.default.join(e,"recipes")}async function i(){let e=await o(),r=a.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return a.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return a.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?a.default.resolve(e):a.default.resolve(e,"..",`workspace-${t}`)}function c(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function p(){let e=await n(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return a.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>c,"getBuiltinRecipesDir",()=>p,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>o,"getWorkspaceGoalsDir",()=>i,"getWorkspaceRecipesDir",()=>s,"readOpenClawConfig",()=>n,"teamDirFromBaseWorkspace",()=>u])},40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},76509,e=>{"use strict";var t=e.i(7367);async function r(){let e=await (0,t.readOpenClawConfig)(),r=e.gateway?.port??18789,a=e.gateway?.auth?.token;if(!a)throw Error("Missing gateway token (gateway.auth.token in ~/.openclaw/openclaw.json)");return{baseUrl:`http://127.0.0.1:${r}`,token:a}}async function a(e){let{baseUrl:t,token:a}=await r(),n=await fetch(`${t}/tools/invoke`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${a}`},body:JSON.stringify(e)}),o=await n.json();if(!n.ok||!o.ok)throw Error("object"==typeof o.error&&o.error?.message||("string"==typeof o.error?o.error:null)||`tools/invoke failed (${n.status})`);return o.result}function n(e){return e?.find(e=>"text"===e.type)?.text}async function o(){let e=await a({tool:"gateway",args:{action:"config.get",raw:"{}"}}),t=n(e?.content);if(!t)throw Error("gateway config.get: missing text payload");let r=JSON.parse(t),o=String(r?.result?.raw??""),s=String(r?.result?.hash??"");if(!o)throw Error("gateway config.get: missing result.raw");if(!s)throw Error("gateway config.get: missing result.hash");return{raw:o,hash:s}}async function s(e,t){let{hash:r}=await o();return a({tool:"gateway",args:{action:"config.patch",raw:JSON.stringify(e,null,2),baseHash:r,note:t??"ClawKitchen settings update",restartDelayMs:1e3}})}e.s(["gatewayConfigGet",()=>o,"gatewayConfigPatch",()=>s,"getContentText",()=>n,"toolsInvoke",()=>a])},53704,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),p=e.i(47587),d=e.i(66012),f=e.i(70101),g=e.i(54468),h=e.i(10372),w=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),m=e.i(40317),v=e.i(76509);let R="plugins.entries.recipes.config.cronInstallation";async function E(){try{let{raw:e}=await (0,v.gatewayConfigGet)(),t=JSON.parse(e),r=String(R.split(".").reduce((e,t)=>{if(e&&"object"==typeof e)return e[t]},t)??"").trim();return y.NextResponse.json({ok:!0,path:R,value:r})}catch(e){return y.NextResponse.json({ok:!1,error:(0,m.errorMessage)(e)},{status:500})}}async function C(e){try{let t=await e.json(),r=String(t.value??"").trim();if(!r||!["off","prompt","on"].includes(r))return y.NextResponse.json({ok:!1,error:"value must be one of: off|prompt|on"},{status:400});return await (0,v.gatewayConfigPatch)({plugins:{entries:{recipes:{config:{cronInstallation:r}}}}},`ClawKitchen: set ${R}=${r}`),y.NextResponse.json({ok:!0,path:R,value:r,note:"Gateway will restart to apply config."})}catch(e){return y.NextResponse.json({ok:!1,error:(0,m.errorMessage)(e)},{status:500})}}e.s(["GET",()=>E,"PUT",()=>C],48e3);var k=e.i(48e3);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/settings/cron-installation/route",pathname:"/api/settings/cron-installation",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/settings/cron-installation/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:S}=j;function A(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})}async function O(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/settings/cron-installation/route";y=y.replace(/\/index$/,"")||"/";let m=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:E,parsedUrl:C,isDraftMode:k,prerenderManifest:N,routerServerContext:b,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:T}=m,q=(0,i.normalizeAppPath)(y),D=!!(N.dynamicRoutes[q]||N.routes[O]),_=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!N.routes[O],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!D||j.isDev||k||(I="/index"===(I=O)?"/":I);let H=!0===j.isDev||!D,U=D&&!H;T&&P&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:T});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:R,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,b)},sharedContext:{buildId:v}},B=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let s=async e=>j.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${y}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&S&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!D)return await (0,d.sendResponse)(B,G,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[h.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,b),t}},c=await j.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:i});if(!D)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let w=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&D||w.delete(h.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||w.get("Cache-Control")||w.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,d.sendResponse)(B,G,new Response(c.value.body,{headers:w,status:c.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof w.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,b),D)throw t;return await (0,d.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>j,"serverHooks",()=>S,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>b],53704)}];
1
+ module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),a=e.i(50227);async function n(){let e=a.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function o(){let e=await n(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function s(){let e=await o();return a.default.join(e,"recipes")}async function i(){let e=await o(),r=a.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return a.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return a.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?a.default.resolve(e):a.default.resolve(e,"..",`workspace-${t}`)}function c(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function p(){let e=await n(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return a.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>c,"getBuiltinRecipesDir",()=>p,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>o,"getWorkspaceGoalsDir",()=>i,"getWorkspaceRecipesDir",()=>s,"readOpenClawConfig",()=>n,"teamDirFromBaseWorkspace",()=>u])},40317,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},76509,e=>{"use strict";var t=e.i(7367);async function r(){let e=await (0,t.readOpenClawConfig)(),r=e.gateway?.port??18789,a=e.gateway?.auth?.token;if(!a)throw Error("Missing gateway token (gateway.auth.token in ~/.openclaw/openclaw.json)");return{baseUrl:`http://127.0.0.1:${r}`,token:a}}async function a(e){let{baseUrl:t,token:a}=await r(),n=await fetch(`${t}/tools/invoke`,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${a}`},body:JSON.stringify(e)}),o=await n.json();if(!n.ok||!o.ok)throw Error("object"==typeof o.error&&o.error?.message||("string"==typeof o.error?o.error:null)||`tools/invoke failed (${n.status})`);return o.result}function n(e){return e?.find(e=>"text"===e.type)?.text}async function o(){let e=await a({tool:"gateway",args:{action:"config.get",raw:"{}"}}),t=n(e?.content);if(!t)throw Error("gateway config.get: missing text payload");let r=JSON.parse(t),o=String(r?.result?.raw??""),s=String(r?.result?.hash??"");if(!o)throw Error("gateway config.get: missing result.raw");if(!s)throw Error("gateway config.get: missing result.hash");return{raw:o,hash:s}}async function s(e,t){let{hash:r}=await o();return a({tool:"gateway",args:{action:"config.patch",raw:JSON.stringify(e,null,2),baseHash:r,note:t??"ClawKitchen settings update",restartDelayMs:1e3}})}e.s(["gatewayConfigGet",()=>o,"gatewayConfigPatch",()=>s,"getContentText",()=>n,"toolsInvoke",()=>a])},53704,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),p=e.i(47587),d=e.i(66012),f=e.i(70101),g=e.i(74838),h=e.i(10372),w=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(89171),m=e.i(40317),v=e.i(76509);let R="plugins.entries.recipes.config.cronInstallation";async function E(){try{let{raw:e}=await (0,v.gatewayConfigGet)(),t=JSON.parse(e),r=String(R.split(".").reduce((e,t)=>{if(e&&"object"==typeof e)return e[t]},t)??"").trim();return y.NextResponse.json({ok:!0,path:R,value:r})}catch(e){return y.NextResponse.json({ok:!1,error:(0,m.errorMessage)(e)},{status:500})}}async function C(e){try{let t=await e.json(),r=String(t.value??"").trim();if(!r||!["off","prompt","on"].includes(r))return y.NextResponse.json({ok:!1,error:"value must be one of: off|prompt|on"},{status:400});return await (0,v.gatewayConfigPatch)({plugins:{entries:{recipes:{config:{cronInstallation:r}}}}},`ClawKitchen: set ${R}=${r}`),y.NextResponse.json({ok:!0,path:R,value:r,note:"Gateway will restart to apply config."})}catch(e){return y.NextResponse.json({ok:!1,error:(0,m.errorMessage)(e)},{status:500})}}e.s(["GET",()=>E,"PUT",()=>C],48e3);var k=e.i(48e3);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/settings/cron-installation/route",pathname:"/api/settings/cron-installation",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/settings/cron-installation/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:S}=j;function A(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})}async function O(e,t,a){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/settings/cron-installation/route";y=y.replace(/\/index$/,"")||"/";let m=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:E,parsedUrl:C,isDraftMode:k,prerenderManifest:N,routerServerContext:b,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:T}=m,q=(0,i.normalizeAppPath)(y),D=!!(N.dynamicRoutes[q]||N.routes[O]),_=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!N.routes[O],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!D||j.isDev||k||(I="/index"===(I=O)?"/":I);let H=!0===j.isDev||!D,U=D&&!H;T&&P&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:T});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:R,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>j.onRequestError(e,t,a,n,b)},sharedContext:{buildId:v}},B=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let s=async e=>j.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${y}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&S&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!D)return await (0,d.sendResponse)(B,G,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[h.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,b),t}},c=await j.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:i});if(!D)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let w=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return i&&D||w.delete(h.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||w.get("Cache-Control")||w.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,d.sendResponse)(B,G,new Response(c.value.body,{headers:w,status:c.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof w.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,b),D)throw t;return await (0,d.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>j,"serverHooks",()=>S,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>b],53704)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0f55461f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function i(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function a(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function s(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),i=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(i>0){let e=n.slice(i).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),i=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?s(i):i,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=s(String(t.stdout??"")),i=String(t.stderr??""),a="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==a)return{ok:!1,exitCode:a,stdout:n,stderr:i};return{ok:!0,exitCode:0,stdout:n,stderr:i}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);async function i(){let e=n.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function a(){let e=await i(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function s(){let e=await a();return n.default.join(e,"recipes")}async function o(){let e=await a(),r=n.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return n.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return n.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?n.default.resolve(e):n.default.resolve(e,"..",`workspace-${t}`)}function d(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function c(){let e=await i(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return n.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>d,"getBuiltinRecipesDir",()=>c,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>a,"getWorkspaceGoalsDir",()=>o,"getWorkspaceRecipesDir",()=>s,"readOpenClawConfig",()=>i,"teamDirFromBaseWorkspace",()=>u])},5365,(e,t,r)=>{t.exports=e.x("process",()=>require("process"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},72915,e=>{"use strict";var t=e.i(12714),r=e.i(50227),n=e.i(23008),i=e.i(5003),a=e.i(7367);function s(e){if(!e.startsWith("---\n"))throw Error("Recipe markdown must start with YAML frontmatter (---)");let t=e.indexOf("\n---\n",4);if(-1===t)throw Error("Recipe frontmatter not terminated (---)");let r=e.slice(4,t+1),i=n.default.parse(r);if(!i?.id)throw Error("Recipe frontmatter must include id");return i.id}async function o(){let e=await (0,i.runOpenClaw)(["recipes","list"]);if(!e.ok)return[];try{return JSON.parse(e.stdout)}catch{return[]}}async function l(e){return(await o()).find(t=>t.id===e)??null}async function u(e){let t="builtin"===e.source?await (0,a.getBuiltinRecipesDir)():await (0,a.getWorkspaceRecipesDir)();return r.default.join(t,`${e.id}.md`)}async function d(e,n){await t.default.mkdir(r.default.dirname(e),{recursive:!0}),await t.default.writeFile(e,n,"utf8")}e.s(["findRecipeById",()=>l,"parseFrontmatterId",()=>s,"resolveRecipePath",()=>u,"writeRecipeFile",()=>d])},68120,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),i=e.i(59756),a=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(54468),w=e.i(10372),m=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),y=e.i(50227),R=e.i(5003),v=e.i(72915),k=e.i(12714);async function C(e,t){let r=[],n=y.default.resolve(e,"..");try{for(let e of(await k.default.readdir(n,{withFileTypes:!0})).filter(e=>e.isDirectory()&&e.name.startsWith("workspace-"))){let i=y.default.join(n,e.name,"team.json");try{let n=await k.default.readFile(i,"utf8"),a=JSON.parse(n);String(a.recipeId??"").trim()===t&&r.push(String(a.teamId??e.name.replace(/^workspace-/,"")).trim()||e.name)}catch{}}}catch{}return r}async function j(e,t){let r=[],n=!1,i=await (0,R.runOpenClaw)(["agents","list","--json"]);if(!i.ok)return{attachedAgents:r,hasSameIdAgent:n};try{let a=JSON.parse(i.stdout);for(let i of(n=a.some(e=>String(e.id??"").trim()===t),a)){let n=String(i.id??"").trim();if(!n)continue;let a=y.default.join(e,"agents",n,"agent.json");try{let e=await k.default.readFile(a,"utf8"),i=JSON.parse(e);String(i.recipeId??"").trim()===t&&r.push(n)}catch{}}}catch{}return{attachedAgents:r,hasSameIdAgent:n}}async function E(e){let t=String((await e.json()).id??"").trim();if(!t)return x.NextResponse.json({ok:!1,error:"id is required"},{status:400});let r=await (0,v.findRecipeById)(t);if(!r)return x.NextResponse.json({ok:!1,error:`Recipe not found: ${t}`},{status:404});if("builtin"===r.source)return x.NextResponse.json({ok:!1,error:`Recipe ${t} is builtin and cannot be deleted`},{status:403});let n=(await (0,R.runOpenClaw)(["config","get","agents.defaults.workspace"]))?.stdout?.trim();if(!n)return x.NextResponse.json({ok:!1,error:"agents.defaults.workspace not set"},{status:500});let i=y.default.resolve(n,"recipes")+y.default.sep,a=await (0,v.resolveRecipePath)(r),s=y.default.resolve(a);if(!s.startsWith(i))return x.NextResponse.json({ok:!1,error:`Refusing to delete non-workspace recipe path: ${s}`},{status:403});let o=r.kind??"team";if("team"===o){let e=await C(n,t);if(e.length)return x.NextResponse.json({ok:!1,error:`Team ${t} is in use by installed team(s): ${e.join(", ")}. Remove the team(s) first, then delete the recipe. If no team is shown, you still have a .openclaw/workspace-${t} folder. Please remove the folder to delete this recipe.`,details:{attachedTeams:e}},{status:409})}if("agent"===o){let{attachedAgents:e,hasSameIdAgent:r}=await j(n,t);if(r)return x.NextResponse.json({ok:!1,error:`Agent recipe ${t} cannot be deleted because an active agent exists with the same id: ${t}. Delete the agent first, then delete the recipe.`,details:{agentId:t}},{status:409});if(e.length)return x.NextResponse.json({ok:!1,error:`Agent recipe ${t} is in use by active agent(s): ${e.join(", ")}. Delete the agent(s) first, then delete the recipe.`,details:{attachedAgents:e}},{status:409})}return await k.default.rm(s,{force:!0}),x.NextResponse.json({ok:!0,deleted:s})}e.s(["POST",()=>E],90138);var S=e.i(90138);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/recipes/delete/route",pathname:"/api/recipes/delete",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/recipes/delete/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:A}=b;function T(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})}async function P(e,t,n){b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/recipes/delete/route";x=x.replace(/\/index$/,"")||"/";let y=await b.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:k,parsedUrl:C,isDraftMode:j,prerenderManifest:E,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:A,clientReferenceManifest:T,serverActionsManifest:P}=y,q=(0,o.normalizeAppPath)(x),I=!!(E.dynamicRoutes[q]||E.routes[A]),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!j){let e=!!E.routes[A],t=E.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(k.experimental.adapterPath)return await D();throw new m.NoFallbackError}}let _=null;!I||b.isDev||j||(_="/index"===(_=A)?"/":_);let $=!0===b.isDev||!I,F=I&&!$;P&&T&&(0,s.setManifestsSingleton)({page:x,clientReferenceManifest:T,serverActionsManifest:P});let H=e.method||"GET",U=(0,a.getTracer)(),M=U.getActiveScopeSpan(),W={params:v,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:$,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:k.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>b.onRequestError(e,t,n,i,S)},sharedContext:{buildId:R}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>b.handle(J,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${x}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=W.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,B,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[w.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,S),t}},d=await b.handleResponse({req:e,nextConfig:k,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!I)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&I||m.delete(w.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};M?await l(M):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,S),I)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>T,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>O],68120)}];
1
+ module.exports=[74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function i(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function a(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function s(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),i=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(i>0){let e=n.slice(i).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),i=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?s(i):i,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=s(String(t.stdout??"")),i=String(t.stderr??""),a="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==a)return{ok:!1,exitCode:a,stdout:n,stderr:i};return{ok:!0,exitCode:0,stdout:n,stderr:i}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},7367,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);async function i(){let e=n.default.join(r.default.homedir(),".openclaw","openclaw.json");return JSON.parse(await t.default.readFile(e,"utf8"))}async function a(){let e=await i(),t=e.agents?.defaults?.workspace;if(!t)throw Error("agents.defaults.workspace is not set in ~/.openclaw/openclaw.json");return t}async function s(){let e=await a();return n.default.join(e,"recipes")}async function o(){let e=await a(),r=n.default.join(e,"goals");try{if((await t.default.stat(r)).isDirectory())return r}catch{}return n.default.join(e,"notes","goals")}async function l(e){let t=r.default.homedir();if(!t)throw Error("Could not resolve home directory");return n.default.join(t,".openclaw",`workspace-${e}`)}function u(e,t){return"main"===t?n.default.resolve(e):n.default.resolve(e,"..",`workspace-${t}`)}function d(e){let t=e.replace(/\\/g,"/");if(!t||t.startsWith("/")||t.includes(".."))throw Error("Invalid file name");return t}async function c(){let e=await i(),t=e.plugins?.installs?.recipes?.installPath||e.plugins?.installs?.recipes?.sourcePath||e.plugins?.load?.paths?.[0];if(!t)throw Error("Could not determine recipes plugin install path from ~/.openclaw/openclaw.json");return n.default.join(t,"recipes","default")}e.s(["assertSafeRelativeFileName",()=>d,"getBuiltinRecipesDir",()=>c,"getTeamWorkspaceDir",()=>l,"getWorkspaceDir",()=>a,"getWorkspaceGoalsDir",()=>o,"getWorkspaceRecipesDir",()=>s,"readOpenClawConfig",()=>i,"teamDirFromBaseWorkspace",()=>u])},5365,(e,t,r)=>{t.exports=e.x("process",()=>require("process"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},72915,e=>{"use strict";var t=e.i(12714),r=e.i(50227),n=e.i(23008),i=e.i(5003),a=e.i(7367);function s(e){if(!e.startsWith("---\n"))throw Error("Recipe markdown must start with YAML frontmatter (---)");let t=e.indexOf("\n---\n",4);if(-1===t)throw Error("Recipe frontmatter not terminated (---)");let r=e.slice(4,t+1),i=n.default.parse(r);if(!i?.id)throw Error("Recipe frontmatter must include id");return i.id}async function o(){let e=await (0,i.runOpenClaw)(["recipes","list"]);if(!e.ok)return[];try{return JSON.parse(e.stdout)}catch{return[]}}async function l(e){return(await o()).find(t=>t.id===e)??null}async function u(e){let t="builtin"===e.source?await (0,a.getBuiltinRecipesDir)():await (0,a.getWorkspaceRecipesDir)();return r.default.join(t,`${e.id}.md`)}async function d(e,n){await t.default.mkdir(r.default.dirname(e),{recursive:!0}),await t.default.writeFile(e,n,"utf8")}e.s(["findRecipeById",()=>l,"parseFrontmatterId",()=>s,"resolveRecipePath",()=>u,"writeRecipeFile",()=>d])},68120,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),i=e.i(59756),a=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),w=e.i(10372),m=e.i(93695);e.i(52474);var g=e.i(220),x=e.i(89171),y=e.i(50227),R=e.i(5003),v=e.i(72915),k=e.i(12714);async function C(e,t){let r=[],n=y.default.resolve(e,"..");try{for(let e of(await k.default.readdir(n,{withFileTypes:!0})).filter(e=>e.isDirectory()&&e.name.startsWith("workspace-"))){let i=y.default.join(n,e.name,"team.json");try{let n=await k.default.readFile(i,"utf8"),a=JSON.parse(n);String(a.recipeId??"").trim()===t&&r.push(String(a.teamId??e.name.replace(/^workspace-/,"")).trim()||e.name)}catch{}}}catch{}return r}async function j(e,t){let r=[],n=!1,i=await (0,R.runOpenClaw)(["agents","list","--json"]);if(!i.ok)return{attachedAgents:r,hasSameIdAgent:n};try{let a=JSON.parse(i.stdout);for(let i of(n=a.some(e=>String(e.id??"").trim()===t),a)){let n=String(i.id??"").trim();if(!n)continue;let a=y.default.join(e,"agents",n,"agent.json");try{let e=await k.default.readFile(a,"utf8"),i=JSON.parse(e);String(i.recipeId??"").trim()===t&&r.push(n)}catch{}}}catch{}return{attachedAgents:r,hasSameIdAgent:n}}async function E(e){let t=String((await e.json()).id??"").trim();if(!t)return x.NextResponse.json({ok:!1,error:"id is required"},{status:400});let r=await (0,v.findRecipeById)(t);if(!r)return x.NextResponse.json({ok:!1,error:`Recipe not found: ${t}`},{status:404});if("builtin"===r.source)return x.NextResponse.json({ok:!1,error:`Recipe ${t} is builtin and cannot be deleted`},{status:403});let n=(await (0,R.runOpenClaw)(["config","get","agents.defaults.workspace"]))?.stdout?.trim();if(!n)return x.NextResponse.json({ok:!1,error:"agents.defaults.workspace not set"},{status:500});let i=y.default.resolve(n,"recipes")+y.default.sep,a=await (0,v.resolveRecipePath)(r),s=y.default.resolve(a);if(!s.startsWith(i))return x.NextResponse.json({ok:!1,error:`Refusing to delete non-workspace recipe path: ${s}`},{status:403});let o=r.kind??"team";if("team"===o){let e=await C(n,t);if(e.length)return x.NextResponse.json({ok:!1,error:`Team ${t} is in use by installed team(s): ${e.join(", ")}. Remove the team(s) first, then delete the recipe. If no team is shown, you still have a .openclaw/workspace-${t} folder. Please remove the folder to delete this recipe.`,details:{attachedTeams:e}},{status:409})}if("agent"===o){let{attachedAgents:e,hasSameIdAgent:r}=await j(n,t);if(r)return x.NextResponse.json({ok:!1,error:`Agent recipe ${t} cannot be deleted because an active agent exists with the same id: ${t}. Delete the agent first, then delete the recipe.`,details:{agentId:t}},{status:409});if(e.length)return x.NextResponse.json({ok:!1,error:`Agent recipe ${t} is in use by active agent(s): ${e.join(", ")}. Delete the agent(s) first, then delete the recipe.`,details:{attachedAgents:e}},{status:409})}return await k.default.rm(s,{force:!0}),x.NextResponse.json({ok:!0,deleted:s})}e.s(["POST",()=>E],90138);var S=e.i(90138);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/recipes/delete/route",pathname:"/api/recipes/delete",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/recipes/delete/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:N,workUnitAsyncStorage:O,serverHooks:A}=b;function T(){return(0,n.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:O})}async function P(e,t,n){b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/recipes/delete/route";x=x.replace(/\/index$/,"")||"/";let y=await b.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:k,parsedUrl:C,isDraftMode:j,prerenderManifest:E,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,resolvedPathname:A,clientReferenceManifest:T,serverActionsManifest:P}=y,q=(0,o.normalizeAppPath)(x),I=!!(E.dynamicRoutes[q]||E.routes[A]),D=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!j){let e=!!E.routes[A],t=E.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(k.experimental.adapterPath)return await D();throw new m.NoFallbackError}}let _=null;!I||b.isDev||j||(_="/index"===(_=A)?"/":_);let $=!0===b.isDev||!I,F=I&&!$;P&&T&&(0,s.setManifestsSingleton)({page:x,clientReferenceManifest:T,serverActionsManifest:P});let H=e.method||"GET",U=(0,a.getTracer)(),M=U.getActiveScopeSpan(),W={params:v,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:$,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:k.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>b.onRequestError(e,t,n,i,S)},sharedContext:{buildId:R}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),J=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>b.handle(J,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${x}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&N&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=W.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,B,a,W.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[w.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,n=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,S),t}},d=await b.handleResponse({req:e,nextConfig:k,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:O,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!I)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&I||m.delete(w.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};M?await l(M):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,S),I)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>T,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>O],68120)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__1311d7a3._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function i(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function a(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function s(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),i=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(i>0){let e=n.slice(i).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),i=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?s(i):i,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=s(String(t.stdout??"")),i=String(t.stderr??""),a="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==a)return{ok:!1,exitCode:a,stdout:n,stderr:i};return{ok:!0,exitCode:0,stdout:n,stderr:i}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},26837,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);function i(e){return e.includes("/")||e.includes("\\")}function a(e){if(!/^[a-z0-9][a-z0-9-]{1,63}$/.test(e))throw Error(`Invalid teamId "${e}"`);return n.default.join(r.default.homedir(),".openclaw",`workspace-${e}`)}function s(e){if(e)return a(e);let t=process.env.CK_TEAM_ID;if(!t&&!process.env.CK_TEAM_WORKSPACE_DIR)throw Error("No team specified. Pass a teamId or set CK_TEAM_ID / CK_TEAM_WORKSPACE_DIR.");return process.env.CK_TEAM_WORKSPACE_DIR??a(t)}function o(e,t){let r=i(t)?t:a(t);return n.default.join(r,{backlog:"work/backlog","in-progress":"work/in-progress",testing:"work/testing",done:"work/done"}[e])}async function l(e){let r,a=i(e)?"workspace"===(r=n.default.basename(e))?"main":r.startsWith("workspace-")?r.slice(10):r:e,s=[];for(let r of["backlog","in-progress","testing","done"]){let i=[];try{i=await t.default.readdir(o(r,e))}catch{i=[]}for(let l of i){if(!l.endsWith(".md"))continue;let i=function(e){let t=e.match(/^(\d{4})-/);return t?Number(t[1]):null}(l);if(null==i)continue;let u=n.default.join(o(r,e),l),[d,c]=await Promise.all([t.default.readFile(u,"utf8"),t.default.stat(u)]),p=function(e){let t=e.split("\n")[0]??"",r=t.startsWith("# ")?t.slice(2).trim():"",n=r.indexOf(" ");if(n>0){let e=r.slice(n+1).trim();if(e)return e}let i=r.replace(/^\d{4}-/,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim(),a=new Set(["api","cli","ui","ux","gpu","cpu","npm","pr","ci","cd","json","yaml","md"]),s=i?i.split(" ").filter(Boolean).map(e=>{let t=e.toLowerCase();return a.has(t)?e.toUpperCase():t.startsWith("v")&&/^\d/.test(t.slice(1))||/^[\d.]+$/.test(e)?e:e.slice(0,1).toUpperCase()+e.slice(1)}).join(" "):"";return s||r||"(untitled)"}(d),f=function(e,t){let r=RegExp(`^${t}:\\s*(.*)$`,"mi"),n=e.match(r);return n?.[1]?.trim()||null}(d,"Owner"),m=c.mtime.toISOString(),h=(Date.now()-c.mtimeMs)/36e5;s.push({teamId:a,number:i,id:l.replace(/\.md$/,""),title:p,owner:f,stage:r,file:u,updatedAt:m,ageHours:h})}}return s.sort((e,t)=>e.number-t.number),s}async function u(e,t){let r=await l(t),n=e.trim(),i=n.match(/^\d+$/)?r.find(e=>e.number===Number(n)):null;return r.find(e=>e.id===n)??i??null}async function d(e,t){return u(t,e)}async function c(e,r){let n=await u(r,e);return n?{teamId:n.teamId,id:n.id,file:n.file,markdown:await t.default.readFile(n.file,"utf8"),owner:n.owner,stage:n.stage}:null}e.s(["getTeamWorkspaceDir",()=>s,"getTicketByIdOrNumber",()=>u,"getTicketMarkdown",()=>c,"listTickets",()=>l,"resolveTicket",()=>d,"stageDir",()=>o,"teamWorkspace",()=>a])},16328,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),i=e.i(59756),a=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(54468),h=e.i(10372),g=e.i(93695);e.i(52474);var w=e.i(220),x=e.i(12714),k=e.i(89171),R=e.i(5003),v=e.i(26837);async function y(e,t){let r=await (0,v.getTicketMarkdown)(e,t);if(!r)return;let n=`- ${new Date().toISOString().slice(0,10)} (ClawKitchen UI): Marked done from ClawKitchen UI.`;if(r.markdown.includes(n))return;let i=/\n## Comments\n/i.test(r.markdown)||/^## Comments\n/im.test(r.markdown),a=r.markdown;i||(a=a.replace(/\s*$/,"\n\n## Comments\n")),a=a.replace(/\s*$/,"\n"+n+"\n"),await x.default.writeFile(r.file,a,"utf8")}async function C(e){try{let t=await e.json(),r=String(t.teamId??"").trim(),n=String(t.ticket??"").trim(),i=String(t.to??"").trim();if(!r)return k.NextResponse.json({ok:!1,error:"Missing teamId"},{status:400});if(!n)return k.NextResponse.json({ok:!1,error:"Missing ticket"},{status:400});if(!i||!["backlog","in-progress","testing","done"].includes(i))return k.NextResponse.json({ok:!1,error:"Invalid destination stage"},{status:400});let a=await (0,R.runOpenClaw)(["recipes","move-ticket","--team-id",r,"--ticket",n,"--to",i,"--yes"]);if(!a.ok)throw Error(a.stderr||`openclaw exit ${a.exitCode}`);return"done"===i&&await y(r,n),k.NextResponse.json({ok:!0})}catch(t){let e=t instanceof Error?t.message:String(t);return k.NextResponse.json({ok:!1,error:e},{status:500})}}e.s(["POST",()=>C],9749);var E=e.i(9749);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tickets/move/route",pathname:"/api/tickets/move",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tickets/move/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:A,serverHooks:T}=S;function _(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:A})}async function O(e,t,n){S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/tickets/move/route";x=x.replace(/\/index$/,"")||"/";let k=await S.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!k)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:y,parsedUrl:C,isDraftMode:E,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,resolvedPathname:O,clientReferenceManifest:I,serverActionsManifest:N}=k,j=(0,o.normalizeAppPath)(x),P=!!(b.dynamicRoutes[j]||b.routes[O]),q=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!b.routes[O],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await q();throw new g.NoFallbackError}}let M=null;!P||S.isDev||E||(M="/index"===(M=O)?"/":M);let D=!0===S.isDev||!P,K=P&&!D;N&&I&&(0,s.setManifestsSingleton)({page:x,clientReferenceManifest:I,serverActionsManifest:N});let $=e.method||"GET",U=(0,a.getTracer)(),H=U.getActiveScopeSpan(),F={params:v,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>S.onRequestError(e,t,n,i,A)},sharedContext:{buildId:R}},W=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let s=async e=>S.handle(L,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${x}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(i);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(W,B,a,F.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[h.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,A),t}},d=await S.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!P)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&P||g.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(W,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};H?await l(H):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,A),P)throw t;return await (0,p.sendResponse)(W,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>_,"routeModule",()=>S,"serverHooks",()=>T,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>A],16328)}];
1
+ module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},59494,e=>{"use strict";function t(){let e=globalThis.__clawkitchen_api;if(!e)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return e}e.s(["getKitchenApi",()=>t])},5003,e=>{"use strict";var t=e.i(59494),r=e.i(74533);let n=(0,e.i(12057).promisify)(r.execFile);function i(e){return"string"==typeof e.stdout?e.stdout:e.stdout&&"object"==typeof e.stdout&&"toString"in e.stdout?String(e.stdout.toString()):""}function a(e,t){return"string"==typeof e.stderr?e.stderr:e.stderr&&"object"==typeof e.stderr&&"toString"in e.stderr?String(e.stderr.toString()):"string"==typeof e.message?e.message:String(t)}function s(e){let t=e.trim();if(!t)return e;let r=t[0];if("["===r||"{"===r||'"'===r)return e;let n=t.split("\n"),i=n.findIndex(e=>/^\s*[[\{"]/.test(e));if(i>0){let e=n.slice(i).join("\n");try{return JSON.parse(e),e}catch{}}return e}async function o(e,t={}){let{sanitizeStdout:r=!0}=t;try{process.platform;let t=await n("openclaw",e,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000}),i=String(t.stdout??"");return{ok:!0,exitCode:0,stdout:r?s(i):i,stderr:String(t.stderr??"")}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}function l(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{}let r=t.split("\n"),n=r.findIndex(e=>/^\s*[[\{]/.test(e));if(n>=0){let e=r.slice(n).join("\n");try{return JSON.parse(e)}catch{}}for(let e=r.length-1;e>=0;e--)if(/^\s*[\]}]/.test(r[e])){for(let t=e;t>=0;t--)if(/^\s*[[\{]/.test(r[t]))try{return JSON.parse(r.slice(t,e+1).join("\n"))}catch{}}return null}async function u(e){return o(e,{sanitizeStdout:!1})}async function d(e){if("cron"===e[0]||"recipes"===e[0]&&"workflows"===e[1]&&["runner-once","runner-tick","worker-tick"].includes(e[2]))return o(e);let r=(0,t.getKitchenApi)();try{let t=await r.runtime.system.runCommandWithTimeout(["openclaw",...e],{timeoutMs:12e4}),n=s(String(t.stdout??"")),i=String(t.stderr??""),a="number"==typeof t.exitCode?t.exitCode:"number"==typeof t.code?t.code:"number"==typeof t.status?t.status:0;if(0!==a)return{ok:!1,exitCode:a,stdout:n,stderr:i};return{ok:!0,exitCode:0,stdout:n,stderr:i}}catch(t){let e="number"==typeof t.code?t.code:1;return{ok:!1,exitCode:e,stdout:i(t),stderr:a(t,t)}}}e.s(["extractJson",()=>l,"runOpenClaw",()=>d,"runOpenClawRaw",()=>u])},26837,e=>{"use strict";var t=e.i(12714),r=e.i(60526),n=e.i(50227);function i(e){return e.includes("/")||e.includes("\\")}function a(e){if(!/^[a-z0-9][a-z0-9-]{1,63}$/.test(e))throw Error(`Invalid teamId "${e}"`);return n.default.join(r.default.homedir(),".openclaw",`workspace-${e}`)}function s(e){if(e)return a(e);let t=process.env.CK_TEAM_ID;if(!t&&!process.env.CK_TEAM_WORKSPACE_DIR)throw Error("No team specified. Pass a teamId or set CK_TEAM_ID / CK_TEAM_WORKSPACE_DIR.");return process.env.CK_TEAM_WORKSPACE_DIR??a(t)}function o(e,t){let r=i(t)?t:a(t);return n.default.join(r,{backlog:"work/backlog","in-progress":"work/in-progress",testing:"work/testing",done:"work/done"}[e])}async function l(e){let r,a=i(e)?"workspace"===(r=n.default.basename(e))?"main":r.startsWith("workspace-")?r.slice(10):r:e,s=[];for(let r of["backlog","in-progress","testing","done"]){let i=[];try{i=await t.default.readdir(o(r,e))}catch{i=[]}for(let l of i){if(!l.endsWith(".md"))continue;let i=function(e){let t=e.match(/^(\d{4})-/);return t?Number(t[1]):null}(l);if(null==i)continue;let u=n.default.join(o(r,e),l),[d,c]=await Promise.all([t.default.readFile(u,"utf8"),t.default.stat(u)]),p=function(e){let t=e.split("\n")[0]??"",r=t.startsWith("# ")?t.slice(2).trim():"",n=r.indexOf(" ");if(n>0){let e=r.slice(n+1).trim();if(e)return e}let i=r.replace(/^\d{4}-/,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim(),a=new Set(["api","cli","ui","ux","gpu","cpu","npm","pr","ci","cd","json","yaml","md"]),s=i?i.split(" ").filter(Boolean).map(e=>{let t=e.toLowerCase();return a.has(t)?e.toUpperCase():t.startsWith("v")&&/^\d/.test(t.slice(1))||/^[\d.]+$/.test(e)?e:e.slice(0,1).toUpperCase()+e.slice(1)}).join(" "):"";return s||r||"(untitled)"}(d),f=function(e,t){let r=RegExp(`^${t}:\\s*(.*)$`,"mi"),n=e.match(r);return n?.[1]?.trim()||null}(d,"Owner"),m=c.mtime.toISOString(),h=(Date.now()-c.mtimeMs)/36e5;s.push({teamId:a,number:i,id:l.replace(/\.md$/,""),title:p,owner:f,stage:r,file:u,updatedAt:m,ageHours:h})}}return s.sort((e,t)=>e.number-t.number),s}async function u(e,t){let r=await l(t),n=e.trim(),i=n.match(/^\d+$/)?r.find(e=>e.number===Number(n)):null;return r.find(e=>e.id===n)??i??null}async function d(e,t){return u(t,e)}async function c(e,r){let n=await u(r,e);return n?{teamId:n.teamId,id:n.id,file:n.file,markdown:await t.default.readFile(n.file,"utf8"),owner:n.owner,stage:n.stage}:null}e.s(["getTeamWorkspaceDir",()=>s,"getTicketByIdOrNumber",()=>u,"getTicketMarkdown",()=>c,"listTickets",()=>l,"resolveTicket",()=>d,"stageDir",()=>o,"teamWorkspace",()=>a])},16328,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),i=e.i(59756),a=e.i(61916),s=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(74838),h=e.i(10372),g=e.i(93695);e.i(52474);var w=e.i(220),x=e.i(12714),k=e.i(89171),R=e.i(5003),v=e.i(26837);async function y(e,t){let r=await (0,v.getTicketMarkdown)(e,t);if(!r)return;let n=`- ${new Date().toISOString().slice(0,10)} (ClawKitchen UI): Marked done from ClawKitchen UI.`;if(r.markdown.includes(n))return;let i=/\n## Comments\n/i.test(r.markdown)||/^## Comments\n/im.test(r.markdown),a=r.markdown;i||(a=a.replace(/\s*$/,"\n\n## Comments\n")),a=a.replace(/\s*$/,"\n"+n+"\n"),await x.default.writeFile(r.file,a,"utf8")}async function C(e){try{let t=await e.json(),r=String(t.teamId??"").trim(),n=String(t.ticket??"").trim(),i=String(t.to??"").trim();if(!r)return k.NextResponse.json({ok:!1,error:"Missing teamId"},{status:400});if(!n)return k.NextResponse.json({ok:!1,error:"Missing ticket"},{status:400});if(!i||!["backlog","in-progress","testing","done"].includes(i))return k.NextResponse.json({ok:!1,error:"Invalid destination stage"},{status:400});let a=await (0,R.runOpenClaw)(["recipes","move-ticket","--team-id",r,"--ticket",n,"--to",i,"--yes"]);if(!a.ok)throw Error(a.stderr||`openclaw exit ${a.exitCode}`);return"done"===i&&await y(r,n),k.NextResponse.json({ok:!0})}catch(t){let e=t instanceof Error?t.message:String(t);return k.NextResponse.json({ok:!1,error:e},{status:500})}}e.s(["POST",()=>C],9749);var E=e.i(9749);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tickets/move/route",pathname:"/api/tickets/move",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tickets/move/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:b,workUnitAsyncStorage:A,serverHooks:T}=S;function _(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:A})}async function O(e,t,n){S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/tickets/move/route";x=x.replace(/\/index$/,"")||"/";let k=await S.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!k)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:y,parsedUrl:C,isDraftMode:E,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,resolvedPathname:O,clientReferenceManifest:I,serverActionsManifest:N}=k,j=(0,o.normalizeAppPath)(x),P=!!(b.dynamicRoutes[j]||b.routes[O]),q=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,C,!1):t.end("This page could not be found"),null);if(P&&!E){let e=!!b.routes[O],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await q();throw new g.NoFallbackError}}let M=null;!P||S.isDev||E||(M="/index"===(M=O)?"/":M);let D=!0===S.isDev||!P,K=P&&!D;N&&I&&(0,s.setManifestsSingleton)({page:x,clientReferenceManifest:I,serverActionsManifest:N});let $=e.method||"GET",U=(0,a.getTracer)(),H=U.getActiveScopeSpan(),F={params:v,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>S.onRequestError(e,t,n,i,A)},sharedContext:{buildId:R}},W=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t));try{let s=async e=>S.handle(L,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${x}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(i);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(W,B,a,F.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[h.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,A),t}},d=await S.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!P)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&P||g.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(W,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};H?await l(H):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${x}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:K,isOnDemandRevalidate:T})},!1,A),P)throw t;return await (0,p.sendResponse)(W,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>_,"routeModule",()=>S,"serverHooks",()=>T,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>A],16328)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__1480ffda._.js.map