constellai 0.3.3 → 0.3.4

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 (240) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -1
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/(app)/activity/page.js +2 -2
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  9. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/code/page.js +2 -2
  12. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/config/page.js +2 -2
  15. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/costs/page.js +2 -2
  18. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/cron/page.js +2 -2
  21. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/dashboard/page.js +2 -2
  24. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/design/page.js +3 -3
  27. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  30. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  31. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(app)/docs/page.js +2 -2
  33. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/github/page.js +2 -2
  36. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  37. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(app)/goals/page.js +2 -2
  39. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  40. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(app)/inbox/page.js +2 -2
  42. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  43. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(app)/knowledge/page.js +3 -3
  45. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  46. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/(app)/models/page.js +2 -2
  48. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  49. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/(app)/notifications/page.js +2 -2
  51. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  52. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/(app)/org/page.js +4 -4
  54. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  55. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/(app)/organizations/page.js +2 -2
  57. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  58. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/(app)/page.js +3 -3
  60. package/.next/server/app/(app)/page.js.nft.json +1 -1
  61. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/(app)/planner/page.js +2 -2
  63. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  64. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/(app)/plugins/page.js +2 -2
  66. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  67. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/(app)/pm/page.js +2 -2
  69. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  70. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/(app)/prepare-deploy/page.js +2 -2
  72. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  73. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/(app)/profile/page.js +2 -2
  75. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  76. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/(app)/pulse/page.js +2 -2
  78. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  79. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/(app)/reports/[id]/page.js +2 -2
  81. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  82. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/(app)/reports/page.js +3 -3
  84. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  85. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/(app)/routines/page.js +2 -2
  87. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  88. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/(app)/search/page.js +2 -2
  90. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  91. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/(app)/security/page.js +2 -2
  93. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  94. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/(app)/skills/page.js +3 -3
  96. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  97. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/(app)/tasks/page.js +2 -2
  99. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  100. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/(app)/test-dev/page.js +2 -2
  102. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  103. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/(app)/update/page.js +3 -3
  105. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  106. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/(auth)/login/page.js +2 -2
  108. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/(auth)/onboarding/page.js +2 -2
  110. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/_global-error.html +1 -1
  113. package/.next/server/app/_global-error.rsc +1 -1
  114. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  116. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  117. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  118. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  119. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  120. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/cron/tick/route.js +2 -2
  122. package/.next/server/app/api/sync/file/route.js +1 -1
  123. package/.next/server/app/api/telegram/poll/route.js +3 -3
  124. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  125. package/.next/server/app-paths-manifest.json +1 -1
  126. package/.next/server/chunks/1249.js +7 -7
  127. package/.next/server/chunks/259.js +1 -1
  128. package/.next/server/chunks/2867.js +1 -1
  129. package/.next/server/chunks/2960.js +1 -1
  130. package/.next/server/chunks/319.js +1 -0
  131. package/.next/server/chunks/3234.js +1 -1
  132. package/.next/server/chunks/4828.js +1 -0
  133. package/.next/server/chunks/4979.js +2 -2
  134. package/.next/server/chunks/5697.js +1 -0
  135. package/.next/server/chunks/6151.js +12 -0
  136. package/.next/server/chunks/6431.js +1 -1
  137. package/.next/server/chunks/{8195.js → 6798.js} +3 -3
  138. package/.next/server/chunks/{5086.js → 6903.js} +13 -13
  139. package/.next/server/chunks/7589.js +1 -1
  140. package/.next/server/chunks/7989.js +1 -1
  141. package/.next/server/chunks/8486.js +4 -0
  142. package/.next/server/chunks/8561.js +1 -1
  143. package/.next/server/chunks/8823.js +1 -1
  144. package/.next/server/chunks/9783.js +1 -1
  145. package/.next/server/middleware-build-manifest.js +1 -1
  146. package/.next/server/pages/500.html +1 -1
  147. package/.next/server/server-reference-manifest.js +1 -1
  148. package/.next/server/server-reference-manifest.json +1 -1
  149. package/.next/static/chunks/4353-12629098ed83e468.js +1 -0
  150. package/.next/static/chunks/4398-e798770ae782576f.js +1 -0
  151. package/.next/static/chunks/4428-09f7d473d9e33d59.js +1 -0
  152. package/.next/static/chunks/7457-c37382c6f4e115f8.js +4 -0
  153. package/.next/static/chunks/8370-6da6aa10d687b8ae.js +12 -0
  154. package/.next/static/chunks/9690-00ad96a74abac075.js +1 -0
  155. package/.next/static/chunks/app/(app)/activity/{page-0f51a22d4f2207b2.js → page-09bc1c776962737c.js} +1 -1
  156. package/.next/static/chunks/app/(app)/agents/[handle]/page-b11e5f8f25fb2f88.js +1 -0
  157. package/.next/static/chunks/app/(app)/code/page-ff6925db6e10e3cc.js +1 -0
  158. package/.next/static/chunks/app/(app)/config/page-4df2facd9c81adb5.js +1 -0
  159. package/.next/static/chunks/app/(app)/costs/{page-969eba498344314d.js → page-c0a07c0283731a8c.js} +1 -1
  160. package/.next/static/chunks/app/(app)/cron/{page-ab35783e4341f6b7.js → page-662e6e1a25b14025.js} +1 -1
  161. package/.next/static/chunks/app/(app)/dashboard/page-e6f62eaecc0f9926.js +1 -0
  162. package/.next/static/chunks/app/(app)/design/{page-fcee2dfd5c7e3a4b.js → page-d457cdfa525acb85.js} +3 -3
  163. package/.next/static/chunks/app/(app)/docs/[id]/{page-b3451b21d7d2127b.js → page-4a1be0c9bd6ca402.js} +1 -1
  164. package/.next/static/chunks/app/(app)/docs/page-e6db758a14f57ec8.js +1 -0
  165. package/.next/static/chunks/app/(app)/github/page-57bb812627d083a1.js +1 -0
  166. package/.next/static/chunks/app/(app)/goals/page-81e1af515f78e13b.js +1 -0
  167. package/.next/static/chunks/app/(app)/inbox/page-0baef1b01009c832.js +12 -0
  168. package/.next/static/chunks/app/(app)/knowledge/page-eb1317bf385e31ed.js +1 -0
  169. package/.next/static/chunks/app/(app)/layout-dcd4f30b53cb140f.js +1 -0
  170. package/.next/static/chunks/app/(app)/models/page-d73965ae6ca317e8.js +1 -0
  171. package/.next/static/chunks/app/(app)/notifications/page-b3ff14483cb6694e.js +12 -0
  172. package/.next/static/chunks/app/(app)/org/page-3075b218dbc681ce.js +12 -0
  173. package/.next/static/chunks/app/(app)/organizations/page-a6d35dbb21a61b7c.js +1 -0
  174. package/.next/static/chunks/app/(app)/page-c9e4fc0616a0083e.js +1 -0
  175. package/.next/static/chunks/app/(app)/planner/page-809dd3edda4ada93.js +1 -0
  176. package/.next/static/chunks/app/(app)/plugins/{page-e75d982132825b07.js → page-7e2aad1b702b5c88.js} +1 -1
  177. package/.next/static/chunks/app/(app)/pm/{page-773626398c10fdb7.js → page-709f9ac68ac98693.js} +1 -1
  178. package/.next/static/chunks/app/(app)/prepare-deploy/{page-01f767248e7fa2a7.js → page-f9609626153c2483.js} +1 -1
  179. package/.next/static/chunks/app/(app)/profile/page-6d22c7bd0adb7a52.js +1 -0
  180. package/.next/static/chunks/app/(app)/pulse/{page-1a63c4ed76db48f5.js → page-f529917828ff4884.js} +1 -1
  181. package/.next/static/chunks/app/(app)/reports/[id]/{page-ab35783e4341f6b7.js → page-662e6e1a25b14025.js} +1 -1
  182. package/.next/static/chunks/app/(app)/reports/page-5248735b18767054.js +1 -0
  183. package/.next/static/chunks/app/(app)/routines/page-cf4e597389865ae8.js +1 -0
  184. package/.next/static/chunks/app/(app)/search/{page-d30f1c44c95e14a3.js → page-4d1e07c4c43a7489.js} +1 -1
  185. package/.next/static/chunks/app/(app)/security/page-db7b8840d9cc6b72.js +1 -0
  186. package/.next/static/chunks/app/(app)/skills/page-a98da9e415efc310.js +1 -0
  187. package/.next/static/chunks/app/(app)/tasks/page-ab33402626a50c88.js +1 -0
  188. package/.next/static/chunks/app/(app)/test-dev/page-34612a4b47ec9aa2.js +1 -0
  189. package/.next/static/chunks/app/(app)/update/page-99d63495bfdd56a9.js +1 -0
  190. package/.next/static/chunks/app/(auth)/login/page-c7b372a5053512f0.js +1 -0
  191. package/.next/static/chunks/app/(auth)/onboarding/{page-0cd7cd9fa146a927.js → page-450bfc87fb942f9b.js} +1 -1
  192. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
  193. package/.next/trace-build +1 -1
  194. package/CHANGELOG.md +32 -3
  195. package/README.md +1 -1
  196. package/README.pt-BR.md +1 -1
  197. package/bin/constella-update.mjs +44 -0
  198. package/docs/UPDATE.md +31 -6
  199. package/package.json +1 -1
  200. package/scripts/vps-install.sh +22 -0
  201. package/scripts/vps-update.sh +22 -0
  202. package/.next/server/chunks/3174.js +0 -12
  203. package/.next/server/chunks/3334.js +0 -1
  204. package/.next/server/chunks/3439.js +0 -4
  205. package/.next/server/chunks/478.js +0 -1
  206. package/.next/server/chunks/8244.js +0 -1
  207. package/.next/static/chunks/386-0f2b8d23016cf4d0.js +0 -1
  208. package/.next/static/chunks/4909-9f16a714c78ed30d.js +0 -4
  209. package/.next/static/chunks/5332-84d9a65aa5d16106.js +0 -1
  210. package/.next/static/chunks/5664-3cb5735f1b5bbde1.js +0 -1
  211. package/.next/static/chunks/8370-7ec9e9bf414f8f2d.js +0 -12
  212. package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
  213. package/.next/static/chunks/app/(app)/agents/[handle]/page-14805dd54a1333e8.js +0 -1
  214. package/.next/static/chunks/app/(app)/code/page-7ebd6923ac440103.js +0 -1
  215. package/.next/static/chunks/app/(app)/config/page-47b5b62b73050673.js +0 -1
  216. package/.next/static/chunks/app/(app)/dashboard/page-59521ad116c60a88.js +0 -1
  217. package/.next/static/chunks/app/(app)/docs/page-3a34eec67591ce3e.js +0 -1
  218. package/.next/static/chunks/app/(app)/github/page-a0117637dc143821.js +0 -1
  219. package/.next/static/chunks/app/(app)/goals/page-d1cb2552625ccadb.js +0 -1
  220. package/.next/static/chunks/app/(app)/inbox/page-dbfc885cd61f9b9f.js +0 -12
  221. package/.next/static/chunks/app/(app)/knowledge/page-29df476a9c2f930c.js +0 -1
  222. package/.next/static/chunks/app/(app)/layout-2b6b23e82fbf0211.js +0 -1
  223. package/.next/static/chunks/app/(app)/models/page-ea54a5d167cd3cc2.js +0 -1
  224. package/.next/static/chunks/app/(app)/notifications/page-ef1ac55efadb2a1a.js +0 -12
  225. package/.next/static/chunks/app/(app)/org/page-a7c734b8d86f7641.js +0 -12
  226. package/.next/static/chunks/app/(app)/organizations/page-4bcec3010a9d9119.js +0 -1
  227. package/.next/static/chunks/app/(app)/page-54a99a54295a40be.js +0 -1
  228. package/.next/static/chunks/app/(app)/planner/page-adfd05afc6ddcbef.js +0 -1
  229. package/.next/static/chunks/app/(app)/profile/page-cb2450679785db1a.js +0 -1
  230. package/.next/static/chunks/app/(app)/reports/page-b0bcc85ad4afecf5.js +0 -1
  231. package/.next/static/chunks/app/(app)/routines/page-c0ce223d128a9010.js +0 -1
  232. package/.next/static/chunks/app/(app)/security/page-4640d72a0b360f05.js +0 -1
  233. package/.next/static/chunks/app/(app)/skills/page-87a71bd0a6b0f262.js +0 -1
  234. package/.next/static/chunks/app/(app)/tasks/page-a34a5658aff509ec.js +0 -1
  235. package/.next/static/chunks/app/(app)/test-dev/page-842f8771d36e964b.js +0 -1
  236. package/.next/static/chunks/app/(app)/update/page-64467fa6d8ed737e.js +0 -1
  237. package/.next/static/chunks/app/(auth)/login/page-82964b720ff11bab.js +0 -1
  238. package/.next/static/chunks/app/_not-found/page-489c316e4356f1b7.js +0 -1
  239. /package/.next/static/{Fx06n4huXV42eQUI-Lty0 → mOVW9EdxrQ1xPT7vDdRdK}/_buildManifest.js +0 -0
  240. /package/.next/static/{Fx06n4huXV42eQUI-Lty0 → mOVW9EdxrQ1xPT7vDdRdK}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  "use strict";(()=>{var a={};a.id=4384,a.ids=[4384],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29635:(a,b)=>{function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51063:(a,b,c)=>{c.d(b,{dp:()=>o,j2:()=>p});var d=c(18706),e=c(21594),f=c(79743),g=c(80280),h=c(25533);let i=process.env.BETTER_AUTH_URL??"http://localhost:3000";function j(a){return a?.split(",")[0]?.trim()||null}function k(a){if(!a)return null;try{return new URL(a).origin}catch{return null}}function l(a,b){let c=k(b?.trim());c&&a.add(c)}let m=(()=>{let a=new Set;for(let b of[i,process.env.BETTER_AUTH_URL,process.env.NEXT_PUBLIC_BETTER_AUTH_URL,...(process.env.CONSTELLA_TRUSTED_ORIGINS??"").split(",")])l(a,b);return[...a]})();process.env.BETTER_AUTH_SECRET||console.error("[auth] FATAL: BETTER_AUTH_SECRET is required (sessions would be forgeable). Set it in your environment.");let n={};process.env.GITHUB_CLIENT_ID&&process.env.GITHUB_CLIENT_SECRET&&(n.github={clientId:process.env.GITHUB_CLIENT_ID,clientSecret:process.env.GITHUB_CLIENT_SECRET,scope:["repo","read:user"]}),process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET&&(n.google={clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET});let o=Object.keys(n),p=(0,d.l)({baseURL:i,trustedOrigins:function(a){let b=new Set(m);l(b,a?.url);let c=function(a){let b=a?.headers,c=j(b?.get("x-forwarded-host"))??j(b?.get("host"));if(!c)return null;let d=(j(b?.get("x-forwarded-proto"))??(i.startsWith("https://")?"https":"http")).replace(/:$/,"");return/^[a-z][a-z0-9+.-]*$/i.test(d)?k(`${d}://${c}`):null}(a);return c&&b.add(c),[...b]},secret:process.env.BETTER_AUTH_SECRET,database:(0,e.y)(g.db,{provider:"sqlite",schema:{user:h.user,session:h.session,account:h.account,verification:h.verification,twoFactor:h.twoFactor}}),emailAndPassword:{enabled:!0,autoSignIn:!0,requireEmailVerification:!1},socialProviders:n,account:{accountLinking:{enabled:!0,trustedProviders:["github","google"]}},session:{expiresIn:2592e3,additionalFields:{activeOrgId:{type:"string",required:!1}}},plugins:[(0,f.d)()],advanced:{useSecureCookies:i.startsWith("https://")}})},51455:a=>{a.exports=require("node:fs/promises")},52813:(a,b,c)=>{Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(62060)},62060:(a,b,c)=>{a.exports=c(53488).vendored["react-rsc"].ReactServerDOMWebpackServer},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},76862:(a,b,c)=>{c.d(b,{LV:()=>v,eA:()=>w,mg:()=>x});var d=c(52813),e=c(77598),f=c(1782),g=c(83550),h=c(80280),i=c(25533),j=c(95896),k=c(18612),l=c(64619);function m(a,b){let c=RegExp(`##\\s+${b}\\s*\\n([\\s\\S]*?)(?:\\n##\\s|$)`,"i");return a.match(c)?.[1].trim()??""}function n(a){return a.split("\n").find(a=>a.trim()&&!a.startsWith("#")&&!a.startsWith("**")&&!a.startsWith("---")&&!a.startsWith("|"))?.trim()??""}function o(a,b){let c=a.split("\n").find(a=>a.startsWith("# "));return c?c.slice(2).trim():b}async function p(a){let[b]=await h.db.select().from(i.workspace).where((0,f.eq)(i.workspace.orgId,a));return b??null}async function q(a,b,c){let d=(0,k.sL)(b,`.claude/skills/${c}.md`)??"",g=n(d),j=(d.match(/\*\*Trigger:\*\*\s*(.+)/)?.[1]??"").trim(),l=m(d,"Procedure")||"",[o]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,c)));o?await h.db.update(i.skill).set({summary:g,trigger:j,...l?{instructions:l}:{},indexed:"indexed"}).where((0,f.eq)(i.skill.id,o.id)):await h.db.insert(i.skill).values({id:(0,e.randomUUID)(),workspaceId:a,name:c,summary:g,trigger:j,instructions:l,native:!0,provisional:!1,indexed:"indexed"})}async function r(a,b,c){let d=(0,k.sL)(b,`.claude/agents/${c}/Agent.md`)??"";if(!d)return;let[e]=await h.db.select().from(i.agent).where((0,f.Uo)((0,f.eq)(i.agent.workspaceId,a),(0,f.eq)(i.agent.handle,c)));if(!e)return;let g=function(a){let b=a.match(/^---\n([\s\S]*?)\n---/);if(!b)return{};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");b>0&&(c[a.slice(0,b).trim()]=a.slice(b+1).trim())}return c}(d),j={identity:(d.match(/\*\*Identity:\*\*\s*(.+)/)?.[1]??"").trim(),ritual:(d.match(/\*\*Ritual:\*\*\s*(.+)/)?.[1]??"").trim(),tone:(d.match(/\*\*Tone:\*\*\s*(.+)/)?.[1]??"").trim()||(e.persona?.tone??""),systemPrompt:m(d,"System prompt")},l={...g.provider?{adapter:g.provider}:{},...g.model?{model:g.model}:{},...g.temperature?{temperature:parseFloat(g.temperature)}:{},...g.dailyCapUsd?{dailyCapUsd:parseFloat(g.dailyCapUsd)}:{},...g.tierFloor?{tierFloor:g.tierFloor}:{},...g.reportsTo&&"null"!==g.reportsTo?{reportsTo:g.reportsTo}:{},persona:j};for(let d of(await h.db.update(i.agent).set(l).where((0,f.eq)(i.agent.id,e.id)),[...((0,k.sL)(b,`.claude/agents/${c}/skills.md`)??"").matchAll(/`([a-z0-9-]+)`/g)].map(a=>a[1]))){let[b]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,d)));b&&await h.db.insert(i.agentSkill).values({agentId:e.id,skillId:b.id}).onConflictDoNothing()}}async function s(a,b,c){let d=c.split("/").pop()??c;if("README.md"===d)return;let g=(0,k.sL)(b,c)??"",j=o(g,d),[l]=await h.db.select().from(i.report).where((0,f.Uo)((0,f.eq)(i.report.workspaceId,a),(0,f.eq)(i.report.title,j)));l?await h.db.update(i.report).set({body:g}).where((0,f.eq)(i.report.id,l.id)):await h.db.insert(i.report).values({id:(0,e.randomUUID)(),workspaceId:a,title:j,type:"Report",body:g})}async function t(a,b,c,d){let g=(0,k.sL)(b,c)??"",j=o(g,c.split("/").pop()??c),l=n(g),[m]=await h.db.select().from(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,a),(0,f.eq)(i.docIndex.path,c)));m?await h.db.update(i.docIndex).set({title:j,summary:l,updatedAt:new Date}).where((0,f.eq)(i.docIndex.id,m.id)):await h.db.insert(i.docIndex).values({id:(0,e.randomUUID)(),workspaceId:a,kind:d,path:c,title:j,summary:l})}function u(a){(a.startsWith(".claude/skills")||a.endsWith("/skills.md"))&&(0,g.revalidatePath)("/skills"),a.startsWith(".claude/agents")&&(0,g.revalidatePath)("/agents/[handle]","page"),a.startsWith("DOCS")&&(0,g.revalidatePath)("/docs"),a.startsWith("PO")&&(0,g.revalidatePath)("/pm"),a.startsWith("Reports")&&(0,g.revalidatePath)("/reports"),(0,g.revalidatePath)("/code")}async function v(a,b,c=!0){let d,e=await p(a);if(!e)return{ok:!1};let f=e.id;if((0,l.Nm)(a,b),d=b.match(/^\.claude\/skills\/(.+)\.md$/))await q(f,a,d[1]);else if(d=b.match(/^\.claude\/agents\/([^/]+)\/(?:Agent|skills)\.md$/))await r(f,a,d[1]);else if(/^Reports\/.+\.md$/.test(b))await s(f,a,b);else if(/^DOCS\/.+\.md$/.test(b))await t(f,a,b,"docs");else{if(!/^PO\/.+\.md$/.test(b))return{ok:!0};await t(f,a,b,"po")}return c&&u(b),{ok:!0}}async function w(a,b){let c,d=await p(a);if(!d)return{ok:!1};let e=d.id;return(0,l.SH)(a,b).catch(()=>{}),(c=b.match(/^\.claude\/skills\/(.+)\.md$/))?await h.db.delete(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,e),(0,f.eq)(i.skill.name,c[1]))):/^(?:DOCS|PO)\/.+\.md$/.test(b)&&await h.db.delete(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,e),(0,f.eq)(i.docIndex.path,b))),u(b),{ok:!0}}async function x(a=!0){let{org:b}=await (0,j.nP)(),c=b.id;for(let a of(0,k.Ci)(c,".claude/skills"))!a.isDir&&a.name.endsWith(".md")&&await v(c,a.path,!1);for(let a of(0,k.Ci)(c,".claude/agents"))a.isDir&&await v(c,`${a.path}/Agent.md`,!1);for(let a of["DOCS","PO","Reports"])for(let b of(0,k.Ci)(c,a))!b.isDir&&b.name.endsWith(".md")&&await v(c,b.path,!1);return a&&(0,g.revalidatePath)("/","layout"),{ok:!0}}(0,c(29635).D)([v,w,x]),(0,d.A)(v,"700d9e5428bda6c4b953e511f1fab9bb77dc8b50e0",null),(0,d.A)(w,"6008e6afb5884710aaaae699139aac177b4b62f8d0",null),(0,d.A)(x,"40353e520652a8224e8ad28436fa1e61a96ed87043",null)},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95145:(a,b,c)=>{c.r(b),c.d(b,{"40353e520652a8224e8ad28436fa1e61a96ed87043":()=>d.mg,"6008e6afb5884710aaaae699139aac177b4b62f8d0":()=>d.eA,"700d9e5428bda6c4b953e511f1fab9bb77dc8b50e0":()=>d.LV});var d=c(76862)},95896:(a,b,c)=>{c.d(b,{$x:()=>k,Ht:()=>j,K4:()=>l,O5:()=>m,nP:()=>n});var d=c(79676),e=c(17971),f=c(1782),g=c(80280),h=c(25533),i=c(51063);async function j(){return i.j2.api.getSession({headers:await (0,d.headers)()})}async function k(a,b){if(b){let[c]=await g.db.select({org:h.organization}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.Uo)((0,f.eq)(h.member.userId,a),(0,f.eq)(h.organization.id,b)));if(c)return c.org}let c=await g.db.select({org:h.organization}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.eq)(h.member.userId,a));return c[0]?.org??null}async function l(a){let[b]=await g.db.select().from(h.workspace).where((0,f.eq)(h.workspace.orgId,a));return b??null}async function m(a){return g.db.select({id:h.organization.id,name:h.organization.name}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.eq)(h.member.userId,a))}async function n(){let a=await j();a||(0,e.redirect)("/login"),"1"===process.env.CONSTELLA_FORCE_ONBOARDING&&(0,e.redirect)("/onboarding");let b=await k(a.user.id,a.session.activeOrgId);b||(0,e.redirect)("/onboarding");let c=await l(b.id);return c||(0,e.redirect)("/onboarding"),{session:a,org:b,workspace:c}}},96872:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(76862);async function x(a){let b=process.env.CONSTELLA_WORKER_SECRET;if(!b||a.headers.get("x-worker-secret")!==b)return v.NextResponse.json({error:"unauthorized"},{status:401});let{orgId:c,rel:d,event:e}=await a.json().catch(()=>({}));if(!c||!d)return v.NextResponse.json({ok:!1,error:"missing orgId/rel"},{status:400});let f="unlink"===e?await (0,w.eA)(c,d):await (0,w.LV)(c,d);return v.NextResponse.json(f)}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/file/route",pathname:"/api/sync/file",filename:"route",bundlePath:"app/api/sync/file/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\api\\sync\\file\\route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sync/file/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||y.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===y.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await y.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},99146:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={INTERCEPTION_ROUTE_MARKERS:function(){return g},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(90937),g=["(..)(..)","(.)","(..)","(...)"];function h(a){return void 0!==a.split("/").find(a=>g.find(b=>a.startsWith(b)))}function i(a){let b,c,d;for(let e of a.split("/"))if(c=g.find(a=>e.startsWith(a))){[b,d]=a.split(c,2);break}if(!b||!c||!d)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(b=(0,f.normalizeAppPath)(b),c){case"(.)":d="/"===b?`/${d}`:b+"/"+d;break;case"(..)":if("/"===b)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});d=b.split("/").slice(0,-1).concat(d).join("/");break;case"(...)":d="/"+d;break;case"(..)(..)":let e=b.split("/");if(e.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});d=e.slice(0,-2).concat(d).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:b,interceptedRoute:d}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3050,658,9676,1845,7971,3550,4804,1572,4619],()=>b(b.s=96872));module.exports=c})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51063:(a,b,c)=>{c.d(b,{dp:()=>o,j2:()=>p});var d=c(18706),e=c(21594),f=c(79743),g=c(80280),h=c(25533);let i=process.env.BETTER_AUTH_URL??"http://localhost:3000";function j(a){return a?.split(",")[0]?.trim()||null}function k(a){if(!a)return null;try{return new URL(a).origin}catch{return null}}function l(a,b){let c=k(b?.trim());c&&a.add(c)}let m=(()=>{let a=new Set;for(let b of[i,process.env.BETTER_AUTH_URL,process.env.NEXT_PUBLIC_BETTER_AUTH_URL,...(process.env.CONSTELLA_TRUSTED_ORIGINS??"").split(",")])l(a,b);return[...a]})();process.env.BETTER_AUTH_SECRET||console.error("[auth] FATAL: BETTER_AUTH_SECRET is required (sessions would be forgeable). Set it in your environment.");let n={};process.env.GITHUB_CLIENT_ID&&process.env.GITHUB_CLIENT_SECRET&&(n.github={clientId:process.env.GITHUB_CLIENT_ID,clientSecret:process.env.GITHUB_CLIENT_SECRET,scope:["repo","read:user"]}),process.env.GOOGLE_CLIENT_ID&&process.env.GOOGLE_CLIENT_SECRET&&(n.google={clientId:process.env.GOOGLE_CLIENT_ID,clientSecret:process.env.GOOGLE_CLIENT_SECRET});let o=Object.keys(n),p=(0,d.l)({baseURL:i,trustedOrigins:function(a){let b=new Set(m);l(b,a?.url);let c=function(a){let b=a?.headers,c=j(b?.get("x-forwarded-host"))??j(b?.get("host"));if(!c)return null;let d=(j(b?.get("x-forwarded-proto"))??(i.startsWith("https://")?"https":"http")).replace(/:$/,"");return/^[a-z][a-z0-9+.-]*$/i.test(d)?k(`${d}://${c}`):null}(a);return c&&b.add(c),[...b]},secret:process.env.BETTER_AUTH_SECRET,database:(0,e.y)(g.db,{provider:"sqlite",schema:{user:h.user,session:h.session,account:h.account,verification:h.verification,twoFactor:h.twoFactor}}),emailAndPassword:{enabled:!0,autoSignIn:!0,requireEmailVerification:!1},socialProviders:n,account:{accountLinking:{enabled:!0,trustedProviders:["github","google"]}},session:{expiresIn:2592e3,additionalFields:{activeOrgId:{type:"string",required:!1}}},plugins:[(0,f.d)()],advanced:{useSecureCookies:i.startsWith("https://")}})},51455:a=>{a.exports=require("node:fs/promises")},52813:(a,b,c)=>{Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(62060)},54624:(a,b,c)=>{c.r(b),c.d(b,{"40fae88371459f73885109eab788ff958ee3beeed7":()=>d.mg,"6049641843ec1c7e875c48a2c3f9449777b8ccc9c5":()=>d.eA,"707fe9e0791bae72cb4b58e28b3fc406ee75f494c4":()=>d.LV});var d=c(76862)},62060:(a,b,c)=>{a.exports=c(53488).vendored["react-rsc"].ReactServerDOMWebpackServer},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},76862:(a,b,c)=>{c.d(b,{LV:()=>v,eA:()=>w,mg:()=>x});var d=c(52813),e=c(77598),f=c(1782),g=c(83550),h=c(80280),i=c(25533),j=c(95896),k=c(18612),l=c(64619);function m(a,b){let c=RegExp(`##\\s+${b}\\s*\\n([\\s\\S]*?)(?:\\n##\\s|$)`,"i");return a.match(c)?.[1].trim()??""}function n(a){return a.split("\n").find(a=>a.trim()&&!a.startsWith("#")&&!a.startsWith("**")&&!a.startsWith("---")&&!a.startsWith("|"))?.trim()??""}function o(a,b){let c=a.split("\n").find(a=>a.startsWith("# "));return c?c.slice(2).trim():b}async function p(a){let[b]=await h.db.select().from(i.workspace).where((0,f.eq)(i.workspace.orgId,a));return b??null}async function q(a,b,c){let d=(0,k.sL)(b,`.claude/skills/${c}.md`)??"",g=n(d),j=(d.match(/\*\*Trigger:\*\*\s*(.+)/)?.[1]??"").trim(),l=m(d,"Procedure")||"",[o]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,c)));o?await h.db.update(i.skill).set({summary:g,trigger:j,...l?{instructions:l}:{},indexed:"indexed"}).where((0,f.eq)(i.skill.id,o.id)):await h.db.insert(i.skill).values({id:(0,e.randomUUID)(),workspaceId:a,name:c,summary:g,trigger:j,instructions:l,native:!0,provisional:!1,indexed:"indexed"})}async function r(a,b,c){let d=(0,k.sL)(b,`.claude/agents/${c}/Agent.md`)??"";if(!d)return;let[e]=await h.db.select().from(i.agent).where((0,f.Uo)((0,f.eq)(i.agent.workspaceId,a),(0,f.eq)(i.agent.handle,c)));if(!e)return;let g=function(a){let b=a.match(/^---\n([\s\S]*?)\n---/);if(!b)return{};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");b>0&&(c[a.slice(0,b).trim()]=a.slice(b+1).trim())}return c}(d),j={identity:(d.match(/\*\*Identity:\*\*\s*(.+)/)?.[1]??"").trim(),ritual:(d.match(/\*\*Ritual:\*\*\s*(.+)/)?.[1]??"").trim(),tone:(d.match(/\*\*Tone:\*\*\s*(.+)/)?.[1]??"").trim()||(e.persona?.tone??""),systemPrompt:m(d,"System prompt")},l={...g.provider?{adapter:g.provider}:{},...g.model?{model:g.model}:{},...g.temperature?{temperature:parseFloat(g.temperature)}:{},...g.dailyCapUsd?{dailyCapUsd:parseFloat(g.dailyCapUsd)}:{},...g.tierFloor?{tierFloor:g.tierFloor}:{},...g.reportsTo&&"null"!==g.reportsTo?{reportsTo:g.reportsTo}:{},persona:j};for(let d of(await h.db.update(i.agent).set(l).where((0,f.eq)(i.agent.id,e.id)),[...((0,k.sL)(b,`.claude/agents/${c}/skills.md`)??"").matchAll(/`([a-z0-9-]+)`/g)].map(a=>a[1]))){let[b]=await h.db.select().from(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,a),(0,f.eq)(i.skill.name,d)));b&&await h.db.insert(i.agentSkill).values({agentId:e.id,skillId:b.id}).onConflictDoNothing()}}async function s(a,b,c){let d=c.split("/").pop()??c;if("README.md"===d)return;let g=(0,k.sL)(b,c)??"",j=o(g,d),[l]=await h.db.select().from(i.report).where((0,f.Uo)((0,f.eq)(i.report.workspaceId,a),(0,f.eq)(i.report.title,j)));l?await h.db.update(i.report).set({body:g}).where((0,f.eq)(i.report.id,l.id)):await h.db.insert(i.report).values({id:(0,e.randomUUID)(),workspaceId:a,title:j,type:"Report",body:g})}async function t(a,b,c,d){let g=(0,k.sL)(b,c)??"",j=o(g,c.split("/").pop()??c),l=n(g),[m]=await h.db.select().from(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,a),(0,f.eq)(i.docIndex.path,c)));m?await h.db.update(i.docIndex).set({title:j,summary:l,updatedAt:new Date}).where((0,f.eq)(i.docIndex.id,m.id)):await h.db.insert(i.docIndex).values({id:(0,e.randomUUID)(),workspaceId:a,kind:d,path:c,title:j,summary:l})}function u(a){(a.startsWith(".claude/skills")||a.endsWith("/skills.md"))&&(0,g.revalidatePath)("/skills"),a.startsWith(".claude/agents")&&(0,g.revalidatePath)("/agents/[handle]","page"),a.startsWith("DOCS")&&(0,g.revalidatePath)("/docs"),a.startsWith("PO")&&(0,g.revalidatePath)("/pm"),a.startsWith("Reports")&&(0,g.revalidatePath)("/reports"),(0,g.revalidatePath)("/code")}async function v(a,b,c=!0){let d,e=await p(a);if(!e)return{ok:!1};let f=e.id;if((0,l.Nm)(a,b),d=b.match(/^\.claude\/skills\/(.+)\.md$/))await q(f,a,d[1]);else if(d=b.match(/^\.claude\/agents\/([^/]+)\/(?:Agent|skills)\.md$/))await r(f,a,d[1]);else if(/^Reports\/.+\.md$/.test(b))await s(f,a,b);else if(/^DOCS\/.+\.md$/.test(b))await t(f,a,b,"docs");else{if(!/^PO\/.+\.md$/.test(b))return{ok:!0};await t(f,a,b,"po")}return c&&u(b),{ok:!0}}async function w(a,b){let c,d=await p(a);if(!d)return{ok:!1};let e=d.id;return(0,l.SH)(a,b).catch(()=>{}),(c=b.match(/^\.claude\/skills\/(.+)\.md$/))?await h.db.delete(i.skill).where((0,f.Uo)((0,f.eq)(i.skill.workspaceId,e),(0,f.eq)(i.skill.name,c[1]))):/^(?:DOCS|PO)\/.+\.md$/.test(b)&&await h.db.delete(i.docIndex).where((0,f.Uo)((0,f.eq)(i.docIndex.workspaceId,e),(0,f.eq)(i.docIndex.path,b))),u(b),{ok:!0}}async function x(a=!0){let{org:b}=await (0,j.nP)(),c=b.id;for(let a of(0,k.Ci)(c,".claude/skills"))!a.isDir&&a.name.endsWith(".md")&&await v(c,a.path,!1);for(let a of(0,k.Ci)(c,".claude/agents"))a.isDir&&await v(c,`${a.path}/Agent.md`,!1);for(let a of["DOCS","PO","Reports"])for(let b of(0,k.Ci)(c,a))!b.isDir&&b.name.endsWith(".md")&&await v(c,b.path,!1);return a&&(0,g.revalidatePath)("/","layout"),{ok:!0}}(0,c(29635).D)([v,w,x]),(0,d.A)(v,"707fe9e0791bae72cb4b58e28b3fc406ee75f494c4",null),(0,d.A)(w,"6049641843ec1c7e875c48a2c3f9449777b8ccc9c5",null),(0,d.A)(x,"40fae88371459f73885109eab788ff958ee3beeed7",null)},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95896:(a,b,c)=>{c.d(b,{$x:()=>k,Ht:()=>j,K4:()=>l,O5:()=>m,nP:()=>n});var d=c(79676),e=c(17971),f=c(1782),g=c(80280),h=c(25533),i=c(51063);async function j(){return i.j2.api.getSession({headers:await (0,d.headers)()})}async function k(a,b){if(b){let[c]=await g.db.select({org:h.organization}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.Uo)((0,f.eq)(h.member.userId,a),(0,f.eq)(h.organization.id,b)));if(c)return c.org}let c=await g.db.select({org:h.organization}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.eq)(h.member.userId,a));return c[0]?.org??null}async function l(a){let[b]=await g.db.select().from(h.workspace).where((0,f.eq)(h.workspace.orgId,a));return b??null}async function m(a){return g.db.select({id:h.organization.id,name:h.organization.name}).from(h.member).innerJoin(h.organization,(0,f.eq)(h.member.orgId,h.organization.id)).where((0,f.eq)(h.member.userId,a))}async function n(){let a=await j();a||(0,e.redirect)("/login"),"1"===process.env.CONSTELLA_FORCE_ONBOARDING&&(0,e.redirect)("/onboarding");let b=await k(a.user.id,a.session.activeOrgId);b||(0,e.redirect)("/onboarding");let c=await l(b.id);return c||(0,e.redirect)("/onboarding"),{session:a,org:b,workspace:c}}},96872:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(76862);async function x(a){let b=process.env.CONSTELLA_WORKER_SECRET;if(!b||a.headers.get("x-worker-secret")!==b)return v.NextResponse.json({error:"unauthorized"},{status:401});let{orgId:c,rel:d,event:e}=await a.json().catch(()=>({}));if(!c||!d)return v.NextResponse.json({ok:!1,error:"missing orgId/rel"},{status:400});let f="unlink"===e?await (0,w.eA)(c,d):await (0,w.LV)(c,d);return v.NextResponse.json(f)}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/file/route",pathname:"/api/sync/file",filename:"route",bundlePath:"app/api/sync/file/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\api\\sync\\file\\route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sync/file/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||y.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===y.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await y.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},99146:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={INTERCEPTION_ROUTE_MARKERS:function(){return g},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(90937),g=["(..)(..)","(.)","(..)","(...)"];function h(a){return void 0!==a.split("/").find(a=>g.find(b=>a.startsWith(b)))}function i(a){let b,c,d;for(let e of a.split("/"))if(c=g.find(a=>e.startsWith(a))){[b,d]=a.split(c,2);break}if(!b||!c||!d)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(b=(0,f.normalizeAppPath)(b),c){case"(.)":d="/"===b?`/${d}`:b+"/"+d;break;case"(..)":if("/"===b)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});d=b.split("/").slice(0,-1).concat(d).join("/");break;case"(...)":d="/"+d;break;case"(..)(..)":let e=b.split("/");if(e.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});d=e.slice(0,-2).concat(d).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:b,interceptedRoute:d}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3050,658,9676,1845,7971,3550,4804,1572,4619],()=>b(b.s=96872));module.exports=c})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var a={};a.id=3509,a.ids=[3509],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13239:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(80280);let e=!1;function f(){e||(e=!0,d.F.exec(`
1
+ "use strict";(()=>{var a={};a.id=3509,a.ids=[3509],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1405:(a,b,c)=>{c.r(b),c.d(b,{"0002906425c37ba0a53bbfafa19691e9a906050d86":()=>d.Uw,"00041d8182167f36657652fa5117a86f04ad9fdac4":()=>h.I_,"00194592ad47500e882eca534f2a4293d58ced6167":()=>h.PO,"002dfc0678550fd7b554d7d8b3301ed4c835ae2a9f":()=>h.wP,"0038bfb5d0e8748666ba18a4f02557897aae6a50b5":()=>d.VH,"00417fb0c5992b5d8c9bf7bfdb20091c0b75f967d3":()=>g.approvePlan,"004b14ab45f1d73caf1fa096fd428f0885213bc9dd":()=>g.groomBacklog,"0053a9e20f5c5328aa2a2502d518180bfd6eed8f2f":()=>h.e9,"0056078f13eb137d213d4a1085a13ff6f381dabd2e":()=>d.Gh,"005693f47d654854560b9d0bc386173850cbf8240e":()=>h.o3,"005d6b177b466248dc8ade5a43a93b4d803eab6094":()=>d.nl,"0061afb7f7b8b1fd8ac5aa96a903e3f22f615aa20f":()=>d.LU,"006dcbb5e7e346c443d7102ca0daafd3d6ef659076":()=>d.Ac,"0072163f36363b48de78305a257f30f3daefa28c88":()=>h.gn,"007e381e52bd202d1b126f7cd30c571345bc33887e":()=>d.ts,"009534a6350f6d7ee36028fb9ab4659b11f05bd937":()=>g.requestPlanChanges,"0097079f8bb244de0b0343f4afa7990fed9fb324d2":()=>d.Jw,"009e146b7742c650ca216beeed8e617243a4a5c103":()=>h.Tu,"00a7e1670a16ccb470c5305aabfe79db99128992b9":()=>d.lC,"00a94d93b5071359022f2378c3d54073eee3fa85c3":()=>d.Hi,"00abc16008e05e917d0ebc5e65eec07577fecb4570":()=>d.V$,"00b0578e37d9ebe94aea8c3a34edc1eb3072857776":()=>h.ME,"00ba8cc316d3085e76aed850bf0439194afd9bdec4":()=>h.Ni,"00bffc1c2ed5e8793aa8d097de94037f7e98e3292f":()=>d.Vr,"00c6849ba47e6e7fea083ff67d4e2a602a90900e03":()=>h.oS,"00cefe7d564b7bd933451222433059aa5dd8e95c2a":()=>d.zO,"00dec8cf58fde95e890b2dbab03e0216c02db09ee8":()=>d.kb,"00f53bdd7c80bb26d6c234682ff09d42c9fa8d285c":()=>h.yL,"00f924b6c219ad8d088625ee88343322f8ea498bcf":()=>d.S8,"400105d268e50cf405554ad50d07b6cf74ab3dfdfb":()=>h.a4,"4017a2e91aac0e44c71e7dc8bdc64b91c86af6966e":()=>h.h_,"4019def9d61c1f2ae2b3ef51af11efa0f5c439d65d":()=>g.approveSpec,"40205db6b6772e5190d6280f495fecc4c49bb1880c":()=>h.NM,"402bb61d0ec0ca426f1594c554cd83c9d2f55e4e2a":()=>g.startNewWork,"4036941845402c95b0a364055242692180e15d59a1":()=>h.fb,"403e4537b9c0d6aa80d4e7fc51b9a4ed3c5f832593":()=>g.planFromConversation,"403e61223e2aa817de8ec2340570d4e49d420e3398":()=>d.cm,"4042d732975c30e998b1b417f244d02bc240771b42":()=>h.R6,"404502bf64b6ad6b7865767a52d5f6f55bf6a43e3a":()=>d.Cp,"404b75852390a00b75a0428e40249cda9fec6baced":()=>d.wp,"406d2bac523e293dc8e736d45dbfd24078855b371f":()=>g.advanceIssue,"406e30e8c1f70608478aa34a2cfc9f472c06c1ade1":()=>h.lj,"407f6077577515b726822bd6f80f9a601f412e1015":()=>d.m,"4088847163a13dc2e80c3095763da6ac497a5b9e37":()=>g.rejectIssue,"4096c37c3555263308f9a36206eaf746d0defe25ad":()=>g.rejectSpec,"409ca62ff6760c73fdd8c8c7267a97b16e88a526f7":()=>h.$_,"40a2ed61c41d82e88df9f715926555d4751d7925b2":()=>h.is,"40aed83757bf4e7d35906a784d6f38596d11a37abf":()=>g.approveIssue,"40b07ca371170bbb9e7bc16ba05a00629bae0e3e9e":()=>d.I2,"40d05376667b91af0ad411cbfa854abffb551f894d":()=>d.ju,"40d3c0594ce0b931cad118a1790bac1c8aba31a6bb":()=>d.az,"40e3b911773e190273915e8ecd96b865a3e34df027":()=>g.generatePlan,"40ea0236fb2729d70fa5f0bf6383e5f20dfa0c930e":()=>g.setAuto247,"40eb0711e58f72723c75d51f7586109839bbe62d56":()=>d.L0,"40ef9327df3c76aeec61e899723f3a4fce0f04e0f4":()=>h.DX,"40fae88371459f73885109eab788ff958ee3beeed7":()=>e.mg,"601c6bff04fd688cd4118800632f7fbc53a64ee6a5":()=>h.ft,"60274f514b61483b6e070a65f4817ee1ad9fe43504":()=>f.k,"602c949d6b4f90259a9dd0bf28582677f4f84cdc82":()=>h.pG,"6049641843ec1c7e875c48a2c3f9449777b8ccc9c5":()=>e.eA,"605cae860898064ae08c87ba7e942dd9d714085b87":()=>h.NW,"60643b82a325d6fdb9a22f2326122b2156783fb109":()=>h.RS,"60d43730d40153cb1c4e21154a523dfb9804f2610f":()=>g.groomBacklogFor,"60da31e678463e5daa11931edbba1bf33db81533f2":()=>h.qw,"60dbb220db735685b4802d9264fe095d42ffd507fa":()=>h.EQ,"60dbdf46cddec83114ce6551fd870fa84f68016765":()=>f.I,"60e384f0f20aad069f13d07666957fcf7fb2f9646f":()=>h.Fo,"702318f1552859b902907168b6bbd6d46cbb1cd8bd":()=>h.Sy,"707fe9e0791bae72cb4b58e28b3fc406ee75f494c4":()=>e.LV,"7084c40999976496a9f63bf8a44a4c05630a91605b":()=>h.a7,"7088368271648f6247e709bf8e6336af1a18845379":()=>h.fM,"70de449374fe32fcef6ed2f670f9dd29539a04eff1":()=>h.sy,"7ca088c8458079633b65380437dffa61b3a503e9d8":()=>h.Hg});var d=c(27989),e=c(76862),f=c(78848),g=c(56053),h=c(63390)},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13239:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(80280);let e=!1;function f(){e||(e=!0,d.F.exec(`
2
2
  CREATE TABLE IF NOT EXISTS design_session (
3
3
  id TEXT PRIMARY KEY,
4
4
  workspace_id TEXT NOT NULL REFERENCES workspace(id) ON DELETE CASCADE,
@@ -38,7 +38,7 @@
38
38
  created_at INTEGER NOT NULL DEFAULT (unixepoch())
39
39
  );
40
40
  CREATE INDEX IF NOT EXISTS design_comment_sess_idx ON design_comment (session_id);
41
- `))}},16050:(a,b,c)=>{c.d(b,{Ml:()=>e});let d={github:!0,telegram:!0,ollama:!0,webhooks:!0};function e(a,b){return({...d,...a??{}})[b]??!0}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},62525:(a,b,c)=>{c.r(b),c.d(b,{"002c0373eb489ecbc946c950c8ea8d521c7213317f":()=>h.o3,"002ec012533e91d74d3596cacc28fb29672dd2d424":()=>g.requestPlanChanges,"0032b07ecf3687db80464df2df4ff472ab8dd2ee50":()=>d.Uw,"003426238e2afd09e1ff683df65d7cf57f365f0962":()=>h.I_,"0037eb6e1f803a7499d013ecaab6117032935d1b72":()=>h.wP,"004ce9f8e7df6b350e290d12470ef196a750e4149d":()=>h.Ni,"0054aed3bbc6eb774bcc077faa643b1a3f215b8d8d":()=>h.gn,"0059411adec0d4d17e2f5256f8e3e9c094b68f7a5d":()=>d.VH,"005eb4893b1e512faf4421ca4b7e75fff599074e17":()=>h.ME,"0070ebdbc96d2494dec393065dc20d3e1428946b54":()=>h.oS,"007783648cc654590e09944d6548ae421be8af0f9e":()=>d.Hi,"0080b36ce77bd81dbf083ce6b21a310a7e151283c1":()=>d.nl,"00816c62c15b1b2b1e47c3ecc06ff2772f24b304d5":()=>d.zO,"008e820e62d3981d50f937f7998d4a052cfcdf8606":()=>d.Vr,"009cfe5203f9514f533a1534560d1974968a5175a2":()=>d.kb,"00a1eddd57e3dc09273aacc07984fd7f8a1954e84c":()=>d.Jw,"00b0424273db45fdd1ed9819fbf3a0261297582ed7":()=>h.e9,"00b3534ff1a9f4bbc4526faf731b949fd42df6a42d":()=>d.Gh,"00b3b52cb7833f87653e869ab0da35b470165ab3f2":()=>g.groomBacklog,"00b6085e87c60d69c98335e7ef04a5574220b4f025":()=>h.Tu,"00bbcb36f3ec5d03200563e9d6d7854d3ba9470677":()=>d.LU,"00c51c2b6950ef7f834ba431a695cc3622568d8cd8":()=>d.lC,"00c5d56da7decbec8096882f7d50264b3ae26069b7":()=>h.yL,"00caf518bdee64b8e365f2de8f5e807f028e55958d":()=>h.PO,"00cdd6efe0d93dce17eb396e9a29c63e22e984e916":()=>d.Ac,"00d19b870af4ff13b735c92d0f9975509d0fe99484":()=>d.ts,"00e486855e50f0dd74b7d17c6b9fd5d4f2a47ebe1b":()=>d.V$,"00e565233acd1b1622979ff2cf891f01f7021a1b7a":()=>g.approvePlan,"00f7ef824c9d5d9ece3ffd154aa2020e67abe2d97d":()=>d.S8,"40104e3f5d98ea464ee672c32c0300f24fbfb7956f":()=>h.is,"401537863fc299cde8711d47d73c711da22420fd28":()=>h.fb,"40314400968043e4211eb1a33f0411b6a4e81073db":()=>h.$_,"40353e520652a8224e8ad28436fa1e61a96ed87043":()=>e.mg,"4040f166eec5ea57ea575d9d9c381347e68abe1328":()=>g.startNewWork,"404de78d48c7a08195046dd144742454e2bda67c9c":()=>g.approveSpec,"404f3952eaf160e47e56225cc6fcac5bd13eedd1d4":()=>d.wp,"406391094e0e56b6206dc31a4e337db67713f221bd":()=>d.az,"40747886657d57fe4ec7bb6e930420729ce0501fd8":()=>g.setAuto247,"407489fe7f99bc0e499c7f1ab258fc05e4c06bb07b":()=>d.m,"407c3e9df9b0d1da40b0b033574d67de5b2dbab44b":()=>g.advanceIssue,"407e76c79e36677578f1327d2f785d64c352713479":()=>g.rejectIssue,"4085d74d131ad9bf899770cb28b2a74b5e4fb3b400":()=>h.lj,"40933768e7809f7eb198ab6ffe0955c3d64fb1a288":()=>g.planFromConversation,"409483dd86b3a500619c574d5486d6fe760b53accd":()=>g.approveIssue,"409889669d46218f902094aeecfb2b06fb3b04350b":()=>d.ju,"40994cd4f9accdbb46817b1a6dab2789f5e540cca6":()=>d.I2,"40a365881044a266aad4ddc3f3542bdbd40ea80976":()=>h.a4,"40a953d8beabc1d04711604ead11ff43872039018b":()=>d.cm,"40af5dbd3aa35380e77900d419d87a5476ee59d61f":()=>h.DX,"40b624c64bbcfb0074e428661bb821bbff7b09a155":()=>d.Cp,"40b9f423165fc1bd787ea6c1079de9f2c3abab7157":()=>g.generatePlan,"40bafadd426209f1065283cb854fdd1f4af1846026":()=>d.L0,"40ce2a1d1b3f5a652afcd597a20bc8bfc5e240f8e2":()=>g.rejectSpec,"40dcf3ab7a2818d71a2bce6c8764a1ea4a4c8f9117":()=>h.NM,"40e66a004301dc99f15f2608fac3a6560de975f851":()=>h.h_,"40fb2f95350f09e70822a896e6c4d2e813adb423f9":()=>h.R6,"600159a7c0a9148c31ba4aab639d38dd75e689cdf8":()=>h.qw,"60022aad2416c9dfe4508966ca25588590c11049dd":()=>h.EQ,"6008e6afb5884710aaaae699139aac177b4b62f8d0":()=>e.eA,"601b583d70097128ea8208f56230640112a36ed0b4":()=>g.groomBacklogFor,"60417785708caded29d4ec16beff83b97071aa8eab":()=>h.ft,"606172ae2b4f1bd8d53a80749741c48cdb043bc24f":()=>f.I,"60749086c507cd288a6467eaf4ddb4ba491c9b0370":()=>h.RS,"6094c9c31617426b089c8127d6fbdbb84090a8e2c9":()=>h.NW,"6099335f5d628ec80a08eea59ddc024ae4003b6cf3":()=>h.pG,"60ac6b802b4ac5f1a28c3dbdb5ff9f27e10a8e3dcf":()=>f.k,"60b6b0192e59a6db12c7e8037e4b827a7367795aab":()=>h.Fo,"700d9e5428bda6c4b953e511f1fab9bb77dc8b50e0":()=>e.LV,"700f964a4b50becaacdd88e7650b66718f5cd8dc7b":()=>h.Sy,"7021668545dfe92417d5a7a2e640816b5f9179c339":()=>h.fM,"70f2d351d4b0f68980846fd1cd3eb10734aaf8baa9":()=>h.a7,"70fa9b591b64643dc3e52f6796aa779c5130236060":()=>h.sy,"7c037277c7fba4ca0e413ee86c0199e0ee063957b3":()=>h.Hg});var d=c(27989),e=c(76862),f=c(78848),g=c(56053),h=c(63390)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63390:(a,b,c)=>{c.d(b,{Hg:()=>ai,a7:()=>aj,sy:()=>al,is:()=>H,fM:()=>I,Sy:()=>G,e9:()=>ao,EQ:()=>am,NM:()=>ak,$_:()=>aa,qw:()=>S,DX:()=>V,ME:()=>E,oS:()=>J,RS:()=>K,R6:()=>ah,wP:()=>W,Ni:()=>$,gn:()=>ab,yL:()=>ad,NW:()=>P,lj:()=>Y,fb:()=>ag,pG:()=>ae,I_:()=>L,Fo:()=>M,o3:()=>N,a4:()=>af,ft:()=>_,Tu:()=>U,h_:()=>F,PO:()=>T});var d=c(52813),e=c(77598),f=c(1782),g=c(7852),h=c(83550),i=c(80280),j=c(25533),k=c(95896),l=c(3188),m=c(78848),n=c(10333),o=c(43075),p=c(18612),q=c(99546),r=c(90860),s=c(13239),t=c(88639);let u=new Set(["Next.js","Nuxt","Remix","SvelteKit","Astro","Gatsby"]);var v=c(1591),w=c(99956),x=c(6873);function y(a,b){if(!b||/^(https?:)?\/\//i.test(b)||b.startsWith("data:")||b.startsWith("#")||b.startsWith("/"))return null;let c=b.split(/[?#]/)[0].trim();if(!c)return null;let d=a?a.split("/").filter(Boolean):[];for(let a of c.split("/"))if(""!==a&&"."!==a){if(".."===a){if(!d.length)return null;d.pop();continue}d.push(a)}let e=d.join("/");return e.includes("..")||!e.startsWith("design-mock/")?null:e}function z(a,b,c,d){let e=b.replace(/\/[^/]*$/,"");return a.replace(/@import\s+(?:url\(\s*)?["']?([^"')]+)["']?\s*\)?\s*;/gi,(a,b)=>{let f=y(e,String(b));if(!f||!/\.css$/i.test(f))return a;if(d.has(f))return"";d.add(f);let g=c(f);return null==g?`/* design: missing ${f} */`:`/* ${f} */
41
+ `))}},16050:(a,b,c)=>{c.d(b,{Ml:()=>e});let d={github:!0,telegram:!0,ollama:!0,webhooks:!0};function e(a,b){return({...d,...a??{}})[b]??!0}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63390:(a,b,c)=>{c.d(b,{Hg:()=>ai,a7:()=>aj,sy:()=>al,is:()=>H,fM:()=>I,Sy:()=>G,e9:()=>ao,EQ:()=>am,NM:()=>ak,$_:()=>aa,qw:()=>S,DX:()=>V,ME:()=>E,oS:()=>J,RS:()=>K,R6:()=>ah,wP:()=>W,Ni:()=>$,gn:()=>ab,yL:()=>ad,NW:()=>P,lj:()=>Y,fb:()=>ag,pG:()=>ae,I_:()=>L,Fo:()=>M,o3:()=>N,a4:()=>af,ft:()=>_,Tu:()=>U,h_:()=>F,PO:()=>T});var d=c(52813),e=c(77598),f=c(1782),g=c(7852),h=c(83550),i=c(80280),j=c(25533),k=c(95896),l=c(3188),m=c(78848),n=c(10333),o=c(43075),p=c(18612),q=c(99546),r=c(90860),s=c(13239),t=c(88639);let u=new Set(["Next.js","Nuxt","Remix","SvelteKit","Astro","Gatsby"]);var v=c(1591),w=c(99956),x=c(6873);function y(a,b){if(!b||/^(https?:)?\/\//i.test(b)||b.startsWith("data:")||b.startsWith("#")||b.startsWith("/"))return null;let c=b.split(/[?#]/)[0].trim();if(!c)return null;let d=a?a.split("/").filter(Boolean):[];for(let a of c.split("/"))if(""!==a&&"."!==a){if(".."===a){if(!d.length)return null;d.pop();continue}d.push(a)}let e=d.join("/");return e.includes("..")||!e.startsWith("design-mock/")?null:e}function z(a,b,c,d){let e=b.replace(/\/[^/]*$/,"");return a.replace(/@import\s+(?:url\(\s*)?["']?([^"')]+)["']?\s*\)?\s*;/gi,(a,b)=>{let f=y(e,String(b));if(!f||!/\.css$/i.test(f))return a;if(d.has(f))return"";d.add(f);let g=c(f);return null==g?`/* design: missing ${f} */`:`/* ${f} */
42
42
  `+z(g,f,c,d)})}function A(a,b,c){let d=b.replace(/\/[^/]*$/,""),e=a.replace(/<link\b[^>]*>/gi,a=>{if(!/stylesheet/i.test(a)&&!/href\s*=\s*["'][^"']+\.css/i.test(a))return a;let b=a.match(/href\s*=\s*["']([^"']+)["']/i),e=b?y(d,b[1]):null;if(!e||!/\.css$/i.test(e))return a;let f=c(e);return null==f?`<!-- design: missing ${e} -->`:`<style data-cstla-bundled="${e}">
43
43
  ${z(f,e,c,new Set([e]))}
44
44
  </style>`});return e.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(a,d,e)=>/@import/i.test(e)?`<style${d}>${z(e,b,c,new Set)}</style>`:a)}var B=c(29635);let C="design";async function D(a){let b=await i.db.select().from(j.agent).where((0,f.eq)(j.agent.workspaceId,a));return b.find(a=>"grace"===a.handle)??b.find(a=>/front\s?end|\bui\b|\bux\b/i.test(a.role))??b[0]??null}async function E(){let{workspace:a}=await (0,k.nP)();(0,s.I)();let[b]=await i.db.select().from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(b)return{id:b.id,status:b.status};let c=(0,e.randomUUID)();return await i.db.insert(j.designSession).values({id:c,workspaceId:a.id,title:`${a.name} — design`,status:"building",tokens:{}}),{id:c,status:"building"}}async function F(a){let{workspace:b}=await (0,k.nP)();(0,s.I)();let[c]=await i.db.select().from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,b.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);return c?await i.db.update(j.designSession).set({tokens:a,updatedAt:new Date}).where((0,f.eq)(j.designSession.id,c.id)):await i.db.insert(j.designSession).values({id:(0,e.randomUUID)(),workspaceId:b.id,title:`${b.name} — design`,status:"building",tokens:a}),{ok:!0}}async function G(a,b,c){let d=a?.trim(),p=(b??[]).map(a=>a?.path).filter(a=>!!a&&a.startsWith("uploads/")).slice(0,6);if(!d&&!p.length&&!c)return{ok:!1,error:"Describe what you want to prototype or change."};let{org:q,workspace:u}=await (0,k.nP)();(0,s.I)();let y=await D(u.id);if(!y)return{ok:!1,error:"No frontend agent found."};let z=d||(p.length?"(image)":c?"Adjust this element.":"(image)"),A=(0,e.randomUUID)();await i.db.insert(j.message).values({id:A,workspaceId:u.id,channel:C,fromKind:"operator",text:c?`${z}
@@ -116,7 +116,7 @@ ${c.map(a=>"- "+a).join("\n")||"(scan the project for components / screens / sty
116
116
  1) Create design-mock/styles/global.css with the design tokens (:root), reset/base and theme ([data-theme]).
117
117
  2) Scaffold a skeleton of the main screen(s) under design-mock/screens/ — valid HTML linking ../styles/global.css, with the key sections blocked out as labelled placeholders.
118
118
  3) Write design-mock/design-system.md outlining the palette, typography, spacing, core components and the screens to build.
119
- 4) Tell me what you set up and what to build/validate next before approving.`;return G(`Ada is preparing the delivery plan and needs the design prototyped + approved first (zero drift). ${a}`)}async function V(a){let{org:b}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};let c=(0,p.sL)(b.id,a);return null==c?{ok:!1,error:"Screen not found."}:{ok:!0,html:A(c,a,a=>(0,p.sL)(b.id,a)).slice(0,2e6)}}async function W(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,p.CS)(a.id).filter(a=>a.startsWith("design-mock/")&&/\.(md|markdown)$/i.test(a)&&!/\/README\.md$/i.test(a)).map(a=>({path:a,label:a.replace(/^design-mock\//,"")})).sort((a,b)=>X(a.path)-X(b.path)||a.label.localeCompare(b.label));return(0,t.zw)(a.id,b),{docs:c}}function X(a){return/APPROVED\.md$/i.test(a)?0:/design-system\.md$/i.test(a)?1:2}async function Y(a){let{org:b}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.(md|markdown)$/i.test(a))return{ok:!1,error:"Not a design doc."};let c=(0,p.sL)(b.id,a);return null==c?{ok:!1,error:"Doc not found."}:{ok:!0,body:c.slice(0,5e5)}}let Z=".claude/design-presets.json";async function $(){let{org:a}=await (0,k.nP)(),b=(0,p.sL)(a.id,Z);if(!b)return{presets:[]};try{let a=JSON.parse(b);return{presets:Array.isArray(a)?a.slice(0,60):[]}}catch{return{presets:[]}}}async function _(a,b){let{org:c}=await (0,k.nP)(),d=(a??"").trim();if(!d||d.length>6e4)return{ok:!1,error:"Nothing to save."};let{presets:f}=await $(),g=[{id:"p"+(0,e.randomUUID)().slice(0,6),label:(b||"Preset").slice(0,40),html:d},...f].slice(0,60);return(0,p.dx)(c.id,Z,JSON.stringify(g,null,2)),{ok:!0}}async function aa(a){let{org:b}=await (0,k.nP)(),{presets:c}=await $();return(0,p.dx)(b.id,Z,JSON.stringify(c.filter(b=>b.id!==a),null,2)),{ok:!0}}async function ab(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,t.zw)(a.id,b);return{screens:c.designMockFiles.filter(a=>/\.html?$/i.test(a)),components:c.designMockFiles.filter(a=>a.startsWith("design-mock/components/"))}}async function ac(a,b,c){let[d]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!d)return;let h=await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,d.id));await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:d.id,label:"v"+(h.length+1),note:b.slice(0,300),patch:{files:c}})}async function ad(){let{workspace:a}=await (0,k.nP)();(0,s.I)();let[b]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);return b?{versions:(await i.db.select().from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,b.id)).orderBy((0,g.i)(j.designVersion.createdAt))).map(a=>{let b=a.patch;return{id:a.id,label:a.label,note:a.note,files:b?.files??[],restorable:!!b?.snapshot,createdAt:a.createdAt.getTime()}})}:{versions:[]}}async function ae(a,b){return G(`Restore the prototype to ${a} — "${b}". Re-apply that state to the screens under design-mock/screens/ and tell me what changed.`)}async function af(a){let{org:b,workspace:c}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};(0,s.I)();let d=(0,p.sL)(b.id,a);if(null==d)return{ok:!1,error:"Screen not found."};let[l]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,c.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!l)return{ok:!1,error:"No design session."};let m="Saved v"+((await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,l.id))).length+1),n=(a.split("/").pop()||a).replace(/\.[a-z]+$/i,"");await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:l.id,label:m,note:`Checkpoint \xb7 ${n}`,patch:{files:[a],snapshot:d}});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,label:m}}async function ag(a){let{org:b,workspace:c}=await (0,k.nP)();(0,s.I)();let[d]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,c.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!d)return{ok:!1,error:"No design session."};let[e]=await i.db.select().from(j.designVersion).where((0,f.Uo)((0,f.eq)(j.designVersion.id,a),(0,f.eq)(j.designVersion.sessionId,d.id))).limit(1);if(!e)return{ok:!1,error:"Checkpoint not found."};let l=e.patch,m=l?.files?.[0];if(!l?.snapshot||!m)return{ok:!1,error:"This version isn't a restorable checkpoint."};if(!m.startsWith("design-mock/")||m.includes(".."))return{ok:!1,error:"Bad path."};(0,p.dx)(b.id,m,l.snapshot);try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function ah(a){let{workspace:b}=await (0,k.nP)();(0,s.I)();let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,b.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!c)return{comments:[]};let d=a?(0,f.Uo)((0,f.eq)(j.designComment.sessionId,c.id),(0,f.eq)(j.designComment.pageKey,a)):(0,f.eq)(j.designComment.sessionId,c.id);return{comments:(await i.db.select().from(j.designComment).where(d).orderBy(j.designComment.createdAt)).map(a=>({id:a.id,pageKey:a.pageKey,xp:a.xp,yp:a.yp,body:a.body,reply:a.reply,selection:a.selection,createdAt:a.createdAt.getTime()}))}}async function ai(a,b,c,d,f){let g=d?.trim();if(!g)return{ok:!1,error:"Empty comment."};(0,s.I)();let k=await E(),l=(0,e.randomUUID)();await i.db.insert(j.designComment).values({id:l,sessionId:k.id,pageKey:(a||"").slice(0,300),xp:b,yp:c,body:g.slice(0,2e3),reply:"",selection:f??null});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,id:l}}async function aj(a,b,c){(0,s.I)();let d=await E(),f=(0,e.randomUUID)(),g=(c||"").trim();await i.db.insert(j.designComment).values({id:f,sessionId:d.id,pageKey:(a||"").slice(0,300),xp:b.x,yp:b.y,body:(g||"(region marked for review)").slice(0,2e3),reply:"",selection:{kind:"markup",rect:b}});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,id:f}}async function ak(a){let{workspace:b}=await (0,k.nP)();(0,s.I)();let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,b.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);c&&await i.db.delete(j.designComment).where((0,f.Uo)((0,f.eq)(j.designComment.id,a),(0,f.eq)(j.designComment.sessionId,c.id)));try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function al(a,b,c){let{org:d}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};let e=(b??"").trim();if(!e)return{ok:!1,error:"Nothing to replace."};let f=(0,p.sL)(d.id,a);if(null==f)return{ok:!1,error:"Screen not found."};let g=f.indexOf(e);if(g<0)return{ok:!1,error:"Couldn't locate that text — ask Grace to apply it."};if(f.indexOf(e,g+1)>=0)return{ok:!1,error:"That text appears more than once — ask Grace to apply it."};(0,p.dx)(d.id,a,f.slice(0,g)+(c??"")+f.slice(g+e.length));try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function am(a,b){let{org:c,workspace:d}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};if(null==b)return{ok:!1,error:"Nothing to commit."};if(b.length>4e6)return{ok:!1,error:"Screen too large."};let e=b,f=e.match(/<body[^>]*>([\s\S]*)<\/body>/i);f&&(e=f[1]),e=e.replace(/<!doctype[^>]*>/gi,"").replace(/<\/?(?:html|head|body)\b[^>]*>/gi,"");let g=(0,p.sL)(c.id,a);if(null==g)return{ok:!1,error:"Screen not found."};let i=g.match(/<body([^>]*)>[\s\S]*<\/body>/i),j=i&&null!=i.index?g.slice(0,i.index)+`<body${i[1]}>`+e+"</body>"+g.slice(i.index+i[0].length):`<!doctype html><html><head><meta charset="utf-8"></head><body>${e}</body></html>`;(0,p.dx)(c.id,a,j);try{await an(d.id,a)}catch{}try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function an(a,b){let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!c)return;let d="Manual canvas edit",[h]=await i.db.select().from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,c.id)).orderBy((0,g.i)(j.designVersion.createdAt)).limit(1);if(h&&h.note===d&&Date.now()-h.createdAt.getTime()<9e4){let a=Array.from(new Set([...h.patch?.files??[],b]));await i.db.update(j.designVersion).set({patch:{files:a},createdAt:new Date}).where((0,f.eq)(j.designVersion.id,h.id))}else{let a=await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,c.id));await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:c.id,label:"v"+(a.length+1),note:d,patch:{files:[b]}})}}async function ao(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,t.zw)(a.id,b).designMockFiles.filter(a=>/design-mock\/screens\/.+\.html?$/i.test(a));if(!c.length)return{ok:!1,built:[],error:"No screens to build yet — ask Grace for a screen first."};let d=[];for(let b of c){let c=(0,p.sL)(a.id,b);if(null==c)continue;let{out:e,obfuscated:f}=function(a){let b=/<script\b/i.test(a),c=function(a){let b;return(b=[],a.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(a,b,c)=>`<style${b}>${c.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{};,])\s*/g,"$1").replace(/:\s+/g,":").replace(/;}/g,"}").trim()}</style>`).replace(/<(script|style)\b[\s\S]*?<\/\1>/gi,a=>(b.push(a),`\0${b.length-1}\0`)).replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/(\d+)/g,(a,c)=>b[Number(c)])).trim()}(a);return b||(c=function(a){if(/<script\b/i.test(a))return a;let b=new Set;for(let c of a.matchAll(/class\s*=\s*"([^"]*)"/gi))c[1].split(/\s+/).filter(Boolean).forEach(a=>b.add(a));if(!b.size)return a;let c=new Map;[...b].forEach((a,b)=>c.set(a,function(a){let b="",c=a+1;for(;c>0;)b="abcdefghijklmnopqrstuvwxyz"[--c%26]+b,c=Math.floor(c/26);return b}(b)));let d=a.replace(/class\s*=\s*"([^"]*)"/gi,(a,b)=>`class="${b.split(/\s+/).filter(Boolean).map(a=>c.get(a)??a).join(" ")}"`);return d.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(a,b,d)=>{let e=d;for(let[a,b]of c)e=e.replace(RegExp("\\."+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(?![-_\\w])","g"),"."+b);return`<style${b}>${e}</style>`})}(c)),{out:c,obfuscated:!b}}(A(c,b,b=>(0,p.sL)(a.id,b))),g=`design-mock/dist/${b.split("/").pop()}`;(0,p.dx)(a.id,g,e),d.push({path:g,before:c.length,after:e.length,obfuscated:f})}try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,built:d}}(0,B.D)([E,F,G,H,I,J,K,L,M,N,P,S,T,U,V,W,Y,$,_,aa,ab,ad,ae,af,ag,ah,ai,aj,ak,al,am,ao]),(0,d.A)(E,"005eb4893b1e512faf4421ca4b7e75fff599074e17",null),(0,d.A)(F,"40e66a004301dc99f15f2608fac3a6560de975f851",null),(0,d.A)(G,"700f964a4b50becaacdd88e7650b66718f5cd8dc7b",null),(0,d.A)(H,"40104e3f5d98ea464ee672c32c0300f24fbfb7956f",null),(0,d.A)(I,"7021668545dfe92417d5a7a2e640816b5f9179c339",null),(0,d.A)(J,"0070ebdbc96d2494dec393065dc20d3e1428946b54",null),(0,d.A)(K,"60749086c507cd288a6467eaf4ddb4ba491c9b0370",null),(0,d.A)(L,"003426238e2afd09e1ff683df65d7cf57f365f0962",null),(0,d.A)(M,"60b6b0192e59a6db12c7e8037e4b827a7367795aab",null),(0,d.A)(N,"002c0373eb489ecbc946c950c8ea8d521c7213317f",null),(0,d.A)(P,"6094c9c31617426b089c8127d6fbdbb84090a8e2c9",null),(0,d.A)(S,"600159a7c0a9148c31ba4aab639d38dd75e689cdf8",null),(0,d.A)(T,"00caf518bdee64b8e365f2de8f5e807f028e55958d",null),(0,d.A)(U,"00b6085e87c60d69c98335e7ef04a5574220b4f025",null),(0,d.A)(V,"40af5dbd3aa35380e77900d419d87a5476ee59d61f",null),(0,d.A)(W,"0037eb6e1f803a7499d013ecaab6117032935d1b72",null),(0,d.A)(Y,"4085d74d131ad9bf899770cb28b2a74b5e4fb3b400",null),(0,d.A)($,"004ce9f8e7df6b350e290d12470ef196a750e4149d",null),(0,d.A)(_,"60417785708caded29d4ec16beff83b97071aa8eab",null),(0,d.A)(aa,"40314400968043e4211eb1a33f0411b6a4e81073db",null),(0,d.A)(ab,"0054aed3bbc6eb774bcc077faa643b1a3f215b8d8d",null),(0,d.A)(ad,"00c5d56da7decbec8096882f7d50264b3ae26069b7",null),(0,d.A)(ae,"6099335f5d628ec80a08eea59ddc024ae4003b6cf3",null),(0,d.A)(af,"40a365881044a266aad4ddc3f3542bdbd40ea80976",null),(0,d.A)(ag,"401537863fc299cde8711d47d73c711da22420fd28",null),(0,d.A)(ah,"40fb2f95350f09e70822a896e6c4d2e813adb423f9",null),(0,d.A)(ai,"7c037277c7fba4ca0e413ee86c0199e0ee063957b3",null),(0,d.A)(aj,"70f2d351d4b0f68980846fd1cd3eb10734aaf8baa9",null),(0,d.A)(ak,"40dcf3ab7a2818d71a2bce6c8764a1ea4a4c8f9117",null),(0,d.A)(al,"70fa9b591b64643dc3e52f6796aa779c5130236060",null),(0,d.A)(am,"60022aad2416c9dfe4508966ca25588590c11049dd",null),(0,d.A)(ao,"00b0424273db45fdd1ed9819fbf3a0261297582ed7",null)},69020:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>ag,patchFetch:()=>af,routeModule:()=>ab,serverHooks:()=>ae,workAsyncStorage:()=>ac,workUnitAsyncStorage:()=>ad});var d={};c.r(d),c.d(d,{POST:()=>aa,dynamic:()=>_,runtime:()=>$});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(77598),x=c(73024),y=c(76760),z=c(1782),A=c(7852),B=c(80280),C=c(25533),D=c(18612),E=c(16050),F=c(78874),G=c(1591),H=c(43075),I=c(55479),J=c(18661),K=c(96930),L=c(63390),M=c(12867),N=c(48938);let O="telegram",P=new Set,Q=new Set,R=new Set;async function S(){let a=await B.db.select().from(C.workspace),b=0;for(let c of a){let a=c.settings??{};if(!(0,E.Ml)(a.integrations,"telegram"))continue;let d=await (0,F._9)(c.id);if(!d)continue;R.has(d.botToken)||(R.add(d.botToken),(0,F.A3)(d.botToken).catch(()=>{}));let e=a.telegram?.offset??0,f=await (0,F.SD)(d.botToken,e),g=e;for(let a of f){g=Math.max(g,a.update_id+1);try{await T(c,d,a)}catch(a){console.error("[telegram] ingest failed:",a)}}g!==e&&await B.db.update(C.workspace).set({settings:{...a,telegram:{...a.telegram??{},offset:g}}}).where((0,z.eq)(C.workspace.id,c.id)),b+=f.length}return{updates:b}}async function T(a,b,c){if(c.callback_query)return void await Z(a,b,c.callback_query);let d=c.message;if(!d||String(d.chat.id)!==String(b.chatId)||d.from&&String(d.from.id)!==String(b.chatId))return;let e=(d.text??d.caption??"").slice(0,4e3),f=[],g=(0,D.HZ)(a.orgId),h=(0,w.randomUUID)().slice(0,8),i=async(a,c,d)=>{let e=await (0,F.G3)(b.botToken,a);if(!e)return;let i=c.replace(/[^\w.\-]+/g,"_").slice(-60)||`file.${e.ext}`,j=`uploads/tg-${h}/${i}`;try{(0,x.mkdirSync)((0,y.join)(g,`uploads/tg-${h}`),{recursive:!0}),(0,x.writeFileSync)((0,y.join)(g,j),e.buf),f.push({name:i,type:d,size:e.buf.length,path:j})}catch{}};if(d.photo?.length&&await i(d.photo[d.photo.length-1].file_id,"photo.jpg","image/jpeg"),d.document&&await i(d.document.file_id,d.document.file_name??"document",d.document.mime_type??"application/octet-stream"),e||0!==f.length){if(await B.db.insert(C.message).values({id:(0,w.randomUUID)(),workspaceId:a.id,channel:O,fromKind:"operator",text:e||"(attachment)",attachments:f.length?f:null}),(0,H.r)(a.id),P.has(a.id)&&e&&!e.startsWith("/")){P.delete(a.id),await (0,I.TR)(a.id,e),await X(a,b,"↩️ Recorded — the CEO will revise the plan with your reason.");return}if(Q.has(a.id)&&e&&!e.startsWith("/")){Q.delete(a.id);try{await B.db.insert(C.message).values({id:(0,w.randomUUID)(),workspaceId:a.id,channel:"design",fromKind:"operator",text:`Change request (via Telegram): ${e}`})}catch{}await X(a,b,"\uD83D\uDCDD Recorded — open the Design module and Grace will apply your changes, then Send to execution.");return}if(e.startsWith("/"))return void await Y(a,b,e);await U(a,b)}}async function U(a,b){let c=(await B.db.select().from(C.agent).where((0,z.Uo)((0,z.eq)(C.agent.workspaceId,a.id),(0,z.eq)(C.agent.handle,"ada"))))[0]??(await B.db.select().from(C.agent).where((0,z.eq)(C.agent.workspaceId,a.id)))[0];if(!c)return;await B.db.update(C.agent).set({status:"working"}).where((0,z.eq)(C.agent.id,c.id)),await (0,F.sK)(b.botToken,b.chatId,"typing");let d=setInterval(()=>{(0,F.sK)(b.botToken,b.chatId,"typing").catch(()=>{})},4e3),e="",f=!1;try{({text:e,planRequested:f}=await (0,G.PM)(a.orgId,a,O,c,"chat"))}finally{clearInterval(d)}if(await B.db.update(C.agent).set({status:"idle"}).where((0,z.eq)(C.agent.id,c.id)),e&&await (0,F.vH)(b.botToken,b.chatId,(0,N.Z)(e,[b.botToken])),f){let c=await (0,K.G)(a.orgId,a,O);await X(a,b,c.ok?"\uD83D\uDCDD Got it — drafting the plan now (specs \xb7 issues \xb7 TODOs); it'll appear in the CEO Planner for your approval, and I'll post here when it's ready.":`I couldn't start a plan from this yet${c.error?` (${c.error})`:""} — add a little more detail and I'll try again.`)}}let V=`Remote control:
119
+ 4) Tell me what you set up and what to build/validate next before approving.`;return G(`Ada is preparing the delivery plan and needs the design prototyped + approved first (zero drift). ${a}`)}async function V(a){let{org:b}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};let c=(0,p.sL)(b.id,a);return null==c?{ok:!1,error:"Screen not found."}:{ok:!0,html:A(c,a,a=>(0,p.sL)(b.id,a)).slice(0,2e6)}}async function W(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,p.CS)(a.id).filter(a=>a.startsWith("design-mock/")&&/\.(md|markdown)$/i.test(a)&&!/\/README\.md$/i.test(a)).map(a=>({path:a,label:a.replace(/^design-mock\//,"")})).sort((a,b)=>X(a.path)-X(b.path)||a.label.localeCompare(b.label));return(0,t.zw)(a.id,b),{docs:c}}function X(a){return/APPROVED\.md$/i.test(a)?0:/design-system\.md$/i.test(a)?1:2}async function Y(a){let{org:b}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.(md|markdown)$/i.test(a))return{ok:!1,error:"Not a design doc."};let c=(0,p.sL)(b.id,a);return null==c?{ok:!1,error:"Doc not found."}:{ok:!0,body:c.slice(0,5e5)}}let Z=".claude/design-presets.json";async function $(){let{org:a}=await (0,k.nP)(),b=(0,p.sL)(a.id,Z);if(!b)return{presets:[]};try{let a=JSON.parse(b);return{presets:Array.isArray(a)?a.slice(0,60):[]}}catch{return{presets:[]}}}async function _(a,b){let{org:c}=await (0,k.nP)(),d=(a??"").trim();if(!d||d.length>6e4)return{ok:!1,error:"Nothing to save."};let{presets:f}=await $(),g=[{id:"p"+(0,e.randomUUID)().slice(0,6),label:(b||"Preset").slice(0,40),html:d},...f].slice(0,60);return(0,p.dx)(c.id,Z,JSON.stringify(g,null,2)),{ok:!0}}async function aa(a){let{org:b}=await (0,k.nP)(),{presets:c}=await $();return(0,p.dx)(b.id,Z,JSON.stringify(c.filter(b=>b.id!==a),null,2)),{ok:!0}}async function ab(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,t.zw)(a.id,b);return{screens:c.designMockFiles.filter(a=>/\.html?$/i.test(a)),components:c.designMockFiles.filter(a=>a.startsWith("design-mock/components/"))}}async function ac(a,b,c){let[d]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!d)return;let h=await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,d.id));await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:d.id,label:"v"+(h.length+1),note:b.slice(0,300),patch:{files:c}})}async function ad(){let{workspace:a}=await (0,k.nP)();(0,s.I)();let[b]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);return b?{versions:(await i.db.select().from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,b.id)).orderBy((0,g.i)(j.designVersion.createdAt))).map(a=>{let b=a.patch;return{id:a.id,label:a.label,note:a.note,files:b?.files??[],restorable:!!b?.snapshot,createdAt:a.createdAt.getTime()}})}:{versions:[]}}async function ae(a,b){return G(`Restore the prototype to ${a} — "${b}". Re-apply that state to the screens under design-mock/screens/ and tell me what changed.`)}async function af(a){let{org:b,workspace:c}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};(0,s.I)();let d=(0,p.sL)(b.id,a);if(null==d)return{ok:!1,error:"Screen not found."};let[l]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,c.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!l)return{ok:!1,error:"No design session."};let m="Saved v"+((await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,l.id))).length+1),n=(a.split("/").pop()||a).replace(/\.[a-z]+$/i,"");await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:l.id,label:m,note:`Checkpoint \xb7 ${n}`,patch:{files:[a],snapshot:d}});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,label:m}}async function ag(a){let{org:b,workspace:c}=await (0,k.nP)();(0,s.I)();let[d]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,c.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!d)return{ok:!1,error:"No design session."};let[e]=await i.db.select().from(j.designVersion).where((0,f.Uo)((0,f.eq)(j.designVersion.id,a),(0,f.eq)(j.designVersion.sessionId,d.id))).limit(1);if(!e)return{ok:!1,error:"Checkpoint not found."};let l=e.patch,m=l?.files?.[0];if(!l?.snapshot||!m)return{ok:!1,error:"This version isn't a restorable checkpoint."};if(!m.startsWith("design-mock/")||m.includes(".."))return{ok:!1,error:"Bad path."};(0,p.dx)(b.id,m,l.snapshot);try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function ah(a){let{workspace:b}=await (0,k.nP)();(0,s.I)();let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,b.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!c)return{comments:[]};let d=a?(0,f.Uo)((0,f.eq)(j.designComment.sessionId,c.id),(0,f.eq)(j.designComment.pageKey,a)):(0,f.eq)(j.designComment.sessionId,c.id);return{comments:(await i.db.select().from(j.designComment).where(d).orderBy(j.designComment.createdAt)).map(a=>({id:a.id,pageKey:a.pageKey,xp:a.xp,yp:a.yp,body:a.body,reply:a.reply,selection:a.selection,createdAt:a.createdAt.getTime()}))}}async function ai(a,b,c,d,f){let g=d?.trim();if(!g)return{ok:!1,error:"Empty comment."};(0,s.I)();let k=await E(),l=(0,e.randomUUID)();await i.db.insert(j.designComment).values({id:l,sessionId:k.id,pageKey:(a||"").slice(0,300),xp:b,yp:c,body:g.slice(0,2e3),reply:"",selection:f??null});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,id:l}}async function aj(a,b,c){(0,s.I)();let d=await E(),f=(0,e.randomUUID)(),g=(c||"").trim();await i.db.insert(j.designComment).values({id:f,sessionId:d.id,pageKey:(a||"").slice(0,300),xp:b.x,yp:b.y,body:(g||"(region marked for review)").slice(0,2e3),reply:"",selection:{kind:"markup",rect:b}});try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,id:f}}async function ak(a){let{workspace:b}=await (0,k.nP)();(0,s.I)();let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,b.id)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);c&&await i.db.delete(j.designComment).where((0,f.Uo)((0,f.eq)(j.designComment.id,a),(0,f.eq)(j.designComment.sessionId,c.id)));try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function al(a,b,c){let{org:d}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};let e=(b??"").trim();if(!e)return{ok:!1,error:"Nothing to replace."};let f=(0,p.sL)(d.id,a);if(null==f)return{ok:!1,error:"Screen not found."};let g=f.indexOf(e);if(g<0)return{ok:!1,error:"Couldn't locate that text — ask Grace to apply it."};if(f.indexOf(e,g+1)>=0)return{ok:!1,error:"That text appears more than once — ask Grace to apply it."};(0,p.dx)(d.id,a,f.slice(0,g)+(c??"")+f.slice(g+e.length));try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function am(a,b){let{org:c,workspace:d}=await (0,k.nP)();if(!a||!a.startsWith("design-mock/")||a.includes("..")||!/\.html?$/i.test(a))return{ok:!1,error:"Not a design screen."};if(null==b)return{ok:!1,error:"Nothing to commit."};if(b.length>4e6)return{ok:!1,error:"Screen too large."};let e=b,f=e.match(/<body[^>]*>([\s\S]*)<\/body>/i);f&&(e=f[1]),e=e.replace(/<!doctype[^>]*>/gi,"").replace(/<\/?(?:html|head|body)\b[^>]*>/gi,"");let g=(0,p.sL)(c.id,a);if(null==g)return{ok:!1,error:"Screen not found."};let i=g.match(/<body([^>]*)>[\s\S]*<\/body>/i),j=i&&null!=i.index?g.slice(0,i.index)+`<body${i[1]}>`+e+"</body>"+g.slice(i.index+i[0].length):`<!doctype html><html><head><meta charset="utf-8"></head><body>${e}</body></html>`;(0,p.dx)(c.id,a,j);try{await an(d.id,a)}catch{}try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0}}async function an(a,b){let[c]=await i.db.select({id:j.designSession.id}).from(j.designSession).where((0,f.eq)(j.designSession.workspaceId,a)).orderBy((0,g.i)(j.designSession.createdAt)).limit(1);if(!c)return;let d="Manual canvas edit",[h]=await i.db.select().from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,c.id)).orderBy((0,g.i)(j.designVersion.createdAt)).limit(1);if(h&&h.note===d&&Date.now()-h.createdAt.getTime()<9e4){let a=Array.from(new Set([...h.patch?.files??[],b]));await i.db.update(j.designVersion).set({patch:{files:a},createdAt:new Date}).where((0,f.eq)(j.designVersion.id,h.id))}else{let a=await i.db.select({id:j.designVersion.id}).from(j.designVersion).where((0,f.eq)(j.designVersion.sessionId,c.id));await i.db.insert(j.designVersion).values({id:(0,e.randomUUID)(),sessionId:c.id,label:"v"+(a.length+1),note:d,patch:{files:[b]}})}}async function ao(){let{org:a,workspace:b}=await (0,k.nP)(),c=(0,t.zw)(a.id,b).designMockFiles.filter(a=>/design-mock\/screens\/.+\.html?$/i.test(a));if(!c.length)return{ok:!1,built:[],error:"No screens to build yet — ask Grace for a screen first."};let d=[];for(let b of c){let c=(0,p.sL)(a.id,b);if(null==c)continue;let{out:e,obfuscated:f}=function(a){let b=/<script\b/i.test(a),c=function(a){let b;return(b=[],a.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(a,b,c)=>`<style${b}>${c.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{};,])\s*/g,"$1").replace(/:\s+/g,":").replace(/;}/g,"}").trim()}</style>`).replace(/<(script|style)\b[\s\S]*?<\/\1>/gi,a=>(b.push(a),`\0${b.length-1}\0`)).replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/(\d+)/g,(a,c)=>b[Number(c)])).trim()}(a);return b||(c=function(a){if(/<script\b/i.test(a))return a;let b=new Set;for(let c of a.matchAll(/class\s*=\s*"([^"]*)"/gi))c[1].split(/\s+/).filter(Boolean).forEach(a=>b.add(a));if(!b.size)return a;let c=new Map;[...b].forEach((a,b)=>c.set(a,function(a){let b="",c=a+1;for(;c>0;)b="abcdefghijklmnopqrstuvwxyz"[--c%26]+b,c=Math.floor(c/26);return b}(b)));let d=a.replace(/class\s*=\s*"([^"]*)"/gi,(a,b)=>`class="${b.split(/\s+/).filter(Boolean).map(a=>c.get(a)??a).join(" ")}"`);return d.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(a,b,d)=>{let e=d;for(let[a,b]of c)e=e.replace(RegExp("\\."+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(?![-_\\w])","g"),"."+b);return`<style${b}>${e}</style>`})}(c)),{out:c,obfuscated:!b}}(A(c,b,b=>(0,p.sL)(a.id,b))),g=`design-mock/dist/${b.split("/").pop()}`;(0,p.dx)(a.id,g,e),d.push({path:g,before:c.length,after:e.length,obfuscated:f})}try{(0,h.revalidatePath)("/design")}catch{}return{ok:!0,built:d}}(0,B.D)([E,F,G,H,I,J,K,L,M,N,P,S,T,U,V,W,Y,$,_,aa,ab,ad,ae,af,ag,ah,ai,aj,ak,al,am,ao]),(0,d.A)(E,"00b0578e37d9ebe94aea8c3a34edc1eb3072857776",null),(0,d.A)(F,"4017a2e91aac0e44c71e7dc8bdc64b91c86af6966e",null),(0,d.A)(G,"702318f1552859b902907168b6bbd6d46cbb1cd8bd",null),(0,d.A)(H,"40a2ed61c41d82e88df9f715926555d4751d7925b2",null),(0,d.A)(I,"7088368271648f6247e709bf8e6336af1a18845379",null),(0,d.A)(J,"00c6849ba47e6e7fea083ff67d4e2a602a90900e03",null),(0,d.A)(K,"60643b82a325d6fdb9a22f2326122b2156783fb109",null),(0,d.A)(L,"00041d8182167f36657652fa5117a86f04ad9fdac4",null),(0,d.A)(M,"60e384f0f20aad069f13d07666957fcf7fb2f9646f",null),(0,d.A)(N,"005693f47d654854560b9d0bc386173850cbf8240e",null),(0,d.A)(P,"605cae860898064ae08c87ba7e942dd9d714085b87",null),(0,d.A)(S,"60da31e678463e5daa11931edbba1bf33db81533f2",null),(0,d.A)(T,"00194592ad47500e882eca534f2a4293d58ced6167",null),(0,d.A)(U,"009e146b7742c650ca216beeed8e617243a4a5c103",null),(0,d.A)(V,"40ef9327df3c76aeec61e899723f3a4fce0f04e0f4",null),(0,d.A)(W,"002dfc0678550fd7b554d7d8b3301ed4c835ae2a9f",null),(0,d.A)(Y,"406e30e8c1f70608478aa34a2cfc9f472c06c1ade1",null),(0,d.A)($,"00ba8cc316d3085e76aed850bf0439194afd9bdec4",null),(0,d.A)(_,"601c6bff04fd688cd4118800632f7fbc53a64ee6a5",null),(0,d.A)(aa,"409ca62ff6760c73fdd8c8c7267a97b16e88a526f7",null),(0,d.A)(ab,"0072163f36363b48de78305a257f30f3daefa28c88",null),(0,d.A)(ad,"00f53bdd7c80bb26d6c234682ff09d42c9fa8d285c",null),(0,d.A)(ae,"602c949d6b4f90259a9dd0bf28582677f4f84cdc82",null),(0,d.A)(af,"400105d268e50cf405554ad50d07b6cf74ab3dfdfb",null),(0,d.A)(ag,"4036941845402c95b0a364055242692180e15d59a1",null),(0,d.A)(ah,"4042d732975c30e998b1b417f244d02bc240771b42",null),(0,d.A)(ai,"7ca088c8458079633b65380437dffa61b3a503e9d8",null),(0,d.A)(aj,"7084c40999976496a9f63bf8a44a4c05630a91605b",null),(0,d.A)(ak,"40205db6b6772e5190d6280f495fecc4c49bb1880c",null),(0,d.A)(al,"70de449374fe32fcef6ed2f670f9dd29539a04eff1",null),(0,d.A)(am,"60dbb220db735685b4802d9264fe095d42ffd507fa",null),(0,d.A)(ao,"0053a9e20f5c5328aa2a2502d518180bfd6eed8f2f",null)},69020:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>ag,patchFetch:()=>af,routeModule:()=>ab,serverHooks:()=>ae,workAsyncStorage:()=>ac,workUnitAsyncStorage:()=>ad});var d={};c.r(d),c.d(d,{POST:()=>aa,dynamic:()=>_,runtime:()=>$});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(77598),x=c(73024),y=c(76760),z=c(1782),A=c(7852),B=c(80280),C=c(25533),D=c(18612),E=c(16050),F=c(78874),G=c(1591),H=c(43075),I=c(55479),J=c(18661),K=c(96930),L=c(63390),M=c(12867),N=c(48938);let O="telegram",P=new Set,Q=new Set,R=new Set;async function S(){let a=await B.db.select().from(C.workspace),b=0;for(let c of a){let a=c.settings??{};if(!(0,E.Ml)(a.integrations,"telegram"))continue;let d=await (0,F._9)(c.id);if(!d)continue;R.has(d.botToken)||(R.add(d.botToken),(0,F.A3)(d.botToken).catch(()=>{}));let e=a.telegram?.offset??0,f=await (0,F.SD)(d.botToken,e),g=e;for(let a of f){g=Math.max(g,a.update_id+1);try{await T(c,d,a)}catch(a){console.error("[telegram] ingest failed:",a)}}g!==e&&await B.db.update(C.workspace).set({settings:{...a,telegram:{...a.telegram??{},offset:g}}}).where((0,z.eq)(C.workspace.id,c.id)),b+=f.length}return{updates:b}}async function T(a,b,c){if(c.callback_query)return void await Z(a,b,c.callback_query);let d=c.message;if(!d||String(d.chat.id)!==String(b.chatId)||d.from&&String(d.from.id)!==String(b.chatId))return;let e=(d.text??d.caption??"").slice(0,4e3),f=[],g=(0,D.HZ)(a.orgId),h=(0,w.randomUUID)().slice(0,8),i=async(a,c,d)=>{let e=await (0,F.G3)(b.botToken,a);if(!e)return;let i=c.replace(/[^\w.\-]+/g,"_").slice(-60)||`file.${e.ext}`,j=`uploads/tg-${h}/${i}`;try{(0,x.mkdirSync)((0,y.join)(g,`uploads/tg-${h}`),{recursive:!0}),(0,x.writeFileSync)((0,y.join)(g,j),e.buf),f.push({name:i,type:d,size:e.buf.length,path:j})}catch{}};if(d.photo?.length&&await i(d.photo[d.photo.length-1].file_id,"photo.jpg","image/jpeg"),d.document&&await i(d.document.file_id,d.document.file_name??"document",d.document.mime_type??"application/octet-stream"),e||0!==f.length){if(await B.db.insert(C.message).values({id:(0,w.randomUUID)(),workspaceId:a.id,channel:O,fromKind:"operator",text:e||"(attachment)",attachments:f.length?f:null}),(0,H.r)(a.id),P.has(a.id)&&e&&!e.startsWith("/")){P.delete(a.id),await (0,I.TR)(a.id,e),await X(a,b,"↩️ Recorded — the CEO will revise the plan with your reason.");return}if(Q.has(a.id)&&e&&!e.startsWith("/")){Q.delete(a.id);try{await B.db.insert(C.message).values({id:(0,w.randomUUID)(),workspaceId:a.id,channel:"design",fromKind:"operator",text:`Change request (via Telegram): ${e}`})}catch{}await X(a,b,"\uD83D\uDCDD Recorded — open the Design module and Grace will apply your changes, then Send to execution.");return}if(e.startsWith("/"))return void await Y(a,b,e);await U(a,b)}}async function U(a,b){let c=(await B.db.select().from(C.agent).where((0,z.Uo)((0,z.eq)(C.agent.workspaceId,a.id),(0,z.eq)(C.agent.handle,"ada"))))[0]??(await B.db.select().from(C.agent).where((0,z.eq)(C.agent.workspaceId,a.id)))[0];if(!c)return;await B.db.update(C.agent).set({status:"working"}).where((0,z.eq)(C.agent.id,c.id)),await (0,F.sK)(b.botToken,b.chatId,"typing");let d=setInterval(()=>{(0,F.sK)(b.botToken,b.chatId,"typing").catch(()=>{})},4e3),e="",f=!1;try{({text:e,planRequested:f}=await (0,G.PM)(a.orgId,a,O,c,"chat"))}finally{clearInterval(d)}if(await B.db.update(C.agent).set({status:"idle"}).where((0,z.eq)(C.agent.id,c.id)),e&&await (0,F.vH)(b.botToken,b.chatId,(0,N.Z)(e,[b.botToken])),f){let c=await (0,K.G)(a.orgId,a,O);await X(a,b,c.ok?"\uD83D\uDCDD Got it — drafting the plan now (specs \xb7 issues \xb7 TODOs); it'll appear in the CEO Planner for your approval, and I'll post here when it's ready.":`I couldn't start a plan from this yet${c.error?` (${c.error})`:""} — add a little more detail and I'll try again.`)}}let V=`Remote control:
120
120
  /status — quick status
