@rubytech/create-maxy 1.0.761 → 1.0.763

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 (140) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/neo4j/schema.cypher +50 -0
  3. package/payload/platform/plugins/docs/references/platform.md +1 -1
  4. package/payload/server/chunk-S3M2NZMA.js +3136 -0
  5. package/payload/server/chunk-SGBNY4NP.js +9540 -0
  6. package/payload/server/client-pool-5V5GX3UT.js +28 -0
  7. package/payload/server/maxy-edge.js +2 -2
  8. package/payload/server/public/assets/{Checkbox-C24nM41g.js → Checkbox-BRLBdX7n.js} +1 -1
  9. package/payload/server/public/assets/admin-V6NDkEoR.js +352 -0
  10. package/payload/server/public/assets/{arc-CRqJUbyK.js → arc-BMhgytDB.js} +1 -1
  11. package/payload/server/public/assets/architecture-YZFGNWBL-S9-oeq_x.js +1 -0
  12. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DtICG195.js → architectureDiagram-Q4EWVU46-BePoi8XC.js} +1 -1
  13. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-nw1V7I38.js → blockDiagram-DXYQGD6D-BkiwLTtq.js} +1 -1
  14. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-C1eEC43O.js → c4Diagram-AHTNJAMY-bpjPj2Ln.js} +1 -1
  15. package/payload/server/public/assets/channel-D3U0_a1j.js +1 -0
  16. package/payload/server/public/assets/{chunk-2KRD3SAO-Bybqj-wj.js → chunk-2KRD3SAO-ZcHg_orY.js} +1 -1
  17. package/payload/server/public/assets/{chunk-336JU56O-Dszn2qEY.js → chunk-336JU56O-BpATJiGl.js} +2 -2
  18. package/payload/server/public/assets/chunk-426QAEUC-Wz6Bpsil.js +1 -0
  19. package/payload/server/public/assets/{chunk-4BX2VUAB-DrKtrnWH.js → chunk-4BX2VUAB-zJekz2NU.js} +1 -1
  20. package/payload/server/public/assets/{chunk-4TB4RGXK-CBFzVYqS.js → chunk-4TB4RGXK-CLXL19Wd.js} +1 -1
  21. package/payload/server/public/assets/{chunk-55IACEB6-BNsOFSNf.js → chunk-55IACEB6-CzqB8aoU.js} +1 -1
  22. package/payload/server/public/assets/{chunk-5FUZZQ4R-CXZykYh_.js → chunk-5FUZZQ4R-BoTfWHuW.js} +1 -1
  23. package/payload/server/public/assets/{chunk-5PVQY5BW-CLNppenz.js → chunk-5PVQY5BW-RhIfPCRB.js} +1 -1
  24. package/payload/server/public/assets/{chunk-67CJDMHE-DFyE0-n0.js → chunk-67CJDMHE-mM1sFmlz.js} +1 -1
  25. package/payload/server/public/assets/{chunk-7N4EOEYR-BIKZD1_4.js → chunk-7N4EOEYR-GUck0jv1.js} +1 -1
  26. package/payload/server/public/assets/{chunk-AA7GKIK3-D4_g24le.js → chunk-AA7GKIK3-BYhfUc1V.js} +1 -1
  27. package/payload/server/public/assets/{chunk-BSJP7CBP-Cd9H-V61.js → chunk-BSJP7CBP-CTsYuARh.js} +1 -1
  28. package/payload/server/public/assets/{chunk-CIAEETIT-CAU9PIQi.js → chunk-CIAEETIT-CGsGmUze.js} +1 -1
  29. package/payload/server/public/assets/{chunk-EDXVE4YY-CR1JfOwe.js → chunk-EDXVE4YY-utELKGQK.js} +1 -1
  30. package/payload/server/public/assets/{chunk-ENJZ2VHE-CuXW3Isg.js → chunk-ENJZ2VHE-CNHjq5xK.js} +1 -1
  31. package/payload/server/public/assets/{chunk-FMBD7UC4-BwGAtkIr.js → chunk-FMBD7UC4-DaRrfk3s.js} +1 -1
  32. package/payload/server/public/assets/{chunk-FOC6F5B3-Cn0552qP.js → chunk-FOC6F5B3-BaeLcJVt.js} +1 -1
  33. package/payload/server/public/assets/{chunk-ICPOFSXX-DEZT2XyQ.js → chunk-ICPOFSXX-Di63NBur.js} +2 -2
  34. package/payload/server/public/assets/{chunk-K5T4RW27-KwBFTzJ9.js → chunk-K5T4RW27-CTTOezMH.js} +1 -1
  35. package/payload/server/public/assets/{chunk-KGLVRYIC-1-3y582Z.js → chunk-KGLVRYIC-DCkohKP2.js} +1 -1
  36. package/payload/server/public/assets/{chunk-LIHQZDEY-DXIBsDHL.js → chunk-LIHQZDEY-osQO30uB.js} +1 -1
  37. package/payload/server/public/assets/{chunk-ORNJ4GCN-CRbOike7.js → chunk-ORNJ4GCN-DoLajOOe.js} +1 -1
  38. package/payload/server/public/assets/{chunk-OYMX7WX6-CVT9itnY.js → chunk-OYMX7WX6-BSPzqyxs.js} +1 -1
  39. package/payload/server/public/assets/chunk-QZHKN3VN-BAQp1OEl.js +1 -0
  40. package/payload/server/public/assets/{chunk-U2HBQHQK-BLgNHWFf.js → chunk-U2HBQHQK-BZnA7c4T.js} +1 -1
  41. package/payload/server/public/assets/{chunk-X2U36JSP-DHYLiYqc.js → chunk-X2U36JSP-DpQ2OA_c.js} +1 -1
  42. package/payload/server/public/assets/{chunk-XPW4576I-DBdiQ3Zy.js → chunk-XPW4576I-BccP1mlQ.js} +1 -1
  43. package/payload/server/public/assets/{chunk-YZCP3GAM-DXaosB5Z.js → chunk-YZCP3GAM-BAkNXu0G.js} +1 -1
  44. package/payload/server/public/assets/{chunk-ZZ45TVLE-B5dCmOpH.js → chunk-ZZ45TVLE-DBSm41oP.js} +1 -1
  45. package/payload/server/public/assets/classDiagram-6PBFFD2Q-6EGGLDD_.js +1 -0
  46. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DfAV4tgE.js +1 -0
  47. package/payload/server/public/assets/clone-BoV8noAi.js +1 -0
  48. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-DaHtPQvk.js → cose-bilkent-S5V4N54A-Boeb8aWs.js} +1 -1
  49. package/payload/server/public/assets/{dagre-KV5264BT-CAL9V_HR.js → dagre-KV5264BT-BkvWofSp.js} +1 -1
  50. package/payload/server/public/assets/{dagre-N8C5Xujx.js → dagre-nvPNAunb.js} +1 -1
  51. package/payload/server/public/assets/data-DVeGdjv2.js +1 -0
  52. package/payload/server/public/assets/{diagram-5BDNPKRD-pzBSPqlM.js → diagram-5BDNPKRD-CMEgyt4E.js} +1 -1
  53. package/payload/server/public/assets/{diagram-G4DWMVQ6-DStdLqos.js → diagram-G4DWMVQ6-ChorrAF0.js} +1 -1
  54. package/payload/server/public/assets/{diagram-MMDJMWI5-D-SfeX-6.js → diagram-MMDJMWI5-D_iD27po.js} +1 -1
  55. package/payload/server/public/assets/{diagram-TYMM5635-Cdr1DQ84.js → diagram-TYMM5635-8qXI1ioG.js} +1 -1
  56. package/payload/server/public/assets/{erDiagram-SMLLAGMA-CIg1dDZT.js → erDiagram-SMLLAGMA-BFjtKDSB.js} +1 -1
  57. package/payload/server/public/assets/{flatten-CpKIi5d2.js → flatten-ya0TqRLc.js} +1 -1
  58. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-CJtU1T6d.js → flowDiagram-DWJPFMVM-Bpd7IL9l.js} +1 -1
  59. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-R4fuRAT1.js → ganttDiagram-T4ZO3ILL-CwOozU85.js} +1 -1
  60. package/payload/server/public/assets/gitGraph-7Q5UKJZL-BOC4CldZ.js +1 -0
  61. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-sifugSGn.js → gitGraphDiagram-UUTBAWPF-CcPILiC9.js} +1 -1
  62. package/payload/server/public/assets/graph-BHcUKzXh.js +1 -0
  63. package/payload/server/public/assets/{graphlib-DrlxPM8j.js → graphlib-B_mcXEVr.js} +1 -1
  64. package/payload/server/public/assets/info-OMHHGYJF-BSCPTUIx.js +1 -0
  65. package/payload/server/public/assets/infoDiagram-42DDH7IO-T2sn--WJ.js +2 -0
  66. package/payload/server/public/assets/{isEmpty-C3Vxk1It.js → isEmpty-h-wRi_o9.js} +1 -1
  67. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CYUJOA2c.js → ishikawaDiagram-UXIWVN3A-DOP9-Q8H.js} +1 -1
  68. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-UltrLajs.js → journeyDiagram-VCZTEJTY-DGATg0WC.js} +1 -1
  69. package/payload/server/public/assets/{jsx-runtime-CW8OiWT9.css → jsx-runtime-BRkYVd7p.css} +1 -1
  70. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-BBaThtP3.js → kanban-definition-6JOO6SKY-C5PigmKg.js} +1 -1
  71. package/payload/server/public/assets/{line-BhOwLD_o.js → line-DlKKhwkO.js} +1 -1
  72. package/payload/server/public/assets/{linear-D76hoLvZ.js → linear-DD4JiB1l.js} +1 -1
  73. package/payload/server/public/assets/{mermaid-parser.core-D8n5xV7A.js → mermaid-parser.core-C8xGCa9p.js} +2 -2
  74. package/payload/server/public/assets/{mermaid.core-C3TZA9fX.js → mermaid.core-CCUSwZB_.js} +3 -3
  75. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-Bv1kghvk.js → mindmap-definition-QFDTVHPH-75k-IVhC.js} +1 -1
  76. package/payload/server/public/assets/{ordinal-BLrOss5K.js → ordinal-Dwxksj1B.js} +1 -1
  77. package/payload/server/public/assets/packet-4T2RLAQJ-pBa_ZhNI.js +1 -0
  78. package/payload/server/public/assets/page-DxH_Opxt.js +50 -0
  79. package/payload/server/public/assets/page-v5z5MBB6.js +1 -0
  80. package/payload/server/public/assets/pie-ZZUOXDRM-BzYOyiMb.js +1 -0
  81. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BSYldcKa.js → pieDiagram-DEJITSTG-DN5RsDwZ.js} +1 -1
  82. package/payload/server/public/assets/{public-C_mAXOnw.js → public-CQ_WMUng.js} +1 -1
  83. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-lCDshgz1.js → quadrantDiagram-34T5L4WZ-Sd9x6pNe.js} +1 -1
  84. package/payload/server/public/assets/radar-PYXPWWZC-CTVOaAq6.js +1 -0
  85. package/payload/server/public/assets/{reduce-C5tBOlxC.js → reduce-BUuWaDl2.js} +1 -1
  86. package/payload/server/public/assets/{requirementDiagram-MS252O5E-C7j42RrO.js → requirementDiagram-MS252O5E-BDgifYzj.js} +1 -1
  87. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-plPbHhuF.js → sankeyDiagram-XADWPNL6-BX9VULNJ.js} +1 -1
  88. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-D3Y8MXiX.js → sequenceDiagram-FGHM5R23-z3vMxhgE.js} +1 -1
  89. package/payload/server/public/assets/share-2-Cc99o2of.js +1 -0
  90. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-D4BdhMPy.js → stateDiagram-FHFEXIEX-DlP0hBxF.js} +1 -1
  91. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DSddQStC.js +1 -0
  92. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-Lh9jrYCl.js → timeline-definition-GMOUNBTQ-DwQbhKCo.js} +1 -1
  93. package/payload/server/public/assets/treeView-SZITEDCU-OTnF4Qzw.js +1 -0
  94. package/payload/server/public/assets/treemap-W4RFUUIX-DlIRmHFb.js +1 -0
  95. package/payload/server/public/assets/{useVoiceRecorder-CAf6yMpK.js → useVoiceRecorder-C2CyyNiy.js} +3 -3
  96. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Cx0v19iv.js → vennDiagram-DHZGUBPP-WTqmZWWa.js} +1 -1
  97. package/payload/server/public/assets/wardley-RL74JXVD-DwMXAC4U.js +1 -0
  98. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BYewCTre.js → wardleyDiagram-NUSXRM2D-BUY50x5T.js} +1 -1
  99. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CkfIdbJu.js → xychartDiagram-5P7HB3ND-Btdq-fDj.js} +1 -1
  100. package/payload/server/public/data.html +5 -6
  101. package/payload/server/public/graph.html +6 -7
  102. package/payload/server/public/index.html +9 -9
  103. package/payload/server/public/public.html +6 -6
  104. package/payload/server/server.js +108 -8
  105. package/payload/server/public/assets/admin-GIIfvDj1.js +0 -352
  106. package/payload/server/public/assets/architecture-YZFGNWBL-CXIHKKCa.js +0 -1
  107. package/payload/server/public/assets/channel-CA7njeKl.js +0 -1
  108. package/payload/server/public/assets/chunk-426QAEUC-tWQOa3-I.js +0 -1
  109. package/payload/server/public/assets/chunk-QZHKN3VN-BwkFBCAY.js +0 -1
  110. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CUZ9BU_6.js +0 -1
  111. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BGYsCDux.js +0 -1
  112. package/payload/server/public/assets/clone-BjouONkW.js +0 -1
  113. package/payload/server/public/assets/data-Bfj5UBbk.js +0 -1
  114. package/payload/server/public/assets/file-CLa5WeSl.js +0 -1
  115. package/payload/server/public/assets/gitGraph-7Q5UKJZL-tvzbaNdg.js +0 -1
  116. package/payload/server/public/assets/graph-B6YWFq_S.js +0 -50
  117. package/payload/server/public/assets/house-BSa2PlqY.js +0 -1
  118. package/payload/server/public/assets/info-OMHHGYJF-ByeBaFw5.js +0 -1
  119. package/payload/server/public/assets/infoDiagram-42DDH7IO-CjgCxerY.js +0 -2
  120. package/payload/server/public/assets/packet-4T2RLAQJ-Csybj5RO.js +0 -1
  121. package/payload/server/public/assets/pie-ZZUOXDRM-Iw1du1Bn.js +0 -1
  122. package/payload/server/public/assets/radar-PYXPWWZC-rEet4TBV.js +0 -1
  123. package/payload/server/public/assets/share-2-Sy-qhrFk.js +0 -1
  124. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DhKxVkX3.js +0 -1
  125. package/payload/server/public/assets/treeView-SZITEDCU-PaLYyjtc.js +0 -1
  126. package/payload/server/public/assets/treemap-W4RFUUIX-CEhGYFbO.js +0 -1
  127. package/payload/server/public/assets/wardley-RL74JXVD-xtJ4_o4d.js +0 -1
  128. package/payload/server/public/assets/x-BMWxX7y6.js +0 -1
  129. /package/payload/server/public/assets/{_baseFor-WfS9pKAn.js → _baseFor-Dn4GSmI6.js} +0 -0
  130. /package/payload/server/public/assets/{array-HeX70jSN.js → array-DJN9YAVf.js} +0 -0
  131. /package/payload/server/public/assets/{cytoscape.esm-CDZo0kst.js → cytoscape.esm-BcJTl1re.js} +0 -0
  132. /package/payload/server/public/assets/{defaultLocale-GJwWH1Jr.js → defaultLocale-B4F_XsBB.js} +0 -0
  133. /package/payload/server/public/assets/{dist-BKbAaes5.js → dist-CrzV1W3-.js} +0 -0
  134. /package/payload/server/public/assets/{init-BPLPMQ3Y.js → init-DX0Y1qU4.js} +0 -0
  135. /package/payload/server/public/assets/{jsx-runtime-CFleUYzT.js → jsx-runtime-B4QFltsm.js} +0 -0
  136. /package/payload/server/public/assets/{katex-CKZ-HWMQ.js → katex-CjHJ1D7d.js} +0 -0
  137. /package/payload/server/public/assets/{path-YdFzr2W6.js → path-7vUsG-o2.js} +0 -0
  138. /package/payload/server/public/assets/{preload-helper-BEFjQwLd.js → preload-helper-qlgyTAkD.js} +0 -0
  139. /package/payload/server/public/assets/{rough.esm-HAx67Hnb.js → rough.esm-NLRoWnq-.js} +0 -0
  140. /package/payload/server/public/assets/{src-BvrHnOMG.js → src-Bo15iQ7w.js} +0 -0
