dominds 0.6.2 → 0.6.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 (149) hide show
  1. package/dist/access-control.js +2 -2
  2. package/dist/agent-priming.js +826 -92
  3. package/dist/cli/read.js +406 -12
  4. package/dist/dialog.js +4 -0
  5. package/dist/docs/design.md +1 -0
  6. package/dist/docs/design.zh.md +1 -0
  7. package/dist/docs/dialog-system.md +12 -7
  8. package/dist/docs/dialog-system.zh.md +7 -3
  9. package/dist/docs/dominds-agent-priming.md +10 -1
  10. package/dist/docs/dominds-agent-priming.zh.md +9 -1
  11. package/dist/docs/dominds-terminology.md +8 -8
  12. package/dist/docs/fbr-implementation.md +77 -0
  13. package/dist/docs/fbr-implementation.zh.md +77 -0
  14. package/dist/docs/fbr.md +142 -141
  15. package/dist/docs/fbr.zh.md +129 -123
  16. package/dist/docs/keep-going.zh.md +162 -0
  17. package/dist/docs/showing-by-doing.md +208 -0
  18. package/dist/docs/showing-by-doing.zh.md +177 -0
  19. package/dist/docs/tellask-collab.md +250 -0
  20. package/dist/docs/tellask-collab.zh.md +254 -0
  21. package/dist/docs/txt-editing-tools.md +2 -2
  22. package/dist/docs/txt-editing-tools.zh.md +2 -2
  23. package/dist/llm/defaults.yaml +82 -4
  24. package/dist/llm/driver.js +280 -104
  25. package/dist/llm/gen/codex.js +49 -2
  26. package/dist/log.js +385 -30
  27. package/dist/mcp/supervisor.js +113 -40
  28. package/dist/minds/builtin/pangu/persona.zh.md +2 -2
  29. package/dist/minds/load.js +49 -284
  30. package/dist/minds/minds-i18n.js +2 -2
  31. package/dist/minds/promptdocs.js +263 -0
  32. package/dist/minds/system-prompt-parts.js +231 -0
  33. package/dist/minds/system-prompt.js +190 -223
  34. package/dist/persistence.js +66 -1
  35. package/dist/server/websocket-handler.js +14 -0
  36. package/dist/shared/diligence.js +40 -6
  37. package/dist/shared/utils/inter-dialog-format.js +3 -5
  38. package/dist/showing-by-doing.js +34 -31
  39. package/dist/snippets/README.en.md +3 -0
  40. package/dist/static/assets/{_baseUniq-C9vbtHF9.js → _baseUniq-C7IpU2Uk.js} +2 -2
  41. package/dist/static/assets/{_baseUniq-C9vbtHF9.js.map → _baseUniq-C7IpU2Uk.js.map} +1 -1
  42. package/dist/static/assets/{arc-hulXG01i.js → arc-1bhQqjON.js} +2 -2
  43. package/dist/static/assets/{arc-hulXG01i.js.map → arc-1bhQqjON.js.map} +1 -1
  44. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DdLIAMT5.js → architectureDiagram-VXUJARFQ-CkEi1QpB.js} +6 -6
  45. package/dist/static/assets/{architectureDiagram-VXUJARFQ-DdLIAMT5.js.map → architectureDiagram-VXUJARFQ-CkEi1QpB.js.map} +1 -1
  46. package/dist/static/assets/{blockDiagram-VD42YOAC-DACsx66C.js → blockDiagram-VD42YOAC-DaBQ5-pY.js} +7 -7
  47. package/dist/static/assets/{blockDiagram-VD42YOAC-DACsx66C.js.map → blockDiagram-VD42YOAC-DaBQ5-pY.js.map} +1 -1
  48. package/dist/static/assets/{c4Diagram-YG6GDRKO-Cd5xZlLy.js → c4Diagram-YG6GDRKO-ChUgpgkP.js} +3 -3
  49. package/dist/static/assets/{c4Diagram-YG6GDRKO-Cd5xZlLy.js.map → c4Diagram-YG6GDRKO-ChUgpgkP.js.map} +1 -1
  50. package/dist/static/assets/{channel-NQehis0Z.js → channel-CxvmwllM.js} +2 -2
  51. package/dist/static/assets/{channel-NQehis0Z.js.map → channel-CxvmwllM.js.map} +1 -1
  52. package/dist/static/assets/{chunk-4BX2VUAB-DZDPl76b.js → chunk-4BX2VUAB-CKsrU2yk.js} +2 -2
  53. package/dist/static/assets/{chunk-4BX2VUAB-DZDPl76b.js.map → chunk-4BX2VUAB-CKsrU2yk.js.map} +1 -1
  54. package/dist/static/assets/{chunk-55IACEB6-CFSRDUbl.js → chunk-55IACEB6-BAau9SFt.js} +2 -2
  55. package/dist/static/assets/{chunk-55IACEB6-CFSRDUbl.js.map → chunk-55IACEB6-BAau9SFt.js.map} +1 -1
  56. package/dist/static/assets/{chunk-B4BG7PRW-BqQQ9M_z.js → chunk-B4BG7PRW--IiJ7W1m.js} +5 -5
  57. package/dist/static/assets/{chunk-B4BG7PRW-BqQQ9M_z.js.map → chunk-B4BG7PRW--IiJ7W1m.js.map} +1 -1
  58. package/dist/static/assets/{chunk-DI55MBZ5-FiFzz1Gh.js → chunk-DI55MBZ5-B83KrPQj.js} +4 -4
  59. package/dist/static/assets/{chunk-DI55MBZ5-FiFzz1Gh.js.map → chunk-DI55MBZ5-B83KrPQj.js.map} +1 -1
  60. package/dist/static/assets/{chunk-FMBD7UC4-DqqtCyWK.js → chunk-FMBD7UC4-BlDXzeza.js} +2 -2
  61. package/dist/static/assets/{chunk-FMBD7UC4-DqqtCyWK.js.map → chunk-FMBD7UC4-BlDXzeza.js.map} +1 -1
  62. package/dist/static/assets/{chunk-QN33PNHL-F0laQQ-J.js → chunk-QN33PNHL-B596W_v7.js} +2 -2
  63. package/dist/static/assets/{chunk-QN33PNHL-F0laQQ-J.js.map → chunk-QN33PNHL-B596W_v7.js.map} +1 -1
  64. package/dist/static/assets/{chunk-QZHKN3VN-CWhEZPaV.js → chunk-QZHKN3VN-UBBCxgBb.js} +2 -2
  65. package/dist/static/assets/{chunk-QZHKN3VN-CWhEZPaV.js.map → chunk-QZHKN3VN-UBBCxgBb.js.map} +1 -1
  66. package/dist/static/assets/{chunk-TZMSLE5B-Dx9cnwUy.js → chunk-TZMSLE5B-D-wCX2wJ.js} +2 -2
  67. package/dist/static/assets/{chunk-TZMSLE5B-Dx9cnwUy.js.map → chunk-TZMSLE5B-D-wCX2wJ.js.map} +1 -1
  68. package/dist/static/assets/{classDiagram-2ON5EDUG-Dp-dyEGy.js → classDiagram-2ON5EDUG-DvtmzPcu.js} +6 -6
  69. package/dist/static/assets/{classDiagram-2ON5EDUG-Dp-dyEGy.js.map → classDiagram-2ON5EDUG-DvtmzPcu.js.map} +1 -1
  70. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-Dp-dyEGy.js → classDiagram-v2-WZHVMYZB-DvtmzPcu.js} +6 -6
  71. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-Dp-dyEGy.js.map → classDiagram-v2-WZHVMYZB-DvtmzPcu.js.map} +1 -1
  72. package/dist/static/assets/{clone-C6mKvxs5.js → clone-DgJ0ZR-k.js} +2 -2
  73. package/dist/static/assets/{clone-C6mKvxs5.js.map → clone-DgJ0ZR-k.js.map} +1 -1
  74. package/dist/static/assets/{cose-bilkent-S5V4N54A-Dbwh3GoX.js → cose-bilkent-S5V4N54A-DXMyFQvy.js} +2 -2
  75. package/dist/static/assets/{cose-bilkent-S5V4N54A-Dbwh3GoX.js.map → cose-bilkent-S5V4N54A-DXMyFQvy.js.map} +1 -1
  76. package/dist/static/assets/{dagre-6UL2VRFP-BD_6e0Uk.js → dagre-6UL2VRFP-BdaUG-j_.js} +7 -7
  77. package/dist/static/assets/{dagre-6UL2VRFP-BD_6e0Uk.js.map → dagre-6UL2VRFP-BdaUG-j_.js.map} +1 -1
  78. package/dist/static/assets/{diagram-PSM6KHXK-BWt7Q59-.js → diagram-PSM6KHXK-NLiqKBzn.js} +7 -7
  79. package/dist/static/assets/{diagram-PSM6KHXK-BWt7Q59-.js.map → diagram-PSM6KHXK-NLiqKBzn.js.map} +1 -1
  80. package/dist/static/assets/{diagram-QEK2KX5R-D0BvBR_a.js → diagram-QEK2KX5R-D-0fyvY_.js} +6 -6
  81. package/dist/static/assets/{diagram-QEK2KX5R-D0BvBR_a.js.map → diagram-QEK2KX5R-D-0fyvY_.js.map} +1 -1
  82. package/dist/static/assets/{diagram-S2PKOQOG-D8uRdKXp.js → diagram-S2PKOQOG-BQ_FU59m.js} +6 -6
  83. package/dist/static/assets/{diagram-S2PKOQOG-D8uRdKXp.js.map → diagram-S2PKOQOG-BQ_FU59m.js.map} +1 -1
  84. package/dist/static/assets/{erDiagram-Q2GNP2WA-CQoifjFq.js → erDiagram-Q2GNP2WA-DyftKeuC.js} +5 -5
  85. package/dist/static/assets/{erDiagram-Q2GNP2WA-CQoifjFq.js.map → erDiagram-Q2GNP2WA-DyftKeuC.js.map} +1 -1
  86. package/dist/static/assets/{flowDiagram-NV44I4VS-CGhdeaG8.js → flowDiagram-NV44I4VS-9SGefONA.js} +6 -6
  87. package/dist/static/assets/{flowDiagram-NV44I4VS-CGhdeaG8.js.map → flowDiagram-NV44I4VS-9SGefONA.js.map} +1 -1
  88. package/dist/static/assets/{ganttDiagram-JELNMOA3-D8W0wb9H.js → ganttDiagram-JELNMOA3-k_WLhf-r.js} +3 -3
  89. package/dist/static/assets/{ganttDiagram-JELNMOA3-D8W0wb9H.js.map → ganttDiagram-JELNMOA3-k_WLhf-r.js.map} +1 -1
  90. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-ChHni_jP.js → gitGraphDiagram-NY62KEGX-3eoLlCOY.js} +7 -7
  91. package/dist/static/assets/{gitGraphDiagram-NY62KEGX-ChHni_jP.js.map → gitGraphDiagram-NY62KEGX-3eoLlCOY.js.map} +1 -1
  92. package/dist/static/assets/{graph-BWoi_FgC.js → graph-vUevIs4s.js} +3 -3
  93. package/dist/static/assets/{graph-BWoi_FgC.js.map → graph-vUevIs4s.js.map} +1 -1
  94. package/dist/static/assets/{index-th_praGg.js → index-BNBG2CE1.js} +399 -68
  95. package/dist/static/assets/index-BNBG2CE1.js.map +1 -0
  96. package/dist/static/assets/{infoDiagram-WHAUD3N6-B_XKKZTV.js → infoDiagram-WHAUD3N6-CwEhVxkU.js} +5 -5
  97. package/dist/static/assets/{infoDiagram-WHAUD3N6-B_XKKZTV.js.map → infoDiagram-WHAUD3N6-CwEhVxkU.js.map} +1 -1
  98. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-ChGuQ6T9.js → journeyDiagram-XKPGCS4Q-Dtdq4G4Q.js} +5 -5
  99. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-ChGuQ6T9.js.map → journeyDiagram-XKPGCS4Q-Dtdq4G4Q.js.map} +1 -1
  100. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BjWe623u.js → kanban-definition-3W4ZIXB7-Bli-AycJ.js} +3 -3
  101. package/dist/static/assets/{kanban-definition-3W4ZIXB7-BjWe623u.js.map → kanban-definition-3W4ZIXB7-Bli-AycJ.js.map} +1 -1
  102. package/dist/static/assets/{layout-BPyT310w.js → layout-CGlA8c09.js} +5 -5
  103. package/dist/static/assets/{layout-BPyT310w.js.map → layout-CGlA8c09.js.map} +1 -1
  104. package/dist/static/assets/{linear-xUsVjXWq.js → linear-Da2jDWL3.js} +2 -2
  105. package/dist/static/assets/{linear-xUsVjXWq.js.map → linear-Da2jDWL3.js.map} +1 -1
  106. package/dist/static/assets/{min-xFt7zeOd.js → min-Co741hTV.js} +3 -3
  107. package/dist/static/assets/{min-xFt7zeOd.js.map → min-Co741hTV.js.map} +1 -1
  108. package/dist/static/assets/{mindmap-definition-VGOIOE7T-DT_dvf2c.js → mindmap-definition-VGOIOE7T-DvkIjoq8.js} +4 -4
  109. package/dist/static/assets/{mindmap-definition-VGOIOE7T-DT_dvf2c.js.map → mindmap-definition-VGOIOE7T-DvkIjoq8.js.map} +1 -1
  110. package/dist/static/assets/{pieDiagram-ADFJNKIX-B1DQ-OaG.js → pieDiagram-ADFJNKIX-BGuGhTu8.js} +7 -7
  111. package/dist/static/assets/{pieDiagram-ADFJNKIX-B1DQ-OaG.js.map → pieDiagram-ADFJNKIX-BGuGhTu8.js.map} +1 -1
  112. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-IHqyr3iT.js → quadrantDiagram-AYHSOK5B-DAZcrJMg.js} +3 -3
  113. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-IHqyr3iT.js.map → quadrantDiagram-AYHSOK5B-DAZcrJMg.js.map} +1 -1
  114. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-CKBpht7B.js → requirementDiagram-UZGBJVZJ-CXN0DxZs.js} +4 -4
  115. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-CKBpht7B.js.map → requirementDiagram-UZGBJVZJ-CXN0DxZs.js.map} +1 -1
  116. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-D2uGjv3i.js → sankeyDiagram-TZEHDZUN-B7-yAePZ.js} +2 -2
  117. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-D2uGjv3i.js.map → sankeyDiagram-TZEHDZUN-B7-yAePZ.js.map} +1 -1
  118. package/dist/static/assets/{sequenceDiagram-WL72ISMW-wLFRhAKd.js → sequenceDiagram-WL72ISMW-DfBNY6h_.js} +4 -4
  119. package/dist/static/assets/{sequenceDiagram-WL72ISMW-wLFRhAKd.js.map → sequenceDiagram-WL72ISMW-DfBNY6h_.js.map} +1 -1
  120. package/dist/static/assets/{stateDiagram-FKZM4ZOC-BFGQTbx5.js → stateDiagram-FKZM4ZOC-BLo1xRVY.js} +9 -9
  121. package/dist/static/assets/{stateDiagram-FKZM4ZOC-BFGQTbx5.js.map → stateDiagram-FKZM4ZOC-BLo1xRVY.js.map} +1 -1
  122. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-DF7AjJuk.js → stateDiagram-v2-4FDKWEC3-Dq7MAD0I.js} +5 -5
  123. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-DF7AjJuk.js.map → stateDiagram-v2-4FDKWEC3-Dq7MAD0I.js.map} +1 -1
  124. package/dist/static/assets/{timeline-definition-IT6M3QCI-ChHFOb0o.js → timeline-definition-IT6M3QCI-ySWyBF3b.js} +3 -3
  125. package/dist/static/assets/{timeline-definition-IT6M3QCI-ChHFOb0o.js.map → timeline-definition-IT6M3QCI-ySWyBF3b.js.map} +1 -1
  126. package/dist/static/assets/{treemap-KMMF4GRG-BxaNvQU4.js → treemap-KMMF4GRG-DOp4sqOh.js} +4 -4
  127. package/dist/static/assets/{treemap-KMMF4GRG-BxaNvQU4.js.map → treemap-KMMF4GRG-DOp4sqOh.js.map} +1 -1
  128. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CrNKeY_-.js → xychartDiagram-PRI3JC2R-vkmh67qb.js} +3 -3
  129. package/dist/static/assets/{xychartDiagram-PRI3JC2R-CrNKeY_-.js.map → xychartDiagram-PRI3JC2R-vkmh67qb.js.map} +1 -1
  130. package/dist/static/index.html +1 -1
  131. package/dist/team.js +29 -6
  132. package/dist/tool.js +56 -0
  133. package/dist/tools/builtins.js +4 -2
  134. package/dist/tools/context-health.js +7 -7
  135. package/dist/tools/os.js +267 -30
  136. package/dist/tools/pending-tellask-reminder.js +185 -0
  137. package/dist/tools/plan.js +1 -0
  138. package/dist/tools/ripgrep.js +145 -4
  139. package/dist/tools/shell-tools.js +21 -0
  140. package/dist/tools/team-mgmt.js +4 -4
  141. package/dist/tools/toolset-manual.js +74 -0
  142. package/dist/utils/task-doc.js +16 -16
  143. package/package.json +1 -1
  144. package/dist/minds/builtin/cmdr/persona.md +0 -3
  145. package/dist/minds/builtin/dijiang/knowledge.md +0 -287
  146. package/dist/minds/builtin/dijiang/persona.md +0 -7
  147. package/dist/static/assets/index-th_praGg.js.map +0 -1
  148. package/dist/static/testing/dom-observation-utils.js +0 -425
  149. package/dist/static/testing/e2e-test-helper.js +0 -3119
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-BD_6e0Uk.js","assets/graph-BWoi_FgC.js","assets/_baseUniq-C9vbtHF9.js","assets/layout-BPyT310w.js","assets/min-xFt7zeOd.js","assets/clone-C6mKvxs5.js","assets/cose-bilkent-S5V4N54A-Dbwh3GoX.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-Cd5xZlLy.js","assets/chunk-TZMSLE5B-Dx9cnwUy.js","assets/flowDiagram-NV44I4VS-CGhdeaG8.js","assets/chunk-FMBD7UC4-DqqtCyWK.js","assets/chunk-55IACEB6-CFSRDUbl.js","assets/chunk-QN33PNHL-F0laQQ-J.js","assets/channel-NQehis0Z.js","assets/erDiagram-Q2GNP2WA-CQoifjFq.js","assets/gitGraphDiagram-NY62KEGX-ChHni_jP.js","assets/chunk-4BX2VUAB-DZDPl76b.js","assets/chunk-QZHKN3VN-CWhEZPaV.js","assets/treemap-KMMF4GRG-BxaNvQU4.js","assets/ganttDiagram-JELNMOA3-D8W0wb9H.js","assets/linear-xUsVjXWq.js","assets/init-ZxktEp_H.js","assets/defaultLocale-DVr69WTU.js","assets/infoDiagram-WHAUD3N6-B_XKKZTV.js","assets/pieDiagram-ADFJNKIX-B1DQ-OaG.js","assets/arc-hulXG01i.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-IHqyr3iT.js","assets/xychartDiagram-PRI3JC2R-CrNKeY_-.js","assets/requirementDiagram-UZGBJVZJ-CKBpht7B.js","assets/sequenceDiagram-WL72ISMW-wLFRhAKd.js","assets/classDiagram-2ON5EDUG-Dp-dyEGy.js","assets/chunk-B4BG7PRW-BqQQ9M_z.js","assets/classDiagram-v2-WZHVMYZB-Dp-dyEGy.js","assets/stateDiagram-FKZM4ZOC-BFGQTbx5.js","assets/chunk-DI55MBZ5-FiFzz1Gh.js","assets/stateDiagram-v2-4FDKWEC3-DF7AjJuk.js","assets/journeyDiagram-XKPGCS4Q-ChGuQ6T9.js","assets/timeline-definition-IT6M3QCI-ChHFOb0o.js","assets/mindmap-definition-VGOIOE7T-DT_dvf2c.js","assets/kanban-definition-3W4ZIXB7-BjWe623u.js","assets/sankeyDiagram-TZEHDZUN-D2uGjv3i.js","assets/diagram-S2PKOQOG-D8uRdKXp.js","assets/diagram-QEK2KX5R-D0BvBR_a.js","assets/blockDiagram-VD42YOAC-DACsx66C.js","assets/architectureDiagram-VXUJARFQ-DdLIAMT5.js","assets/diagram-PSM6KHXK-BWt7Q59-.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-BdaUG-j_.js","assets/graph-vUevIs4s.js","assets/_baseUniq-C7IpU2Uk.js","assets/layout-CGlA8c09.js","assets/min-Co741hTV.js","assets/clone-DgJ0ZR-k.js","assets/cose-bilkent-S5V4N54A-DXMyFQvy.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-ChUgpgkP.js","assets/chunk-TZMSLE5B-D-wCX2wJ.js","assets/flowDiagram-NV44I4VS-9SGefONA.js","assets/chunk-FMBD7UC4-BlDXzeza.js","assets/chunk-55IACEB6-BAau9SFt.js","assets/chunk-QN33PNHL-B596W_v7.js","assets/channel-CxvmwllM.js","assets/erDiagram-Q2GNP2WA-DyftKeuC.js","assets/gitGraphDiagram-NY62KEGX-3eoLlCOY.js","assets/chunk-4BX2VUAB-CKsrU2yk.js","assets/chunk-QZHKN3VN-UBBCxgBb.js","assets/treemap-KMMF4GRG-DOp4sqOh.js","assets/ganttDiagram-JELNMOA3-k_WLhf-r.js","assets/linear-Da2jDWL3.js","assets/init-ZxktEp_H.js","assets/defaultLocale-DVr69WTU.js","assets/infoDiagram-WHAUD3N6-CwEhVxkU.js","assets/pieDiagram-ADFJNKIX-BGuGhTu8.js","assets/arc-1bhQqjON.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-DAZcrJMg.js","assets/xychartDiagram-PRI3JC2R-vkmh67qb.js","assets/requirementDiagram-UZGBJVZJ-CXN0DxZs.js","assets/sequenceDiagram-WL72ISMW-DfBNY6h_.js","assets/classDiagram-2ON5EDUG-DvtmzPcu.js","assets/chunk-B4BG7PRW--IiJ7W1m.js","assets/classDiagram-v2-WZHVMYZB-DvtmzPcu.js","assets/stateDiagram-FKZM4ZOC-BLo1xRVY.js","assets/chunk-DI55MBZ5-B83KrPQj.js","assets/stateDiagram-v2-4FDKWEC3-Dq7MAD0I.js","assets/journeyDiagram-XKPGCS4Q-Dtdq4G4Q.js","assets/timeline-definition-IT6M3QCI-ySWyBF3b.js","assets/mindmap-definition-VGOIOE7T-DvkIjoq8.js","assets/kanban-definition-3W4ZIXB7-Bli-AycJ.js","assets/sankeyDiagram-TZEHDZUN-B7-yAePZ.js","assets/diagram-S2PKOQOG-BQ_FU59m.js","assets/diagram-QEK2KX5R-D-0fyvY_.js","assets/blockDiagram-VD42YOAC-DaBQ5-pY.js","assets/architectureDiagram-VXUJARFQ-CkEi1QpB.js","assets/diagram-PSM6KHXK-NLiqKBzn.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);
@@ -298,6 +298,11 @@ function getUiStrings(language) {
298
298
  setupReqUnknownModel: "未知 model:",
299
299
  setupReqMissingProviderEnv: "缺少环境变量:",
300
300
  setupReqOk: "提供商/模型与环境变量已就绪。",
301
+ webSearchTitle: "联网搜索",
302
+ webSearchProgressPrefix: "进展:",
303
+ webSearchStatusPrefix: "状态:",
304
+ webSearchPhaseStarted: "开始",
305
+ webSearchPhaseDone: "完成",
301
306
  setupWorkspaceLlmTitle: "运行时工作区自定义 LLM 提供商",
302
307
  setupWorkspaceLlmHelp: "用于为当前运行时工作区新增/覆盖 providers(例如接入小米大模型平台)。写入后点刷新以重新计算 Providers 列表。",
303
308
  setupWriteWorkspaceLlmYaml: "写入 llm.yaml",
@@ -554,6 +559,11 @@ function getUiStrings(language) {
554
559
  setupReqUnknownModel: "Unknown model: ",
555
560
  setupReqMissingProviderEnv: "Missing env var: ",
556
561
  setupReqOk: "Team provider/model and provider env var look configured.",
562
+ webSearchTitle: "Web Search",
563
+ webSearchProgressPrefix: "Progress: ",
564
+ webSearchStatusPrefix: "Status: ",
565
+ webSearchPhaseStarted: "started",
566
+ webSearchPhaseDone: "done",
557
567
  setupWorkspaceLlmTitle: "rtws custom LLM providers",
558
568
  setupWorkspaceLlmHelp: "Add/override providers for this rtws (runtime workspace) (e.g. Xiaomi MiMo). After writing, click Refresh to recompute the Providers list.",
559
569
  setupWriteWorkspaceLlmYaml: "Write llm.yaml",
@@ -1603,18 +1613,52 @@ function getWebSocketManager(config2) {
1603
1613
  }
1604
1614
  const DILIGENCE_FALLBACK_TEXT = {
1605
1615
  zh: [
1606
- "除非确实需要人类用户介入,请继续你的工作。",
1616
+ "你扪心自问(做一次 FBR),差遣牒已经包含足够明确的目标定义了吗?",
1607
1617
  "",
1608
- "作为智能体团队成员,你该诉请(`!?@<teammate-callsign>`)队友完成的事儿千万别自己干,你自己的事儿能自己动手推进的就绝不要麻烦人类。",
1618
+ "如果没有,`!?@human` 诉请人类给出足够清晰的目标。",
1609
1619
  "",
1610
- "不该或者不能自主继续工作时,你应该使用 `!?@human` 诉请人类确认相关问题或者指出工作方向。"
1620
+ "如果目标已经清晰定义,那么你已经完成了所有目标吗?",
1621
+ "",
1622
+ "如果已经完成,`!?@human` 诉请人类验收。",
1623
+ "",
1624
+ "如果尚未完成,优先直接确定并执行下一步最优行动项(调用工具或诉请队友)。仅当“下一步不清晰/难以决策”时,才发起一次 `!?@self` 扪心自问(FBR);收齐该次回贴后,立即把结论落地为可执行动作并开始执行,不要只汇报决定。",
1625
+ "",
1626
+ "当你确信自己不该或者不能自主继续工作时,立即 `!?@human` 诉请人类确认相关问题或者指出工作方向。",
1627
+ "",
1628
+ "---",
1629
+ "",
1630
+ "**注意**:",
1631
+ "",
1632
+ "扪心自问时,自诉请正文需要包含对当前状况的完整事实性总结(但不要包含差遣牒已有内容);`!?@self` 发起后不要立即下最终行动决策,先等回贴再综合。综合完成后必须立刻执行已确定行动(工具调用/诉请队友),避免停留在“仅汇报决定”的状态。",
1633
+ "",
1634
+ "队友如果回复 “将要/可以” 做 XXX 的,你要审视祂所说是否符合整体/分项任务目标,是否值得继续:",
1635
+ "",
1636
+ "- 如果祂建议的事情可做可不做,那么就可以忽略,不以琐碎小事安排工作。",
1637
+ "- 如果值得继续,你可加以纠正或鼓励,并立即诉请其继续,不要留祂停在那里等待指令,这是不可接受的。"
1611
1638
  ].join("\n"),
1612
1639
  en: [
1613
- "Unless you truly need the human user to intervene, keep working.",
1640
+ "Do a self-check (run one FBR): does the Taskdoc already contain a sufficiently clear goal definition?",
1641
+ "",
1642
+ "If not, use `!?@human` to ask for a sufficiently clear goal.",
1614
1643
  "",
1615
- "As an agent team member: if it’s something you should ask a teammate (`!?@<teammate-callsign>`) to do, do not do it yourself; and for things you can advance on your own, do not bother the human.",
1644
+ "If the goal is already clearly defined, ask: have you completed all goals?",
1616
1645
  "",
1617
- "When you should not or cannot continue autonomously, use `!?@human` to ask the human to confirm the relevant questions or provide direction."
1646
+ "If yes, use `!?@human` to request acceptance.",
1647
+ "",
1648
+ "If not complete, first determine and execute the best next action (tool call or teammate tellask). Use `!?@self` FBR only when the next move is unclear or hard to decide; after feedback from that FBR run is collected, immediately turn the conclusion into executable action and start execution. Do not stop at reporting a decision.",
1649
+ "",
1650
+ "When you are convinced you should not or cannot continue autonomously, immediately use `!?@human` to confirm the relevant issue or provide direction.",
1651
+ "",
1652
+ "---",
1653
+ "",
1654
+ "**Notes**:",
1655
+ "",
1656
+ "When running FBR, the self-tellask body must include a complete factual summary of the current situation (but do not repeat information already present in the Taskdoc). After `!?@self`, do not finalize the next action immediately; wait for feedback first, then synthesize. Once synthesized, immediately execute the chosen action (tool call / teammate tellask), and avoid staying in a “decision report only” state.",
1657
+ "",
1658
+ "If a teammate replies that they “will/can do X”, examine whether it aligns with the overall/sub-task goals and is worth continuing:",
1659
+ "",
1660
+ "- If it is optional and low impact, ignore it instead of assigning trivial work.",
1661
+ "- If it is worth continuing, correct or encourage as needed and immediately tellask them to continue; leaving them idle and waiting for instructions is unacceptable."
1618
1662
  ].join("\n")
1619
1663
  };
1620
1664
  function escapeHtml$2(text2) {
@@ -96408,12 +96452,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
96408
96452
  registerLayoutLoaders([
96409
96453
  {
96410
96454
  name: "dagre",
96411
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-BD_6e0Uk.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
96455
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-BdaUG-j_.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
96412
96456
  },
96413
96457
  ...[
96414
96458
  {
96415
96459
  name: "cose-bilkent",
96416
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-Dbwh3GoX.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
96460
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-DXMyFQvy.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
96417
96461
  }
96418
96462
  ]
96419
96463
  ]);
@@ -96853,7 +96897,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
96853
96897
  }, "detector");
96854
96898
  var loader = /* @__PURE__ */ __name(async () => {
96855
96899
  const { diagram: diagram2 } = await __vitePreload(async () => {
96856
- const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-Cd5xZlLy.js");
96900
+ const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-ChUgpgkP.js");
96857
96901
  return { diagram: diagram22 };
96858
96902
  }, true ? __vite__mapDeps([8,9]) : void 0);
96859
96903
  return { id, diagram: diagram2 };
@@ -96873,7 +96917,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
96873
96917
  }, "detector");
96874
96918
  var loader2 = /* @__PURE__ */ __name(async () => {
96875
96919
  const { diagram: diagram2 } = await __vitePreload(async () => {
96876
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CGhdeaG8.js");
96920
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-9SGefONA.js");
96877
96921
  return { diagram: diagram22 };
96878
96922
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
96879
96923
  return { id: id2, diagram: diagram2 };
@@ -96899,7 +96943,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
96899
96943
  }, "detector");
96900
96944
  var loader3 = /* @__PURE__ */ __name(async () => {
96901
96945
  const { diagram: diagram2 } = await __vitePreload(async () => {
96902
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CGhdeaG8.js");
96946
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-9SGefONA.js");
96903
96947
  return { diagram: diagram22 };
96904
96948
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
96905
96949
  return { id: id3, diagram: diagram2 };
@@ -96916,7 +96960,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
96916
96960
  }, "detector");
96917
96961
  var loader4 = /* @__PURE__ */ __name(async () => {
96918
96962
  const { diagram: diagram2 } = await __vitePreload(async () => {
96919
- const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-CQoifjFq.js");
96963
+ const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DyftKeuC.js");
96920
96964
  return { diagram: diagram22 };
96921
96965
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
96922
96966
  return { id: id4, diagram: diagram2 };
@@ -96933,7 +96977,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
96933
96977
  }, "detector");
96934
96978
  var loader5 = /* @__PURE__ */ __name(async () => {
96935
96979
  const { diagram: diagram2 } = await __vitePreload(async () => {
96936
- const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-ChHni_jP.js");
96980
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-3eoLlCOY.js");
96937
96981
  return { diagram: diagram22 };
96938
96982
  }, true ? __vite__mapDeps([16,17,18,19,4,2]) : void 0);
96939
96983
  return { id: id5, diagram: diagram2 };
@@ -96950,7 +96994,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
96950
96994
  }, "detector");
96951
96995
  var loader6 = /* @__PURE__ */ __name(async () => {
96952
96996
  const { diagram: diagram2 } = await __vitePreload(async () => {
96953
- const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-D8W0wb9H.js");
96997
+ const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-k_WLhf-r.js");
96954
96998
  return { diagram: diagram22 };
96955
96999
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
96956
97000
  return { id: id6, diagram: diagram2 };
@@ -96967,7 +97011,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
96967
97011
  }, "detector");
96968
97012
  var loader7 = /* @__PURE__ */ __name(async () => {
96969
97013
  const { diagram: diagram2 } = await __vitePreload(async () => {
96970
- const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-B_XKKZTV.js");
97014
+ const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-CwEhVxkU.js");
96971
97015
  return { diagram: diagram22 };
96972
97016
  }, true ? __vite__mapDeps([24,19,4,2]) : void 0);
96973
97017
  return { id: id7, diagram: diagram2 };
@@ -96983,7 +97027,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
96983
97027
  }, "detector");
96984
97028
  var loader8 = /* @__PURE__ */ __name(async () => {
96985
97029
  const { diagram: diagram2 } = await __vitePreload(async () => {
96986
- const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-B1DQ-OaG.js");
97030
+ const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-BGuGhTu8.js");
96987
97031
  return { diagram: diagram22 };
96988
97032
  }, true ? __vite__mapDeps([25,17,19,4,2,26,27,22]) : void 0);
96989
97033
  return { id: id8, diagram: diagram2 };
@@ -96999,7 +97043,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
96999
97043
  }, "detector");
97000
97044
  var loader9 = /* @__PURE__ */ __name(async () => {
97001
97045
  const { diagram: diagram2 } = await __vitePreload(async () => {
97002
- const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-IHqyr3iT.js");
97046
+ const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-DAZcrJMg.js");
97003
97047
  return { diagram: diagram22 };
97004
97048
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
97005
97049
  return { id: id9, diagram: diagram2 };
@@ -97016,7 +97060,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
97016
97060
  }, "detector");
97017
97061
  var loader10 = /* @__PURE__ */ __name(async () => {
97018
97062
  const { diagram: diagram2 } = await __vitePreload(async () => {
97019
- const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-CrNKeY_-.js");
97063
+ const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-vkmh67qb.js");
97020
97064
  return { diagram: diagram22 };
97021
97065
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
97022
97066
  return { id: id10, diagram: diagram2 };
@@ -97033,7 +97077,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
97033
97077
  }, "detector");
97034
97078
  var loader11 = /* @__PURE__ */ __name(async () => {
97035
97079
  const { diagram: diagram2 } = await __vitePreload(async () => {
97036
- const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-CKBpht7B.js");
97080
+ const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-CXN0DxZs.js");
97037
97081
  return { diagram: diagram22 };
97038
97082
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
97039
97083
  return { id: id11, diagram: diagram2 };
@@ -97050,7 +97094,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
97050
97094
  }, "detector");
97051
97095
  var loader12 = /* @__PURE__ */ __name(async () => {
97052
97096
  const { diagram: diagram2 } = await __vitePreload(async () => {
97053
- const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-wLFRhAKd.js");
97097
+ const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-DfBNY6h_.js");
97054
97098
  return { diagram: diagram22 };
97055
97099
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
97056
97100
  return { id: id12, diagram: diagram2 };
@@ -97070,7 +97114,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
97070
97114
  }, "detector");
97071
97115
  var loader13 = /* @__PURE__ */ __name(async () => {
97072
97116
  const { diagram: diagram2 } = await __vitePreload(async () => {
97073
- const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-Dp-dyEGy.js");
97117
+ const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-DvtmzPcu.js");
97074
97118
  return { diagram: diagram22 };
97075
97119
  }, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
97076
97120
  return { id: id13, diagram: diagram2 };
@@ -97090,7 +97134,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
97090
97134
  }, "detector");
97091
97135
  var loader14 = /* @__PURE__ */ __name(async () => {
97092
97136
  const { diagram: diagram2 } = await __vitePreload(async () => {
97093
- const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-Dp-dyEGy.js");
97137
+ const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-DvtmzPcu.js");
97094
97138
  return { diagram: diagram22 };
97095
97139
  }, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
97096
97140
  return { id: id14, diagram: diagram2 };
@@ -97110,7 +97154,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
97110
97154
  }, "detector");
97111
97155
  var loader15 = /* @__PURE__ */ __name(async () => {
97112
97156
  const { diagram: diagram2 } = await __vitePreload(async () => {
97113
- const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-BFGQTbx5.js");
97157
+ const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-BLo1xRVY.js");
97114
97158
  return { diagram: diagram22 };
97115
97159
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
97116
97160
  return { id: id15, diagram: diagram2 };
@@ -97133,7 +97177,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
97133
97177
  }, "detector");
97134
97178
  var loader16 = /* @__PURE__ */ __name(async () => {
97135
97179
  const { diagram: diagram2 } = await __vitePreload(async () => {
97136
- const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-DF7AjJuk.js");
97180
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-Dq7MAD0I.js");
97137
97181
  return { diagram: diagram22 };
97138
97182
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
97139
97183
  return { id: id16, diagram: diagram2 };
@@ -97150,7 +97194,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
97150
97194
  }, "detector");
97151
97195
  var loader17 = /* @__PURE__ */ __name(async () => {
97152
97196
  const { diagram: diagram2 } = await __vitePreload(async () => {
97153
- const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-ChGuQ6T9.js");
97197
+ const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-Dtdq4G4Q.js");
97154
97198
  return { diagram: diagram22 };
97155
97199
  }, true ? __vite__mapDeps([38,9,11,26]) : void 0);
97156
97200
  return { id: id17, diagram: diagram2 };
@@ -97220,7 +97264,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
97220
97264
  }, "detector");
97221
97265
  var loader18 = /* @__PURE__ */ __name(async () => {
97222
97266
  const { diagram: diagram2 } = await __vitePreload(async () => {
97223
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CGhdeaG8.js");
97267
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-9SGefONA.js");
97224
97268
  return { diagram: diagram22 };
97225
97269
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97226
97270
  return { id: id18, diagram: diagram2 };
@@ -97237,7 +97281,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
97237
97281
  }, "detector");
97238
97282
  var loader19 = /* @__PURE__ */ __name(async () => {
97239
97283
  const { diagram: diagram2 } = await __vitePreload(async () => {
97240
- const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-ChHFOb0o.js");
97284
+ const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-ySWyBF3b.js");
97241
97285
  return { diagram: diagram22 };
97242
97286
  }, true ? __vite__mapDeps([39,26]) : void 0);
97243
97287
  return { id: id19, diagram: diagram2 };
@@ -97254,7 +97298,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
97254
97298
  }, "detector");
97255
97299
  var loader20 = /* @__PURE__ */ __name(async () => {
97256
97300
  const { diagram: diagram2 } = await __vitePreload(async () => {
97257
- const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-DT_dvf2c.js");
97301
+ const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-DvkIjoq8.js");
97258
97302
  return { diagram: diagram22 };
97259
97303
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
97260
97304
  return { id: id20, diagram: diagram2 };
@@ -97271,7 +97315,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
97271
97315
  }, "detector");
97272
97316
  var loader21 = /* @__PURE__ */ __name(async () => {
97273
97317
  const { diagram: diagram2 } = await __vitePreload(async () => {
97274
- const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-BjWe623u.js");
97318
+ const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-Bli-AycJ.js");
97275
97319
  return { diagram: diagram22 };
97276
97320
  }, true ? __vite__mapDeps([41,11]) : void 0);
97277
97321
  return { id: id21, diagram: diagram2 };
@@ -97288,7 +97332,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
97288
97332
  }, "detector");
97289
97333
  var loader22 = /* @__PURE__ */ __name(async () => {
97290
97334
  const { diagram: diagram2 } = await __vitePreload(async () => {
97291
- const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-D2uGjv3i.js");
97335
+ const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-B7-yAePZ.js");
97292
97336
  return { diagram: diagram22 };
97293
97337
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
97294
97338
  return { id: id22, diagram: diagram2 };
@@ -97305,7 +97349,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
97305
97349
  }, "detector");
97306
97350
  var loader23 = /* @__PURE__ */ __name(async () => {
97307
97351
  const { diagram: diagram2 } = await __vitePreload(async () => {
97308
- const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-D8uRdKXp.js");
97352
+ const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-BQ_FU59m.js");
97309
97353
  return { diagram: diagram22 };
97310
97354
  }, true ? __vite__mapDeps([43,17,19,4,2]) : void 0);
97311
97355
  return { id: id23, diagram: diagram2 };
@@ -97321,7 +97365,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
97321
97365
  }, "detector");
97322
97366
  var loader24 = /* @__PURE__ */ __name(async () => {
97323
97367
  const { diagram: diagram2 } = await __vitePreload(async () => {
97324
- const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-D0BvBR_a.js");
97368
+ const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-D-0fyvY_.js");
97325
97369
  return { diagram: diagram22 };
97326
97370
  }, true ? __vite__mapDeps([44,17,19,4,2]) : void 0);
97327
97371
  return { id: id24, diagram: diagram2 };
@@ -97337,7 +97381,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
97337
97381
  }, "detector");
97338
97382
  var loader25 = /* @__PURE__ */ __name(async () => {
97339
97383
  const { diagram: diagram2 } = await __vitePreload(async () => {
97340
- const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-DACsx66C.js");
97384
+ const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-DaBQ5-pY.js");
97341
97385
  return { diagram: diagram22 };
97342
97386
  }, true ? __vite__mapDeps([45,11,5,1,2,14]) : void 0);
97343
97387
  return { id: id25, diagram: diagram2 };
@@ -97354,7 +97398,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
97354
97398
  }, "detector");
97355
97399
  var loader26 = /* @__PURE__ */ __name(async () => {
97356
97400
  const { diagram: diagram2 } = await __vitePreload(async () => {
97357
- const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DdLIAMT5.js");
97401
+ const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-CkEi1QpB.js");
97358
97402
  return { diagram: diagram22 };
97359
97403
  }, true ? __vite__mapDeps([46,17,19,4,2,7]) : void 0);
97360
97404
  return { id: id26, diagram: diagram2 };
@@ -97371,7 +97415,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
97371
97415
  }, "detector");
97372
97416
  var loader27 = /* @__PURE__ */ __name(async () => {
97373
97417
  const { diagram: diagram2 } = await __vitePreload(async () => {
97374
- const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-BWt7Q59-.js");
97418
+ const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-NLiqKBzn.js");
97375
97419
  return { diagram: diagram22 };
97376
97420
  }, true ? __vite__mapDeps([47,13,17,19,4,2,23,27,22]) : void 0);
97377
97421
  return { id: id27, diagram: diagram2 };
@@ -98293,7 +98337,7 @@ const domPurifyConfig = {
98293
98337
  allowCustomizedBuiltInElements: false
98294
98338
  },
98295
98339
  ADD_TAGS: [...allowedCustomElements],
98296
- ADD_ATTR: [...allowedCustomElementAttrs, "id"]
98340
+ ADD_ATTR: [...allowedCustomElementAttrs, "id", "target", "rel"]
98297
98341
  };
98298
98342
  const md = new MarkdownIt({
98299
98343
  html: false,
@@ -98322,6 +98366,21 @@ md.core.ruler.push("dominds_heading_ids", (state2) => {
98322
98366
  }
98323
98367
  });
98324
98368
  installDomindsMathBlockRule(md);
98369
+ md.renderer.rules.link_open = (tokens, idx, options, _env, self2) => {
98370
+ const token2 = tokens[idx];
98371
+ const href = token2.attrGet("href");
98372
+ if (typeof href === "string" && /^https?:\/\//i.test(href.trim())) {
98373
+ token2.attrSet("target", "_blank");
98374
+ const relValue = token2.attrGet("rel");
98375
+ const relTokens = new Set(
98376
+ typeof relValue === "string" ? relValue.split(/\s+/).map((part) => part.trim()).filter((part) => part.length > 0) : []
98377
+ );
98378
+ relTokens.add("noopener");
98379
+ relTokens.add("noreferrer");
98380
+ token2.attrSet("rel", Array.from(relTokens).join(" "));
98381
+ }
98382
+ return self2.renderToken(tokens, idx, options);
98383
+ };
98325
98384
  md.renderer.rules.fence = (tokens, idx) => {
98326
98385
  const token2 = tokens[idx];
98327
98386
  const language = parseFenceLanguage(token2.info || "");
@@ -98398,6 +98457,8 @@ class DomindsDialogContainer extends HTMLElement {
98398
98457
  this.autoScrollResizeObservedEl = null;
98399
98458
  this.teammateCallingSectionBySeq = /* @__PURE__ */ new Map();
98400
98459
  this.callingSectionByCallId = /* @__PURE__ */ new Map();
98460
+ this.webSearchSectionByItemId = /* @__PURE__ */ new Map();
98461
+ this.webSearchSectionBySeq = /* @__PURE__ */ new Map();
98401
98462
  this.pendingTeammateCallResponsesByCallId = /* @__PURE__ */ new Map();
98402
98463
  this.pendingScrollRequest = null;
98403
98464
  this.highlightSeq = 0;
@@ -98819,6 +98880,8 @@ class DomindsDialogContainer extends HTMLElement {
98819
98880
  this.currentCourse = course;
98820
98881
  this.activeGenSeq = void 0;
98821
98882
  this.callingSectionByCallId.clear();
98883
+ this.webSearchSectionByItemId.clear();
98884
+ this.webSearchSectionBySeq.clear();
98822
98885
  this.pendingTeammateCallResponsesByCallId.clear();
98823
98886
  const messages = this.shadowRoot?.querySelector(".messages");
98824
98887
  if (messages) {
@@ -98838,6 +98901,8 @@ class DomindsDialogContainer extends HTMLElement {
98838
98901
  this.currentCourse = void 0;
98839
98902
  this.activeGenSeq = void 0;
98840
98903
  this.callingSectionByCallId.clear();
98904
+ this.webSearchSectionByItemId.clear();
98905
+ this.webSearchSectionBySeq.clear();
98841
98906
  this.pendingTeammateCallResponsesByCallId.clear();
98842
98907
  const messages = this.shadowRoot?.querySelector(".messages");
98843
98908
  if (messages) {
@@ -99028,6 +99093,9 @@ class DomindsDialogContainer extends HTMLElement {
99028
99093
  this.handleFuncCallRequested(ev.funcId, ev.funcName, ev.arguments);
99029
99094
  break;
99030
99095
  }
99096
+ case "web_search_call_evt":
99097
+ this.handleWebSearchCall(event);
99098
+ break;
99031
99099
  // Function results
99032
99100
  case "func_result_evt":
99033
99101
  if (this.generationBubble && this.currentCourse !== event.course) {
@@ -99273,6 +99341,101 @@ class DomindsDialogContainer extends HTMLElement {
99273
99341
  (body || this.generationBubble).appendChild(funcCallSection);
99274
99342
  this.scrollToBottom();
99275
99343
  }
99344
+ handleWebSearchCall(event) {
99345
+ const bubble = this.ensureGenerationBubbleForSeq(event.genseq, event.timestamp);
99346
+ if (!bubble) {
99347
+ console.warn("web_search_call_evt received without generation bubble, skipping");
99348
+ return;
99349
+ }
99350
+ const itemId = typeof event.itemId === "string" ? event.itemId.trim() : "";
99351
+ let section;
99352
+ if (itemId !== "") {
99353
+ const fromItemId = this.webSearchSectionByItemId.get(itemId);
99354
+ if (fromItemId && fromItemId.isConnected) {
99355
+ section = fromItemId;
99356
+ }
99357
+ }
99358
+ if (!section) {
99359
+ const fromSeq = this.webSearchSectionBySeq.get(event.genseq);
99360
+ if (fromSeq && fromSeq.isConnected && !fromSeq.classList.contains("completed")) {
99361
+ section = fromSeq;
99362
+ }
99363
+ }
99364
+ if (!section) {
99365
+ section = this.createWebSearchSection();
99366
+ section.setAttribute("data-genseq", String(event.genseq));
99367
+ const body = bubble.querySelector(".bubble-body");
99368
+ (body || bubble).appendChild(section);
99369
+ }
99370
+ if (itemId !== "") {
99371
+ section.setAttribute("data-web-search-item-id", itemId);
99372
+ this.webSearchSectionByItemId.set(itemId, section);
99373
+ }
99374
+ this.webSearchSectionBySeq.set(event.genseq, section);
99375
+ this.renderWebSearchSection(section, event);
99376
+ this.scrollToBottom();
99377
+ }
99378
+ renderWebSearchSection(section, event) {
99379
+ const t2 = getUiStrings(this.uiLanguage);
99380
+ const stateEl = section.querySelector(".web-search-state");
99381
+ const summaryEl = section.querySelector(".web-search-summary");
99382
+ const detailsEl = section.querySelector(".web-search-details");
99383
+ if (!stateEl || !summaryEl || !detailsEl) return;
99384
+ const phase = event.phase;
99385
+ const status = typeof event.status === "string" ? event.status.trim() : "";
99386
+ const itemId = typeof event.itemId === "string" ? event.itemId.trim() : "";
99387
+ const phaseLabel = phase === "added" ? t2.webSearchPhaseStarted : t2.webSearchPhaseDone;
99388
+ const stateLabel = status === "" ? `${t2.webSearchProgressPrefix}${phaseLabel}` : `${t2.webSearchStatusPrefix}${status}`;
99389
+ stateEl.textContent = stateLabel;
99390
+ stateEl.classList.toggle("is-completed", status === "completed");
99391
+ stateEl.classList.toggle("is-failed", status === "failed");
99392
+ section.classList.toggle("completed", phase === "done");
99393
+ const summaryParts = [];
99394
+ if (event.action) {
99395
+ summaryParts.push(`action=${event.action.type}`);
99396
+ }
99397
+ if (itemId !== "") {
99398
+ summaryParts.push(`item=${itemId}`);
99399
+ }
99400
+ summaryParts.push(`genseq=${String(event.genseq)}`);
99401
+ summaryEl.textContent = summaryParts.join(" · ");
99402
+ const lines = [];
99403
+ if (event.action) {
99404
+ lines.push(`type: ${event.action.type}`);
99405
+ switch (event.action.type) {
99406
+ case "search":
99407
+ if (typeof event.action.query === "string" && event.action.query.trim() !== "") {
99408
+ lines.push(`query: ${event.action.query}`);
99409
+ }
99410
+ break;
99411
+ case "open_page":
99412
+ if (typeof event.action.url === "string" && event.action.url.trim() !== "") {
99413
+ lines.push(`url: ${event.action.url}`);
99414
+ }
99415
+ break;
99416
+ case "find_in_page":
99417
+ if (typeof event.action.url === "string" && event.action.url.trim() !== "") {
99418
+ lines.push(`url: ${event.action.url}`);
99419
+ }
99420
+ if (typeof event.action.pattern === "string" && event.action.pattern.trim() !== "") {
99421
+ lines.push(`pattern: ${event.action.pattern}`);
99422
+ }
99423
+ break;
99424
+ default: {
99425
+ const _exhaustive = event.action;
99426
+ throw new Error(`Unhandled web search action: ${String(_exhaustive)}`);
99427
+ }
99428
+ }
99429
+ }
99430
+ lines.push(`${t2.webSearchProgressPrefix}${phaseLabel}`);
99431
+ if (status !== "") {
99432
+ lines.push(`${t2.webSearchStatusPrefix}${status}`);
99433
+ }
99434
+ if (itemId !== "") {
99435
+ lines.push(`itemId: ${itemId}`);
99436
+ }
99437
+ detailsEl.textContent = lines.join("\n");
99438
+ }
99276
99439
  // === TELLASK CALL EVENTS (Streaming mode - `!?@...` blocks) ===
99277
99440
  // callId is set at finish event (not start) - content-hash based
99278
99441
  findInFlightToolCallingSectionForGenseq(genseq) {
@@ -100004,7 +100167,9 @@ ${event.content}`;
100004
100167
  this.scrollToBottom();
100005
100168
  return;
100006
100169
  }
100007
- const assistantOnlyAlreadyStarted = body.querySelector(".thinking-section, .func-call-section");
100170
+ const assistantOnlyAlreadyStarted = body.querySelector(
100171
+ ".thinking-section, .func-call-section, .web-search-section"
100172
+ );
100008
100173
  if (assistantOnlyAlreadyStarted) {
100009
100174
  this.handleProtocolError(
100010
100175
  `Protocol violation: end_of_user_saying_evt received after assistant output already started (genseq=${String(
@@ -100110,6 +100275,23 @@ ${event.content}`;
100110
100275
  el.append(headerEl, contentEl);
100111
100276
  return el;
100112
100277
  }
100278
+ createWebSearchSection() {
100279
+ const t2 = getUiStrings(this.uiLanguage);
100280
+ const el = document.createElement("div");
100281
+ el.className = "web-search-section";
100282
+ el.innerHTML = `
100283
+ <div class="web-search-header">
100284
+ <span class="web-search-icon">🌐</span>
100285
+ <span class="web-search-title">${this.escapeHtml(t2.webSearchTitle)}</span>
100286
+ <span class="web-search-state">${this.escapeHtml(
100287
+ `${t2.webSearchProgressPrefix}${t2.webSearchPhaseStarted}`
100288
+ )}</span>
100289
+ </div>
100290
+ <div class="web-search-summary"></div>
100291
+ <pre class="web-search-details"></pre>
100292
+ `;
100293
+ return el;
100294
+ }
100113
100295
  handleError(err) {
100114
100296
  if (!this.generationBubble) return;
100115
100297
  const el = document.createElement("div");
@@ -100992,6 +101174,77 @@ ${event.content}`;
100992
101174
  opacity: 0.9;
100993
101175
  }
100994
101176
 
101177
+ .web-search-section {
101178
+ margin: 6px 0;
101179
+ padding: 8px;
101180
+ border-radius: 6px;
101181
+ background: var(--color-bg-tertiary, #f1f5f9);
101182
+ border-left: 3px solid var(--color-info, #06b6d4);
101183
+ }
101184
+
101185
+ .web-search-header {
101186
+ display: flex;
101187
+ align-items: center;
101188
+ gap: 8px;
101189
+ margin-bottom: 6px;
101190
+ }
101191
+
101192
+ .web-search-icon {
101193
+ font-size: 14px;
101194
+ }
101195
+
101196
+ .web-search-title {
101197
+ font-weight: 600;
101198
+ color: var(--color-info, #06b6d4);
101199
+ font-size: 12px;
101200
+ }
101201
+
101202
+ .web-search-state {
101203
+ border-radius: 999px;
101204
+ padding: 1px 8px;
101205
+ font-size: 11px;
101206
+ line-height: 1.4;
101207
+ margin-left: auto;
101208
+ background: color-mix(in srgb, var(--color-info, #06b6d4) 14%, transparent);
101209
+ color: var(--color-info, #06b6d4);
101210
+ }
101211
+
101212
+ .web-search-state.is-completed {
101213
+ background: color-mix(in srgb, var(--color-success, #10b981) 14%, transparent);
101214
+ color: var(--color-success, #10b981);
101215
+ }
101216
+
101217
+ .web-search-state.is-failed {
101218
+ background: color-mix(in srgb, var(--color-danger, #ef4444) 14%, transparent);
101219
+ color: var(--color-danger, #ef4444);
101220
+ border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
101221
+ }
101222
+
101223
+ .web-search-summary {
101224
+ color: var(--dominds-muted, var(--color-fg-tertiary, #64748b));
101225
+ font-size: 12px;
101226
+ margin-bottom: 6px;
101227
+ white-space: normal;
101228
+ word-break: break-word;
101229
+ }
101230
+
101231
+ .web-search-details {
101232
+ margin: 0;
101233
+ padding: 8px;
101234
+ border-radius: 6px;
101235
+ background: var(--color-bg-secondary, #ffffff);
101236
+ border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
101237
+ color: var(--dominds-fg, var(--color-fg-secondary, #475569));
101238
+ font-size: 11px;
101239
+ line-height: 1.45;
101240
+ white-space: pre-wrap;
101241
+ word-break: break-word;
101242
+ }
101243
+
101244
+ .web-search-section.completed {
101245
+ opacity: 0.9;
101246
+ }
101247
+
100995
101248
  /* Code block section styles (nested inside markdown) */
100996
101249
  .codeblock-section {
100997
101250
  margin: 0;
@@ -101780,7 +102033,7 @@ const _DomindsQ4HInput = class _DomindsQ4HInput extends HTMLElement {
101780
102033
  this.inputHistoryCursor = null;
101781
102034
  this.inputHistoryDraft = null;
101782
102035
  }
101783
- applyInputHistoryCursorValue() {
102036
+ applyInputHistoryCursorValue(cursorAt = "end") {
101784
102037
  if (!this.textInput) return;
101785
102038
  if (this.inputHistoryCursor === null) return;
101786
102039
  const len = this.inputHistory.length;
@@ -101788,7 +102041,7 @@ const _DomindsQ4HInput = class _DomindsQ4HInput extends HTMLElement {
101788
102041
  this.textInput.value = nextValue;
101789
102042
  this.updateSendButton();
101790
102043
  this.scheduleInputUiUpdate();
101791
- const nextPos = this.textInput.value.length;
102044
+ const nextPos = cursorAt === "start" ? 0 : this.textInput.value.length;
101792
102045
  this.textInput.setSelectionRange(nextPos, nextPos);
101793
102046
  }
101794
102047
  recallPreviousInputHistory() {
@@ -101800,7 +102053,7 @@ const _DomindsQ4HInput = class _DomindsQ4HInput extends HTMLElement {
101800
102053
  }
101801
102054
  if (this.inputHistoryCursor <= 0) return;
101802
102055
  this.inputHistoryCursor -= 1;
101803
- this.applyInputHistoryCursorValue();
102056
+ this.applyInputHistoryCursorValue("start");
101804
102057
  }
101805
102058
  recallNextInputHistory() {
101806
102059
  if (!this.textInput) return;
@@ -107322,13 +107575,68 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
107322
107575
  this.bottomPanelHeightPx = desired;
107323
107576
  bottomPanel.style.setProperty("--bottom-panel-height", `${this.bottomPanelHeightPx}px`);
107324
107577
  }
107578
+ applyDiligenceState(state2) {
107579
+ this.disableDiligencePush = state2.disableDiligencePush;
107580
+ this.diligencePushConfiguredMax = state2.configuredMax;
107581
+ this.diligencePushRemaining = state2.remaining;
107582
+ }
107583
+ isDiligenceApplicableToCurrentDialog() {
107584
+ const current = this.currentDialog;
107585
+ if (!current) return true;
107586
+ return current.selfId === current.rootId;
107587
+ }
107588
+ normalizeDiligenceMax(value) {
107589
+ if (typeof value !== "number" || !Number.isFinite(value)) return null;
107590
+ return Math.max(0, Math.floor(value));
107591
+ }
107592
+ normalizeDiligenceRemaining(value) {
107593
+ if (typeof value !== "number" || !Number.isFinite(value)) return null;
107594
+ return Math.max(0, Math.floor(value));
107595
+ }
107596
+ resolveDiligenceStateFromReady(readyMsg) {
107597
+ const configuredMax = this.normalizeDiligenceMax(readyMsg.diligencePushMax);
107598
+ const normalizedRemaining = this.normalizeDiligenceRemaining(
107599
+ readyMsg.diligencePushRemainingBudget
107600
+ );
107601
+ let remaining = normalizedRemaining;
107602
+ if (remaining === null) {
107603
+ remaining = configuredMax !== null && configuredMax > 0 ? configuredMax : 0;
107604
+ } else if (configuredMax !== null && configuredMax > 0) {
107605
+ remaining = Math.min(remaining, configuredMax);
107606
+ }
107607
+ return {
107608
+ disableDiligencePush: readyMsg.disableDiligencePush ?? false,
107609
+ configuredMax,
107610
+ remaining
107611
+ };
107612
+ }
107325
107613
  getDiligenceBudgetBadgeText() {
107614
+ if (!this.isDiligenceApplicableToCurrentDialog()) {
107615
+ return { text: "—", hasRemaining: false };
107616
+ }
107326
107617
  const configuredMax = typeof this.diligencePushConfiguredMax === "number" && Number.isFinite(this.diligencePushConfiguredMax) ? Math.floor(this.diligencePushConfiguredMax) : null;
107327
107618
  const total = configuredMax !== null && configuredMax > 0 ? configuredMax : 0;
107328
107619
  const remaining = typeof this.diligencePushRemaining === "number" && Number.isFinite(this.diligencePushRemaining) ? Math.max(0, Math.floor(this.diligencePushRemaining)) : null;
107329
107620
  if (remaining === null) return { text: `— / ${String(total)}`, hasRemaining: false };
107330
107621
  return { text: `${String(remaining)} / ${String(total)}`, hasRemaining: remaining > 0 };
107331
107622
  }
107623
+ playDiligenceNotApplicableShake() {
107624
+ const sr = this.shadowRoot;
107625
+ if (!sr) return;
107626
+ const badge = sr.querySelector(
107627
+ 'button.bp-tab[data-bp-tab="diligence"] .bp-badge'
107628
+ );
107629
+ if (!badge) return;
107630
+ const hadPulse = badge.classList.contains("pulse");
107631
+ if (hadPulse) badge.classList.remove("pulse");
107632
+ badge.classList.remove("shake");
107633
+ void badge.offsetWidth;
107634
+ badge.classList.add("shake");
107635
+ window.setTimeout(() => {
107636
+ badge.classList.remove("shake");
107637
+ if (hadPulse) badge.classList.add("pulse");
107638
+ }, 380);
107639
+ }
107332
107640
  updateBottomPanelFooterUi() {
107333
107641
  const sr = this.shadowRoot;
107334
107642
  if (!sr) return;
@@ -107349,7 +107657,11 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
107349
107657
  );
107350
107658
  if (!diligenceTab) return;
107351
107659
  const checkbox = diligenceTab.querySelector("#diligence-toggle");
107352
- if (checkbox) checkbox.checked = !this.disableDiligencePush;
107660
+ if (checkbox) {
107661
+ const applicable = this.isDiligenceApplicableToCurrentDialog();
107662
+ checkbox.checked = applicable ? !this.disableDiligencePush : false;
107663
+ checkbox.disabled = !applicable;
107664
+ }
107353
107665
  const badges = diligenceTab.querySelectorAll(".bp-badge");
107354
107666
  const badge = badges.length > 0 ? badges[badges.length - 1] : null;
107355
107667
  if (badge) {
@@ -109405,6 +109717,10 @@ ${formatUiLanguageOptionLabel({
109405
109717
  animation: bpBadgePulse 220ms ease-out;
109406
109718
  }
109407
109719
 
109720
+ .bp-badge.shake {
109721
+ animation: bpBadgeShake 340ms ease-in-out;
109722
+ }
109723
+
109408
109724
  @keyframes bpBadgePulse {
109409
109725
  0% { transform: scale(1); }
109410
109726
  40% { transform: scale(1.12); }
@@ -109427,6 +109743,11 @@ ${formatUiLanguageOptionLabel({
109427
109743
  animation: bpBadgePulseStrong 420ms ease-out;
109428
109744
  }
109429
109745
 
109746
+ button.bp-tab[data-bp-tab='diligence'] .bp-badge.shake,
109747
+ button.bp-tab[data-bp-tab='diligence'] .bp-badge.pulse.shake {
109748
+ animation: bpBadgeShake 340ms ease-in-out;
109749
+ }
109750
+
109430
109751
  @keyframes bpBadgePulseStrong {
109431
109752
  0% {
109432
109753
  transform: scale(1);
@@ -109445,6 +109766,16 @@ ${formatUiLanguageOptionLabel({
109445
109766
  }
109446
109767
  }
109447
109768
 
109769
+ @keyframes bpBadgeShake {
109770
+ 0% { transform: translateX(0); }
109771
+ 15% { transform: translateX(-3px) rotate(-1deg); }
109772
+ 30% { transform: translateX(3px) rotate(1deg); }
109773
+ 45% { transform: translateX(-2px) rotate(-0.8deg); }
109774
+ 60% { transform: translateX(2px) rotate(0.8deg); }
109775
+ 75% { transform: translateX(-1px) rotate(-0.5deg); }
109776
+ 100% { transform: translateX(0) rotate(0); }
109777
+ }
109778
+
109448
109779
  button.bp-tab[data-bp-tab='q4h'] .bp-badge[data-has-questions='true'] {
109449
109780
  background: color-mix(in srgb, var(--dominds-primary, #007acc) 80%, var(--dominds-bg, #ffffff));
109450
109781
  border-color: color-mix(in srgb, var(--dominds-primary, #007acc) 85%, var(--dominds-border, #e0e0e0));
@@ -110418,13 +110749,14 @@ ${uiLanguageButtonTooltip}">
110418
110749
  <span class="bp-badge" data-has-questions="${this.q4hQuestionCount > 0 ? "true" : "false"}">${String(this.q4hQuestionCount)}</span>
110419
110750
  <span class="bp-label" data-bp-label="q4h">${t2.q4hPendingQuestions}</span>
110420
110751
  </button>
110421
- <button class="bp-tab ${this.bottomPanelExpanded && this.bottomPanelTab === "diligence" ? "active" : ""}" type="button" data-bp-tab="diligence">
110752
+ <button class="bp-tab ${this.bottomPanelExpanded && this.bottomPanelTab === "diligence" ? "active" : ""}" type="button" data-bp-tab="diligence">
110422
110753
  <input
110423
110754
  id="diligence-toggle"
110424
110755
  class="bp-checkbox"
110425
110756
  type="checkbox"
110426
110757
  aria-label="${t2.keepGoingToggleAriaLabel}"
110427
- ${this.disableDiligencePush ? "" : "checked"}
110758
+ ${this.isDiligenceApplicableToCurrentDialog() ? this.disableDiligencePush ? "" : "checked" : ""}
110759
+ ${this.isDiligenceApplicableToCurrentDialog() ? "" : "disabled"}
110428
110760
  />
110429
110761
  <span class="bp-label" data-bp-label="diligence">${t2.keepGoingTabTitle}</span>
110430
110762
  <span class="bp-badge" data-has-remaining="${this.getDiligenceBudgetBadgeText().hasRemaining ? "true" : "false"}">${this.getDiligenceBudgetBadgeText().text}</span>
@@ -111108,6 +111440,10 @@ ${content}`;
111108
111440
  e2.preventDefault();
111109
111441
  e2.stopPropagation();
111110
111442
  if (!this.currentDialog) return;
111443
+ if (!this.isDiligenceApplicableToCurrentDialog()) {
111444
+ this.playDiligenceNotApplicableShake();
111445
+ return;
111446
+ }
111111
111447
  this.wsManager.sendRaw({
111112
111448
  type: "refill_diligence_push_budget",
111113
111449
  dialog: {
@@ -111192,6 +111528,9 @@ ${content}`;
111192
111528
  this.showToast(t2.noActiveDialogToast, "warning");
111193
111529
  return;
111194
111530
  }
111531
+ if (!this.isDiligenceApplicableToCurrentDialog()) {
111532
+ return;
111533
+ }
111195
111534
  const next2 = !this.disableDiligencePush;
111196
111535
  this.disableDiligencePush = next2;
111197
111536
  this.updateBottomPanelFooterUi();
@@ -112239,6 +112578,12 @@ ${content}`;
112239
112578
  this.currentDialog = normalizedDialog;
112240
112579
  this.currentDialogStatus = this.resolveDialogStatus(normalizedDialog);
112241
112580
  this.updateInputPanelVisibility();
112581
+ this.applyDiligenceState({
112582
+ disableDiligencePush: false,
112583
+ configuredMax: null,
112584
+ remaining: null
112585
+ });
112586
+ this.updateBottomPanelFooterUi();
112242
112587
  try {
112243
112588
  const dialogContainer = this.shadowRoot?.querySelector("#dialog-container");
112244
112589
  if (dialogContainer instanceof DomindsDialogContainer) {
@@ -112902,6 +113247,12 @@ ${content}`;
112902
113247
  }
112903
113248
  case "dialog_ready": {
112904
113249
  const readyMsg = message;
113250
+ const nextDiligenceState = this.resolveDiligenceStateFromReady(readyMsg);
113251
+ const current = this.currentDialog;
113252
+ const isForCurrentDialog = current !== null && current.selfId === readyMsg.dialog.selfId && current.rootId === readyMsg.dialog.rootId;
113253
+ if (!isForCurrentDialog) {
113254
+ return true;
113255
+ }
112905
113256
  this.currentDialog = {
112906
113257
  selfId: readyMsg.dialog.selfId,
112907
113258
  rootId: readyMsg.dialog.rootId,
@@ -112913,24 +113264,7 @@ ${content}`;
112913
113264
  tellaskSession: readyMsg.tellaskSession,
112914
113265
  assignmentFromSup: readyMsg.assignmentFromSup
112915
113266
  };
112916
- this.disableDiligencePush = readyMsg.disableDiligencePush ?? false;
112917
- this.diligencePushConfiguredMax = typeof readyMsg.diligencePushMax === "number" && Number.isFinite(readyMsg.diligencePushMax) ? readyMsg.diligencePushMax : null;
112918
- const remainingFromReady = readyMsg.diligencePushRemainingBudget;
112919
- if (typeof remainingFromReady === "number" && Number.isFinite(remainingFromReady)) {
112920
- const normalizedRemaining = Math.max(0, Math.floor(remainingFromReady));
112921
- if (typeof this.diligencePushConfiguredMax === "number" && Number.isFinite(this.diligencePushConfiguredMax) && Math.floor(this.diligencePushConfiguredMax) > 0) {
112922
- this.diligencePushRemaining = Math.min(
112923
- normalizedRemaining,
112924
- Math.floor(this.diligencePushConfiguredMax)
112925
- );
112926
- } else {
112927
- this.diligencePushRemaining = normalizedRemaining;
112928
- }
112929
- } else if (typeof this.diligencePushConfiguredMax === "number" && Number.isFinite(this.diligencePushConfiguredMax) && Math.floor(this.diligencePushConfiguredMax) > 0) {
112930
- this.diligencePushRemaining = Math.floor(this.diligencePushConfiguredMax);
112931
- } else {
112932
- this.diligencePushRemaining = 0;
112933
- }
113267
+ this.applyDiligenceState(nextDiligenceState);
112934
113268
  this.diligenceRtwsDirty = false;
112935
113269
  this.updateBottomPanelFooterUi();
112936
113270
  const dialogContainer = this.shadowRoot?.querySelector("#dialog-container");
@@ -112967,11 +113301,8 @@ ${content}`;
112967
113301
  }
112968
113302
  case "diligence_budget_evt": {
112969
113303
  if (this.currentDialog && message.dialog.rootId === this.currentDialog.rootId) {
112970
- if (typeof message.maxInjectCount === "number" && Number.isFinite(message.maxInjectCount) && Math.floor(message.maxInjectCount) > 0) {
112971
- this.diligencePushConfiguredMax = message.maxInjectCount;
112972
- }
112973
- const remaining = message.remainingCount;
112974
- this.diligencePushRemaining = typeof remaining === "number" && Number.isFinite(remaining) ? remaining : null;
113304
+ this.diligencePushConfiguredMax = this.normalizeDiligenceMax(message.maxInjectCount);
113305
+ this.diligencePushRemaining = this.normalizeDiligenceRemaining(message.remainingCount);
112975
113306
  this.disableDiligencePush = message.disableDiligencePush;
112976
113307
  this.updateBottomPanelFooterUi();
112977
113308
  }
@@ -115495,4 +115826,4 @@ export {
115495
115826
  clear$2 as y,
115496
115827
  defaultConfig2 as z
115497
115828
  };
115498
- //# sourceMappingURL=index-th_praGg.js.map
115829
+ //# sourceMappingURL=index-BNBG2CE1.js.map