nextclaw 0.48.0-beta.1 → 0.48.0

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 (202) hide show
  1. package/dist/cli/app/index.js +1 -1
  2. package/dist/{nextclaw-cli-app-cRvTVj04.js → nextclaw-cli-app-FS6IsYq6.js} +59 -1
  3. package/dist/{nextclaw-cli-app-cRvTVj04.js.map → nextclaw-cli-app-FS6IsYq6.js.map} +1 -1
  4. package/package.json +15 -15
  5. package/resources/apps/nextclaw-portable-runtime-lab/manifest.json +13 -3
  6. package/ui-dist/assets/abnfDiagram-VRR7QNED-BcFJp_1X.js.gz +0 -0
  7. package/ui-dist/assets/aiden0z-pptx-renderer.es-Dp2ezlQn.js.gz +0 -0
  8. package/ui-dist/assets/api-BqVIq0lF.js +13 -0
  9. package/ui-dist/assets/api-BqVIq0lF.js.gz +0 -0
  10. package/ui-dist/assets/{appearance-settings-page-CPoFZLw8.js → appearance-settings-page-CTWn1eAT.js} +1 -1
  11. package/ui-dist/assets/appearance-settings-page-CTWn1eAT.js.gz +0 -0
  12. package/ui-dist/assets/arc-CkgyPMyW.js.gz +0 -0
  13. package/ui-dist/assets/architectureDiagram-ZJ3FMSHR-CMd4cIjI.js.gz +0 -0
  14. package/ui-dist/assets/blockDiagram-677ZJIJ3-Bz3tbhet.js.gz +0 -0
  15. package/ui-dist/assets/{book-open-jcUt0rr9.js → book-open-o2x7OLiO.js} +1 -1
  16. package/ui-dist/assets/c4Diagram-LMCZKHZV-D9hFNAGv.js.gz +0 -0
  17. package/ui-dist/assets/{channels-list-page-anMJAkfK.js → channels-list-page-Bzn-pzyJ.js} +1 -1
  18. package/ui-dist/assets/channels-list-page-Bzn-pzyJ.js.gz +0 -0
  19. package/ui-dist/assets/chunk-32BRIVSS-7NrjEITq.js.gz +0 -0
  20. package/ui-dist/assets/chunk-52WLFC77-viIcqj9q.js.gz +0 -0
  21. package/ui-dist/assets/chunk-5JV3BV7I-CuKgJQ4W.js.gz +0 -0
  22. package/ui-dist/assets/chunk-5TONJI2A-CYeiWZKb.js.gz +0 -0
  23. package/ui-dist/assets/chunk-7BUUIJ7U-BvydOcm3.js.gz +0 -0
  24. package/ui-dist/assets/chunk-C7G6YPKG-DAizzYwr.js.gz +0 -0
  25. package/ui-dist/assets/chunk-DseTPa7n.js.gz +0 -0
  26. package/ui-dist/assets/chunk-EX3LRPZG-BmlDFIRW.js.gz +0 -0
  27. package/ui-dist/assets/chunk-FWX5IMBZ-D0ksHZZ9.js.gz +0 -0
  28. package/ui-dist/assets/chunk-HOUHSVGY-DPkq8FCm.js.gz +0 -0
  29. package/ui-dist/assets/chunk-ICXQ74PX-FAatv5fC.js.gz +0 -0
  30. package/ui-dist/assets/chunk-JG7HCLWE-DLkIi4F7.js.gz +0 -0
  31. package/ui-dist/assets/chunk-KEIR6QF5-f9psyCXK.js.gz +0 -0
  32. package/ui-dist/assets/chunk-MOJQB5TN-Di52TorW.js.gz +0 -0
  33. package/ui-dist/assets/chunk-PUDLZKDR-f3IJh3sN.js.gz +0 -0
  34. package/ui-dist/assets/chunk-Q4XR5HBZ-DQFeUPxZ.js.gz +0 -0
  35. package/ui-dist/assets/chunk-R7FJI6CG-C3XpZ-2u.js.gz +0 -0
  36. package/ui-dist/assets/chunk-RYQCIY6F-CAqa5klQ.js.gz +0 -0
  37. package/ui-dist/assets/chunk-U6XO7XAA-D_WXezeD.js.gz +0 -0
  38. package/ui-dist/assets/chunk-V7JOEXUC-CZ70oOtp.js.gz +0 -0
  39. package/ui-dist/assets/chunk-WYO6CB5R-Dn9To_OI.js.gz +0 -0
  40. package/ui-dist/assets/chunk-ZGVPDNZ5-C6YtZDU0.js.gz +0 -0
  41. package/ui-dist/assets/chunk-ZIRB5QZD-DMuYtnHF.js.gz +0 -0
  42. package/ui-dist/assets/{config-split-page-AcuFnbIC.js → config-split-page-CnRbXXlh.js} +1 -1
  43. package/ui-dist/assets/config-split-page-CnRbXXlh.js.gz +0 -0
  44. package/ui-dist/assets/{confirm-dialog-B-atCfC5.js → confirm-dialog-B_Hbcra2.js} +1 -1
  45. package/ui-dist/assets/confirm-dialog-B_Hbcra2.js.gz +0 -0
  46. package/ui-dist/assets/cose-bilkent-JH36ORCC-Bc2Ex5Y3.js.gz +0 -0
  47. package/ui-dist/assets/{createLucideIcon-Blz0FzrV.js → createLucideIcon-rwwpqyks.js} +1 -1
  48. package/ui-dist/assets/cynefinDiagram-TSTJHNR4-DVysQoGz.js.gz +0 -0
  49. package/ui-dist/assets/cytoscape.esm-0uDtdD0l.js.gz +0 -0
  50. package/ui-dist/assets/dagre-CMhQ1cAG.js.gz +0 -0
  51. package/ui-dist/assets/dagre-VKFMJZFB-RYyWpPJZ.js.gz +0 -0
  52. package/ui-dist/assets/defaultLocale-DSWXGgt0.js.gz +0 -0
  53. package/ui-dist/assets/{desktop-capabilities-page-8lKF_Ob-.js → desktop-capabilities-page-C2ayYQTr.js} +1 -1
  54. package/ui-dist/assets/desktop-capabilities-page-C2ayYQTr.js.gz +0 -0
  55. package/ui-dist/assets/{desktop-update-config-DABXDpbj.js → desktop-update-config-C13czpyL.js} +1 -1
  56. package/ui-dist/assets/desktop-update-config-C13czpyL.js.gz +0 -0
  57. package/ui-dist/assets/diagram-FQU43EPY-BD6KONdF.js.gz +0 -0
  58. package/ui-dist/assets/diagram-G47NLZAW-CGB2ptRR.js.gz +0 -0
  59. package/ui-dist/assets/diagram-NH7WQ7WH-DnkOI6cU.js.gz +0 -0
  60. package/ui-dist/assets/diagram-OA4YK3LP-DF82RZ7P.js.gz +0 -0
  61. package/ui-dist/assets/diagram-WEI45ONY-Be2v7Ck9.js.gz +0 -0
  62. package/ui-dist/assets/dist--ta5rX12.js.gz +0 -0
  63. package/ui-dist/assets/{dist-eH-_j8yU.js → dist-BsF3hfOi.js} +1 -1
  64. package/ui-dist/assets/dist-BsF3hfOi.js.gz +0 -0
  65. package/ui-dist/assets/{dist-D8kcEpTf.js → dist-aNN3iQxV.js} +1 -1
  66. package/ui-dist/assets/dist-aNN3iQxV.js.gz +0 -0
  67. package/ui-dist/assets/{doc-browser-DzXRehlW.js → doc-browser-D8dIOo9E.js} +1 -1
  68. package/ui-dist/assets/doc-browser-D8dIOo9E.js.gz +0 -0
  69. package/ui-dist/assets/doc-browser-DcuOOtpP.js +1 -0
  70. package/ui-dist/assets/{doc-browser-context-BlbUcg2J.js → doc-browser-context-Dhsit2Ma.js} +1 -1
  71. package/ui-dist/assets/doc-browser-context-Dhsit2Ma.js.gz +0 -0
  72. package/ui-dist/assets/docx-preview-BqwAjrj3.js.gz +0 -0
  73. package/ui-dist/assets/ebnfDiagram-CCIWWBDH-CP98OYk8.js.gz +0 -0
  74. package/ui-dist/assets/erDiagram-Q63AITRT-ZLlx8xfs.js.gz +0 -0
  75. package/ui-dist/assets/{extensions-mquwAJ2Z.js → extensions-CD6xvKF_.js} +1 -1
  76. package/ui-dist/assets/extensions-CD6xvKF_.js.gz +0 -0
  77. package/ui-dist/assets/{form-actions-CaZDGEmB.js → form-actions-CC4Wz_lL.js} +1 -1
  78. package/ui-dist/assets/ganttDiagram-NO4QXBWP-DXCDjHR2.js.gz +0 -0
  79. package/ui-dist/assets/gitGraphDiagram-IHSO6WYX-l2HWrTJp.js.gz +0 -0
  80. package/ui-dist/assets/graphlib-CQ6QV4yP.js.gz +0 -0
  81. package/ui-dist/assets/index-BTsbdtv6.js +109 -0
  82. package/ui-dist/assets/index-BTsbdtv6.js.gz +0 -0
  83. package/ui-dist/assets/index-Bcfy2kTh.css +1 -0
  84. package/ui-dist/assets/index-Bcfy2kTh.css.gz +0 -0
  85. package/ui-dist/assets/ishikawaDiagram-FXEZZL3T-y_Xy128F.js.gz +0 -0
  86. package/ui-dist/assets/journeyDiagram-5HDEW3XC-DJn5xYcQ.js.gz +0 -0
  87. package/ui-dist/assets/jszip.min-8hyJpgpx.js.gz +0 -0
  88. package/ui-dist/assets/kanban-definition-HUTT4EX6-DJVIOR21.js.gz +0 -0
  89. package/ui-dist/assets/katex-ARhY9PS1.js.gz +0 -0
  90. package/ui-dist/assets/linear-BtDLqtzF.js.gz +0 -0
  91. package/ui-dist/assets/loader-circle-B6aFbB-8.js +1 -0
  92. package/ui-dist/assets/map-BKnQyvd0.js.gz +0 -0
  93. package/ui-dist/assets/mcp-marketplace-page-BtUAypA7.js +1 -0
  94. package/ui-dist/assets/{mcp-marketplace-page-gFtgyueL.js → mcp-marketplace-page-r2MmD9xO.js} +1 -1
  95. package/ui-dist/assets/mcp-marketplace-page-r2MmD9xO.js.gz +0 -0
  96. package/ui-dist/assets/mermaid-parser.core-XUNZhr2W.js.gz +0 -0
  97. package/ui-dist/assets/mermaid.core-ySrvolIe.js.gz +0 -0
  98. package/ui-dist/assets/middleware-DXsbf9xI.js.gz +0 -0
  99. package/ui-dist/assets/mindmap-definition-LN4V7U3C-BypL9tei.js.gz +0 -0
  100. package/ui-dist/assets/{model-config-page-hFBpeRAO.js → model-config-page-DboxoT-I.js} +1 -1
  101. package/ui-dist/assets/model-config-page-DboxoT-I.js.gz +0 -0
  102. package/ui-dist/assets/{navigation-link-Hb5Z0UxZ.js → navigation-link-C_6oj3zz.js} +1 -1
  103. package/ui-dist/assets/navigation-link-C_6oj3zz.js.gz +0 -0
  104. package/ui-dist/assets/ordinal-CxxVWxYU.js.gz +0 -0
  105. package/ui-dist/assets/path-10BjdyLh.js.gz +0 -0
  106. package/ui-dist/assets/pegDiagram-2B236MQR-D-U2KBGv.js.gz +0 -0
  107. package/ui-dist/assets/pieDiagram-ENE6RG2P-CBi3GusJ.js.gz +0 -0
  108. package/ui-dist/assets/plus-DRsq9Kvs.js +1 -0
  109. package/ui-dist/assets/preload-helper-D4M6sveU.js.gz +0 -0
  110. package/ui-dist/assets/{privacy-settings-page-C18zo3ox.js → privacy-settings-page-C2sDBqhb.js} +1 -1
  111. package/ui-dist/assets/privacy-settings-page-C2sDBqhb.js.gz +0 -0
  112. package/ui-dist/assets/projects-BcPcx-uD.js +1 -0
  113. package/ui-dist/assets/projects-BcPcx-uD.js.gz +0 -0
  114. package/ui-dist/assets/{providers-config-page-YU0-AOXJ.js → providers-config-page-CmUFl9RF.js} +1 -1
  115. package/ui-dist/assets/providers-config-page-CmUFl9RF.js.gz +0 -0
  116. package/ui-dist/assets/quadrantDiagram-ABIIQ3AL-H0ZuvnZL.js.gz +0 -0
  117. package/ui-dist/assets/railroadDiagram-RFXS5EU6-D7Y2EqSd.js.gz +0 -0
  118. package/ui-dist/assets/react-BjO9I4WZ.js +8 -0
  119. package/ui-dist/assets/react-BjO9I4WZ.js.gz +0 -0
  120. package/ui-dist/assets/{refresh-cw-ZHKfE3yx.js → refresh-cw-DsT2kvXi.js} +1 -1
  121. package/ui-dist/assets/remote-Ci6x91ES.js +1 -0
  122. package/ui-dist/assets/requirementDiagram-TGXJPOKE-BiXNX1NN.js.gz +0 -0
  123. package/ui-dist/assets/{rotate-cw-CLhOXGwE.js → rotate-cw-BCAs6c3R.js} +1 -1
  124. package/ui-dist/assets/rough.esm-DxgC_14r.js.gz +0 -0
  125. package/ui-dist/assets/{runtime-config-page-Dmy1A_0Y.js → runtime-config-page-cQKNeAjL.js} +1 -1
  126. package/ui-dist/assets/runtime-config-page-cQKNeAjL.js.gz +0 -0
  127. package/ui-dist/assets/sankeyDiagram-HTMAVEWB-qzDeLztW.js.gz +0 -0
  128. package/ui-dist/assets/{save-CWuuZs77.js → save-CadRMTMQ.js} +1 -1
  129. package/ui-dist/assets/{search-DcmsKAn2.js → search-B6tB4fzB.js} +1 -1
  130. package/ui-dist/assets/{search-config-page-CxBacx6W.js → search-config-page-C8lOIkxn.js} +1 -1
  131. package/ui-dist/assets/search-config-page-C8lOIkxn.js.gz +0 -0
  132. package/ui-dist/assets/{secrets-config-page-B4py8-KR.js → secrets-config-page-8clzAag2.js} +1 -1
  133. package/ui-dist/assets/secrets-config-page-8clzAag2.js.gz +0 -0
  134. package/ui-dist/assets/security-config-DPbM6IVT.js +1 -0
  135. package/ui-dist/assets/{select-BEr0Iy_f.js → select-CO9S_C2C.js} +1 -1
  136. package/ui-dist/assets/select-CO9S_C2C.js.gz +0 -0
  137. package/ui-dist/assets/sequenceDiagram-DBY2YBRQ-BtRbPQtL.js.gz +0 -0
  138. package/ui-dist/assets/skeleton-IHILNhIW.js +1 -0
  139. package/ui-dist/assets/src-Bw-mzbQb.js.gz +0 -0
  140. package/ui-dist/assets/stateDiagram-2N3HPSRC-BJ-mFeOz.js.gz +0 -0
  141. package/ui-dist/assets/swimlanes-5IMT3BWC-BsucVOO2.js.gz +0 -0
  142. package/ui-dist/assets/{tag-chip-ByqDkn6g.js → tag-chip-BZKk0UkK.js} +1 -1
  143. package/ui-dist/assets/timeline-definition-FHXFAJF6-Bicewlzo.js.gz +0 -0
  144. package/ui-dist/assets/vennDiagram-L72KCM5P-BxOOnO9x.js.gz +0 -0
  145. package/ui-dist/assets/wardleyDiagram-EHGQE667-Cl7NltMv.js.gz +0 -0
  146. package/ui-dist/assets/x-BuvHIb1d.js +1 -0
  147. package/ui-dist/assets/xlsx-DrDuDNAa.js.gz +0 -0
  148. package/ui-dist/assets/xychartDiagram-FW5EYKEG-DiMIxQ7N.js.gz +0 -0
  149. package/ui-dist/index.html +21 -21
  150. package/ui-dist/index.html.gz +0 -0
  151. package/ui-dist/logos/discord.svg.gz +0 -0
  152. package/ui-dist/logos/feishu.svg.gz +0 -0
  153. package/ui-dist/logos/gemini.svg.gz +0 -0
  154. package/ui-dist/logos/mimo.svg.gz +0 -0
  155. package/ui-dist/logos/openai.svg.gz +0 -0
  156. package/ui-dist/logos/slack.svg.gz +0 -0
  157. package/ui-dist/logos/vllm.svg.gz +0 -0
  158. package/ui-dist/logos/weixin.svg.gz +0 -0
  159. package/ui-dist/logos/whatsapp.svg.gz +0 -0
  160. package/ui-dist/logos/zhipu.svg.gz +0 -0
  161. package/ui-dist/offline.html.gz +0 -0
  162. package/ui-dist/runtime-icons/codex-openai.svg.gz +0 -0
  163. package/ui-dist/sw.js.gz +0 -0
  164. package/resources/native/darwin-arm64/nextclaw-wasmtime-runner +0 -0
  165. package/ui-dist/assets/api-CoqPRKmF.js +0 -13
  166. package/ui-dist/assets/api-CoqPRKmF.js.gz +0 -0
  167. package/ui-dist/assets/appearance-settings-page-CPoFZLw8.js.gz +0 -0
  168. package/ui-dist/assets/channels-list-page-anMJAkfK.js.gz +0 -0
  169. package/ui-dist/assets/config-split-page-AcuFnbIC.js.gz +0 -0
  170. package/ui-dist/assets/confirm-dialog-B-atCfC5.js.gz +0 -0
  171. package/ui-dist/assets/desktop-capabilities-page-8lKF_Ob-.js.gz +0 -0
  172. package/ui-dist/assets/desktop-update-config-DABXDpbj.js.gz +0 -0
  173. package/ui-dist/assets/dist-D8kcEpTf.js.gz +0 -0
  174. package/ui-dist/assets/dist-eH-_j8yU.js.gz +0 -0
  175. package/ui-dist/assets/doc-browser-DJEMr7Zk.js +0 -1
  176. package/ui-dist/assets/doc-browser-DzXRehlW.js.gz +0 -0
  177. package/ui-dist/assets/doc-browser-context-BlbUcg2J.js.gz +0 -0
  178. package/ui-dist/assets/extensions-mquwAJ2Z.js.gz +0 -0
  179. package/ui-dist/assets/index-DyR5iR0O.css +0 -1
  180. package/ui-dist/assets/index-DyR5iR0O.css.gz +0 -0
  181. package/ui-dist/assets/index-XxXj8WDS.js +0 -109
  182. package/ui-dist/assets/index-XxXj8WDS.js.gz +0 -0
  183. package/ui-dist/assets/loader-circle-0qPOOYQ5.js +0 -1
  184. package/ui-dist/assets/mcp-marketplace-page-gFtgyueL.js.gz +0 -0
  185. package/ui-dist/assets/mcp-marketplace-page-uanamJ6L.js +0 -1
  186. package/ui-dist/assets/model-config-page-hFBpeRAO.js.gz +0 -0
  187. package/ui-dist/assets/navigation-link-Hb5Z0UxZ.js.gz +0 -0
  188. package/ui-dist/assets/plus-CYOvNvcV.js +0 -1
  189. package/ui-dist/assets/privacy-settings-page-C18zo3ox.js.gz +0 -0
  190. package/ui-dist/assets/projects-C8Gm9RS8.js +0 -1
  191. package/ui-dist/assets/projects-C8Gm9RS8.js.gz +0 -0
  192. package/ui-dist/assets/providers-config-page-YU0-AOXJ.js.gz +0 -0
  193. package/ui-dist/assets/react-DF-kP7iN.js +0 -8
  194. package/ui-dist/assets/react-DF-kP7iN.js.gz +0 -0
  195. package/ui-dist/assets/remote-B_utkBra.js +0 -1
  196. package/ui-dist/assets/runtime-config-page-Dmy1A_0Y.js.gz +0 -0
  197. package/ui-dist/assets/search-config-page-CxBacx6W.js.gz +0 -0
  198. package/ui-dist/assets/secrets-config-page-B4py8-KR.js.gz +0 -0
  199. package/ui-dist/assets/security-config-CTP4IQWw.js +0 -1
  200. package/ui-dist/assets/select-BEr0Iy_f.js.gz +0 -0
  201. package/ui-dist/assets/skeleton-B2NHluWf.js +0 -1
  202. package/ui-dist/assets/x-CENkFyK5.js +0 -1
