quadwork 1.18.0 → 1.18.2

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 (77) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +3 -3
  3. package/out/__next._full.txt +14 -14
  4. package/out/__next._head.txt +4 -4
  5. package/out/__next._index.txt +8 -8
  6. package/out/__next._tree.txt +2 -2
  7. package/out/_next/static/chunks/0ff8u_cv_ch08.js +3 -0
  8. package/out/_next/static/chunks/0p0jf.pgd..3d.css +2 -0
  9. package/out/_next/static/chunks/0p70ihm9n4drm.js +1 -0
  10. package/out/_next/static/chunks/{0hpnwm9coputy.js → 0xwbrozjfr9d5.js} +7 -7
  11. package/out/_next/static/chunks/0zahstmgdrpy5.js +1 -0
  12. package/out/_next/static/chunks/13fv-yi7.v52g.js +1 -0
  13. package/out/_not-found/__next._full.txt +13 -13
  14. package/out/_not-found/__next._head.txt +4 -4
  15. package/out/_not-found/__next._index.txt +8 -8
  16. package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
  17. package/out/_not-found/__next._not-found.txt +3 -3
  18. package/out/_not-found/__next._tree.txt +2 -2
  19. package/out/_not-found.html +1 -1
  20. package/out/_not-found.txt +13 -13
  21. package/out/app-shell/__next._full.txt +13 -13
  22. package/out/app-shell/__next._head.txt +4 -4
  23. package/out/app-shell/__next._index.txt +8 -8
  24. package/out/app-shell/__next._tree.txt +2 -2
  25. package/out/app-shell/__next.app-shell.__PAGE__.txt +2 -2
  26. package/out/app-shell/__next.app-shell.txt +3 -3
  27. package/out/app-shell.html +1 -1
  28. package/out/app-shell.txt +13 -13
  29. package/out/index.html +1 -1
  30. package/out/index.txt +14 -14
  31. package/out/project/_/__next._full.txt +14 -14
  32. package/out/project/_/__next._head.txt +4 -4
  33. package/out/project/_/__next._index.txt +8 -8
  34. package/out/project/_/__next._tree.txt +2 -2
  35. package/out/project/_/__next.project.$d$id.__PAGE__.txt +3 -3
  36. package/out/project/_/__next.project.$d$id.txt +3 -3
  37. package/out/project/_/__next.project.txt +3 -3
  38. package/out/project/_/queue/__next._full.txt +14 -14
  39. package/out/project/_/queue/__next._head.txt +4 -4
  40. package/out/project/_/queue/__next._index.txt +8 -8
  41. package/out/project/_/queue/__next._tree.txt +2 -2
  42. package/out/project/_/queue/__next.project.$d$id.queue.__PAGE__.txt +3 -3
  43. package/out/project/_/queue/__next.project.$d$id.queue.txt +3 -3
  44. package/out/project/_/queue/__next.project.$d$id.txt +3 -3
  45. package/out/project/_/queue/__next.project.txt +3 -3
  46. package/out/project/_/queue.html +1 -1
  47. package/out/project/_/queue.txt +14 -14
  48. package/out/project/_.html +1 -1
  49. package/out/project/_.txt +14 -14
  50. package/out/settings/__next._full.txt +14 -14
  51. package/out/settings/__next._head.txt +4 -4
  52. package/out/settings/__next._index.txt +8 -8
  53. package/out/settings/__next._tree.txt +2 -2
  54. package/out/settings/__next.settings.__PAGE__.txt +3 -3
  55. package/out/settings/__next.settings.txt +3 -3
  56. package/out/settings.html +1 -1
  57. package/out/settings.txt +14 -14
  58. package/out/setup/__next._full.txt +14 -14
  59. package/out/setup/__next._head.txt +4 -4
  60. package/out/setup/__next._index.txt +8 -8
  61. package/out/setup/__next._tree.txt +2 -2
  62. package/out/setup/__next.setup.__PAGE__.txt +3 -3
  63. package/out/setup/__next.setup.txt +3 -3
  64. package/out/setup.html +1 -1
  65. package/out/setup.txt +14 -14
  66. package/package.json +1 -1
  67. package/server/index.js +28 -9
  68. package/server/routes.js +14 -0
  69. package/out/_next/static/chunks/054b72jq_7mig.js +0 -3
  70. package/out/_next/static/chunks/0_mwyljcf37eu.js +0 -1
  71. package/out/_next/static/chunks/0fgh-nb.8001g.js +0 -1
  72. package/out/_next/static/chunks/13r2x5-nb_j73.js +0 -1
  73. package/out/_next/static/chunks/17uaru~4k8ka9.css +0 -2
  74. /package/out/_next/static/{YK5hBW20gX2uKVJaW2987 → ql-Jw29MOchZw_TGJbj2w}/_buildManifest.js +0 -0
  75. /package/out/_next/static/{YK5hBW20gX2uKVJaW2987 → ql-Jw29MOchZw_TGJbj2w}/_clientMiddlewareManifest.js +0 -0
  76. /package/out/_next/static/{YK5hBW20gX2uKVJaW2987 → ql-Jw29MOchZw_TGJbj2w}/_ssgManifest.js +0 -0
  77. /package/templates/seeds/{butler.AGENTS.md → butler.CLAUDE.md} +0 -0
