dominds 1.4.2 → 1.5.1

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 (171) hide show
  1. package/README.md +24 -0
  2. package/README.zh.md +24 -0
  3. package/dist/apps/app-json.js +38 -3
  4. package/dist/apps/dialog-run-controls.js +4 -0
  5. package/dist/apps/enabled-apps.js +8 -1
  6. package/dist/apps/installed-file.js +207 -0
  7. package/dist/apps/run-app-json.js +6 -6
  8. package/dist/apps/runtime-port.js +91 -0
  9. package/dist/apps/runtime.js +316 -68
  10. package/dist/apps-host/client.js +153 -3
  11. package/dist/apps-host/host.js +339 -2
  12. package/dist/apps-host/ipc-types.js +215 -30
  13. package/dist/cli/install.js +21 -1
  14. package/dist/dialog-fork.js +608 -0
  15. package/dist/dialog.js +2 -2
  16. package/dist/docs/app-constitution.md +153 -2
  17. package/dist/docs/app-constitution.zh.md +153 -2
  18. package/dist/docs/dialog-persistence.md +31 -0
  19. package/dist/docs/dialog-persistence.zh.md +31 -0
  20. package/dist/docs/dialog-system.md +29 -0
  21. package/dist/docs/dialog-system.zh.md +29 -0
  22. package/dist/docs/kernel-app-architecture.md +286 -0
  23. package/dist/docs/kernel-app-architecture.zh.md +285 -0
  24. package/dist/llm/defaults.yaml +16 -0
  25. package/dist/llm/driver-entry.js +28 -0
  26. package/dist/llm/driver-v2/context-health.js +121 -0
  27. package/dist/llm/driver-v2/context.js +56 -0
  28. package/dist/llm/driver-v2/core.js +1545 -0
  29. package/dist/llm/driver-v2/index.js +26 -0
  30. package/dist/llm/driver-v2/orchestrator.js +158 -0
  31. package/dist/llm/driver-v2/policy.js +129 -0
  32. package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
  33. package/dist/llm/driver-v2/round.js +366 -0
  34. package/dist/llm/driver-v2/runtime-utils.js +365 -0
  35. package/dist/llm/driver-v2/saying-events.js +20 -0
  36. package/dist/llm/driver-v2/subdialog-txn.js +42 -0
  37. package/dist/llm/driver-v2/supdialog-response.js +400 -0
  38. package/dist/llm/driver-v2/tellask-bridge.js +1148 -0
  39. package/dist/llm/driver-v2/types.js +10 -0
  40. package/dist/llm/driver-v2-ref-only/context-health.js +121 -0
  41. package/dist/llm/driver-v2-ref-only/context.js +17 -0
  42. package/dist/llm/driver-v2-ref-only/core.js +1710 -0
  43. package/dist/llm/driver-v2-ref-only/index.js +26 -0
  44. package/dist/llm/driver-v2-ref-only/orchestrator.js +158 -0
  45. package/dist/llm/driver-v2-ref-only/policy.js +129 -0
  46. package/dist/llm/driver-v2-ref-only/restore-dialog-hierarchy.js +73 -0
  47. package/dist/llm/driver-v2-ref-only/round.js +366 -0
  48. package/dist/llm/driver-v2-ref-only/runtime-utils.js +473 -0
  49. package/dist/llm/driver-v2-ref-only/saying-events.js +18 -0
  50. package/dist/llm/driver-v2-ref-only/subdialog-txn.js +42 -0
  51. package/dist/llm/driver-v2-ref-only/supdialog-response.js +453 -0
  52. package/dist/llm/driver-v2-ref-only/tellask-bridge.js +1178 -0
  53. package/dist/llm/driver-v2-ref-only/types.js +10 -0
  54. package/dist/llm/gen/anthropic.js +68 -15
  55. package/dist/llm/gen/codex.js +59 -10
  56. package/dist/llm/gen/openai-compatible.js +38 -9
  57. package/dist/llm/gen/openai.js +58 -11
  58. package/dist/llm/gen/tool-output-limit.js +50 -0
  59. package/dist/llm/kernel-driver/subdialog.js +8 -1
  60. package/dist/llm/kernel-driver/tellask-special.js +18 -3
  61. package/dist/minds/load.js +7 -0
  62. package/dist/persistence.js +190 -28
  63. package/dist/priming.js +20 -1
  64. package/dist/server/api-routes.js +82 -0
  65. package/dist/server/setup-routes.js +15 -0
  66. package/dist/static/assets/{_basePickBy-B2o4z1Hf.js → _basePickBy-C-nynT9f.js} +3 -3
  67. package/dist/static/assets/{_basePickBy-B2o4z1Hf.js.map → _basePickBy-C-nynT9f.js.map} +1 -1
  68. package/dist/static/assets/{_baseUniq-CLmcxjdl.js → _baseUniq-CiHd-eVT.js} +2 -2
  69. package/dist/static/assets/{_baseUniq-CLmcxjdl.js.map → _baseUniq-CiHd-eVT.js.map} +1 -1
  70. package/dist/static/assets/{arc-CymD_KN7.js → arc-_OJzDWy1.js} +2 -2
  71. package/dist/static/assets/{arc-CymD_KN7.js.map → arc-_OJzDWy1.js.map} +1 -1
  72. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DJQfSJUH.js → architectureDiagram-VXUJARFQ-CDEG85ub.js} +7 -7
  73. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DJQfSJUH.js.map → architectureDiagram-VXUJARFQ-CDEG85ub.js.map} +1 -1
  74. package/dist/static/assets/{blockDiagram-VD42YOAC-pHVz60D0.js → blockDiagram-VD42YOAC-1LzKVc5t.js} +7 -7
  75. package/dist/static/assets/{blockDiagram-VD42YOAC-pHVz60D0.js.map → blockDiagram-VD42YOAC-1LzKVc5t.js.map} +1 -1
  76. package/dist/static/assets/{c4Diagram-YG6GDRKO-B0WnCfAT.js → c4Diagram-YG6GDRKO-BzYnVyvY.js} +3 -3
  77. package/dist/static/assets/{c4Diagram-YG6GDRKO-B0WnCfAT.js.map → c4Diagram-YG6GDRKO-BzYnVyvY.js.map} +1 -1
  78. package/dist/static/assets/{channel-CX9BlKil.js → channel-VAEDAk9T.js} +2 -2
  79. package/dist/static/assets/{channel-CX9BlKil.js.map → channel-VAEDAk9T.js.map} +1 -1
  80. package/dist/static/assets/{chunk-4BX2VUAB-lXArRj3o.js → chunk-4BX2VUAB-D0r2u3mX.js} +2 -2
  81. package/dist/static/assets/{chunk-4BX2VUAB-lXArRj3o.js.map → chunk-4BX2VUAB-D0r2u3mX.js.map} +1 -1
  82. package/dist/static/assets/{chunk-55IACEB6-CdqwynH9.js → chunk-55IACEB6-Dkl8Xw7i.js} +2 -2
  83. package/dist/static/assets/{chunk-55IACEB6-CdqwynH9.js.map → chunk-55IACEB6-Dkl8Xw7i.js.map} +1 -1
  84. package/dist/static/assets/{chunk-B4BG7PRW-Y-uXcJst.js → chunk-B4BG7PRW-9sxsI8ns.js} +5 -5
  85. package/dist/static/assets/{chunk-B4BG7PRW-Y-uXcJst.js.map → chunk-B4BG7PRW-9sxsI8ns.js.map} +1 -1
  86. package/dist/static/assets/{chunk-DI55MBZ5-C5xSbRST.js → chunk-DI55MBZ5-AHaqkaLl.js} +4 -4
  87. package/dist/static/assets/{chunk-DI55MBZ5-C5xSbRST.js.map → chunk-DI55MBZ5-AHaqkaLl.js.map} +1 -1
  88. package/dist/static/assets/{chunk-FMBD7UC4-5uefwCjI.js → chunk-FMBD7UC4-NWDLDixD.js} +2 -2
  89. package/dist/static/assets/{chunk-FMBD7UC4-5uefwCjI.js.map → chunk-FMBD7UC4-NWDLDixD.js.map} +1 -1
  90. package/dist/static/assets/{chunk-QN33PNHL-DzWVcvpI.js → chunk-QN33PNHL-C2KeUqle.js} +2 -2
  91. package/dist/static/assets/{chunk-QN33PNHL-DzWVcvpI.js.map → chunk-QN33PNHL-C2KeUqle.js.map} +1 -1
  92. package/dist/static/assets/{chunk-QZHKN3VN-BrrvAZdP.js → chunk-QZHKN3VN-B6Eoxo5L.js} +2 -2
  93. package/dist/static/assets/{chunk-QZHKN3VN-BrrvAZdP.js.map → chunk-QZHKN3VN-B6Eoxo5L.js.map} +1 -1
  94. package/dist/static/assets/{chunk-TZMSLE5B-DyKOlPTY.js → chunk-TZMSLE5B-Bc-VyQon.js} +2 -2
  95. package/dist/static/assets/{chunk-TZMSLE5B-DyKOlPTY.js.map → chunk-TZMSLE5B-Bc-VyQon.js.map} +1 -1
  96. package/dist/static/assets/{classDiagram-2ON5EDUG-FCrnlCWC.js → classDiagram-2ON5EDUG-DmPfsN1H.js} +6 -6
  97. package/dist/static/assets/{classDiagram-2ON5EDUG-FCrnlCWC.js.map → classDiagram-2ON5EDUG-DmPfsN1H.js.map} +1 -1
  98. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-FCrnlCWC.js → classDiagram-v2-WZHVMYZB-DmPfsN1H.js} +6 -6
  99. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-FCrnlCWC.js.map → classDiagram-v2-WZHVMYZB-DmPfsN1H.js.map} +1 -1
  100. package/dist/static/assets/{clone-BlI81KqZ.js → clone-B1R4pLTW.js} +2 -2
  101. package/dist/static/assets/{clone-BlI81KqZ.js.map → clone-B1R4pLTW.js.map} +1 -1
  102. package/dist/static/assets/{cose-bilkent-S5V4N54A-yM7S2atz.js → cose-bilkent-S5V4N54A-CxY__sKv.js} +2 -2
  103. package/dist/static/assets/{cose-bilkent-S5V4N54A-yM7S2atz.js.map → cose-bilkent-S5V4N54A-CxY__sKv.js.map} +1 -1
  104. package/dist/static/assets/{dagre-6UL2VRFP-BcweuZHt.js → dagre-6UL2VRFP-CPkB5tQ0.js} +7 -7
  105. package/dist/static/assets/{dagre-6UL2VRFP-BcweuZHt.js.map → dagre-6UL2VRFP-CPkB5tQ0.js.map} +1 -1
  106. package/dist/static/assets/{diagram-PSM6KHXK-D4-QwLW1.js → diagram-PSM6KHXK-C6kCVpCz.js} +8 -8
  107. package/dist/static/assets/{diagram-PSM6KHXK-D4-QwLW1.js.map → diagram-PSM6KHXK-C6kCVpCz.js.map} +1 -1
  108. package/dist/static/assets/{diagram-QEK2KX5R-BVbuejJn.js → diagram-QEK2KX5R-BWF6htf1.js} +7 -7
  109. package/dist/static/assets/{diagram-QEK2KX5R-BVbuejJn.js.map → diagram-QEK2KX5R-BWF6htf1.js.map} +1 -1
  110. package/dist/static/assets/{diagram-S2PKOQOG-pB6N6Tq_.js → diagram-S2PKOQOG-lKGJH6O9.js} +7 -7
  111. package/dist/static/assets/{diagram-S2PKOQOG-pB6N6Tq_.js.map → diagram-S2PKOQOG-lKGJH6O9.js.map} +1 -1
  112. package/dist/static/assets/{erDiagram-Q2GNP2WA-DLKmthuw.js → erDiagram-Q2GNP2WA-DJ3YaFob.js} +5 -5
  113. package/dist/static/assets/{erDiagram-Q2GNP2WA-DLKmthuw.js.map → erDiagram-Q2GNP2WA-DJ3YaFob.js.map} +1 -1
  114. package/dist/static/assets/{flowDiagram-NV44I4VS-BsBhWukh.js → flowDiagram-NV44I4VS-h3eQwA3O.js} +6 -6
  115. package/dist/static/assets/{flowDiagram-NV44I4VS-BsBhWukh.js.map → flowDiagram-NV44I4VS-h3eQwA3O.js.map} +1 -1
  116. package/dist/static/assets/{ganttDiagram-JELNMOA3-Debz-J-C.js → ganttDiagram-JELNMOA3-BCbsDOF_.js} +3 -3
  117. package/dist/static/assets/{ganttDiagram-JELNMOA3-Debz-J-C.js.map → ganttDiagram-JELNMOA3-BCbsDOF_.js.map} +1 -1
  118. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BnAPFBGR.js → gitGraphDiagram-V2S2FVAM-D0kX6h-T.js} +8 -8
  119. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BnAPFBGR.js.map → gitGraphDiagram-V2S2FVAM-D0kX6h-T.js.map} +1 -1
  120. package/dist/static/assets/{graph-DbzWiBNK.js → graph-CZIEXp3A.js} +3 -3
  121. package/dist/static/assets/{graph-DbzWiBNK.js.map → graph-CZIEXp3A.js.map} +1 -1
  122. package/dist/static/assets/{index-B-8J28g7.js → index-vIzCTZQE.js} +156 -35
  123. package/dist/static/assets/index-vIzCTZQE.js.map +1 -0
  124. package/dist/static/assets/{infoDiagram-HS3SLOUP-CZ5hWoxV.js → infoDiagram-HS3SLOUP-DUNbcXxv.js} +6 -6
  125. package/dist/static/assets/{infoDiagram-HS3SLOUP-CZ5hWoxV.js.map → infoDiagram-HS3SLOUP-DUNbcXxv.js.map} +1 -1
  126. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CKN3oSxk.js → journeyDiagram-XKPGCS4Q-Cg_VhiqB.js} +5 -5
  127. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-CKN3oSxk.js.map → journeyDiagram-XKPGCS4Q-Cg_VhiqB.js.map} +1 -1
  128. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BQCMklfJ.js → kanban-definition-3W4ZIXB7-DMVCZVFE.js} +3 -3
  129. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BQCMklfJ.js.map → kanban-definition-3W4ZIXB7-DMVCZVFE.js.map} +1 -1
  130. package/dist/static/assets/{layout-C5B58szc.js → layout-DoKTmwlM.js} +5 -5
  131. package/dist/static/assets/{layout-C5B58szc.js.map → layout-DoKTmwlM.js.map} +1 -1
  132. package/dist/static/assets/{linear-_32fut6G.js → linear-DFVlPfX6.js} +2 -2
  133. package/dist/static/assets/{linear-_32fut6G.js.map → linear-DFVlPfX6.js.map} +1 -1
  134. package/dist/static/assets/{mindmap-definition-VGOIOE7T-C_goMzjx.js → mindmap-definition-VGOIOE7T-l5K7agVV.js} +4 -4
  135. package/dist/static/assets/{mindmap-definition-VGOIOE7T-C_goMzjx.js.map → mindmap-definition-VGOIOE7T-l5K7agVV.js.map} +1 -1
  136. package/dist/static/assets/{pieDiagram-ADFJNKIX-BQ2n0cOB.js → pieDiagram-ADFJNKIX-BfQzSE-A.js} +8 -8
  137. package/dist/static/assets/{pieDiagram-ADFJNKIX-BQ2n0cOB.js.map → pieDiagram-ADFJNKIX-BfQzSE-A.js.map} +1 -1
  138. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-BLg7_neg.js → quadrantDiagram-AYHSOK5B-CJWvA5jc.js} +3 -3
  139. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-BLg7_neg.js.map → quadrantDiagram-AYHSOK5B-CJWvA5jc.js.map} +1 -1
  140. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DwkJt0zi.js → requirementDiagram-UZGBJVZJ-CeBbmqBK.js} +4 -4
  141. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DwkJt0zi.js.map → requirementDiagram-UZGBJVZJ-CeBbmqBK.js.map} +1 -1
  142. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DmxmatUB.js → sankeyDiagram-TZEHDZUN-JeUBTDxx.js} +2 -2
  143. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-DmxmatUB.js.map → sankeyDiagram-TZEHDZUN-JeUBTDxx.js.map} +1 -1
  144. package/dist/static/assets/{sequenceDiagram-WL72ISMW-KHU_eApU.js → sequenceDiagram-WL72ISMW-Bd_7Pgc5.js} +4 -4
  145. package/dist/static/assets/{sequenceDiagram-WL72ISMW-KHU_eApU.js.map → sequenceDiagram-WL72ISMW-Bd_7Pgc5.js.map} +1 -1
  146. package/dist/static/assets/{stateDiagram-FKZM4ZOC-B3DBCxAL.js → stateDiagram-FKZM4ZOC-D_WyM3K1.js} +9 -9
  147. package/dist/static/assets/{stateDiagram-FKZM4ZOC-B3DBCxAL.js.map → stateDiagram-FKZM4ZOC-D_WyM3K1.js.map} +1 -1
  148. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-C-uIk7gh.js → stateDiagram-v2-4FDKWEC3-Q_yh26yx.js} +5 -5
  149. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-C-uIk7gh.js.map → stateDiagram-v2-4FDKWEC3-Q_yh26yx.js.map} +1 -1
  150. package/dist/static/assets/{timeline-definition-IT6M3QCI-SysEcQCC.js → timeline-definition-IT6M3QCI-Ca8mCFDg.js} +3 -3
  151. package/dist/static/assets/{timeline-definition-IT6M3QCI-SysEcQCC.js.map → timeline-definition-IT6M3QCI-Ca8mCFDg.js.map} +1 -1
  152. package/dist/static/assets/{treemap-GDKQZRPO-d0AbKEc4.js → treemap-GDKQZRPO-CyBvKC8o.js} +5 -5
  153. package/dist/static/assets/{treemap-GDKQZRPO-d0AbKEc4.js.map → treemap-GDKQZRPO-CyBvKC8o.js.map} +1 -1
  154. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CmSQMxUh.js → xychartDiagram-PRI3JC2R-DY0BLEdj.js} +3 -3
  155. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CmSQMxUh.js.map → xychartDiagram-PRI3JC2R-DY0BLEdj.js.map} +1 -1
  156. package/dist/static/index.html +1 -1
  157. package/dist/team.js +33 -4
  158. package/dist/tools/app-reminders.js +280 -0
  159. package/dist/tools/prompts/memory/en/errors.md +155 -0
  160. package/dist/tools/prompts/memory/en/index.md +47 -0
  161. package/dist/tools/prompts/memory/en/principles.md +79 -0
  162. package/dist/tools/prompts/memory/en/scenarios.md +174 -0
  163. package/dist/tools/prompts/memory/en/tools.md +154 -0
  164. package/dist/tools/prompts/memory/zh/errors.md +155 -0
  165. package/dist/tools/prompts/memory/zh/index.md +47 -0
  166. package/dist/tools/prompts/memory/zh/principles.md +79 -0
  167. package/dist/tools/prompts/memory/zh/scenarios.md +174 -0
  168. package/dist/tools/prompts/memory/zh/tools.md +154 -0
  169. package/dist/tools/ripgrep.js +197 -63
  170. package/package.json +2 -2
  171. package/dist/static/assets/index-B-8J28g7.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-BcweuZHt.js","assets/graph-DbzWiBNK.js","assets/_baseUniq-CLmcxjdl.js","assets/layout-C5B58szc.js","assets/_basePickBy-B2o4z1Hf.js","assets/clone-BlI81KqZ.js","assets/cose-bilkent-S5V4N54A-yM7S2atz.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-B0WnCfAT.js","assets/chunk-TZMSLE5B-DyKOlPTY.js","assets/flowDiagram-NV44I4VS-BsBhWukh.js","assets/chunk-FMBD7UC4-5uefwCjI.js","assets/chunk-55IACEB6-CdqwynH9.js","assets/chunk-QN33PNHL-DzWVcvpI.js","assets/channel-CX9BlKil.js","assets/erDiagram-Q2GNP2WA-DLKmthuw.js","assets/gitGraphDiagram-V2S2FVAM-BnAPFBGR.js","assets/chunk-4BX2VUAB-lXArRj3o.js","assets/chunk-QZHKN3VN-BrrvAZdP.js","assets/treemap-GDKQZRPO-d0AbKEc4.js","assets/ganttDiagram-JELNMOA3-Debz-J-C.js","assets/linear-_32fut6G.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-CZ5hWoxV.js","assets/pieDiagram-ADFJNKIX-BQ2n0cOB.js","assets/arc-CymD_KN7.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-BLg7_neg.js","assets/xychartDiagram-PRI3JC2R-CmSQMxUh.js","assets/requirementDiagram-UZGBJVZJ-DwkJt0zi.js","assets/sequenceDiagram-WL72ISMW-KHU_eApU.js","assets/classDiagram-2ON5EDUG-FCrnlCWC.js","assets/chunk-B4BG7PRW-Y-uXcJst.js","assets/classDiagram-v2-WZHVMYZB-FCrnlCWC.js","assets/stateDiagram-FKZM4ZOC-B3DBCxAL.js","assets/chunk-DI55MBZ5-C5xSbRST.js","assets/stateDiagram-v2-4FDKWEC3-C-uIk7gh.js","assets/journeyDiagram-XKPGCS4Q-CKN3oSxk.js","assets/timeline-definition-IT6M3QCI-SysEcQCC.js","assets/mindmap-definition-VGOIOE7T-C_goMzjx.js","assets/kanban-definition-3W4ZIXB7-BQCMklfJ.js","assets/sankeyDiagram-TZEHDZUN-DmxmatUB.js","assets/diagram-S2PKOQOG-pB6N6Tq_.js","assets/diagram-QEK2KX5R-BVbuejJn.js","assets/blockDiagram-VD42YOAC-pHVz60D0.js","assets/architectureDiagram-VXUJARFQ-DJQfSJUH.js","assets/diagram-PSM6KHXK-D4-QwLW1.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-CPkB5tQ0.js","assets/graph-CZIEXp3A.js","assets/_baseUniq-CiHd-eVT.js","assets/layout-DoKTmwlM.js","assets/_basePickBy-C-nynT9f.js","assets/clone-B1R4pLTW.js","assets/cose-bilkent-S5V4N54A-CxY__sKv.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-BzYnVyvY.js","assets/chunk-TZMSLE5B-Bc-VyQon.js","assets/flowDiagram-NV44I4VS-h3eQwA3O.js","assets/chunk-FMBD7UC4-NWDLDixD.js","assets/chunk-55IACEB6-Dkl8Xw7i.js","assets/chunk-QN33PNHL-C2KeUqle.js","assets/channel-VAEDAk9T.js","assets/erDiagram-Q2GNP2WA-DJ3YaFob.js","assets/gitGraphDiagram-V2S2FVAM-D0kX6h-T.js","assets/chunk-4BX2VUAB-D0r2u3mX.js","assets/chunk-QZHKN3VN-B6Eoxo5L.js","assets/treemap-GDKQZRPO-CyBvKC8o.js","assets/ganttDiagram-JELNMOA3-BCbsDOF_.js","assets/linear-DFVlPfX6.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-DUNbcXxv.js","assets/pieDiagram-ADFJNKIX-BfQzSE-A.js","assets/arc-_OJzDWy1.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-CJWvA5jc.js","assets/xychartDiagram-PRI3JC2R-DY0BLEdj.js","assets/requirementDiagram-UZGBJVZJ-CeBbmqBK.js","assets/sequenceDiagram-WL72ISMW-Bd_7Pgc5.js","assets/classDiagram-2ON5EDUG-DmPfsN1H.js","assets/chunk-B4BG7PRW-9sxsI8ns.js","assets/classDiagram-v2-WZHVMYZB-DmPfsN1H.js","assets/stateDiagram-FKZM4ZOC-D_WyM3K1.js","assets/chunk-DI55MBZ5-AHaqkaLl.js","assets/stateDiagram-v2-4FDKWEC3-Q_yh26yx.js","assets/journeyDiagram-XKPGCS4Q-Cg_VhiqB.js","assets/timeline-definition-IT6M3QCI-Ca8mCFDg.js","assets/mindmap-definition-VGOIOE7T-l5K7agVV.js","assets/kanban-definition-3W4ZIXB7-DMVCZVFE.js","assets/sankeyDiagram-TZEHDZUN-JeUBTDxx.js","assets/diagram-S2PKOQOG-lKGJH6O9.js","assets/diagram-QEK2KX5R-BWF6htf1.js","assets/blockDiagram-VD42YOAC-1LzKVc5t.js","assets/architectureDiagram-VXUJARFQ-CDEG85ub.js","assets/diagram-PSM6KHXK-C6kCVpCz.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -180,6 +180,7 @@ function getUiStrings(language) {
180
180
  q4hAnswerCallSitesLabel: "本次回答对应提问点:",
181
181
  q4hOpenInNewTabTitle: "新标签打开",
182
182
  q4hCopyLinkTitle: "复制链接",
183
+ forkDialogTitle: "Fork 对话",
183
184
  q4hInvalidDialogToast: "对话标识无效:selfId/rootId 必须是字符串。",
184
185
  q4hDeclareDeadOnlySidelineToast: "只有支线对话支持“宣布卡死”。",
185
186
  q4hDeclareDeadOnlyInterruptedToast: "只有已中断的对话支持“宣布卡死”。",
@@ -211,6 +212,7 @@ function getUiStrings(language) {
211
212
  invalidMessageFormatToast: "收到无效消息格式,请刷新页面。",
212
213
  linkCopiedToast: "链接已复制。",
213
214
  linkCopyFailedToast: "复制链接失败。",
215
+ forkDialogFailedToast: "Fork 对话失败。",
214
216
  toastDefaultNotice: "通知",
215
217
  dialogCreatedToastPrefix: "已创建对话:",
216
218
  dialogLoadedToast: "对话加载成功。",
@@ -500,6 +502,7 @@ function getUiStrings(language) {
500
502
  q4hAnswerCallSitesLabel: "Answer applies to call sites:",
501
503
  q4hOpenInNewTabTitle: "Open in new tab",
502
504
  q4hCopyLinkTitle: "Copy link",
505
+ forkDialogTitle: "Fork dialog",
503
506
  q4hInvalidDialogToast: "Invalid dialog id: selfId/rootId must be strings.",
504
507
  q4hDeclareDeadOnlySidelineToast: "Declare dead is available only for sideline dialogs.",
505
508
  q4hDeclareDeadOnlyInterruptedToast: "Declare dead is available only when the dialog is interrupted.",
@@ -531,6 +534,7 @@ function getUiStrings(language) {
531
534
  invalidMessageFormatToast: "Received invalid message format. Please refresh the page.",
532
535
  linkCopiedToast: "Link copied.",
533
536
  linkCopyFailedToast: "Failed to copy link.",
537
+ forkDialogFailedToast: "Failed to fork dialog.",
534
538
  toastDefaultNotice: "Notice",
535
539
  dialogCreatedToastPrefix: "Dialog created:",
536
540
  dialogLoadedToast: "Dialog loaded successfully.",
@@ -1107,6 +1111,12 @@ class ApiClient {
1107
1111
  body: request
1108
1112
  });
1109
1113
  }
1114
+ async forkDialog(rootDialogId, request) {
1115
+ return this.request(`/api/dialogs/${encodeURIComponent(rootDialogId)}/fork`, {
1116
+ method: "POST",
1117
+ body: request
1118
+ });
1119
+ }
1110
1120
  async listPrimingScripts(agentId) {
1111
1121
  const query = new URLSearchParams({
1112
1122
  agentId,
@@ -1879,6 +1889,9 @@ const ICON_MASK_URLS = {
1879
1889
  copy: asMaskUrl(
1880
1890
  '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>'
1881
1891
  ),
1892
+ fork: asMaskUrl(
1893
+ '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 10 16"><path d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1ZM2 4.2C1.34 4.2.8 3.65.8 3 .8 2.35 1.35 1.8 2 1.8c.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2Zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2Zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2Z"/></svg>'
1894
+ ),
1882
1895
  play: asMaskUrl(
1883
1896
  '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.5 3v18l15.5-9z"/></svg>'
1884
1897
  ),
@@ -97231,12 +97244,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
97231
97244
  registerLayoutLoaders([
97232
97245
  {
97233
97246
  name: "dagre",
97234
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-BcweuZHt.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97247
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-CPkB5tQ0.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97235
97248
  },
97236
97249
  ...[
97237
97250
  {
97238
97251
  name: "cose-bilkent",
97239
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-yM7S2atz.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97252
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-CxY__sKv.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97240
97253
  }
97241
97254
  ]
97242
97255
  ]);
@@ -97676,7 +97689,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
97676
97689
  }, "detector");
97677
97690
  var loader = /* @__PURE__ */ __name(async () => {
97678
97691
  const { diagram: diagram2 } = await __vitePreload(async () => {
97679
- const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-B0WnCfAT.js");
97692
+ const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-BzYnVyvY.js");
97680
97693
  return { diagram: diagram22 };
97681
97694
  }, true ? __vite__mapDeps([8,9]) : void 0);
97682
97695
  return { id, diagram: diagram2 };
@@ -97696,7 +97709,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
97696
97709
  }, "detector");
97697
97710
  var loader2 = /* @__PURE__ */ __name(async () => {
97698
97711
  const { diagram: diagram2 } = await __vitePreload(async () => {
97699
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-BsBhWukh.js");
97712
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-h3eQwA3O.js");
97700
97713
  return { diagram: diagram22 };
97701
97714
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97702
97715
  return { id: id2, diagram: diagram2 };
@@ -97722,7 +97735,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
97722
97735
  }, "detector");
97723
97736
  var loader3 = /* @__PURE__ */ __name(async () => {
97724
97737
  const { diagram: diagram2 } = await __vitePreload(async () => {
97725
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-BsBhWukh.js");
97738
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-h3eQwA3O.js");
97726
97739
  return { diagram: diagram22 };
97727
97740
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97728
97741
  return { id: id3, diagram: diagram2 };
@@ -97739,7 +97752,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
97739
97752
  }, "detector");
97740
97753
  var loader4 = /* @__PURE__ */ __name(async () => {
97741
97754
  const { diagram: diagram2 } = await __vitePreload(async () => {
97742
- const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DLKmthuw.js");
97755
+ const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DJ3YaFob.js");
97743
97756
  return { diagram: diagram22 };
97744
97757
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
97745
97758
  return { id: id4, diagram: diagram2 };
@@ -97756,7 +97769,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
97756
97769
  }, "detector");
97757
97770
  var loader5 = /* @__PURE__ */ __name(async () => {
97758
97771
  const { diagram: diagram2 } = await __vitePreload(async () => {
97759
- const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-BnAPFBGR.js");
97772
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-D0kX6h-T.js");
97760
97773
  return { diagram: diagram22 };
97761
97774
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
97762
97775
  return { id: id5, diagram: diagram2 };
@@ -97773,7 +97786,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
97773
97786
  }, "detector");
97774
97787
  var loader6 = /* @__PURE__ */ __name(async () => {
97775
97788
  const { diagram: diagram2 } = await __vitePreload(async () => {
97776
- const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-Debz-J-C.js");
97789
+ const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-BCbsDOF_.js");
97777
97790
  return { diagram: diagram22 };
97778
97791
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
97779
97792
  return { id: id6, diagram: diagram2 };
@@ -97790,7 +97803,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
97790
97803
  }, "detector");
97791
97804
  var loader7 = /* @__PURE__ */ __name(async () => {
97792
97805
  const { diagram: diagram2 } = await __vitePreload(async () => {
97793
- const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-CZ5hWoxV.js");
97806
+ const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-DUNbcXxv.js");
97794
97807
  return { diagram: diagram22 };
97795
97808
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
97796
97809
  return { id: id7, diagram: diagram2 };
@@ -97806,7 +97819,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
97806
97819
  }, "detector");
97807
97820
  var loader8 = /* @__PURE__ */ __name(async () => {
97808
97821
  const { diagram: diagram2 } = await __vitePreload(async () => {
97809
- const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-BQ2n0cOB.js");
97822
+ const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-BfQzSE-A.js");
97810
97823
  return { diagram: diagram22 };
97811
97824
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
97812
97825
  return { id: id8, diagram: diagram2 };
@@ -97822,7 +97835,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
97822
97835
  }, "detector");
97823
97836
  var loader9 = /* @__PURE__ */ __name(async () => {
97824
97837
  const { diagram: diagram2 } = await __vitePreload(async () => {
97825
- const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-BLg7_neg.js");
97838
+ const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-CJWvA5jc.js");
97826
97839
  return { diagram: diagram22 };
97827
97840
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
97828
97841
  return { id: id9, diagram: diagram2 };
@@ -97839,7 +97852,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
97839
97852
  }, "detector");
97840
97853
  var loader10 = /* @__PURE__ */ __name(async () => {
97841
97854
  const { diagram: diagram2 } = await __vitePreload(async () => {
97842
- const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-CmSQMxUh.js");
97855
+ const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-DY0BLEdj.js");
97843
97856
  return { diagram: diagram22 };
97844
97857
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
97845
97858
  return { id: id10, diagram: diagram2 };
@@ -97856,7 +97869,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
97856
97869
  }, "detector");
97857
97870
  var loader11 = /* @__PURE__ */ __name(async () => {
97858
97871
  const { diagram: diagram2 } = await __vitePreload(async () => {
97859
- const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-DwkJt0zi.js");
97872
+ const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-CeBbmqBK.js");
97860
97873
  return { diagram: diagram22 };
97861
97874
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
97862
97875
  return { id: id11, diagram: diagram2 };
@@ -97873,7 +97886,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
97873
97886
  }, "detector");
97874
97887
  var loader12 = /* @__PURE__ */ __name(async () => {
97875
97888
  const { diagram: diagram2 } = await __vitePreload(async () => {
97876
- const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-KHU_eApU.js");
97889
+ const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-Bd_7Pgc5.js");
97877
97890
  return { diagram: diagram22 };
97878
97891
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
97879
97892
  return { id: id12, diagram: diagram2 };
@@ -97893,7 +97906,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
97893
97906
  }, "detector");
97894
97907
  var loader13 = /* @__PURE__ */ __name(async () => {
97895
97908
  const { diagram: diagram2 } = await __vitePreload(async () => {
97896
- const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-FCrnlCWC.js");
97909
+ const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-DmPfsN1H.js");
97897
97910
  return { diagram: diagram22 };
97898
97911
  }, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
97899
97912
  return { id: id13, diagram: diagram2 };
@@ -97913,7 +97926,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
97913
97926
  }, "detector");
97914
97927
  var loader14 = /* @__PURE__ */ __name(async () => {
97915
97928
  const { diagram: diagram2 } = await __vitePreload(async () => {
97916
- const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-FCrnlCWC.js");
97929
+ const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-DmPfsN1H.js");
97917
97930
  return { diagram: diagram22 };
97918
97931
  }, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
97919
97932
  return { id: id14, diagram: diagram2 };
@@ -97933,7 +97946,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
97933
97946
  }, "detector");
97934
97947
  var loader15 = /* @__PURE__ */ __name(async () => {
97935
97948
  const { diagram: diagram2 } = await __vitePreload(async () => {
97936
- const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-B3DBCxAL.js");
97949
+ const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-D_WyM3K1.js");
97937
97950
  return { diagram: diagram22 };
97938
97951
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
97939
97952
  return { id: id15, diagram: diagram2 };
@@ -97956,7 +97969,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
97956
97969
  }, "detector");
97957
97970
  var loader16 = /* @__PURE__ */ __name(async () => {
97958
97971
  const { diagram: diagram2 } = await __vitePreload(async () => {
97959
- const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-C-uIk7gh.js");
97972
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-Q_yh26yx.js");
97960
97973
  return { diagram: diagram22 };
97961
97974
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
97962
97975
  return { id: id16, diagram: diagram2 };
@@ -97973,7 +97986,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
97973
97986
  }, "detector");
97974
97987
  var loader17 = /* @__PURE__ */ __name(async () => {
97975
97988
  const { diagram: diagram2 } = await __vitePreload(async () => {
97976
- const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-CKN3oSxk.js");
97989
+ const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-Cg_VhiqB.js");
97977
97990
  return { diagram: diagram22 };
97978
97991
  }, true ? __vite__mapDeps([38,9,11,26]) : void 0);
97979
97992
  return { id: id17, diagram: diagram2 };
@@ -98043,7 +98056,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
98043
98056
  }, "detector");
98044
98057
  var loader18 = /* @__PURE__ */ __name(async () => {
98045
98058
  const { diagram: diagram2 } = await __vitePreload(async () => {
98046
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-BsBhWukh.js");
98059
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-h3eQwA3O.js");
98047
98060
  return { diagram: diagram22 };
98048
98061
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
98049
98062
  return { id: id18, diagram: diagram2 };
@@ -98060,7 +98073,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
98060
98073
  }, "detector");
98061
98074
  var loader19 = /* @__PURE__ */ __name(async () => {
98062
98075
  const { diagram: diagram2 } = await __vitePreload(async () => {
98063
- const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-SysEcQCC.js");
98076
+ const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-Ca8mCFDg.js");
98064
98077
  return { diagram: diagram22 };
98065
98078
  }, true ? __vite__mapDeps([39,26]) : void 0);
98066
98079
  return { id: id19, diagram: diagram2 };
@@ -98077,7 +98090,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
98077
98090
  }, "detector");
98078
98091
  var loader20 = /* @__PURE__ */ __name(async () => {
98079
98092
  const { diagram: diagram2 } = await __vitePreload(async () => {
98080
- const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-C_goMzjx.js");
98093
+ const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-l5K7agVV.js");
98081
98094
  return { diagram: diagram22 };
98082
98095
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
98083
98096
  return { id: id20, diagram: diagram2 };
@@ -98094,7 +98107,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
98094
98107
  }, "detector");
98095
98108
  var loader21 = /* @__PURE__ */ __name(async () => {
98096
98109
  const { diagram: diagram2 } = await __vitePreload(async () => {
98097
- const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-BQCMklfJ.js");
98110
+ const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-DMVCZVFE.js");
98098
98111
  return { diagram: diagram22 };
98099
98112
  }, true ? __vite__mapDeps([41,11]) : void 0);
98100
98113
  return { id: id21, diagram: diagram2 };
@@ -98111,7 +98124,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
98111
98124
  }, "detector");
98112
98125
  var loader22 = /* @__PURE__ */ __name(async () => {
98113
98126
  const { diagram: diagram2 } = await __vitePreload(async () => {
98114
- const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-DmxmatUB.js");
98127
+ const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-JeUBTDxx.js");
98115
98128
  return { diagram: diagram22 };
98116
98129
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
98117
98130
  return { id: id22, diagram: diagram2 };
@@ -98128,7 +98141,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
98128
98141
  }, "detector");
98129
98142
  var loader23 = /* @__PURE__ */ __name(async () => {
98130
98143
  const { diagram: diagram2 } = await __vitePreload(async () => {
98131
- const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-pB6N6Tq_.js");
98144
+ const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-lKGJH6O9.js");
98132
98145
  return { diagram: diagram22 };
98133
98146
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
98134
98147
  return { id: id23, diagram: diagram2 };
@@ -98144,7 +98157,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
98144
98157
  }, "detector");
98145
98158
  var loader24 = /* @__PURE__ */ __name(async () => {
98146
98159
  const { diagram: diagram2 } = await __vitePreload(async () => {
98147
- const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-BVbuejJn.js");
98160
+ const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-BWF6htf1.js");
98148
98161
  return { diagram: diagram22 };
98149
98162
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
98150
98163
  return { id: id24, diagram: diagram2 };
@@ -98160,7 +98173,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
98160
98173
  }, "detector");
98161
98174
  var loader25 = /* @__PURE__ */ __name(async () => {
98162
98175
  const { diagram: diagram2 } = await __vitePreload(async () => {
98163
- const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-pHVz60D0.js");
98176
+ const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-1LzKVc5t.js");
98164
98177
  return { diagram: diagram22 };
98165
98178
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
98166
98179
  return { id: id25, diagram: diagram2 };
@@ -98177,7 +98190,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
98177
98190
  }, "detector");
98178
98191
  var loader26 = /* @__PURE__ */ __name(async () => {
98179
98192
  const { diagram: diagram2 } = await __vitePreload(async () => {
98180
- const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DJQfSJUH.js");
98193
+ const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-CDEG85ub.js");
98181
98194
  return { diagram: diagram22 };
98182
98195
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
98183
98196
  return { id: id26, diagram: diagram2 };
@@ -98194,7 +98207,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
98194
98207
  }, "detector");
98195
98208
  var loader27 = /* @__PURE__ */ __name(async () => {
98196
98209
  const { diagram: diagram2 } = await __vitePreload(async () => {
98197
- const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-D4-QwLW1.js");
98210
+ const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-C6kCVpCz.js");
98198
98211
  return { diagram: diagram22 };
98199
98212
  }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
98200
98213
  return { id: id27, diagram: diagram2 };
@@ -99705,6 +99718,32 @@ class DomindsDialogContainer extends HTMLElement {
99705
99718
  await this.copyGenerationBubbleDeepLinkToClipboard(seq2);
99706
99719
  return;
99707
99720
  }
99721
+ const forkBtn = target.closest(".bubble-fork-btn");
99722
+ if (forkBtn) {
99723
+ e2.preventDefault();
99724
+ e2.stopPropagation();
99725
+ const bubble = forkBtn.closest(".generation-bubble");
99726
+ const dialog = this.currentDialog;
99727
+ if (!bubble || !dialog) return;
99728
+ const courseRaw = Number.parseInt(bubble.getAttribute("data-course") ?? "", 10);
99729
+ const seqRaw = Number.parseInt(bubble.getAttribute("data-seq") ?? "", 10);
99730
+ if (!Number.isFinite(courseRaw) || courseRaw <= 0) return;
99731
+ if (!Number.isFinite(seqRaw) || seqRaw <= 0) return;
99732
+ this.dispatchEvent(
99733
+ new CustomEvent("fork-dialog-request", {
99734
+ detail: {
99735
+ rootId: dialog.rootId,
99736
+ selfId: dialog.selfId,
99737
+ status: dialog.status ?? "running",
99738
+ course: Math.floor(courseRaw),
99739
+ genseq: Math.floor(seqRaw)
99740
+ },
99741
+ bubbles: true,
99742
+ composed: true
99743
+ })
99744
+ );
99745
+ return;
99746
+ }
99708
99747
  const btn = target.closest(".codeblock-action");
99709
99748
  if (btn) {
99710
99749
  const section = btn.closest(".codeblock-section");
@@ -100361,6 +100400,9 @@ class DomindsDialogContainer extends HTMLElement {
100361
100400
  timestamp2,
100362
100401
  queuedMsgId
100363
100402
  );
100403
+ if (typeof this.currentCourse === "number") {
100404
+ bubble2.setAttribute("data-course", String(this.currentCourse));
100405
+ }
100364
100406
  applyPendingCallAnchor(bubble2);
100365
100407
  this.generationBubble = bubble2;
100366
100408
  this.startAutoScrollObservation(bubble2);
@@ -100373,6 +100415,9 @@ class DomindsDialogContainer extends HTMLElement {
100373
100415
  existingBubble.classList.add("generating");
100374
100416
  existingBubble.setAttribute("data-finalized", "false");
100375
100417
  this.setBubbleTimestamp(existingBubble, timestamp2);
100418
+ if (typeof this.currentCourse === "number") {
100419
+ existingBubble.setAttribute("data-course", String(this.currentCourse));
100420
+ }
100376
100421
  this.activeGenSeq = seq2;
100377
100422
  applyPendingCallAnchor(existingBubble);
100378
100423
  this.startAutoScrollObservation(existingBubble);
@@ -100384,6 +100429,9 @@ class DomindsDialogContainer extends HTMLElement {
100384
100429
  this.activeGenSeq = seq2;
100385
100430
  const container = this.shadowRoot?.querySelector(".messages");
100386
100431
  const bubble = this.createGenerationBubble(timestamp2);
100432
+ if (typeof this.currentCourse === "number") {
100433
+ bubble.setAttribute("data-course", String(this.currentCourse));
100434
+ }
100387
100435
  bubble.setAttribute("data-seq", String(seq2));
100388
100436
  applyPendingCallAnchor(bubble);
100389
100437
  bubble.classList.add("generating");
@@ -100499,6 +100547,9 @@ class DomindsDialogContainer extends HTMLElement {
100499
100547
  const queuedContentEl = queuedBubble.querySelector(".user-message");
100500
100548
  const queuedRawContent = queuedContentEl?.textContent ?? "";
100501
100549
  const bubble = this.createGenerationBubble(timestamp2);
100550
+ if (typeof this.currentCourse === "number") {
100551
+ bubble.setAttribute("data-course", String(this.currentCourse));
100552
+ }
100502
100553
  bubble.setAttribute("data-seq", String(seq2));
100503
100554
  bubble.classList.add("generating");
100504
100555
  bubble.setAttribute("data-finalized", "false");
@@ -101770,6 +101821,11 @@ ${event.content}`;
101770
101821
  }
101771
101822
  return "Assistant";
101772
101823
  }
101824
+ canForkCurrentDialog() {
101825
+ const dialog = this.currentDialog;
101826
+ if (!dialog) return false;
101827
+ return dialog.selfId === dialog.rootId;
101828
+ }
101773
101829
  upsertGenerationBubbleAnchorActions(bubble) {
101774
101830
  const headerRight = bubble.querySelector(".bubble-header-right");
101775
101831
  if (!headerRight) {
@@ -101832,6 +101888,11 @@ ${event.content}`;
101832
101888
  const authorLabel = this.getAuthorLabel("assistant");
101833
101889
  const safeAuthorLabel = this.escapeHtml(authorLabel);
101834
101890
  const safeTimestamp = this.escapeHtml(timestamp2);
101891
+ const forkButton = this.canForkCurrentDialog() ? `
101892
+ <button type="button" class="bubble-fork-btn" aria-label="${this.escapeHtml(t2.forkDialogTitle)}" title="${this.escapeHtml(t2.forkDialogTitle)}">
101893
+ <span class="icon-mask dc-icon-fork" aria-hidden="true"></span>
101894
+ </button>
101895
+ ` : "";
101835
101896
  return `
101836
101897
  <div class="bubble-header">
101837
101898
  <div class="bubble-title">
@@ -101842,6 +101903,7 @@ ${event.content}`;
101842
101903
  </div>
101843
101904
  <div class="bubble-header-right">
101844
101905
  <div class="bubble-anchor-actions"></div>
101906
+ ${forkButton}
101845
101907
  <button type="button" class="bubble-share-link-btn" aria-label="${this.escapeHtml(t2.q4hCopyLinkTitle)}" title="${this.escapeHtml(t2.q4hCopyLinkTitle)}">
101846
101908
  <span class="icon-mask dc-icon-link" aria-hidden="true"></span>
101847
101909
  </button>
@@ -102656,7 +102718,8 @@ ${event.content}`;
102656
102718
  display: none;
102657
102719
  }
102658
102720
 
102659
- .bubble-share-link-btn {
102721
+ .bubble-share-link-btn,
102722
+ .bubble-fork-btn {
102660
102723
  width: 22px;
102661
102724
  height: 22px;
102662
102725
  padding: 0;
@@ -102671,13 +102734,15 @@ ${event.content}`;
102671
102734
  transition: all 0.15s ease;
102672
102735
  }
102673
102736
 
102674
- .bubble-share-link-btn:hover {
102737
+ .bubble-share-link-btn:hover,
102738
+ .bubble-fork-btn:hover {
102675
102739
  background: var(--dominds-hover, var(--color-bg-tertiary, #e2e8f0));
102676
102740
  border-color: var(--dominds-border, var(--color-border-primary, #e2e8f0));
102677
102741
  color: var(--dominds-fg, var(--color-fg-primary, #333));
102678
102742
  }
102679
102743
 
102680
- .bubble-share-link-btn:focus-visible {
102744
+ .bubble-share-link-btn:focus-visible,
102745
+ .bubble-fork-btn:focus-visible {
102681
102746
  outline: 2px solid color-mix(in srgb, var(--dominds-primary, #007acc) 55%, transparent);
102682
102747
  outline-offset: 2px;
102683
102748
  }
@@ -102796,6 +102861,7 @@ ${event.content}`;
102796
102861
  }
102797
102862
 
102798
102863
  .bubble-share-link-btn .icon-mask,
102864
+ .bubble-fork-btn .icon-mask,
102799
102865
  .bubble-anchor-assignment-btn .icon-mask,
102800
102866
  .bubble-anchor-caller-callsite-btn .icon-mask,
102801
102867
  .callsite-icon-btn .icon-mask {
@@ -103329,6 +103395,10 @@ ${event.content}`;
103329
103395
  --icon-mask: ${ICON_MASK_URLS.copy};
103330
103396
  }
103331
103397
 
103398
+ .dc-icon-fork {
103399
+ --icon-mask: ${ICON_MASK_URLS.fork};
103400
+ }
103401
+
103332
103402
  .dc-icon-check-circle {
103333
103403
  --icon-mask: ${ICON_MASK_URLS.checkCircle};
103334
103404
  }
@@ -115904,6 +115974,12 @@ ${content}`;
115904
115974
  };
115905
115975
  void this.applyPendingDeepLink();
115906
115976
  });
115977
+ this.shadowRoot.addEventListener("fork-dialog-request", (event) => {
115978
+ const ce2 = event;
115979
+ const detail = ce2.detail && typeof ce2.detail === "object" ? ce2.detail : null;
115980
+ if (!detail) return;
115981
+ void this.handleForkDialogRequest(detail);
115982
+ });
115907
115983
  this.shadowRoot.addEventListener("keydown", (evt) => {
115908
115984
  if (!(evt instanceof KeyboardEvent)) return;
115909
115985
  if (evt.key !== "Enter" && evt.key !== " " && evt.key !== "Spacebar") return;
@@ -117959,6 +118035,50 @@ ${content}`;
117959
118035
  async selectDialog(dialog) {
117960
118036
  await this.applyDialogSelection(dialog, { syncAddressBar: true, showLoadedToast: true });
117961
118037
  }
118038
+ async handleForkDialogRequest(detail) {
118039
+ const rootId = typeof detail["rootId"] === "string" ? detail["rootId"].trim() : "";
118040
+ const selfId = typeof detail["selfId"] === "string" ? detail["selfId"].trim() : "";
118041
+ const statusRaw = detail["status"];
118042
+ const course = typeof detail["course"] === "number" ? Math.floor(detail["course"]) : 0;
118043
+ const genseq = typeof detail["genseq"] === "number" ? Math.floor(detail["genseq"]) : 0;
118044
+ const status = statusRaw === "completed" || statusRaw === "archived" ? statusRaw : "running";
118045
+ const t2 = getUiStrings(this.uiLanguage);
118046
+ if (rootId === "" || selfId === "" || rootId !== selfId || course <= 0 || genseq <= 0) {
118047
+ this.showToast(t2.forkDialogFailedToast, "warning");
118048
+ return;
118049
+ }
118050
+ const api = getApiClient();
118051
+ const response = await api.forkDialog(rootId, { course, genseq, status });
118052
+ const payload = response.data;
118053
+ if (!response.success || !payload?.success || !payload.dialog || !payload.action) {
118054
+ this.showToast(payload?.error || response.error || t2.forkDialogFailedToast, "warning");
118055
+ return;
118056
+ }
118057
+ const forkedDialog = payload.dialog;
118058
+ await this.selectDialog(forkedDialog);
118059
+ const currentInput = this.q4hInput;
118060
+ if (!currentInput) {
118061
+ return;
118062
+ }
118063
+ if (payload.action.kind === "draft_user_text") {
118064
+ currentInput.setValue(payload.action.userText);
118065
+ currentInput.focusInput();
118066
+ return;
118067
+ }
118068
+ if (payload.action.kind === "restore_pending") {
118069
+ if (payload.action.pendingQ4H) {
118070
+ currentInput.focusInput();
118071
+ }
118072
+ return;
118073
+ }
118074
+ this.wsManager.sendRaw({
118075
+ type: "resume_dialog",
118076
+ dialog: {
118077
+ selfId: forkedDialog.selfId,
118078
+ rootId: forkedDialog.rootId
118079
+ }
118080
+ });
118081
+ }
117962
118082
  async restoreDialogFromDeepLink(dialog) {
117963
118083
  const selfId = dialog.selfId || dialog.rootId;
117964
118084
  const rootId = dialog.rootId || dialog.selfId;
@@ -120809,7 +120929,8 @@ class DomindsSetup extends HTMLElement {
120809
120929
  const selected = (typeof stored === "string" && stored !== "" ? stored : void 0) ?? p2.defaultValue ?? p2.values[0] ?? "";
120810
120930
  const options = p2.values.map((v2) => {
120811
120931
  const sel = selected === v2 ? "selected" : "";
120812
- return `<option value="${escapeHtmlAttr(v2)}" ${sel}>${escapeHtml(v2)}</option>`;
120932
+ const label = p2.valueLabels?.[v2] ?? v2;
120933
+ return `<option value="${escapeHtmlAttr(v2)}" ${sel}>${escapeHtml(label)}</option>`;
120813
120934
  }).join("");
120814
120935
  return `
120815
120936
  <div class="param-row">
@@ -121435,4 +121556,4 @@ export {
121435
121556
  clear$2 as y,
121436
121557
  defaultConfig2 as z
121437
121558
  };
121438
- //# sourceMappingURL=index-B-8J28g7.js.map
121559
+ //# sourceMappingURL=index-vIzCTZQE.js.map