Binary file
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-Blz0FzrV.js";var t=e(`LoaderCircle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./mcp-marketplace-page-gFtgyueL.js";export{e as McpMarketplacePage};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-Blz0FzrV.js";var t=e(`Plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -1 +0,0 @@
1
- import{i as e}from"./chunk-DseTPa7n.js";import{B as t,F as n,H as r,a as i,i as a,n as o,r as s}from"./react-DF-kP7iN.js";import{d as c,f as l,i as u}from"./navigation-link-Hb5Z0UxZ.js";import{An as d,It as f,_n as p,fn as m,pn as h,vn as g,yn as _}from"./api-CoqPRKmF.js";import{a as v,i as y,n as b,r as x,t as S}from"./select-BEr0Iy_f.js";import{G as C,J as w,K as T,Q as E,W as D,Y as O,at as k,nt as ee,ot as te,p as ne,q as A,rt as j}from"./index-XxXj8WDS.js";var M=e(r(),1),N=t();function P({title:e,children:t,className:n=``}){return(0,N.jsxs)(ee,{hover:!1,surface:`flat`,className:n,children:[(0,N.jsx)(k,{className:`p-4 pb-3`,children:(0,N.jsx)(te,{children:e})}),(0,N.jsx)(j,{className:`p-4 pt-0`,children:t})]})}function F({children:e}){return(0,N.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:e})}function I({available:e,children:t,className:n,label:r,onOpen:i,path:a}){return e?(0,N.jsx)(`button`,{type:`button`,className:n,title:a,onClick:()=>i(a,r),children:t}):(0,N.jsx)(`div`,{className:n,children:t})}function L({snapshot:e,onOpenFile:t}){return(0,N.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[(0,N.jsxs)(P,{title:i(`projectsVisionAndContext`),children:[e.project.summary?(0,N.jsx)(`p`,{className:`mb-4 text-sm`,children:e.project.summary}):null,e.project.context.length?(0,N.jsx)(`div`,{className:`divide-y divide-border/60`,children:e.project.context.map(e=>(0,N.jsx)(re,{context:e,onOpenFile:t},e.id))}):(0,N.jsx)(F,{children:i(`projectsNoContext`)})]}),(0,N.jsxs)(P,{title:i(`projectsSourceHealth`),children:[(0,N.jsx)(`div`,{className:`space-y-2`,children:e.sources.map(e=>(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl bg-muted/45 p-3 text-sm`,children:[(0,N.jsx)(`span`,{children:e.label}),(0,N.jsxs)(`span`,{className:`text-muted-foreground`,children:[i(`projectsSource_${e.status}`),` · `,e.itemCount]})]},e.id))}),e.diagnostics.length?(0,N.jsx)(`div`,{className:`mt-4 space-y-2 border-t border-border/60 pt-4`,children:e.diagnostics.map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl bg-muted/35 p-3 text-sm`,children:[(0,N.jsx)(`p`,{className:`font-medium`,children:e.code}),(0,N.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.message})]},e.id))}):null]})]})}function re({context:e,onOpenFile:t}){let{accessible:n,role:r,source:a}=e;return(0,N.jsxs)(I,{available:n,path:a,label:r,onOpen:t,className:`block w-full py-3 text-left first:pt-0 enabled:hover:text-foreground enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,N.jsx)(`span`,{className:`block text-sm font-medium`,children:r}),(0,N.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[a,n?``:` · ${i(`projectsUnavailable`)}`]})]})}var R=`updated-desc`;function z(e){if(!e)return-1/0;let t=new Date(e).getTime();return Number.isNaN(t)?-1/0:t}function B(e,t){return e.path.localeCompare(t.path)}function V(e,t=R){return[...e].sort((e,n)=>{if(t===`name`)return B(e,n);let r=z(t===`created-desc`?e.fileCreatedAt??e.fileUpdatedAt:e.fileUpdatedAt??e.fileCreatedAt),i=z(t===`created-desc`?n.fileCreatedAt??n.fileUpdatedAt:n.fileUpdatedAt??n.fileCreatedAt);return(t===`updated-asc`?r-i:i-r)||B(e,n)})}function H(e,t=new Date){if(!e)return`-`;let n=new Date(e),r=t.getTime()-n.getTime();if(Number.isNaN(n.getTime()))return e;if(r<6e4)return i(`projectsTimeJustNow`);let a=Math.floor(r/6e4);if(a<60)return i(`projectsTimeMinutesAgo`).replace(`{count}`,String(a));let s=Math.floor(a/60);if(s<24)return i(`projectsTimeHoursAgo`).replace(`{count}`,String(s));let c=Math.floor(s/24);return c===1?i(`projectsTimeYesterday`):c<7?i(`projectsTimeDaysAgo`).replace(`{count}`,String(c)):o(e)}var U=10;function W(e,t,n){let r=t.trim().toLocaleLowerCase(),i=V(r?e.artifacts.filter(e=>e.path.toLocaleLowerCase().includes(r)):e.artifacts,n),a=new Map;for(let e of i){let t=a.get(e.categoryId)??[];t.push(e),a.set(e.categoryId,t)}let o=e.artifactCategories??[],s=new Set(o.map(e=>e.id)),c=o.flatMap(e=>{let t=a.get(e.id)??[];return t.length?[{...e,artifacts:t}]:[]}),l=[...a.entries()].filter(([e])=>!s.has(e)).map(([e,t])=>({id:e,label:t[0]?.categoryLabel??e,artifacts:t})).sort((e,t)=>e.label.localeCompare(t.label));return[...c,...l]}function G({snapshot:e,onOpenFile:t}){let[n,r]=(0,M.useState)(``),[o,c]=(0,M.useState)(R),[l,u]=(0,M.useState)(()=>new Set),[d,f]=(0,M.useState)({}),p=(0,M.useMemo)(()=>W(e,n,o),[n,e,o]),m=e.artifacts.some(e=>e.fileCreatedAt);return e.artifacts.length?(0,N.jsxs)(`section`,{className:`min-w-0`,"aria-label":i(`projectsArtifacts`),children:[(0,N.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,N.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[a(e.artifacts.length),` `,i(`projectsArtifactsCountSuffix`)]}),(0,N.jsxs)(`div`,{className:`flex w-full flex-wrap items-center gap-2 sm:w-auto`,children:[(0,N.jsxs)(S,{value:o,onValueChange:e=>c(e),children:[(0,N.jsx)(y,{"aria-label":i(`projectsArtifactsSort`),className:`h-8 w-32 rounded-lg`,children:(0,N.jsx)(v,{})}),(0,N.jsxs)(b,{children:[(0,N.jsx)(x,{value:`updated-desc`,children:i(`projectsArtifactsSortUpdatedDesc`)}),(0,N.jsx)(x,{value:`updated-asc`,children:i(`projectsArtifactsSortUpdatedAsc`)}),m?(0,N.jsx)(x,{value:`created-desc`,children:i(`projectsArtifactsSortCreatedDesc`)}):null,(0,N.jsx)(x,{value:`name`,children:i(`projectsArtifactsSortName`)})]})]}),(0,N.jsx)(`input`,{type:`search`,value:n,className:`h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-transparent px-3 text-sm outline-none placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-border sm:w-60`,placeholder:i(`projectsArtifactsSearchPlaceholder`),onChange:e=>{r(e.target.value),f({})}})]})]}),p.length?(0,N.jsx)(`div`,{className:`space-y-2`,children:p.map(e=>{let n=l.has(e.id),r=d[e.id]??U,o=e.artifacts.slice(0,r);return(0,N.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-border/60`,children:[(0,N.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 bg-muted/30 px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,"aria-label":`${e.label} ${a(e.artifacts.length)}`,"aria-expanded":!n,onClick:()=>u(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n}),children:[(0,N.jsx)(`span`,{className:`min-w-0 truncate font-medium`,children:e.label}),(0,N.jsxs)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:[a(e.artifacts.length),` `,n?`▸`:`▾`]})]}),n?null:(0,N.jsxs)(`div`,{className:`divide-y divide-border/60`,children:[o.map(e=>(0,N.jsxs)(I,{available:e.exists,path:e.path,label:e.path,onOpen:t,className:`flex w-full min-w-0 items-center gap-3 px-3 py-2.5 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,N.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.path}),e.fileUpdatedAt?(0,N.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:e.fileUpdatedAt,title:s(e.fileUpdatedAt),children:H(e.fileUpdatedAt)}):null,e.exists?null:(0,N.jsx)(`span`,{className:`shrink-0 text-xs text-destructive`,children:i(`projectsUnavailable`)})]},e.id)),e.artifacts.length>o.length?(0,N.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2.5 text-left text-sm text-muted-foreground transition-colors hover:bg-[var(--interaction-hover)] hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>f(t=>({...t,[e.id]:r+U})),children:[i(`projectsArtifactsShowMore`),` (`,a(Math.min(U,e.artifacts.length-o.length)),`)`]}):null]})]},e.id)})}):(0,N.jsx)(F,{children:i(`projectsArtifactsNoMatches`)})]}):(0,N.jsx)(F,{children:i(`projectsNoArtifacts`)})}function K({limit:e,snapshot:t}){let n=t.runs??[],r=e===void 0?n:n.slice(0,e);return r.length?(0,N.jsx)(`div`,{className:`space-y-2`,children:r.map(e=>{let n=e.workItemId?t.workItems.find(t=>t.id===e.workItemId):void 0,r=n?.workflowId?t.workflows.find(e=>e.id===n.workflowId):void 0,a=n?.stageId?r?.stages.find(e=>e.id===n.stageId):void 0,o=[e.agentId,e.model].filter(Boolean).join(` · `);return(0,N.jsxs)(u,{className:`block rounded-xl bg-muted/45 p-3 text-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,to:`/chat/${encodeURIComponent(e.sessionId)}`,children:[(0,N.jsxs)(`span`,{className:`flex min-w-0 items-center justify-between gap-3`,children:[(0,N.jsx)(`span`,{className:`truncate font-medium`,children:e.label??n?.name??i(`projectsAiRun`)}),(0,N.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:i(`projectsRunState_${e.state}`)})]}),(0,N.jsx)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:n?`${n.name}${a?` · ${a.label}`:``}`:i(`projectsRunUnreported`)}),(0,N.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[o?`${o} · `:``,(0,N.jsx)(`time`,{dateTime:e.updatedAt,title:s(e.updatedAt),children:H(e.updatedAt)})]})]},e.sessionId)})}):null}function q({hasProjectSessions:e,snapshot:t,onStartObservationSetup:n,onStartProjectWork:r,onOpenFile:a,shouldOfferObservationSetup:o}){let c=t.signals.filter(e=>e.status===`open`),l=V(t.artifacts,R).slice(0,5),d=[...t.activity].sort((e,t)=>t.at.localeCompare(e.at)).slice(0,6);return(0,N.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[o?(0,N.jsxs)(P,{title:i(`projectsObservationSetupTitle`),className:`lg:col-span-2`,children:[(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`projectsObservationSetupDescription`)}),(0,N.jsx)(`button`,{type:`button`,className:`mt-3 rounded-lg bg-primary px-3 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,onClick:n,children:i(`projectsObservationSetupAction`)})]}):null,(t.runs?.length??0)>0?(0,N.jsx)(P,{title:i(`projectsAiActivity`),className:`lg:col-span-2`,children:(0,N.jsx)(K,{limit:5,snapshot:t})}):null,(0,N.jsx)(P,{title:i(`projectsAttention`),children:c.length?(0,N.jsx)(`div`,{className:`space-y-2`,children:c.map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl bg-muted/45 p-3 text-sm`,children:[(0,N.jsx)(`p`,{className:`font-medium`,children:e.message}),(0,N.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.reference.label,` · `,e.level]})]},e.id))}):(0,N.jsx)(F,{children:i(`projectsNoAttention`)})}),(0,N.jsx)(P,{title:i(`projectsWork`),children:t.workItems.length?(0,N.jsx)(`div`,{className:`space-y-2`,children:t.workItems.slice(0,5).map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl bg-muted/45 p-3 text-sm`,children:[(0,N.jsx)(`p`,{className:`font-medium`,children:e.name}),(0,N.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.reference.label,` · `,i(`projectsStatus_${e.status}`)]})]},e.id))}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(F,{children:i(o?`projectsWorkNeedsSetup`:e?`projectsWorkNoReports`:`projectsWorkNoSessions`)}),o?null:(0,N.jsx)(m,{size:`sm`,variant:`outline`,onClick:r,children:i(`projectsStartProjectWork`)})]})}),(0,N.jsx)(P,{title:i(`projectsArtifacts`),children:l.length?(0,N.jsx)(`div`,{className:`space-y-2`,children:l.map(e=>(0,N.jsxs)(I,{available:e.exists,path:e.path,label:e.path,onOpen:a,className:`block w-full rounded-xl bg-muted/45 p-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,N.jsx)(`span`,{className:`block truncate font-medium`,children:e.path}),(0,N.jsxs)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:[e.categoryLabel,e.fileUpdatedAt?(0,N.jsx)(`time`,{dateTime:e.fileUpdatedAt,title:s(e.fileUpdatedAt),children:` · ${H(e.fileUpdatedAt)}`}):null,e.exists?``:` · ${i(`projectsUnavailable`)}`]})]},e.id))}):(0,N.jsx)(F,{children:i(`projectsNoArtifacts`)})}),(0,N.jsx)(P,{title:i(`projectsActivity`),children:d.length?(0,N.jsx)(`div`,{className:`space-y-3`,children:d.map(e=>(0,N.jsxs)(`div`,{className:`text-sm`,children:[(0,N.jsx)(`p`,{children:e.message}),(0,N.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.reference.sessionId?(0,N.jsx)(u,{className:`underline underline-offset-2`,to:`/chat/${encodeURIComponent(e.reference.sessionId)}`,children:e.reference.label}):e.reference.label,` · `,(0,N.jsx)(`time`,{dateTime:e.at,title:s(e.at),children:H(e.at)})]})]},e.id))}):(0,N.jsx)(F,{children:i(`projectsNoActivity`)})})]})}function J(e){return e===`overview`||e===`work`||e===`artifacts`||e===`skills`||e===`agreement`}function Y(e,t){return e.flatMap(e=>e.stages.map(n=>({id:`${e.id}:${n.id}`,label:n.label,items:t.filter(t=>t.workflowId===e.id&&t.stageId===n.id)})))}function ie(e){return e.filter(e=>!e.workflowId||!e.stageId)}function ae(e){return e.filter(e=>e.schedule?.start||e.schedule?.end)}function oe(e){return e.status===`open`&&e.response===`confirm-reject`&&!!e.reference.sessionId&&!e.reply}function se(e){return e.requests.filter(e=>e.status===`open`)}function ce({requests:e,pendingRequestId:t,onReply:n}){return e.length===0?null:(0,N.jsx)(P,{title:i(`projectsRequests`),children:(0,N.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>{let{id:r,prompt:a,reference:{label:o,sessionId:s},reply:c}=e,l=t===r;return(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl bg-muted/45 p-3`,children:[(0,N.jsxs)(`div`,{className:`min-w-48 flex-1`,children:[(0,N.jsx)(`p`,{className:`text-sm font-medium`,children:a}),(0,N.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:c?i(`projectsResponseWaiting`):o})]}),oe(e)?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(m,{size:`sm`,disabled:l,onClick:()=>n(e,`confirmed`),children:i(`projectsConfirm`)}),(0,N.jsx)(m,{size:`sm`,variant:`outline`,disabled:l,onClick:()=>n(e,`rejected`),children:i(`projectsReject`)})]}):null,s?(0,N.jsx)(u,{className:h({size:`sm`,variant:`ghost`}),to:`/chat/${encodeURIComponent(s)}`,children:i(`projectsOpenSession`)}):null]},r)})})})}function le({snapshot:e,onOpen:t}){return(0,N.jsxs)(`section`,{className:`min-w-0`,"aria-label":i(`projectsSkills`),children:[(0,N.jsxs)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:[a(e.skills.length),` `,i(`projectsSkillsCountSuffix`)]}),e.skills.length?(0,N.jsx)(`div`,{className:`grid min-w-0 gap-3 md:grid-cols-2`,children:e.skills.map(e=>(0,N.jsxs)(`button`,{type:`button`,className:`min-w-0 rounded-xl border border-border/60 p-3 text-left transition-colors enabled:hover:border-border enabled:hover:bg-muted/30 disabled:cursor-not-allowed`,disabled:!e.readable,onClick:()=>t(e),children:[(0,N.jsx)(`h3`,{className:`text-sm font-medium`,children:e.name}),(0,N.jsx)(`p`,{className:`mt-1 truncate text-xs text-muted-foreground`,title:e.path,children:e.path}),(0,N.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs text-muted-foreground`,title:e.description??e.ref,children:e.description??e.ref}),e.readable?null:(0,N.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:i(`projectsUnavailable`)})]},e.ref))}):(0,N.jsx)(F,{children:i(`projectsNoSkills`)})]})}function X({item:e,onSelect:t}){return(0,N.jsxs)(`button`,{type:`button`,className:`w-full rounded-xl bg-card p-3 text-left text-sm shadow-sm hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:t,children:[(0,N.jsx)(`span`,{className:`block font-medium`,children:e.name}),(0,N.jsxs)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:[e.reference.label,` · `,i(`projectsStatus_${e.status}`)]})]})}function ue({hasProjectSessions:e,onStartObservationSetup:t,onStartProjectWork:n,shouldOfferObservationSetup:r}){return(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(F,{children:i(r?`projectsWorkNeedsSetup`:e?`projectsWorkNoReports`:`projectsWorkNoSessions`)}),(0,N.jsx)(m,{size:`sm`,variant:`outline`,onClick:r?t:n,children:i(r?`projectsObservationSetupAction`:`projectsStartProjectWork`)})]})}function de({hasProjectSessions:e,onStartObservationSetup:t,onStartProjectWork:n,snapshot:r,shouldOfferObservationSetup:a}){let[o,s]=(0,M.useState)(`list`),[c,l]=(0,M.useState)(null),u=r.workItems.find(e=>e.id===c)??null,d=Y(r.workflows,r.workItems),f=ie(r.workItems),p=ae(r.workItems);return(0,N.jsxs)(`section`,{className:`min-w-0`,"aria-label":i(`projectsWork`),children:[(r.runs?.length??0)>0?(0,N.jsxs)(`div`,{className:`mb-5`,children:[(0,N.jsx)(`h2`,{className:`mb-2 text-sm font-semibold`,children:i(`projectsAiActivity`)}),(0,N.jsx)(K,{snapshot:r})]}):null,r.workItems.length===0?(0,N.jsx)(ue,{hasProjectSessions:e,onStartObservationSetup:t,onStartProjectWork:n,shouldOfferObservationSetup:a}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{className:`mb-4 flex flex-wrap gap-1`,role:`group`,"aria-label":i(`projectsWorkViews`),children:[`list`,`board`,`gantt`].map(e=>(0,N.jsx)(m,{size:`sm`,variant:o===e?`secondary`:`ghost`,"aria-pressed":o===e,onClick:()=>s(e),children:i(`projectsWork${e[0].toUpperCase()}${e.slice(1)}`)},e))}),o===`list`?(0,N.jsx)(`div`,{className:`space-y-2`,children:r.workItems.map(e=>(0,N.jsx)(X,{item:e,onSelect:()=>l(e.id)},e.id))}):null,o===`board`?d.length?(0,N.jsxs)(`div`,{className:`grid min-w-0 gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[d.map(e=>(0,N.jsxs)(`section`,{className:`min-w-0 rounded-xl bg-muted/35 p-3`,children:[(0,N.jsx)(`h3`,{className:`mb-3 text-xs font-semibold`,children:e.label}),(0,N.jsxs)(`div`,{className:`space-y-2`,children:[e.items.map(e=>(0,N.jsx)(X,{item:e,onSelect:()=>l(e.id)},e.id)),e.items.length?null:(0,N.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:i(`projectsNoData`)})]})]},e.id)),f.length?(0,N.jsxs)(`section`,{className:`min-w-0 rounded-xl bg-muted/35 p-3`,children:[(0,N.jsx)(`h3`,{className:`mb-3 text-xs font-semibold`,children:i(`projectsUnstaged`)}),(0,N.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>(0,N.jsx)(X,{item:e,onSelect:()=>l(e.id)},e.id))})]}):null]}):(0,N.jsx)(F,{children:i(`projectsBoardNeedsWorkflow`)}):null,o===`gantt`?p.length?(0,N.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-border/60`,children:(0,N.jsx)(`div`,{className:`min-w-[42rem] divide-y divide-border/60`,children:p.map(e=>(0,N.jsxs)(`button`,{type:`button`,className:`grid w-full grid-cols-[minmax(12rem,1fr)_9rem_9rem] gap-3 px-4 py-3 text-left text-sm hover:bg-[var(--interaction-hover)]`,onClick:()=>l(e.id),children:[(0,N.jsx)(`span`,{className:`truncate font-medium`,children:e.name}),(0,N.jsx)(`span`,{children:e.schedule?.start??`—`}),(0,N.jsx)(`span`,{children:e.schedule?.end??`—`})]},e.id))})}):(0,N.jsx)(F,{children:i(`projectsGanttNeedsSchedule`)}):null,u?(0,N.jsxs)(`aside`,{className:`mt-4 rounded-xl border border-border/60 bg-muted/25 p-4`,"aria-label":i(`projectsWorkDetails`),children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`font-semibold`,children:u.name}),(0,N.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[u.id,` · `,u.reference.label]})]}),(0,N.jsx)(m,{size:`sm`,variant:`ghost`,onClick:()=>l(null),children:i(`projectsCloseDetails`)})]}),(0,N.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-sm sm:grid-cols-2`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:i(`projectsStatus`)}),(0,N.jsx)(`dd`,{children:i(`projectsStatus_${u.status}`)})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:i(`projectsStage`)}),(0,N.jsx)(`dd`,{children:u.stageId??i(`projectsNoData`)})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:i(`projectsUpdated`)}),(0,N.jsx)(`dd`,{children:u.updatedAt})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:i(`projectsSchedule`)}),(0,N.jsx)(`dd`,{children:u.schedule?`${u.schedule.start??`—`} → ${u.schedule.end??`—`}`:i(`projectsNoData`)})]})]})]}):null]})]})}var Z=e=>[`project-observation`,e],fe=new Set([w.MessageTextEnd,w.MessageTextDelta,w.MessageCompleted,w.MessageFailed,w.MessageAbort,w.RunStarted,w.RunFinished,w.RunError]),pe=e=>{if(!(`payload`in e)||!e.payload||typeof e.payload!=`object`||!(`sessionId`in e.payload))return null;let{sessionId:t}=e.payload;return typeof t==`string`&&t.trim()?t.trim():null},me=e=>{let t=e?.project_root??e?.projectRoot;return typeof t==`string`&&t.trim()?t.trim():null};function he(e,t){let r=d();return(0,M.useEffect)(()=>{if(!e||!t)return;let i=Z(e),a=null,o=()=>{a||=setTimeout(()=>{a=null,r.invalidateQueries({queryKey:i,exact:!0})},100)},s=e=>{let t=r.getQueryData(i);return!!(t?.runs?.some(t=>t.sessionId===e)||t?.workItems.some(t=>t.reference.sessionId===e)||t?.activity.some(t=>t.reference.sessionId===e))},c=[f.eventBus.on(n.ncpEvent,e=>{if(!fe.has(e.type))return;let t=pe(e);t&&s(t)&&o()}),f.eventBus.on(n.sessionRunStatus,({sessionKey:e})=>{s(e)&&o()}),f.eventBus.on(n.sessionSummaryUpsert,({summary:e})=>{me(e.metadata)===t&&o()}),f.eventBus.on(n.sessionSummaryDelete,({sessionKey:e})=>{s(e)&&o()})];return()=>{a&&clearTimeout(a);for(let e of c)e()}},[e,t,r]),_({queryKey:Z(e??``),enabled:!!e,staleTime:5e3,queryFn:async()=>await f.projects.getObservation(e)})}async function ge(e){let t=`project-response-${e.requestId}-${e.decision}`;return await f.agentRuns.send({sessionId:e.sessionId,idempotencyKey:t,delivery:`prefer-steer`,message:{id:t,sessionId:e.sessionId,role:`user`,status:`final`,timestamp:new Date().toISOString(),parts:[{type:`text`,text:`${e.decision===`confirmed`?`确认`:`拒绝`}:${e.prompt}`}],metadata:{project_observation_response:{protocol:`nextclaw.project/v1`,requestId:e.requestId,decision:e.decision}}}})}var _e=[`overview`,`work`,`artifacts`,`skills`,`agreement`];function Q(e){let t=e.find(e=>e.id===`config`);return!t||t.status!==`available`}function $(e){return(e.find(e=>e.id===`sessions`)?.itemCount??0)>0}function ve(){let{projectId:e,tab:t}=l(),n=c(),[r,a]=(0,M.useState)(null),o=d(),s=E(),u=O(),f=u.data?.projects??[],m=f.find(t=>t.id===e)??null,h=J(t)?t:null,_=he(m?.id??null,m?.rootPath??null),v=g({mutationFn:ge,onMutate:e=>a(e.requestId),onSuccess:async()=>{m&&await o.invalidateQueries({queryKey:Z(m.id)}),p.success(i(`projectsResponseSent`))},onError:e=>p.error(`${i(`projectsResponseFailed`)}: ${e instanceof Error?e.message:String(e)}`),onSettled:()=>a(null)}),y=(e,t)=>{e.reference.sessionId&&v.mutate({requestId:e.id,sessionId:e.reference.sessionId,decision:t,prompt:e.prompt})};if(u.isLoading)return(0,N.jsx)(`main`,{className:`flex h-full items-center justify-center p-6 text-sm text-muted-foreground`,children:i(`projectsLoading`)});if(u.isError)return(0,N.jsxs)(`main`,{className:`p-6 text-sm text-destructive`,children:[i(`projectsLoadFailed`),`: `,u.error.message]});if(f.length===0)return(0,N.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:i(`projectsEmpty`)});if(!m||!h)return(0,N.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:i(`projectsChoose`)});let b=_.data,x=()=>s.chatSessionListManager.createSession({projectRoot:m.rootPath,prompt:i(`projectsObservationSetupPrompt`)}),S=()=>s.chatSessionListManager.createSession({projectRoot:m.rootPath,prompt:i(`projectsStartProjectWorkPrompt`)}),w=(e,t)=>s.chatThreadManager.openFilePreview({path:e,label:t,viewMode:`preview`,previewViewer:`rendered`});return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`main`,{className:`h-full min-w-0 flex-1 overflow-y-auto p-4 md:p-6`,children:(0,N.jsxs)(`div`,{className:`mx-auto max-w-6xl space-y-4`,children:[(0,N.jsx)(`header`,{className:`flex flex-wrap items-center gap-3`,children:(0,N.jsx)(`h1`,{className:`text-xl font-semibold`,children:i(`projectsTitle`)})}),_.isLoading?(0,N.jsx)(`div`,{className:`rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:i(`projectsLoading`)}):null,_.isError?(0,N.jsxs)(`div`,{className:`rounded-xl border border-destructive/40 bg-destructive/5 p-5 text-sm text-destructive`,children:[i(`projectsLoadFailed`),`: `,_.error.message]}):null,b?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`section`,{className:`rounded-2xl border border-border/60 bg-card p-4`,children:[(0,N.jsx)(`h2`,{className:`text-lg font-semibold`,children:b.project.name}),b.project.summary?(0,N.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:b.project.summary}):null,(0,N.jsx)(`p`,{className:`mt-2 break-all text-xs text-muted-foreground`,children:b.project.rootPath})]}),(0,N.jsx)(ce,{requests:se(b),pendingRequestId:r,onReply:y}),(0,N.jsxs)(D,{value:h,onValueChange:e=>n(`/projects/${encodeURIComponent(m.id)}/${e}`),children:[(0,N.jsx)(`div`,{className:`min-w-0 overflow-x-auto pb-1`,children:(0,N.jsx)(T,{className:`w-max`,children:_e.map(e=>(0,N.jsx)(A,{value:e,children:i(`projects${e[0].toUpperCase()}${e.slice(1)}`)},e))})}),(0,N.jsx)(C,{value:`overview`,className:`mt-4`,children:(0,N.jsx)(q,{hasProjectSessions:$(b.sources),snapshot:b,shouldOfferObservationSetup:Q(b.sources),onOpenFile:w,onStartObservationSetup:x,onStartProjectWork:S})}),(0,N.jsx)(C,{value:`work`,className:`mt-4`,children:(0,N.jsx)(de,{hasProjectSessions:$(b.sources),snapshot:b,shouldOfferObservationSetup:Q(b.sources),onStartObservationSetup:x,onStartProjectWork:S})}),(0,N.jsx)(C,{value:`artifacts`,className:`mt-4`,children:(0,N.jsx)(G,{snapshot:b,onOpenFile:w})}),(0,N.jsx)(C,{value:`skills`,className:`mt-4`,children:(0,N.jsx)(le,{snapshot:b,onOpen:e=>s.chatThreadManager.openFilePreview({path:e.path,label:e.name,viewMode:`preview`,previewViewer:`rendered`})})}),(0,N.jsx)(C,{value:`agreement`,className:`mt-4`,children:(0,N.jsx)(L,{snapshot:b,onOpenFile:w})})]})]}):null]})}),(0,N.jsx)(ne,{layoutMode:`desktop`,sessionKey:null,projectRoot:m.rootPath})]})}export{ve as ProjectsPage};