dominds 0.7.2 → 0.7.4

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 (105) hide show
  1. package/dist/dialog-global-registry.js +58 -3
  2. package/dist/dialog.js +17 -0
  3. package/dist/evt-registry.js +53 -14
  4. package/dist/llm/driver-v2/context.js +2 -1
  5. package/dist/llm/driver-v2/core.js +1 -118
  6. package/dist/llm/driver-v2/orchestrator.js +65 -38
  7. package/dist/llm/driver-v2/round.js +117 -31
  8. package/dist/llm/driver-v2/runtime-utils.js +1 -0
  9. package/dist/llm/driver-v2/supdialog-response.js +5 -18
  10. package/dist/llm/driver-v2/tellask-bridge.js +66 -4
  11. package/dist/persistence.js +80 -9
  12. package/dist/server/websocket-handler.js +48 -29
  13. package/dist/static/assets/{_baseUniq-C04fddeD.js → _baseUniq-C_6DmNp6.js} +2 -2
  14. package/dist/static/assets/{_baseUniq-C04fddeD.js.map → _baseUniq-C_6DmNp6.js.map} +1 -1
  15. package/dist/static/assets/{arc-qmZerooe.js → arc-CbWoOhl1.js} +2 -2
  16. package/dist/static/assets/{arc-qmZerooe.js.map → arc-CbWoOhl1.js.map} +1 -1
  17. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DPAwJ19g.js → architectureDiagram-VXUJARFQ-CTckhB9O.js} +6 -6
  18. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DPAwJ19g.js.map → architectureDiagram-VXUJARFQ-CTckhB9O.js.map} +1 -1
  19. package/dist/static/assets/{blockDiagram-VD42YOAC-M0jbEJ-1.js → blockDiagram-VD42YOAC-mX558EDN.js} +7 -7
  20. package/dist/static/assets/{blockDiagram-VD42YOAC-M0jbEJ-1.js.map → blockDiagram-VD42YOAC-mX558EDN.js.map} +1 -1
  21. package/dist/static/assets/{c4Diagram-YG6GDRKO-DlF8gwFw.js → c4Diagram-YG6GDRKO-Bti3To3b.js} +3 -3
  22. package/dist/static/assets/{c4Diagram-YG6GDRKO-DlF8gwFw.js.map → c4Diagram-YG6GDRKO-Bti3To3b.js.map} +1 -1
  23. package/dist/static/assets/{channel-B2Ph7be3.js → channel-Dxi4rUwG.js} +2 -2
  24. package/dist/static/assets/{channel-B2Ph7be3.js.map → channel-Dxi4rUwG.js.map} +1 -1
  25. package/dist/static/assets/{chunk-4BX2VUAB-BZ2L6PK1.js → chunk-4BX2VUAB-CAbdAd2-.js} +2 -2
  26. package/dist/static/assets/{chunk-4BX2VUAB-BZ2L6PK1.js.map → chunk-4BX2VUAB-CAbdAd2-.js.map} +1 -1
  27. package/dist/static/assets/{chunk-55IACEB6-COXFmnJW.js → chunk-55IACEB6-D4r4rpB1.js} +2 -2
  28. package/dist/static/assets/{chunk-55IACEB6-COXFmnJW.js.map → chunk-55IACEB6-D4r4rpB1.js.map} +1 -1
  29. package/dist/static/assets/{chunk-B4BG7PRW-B1HiWlBq.js → chunk-B4BG7PRW-sNmEhJCQ.js} +5 -5
  30. package/dist/static/assets/{chunk-B4BG7PRW-B1HiWlBq.js.map → chunk-B4BG7PRW-sNmEhJCQ.js.map} +1 -1
  31. package/dist/static/assets/{chunk-DI55MBZ5-BO3wQRnL.js → chunk-DI55MBZ5-BSutc2-e.js} +4 -4
  32. package/dist/static/assets/{chunk-DI55MBZ5-BO3wQRnL.js.map → chunk-DI55MBZ5-BSutc2-e.js.map} +1 -1
  33. package/dist/static/assets/{chunk-FMBD7UC4-BdavRHSy.js → chunk-FMBD7UC4-DafIeMhA.js} +2 -2
  34. package/dist/static/assets/{chunk-FMBD7UC4-BdavRHSy.js.map → chunk-FMBD7UC4-DafIeMhA.js.map} +1 -1
  35. package/dist/static/assets/{chunk-QN33PNHL-DchoUNF7.js → chunk-QN33PNHL-1EobqGS_.js} +2 -2
  36. package/dist/static/assets/{chunk-QN33PNHL-DchoUNF7.js.map → chunk-QN33PNHL-1EobqGS_.js.map} +1 -1
  37. package/dist/static/assets/{chunk-QZHKN3VN-Dr3uVTtK.js → chunk-QZHKN3VN-C4U4YGsG.js} +2 -2
  38. package/dist/static/assets/{chunk-QZHKN3VN-Dr3uVTtK.js.map → chunk-QZHKN3VN-C4U4YGsG.js.map} +1 -1
  39. package/dist/static/assets/{chunk-TZMSLE5B-BhOcHZNs.js → chunk-TZMSLE5B-BAuDx0ol.js} +2 -2
  40. package/dist/static/assets/{chunk-TZMSLE5B-BhOcHZNs.js.map → chunk-TZMSLE5B-BAuDx0ol.js.map} +1 -1
  41. package/dist/static/assets/{classDiagram-2ON5EDUG-Dep-MR6W.js → classDiagram-2ON5EDUG-B0n34y1v.js} +6 -6
  42. package/dist/static/assets/{classDiagram-2ON5EDUG-Dep-MR6W.js.map → classDiagram-2ON5EDUG-B0n34y1v.js.map} +1 -1
  43. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-Dep-MR6W.js → classDiagram-v2-WZHVMYZB-B0n34y1v.js} +6 -6
  44. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-Dep-MR6W.js.map → classDiagram-v2-WZHVMYZB-B0n34y1v.js.map} +1 -1
  45. package/dist/static/assets/{clone-DzoL-dSX.js → clone-DMVEoZzo.js} +2 -2
  46. package/dist/static/assets/{clone-DzoL-dSX.js.map → clone-DMVEoZzo.js.map} +1 -1
  47. package/dist/static/assets/{cose-bilkent-S5V4N54A-Bqu_DqDB.js → cose-bilkent-S5V4N54A-BM7Q-IjT.js} +2 -2
  48. package/dist/static/assets/{cose-bilkent-S5V4N54A-Bqu_DqDB.js.map → cose-bilkent-S5V4N54A-BM7Q-IjT.js.map} +1 -1
  49. package/dist/static/assets/{dagre-6UL2VRFP-49InNTzs.js → dagre-6UL2VRFP-DsBBLjwD.js} +7 -7
  50. package/dist/static/assets/{dagre-6UL2VRFP-49InNTzs.js.map → dagre-6UL2VRFP-DsBBLjwD.js.map} +1 -1
  51. package/dist/static/assets/{diagram-PSM6KHXK-C1IsQq8m.js → diagram-PSM6KHXK-uinTtuhJ.js} +7 -7
  52. package/dist/static/assets/{diagram-PSM6KHXK-C1IsQq8m.js.map → diagram-PSM6KHXK-uinTtuhJ.js.map} +1 -1
  53. package/dist/static/assets/{diagram-QEK2KX5R-DyJeSg_Y.js → diagram-QEK2KX5R-ChxmtmD8.js} +6 -6
  54. package/dist/static/assets/{diagram-QEK2KX5R-DyJeSg_Y.js.map → diagram-QEK2KX5R-ChxmtmD8.js.map} +1 -1
  55. package/dist/static/assets/{diagram-S2PKOQOG-aeLjjldp.js → diagram-S2PKOQOG-2cukzOFZ.js} +6 -6
  56. package/dist/static/assets/{diagram-S2PKOQOG-aeLjjldp.js.map → diagram-S2PKOQOG-2cukzOFZ.js.map} +1 -1
  57. package/dist/static/assets/{erDiagram-Q2GNP2WA-BUcv4AUq.js → erDiagram-Q2GNP2WA-CwIFDwop.js} +5 -5
  58. package/dist/static/assets/{erDiagram-Q2GNP2WA-BUcv4AUq.js.map → erDiagram-Q2GNP2WA-CwIFDwop.js.map} +1 -1
  59. package/dist/static/assets/{flowDiagram-NV44I4VS-DfmTKlf_.js → flowDiagram-NV44I4VS-jKMMhPpA.js} +6 -6
  60. package/dist/static/assets/{flowDiagram-NV44I4VS-DfmTKlf_.js.map → flowDiagram-NV44I4VS-jKMMhPpA.js.map} +1 -1
  61. package/dist/static/assets/{ganttDiagram-JELNMOA3-BpJE8Lhp.js → ganttDiagram-JELNMOA3-0onO7ppU.js} +3 -3
  62. package/dist/static/assets/{ganttDiagram-JELNMOA3-BpJE8Lhp.js.map → ganttDiagram-JELNMOA3-0onO7ppU.js.map} +1 -1
  63. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-DmznjSYb.js → gitGraphDiagram-NY62KEGX-CxBFzFla.js} +7 -7
  64. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-DmznjSYb.js.map → gitGraphDiagram-NY62KEGX-CxBFzFla.js.map} +1 -1
  65. package/dist/static/assets/{graph-CcKyIZaL.js → graph-DuuInXXc.js} +3 -3
  66. package/dist/static/assets/{graph-CcKyIZaL.js.map → graph-DuuInXXc.js.map} +1 -1
  67. package/dist/static/assets/{index-CQr8MdPI.js → index-CIEJ2QXv.js} +311 -228
  68. package/dist/static/assets/index-CIEJ2QXv.js.map +1 -0
  69. package/dist/static/assets/{infoDiagram-WHAUD3N6-DwRPjndM.js → infoDiagram-WHAUD3N6-TznEGa7r.js} +5 -5
  70. package/dist/static/assets/{infoDiagram-WHAUD3N6-DwRPjndM.js.map → infoDiagram-WHAUD3N6-TznEGa7r.js.map} +1 -1
  71. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-BRAFSgVa.js → journeyDiagram-XKPGCS4Q-BHyegEi7.js} +5 -5
  72. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-BRAFSgVa.js.map → journeyDiagram-XKPGCS4Q-BHyegEi7.js.map} +1 -1
  73. package/dist/static/assets/{kanban-definition-3W4ZIXB7-DlJ7-fgN.js → kanban-definition-3W4ZIXB7-Cb42cM0l.js} +3 -3
  74. package/dist/static/assets/{kanban-definition-3W4ZIXB7-DlJ7-fgN.js.map → kanban-definition-3W4ZIXB7-Cb42cM0l.js.map} +1 -1
  75. package/dist/static/assets/{layout-CcW5-Iee.js → layout-BmWDm7l3.js} +5 -5
  76. package/dist/static/assets/{layout-CcW5-Iee.js.map → layout-BmWDm7l3.js.map} +1 -1
  77. package/dist/static/assets/{linear-sKdPIuOH.js → linear-CnzPs1-w.js} +2 -2
  78. package/dist/static/assets/{linear-sKdPIuOH.js.map → linear-CnzPs1-w.js.map} +1 -1
  79. package/dist/static/assets/{min-CQ0AYqmk.js → min-B10Xh5Ux.js} +3 -3
  80. package/dist/static/assets/{min-CQ0AYqmk.js.map → min-B10Xh5Ux.js.map} +1 -1
  81. package/dist/static/assets/{mindmap-definition-VGOIOE7T-CTRwSlu8.js → mindmap-definition-VGOIOE7T-CrN1eydc.js} +4 -4
  82. package/dist/static/assets/{mindmap-definition-VGOIOE7T-CTRwSlu8.js.map → mindmap-definition-VGOIOE7T-CrN1eydc.js.map} +1 -1
  83. package/dist/static/assets/{pieDiagram-ADFJNKIX-DmD5KRKE.js → pieDiagram-ADFJNKIX-B30qa_F6.js} +7 -7
  84. package/dist/static/assets/{pieDiagram-ADFJNKIX-DmD5KRKE.js.map → pieDiagram-ADFJNKIX-B30qa_F6.js.map} +1 -1
  85. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-C5sqZOBF.js → quadrantDiagram-AYHSOK5B-CqcwrOFK.js} +3 -3
  86. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-C5sqZOBF.js.map → quadrantDiagram-AYHSOK5B-CqcwrOFK.js.map} +1 -1
  87. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DBAUwM-7.js → requirementDiagram-UZGBJVZJ-D_pK_WHp.js} +4 -4
  88. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-DBAUwM-7.js.map → requirementDiagram-UZGBJVZJ-D_pK_WHp.js.map} +1 -1
  89. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CkaxkOo7.js → sankeyDiagram-TZEHDZUN-DCWsFfhe.js} +2 -2
  90. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CkaxkOo7.js.map → sankeyDiagram-TZEHDZUN-DCWsFfhe.js.map} +1 -1
  91. package/dist/static/assets/{sequenceDiagram-WL72ISMW-CJ6wMDXh.js → sequenceDiagram-WL72ISMW-bYELxg0L.js} +4 -4
  92. package/dist/static/assets/{sequenceDiagram-WL72ISMW-CJ6wMDXh.js.map → sequenceDiagram-WL72ISMW-bYELxg0L.js.map} +1 -1
  93. package/dist/static/assets/{stateDiagram-FKZM4ZOC-C66ZP2NW.js → stateDiagram-FKZM4ZOC-DETJEZs6.js} +9 -9
  94. package/dist/static/assets/{stateDiagram-FKZM4ZOC-C66ZP2NW.js.map → stateDiagram-FKZM4ZOC-DETJEZs6.js.map} +1 -1
  95. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-DdoOy271.js → stateDiagram-v2-4FDKWEC3-DEfNRBx4.js} +5 -5
  96. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-DdoOy271.js.map → stateDiagram-v2-4FDKWEC3-DEfNRBx4.js.map} +1 -1
  97. package/dist/static/assets/{timeline-definition-IT6M3QCI-2A2Mqedz.js → timeline-definition-IT6M3QCI-BRvufh0i.js} +3 -3
  98. package/dist/static/assets/{timeline-definition-IT6M3QCI-2A2Mqedz.js.map → timeline-definition-IT6M3QCI-BRvufh0i.js.map} +1 -1
  99. package/dist/static/assets/{treemap-KMMF4GRG-CTbGSr5o.js → treemap-KMMF4GRG-D4s4uF2T.js} +4 -4
  100. package/dist/static/assets/{treemap-KMMF4GRG-CTbGSr5o.js.map → treemap-KMMF4GRG-D4s4uF2T.js.map} +1 -1
  101. package/dist/static/assets/{xychartDiagram-PRI3JC2R-C_S3XXZI.js → xychartDiagram-PRI3JC2R-eBEH5utX.js} +3 -3
  102. package/dist/static/assets/{xychartDiagram-PRI3JC2R-C_S3XXZI.js.map → xychartDiagram-PRI3JC2R-eBEH5utX.js.map} +1 -1
  103. package/dist/static/index.html +1 -1
  104. package/package.json +1 -1
  105. package/dist/static/assets/index-CQr8MdPI.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-49InNTzs.js","assets/graph-CcKyIZaL.js","assets/_baseUniq-C04fddeD.js","assets/layout-CcW5-Iee.js","assets/min-CQ0AYqmk.js","assets/clone-DzoL-dSX.js","assets/cose-bilkent-S5V4N54A-Bqu_DqDB.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-DlF8gwFw.js","assets/chunk-TZMSLE5B-BhOcHZNs.js","assets/flowDiagram-NV44I4VS-DfmTKlf_.js","assets/chunk-FMBD7UC4-BdavRHSy.js","assets/chunk-55IACEB6-COXFmnJW.js","assets/chunk-QN33PNHL-DchoUNF7.js","assets/channel-B2Ph7be3.js","assets/erDiagram-Q2GNP2WA-BUcv4AUq.js","assets/gitGraphDiagram-NY62KEGX-DmznjSYb.js","assets/chunk-4BX2VUAB-BZ2L6PK1.js","assets/chunk-QZHKN3VN-Dr3uVTtK.js","assets/treemap-KMMF4GRG-CTbGSr5o.js","assets/ganttDiagram-JELNMOA3-BpJE8Lhp.js","assets/linear-sKdPIuOH.js","assets/init-ZxktEp_H.js","assets/defaultLocale-DVr69WTU.js","assets/infoDiagram-WHAUD3N6-DwRPjndM.js","assets/pieDiagram-ADFJNKIX-DmD5KRKE.js","assets/arc-qmZerooe.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-C5sqZOBF.js","assets/xychartDiagram-PRI3JC2R-C_S3XXZI.js","assets/requirementDiagram-UZGBJVZJ-DBAUwM-7.js","assets/sequenceDiagram-WL72ISMW-CJ6wMDXh.js","assets/classDiagram-2ON5EDUG-Dep-MR6W.js","assets/chunk-B4BG7PRW-B1HiWlBq.js","assets/classDiagram-v2-WZHVMYZB-Dep-MR6W.js","assets/stateDiagram-FKZM4ZOC-C66ZP2NW.js","assets/chunk-DI55MBZ5-BO3wQRnL.js","assets/stateDiagram-v2-4FDKWEC3-DdoOy271.js","assets/journeyDiagram-XKPGCS4Q-BRAFSgVa.js","assets/timeline-definition-IT6M3QCI-2A2Mqedz.js","assets/mindmap-definition-VGOIOE7T-CTRwSlu8.js","assets/kanban-definition-3W4ZIXB7-DlJ7-fgN.js","assets/sankeyDiagram-TZEHDZUN-CkaxkOo7.js","assets/diagram-S2PKOQOG-aeLjjldp.js","assets/diagram-QEK2KX5R-DyJeSg_Y.js","assets/blockDiagram-VD42YOAC-M0jbEJ-1.js","assets/architectureDiagram-VXUJARFQ-DPAwJ19g.js","assets/diagram-PSM6KHXK-C1IsQq8m.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DsBBLjwD.js","assets/graph-DuuInXXc.js","assets/_baseUniq-C_6DmNp6.js","assets/layout-BmWDm7l3.js","assets/min-B10Xh5Ux.js","assets/clone-DMVEoZzo.js","assets/cose-bilkent-S5V4N54A-BM7Q-IjT.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-Bti3To3b.js","assets/chunk-TZMSLE5B-BAuDx0ol.js","assets/flowDiagram-NV44I4VS-jKMMhPpA.js","assets/chunk-FMBD7UC4-DafIeMhA.js","assets/chunk-55IACEB6-D4r4rpB1.js","assets/chunk-QN33PNHL-1EobqGS_.js","assets/channel-Dxi4rUwG.js","assets/erDiagram-Q2GNP2WA-CwIFDwop.js","assets/gitGraphDiagram-NY62KEGX-CxBFzFla.js","assets/chunk-4BX2VUAB-CAbdAd2-.js","assets/chunk-QZHKN3VN-C4U4YGsG.js","assets/treemap-KMMF4GRG-D4s4uF2T.js","assets/ganttDiagram-JELNMOA3-0onO7ppU.js","assets/linear-CnzPs1-w.js","assets/init-ZxktEp_H.js","assets/defaultLocale-DVr69WTU.js","assets/infoDiagram-WHAUD3N6-TznEGa7r.js","assets/pieDiagram-ADFJNKIX-B30qa_F6.js","assets/arc-CbWoOhl1.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-CqcwrOFK.js","assets/xychartDiagram-PRI3JC2R-eBEH5utX.js","assets/requirementDiagram-UZGBJVZJ-D_pK_WHp.js","assets/sequenceDiagram-WL72ISMW-bYELxg0L.js","assets/classDiagram-2ON5EDUG-B0n34y1v.js","assets/chunk-B4BG7PRW-sNmEhJCQ.js","assets/classDiagram-v2-WZHVMYZB-B0n34y1v.js","assets/stateDiagram-FKZM4ZOC-DETJEZs6.js","assets/chunk-DI55MBZ5-BSutc2-e.js","assets/stateDiagram-v2-4FDKWEC3-DEfNRBx4.js","assets/journeyDiagram-XKPGCS4Q-BHyegEi7.js","assets/timeline-definition-IT6M3QCI-BRvufh0i.js","assets/mindmap-definition-VGOIOE7T-CrN1eydc.js","assets/kanban-definition-3W4ZIXB7-Cb42cM0l.js","assets/sankeyDiagram-TZEHDZUN-DCWsFfhe.js","assets/diagram-S2PKOQOG-2cukzOFZ.js","assets/diagram-QEK2KX5R-ChxmtmD8.js","assets/blockDiagram-VD42YOAC-mX558EDN.js","assets/architectureDiagram-VXUJARFQ-CTckhB9O.js","assets/diagram-PSM6KHXK-uinTtuhJ.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);
