constellai 0.3.8 → 0.3.9

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 (238) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/app/(app)/activity/page.js +2 -2
  5. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  6. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  8. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/code/page.js +2 -2
  11. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  12. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(app)/config/page.js +2 -2
  14. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/costs/page.js +2 -2
  17. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  18. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(app)/cron/page.js +2 -2
  20. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  21. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(app)/dashboard/page.js +2 -2
  23. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/design/page.js +3 -3
  26. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  27. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  29. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/docs/page.js +2 -2
  32. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  33. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(app)/github/page.js +2 -2
  35. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  36. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(app)/goals/page.js +2 -2
  38. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  39. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/(app)/inbox/page.js +2 -2
  41. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  42. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(app)/knowledge/page.js +2 -2
  44. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  45. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(app)/models/page.js +2 -2
  47. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  48. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(app)/notifications/page.js +2 -2
  50. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  51. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(app)/org/page.js +4 -4
  53. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  54. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(app)/organizations/page.js +2 -2
  56. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  57. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(app)/page.js +3 -3
  59. package/.next/server/app/(app)/page.js.nft.json +1 -1
  60. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/(app)/planner/page.js +2 -2
  62. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  63. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/(app)/plugins/page.js +2 -2
  65. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  66. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/(app)/pm/page.js +2 -2
  68. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  69. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
  71. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  72. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/(app)/profile/page.js +2 -2
  74. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  75. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/(app)/pulse/page.js +2 -2
  77. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  78. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/(app)/reports/[id]/page.js +2 -2
  80. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  81. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/(app)/reports/page.js +3 -3
  83. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  84. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/(app)/routines/page.js +2 -2
  86. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  87. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app/(app)/search/page.js +2 -2
  89. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  90. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  91. package/.next/server/app/(app)/security/page.js +2 -2
  92. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  93. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/(app)/skills/page.js +3 -3
  95. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  96. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  97. package/.next/server/app/(app)/tasks/page.js +2 -2
  98. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  99. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/(app)/test-dev/page.js +1 -1
  101. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  102. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/(app)/update/page.js +3 -3
  104. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  105. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/(auth)/login/page.js +2 -2
  107. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/(auth)/onboarding/page.js +1 -1
  109. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/_global-error.html +1 -1
  112. package/.next/server/app/_global-error.rsc +1 -1
  113. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  114. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  115. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  116. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  118. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  119. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/cron/tick/route.js +2 -2
  121. package/.next/server/app/api/sync/file/route.js +1 -1
  122. package/.next/server/app/api/telegram/poll/route.js +2 -2
  123. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  124. package/.next/server/chunks/1033.js +1 -1
  125. package/.next/server/chunks/1190.js +12 -0
  126. package/.next/server/chunks/1986.js +1 -1
  127. package/.next/server/chunks/2118.js +1 -1
  128. package/.next/server/chunks/{1678.js → 3481.js} +16 -16
  129. package/.next/server/chunks/3987.js +3 -3
  130. package/.next/server/chunks/4288.js +1 -1
  131. package/.next/server/chunks/4435.js +1 -0
  132. package/.next/server/chunks/4732.js +1 -0
  133. package/.next/server/chunks/5878.js +1 -1
  134. package/.next/server/chunks/7348.js +4 -0
  135. package/.next/server/chunks/739.js +1 -0
  136. package/.next/server/chunks/7867.js +1 -1
  137. package/.next/server/chunks/7905.js +1 -1
  138. package/.next/server/chunks/8134.js +1 -1
  139. package/.next/server/chunks/8211.js +1 -1
  140. package/.next/server/chunks/8868.js +21 -0
  141. package/.next/server/chunks/907.js +1 -1
  142. package/.next/server/chunks/9344.js +3 -3
  143. package/.next/server/middleware-build-manifest.js +1 -1
  144. package/.next/server/middleware.js +1 -1
  145. package/.next/server/pages/500.html +1 -1
  146. package/.next/server/server-reference-manifest.js +1 -1
  147. package/.next/server/server-reference-manifest.json +1 -1
  148. package/.next/static/chunks/1738-28b6824e2a707b93.js +1 -0
  149. package/.next/static/chunks/4365-c5eb5b6af7bfc653.js +4 -0
  150. package/.next/static/chunks/6871-a079ac1b4f0caec2.js +1 -0
  151. package/.next/static/chunks/{7218-21f40f9caef5d658.js → 7218-44d9a247cf4980fa.js} +2 -2
  152. package/.next/static/chunks/7466-6d8ba01f169a6a1e.js +1 -0
  153. package/.next/static/chunks/app/(app)/activity/{page-ce3fc6003368f592.js → page-8cf9b4c853ca9c69.js} +1 -1
  154. package/.next/static/chunks/app/(app)/agents/[handle]/page-068e58bd327db429.js +1 -0
  155. package/.next/static/chunks/app/(app)/code/page-98becb790f9aeedf.js +1 -0
  156. package/.next/static/chunks/app/(app)/config/page-b5447ad490de11f7.js +1 -0
  157. package/.next/static/chunks/app/(app)/costs/page-02324b05660bad50.js +1 -0
  158. package/.next/static/chunks/app/(app)/cron/page-5c9c6fea5aee299c.js +1 -0
  159. package/.next/static/chunks/app/(app)/dashboard/{page-6237c3a35cce55ce.js → page-742ac16dbfce548b.js} +1 -1
  160. package/.next/static/chunks/app/(app)/design/{page-5997054187e59e74.js → page-3ff2eae843e8b7ea.js} +3 -3
  161. package/.next/static/chunks/app/(app)/docs/[id]/page-f7cc168b103da51e.js +1 -0
  162. package/.next/static/chunks/app/(app)/docs/page-bc93a2e0342c61af.js +1 -0
  163. package/.next/static/chunks/app/(app)/github/page-44b09f94c19f56f0.js +1 -0
  164. package/.next/static/chunks/app/(app)/goals/{page-95e85ce115ed9ff3.js → page-b66ec65a7221b023.js} +1 -1
  165. package/.next/static/chunks/app/(app)/inbox/page-57a8ab9347276aa2.js +12 -0
  166. package/.next/static/chunks/app/(app)/knowledge/page-fb3902b3c7348818.js +1 -0
  167. package/.next/static/chunks/app/(app)/layout-98aa9e760faf2331.js +1 -0
  168. package/.next/static/chunks/app/(app)/models/page-92f957c7400497f0.js +1 -0
  169. package/.next/static/chunks/app/(app)/notifications/page-e3fcdad57e7a94fd.js +12 -0
  170. package/.next/static/chunks/app/(app)/org/page-9030d33729e45e07.js +12 -0
  171. package/.next/static/chunks/app/(app)/organizations/{page-0de7da829c9b2249.js → page-f29c3dc4b3327b8d.js} +1 -1
  172. package/.next/static/chunks/app/(app)/page-0e7e7cfd98d44f59.js +1 -0
  173. package/.next/static/chunks/app/(app)/planner/{page-0fc0ebe2d338769a.js → page-a2c45cb14b53454a.js} +1 -1
  174. package/.next/static/chunks/app/(app)/plugins/page-792b3dc0ae8571db.js +1 -0
  175. package/.next/static/chunks/app/(app)/pm/page-4624950feadad3be.js +1 -0
  176. package/.next/static/chunks/app/(app)/prepare-deploy/page-a5d2911069317635.js +1 -0
  177. package/.next/static/chunks/app/(app)/profile/page-10ce6fd89387a1f0.js +1 -0
  178. package/.next/static/chunks/app/(app)/pulse/page-793ce0d2074d2cd7.js +1 -0
  179. package/.next/static/chunks/app/(app)/reports/[id]/page-5c9c6fea5aee299c.js +1 -0
  180. package/.next/static/chunks/app/(app)/reports/page-cfa78938aef16acc.js +1 -0
  181. package/.next/static/chunks/app/(app)/routines/page-06df804a8db66b2d.js +1 -0
  182. package/.next/static/chunks/app/(app)/search/page-eec2f135e6af9c70.js +1 -0
  183. package/.next/static/chunks/app/(app)/security/page-23dd0b8308ee48b8.js +1 -0
  184. package/.next/static/chunks/app/(app)/skills/page-d3d63cac10ce08e1.js +1 -0
  185. package/.next/static/chunks/app/(app)/tasks/{page-4d535f34ae9c44ca.js → page-0750ff77f17bdd9d.js} +1 -1
  186. package/.next/static/chunks/app/(app)/test-dev/page-7c09ba848265ffe6.js +1 -0
  187. package/.next/static/chunks/app/(app)/update/page-e70ac9974eb7bf03.js +1 -0
  188. package/.next/static/chunks/app/(auth)/login/page-0ee8f367460d835a.js +1 -0
  189. package/.next/static/chunks/app/(auth)/onboarding/{page-8548be7e3ab3659e.js → page-1de0c42322e9f296.js} +1 -1
  190. package/.next/static/chunks/app/layout-a80704c0fd0a9e29.js +1 -0
  191. package/.next/trace-build +1 -1
  192. package/CHANGELOG.md +12 -0
  193. package/README.md +1 -1
  194. package/README.pt-BR.md +1 -1
  195. package/docs/UPDATE.md +9 -3
  196. package/package.json +1 -1
  197. package/.next/server/chunks/3392.js +0 -1
  198. package/.next/server/chunks/6538.js +0 -4
  199. package/.next/server/chunks/7727.js +0 -1
  200. package/.next/server/chunks/8237.js +0 -12
  201. package/.next/server/chunks/939.js +0 -1
  202. package/.next/server/chunks/9795.js +0 -21
  203. package/.next/static/chunks/3556-dbb9200143640484.js +0 -1
  204. package/.next/static/chunks/5523-9c369c915ee6d9c9.js +0 -1
  205. package/.next/static/chunks/7363-b9ebe28fed23b997.js +0 -1
  206. package/.next/static/chunks/7621-87d8d0d0568de3ca.js +0 -4
  207. package/.next/static/chunks/app/(app)/agents/[handle]/page-236e13b8edadd480.js +0 -1
  208. package/.next/static/chunks/app/(app)/code/page-18ae765c81a2c709.js +0 -1
  209. package/.next/static/chunks/app/(app)/config/page-8a6fcf6c04337210.js +0 -1
  210. package/.next/static/chunks/app/(app)/costs/page-230b0ef03a2024b0.js +0 -1
  211. package/.next/static/chunks/app/(app)/cron/page-ca89769e2522191d.js +0 -1
  212. package/.next/static/chunks/app/(app)/docs/[id]/page-3362d323e0f4dada.js +0 -1
  213. package/.next/static/chunks/app/(app)/docs/page-d7d8018a7884a4b4.js +0 -1
  214. package/.next/static/chunks/app/(app)/github/page-f5c1cae725d080fb.js +0 -1
  215. package/.next/static/chunks/app/(app)/inbox/page-474c3f0a181bbbd3.js +0 -12
  216. package/.next/static/chunks/app/(app)/knowledge/page-08596428ca34b620.js +0 -1
  217. package/.next/static/chunks/app/(app)/layout-720a1171f7152d86.js +0 -1
  218. package/.next/static/chunks/app/(app)/models/page-fa1eb257e6911c9a.js +0 -1
  219. package/.next/static/chunks/app/(app)/notifications/page-31f2a041bdb497b9.js +0 -12
  220. package/.next/static/chunks/app/(app)/org/page-666438930ddc4639.js +0 -12
  221. package/.next/static/chunks/app/(app)/page-bfcf3d25f468240f.js +0 -1
  222. package/.next/static/chunks/app/(app)/plugins/page-ad369fbfec6f3d1c.js +0 -1
  223. package/.next/static/chunks/app/(app)/pm/page-bb39c9d9a4f0d597.js +0 -1
  224. package/.next/static/chunks/app/(app)/prepare-deploy/page-f182991e68b159c1.js +0 -1
  225. package/.next/static/chunks/app/(app)/profile/page-cf5fe16bfad2a7ba.js +0 -1
  226. package/.next/static/chunks/app/(app)/pulse/page-03877c467c491e8a.js +0 -1
  227. package/.next/static/chunks/app/(app)/reports/[id]/page-ca89769e2522191d.js +0 -1
  228. package/.next/static/chunks/app/(app)/reports/page-7741b6a25e582791.js +0 -1
  229. package/.next/static/chunks/app/(app)/routines/page-ea83e6337e7502c2.js +0 -1
  230. package/.next/static/chunks/app/(app)/search/page-5e7f7cf0cc51b76f.js +0 -1
  231. package/.next/static/chunks/app/(app)/security/page-410144cdc35e19cc.js +0 -1
  232. package/.next/static/chunks/app/(app)/skills/page-90e5d8a24920c275.js +0 -1
  233. package/.next/static/chunks/app/(app)/test-dev/page-782c8cadd8a10feb.js +0 -1
  234. package/.next/static/chunks/app/(app)/update/page-decdb0ece526b50f.js +0 -1
  235. package/.next/static/chunks/app/(auth)/login/page-147a9be880c44d42.js +0 -1
  236. package/.next/static/chunks/app/layout-c717657a60a7f62c.js +0 -1
  237. /package/.next/static/{ehoxBsPzAtE_FyZ2VpMF0 → vW8upousaXo7DvSlRwFbb}/_buildManifest.js +0 -0
  238. /package/.next/static/{ehoxBsPzAtE_FyZ2VpMF0 → vW8upousaXo7DvSlRwFbb}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5134],{869:(e,s,a)=>{"use strict";a.d(s,{LangProvider:()=>i,k:()=>c});var r=a(4275),t=a(2899),n=a(171);let l=(0,t.createContext)("en");function i({lang:e,children:s}){return(0,r.jsx)(l.Provider,{value:e,children:s})}function c(){let e=(0,t.useContext)(l);return(s,a)=>(0,n.t)(e,s,a)}},888:(e,s,a)=>{"use strict";a.d(s,{I:()=>n});var r=a(4275);let t={files:(0,r.jsx)("path",{d:"M3 3.5h5l1.5 2H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z"}),search:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"7",cy:"7",r:"4.2"}),(0,r.jsx)("path",{d:"M10.2 10.2 14 14"})]}),git:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"4",cy:"4",r:"1.8"}),(0,r.jsx)("circle",{cx:"4",cy:"12",r:"1.8"}),(0,r.jsx)("circle",{cx:"12",cy:"9.5",r:"1.8"}),(0,r.jsx)("path",{d:"M4 5.8v4.4M5.8 4H9a2 2 0 0 1 2 2v1.6"})]}),debug:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8.5",r:"3.5"}),(0,r.jsx)("path",{d:"M8 5V3M4.5 8.5H2m12 0h-2.5M4.8 11.8 3.4 13M11.2 11.8l1.4 1.2M5.2 5 3.8 3.6M10.8 5l1.4-1.4"})]}),ext:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("path",{d:"M9 11.2h4.5M11.2 9v4.5"})]}),settings:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"2.2"}),(0,r.jsx)("path",{d:"M8 1.5v2M8 12.5v2M14.5 8h-2M3.5 8h-2M12.6 3.4l-1.4 1.4M4.8 11.2l-1.4 1.4M12.6 12.6l-1.4-1.4M4.8 4.8 3.4 3.4"})]}),account:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"5.5",r:"2.8"}),(0,r.jsx)("path",{d:"M2.8 14c0-2.8 2.3-4.5 5.2-4.5s5.2 1.7 5.2 4.5"})]}),chevronRight:(0,r.jsx)("path",{d:"M6 4l4 4-4 4"}),chevronDown:(0,r.jsx)("path",{d:"M4 6l4 4 4-4"}),chevronUp:(0,r.jsx)("path",{d:"M4 10l4-4 4 4"}),close:(0,r.jsx)("path",{d:"M4 4l8 8M12 4l-8 8"}),add:(0,r.jsx)("path",{d:"M8 3v10M3 8h10"}),newFile:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,r.jsx)("path",{d:"M9 2v4h4M8 8v4M6 10h4"})]}),newFolder:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M2 5.5a1 1 0 0 1 1-1h3l1.2 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5.5z"}),(0,r.jsx)("path",{d:"M8 8v3M6.5 9.5h3"})]}),refresh:(0,r.jsx)("path",{d:"M13 8a5 5 0 1 1-1.5-3.5M13 2.5V5h-2.5"}),collapse:(0,r.jsx)("path",{d:"M3 5h6M3 8h6M3 11h6M12 6l-1.5 1.5L12 9"}),more:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"3.5",cy:"8",r:"1"}),(0,r.jsx)("circle",{cx:"8",cy:"8",r:"1"}),(0,r.jsx)("circle",{cx:"12.5",cy:"8",r:"1"})]}),split:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1"}),(0,r.jsx)("path",{d:"M8 3v10"})]}),terminal:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M4.5 6.5 6.5 8l-2 1.5M8 10h3.5"})]}),panelBottom:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M2 10h12"})]}),sidebarIcon:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M6 3v10"})]}),bell:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2a3.5 3.5 0 0 0-3.5 3.5c0 3-1.3 4-1.3 4h9.6s-1.3-1-1.3-4A3.5 3.5 0 0 0 8 2z"}),(0,r.jsx)("path",{d:"M6.7 12a1.4 1.4 0 0 0 2.6 0"})]}),check:(0,r.jsx)("path",{d:"M3 8.5 6.5 12 13 4"}),error:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,r.jsx)("path",{d:"M8 5v4M8 11h.01"})]}),warn:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2.5 14.5 13.5h-13z"}),(0,r.jsx)("path",{d:"M8 7v3M8 12h.01"})]}),branch:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"4",cy:"4",r:"1.6"}),(0,r.jsx)("circle",{cx:"4",cy:"12",r:"1.6"}),(0,r.jsx)("circle",{cx:"12",cy:"9",r:"1.6"}),(0,r.jsx)("path",{d:"M4 5.6v4.8M5.6 4H9a1.8 1.8 0 0 1 1.8 1.8v1.6"})]}),sync:(0,r.jsx)("path",{d:"M3 6a5 5 0 0 1 8.5-2M13 10a5 5 0 0 1-8.5 2M11.5 2.5V4h-1.5M4.5 13.5V12h1.5"}),command:(0,r.jsx)("path",{d:"M5.5 3.5A1.5 1.5 0 1 1 4 5h8a1.5 1.5 0 1 1-1.5 1.5v3A1.5 1.5 0 1 1 12 11H4a1.5 1.5 0 1 1 1.5-1.5v-3z"}),goto:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M3 8h8M7.5 4.5 11 8l-3.5 3.5"}),(0,r.jsx)("path",{d:"M13 3v10"})]}),sun:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,r.jsx)("path",{d:"M8 1.5v1.5M8 13v1.5M14.5 8H13M3 8H1.5M12.6 3.4l-1 1M4.4 11.6l-1 1M12.6 12.6l-1-1M4.4 4.4l-1-1"})]}),moon:(0,r.jsx)("path",{d:"M13 9.2A5.5 5.5 0 0 1 6.8 3 5.5 5.5 0 1 0 13 9.2z"}),play:(0,r.jsx)("path",{d:"M5 3.5v9l7-4.5z"}),trash:(0,r.jsx)("path",{d:"M3.5 4.5h9M6 4.5V3h4v1.5M5 4.5l.5 8.5h5l.5-8.5"}),dot:(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),fileTs:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,r.jsx)("path",{d:"M9 2v4h4"})]}),arrowUp:(0,r.jsx)("path",{d:"M8 13V3M4 7l4-4 4 4"}),arrowDown:(0,r.jsx)("path",{d:"M8 3v10M4 9l4 4 4-4"}),agents:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"5.5",cy:"6",r:"2.2"}),(0,r.jsx)("circle",{cx:"11",cy:"6.5",r:"1.8"}),(0,r.jsx)("path",{d:"M2 13c0-2 1.6-3.2 3.5-3.2S9 11 9 13M9.5 12.5c.2-1.6 1.3-2.5 2.8-2.5 1.3 0 2.4.8 2.4 2.3"})]}),bot:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"3",y:"5.5",width:"10",height:"7",rx:"2"}),(0,r.jsx)("path",{d:"M8 3v2.5M5.8 9h.01M10.2 9h.01M6 12h4"}),(0,r.jsx)("circle",{cx:"8",cy:"3",r:"1"})]}),send:(0,r.jsx)("path",{d:"M14 2 7 9M14 2l-4.5 12-2.5-5L2 6.5z"}),at:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,r.jsx)("path",{d:"M11 8v1.2a1.8 1.8 0 0 0 3.5.6A6.5 6.5 0 1 0 11 13.2"})]}),chevronLeft:(0,r.jsx)("path",{d:"M10 4 6 8l4 4"}),dockRight:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M10 3v10"}),(0,r.jsx)("rect",{x:"10.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),dockLeft:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M6 3v10"}),(0,r.jsx)("rect",{x:"2.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),chat:(0,r.jsx)("path",{d:"M3 4.5h10a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H7l-3 2.5V11.5H3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"}),grid:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"4.5",height:"4.5",rx:"1"})]}),inbox:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M2 9h3l1 2h4l1-2h3"}),(0,r.jsx)("path",{d:"M2.5 9 4 3.5h8L13.5 9v3.5a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1z"})]}),calendar:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M2.5 6.5h11M5.5 2v3M10.5 2v3"})]}),repeat:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M3 6a4 4 0 0 1 7-2.5L12 5M13 10a4 4 0 0 1-7 2.5L4 11"}),(0,r.jsx)("path",{d:"M12 2v3H9M4 14v-3h3"})]}),doc:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V5.5L9 2z"}),(0,r.jsx)("path",{d:"M9 2v3.5h3.5M6 8.5h4M6 11h4"})]}),skill:(0,r.jsx)("path",{d:"M8 2.5l1.4 3.1 3.4.4-2.5 2.3.7 3.3L8 9.9 5 11.6l.7-3.3L3.2 6l3.4-.4z"}),pulse:(0,r.jsx)("path",{d:"M2 8h3l1.5-4 2.5 8 1.5-4H14"}),coins:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("ellipse",{cx:"6",cy:"4.5",rx:"3.5",ry:"1.8"}),(0,r.jsx)("path",{d:"M2.5 4.5v3c0 1 1.6 1.8 3.5 1.8s3.5-.8 3.5-1.8v-3"}),(0,r.jsx)("ellipse",{cx:"10",cy:"9.5",rx:"3.5",ry:"1.8"}),(0,r.jsx)("path",{d:"M6.5 9.5c.4.9 1.8 1.5 3.5 1.5s3.5-.8 3.5-1.8v-1.2"})]}),cpu:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"8",height:"8",rx:"1.5"}),(0,r.jsx)("rect",{x:"6.3",y:"6.3",width:"3.4",height:"3.4",rx:".5"}),(0,r.jsx)("path",{d:"M6 2v2M10 2v2M6 12v2M10 12v2M2 6h2M2 10h2M12 6h2M12 10h2"})]}),shield:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2 3 4v4c0 3 2.2 5 5 6 2.8-1 5-3 5-6V4z"}),(0,r.jsx)("path",{d:"M5.8 8 7.3 9.5 10.4 6.3"})]}),target:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"5.5"}),(0,r.jsx)("circle",{cx:"8",cy:"8",r:"2.4"})]}),selectParent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"2.5",width:"12",height:"11",rx:"1.5"}),(0,r.jsx)("path",{d:"M8 11V6.5M5.5 9 8 6.5l2.5 2.5"})]})};function n({name:e,size:s=16,className:a="",strokeWidth:l=1.4,style:i}){let c=t[e];return c?(0,r.jsx)("svg",{width:s,height:s,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:l,strokeLinecap:"round",strokeLinejoin:"round",className:a,style:i,children:"play"===e||"dot"===e?(0,r.jsx)("g",{fill:"currentColor",stroke:"none",children:c}):c}):null}},6295:(e,s,a)=>{"use strict";var r=a(2095);a.o(r,"usePathname")&&a.d(s,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(s,{useRouter:function(){return r.useRouter}})},7797:(e,s,a)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={callServer:function(){return n.callServer},createServerReference:function(){return i.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var t in r)Object.defineProperty(s,t,{enumerable:!0,get:r[t]});let n=a(4150),l=a(1410),i=a(7837)},8318:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>I});var r=a(4275),t=a(2899),n=a(6295),l=a(7797);let i=(0,l.createServerReference)("00ea2061cc0fb8571107408f0194c59b196f1db10a",l.callServer,void 0,l.findSourceMapURL,"operatorHasOrg"),c=(0,l.createServerReference)("409b309a2a69c86714b89236b49e2eadaa2af47bab",l.callServer,void 0,l.findSourceMapURL,"completeOnboarding"),o=new Set(["node_modules",".git",".next",".turbo","dist","build","out","coverage",".cache",".pnpm-store",".vercel","vendor",".parcel-cache",".svelte-kit",".nuxt",".astro",".angular",".venv","venv","env","__pycache__",".mypy_cache",".pytest_cache",".ruff_cache",".tox",".nox","htmlcov","site-packages",".eggs",".ipynb_checkpoints","target",".gradle","bin","obj","Pods",".cargo","Carthage",".cxx","DerivedData",".idea",".vscode",".svn",".hg",".vs",".fleet","logs","tmp","temp",".terraform","archives",".testdev"]),d=/\.(py|pyi|pyw|js|jsx|ts|tsx|mjs|cjs|mts|cts|json|jsonc|html?|css|scss|sass|less|styl|md|markdown|mdx|txt|rst|yml|yaml|toml|ini|cfg|conf|env|example|sample|sh|bash|zsh|bat|cmd|ps1|sql|graphql|gql|prisma|xml|svg|vue|svelte|astro|go|rs|java|kt|kts|scala|clj|rb|erb|php|blade|c|h|cpp|cc|hpp|cs|fs|swift|m|mm|dart|lua|r|ex|exs|erl|hrl|gradle|properties|lock|proto|tf|tfvars|dockerfile|dockerignore|gitignore|gitattributes|editorconfig|prettierrc|eslintrc|babelrc|npmrc|nvmrc|browserslistrc)$/i,h=new Set(["dockerfile","makefile","procfile","rakefile","gemfile","brewfile","vagrantfile","license","licence","readme","changelog","authors","contributors","notice","codeowners"]),g=(0,l.createServerReference)("40ad7527669bbf4b2c01f778d6385310247571dbf7",l.callServer,void 0,l.findSourceMapURL,"githubReposForToken"),x=(0,l.createServerReference)("004f70ded11b37dbfb911dee01dc8a4b59db0a90a2",l.callServer,void 0,l.findSourceMapURL,"checkSetupEnv"),u=(0,l.createServerReference)("40b981e66b95328edf1b8c530cefd6e998b523748b",l.callServer,void 0,l.findSourceMapURL,"checkAdapter"),m=(0,l.createServerReference)("404c15485751fec9cba286b61366f626f91573b9a1",l.callServer,void 0,l.findSourceMapURL,"testConnection"),p=(0,l.createServerReference)("60317a4ec0b6f0ace2e26449833e9d29b5ff8cc353",l.callServer,void 0,l.findSourceMapURL,"probeModel"),j=(0,l.createServerReference)("00291f566a1ad36d8da319dd1239db6c60d47ab068",l.callServer,void 0,l.findSourceMapURL,"detectProviders");var b=a(6512),v=a(1338);let f={TypeScript:{slug:"typescript"},JavaScript:{slug:"javascript"},Python:{slug:"python"},Go:{slug:"go",variant:"original-wordmark"},Rust:{slug:"rust"},Java:{slug:"java"},Kotlin:{slug:"kotlin"},"C#":{slug:"csharp"},Ruby:{slug:"ruby"},PHP:{slug:"php"},Elixir:{slug:"elixir"},Swift:{slug:"swift"},"C++":{slug:"cplusplus"},Scala:{slug:"scala"},Dart:{slug:"dart"},C:{slug:"c"},Clojure:{slug:"clojure"},Haskell:{slug:"haskell"},Lua:{slug:"lua"},R:{slug:"r"},"Objective-C":{slug:"objectivec"},Erlang:{slug:"erlang",variant:"plain"},"Node.js":{slug:"nodejs"},Bun:{slug:"bun"},Deno:{slug:"denojs"},"Python 3":{slug:"python"},JVM:{slug:"java"},".NET":{slug:"dotnetcore"},"BEAM (Erlang VM)":{slug:"erlang",variant:"plain"},React:{slug:"react"},Vue:{slug:"vuejs"},Svelte:{slug:"svelte"},Angular:{slug:"angular"},SolidJS:{slug:"solidjs"},"Alpine.js":{slug:"alpinejs"},Ember:{slug:"ember"},Backbone:{slug:"backbonejs"},"HTML/CSS":{slug:"html5"},"Vanilla JS":{slug:"javascript"},"Plain CSS":{slug:"css3"},"Next.js":{slug:"nextjs"},Nuxt:{slug:"nuxtjs"},Remix:{slug:"remix"},SvelteKit:{slug:"svelte"},Astro:{slug:"astro"},Gatsby:{slug:"gatsby"},"Vite (SPA)":{slug:"vitejs"},Hugo:{slug:"hugo"},Jekyll:{slug:"jekyll",variant:"original-wordmark"},NestJS:{slug:"nestjs"},Fastify:{slug:"fastify"},Express:{slug:"express"},Koa:{slug:"koa"},Django:{slug:"django",variant:"plain"},Flask:{slug:"flask"},FastAPI:{slug:"fastapi"},"Spring Boot":{slug:"spring"},Spring:{slug:"spring"},Laravel:{slug:"laravel"},"Ruby on Rails":{slug:"rails"},Gin:{slug:"go",variant:"original-wordmark"},Phoenix:{slug:"phoenix"},"ASP.NET Core":{slug:"dotnetcore"},Nginx:{slug:"nginx"},GraphQL:{slug:"graphql"},Symfony:{slug:"symfony"},CodeIgniter:{slug:"codeigniter"},PostgreSQL:{slug:"postgresql"},MySQL:{slug:"mysql"},MariaDB:{slug:"mariadb"},SQLite:{slug:"sqlite"},MongoDB:{slug:"mongodb"},Redis:{slug:"redis"},Cassandra:{slug:"cassandra"},DynamoDB:{slug:"dynamodb"},Supabase:{slug:"supabase"},Prisma:{slug:"prisma"},Sequelize:{slug:"sequelize"},SQLAlchemy:{slug:"sqlalchemy"},"Tailwind CSS":{slug:"tailwindcss"},"CSS Modules":{slug:"css3"},Sass:{slug:"sass"},MUI:{slug:"materialui"},Bootstrap:{slug:"bootstrap"},Bulma:{slug:"bulma"},Vuetify:{slug:"vuetify"},Docker:{slug:"docker"},Podman:{slug:"podman"},Vercel:{slug:"vercel"},Netlify:{slug:"netlify"},AWS:{slug:"amazonwebservices",variant:"original-wordmark"},GCP:{slug:"googlecloud"},Kubernetes:{slug:"kubernetes"},Azure:{slug:"azure"},Jenkins:{slug:"jenkins"},CircleCI:{slug:"circleci",variant:"plain"},Terraform:{slug:"terraform"},Ansible:{slug:"ansible"},Vagrant:{slug:"vagrant"},RabbitMQ:{slug:"rabbitmq"},Kafka:{slug:"apachekafka"},Auth0:{slug:"auth0",variant:"plain"},Keycloak:{slug:"keycloak"},"React Native":{slug:"react"},Flutter:{slug:"flutter"},Android:{slug:"android"},Ionic:{slug:"ionic"},Xamarin:{slug:"xamarin"},NativeScript:{slug:"nativescript"},TensorFlow:{slug:"tensorflow"},PyTorch:{slug:"pytorch"},"scikit-learn":{slug:"scikitlearn"},Pandas:{slug:"pandas"},NumPy:{slug:"numpy"},Jupyter:{slug:"jupyter"},Jest:{slug:"jest"},Vitest:{slug:"vitest"},Cypress:{slug:"cypressio"},Playwright:{slug:"playwright"},Selenium:{slug:"selenium"},Mocha:{slug:"mocha"},Jasmine:{slug:"jasmine"},Puppeteer:{slug:"puppeteer"},D3:{slug:"d3js"},Grafana:{slug:"grafana"},Firebase:{slug:"firebase"},Appwrite:{slug:"appwrite"},Heroku:{slug:"heroku"}};var y=a(9874),k=a(3221),M=a(9288),N=a(888),S=a(4952),w=a(9156),C=a(869);let z=["company","ceoModel","connection","stack","brief"];function L({name:e}){let s,a=(s=f[e])?`https://cdn.jsdelivr.net/gh/devicons/devicon/icons/${s.slug}/${s.slug}-${s.variant??"original"}.svg`:null,[n,l]=(0,t.useState)(!1);return!a||n?(0,r.jsx)("span",{className:"sc-mono",children:e.replace(/[^A-Za-z0-9]/g,"").slice(0,2)}):(0,r.jsx)("img",{className:"sc-ico",src:a,alt:"",loading:"lazy",onError:()=>l(!0)})}function F({stack:e,onPick:s,query:a,setQuery:t}){let n=(0,C.k)(),l=a.trim().toLowerCase(),i=l?v.z.flatMap(s=>s.opts.filter(e=>"None"!==e&&(e.toLowerCase().includes(l)||s.label.toLowerCase().includes(l))).map(a=>({cat:s,o:a,bad:(0,y.YL)(e,s.key,a)}))).slice(0,16):[];return(0,r.jsxs)("div",{className:"stack-search-wrap",children:[(0,r.jsxs)("div",{className:"stack-search",children:[(0,r.jsx)(N.I,{name:"search",size:15}),(0,r.jsx)("input",{placeholder:n("onboarding.stackSearchPh"),value:a,onChange:e=>t(e.target.value)}),a&&(0,r.jsx)("button",{className:"ss-clear",onClick:()=>t(""),children:(0,r.jsx)(N.I,{name:"close",size:13})})]}),l&&i.length>0&&(0,r.jsx)("div",{className:"stack-find scroll",children:i.map(({cat:a,o:t,bad:n})=>(0,r.jsxs)("button",{type:"button",className:"stack-find-row"+(n?" disabled":""),disabled:!!n,title:n||(0,v.f)(a.key,t),onClick:()=>{n||s(a.key,t)},children:[(0,r.jsx)(L,{name:t}),(0,r.jsx)("span",{className:"sf-name",children:t}),(0,r.jsx)("span",{className:"sf-cat",children:a.label}),(0,k.Hn)(e[a.key],t)&&(0,r.jsx)(N.I,{name:"check",size:13})]},a.key+t))}),l&&0===i.length&&(0,r.jsx)("div",{className:"stack-find sf-empty",children:n("onboarding.stackNoMatch",{query:a})})]})}function P({step:e}){let s=(0,C.k)();return(0,r.jsx)("div",{className:"onb-steps",children:z.map((a,t)=>(0,r.jsxs)("span",{style:{display:"contents"},children:[t>0&&(0,r.jsx)("span",{className:"onb-sep"}),(0,r.jsxs)("div",{className:"onb-stepdot"+(e===t?" on":e>t?" done":""),children:[(0,r.jsx)("span",{className:"num",children:e>t?"✓":t+1}),(0,r.jsx)("span",{children:s(`onboarding.step.${a}`)})]})]},a))})}function R({adapter:e,model:s,cached:a,onDone:n}){let l=(0,C.k)(),i=[{t:l("onboarding.test.prepare"),d:l("onboarding.test.prepareDesc")},{t:l("onboarding.test.adapter"),d:l("onboarding.test.adapterDesc",{adapter:e})},{t:l("onboarding.test.connection"),d:l("onboarding.test.connectionDesc")},{t:l("onboarding.test.model",{model:s}),d:l("onboarding.test.modelDesc")},{t:l("onboarding.test.ready"),d:l("onboarding.test.readyDesc")}],[c,o]=(0,t.useState)(a?i.length:0),[d,h]=(0,t.useState)(null),[g,j]=(0,t.useState)(null);return(0,t.useEffect)(()=>{if(a)return void o(i.length);let r=!0;return h(null),j(null),(async()=>{let a=[()=>x(),()=>u(e),()=>m(e),()=>p(e,s)];for(let e=0;e<a.length;e++){if(!r)return;o(e);let s=await a[e]();if(!r)return;if(!s.ok){h(e),j(s.error??l("onboarding.test.failed")),n(!1);return}o(e+1)}r&&(o(i.length),n(!0))})(),()=>{r=!1}},[a]),(0,r.jsx)("div",{className:"track",children:i.map((e,s)=>{let a=d===s,t=a?"":s<c?"done":s===c?"on":"todo";return(0,r.jsxs)("div",{className:"track-step "+t,children:[(0,r.jsx)("div",{className:"track-ico",children:a?(0,r.jsx)(N.I,{name:"close",size:15}):"done"===t?(0,r.jsx)(N.I,{name:"check",size:16}):"on"===t?(0,r.jsx)("span",{className:"spin",children:(0,r.jsx)(N.I,{name:"refresh",size:15})}):(0,r.jsx)(N.I,{name:"dot",size:8})}),(0,r.jsxs)("div",{className:"track-main",children:[(0,r.jsx)("div",{className:"track-t",children:e.t}),(0,r.jsx)("div",{className:"track-d",children:a?g:e.d})]})]},s)})})}function I(){let e=(0,n.useRouter)(),s=(0,C.k)(),[a,l]=(0,t.useState)(0),[x,u]=(0,t.useState)(!1);(0,t.useEffect)(()=>{i().then(u).catch(()=>{})},[]);let[m,p]=(0,t.useState)(""),[f,z]=(0,t.useState)(""),[I,H]=(0,t.useState)(""),[A,V]=(0,t.useState)([]),[T,D]=(0,t.useState)(""),[$,q]=(0,t.useState)(""),[_,E]=(0,t.useState)({}),[J,U]=(0,t.useState)(""),[B,W]=(0,t.useState)(""),[O,Q]=(0,t.useState)("You are Ada, the CEO of this company. Plan before building: analyse the brief, design the architecture and rituals, then organise the team."),[K,G]=(0,t.useState)(""),[Y,X]=(0,t.useState)(""),[Z,ee]=(0,t.useState)([]),[es,ea]=(0,t.useState)(!1),[er,et]=(0,t.useState)(""),[en,el]=(0,t.useState)("new"),[ei,ec]=(0,t.useState)(""),[eo,ed]=(0,t.useState)(""),[eh,eg]=(0,t.useState)([]),[ex,eu]=(0,t.useState)(""),[em,ep]=(0,t.useState)(!1),[ej,eb]=(0,t.useState)(""),[ev,ef]=(0,t.useState)([]),[ey,ek]=(0,t.useState)(""),[eM,eN]=(0,t.useState)(""),[eS,ew]=(0,t.useState)(!1),[eC,ez]=(0,t.useState)(0),[eL,eF]=(0,t.useState)(0),[eP,eR]=(0,t.useState)("");async function eI(){ep(!0),eb("");try{let e=await g(ei);if(!e.ok){eb(e.error??s("onboarding.src.listReposFailed")),eg([]);return}ed(e.login??""),eg(e.repos??[]),e.repos?.[0]&&eu(e.repos[0].full)}finally{ep(!1)}}async function eH(e){var a;let r;if(!e||!e.length)return;ew(!0),ez(0),eb(""),ef([]),eN("");let t=Array.from(e),n=(t[0].webkitRelativePath||t[0].name).split("/")[0]||"project",l=t.filter(e=>{var s;let a=(e.webkitRelativePath||e.name).split("/");for(let e=1;e<a.length-1;e++)if(s=a[e],o.has(s))return!1;let r=a[a.length-1];return!/^\.env(\.local|\.development|\.production)?$/i.test(r)&&".DS_Store"!==r&&!!(d.test(r)||h.has(r.toLowerCase()))&&!(e.size>524288)});if(!l.length){ew(!1),eb(s("onboarding.src.noFiles"));return}let i=[];for(let e=0;e<l.length;e++){let s=l[e],a=(s.webkitRelativePath||s.name).split("/").slice(1).join("/");if(a)try{i.push({path:a,content:await s.text()})}catch{}(e%5==0||e===l.length-1)&&ez(Math.round((e+1)/l.length*100))}ef(i),ek(n),eN((a=i.map(e=>e.path),(r=e=>a.some(s=>e.test(s)))(/(^|\/)manage\.py$/)?"Django (Python)":r(/(^|\/)next\.config\.(js|mjs|ts)$/)?"Next.js":r(/\.vue$/)?"Vue":r(/(^|\/)go\.mod$/)?"Go":r(/(^|\/)Cargo\.toml$/i)?"Rust":r(/(^|\/)pom\.xml$/)||r(/(^|\/)build\.gradle/)?"JVM":r(/(^|\/)composer\.json$/)?"PHP":r(/\.py$/)?"Python":r(/(^|\/)package\.json$/)?"Node":"")),ew(!1)}let eA="new"===en||"github"===en&&!!ex||"local"===en&&ev.length>0;async function eV(e){if(!e)return;let s=/\.(html?|css|jsx?|tsx?|md|txt|json|svg)$/i,a=[];for(let r of Array.from(e).slice(0,120)){let e=(r.webkitRelativePath||r.name).replace(/^\/+/,"");if(s.test(e)&&!(r.size>262144))try{a.push({path:e,content:await r.text()})}catch{}}ee(a)}let[eT,eD]=(0,t.useState)(!1),[e$,eq]=(0,t.useState)(""),[e_,eE]=(0,t.useState)(""),[eJ,eU]=(0,t.useState)(""),[eB,eW]=(0,t.useTransition)();(0,t.useEffect)(()=>{j().then(({detected:e})=>{V(e),e[0]&&(D(e[0].id),q(e[0].models[0]??""))})},[]),(0,t.useEffect)(()=>{if(!eB)return void eF(0);eF(8);let e=setInterval(()=>eF(e=>e<92?e+Math.max(1,Math.round((92-e)/12)):e),400);return()=>clearInterval(e)},[eB]);let eO=A.find(e=>e.id===T),eQ=eO?.adapter??"",eK=eQ+":"+$,eG=es&&er===eK,eY=(0,y.hP)(_);function eX(e,s){let a=(0,y.T1)({..._,[e]:(0,k.P_)(_[e],s)});E(a.stack),W(a.removed.map(e=>`${e.opt} was unselected automatically — ${e.reason}.`).join(" "))}return(0,r.jsxs)("div",{className:"onb",children:[(0,r.jsxs)("div",{className:"onb-top",children:[(0,r.jsxs)("div",{className:"onb-brand",children:[(0,r.jsx)(M.J,{size:34,rx:9}),(0,r.jsx)("div",{className:"bw",children:"Constella"})]}),(0,r.jsx)(P,{step:a}),x&&(0,r.jsx)("button",{className:"onb-close",title:s("onboarding.closeSetup"),"aria-label":s("onboarding.closeSetup"),onClick:()=>e.push("/"),children:(0,r.jsx)(N.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"onb-body",children:(0,r.jsxs)("div",{className:"onb-card"+(3===a?" onb-card-wide":""),children:[0===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.company.h")}),(0,r.jsx)("div",{className:"onb-sub",style:{marginBottom:14},children:s("onboarding.company.sub")}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.nameLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("input",{className:"form-input",required:!0,autoFocus:!0,value:m,onChange:e=>p(e.target.value),placeholder:s("onboarding.company.namePh")})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.missionLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta",required:!0,value:f,onChange:e=>z(e.target.value),placeholder:s("onboarding.company.missionPh")})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.objectiveLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta",required:!0,value:I,onChange:e=>H(e.target.value),placeholder:s("onboarding.company.objectivePh")})]}),(0,r.jsx)("div",{className:"onb-foot",children:(0,r.jsxs)("button",{className:"btn-accent",disabled:!m.trim()||!f.trim()||!I.trim(),onClick:()=>l(1),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})})]}),1===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.brain.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.brain.sub")}),(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:s("onboarding.brain.detected")}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsxs)("div",{className:"prov-cards",children:[A.map(e=>(0,r.jsxs)("div",{className:"prov-card "+("local"===e.kind?"local-card":"cloud-card")+(T===e.id?" on":""),onClick:()=>{D(e.id),q(e.models[0]??"")},children:[(0,r.jsx)("span",{className:"pc-badge",children:s(`onboarding.kind.${e.kind}`)}),(0,r.jsx)(w.W,{id:e.id,size:42}),(0,r.jsx)("div",{className:"pc-name",children:e.name}),(0,r.jsx)("div",{className:"pc-sub",children:e.adapter})]},e.id)),0===A.length&&(0,r.jsx)("div",{className:"muted",style:{fontSize:12.5,padding:12},children:s("onboarding.brain.detecting")})]}),(0,r.jsxs)("button",{className:"btn-ghost",style:{marginTop:10},onClick:()=>eD(e=>!e),children:[(0,r.jsx)(N.I,{name:"add",size:13})," ",s("onboarding.brain.registerToggle")]}),eT&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10},children:[(0,r.jsx)("div",{className:"detail-label",children:s("onboarding.brain.registerTitle")}),(0,r.jsx)(S.m,{value:e$,placeholder:s("onboarding.brain.chooseProvider"),options:b.WQ.filter(e=>"unsupported"!==e.status).map(e=>({value:e.id,label:e.displayName,glyphId:e.id})),onChange:eq,glyph:!0}),(0,r.jsxs)("div",{className:"set-grid",style:{marginTop:8},children:[(0,r.jsx)("input",{className:"form-input mono",placeholder:s("onboarding.brain.modelIdPh"),value:eJ,onChange:e=>eU(e.target.value)}),(0,r.jsx)("input",{className:"form-input mono",type:"password",placeholder:s("onboarding.brain.apiKeyPh"),value:e_,onChange:e=>eE(e.target.value)})]}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:10},children:[(0,r.jsx)("button",{className:"btn-ghost",onClick:()=>eD(!1),children:s("common.cancel")}),(0,r.jsxs)("button",{className:"btn-accent",disabled:!e$,onClick:function(){let e=b.WQ.find(e=>e.id===e$);if(!e)return;let s={id:e.id,name:e.displayName,adapter:e.defaultAdapter,kind:"cli"===e.category?"cli":"local_runtime"===e.category?"local":"cloud",models:eJ.trim()?[eJ.trim()]:[]};V(e=>e.find(e=>e.id===s.id)?e:[...e,s]),D(s.id),q(eJ.trim()||""),eD(!1)},children:[(0,r.jsx)(N.I,{name:"check",size:13})," ",s("onboarding.brain.addSelect")]})]})]}),eO&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:s("onboarding.brain.modelFor",{name:eO.name})}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsx)(S.m,{mono:!0,value:$,options:eO.models.map(e=>({value:e,label:e})),onChange:q})]}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(0),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",disabled:!eO||!$,onClick:()=>l(2),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})]})]}),2===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.setup.h")}),(0,r.jsxs)("div",{className:"onb-sub",children:[s("onboarding.setup.sub")," ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:eQ})," \xb7 ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:$}),"."]}),(0,r.jsx)(R,{adapter:eQ,model:$,cached:eG,onDone:e=>{ea(e),et(eK)}}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(1),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsx)("button",{className:"btn-accent",disabled:!eG,onClick:()=>l(3),children:eG?(0,r.jsxs)(r.Fragment,{children:[s("onboarding.setup.continue")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]}):s("onboarding.setup.testing")})]})]}),3===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.stack.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.stack.sub")}),eY&&(0,r.jsxs)("div",{className:"modal-hint",style:{color:"var(--sx-number)"},children:[(0,r.jsx)(N.I,{name:"pulse",size:12})," ",eY]}),B&&(0,r.jsxs)("div",{className:"modal-hint",style:{color:"var(--sx-keyword)"},children:[(0,r.jsx)(N.I,{name:"warn",size:12})," ",B]}),(0,r.jsx)(F,{stack:_,onPick:eX,query:J,setQuery:U}),v.z.map(e=>(0,r.jsxs)("div",{className:"stack-cat",children:[(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:e.label}),(0,r.jsx)("span",{className:"osr-pick",children:_[e.key]||"—"}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsx)("div",{className:"stack-cards",children:e.opts.map(s=>{let a=(0,y.YL)(_,e.key,s),t=(0,k.Hn)(_[e.key],s);return(0,r.jsxs)("button",{className:"stack-card"+(t?" on":"")+(a?" disabled":""),disabled:!!a&&!t,title:a||(0,v.f)(e.key,s),onClick:()=>!a&&eX(e.key,s),children:[(0,r.jsx)(L,{name:s}),(0,r.jsx)("span",{className:"sc-name",children:s}),t&&(0,r.jsx)("span",{className:"sc-check",children:(0,r.jsx)(N.I,{name:"check",size:12})})]},s)})})]},e.key)),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(2),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",onClick:()=>l(4),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})]})]}),4===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.brief.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.brief.sub")}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsx)("label",{className:"form-label",children:s("onboarding.brief.sourceLabel")}),(0,r.jsx)("div",{className:"src-cards",children:["new","github","local"].map(e=>(0,r.jsxs)("button",{type:"button",className:"src-card"+(en===e?" on":""),onClick:()=>{el(e),eb("")},children:[(0,r.jsx)(N.I,{name:"new"===e?"add":"github"===e?"git":"files",size:18}),(0,r.jsx)("div",{className:"src-t",children:s(`onboarding.src.${e}.t`)}),(0,r.jsx)("div",{className:"src-d",children:s(`onboarding.src.${e}.d`)})]},e))}),"github"===en&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10,display:"grid",gap:8},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,r.jsx)("input",{className:"form-input mono",type:"password",placeholder:s("onboarding.src.tokenPh"),value:ei,onChange:e=>ec(e.target.value)}),(0,r.jsx)("button",{className:"btn-ghost",disabled:em||ei.trim().length<7,onClick:eI,children:em?"…":s("onboarding.src.listRepos")})]}),eh.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"form-hint",children:[eo&&(0,r.jsxs)(r.Fragment,{children:[s("onboarding.src.signedInAs")," ",(0,r.jsx)("b",{children:eo})," \xb7 "]}),s("onboarding.src.pickRepo")]}),(0,r.jsx)(S.m,{value:ex,options:eh.map(e=>({value:e.full,label:e.full,tag:e.private?s("onboarding.src.private"):s("onboarding.src.public")})),onChange:eu})]})]}),"local"===en&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10,display:"grid",gap:8},children:[(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:eS?"default":"pointer",justifyContent:"center"},children:[(0,r.jsx)(N.I,{name:"grid",size:14})," ",eS?s("onboarding.src.reading"):ev.length>0?s("onboarding.src.chooseAnother"):s("onboarding.src.chooseFolder"),(0,r.jsx)("input",{type:"file",hidden:!0,webkitdirectory:"",directory:"",multiple:!0,disabled:eS,onChange:e=>eH(e.target.files)})]}),eS&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{height:6,borderRadius:999,background:"var(--bg-active)",overflow:"hidden"},children:(0,r.jsx)("div",{style:{height:"100%",width:eC+"%",background:"var(--accent)",transition:"width .2s"}})}),(0,r.jsx)("div",{className:"form-hint",children:s("onboarding.src.readingPct",{pct:eC})})]}),!eS&&ev.length>0&&(0,r.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-string)"},children:[(0,r.jsx)(N.I,{name:"check",size:12})," ",s(1===ev.length?"onboarding.src.imported.one":"onboarding.src.imported.other",{n:ev.length,name:ey}),eM&&(0,r.jsxs)(r.Fragment,{children:[" \xb7 ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:eM})]})]})]}),ej&&(0,r.jsx)("div",{style:{fontSize:11.5,color:"#e8688f",marginTop:6},children:ej}),(0,r.jsxs)("div",{className:"form-hint",children:[(0,r.jsx)(N.I,{name:"bot",size:12})," ",s("onboarding.src.analyseHint")]})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.systemPrompt")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta mono",required:!0,value:O,onChange:e=>Q(e.target.value)})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.projectBrief")," ",(0,r.jsxs)("span",{style:{color:"var(--text-faint)",fontWeight:400},children:["\xb7 ",s("onboarding.brief.optional")]})]}),(0,r.jsx)("textarea",{className:"persona-ta mono",style:{minHeight:110},placeholder:s("onboarding.brief.briefPh"),value:Y,onChange:e=>{X(e.target.value),!K&&e.target.value&&G("project-brief.md")}})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.attachMock")," ",(0,r.jsxs)("span",{style:{color:"var(--text-faint)",fontWeight:400},children:["\xb7 ",s("onboarding.brief.optional")," \xb7 HTML, CSS, JS, MD"]})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:"pointer"},children:[(0,r.jsx)(N.I,{name:"doc",size:13})," ",s("onboarding.brief.files"),(0,r.jsx)("input",{type:"file",multiple:!0,hidden:!0,onChange:e=>eV(e.target.files)})]}),(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:"pointer"},children:[(0,r.jsx)(N.I,{name:"grid",size:13})," ",s("onboarding.brief.folder"),(0,r.jsx)("input",{type:"file",hidden:!0,webkitdirectory:"",directory:"",multiple:!0,onChange:e=>eV(e.target.files)})]}),Z.length>0&&(0,r.jsxs)("span",{className:"chip-sm",style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,r.jsx)(N.I,{name:"check",size:12})," ",s(1===Z.length?"onboarding.brief.filesAttached.one":"onboarding.brief.filesAttached.other",{n:Z.length}),(0,r.jsx)("button",{className:"link-btn",style:{marginLeft:4},onClick:()=>ee([]),children:(0,r.jsx)(N.I,{name:"close",size:11})})]})]}),(0,r.jsxs)("div",{className:"form-hint",children:[(0,r.jsx)(N.I,{name:"bot",size:12})," ",s("onboarding.brief.mockHintPre")," ",(0,r.jsx)("span",{className:"mono",children:"mock/"})," ",s("onboarding.brief.mockHintPost")]})]}),eB&&(0,r.jsxs)("div",{style:{marginTop:12},children:[(0,r.jsx)("div",{style:{height:6,borderRadius:999,background:"var(--bg-active)",overflow:"hidden"},children:(0,r.jsx)("div",{style:{height:"100%",width:eL+"%",background:"var(--accent)",transition:"width .3s"}})}),(0,r.jsxs)("div",{className:"form-hint",children:[s("onboarding.src.settingUp")," ",eL,"%"]})]}),eP&&(0,r.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-keyword)",marginTop:10},children:[(0,r.jsx)(N.I,{name:"close",size:12})," ",eP]}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",disabled:eB,onClick:()=>l(3),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",disabled:eB||!O.trim()||!eA,onClick:function(){let e="github"===en?{type:"github",pat:ei,repoFull:ex,branch:eh.find(e=>e.full===ex)?.branch,login:eo||void 0}:"local"===en?{type:"local",rootName:ey,files:ev}:{type:"new"};eR(""),eW(async()=>{try{let s=await c({company:m,mission:f,objective:I,stack:_,provider:eQ,model:$,systemPrompt:O,briefText:Y,briefName:K,mockFiles:Z,source:e,providerCatalogId:T||void 0,providerKey:e$&&e$===T&&e_?e_:void 0});if(s&&!s.ok)return void eR(s.error||"Setup didn't complete — please try again.");eF(100),window.location.assign("/planner")}catch{eR("Setup didn't complete — please try again. If it keeps failing, reload the page.")}})},children:[(0,r.jsx)(N.I,{name:"bot",size:14})," ",eB?s("onboarding.brief.settingUp"):s("onboarding.brief.handOff")]})]})]})]})})]})}},9288:(e,s,a)=>{"use strict";a.d(s,{J:()=>t});var r=a(4275);function t({size:e=34,rx:s=9}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 100 100",style:{display:"block",flex:`0 0 ${e}px`},"aria-label":"Constella",children:[(0,r.jsx)("rect",{x:"1",y:"1",width:"98",height:"98",rx:s,fill:"var(--cs-bg)",stroke:"var(--cs-border)",strokeWidth:"1.5"}),(0,r.jsx)("path",{d:"M66.06 27.06 L42.75 22.95 L24.62 38.17 L24.62 61.83 L42.75 77.05 L66.06 72.94",fill:"none",stroke:"var(--cs-line)",strokeWidth:"2.1",strokeLinecap:"round",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M48 50 L42.75 22.95 M48 50 L24.62 50 M48 50 L42.75 77.05",fill:"none",stroke:"var(--cs-line)",strokeWidth:"1.2",strokeLinecap:"round",opacity:"0.55"}),[[66.06,27.06],[42.75,22.95],[24.62,38.17],[24.62,61.83],[42.75,77.05],[66.06,72.94]].map((e,s)=>(0,r.jsx)("circle",{cx:e[0],cy:e[1],r:"3.1",fill:"var(--cs-node)"},s)),(0,r.jsx)("circle",{cx:"48",cy:"50",r:"8.5",fill:"var(--cs-glow)",opacity:"0.4"}),(0,r.jsx)("circle",{cx:"48",cy:"50",r:"4.3",fill:"var(--cs-core)"})]})}},9956:(e,s,a)=>{Promise.resolve().then(a.bind(a,8318))}},e=>{e.O(0,[171,9279,9874,2235,7066,7358],()=>e(e.s=9956)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5134],{869:(e,s,a)=>{"use strict";a.d(s,{LangProvider:()=>i,k:()=>c});var r=a(4275),t=a(2899),n=a(171);let l=(0,t.createContext)("en");function i({lang:e,children:s}){return(0,r.jsx)(l.Provider,{value:e,children:s})}function c(){let e=(0,t.useContext)(l);return(s,a)=>(0,n.t)(e,s,a)}},888:(e,s,a)=>{"use strict";a.d(s,{I:()=>n});var r=a(4275);let t={files:(0,r.jsx)("path",{d:"M3 3.5h5l1.5 2H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z"}),search:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"7",cy:"7",r:"4.2"}),(0,r.jsx)("path",{d:"M10.2 10.2 14 14"})]}),git:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"4",cy:"4",r:"1.8"}),(0,r.jsx)("circle",{cx:"4",cy:"12",r:"1.8"}),(0,r.jsx)("circle",{cx:"12",cy:"9.5",r:"1.8"}),(0,r.jsx)("path",{d:"M4 5.8v4.4M5.8 4H9a2 2 0 0 1 2 2v1.6"})]}),debug:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8.5",r:"3.5"}),(0,r.jsx)("path",{d:"M8 5V3M4.5 8.5H2m12 0h-2.5M4.8 11.8 3.4 13M11.2 11.8l1.4 1.2M5.2 5 3.8 3.6M10.8 5l1.4-1.4"})]}),ext:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("path",{d:"M9 11.2h4.5M11.2 9v4.5"})]}),settings:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"2.2"}),(0,r.jsx)("path",{d:"M8 1.5v2M8 12.5v2M14.5 8h-2M3.5 8h-2M12.6 3.4l-1.4 1.4M4.8 11.2l-1.4 1.4M12.6 12.6l-1.4-1.4M4.8 4.8 3.4 3.4"})]}),account:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"5.5",r:"2.8"}),(0,r.jsx)("path",{d:"M2.8 14c0-2.8 2.3-4.5 5.2-4.5s5.2 1.7 5.2 4.5"})]}),chevronRight:(0,r.jsx)("path",{d:"M6 4l4 4-4 4"}),chevronDown:(0,r.jsx)("path",{d:"M4 6l4 4 4-4"}),chevronUp:(0,r.jsx)("path",{d:"M4 10l4-4 4 4"}),close:(0,r.jsx)("path",{d:"M4 4l8 8M12 4l-8 8"}),add:(0,r.jsx)("path",{d:"M8 3v10M3 8h10"}),newFile:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,r.jsx)("path",{d:"M9 2v4h4M8 8v4M6 10h4"})]}),newFolder:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M2 5.5a1 1 0 0 1 1-1h3l1.2 1.5H13a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5.5z"}),(0,r.jsx)("path",{d:"M8 8v3M6.5 9.5h3"})]}),refresh:(0,r.jsx)("path",{d:"M13 8a5 5 0 1 1-1.5-3.5M13 2.5V5h-2.5"}),collapse:(0,r.jsx)("path",{d:"M3 5h6M3 8h6M3 11h6M12 6l-1.5 1.5L12 9"}),more:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"3.5",cy:"8",r:"1"}),(0,r.jsx)("circle",{cx:"8",cy:"8",r:"1"}),(0,r.jsx)("circle",{cx:"12.5",cy:"8",r:"1"})]}),split:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1"}),(0,r.jsx)("path",{d:"M8 3v10"})]}),terminal:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M4.5 6.5 6.5 8l-2 1.5M8 10h3.5"})]}),panelBottom:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M2 10h12"})]}),sidebarIcon:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M6 3v10"})]}),bell:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2a3.5 3.5 0 0 0-3.5 3.5c0 3-1.3 4-1.3 4h9.6s-1.3-1-1.3-4A3.5 3.5 0 0 0 8 2z"}),(0,r.jsx)("path",{d:"M6.7 12a1.4 1.4 0 0 0 2.6 0"})]}),check:(0,r.jsx)("path",{d:"M3 8.5 6.5 12 13 4"}),error:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,r.jsx)("path",{d:"M8 5v4M8 11h.01"})]}),warn:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2.5 14.5 13.5h-13z"}),(0,r.jsx)("path",{d:"M8 7v3M8 12h.01"})]}),branch:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"4",cy:"4",r:"1.6"}),(0,r.jsx)("circle",{cx:"4",cy:"12",r:"1.6"}),(0,r.jsx)("circle",{cx:"12",cy:"9",r:"1.6"}),(0,r.jsx)("path",{d:"M4 5.6v4.8M5.6 4H9a1.8 1.8 0 0 1 1.8 1.8v1.6"})]}),sync:(0,r.jsx)("path",{d:"M3 6a5 5 0 0 1 8.5-2M13 10a5 5 0 0 1-8.5 2M11.5 2.5V4h-1.5M4.5 13.5V12h1.5"}),command:(0,r.jsx)("path",{d:"M5.5 3.5A1.5 1.5 0 1 1 4 5h8a1.5 1.5 0 1 1-1.5 1.5v3A1.5 1.5 0 1 1 12 11H4a1.5 1.5 0 1 1 1.5-1.5v-3z"}),goto:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M3 8h8M7.5 4.5 11 8l-3.5 3.5"}),(0,r.jsx)("path",{d:"M13 3v10"})]}),sun:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,r.jsx)("path",{d:"M8 1.5v1.5M8 13v1.5M14.5 8H13M3 8H1.5M12.6 3.4l-1 1M4.4 11.6l-1 1M12.6 12.6l-1-1M4.4 4.4l-1-1"})]}),moon:(0,r.jsx)("path",{d:"M13 9.2A5.5 5.5 0 0 1 6.8 3 5.5 5.5 0 1 0 13 9.2z"}),play:(0,r.jsx)("path",{d:"M5 3.5v9l7-4.5z"}),trash:(0,r.jsx)("path",{d:"M3.5 4.5h9M6 4.5V3h4v1.5M5 4.5l.5 8.5h5l.5-8.5"}),dot:(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),fileTs:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V6L9 2z"}),(0,r.jsx)("path",{d:"M9 2v4h4"})]}),arrowUp:(0,r.jsx)("path",{d:"M8 13V3M4 7l4-4 4 4"}),arrowDown:(0,r.jsx)("path",{d:"M8 3v10M4 9l4 4 4-4"}),agents:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"5.5",cy:"6",r:"2.2"}),(0,r.jsx)("circle",{cx:"11",cy:"6.5",r:"1.8"}),(0,r.jsx)("path",{d:"M2 13c0-2 1.6-3.2 3.5-3.2S9 11 9 13M9.5 12.5c.2-1.6 1.3-2.5 2.8-2.5 1.3 0 2.4.8 2.4 2.3"})]}),bot:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"3",y:"5.5",width:"10",height:"7",rx:"2"}),(0,r.jsx)("path",{d:"M8 3v2.5M5.8 9h.01M10.2 9h.01M6 12h4"}),(0,r.jsx)("circle",{cx:"8",cy:"3",r:"1"})]}),send:(0,r.jsx)("path",{d:"M14 2 7 9M14 2l-4.5 12-2.5-5L2 6.5z"}),at:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,r.jsx)("path",{d:"M11 8v1.2a1.8 1.8 0 0 0 3.5.6A6.5 6.5 0 1 0 11 13.2"})]}),chevronLeft:(0,r.jsx)("path",{d:"M10 4 6 8l4 4"}),dockRight:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M10 3v10"}),(0,r.jsx)("rect",{x:"10.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),dockLeft:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M6 3v10"}),(0,r.jsx)("rect",{x:"2.5",y:"3.5",width:"3",height:"9",rx:"1",fill:"currentColor",stroke:"none",opacity:"0.25"})]}),chat:(0,r.jsx)("path",{d:"M3 4.5h10a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H7l-3 2.5V11.5H3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"}),grid:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"2.5",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"2.5",y:"9",width:"4.5",height:"4.5",rx:"1"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"4.5",height:"4.5",rx:"1"})]}),inbox:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M2 9h3l1 2h4l1-2h3"}),(0,r.jsx)("path",{d:"M2.5 9 4 3.5h8L13.5 9v3.5a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1z"})]}),calendar:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2.5",y:"3.5",width:"11",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M2.5 6.5h11M5.5 2v3M10.5 2v3"})]}),repeat:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M3 6a4 4 0 0 1 7-2.5L12 5M13 10a4 4 0 0 1-7 2.5L4 11"}),(0,r.jsx)("path",{d:"M12 2v3H9M4 14v-3h3"})]}),doc:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M9 2H4.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V5.5L9 2z"}),(0,r.jsx)("path",{d:"M9 2v3.5h3.5M6 8.5h4M6 11h4"})]}),skill:(0,r.jsx)("path",{d:"M8 2.5l1.4 3.1 3.4.4-2.5 2.3.7 3.3L8 9.9 5 11.6l.7-3.3L3.2 6l3.4-.4z"}),pulse:(0,r.jsx)("path",{d:"M2 8h3l1.5-4 2.5 8 1.5-4H14"}),coins:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("ellipse",{cx:"6",cy:"4.5",rx:"3.5",ry:"1.8"}),(0,r.jsx)("path",{d:"M2.5 4.5v3c0 1 1.6 1.8 3.5 1.8s3.5-.8 3.5-1.8v-3"}),(0,r.jsx)("ellipse",{cx:"10",cy:"9.5",rx:"3.5",ry:"1.8"}),(0,r.jsx)("path",{d:"M6.5 9.5c.4.9 1.8 1.5 3.5 1.5s3.5-.8 3.5-1.8v-1.2"})]}),cpu:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"8",height:"8",rx:"1.5"}),(0,r.jsx)("rect",{x:"6.3",y:"6.3",width:"3.4",height:"3.4",rx:".5"}),(0,r.jsx)("path",{d:"M6 2v2M10 2v2M6 12v2M10 12v2M2 6h2M2 10h2M12 6h2M12 10h2"})]}),shield:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M8 2 3 4v4c0 3 2.2 5 5 6 2.8-1 5-3 5-6V4z"}),(0,r.jsx)("path",{d:"M5.8 8 7.3 9.5 10.4 6.3"})]}),target:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"5.5"}),(0,r.jsx)("circle",{cx:"8",cy:"8",r:"2.4"})]}),selectParent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{x:"2",y:"2.5",width:"12",height:"11",rx:"1.5"}),(0,r.jsx)("path",{d:"M8 11V6.5M5.5 9 8 6.5l2.5 2.5"})]})};function n({name:e,size:s=16,className:a="",strokeWidth:l=1.4,style:i}){let c=t[e];return c?(0,r.jsx)("svg",{width:s,height:s,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:l,strokeLinecap:"round",strokeLinejoin:"round",className:a,style:i,children:"play"===e||"dot"===e?(0,r.jsx)("g",{fill:"currentColor",stroke:"none",children:c}):c}):null}},6295:(e,s,a)=>{"use strict";var r=a(2095);a.o(r,"usePathname")&&a.d(s,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(s,{useRouter:function(){return r.useRouter}})},7797:(e,s,a)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={callServer:function(){return n.callServer},createServerReference:function(){return i.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var t in r)Object.defineProperty(s,t,{enumerable:!0,get:r[t]});let n=a(4150),l=a(1410),i=a(7837)},7982:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>I});var r=a(4275),t=a(2899),n=a(6295),l=a(7797);let i=(0,l.createServerReference)("00b0da822356f53ecc65261cab6db2781f44e9c62d",l.callServer,void 0,l.findSourceMapURL,"operatorHasOrg"),c=(0,l.createServerReference)("405750588b90e20782b229b243fc86adda3a2b7062",l.callServer,void 0,l.findSourceMapURL,"completeOnboarding"),o=new Set(["node_modules",".git",".next",".turbo","dist","build","out","coverage",".cache",".pnpm-store",".vercel","vendor",".parcel-cache",".svelte-kit",".nuxt",".astro",".angular",".venv","venv","env","__pycache__",".mypy_cache",".pytest_cache",".ruff_cache",".tox",".nox","htmlcov","site-packages",".eggs",".ipynb_checkpoints","target",".gradle","bin","obj","Pods",".cargo","Carthage",".cxx","DerivedData",".idea",".vscode",".svn",".hg",".vs",".fleet","logs","tmp","temp",".terraform","archives",".testdev"]),d=/\.(py|pyi|pyw|js|jsx|ts|tsx|mjs|cjs|mts|cts|json|jsonc|html?|css|scss|sass|less|styl|md|markdown|mdx|txt|rst|yml|yaml|toml|ini|cfg|conf|env|example|sample|sh|bash|zsh|bat|cmd|ps1|sql|graphql|gql|prisma|xml|svg|vue|svelte|astro|go|rs|java|kt|kts|scala|clj|rb|erb|php|blade|c|h|cpp|cc|hpp|cs|fs|swift|m|mm|dart|lua|r|ex|exs|erl|hrl|gradle|properties|lock|proto|tf|tfvars|dockerfile|dockerignore|gitignore|gitattributes|editorconfig|prettierrc|eslintrc|babelrc|npmrc|nvmrc|browserslistrc)$/i,h=new Set(["dockerfile","makefile","procfile","rakefile","gemfile","brewfile","vagrantfile","license","licence","readme","changelog","authors","contributors","notice","codeowners"]),g=(0,l.createServerReference)("4026a092db9003ef1c8ff46de87d5ca098e20c51ae",l.callServer,void 0,l.findSourceMapURL,"githubReposForToken"),x=(0,l.createServerReference)("00dda534815497729e0cd73d1d87ece53b30763699",l.callServer,void 0,l.findSourceMapURL,"checkSetupEnv"),u=(0,l.createServerReference)("40553f91aea9ed81fb2b3b0b1d988e74feabe05340",l.callServer,void 0,l.findSourceMapURL,"checkAdapter"),m=(0,l.createServerReference)("405571b614254976f76da924e4389aa6b6f33c4fd3",l.callServer,void 0,l.findSourceMapURL,"testConnection"),p=(0,l.createServerReference)("60b903d12f33fda5cd052cf7cc1edcee2486364217",l.callServer,void 0,l.findSourceMapURL,"probeModel"),j=(0,l.createServerReference)("002d60c40af3ddae17d8be9316711ec86dd7a20c6e",l.callServer,void 0,l.findSourceMapURL,"detectProviders");var b=a(6512),v=a(1338);let f={TypeScript:{slug:"typescript"},JavaScript:{slug:"javascript"},Python:{slug:"python"},Go:{slug:"go",variant:"original-wordmark"},Rust:{slug:"rust"},Java:{slug:"java"},Kotlin:{slug:"kotlin"},"C#":{slug:"csharp"},Ruby:{slug:"ruby"},PHP:{slug:"php"},Elixir:{slug:"elixir"},Swift:{slug:"swift"},"C++":{slug:"cplusplus"},Scala:{slug:"scala"},Dart:{slug:"dart"},C:{slug:"c"},Clojure:{slug:"clojure"},Haskell:{slug:"haskell"},Lua:{slug:"lua"},R:{slug:"r"},"Objective-C":{slug:"objectivec"},Erlang:{slug:"erlang",variant:"plain"},"Node.js":{slug:"nodejs"},Bun:{slug:"bun"},Deno:{slug:"denojs"},"Python 3":{slug:"python"},JVM:{slug:"java"},".NET":{slug:"dotnetcore"},"BEAM (Erlang VM)":{slug:"erlang",variant:"plain"},React:{slug:"react"},Vue:{slug:"vuejs"},Svelte:{slug:"svelte"},Angular:{slug:"angular"},SolidJS:{slug:"solidjs"},"Alpine.js":{slug:"alpinejs"},Ember:{slug:"ember"},Backbone:{slug:"backbonejs"},"HTML/CSS":{slug:"html5"},"Vanilla JS":{slug:"javascript"},"Plain CSS":{slug:"css3"},"Next.js":{slug:"nextjs"},Nuxt:{slug:"nuxtjs"},Remix:{slug:"remix"},SvelteKit:{slug:"svelte"},Astro:{slug:"astro"},Gatsby:{slug:"gatsby"},"Vite (SPA)":{slug:"vitejs"},Hugo:{slug:"hugo"},Jekyll:{slug:"jekyll",variant:"original-wordmark"},NestJS:{slug:"nestjs"},Fastify:{slug:"fastify"},Express:{slug:"express"},Koa:{slug:"koa"},Django:{slug:"django",variant:"plain"},Flask:{slug:"flask"},FastAPI:{slug:"fastapi"},"Spring Boot":{slug:"spring"},Spring:{slug:"spring"},Laravel:{slug:"laravel"},"Ruby on Rails":{slug:"rails"},Gin:{slug:"go",variant:"original-wordmark"},Phoenix:{slug:"phoenix"},"ASP.NET Core":{slug:"dotnetcore"},Nginx:{slug:"nginx"},GraphQL:{slug:"graphql"},Symfony:{slug:"symfony"},CodeIgniter:{slug:"codeigniter"},PostgreSQL:{slug:"postgresql"},MySQL:{slug:"mysql"},MariaDB:{slug:"mariadb"},SQLite:{slug:"sqlite"},MongoDB:{slug:"mongodb"},Redis:{slug:"redis"},Cassandra:{slug:"cassandra"},DynamoDB:{slug:"dynamodb"},Supabase:{slug:"supabase"},Prisma:{slug:"prisma"},Sequelize:{slug:"sequelize"},SQLAlchemy:{slug:"sqlalchemy"},"Tailwind CSS":{slug:"tailwindcss"},"CSS Modules":{slug:"css3"},Sass:{slug:"sass"},MUI:{slug:"materialui"},Bootstrap:{slug:"bootstrap"},Bulma:{slug:"bulma"},Vuetify:{slug:"vuetify"},Docker:{slug:"docker"},Podman:{slug:"podman"},Vercel:{slug:"vercel"},Netlify:{slug:"netlify"},AWS:{slug:"amazonwebservices",variant:"original-wordmark"},GCP:{slug:"googlecloud"},Kubernetes:{slug:"kubernetes"},Azure:{slug:"azure"},Jenkins:{slug:"jenkins"},CircleCI:{slug:"circleci",variant:"plain"},Terraform:{slug:"terraform"},Ansible:{slug:"ansible"},Vagrant:{slug:"vagrant"},RabbitMQ:{slug:"rabbitmq"},Kafka:{slug:"apachekafka"},Auth0:{slug:"auth0",variant:"plain"},Keycloak:{slug:"keycloak"},"React Native":{slug:"react"},Flutter:{slug:"flutter"},Android:{slug:"android"},Ionic:{slug:"ionic"},Xamarin:{slug:"xamarin"},NativeScript:{slug:"nativescript"},TensorFlow:{slug:"tensorflow"},PyTorch:{slug:"pytorch"},"scikit-learn":{slug:"scikitlearn"},Pandas:{slug:"pandas"},NumPy:{slug:"numpy"},Jupyter:{slug:"jupyter"},Jest:{slug:"jest"},Vitest:{slug:"vitest"},Cypress:{slug:"cypressio"},Playwright:{slug:"playwright"},Selenium:{slug:"selenium"},Mocha:{slug:"mocha"},Jasmine:{slug:"jasmine"},Puppeteer:{slug:"puppeteer"},D3:{slug:"d3js"},Grafana:{slug:"grafana"},Firebase:{slug:"firebase"},Appwrite:{slug:"appwrite"},Heroku:{slug:"heroku"}};var y=a(9874),k=a(3221),M=a(9288),N=a(888),S=a(4952),w=a(9156),C=a(869);let z=["company","ceoModel","connection","stack","brief"];function L({name:e}){let s,a=(s=f[e])?`https://cdn.jsdelivr.net/gh/devicons/devicon/icons/${s.slug}/${s.slug}-${s.variant??"original"}.svg`:null,[n,l]=(0,t.useState)(!1);return!a||n?(0,r.jsx)("span",{className:"sc-mono",children:e.replace(/[^A-Za-z0-9]/g,"").slice(0,2)}):(0,r.jsx)("img",{className:"sc-ico",src:a,alt:"",loading:"lazy",onError:()=>l(!0)})}function F({stack:e,onPick:s,query:a,setQuery:t}){let n=(0,C.k)(),l=a.trim().toLowerCase(),i=l?v.z.flatMap(s=>s.opts.filter(e=>"None"!==e&&(e.toLowerCase().includes(l)||s.label.toLowerCase().includes(l))).map(a=>({cat:s,o:a,bad:(0,y.YL)(e,s.key,a)}))).slice(0,16):[];return(0,r.jsxs)("div",{className:"stack-search-wrap",children:[(0,r.jsxs)("div",{className:"stack-search",children:[(0,r.jsx)(N.I,{name:"search",size:15}),(0,r.jsx)("input",{placeholder:n("onboarding.stackSearchPh"),value:a,onChange:e=>t(e.target.value)}),a&&(0,r.jsx)("button",{className:"ss-clear",onClick:()=>t(""),children:(0,r.jsx)(N.I,{name:"close",size:13})})]}),l&&i.length>0&&(0,r.jsx)("div",{className:"stack-find scroll",children:i.map(({cat:a,o:t,bad:n})=>(0,r.jsxs)("button",{type:"button",className:"stack-find-row"+(n?" disabled":""),disabled:!!n,title:n||(0,v.f)(a.key,t),onClick:()=>{n||s(a.key,t)},children:[(0,r.jsx)(L,{name:t}),(0,r.jsx)("span",{className:"sf-name",children:t}),(0,r.jsx)("span",{className:"sf-cat",children:a.label}),(0,k.Hn)(e[a.key],t)&&(0,r.jsx)(N.I,{name:"check",size:13})]},a.key+t))}),l&&0===i.length&&(0,r.jsx)("div",{className:"stack-find sf-empty",children:n("onboarding.stackNoMatch",{query:a})})]})}function P({step:e}){let s=(0,C.k)();return(0,r.jsx)("div",{className:"onb-steps",children:z.map((a,t)=>(0,r.jsxs)("span",{style:{display:"contents"},children:[t>0&&(0,r.jsx)("span",{className:"onb-sep"}),(0,r.jsxs)("div",{className:"onb-stepdot"+(e===t?" on":e>t?" done":""),children:[(0,r.jsx)("span",{className:"num",children:e>t?"✓":t+1}),(0,r.jsx)("span",{children:s(`onboarding.step.${a}`)})]})]},a))})}function R({adapter:e,model:s,cached:a,onDone:n}){let l=(0,C.k)(),i=[{t:l("onboarding.test.prepare"),d:l("onboarding.test.prepareDesc")},{t:l("onboarding.test.adapter"),d:l("onboarding.test.adapterDesc",{adapter:e})},{t:l("onboarding.test.connection"),d:l("onboarding.test.connectionDesc")},{t:l("onboarding.test.model",{model:s}),d:l("onboarding.test.modelDesc")},{t:l("onboarding.test.ready"),d:l("onboarding.test.readyDesc")}],[c,o]=(0,t.useState)(a?i.length:0),[d,h]=(0,t.useState)(null),[g,j]=(0,t.useState)(null);return(0,t.useEffect)(()=>{if(a)return void o(i.length);let r=!0;return h(null),j(null),(async()=>{let a=[()=>x(),()=>u(e),()=>m(e),()=>p(e,s)];for(let e=0;e<a.length;e++){if(!r)return;o(e);let s=await a[e]();if(!r)return;if(!s.ok){h(e),j(s.error??l("onboarding.test.failed")),n(!1);return}o(e+1)}r&&(o(i.length),n(!0))})(),()=>{r=!1}},[a]),(0,r.jsx)("div",{className:"track",children:i.map((e,s)=>{let a=d===s,t=a?"":s<c?"done":s===c?"on":"todo";return(0,r.jsxs)("div",{className:"track-step "+t,children:[(0,r.jsx)("div",{className:"track-ico",children:a?(0,r.jsx)(N.I,{name:"close",size:15}):"done"===t?(0,r.jsx)(N.I,{name:"check",size:16}):"on"===t?(0,r.jsx)("span",{className:"spin",children:(0,r.jsx)(N.I,{name:"refresh",size:15})}):(0,r.jsx)(N.I,{name:"dot",size:8})}),(0,r.jsxs)("div",{className:"track-main",children:[(0,r.jsx)("div",{className:"track-t",children:e.t}),(0,r.jsx)("div",{className:"track-d",children:a?g:e.d})]})]},s)})})}function I(){let e=(0,n.useRouter)(),s=(0,C.k)(),[a,l]=(0,t.useState)(0),[x,u]=(0,t.useState)(!1);(0,t.useEffect)(()=>{i().then(u).catch(()=>{})},[]);let[m,p]=(0,t.useState)(""),[f,z]=(0,t.useState)(""),[I,H]=(0,t.useState)(""),[A,V]=(0,t.useState)([]),[T,D]=(0,t.useState)(""),[$,q]=(0,t.useState)(""),[_,E]=(0,t.useState)({}),[J,U]=(0,t.useState)(""),[B,W]=(0,t.useState)(""),[O,Q]=(0,t.useState)("You are Ada, the CEO of this company. Plan before building: analyse the brief, design the architecture and rituals, then organise the team."),[K,G]=(0,t.useState)(""),[Y,X]=(0,t.useState)(""),[Z,ee]=(0,t.useState)([]),[es,ea]=(0,t.useState)(!1),[er,et]=(0,t.useState)(""),[en,el]=(0,t.useState)("new"),[ei,ec]=(0,t.useState)(""),[eo,ed]=(0,t.useState)(""),[eh,eg]=(0,t.useState)([]),[ex,eu]=(0,t.useState)(""),[em,ep]=(0,t.useState)(!1),[ej,eb]=(0,t.useState)(""),[ev,ef]=(0,t.useState)([]),[ey,ek]=(0,t.useState)(""),[eM,eN]=(0,t.useState)(""),[eS,ew]=(0,t.useState)(!1),[eC,ez]=(0,t.useState)(0),[eL,eF]=(0,t.useState)(0),[eP,eR]=(0,t.useState)("");async function eI(){ep(!0),eb("");try{let e=await g(ei);if(!e.ok){eb(e.error??s("onboarding.src.listReposFailed")),eg([]);return}ed(e.login??""),eg(e.repos??[]),e.repos?.[0]&&eu(e.repos[0].full)}finally{ep(!1)}}async function eH(e){var a;let r;if(!e||!e.length)return;ew(!0),ez(0),eb(""),ef([]),eN("");let t=Array.from(e),n=(t[0].webkitRelativePath||t[0].name).split("/")[0]||"project",l=t.filter(e=>{var s;let a=(e.webkitRelativePath||e.name).split("/");for(let e=1;e<a.length-1;e++)if(s=a[e],o.has(s))return!1;let r=a[a.length-1];return!/^\.env(\.local|\.development|\.production)?$/i.test(r)&&".DS_Store"!==r&&!!(d.test(r)||h.has(r.toLowerCase()))&&!(e.size>524288)});if(!l.length){ew(!1),eb(s("onboarding.src.noFiles"));return}let i=[];for(let e=0;e<l.length;e++){let s=l[e],a=(s.webkitRelativePath||s.name).split("/").slice(1).join("/");if(a)try{i.push({path:a,content:await s.text()})}catch{}(e%5==0||e===l.length-1)&&ez(Math.round((e+1)/l.length*100))}ef(i),ek(n),eN((a=i.map(e=>e.path),(r=e=>a.some(s=>e.test(s)))(/(^|\/)manage\.py$/)?"Django (Python)":r(/(^|\/)next\.config\.(js|mjs|ts)$/)?"Next.js":r(/\.vue$/)?"Vue":r(/(^|\/)go\.mod$/)?"Go":r(/(^|\/)Cargo\.toml$/i)?"Rust":r(/(^|\/)pom\.xml$/)||r(/(^|\/)build\.gradle/)?"JVM":r(/(^|\/)composer\.json$/)?"PHP":r(/\.py$/)?"Python":r(/(^|\/)package\.json$/)?"Node":"")),ew(!1)}let eA="new"===en||"github"===en&&!!ex||"local"===en&&ev.length>0;async function eV(e){if(!e)return;let s=/\.(html?|css|jsx?|tsx?|md|txt|json|svg)$/i,a=[];for(let r of Array.from(e).slice(0,120)){let e=(r.webkitRelativePath||r.name).replace(/^\/+/,"");if(s.test(e)&&!(r.size>262144))try{a.push({path:e,content:await r.text()})}catch{}}ee(a)}let[eT,eD]=(0,t.useState)(!1),[e$,eq]=(0,t.useState)(""),[e_,eE]=(0,t.useState)(""),[eJ,eU]=(0,t.useState)(""),[eB,eW]=(0,t.useTransition)();(0,t.useEffect)(()=>{j().then(({detected:e})=>{V(e),e[0]&&(D(e[0].id),q(e[0].models[0]??""))})},[]),(0,t.useEffect)(()=>{if(!eB)return void eF(0);eF(8);let e=setInterval(()=>eF(e=>e<92?e+Math.max(1,Math.round((92-e)/12)):e),400);return()=>clearInterval(e)},[eB]);let eO=A.find(e=>e.id===T),eQ=eO?.adapter??"",eK=eQ+":"+$,eG=es&&er===eK,eY=(0,y.hP)(_);function eX(e,s){let a=(0,y.T1)({..._,[e]:(0,k.P_)(_[e],s)});E(a.stack),W(a.removed.map(e=>`${e.opt} was unselected automatically — ${e.reason}.`).join(" "))}return(0,r.jsxs)("div",{className:"onb",children:[(0,r.jsxs)("div",{className:"onb-top",children:[(0,r.jsxs)("div",{className:"onb-brand",children:[(0,r.jsx)(M.J,{size:34,rx:9}),(0,r.jsx)("div",{className:"bw",children:"Constella"})]}),(0,r.jsx)(P,{step:a}),x&&(0,r.jsx)("button",{className:"onb-close",title:s("onboarding.closeSetup"),"aria-label":s("onboarding.closeSetup"),onClick:()=>e.push("/"),children:(0,r.jsx)(N.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"onb-body",children:(0,r.jsxs)("div",{className:"onb-card"+(3===a?" onb-card-wide":""),children:[0===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.company.h")}),(0,r.jsx)("div",{className:"onb-sub",style:{marginBottom:14},children:s("onboarding.company.sub")}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.nameLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("input",{className:"form-input",required:!0,autoFocus:!0,value:m,onChange:e=>p(e.target.value),placeholder:s("onboarding.company.namePh")})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.missionLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta",required:!0,value:f,onChange:e=>z(e.target.value),placeholder:s("onboarding.company.missionPh")})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.company.objectiveLabel")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta",required:!0,value:I,onChange:e=>H(e.target.value),placeholder:s("onboarding.company.objectivePh")})]}),(0,r.jsx)("div",{className:"onb-foot",children:(0,r.jsxs)("button",{className:"btn-accent",disabled:!m.trim()||!f.trim()||!I.trim(),onClick:()=>l(1),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})})]}),1===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.brain.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.brain.sub")}),(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:s("onboarding.brain.detected")}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsxs)("div",{className:"prov-cards",children:[A.map(e=>(0,r.jsxs)("div",{className:"prov-card "+("local"===e.kind?"local-card":"cloud-card")+(T===e.id?" on":""),onClick:()=>{D(e.id),q(e.models[0]??"")},children:[(0,r.jsx)("span",{className:"pc-badge",children:s(`onboarding.kind.${e.kind}`)}),(0,r.jsx)(w.W,{id:e.id,size:42}),(0,r.jsx)("div",{className:"pc-name",children:e.name}),(0,r.jsx)("div",{className:"pc-sub",children:e.adapter})]},e.id)),0===A.length&&(0,r.jsx)("div",{className:"muted",style:{fontSize:12.5,padding:12},children:s("onboarding.brain.detecting")})]}),(0,r.jsxs)("button",{className:"btn-ghost",style:{marginTop:10},onClick:()=>eD(e=>!e),children:[(0,r.jsx)(N.I,{name:"add",size:13})," ",s("onboarding.brain.registerToggle")]}),eT&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10},children:[(0,r.jsx)("div",{className:"detail-label",children:s("onboarding.brain.registerTitle")}),(0,r.jsx)(S.m,{value:e$,placeholder:s("onboarding.brain.chooseProvider"),options:b.WQ.filter(e=>"unsupported"!==e.status).map(e=>({value:e.id,label:e.displayName,glyphId:e.id})),onChange:eq,glyph:!0}),(0,r.jsxs)("div",{className:"set-grid",style:{marginTop:8},children:[(0,r.jsx)("input",{className:"form-input mono",placeholder:s("onboarding.brain.modelIdPh"),value:eJ,onChange:e=>eU(e.target.value)}),(0,r.jsx)("input",{className:"form-input mono",type:"password",placeholder:s("onboarding.brain.apiKeyPh"),value:e_,onChange:e=>eE(e.target.value)})]}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:10},children:[(0,r.jsx)("button",{className:"btn-ghost",onClick:()=>eD(!1),children:s("common.cancel")}),(0,r.jsxs)("button",{className:"btn-accent",disabled:!e$,onClick:function(){let e=b.WQ.find(e=>e.id===e$);if(!e)return;let s={id:e.id,name:e.displayName,adapter:e.defaultAdapter,kind:"cli"===e.category?"cli":"local_runtime"===e.category?"local":"cloud",models:eJ.trim()?[eJ.trim()]:[]};V(e=>e.find(e=>e.id===s.id)?e:[...e,s]),D(s.id),q(eJ.trim()||""),eD(!1)},children:[(0,r.jsx)(N.I,{name:"check",size:13})," ",s("onboarding.brain.addSelect")]})]})]}),eO&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:s("onboarding.brain.modelFor",{name:eO.name})}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsx)(S.m,{mono:!0,value:$,options:eO.models.map(e=>({value:e,label:e})),onChange:q})]}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(0),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",disabled:!eO||!$,onClick:()=>l(2),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})]})]}),2===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.setup.h")}),(0,r.jsxs)("div",{className:"onb-sub",children:[s("onboarding.setup.sub")," ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:eQ})," \xb7 ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:$}),"."]}),(0,r.jsx)(R,{adapter:eQ,model:$,cached:eG,onDone:e=>{ea(e),et(eK)}}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(1),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsx)("button",{className:"btn-accent",disabled:!eG,onClick:()=>l(3),children:eG?(0,r.jsxs)(r.Fragment,{children:[s("onboarding.setup.continue")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]}):s("onboarding.setup.testing")})]})]}),3===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.stack.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.stack.sub")}),eY&&(0,r.jsxs)("div",{className:"modal-hint",style:{color:"var(--sx-number)"},children:[(0,r.jsx)(N.I,{name:"pulse",size:12})," ",eY]}),B&&(0,r.jsxs)("div",{className:"modal-hint",style:{color:"var(--sx-keyword)"},children:[(0,r.jsx)(N.I,{name:"warn",size:12})," ",B]}),(0,r.jsx)(F,{stack:_,onPick:eX,query:J,setQuery:U}),v.z.map(e=>(0,r.jsxs)("div",{className:"stack-cat",children:[(0,r.jsxs)("div",{className:"onb-secrow",children:[(0,r.jsx)("span",{className:"osr-t",children:e.label}),(0,r.jsx)("span",{className:"osr-pick",children:_[e.key]||"—"}),(0,r.jsx)("span",{className:"osr-line"})]}),(0,r.jsx)("div",{className:"stack-cards",children:e.opts.map(s=>{let a=(0,y.YL)(_,e.key,s),t=(0,k.Hn)(_[e.key],s);return(0,r.jsxs)("button",{className:"stack-card"+(t?" on":"")+(a?" disabled":""),disabled:!!a&&!t,title:a||(0,v.f)(e.key,s),onClick:()=>!a&&eX(e.key,s),children:[(0,r.jsx)(L,{name:s}),(0,r.jsx)("span",{className:"sc-name",children:s}),t&&(0,r.jsx)("span",{className:"sc-check",children:(0,r.jsx)(N.I,{name:"check",size:12})})]},s)})})]},e.key)),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",onClick:()=>l(2),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",onClick:()=>l(4),children:[s("common.next")," ",(0,r.jsx)(N.I,{name:"chevronRight",size:13})]})]})]}),4===a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"onb-h",children:s("onboarding.brief.h")}),(0,r.jsx)("div",{className:"onb-sub",children:s("onboarding.brief.sub")}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsx)("label",{className:"form-label",children:s("onboarding.brief.sourceLabel")}),(0,r.jsx)("div",{className:"src-cards",children:["new","github","local"].map(e=>(0,r.jsxs)("button",{type:"button",className:"src-card"+(en===e?" on":""),onClick:()=>{el(e),eb("")},children:[(0,r.jsx)(N.I,{name:"new"===e?"add":"github"===e?"git":"files",size:18}),(0,r.jsx)("div",{className:"src-t",children:s(`onboarding.src.${e}.t`)}),(0,r.jsx)("div",{className:"src-d",children:s(`onboarding.src.${e}.d`)})]},e))}),"github"===en&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10,display:"grid",gap:8},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,r.jsx)("input",{className:"form-input mono",type:"password",placeholder:s("onboarding.src.tokenPh"),value:ei,onChange:e=>ec(e.target.value)}),(0,r.jsx)("button",{className:"btn-ghost",disabled:em||ei.trim().length<7,onClick:eI,children:em?"…":s("onboarding.src.listRepos")})]}),eh.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"form-hint",children:[eo&&(0,r.jsxs)(r.Fragment,{children:[s("onboarding.src.signedInAs")," ",(0,r.jsx)("b",{children:eo})," \xb7 "]}),s("onboarding.src.pickRepo")]}),(0,r.jsx)(S.m,{value:ex,options:eh.map(e=>({value:e.full,label:e.full,tag:e.private?s("onboarding.src.private"):s("onboarding.src.public")})),onChange:eu})]})]}),"local"===en&&(0,r.jsxs)("div",{className:"card",style:{marginTop:10,display:"grid",gap:8},children:[(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:eS?"default":"pointer",justifyContent:"center"},children:[(0,r.jsx)(N.I,{name:"grid",size:14})," ",eS?s("onboarding.src.reading"):ev.length>0?s("onboarding.src.chooseAnother"):s("onboarding.src.chooseFolder"),(0,r.jsx)("input",{type:"file",hidden:!0,webkitdirectory:"",directory:"",multiple:!0,disabled:eS,onChange:e=>eH(e.target.files)})]}),eS&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{height:6,borderRadius:999,background:"var(--bg-active)",overflow:"hidden"},children:(0,r.jsx)("div",{style:{height:"100%",width:eC+"%",background:"var(--accent)",transition:"width .2s"}})}),(0,r.jsx)("div",{className:"form-hint",children:s("onboarding.src.readingPct",{pct:eC})})]}),!eS&&ev.length>0&&(0,r.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-string)"},children:[(0,r.jsx)(N.I,{name:"check",size:12})," ",s(1===ev.length?"onboarding.src.imported.one":"onboarding.src.imported.other",{n:ev.length,name:ey}),eM&&(0,r.jsxs)(r.Fragment,{children:[" \xb7 ",(0,r.jsx)("b",{style:{color:"var(--text)"},children:eM})]})]})]}),ej&&(0,r.jsx)("div",{style:{fontSize:11.5,color:"#e8688f",marginTop:6},children:ej}),(0,r.jsxs)("div",{className:"form-hint",children:[(0,r.jsx)(N.I,{name:"bot",size:12})," ",s("onboarding.src.analyseHint")]})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.systemPrompt")," ",(0,r.jsx)("span",{className:"req",children:"*"})]}),(0,r.jsx)("textarea",{className:"persona-ta mono",required:!0,value:O,onChange:e=>Q(e.target.value)})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.projectBrief")," ",(0,r.jsxs)("span",{style:{color:"var(--text-faint)",fontWeight:400},children:["\xb7 ",s("onboarding.brief.optional")]})]}),(0,r.jsx)("textarea",{className:"persona-ta mono",style:{minHeight:110},placeholder:s("onboarding.brief.briefPh"),value:Y,onChange:e=>{X(e.target.value),!K&&e.target.value&&G("project-brief.md")}})]}),(0,r.jsxs)("div",{className:"persona-field",children:[(0,r.jsxs)("label",{className:"form-label",children:[s("onboarding.brief.attachMock")," ",(0,r.jsxs)("span",{style:{color:"var(--text-faint)",fontWeight:400},children:["\xb7 ",s("onboarding.brief.optional")," \xb7 HTML, CSS, JS, MD"]})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:"pointer"},children:[(0,r.jsx)(N.I,{name:"doc",size:13})," ",s("onboarding.brief.files"),(0,r.jsx)("input",{type:"file",multiple:!0,hidden:!0,onChange:e=>eV(e.target.files)})]}),(0,r.jsxs)("label",{className:"btn-ghost",style:{cursor:"pointer"},children:[(0,r.jsx)(N.I,{name:"grid",size:13})," ",s("onboarding.brief.folder"),(0,r.jsx)("input",{type:"file",hidden:!0,webkitdirectory:"",directory:"",multiple:!0,onChange:e=>eV(e.target.files)})]}),Z.length>0&&(0,r.jsxs)("span",{className:"chip-sm",style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,r.jsx)(N.I,{name:"check",size:12})," ",s(1===Z.length?"onboarding.brief.filesAttached.one":"onboarding.brief.filesAttached.other",{n:Z.length}),(0,r.jsx)("button",{className:"link-btn",style:{marginLeft:4},onClick:()=>ee([]),children:(0,r.jsx)(N.I,{name:"close",size:11})})]})]}),(0,r.jsxs)("div",{className:"form-hint",children:[(0,r.jsx)(N.I,{name:"bot",size:12})," ",s("onboarding.brief.mockHintPre")," ",(0,r.jsx)("span",{className:"mono",children:"mock/"})," ",s("onboarding.brief.mockHintPost")]})]}),eB&&(0,r.jsxs)("div",{style:{marginTop:12},children:[(0,r.jsx)("div",{style:{height:6,borderRadius:999,background:"var(--bg-active)",overflow:"hidden"},children:(0,r.jsx)("div",{style:{height:"100%",width:eL+"%",background:"var(--accent)",transition:"width .3s"}})}),(0,r.jsxs)("div",{className:"form-hint",children:[s("onboarding.src.settingUp")," ",eL,"%"]})]}),eP&&(0,r.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-keyword)",marginTop:10},children:[(0,r.jsx)(N.I,{name:"close",size:12})," ",eP]}),(0,r.jsxs)("div",{className:"onb-foot",children:[(0,r.jsxs)("button",{className:"btn-ghost",disabled:eB,onClick:()=>l(3),children:[(0,r.jsx)(N.I,{name:"chevronLeft",size:13})," ",s("common.back")]}),(0,r.jsxs)("button",{className:"btn-accent",disabled:eB||!O.trim()||!eA,onClick:function(){let e="github"===en?{type:"github",pat:ei,repoFull:ex,branch:eh.find(e=>e.full===ex)?.branch,login:eo||void 0}:"local"===en?{type:"local",rootName:ey,files:ev}:{type:"new"};eR(""),eW(async()=>{try{let s=await c({company:m,mission:f,objective:I,stack:_,provider:eQ,model:$,systemPrompt:O,briefText:Y,briefName:K,mockFiles:Z,source:e,providerCatalogId:T||void 0,providerKey:e$&&e$===T&&e_?e_:void 0});if(s&&!s.ok)return void eR(s.error||"Setup didn't complete — please try again.");eF(100),window.location.assign("/planner")}catch{eR("Setup didn't complete — please try again. If it keeps failing, reload the page.")}})},children:[(0,r.jsx)(N.I,{name:"bot",size:14})," ",eB?s("onboarding.brief.settingUp"):s("onboarding.brief.handOff")]})]})]})]})})]})}},9288:(e,s,a)=>{"use strict";a.d(s,{J:()=>t});var r=a(4275);function t({size:e=34,rx:s=9}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 100 100",style:{display:"block",flex:`0 0 ${e}px`},"aria-label":"Constella",children:[(0,r.jsx)("rect",{x:"1",y:"1",width:"98",height:"98",rx:s,fill:"var(--cs-bg)",stroke:"var(--cs-border)",strokeWidth:"1.5"}),(0,r.jsx)("path",{d:"M66.06 27.06 L42.75 22.95 L24.62 38.17 L24.62 61.83 L42.75 77.05 L66.06 72.94",fill:"none",stroke:"var(--cs-line)",strokeWidth:"2.1",strokeLinecap:"round",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M48 50 L42.75 22.95 M48 50 L24.62 50 M48 50 L42.75 77.05",fill:"none",stroke:"var(--cs-line)",strokeWidth:"1.2",strokeLinecap:"round",opacity:"0.55"}),[[66.06,27.06],[42.75,22.95],[24.62,38.17],[24.62,61.83],[42.75,77.05],[66.06,72.94]].map((e,s)=>(0,r.jsx)("circle",{cx:e[0],cy:e[1],r:"3.1",fill:"var(--cs-node)"},s)),(0,r.jsx)("circle",{cx:"48",cy:"50",r:"8.5",fill:"var(--cs-glow)",opacity:"0.4"}),(0,r.jsx)("circle",{cx:"48",cy:"50",r:"4.3",fill:"var(--cs-core)"})]})}},9956:(e,s,a)=>{Promise.resolve().then(a.bind(a,7982))}},e=>{e.O(0,[171,9279,9874,2235,7066,7358],()=>e(e.s=9956)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{869:(e,t,r)=>{"use strict";r.d(t,{LangProvider:()=>l,k:()=>d});var n=r(4275),o=r(2899),a=r(171);let i=(0,o.createContext)("en");function l({lang:e,children:t}){return(0,n.jsx)(i.Provider,{value:e,children:t})}function d(){let e=(0,o.useContext)(i);return(t,r)=>(0,a.t)(e,t,r)}},2577:(e,t,r)=>{"use strict";r.d(t,{H4:()=>l,Uy:()=>d,st:()=>i});let n=/Failed to find Server Action|older or newer deployment|ChunkLoadError|Loading chunk [\w-]+ failed|error loading dynamically imported module/i,o=/invariant expected layout router to be mounted/i;function a(e){return e?e instanceof Error?`${e.name} ${e.message}`:"string"==typeof e?e:String(e?.message??e):""}function i(e){return n.test(a(e))}function l(e){let t=a(e);return n.test(t)||o.test(t)}function d(){try{let e="cn-skew-reload-at",t=Number(window.sessionStorage.getItem(e)||0);if(Date.now()-t<2e4)return;window.sessionStorage.setItem(e,String(Date.now()))}catch{}try{let e=new URL(window.location.href);e.searchParams.set("_r",String(Date.now())),window.location.replace(e.toString())}catch{window.location.reload()}}},3177:()=>{},6432:(e,t,r)=>{"use strict";r.d(t,{ServerReloadGuard:()=>a});var n=r(2899),o=r(2577);function a({intervalMs:e=5e3}){let t=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let r=!1;async function n(){if(!r&&!document.hidden)try{let e=await fetch("/api/health",{cache:"no-store"});if(!e.ok)return;let{bootId:r}=await e.json();if(!r)return;if(null==t.current){t.current=r;return}r!==t.current&&(0,o.Uy)()}catch{}}n();let a=setInterval(n,e),i=()=>{document.hidden||n()};return document.addEventListener("visibilitychange",i),()=>{r=!0,clearInterval(a),document.removeEventListener("visibilitychange",i)}},[e]),null}},7089:(e,t,r)=>{"use strict";r.d(t,{Starfield:()=>a});var n=r(4275),o=r(2899);function a({enabled:e=!0}){let t=(0,o.useRef)(null);return((0,o.useEffect)(()=>{if(!e)return;let r=t.current;if(!r)return;let n=r.getContext("2d");if(!n)return;let o=0,a=0,i=0,l=Math.min(2,window.devicePixelRatio||1),d=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1,s=d?.18:1,u=[];function c(){o=window.innerWidth,a=window.innerHeight,r.width=o*l,r.height=a*l,n.setTransform(l,0,0,l,0,0),u=Array.from({length:Math.round(o*a/9e3)},()=>({x:Math.random()*o,y:Math.random()*a,r:1.6*Math.random()+.4,tw:Math.random()*Math.PI*2,tws:.4+2.6*Math.random(),vx:(Math.random()-.5)*.14,vy:(Math.random()-.5)*.14,hue:.25>Math.random()?"blue":.15>Math.random()?"violet":"white"}))}window.addEventListener("resize",c);let h={fx:.82,fy:.22,R:0};return c(),i=requestAnimationFrame(function e(t){let r=document.documentElement.classList.contains("theme-light");h.R=.13*Math.min(o,a);let l=o*h.fx,c=a*h.fy,f=n.createRadialGradient(l,c,.4*h.R,.4*o,.6*a,Math.max(o,a));r?(f.addColorStop(0,"#e7e2d5"),f.addColorStop(.5,"#e9e4d8"),f.addColorStop(1,"#ded7c6")):(f.addColorStop(0,"#0a0f1e"),f.addColorStop(.55,"#070a14"),f.addColorStop(1,"#05060d")),n.fillStyle=f,n.fillRect(0,0,o,a);let g=r?.34:.95;for(let e of u){e.x+=e.vx*s,e.y+=e.vy*s,e.x<0?e.x+=o:e.x>o&&(e.x-=o),e.y<0?e.y+=a:e.y>a&&(e.y-=a);let i=.5+.5*Math.sin(.0016*t*(d?.5:1)*e.tws+e.tw),l=g*(.2+.8*i),u=r?"blue"===e.hue?"100,120,180":"violet"===e.hue?"130,110,180":"90,95,120":"blue"===e.hue?"150,190,255":"violet"===e.hue?"190,160,255":"230,238,255";!r&&i>.72&&(n.beginPath(),n.fillStyle=`rgba(${u},${.22*l})`,n.arc(e.x,e.y,e.r*(2.4+i),0,2*Math.PI),n.fill()),n.beginPath(),n.fillStyle=`rgba(${u},${l})`,n.arc(e.x,e.y,e.r,0,2*Math.PI),n.fill()}n.lineWidth=1;for(let e=0;e<u.length;e++)for(let t=e+1;t<u.length;t++){let o=u[e].x-u[t].x,a=u[e].y-u[t].y,i=o*o+a*a;if(i<13924){let o=(1-i/13924)*(r?.06:.14);n.strokeStyle=r?`rgba(90,100,140,${o})`:`rgba(120,150,230,${o})`,n.beginPath(),n.moveTo(u[e].x,u[e].y),n.lineTo(u[t].x,u[t].y),n.stroke()}}let m=5e-4*t*s,w=.85+.15*Math.sin(.0011*t*(d?.4:1)),b=2.6*h.R*w,v=n.createRadialGradient(l,c,.5*h.R,l,c,b);v.addColorStop(0,r?`rgba(120,90,200,${.26*w})`:`rgba(140,95,255,${.34*w})`),v.addColorStop(.5,r?"rgba(90,120,200,0.11)":"rgba(70,100,235,0.16)"),v.addColorStop(1,"rgba(0,0,0,0)"),n.fillStyle=v,n.beginPath(),n.arc(l,c,b,0,2*Math.PI),n.fill(),n.save(),n.translate(l,c),n.rotate(-.5),n.scale(1,.34);for(let e=0;e<3;e++){let t=h.R*(1.5+.28*e);n.lineWidth=h.R*(.3-.07*e);let o=n.createConicGradient?.(m+.4*e,0,0);o?(o.addColorStop(0,"rgba(255,170,80,0)"),o.addColorStop(.12,r?"rgba(235,145,60,0.6)":"rgba(255,190,100,0.98)"),o.addColorStop(.28,r?"rgba(190,125,235,0.5)":"rgba(215,160,255,0.85)"),o.addColorStop(.5,"rgba(120,140,255,0)"),o.addColorStop(.72,r?"rgba(120,160,230,0.45)":"rgba(130,180,255,0.78)"),o.addColorStop(1,"rgba(255,170,80,0)"),n.strokeStyle=o):n.strokeStyle=r?"rgba(200,150,255,0.4)":"rgba(255,180,120,0.6)",n.beginPath(),n.arc(0,0,t,0,2*Math.PI),n.stroke()}n.restore(),n.beginPath(),n.fillStyle=r?"rgba(20,18,40,0.92)":"#000",n.arc(l,c,h.R,0,2*Math.PI),n.fill(),n.lineWidth=2.4,n.strokeStyle=r?`rgba(185,155,255,${.55+.35*w})`:`rgba(205,185,255,${.6+.35*w})`,n.beginPath(),n.arc(l,c,1.02*h.R,0,2*Math.PI),n.stroke(),i=requestAnimationFrame(e)}),()=>{cancelAnimationFrame(i),window.removeEventListener("resize",c)}},[e]),e)?(0,n.jsx)("canvas",{ref:t,"aria-hidden":!0,style:{position:"fixed",inset:0,width:"100%",height:"100%",zIndex:0,pointerEvents:"none"}}):(0,n.jsx)("div",{"aria-hidden":!0,style:{position:"fixed",inset:0,zIndex:0,pointerEvents:"none",background:"var(--bg-app)"}})}},7933:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,3177,23)),Promise.resolve().then(r.bind(r,8182)),Promise.resolve().then(r.bind(r,6432)),Promise.resolve().then(r.bind(r,7089)),Promise.resolve().then(r.bind(r,869))},8182:(e,t,r)=>{"use strict";r.d(t,{DeploymentSkewGuard:()=>a});var n=r(2899),o=r(2577);function a(){return(0,n.useEffect)(()=>{let e=e=>{(0,o.H4)(e.error??e.message)&&(0,o.Uy)()},t=e=>{(0,o.H4)(e.reason)&&(0,o.Uy)()};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",t),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",t)}},[]),null}}},e=>{e.O(0,[3728,171,2235,7066,7358],()=>e(e.s=7933)),_N_E=e.O()}]);
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":50088437,"timestamp":278437195881,"id":14,"parentId":1,"tags":{},"startTime":1782598139495,"traceId":"5a305422956640d8"},{"name":"run-typescript","duration":21942605,"timestamp":278487293459,"id":7670,"parentId":1,"tags":{},"startTime":1782598189593,"traceId":"5a305422956640d8"},{"name":"static-check","duration":2958024,"timestamp":278509534198,"id":7673,"parentId":1,"tags":{},"startTime":1782598211834,"traceId":"5a305422956640d8"},{"name":"static-generation","duration":5218560,"timestamp":278514093929,"id":7783,"parentId":1,"tags":{},"startTime":1782598216394,"traceId":"5a305422956640d8"},{"name":"collect-build-traces","duration":18963364,"timestamp":278512498793,"id":7780,"parentId":1,"tags":{},"startTime":1782598214799,"traceId":"5a305422956640d8"},{"name":"telemetry-flush","duration":89,"timestamp":278531469602,"id":7792,"parentId":1,"tags":{},"startTime":1782598233769,"traceId":"5a305422956640d8"},{"name":"next-build","duration":94478676,"timestamp":278436991028,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782598139290,"traceId":"5a305422956640d8"}]
1
+ [{"name":"run-webpack","duration":43524345,"timestamp":280191499983,"id":14,"parentId":1,"tags":{},"startTime":1782599893799,"traceId":"9c858963a73de75b"},{"name":"run-typescript","duration":19359628,"timestamp":280235034609,"id":7670,"parentId":1,"tags":{},"startTime":1782599937334,"traceId":"9c858963a73de75b"},{"name":"static-check","duration":3293986,"timestamp":280254665514,"id":7673,"parentId":1,"tags":{},"startTime":1782599956965,"traceId":"9c858963a73de75b"},{"name":"static-generation","duration":5715990,"timestamp":280259132244,"id":7783,"parentId":1,"tags":{},"startTime":1782599961432,"traceId":"9c858963a73de75b"},{"name":"collect-build-traces","duration":18758629,"timestamp":280257967789,"id":7780,"parentId":1,"tags":{},"startTime":1782599960267,"traceId":"9c858963a73de75b"},{"name":"telemetry-flush","duration":60,"timestamp":280276733553,"id":7792,"parentId":1,"tags":{},"startTime":1782599979033,"traceId":"9c858963a73de75b"},{"name":"next-build","duration":85392036,"timestamp":280191341585,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782599893641,"traceId":"9c858963a73de75b"}]
package/CHANGELOG.md CHANGED
@@ -12,6 +12,18 @@ may still introduce breaking changes while the platform stabilises.
12
12
 
13
13
  ---
14
14
 
15
+ ## [0.3.9] — "Fix: passkey login was blocked by the auth proxy"
16
+
17
+ ### Fixed
18
+ - **Passkey sign-in.** Logging in with a passkey failed with `Unexpected token '<', "<!DOCTYPE"… is not valid
19
+ JSON`. The route-protection proxy redirected the *unauthenticated* `/api/passkey/authenticate/*` calls to
20
+ `/login` (an HTML page), so the client's `response.json()` choked on HTML. The proxy now lets the passkey
21
+ **authenticate** endpoints (options + verify) through — they run while logged out, by definition. Passkey
22
+ **register** stays protected (it runs while logged in, and `register/verify` re-checks the session), so an
23
+ unauthenticated caller still can't enrol a credential onto the operator account.
24
+
25
+ ---
26
+
15
27
  ## [0.3.8] — "Dependency baseline: refresh + zod 4 · TypeScript 6 · @types/node 26"
16
28
 
17
29
  Dependency hygiene after a clean security audit (`pnpm audit` → no known vulnerabilities): the
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  <p align="center">
7
7
  <a href="#-quickstart"><img alt="npx constella" src="https://img.shields.io/badge/npx-constellai-7c3aed?style=for-the-badge&logo=npm&logoColor=white"></a>
8
- <img alt="version" src="https://img.shields.io/badge/version-0.3.8-22d3ee?style=for-the-badge">
8
+ <img alt="version" src="https://img.shields.io/badge/version-0.3.9-22d3ee?style=for-the-badge">
9
9
  <img alt="node" src="https://img.shields.io/badge/node-%E2%89%A520-3fb950?style=for-the-badge&logo=node.js&logoColor=white">
10
10
  <img alt="license" src="https://img.shields.io/badge/license-MIT-a78bfa?style=for-the-badge">
11
11
  <img alt="agent CLIs" src="https://img.shields.io/badge/agent%20CLIs-claude%20%C2%B7%20codex%20%C2%B7%20%2B8-e879f9?style=for-the-badge">
package/README.pt-BR.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  <p align="center">
7
7
  <a href="#-início-rápido"><img alt="npx constella" src="https://img.shields.io/badge/npx-constellai-7c3aed?style=for-the-badge&logo=npm&logoColor=white"></a>
8
- <img alt="version" src="https://img.shields.io/badge/version-0.3.8-22d3ee?style=for-the-badge">
8
+ <img alt="version" src="https://img.shields.io/badge/version-0.3.9-22d3ee?style=for-the-badge">
9
9
  <img alt="node" src="https://img.shields.io/badge/node-%E2%89%A520-3fb950?style=for-the-badge&logo=node.js&logoColor=white">
10
10
  <img alt="license" src="https://img.shields.io/badge/license-MIT-a78bfa?style=for-the-badge">
11
11
  <img alt="agent CLIs" src="https://img.shields.io/badge/CLIs%20de%20agente-claude%20%C2%B7%20codex%20%C2%B7%20%2B8-e879f9?style=for-the-badge">
package/docs/UPDATE.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  ![](./assets/divider-orbit.svg)
6
6
 
7
- **Current stable release: `v0.3.8`** — a dependency baseline: within-major refresh plus the held-back majors
8
- (zod 4, TypeScript 6, @types/node 26), no behaviour change. See what changed in the [Changelog](../CHANGELOG.md)
9
- (the Update module also shows it inline as “What's new”).
7
+ **Current stable release: `v0.3.9`** — fixes passkey sign-in (it was being redirected to an HTML login page,
8
+ breaking the JSON parse). See what changed in the [Changelog](../CHANGELOG.md) (the Update module also shows it
9
+ inline as “What's new”).
10
10
 
11
11
  > This is the page the **Update** module's “docs” button opens. It tells you, in plain terms, how to move Constella
12
12
  > to a newer version — from the app or the terminal — and how to roll back if you ever need to. Your data
@@ -24,6 +24,12 @@ it didn't earn: the updater writes the real result and the screen reflects it tr
24
24
  Latest first. The in-app **Update** module shows the changelog inline as “What's new”; this is the same history, kept
25
25
  here so the “docs” button always shows what each release added. Full detail: [Changelog](../CHANGELOG.md).
26
26
 
27
+ ### v0.3.9 — passkey login fix
28
+ - **Passkey sign-in works again.** The auth proxy was redirecting the unauthenticated
29
+ `/api/passkey/authenticate/*` calls to the HTML `/login` page, so the browser's `response.json()` failed with
30
+ `Unexpected token '<'`. The proxy now lets the passkey *authenticate* endpoints through (register stays
31
+ protected). No data change.
32
+
27
33
  ### v0.3.8 — dependency baseline (refresh + majors)
28
34
  - Within-major bumps after a clean `pnpm audit` (no known vulnerabilities): `better-auth` → 1.6.22,
29
35
  `@simplewebauthn/server` → 13.3.2, `@playwright/test` → 1.61.1 (+ dev tooling).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "constellai",
3
- "version": "0.3.8",
3
+ "version": "0.3.9",
4
4
  "description": "Constella — run autonomous AI agent-companies locally: real claude/codex agents, Goals → Specs → Issues → Plans, local models, GitHub & Telegram, all from one cosmic control plane.",
5
5
  "//name": "Published as `constellai` (the unscoped `constella` was taken). Ships BOTH a `constellai` and a `constella` bin (same launcher): `npx constellai` needs a bin matching the package name to run on Windows, and a global install also gives the short `constella` command.",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- "use strict";exports.id=3392,exports.ids=[2392,3392],exports.modules={2015:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(26021);let e=(0,d.createServerReference)("00930ce046f9bfbd1af19ed9f127d55e5366f84688",d.callServer,void 0,d.findSourceMapURL,"startDevServerAction")},9450:(a,b,c)=>{c.d(b,{Fy:()=>m,KD:()=>q,Rr:()=>l,TH:()=>s,Xu:()=>r,j0:()=>n,nx:()=>o,zC:()=>p});var d=c(80501),e=c(3770),f=c(96405),g=c(99398),h=c(62758),i=c(88193),j=c(17730),k=c(55593);async function l(){let{org:a,workspace:b}=await (0,f.nP)(),c=await (0,g.ZF)(b.id,a.id);return(0,e.revalidatePath)("/test-dev"),c}async function m(){let{workspace:a}=await (0,f.nP)(),b=await (0,g.n9)(a.id);return(0,e.revalidatePath)("/test-dev"),b}async function n(){let{workspace:a}=await (0,f.nP)();return(0,g.CS)(a.id)}async function o(){let{org:a,workspace:b}=await (0,f.nP)(),c=(0,g.CS)(b.id);if("running"!==c.status&&"starting"!==c.status&&(c=await (0,g.ZF)(b.id,a.id)),!c.url||"running"!==c.status&&"starting"!==c.status)return{ok:!1,error:"The dev server isn't running — start the app first."};let d=await (0,h.nK)(b.id,c.url);return d?{ok:!0,url:d.url}:{ok:!1,error:"Could not start the inspect proxy."}}async function p(){let{workspace:a}=await (0,f.nP)();return(0,h.hA)(a.id),{ok:!0}}async function q(a){if(await (0,f.nP)(),!/^https?:\/\/(127\.0\.0\.1|localhost)(:\d+)?/i.test(a))return{frameable:!0};try{let b=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(3e3)}),c=(b.headers.get("x-frame-options")||"").toLowerCase(),d=(b.headers.get("content-security-policy")||"").toLowerCase(),e=/frame-ancestors\s+([^;]+)/.exec(d)?.[1]??"",f=c.includes("deny")||c.includes("sameorigin"),g=!!e&&!/(\*|localhost|127\.0\.0\.1)/.test(e);return{frameable:!(f||g)}}catch{return{frameable:!0}}}async function r(a){let{org:b,workspace:c}=await (0,f.nP)(),d=a?.issueId?await (0,i.B)(c.id,a.issueId):void 0,g=await (0,i.z)(c.id,b.id,{goalId:a?.goalId,issueId:a?.issueId,routes:d,by:"operator"});return(0,e.revalidatePath)("/test-dev"),g}async function s(a,b){let{workspace:c}=await (0,f.nP)();return await (0,j.vE)(c.id,{kind:"validation",refType:"validation",refId:a,title:`Validate ${a}`,detail:b.slice(0,500)}),await (0,k.I)(c.id,{kind:"review",text:`Validation requested — ${a}`,detail:b.slice(0,300)}),(0,e.revalidatePath)("/inbox"),{ok:!0}}(0,c(64185).D)([l,m,n,o,p,q,r,s]),(0,d.A)(l,"00930ce046f9bfbd1af19ed9f127d55e5366f84688",null),(0,d.A)(m,"00c0f420f325381667e547899b541bd24ba3680fa3",null),(0,d.A)(n,"000197b130ec53acb1bf865af0bd6cf00016ba34f4",null),(0,d.A)(o,"00e5801971a984c426a1d1c4adcd9eaff741489733",null),(0,d.A)(p,"0011588f6fe8674c7176a940ff9feb94f0d7019cbf",null),(0,d.A)(q,"40019c929b3f4d4dbb0df8da0a5f7b239141e4ed0a",null),(0,d.A)(r,"40b0fa67493bf00906e35587dde30dc745f2b72ef6",null),(0,d.A)(s,"608ffe8f599176ad0d19760c947a74041925422f1a",null)},13389:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(40201),e=c(77758),f=c(3218),g=c(71955);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},22290:(a,b,c)=>{c.r(b),c.d(b,{"00595fe65e9992464bb663bbac4e29a490158cffd8":()=>d.Kd,"00cdb46e5e7ab44f096a716b62213d04c572098ad6":()=>d.cT,"4097083ab2f522b74645033d17b1248eee70d9bd69":()=>d.j0,"40b5db617bf035af0653aeaf7baa2f667a1836ff30":()=>d.OD});var d=c(54489)},27115:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(26021);let e=(0,d.createServerReference)("000197b130ec53acb1bf865af0bd6cf00016ba34f4",d.callServer,void 0,d.findSourceMapURL,"devServerStatusAction")},41323:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(97879).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},47385:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(46309),e=c(34925);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},51439:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(80501),e=c(96405),f=c(90127),g=c(59627),h=c(24582);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(52392),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(37989);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(73591),t=c(54813),u=c(406),v=c(96977);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(64185).D)([x,y,z,A,B]),(0,d.A)(x,"4079ee52aca558bf2ca3c25800d73e82a85654fb12",null),(0,d.A)(y,"40e88545faa11118461ff49b6570d9874017fd8a38",null),(0,d.A)(z,"000620f675346f8a12b50bfbe6296aad9ae5464e72",null),(0,d.A)(A,"00491a4a12afe57900974b078cd17d6d523cb8b1d4",null),(0,d.A)(B,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b",null)},52392:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(90127);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},59627:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},64543:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(50727),e=c(48578),f=c(41323);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}},66408:(a,b,c)=>{c.d(b,{r$:()=>h,EX:()=>p,CS:()=>function a(b,c=""){let d=[];for(let e of l(b,c))if(e.isDir){if(m.has(e.name))continue;d.push(...a(b,e.path))}else d.push(e.path);return d},HZ:()=>j,Ci:()=>l,sL:()=>n,dx:()=>o});var d=c(73024),e=c(76760),f=c(48161),g=c(45570);function h(){return process.env.CONSTELLA_HOME?(0,g.Y)(process.env.CONSTELLA_HOME):(0,e.join)((0,f.homedir)(),".constella")}let i=new Set;function j(a){if(!/^[A-Za-z0-9_-]{6,64}$/.test(a))throw Error("Invalid orgId");let b=(0,e.join)(h(),"organizations",a,"workspace");if(!i.has(a)){i.add(a);try{let c=(0,e.join)(h(),"organizations",a,"constella"),f=!(0,d.existsSync)(b)||0===(0,d.readdirSync)(b).length;if((0,d.existsSync)(c)&&f)try{(0,d.renameSync)(c,b)}catch{(0,d.existsSync)(c)&&((0,d.mkdirSync)(b,{recursive:!0}),0===(0,d.readdirSync)(b).length&&(0,d.cpSync)(c,b,{recursive:!0}))}}catch{}}return b}function k(a,b){let c=(0,e.normalize)((0,e.join)(a,b));if(c!==a&&!c.startsWith(a+e.sep))throw Error("Path escapes workspace: "+b);if((0,d.existsSync)(a)){let f;try{f=d.realpathSync.native(a)}catch{f=a}let g=function(a){let b=a;for(;;){if((0,d.existsSync)(b))try{return d.realpathSync.native(b)}catch{return b}let a=(0,e.dirname)(b);if(a===b)return b;b=a}}(c);if(g!==f&&!g.startsWith(f+e.sep))throw Error("Path escapes workspace (symlink): "+b)}return c}function l(a,b=""){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readdirSync)(c).map(a=>{let f=(0,e.join)(c,a),g=(b?b+"/":"")+a;return{name:a,path:g,isDir:(0,d.statSync)(f).isDirectory()}}).sort((a,b)=>a.isDir===b.isDir?a.name.localeCompare(b.name):a.isDir?-1:1):[]}let m=new Set(["node_modules",".git",".next",".turbo","dist","build","out","coverage",".cache","archives",".testdev",".pnpm-store",".vercel","vendor"]);function n(a,b){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readFileSync)(c,"utf8"):null}function o(a,b,c){let f=k(j(a),b);(0,d.mkdirSync)((0,e.dirname)(f),{recursive:!0}),(0,d.writeFileSync)(f,c,"utf8")}function p(a,b){let c=k(j(a),b);(0,d.existsSync)(c)&&(0,d.rmSync)(c,{recursive:!0,force:!0})}},96529:(a,b,c)=>{c.d(b,{K:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40019c929b3f4d4dbb0df8da0a5f7b239141e4ed0a",d.callServer,void 0,d.findSourceMapURL,"previewFrameableAction")}};