121
121
  /review — full plan / issues / tasks summary
122
122
  /tasks — what's in flight right now
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=2835,a.ids=[2835],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},80380:(a,b,c)=>{c.r(b),c.d(b,{"002ec012533e91d74d3596cacc28fb29672dd2d424":()=>d.requestPlanChanges,"0032b07ecf3687db80464df2df4ff472ab8dd2ee50":()=>e.Uw,"0059411adec0d4d17e2f5256f8e3e9c094b68f7a5d":()=>e.VH,"007783648cc654590e09944d6548ae421be8af0f9e":()=>e.Hi,"0080b36ce77bd81dbf083ce6b21a310a7e151283c1":()=>e.nl,"00816c62c15b1b2b1e47c3ecc06ff2772f24b304d5":()=>e.zO,"008e820e62d3981d50f937f7998d4a052cfcdf8606":()=>e.Vr,"009cfe5203f9514f533a1534560d1974968a5175a2":()=>e.kb,"00a1eddd57e3dc09273aacc07984fd7f8a1954e84c":()=>e.Jw,"00b3534ff1a9f4bbc4526faf731b949fd42df6a42d":()=>e.Gh,"00b3b52cb7833f87653e869ab0da35b470165ab3f2":()=>d.groomBacklog,"00bbcb36f3ec5d03200563e9d6d7854d3ba9470677":()=>e.LU,"00c51c2b6950ef7f834ba431a695cc3622568d8cd8":()=>e.lC,"00cdd6efe0d93dce17eb396e9a29c63e22e984e916":()=>e.Ac,"00d19b870af4ff13b735c92d0f9975509d0fe99484":()=>e.ts,"00e486855e50f0dd74b7d17c6b9fd5d4f2a47ebe1b":()=>e.V$,"00e565233acd1b1622979ff2cf891f01f7021a1b7a":()=>d.approvePlan,"00f7ef824c9d5d9ece3ffd154aa2020e67abe2d97d":()=>e.S8,"40353e520652a8224e8ad28436fa1e61a96ed87043":()=>f.mg,"4040f166eec5ea57ea575d9d9c381347e68abe1328":()=>d.startNewWork,"404de78d48c7a08195046dd144742454e2bda67c9c":()=>d.approveSpec,"404f3952eaf160e47e56225cc6fcac5bd13eedd1d4":()=>e.wp,"406391094e0e56b6206dc31a4e337db67713f221bd":()=>e.az,"40747886657d57fe4ec7bb6e930420729ce0501fd8":()=>d.setAuto247,"407489fe7f99bc0e499c7f1ab258fc05e4c06bb07b":()=>e.m,"407c3e9df9b0d1da40b0b033574d67de5b2dbab44b":()=>d.advanceIssue,"407e76c79e36677578f1327d2f785d64c352713479":()=>d.rejectIssue,"40933768e7809f7eb198ab6ffe0955c3d64fb1a288":()=>d.planFromConversation,"409483dd86b3a500619c574d5486d6fe760b53accd":()=>d.approveIssue,"409889669d46218f902094aeecfb2b06fb3b04350b":()=>e.ju,"40994cd4f9accdbb46817b1a6dab2789f5e540cca6":()=>e.I2,"40a953d8beabc1d04711604ead11ff43872039018b":()=>e.cm,"40b624c64bbcfb0074e428661bb821bbff7b09a155":()=>e.Cp,"40b9f423165fc1bd787ea6c1079de9f2c3abab7157":()=>d.generatePlan,"40bafadd426209f1065283cb854fdd1f4af1846026":()=>e.L0,"40ce2a1d1b3f5a652afcd597a20bc8bfc5e240f8e2":()=>d.rejectSpec,"6008e6afb5884710aaaae699139aac177b4b62f8d0":()=>f.eA,"601b583d70097128ea8208f56230640112a36ed0b4":()=>d.groomBacklogFor,"606172ae2b4f1bd8d53a80749741c48cdb043bc24f":()=>g.I,"60ac6b802b4ac5f1a28c3dbdb5ff9f27e10a8e3dcf":()=>g.k,"700d9e5428bda6c4b953e511f1fab9bb77dc8b50e0":()=>f.LV});var d=c(56053),e=c(27989),f=c(76862),g=c(78848)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95396:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>Y,patchFetch:()=>X,routeModule:()=>T,serverHooks:()=>W,workAsyncStorage:()=>U,workUnitAsyncStorage:()=>V});var d={};c.r(d),c.d(d,{GET:()=>R,POST:()=>S,dynamic:()=>M,runtime:()=>L});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(77598),x=c(1782),y=c(80280),z=c(25533),A=c(95896);async function B(a,b){let c=/^Bearer\s+(cn_[A-Za-z0-9_-]{8,})$/.exec((a??"").trim());if(!c)return{ok:!1,status:401,error:"missing or malformed bearer token"};let d=(0,w.createHash)("sha256").update(c[1]).digest("hex"),[e]=await y.db.select().from(z.personalAccessToken).where((0,x.eq)(z.personalAccessToken.tokenHash,d));if(!e)return{ok:!1,status:401,error:"invalid token"};try{await y.db.update(z.personalAccessToken).set({lastUsedAt:new Date}).where((0,x.eq)(z.personalAccessToken.id,e.id))}catch{}let f=await (0,A.$x)(e.userId,b??void 0);if(!f)return{ok:!1,status:404,error:"no organization for this token's user"};if(f.archived)return{ok:!1,status:409,error:"organization is archived"};let g=await (0,A.K4)(f.id);return g?{ok:!0,auth:{userId:e.userId,tokenId:e.id,scope:e.scope,org:f,workspace:g}}:{ok:!1,status:404,error:"no workspace for the organization"}}async function C(a){let[b,c,d,[e]]=await Promise.all([y.db.select({status:z.goal.status}).from(z.goal).where((0,x.eq)(z.goal.workspaceId,a.id)),y.db.select({col:z.issue.col}).from(z.issue).where((0,x.eq)(z.issue.workspaceId,a.id)),y.db.select({col:z.task.col}).from(z.task).where((0,x.eq)(z.task.workspaceId,a.id)),y.db.select().from(z.plan).where((0,x.eq)(z.plan.workspaceId,a.id))]),f=a=>a.reduce((a,b)=>(a[b.col]=(a[b.col]??0)+1,a),{});return{workspace:{id:a.id,name:a.name,slug:a.slug},goals:{active:b.filter(a=>"active"===a.status).length,total:b.length},issues:{open:c.filter(a=>"done"!==a.col).length,total:c.length,byCol:f(c)},tasks:{doing:d.filter(a=>"doing"===a.col).length,total:d.length,byCol:f(d)},plan:e?{approved:e.approved,auto247:e.auto247,stage:e.stage}:null}}async function D(a){return await y.db.select({id:z.goal.id,title:z.goal.title,status:z.goal.status,progress:z.goal.progress}).from(z.goal).where((0,x.eq)(z.goal.workspaceId,a))}async function E(a){return await y.db.select({id:z.issue.id,key:z.issue.key,title:z.issue.title,col:z.issue.col,prio:z.issue.prio,points:z.issue.points,moscow:z.issue.moscow,approved:z.issue.approved}).from(z.issue).where((0,x.eq)(z.issue.workspaceId,a))}async function F(a){return await y.db.select({id:z.task.id,key:z.task.key,title:z.task.title,col:z.task.col,prio:z.task.prio}).from(z.task).where((0,x.eq)(z.task.workspaceId,a))}async function G(a){return await y.db.select({id:z.spec.id,key:z.spec.key,title:z.spec.title,status:z.spec.status,approved:z.spec.approved}).from(z.spec).where((0,x.eq)(z.spec.workspaceId,a))}var H=c(55479),I=c(18661),J=c(96930),K=c(12867);let L="nodejs",M="force-dynamic",N=new Map,O=(a,b=200)=>v.NextResponse.json({ok:!0,data:a},{status:b}),P=(a,b)=>v.NextResponse.json({ok:!1,error:b},{status:a});async function Q(a,b,c){var d;let e,f,g=await B(a.headers.get("authorization"),a.headers.get("x-constella-org"));if(!g.ok)return P(g.status,g.error);let{auth:h}=g;if(d=h.tokenId,e=Date.now(),(f=(N.get(d)??[]).filter(a=>e-a<6e4)).push(e),N.set(d,f),f.length>120)return P(429,"rate limit exceeded (120 req/min)");let i=h.workspace,j=b.join("/"),k="write"===h.scope,l=()=>k?null:P(403,"this token has read scope; a write-scope token is required");if("GET"===c)switch(j){case"":case"me":return O({user:h.userId,org:{id:h.org.id,name:h.org.name},workspace:{id:i.id,name:i.name,slug:i.slug},scope:h.scope});case"status":return O(await C(i));case"review":return O({text:await (0,H.mt)(i)});case"goals":return O(await D(i.id));case"issues":return O(await E(i.id));case"tasks":return O(await F(i.id));case"specs":return O(await G(i.id));case"kb":{let b=a.nextUrl.searchParams.get("q")??"";if(!b.trim())return P(400,"missing ?q=");let c=await (0,K.ed)(h.org.id,b);return O({text:c.text,sources:c.sources})}default:return P(404,`unknown GET /${j}`)}let m=await a.json().catch(()=>({}));switch(j){case"plan/approve":return l()??O(await (0,H.wz)(h.org.id,i));case"plan/reject":{let a=l();if(a)return a;return await (0,H.TR)(i.id,"string"==typeof m.reason?m.reason:void 0),O({rejected:!0})}case"execution":{let a=l();if(a)return a;let b=!1!==m.on;return await (0,H.mL)(i.id,b),O({auto247:b})}case"work":{let a=l();if(a)return a;let b="string"==typeof m.brief?m.brief:"",c="string"==typeof m.title?m.title:void 0,d=await (0,J.startNewWorkFor)(h.org.id,i,{brief:b,title:c});return d.ok?O(d):P(400,d.error??"could not start work")}case"kb":{let a="string"==typeof m.q?m.q:"";if(!a.trim())return P(400,"missing body.q");let b=await (0,K.ed)(h.org.id,a);return O({text:b.text,sources:b.sources})}default:if("goals"===b[0]&&3===b.length){let a=l();if(a)return a;let c=b[1];if("cancel"===b[2]){let a=await (0,I.NF)(i.id,c);return a.ok?O(a):P(404,"goal not found")}if("archive"===b[2]){let a=await (0,I.PT)(h.org.id,i.id,c);return a.ok?O(a):P(404,"goal not found")}}return P(404,`unknown POST /${j}`)}}async function R(a,b){try{let{path:c}=await b.params;return await Q(a,c??[],"GET")}catch(a){return P(500,String(a instanceof Error?a.message:a))}}async function S(a,b){try{let{path:c}=await b.params;return await Q(a,c??[],"POST")}catch(a){return P(500,String(a instanceof Error?a.message:a))}}let T=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/[[...path]]/route",pathname:"/api/v1/[[...path]]",filename:"route",bundlePath:"app/api/v1/[[...path]]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\api\\v1\\[[...path]]\\route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:V,serverHooks:W}=T;function X(){return(0,g.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:V})}async function Y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),T.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/[[...path]]/route";"/index"===d&&(d="/");let e=await T.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||T.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===T.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await T.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>T.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>T.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!I)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await T.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await T.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await T.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3050,658,9676,1845,7971,3550,4804,4679,1572,4619,9969,7989,2867,6873,850,2960,8823],()=>b(b.s=95396));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=2835,a.ids=[2835],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},40248:(a,b,c)=>{c.r(b),c.d(b,{"0002906425c37ba0a53bbfafa19691e9a906050d86":()=>e.Uw,"0038bfb5d0e8748666ba18a4f02557897aae6a50b5":()=>e.VH,"00417fb0c5992b5d8c9bf7bfdb20091c0b75f967d3":()=>d.approvePlan,"004b14ab45f1d73caf1fa096fd428f0885213bc9dd":()=>d.groomBacklog,"0056078f13eb137d213d4a1085a13ff6f381dabd2e":()=>e.Gh,"005d6b177b466248dc8ade5a43a93b4d803eab6094":()=>e.nl,"0061afb7f7b8b1fd8ac5aa96a903e3f22f615aa20f":()=>e.LU,"006dcbb5e7e346c443d7102ca0daafd3d6ef659076":()=>e.Ac,"007e381e52bd202d1b126f7cd30c571345bc33887e":()=>e.ts,"009534a6350f6d7ee36028fb9ab4659b11f05bd937":()=>d.requestPlanChanges,"0097079f8bb244de0b0343f4afa7990fed9fb324d2":()=>e.Jw,"00a7e1670a16ccb470c5305aabfe79db99128992b9":()=>e.lC,"00a94d93b5071359022f2378c3d54073eee3fa85c3":()=>e.Hi,"00abc16008e05e917d0ebc5e65eec07577fecb4570":()=>e.V$,"00bffc1c2ed5e8793aa8d097de94037f7e98e3292f":()=>e.Vr,"00cefe7d564b7bd933451222433059aa5dd8e95c2a":()=>e.zO,"00dec8cf58fde95e890b2dbab03e0216c02db09ee8":()=>e.kb,"00f924b6c219ad8d088625ee88343322f8ea498bcf":()=>e.S8,"4019def9d61c1f2ae2b3ef51af11efa0f5c439d65d":()=>d.approveSpec,"402bb61d0ec0ca426f1594c554cd83c9d2f55e4e2a":()=>d.startNewWork,"403e4537b9c0d6aa80d4e7fc51b9a4ed3c5f832593":()=>d.planFromConversation,"403e61223e2aa817de8ec2340570d4e49d420e3398":()=>e.cm,"404502bf64b6ad6b7865767a52d5f6f55bf6a43e3a":()=>e.Cp,"404b75852390a00b75a0428e40249cda9fec6baced":()=>e.wp,"406d2bac523e293dc8e736d45dbfd24078855b371f":()=>d.advanceIssue,"407f6077577515b726822bd6f80f9a601f412e1015":()=>e.m,"4088847163a13dc2e80c3095763da6ac497a5b9e37":()=>d.rejectIssue,"4096c37c3555263308f9a36206eaf746d0defe25ad":()=>d.rejectSpec,"40aed83757bf4e7d35906a784d6f38596d11a37abf":()=>d.approveIssue,"40b07ca371170bbb9e7bc16ba05a00629bae0e3e9e":()=>e.I2,"40d05376667b91af0ad411cbfa854abffb551f894d":()=>e.ju,"40d3c0594ce0b931cad118a1790bac1c8aba31a6bb":()=>e.az,"40e3b911773e190273915e8ecd96b865a3e34df027":()=>d.generatePlan,"40ea0236fb2729d70fa5f0bf6383e5f20dfa0c930e":()=>d.setAuto247,"40eb0711e58f72723c75d51f7586109839bbe62d56":()=>e.L0,"40fae88371459f73885109eab788ff958ee3beeed7":()=>f.mg,"60274f514b61483b6e070a65f4817ee1ad9fe43504":()=>g.k,"6049641843ec1c7e875c48a2c3f9449777b8ccc9c5":()=>f.eA,"60d43730d40153cb1c4e21154a523dfb9804f2610f":()=>d.groomBacklogFor,"60dbdf46cddec83114ce6551fd870fa84f68016765":()=>g.I,"707fe9e0791bae72cb4b58e28b3fc406ee75f494c4":()=>f.LV});var d=c(56053),e=c(27989),f=c(76862),g=c(78848)},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95396:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>Y,patchFetch:()=>X,routeModule:()=>T,serverHooks:()=>W,workAsyncStorage:()=>U,workUnitAsyncStorage:()=>V});var d={};c.r(d),c.d(d,{GET:()=>R,POST:()=>S,dynamic:()=>M,runtime:()=>L});var e=c(55750),f=c(69743),g=c(38214),h=c(72584),i=c(65510),j=c(25026),k=c(261),l=c(26936),m=c(91226),n=c(75994),o=c(34185),p=c(57047),q=c(93277),r=c(51195),s=c(22204),t=c(86439),u=c(26242),v=c(24647),w=c(77598),x=c(1782),y=c(80280),z=c(25533),A=c(95896);async function B(a,b){let c=/^Bearer\s+(cn_[A-Za-z0-9_-]{8,})$/.exec((a??"").trim());if(!c)return{ok:!1,status:401,error:"missing or malformed bearer token"};let d=(0,w.createHash)("sha256").update(c[1]).digest("hex"),[e]=await y.db.select().from(z.personalAccessToken).where((0,x.eq)(z.personalAccessToken.tokenHash,d));if(!e)return{ok:!1,status:401,error:"invalid token"};try{await y.db.update(z.personalAccessToken).set({lastUsedAt:new Date}).where((0,x.eq)(z.personalAccessToken.id,e.id))}catch{}let f=await (0,A.$x)(e.userId,b??void 0);if(!f)return{ok:!1,status:404,error:"no organization for this token's user"};if(f.archived)return{ok:!1,status:409,error:"organization is archived"};let g=await (0,A.K4)(f.id);return g?{ok:!0,auth:{userId:e.userId,tokenId:e.id,scope:e.scope,org:f,workspace:g}}:{ok:!1,status:404,error:"no workspace for the organization"}}async function C(a){let[b,c,d,[e]]=await Promise.all([y.db.select({status:z.goal.status}).from(z.goal).where((0,x.eq)(z.goal.workspaceId,a.id)),y.db.select({col:z.issue.col}).from(z.issue).where((0,x.eq)(z.issue.workspaceId,a.id)),y.db.select({col:z.task.col}).from(z.task).where((0,x.eq)(z.task.workspaceId,a.id)),y.db.select().from(z.plan).where((0,x.eq)(z.plan.workspaceId,a.id))]),f=a=>a.reduce((a,b)=>(a[b.col]=(a[b.col]??0)+1,a),{});return{workspace:{id:a.id,name:a.name,slug:a.slug},goals:{active:b.filter(a=>"active"===a.status).length,total:b.length},issues:{open:c.filter(a=>"done"!==a.col).length,total:c.length,byCol:f(c)},tasks:{doing:d.filter(a=>"doing"===a.col).length,total:d.length,byCol:f(d)},plan:e?{approved:e.approved,auto247:e.auto247,stage:e.stage}:null}}async function D(a){return await y.db.select({id:z.goal.id,title:z.goal.title,status:z.goal.status,progress:z.goal.progress}).from(z.goal).where((0,x.eq)(z.goal.workspaceId,a))}async function E(a){return await y.db.select({id:z.issue.id,key:z.issue.key,title:z.issue.title,col:z.issue.col,prio:z.issue.prio,points:z.issue.points,moscow:z.issue.moscow,approved:z.issue.approved}).from(z.issue).where((0,x.eq)(z.issue.workspaceId,a))}async function F(a){return await y.db.select({id:z.task.id,key:z.task.key,title:z.task.title,col:z.task.col,prio:z.task.prio}).from(z.task).where((0,x.eq)(z.task.workspaceId,a))}async function G(a){return await y.db.select({id:z.spec.id,key:z.spec.key,title:z.spec.title,status:z.spec.status,approved:z.spec.approved}).from(z.spec).where((0,x.eq)(z.spec.workspaceId,a))}var H=c(55479),I=c(18661),J=c(96930),K=c(12867);let L="nodejs",M="force-dynamic",N=new Map,O=(a,b=200)=>v.NextResponse.json({ok:!0,data:a},{status:b}),P=(a,b)=>v.NextResponse.json({ok:!1,error:b},{status:a});async function Q(a,b,c){var d;let e,f,g=await B(a.headers.get("authorization"),a.headers.get("x-constella-org"));if(!g.ok)return P(g.status,g.error);let{auth:h}=g;if(d=h.tokenId,e=Date.now(),(f=(N.get(d)??[]).filter(a=>e-a<6e4)).push(e),N.set(d,f),f.length>120)return P(429,"rate limit exceeded (120 req/min)");let i=h.workspace,j=b.join("/"),k="write"===h.scope,l=()=>k?null:P(403,"this token has read scope; a write-scope token is required");if("GET"===c)switch(j){case"":case"me":return O({user:h.userId,org:{id:h.org.id,name:h.org.name},workspace:{id:i.id,name:i.name,slug:i.slug},scope:h.scope});case"status":return O(await C(i));case"review":return O({text:await (0,H.mt)(i)});case"goals":return O(await D(i.id));case"issues":return O(await E(i.id));case"tasks":return O(await F(i.id));case"specs":return O(await G(i.id));case"kb":{let b=a.nextUrl.searchParams.get("q")??"";if(!b.trim())return P(400,"missing ?q=");let c=await (0,K.ed)(h.org.id,b);return O({text:c.text,sources:c.sources})}default:return P(404,`unknown GET /${j}`)}let m=await a.json().catch(()=>({}));switch(j){case"plan/approve":return l()??O(await (0,H.wz)(h.org.id,i));case"plan/reject":{let a=l();if(a)return a;return await (0,H.TR)(i.id,"string"==typeof m.reason?m.reason:void 0),O({rejected:!0})}case"execution":{let a=l();if(a)return a;let b=!1!==m.on;return await (0,H.mL)(i.id,b),O({auto247:b})}case"work":{let a=l();if(a)return a;let b="string"==typeof m.brief?m.brief:"",c="string"==typeof m.title?m.title:void 0,d=await (0,J.startNewWorkFor)(h.org.id,i,{brief:b,title:c});return d.ok?O(d):P(400,d.error??"could not start work")}case"kb":{let a="string"==typeof m.q?m.q:"";if(!a.trim())return P(400,"missing body.q");let b=await (0,K.ed)(h.org.id,a);return O({text:b.text,sources:b.sources})}default:if("goals"===b[0]&&3===b.length){let a=l();if(a)return a;let c=b[1];if("cancel"===b[2]){let a=await (0,I.NF)(i.id,c);return a.ok?O(a):P(404,"goal not found")}if("archive"===b[2]){let a=await (0,I.PT)(h.org.id,i.id,c);return a.ok?O(a):P(404,"goal not found")}}return P(404,`unknown POST /${j}`)}}async function R(a,b){try{let{path:c}=await b.params;return await Q(a,c??[],"GET")}catch(a){return P(500,String(a instanceof Error?a.message:a))}}async function S(a,b){try{let{path:c}=await b.params;return await Q(a,c??[],"POST")}catch(a){return P(500,String(a instanceof Error?a.message:a))}}let T=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/[[...path]]/route",pathname:"/api/v1/[[...path]]",filename:"route",bundlePath:"app/api/v1/[[...path]]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\api\\v1\\[[...path]]\\route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:V,serverHooks:W}=T;function X(){return(0,g.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:V})}async function Y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),T.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/[[...path]]/route";"/index"===d&&(d="/");let e=await T.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||T.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===T.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await T.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>T.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>T.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!I)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await T.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await T.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await T.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3050,658,9676,1845,7971,3550,4804,4679,1572,4619,9969,7989,2867,6873,850,2960,8823],()=>b(b.s=95396));module.exports=c})();
@@ -11,8 +11,8 @@
11
11
  "/api/sync/file/route": "app/api/sync/file/route.js",
12
12
  "/api/auth/[...all]/route": "app/api/auth/[...all]/route.js",
13
13
  "/api/health/route": "app/api/health/route.js",
14
- "/api/telegram/poll/route": "app/api/telegram/poll/route.js",
15
14
  "/api/stream/route": "app/api/stream/route.js",
15
+ "/api/telegram/poll/route": "app/api/telegram/poll/route.js",
16
16
  "/api/upload/route": "app/api/upload/route.js",
17
17
  "/api/v1/[[...path]]/route": "app/api/v1/[[...path]]/route.js",
18
18
  "/(app)/activity/page": "app/(app)/activity/page.js",