@@ -168,6 +168,19 @@ function getUiStrings(language) {
168
168
  invalidMessageFormatToast: "收到无效消息格式,请刷新页面。",
169
169
  linkCopiedToast: "链接已复制。",
170
170
  linkCopyFailedToast: "复制链接失败。",
171
+ toastDefaultNotice: "通知",
172
+ dialogCreatedToastPrefix: "已创建对话:",
173
+ dialogLoadedToast: "对话加载成功。",
174
+ deepLinkDialogNotFoundPrefix: "未找到深链对话:",
175
+ dialogDeleteFailedToast: "删除对话失败",
176
+ moveDialogsFailedToast: "移动对话失败",
177
+ movedDialogsToastPrefix: "已移动对话数量:",
178
+ toolsRegistryLoadFailedToast: "加载工具注册表失败",
179
+ reminderConnectionIssueToast: "检测到连接问题,提醒数据可能暂时不可用。",
180
+ reminderSyncIssueToast: "提醒同步出现问题。如问题持续,请刷新页面。",
181
+ unknownStreamErrorToast: "未知流错误",
182
+ teammateCallFailedToast: "队友调用失败",
183
+ unknownError: "未知错误",
171
184
  toastHistoryButtonTitle: "通知历史",
172
185
  toastHistoryTitle: "通知历史",
173
186
  toastHistoryClearTitle: "清空通知历史",
@@ -429,6 +442,19 @@ function getUiStrings(language) {
429
442
  invalidMessageFormatToast: "Received invalid message format. Please refresh the page.",
430
443
  linkCopiedToast: "Link copied.",
431
444
  linkCopyFailedToast: "Failed to copy link.",
445
+ toastDefaultNotice: "Notice",
446
+ dialogCreatedToastPrefix: "Dialog created:",
447
+ dialogLoadedToast: "Dialog loaded successfully.",
448
+ deepLinkDialogNotFoundPrefix: "Deep link dialog not found:",
449
+ dialogDeleteFailedToast: "Failed to delete dialog",
450
+ moveDialogsFailedToast: "Failed to move dialogs",
451
+ movedDialogsToastPrefix: "Moved dialog(s): ",
452
+ toolsRegistryLoadFailedToast: "Failed to load tools registry",
453
+ reminderConnectionIssueToast: "Connection issue detected. Reminder data may be temporarily unavailable.",
454
+ reminderSyncIssueToast: "Reminder synchronization encountered an issue. Please refresh if problems persist.",
455
+ unknownStreamErrorToast: "Unknown stream error",
456
+ teammateCallFailedToast: "Teammate call failed",
457
+ unknownError: "Unknown error",
432
458
  toastHistoryButtonTitle: "Notification history",
433
459
  toastHistoryTitle: "Notification history",
434
460
  toastHistoryClearTitle: "Clear notification history",
@@ -96459,12 +96485,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
96459
96485
  registerLayoutLoaders([
96460
96486
  {
96461
96487
  name: "dagre",
96462
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-49InNTzs.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
96488
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-DsBBLjwD.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
96463
96489
  },
96464
96490
  ...[
96465
96491
  {
96466
96492
  name: "cose-bilkent",
96467
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-Bqu_DqDB.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
96493
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-BM7Q-IjT.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
96468
96494
  }
96469
96495
  ]
96470
96496
  ]);
@@ -96904,7 +96930,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
96904
96930
  }, "detector");
