constellai 0.3.1 → 0.3.3

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 (239) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -1
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/(app)/activity/page.js +2 -2
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  9. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/code/page.js +2 -2
  12. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/config/page.js +2 -2
  15. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/costs/page.js +2 -2
  18. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/cron/page.js +2 -2
  21. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/dashboard/page.js +2 -2
  24. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/design/page.js +3 -3
  27. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  30. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  31. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(app)/docs/page.js +2 -2
  33. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/github/page.js +2 -2
  36. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  37. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(app)/goals/page.js +2 -2
  39. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  40. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(app)/inbox/page.js +2 -2
  42. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  43. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(app)/knowledge/page.js +3 -3
  45. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  46. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/(app)/models/page.js +2 -2
  48. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  49. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/(app)/notifications/page.js +2 -2
  51. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  52. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/(app)/org/page.js +4 -4
  54. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  55. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/(app)/organizations/page.js +2 -2
  57. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  58. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/(app)/page.js +3 -3
  60. package/.next/server/app/(app)/page.js.nft.json +1 -1
  61. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/(app)/planner/page.js +2 -2
  63. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  64. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/(app)/plugins/page.js +2 -2
  66. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  67. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/(app)/pm/page.js +2 -2
  69. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  70. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/(app)/prepare-deploy/page.js +2 -2
  72. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  73. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/(app)/profile/page.js +2 -2
  75. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  76. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/(app)/pulse/page.js +2 -2
  78. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  79. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/(app)/reports/[id]/page.js +2 -2
  81. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  82. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/(app)/reports/page.js +3 -3
  84. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  85. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/(app)/routines/page.js +2 -2
  87. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  88. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/(app)/search/page.js +2 -2
  90. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  91. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/(app)/security/page.js +2 -2
  93. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  94. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/(app)/skills/page.js +3 -3
  96. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  97. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/(app)/tasks/page.js +2 -2
  99. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  100. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/(app)/test-dev/page.js +2 -2
  102. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  103. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/(app)/update/page.js +2 -2
  105. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  106. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/(auth)/login/page.js +2 -2
  108. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/(auth)/onboarding/page.js +2 -2
  110. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/_global-error.html +1 -1
  113. package/.next/server/app/_global-error.rsc +1 -1
  114. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  116. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  117. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  118. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  119. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  120. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/cron/tick/route.js +2 -2
  122. package/.next/server/app/api/sync/file/route.js +2 -2
  123. package/.next/server/app/api/telegram/poll/route.js +2 -2
  124. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  125. package/.next/server/app-paths-manifest.json +1 -1
  126. package/.next/server/chunks/1249.js +6 -6
  127. package/.next/server/chunks/259.js +1 -1
  128. package/.next/server/chunks/2867.js +1 -1
  129. package/.next/server/chunks/2960.js +1 -1
  130. package/.next/server/chunks/3174.js +12 -0
  131. package/.next/server/chunks/3234.js +1 -1
  132. package/.next/server/chunks/3334.js +1 -0
  133. package/.next/server/chunks/3439.js +4 -0
  134. package/.next/server/chunks/{896.js → 478.js} +1 -1
  135. package/.next/server/chunks/4979.js +2 -2
  136. package/.next/server/chunks/{6606.js → 5086.js} +13 -13
  137. package/.next/server/chunks/6431.js +1 -1
  138. package/.next/server/chunks/7589.js +1 -1
  139. package/.next/server/chunks/7989.js +1 -1
  140. package/.next/server/chunks/8195.js +21 -0
  141. package/.next/server/chunks/8244.js +1 -0
  142. package/.next/server/chunks/8561.js +1 -1
  143. package/.next/server/chunks/8823.js +1 -1
  144. package/.next/server/chunks/9783.js +1 -1
  145. package/.next/server/middleware-build-manifest.js +1 -1
  146. package/.next/server/pages/500.html +1 -1
  147. package/.next/server/server-reference-manifest.js +1 -1
  148. package/.next/server/server-reference-manifest.json +1 -1
  149. package/.next/static/chunks/386-0f2b8d23016cf4d0.js +1 -0
  150. package/.next/static/chunks/4909-9f16a714c78ed30d.js +4 -0
  151. package/.next/static/chunks/{3448-3ebb2581741d6552.js → 5332-84d9a65aa5d16106.js} +1 -1
  152. package/.next/static/chunks/5664-3cb5735f1b5bbde1.js +1 -0
  153. package/.next/static/chunks/8370-7ec9e9bf414f8f2d.js +12 -0
  154. package/.next/static/chunks/app/(app)/activity/{page-b4f7b6850a427aa9.js → page-0f51a22d4f2207b2.js} +1 -1
  155. package/.next/static/chunks/app/(app)/agents/[handle]/page-14805dd54a1333e8.js +1 -0
  156. package/.next/static/chunks/app/(app)/code/page-7ebd6923ac440103.js +1 -0
  157. package/.next/static/chunks/app/(app)/config/page-47b5b62b73050673.js +1 -0
  158. package/.next/static/chunks/app/(app)/costs/page-969eba498344314d.js +1 -0
  159. package/.next/static/chunks/app/(app)/cron/{page-23924d673b353117.js → page-ab35783e4341f6b7.js} +1 -1
  160. package/.next/static/chunks/app/(app)/dashboard/page-59521ad116c60a88.js +1 -0
  161. package/.next/static/chunks/app/(app)/design/{page-410e5f6f08882c19.js → page-fcee2dfd5c7e3a4b.js} +3 -3
  162. package/.next/static/chunks/app/(app)/docs/[id]/page-b3451b21d7d2127b.js +1 -0
  163. package/.next/static/chunks/app/(app)/docs/page-3a34eec67591ce3e.js +1 -0
  164. package/.next/static/chunks/app/(app)/github/page-a0117637dc143821.js +1 -0
  165. package/.next/static/chunks/app/(app)/goals/page-d1cb2552625ccadb.js +1 -0
  166. package/.next/static/chunks/app/(app)/inbox/{page-57759eb7889a5aa6.js → page-dbfc885cd61f9b9f.js} +2 -2
  167. package/.next/static/chunks/app/(app)/knowledge/page-29df476a9c2f930c.js +1 -0
  168. package/.next/static/chunks/app/(app)/layout-2b6b23e82fbf0211.js +1 -0
  169. package/.next/static/chunks/app/(app)/models/{page-6e3a57c08eca441a.js → page-ea54a5d167cd3cc2.js} +1 -1
  170. package/.next/static/chunks/app/(app)/notifications/page-ef1ac55efadb2a1a.js +12 -0
  171. package/.next/static/chunks/app/(app)/org/page-a7c734b8d86f7641.js +12 -0
  172. package/.next/static/chunks/app/(app)/organizations/page-4bcec3010a9d9119.js +1 -0
  173. package/.next/static/chunks/app/(app)/page-54a99a54295a40be.js +1 -0
  174. package/.next/static/chunks/app/(app)/planner/page-adfd05afc6ddcbef.js +1 -0
  175. package/.next/static/chunks/app/(app)/plugins/{page-2ffa3fd55dbbb32d.js → page-e75d982132825b07.js} +1 -1
  176. package/.next/static/chunks/app/(app)/pm/page-773626398c10fdb7.js +1 -0
  177. package/.next/static/chunks/app/(app)/prepare-deploy/page-01f767248e7fa2a7.js +1 -0
  178. package/.next/static/chunks/app/(app)/profile/page-cb2450679785db1a.js +1 -0
  179. package/.next/static/chunks/app/(app)/pulse/{page-dd0db1606004d1cd.js → page-1a63c4ed76db48f5.js} +1 -1
  180. package/.next/static/chunks/app/(app)/reports/[id]/{page-23924d673b353117.js → page-ab35783e4341f6b7.js} +1 -1
  181. package/.next/static/chunks/app/(app)/reports/page-b0bcc85ad4afecf5.js +1 -0
  182. package/.next/static/chunks/app/(app)/routines/page-c0ce223d128a9010.js +1 -0
  183. package/.next/static/chunks/app/(app)/search/{page-71d3db75f945ae4d.js → page-d30f1c44c95e14a3.js} +1 -1
  184. package/.next/static/chunks/app/(app)/security/page-4640d72a0b360f05.js +1 -0
  185. package/.next/static/chunks/app/(app)/skills/page-87a71bd0a6b0f262.js +1 -0
  186. package/.next/static/chunks/app/(app)/tasks/page-a34a5658aff509ec.js +1 -0
  187. package/.next/static/chunks/app/(app)/test-dev/page-842f8771d36e964b.js +1 -0
  188. package/.next/static/chunks/app/(app)/update/page-64467fa6d8ed737e.js +1 -0
  189. package/.next/static/chunks/app/(auth)/login/page-82964b720ff11bab.js +1 -0
  190. package/.next/static/chunks/app/(auth)/onboarding/{page-fccc9edc6c250f2f.js → page-0cd7cd9fa146a927.js} +1 -1
  191. package/.next/static/chunks/app/_not-found/page-489c316e4356f1b7.js +1 -0
  192. package/.next/trace-build +1 -1
  193. package/CHANGELOG.md +22 -3
  194. package/README.md +1 -1
  195. package/README.pt-BR.md +1 -1
  196. package/docs/UPDATE.md +21 -1
  197. package/docs/en/TROUBLESHOOTING.md +1 -0
  198. package/docs/pt/TROUBLESHOOTING.md +1 -0
  199. package/package.json +1 -1
  200. package/scripts/vps-install.sh +8 -0
  201. package/.next/server/chunks/2873.js +0 -1
  202. package/.next/server/chunks/3076.js +0 -1
  203. package/.next/server/chunks/467.js +0 -21
  204. package/.next/server/chunks/5097.js +0 -4
  205. package/.next/server/chunks/8544.js +0 -12
  206. package/.next/static/chunks/2458-a02b9ba3fbf5a4aa.js +0 -1
  207. package/.next/static/chunks/8370-4306eb227fde422e.js +0 -12
  208. package/.next/static/chunks/8959-2456e03da35f9879.js +0 -1
  209. package/.next/static/chunks/9512-a0f7aae0722248da.js +0 -4
  210. package/.next/static/chunks/app/(app)/agents/[handle]/page-8f3582f06b659fbd.js +0 -1
  211. package/.next/static/chunks/app/(app)/code/page-629706b6872eb74c.js +0 -1
  212. package/.next/static/chunks/app/(app)/config/page-502173fb21b78d88.js +0 -1
  213. package/.next/static/chunks/app/(app)/costs/page-60c884ab3d917cba.js +0 -1
  214. package/.next/static/chunks/app/(app)/dashboard/page-325f833279658e69.js +0 -1
  215. package/.next/static/chunks/app/(app)/docs/[id]/page-d8ef563c662c9c34.js +0 -1
  216. package/.next/static/chunks/app/(app)/docs/page-8cd228461c719430.js +0 -1
  217. package/.next/static/chunks/app/(app)/github/page-9617cd18258e00da.js +0 -1
  218. package/.next/static/chunks/app/(app)/goals/page-e2a13b8a62db3a6c.js +0 -1
  219. package/.next/static/chunks/app/(app)/knowledge/page-1e7da0e09c954bb7.js +0 -1
  220. package/.next/static/chunks/app/(app)/layout-f5678dc87a3ce366.js +0 -1
  221. package/.next/static/chunks/app/(app)/notifications/page-cbb438455126086b.js +0 -12
  222. package/.next/static/chunks/app/(app)/org/page-e8831367a1382eb3.js +0 -12
  223. package/.next/static/chunks/app/(app)/organizations/page-e41ed5fba9cbb700.js +0 -1
  224. package/.next/static/chunks/app/(app)/page-2c4c2724bd2b99b7.js +0 -1
  225. package/.next/static/chunks/app/(app)/planner/page-7c5448444950f6e0.js +0 -1
  226. package/.next/static/chunks/app/(app)/pm/page-ed5ceba076b889f8.js +0 -1
  227. package/.next/static/chunks/app/(app)/prepare-deploy/page-a6ed9a2756c5ed5e.js +0 -1
  228. package/.next/static/chunks/app/(app)/profile/page-43de355af3d9dc28.js +0 -1
  229. package/.next/static/chunks/app/(app)/reports/page-a700f5a3c51fd8b2.js +0 -1
  230. package/.next/static/chunks/app/(app)/routines/page-1a24a2e021239bb1.js +0 -1
  231. package/.next/static/chunks/app/(app)/security/page-bc83e0eeeaa06803.js +0 -1
  232. package/.next/static/chunks/app/(app)/skills/page-7b9d25eefde42c62.js +0 -1
  233. package/.next/static/chunks/app/(app)/tasks/page-49e04347c03ad380.js +0 -1
  234. package/.next/static/chunks/app/(app)/test-dev/page-5a5787dff721c528.js +0 -1
  235. package/.next/static/chunks/app/(app)/update/page-711cca7457171762.js +0 -1
  236. package/.next/static/chunks/app/(auth)/login/page-c4942e3f5c363aee.js +0 -1
  237. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
  238. /package/.next/static/{Ri83ondUvcbIqZUDGJAn8 → Fx06n4huXV42eQUI-Lty0}/_buildManifest.js +0 -0
  239. /package/.next/static/{Ri83ondUvcbIqZUDGJAn8 → Fx06n4huXV42eQUI-Lty0}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2738],{1582:(e,s,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,7032)),Promise.resolve().then(a.bind(a,6702)),Promise.resolve().then(a.bind(a,6425)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,4268)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},4552:(e,s,a)=>{"use strict";a.d(s,{e:()=>l});var i=a(5076);function l({name:e,color:s,size:a=24,health:n,image:t}){let d=Math.max(6,Math.round(.3*a)),r=Math.round(.28*a),c=t?/^(data:|https?:|\/)/.test(t)?t:`/api/upload?path=${encodeURIComponent(t)}`:null;return(0,i.jsxs)("span",{style:{position:"relative",width:a,height:a,flex:`0 0 ${a}px`,display:"inline-block"},children:[c?(0,i.jsx)("img",{src:c,alt:e,width:a,height:a,style:{width:a,height:a,borderRadius:r,objectFit:"cover",display:"block"}}):(0,i.jsx)("span",{style:{width:a,height:a,borderRadius:r,background:s,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*a),fontWeight:700},children:(e[0]||"?").toUpperCase()}),n&&(0,i.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:d,height:d,borderRadius:"50%",background:"alive"===n?"var(--sx-string)":"stale"===n?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},6702:(e,s,a)=>{"use strict";a.d(s,{TaskBoard:()=>f});var i=a(5076),l=a(8488),n=a(8576),t=a(4552),d=a(5629),r=a(7032),c=a(7814);let o=(0,c.createServerReference)("60068d64b440f10da91f14ae129207570c306747c0",c.callServer,void 0,c.findSourceMapURL,"updateTaskDescription"),h=(0,c.createServerReference)("6094b62e3f331d7b6e08003352a3fb1e59efa5975d",c.callServer,void 0,c.findSourceMapURL,"toggleTaskStep"),m=(0,c.createServerReference)("4020f2f2075ffa8b88b9700694af747bf480c7a741",c.callServer,void 0,c.findSourceMapURL,"deleteTaskStep"),p=(0,c.createServerReference)("609eebdfc4c05549d8bffd2bcb210a2bbf9fad2796",c.callServer,void 0,c.findSourceMapURL,"addTaskStep"),u=[{id:"triage",c:"#6cc7e0"},{id:"todo",c:"#84aef5"},{id:"doing",c:"#e0a44e"},{id:"blocked",c:"#e8688f"},{id:"review",c:"#c4a0ff"},{id:"done",c:"#b3d97a"}],v={high:"#e8688f",med:"#f0a35e",low:"#6cc7e0"};function x({task:e,agent:s,onClose:a}){let r=(0,d.k)(),[c,f]=(0,l.useState)(e.description),[b,k]=(0,l.useState)(""),[,j]=(0,l.useTransition)(),g=u.find(s=>s.id===e.col);return(0,i.jsx)("div",{className:"detail-overlay",onMouseDown:a,children:(0,i.jsxs)("div",{className:"detail-panel",onMouseDown:e=>e.stopPropagation(),children:[(0,i.jsxs)("div",{className:"detail-head",children:[(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsx)("span",{className:"kk-id",style:{fontSize:12},children:e.key}),(0,i.jsx)("button",{className:"dock-tool",onClick:a,children:(0,i.jsx)(n.I,{name:"close",size:15})})]}),(0,i.jsx)("div",{className:"view-title",style:{fontSize:17,marginTop:6},children:e.title}),(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:10,alignItems:"center"},children:[s&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.e,{name:s.name,color:s.color,size:22}),(0,i.jsx)("span",{style:{fontSize:12.5,color:"var(--text)"},children:s.name})]}),(0,i.jsx)("span",{className:"pill",style:{marginLeft:6,background:v[e.prio]+"22",color:v[e.prio]},children:r(`tasks.prio.${e.prio}`)}),g&&(0,i.jsx)("span",{className:"chip-sm",children:r(`tasks.col.${g.id}`)})]})]}),(0,i.jsxs)("div",{className:"detail-body",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"detail-label",children:r("common.description")}),(0,i.jsx)("textarea",{className:"persona-ta",value:c,onChange:e=>f(e.target.value),onBlur:()=>{c!==e.description&&j(()=>o(e.id,c))},placeholder:r("tasks.descPlaceholder")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"detail-label",children:r("tasks.liveProgress")}),0===e.steps.length&&(0,i.jsx)("div",{style:{fontSize:12,color:"var(--text-faint)"},children:r("tasks.noSteps",{who:s?s.name:r("tasks.theAgent")})}),e.steps.map(e=>(0,i.jsxs)("div",{className:"live-step "+(e.done?"done":e.active?"active":""),children:[(0,i.jsx)("span",{className:"ls-ico",style:{cursor:"pointer"},onClick:()=>j(()=>h(e.id,!e.done)),children:e.done?(0,i.jsx)(n.I,{name:"check",size:14}):e.active?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(n.I,{name:"refresh",size:13})}):(0,i.jsx)(n.I,{name:"dot",size:8})}),(0,i.jsx)("span",{style:{flex:1},children:e.text}),(0,i.jsx)("button",{className:"iact danger",title:r("tasks.removeStep"),onClick:()=>j(()=>m(e.id)),children:(0,i.jsx)(n.I,{name:"close",size:12})})]},e.id)),(0,i.jsxs)("div",{style:{display:"flex",gap:6,marginTop:8},children:[(0,i.jsx)("input",{className:"form-input",style:{height:30,fontSize:12},placeholder:r("tasks.addStepPlaceholder"),value:b,onChange:e=>k(e.target.value),onKeyDown:s=>{"Enter"===s.key&&b.trim()&&(j(()=>p(e.id,b)),k(""))}}),(0,i.jsx)("button",{className:"btn-ghost",style:{padding:"4px 10px"},disabled:!b.trim(),onClick:()=>{j(()=>p(e.id,b)),k("")},children:(0,i.jsx)(n.I,{name:"add",size:12})})]})]})]})]})})}function f({tasks:e,agents:s}){let a=(0,d.k)(),n=Object.fromEntries(s.map(e=>[e.id,e])),[c,o]=(0,l.useState)(null),h=c?e.find(e=>e.id===c)??null:null;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"kanban",children:u.map(s=>{let l=e.filter(e=>e.col===s.id);return(0,i.jsxs)("div",{className:"kan-col",children:[(0,i.jsxs)("div",{className:"kan-col-head",children:[(0,i.jsx)("span",{className:"kc-dot",style:{background:s.c}}),a(`tasks.col.${s.id}`),(0,i.jsx)("span",{className:"kc-count",children:l.length})]}),(0,i.jsxs)("div",{className:"kan-cards scroll",children:[l.map(e=>{let s=e.assigneeId?n[e.assigneeId]:null,l=e.steps.filter(e=>e.done).length;return(0,i.jsxs)("div",{className:"kan-card",style:{cursor:"pointer"},onClick:()=>o(e.id),children:[(0,i.jsx)("div",{className:"kk-id",children:e.key}),(0,i.jsx)("div",{className:"kk-title",children:e.title}),(0,i.jsxs)("div",{className:"kk-foot",children:[(0,i.jsx)("span",{className:"kk-prio",style:{background:v[e.prio]},title:a(`tasks.prio.${e.prio}`)}),e.steps.length>0&&(0,i.jsxs)("span",{className:"chip-sm",title:a("tasks.stepsDone"),children:[l,"/",e.steps.length]}),s&&(0,i.jsx)(t.e,{name:s.name,color:s.color,size:20}),(0,i.jsx)("span",{style:{marginLeft:"auto"},onClick:e=>e.stopPropagation(),children:(0,i.jsx)(r.X,{id:e.id,col:e.col})})]})]},e.id)}),0===l.length&&(0,i.jsx)("div",{className:"muted",style:{fontSize:11.5,padding:"2px 1px"},children:a("tasks.noCards")})]})]},s.id)})}),h&&(0,i.jsx)(x,{task:h,agent:h.assigneeId?n[h.assigneeId]:null,onClose:()=>o(null)})]})}},7032:(e,s,a)=>{"use strict";a.d(s,{NewTaskButton:()=>m,X:()=>u});var i=a(5076),l=a(8488),n=a(5629),t=a(7814);let d=(0,t.createServerReference)("40fc273d69ce97864eb6d789407e78b13b92fd5b4d",t.callServer,void 0,t.findSourceMapURL,"createTask"),r=(0,t.createServerReference)("40f2140d6df7556c7c0a703858a1807cef964d3719",t.callServer,void 0,t.findSourceMapURL,"unblockTask"),c=(0,t.createServerReference)("60ee573b06c4769aa5611f373790562b595b5b32fc",t.callServer,void 0,t.findSourceMapURL,"moveTask"),o=(0,t.createServerReference)("40cf86cfee134a7ddbb880898d8dccd9b1211bbd44",t.callServer,void 0,t.findSourceMapURL,"blockTask"),h=(0,t.createServerReference)("402840f95875df42d0372f4982969579b391d6b0cd",t.callServer,void 0,t.findSourceMapURL,"deleteTask");function m({agents:e}){let s=(0,n.k)(),[a,t]=(0,l.useState)(!1),[r,c]=(0,l.useState)(""),[o,h]=(0,l.useState)(e[0]?.id??""),[p,u]=(0,l.useState)("med"),[v,x]=(0,l.useTransition)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{className:"btn-accent",onClick:()=>t(!0),children:["+ ",s("tasks.newCard")]}),a&&(0,i.jsx)("div",{className:"modal-overlay",onMouseDown:()=>t(!1),children:(0,i.jsxs)("div",{className:"modal",style:{padding:"20px 22px",width:440,maxWidth:"94vw"},onMouseDown:e=>e.stopPropagation(),children:[(0,i.jsx)("div",{style:{fontSize:15,fontWeight:800,marginBottom:10},children:s("tasks.newTask")}),(0,i.jsx)("label",{className:"form-label",children:s("pm.field.title")}),(0,i.jsx)("input",{className:"form-input",autoFocus:!0,value:r,onChange:e=>c(e.target.value),placeholder:s("tasks.descPlaceholder")}),(0,i.jsx)("label",{className:"form-label",children:s("tasks.assignee")}),(0,i.jsx)("select",{className:"form-input",value:o,onChange:e=>h(e.target.value),children:e.map(e=>(0,i.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,i.jsx)("label",{className:"form-label",children:s("tasks.priority")}),(0,i.jsxs)("select",{className:"form-input",value:p,onChange:e=>u(e.target.value),children:[(0,i.jsx)("option",{value:"low",children:s("tasks.prio.low")}),(0,i.jsx)("option",{value:"med",children:s("tasks.prio.med")}),(0,i.jsx)("option",{value:"high",children:s("tasks.prio.high")})]}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:16},children:[(0,i.jsx)("button",{className:"btn-ghost",onClick:()=>t(!1),children:s("common.cancel")}),(0,i.jsx)("button",{className:"btn-accent",disabled:!r.trim()||v,onClick:function(){x(async()=>{await d({title:r,assigneeId:o,prio:p}),t(!1),c("")})},children:s(v?"tasks.creating":"common.create")})]})]})})]})}let p={triage:"todo",todo:"doing",doing:"review",blocked:"doing",review:"done",done:"done"};function u({id:e,col:s}){let a=(0,n.k)(),[t,d]=(0,l.useTransition)();return(0,i.jsxs)("span",{style:{display:"inline-flex",gap:4},children:["blocked"===s?(0,i.jsx)("button",{className:"mini",disabled:t,title:a("pm.action.unblock"),style:{color:"var(--sx-string)"},onClick:()=>d(()=>r(e)),children:"▶"}):"done"!==s&&(0,i.jsx)("button",{className:"mini",disabled:t,title:a("tasks.advance"),onClick:()=>d(()=>c(e,p[s])),children:"→"}),"done"!==s&&"blocked"!==s&&(0,i.jsx)("button",{className:"mini",disabled:t,title:a("pm.action.block"),style:{color:"#e8688f"},onClick:()=>d(()=>o(e)),children:"⊘"}),(0,i.jsx)("button",{className:"mini",disabled:t,title:a("common.delete"),onClick:()=>d(()=>h(e)),children:"✕"})]})}}},e=>{e.O(0,[9219,3219,5332,8370,6646,6834,7358],()=>e(e.s=1582)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5210],{1445:(e,s,t)=>{"use strict";t.d(s,{j:()=>i});var a=t(7814);let i=(0,a.createServerReference)("004af15ff1cf035f1c0e21a27b10662bd8571441d7",a.callServer,void 0,a.findSourceMapURL,"devServerStatusAction")},3728:(e,s,t)=>{"use strict";t.d(s,{m:()=>d});var a=t(5076),i=t(8488),r=t(8576),n=t(9265),l=t(5629);function d({value:e,options:s,onChange:t,placeholder:c,mono:o,glyph:m,disabled:v,searchable:h}){let p=(0,l.k)(),[u,x]=(0,i.useState)(!1),[g,f]=(0,i.useState)(""),b=(0,i.useRef)(null),j=(0,i.useRef)(null),y=(0,i.useMemo)(()=>(s||[]).map(e=>"string"==typeof e?{value:e,label:e}:e),[s]),w=y.find(s=>s.value===e),N=(h??y.length>8)&&!v,k=g.trim().toLowerCase(),S=N&&k?y.filter(e=>(e.label+" "+e.value+" "+(e.sub||"")).toLowerCase().includes(k)):y;return(0,i.useEffect)(()=>{if(!u)return void f("");function e(e){b.current&&!b.current.contains(e.target)&&x(!1)}function s(e){"Escape"===e.key&&x(!1)}return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),N&&requestAnimationFrame(()=>j.current?.focus()),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s)}},[u,N]),(0,a.jsxs)("div",{className:"dd"+(u?" open":"")+(v?" disabled":""),ref:b,children:[(0,a.jsxs)("button",{type:"button",className:"dd-btn"+(o?" mono":""),onClick:()=>!v&&x(e=>!e),children:[m&&w&&(0,a.jsx)(n.W,{id:w.glyphId||w.value,size:20}),(0,a.jsx)("span",{className:"dd-val",children:w?w.label:(0,a.jsx)("span",{className:"dd-ph",children:c||p("common.selectEllipsis")})}),(0,a.jsx)(r.I,{name:"chevronDown",size:14})]}),u&&(0,a.jsxs)("div",{className:"dd-menu scroll",children:[N&&(0,a.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",margin:"-4px -4px 4px",background:"var(--bg-elev, var(--bg-active))",borderBottom:"1px solid var(--border)"},children:[(0,a.jsx)(r.I,{name:"search",size:13}),(0,a.jsx)("input",{ref:j,value:g,placeholder:p("common.searchEllipsis"),onChange:e=>f(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S[0]?(t(S[0].value),x(!1)):"Escape"===e.key&&g&&(e.stopPropagation(),f(""))},className:o?"mono":void 0,style:{flex:1,minWidth:0,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12.5,fontFamily:o?"var(--mono-font)":"inherit"}}),g&&(0,a.jsx)("button",{type:"button",title:p("common.clear"),onClick:()=>{f(""),j.current?.focus()},style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",display:"flex",padding:0},children:(0,a.jsx)(r.I,{name:"close",size:12})})]}),0===y.length&&(0,a.jsx)("div",{className:"dd-empty",children:p("common.noOptions")}),y.length>0&&0===S.length&&(0,a.jsx)("div",{className:"dd-empty",children:p("dropdown.noMatch",{q:g})}),S.map(s=>(0,a.jsxs)("button",{type:"button",className:"dd-opt"+(s.value===e?" on":""),onClick:()=>{t(s.value),x(!1)},children:[m&&(0,a.jsx)(n.W,{id:s.glyphId||s.value,size:22}),(0,a.jsxs)("span",{className:"dd-opt-main",children:[(0,a.jsx)("span",{className:"dd-opt-label"+(o?" mono":""),children:s.label}),s.sub&&(0,a.jsx)("span",{className:"dd-opt-sub",children:s.sub})]}),s.tag&&(0,a.jsx)("span",{className:"dd-opt-tag",children:s.tag}),s.value===e&&(0,a.jsx)(r.I,{name:"check",size:13})]},s.value))]})]})}},5695:(e,s,t)=>{"use strict";function a(e){if(null==e)return"";let s=e instanceof Date?e:new Date(e);if(isNaN(s.getTime()))return"";let t=s.toLocaleDateString([],{day:"2-digit",month:"short"}),a=s.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return`${t}, ${a}`}t.d(s,{F:()=>a})},7517:(e,s,t)=>{"use strict";t.d(s,{K:()=>i});var a=t(7814);let i=(0,a.createServerReference)("40ee0cd18de3eed6d815d3af1060bc0ae2260d80c2",a.callServer,void 0,a.findSourceMapURL,"previewFrameableAction")},7786:(e,s,t)=>{"use strict";t.d(s,{TestDevScreen:()=>b});var a=t(5076),i=t(8488),r=t(8576),n=t(3728),l=t(5695),d=t(5629),c=t(7517),o=t(7814);let m=(0,o.createServerReference)("0024e2d12693d64f8649f0fe1dca48e11ed8e06141",o.callServer,void 0,o.findSourceMapURL,"stopDevServerAction");var v=t(8943),h=t(1445);let p=(0,o.createServerReference)("40dc7a8c3c76cdf4ba10c35ecdcef439dc05401d48",o.callServer,void 0,o.findSourceMapURL,"runTestDevAction"),u={pass:"var(--sx-string)",fail:"#e8688f",inconclusive:"#d98a2b",running:"var(--accent)"},x={high:"#e8688f",med:"#d98a2b",low:"var(--text-dim)"},g=[{id:"desktop",w:"100%"},{id:"tablet",w:"768px"},{id:"mobile",w:"390px"}];function f({status:e,onStart:s,starting:t}){let n=(0,d.k)(),l=e.url??"",o="running"===e.status&&!!l,[m,v]=(0,i.useState)(l),[h,p]=(0,i.useState)(l),[u,x]=(0,i.useState)(0),[b,j]=(0,i.useState)("desktop"),[y,w]=(0,i.useState)(!0),N=g.find(e=>e.id===b)?.w??"100%";return(0,i.useEffect)(()=>{l?(v(e=>e||l),p(e=>e||l)):(v(""),p(""))},[l]),(0,i.useEffect)(()=>{if(!o||!h)return void w(!0);let e=!0;return(0,c.K)(h).then(s=>{e&&w(s.frameable)}).catch(()=>{}),()=>{e=!1}},[o,h,u]),(0,a.jsxs)("div",{className:"hw-card tdb-card",children:[(0,a.jsxs)("div",{className:"hw-head",children:[(0,a.jsx)("span",{className:"hw-ic",children:(0,a.jsx)(r.I,{name:"goto",size:19})}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{className:"hw-t",children:n("testdev.preview.title")}),(0,a.jsx)("div",{className:"hw-s",children:n("testdev.preview.sub")})]}),(0,a.jsx)("div",{className:"tdb-vp",children:g.map(e=>(0,a.jsx)("button",{className:"tdb-vp-btn"+(b===e.id?" on":""),disabled:!o,onClick:()=>j(e.id),children:n(`testdev.viewport.${e.id}`)},e.id))})]}),(0,a.jsxs)("div",{className:"tdb-bar",children:[(0,a.jsxs)("div",{className:"tdb-dots",children:[(0,a.jsx)("span",{}),(0,a.jsx)("span",{}),(0,a.jsx)("span",{})]}),(0,a.jsx)("button",{className:"tdb-ico",title:n("testdev.preview.reload"),disabled:!o,onClick:function(){x(e=>e+1)},children:(0,a.jsx)(r.I,{name:"refresh",size:14})}),(0,a.jsxs)("form",{className:"tdb-addr",onSubmit:function(e){let s;e?.preventDefault();let t=(s=m.trim())?/^https?:\/\//i.test(s)?s:l.replace(/\/$/,"")+(s.startsWith("/")?s:"/"+s):l;p(t),v(t),x(e=>e+1)},children:[(0,a.jsx)(r.I,{name:o?"shield":"goto",size:12}),(0,a.jsx)("input",{value:m,placeholder:l||n("testdev.preview.addrPlaceholder"),disabled:!o,onChange:e=>v(e.target.value),spellCheck:!1})]}),o?(0,a.jsx)("a",{className:"tdb-ico",title:n("testdev.preview.openNewTab"),href:h,target:"_blank",rel:"noreferrer",children:(0,a.jsx)(r.I,{name:"goto",size:14})}):(0,a.jsx)("span",{className:"tdb-ico off",children:(0,a.jsx)(r.I,{name:"goto",size:14})})]}),(0,a.jsx)("div",{className:"tdb-stage",children:o&&!y?(0,a.jsxs)("div",{className:"tdb-empty",children:[(0,a.jsx)("span",{className:"tdb-empty-ic",children:(0,a.jsx)(r.I,{name:"shield",size:26})}),(0,a.jsx)("div",{className:"tdb-empty-t",children:n("testdev.preview.blocked.title")}),(0,a.jsx)("div",{className:"tdb-empty-s",children:n("testdev.preview.blocked.sub")}),(0,a.jsxs)("a",{className:"btn-accent",style:{marginTop:10},href:h,target:"_blank",rel:"noreferrer",children:[(0,a.jsx)(r.I,{name:"goto",size:13})," ",n("testdev.preview.openNewTabBtn")]})]}):o?(0,a.jsx)("iframe",{className:"tdb-frame",src:h,style:{width:N,maxWidth:"100%"},title:n("testdev.preview.frameTitle"),sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads"},u):(0,a.jsxs)("div",{className:"tdb-empty",children:[(0,a.jsx)("span",{className:"tdb-empty-ic"+(t||"starting"===e.status?" spin":""),children:(0,a.jsx)(r.I,{name:t||"starting"===e.status?"refresh":"goto",size:26})}),(0,a.jsx)("div",{className:"tdb-empty-t",children:"error"===e.status?n("testdev.preview.empty.errorTitle"):t||"starting"===e.status?n("testdev.preview.empty.startingTitle"):n("testdev.preview.empty.idleTitle")}),(0,a.jsx)("div",{className:"tdb-empty-s",children:"error"===e.status?n("testdev.preview.empty.errorSub"):n("testdev.preview.empty.idleSub")}),"running"!==e.status&&"starting"!==e.status&&!t&&(0,a.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:s,children:[(0,a.jsx)(r.I,{name:"goto",size:13})," ",n("testdev.server.start")]})]})})]})}function b({status:e,runs:s,goals:t}){let c=(0,d.k)(),[o,g]=(0,i.useState)(e),[j,y]=(0,i.useState)(""),[w,N]=(0,i.useState)(null),[k,S]=(0,i.useState)(""),[,z]=(0,i.useTransition)();function _(){S("server"),z(async()=>{g(o.running?await m():await (0,v.R)()),S("")})}let C="running"===o.status?"run":"starting"===o.status?"boot":"stop",I="running"===o.status?c("testdev.state.running"):"starting"===o.status?c("testdev.state.starting"):"error"===o.status?c("testdev.state.error"):"none"===o.status?c("testdev.state.notStarted"):c("testdev.state.stopped");return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"lr-grid",children:[(0,a.jsxs)("div",{className:"hw-card",children:[(0,a.jsxs)("div",{className:"hw-head",children:[(0,a.jsx)("span",{className:"hw-ic",children:(0,a.jsx)(r.I,{name:"terminal",size:19})}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{className:"hw-t",children:c("testdev.server.title")}),(0,a.jsx)("div",{className:"hw-s",children:o.project??c("testdev.server.defaultProject")})]}),(0,a.jsx)("button",{className:"iact",title:c("common.refresh"),onClick:function(){z(async()=>{g(await (0,h.j)())})},children:(0,a.jsx)(r.I,{name:"refresh",size:15})})]}),(0,a.jsxs)("div",{className:"srv-status",children:[(0,a.jsx)("span",{className:"srv-dot "+C}),(0,a.jsxs)("div",{className:"srv-meta",children:[(0,a.jsx)("div",{className:"sm-t",children:I}),(0,a.jsx)("div",{className:"sm-s",children:o.url??c("testdev.server.noServer")})]}),(0,a.jsxs)("button",{className:o.running?"btn-ghost":"btn-accent",onClick:_,disabled:"server"===k,children:["server"===k?(0,a.jsx)("span",{className:"sync-spin",children:(0,a.jsx)(r.I,{name:"refresh",size:13})}):(0,a.jsx)(r.I,{name:o.running?"close":"goto",size:13}),o.running?c("testdev.server.stop"):"server"===k?c("testdev.server.working"):c("testdev.server.start")]})]}),(0,a.jsxs)("div",{className:"srv-log scroll",style:{maxHeight:220},children:[0===o.logs.length&&(0,a.jsx)("div",{className:"lg-dim",children:c("testdev.server.noOutput")}),o.logs.map((e,s)=>(0,a.jsx)("div",{className:"err"===e.c?"lg-warn":"info"===e.c?"lg-dim":"lg-ok",children:e.t},s))]})]}),(0,a.jsxs)("div",{className:"hw-card",children:[(0,a.jsxs)("div",{className:"hw-head",children:[(0,a.jsx)("span",{className:"hw-ic",children:(0,a.jsx)(r.I,{name:"pulse",size:19})}),(0,a.jsxs)("div",{style:{flex:1},children:[(0,a.jsx)("div",{className:"hw-t",children:c("testdev.tests.title")}),(0,a.jsx)("div",{className:"hw-s",children:c("testdev.tests.sub")})]})]}),(0,a.jsxs)("div",{style:{marginBottom:10},children:[(0,a.jsx)("div",{className:"pa-flabel",style:{marginBottom:4},children:c("testdev.tests.scope")}),(0,a.jsx)(n.m,{value:j,placeholder:c("testdev.tests.wholeApp"),options:[{value:"",label:c("testdev.tests.wholeApp")},...t.map(e=>({value:e.id,label:e.title.slice(0,40)}))],onChange:y})]}),(0,a.jsx)("button",{className:"btn-accent",style:{width:"100%",justifyContent:"center"},onClick:function(){S("test"),N(null),z(async()=>{let e=await p(j?{goalId:j}:void 0);N({status:e.status,summary:e.summary,findings:e.findings}),g(await (0,h.j)()),S("")})},disabled:"test"===k,children:"test"===k?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"sync-spin",children:(0,a.jsx)(r.I,{name:"refresh",size:13})})," ",c("testdev.tests.testing")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.I,{name:"play",size:13})," ",c("testdev.tests.run")]})}),w&&(0,a.jsxs)("div",{style:{marginTop:12},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,a.jsx)("span",{className:"pill",style:{background:u[w.status]+"22",color:u[w.status]},children:c(`testdev.verdict.${w.status}`)}),(0,a.jsx)("span",{style:{fontSize:12.5,color:"var(--text-dim)"},children:w.summary})]}),w.findings.length>0&&(0,a.jsx)("div",{className:"srv-log scroll",style:{maxHeight:160},children:w.findings.map((e,s)=>(0,a.jsxs)("div",{style:{display:"flex",gap:6,padding:"2px 0"},children:[(0,a.jsx)("span",{style:{color:x[e.severity],fontWeight:700,fontSize:10},children:c(`testdev.severity.${e.severity}`).toUpperCase()}),(0,a.jsxs)("span",{style:{color:"var(--text-faint)",fontSize:11},children:[e.kind,"@",e.route]}),(0,a.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flex:1},children:e.message})]},s))})]})]})]}),(0,a.jsx)(f,{status:o,onStart:_,starting:"server"===k}),(0,a.jsx)("div",{className:"view-section-title",children:c("testdev.recent.title")}),(0,a.jsx)("div",{className:"tbl-wrap",children:(0,a.jsxs)("table",{className:"tbl",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:c("testdev.col.verdict")}),(0,a.jsx)("th",{children:c("testdev.col.summary")}),(0,a.jsx)("th",{children:c("testdev.col.findings")}),(0,a.jsx)("th",{children:c("testdev.col.by")}),(0,a.jsx)("th",{children:c("testdev.col.when")})]})}),(0,a.jsxs)("tbody",{children:[0===s.length&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:5,style:{textAlign:"center",color:"var(--text-faint)",padding:18},children:c("testdev.recent.empty")})}),s.map(e=>{let s=0;try{s=JSON.parse(e.findings).length}catch{}return(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"pill",style:{background:u[e.status]+"22",color:u[e.status]},children:c(`testdev.verdict.${e.status}`)})}),(0,a.jsx)("td",{style:{fontSize:12.5},children:e.summary||"—"}),(0,a.jsx)("td",{style:{color:"var(--text-dim)"},children:s}),(0,a.jsx)("td",{style:{color:"var(--text-dim)"},children:e.by}),(0,a.jsx)("td",{style:{color:"var(--text-faint)",fontSize:11},children:e.startedAt?(0,l.F)(e.startedAt):"—"})]},e.id)})]})]})})]})}},8771:(e,s,t)=>{Promise.resolve().then(t.t.bind(t,3283,23)),Promise.resolve().then(t.bind(t,7786)),Promise.resolve().then(t.bind(t,6425)),Promise.resolve().then(t.bind(t,6588)),Promise.resolve().then(t.bind(t,4414)),Promise.resolve().then(t.bind(t,4268)),Promise.resolve().then(t.bind(t,4942)),Promise.resolve().then(t.bind(t,2444)),Promise.resolve().then(t.bind(t,5787))},8943:(e,s,t)=>{"use strict";t.d(s,{R:()=>i});var a=t(7814);let i=(0,a.createServerReference)("0026963d7b1d7539e886a62262874716cecd5c07de",a.callServer,void 0,a.findSourceMapURL,"startDevServerAction")},9265:(e,s,t)=>{"use strict";t.d(s,{W:()=>l});var a=t(5076),i=t(8488);let r={anthropic:"anthropic",claude_code:"claude",openai:"openai",codex_cli:"openai",google:"google",google_gemini:"gemini",gemini_cli:"gemini",vertex_ai:"vertexai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",perplexity:"perplexity",xai_grok:"grok",groq:"groq",ai21:"ai21",nvidia_nim:"nvidia",huggingface:"huggingface",replicate:"replicate",azure_openai:"azure",aws_bedrock:"bedrock",cloudflare:"cloudflare",dashscope:"qwen",zhipu:"zhipu",moonshot:"moonshot",minimax:"minimax",together:"together",openrouter:"openrouter",fireworks:"fireworks",cerebras:"cerebras",ollama:"ollama",ollama_cli:"ollama",lmstudio:"lmstudio",vllm:"vllm",localai:"localai",elevenlabs:"elevenlabs",stability:"stability",jina:"jina",voyage:"voyage"},n={anthropic:["#d97757","An"],openai:["#10a37f","AI"],google_gemini:["#4285f4","G"],google:["#4285f4","G"],mistral:["#fa520f","Mi"],xai_grok:["#1a1a1a","X"],deepseek:["#4d6bfe","DS"],cohere:["#39594d","Co"],ai21:["#e8488a","A2"],perplexity:["#20808d","Px"],groq:["#f55036","Gq"],nvidia_nim:["#76b900","NV"],together:["#0f6fff","To"],fireworks:["#5019c5","Fw"],cerebras:["#f25733","Cb"],huggingface:["#ff9d00","HF"],replicate:["#1a1a1a","Rp"],openrouter:["#6566f1","OR"],litellm:["#00b8a3","LL"],portkey:["#3b5bdb","Pk"],azure_openai:["#0078d4","Az"],aws_bedrock:["#ff9900","Br"],vertex_ai:["#4285f4","Vx"],cloudflare:["#f38020","Cf"],dashscope:["#ff6a00","Qw"],zhipu:["#3859ff","GL"],moonshot:["#16162a","Ki"],minimax:["#e1342c","MM"],ollama:["#0c0c0c","Ol"],llamacpp:["#7a4ddb","Lc"],lmstudio:["#4a5cff","LM"],vllm:["#1668dc","vL"],localai:["#2e7d32","La"],gpt4all:["#5b6cff","G4"],jan:["#1a1a1a","Jn"],claude_code:["#d97757","CC"],codex_cli:["#10a37f","Cx"],gemini_cli:["#4285f4","Gc"],aider:["#14b8a6","Ad"],ollama_cli:["#0c0c0c","Oc"],openclaw:["#e8590c","OC"],hermes_cli:["#6d28d9","Hm"],opencode:["#1a1a1a","Oc"],copilot_cli:["#1f2328","Co"],cursor_cli:["#1a1a1a","Cu"],cline_cli:["#2563eb","Cl"],kilo_code:["#7c3aed","Ki"],voyage:["#5b21b6","Vo"],jina:["#ec4899","Ji"],stability:["#a855f7","St"],elevenlabs:["#1a1a1a","El"]};function l({id:e,size:s=34,radius:t}){let d,c=n[e],o=c?c[0]:"#5b6378",m=c?c[1]:(e||"?").slice(0,2).replace(/[^a-z0-9]/gi,"").toUpperCase(),v=(d=r[e])?`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg/icons/${d}.svg`:null,[h,p]=(0,i.useState)(!1),u=null!=t?t:Math.round(.28*s),x=v&&!h,g=Math.round(.66*s);return(0,a.jsx)("span",{className:"prov-glyph",style:{width:s,height:s,flex:"0 0 "+s+"px",borderRadius:u,background:x?"#fff":"linear-gradient(150deg, "+o+", color-mix(in srgb, "+o+" 70%, #000))",color:"#fff",display:"grid",placeItems:"center",overflow:"hidden",fontSize:Math.round(.4*s),fontWeight:800,letterSpacing:"-.5px",boxShadow:x?"inset 0 0 0 1px rgba(0,0,0,.08)":"inset 0 1px 0 rgba(255,255,255,.18)"},children:x?(0,a.jsx)("img",{src:v,alt:"",width:g,height:g,loading:"lazy",onError:()=>p(!0),style:{width:g,height:g,objectFit:"contain",display:"block"}}):m})}}},e=>{e.O(0,[9219,3219,5332,8370,6646,6834,7358],()=>e(e.s=8771)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2849],{2162:(e,s,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,4224)),Promise.resolve().then(a.bind(a,6425)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,4268)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},4224:(e,s,a)=>{"use strict";a.d(s,{UpdateScreen:()=>p});var t=a(5076),l=a(8488),n=a(4302),i=a(5393),r=a(8576),d=a(8346),c=a(7390),o=a(827),u=a(5629);function p(e){let s=(0,u.k)(),[a,p]=(0,l.useState)(!1),[h,m]=(0,l.useState)(null),[v,x]=(0,l.useState)(""),[b,g]=(0,l.useState)({latest:e.latest,updateAvailable:e.updateAvailable,type:e.type,changelog:e.changelog}),[j,y]=(0,l.useState)(!1),[f,N]=(0,l.useState)(!1);async function k(){if(!f){N(!0);try{let e=await (0,d.l)(!0);g({latest:e.info.latest,updateAvailable:e.info.updateAvailable,type:e.info.type,changelog:e.info.changelog}),y(e.busy)}catch{}finally{N(!1)}}}async function w(){if(j)return;p(!0),x("");let e=await (0,c.P)();if(m(e),e.blocked){p(!1),y(!0);return}if(e.started){let e=setInterval(async()=>{let s=await (0,o.e)().catch(()=>null);s&&(x(s.status),"done"===s.status?(clearInterval(e),window.location.reload()):"error"===s.status&&(clearInterval(e),p(!1)))},3e3)}else p(!1)}return(0,l.useEffect)(()=>{let e=!1,s=async()=>{try{let s=await (0,d.l)(!1);e||y(s.busy)}catch{}};s();let a=setInterval(s,12e3);return()=>{e=!0,clearInterval(a)}},[]),(0,t.jsxs)("div",{className:"pd-grid",children:[(0,t.jsxs)("div",{className:"hw-card",children:[(0,t.jsxs)("div",{className:"upd-versions",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"upd-k",children:s("update.installed")}),(0,t.jsxs)("div",{className:"upd-v",children:["v",e.current]})]}),(0,t.jsx)(r.I,{name:"goto",size:16,style:{color:"var(--text-faint)"}}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"upd-k",children:s("update.latest")}),(0,t.jsx)("div",{className:"upd-v",style:{color:"var(--accent)"},children:b.latest?"v"+b.latest:"—"})]}),b.type&&(0,t.jsx)("span",{className:"pill",style:{marginLeft:"auto",background:"var(--bg-active)",color:"var(--text-dim)"},children:b.type})]}),(0,t.jsxs)("div",{className:"set-desc",style:{marginTop:10},children:[(0,t.jsx)(r.I,{name:"cpu",size:12})," ",s(`update.ctx.${e.context}`)]}),(0,t.jsxs)("div",{style:{marginTop:14,display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"},children:[b.updateAvailable&&(0,t.jsx)("button",{className:"btn-accent",disabled:a||j,onClick:w,title:j?s("update.busy"):void 0,children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"sync-spin",children:(0,t.jsx)(r.I,{name:"refresh",size:13})})," ",s("update.updating")]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.I,{name:"goto",size:13})," ",s("update.updateNow")]})}),(0,t.jsxs)("button",{className:"btn-ghost",disabled:f,onClick:k,children:[(0,t.jsx)("span",{className:f?"sync-spin":"",style:{display:"inline-flex"},children:(0,t.jsx)(r.I,{name:"sync",size:13})})," ",s("update.checkNow")]}),b.updateAvailable&&(0,t.jsx)("button",{className:"btn-ghost",onClick:()=>history.back(),children:s("update.defer")}),(0,t.jsxs)("a",{className:"btn-ghost",href:"https://github.com/gabriel7silva/constella/blob/main/docs/UPDATE.md",target:"_blank",rel:"noreferrer",children:[(0,t.jsx)(r.I,{name:"doc",size:13})," ",s("update.docs")]})]}),!b.updateAvailable&&(0,t.jsxs)("div",{className:"muted",style:{marginTop:12,fontSize:13},children:[(0,t.jsx)(r.I,{name:"check",size:14})," ",s("update.onLatest")]}),j&&(0,t.jsxs)("div",{className:"form-hint",style:{marginTop:10},children:[(0,t.jsx)(r.I,{name:"pulse",size:13})," ",s("update.busy")]}),h&&(0,t.jsxs)("div",{className:"pd-result",style:{marginTop:14},children:[(0,t.jsx)("div",{style:{fontSize:12.5,color:h.ok?"var(--sx-string)":"var(--text-dim)"},children:h.message}),h.started&&(0,t.jsxs)("div",{className:"muted",style:{fontSize:11.5,marginTop:6},children:[s("update.updaterLabel"),": ",v||s("update.poll.running"),"…","done"===v&&(0,t.jsxs)("b",{style:{color:"var(--sx-string)"},children:[" ✓ ",s("update.poll.done")]}),"error"===v&&(0,t.jsxs)("b",{style:{color:"#e8688f"},children:[" ✖ ",s("update.poll.error")]})]}),h.command&&(0,t.jsx)("pre",{className:"pd-log",style:{marginTop:8},children:h.command}),h.backupDir&&(0,t.jsxs)("div",{className:"muted",style:{fontSize:11},children:[s("update.backupSaved"),": ",h.backupDir]}),"error"===v&&(0,t.jsxs)("div",{className:"form-hint",style:{marginTop:6},children:[s("update.rollback"),": ",(0,t.jsxs)("span",{className:"mono",children:["npm i -g constellai@",e.current]}),", ",s("update.rollbackThen")]})]})]}),b.changelog&&(0,t.jsxs)("div",{className:"hw-card",children:[(0,t.jsx)("h4",{style:{marginTop:0},children:s("update.whatsNew",{version:b.latest??""})}),(0,t.jsx)("div",{className:"upd-changelog",children:(0,t.jsx)(n.oz,{remarkPlugins:[i.A],children:b.changelog})})]})]})}}},e=>{e.O(0,[9219,9690,3219,5332,8370,6646,6834,7358],()=>e(e.s=2162)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[72],{1171:(e,n,t)=>{Promise.resolve().then(t.bind(t,1311))},1311:(e,n,t)=>{"use strict";t.d(n,{LoginForm:()=>f});var a=t(5076),r=t(8488),i=t(9860),s=t(2320),l=t(4055),o=t(7814);let c=(0,o.createServerReference)("407c6155361a3162e882d1fb41b44e4fa1c664826e",o.callServer,void 0,o.findSourceMapURL,"signupAction");var d=t(6816),u=t(8576),g=t(6425),p=t(4268),h=t(5629);function f({screen:e,operatorEmail:n}){let t=(0,i.useRouter)(),o=(0,h.k)(),[m,y]=(0,r.useState)(e),[x,v]=(0,r.useState)(n),[j,b]=(0,r.useState)(""),[w,S]=(0,r.useState)(""),[k,N]=(0,r.useState)(""),[C,L]=(0,r.useState)(!1),[R,T]=(0,r.useState)(""),[z,E]=(0,r.useState)(""),[M,O]=(0,r.useState)(!1),[F,P]=(0,r.useState)("");function J(e){e?.twoFactorRedirect?O(!0):t.push("/")}async function _(){L(!0),T("");let e=await l.Jv.email({email:x,password:w});if(e.error){L(!1),T(o("login.invalidCredentials"));return}J(e.data),L(!1)}async function I(){if(T(""),w!==k)return void T(o("login.passwordMismatch"));L(!0);let e=await c({email:x,name:j,password:w});if(!e.ok){if(L(!1),"alreadyConfigured"===e.error){y("signin"),S(""),N(""),E(o("login.alreadyConfigured"));return}T(o("login.failed"));return}let n=await l.Jv.email({email:e.email,password:w});if(n.error){L(!1),T(o("login.failed"));return}J(n.data),L(!1)}async function B(){L(!0),T("");let e=await l.yK.twoFactor.verifyTotp({code:F});(L(!1),e.error)?T(e.error.message??o("login.invalidCode")):t.push("/")}async function K(){L(!0),T("");try{let e=await fetch("/api/passkey/authenticate/options",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:x})}).then(e=>e.json());if(e.error)throw Error(e.error);let n=await (0,s.HS)({optionsJSON:e}),a=await fetch("/api/passkey/authenticate/verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({response:n})}).then(e=>e.json());if(!a.ok)throw Error(a.error??o("login.passkeyFailed"));t.push("/")}catch(e){L(!1),T(e instanceof Error?e.message:o("login.passkeyFailed"))}}let W="signup"===m?o("login.signup.title"):o("login.title"),U="signup"===m?o("login.signup.sub"):o("login.sub.continue");return(0,a.jsxs)("div",{className:"login-wrap",children:[(0,a.jsx)("div",{className:"login-aurora","aria-hidden":!0,style:{position:"fixed",inset:0,zIndex:-1,pointerEvents:"none",background:"radial-gradient(60% 50% at 70% 20%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 70%), radial-gradient(50% 40% at 20% 80%, color-mix(in srgb, #7c5cff 16%, transparent), transparent 70%)"}}),(0,a.jsxs)("div",{className:"login-card",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:18},children:[(0,a.jsx)(d.J,{size:46,rx:13}),(0,a.jsx)("span",{style:{fontSize:18,fontWeight:800},children:"Constella"}),(0,a.jsxs)("div",{style:{marginLeft:"auto",display:"flex",gap:8,alignItems:"center"},children:[(0,a.jsx)(p.LangSwitch,{}),(0,a.jsx)(g.AnimToggle,{})]})]}),(0,a.jsx)("h1",{style:{fontSize:24,fontWeight:800,marginBottom:6},children:W}),(0,a.jsx)("p",{className:"muted",style:{fontSize:13,marginBottom:16},children:U}),z&&(0,a.jsx)("p",{style:{color:"var(--accent)",fontSize:12.5,marginBottom:10},children:z}),M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("label",{className:"form-label",children:o("login.authCode")}),(0,a.jsx)("input",{className:"form-input",placeholder:"123456",autoFocus:!0,value:F,onChange:e=>P(e.target.value),onKeyDown:e=>{"Enter"===e.key&&F.length>=6&&B()}}),R&&(0,a.jsx)("p",{style:{color:"var(--sx-keyword)",fontSize:12.5,marginTop:8},children:R}),(0,a.jsx)("button",{className:"btn-accent",style:{width:"100%",justifyContent:"center",marginTop:16,padding:11},disabled:C||F.length<6,onClick:B,children:C?o("login.verifying"):o("login.verify")})]}):"signup"===m?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("label",{className:"form-label",children:o("login.name")}),(0,a.jsx)("input",{className:"form-input",value:j,onChange:e=>b(e.target.value),placeholder:"Operator"}),(0,a.jsx)("label",{className:"form-label",children:o("login.email")}),(0,a.jsx)("input",{className:"form-input",value:x,onChange:e=>v(e.target.value)}),(0,a.jsx)("label",{className:"form-label",children:o("login.password")}),(0,a.jsx)("input",{className:"form-input",type:"password",value:w,onChange:e=>S(e.target.value),placeholder:"••••••••"}),(0,a.jsx)("label",{className:"form-label",children:o("login.confirmPassword")}),(0,a.jsx)("input",{className:"form-input",type:"password",value:k,onChange:e=>N(e.target.value),placeholder:"••••••••",onKeyDown:e=>{"Enter"===e.key&&w.length>=8&&k.length>=8&&I()}}),R&&(0,a.jsx)("p",{style:{color:"var(--sx-keyword)",fontSize:12.5,marginTop:8},children:R}),(0,a.jsx)("button",{className:"btn-accent",style:{width:"100%",justifyContent:"center",marginTop:12,padding:11},disabled:C||w.length<8||k.length<8,onClick:I,children:C?o("login.signingIn"):o("login.signup.button")})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("label",{className:"form-label",children:o("login.email")}),(0,a.jsx)("input",{className:"form-input",value:x,onChange:e=>v(e.target.value)}),(0,a.jsx)("label",{className:"form-label",children:o("login.password")}),(0,a.jsx)("input",{className:"form-input",type:"password",value:w,onChange:e=>S(e.target.value),onKeyDown:e=>{"Enter"===e.key&&w.length>=8&&_()}}),R&&(0,a.jsx)("p",{style:{color:"var(--sx-keyword)",fontSize:12.5,marginTop:8},children:R}),(0,a.jsx)("button",{className:"btn-accent",style:{width:"100%",justifyContent:"center",marginTop:12,padding:11},disabled:C||w.length<8,onClick:_,children:C?o("login.signingIn"):o("login.signin")}),(0,a.jsx)("button",{className:"btn-ghost",style:{width:"100%",justifyContent:"center",marginTop:8,padding:10},disabled:C,onClick:K,type:"button",children:o("login.passkey")})]}),(0,a.jsxs)("div",{className:"login-note",style:{display:"flex",alignItems:"center",gap:8,marginTop:16,fontSize:11.5,color:"var(--text-faint)"},children:[(0,a.jsx)(u.I,{name:"shield",size:13})," ",o("login.note")]})]})]})}},4055:(e,n,t)=>{"use strict";t.d(n,{Jv:()=>s,yK:()=>i});var a=t(5138),r=t(8618);let i=(0,a.M)({baseURL:window.location.origin,plugins:[(0,r.N)()]}),{signIn:s,signUp:l,signOut:o,useSession:c,twoFactor:d}=i},6816:(e,n,t)=>{"use strict";t.d(n,{J:()=>r});var a=t(5076);function r({size:e=34,rx:n=9}){return(0,a.jsxs)("svg",{width:e,height:e,viewBox:"0 0 100 100",style:{display:"block",flex:`0 0 ${e}px`},"aria-label":"Constella",children:[(0,a.jsx)("rect",{x:"1",y:"1",width:"98",height:"98",rx:n,fill:"var(--cs-bg)",stroke:"var(--cs-border)",strokeWidth:"1.5"}),(0,a.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,a.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,n)=>(0,a.jsx)("circle",{cx:e[0],cy:e[1],r:"3.1",fill:"var(--cs-node)"},n)),(0,a.jsx)("circle",{cx:"48",cy:"50",r:"8.5",fill:"var(--cs-glow)",opacity:"0.4"}),(0,a.jsx)("circle",{cx:"48",cy:"50",r:"4.3",fill:"var(--cs-core)"})]})}},7814:(e,n,t)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={callServer:function(){return i.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var r in a)Object.defineProperty(n,r,{enumerable:!0,get:a[r]});let i=t(3825),s=t(2617),l=t(5986)},9860:(e,n,t)=>{"use strict";var a=t(2004);t.o(a,"usePathname")&&t.d(n,{usePathname:function(){return a.usePathname}}),t.o(a,"useRouter")&&t.d(n,{useRouter:function(){return a.useRouter}})}},e=>{e.O(0,[7555,2320,3219,5332,6646,6834,7358],()=>e(e.s=1171)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5134],{2307:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>I});var r=a(5076),t=a(8488),n=a(9860),l=a(7814);let i=(0,l.createServerReference)("006cccf1cf8648c8e9b420f3d37d4d86c58178f762",l.callServer,void 0,l.findSourceMapURL,"operatorHasOrg"),c=(0,l.createServerReference)("40c14b8b16b8060a8deae1117e1fd8d7d2580448a7",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)("40b1a2a7601e445372093d6a4b5981799d5dca20ba",l.callServer,void 0,l.findSourceMapURL,"githubReposForToken"),x=(0,l.createServerReference)("006202cab70918d82c1a1d6640e228b9169343d675",l.callServer,void 0,l.findSourceMapURL,"checkSetupEnv"),u=(0,l.createServerReference)("40296b344571217781af2afefb502133fe79f2ff3c",l.callServer,void 0,l.findSourceMapURL,"checkAdapter"),m=(0,l.createServerReference)("404f0d975ba829df8301fd64aa4d27469a4a77d7f4",l.callServer,void 0,l.findSourceMapURL,"testConnection"),p=(0,l.createServerReference)("60eb091c45906d0372f789b19e25df30b270474bdb",l.callServer,void 0,l.findSourceMapURL,"probeModel"),j=(0,l.createServerReference)("00c454ab85a276a4769db7af05ae9bce268a952f95",l.callServer,void 0,l.findSourceMapURL,"detectProviders");var b=a(8088),v=a(3730);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(9562),k=a(973),M=a(6816),N=a(8576),S=a(3728),w=a(9265),C=a(5629);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")]})]})]})]})})]})}},5629:(e,s,a)=>{"use strict";a.d(s,{LangProvider:()=>i,k:()=>c});var r=a(5076),t=a(8488),n=a(3219);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)}},6816:(e,s,a)=>{"use strict";a.d(s,{J:()=>t});var r=a(5076);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)"})]})}},7814:(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(3825),l=a(2617),i=a(5986)},8576:(e,s,a)=>{"use strict";a.d(s,{I:()=>n});var r=a(5076);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}},9177:(e,s,a)=>{Promise.resolve().then(a.bind(a,2307))},9860:(e,s,a)=>{"use strict";var r=a(2004);a.o(r,"usePathname")&&a.d(s,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(s,{useRouter:function(){return r.useRouter}})}},e=>{e.O(0,[3219,4263,9562,6646,6834,7358],()=>e(e.s=9177)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5134],{4526:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>I});var r=a(5076),t=a(8488),n=a(9860),l=a(7814);let i=(0,l.createServerReference)("0069a0375c633fde1b5af25e39b13f2344e4474f6c",l.callServer,void 0,l.findSourceMapURL,"operatorHasOrg"),c=(0,l.createServerReference)("40a6d78084a3eae2f319b09ed1e9a3bc48b030c55c",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)("401a8ffed3e8dc7848177474edc403f5a72496d114",l.callServer,void 0,l.findSourceMapURL,"githubReposForToken"),x=(0,l.createServerReference)("00a1472c0197981c7759af669e0698374b558c5b3a",l.callServer,void 0,l.findSourceMapURL,"checkSetupEnv"),u=(0,l.createServerReference)("40ea93891fee122229bface2df45e51ed201c35877",l.callServer,void 0,l.findSourceMapURL,"checkAdapter"),m=(0,l.createServerReference)("4073b4cf374846b740a1e596ce9da014350b4f1281",l.callServer,void 0,l.findSourceMapURL,"testConnection"),p=(0,l.createServerReference)("60698f01a9ec09368c4477b95ff4fe692a9c0ee614",l.callServer,void 0,l.findSourceMapURL,"probeModel"),j=(0,l.createServerReference)("00316e3ba29ffc1699b2c0691b73ac23d7f6e4d1f0",l.callServer,void 0,l.findSourceMapURL,"detectProviders");var b=a(8088),v=a(3730);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(9562),k=a(973),M=a(6816),N=a(8576),S=a(3728),w=a(9265),C=a(5629);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")]})]})]})]})})]})}},5629:(e,s,a)=>{"use strict";a.d(s,{LangProvider:()=>i,k:()=>c});var r=a(5076),t=a(8488),n=a(3219);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)}},6816:(e,s,a)=>{"use strict";a.d(s,{J:()=>t});var r=a(5076);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)"})]})}},7814:(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(3825),l=a(2617),i=a(5986)},8576:(e,s,a)=>{"use strict";a.d(s,{I:()=>n});var r=a(5076);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}},9177:(e,s,a)=>{Promise.resolve().then(a.bind(a,4526))},9860:(e,s,a)=>{"use strict";var r=a(2004);a.o(r,"usePathname")&&a.d(s,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(s,{useRouter:function(){return r.useRouter}})}},e=>{e.O(0,[3219,4263,9562,6646,6834,7358],()=>e(e.s=9177)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9492],{4321:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(5076),n=l(5041);function o({status:e,message:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:`${e}: ${t}`}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:e}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:t})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5041:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5608:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(5076),n=l(4321),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5845:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(5608)}])}},e=>{e.O(0,[6646,6834,7358],()=>e(e.s=5845)),_N_E=e.O()}]);
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":26949896,"timestamp":185188616674,"id":14,"parentId":1,"tags":{},"startTime":1782504891767,"traceId":"9d84c7b7967bb97f"},{"name":"run-typescript","duration":11749149,"timestamp":185215571885,"id":7670,"parentId":1,"tags":{},"startTime":1782504918722,"traceId":"9d84c7b7967bb97f"},{"name":"static-check","duration":1847803,"timestamp":185227516476,"id":7673,"parentId":1,"tags":{},"startTime":1782504930667,"traceId":"9d84c7b7967bb97f"},{"name":"static-generation","duration":3471284,"timestamp":185230248459,"id":7783,"parentId":1,"tags":{},"startTime":1782504933399,"traceId":"9d84c7b7967bb97f"},{"name":"collect-build-traces","duration":11905382,"timestamp":185229368351,"id":7780,"parentId":1,"tags":{},"startTime":1782504932519,"traceId":"9d84c7b7967bb97f"},{"name":"telemetry-flush","duration":54,"timestamp":185241277950,"id":7792,"parentId":1,"tags":{},"startTime":1782504944428,"traceId":"9d84c7b7967bb97f"},{"name":"next-build","duration":52779124,"timestamp":185188498887,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782504891649,"traceId":"9d84c7b7967bb97f"}]
1
+ [{"name":"run-webpack","duration":28123414,"timestamp":188576713988,"id":14,"parentId":1,"tags":{},"startTime":1782508279864,"traceId":"a4e358a6c66332a8"},{"name":"run-typescript","duration":11131837,"timestamp":188604843419,"id":7669,"parentId":1,"tags":{},"startTime":1782508307994,"traceId":"a4e358a6c66332a8"},{"name":"static-check","duration":1473166,"timestamp":188616164789,"id":7672,"parentId":1,"tags":{},"startTime":1782508319315,"traceId":"a4e358a6c66332a8"},{"name":"static-generation","duration":2941059,"timestamp":188618394581,"id":7782,"parentId":1,"tags":{},"startTime":1782508321545,"traceId":"a4e358a6c66332a8"},{"name":"collect-build-traces","duration":10815973,"timestamp":188617642309,"id":7779,"parentId":1,"tags":{},"startTime":1782508320792,"traceId":"a4e358a6c66332a8"},{"name":"telemetry-flush","duration":52,"timestamp":188628462932,"id":7791,"parentId":1,"tags":{},"startTime":1782508331613,"traceId":"a4e358a6c66332a8"},{"name":"next-build","duration":51864070,"timestamp":188576598934,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782508279749,"traceId":"a4e358a6c66332a8"}]
package/CHANGELOG.md CHANGED
@@ -12,6 +12,28 @@ may still introduce breaking changes while the platform stabilises.
12
12
 
13
13
  ---
14
14
 
15
+ ## [0.3.2] — 2026-06-26 — "Install & onboarding fixes"
16
+
17
+ A point release fixing first-run on Windows and on a VPS.
18
+
19
+ ### Fixed
20
+ - **`npx constellai` works on Windows** — the package now ships a matching **`constellai`** bin (alongside `constella`),
21
+ so `npx constellai --start` no longer fails with `'constella' is not recognized` (npx needs a bin named like the
22
+ package). A global install still exposes the short `constella` command.
23
+ - **Onboarding no longer freezes at "Setting up… 100%"** — the workspace was created, but a client-side `router.push` +
24
+ `router.refresh` inside a transition stalled on the redirect handshake. It now hard-navigates to the Planner
25
+ (`window.location`), so onboarding finishes reliably in **every** mode (`--start` / `--vps` / `--portable`).
26
+ - **VPS: the systemd service now sees your CLIs** — `constella.service` had no `PATH`, so it ran with systemd's minimal
27
+ PATH and couldn't find per-user CLIs (Claude Code / Codex / …); the onboarding "detected providers" missed them and
28
+ agent runs couldn't spawn the binary. `vps-install.sh` now bakes a full `Environment=PATH` into the service (covers
29
+ **all** CLIs). On an existing host: symlink the CLI into `/usr/local/bin`, or add a `PATH=` systemd drop-in — see
30
+ [Troubleshooting](docs/en/TROUBLESHOOTING.md).
31
+ - **Avatar photos show in the home chat** — the home page passed the operator without its `image`, so an uploaded
32
+ operator photo never appeared there (always the "OP" initials); the @-mention list also dropped the agent image.
33
+ Both now thread the saved avatar (the chat dock + sidebar already did). Avatars are small data URLs in the DB.
34
+
35
+ ---
36
+
15
37
  ## [0.3.0] — 2026-06-26 — "Design = the real project: text-only canvas · Live Inspect · promotion · resilience"
16
38
 
17
39
  First clean public release. The Design module becomes the front of the build pipeline: every visual request routes
@@ -91,9 +113,6 @@ Telegram.
91
113
  - **Prototype navigation no longer breaks out of the canvas** — clicking an in-page nav link in Preview switches between
92
114
  the prototype's own screens instead of navigating the sandbox frame to the app's login.
93
115
  - **Live canvas** — the preview iframe no longer warns on an empty `src` (it falls back to the dev-server URL).
94
- - **`npx constellai` works on Windows** — the package now ships a matching **`constellai`** bin (alongside `constella`),
95
- so `npx constellai --start` no longer fails with `'constella' is not recognized` (npx needs a bin named like the
96
- package). A global install still exposes the short `constella` command.
97
116
 
98
117
  ---
99
118
 
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.0-22d3ee?style=for-the-badge">
8
+ <img alt="version" src="https://img.shields.io/badge/version-0.3.2-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.0-22d3ee?style=for-the-badge">
8
+ <img alt="version" src="https://img.shields.io/badge/version-0.3.2-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,7 +4,7 @@
4
4
 
5
5
  ![](./assets/divider-orbit.svg)
6
6
 
7
- **Current stable release: `v0.3.0`** — the first clean public release. See what changed in the
7
+ **Current stable release: `v0.3.2`** — install & onboarding fixes on top of 0.3.0. See what changed in the
8
8
  [Changelog](../CHANGELOG.md) (the Update module also shows it inline as “What's new”).
9
9
 
10
10
  > This is the page the **Update** module's “docs” button opens. It tells you, in plain terms, how to move Constella
@@ -18,6 +18,26 @@ it didn't earn: the updater writes the real result and the screen reflects it tr
18
18
 
19
19
  ---
20
20
 
21
+ ## 🆕 What's new — release history
22
+
23
+ Latest first. The in-app **Update** module shows the changelog inline as “What's new”; this is the same history, kept
24
+ here so the “docs” button always shows what each release added. Full detail: [Changelog](../CHANGELOG.md).
25
+
26
+ ### v0.3.2 — install & onboarding fixes
27
+ - `npx constellai` works on **Windows** (the package ships a matching `constellai` bin).
28
+ - Onboarding no longer freezes at “Setting up… 100%” — it hard-navigates to the Planner (all modes).
29
+ - **VPS:** the systemd service gets a real `PATH`, so it detects + runs your CLIs (Claude Code / Codex / …).
30
+ - Avatar photos show in the home chat + @-mention list (the operator/agent image is threaded everywhere now).
31
+
32
+ ### v0.3.0 — first clean public release
33
+ - **Design module** — Grace prototypes the UI on a faithful, **text-only** canvas; the approved design **becomes the
34
+ real served frontend** (engineers extend it, never rebuild). **Live app + Inspect**: render the real running dev
35
+ server (any stack) and click an element to ask Grace to change it. Visual-fidelity gate + Telegram control.
36
+ - **Context donut** — per-conversation, per-agent token + `$` cost in the chat header.
37
+ - **Resilience** — agent runs retry transient failures (429 / quota / 5xx); the Design→execution handoff is idempotent + resumable.
38
+
39
+ ---
40
+
21
41
  ## ✦ Update from the app (recommended)
22
42
 
23
43
  Open the **Update** module (the rocket icon, or `/update`):
@@ -114,6 +114,7 @@ Each diamond is a place a real symptom appears. The table in [§7](#7-symptom--c
114
114
  | Symptom | Cause | Fix |
115
115
  |---|---|---|
116
116
  | Agent runs error instantly, result text is a spawn error | `claude` (or `codex`) **not installed / not on PATH** | Install the CLI; verify with `claude --version`. `runProc` spawns the bare binary in the workspace cwd. |
117
+ | **Detected providers** miss Claude Code / Codex on a **VPS (systemd) install** — or agent runs can't spawn the CLI | `constella.service` ran with systemd's **minimal PATH** (`/usr/bin:/bin`), which excludes the per-user dirs (`~/.local/bin`, `~/.npm-global/bin`, the Claude native install) where the CLIs live — even though they work in your shell | Reinstall / upgrade with the current `vps-install.sh` — it bakes a full `Environment=PATH` into the service (covers **all** CLIs: claude, codex, aider, cursor-agent, …). Already running? Quick fix: `sudo ln -sf "$(command -v claude)" /usr/local/bin/claude` then `sudo systemctl restart constella` and reload the page. Robust (covers every CLI): drop a `[Service] Environment=PATH=…` file in `/etc/systemd/system/constella.service.d/` — see [VPS_MODE](./VPS_MODE.md). |
117
118
  | Agent runs but result is empty / "needs login" | CLI installed but **not authenticated** | Sign in to Claude Code; for Codex run `codex login`. `detectCliAuth` checks `~/.claude/.credentials.json`, `~/.codex/auth.json`. `LOGIN_HINTS` shows the per-CLI action in the UI. |
118
119
  | Run ends with `error: "timed out"` | The CLI exceeded the **180 s** default timeout | Heavy tasks: increase the timeout for that adapter, or split the work. The runner SIGKILLs at the cap and records `timed out` honestly. |
119
120
  | Agent ignores its configured model | Model id failed `safeModel` validation (injection guard) | Use a plausible CLI model id (`opus`/`sonnet`/`haiku`, `gpt-5-codex`, or `provider/model`). An invalid value is dropped and the CLI uses its own default. |
@@ -114,6 +114,7 @@ Cada losango é um lugar onde um sintoma real aparece. A tabela em [§7](#7-sint
114
114
  | Sintoma | Causa | Correção |
115
115
  |---|---|---|
116
116
  | Os agentes erram instantaneamente, o texto do resultado é um erro de spawn | `claude` (ou `codex`) **não instalado / fora do PATH** | Instale a CLI; verifique com `claude --version`. O `runProc` faz spawn do binário puro no cwd do workspace. |
117
+ | Os **detected providers** não mostram Claude Code / Codex num install **VPS (systemd)** — ou os runs de agente não conseguem dar spawn na CLI | O `constella.service` rodou com o **PATH mínimo** do systemd (`/usr/bin:/bin`), que exclui os dirs de usuário (`~/.local/bin`, `~/.npm-global/bin`, o install nativo do Claude) onde as CLIs vivem — mesmo que funcionem no seu shell | Reinstale / atualize com o `vps-install.sh` atual — ele assa um `Environment=PATH` completo no serviço (cobre **todas** as CLIs: claude, codex, aider, cursor-agent, …). Já rodando? Fix rápido: `sudo ln -sf "$(command -v claude)" /usr/local/bin/claude` então `sudo systemctl restart constella` e recarregue a página. Robusto (cobre toda CLI): solte um arquivo `[Service] Environment=PATH=…` em `/etc/systemd/system/constella.service.d/` — veja [VPS_MODE](./VPS_MODE.md). |
117
118
  | O agente roda mas o resultado vem vazio / "needs login" | CLI instalada mas **sem autenticação** | Faça login no Claude Code; para o Codex rode `codex login`. O `detectCliAuth` confere `~/.claude/.credentials.json`, `~/.codex/auth.json`. O `LOGIN_HINTS` mostra a ação por CLI na UI. |
118
119
  | A execução termina com `error: "timed out"` | A CLI estourou o timeout padrão de **180 s** | Tarefas pesadas: aumente o timeout daquele adaptador, ou divida o trabalho. O runner dá SIGKILL no limite e registra `timed out` honestamente. |
119
120
  | O agente ignora o modelo configurado | O id de modelo falhou na validação do `safeModel` (guarda de injeção) | Use um id de modelo plausível (`opus`/`sonnet`/`haiku`, `gpt-5-codex`, ou `provider/model`). Um valor inválido é descartado e a CLI usa o próprio padrão. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "constellai",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
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",
@@ -42,6 +42,13 @@ say "• Installing the ${PKG} CLI…"
42
42
  $SUDO npm install -g "$PKG"
43
43
  BIN="$(command -v constella || true)"; [ -n "$BIN" ] || BIN="/usr/bin/constella"
44
44
 
45
+ # Agent CLIs (claude / codex / …) install into per-USER bin dirs (~/.local/bin, ~/.npm-global/bin, the claude
46
+ # native install) that systemd's minimal PATH does NOT include — so the service couldn't run them: the onboarding
47
+ # "detected providers" missed Claude Code, and real agent runs would fail to spawn the CLI. Bake a PATH that
48
+ # covers the common locations + the installer's own PATH so the service sees exactly what your shell does.
49
+ NPM_BIN="$(npm config get prefix 2>/dev/null)/bin"
50
+ SVC_PATH="${RUN_HOME}/.local/bin:${RUN_HOME}/.npm-global/bin:${NPM_BIN}:${RUN_HOME}/.claude/local:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH}"
51
+
45
52
  # 3) Tailscale on the host (the host IS the tailnet node — no sidecar, no auth key prompt).
46
53
  if ! command -v tailscale >/dev/null 2>&1; then
47
54
  say "• Installing Tailscale…"; curl -fsSL https://tailscale.com/install.sh | $SUDO sh
@@ -64,6 +71,7 @@ User=${RUN_USER}
64
71
  Environment=CONSTELLA_RUN_MODE=vps
65
72
  Environment=CONSTELLA_HOME=${CHOME}
66
73
  Environment=CONSTELLA_SKIP_TAILSCALE=1
74
+ Environment=PATH=${SVC_PATH}
67
75
  ExecStart=${BIN} --vps --host 0.0.0.0 --port 3000
68
76
  Restart=always
69
77
  RestartSec=3
@@ -1 +0,0 @@
1
- "use strict";exports.id=2873,exports.ids=[2873],exports.modules={13366:(a,b,c)=>{c.d(b,{IssueApprove:()=>x,PlanGate:()=>v,PlanGateLive:()=>u,Run247Button:()=>y,p:()=>w});var d=c(4374),e=c(74679),f=c(47104),g=c(43526),h=c(31819),i=c(73134),j=c(2910);let k=(0,j.createServerReference)("40450a0c5eb5d42288f8edc35cdda807d3ffe378d4",j.callServer,void 0,j.findSourceMapURL,"generatePlan"),l=(0,j.createServerReference)("0094c68e5d8ae27a38c2bd1492fa91f485c20baf7f",j.callServer,void 0,j.findSourceMapURL,"requestPlanChanges");var m=c(18652),n=c(95194),o=c(32615),p=c(84864),q=c(40517);let r=(0,j.createServerReference)("4053432c432054831d20975e1e65a66988030a4f0e",j.callServer,void 0,j.findSourceMapURL,"setAuto247"),s=(0,j.createServerReference)("0032843df6c5fd5a436d05659469e7f651dd32242a",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}})]})}},18652:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(2910);let e=(0,d.createServerReference)("00c99d35945d63e97a89009c09781c5b21b0acc17b",d.callServer,void 0,d.findSourceMapURL,"approvePlan")},25543:(a,b,c)=>{c.d(b,{IssueApprove:()=>g,PlanGate:()=>f,PlanGateLive:()=>e,Run247Button:()=>h});var d=c(62060);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")},32615:(a,b,c)=>{c.d(b,{J:()=>e});var d=c(2910);let e=(0,d.createServerReference)("40897e2a44d7f53511f5dcf1a6e28ed1e87f290a91",d.callServer,void 0,d.findSourceMapURL,"rejectSpec")},40517:(a,b,c)=>{c.d(b,{d:()=>e});var d=c(2910);let e=(0,d.createServerReference)("403eb27ac6dd12d1dfd8f40e28a954adef6a5b3595",d.callServer,void 0,d.findSourceMapURL,"rejectIssue")},73134:(a,b,c)=>{c.d(b,{AgentRunLive:()=>j});var d=c(4374),e=c(74679),f=c(47104),g=c(43526);c(58492);var h=c(31819);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))})]})]})}},84864:(a,b,c)=>{c.d(b,{t:()=>e});var d=c(2910);let e=(0,d.createServerReference)("409816fd19642222bf709e2fdc9ce8e9649a51d8d5",d.callServer,void 0,d.findSourceMapURL,"approveIssue")},87690:(a,b,c)=>{c.r(b),c.d(b,{"0006b986e706764f7e68c2fa897dbbc944bd4b035b":()=>d.Kd,"002b644c7c4acf439e199ad3d9dcde5b6c93dbaf14":()=>d.cT,"408d2eaa08e43fd49b96f8d3625f78a29d9e79a465":()=>d.j0,"40fb810755cbed2fd04599d709d638fec7d7246901":()=>d.OD});var d=c(14565)},95194:(a,b,c)=>{c.d(b,{B:()=>e});var d=c(2910);let e=(0,d.createServerReference)("407d6351a6012a257ba1829e0d378c321607050ac6",d.callServer,void 0,d.findSourceMapURL,"approveSpec")}};