@@ -5,16 +5,16 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/admin-GIIfvDj1.js"></script>
8
+ <script type="module" crossorigin src="/assets/admin-V6NDkEoR.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
10
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CFleUYzT.js">
11
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-BEFjQwLd.js">
12
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-C24nM41g.js">
13
- <link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-CAf6yMpK.js">
14
- <link rel="modulepreload" crossorigin href="/assets/share-2-Sy-qhrFk.js">
15
- <link rel="modulepreload" crossorigin href="/assets/file-CLa5WeSl.js">
16
- <link rel="modulepreload" crossorigin href="/assets/x-BMWxX7y6.js">
17
- <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-CW8OiWT9.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-B4QFltsm.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-qlgyTAkD.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-BRLBdX7n.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-C2CyyNiy.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/share-2-Cc99o2of.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/page-v5z5MBB6.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/page-DxH_Opxt.js">
17
+ <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BRkYVd7p.css">
18
18
  <link rel="stylesheet" crossorigin href="/assets/admin-CWMpccrR.css">
19
19
  <link rel="stylesheet" href="/brand-defaults.css">
20
20
  </head>
@@ -5,13 +5,13 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/public-C_mAXOnw.js"></script>
8
+ <script type="module" crossorigin src="/assets/public-CQ_WMUng.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
10
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-CFleUYzT.js">
11
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-BEFjQwLd.js">
12
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-C24nM41g.js">
13
- <link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-CAf6yMpK.js">
14
- <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-CW8OiWT9.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-B4QFltsm.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-qlgyTAkD.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-BRLBdX7n.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/useVoiceRecorder-C2CyyNiy.js">
14
+ <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-BRkYVd7p.css">
15
15
  <link rel="stylesheet" href="/brand-defaults.css">