96905
96931
  var loader = /* @__PURE__ */ __name(async () => {
96906
96932
  const { diagram: diagram2 } = await __vitePreload(async () => {
96907
- const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-DlF8gwFw.js");
96933
+ const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-Bti3To3b.js");
96908
96934
  return { diagram: diagram22 };
96909
96935
  }, true ? __vite__mapDeps([8,9]) : void 0);
96910
96936
  return { id, diagram: diagram2 };
@@ -96924,7 +96950,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
96924
96950
  }, "detector");
96925
96951
  var loader2 = /* @__PURE__ */ __name(async () => {
96926
96952
  const { diagram: diagram2 } = await __vitePreload(async () => {
96927
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DfmTKlf_.js");
96953
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-jKMMhPpA.js");
96928
96954
  return { diagram: diagram22 };
96929
96955
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
96930
96956
  return { id: id2, diagram: diagram2 };
@@ -96950,7 +96976,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
96950
96976
  }, "detector");
96951
96977
  var loader3 = /* @__PURE__ */ __name(async () => {
96952
96978
  const { diagram: diagram2 } = await __vitePreload(async () => {
96953
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DfmTKlf_.js");
96979
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-jKMMhPpA.js");
96954
96980
  return { diagram: diagram22 };
96955
96981
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
96956
96982
  return { id: id3, diagram: diagram2 };
@@ -96967,7 +96993,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
96967
96993
  }, "detector");
96968
96994
  var loader4 = /* @__PURE__ */ __name(async () => {
96969
96995
  const { diagram: diagram2 } = await __vitePreload(async () => {
96970
- const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-BUcv4AUq.js");
96996
+ const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-CwIFDwop.js");
96971
96997
  return { diagram: diagram22 };
96972
96998
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
96973
96999
  return { id: id4, diagram: diagram2 };
@@ -96984,7 +97010,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
96984
97010
  }, "detector");
96985
97011
  var loader5 = /* @__PURE__ */ __name(async () => {
96986
97012
  const { diagram: diagram2 } = await __vitePreload(async () => {
96987
- const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-DmznjSYb.js");
97013
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-CxBFzFla.js");
96988
97014
  return { diagram: diagram22 };
96989
97015
  }, true ? __vite__mapDeps([16,17,18,19,4,2]) : void 0);
96990
97016
  return { id: id5, diagram: diagram2 };
@@ -97001,7 +97027,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
97001
97027
  }, "detector");
97002
97028
  var loader6 = /* @__PURE__ */ __name(async () => {
97003
97029
  const { diagram: diagram2 } = await __vitePreload(async () => {
97004
- const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-BpJE8Lhp.js");
97030
+ const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-0onO7ppU.js");
97005
97031
  return { diagram: diagram22 };
97006
97032
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
97007
97033
  return { id: id6, diagram: diagram2 };
@@ -97018,7 +97044,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
97018
97044
  }, "detector");
97019
97045
  var loader7 = /* @__PURE__ */ __name(async () => {
97020
97046
  const { diagram: diagram2 } = await __vitePreload(async () => {
97021
- const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-DwRPjndM.js");
97047
+ const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-TznEGa7r.js");
97022
97048
  return { diagram: diagram22 };
97023
97049
  }, true ? __vite__mapDeps([24,19,4,2]) : void 0);
97024
97050
  return { id: id7, diagram: diagram2 };
@@ -97034,7 +97060,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
97034
97060
  }, "detector");
97035
97061
  var loader8 = /* @__PURE__ */ __name(async () => {
97036
97062
  const { diagram: diagram2 } = await __vitePreload(async () => {
97037
- const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-DmD5KRKE.js");
97063
+ const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-B30qa_F6.js");
97038
97064
  return { diagram: diagram22 };
97039
97065
  }, true ? __vite__mapDeps([25,17,19,4,2,26,27,22]) : void 0);
97040
97066
  return { id: id8, diagram: diagram2 };
@@ -97050,7 +97076,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
97050
97076
  }, "detector");
97051
97077
  var loader9 = /* @__PURE__ */ __name(async () => {
97052
97078
  const { diagram: diagram2 } = await __vitePreload(async () => {
97053
- const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-C5sqZOBF.js");
97079
+ const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-CqcwrOFK.js");
97054
97080
  return { diagram: diagram22 };
97055
97081
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
97056
97082
  return { id: id9, diagram: diagram2 };
@@ -97067,7 +97093,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
97067
97093
  }, "detector");
97068
97094
  var loader10 = /* @__PURE__ */ __name(async () => {
97069
97095
  const { diagram: diagram2 } = await __vitePreload(async () => {
97070
- const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-C_S3XXZI.js");
97096
+ const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-eBEH5utX.js");
97071
97097
  return { diagram: diagram22 };
97072
97098
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
97073
97099
  return { id: id10, diagram: diagram2 };
@@ -97084,7 +97110,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
97084
97110
  }, "detector");
97085
97111
  var loader11 = /* @__PURE__ */ __name(async () => {
97086
97112
  const { diagram: diagram2 } = await __vitePreload(async () => {
97087
- const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-DBAUwM-7.js");
97113
+ const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-D_pK_WHp.js");
97088
97114
  return { diagram: diagram22 };
97089
97115
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
97090
97116
  return { id: id11, diagram: diagram2 };
@@ -97101,7 +97127,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
97101
97127
  }, "detector");
97102
97128
  var loader12 = /* @__PURE__ */ __name(async () => {
97103
97129
  const { diagram: diagram2 } = await __vitePreload(async () => {
97104
- const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-CJ6wMDXh.js");
97130
+ const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-bYELxg0L.js");
97105
97131
  return { diagram: diagram22 };
97106
97132
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
97107
97133
  return { id: id12, diagram: diagram2 };
@@ -97121,7 +97147,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
97121
97147
  }, "detector");
97122
97148
  var loader13 = /* @__PURE__ */ __name(async () => {
97123
97149
  const { diagram: diagram2 } = await __vitePreload(async () => {
97124
- const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-Dep-MR6W.js");
97150
+ const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-B0n34y1v.js");
97125
97151
  return { diagram: diagram22 };
97126
97152
  }, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
97127
97153
  return { id: id13, diagram: diagram2 };
@@ -97141,7 +97167,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
97141
97167
  }, "detector");
97142
97168
  var loader14 = /* @__PURE__ */ __name(async () => {
97143
97169
  const { diagram: diagram2 } = await __vitePreload(async () => {
97144
- const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-Dep-MR6W.js");
97170
+ const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-B0n34y1v.js");
97145
97171
  return { diagram: diagram22 };
97146
97172
  }, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
97147
97173
  return { id: id14, diagram: diagram2 };
@@ -97161,7 +97187,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
97161
97187
  }, "detector");
97162
97188
  var loader15 = /* @__PURE__ */ __name(async () => {
97163
97189
  const { diagram: diagram2 } = await __vitePreload(async () => {
97164
- const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-C66ZP2NW.js");
97190
+ const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-DETJEZs6.js");
97165
97191
  return { diagram: diagram22 };
97166
97192
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
97167
97193
  return { id: id15, diagram: diagram2 };
@@ -97184,7 +97210,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
97184
97210
  }, "detector");
97185
97211
  var loader16 = /* @__PURE__ */ __name(async () => {
97186
97212
  const { diagram: diagram2 } = await __vitePreload(async () => {
97187
- const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-DdoOy271.js");
97213
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-DEfNRBx4.js");
97188
97214
  return { diagram: diagram22 };
97189
97215
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
97190
97216
  return { id: id16, diagram: diagram2 };
@@ -97201,7 +97227,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
97201
97227
  }, "detector");
97202
97228
  var loader17 = /* @__PURE__ */ __name(async () => {
97203
97229
  const { diagram: diagram2 } = await __vitePreload(async () => {
97204
- const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-BRAFSgVa.js");
97230
+ const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-BHyegEi7.js");
97205
97231
  return { diagram: diagram22 };
97206
97232
  }, true ? __vite__mapDeps([38,9,11,26]) : void 0);
97207
97233
  return { id: id17, diagram: diagram2 };
@@ -97271,7 +97297,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
97271
97297
  }, "detector");
97272
97298
  var loader18 = /* @__PURE__ */ __name(async () => {
97273
97299
  const { diagram: diagram2 } = await __vitePreload(async () => {
97274
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DfmTKlf_.js");
97300
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-jKMMhPpA.js");
97275
97301
  return { diagram: diagram22 };
97276
97302
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97277
97303
  return { id: id18, diagram: diagram2 };
@@ -97288,7 +97314,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
97288
97314
  }, "detector");
97289
97315
  var loader19 = /* @__PURE__ */ __name(async () => {
97290
97316
  const { diagram: diagram2 } = await __vitePreload(async () => {
97291
- const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-2A2Mqedz.js");
97317
+ const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-BRvufh0i.js");
97292
97318
  return { diagram: diagram22 };
97293
97319
  }, true ? __vite__mapDeps([39,26]) : void 0);
97294
97320
  return { id: id19, diagram: diagram2 };
@@ -97305,7 +97331,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
97305
97331
  }, "detector");
97306
97332
  var loader20 = /* @__PURE__ */ __name(async () => {
97307
97333
  const { diagram: diagram2 } = await __vitePreload(async () => {
97308
- const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-CTRwSlu8.js");
97334
+ const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-CrN1eydc.js");
97309
97335
  return { diagram: diagram22 };
97310
97336
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
97311
97337
  return { id: id20, diagram: diagram2 };
@@ -97322,7 +97348,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
97322
97348
  }, "detector");
97323
97349
  var loader21 = /* @__PURE__ */ __name(async () => {
97324
97350
  const { diagram: diagram2 } = await __vitePreload(async () => {
97325
- const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-DlJ7-fgN.js");
97351
+ const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-Cb42cM0l.js");
97326
97352
  return { diagram: diagram22 };
97327
97353
  }, true ? __vite__mapDeps([41,11]) : void 0);
97328
97354
  return { id: id21, diagram: diagram2 };
@@ -97339,7 +97365,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
97339
97365
  }, "detector");
97340
97366
  var loader22 = /* @__PURE__ */ __name(async () => {
97341
97367
  const { diagram: diagram2 } = await __vitePreload(async () => {
97342
- const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-CkaxkOo7.js");
97368
+ const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-DCWsFfhe.js");
97343
97369
  return { diagram: diagram22 };
97344
97370
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
97345
97371
  return { id: id22, diagram: diagram2 };
@@ -97356,7 +97382,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
97356
97382
  }, "detector");
97357
97383
  var loader23 = /* @__PURE__ */ __name(async () => {
97358
97384
  const { diagram: diagram2 } = await __vitePreload(async () => {
97359
- const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-aeLjjldp.js");
97385
+ const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-2cukzOFZ.js");
97360
97386
  return { diagram: diagram22 };
97361
97387
  }, true ? __vite__mapDeps([43,17,19,4,2]) : void 0);
97362
97388
  return { id: id23, diagram: diagram2 };
@@ -97372,7 +97398,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
97372
97398
  }, "detector");
97373
97399
  var loader24 = /* @__PURE__ */ __name(async () => {
97374
97400
  const { diagram: diagram2 } = await __vitePreload(async () => {
97375
- const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-DyJeSg_Y.js");
97401
+ const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-ChxmtmD8.js");
97376
97402
  return { diagram: diagram22 };
97377
97403
  }, true ? __vite__mapDeps([44,17,19,4,2]) : void 0);
97378
97404
  return { id: id24, diagram: diagram2 };
@@ -97388,7 +97414,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
97388
97414
  }, "detector");
97389
97415
  var loader25 = /* @__PURE__ */ __name(async () => {
97390
97416
  const { diagram: diagram2 } = await __vitePreload(async () => {
97391
- const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-M0jbEJ-1.js");
97417
+ const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-mX558EDN.js");
97392
97418
  return { diagram: diagram22 };
97393
97419
  }, true ? __vite__mapDeps([45,11,5,1,2,14]) : void 0);
97394
97420
  return { id: id25, diagram: diagram2 };
@@ -97405,7 +97431,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
97405
97431
  }, "detector");
97406
97432
  var loader26 = /* @__PURE__ */ __name(async () => {
97407
97433
  const { diagram: diagram2 } = await __vitePreload(async () => {
97408
- const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DPAwJ19g.js");
97434
+ const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-CTckhB9O.js");
97409
97435
  return { diagram: diagram22 };
97410
97436
  }, true ? __vite__mapDeps([46,17,19,4,2,7]) : void 0);
97411
97437
  return { id: id26, diagram: diagram2 };
@@ -97422,7 +97448,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
97422
97448
  }, "detector");
97423
97449
  var loader27 = /* @__PURE__ */ __name(async () => {
97424
97450
  const { diagram: diagram2 } = await __vitePreload(async () => {
97425
- const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-C1IsQq8m.js");
97451
+ const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-uinTtuhJ.js");
97426
97452
  return { diagram: diagram22 };
97427
97453
  }, true ? __vite__mapDeps([47,13,17,19,4,2,23,27,22]) : void 0);
97428
97454
  return { id: id27, diagram: diagram2 };
@@ -98466,7 +98492,6 @@ class DomindsDialogContainer extends HTMLElement {
98466
98492
  this.callingSectionByCallId = /* @__PURE__ */ new Map();
98467
98493
  this.webSearchSectionByItemId = /* @__PURE__ */ new Map();
98468
98494
  this.webSearchSectionBySeq = /* @__PURE__ */ new Map();
98469
- this.pendingTeammateCallResponsesByCallId = /* @__PURE__ */ new Map();
98470
98495
  this.pendingScrollRequest = null;
98471
98496
  this.highlightSeq = 0;
98472
98497
  this.pendingHighlight = null;
@@ -98889,7 +98914,6 @@ class DomindsDialogContainer extends HTMLElement {
98889
98914
  this.callingSectionByCallId.clear();
98890
98915
  this.webSearchSectionByItemId.clear();
98891
98916
  this.webSearchSectionBySeq.clear();
98892
- this.pendingTeammateCallResponsesByCallId.clear();
98893
98917
  const messages = this.shadowRoot?.querySelector(".messages");
98894
98918
  if (messages) {
98895
98919
  messages.innerHTML = "";
@@ -98910,7 +98934,6 @@ class DomindsDialogContainer extends HTMLElement {
98910
98934
  this.callingSectionByCallId.clear();
98911
98935
  this.webSearchSectionByItemId.clear();
98912
98936
  this.webSearchSectionBySeq.clear();
98913
- this.pendingTeammateCallResponsesByCallId.clear();
98914
98937
  const messages = this.shadowRoot?.querySelector(".messages");
98915
98938
  if (messages) {
98916
98939
  messages.innerHTML = "";
@@ -99135,7 +99158,11 @@ class DomindsDialogContainer extends HTMLElement {
99135
99158
  case "stream_error_evt":
99136
99159
  if (!this.generationBubble) {
99137
99160
  const host = this.getRootNode()?.host;
99138
- const detail = { message: String(event.error || "Unknown stream error"), kind: "error" };
99161
+ const t2 = getUiStrings(this.uiLanguage);
99162
+ const detail = {
99163
+ message: String(event.error || t2.unknownStreamErrorToast),
99164
+ kind: "error"
99165
+ };
99139
99166
  host?.dispatchEvent(
99140
99167
  new CustomEvent("ui-toast", { detail, bubbles: true, composed: true })
99141
99168
  );
@@ -99590,14 +99617,6 @@ class DomindsDialogContainer extends HTMLElement {
99590
99617
  currentSection.classList.add("completed");
99591
99618
  this.callingSection = void 0;
99592
99619
  this.teammateCallingSectionBySeq.set(event.genseq, currentSection);
99593
- const pending = this.pendingTeammateCallResponsesByCallId.get(callId);
99594
- if (pending) {
99595
- const display = this.formatTeammateCallResultForSection(currentSection, pending);
99596
- if (typeof display === "string") {
99597
- this.pendingTeammateCallResponsesByCallId.delete(callId);
99598
- this.attachResultInline(currentSection, display, pending.status);
99599
- }
99600
- }
99601
99620
  }
99602
99621
  // === FUNCTION RESULTS ===
99603
99622
  handleFuncResult(event) {
@@ -99717,6 +99736,13 @@ ${event.content}`;
99717
99736
  // - Uses this handler (handleToolCallResponse)
99718
99737
  handleToolCallResponse(event) {
99719
99738
  if (typeof this.currentCourse === "number" && event.course !== this.currentCourse) {
99739
+ this.handleProtocolError(
99740
+ `teammate_call_response_evt course mismatch ${JSON.stringify({
99741
+ eventCourse: event.course,
99742
+ currentCourse: this.currentCourse,
99743
+ callId: event.callId
99744
+ })}`
99745
+ );
99720
99746
  return;
99721
99747
  }
99722
99748
  const callId = String(event.callId || "").trim();
@@ -99732,21 +99758,24 @@ ${event.content}`;
99732
99758
  }
99733
99759
  const callingSection = this.callingSectionByCallId.get(callId);
99734
99760
  if (!callingSection) {
99735
- this.pendingTeammateCallResponsesByCallId.set(callId, event);
99761
+ this.handleProtocolError(
99762
+ `teammate_call_response_evt received before teammate_call_finish_evt ${JSON.stringify({
99763
+ callId,
99764
+ course: event.course,
99765
+ calling_genseq: event.calling_genseq,
99766
+ responderId: event.responderId
99767
+ })}`
99768
+ );
99736
99769
  return;
99737
99770
  }
99738
99771
  const display = this.formatTeammateCallResultForSection(callingSection, event);
99739
- if (typeof display !== "string") {
99740
- this.pendingTeammateCallResponsesByCallId.set(callId, event);
99741
- return;
99742
- }
99743
99772
  this.attachResultInline(callingSection, display, event.status);
99744
- this.pendingTeammateCallResponsesByCallId.delete(callId);
99745
99773
  if (event.status === "failed") {
99746
99774
  const host = this.getRootNode()?.host;
99775
+ const t2 = getUiStrings(this.uiLanguage);
99747
99776
  host?.dispatchEvent(
99748
99777
  new CustomEvent("ui-toast", {
99749
- detail: { message: String(display || "Teammate call failed"), kind: "error" },
99778
+ detail: { message: String(display || t2.teammateCallFailedToast), kind: "error" },
99750
99779
  bubbles: true,
99751
99780
  composed: true
99752
99781
  })
@@ -99771,7 +99800,14 @@ ${event.content}`;
99771
99800
  if (!parsed) return rawResult;
99772
99801
  const bubbleLanguage = this.resolveBubbleLanguageForSection(section);
99773
99802
  if (!bubbleLanguage) {
99774
- return void 0;
99803
+ this.handleProtocolError(
99804
+ `teammate_call_response_evt missing bubble language ${JSON.stringify({
99805
+ callId: event.callId,
99806
+ course: event.course,
99807
+ calling_genseq: event.calling_genseq
99808
+ })}`
99809
+ );
99810
+ return rawResult;
99775
99811
  }
99776
99812
  return formatTeammateCallErrorInline({
99777
99813
  language: bubbleLanguage,
@@ -100170,7 +100206,6 @@ ${event.content}`;
100170
100206
  } else {
100171
100207
  bubble.removeAttribute("data-user-language-code");
100172
100208
  }
100173
- this.flushPendingTeammateCallResponsesForBubble(bubble);
100174
100209
  this.scrollToBottom();
100175
100210
  return;
100176
100211
  }
@@ -100194,24 +100229,8 @@ ${event.content}`;
100194
100229
  } else {
100195
100230
  bubble.removeAttribute("data-user-language-code");
100196
100231
  }
100197
- this.flushPendingTeammateCallResponsesForBubble(bubble);
100198
100232
  this.scrollToBottom();
100199
100233
  }
100200
- flushPendingTeammateCallResponsesForBubble(bubble) {
100201
- const sections = bubble.querySelectorAll(".calling-section[data-call-id]");
100202
- if (sections.length < 1) return;
100203
- for (const section of Array.from(sections)) {
100204
- if (!(section instanceof HTMLElement)) continue;
100205
- const callId = String(section.getAttribute("data-call-id") || "").trim();
100206
- if (!callId) continue;
100207
- const pending = this.pendingTeammateCallResponsesByCallId.get(callId);
100208
- if (!pending) continue;
100209
- const display = this.formatTeammateCallResultForSection(section, pending);
100210
- if (typeof display !== "string") continue;
100211
- this.pendingTeammateCallResponsesByCallId.delete(callId);
100212
- this.attachResultInline(section, display, pending.status);
100213
- }
100214
- }
100215
100234
  // Create thinking section (inside generation bubble)
100216
100235
  createThinkingSection() {
100217
100236
  const el = document.createElement("div");
@@ -102376,6 +102395,8 @@ const _DomindsQ4HInput = class _DomindsQ4HInput extends HTMLElement {
102376
102395
  if (!ok) return;
102377
102396
  const note2 = this.textInput ? this.textInput.value : "";
102378
102397
  this.wsManager.sendRaw({ type: "declare_subdialog_dead", dialog, note: note2 });
102398
+ this.recordInputHistoryEntry(note2);
102399
+ this.clear();
102379
102400
  }
102380
102401
  async handlePrimaryAction() {
102381
102402
  try {
@@ -104766,7 +104787,7 @@ class DomindsTeamMembers extends HTMLElement {
104766
104787
  document.body.removeChild(ta);
104767
104788
  this.emitToast(`${t2.teamMembersCopiedPrefix}${mention}`);
104768
104789
  } catch (error2) {
104769
- const msg = error2 instanceof Error ? error2.message : "Unknown error";
104790
+ const msg = error2 instanceof Error ? error2.message : t2.unknownError;
104770
104791
  this.emitToast(`${t2.teamMembersCopyFailedPrefix}${msg}`, "warning");
104771
104792
  }
104772
104793
  }
@@ -107356,7 +107377,6 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
107356
107377
  this.activityView = { kind: "running" };
107357
107378
  this.runControlRefreshLastScheduledAtMsByReason = /* @__PURE__ */ new Map();
107358
107379
  this.subdialogContainers = /* @__PURE__ */ new Map();
107359
- this.subdialogHierarchyRefreshTokens = /* @__PURE__ */ new Map();
107360
107380
  this.authModal = null;
107361
107381
  this.createDialogFlow = new CreateDialogFlowController({
107362
107382
  getLanguage: () => this.uiLanguage,
@@ -107519,7 +107539,8 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
107519
107539
  return { ok: true };
107520
107540
  }
107521
107541
  async handleCreateDialogSuccess(result) {
107522
- this.showSuccess(`Dialog created @${result.agentId} with task: ${result.taskDocPath}`);
107542
+ const t2 = getUiStrings(this.uiLanguage);
107543
+ this.showSuccess(`${t2.dialogCreatedToastPrefix} @${result.agentId} • ${result.taskDocPath}`);
107523
107544
  await this.loadDialogs();
107524
107545
  await this.selectDialog({
107525
107546
  selfId: result.selfId,
@@ -108316,10 +108337,16 @@ ${formatUiLanguageOptionLabel({
108316
108337
  );
108317
108338
  const courseLabel = this.shadowRoot?.querySelector("#course-nav span");
108318
108339
  const stopCount = this.shadowRoot?.querySelector(
108319
- "#toolbar-emergency-stop span"
108340
+ "#toolbar-emergency-stop-count"
108320
108341
  );
108321
108342
  const resumeCount = this.shadowRoot?.querySelector(
108322
- "#toolbar-resume-all span"
108343
+ "#toolbar-resume-all-count"
108344
+ );
108345
+ const stopPill = this.shadowRoot?.querySelector(
108346
+ "#toolbar-emergency-stop-pill"
108347
+ );
108348
+ const resumePill = this.shadowRoot?.querySelector(
108349
+ "#toolbar-resume-all-pill"
108323
108350
  );
108324
108351
  const stopBtn = this.shadowRoot?.querySelector(
108325
108352
  "#toolbar-emergency-stop"
@@ -108333,8 +108360,24 @@ ${formatUiLanguageOptionLabel({
108333
108360
  if (courseLabel) courseLabel.textContent = `C ${this.toolbarCurrentCourse}`;
108334
108361
  if (stopCount) stopCount.textContent = String(this.proceedingDialogsCount);
108335
108362
  if (resumeCount) resumeCount.textContent = String(this.resumableDialogsCount);
108336
- if (stopBtn) stopBtn.disabled = this.proceedingDialogsCount === 0;
108337
- if (resumeBtn) resumeBtn.disabled = this.resumableDialogsCount === 0;
108363
+ const stopDisabled = this.proceedingDialogsCount === 0;
108364
+ const resumeDisabled = this.resumableDialogsCount === 0;
108365
+ if (stopBtn) {
108366
+ stopBtn.disabled = stopDisabled;
108367
+ stopBtn.setAttribute(
108368
+ "aria-label",
108369
+ `${getUiStrings(this.uiLanguage).emergencyStop} (${this.proceedingDialogsCount})`
108370
+ );
108371
+ }
108372
+ if (resumeBtn) {
108373
+ resumeBtn.disabled = resumeDisabled;
108374
+ resumeBtn.setAttribute(
108375
+ "aria-label",
108376
+ `${getUiStrings(this.uiLanguage).resumeAll} (${this.resumableDialogsCount})`
108377
+ );
108378
+ }
108379
+ if (stopPill) stopPill.setAttribute("data-disabled", stopDisabled ? "true" : "false");
108380
+ if (resumePill) resumePill.setAttribute("data-disabled", resumeDisabled ? "true" : "false");
108338
108381
  this.updateContextHealthUi();
108339
108382
  }
108340
108383
  formatTokenCountShort(count) {
@@ -108662,6 +108705,55 @@ ${formatUiLanguageOptionLabel({
108662
108705
  cursor: not-allowed;
108663
108706
  }
108664
108707
 
108708
+ .header-run-pill {
108709
+ display: inline-flex;
108710
+ align-items: center;
108711
+ gap: 8px;
108712
+ padding: 4px 12px;
108713
+ border-radius: 16px;
108714
+ font-size: 12px;
108715
+ font-weight: 500;
108716
+ user-select: none;
108717
+ border: 1px solid var(--dominds-border, #e0e0e0);
108718
+ cursor: default;
108719
+ transition: all 0.2s ease;
108720
+ }
108721
+
108722
+ .header-run-pill.danger {
108723
+ color: var(--dominds-danger, #721c24);
108724
+ }
108725
+
108726
+ .header-run-pill.success {
108727
+ color: var(--dominds-success, #155724);
108728
+ }
108729
+
108730
+ .header-run-pill-icon {
108731
+ display: inline-flex;
108732
+ align-items: center;
108733
+ justify-content: center;
108734
+ padding: 2px;
108735
+ margin: -2px;
108736
+ border: none;
108737
+ background: transparent;
108738
+ color: inherit;
108739
+ cursor: pointer;
108740
+ }
108741
+
108742
+ .header-run-pill-icon:focus-visible {
108743
+ outline: 2px solid var(--dominds-primary, #007acc);
108744
+ outline-offset: 2px;
108745
+ border-radius: 6px;
108746
+ }
108747
+
108748
+ .header-run-pill-icon:disabled {
108749
+ cursor: not-allowed;
108750
+ }
108751
+
108752
+ .header-run-pill-count {
108753
+ color: var(--dominds-fg, #333333);
108754
+ cursor: default;
108755
+ }
108756
+
108665
108757
  .header-pill-button.danger {
108666
108758
  background: var(--dominds-danger-bg, #f8d7da);
108667
108759
  color: var(--dominds-danger, #721c24);
@@ -108682,49 +108774,33 @@ ${formatUiLanguageOptionLabel({
108682
108774
  border-color: var(--dominds-success, #28a745);
108683
108775
  }
108684
108776
 
108685
- #toolbar-emergency-stop:disabled {
108777
+ #toolbar-emergency-stop-pill[data-disabled='true'] {
108686
108778
  background: color-mix(in srgb, #22c55e 14%, var(--dominds-bg, #ffffff));
108687
108779
  border-color: color-mix(in srgb, #22c55e 22%, var(--dominds-border, #e0e0e0));
108780
+ opacity: 0.6;
108688
108781
  }
108689
108782
 
108690
- #toolbar-emergency-stop:not(:disabled) {
108783
+ #toolbar-emergency-stop-pill:not([data-disabled='true']) {
108691
108784
  background: color-mix(in srgb, #22c55e 55%, var(--dominds-bg, #ffffff));
108692
108785
  border-color: color-mix(in srgb, #22c55e 65%, var(--dominds-border, #e0e0e0));
108693
- cursor: default;
108694
- }
108695
-
108696
- #toolbar-emergency-stop span {
108697
- color: var(--dominds-fg, #333333);
108698
108786
  }
108699
108787
 
108700
- #toolbar-emergency-stop:not(:disabled) svg {
108701
- cursor: pointer;
108702
- }
108703
-
108704
- #toolbar-emergency-stop:hover:not(:disabled) {
108788
+ #toolbar-emergency-stop-pill:hover:not([data-disabled='true']) {
108705
108789
  border-color: color-mix(in srgb, #22c55e 80%, var(--dominds-border, #e0e0e0));
108706
108790
  }
108707
108791
 
108708
- #toolbar-resume-all:disabled {
108792
+ #toolbar-resume-all-pill[data-disabled='true'] {
108709
108793
  background: color-mix(in srgb, #ef4444 14%, var(--dominds-bg, #ffffff));
108710
108794
  border-color: color-mix(in srgb, #ef4444 22%, var(--dominds-border, #e0e0e0));
108795
+ opacity: 0.6;
108711
108796
  }
108712
108797
 
108713
- #toolbar-resume-all:not(:disabled) {
108798
+ #toolbar-resume-all-pill:not([data-disabled='true']) {
108714
108799
  background: color-mix(in srgb, #ef4444 55%, var(--dominds-bg, #ffffff));
108715
108800
  border-color: color-mix(in srgb, #ef4444 65%, var(--dominds-border, #e0e0e0));
108716
- cursor: default;
108717
- }
108718
-
108719
- #toolbar-resume-all span {
108720
- color: var(--dominds-fg, #333333);
108721
- }
108722
-
108723
- #toolbar-resume-all:not(:disabled) svg {
108724
- cursor: pointer;
108725
108801
  }
108726
108802
 
108727
- #toolbar-resume-all:hover:not(:disabled) {
108803
+ #toolbar-resume-all-pill:hover:not([data-disabled='true']) {
108728
108804
  border-color: color-mix(in srgb, #ef4444 80%, var(--dominds-border, #e0e0e0));
108729
108805
  }
108730
108806
 
@@ -110553,16 +110629,20 @@ ${formatUiLanguageOptionLabel({
110553
110629
  📁 ${this.backendRtws || t2.backendWorkspaceLoading}
110554
110630
  </div>
110555
110631
  <div class="header-actions">
110556
- <div class="header-run-controls">
110557
- <button class="header-pill-button danger" id="toolbar-emergency-stop" title="${t2.emergencyStop}" aria-label="${t2.emergencyStop}" ${this.proceedingDialogsCount > 0 ? "" : "disabled"}>
110558
- <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg>
110559
- <span>${String(this.proceedingDialogsCount)}</span>
110560
- </button>
110561
- <button class="header-pill-button success" id="toolbar-resume-all" title="${t2.resumeAll}" aria-label="${t2.resumeAll}" ${this.resumableDialogsCount > 0 ? "" : "disabled"}>
110562
- <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4 3v18l17-9z"></path></svg>
110563
- <span>${String(this.resumableDialogsCount)}</span>
110564
- </button>
110565
- </div>
110632
+ <div class="header-run-controls">
110633
+ <div class="header-run-pill danger" id="toolbar-emergency-stop-pill" data-disabled="${this.proceedingDialogsCount > 0 ? "false" : "true"}" title="${t2.emergencyStop}">
110634
+ <button type="button" class="header-run-pill-icon" id="toolbar-emergency-stop" aria-label="${t2.emergencyStop} (${String(this.proceedingDialogsCount)})" ${this.proceedingDialogsCount > 0 ? "" : "disabled"}>
110635
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg>
110636
+ </button>
110637
+ <span class="header-run-pill-count" id="toolbar-emergency-stop-count" aria-hidden="true">${String(this.proceedingDialogsCount)}</span>
110638
+ </div>
110639
+ <div class="header-run-pill success" id="toolbar-resume-all-pill" data-disabled="${this.resumableDialogsCount > 0 ? "false" : "true"}" title="${t2.resumeAll}">
110640
+ <button type="button" class="header-run-pill-icon" id="toolbar-resume-all" aria-label="${t2.resumeAll} (${String(this.resumableDialogsCount)})" ${this.resumableDialogsCount > 0 ? "" : "disabled"}>
110641
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4 3v18l17-9z"></path></svg>
110642
+ </button>
110643
+ <span class="header-run-pill-count" id="toolbar-resume-all-count" aria-hidden="true">${String(this.resumableDialogsCount)}</span>
110644
+ </div>
110645
+ </div>
110566
110646
  <button class="header-pill-button problems" id="toolbar-problems-toggle" title="${t2.problemsButtonTitle}" aria-label="${t2.problemsButtonTitle}" data-severity="${this.getProblemsTopSeverity()}" data-has-problems="${this.problems.length > 0 ? "true" : "false"}">
110567
110647
  <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2 1 21h22L12 2zm0 6a1 1 0 0 1 1 1v6a1 1 0 0 1-2 0V9a1 1 0 0 1 1-1zm0 12a1.25 1.25 0 1 1 0-2.5A1.25 1.25 0 0 1 12 20z"></path></svg>
110568
110648
  <span>${String(this.problems.length)}</span>
@@ -110812,9 +110892,10 @@ ${uiLanguageButtonTooltip}">
110812
110892
  this.setupWebSocketEventHandlers();
110813
110893
  this.shadowRoot.addEventListener("ui-toast", (e2) => {
110814
110894
  const ce2 = e2;
110815
- const msg = ce2.detail?.message || "Notice";
110895
+ const t2 = getUiStrings(this.uiLanguage);
110896
+ const msg = ce2.detail?.message || t2.toastDefaultNotice;
110816
110897
  const kind = ce2.detail?.kind || "error";
110817
- this.showToast(msg, kind);
110898
+ this.showToast(msg, kind, { history: ce2.detail?.history ?? "default" });
110818
110899
  });
110819
110900
  this.shadowRoot.addEventListener("auth-required", () => {
110820
110901
  this.onAuthRejected("api");
@@ -111161,9 +111242,7 @@ ${content}`;
111161
111242
  }
111162
111243
  const emergencyStop = target.closest("#toolbar-emergency-stop");
111163
111244
  if (emergencyStop) {
111164
- const emergencyStopIcon = target.closest("#toolbar-emergency-stop svg");
111165
- if (!emergencyStopIcon) return;
111166
- if (this.proceedingDialogsCount > 0) {
111245
+ if (!emergencyStop.disabled && this.proceedingDialogsCount > 0) {
111167
111246
  const ok = window.confirm(
111168
111247
  `${getUiStrings(this.uiLanguage).emergencyStop} (${this.proceedingDialogsCount})?`
111169
111248
  );
@@ -111175,9 +111254,7 @@ ${content}`;
111175
111254
  }
111176
111255
  const resumeAll = target.closest("#toolbar-resume-all");
111177
111256
  if (resumeAll) {
111178
- const resumeAllIcon = target.closest("#toolbar-resume-all svg");
111179
- if (!resumeAllIcon) return;
111180
- if (this.resumableDialogsCount > 0) {
111257
+ if (!resumeAll.disabled && this.resumableDialogsCount > 0) {
111181
111258
  this.wsManager.sendRaw({ type: "resume_all" });
111182
111259
  }
111183
111260
  return;
@@ -111844,6 +111921,7 @@ ${content}`;
111844
111921
  if (!intent) return;
111845
111922
  this.deepLinkInFlight = true;
111846
111923
  try {
111924
+ const t2 = getUiStrings(this.uiLanguage);
111847
111925
  if (intent.kind === "dialog") {
111848
111926
  let dialogInfo2 = this.buildDialogInfoForIds(intent.rootId, intent.selfId);
111849
111927
  if (!dialogInfo2) {
@@ -111851,7 +111929,7 @@ ${content}`;
111851
111929
  dialogInfo2 = this.buildDialogInfoForIds(intent.rootId, intent.selfId);
111852
111930
  }
111853
111931
  if (!dialogInfo2) {
111854
- this.showToast(`Deep link dialog not found: ${intent.selfId}`, "warning");
111932
+ this.showToast(`${t2.deepLinkDialogNotFoundPrefix} ${intent.selfId}`, "warning");
111855
111933
  this.pendingDeepLink = null;
111856
111934
  return;
111857
111935
  }
@@ -111867,7 +111945,7 @@ ${content}`;
111867
111945
  dialogInfo2 = this.buildDialogInfoForIds(intent.rootId, intent.selfId);
111868
111946
  }
111869
111947
  if (!dialogInfo2) {
111870
- this.showToast(`Deep link dialog not found: ${intent.selfId}`, "warning");
111948
+ this.showToast(`${t2.deepLinkDialogNotFoundPrefix} ${intent.selfId}`, "warning");
111871
111949
  this.pendingDeepLink = null;
111872
111950
  return;
111873
111951
  }
@@ -111896,7 +111974,7 @@ ${content}`;
111896
111974
  dialogInfo2 = this.buildDialogInfoForIds(intent.rootId, intent.selfId);
111897
111975
  }
111898
111976
  if (!dialogInfo2) {
111899
- this.showToast(`Deep link dialog not found: ${intent.selfId}`, "warning");
111977
+ this.showToast(`${t2.deepLinkDialogNotFoundPrefix} ${intent.selfId}`, "warning");
111900
111978
  this.pendingDeepLink = null;
111901
111979
  return;
111902
111980
  }
@@ -111933,7 +112011,7 @@ ${content}`;
111933
112011
  dialogInfo = this.buildDialogInfoForIds(rootId, selfId);
111934
112012
  }
111935
112013
  if (!dialogInfo) {
111936
- this.showToast(`Deep link dialog not found: ${selfId}`, "warning");
112014
+ this.showToast(`${t2.deepLinkDialogNotFoundPrefix} ${selfId}`, "warning");
111937
112015
  this.pendingDeepLink = null;
111938
112016
  return;
111939
112017
  }
@@ -112216,7 +112294,7 @@ ${content}`;
112216
112294
  this.onAuthRejected("api");
112217
112295
  return;
112218
112296
  }
112219
- this.showToast(resp.error || "Failed to delete dialog", "error");
112297
+ this.showToast(resp.error || t2.dialogDeleteFailedToast, "error");
112220
112298
  return;
112221
112299
  }
112222
112300
  this.showToast(t2.dialogDeletedToast, "info");
@@ -112232,6 +112310,7 @@ ${content}`;
112232
112310
  const toOk = toStatus === "running" || toStatus === "completed" || toStatus === "archived";
112233
112311
  if (!fromOk || !toOk) return;
112234
112312
  if (fromStatus === toStatus) return;
112313
+ const t2 = getUiStrings(this.uiLanguage);
112235
112314
  let request;
112236
112315
  if (kind === "root") {
112237
112316
  const rootId = detail.rootId;
@@ -112259,17 +112338,17 @@ ${content}`;
112259
112338
  this.onAuthRejected("api");
112260
112339
  return;
112261
112340
  }
112262
- this.showToast(resp.error || "Failed to move dialogs", "error");
112341
+ this.showToast(resp.error || t2.moveDialogsFailedToast, "error");
112263
112342
  return;
112264
112343
  }
112265
112344
  const payload = resp.data;
112266
112345
  if (!payload || !payload.success) {
112267
- const msg = payload && payload.error ? payload.error : "Failed to move dialogs";
112346
+ const msg = payload && payload.error ? payload.error : t2.moveDialogsFailedToast;
112268
112347
  this.showToast(msg, "error");
112269
112348
  return;
112270
112349
  }
112271
112350
  const movedCount = Array.isArray(payload.movedRootIds) ? payload.movedRootIds.length : 0;
112272
- this.showToast(`Moved ${movedCount} dialog(s).`, "info");
112351
+ this.showToast(`${t2.movedDialogsToastPrefix}${String(movedCount)}`, "info");
112273
112352
  const movedRootIds = Array.isArray(payload.movedRootIds) ? payload.movedRootIds : [];
112274
112353
  if (movedRootIds.length > 0) {
112275
112354
  const moved = new Set(movedRootIds);
@@ -112303,8 +112382,8 @@ ${content}`;
112303
112382
  this.updateInputPanelVisibility();
112304
112383
  this.updateQ4HComponent();
112305
112384
  } catch (error2) {
112306
- const message = error2 instanceof Error ? error2.message : "Unknown error";
112307
- this.showToast(`Failed to move dialogs: ${message}`, "error");
112385
+ const message = error2 instanceof Error ? error2.message : t2.unknownError;
112386
+ this.showToast(`${t2.moveDialogsFailedToast}: ${message}`, "error");
112308
112387
  }
112309
112388
  }
112310
112389
  async handleDialogCreateAction(detail) {
@@ -112696,7 +112775,8 @@ ${content}`;
112696
112775
  this.renderRemindersWidget();
112697
112776
  this.setupRemindersWidgetDrag();
112698
112777
  }
112699
- this.showSuccess("Dialog loaded successfully");
112778
+ const t2 = getUiStrings(this.uiLanguage);
112779
+ this.showSuccess(t2.dialogLoadedToast);
112700
112780
  } catch (error2) {
112701
112781
  const message = error2 instanceof Error ? error2.message : "Unknown error";
112702
112782
  this.showError(`Failed to load dialog: ${message}`, "error");
@@ -112881,10 +112961,18 @@ ${content}`;
112881
112961
  }
112882
112962
  }
112883
112963
  showSuccess(message) {
112884
- this.showToast(message, "info");
112964
+ this.showToast(message, "info", { history: "skip" });
112965
+ }
112966
+ shouldPersistToastHistory(kind, options) {
112967
+ const policy = options?.history ?? "default";
112968
+ if (policy === "persist") return true;
112969
+ if (policy === "skip") return false;
112970
+ return kind === "error" || kind === "warning";
112885
112971
  }
112886
- showToast(message, kind = "error") {
112887
- this.pushToastHistoryEntry({ message, kind });
112972
+ showToast(message, kind = "error", options) {
112973
+ if (this.shouldPersistToastHistory(kind, options)) {
112974
+ this.pushToastHistoryEntry({ message, kind });
112975
+ }
112888
112976
  if (!this.shadowRoot) return;
112889
112977
  const toast = document.createElement("div");
112890
112978
  const bg = kind === "error" ? "var(--dominds-danger-bg, #f8d7da)" : kind === "warning" ? "var(--dominds-warning-bg, #fff3cd)" : "var(--dominds-info-bg, #cce7ff)";
@@ -113208,7 +113296,8 @@ ${content}`;
113208
113296
  async loadToolsRegistry() {
113209
113297
  const res = await this.apiClient.getToolsRegistry();
113210
113298
  if (!res.success || !res.data) {
113211
- const message = res.error || "Failed to load tools registry";
113299
+ const t2 = getUiStrings(this.uiLanguage);
113300
+ const message = res.error || t2.toolsRegistryLoadFailedToast;
113212
113301
  this.showToast(message, "warning");
113213
113302
  return;
113214
113303
  }
@@ -113360,6 +113449,13 @@ ${content}`;
113360
113449
  this.scheduleRunControlRefresh(message.reason);
113361
113450
  return true;
113362
113451
  }
113452
+ case "dlg_touched_evt": {
113453
+ this.bumpDialogLastModified(
113454
+ { rootId: message.dialog.rootId, selfId: message.dialog.selfId },
113455
+ message.timestamp
113456
+ );
113457
+ return true;
113458
+ }
113363
113459
  default: {
113364
113460
  if ("dialog" in message && message.dialog && typeof message.dialog === "object") {
113365
113461
  return false;
@@ -113415,93 +113511,57 @@ ${content}`;
113415
113511
  }
113416
113512
  case "subdialog_created_evt": {
113417
113513
  const subdialogEvent = message;
113418
- const rootId = subdialogEvent.subDialog.rootId || subdialogEvent.parentDialog.rootId;
113419
- const selfId = subdialogEvent.subDialog.selfId;
113420
- if (!rootId) {
113514
+ const node2 = subdialogEvent.subDialogNode;
113515
+ if (!node2) {
113421
113516
  throw new Error(
113422
- `CRITICAL: subdialog_created event missing rootId. SubDialog: ${JSON.stringify(subdialogEvent.subDialog)}, ParentDialog: ${JSON.stringify(subdialogEvent.parentDialog)}`
113517
+ `CRITICAL: subdialog_created event missing subDialogNode. rootId=${subdialogEvent.subDialog.rootId} selfId=${subdialogEvent.subDialog.selfId}`
113423
113518
  );
113424
113519
  }
113425
- const refreshToken = (this.subdialogHierarchyRefreshTokens.get(rootId) || 0) + 1;
113426
- this.subdialogHierarchyRefreshTokens.set(rootId, refreshToken);
113427
- try {
113428
- const resp = await this.apiClient.getDialogHierarchy(rootId);
113429
- if (this.subdialogHierarchyRefreshTokens.get(rootId) !== refreshToken) {
113430
- console.warn(
113431
- `Skipping stale dialog hierarchy response for root ${rootId} (token ${refreshToken})`
113432
- );
113433
- break;
113434
- }
113435
- if (resp.success && resp.data) {
113436
- const h2 = resp.data;
113437
- const root2 = h2.root;
113438
- const subs = Array.isArray(h2.subdialogs) ? h2.subdialogs : [];
113439
- const entries2 = [];
113440
- entries2.push({
113441
- rootId: root2.id,
113442
- agentId: root2.agentId,
113443
- taskDocPath: root2.taskDocPath,
113444
- status: root2.status,
113445
- currentCourse: root2.currentCourse,
113446
- createdAt: root2.createdAt,
113447
- lastModified: root2.lastModified,
113448
- runState: root2.runState ?? this.dialogRunStatesByKey.get(this.dialogKey(root2.id, root2.id))
113449
- });
113450
- const rootRunState = root2.runState ?? this.dialogRunStatesByKey.get(this.dialogKey(root2.id, root2.id));
113451
- if (rootRunState) {
113452
- this.dialogRunStatesByKey.set(this.dialogKey(root2.id, root2.id), rootRunState);
113453
- }
113454
- for (const sd of subs) {
113455
- const sdCachedRunState = this.dialogRunStatesByKey.get(
113456
- this.dialogKey(root2.id, sd.selfId)
113457
- );
113458
- const sdEffectiveRunState = sd.runState ?? sdCachedRunState;
113459
- entries2.push({
113460
- rootId: root2.id,
113461
- // Subdialogs belong to the supdialog's root for proper path resolution
113462
- selfId: sd.selfId,
113463
- // Subdialog's own unique identifier
113464
- agentId: sd.agentId,
113465
- taskDocPath: sd.taskDocPath,
113466
- status: sd.status,
113467
- currentCourse: sd.currentCourse,
113468
- createdAt: sd.createdAt,
113469
- lastModified: sd.lastModified,
113470
- runState: sdEffectiveRunState,
113471
- supdialogId: sd.supdialogId ?? root2.id,
113472
- tellaskSession: sd.tellaskSession,
113473
- assignmentFromSup: sd.assignmentFromSup
113474
- });
113475
- if (sdEffectiveRunState) {
113476
- this.dialogRunStatesByKey.set(
113477
- this.dialogKey(root2.id, sd.selfId),
113478
- sdEffectiveRunState
113479
- );
113480
- }
113481
- }
113482
- this.dialogs = this.dialogs.filter((d2) => d2.rootId !== root2.id);
113483
- this.dialogs.push(...entries2);
113484
- this.updateDialogList();
113485
- this.bumpDialogLastModified(
113486
- { rootId, selfId: rootId },
113487
- root2.lastModified || message.timestamp
113488
- );
113489
- } else {
113490
- throw new Error(
113491
- `CRITICAL: subdialog_created event missing hierarchy data. RootId: ${rootId}, Response success: ${resp.success}, Has data: ${!!resp.data}`
113492
- );
113493
- }
113494
- } catch (error2) {
113495
- if (error2 instanceof Error) {
113496
- throw new Error(
113497
- `CRITICAL: Failed to get dialog hierarchy for rootId: ${rootId} - ${error2.message}`
113498
- );
113499
- } else {
113500
- throw new Error(
113501
- `CRITICAL: Failed to get dialog hierarchy for rootId: ${rootId} - Unknown error: ${error2}`
113502
- );
113520
+ if (node2.selfId !== subdialogEvent.subDialog.selfId) {
113521
+ throw new Error(
113522
+ `CRITICAL: subdialog_created event selfId mismatch. node=${node2.selfId} evt=${subdialogEvent.subDialog.selfId}`
113523
+ );
113524
+ }
113525
+ if (node2.rootId !== subdialogEvent.subDialog.rootId) {
113526
+ throw new Error(
113527
+ `CRITICAL: subdialog_created event rootId mismatch. node=${node2.rootId} evt=${subdialogEvent.subDialog.rootId}`
113528
+ );
113529
+ }
113530
+ const subdialogKey = this.dialogKey(node2.rootId, node2.selfId);
113531
+ const effectiveRunState = node2.runState ?? this.dialogRunStatesByKey.get(subdialogKey);
113532
+ if (effectiveRunState) {
113533
+ this.dialogRunStatesByKey.set(subdialogKey, effectiveRunState);
113534
+ }
113535
+ const incomingSubdialog = {
113536
+ rootId: node2.rootId,
113537
+ selfId: node2.selfId,
113538
+ agentId: node2.agentId,
113539
+ taskDocPath: node2.taskDocPath,
113540
+ status: node2.status,
113541
+ currentCourse: node2.currentCourse,
113542
+ createdAt: node2.createdAt,
113543
+ lastModified: node2.lastModified,
113544
+ runState: effectiveRunState,
113545
+ supdialogId: node2.supdialogId,
113546
+ tellaskSession: node2.tellaskSession,
113547
+ assignmentFromSup: node2.assignmentFromSup
113548
+ };
113549
+ let replaced = false;
113550
+ this.dialogs = this.dialogs.map((d2) => {
113551
+ if (d2.rootId === incomingSubdialog.rootId && d2.selfId === incomingSubdialog.selfId) {
113552
+ replaced = true;
113553
+ return incomingSubdialog;
113503
113554
  }
113555
+ return d2;
113556
+ });
113557
+ if (!replaced) {
113558
+ this.dialogs.push(incomingSubdialog);
113504
113559
  }
113560
+ this.updateDialogList();
113561
+ this.bumpDialogLastModified(
113562
+ { rootId: node2.rootId, selfId: node2.selfId },
113563
+ node2.lastModified || message.timestamp
113564
+ );
113505
113565
  break;
113506
113566
  }
113507
113567
  case "new_q4h_asked": {
@@ -113582,6 +113642,11 @@ ${content}`;
113582
113642
  }
113583
113643
  this.recomputeRunControlCounts();
113584
113644
  this.updateDialogList();
113645
+ const ts2 = message.timestamp;
113646
+ this.bumpDialogLastModified(
113647
+ { rootId: dialog.rootId, selfId: dialog.selfId },
113648
+ typeof ts2 === "string" ? ts2 : void 0
113649
+ );
113585
113650
  const dialogContainer = this.getDialogContainerForEvent(message);
113586
113651
  if (dialogContainer) {
113587
113652
  await dialogContainer.handleDialogEvent(message);
@@ -113593,6 +113658,11 @@ ${content}`;
113593
113658
  if (dialogContainer) {
113594
113659
  await dialogContainer.handleDialogEvent(message);
113595
113660
  }
113661
+ const ts2 = message.timestamp;
113662
+ this.bumpDialogLastModified(
113663
+ { rootId: dialog.rootId, selfId: dialog.selfId },
113664
+ typeof ts2 === "string" ? ts2 : void 0
113665
+ );
113596
113666
  if (message.kind === "resumed") {
113597
113667
  this.scheduleRunControlRefresh("run_state_marker_resumed");
113598
113668
  } else {
@@ -113635,6 +113705,7 @@ ${content}`;
113635
113705
  break;
113636
113706
  }
113637
113707
  } catch (error2) {
113708
+ const t2 = getUiStrings(this.uiLanguage);
113638
113709
  console.error("🔔 [ERROR] WebSocket event processing failed:", {
113639
113710
  messageType: message?.type || "unknown",
113640
113711
  error: error2 instanceof Error ? error2.message : String(error2),
@@ -113642,15 +113713,9 @@ ${content}`;
113642
113713
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
113643
113714
  });
113644
113715
  if (error2 instanceof Error && (error2.message.includes("Failed to fetch") || error2.message.includes("Network error") || error2.message.includes("connection"))) {
113645
- this.showToast(
113646
- "Connection issue detected. Reminder data may be temporarily unavailable.",
113647
- "error"
113648
- );
113716
+ this.showToast(t2.reminderConnectionIssueToast, "error");
113649
113717
  } else {
113650
- this.showToast(
113651
- "Reminder synchronization encountered an issue. Please refresh if problems persist.",
113652
- "error"
113653
- );
113718
+ this.showToast(t2.reminderSyncIssueToast, "error");
113654
113719
  }
113655
113720
  }
113656
113721
  }
@@ -113823,10 +113888,14 @@ ${t2.commandLabel}: ${commandStr}`;
113823
113888
  const q2 = event.question;
113824
113889
  const existingIndex = this.q4hQuestions.findIndex((eq2) => eq2.id === q2.id);
113825
113890
  if (existingIndex >= 0) {
113826
- this.q4hQuestions[existingIndex] = q2;
113827
- } else {
113828
- this.q4hQuestions.push(q2);
113891
+ const existing = this.q4hQuestions[existingIndex];
113892
+ const existingMeta = existing;
113893
+ const incomingMeta = q2;
113894
+ throw new Error(
113895
+ `Q4H duplicate delivery violation: questionId=${q2.id} existingDialog=${existingMeta.selfId ?? ""} incomingDialog=${incomingMeta.selfId ?? ""} existingCallId=${existingMeta.callId ?? ""} incomingCallId=${incomingMeta.callId ?? ""}`
113896
+ );
113829
113897
  }
113898
+ this.q4hQuestions.push(q2);
113830
113899
  this.updateQ4HComponent();
113831
113900
  this.applyPendingQ4HSelectionFromDeepLink();
113832
113901
  void this.applyPendingDeepLink();
@@ -113848,14 +113917,26 @@ ${t2.commandLabel}: ${commandStr}`;
113848
113917
  handleQ4HStateResponse(event) {
113849
113918
  const incomingById = /* @__PURE__ */ new Map();
113850
113919
  for (const q2 of event.questions) {
113851
- if (!q2 || typeof q2.id !== "string" || q2.id.trim() === "") continue;
113920
+ if (!q2 || typeof q2.id !== "string" || q2.id.trim() === "") {
113921
+ throw new Error("Q4H state snapshot violation: invalid question id");
113922
+ }
113923
+ if (incomingById.has(q2.id)) {
113924
+ throw new Error(
113925
+ `Q4H state snapshot violation: duplicate question id in snapshot (${q2.id})`
113926
+ );
113927
+ }
113852
113928
  incomingById.set(q2.id, q2);
113853
113929
  }
113854
113930
  const next2 = [];
113855
113931
  const seenIds = /* @__PURE__ */ new Set();
113856
113932
  for (const existing of this.q4hQuestions) {
113857
113933
  const id28 = typeof existing.id === "string" ? existing.id : "";
113858
- if (!id28 || seenIds.has(id28)) continue;
113934
+ if (!id28) {
113935
+ throw new Error("Q4H client cache violation: existing question has invalid id");
113936
+ }
113937
+ if (seenIds.has(id28)) {
113938
+ throw new Error(`Q4H client cache violation: duplicate cached question id (${id28})`);
113939
+ }
113859
113940
  seenIds.add(id28);
113860
113941
  const existingWithDialog = existing;
113861
113942
  const selfId = typeof existingWithDialog.selfId === "string" ? existingWithDialog.selfId : null;
@@ -113879,7 +113960,9 @@ ${t2.commandLabel}: ${commandStr}`;
113879
113960
  next2.push(existing);
113880
113961
  }
113881
113962
  for (const [id28, q2] of incomingById.entries()) {
113882
- if (seenIds.has(id28)) continue;
113963
+ if (seenIds.has(id28)) {
113964
+ throw new Error(`Q4H state merge violation: duplicate id during merge (${id28})`);
113965
+ }
113883
113966
  seenIds.add(id28);
113884
113967
  next2.push(q2);
113885
113968
  }
@@ -115854,4 +115937,4 @@ export {
115854
115937
  clear$2 as y,
115855
115938
  defaultConfig2 as z
115856
115939
  };
115857
- //# sourceMappingURL=index-CQr8MdPI.js.map
115940
+ //# sourceMappingURL=index-CIEJ2QXv.js.map