@@ -1,22 +1,22 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[52368,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
- 3:I[43688,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
- 4:I[26704,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
- 5:I[22140,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
- 6:I[39756,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
- 7:I[37457,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
- 8:I[94810,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
9
- 9:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
2
+ 2:I[52368,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
+ 3:I[43688,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
+ 4:I[26704,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
+ 5:I[22140,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
+ 6:I[39756,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
+ 7:I[37457,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
+ 8:I[94810,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
9
+ 9:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
10
10
  a:"$Sreact.suspense"
11
- d:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
12
- f:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
13
- 11:I[68027,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
14
- :HL["/_next/static/chunks/17uaru~4k8ka9.css","style"]
11
+ d:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
12
+ f:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
13
+ 11:I[68027,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
14
+ :HL["/_next/static/chunks/0p0jf.pgd..3d.css","style"]
15
15
  :HL["/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
16
- 0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17uaru~4k8ka9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0_mwyljcf37eu.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L8",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17uaru~4k8ka9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"YK5hBW20gX2uKVJaW2987"}
16
+ 0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p0jf.pgd..3d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/13fv-yi7.v52g.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L8",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p0jf.pgd..3d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ql-Jw29MOchZw_TGJbj2w"}
17
17
  12:[]
18
18
  c:"$W12"
19
19
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
20
- 13:I[27201,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
20
+ 13:I[27201,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
21
21
  b:null
22
22
  10:[["$","title","0",{"children":"QuadWork"}],["$","meta","1",{"name":"description","content":"Unified dashboard for multi-agent coding teams"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05o2q2p4kvnq_.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L13","3",{}]]
@@ -1,6 +1,6 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
3
- 3:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
2
+ 2:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
3
+ 3:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 5:I[27201,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"QuadWork"}],["$","meta","1",{"name":"description","content":"Unified dashboard for multi-agent coding teams"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05o2q2p4kvnq_.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"YK5hBW20gX2uKVJaW2987"}
5
+ 5:I[27201,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"QuadWork"}],["$","meta","1",{"name":"description","content":"Unified dashboard for multi-agent coding teams"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05o2q2p4kvnq_.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ql-Jw29MOchZw_TGJbj2w"}
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[52368,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
- 3:I[43688,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
- 4:I[26704,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
- 5:I[22140,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
- 6:I[39756,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
- 7:I[37457,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
- :HL["/_next/static/chunks/17uaru~4k8ka9.css","style"]
9
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17uaru~4k8ka9.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0_mwyljcf37eu.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"YK5hBW20gX2uKVJaW2987"}
2
+ 2:I[52368,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
+ 3:I[43688,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
+ 4:I[26704,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
+ 5:I[22140,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
+ 6:I[39756,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
+ 7:I[37457,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
+ :HL["/_next/static/chunks/0p0jf.pgd..3d.css","style"]
9
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p0jf.pgd..3d.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/13fv-yi7.v52g.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ql-Jw29MOchZw_TGJbj2w"}
@@ -1,3 +1,3 @@
1
- :HL["/_next/static/chunks/17uaru~4k8ka9.css","style"]
1
+ :HL["/_next/static/chunks/0p0jf.pgd..3d.css","style"]
2
2
  :HL["/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
3
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"setup","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"YK5hBW20gX2uKVJaW2987"}
3
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"setup","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"ql-Jw29MOchZw_TGJbj2w"}
@@ -1,6 +1,6 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[94810,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
3
- 3:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
2
+ 2:I[94810,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
3
+ 3:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"YK5hBW20gX2uKVJaW2987"}
5
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ql-Jw29MOchZw_TGJbj2w"}
6
6
  5:null
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[39756,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
3
- 3:I[37457,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
2
+ 2:I[39756,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
3
+ 3:I[37457,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"YK5hBW20gX2uKVJaW2987"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"ql-Jw29MOchZw_TGJbj2w"}
package/out/setup.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="geist_mono_8d43a2aa-module__8Li5zG__variable h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/17uaru~4k8ka9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ze4gu236oq96.js"/><script src="/_next/static/chunks/0.bbxho1vnxin.js" async=""></script><script src="/_next/static/chunks/0n~dq4kpx9xxx.js" async=""></script><script src="/_next/static/chunks/0zfotsowwll1x.js" async=""></script><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/turbopack-0qm-e3ifrz~2u.js" async=""></script><script src="/_next/static/chunks/0_mwyljcf37eu.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0uz5svjlo9dwl.js" async=""></script><meta name="next-size-adjust" content=""/><title>QuadWork</title><meta name="description" content="Unified dashboard for multi-agent coding teams"/><link rel="icon" href="/favicon.ico?favicon.05o2q2p4kvnq_.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><header class="sticky top-0 z-40 flex h-12 items-center justify-between border-b border-white/10 bg-neutral-950/90 px-4 backdrop-blur" aria-hidden="true"></header><div class="flex flex-1 min-h-0"><button type="button" class="fixed top-14 left-2 z-30 lg:hidden w-10 h-10 flex items-center justify-center bg-bg-surface border border-border text-text-muted hover:text-accent"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M3 5h14M3 10h14M3 15h14"></path></svg></button><aside class="fixed inset-y-0 left-0 z-50 w-52 bg-bg-surface border-r border-border flex flex-col py-3 px-2 items-stretch overflow-y-auto transition-transform duration-200 ease-in-out lg:hidden -translate-x-full"><button type="button" class="self-end shrink-0 w-10 h-10 flex items-center justify-center text-text-muted hover:text-accent mb-1"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M5 5l10 10M15 5L5 15"></path></svg></button><a class="flex items-center gap-2 rounded-sm transition-colors px-2 py-2 text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Home" href="/"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10L10 3l7 7"></path><path d="M5 8.5V16h3.5v-4h3v4H15V8.5"></path></svg><span class="text-xs">Home</span></a><div class="h-px bg-border my-2 "></div><div class="flex-1 flex flex-col gap-2 overflow-y-auto min-h-0 "><a class="flex items-center gap-2 rounded-full transition-colors px-2 py-2 border border-dashed border-border text-text-muted hover:text-text hover:bg-[#1a1a1a] rounded-sm" title="Add project" href="/setup"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M8 3v10M3 8h10"></path></svg><span class="text-xs text-text-muted">New Project</span></a></div><div class="h-px bg-border my-2 "></div><a class="flex items-center gap-2 rounded-sm transition-colors px-2 py-2 text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Settings" href="/settings"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="9" r="2.5"></circle><path d="M7.5 1.5h3l.4 2.1a5.5 5.5 0 011.3.7l2-.8 1.5 2.6-1.6 1.3a5.5 5.5 0 010 1.5l1.6 1.3-1.5 2.6-2-.8a5.5 5.5 0 01-1.3.7l-.4 2.1h-3l-.4-2.1a5.5 5.5 0 01-1.3-.7l-2 .8-1.5-2.6 1.6-1.3a5.5 5.5 0 010-1.5L2.3 6.1l1.5-2.6 2 .8a5.5 5.5 0 011.3-.7z"></path></svg><span class="text-xs">Settings</span></a></aside><aside class="hidden lg:flex shrink-0 h-full border-r border-border bg-bg-surface flex-col py-3 transition-[width] duration-200 ease-in-out overflow-hidden w-16 items-center"><a class="flex items-center gap-2 rounded-sm transition-colors w-10 h-10 justify-center self-center text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Home" href="/"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10L10 3l7 7"></path><path d="M5 8.5V16h3.5v-4h3v4H15V8.5"></path></svg></a><div class="h-px bg-border my-2 w-6 self-center"></div><div class="flex-1 flex flex-col gap-2 overflow-y-auto min-h-0 items-center"><a class="flex items-center gap-2 rounded-full transition-colors w-10 h-10 justify-center border border-dashed border-border text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Add project" href="/setup"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M8 3v10M3 8h10"></path></svg></a></div><div class="h-px bg-border my-2 w-6 self-center"></div><a class="flex items-center gap-2 rounded-sm transition-colors w-10 h-10 justify-center self-center text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Settings" href="/settings"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="9" r="2.5"></circle><path d="M7.5 1.5h3l.4 2.1a5.5 5.5 0 011.3.7l2-.8 1.5 2.6-1.6 1.3a5.5 5.5 0 010 1.5l1.6 1.3-1.5 2.6-2-.8a5.5 5.5 0 01-1.3.7l-.4 2.1h-3l-.4-2.1a5.5 5.5 0 01-1.3-.7l-2 .8-1.5-2.6 1.6-1.3a5.5 5.5 0 010-1.5L2.3 6.1l1.5-2.6 2 .8a5.5 5.5 0 011.3-.7z"></path></svg></a><div class="h-1"></div><button class="flex shrink-0 items-center justify-center w-10 h-10 rounded-sm border border-border text-text-muted hover:text-accent hover:border-accent/50 transition-colors self-center" title="Expand sidebar"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3l5 5-5 5"></path></svg></button></aside><main class="flex-1 min-w-0 overflow-auto"><div class="h-full overflow-y-auto"></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/0ze4gu236oq96.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[52368,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LocaleProvider\"]\n3:I[43688,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[26704,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[22140,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n6:I[39756,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n8:I[94810,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0uz5svjlo9dwl.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/17uaru~4k8ka9.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"setup\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/17uaru~4k8ka9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0_mwyljcf37eu.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"h-full flex flex-col\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex flex-1 min-h-0\",\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 min-w-0 overflow-auto\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"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\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"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)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L8\",null,{}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0uz5svjlo9dwl.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/17uaru~4k8ka9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"YK5hBW20gX2uKVJaW2987\"}\n"])</script><script>self.__next_f.push([1,"12:[]\nc:\"$W12\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"13:I[27201,[\"/_next/static/chunks/0_mwyljcf37eu.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\nb:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"QuadWork\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Unified dashboard for multi-agent coding teams\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.05o2q2p4kvnq_.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L13\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="geist_mono_8d43a2aa-module__8Li5zG__variable h-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0p0jf.pgd..3d.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ze4gu236oq96.js"/><script src="/_next/static/chunks/0.bbxho1vnxin.js" async=""></script><script src="/_next/static/chunks/0n~dq4kpx9xxx.js" async=""></script><script src="/_next/static/chunks/0zfotsowwll1x.js" async=""></script><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/turbopack-0qm-e3ifrz~2u.js" async=""></script><script src="/_next/static/chunks/13fv-yi7.v52g.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0uz5svjlo9dwl.js" async=""></script><meta name="next-size-adjust" content=""/><title>QuadWork</title><meta name="description" content="Unified dashboard for multi-agent coding teams"/><link rel="icon" href="/favicon.ico?favicon.05o2q2p4kvnq_.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="h-full flex flex-col"><div hidden=""><!--$--><!--/$--></div><header class="sticky top-0 z-40 flex h-12 items-center justify-between border-b border-white/10 bg-neutral-950/90 px-4 backdrop-blur" aria-hidden="true"></header><div class="flex flex-1 min-h-0"><button type="button" class="fixed top-14 left-2 z-30 lg:hidden w-10 h-10 flex items-center justify-center bg-bg-surface border border-border text-text-muted hover:text-accent"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M3 5h14M3 10h14M3 15h14"></path></svg></button><aside class="fixed inset-y-0 left-0 z-50 w-52 bg-bg-surface border-r border-border flex flex-col py-3 px-2 items-stretch overflow-y-auto transition-transform duration-200 ease-in-out lg:hidden -translate-x-full"><button type="button" class="self-end shrink-0 w-10 h-10 flex items-center justify-center text-text-muted hover:text-accent mb-1"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M5 5l10 10M15 5L5 15"></path></svg></button><a class="flex items-center gap-2 rounded-sm transition-colors px-2 py-2 text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Home" href="/"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10L10 3l7 7"></path><path d="M5 8.5V16h3.5v-4h3v4H15V8.5"></path></svg><span class="text-xs">Home</span></a><div class="h-px bg-border my-2 "></div><div class="flex-1 flex flex-col gap-2 overflow-y-auto min-h-0 "><a class="flex items-center gap-2 rounded-full transition-colors px-2 py-2 border border-dashed border-border text-text-muted hover:text-text hover:bg-[#1a1a1a] rounded-sm" title="Add project" href="/setup"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M8 3v10M3 8h10"></path></svg><span class="text-xs text-text-muted">New Project</span></a></div><div class="h-px bg-border my-2 "></div><a class="flex items-center gap-2 rounded-sm transition-colors px-2 py-2 text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Settings" href="/settings"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="9" r="2.5"></circle><path d="M7.5 1.5h3l.4 2.1a5.5 5.5 0 011.3.7l2-.8 1.5 2.6-1.6 1.3a5.5 5.5 0 010 1.5l1.6 1.3-1.5 2.6-2-.8a5.5 5.5 0 01-1.3.7l-.4 2.1h-3l-.4-2.1a5.5 5.5 0 01-1.3-.7l-2 .8-1.5-2.6 1.6-1.3a5.5 5.5 0 010-1.5L2.3 6.1l1.5-2.6 2 .8a5.5 5.5 0 011.3-.7z"></path></svg><span class="text-xs">Settings</span></a></aside><aside class="hidden lg:flex shrink-0 h-full border-r border-border bg-bg-surface flex-col py-3 transition-[width] duration-200 ease-in-out overflow-hidden w-16 items-center"><a class="flex items-center gap-2 rounded-sm transition-colors w-10 h-10 justify-center self-center text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Home" href="/"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 10L10 3l7 7"></path><path d="M5 8.5V16h3.5v-4h3v4H15V8.5"></path></svg></a><div class="h-px bg-border my-2 w-6 self-center"></div><div class="flex-1 flex flex-col gap-2 overflow-y-auto min-h-0 items-center"><a class="flex items-center gap-2 rounded-full transition-colors w-10 h-10 justify-center border border-dashed border-border text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Add project" href="/setup"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M8 3v10M3 8h10"></path></svg></a></div><div class="h-px bg-border my-2 w-6 self-center"></div><a class="flex items-center gap-2 rounded-sm transition-colors w-10 h-10 justify-center self-center text-text-muted hover:text-text hover:bg-[#1a1a1a]" title="Settings" href="/settings"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="9" r="2.5"></circle><path d="M7.5 1.5h3l.4 2.1a5.5 5.5 0 011.3.7l2-.8 1.5 2.6-1.6 1.3a5.5 5.5 0 010 1.5l1.6 1.3-1.5 2.6-2-.8a5.5 5.5 0 01-1.3.7l-.4 2.1h-3l-.4-2.1a5.5 5.5 0 01-1.3-.7l-2 .8-1.5-2.6 1.6-1.3a5.5 5.5 0 010-1.5L2.3 6.1l1.5-2.6 2 .8a5.5 5.5 0 011.3-.7z"></path></svg></a><div class="h-1"></div><button class="flex shrink-0 items-center justify-center w-10 h-10 rounded-sm border border-border text-text-muted hover:text-accent hover:border-accent/50 transition-colors self-center" title="Expand sidebar"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3l5 5-5 5"></path></svg></button></aside><main class="flex-1 min-w-0 overflow-auto"><div class="h-full overflow-y-auto"></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/0ze4gu236oq96.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[52368,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LocaleProvider\"]\n3:I[43688,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[26704,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[22140,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n6:I[39756,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n8:I[94810,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0uz5svjlo9dwl.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0p0jf.pgd..3d.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"setup\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0p0jf.pgd..3d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13fv-yi7.v52g.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full\",\"children\":[\"$\",\"body\",null,{\"className\":\"h-full flex flex-col\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex flex-1 min-h-0\",\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 min-w-0 overflow-auto\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"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\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"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)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L8\",null,{}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0uz5svjlo9dwl.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0p0jf.pgd..3d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ql-Jw29MOchZw_TGJbj2w\"}\n"])</script><script>self.__next_f.push([1,"12:[]\nc:\"$W12\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"13:I[27201,[\"/_next/static/chunks/13fv-yi7.v52g.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\nb:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"QuadWork\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Unified dashboard for multi-agent coding teams\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.05o2q2p4kvnq_.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L13\",\"3\",{}]]\n"])</script></body></html>
package/out/setup.txt CHANGED
@@ -1,22 +1,22 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[52368,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
- 3:I[43688,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
- 4:I[26704,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
- 5:I[22140,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
- 6:I[39756,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
- 7:I[37457,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
- 8:I[94810,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
9
- 9:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
2
+ 2:I[52368,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"LocaleProvider"]
3
+ 3:I[43688,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
4
+ 4:I[26704,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
5
+ 5:I[22140,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
6
+ 6:I[39756,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
7
+ 7:I[37457,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
8
+ 8:I[94810,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0uz5svjlo9dwl.js"],"default"]
9
+ 9:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
10
10
  a:"$Sreact.suspense"
11
- d:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
12
- f:I[97367,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
13
- 11:I[68027,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
14
- :HL["/_next/static/chunks/17uaru~4k8ka9.css","style"]
11
+ d:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
12
+ f:I[97367,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
13
+ 11:I[68027,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
14
+ :HL["/_next/static/chunks/0p0jf.pgd..3d.css","style"]
15
15
  :HL["/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
16
- 0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17uaru~4k8ka9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0_mwyljcf37eu.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L8",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17uaru~4k8ka9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"YK5hBW20gX2uKVJaW2987"}
16
+ 0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p0jf.pgd..3d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/13fv-yi7.v52g.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"geist_mono_8d43a2aa-module__8Li5zG__variable h-full","children":["$","body",null,{"className":"h-full flex flex-col","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"flex flex-1 min-h-0","children":[["$","$L5",null,{}],["$","main",null,{"className":"flex-1 min-w-0 overflow-auto","children":["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"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"},"children":["$","div",null,{"children":[["$","style",null,{"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)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L8",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/0uz5svjlo9dwl.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p0jf.pgd..3d.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ql-Jw29MOchZw_TGJbj2w"}
17
17
  12:[]
18
18
  c:"$W12"
19
19
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
20
- 13:I[27201,["/_next/static/chunks/0_mwyljcf37eu.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
20
+ 13:I[27201,["/_next/static/chunks/13fv-yi7.v52g.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
21
21
  b:null
22
22
  10:[["$","title","0",{"children":"QuadWork"}],["$","meta","1",{"name":"description","content":"Unified dashboard for multi-agent coding teams"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05o2q2p4kvnq_.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L13","3",{}]]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quadwork",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "description": "Unified dashboard for multi-agent coding teams — 4 AI agents, one terminal",
5
5
  "bin": {
6
6
  "quadwork": "./bin/quadwork.js"
package/server/index.js CHANGED
@@ -41,6 +41,17 @@ app.get("/api/health", (_req, res) => {
41
41
  res.json({ status: "ok" });
42
42
  });
43
43
 
44
+ // --- Safe PTY write helper (#670) ---
45
+
46
+ function safeWrite(term, data) {
47
+ if (!term) return false;
48
+ try { term.write(data); return true; }
49
+ catch (err) {
50
+ if (err.code === "EIO") return false;
51
+ throw err;
52
+ }
53
+ }
54
+
44
55
  // --- CLI status detection ---
45
56
 
46
57
  const { execFileSync } = require("child_process");
@@ -1501,11 +1512,14 @@ function spawnButlerPty() {
1501
1512
  } catch {}
1502
1513
  }
1503
1514
 
1504
- const seedPath = path.join(__dirname, "..", "templates", "seeds", "butler.AGENTS.md");
1505
- if (fs.existsSync(seedPath)) {
1506
- const agentsPath = path.join(docsDir, "AGENTS.md");
1507
- if (!fs.existsSync(agentsPath)) {
1508
- fs.copyFileSync(seedPath, agentsPath);
1515
+ const seedPath = path.join(__dirname, "..", "templates", "seeds", "butler.CLAUDE.md");
1516
+ const claudePath = path.join(docsDir, "CLAUDE.md");
1517
+ if (!fs.existsSync(claudePath)) {
1518
+ const legacyPath = path.join(docsDir, "AGENTS.md");
1519
+ if (fs.existsSync(legacyPath)) {
1520
+ fs.copyFileSync(legacyPath, claudePath);
1521
+ } else if (fs.existsSync(seedPath)) {
1522
+ fs.copyFileSync(seedPath, claudePath);
1509
1523
  }
1510
1524
  }
1511
1525
 
@@ -1544,6 +1558,8 @@ function spawnButlerPty() {
1544
1558
  state: "running",
1545
1559
  error: null,
1546
1560
  scrollback: Buffer.alloc(0),
1561
+ command,
1562
+ model: butlerCfg.model || "",
1547
1563
  };
1548
1564
 
1549
1565
  const SCROLLBACK_SIZE = 64 * 1024;
@@ -1563,7 +1579,7 @@ function spawnButlerPty() {
1563
1579
  if (data.includes("trust") || data.includes("Yes,") || data.includes("1.")) {
1564
1580
  setTimeout(() => {
1565
1581
  if (!trustHandled && butlerSession.term === term) {
1566
- term.write("1\r");
1582
+ safeWrite(term, "1\r");
1567
1583
  trustHandled = true;
1568
1584
  }
1569
1585
  }, 500);
@@ -1626,9 +1642,12 @@ app.post("/api/butler/stop", (_req, res) => {
1626
1642
  });
1627
1643
 
1628
1644
  app.get("/api/butler/status", (_req, res) => {
1645
+ const running = butlerSession.state === "running" && !!butlerSession.term;
1629
1646
  res.json({
1630
- running: butlerSession.state === "running" && !!butlerSession.term,
1647
+ running,
1631
1648
  pid: butlerSession.term ? butlerSession.term.pid : null,
1649
+ command: running ? butlerSession.command : undefined,
1650
+ model: running ? butlerSession.model : undefined,
1632
1651
  });
1633
1652
  });
1634
1653
 
@@ -2168,7 +2187,7 @@ wss.on("connection:terminal", async (ws, req) => {
2168
2187
  return;
2169
2188
  }
2170
2189
  } catch {}
2171
- session.term.write(str);
2190
+ safeWrite(session.term, str);
2172
2191
  });
2173
2192
 
2174
2193
  ws.on("close", () => {
@@ -2226,7 +2245,7 @@ wss.on("connection:butler", async (ws) => {
2226
2245
  return;
2227
2246
  }
2228
2247
  } catch {}
2229
- butlerSession.term.write(str);
2248
+ safeWrite(butlerSession.term, str);
2230
2249
  });
2231
2250
 
2232
2251
  ws.on("close", () => {
package/server/routes.js CHANGED
@@ -1798,6 +1798,20 @@ function summarizeItems(items) {
1798
1798
  return parts.join(" · ");
1799
1799
  }
1800
1800
 
1801
+ router.get("/api/batch-active", (req, res) => {
1802
+ const projectId = req.query.project;
1803
+ if (!projectId) return res.status(400).json({ error: "Missing project" });
1804
+ if (!getRepo(projectId)) return res.status(400).json({ error: "No repo configured for project" });
1805
+ const queuePath = path.join(CONFIG_DIR, projectId, "OVERNIGHT-QUEUE.md");
1806
+ let active = false;
1807
+ try {
1808
+ const text = fs.readFileSync(queuePath, "utf-8");
1809
+ const { issueNumbers } = parseActiveBatch(text);
1810
+ active = issueNumbers.length > 0;
1811
+ } catch {}
1812
+ return res.json({ active });
1813
+ });
1814
+
1801
1815
  router.get("/api/batch-progress", async (req, res) => {
1802
1816
  const projectId = req.query.project;
1803
1817
  if (!projectId) return res.status(400).json({ error: "Missing project" });
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54338,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(22016),a=e.i(78759),n=e.i(52368);let l={en:{headlineWithProjects:"Pick a project from the sidebar to start working",headlineNoProjects:"Welcome to QuadWork — let's set up your first AI dev team",subtextWithProjects:"Each project has its own 4-agent team and chat. Click any chip in the left sidebar to open one.",subtextNoProjects:"QuadWork runs Head, Dev, and two Reviewers as a team. They open issues, write code, review PRs, and merge — while you sleep.",lookSidebar:"← look at the left sidebar",addProject:"Add Your First Project →",howToWork:"How to Work",helpClass:""},ko:{headlineWithProjects:"사이드바에서 프로젝트를 골라 작업을 시작하세요",headlineNoProjects:"QuadWork에 오신 걸 환영합니다\n- 첫 AI 개발 팀을 설정해볼까요",subtextWithProjects:"각 프로젝트는 자체 4인 에이전트 팀과 채팅을 가집니다.\n왼쪽 사이드바에서 아무 프로젝트나 눌러 열 수 있습니다.",subtextNoProjects:"QuadWork는 Head, Dev, Reviewer 둘을 한 팀으로 운영합니다.\n이슈를 만들고, 코드를 작성하고, PR을 리뷰하고, 병합합니다.\n당신이 쉬는 동안에도요.",lookSidebar:"← 왼쪽 사이드바를 보세요",addProject:"첫 프로젝트 추가 →",howToWork:"사용 방법",helpClass:"ko-help"}};function o({hasProjects:e}){let{locale:i}=(0,n.useLocale)(),c=l[i],[d,x]=(0,r.useState)(!1),u=e?c.headlineWithProjects:c.headlineNoProjects,m=e?c.subtextWithProjects:c.subtextNoProjects;return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-center px-6 py-12 border border-border bg-bg-surface",children:[(0,t.jsx)("img",{src:"/quadwork-symbol.svg",alt:"",width:64,height:64,"aria-hidden":!0}),(0,t.jsx)("h1",{className:`mt-5 text-lg font-semibold text-text max-w-md whitespace-pre-line ${c.helpClass}`,children:u}),(0,t.jsx)("p",{className:`mt-2 text-[12px] text-text-muted leading-relaxed max-w-md whitespace-pre-line ${c.helpClass}`,children:m}),(0,t.jsxs)("div",{className:"mt-5 flex items-center gap-3",children:[e?(0,t.jsx)("span",{className:"text-[11px] text-text-muted italic",children:c.lookSidebar}):(0,t.jsx)(s.default,{href:"/setup",className:"px-4 py-2 text-[12px] font-semibold text-bg bg-accent hover:bg-accent-dim transition-colors",children:c.addProject}),(0,t.jsx)("button",{type:"button",onClick:()=>x(!0),className:"px-4 py-2 text-[12px] text-text-muted border border-border hover:text-text hover:border-text-muted transition-colors",children:c.howToWork})]}),(0,t.jsx)(a.default,{open:d,onClose:()=>x(!1)})]})}var i=e.i(99894),c=e.i(93309);let d={en:{butlerAgent:"Butler Agent",collapse:"collapse",expand:"expand",inputPlaceholder:"Message butler...",send:"Send",startButler:"Start Butler",starting:"Starting...",loading:"Loading...",startError:"Failed to start Butler. Check that the selected CLI is installed."},ko:{butlerAgent:"버틀러 에이전트",collapse:"접기",expand:"펼치기",inputPlaceholder:"버틀러에게 메시지...",send:"전송",startButler:"버틀러 시작",starting:"시작 중...",loading:"로딩 중...",startError:"버틀러를 시작할 수 없습니다. 선택한 CLI가 설치되어 있는지 확인하세요."}};function x(){let{locale:e}=(0,n.useLocale)(),s=d[e],[a,l]=(0,r.useState)(null),[o,x]=(0,r.useState)(!1),[u,m]=(0,r.useState)(!1),[h,p]=(0,r.useState)(""),[b,f]=(0,r.useState)(null),g=(0,r.useRef)(null),j=(0,r.useRef)(null),N=(0,r.useRef)(null),y=(0,r.useRef)(null),w=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=!1;return fetch("/api/butler/status").then(e=>e.ok?e.json():null).then(t=>{e||l(!!t?.running)}).catch(()=>{l(!1)}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{!o&&a&&requestAnimationFrame(()=>w.current?.focus())},[o,a]);let v=(0,r.useCallback)(()=>{if(N.current&&j.current&&g.current)try{N.current.fit();let e=y.current;e&&e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({type:"resize",cols:j.current.cols,rows:j.current.rows}))}catch{}},[]);(0,r.useEffect)(()=>{if(!a||o||!g.current)return;let e=new i.Terminal({scrollback:1e3,fontSize:11,fontFamily:'"Geist Mono", "JetBrains Mono", "Fira Code", "Cascadia Code", monospace',lineHeight:1.2,letterSpacing:.5,cursorBlink:!1,cursorStyle:"block",disableStdin:!0,theme:{background:"#0a0a0a",foreground:"#e0e0e0",cursor:"#00ff88",cursorAccent:"#0a0a0a",selectionBackground:"#00ff8844",black:"#0a0a0a",red:"#ff4444",green:"#00ff88",yellow:"#ffcc00",blue:"#4488ff",magenta:"#cc44ff",cyan:"#44ccff",white:"#e0e0e0",brightBlack:"#737373",brightRed:"#ff6666",brightGreen:"#00ff88",brightYellow:"#ffdd44",brightBlue:"#66aaff",brightMagenta:"#dd66ff",brightCyan:"#66ddff",brightWhite:"#ffffff"},allowTransparency:!1,drawBoldTextInBrightColors:!0}),t=new c.FitAddon;e.loadAddon(t),e.open(g.current),j.current=e,N.current=t,requestAnimationFrame(()=>v());let r=new ResizeObserver(()=>v());r.observe(g.current);let n=!1,d=null,x=async()=>{if(d)return d;let e="https:"===window.location.protocol?"wss:":"ws:";try{let t=await fetch("/api/config");if(t.ok){let r=(await t.json()).port||8400,s=parseInt(window.location.port,10);d=s&&s!==r?`${e}//${window.location.hostname}:${r}`:`${e}//${window.location.host}`}else d=`${e}//${window.location.host}`}catch{d=`${e}//${window.location.host}`}return d};return(async()=>{let t=await x();if(n)return;let r=new WebSocket(`${t}/ws/butler`);y.current=r;let a=null;r.onopen=()=>{a&&clearInterval(a);let t=0;a=setInterval(()=>{v(),++t>=4&&(clearInterval(a),a=null)},500),r.send(JSON.stringify({type:"resize",cols:e.cols,rows:e.rows})),r.send(JSON.stringify({type:"replay"}))},r.onmessage=t=>{e.write(t.data)},r.onclose=t=>{a&&(clearInterval(a),a=null),n||(e.write(`\r
2
- \x1b[38;2;115;115;115m[session closed: ${t.reason||t.code}]\x1b[0m\r
3
- `),l(!1),"pty-spawn-failed"===t.reason&&f(s.startError))}})(),()=>{n=!0,r.disconnect(),y.current?.close(),e.dispose(),j.current=null,N.current=null,y.current=null}},[a,o,v]);let k=async()=>{m(!0),f(null);try{let e=await fetch("/api/butler/start",{method:"POST"}),t=await e.json();t.ok?l(!0):f(t.error||s.startError)}catch{f(s.startError)}m(!1)},A=()=>{let e=h.trim();if(!e)return;let t=y.current;t&&t.readyState===WebSocket.OPEN&&(t.send(e+"\r"),p(""))};return null===a?(0,t.jsx)("div",{className:"mb-6 border border-border bg-bg-surface",children:(0,t.jsx)("div",{className:"flex items-center px-4 py-2",children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-text-muted animate-pulse"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold text-text",children:s.butlerAgent})]})})}):o?(0,t.jsx)("div",{className:"mb-6 border border-border bg-bg-surface",children:(0,t.jsxs)("button",{type:"button",onClick:()=>x(!1),className:"w-full flex items-center justify-between px-4 py-2 text-[11px] text-text-muted hover:text-text transition-colors",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${a?"bg-accent":"bg-text-muted"}`}),(0,t.jsx)("span",{className:"font-semibold text-text",children:s.butlerAgent})]}),(0,t.jsxs)("span",{children:["▸ ",s.expand]})]})}):a?(0,t.jsxs)("div",{className:"mb-6 border border-border bg-bg-surface flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border shrink-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-accent"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold text-text",children:s.butlerAgent})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"text-[10px] text-text-muted hover:text-text transition-colors",children:["▾ ",s.collapse]})]}),(0,t.jsx)("div",{ref:g,className:"h-[40vh] min-h-[200px] overflow-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-t border-border shrink-0",children:[(0,t.jsx)("input",{ref:w,type:"text",value:h,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),A())},placeholder:s.inputPlaceholder,className:"flex-1 bg-transparent text-[11px] text-text placeholder:text-text-muted outline-none border border-border px-2 py-1.5"}),(0,t.jsx)("button",{type:"button",onClick:A,className:"text-[11px] text-text-muted hover:text-text px-2 py-1.5 border border-border hover:border-text-muted transition-colors",children:s.send})]})]}):(0,t.jsxs)("div",{className:"mb-6 border border-border bg-bg-surface",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-text-muted"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold text-text",children:s.butlerAgent})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"text-[10px] text-text-muted hover:text-text transition-colors",children:["▾ ",s.collapse]})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:k,disabled:u,className:"px-4 py-2 text-[12px] font-semibold text-bg bg-accent hover:bg-accent-dim transition-colors disabled:opacity-50",children:u?s.starting:s.startButler}),b&&(0,t.jsx)("p",{className:"text-[11px] text-error max-w-sm text-center",children:b})]})]})}let u={en:{loading:"Loading dashboard...",recentProjects:"Recent Projects",lastModified:"Last modified",justNow:"just now",minsAgo:e=>`${e}m ago`,hoursAgo:e=>`${e}h ago`,daysAgo:e=>`${e}d ago`,newProject:"New Project",globalFeed:"Global Activity Feed",noActivity:"No recent activity.",projects:"Projects",configuredProjects:e=>`${e} configured project${1!==e?"s":""}`,agents:"agents",prs:"PRs",repo:"repo",lastActivity:"last activity",open:"open →",loadError:"Could not load projects from /api/projects. The dashboard may be out of date — check the server logs and reload.",joinCommunity:"Want to talk with the creator?",joinLink:"Join Hunt Town",joinSuffix:"and find @project7.",recentActivity:"Recent Activity",butlerCtaTitle:"Butler Agent",butlerCtaNew:"NEW",butlerCtaDesc:"Your cross-project AI assistant.",butlerCtaLink:"Enable in Settings →"},ko:{loading:"대시보드 로딩 중...",recentProjects:"최근 프로젝트",lastModified:"마지막 수정",justNow:"방금 전",minsAgo:e=>`${e}분 전`,hoursAgo:e=>`${e}시간 전`,daysAgo:e=>`${e}일 전`,newProject:"새 프로젝트",globalFeed:"전체 활동 피드",noActivity:"최근 활동이 없습니다.",projects:"프로젝트",configuredProjects:e=>`${e}개의 프로젝트`,agents:"에이전트",prs:"PR",repo:"저장소",lastActivity:"마지막 활동",open:"열기 →",loadError:"/api/projects에서 프로젝트를 불러올 수 없습니다. 서버 로그를 확인하고 새로고침하세요.",joinCommunity:"제작자와 대화하고 싶으신가요?",joinLink:"Hunt Town 참여",joinSuffix:"에서 @project7을 찾아보세요.",recentActivity:"최근 활동",butlerCtaTitle:"Butler Agent",butlerCtaNew:"NEW",butlerCtaDesc:"크로스 프로젝트 AI 어시스턴트.",butlerCtaLink:"설정에서 활성화 →"}};e.s(["default",0,function(){let{locale:e}=(0,n.useLocale)(),a=u[e],[l,i]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),[m,h]=(0,r.useState)("loading"),[p,b]=(0,r.useState)(!1),[f,g]=(0,r.useState)(()=>"1"===localStorage.getItem("qw-butler-cta-dismissed"));return((0,r.useEffect)(()=>{fetch("/api/projects").then(e=>{if(!e.ok)throw Error(`${e.status}`);return e.json()}).then(e=>{e.projects&&Array.isArray(e.projects)&&i(e.projects.filter(e=>!e.archived)),e.recentEvents&&Array.isArray(e.recentEvents)&&d(e.recentEvents),h("loaded")}).catch(()=>{h("error")}),fetch("/api/config").then(e=>e.ok?e.json():null).then(e=>{e?.butler?.enabled&&b(!0)}).catch(()=>{})},[]),"loading"===m)?(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-text-muted text-[11px] animate-pulse",children:a.loading}):(0,t.jsx)("div",{className:"h-full overflow-y-auto lg:overflow-hidden lg:flex lg:flex-col p-6",children:(0,t.jsxs)("div",{className:"lg:grid lg:grid-cols-[1fr_340px] lg:gap-6 lg:flex-1 lg:min-h-0",children:[(0,t.jsxs)("div",{className:"lg:overflow-y-auto lg:min-h-0",children:[p?(0,t.jsx)(x,{}):"loaded"===m?(0,t.jsxs)(t.Fragment,{children:[!f&&(0,t.jsxs)("div",{className:"mb-3 border border-border bg-bg-surface px-4 py-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold text-text",children:a.butlerCtaTitle}),(0,t.jsx)("span",{className:"text-[9px] font-semibold text-accent border border-accent/30 px-1.5 py-0.5 leading-none",children:a.butlerCtaNew}),(0,t.jsx)("span",{className:"text-[11px] text-text-muted hidden sm:inline",children:a.butlerCtaDesc}),(0,t.jsx)(s.default,{href:"/settings#butler",className:"text-[11px] text-accent hover:text-accent-dim transition-colors shrink-0",children:a.butlerCtaLink})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{localStorage.setItem("qw-butler-cta-dismissed","1"),g(!0)},className:"text-text-muted hover:text-text text-[11px] ml-3 shrink-0 transition-colors","aria-label":"Dismiss",children:"×"})]}),(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(o,{hasProjects:l.length>0})})]}):null,"error"===m&&(0,t.jsx)("div",{className:"mb-6 border border-error/30 bg-error/5 text-error text-[11px] px-3 py-2",children:a.loadError}),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)("h1",{className:"text-lg font-semibold text-text tracking-tight",children:a.projects}),(0,t.jsx)("p",{className:"text-xs text-text-muted mt-1",children:a.configuredProjects(l.length)})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3 mb-8 lg:mb-0",children:[l.map(e=>(0,t.jsxs)(s.default,{href:`/project/${e.id}`,className:"block border border-border bg-bg-surface p-4 hover:bg-[#1a1a1a] transition-colors group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${"active"===e.state?"bg-accent":"bg-text-muted"}`}),(0,t.jsx)("span",{className:"text-sm font-semibold text-text",children:e.name}),(0,t.jsx)("span",{className:"text-[10px] text-text-muted",children:e.state})]}),(0,t.jsx)("span",{className:"text-[10px] text-text-muted opacity-0 group-hover:opacity-100 transition-opacity",children:a.open})]}),(0,t.jsxs)("div",{className:"flex gap-4 text-[11px] mb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-text-muted",children:a.agents}),(0,t.jsx)("span",{className:"ml-1.5 text-text",children:e.agentCount})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-text-muted",children:a.prs}),(0,t.jsx)("span",{className:"ml-1.5 text-text",children:e.openPrs})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-text-muted",children:a.repo}),(0,t.jsx)("span",{className:"ml-1.5 text-text",children:e.repo})]})]}),e.lastActivity&&(0,t.jsxs)("div",{className:"text-[10px] text-text-muted",children:[a.lastActivity,": ",function(e,t){let r=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(r<1)return t.justNow;if(r<60)return t.minsAgo(r);let s=Math.floor(r/60);if(s<24)return t.hoursAgo(s);let a=Math.floor(s/24);return t.daysAgo(a)}(e.lastActivity,a)]})]},e.id)),(0,t.jsx)(s.default,{href:"/setup",className:"border border-dashed border-border p-4 flex items-center justify-center text-text-muted hover:text-text hover:border-text-muted transition-colors min-h-[88px]",children:(0,t.jsxs)("span",{className:"text-sm",children:["+ ",a.newProject]})})]}),(0,t.jsxs)("div",{className:"mt-4 mb-8 lg:mb-4 text-[11px] text-text-muted",children:[a.joinCommunity," ",(0,t.jsx)("a",{href:"https://discord.gg/syhbYPk3Wq",target:"_blank",rel:"noopener noreferrer",className:"text-text hover:text-accent transition-colors",children:a.joinLink})," ",a.joinSuffix]})]}),(0,t.jsxs)("div",{className:"lg:overflow-y-auto lg:min-h-0 mb-6 lg:mb-0",children:[(0,t.jsx)("h2",{className:"text-xs text-text-muted uppercase tracking-wider mb-3",children:a.recentActivity}),(0,t.jsxs)("div",{className:"border border-border bg-bg-surface",children:[0===c.length&&(0,t.jsx)("div",{className:"px-3 py-3 text-[11px] text-text-muted",children:a.noActivity}),c.map((e,r)=>(0,t.jsxs)("div",{className:"flex gap-3 px-3 py-1.5 border-b border-border/50 last:border-b-0 text-[11px]",children:[(0,t.jsx)("span",{className:"text-text-muted shrink-0 w-10 text-right tabular-nums",children:e.time?.slice(0,5)||""}),(0,t.jsx)("span",{className:"text-accent shrink-0 font-semibold w-12",children:e.projectName}),(0,t.jsx)("span",{className:"text-[#ffcc00] shrink-0 font-semibold w-12",children:e.actor}),(0,t.jsx)("span",{className:"text-text truncate min-w-0",children:e.text})]},`${e.time}-${r}`))]})]})]})})}],54338)}]);