16
16
  </head>
17
17
  <body>
@@ -47,7 +47,7 @@ import {
47
47
  vncLog,
48
48
  waitForExit,
49
49
  writeChromiumWrapper
50
- } from "./chunk-QXAUMZXQ.js";
50
+ } from "./chunk-SGBNY4NP.js";
51
51
  import {
52
52
  ACCOUNTS_DIR,
53
53
  GREETING_DIRECTIVE,
@@ -107,7 +107,7 @@ import {
107
107
  validateSession,
108
108
  verifyAndGetConversationUpdatedAt,
109
109
  verifyConversationOwnership
110
- } from "./chunk-43JK6WNK.js";
110
+ } from "./chunk-S3M2NZMA.js";
111
111
 
112
112
  // ../lib/graph-trash/dist/index.js
113
113
  var require_dist = __commonJS({
@@ -8132,7 +8132,7 @@ var app11 = new Hono();
8132
8132
  app11.post("/cancel", requireAdminSession, async (c) => {
8133
8133
  const session_key = c.var.sessionKey;
8134
8134
  try {
8135
- const { interruptClient: interruptClient2 } = await import("./client-pool-SGPHSYLK.js");
8135
+ const { interruptClient: interruptClient2 } = await import("./client-pool-5V5GX3UT.js");
8136
8136
  await interruptClient2(session_key);
8137
8137
  return c.json({ ok: true });
8138
8138
  } catch (err) {
@@ -8843,6 +8843,76 @@ var agents_default = app16;
8843
8843
  import crypto2 from "crypto";
8844
8844
  import { resolve as resolvePath } from "path";
8845
8845
  import { appendFileSync as appendFileSync5 } from "fs";
8846
+ var PERSISTENT_COMPONENT_NAMES = /* @__PURE__ */ new Set([
8847
+ "action-list",
8848
+ "document-editor",
8849
+ "rich-content-editor",
8850
+ "grid-editor"
8851
+ ]);
8852
+ function reconstructAssistantEvents(content, components, conversationId, messageId, streamLogPath) {
8853
+ if (components.length === 0) {
8854
+ return {
8855
+ events: content.length > 0 ? [{ type: "text", content }] : [],
8856
+ valid: 0,
8857
+ invalid: 0,
8858
+ submittedEventIndices: []
8859
+ };
8860
+ }
8861
+ const sorted = [...components].sort((a, b) => {
8862
+ if (a.textOffset !== b.textOffset) return a.textOffset - b.textOffset;
8863
+ return a.ordinal - b.ordinal;
8864
+ });
8865
+ const events = [];
8866
+ const submittedEventIndices = [];
8867
+ let cursor = 0;
8868
+ let valid = 0;
8869
+ let invalid = 0;
8870
+ for (const c of sorted) {
8871
+ const offset = Math.max(0, Math.min(c.textOffset, content.length));
8872
+ if (offset > cursor) {
8873
+ events.push({ type: "text", content: content.slice(cursor, offset) });
8874
+ cursor = offset;
8875
+ }
8876
+ let parsedData;
8877
+ let invalidReason = null;
8878
+ if (!c.name || c.name.trim() === "") {
8879
+ invalidReason = "missing-name";
8880
+ } else {
8881
+ try {
8882
+ parsedData = JSON.parse(c.data ?? "null");
8883
+ } catch {
8884
+ invalidReason = "json-parse";
8885
+ }
8886
+ if (invalidReason === null) {
8887
+ if (parsedData === null || typeof parsedData !== "object" || Array.isArray(parsedData)) {
8888
+ invalidReason = "not-object";
8889
+ }
8890
+ }
8891
+ }
8892
+ if (invalidReason !== null) {
8893
+ invalid += 1;
8894
+ const notice = `[component-rehydrate-invalid] ${c.name || "<unnamed>"} could not be restored (reason=${invalidReason})`;
8895
+ events.push({ type: "text", content: notice, _invalid: true });
8896
+ const line = `[${(/* @__PURE__ */ new Date()).toISOString()}] [component-rehydrate-invalid] conversationId=${conversationId.slice(0, 8)} messageId=${messageId.slice(0, 8)} name=${c.name || "<unnamed>"} reason=${invalidReason}
8897
+ `;
8898
+ try {
8899
+ appendFileSync5(streamLogPath, line);
8900
+ } catch {
8901
+ }
8902
+ continue;
8903
+ }
8904
+ valid += 1;
8905
+ const eventIndex = events.length;
8906
+ events.push({ type: "component", name: c.name, data: parsedData });
8907
+ if (c.submitted === true && !PERSISTENT_COMPONENT_NAMES.has(c.name)) {
8908
+ submittedEventIndices.push(eventIndex);
8909
+ }
8910
+ }
8911
+ if (cursor < content.length) {
8912
+ events.push({ type: "text", content: content.slice(cursor) });
8913
+ }
8914
+ return { events, valid, invalid, submittedEventIndices };
8915
+ }
8846
8916
  var LABEL_MAX_LENGTH = 200;
8847
8917
  function formatAge(updatedAtStr) {
8848
8918
  try {
@@ -8961,14 +9031,42 @@ app17.post("/:id/resume", requireAdminSession, async (c) => {
8961
9031
  }
8962
9032
  const streamLogPath = resolvePath(ACCOUNTS_DIR, accountId, "logs", `claude-agent-stream-${conversationId}.log`);
8963
9033
  const tag = persistedAgentSessionId ? `agentSessionId=${persistedAgentSessionId.slice(0, 8)}\u2026` : "agentSessionId=missing";
9034
+ let totalValid = 0;
9035
+ let totalInvalid = 0;
9036
+ let totalComponents = 0;
9037
+ const rehydrated = messages.map((m) => {
9038
+ const components = m.components ?? [];
9039
+ if (m.role !== "assistant") {
9040
+ return { messageId: m.messageId, role: m.role, content: m.content, createdAt: m.createdAt };
9041
+ }
9042
+ const { events, valid, invalid, submittedEventIndices } = reconstructAssistantEvents(m.content, components, conversationId, m.messageId, streamLogPath);
9043
+ totalValid += valid;
9044
+ totalInvalid += invalid;
9045
+ totalComponents += components.length;
9046
+ return {
9047
+ messageId: m.messageId,
9048
+ role: m.role,
9049
+ events,
9050
+ createdAt: m.createdAt,
9051
+ // Submitted-event indices for client `submittedComponents` seed —
9052
+ // empty array when no PERSISTENT_COMPONENT was approved live, omitted
9053
+ // from the wire payload to keep the response slim.
9054
+ ...submittedEventIndices.length > 0 ? { submittedEventIndices } : {}
9055
+ };
9056
+ });
9057
+ const textRuns = rehydrated.reduce((n, m) => n + (m.events?.filter((e) => e.type === "text").length ?? 0), 0);
8964
9058
  try {
8965
- appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [admin-resume] sessionKey=${sessionKey.slice(0, 8)} conversationId=${conversationId.slice(0, 8)} ${tag} loadedMessages=${messages.length}
9059
+ appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [admin-resume] sessionKey=${sessionKey.slice(0, 8)} conversationId=${conversationId.slice(0, 8)} ${tag} loadedMessages=${messages.length} componentCount=${totalComponents}
9060
+ `);
9061
+ if (totalComponents > 0) {
9062
+ appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [component-rehydrate] conversationId=${conversationId.slice(0, 8)} count=${totalComponents} valid=${totalValid} invalid=${totalInvalid} textRuns=${textRuns}
8966
9063
  `);
9064
+ }
8967
9065
  } catch {
8968
9066
  }
8969
9067
  const age = formatAge(updatedAt);
8970
- console.log(`[admin-resume] ${(/* @__PURE__ */ new Date()).toISOString()} conversationId=${conversationId.slice(0, 8)}\u2026 age=${age} loaded=${messages.length} messages ${tag} sessionKey=${sessionKey.slice(0, 8)}\u2026`);
8971
- return c.json({ conversationId, messages });
9068
+ console.log(`[admin-resume] ${(/* @__PURE__ */ new Date()).toISOString()} conversationId=${conversationId.slice(0, 8)}\u2026 age=${age} loaded=${messages.length} messages ${tag} components=${totalComponents} sessionKey=${sessionKey.slice(0, 8)}\u2026`);
9069
+ return c.json({ conversationId, messages: rehydrated });
8972
9070
  });
8973
9071
  app17.post("/:id/label", requireAdminSession, async (c) => {
8974
9072
  const conversationId = c.req.param("id");
@@ -11578,6 +11676,7 @@ app30.get("/", requireAdminSession, async (c) => {
11578
11676
  var adherence_default = app30;
11579
11677
 
11580
11678
  // server/routes/admin/sidebar-projects.ts
11679
+ import neo4j3 from "neo4j-driver";
11581
11680
  var LIMIT = 50;
11582
11681
  var app31 = new Hono();
11583
11682
  app31.get("/", requireAdminSession, async (c) => {
@@ -11595,7 +11694,7 @@ app31.get("/", requireAdminSession, async (c) => {
11595
11694
  RETURN p.taskId AS id, p.name AS name, p.updatedAt AS updatedAt
11596
11695
  ORDER BY p.updatedAt DESC
11597
11696
  LIMIT $limit`,
11598
- { accountId, limit: LIMIT }
11697
+ { accountId, limit: neo4j3.int(LIMIT) }
11599
11698
  );
11600
11699
  const projects = result.records.map((r) => ({
11601
11700
  id: r.get("id"),
@@ -11617,6 +11716,7 @@ app31.get("/", requireAdminSession, async (c) => {
11617
11716
  var sidebar_projects_default = app31;
11618
11717
 
11619
11718
  // server/routes/admin/sidebar-artefacts.ts
11719
+ import neo4j4 from "neo4j-driver";
11620
11720
  import { readFile as readFile5, readdir as readdir3 } from "fs/promises";
11621
11721
  import { resolve as resolve20 } from "path";
11622
11722
  var LIMIT2 = 50;
@@ -11639,7 +11739,7 @@ app32.get("/", requireAdminSession, async (c) => {
11639
11739
  d.attachmentId AS attachmentId, d.encodingFormat AS mimeType
11640
11740
  ORDER BY d.updatedAt DESC
11641
11741
  LIMIT $limit`,
11642
- { accountId, limit: LIMIT2 }
11742
+ { accountId, limit: neo4j4.int(LIMIT2) }
11643
11743
  );
11644
11744
  metas = result.records.map((r) => ({
11645
11745
  id: r.get("id"),