@@ -1,4 +0,0 @@
1
- "use strict";exports.id=6538,exports.ids=[2392,6538],exports.modules={13389:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(40201),e=c(77758),f=c(3218),g=c(71955);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},21390:(a,b,c)=>{c.r(b),c.d(b,{"000620f675346f8a12b50bfbe6296aad9ae5464e72":()=>y.pM,"000bbac63e43218df5325751fe3a032ead4c842701":()=>e.PE,"001bcb77638d1a46912a15a081572ce5f0ffdf5db9":()=>d.bt,"0024362c5f4091f01256d62c3fcde45a2be385d457":()=>j.f,"00491a4a12afe57900974b078cd17d6d523cb8b1d4":()=>y.PG,"006e272f908ea17d464c2c19bd5e38be70801d59d4":()=>k.eg,"008126545795d71c4020cb6427d4d06868907eecde":()=>e.KO,"008ecd70d86cfcfb6ba359f7d9d64ff803ad6de30c":()=>h.x7,"008f74f15b7461eaee38fef26bef041c64508e00ef":()=>e.y_,"00a560e9361868c82baff7bc3c2c4a527b0b7aa580":()=>x,"00a88340d83bb29f97492219dfdec374cfd0ebedaa":()=>i.V,"00ac20ad63e61fa51e22e465ec134d88bed9156f99":()=>e.GK,"00b16060dadcf7702f25b3430981d23623457e7044":()=>k.dj,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b":()=>y.eU,"00c53c1e02e86178027b1dce76718c7af197262ff1":()=>k.io,"00e5a7f8864d03b3328583f0e3dda9f57d64f869e9":()=>h.Mp,"00eb291ba544141c60d7958f9e959b79f2f9d8a400":()=>d.xU,"00f929c9a5e363c2627d22d93ff6d78e2099e26e96":()=>j.O,"400536d238039aead05bf7f4d7fbdfc8c51c7843c2":()=>h.sE,"40080b9ecb374ab8d6da637636f1c5f0ec1a5ed545":()=>d.Wu,"4011628d48357ed1452fb7c9a5f731afd0db9fcaf6":()=>i.F,"402bec7c2456984c1fe884f1c5da4d6fffe97bd7f7":()=>i.VJ,"405df6a9c5e07f494d2e2032d2fb70d41ed8071913":()=>g.p,"4060d995219b189ddd8b5bde8460b4966a0ce1a3fc":()=>e.r7,"4064f7013178539e80988a48c2bcbf7f2601b7a2ef":()=>d.H7,"406652da6c1842257203f196ca974dde11bf297c94":()=>e.lJ,"406895dd20d52dd9c079a834a9d1fe20fbe760e87c":()=>h.lR,"406b43f46b12343c4308031ba6dd85cf6d8c9959fc":()=>k.De,"407047434e130c3e1022a9cc24db08f4a9e37444c0":()=>i.E_,"4074b7e3f11b1ff2a4e1742e92f6d0873d579a2bf5":()=>d.rd,"4076a371abe9c34149b659b394b2666988596376c6":()=>d.GW,"4076f26374203461e3fa42db08eeccaf5e73e0b859":()=>e.S,"4077791d811243b5d88aa224120766f1193c0e7cf2":()=>l.TX,"4079ee52aca558bf2ca3c25800d73e82a85654fb12":()=>y.Kg,"408f6af3b89d125b561686db9d333c71405d1e8c92":()=>d.gg,"409ed8e3ac05d42abbb31aa9cc912fa47dccab739e":()=>g.L,"40a59af64de8dd4c8d03251aa8cc453031ffc5d116":()=>e.jc,"40c0fd577da36c5f011829089eec1fc8c31c716f68":()=>m.y,"40c37cc1e125e055ed670d73b257ae5a5289e3994b":()=>d.VL,"40c8a00bca9795dcead5557c89316aa13bf29f6529":()=>i.zS,"40ca19ba5e5ac6d02d5ea6b1d572dd761a6f6c509e":()=>e.ey,"40ca5a4f5b7457845b609654f7573812403c35c26d":()=>e.RG,"40e5f88f9498cf2c409c2918a99261a817f8cddba0":()=>l.IL,"40e88545faa11118461ff49b6570d9874017fd8a38":()=>y.lP,"40f401348df793ff9a669dc89781ca136c988ecc8b":()=>l.q4,"6025ee6c7011b182ab578cd5b8c01983a71f4f639b":()=>l.bV,"6030713e9e3de30ff38e3753735a3c265b9a67af32":()=>e.LZ,"603c43bef66e43b540b8445b0c3fe4ee8e746a3329":()=>f.k,"604223224c3ede7f4cca9ca936bb8e22103b293006":()=>w,"60447775cf485fddc20528ff35db35dac16ae22f1b":()=>l.bk,"605bf856d868caf0ec9c966cf3519de2ae7419a298":()=>e.AA,"6069d55c3f4e1783abfd4728ea381d7c4de7169b17":()=>f.I,"6073003353f53fe87153ecaf2dc6e40469864fe288":()=>d.rm,"607792cfb0a03c9e049cb9bb4af483172312da6ee7":()=>e.q$,"60a65a814a082be9bda3295b3d75e80fdfd21299d3":()=>d.jw,"60ab2f384d8d0bf6d3965f78790349443f4ce97c9f":()=>l.Jp,"60b0ddcf7c11d05035cea005577a5d7b6ec4a099f7":()=>d.ME,"60dafaec9dc5c3f4d443518bf5cdb9bbea36f18f71":()=>d.Fu,"60f0620d53918ab11292cea0a76fff7f37b9d107b3":()=>d.n4,"7029fdc89f3e11a536c5f3bf9ab215d735dbe62f8b":()=>d._z,"704df4210e0ac1fe8d16aab94af799b5a1dd447d2d":()=>e.M8});var d=c(13712),e=c(4619),f=c(37181),g=c(8937),h=c(86591),i=c(10222),j=c(34567),k=c(78387),l=c(74774),m=c(51773),n=c(80501),o=c(77598),p=c(73591),q=c(54813),r=c(406),s=c(96405),t=c(45900),u=c(81585),v=c(55593);async function w(a,b){let{org:c,workspace:d}=await (0,s.nP)(),[e]=await q.db.select().from(r.docIndex).where((0,p.Uo)((0,p.eq)(r.docIndex.id,a),(0,p.eq)(r.docIndex.workspaceId,d.id)));return e?(await (0,t.g)(c.id,e.path,b),{ok:!0}):{ok:!1}}async function x(){let{org:a,workspace:b}=await (0,s.nP)(),c=await q.db.select().from(r.agent).where((0,p.eq)(r.agent.workspaceId,b.id)),d=c.find(a=>"barbara"===a.handle)??c.find(a=>/docs|writer/i.test(a.role))??c[0];if(!d)return{ok:!1,error:"no docs agent"};let e=(0,u.hW)(d.adapter,d.model),f="claude"===e?d.model.includes("opus")?"opus":d.model.includes("haiku")?"haiku":"sonnet":void 0,g=`You are ${d.name} (@${d.handle}), ${d.role} at ${b.name}.
2
- Review the current state of this workspace directory (code, specs, structure) and write or refresh a single piece of project documentation in GitHub-flavoured Markdown.
3
- Begin with one H1 title line. Cover what exists, how it is organised, and how to work with it. Be specific and truthful — describe only what the files actually show; do not invent features.
4
- Output ONLY the Markdown document (no code fences).`,h=await (0,u.JN)(g,{orgId:a.id,binary:e,model:f,timeoutMs:24e4});(h.usd>0||h.inputTokens+h.outputTokens>0)&&await q.db.insert(r.costEntry).values({id:(0,o.randomUUID)(),workspaceId:b.id,agentId:d.id,provider:h.binary,model:h.model??d.model,usd:h.usd,tokens:h.inputTokens+h.outputTokens,at:new Date});let i=h.text.trim();if(!h.ok||!i)return await (0,v.I)(b.id,{kind:"info",text:"Docs generation failed",detail:(h.error??"no output").slice(0,300),agentId:d.id}),{ok:!1,error:h.error};let j=(i.split("\n").find(a=>a.trim())??"Documentation").replace(/^#+\s*/,"").slice(0,120)||"Documentation",k=j.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)||"doc",l=`DOCS/${k}.md`;return await (0,t.g)(a.id,l,i),await (0,v.I)(b.id,{kind:"done",text:`${d.name} updated the docs: ${j}`,detail:`Saved to ${l}`,agentId:d.id}),{ok:!0,path:l}}(0,c(64185).D)([w,x]),(0,n.A)(w,"604223224c3ede7f4cca9ca936bb8e22103b293006",null),(0,n.A)(x,"00a560e9361868c82baff7bc3c2c4a527b0b7aa580",null);var y=c(51439)},41323:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(97879).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},47385:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(46309),e=c(34925);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},51439:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(80501),e=c(96405),f=c(90127),g=c(59627),h=c(24582);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(52392),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(37989);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(73591),t=c(54813),u=c(406),v=c(96977);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(64185).D)([x,y,z,A,B]),(0,d.A)(x,"4079ee52aca558bf2ca3c25800d73e82a85654fb12",null),(0,d.A)(y,"40e88545faa11118461ff49b6570d9874017fd8a38",null),(0,d.A)(z,"000620f675346f8a12b50bfbe6296aad9ae5464e72",null),(0,d.A)(A,"00491a4a12afe57900974b078cd17d6d523cb8b1d4",null),(0,d.A)(B,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b",null)},52392:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(90127);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},59627:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},64543:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(50727),e=c(48578),f=c(41323);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7727,exports.ids=[7727],exports.modules={6836:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40612bb48c7b9899000f07b3256b6a217f9f14c163",d.callServer,void 0,d.findSourceMapURL,"rejectSpec")},7151:(a,b,c)=>{c.d(b,{B:()=>e});var d=c(26021);let e=(0,d.createServerReference)("405ed4651f47318a4181b8770112f7bc71df0e57a2",d.callServer,void 0,d.findSourceMapURL,"approveSpec")},22290:(a,b,c)=>{c.r(b),c.d(b,{"00595fe65e9992464bb663bbac4e29a490158cffd8":()=>d.Kd,"00cdb46e5e7ab44f096a716b62213d04c572098ad6":()=>d.cT,"4097083ab2f522b74645033d17b1248eee70d9bd69":()=>d.j0,"40b5db617bf035af0653aeaf7baa2f667a1836ff30":()=>d.OD});var d=c(54489)},26172:(a,b,c)=>{c.d(b,{d:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40f88afb175b09ac00d2f0cc2bb7fffb401c667a94",d.callServer,void 0,d.findSourceMapURL,"rejectIssue")},39075:(a,b,c)=>{c.d(b,{IssueApprove:()=>g,PlanGate:()=>f,PlanGateLive:()=>e,Run247Button:()=>h});var d=c(97879);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call PlanGateLive() from the server but PlanGateLive is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","PlanGateLive");(0,d.registerClientReference)(function(){throw Error("Attempted to call GeneratePlanButton() from the server but GeneratePlanButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","GeneratePlanButton");let f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PlanGate() from the server but PlanGate is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","PlanGate");(0,d.registerClientReference)(function(){throw Error("Attempted to call SpecApprove() from the server but SpecApprove is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","SpecApprove");let g=(0,d.registerClientReference)(function(){throw Error("Attempted to call IssueApprove() from the server but IssueApprove is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","IssueApprove"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call Run247Button() from the server but Run247Button is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\plan-gate.tsx","Run247Button")},42994:(a,b,c)=>{c.d(b,{t:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40ac43be66059aad8695fa35343af7a907394ec850",d.callServer,void 0,d.findSourceMapURL,"approveIssue")},67622:(a,b,c)=>{c.d(b,{AgentRunLive:()=>j});var d=c(40201),e=c(98604),f=c(27499),g=c(77758);c(16679);var h=c(71955);let i=["read","create","edit","run","search","thinking","done","error"];function j({channel:a,resume:b=!1,sinceSeq:c=0,onFinish:k}){let l=(0,h.k)();(0,f.useRouter)();let[m,n]=(0,e.useState)(b),[o,p]=(0,e.useState)([]),[q,r]=(0,e.useState)(0);if((0,e.useRef)(b?c:0),(0,e.useRef)(!1),(0,e.useRef)(0),!m&&0===o.length)return null;let s=function(a){let b=[];for(let c of a)if("text"===c.kind){let a=(c.detail||"").replace(/\s+/g," ").trim();if(!a)continue;let d=b[b.length-1];d&&"text"===d.kind?d.content=(d.content+" "+a).slice(-600):b.push({id:c.id,kind:"text",content:a})}else if("thinking"===c.kind){let a=(c.detail||c.target||"").replace(/\s+/g," ").trim();a&&b.push({id:c.id,kind:"thinking",content:a})}else b.push({id:c.id,kind:c.kind,content:function(a){if(!a)return"";let b=a.split(/[\\/]/);return b.length>1?b.slice(-2).join("/"):a}(c.target)||c.detail||""});return b}(o),t=s.slice(-5),u=s.length-t.length,v=o.some(a=>"done"===a.kind||"error"===a.kind),w=o.some(a=>"error"===a.kind),x=String(Math.floor(q/60)).padStart(2,"0"),y=String(q%60).padStart(2,"0");return(0,d.jsxs)("div",{className:"card live-stream",style:{marginBottom:16,borderColor:w?"var(--sx-keyword)":"var(--accent)"},children:[(0,d.jsxs)("div",{className:"set-desc",style:{marginBottom:8,display:"flex",alignItems:"center",gap:7},children:[m&&!v?(0,d.jsx)("span",{className:"dotpulse"}):(0,d.jsx)(g.I,{name:w?"close":"check",size:13,style:{color:w?"var(--sx-keyword)":"var(--sx-string)"}}),m&&!v?l("agent.run.working"):w?l("agent.run.failed"):l("agent.run.finished"),s.length>0&&(0,d.jsxs)("span",{style:{color:"var(--text-faint)"},children:["\xb7 ",l(1===s.length?"agent.run.steps.one":"agent.run.steps.other",{n:s.length})]}),(0,d.jsxs)("span",{className:"live-elapsed",style:{marginLeft:"auto"},children:[x,":",y]})]}),0===t.length?(0,d.jsxs)("div",{className:"muted",style:{fontSize:12,display:"flex",alignItems:"center",gap:7},children:[(0,d.jsx)("span",{className:"sync-spin",children:(0,d.jsx)(g.I,{name:"refresh",size:12})})," ",l("agent.run.reading")]}):(0,d.jsxs)(d.Fragment,{children:[u>0&&(0,d.jsx)("div",{className:"live-more",children:l(1===u?"agent.run.earlier.one":"agent.run.earlier.other",{n:u})}),(0,d.jsx)("div",{className:"live-stream-lines",children:t.map(a=>(0,d.jsxs)("div",{className:"live-line "+a.kind,children:["text"!==a.kind&&(0,d.jsx)("span",{className:"ll-k",children:i.includes(a.kind)?l(`agent.verb.${a.kind}`):a.kind}),(0,d.jsxs)("span",{className:"ll-c",children:[a.content,!v&&a===t[t.length-1]&&"text"===a.kind&&(0,d.jsx)("span",{className:"ll-caret"})]})]},a.id))})]})]})}},76480:(a,b,c)=>{c.d(b,{IssueApprove:()=>x,PlanGate:()=>v,PlanGateLive:()=>u,Run247Button:()=>y,p:()=>w});var d=c(40201),e=c(98604),f=c(27499),g=c(77758),h=c(71955),i=c(67622),j=c(26021);let k=(0,j.createServerReference)("40d94739ab3473c06b3faaae4456ea491b787f8ad2",j.callServer,void 0,j.findSourceMapURL,"generatePlan"),l=(0,j.createServerReference)("00e67cf87dadcbcbdf45049da9523da454401958c9",j.callServer,void 0,j.findSourceMapURL,"requestPlanChanges");var m=c(87763),n=c(7151),o=c(6836),p=c(42994),q=c(26172);let r=(0,j.createServerReference)("40197202b1575054bdc6f788583699228c62e9b638",j.callServer,void 0,j.findSourceMapURL,"setAuto247"),s=(0,j.createServerReference)("00c62021056f8b2c00829a8b7d390353eaabc724a4",j.callServer,void 0,j.findSourceMapURL,"skipDesignGate");function t(a,b){window.dispatchEvent(new CustomEvent("constella:open-dm",{detail:{handle:a,text:b}}))}function u({planning:a,planSince:b,designRecommended:c=!1,designPending:j=!1}){let l=(0,h.k)(),[m,n]=(0,e.useTransition)(),o=(0,f.useRouter)(),[p,q]=(0,e.useState)(!1),[r,t]=(0,e.useState)(""),v=a||p;function w(){t(""),q(!0),window.dispatchEvent(new CustomEvent("constella:agent-run",{detail:{channel:"planner"}})),n(async()=>{try{let a=await k();(!a?.ok||!1===a.started)&&(q(!1),a?.error&&t(a.error)),o.refresh()}catch{q(!1),t(l("planner.gate.staleTab"))}})}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.AgentRunLive,{channel:"planner",resume:a,sinceSeq:a?b-1:0,onFinish:()=>q(!1)}),v?(0,d.jsxs)("div",{className:"plan-gate",children:[(0,d.jsx)("div",{className:"plan-gate-bar","aria-hidden":!0}),(0,d.jsx)("div",{className:"pg-ic",children:(0,d.jsx)(g.I,{name:"bot",size:20})}),(0,d.jsxs)("div",{className:"pg-main",children:[(0,d.jsx)("div",{className:"pg-t",children:l("planner.gate.drafting.t")}),(0,d.jsx)("div",{className:"pg-d",children:l("planner.gate.drafting.d")})]})]}):c||j?(0,d.jsxs)("div",{className:"plan-gate",style:{borderColor:"rgba(99,102,241,.45)"},children:[(0,d.jsx)("div",{className:"plan-gate-bar","aria-hidden":!0,style:{background:"#6366f1"}}),(0,d.jsx)("div",{className:"pg-ic",style:{background:"rgba(99,102,241,.16)",color:"#6366f1"},children:(0,d.jsx)(g.I,{name:"skill",size:20})}),(0,d.jsxs)("div",{className:"pg-main",children:[(0,d.jsx)("div",{className:"pg-t",children:j?"Design step pending":"Recommended: prototype the design first"}),(0,d.jsx)("div",{className:"pg-d",children:j?"Ada is holding the plan on the design step. Open the Design module, build & approve the prototype with Grace, then Send to execution — Ada turns the approved design into specs & issues (zero drift).":"This is a frontend product. Prototype & approve the UI in the Design module before generating the plan — Grace turns the brief into a real visual reference, so the specs are precise and you avoid rework."}),r&&(0,d.jsx)("div",{className:"pg-d",style:{color:"var(--sx-keyword)",marginTop:6},children:r})]}),(0,d.jsxs)("div",{className:"pg-actions",children:[(0,d.jsxs)("button",{className:"btn-accent",onClick:()=>o.push("/design"),children:[(0,d.jsx)(g.I,{name:"skill",size:14})," Open Design"]}),(0,d.jsxs)("button",{className:"btn-ghost",disabled:m,onClick:function(){n(async()=>{try{await s()}catch{}}),w()},style:{fontSize:12},children:[(0,d.jsx)(g.I,{name:m?"refresh":"bot",size:13,className:m?"sync-spin":""})," ",m?l("planner.gate.analyzing"):"Skip design & plan anyway"]})]})]}):(0,d.jsxs)("div",{className:"plan-gate",children:[(0,d.jsx)("div",{className:"plan-gate-bar","aria-hidden":!0}),(0,d.jsx)("div",{className:"pg-ic",children:(0,d.jsx)(g.I,{name:"bot",size:20})}),(0,d.jsxs)("div",{className:"pg-main",children:[(0,d.jsx)("div",{className:"pg-t",children:l("planner.gate.noPlan.t")}),(0,d.jsx)("div",{className:"pg-d",children:l("planner.gate.noPlan.d")}),r&&(0,d.jsx)("div",{className:"pg-d",style:{color:"var(--sx-keyword)",marginTop:6},children:r})]}),(0,d.jsxs)("div",{className:"pg-actions",children:[(0,d.jsxs)("div",{className:"plan-hint",children:[(0,d.jsx)("div",{className:"plan-hint-t",children:l("planner.gate.hint.t")}),(0,d.jsx)("div",{className:"plan-hint-d",children:l("planner.gate.hint.d")})]}),(0,d.jsxs)("button",{className:"btn-accent",disabled:m,onClick:w,children:[(0,d.jsx)(g.I,{name:m?"refresh":"bot",size:14,className:m?"sync-spin":""})," ",m?l("planner.gate.analyzing"):l("planner.gate.generate")]})]})]})]})}function v({specs:a,total:b}){let c=(0,h.k)(),[f,i]=(0,e.useTransition)();return(0,d.jsxs)("div",{className:"plan-gate",children:[(0,d.jsx)("div",{className:"pg-ic",children:(0,d.jsx)(g.I,{name:"bot",size:20})}),(0,d.jsxs)("div",{className:"pg-main",children:[(0,d.jsx)("div",{className:"pg-t",children:c("planner.gate.ready.t")}),(0,d.jsx)("div",{className:"pg-d",children:c("planner.gate.ready.d",{specs:a,total:b})})]}),(0,d.jsxs)("div",{className:"pg-actions",children:[(0,d.jsxs)("button",{className:"btn-ghost",disabled:f,onClick:()=>i(async()=>{await l(),t("ada",c("planner.gate.rejectPlanDm"))}),children:[(0,d.jsx)(g.I,{name:"refresh",size:13})," ",c("planner.gate.requestChanges")]}),(0,d.jsxs)("button",{className:"btn-accent",disabled:f,onClick:()=>i(()=>(0,m.P)()),children:[(0,d.jsx)(g.I,{name:"check",size:14})," ",c("planner.gate.approvePlan")]})]})]})}function w({specId:a,specKey:b,approved:c}){let f=(0,h.k)(),[i,j]=(0,e.useTransition)();return c?(0,d.jsxs)("span",{className:"pill",style:{background:"var(--sx-string)22",color:"var(--sx-string)"},children:[(0,d.jsx)(g.I,{name:"check",size:11})," ",f("planner.approved")]}):(0,d.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,d.jsxs)("button",{className:"sc2-btn",disabled:i,onClick:()=>j(()=>(0,n.B)(a)),children:[(0,d.jsx)(g.I,{name:"check",size:11})," ",f("planner.approve")]}),(0,d.jsxs)("button",{className:"sc2-btn danger",disabled:i,onClick:()=>j(async()=>{t((await (0,o.J)(a)).handle,f("planner.rejectItemDm",{key:b}))}),children:[(0,d.jsx)(g.I,{name:"refresh",size:11})," ",f("planner.reject")]})]})}function x({issueId:a,issueKey:b,approved:c}){let f=(0,h.k)(),[i,j]=(0,e.useTransition)();return c?(0,d.jsxs)("span",{className:"pill",style:{background:"var(--sx-string)22",color:"var(--sx-string)"},children:[(0,d.jsx)(g.I,{name:"check",size:11})," ",f("planner.approved")]}):(0,d.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,d.jsxs)("button",{className:"sc2-btn",disabled:i,onClick:()=>j(()=>(0,p.t)(a)),children:[(0,d.jsx)(g.I,{name:"check",size:11})," ",f("planner.approve")]}),(0,d.jsxs)("button",{className:"sc2-btn danger",disabled:i,onClick:()=>j(async()=>{t((await (0,q.d)(a)).handle,f("planner.rejectItemDm",{key:b}))}),children:[(0,d.jsx)(g.I,{name:"refresh",size:11})," ",f("planner.reject")]})]})}function y({auto:a,approved:b,state:c}){let f=(0,h.k)(),[i,j]=(0,e.useTransition)(),k=f(i?a?"planner.run247.pausing":"planner.run247.starting":"waiting-approval"===c?"planner.run247.approveToRun":"all-done"===c?"planner.run247.allDone":a?"planner.run247.pause":"planner.run247.run"),l="blocked"===c?f("planner.run247.blockedTip"):void 0,m="off"===c&&!i;return(0,d.jsxs)("button",{className:"btn-"+(a?"ghost":"accent")+(m?" run-attn":""),disabled:!b||"all-done"===c||i,title:l,onClick:()=>j(()=>r(!a)),children:[(0,d.jsx)(g.I,{name:i?"refresh":"waiting-approval"===c?"bot":"all-done"===c?"check":a?"close":"play",size:14,className:i?"sync-spin":""})," ",k,("running"===c||m)&&(0,d.jsx)("span",{className:"dotpulse",style:{marginLeft:6}})]})}},87763:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(26021);let e=(0,d.createServerReference)("0078eee6c6a712c6aea28f9bd404d07bd6c8f06300",d.callServer,void 0,d.findSourceMapURL,"approvePlan")}};
@@ -1,12 +0,0 @@
1
- "use strict";exports.id=8237,exports.ids=[8237],exports.modules={15438:(a,b,c)=>{c.d(b,{FixButton:()=>f,RunReviewButton:()=>g,Toggle:()=>e});var d=c(97879);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Toggle() from the server but Toggle is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\module-toggles.tsx","Toggle");(0,d.registerClientReference)(function(){throw Error("Attempted to call ResolveButton() from the server but ResolveButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\module-toggles.tsx","ResolveButton");let f=(0,d.registerClientReference)(function(){throw Error("Attempted to call FixButton() from the server but FixButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\module-toggles.tsx","FixButton"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call RunReviewButton() from the server but RunReviewButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\modules\\module-toggles.tsx","RunReviewButton")},15758:(a,b,c)=>{c.r(b),c.d(b,{"000620f675346f8a12b50bfbe6296aad9ae5464e72":()=>F.pM,"000bbac63e43218df5325751fe3a032ead4c842701":()=>e.PE,"001bcb77638d1a46912a15a081572ce5f0ffdf5db9":()=>d.bt,"0024362c5f4091f01256d62c3fcde45a2be385d457":()=>j.f,"00491a4a12afe57900974b078cd17d6d523cb8b1d4":()=>F.PG,"00546f1091d3727faa7f059e01bc4c7f6315ff4eb8":()=>E,"006e272f908ea17d464c2c19bd5e38be70801d59d4":()=>k.eg,"008126545795d71c4020cb6427d4d06868907eecde":()=>e.KO,"008ecd70d86cfcfb6ba359f7d9d64ff803ad6de30c":()=>h.x7,"008f74f15b7461eaee38fef26bef041c64508e00ef":()=>e.y_,"00a88340d83bb29f97492219dfdec374cfd0ebedaa":()=>i.V,"00ac20ad63e61fa51e22e465ec134d88bed9156f99":()=>e.GK,"00b16060dadcf7702f25b3430981d23623457e7044":()=>k.dj,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b":()=>F.eU,"00c53c1e02e86178027b1dce76718c7af197262ff1":()=>k.io,"00e5a7f8864d03b3328583f0e3dda9f57d64f869e9":()=>h.Mp,"00eb291ba544141c60d7958f9e959b79f2f9d8a400":()=>d.xU,"00f929c9a5e363c2627d22d93ff6d78e2099e26e96":()=>j.O,"400536d238039aead05bf7f4d7fbdfc8c51c7843c2":()=>h.sE,"40080b9ecb374ab8d6da637636f1c5f0ec1a5ed545":()=>d.Wu,"4011628d48357ed1452fb7c9a5f731afd0db9fcaf6":()=>i.F,"402bec7c2456984c1fe884f1c5da4d6fffe97bd7f7":()=>i.VJ,"402c8a49507849c8dadc68a0ab7e5252f35bd0c6f0":()=>A,"405df6a9c5e07f494d2e2032d2fb70d41ed8071913":()=>g.p,"405fbf484a23db94372ad0171b3c233768dfaf15db":()=>C,"4060d995219b189ddd8b5bde8460b4966a0ce1a3fc":()=>e.r7,"4064f7013178539e80988a48c2bcbf7f2601b7a2ef":()=>d.H7,"406652da6c1842257203f196ca974dde11bf297c94":()=>e.lJ,"406895dd20d52dd9c079a834a9d1fe20fbe760e87c":()=>h.lR,"406b43f46b12343c4308031ba6dd85cf6d8c9959fc":()=>k.De,"407047434e130c3e1022a9cc24db08f4a9e37444c0":()=>i.E_,"4074b7e3f11b1ff2a4e1742e92f6d0873d579a2bf5":()=>d.rd,"4076a371abe9c34149b659b394b2666988596376c6":()=>d.GW,"4076f26374203461e3fa42db08eeccaf5e73e0b859":()=>e.S,"4077791d811243b5d88aa224120766f1193c0e7cf2":()=>l.TX,"4079ee52aca558bf2ca3c25800d73e82a85654fb12":()=>F.Kg,"408f6af3b89d125b561686db9d333c71405d1e8c92":()=>d.gg,"409ed8e3ac05d42abbb31aa9cc912fa47dccab739e":()=>g.L,"40a59af64de8dd4c8d03251aa8cc453031ffc5d116":()=>e.jc,"40af2f425a2b393484f681562ca2ad10f90258a8ca":()=>z,"40b97b5bd11b6c45f3b798624b6d39b1a551777ab0":()=>D,"40c0fd577da36c5f011829089eec1fc8c31c716f68":()=>m.y,"40c37cc1e125e055ed670d73b257ae5a5289e3994b":()=>d.VL,"40c8a00bca9795dcead5557c89316aa13bf29f6529":()=>i.zS,"40ca19ba5e5ac6d02d5ea6b1d572dd761a6f6c509e":()=>e.ey,"40ca5a4f5b7457845b609654f7573812403c35c26d":()=>e.RG,"40e5f88f9498cf2c409c2918a99261a817f8cddba0":()=>l.IL,"40e88545faa11118461ff49b6570d9874017fd8a38":()=>F.lP,"40f401348df793ff9a669dc89781ca136c988ecc8b":()=>l.q4,"600b14ee21e263faaef459fbd57c90b8bfd6c675aa":()=>y,"6025ee6c7011b182ab578cd5b8c01983a71f4f639b":()=>l.bV,"6030713e9e3de30ff38e3753735a3c265b9a67af32":()=>e.LZ,"603c43bef66e43b540b8445b0c3fe4ee8e746a3329":()=>f.k,"60447775cf485fddc20528ff35db35dac16ae22f1b":()=>l.bk,"605bf856d868caf0ec9c966cf3519de2ae7419a298":()=>e.AA,"6069d55c3f4e1783abfd4728ea381d7c4de7169b17":()=>f.I,"6073003353f53fe87153ecaf2dc6e40469864fe288":()=>d.rm,"607792cfb0a03c9e049cb9bb4af483172312da6ee7":()=>e.q$,"60a65a814a082be9bda3295b3d75e80fdfd21299d3":()=>d.jw,"60ab2f384d8d0bf6d3965f78790349443f4ce97c9f":()=>l.Jp,"60ac275b57958139495c668cdadd13ace0bca7b0ca":()=>B,"60b0ddcf7c11d05035cea005577a5d7b6ec4a099f7":()=>d.ME,"60dafaec9dc5c3f4d443518bf5cdb9bbea36f18f71":()=>d.Fu,"60f0620d53918ab11292cea0a76fff7f37b9d107b3":()=>d.n4,"7029fdc89f3e11a536c5f3bf9ab215d735dbe62f8b":()=>d._z,"704df4210e0ac1fe8d16aab94af799b5a1dd447d2d":()=>e.M8});var d=c(13712),e=c(4619),f=c(37181),g=c(8937),h=c(86591),i=c(10222),j=c(34567),k=c(78387),l=c(74774),m=c(51773),n=c(80501),o=c(77598),p=c(73591),q=c(3770),r=c(54813),s=c(406),t=c(96405),u=c(81585),v=c(3233),w=c(55593),x=c(45900);async function y(a,b){let{workspace:c}=await (0,t.nP)();await r.db.update(s.routine).set({enabled:b}).where((0,p.Uo)((0,p.eq)(s.routine.id,a),(0,p.eq)(s.routine.workspaceId,c.id))),(0,q.revalidatePath)("/routines")}async function z(a){let{workspace:b}=await (0,t.nP)(),c=a.name.trim();return c?(await r.db.insert(s.routine).values({id:(0,o.randomUUID)(),workspaceId:b.id,name:c.slice(0,120),cmd:(a.cmd??"").trim().slice(0,500),freq:(a.freq??"Daily").trim()||"Daily",agentId:a.agentId||null,enabled:!0}),(0,q.revalidatePath)("/routines"),{ok:!0}):{ok:!1,error:"Name the routine."}}async function A(a){let{workspace:b}=await (0,t.nP)();await r.db.delete(s.routine).where((0,p.Uo)((0,p.eq)(s.routine.id,a),(0,p.eq)(s.routine.workspaceId,b.id))),(0,q.revalidatePath)("/routines")}async function B(a,b){let{workspace:c}=await (0,t.nP)();await r.db.update(s.plugin).set({enabled:b}).where((0,p.Uo)((0,p.eq)(s.plugin.id,a),(0,p.eq)(s.plugin.workspaceId,c.id))),(0,q.revalidatePath)("/plugins")}async function C(a){let{workspace:b}=await (0,t.nP)();await r.db.delete(s.inboxItem).where((0,p.Uo)((0,p.eq)(s.inboxItem.id,a),(0,p.eq)(s.inboxItem.workspaceId,b.id))),(0,q.revalidatePath)("/inbox")}async function D(a){let{workspace:b}=await (0,t.nP)();await r.db.update(s.finding).set({status:"fixed"}).where((0,p.Uo)((0,p.eq)(s.finding.id,a),(0,p.eq)(s.finding.workspaceId,b.id))),await r.db.insert(s.notification).values({id:(0,o.randomUUID)(),workspaceId:b.id,kind:"security",text:"Finding patched by the Code Review Agent",detail:"A security finding was fixed and a report was filed."}),(0,q.revalidatePath)("/security")}async function E(){let{org:a,workspace:b}=await (0,t.nP)(),c=await r.db.select().from(s.agent).where((0,p.eq)(s.agent.workspaceId,b.id)),d=c.find(a=>"whitfield"===a.handle)??c.find(a=>/cyber|sec/i.test(a.role))??c[0],e=(0,o.randomUUID)();if(!d)return{ok:!1,count:0,runId:e,error:"no agent"};await r.db.update(s.agent).set({status:"working"}).where((0,p.eq)(s.agent.id,d.id)),await (0,f.I)(b.id,{runId:e,channel:"security",agentId:d.id,kind:"thinking",target:`${d.name} is reviewing the workspace…`});let g=await r.db.select({name:s.skill.name,instructions:s.skill.instructions,summary:s.skill.summary}).from(s.agentSkill).innerJoin(s.skill,(0,p.eq)(s.agentSkill.skillId,s.skill.id)).where((0,p.Uo)((0,p.eq)(s.agentSkill.agentId,d.id),(0,p.RV)(s.skill.name,["owasp-top-10","owasp-asvs","appsec-fundamentals","secrets-management","secure-auth-sessions","dependency-supply-chain","review-code-perf-security","code-review-practices"]))),h=g.length?`
2
- Apply these review skills (consult before judging):
3
- ${g.map(a=>`- ${a.name}: ${(a.instructions||a.summary).replace(/\s+/g," ").slice(0,300)}`).join("\n")}`:"",i=await (0,v.yY)(a.id,"security review: vulnerabilities, auth, secrets, prior findings and decisions",{agentHandle:d.handle,k:6}),j=i.context?`
4
- Project knowledge (prior findings, decisions, patterns — do not contradict):
5
- ${i.context}`:"",k=[`You are ${d.name}, the security reviewer. Review the code in the current workspace directory for vulnerabilities, secret/token exposure, permission & workspace-isolation issues, and risky patterns.`,h,j,"Output ONLY a JSON array (no prose, no markdown fences) of findings:",'[{"sev":"high"|"med"|"low","title":"short title","file":"relative/path","suggestion":"how to fix"}]',"If the workspace is clean or empty, output []. Do not modify any files."].filter(Boolean).join("\n"),l=(0,u.hW)(d.adapter,d.model),m=(0,u.qX)(d.adapter),n=await (0,u.p1)(k,{orgId:a.id,binary:l,model:m,timeoutMs:24e4},a=>{(0,f.I)(b.id,{runId:e,channel:"security",agentId:d.id,kind:a.kind,target:a.target,detail:a.detail})}),y=[],z=n.text.match(/\[[\s\S]*\]/);if(z)try{y=JSON.parse(z[0])}catch{y=[]}for(let a of y.slice(0,40)){let c="high"===a.sev||"low"===a.sev?a.sev:"med";await r.db.insert(s.finding).values({id:(0,o.randomUUID)(),workspaceId:b.id,sev:c,title:String(a.title??"Finding").slice(0,200),file:String(a.file??""),suggestion:String(a.suggestion??""),status:"open"})}y.length&&(0,v.ru)(a.id,y.slice(0,40).map(a=>({type:"vuln",title:String(a.title??"Finding").slice(0,120),summary:`${a.sev??"med"}: ${String(a.suggestion??"")}`.slice(0,1e3),paths:a.file?[String(a.file)]:void 0,agentHandle:d.handle,sourceKind:"review",sourceRef:`${String(a.file??"")}::${String(a.title??"")}`.slice(0,200)}))).catch(()=>{}),(n.usd>0||n.inputTokens+n.outputTokens>0)&&await r.db.insert(s.costEntry).values({id:(0,o.randomUUID)(),workspaceId:b.id,agentId:d.id,provider:n.binary,model:n.model??d.model,usd:n.usd,tokens:n.inputTokens+n.outputTokens,at:new Date}),await r.db.update(s.workspace).set({settings:{...b.settings??{},lastSecurityRun:Date.now()}}).where((0,p.eq)(s.workspace.id,b.id)),await r.db.update(s.agent).set({status:"idle"}).where((0,p.eq)(s.agent.id,d.id));let A=new Date().toISOString().replace("T"," ").slice(0,19),B=`# Security review
6
-
7
- _By @${d.handle} (${d.role}) \xb7 ${A}_
8
-
9
- `+(y.length?`Filed ${y.length} finding(s):
10
-
11
- `+y.slice(0,40).map(a=>`- **${a.sev??"med"}** ${a.title??"Finding"} — \`${a.file??"?"}\`
12
- - ${a.suggestion??""}`).join("\n")+"\n":"No findings — the workspace looks clean.\n");try{await (0,x.g)(a.id,"Reports/security-review.md",B)}catch(a){console.error("[review] security report write failed:",a)}return await (0,f.I)(b.id,{runId:e,channel:"security",agentId:d.id,kind:n.ok?"done":"error",target:n.ok?`${y.length} finding(s) filed`:(n.error??"review failed").slice(0,200)}),await (0,w.I)(b.id,{kind:"security",text:"Security sweep finished",detail:`${d.name} filed ${y.length} finding(s).`,agentId:d.id}),(0,q.revalidatePath)("/security"),(0,q.revalidatePath)("/","layout"),{ok:n.ok,count:y.length,runId:e,error:n.error}}(0,c(64185).D)([y,z,A,B,C,D,E]),(0,n.A)(y,"600b14ee21e263faaef459fbd57c90b8bfd6c675aa",null),(0,n.A)(z,"40af2f425a2b393484f681562ca2ad10f90258a8ca",null),(0,n.A)(A,"402c8a49507849c8dadc68a0ab7e5252f35bd0c6f0",null),(0,n.A)(B,"60ac275b57958139495c668cdadd13ace0bca7b0ca",null),(0,n.A)(C,"405fbf484a23db94372ad0171b3c233768dfaf15db",null),(0,n.A)(D,"40b97b5bd11b6c45f3b798624b6d39b1a551777ab0",null),(0,n.A)(E,"00546f1091d3727faa7f059e01bc4c7f6315ff4eb8",null);var F=c(51439)},22290:(a,b,c)=>{c.r(b),c.d(b,{"00595fe65e9992464bb663bbac4e29a490158cffd8":()=>d.Kd,"00cdb46e5e7ab44f096a716b62213d04c572098ad6":()=>d.cT,"4097083ab2f522b74645033d17b1248eee70d9bd69":()=>d.j0,"40b5db617bf035af0653aeaf7baa2f667a1836ff30":()=>d.OD});var d=c(54489)},62264:(a,b,c)=>{c.d(b,{FixButton:()=>n,RunReviewButton:()=>o,Toggle:()=>m});var d=c(40201),e=c(98604),f=c(26021);let g=(0,f.createServerReference)("600b14ee21e263faaef459fbd57c90b8bfd6c675aa",f.callServer,void 0,f.findSourceMapURL,"toggleRoutine"),h=(0,f.createServerReference)("60ac275b57958139495c668cdadd13ace0bca7b0ca",f.callServer,void 0,f.findSourceMapURL,"togglePlugin"),i=(0,f.createServerReference)("40b97b5bd11b6c45f3b798624b6d39b1a551777ab0",f.callServer,void 0,f.findSourceMapURL,"fixFinding"),j=(0,f.createServerReference)("00546f1091d3727faa7f059e01bc4c7f6315ff4eb8",f.callServer,void 0,f.findSourceMapURL,"runReview");var k=c(77758),l=c(71955);function m({kind:a,id:b,on:c}){let[f,i]=(0,e.useTransition)(),j="routine"===a?g:h;return(0,d.jsx)("div",{className:"toggle"+(c?" on":""),"aria-disabled":f,role:"switch","aria-checked":c,onClick:()=>!f&&i(()=>j(b,!c))})}function n({id:a}){let b=(0,l.k)(),[c,f]=(0,e.useTransition)();return(0,d.jsxs)("button",{className:"sc2-btn",disabled:c,onClick:()=>f(()=>i(a)),children:[(0,d.jsx)(k.I,{name:"bot",size:12})," ",b("security.letAgentFix")]})}function o(){let a=(0,l.k)(),[b,c]=(0,e.useTransition)();return(0,d.jsxs)("button",{className:"btn-accent",disabled:b,onClick:()=>{window.dispatchEvent(new CustomEvent("constella:agent-run",{detail:{channel:"security"}})),c(async()=>{await j()})},children:[(0,d.jsx)(k.I,{name:"refresh",size:14,className:b?"sync-spin":""})," ",a(b?"security.reviewing":"security.runReview")]})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=939,exports.ids=[939,2392],exports.modules={12577:(a,b,c)=>{c.r(b),c.d(b,{"000620f675346f8a12b50bfbe6296aad9ae5464e72":()=>n.pM,"000bbac63e43218df5325751fe3a032ead4c842701":()=>e.PE,"001bcb77638d1a46912a15a081572ce5f0ffdf5db9":()=>d.bt,"0024362c5f4091f01256d62c3fcde45a2be385d457":()=>j.f,"00491a4a12afe57900974b078cd17d6d523cb8b1d4":()=>n.PG,"006e272f908ea17d464c2c19bd5e38be70801d59d4":()=>k.eg,"008126545795d71c4020cb6427d4d06868907eecde":()=>e.KO,"008ecd70d86cfcfb6ba359f7d9d64ff803ad6de30c":()=>h.x7,"008f74f15b7461eaee38fef26bef041c64508e00ef":()=>e.y_,"00a88340d83bb29f97492219dfdec374cfd0ebedaa":()=>i.V,"00ac20ad63e61fa51e22e465ec134d88bed9156f99":()=>e.GK,"00b16060dadcf7702f25b3430981d23623457e7044":()=>k.dj,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b":()=>n.eU,"00c53c1e02e86178027b1dce76718c7af197262ff1":()=>k.io,"00e5a7f8864d03b3328583f0e3dda9f57d64f869e9":()=>h.Mp,"00eb291ba544141c60d7958f9e959b79f2f9d8a400":()=>d.xU,"00f929c9a5e363c2627d22d93ff6d78e2099e26e96":()=>j.O,"400536d238039aead05bf7f4d7fbdfc8c51c7843c2":()=>h.sE,"40080b9ecb374ab8d6da637636f1c5f0ec1a5ed545":()=>d.Wu,"4011628d48357ed1452fb7c9a5f731afd0db9fcaf6":()=>i.F,"402bec7c2456984c1fe884f1c5da4d6fffe97bd7f7":()=>i.VJ,"405df6a9c5e07f494d2e2032d2fb70d41ed8071913":()=>g.p,"4060d995219b189ddd8b5bde8460b4966a0ce1a3fc":()=>e.r7,"4064f7013178539e80988a48c2bcbf7f2601b7a2ef":()=>d.H7,"406652da6c1842257203f196ca974dde11bf297c94":()=>e.lJ,"406895dd20d52dd9c079a834a9d1fe20fbe760e87c":()=>h.lR,"406b43f46b12343c4308031ba6dd85cf6d8c9959fc":()=>k.De,"407047434e130c3e1022a9cc24db08f4a9e37444c0":()=>i.E_,"4074b7e3f11b1ff2a4e1742e92f6d0873d579a2bf5":()=>d.rd,"4076a371abe9c34149b659b394b2666988596376c6":()=>d.GW,"4076f26374203461e3fa42db08eeccaf5e73e0b859":()=>e.S,"4077791d811243b5d88aa224120766f1193c0e7cf2":()=>l.TX,"4079ee52aca558bf2ca3c25800d73e82a85654fb12":()=>n.Kg,"408f6af3b89d125b561686db9d333c71405d1e8c92":()=>d.gg,"409ed8e3ac05d42abbb31aa9cc912fa47dccab739e":()=>g.L,"40a59af64de8dd4c8d03251aa8cc453031ffc5d116":()=>e.jc,"40c0fd577da36c5f011829089eec1fc8c31c716f68":()=>m.y,"40c37cc1e125e055ed670d73b257ae5a5289e3994b":()=>d.VL,"40c8a00bca9795dcead5557c89316aa13bf29f6529":()=>i.zS,"40ca19ba5e5ac6d02d5ea6b1d572dd761a6f6c509e":()=>e.ey,"40ca5a4f5b7457845b609654f7573812403c35c26d":()=>e.RG,"40e5f88f9498cf2c409c2918a99261a817f8cddba0":()=>l.IL,"40e88545faa11118461ff49b6570d9874017fd8a38":()=>n.lP,"40f401348df793ff9a669dc89781ca136c988ecc8b":()=>l.q4,"6025ee6c7011b182ab578cd5b8c01983a71f4f639b":()=>l.bV,"6030713e9e3de30ff38e3753735a3c265b9a67af32":()=>e.LZ,"603c43bef66e43b540b8445b0c3fe4ee8e746a3329":()=>f.k,"60447775cf485fddc20528ff35db35dac16ae22f1b":()=>l.bk,"605bf856d868caf0ec9c966cf3519de2ae7419a298":()=>e.AA,"6069d55c3f4e1783abfd4728ea381d7c4de7169b17":()=>f.I,"6073003353f53fe87153ecaf2dc6e40469864fe288":()=>d.rm,"607792cfb0a03c9e049cb9bb4af483172312da6ee7":()=>e.q$,"60a65a814a082be9bda3295b3d75e80fdfd21299d3":()=>d.jw,"60ab2f384d8d0bf6d3965f78790349443f4ce97c9f":()=>l.Jp,"60b0ddcf7c11d05035cea005577a5d7b6ec4a099f7":()=>d.ME,"60dafaec9dc5c3f4d443518bf5cdb9bbea36f18f71":()=>d.Fu,"60f0620d53918ab11292cea0a76fff7f37b9d107b3":()=>d.n4,"7029fdc89f3e11a536c5f3bf9ab215d735dbe62f8b":()=>d._z,"704df4210e0ac1fe8d16aab94af799b5a1dd447d2d":()=>e.M8});var d=c(13712),e=c(4619),f=c(37181),g=c(8937),h=c(86591),i=c(10222),j=c(34567),k=c(78387),l=c(74774),m=c(51773),n=c(51439)},13389:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(40201),e=c(77758),f=c(3218),g=c(71955);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},39386:(a,b,c)=>{c.d(b,{O:()=>e});var d=c(26021);let e=(0,d.createServerReference)("00f929c9a5e363c2627d22d93ff6d78e2099e26e96",d.callServer,void 0,d.findSourceMapURL,"curateKbAction")},40870:(a,b,c)=>{c.d(b,{IZ:()=>k,Ix:()=>j,ZF:()=>m,h6:()=>n,w1:()=>l});var d=c(50730),e=c(76760),f=c(12940),g=c(76561),h=c(66408),i=c(76381);function j(a,b){if(!b)return null;let c=(0,h.HZ)(a),d=((0,e.isAbsolute)(b)?(0,e.relative)(c,b):b).replace(/\\/g,"/");return!d||d.startsWith("..")||d.startsWith(".git/")||d.startsWith(".claude/")||d.startsWith("archives/")?null:d}async function k(a,b,c){let e=(0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.path,b)),[h]=await f.db.select().from(g.fileLock).where(e);if(h){let a=!!c.taskId&&h.taskId===c.taskId,b=!h.taskId&&!!c.agentId&&h.agentId===c.agentId;return a||b?(await f.db.update(g.fileLock).set({heartbeatAt:new Date}).where(e),{ok:!0}):{ok:!1,heldBy:{handle:h.agentHandle,taskId:h.taskId}}}try{return await f.db.insert(g.fileLock).values({workspaceId:a,path:b,taskId:c.taskId||"",agentId:c.agentId||"",agentHandle:c.handle||"",acquiredAt:new Date,heartbeatAt:new Date}),{ok:!0}}catch{let[a]=await f.db.select().from(g.fileLock).where(e);if(a&&(a.taskId===c.taskId||a.agentId===c.agentId))return{ok:!0};return{ok:!1,heldBy:a?{handle:a.agentHandle,taskId:a.taskId}:void 0}}}async function l(a,b){if(b)try{let c=await f.db.select({path:g.fileLock.path}).from(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b)));for(let e of(await f.db.delete(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b))),c))await (0,i.W_)(a,"task",`lock:${e.path}`)}catch{}}async function m(a=3e5){try{await f.db.delete(g.fileLock).where((0,d.lt)(g.fileLock.heartbeatAt,new Date(Date.now()-a)))}catch{}}async function n(a){try{return await f.db.select({path:g.fileLock.path,agentHandle:g.fileLock.agentHandle,taskId:g.fileLock.taskId}).from(g.fileLock).where((0,d.eq)(g.fileLock.workspaceId,a))}catch{return[]}}},41323:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(97879).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},47385:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(46309),e=c(34925);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},51439:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(80501),e=c(96405),f=c(90127),g=c(59627),h=c(24582);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(52392),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(37989);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(73591),t=c(54813),u=c(406),v=c(96977);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(64185).D)([x,y,z,A,B]),(0,d.A)(x,"4079ee52aca558bf2ca3c25800d73e82a85654fb12",null),(0,d.A)(y,"40e88545faa11118461ff49b6570d9874017fd8a38",null),(0,d.A)(z,"000620f675346f8a12b50bfbe6296aad9ae5464e72",null),(0,d.A)(A,"00491a4a12afe57900974b078cd17d6d523cb8b1d4",null),(0,d.A)(B,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b",null)},52392:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(90127);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},59627:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},64543:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(50727),e=c(48578),f=c(41323);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}}};