dominds 1.5.2 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/configuration-file.js +21 -0
- package/dist/apps/enabled-apps.js +3 -53
- package/dist/apps/local-package-root.js +41 -0
- package/dist/apps/runtime.js +10 -0
- package/dist/apps-host/client.js +124 -1
- package/dist/apps-host/host.js +53 -0
- package/dist/apps-host/ipc-types.js +61 -1
- package/dist/cli/install.js +41 -8
- package/dist/docs/app-constitution.md +22 -0
- package/dist/docs/app-constitution.zh.md +22 -0
- package/dist/llm/kernel-driver/runtime.js +112 -22
- package/dist/minds/load.js +20 -2
- package/dist/minds/system-prompt.js +4 -0
- package/dist/priming.js +2 -26
- package/dist/server/api-routes.js +61 -3
- package/dist/server/websocket-handler.js +5 -0
- package/dist/server.js +5 -2
- package/dist/shared/markdown-frontmatter.js +44 -0
- package/dist/shared/team_mgmt-manual.js +9 -0
- package/dist/skills/load.js +281 -0
- package/dist/static/assets/{_basePickBy-B-A5XrWM.js → _basePickBy-DSCRdLZO.js} +3 -3
- package/dist/static/assets/{_basePickBy-B-A5XrWM.js.map → _basePickBy-DSCRdLZO.js.map} +1 -1
- package/dist/static/assets/{_baseUniq-BANLb0cu.js → _baseUniq-4QF_OoKK.js} +2 -2
- package/dist/static/assets/{_baseUniq-BANLb0cu.js.map → _baseUniq-4QF_OoKK.js.map} +1 -1
- package/dist/static/assets/{arc-CYZYnojf.js → arc-BVQeKKx9.js} +2 -2
- package/dist/static/assets/{arc-CYZYnojf.js.map → arc-BVQeKKx9.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-Cxf4pmYG.js → architectureDiagram-VXUJARFQ-B4I8KFTn.js} +7 -7
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-Cxf4pmYG.js.map → architectureDiagram-VXUJARFQ-B4I8KFTn.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-wvs0G30c.js → blockDiagram-VD42YOAC-CexS18Qs.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-wvs0G30c.js.map → blockDiagram-VD42YOAC-CexS18Qs.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-BKFNexn4.js → c4Diagram-YG6GDRKO-CuSqcxrm.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-BKFNexn4.js.map → c4Diagram-YG6GDRKO-CuSqcxrm.js.map} +1 -1
- package/dist/static/assets/{channel-_1qpxJWy.js → channel-BYCxsEk5.js} +2 -2
- package/dist/static/assets/{channel-_1qpxJWy.js.map → channel-BYCxsEk5.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-BIdC0phm.js → chunk-4BX2VUAB-N8tlmsFc.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-BIdC0phm.js.map → chunk-4BX2VUAB-N8tlmsFc.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-BNvGenQ9.js → chunk-55IACEB6-DxOFWSAF.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-BNvGenQ9.js.map → chunk-55IACEB6-DxOFWSAF.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-jmf-1Wv7.js → chunk-B4BG7PRW-C1tSyN_l.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-jmf-1Wv7.js.map → chunk-B4BG7PRW-C1tSyN_l.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-nmEmcikR.js → chunk-DI55MBZ5-BTmIrFZd.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-nmEmcikR.js.map → chunk-DI55MBZ5-BTmIrFZd.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-kGysaq_j.js → chunk-FMBD7UC4-s7Uar1x2.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-kGysaq_j.js.map → chunk-FMBD7UC4-s7Uar1x2.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-8JwMLFIJ.js → chunk-QN33PNHL-DC20K06j.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-8JwMLFIJ.js.map → chunk-QN33PNHL-DC20K06j.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-DZleEj00.js → chunk-QZHKN3VN-6mPLLfRu.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-DZleEj00.js.map → chunk-QZHKN3VN-6mPLLfRu.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-CXxl_uqH.js → chunk-TZMSLE5B-GrDvKWzz.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-CXxl_uqH.js.map → chunk-TZMSLE5B-GrDvKWzz.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-C-7R0QB6.js → classDiagram-2ON5EDUG-fO59bj9m.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-C-7R0QB6.js.map → classDiagram-2ON5EDUG-fO59bj9m.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-C-7R0QB6.js → classDiagram-v2-WZHVMYZB-fO59bj9m.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-C-7R0QB6.js.map → classDiagram-v2-WZHVMYZB-fO59bj9m.js.map} +1 -1
- package/dist/static/assets/{clone-BwOKYSj8.js → clone-IE0Tnwxn.js} +2 -2
- package/dist/static/assets/{clone-BwOKYSj8.js.map → clone-IE0Tnwxn.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-BCBalM7p.js → cose-bilkent-S5V4N54A-CfeoQnK-.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-BCBalM7p.js.map → cose-bilkent-S5V4N54A-CfeoQnK-.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-uV2ekQoj.js → dagre-6UL2VRFP-DsiyUZhi.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-uV2ekQoj.js.map → dagre-6UL2VRFP-DsiyUZhi.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-D-ZMog1-.js → diagram-PSM6KHXK-IAjJ50CC.js} +8 -8
- package/dist/static/assets/{diagram-PSM6KHXK-D-ZMog1-.js.map → diagram-PSM6KHXK-IAjJ50CC.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-BThSELUH.js → diagram-QEK2KX5R-DiZLndjJ.js} +7 -7
- package/dist/static/assets/{diagram-QEK2KX5R-BThSELUH.js.map → diagram-QEK2KX5R-DiZLndjJ.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-Di-YN5cd.js → diagram-S2PKOQOG-ZL3Kts-u.js} +7 -7
- package/dist/static/assets/{diagram-S2PKOQOG-Di-YN5cd.js.map → diagram-S2PKOQOG-ZL3Kts-u.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-lBZ9DITn.js → erDiagram-Q2GNP2WA-DbVLZtGY.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-lBZ9DITn.js.map → erDiagram-Q2GNP2WA-DbVLZtGY.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-C_60PNQR.js → flowDiagram-NV44I4VS-CVd2p2Br.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-C_60PNQR.js.map → flowDiagram-NV44I4VS-CVd2p2Br.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-Dvqq-VHJ.js → ganttDiagram-JELNMOA3-6NsYNEcf.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-Dvqq-VHJ.js.map → ganttDiagram-JELNMOA3-6NsYNEcf.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BTj8orRe.js → gitGraphDiagram-V2S2FVAM-B0Y7WTbj.js} +8 -8
- package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-BTj8orRe.js.map → gitGraphDiagram-V2S2FVAM-B0Y7WTbj.js.map} +1 -1
- package/dist/static/assets/{graph-BqCzR2Nl.js → graph-BE1Fw6SE.js} +3 -3
- package/dist/static/assets/{graph-BqCzR2Nl.js.map → graph-BE1Fw6SE.js.map} +1 -1
- package/dist/static/assets/{index-DrTqAfFy.js → index-1Tlt2ebA.js} +727 -297
- package/dist/static/assets/index-1Tlt2ebA.js.map +1 -0
- package/dist/static/assets/{infoDiagram-HS3SLOUP-DlC6wsrv.js → infoDiagram-HS3SLOUP-p6CQsk4A.js} +6 -6
- package/dist/static/assets/{infoDiagram-HS3SLOUP-DlC6wsrv.js.map → infoDiagram-HS3SLOUP-p6CQsk4A.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-Dg_RgtQX.js → journeyDiagram-XKPGCS4Q-DR4cvYtN.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-Dg_RgtQX.js.map → journeyDiagram-XKPGCS4Q-DR4cvYtN.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-DuGS3lId.js → kanban-definition-3W4ZIXB7-JPOdtj9o.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-DuGS3lId.js.map → kanban-definition-3W4ZIXB7-JPOdtj9o.js.map} +1 -1
- package/dist/static/assets/{layout-FDz2bstZ.js → layout-BOn5O0Mv.js} +5 -5
- package/dist/static/assets/{layout-FDz2bstZ.js.map → layout-BOn5O0Mv.js.map} +1 -1
- package/dist/static/assets/{linear-CzsdvPGb.js → linear-BVAPTXI-.js} +2 -2
- package/dist/static/assets/{linear-CzsdvPGb.js.map → linear-BVAPTXI-.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-WsAF5UNp.js → mindmap-definition-VGOIOE7T-DUJXw6w6.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-WsAF5UNp.js.map → mindmap-definition-VGOIOE7T-DUJXw6w6.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-DJpRJ5ei.js → pieDiagram-ADFJNKIX-76JJOJvZ.js} +8 -8
- package/dist/static/assets/{pieDiagram-ADFJNKIX-DJpRJ5ei.js.map → pieDiagram-ADFJNKIX-76JJOJvZ.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-CMyIzTkY.js → quadrantDiagram-AYHSOK5B-iKXJUo4i.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-CMyIzTkY.js.map → quadrantDiagram-AYHSOK5B-iKXJUo4i.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-D_yqVXGu.js → requirementDiagram-UZGBJVZJ-B0uk_5yk.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-D_yqVXGu.js.map → requirementDiagram-UZGBJVZJ-B0uk_5yk.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-D4-cF724.js → sankeyDiagram-TZEHDZUN-O3weNg52.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-D4-cF724.js.map → sankeyDiagram-TZEHDZUN-O3weNg52.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-B7J3gWYN.js → sequenceDiagram-WL72ISMW-DFnXuPNE.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-B7J3gWYN.js.map → sequenceDiagram-WL72ISMW-DFnXuPNE.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-DwEYYCcu.js → stateDiagram-FKZM4ZOC-BZjZXttD.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-DwEYYCcu.js.map → stateDiagram-FKZM4ZOC-BZjZXttD.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-D4LOOQV5.js → stateDiagram-v2-4FDKWEC3-C_R3IF0y.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-D4LOOQV5.js.map → stateDiagram-v2-4FDKWEC3-C_R3IF0y.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-CyG-TJ_A.js → timeline-definition-IT6M3QCI-Kkhw0x0F.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-CyG-TJ_A.js.map → timeline-definition-IT6M3QCI-Kkhw0x0F.js.map} +1 -1
- package/dist/static/assets/{treemap-GDKQZRPO-yY4GiKmU.js → treemap-GDKQZRPO-DCcRUg7I.js} +5 -5
- package/dist/static/assets/{treemap-GDKQZRPO-yY4GiKmU.js.map → treemap-GDKQZRPO-DCcRUg7I.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-5TYN_q15.js → xychartDiagram-PRI3JC2R-DQKFjqLB.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-5TYN_q15.js.map → xychartDiagram-PRI3JC2R-DQKFjqLB.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/team-config-updates.js +26 -0
- package/dist/team.js +23 -5
- package/dist/tools/registry-snapshot.js +5 -1
- package/dist/tools/team_mgmt.js +137 -0
- package/dist/tools/toolset-manual.js +20 -5
- package/package.json +1 -1
- package/dist/apps/installed-file.js +0 -207
- package/dist/apps/runtime-port.js +0 -91
- package/dist/docs/kernel-app-architecture.md +0 -286
- package/dist/docs/kernel-app-architecture.zh.md +0 -285
- package/dist/llm/driver-entry.js +0 -28
- package/dist/llm/driver-v2/context-health.js +0 -121
- package/dist/llm/driver-v2/context.js +0 -56
- package/dist/llm/driver-v2/core.js +0 -1545
- package/dist/llm/driver-v2/index.js +0 -26
- package/dist/llm/driver-v2/orchestrator.js +0 -158
- package/dist/llm/driver-v2/policy.js +0 -129
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +0 -73
- package/dist/llm/driver-v2/round.js +0 -366
- package/dist/llm/driver-v2/runtime-utils.js +0 -365
- package/dist/llm/driver-v2/saying-events.js +0 -20
- package/dist/llm/driver-v2/subdialog-txn.js +0 -42
- package/dist/llm/driver-v2/supdialog-response.js +0 -400
- package/dist/llm/driver-v2/tellask-bridge.js +0 -1148
- package/dist/llm/driver-v2/types.js +0 -10
- package/dist/llm/driver-v2-ref-only/context-health.js +0 -121
- package/dist/llm/driver-v2-ref-only/context.js +0 -17
- package/dist/llm/driver-v2-ref-only/core.js +0 -1710
- package/dist/llm/driver-v2-ref-only/index.js +0 -26
- package/dist/llm/driver-v2-ref-only/orchestrator.js +0 -158
- package/dist/llm/driver-v2-ref-only/policy.js +0 -129
- package/dist/llm/driver-v2-ref-only/restore-dialog-hierarchy.js +0 -73
- package/dist/llm/driver-v2-ref-only/round.js +0 -366
- package/dist/llm/driver-v2-ref-only/runtime-utils.js +0 -473
- package/dist/llm/driver-v2-ref-only/saying-events.js +0 -18
- package/dist/llm/driver-v2-ref-only/subdialog-txn.js +0 -42
- package/dist/llm/driver-v2-ref-only/supdialog-response.js +0 -453
- package/dist/llm/driver-v2-ref-only/tellask-bridge.js +0 -1178
- package/dist/llm/driver-v2-ref-only/types.js +0 -10
- package/dist/static/assets/index-DrTqAfFy.js.map +0 -1
- package/dist/tools/prompts/memory/en/errors.md +0 -155
- package/dist/tools/prompts/memory/en/index.md +0 -47
- package/dist/tools/prompts/memory/en/principles.md +0 -79
- package/dist/tools/prompts/memory/en/scenarios.md +0 -174
- package/dist/tools/prompts/memory/en/tools.md +0 -154
- package/dist/tools/prompts/memory/zh/errors.md +0 -155
- package/dist/tools/prompts/memory/zh/index.md +0 -47
- package/dist/tools/prompts/memory/zh/principles.md +0 -79
- package/dist/tools/prompts/memory/zh/scenarios.md +0 -174
- package/dist/tools/prompts/memory/zh/tools.md +0 -154
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DsiyUZhi.js","assets/graph-BE1Fw6SE.js","assets/_baseUniq-4QF_OoKK.js","assets/layout-BOn5O0Mv.js","assets/_basePickBy-DSCRdLZO.js","assets/clone-IE0Tnwxn.js","assets/cose-bilkent-S5V4N54A-CfeoQnK-.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-CuSqcxrm.js","assets/chunk-TZMSLE5B-GrDvKWzz.js","assets/flowDiagram-NV44I4VS-CVd2p2Br.js","assets/chunk-FMBD7UC4-s7Uar1x2.js","assets/chunk-55IACEB6-DxOFWSAF.js","assets/chunk-QN33PNHL-DC20K06j.js","assets/channel-BYCxsEk5.js","assets/erDiagram-Q2GNP2WA-DbVLZtGY.js","assets/gitGraphDiagram-V2S2FVAM-B0Y7WTbj.js","assets/chunk-4BX2VUAB-N8tlmsFc.js","assets/chunk-QZHKN3VN-6mPLLfRu.js","assets/treemap-GDKQZRPO-DCcRUg7I.js","assets/ganttDiagram-JELNMOA3-6NsYNEcf.js","assets/linear-BVAPTXI-.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-p6CQsk4A.js","assets/pieDiagram-ADFJNKIX-76JJOJvZ.js","assets/arc-BVQeKKx9.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-iKXJUo4i.js","assets/xychartDiagram-PRI3JC2R-DQKFjqLB.js","assets/requirementDiagram-UZGBJVZJ-B0uk_5yk.js","assets/sequenceDiagram-WL72ISMW-DFnXuPNE.js","assets/classDiagram-2ON5EDUG-fO59bj9m.js","assets/chunk-B4BG7PRW-C1tSyN_l.js","assets/classDiagram-v2-WZHVMYZB-fO59bj9m.js","assets/stateDiagram-FKZM4ZOC-BZjZXttD.js","assets/chunk-DI55MBZ5-BTmIrFZd.js","assets/stateDiagram-v2-4FDKWEC3-C_R3IF0y.js","assets/journeyDiagram-XKPGCS4Q-DR4cvYtN.js","assets/timeline-definition-IT6M3QCI-Kkhw0x0F.js","assets/mindmap-definition-VGOIOE7T-DUJXw6w6.js","assets/kanban-definition-3W4ZIXB7-JPOdtj9o.js","assets/sankeyDiagram-TZEHDZUN-O3weNg52.js","assets/diagram-S2PKOQOG-ZL3Kts-u.js","assets/diagram-QEK2KX5R-DiZLndjJ.js","assets/blockDiagram-VD42YOAC-CexS18Qs.js","assets/architectureDiagram-VXUJARFQ-B4I8KFTn.js","assets/diagram-PSM6KHXK-IAjJ50CC.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);
|
|
@@ -257,6 +257,13 @@ function getUiStrings(language) {
|
|
|
257
257
|
emergencyStop: "紧急停止",
|
|
258
258
|
resumeAll: "全部继续",
|
|
259
259
|
continueLabel: "继续",
|
|
260
|
+
retryPanelTitleRetrying: "正在重试",
|
|
261
|
+
retryPanelAttemptPrefix: "已重试 ",
|
|
262
|
+
retryPanelAttemptConnector: " / ",
|
|
263
|
+
retryPanelAttemptSuffix: " 次",
|
|
264
|
+
retryPanelCountdownPrefix: "下次重试倒计时 ",
|
|
265
|
+
retryPanelRunningAttemptPrefix: "正在进行第 ",
|
|
266
|
+
retryPanelRunningAttemptSuffix: " 次重试…",
|
|
260
267
|
stoppedByYou: "已由你停止",
|
|
261
268
|
stoppedByEmergencyStop: "已被紧急停止终止",
|
|
262
269
|
interruptedByServerRestart: "因服务器重启而中断",
|
|
@@ -579,6 +586,13 @@ function getUiStrings(language) {
|
|
|
579
586
|
emergencyStop: "Emergency stop",
|
|
580
587
|
resumeAll: "Resume all",
|
|
581
588
|
continueLabel: "Continue",
|
|
589
|
+
retryPanelTitleRetrying: "Retrying",
|
|
590
|
+
retryPanelAttemptPrefix: "Attempt ",
|
|
591
|
+
retryPanelAttemptConnector: " / ",
|
|
592
|
+
retryPanelAttemptSuffix: "",
|
|
593
|
+
retryPanelCountdownPrefix: "Next retry in ",
|
|
594
|
+
retryPanelRunningAttemptPrefix: "Running retry attempt ",
|
|
595
|
+
retryPanelRunningAttemptSuffix: "...",
|
|
582
596
|
stoppedByYou: "Stopped by you",
|
|
583
597
|
stoppedByEmergencyStop: "Stopped by emergency stop",
|
|
584
598
|
interruptedByServerRestart: "Interrupted by server restart",
|
|
@@ -1236,8 +1250,24 @@ class ApiClient {
|
|
|
1236
1250
|
async getTaskDocuments() {
|
|
1237
1251
|
return this.request("/api/task-documents");
|
|
1238
1252
|
}
|
|
1239
|
-
async getToolsRegistry() {
|
|
1240
|
-
|
|
1253
|
+
async getToolsRegistry(options) {
|
|
1254
|
+
const params = new URLSearchParams({ ts: String(Date.now()) });
|
|
1255
|
+
if (typeof options?.agentId === "string" && options.agentId.trim() !== "") {
|
|
1256
|
+
params.set("agentId", options.agentId.trim());
|
|
1257
|
+
}
|
|
1258
|
+
if (typeof options?.taskDocPath === "string" && options.taskDocPath.trim() !== "") {
|
|
1259
|
+
params.set("taskDocPath", options.taskDocPath.trim());
|
|
1260
|
+
}
|
|
1261
|
+
if (typeof options?.rootId === "string" && options.rootId.trim() !== "") {
|
|
1262
|
+
params.set("rootId", options.rootId.trim());
|
|
1263
|
+
}
|
|
1264
|
+
if (typeof options?.selfId === "string" && options.selfId.trim() !== "") {
|
|
1265
|
+
params.set("selfId", options.selfId.trim());
|
|
1266
|
+
}
|
|
1267
|
+
if (options?.status === "running" || options?.status === "completed" || options?.status === "archived") {
|
|
1268
|
+
params.set("status", options.status);
|
|
1269
|
+
}
|
|
1270
|
+
return this.request(`/api/tools-registry?${params.toString()}`);
|
|
1241
1271
|
}
|
|
1242
1272
|
async getRtwsDiligence(lang) {
|
|
1243
1273
|
return this.request(`/api/rtws/diligence?lang=${encodeURIComponent(lang)}`);
|
|
@@ -97268,12 +97298,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
97268
97298
|
registerLayoutLoaders([
|
|
97269
97299
|
{
|
|
97270
97300
|
name: "dagre",
|
|
97271
|
-
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-
|
|
97301
|
+
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-DsiyUZhi.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
|
|
97272
97302
|
},
|
|
97273
97303
|
...[
|
|
97274
97304
|
{
|
|
97275
97305
|
name: "cose-bilkent",
|
|
97276
|
-
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-
|
|
97306
|
+
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-CfeoQnK-.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
|
|
97277
97307
|
}
|
|
97278
97308
|
]
|
|
97279
97309
|
]);
|
|
@@ -97713,7 +97743,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
97713
97743
|
}, "detector");
|
|
97714
97744
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
97715
97745
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97716
|
-
const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-
|
|
97746
|
+
const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-CuSqcxrm.js");
|
|
97717
97747
|
return { diagram: diagram22 };
|
|
97718
97748
|
}, true ? __vite__mapDeps([8,9]) : void 0);
|
|
97719
97749
|
return { id, diagram: diagram2 };
|
|
@@ -97733,7 +97763,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97733
97763
|
}, "detector");
|
|
97734
97764
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
97735
97765
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97736
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
97766
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CVd2p2Br.js");
|
|
97737
97767
|
return { diagram: diagram22 };
|
|
97738
97768
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
97739
97769
|
return { id: id2, diagram: diagram2 };
|
|
@@ -97759,7 +97789,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97759
97789
|
}, "detector");
|
|
97760
97790
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
97761
97791
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97762
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
97792
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CVd2p2Br.js");
|
|
97763
97793
|
return { diagram: diagram22 };
|
|
97764
97794
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
97765
97795
|
return { id: id3, diagram: diagram2 };
|
|
@@ -97776,7 +97806,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
97776
97806
|
}, "detector");
|
|
97777
97807
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
97778
97808
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97779
|
-
const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-
|
|
97809
|
+
const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DbVLZtGY.js");
|
|
97780
97810
|
return { diagram: diagram22 };
|
|
97781
97811
|
}, true ? __vite__mapDeps([15,12,13,14]) : void 0);
|
|
97782
97812
|
return { id: id4, diagram: diagram2 };
|
|
@@ -97793,7 +97823,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
97793
97823
|
}, "detector");
|
|
97794
97824
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
97795
97825
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97796
|
-
const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
97826
|
+
const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-B0Y7WTbj.js");
|
|
97797
97827
|
return { diagram: diagram22 };
|
|
97798
97828
|
}, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
|
|
97799
97829
|
return { id: id5, diagram: diagram2 };
|
|
@@ -97810,7 +97840,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
97810
97840
|
}, "detector");
|
|
97811
97841
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
97812
97842
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97813
|
-
const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-
|
|
97843
|
+
const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-6NsYNEcf.js");
|
|
97814
97844
|
return { diagram: diagram22 };
|
|
97815
97845
|
}, true ? __vite__mapDeps([20,21,22,23]) : void 0);
|
|
97816
97846
|
return { id: id6, diagram: diagram2 };
|
|
@@ -97827,7 +97857,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
97827
97857
|
}, "detector");
|
|
97828
97858
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
97829
97859
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97830
|
-
const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-
|
|
97860
|
+
const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-p6CQsk4A.js");
|
|
97831
97861
|
return { diagram: diagram22 };
|
|
97832
97862
|
}, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
|
|
97833
97863
|
return { id: id7, diagram: diagram2 };
|
|
@@ -97843,7 +97873,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
97843
97873
|
}, "detector");
|
|
97844
97874
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
97845
97875
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97846
|
-
const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-
|
|
97876
|
+
const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-76JJOJvZ.js");
|
|
97847
97877
|
return { diagram: diagram22 };
|
|
97848
97878
|
}, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
|
|
97849
97879
|
return { id: id8, diagram: diagram2 };
|
|
@@ -97859,7 +97889,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
97859
97889
|
}, "detector");
|
|
97860
97890
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
97861
97891
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97862
|
-
const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
97892
|
+
const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-iKXJUo4i.js");
|
|
97863
97893
|
return { diagram: diagram22 };
|
|
97864
97894
|
}, true ? __vite__mapDeps([28,21,22,23]) : void 0);
|
|
97865
97895
|
return { id: id9, diagram: diagram2 };
|
|
@@ -97876,7 +97906,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
97876
97906
|
}, "detector");
|
|
97877
97907
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
97878
97908
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97879
|
-
const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-
|
|
97909
|
+
const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-DQKFjqLB.js");
|
|
97880
97910
|
return { diagram: diagram22 };
|
|
97881
97911
|
}, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
|
|
97882
97912
|
return { id: id10, diagram: diagram2 };
|
|
@@ -97893,7 +97923,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
97893
97923
|
}, "detector");
|
|
97894
97924
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
97895
97925
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97896
|
-
const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
97926
|
+
const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-B0uk_5yk.js");
|
|
97897
97927
|
return { diagram: diagram22 };
|
|
97898
97928
|
}, true ? __vite__mapDeps([30,12,13]) : void 0);
|
|
97899
97929
|
return { id: id11, diagram: diagram2 };
|
|
@@ -97910,7 +97940,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
97910
97940
|
}, "detector");
|
|
97911
97941
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
97912
97942
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97913
|
-
const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-
|
|
97943
|
+
const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-DFnXuPNE.js");
|
|
97914
97944
|
return { diagram: diagram22 };
|
|
97915
97945
|
}, true ? __vite__mapDeps([31,9,18]) : void 0);
|
|
97916
97946
|
return { id: id12, diagram: diagram2 };
|
|
@@ -97930,7 +97960,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97930
97960
|
}, "detector");
|
|
97931
97961
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
97932
97962
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97933
|
-
const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-
|
|
97963
|
+
const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-fO59bj9m.js");
|
|
97934
97964
|
return { diagram: diagram22 };
|
|
97935
97965
|
}, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
|
|
97936
97966
|
return { id: id13, diagram: diagram2 };
|
|
@@ -97950,7 +97980,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97950
97980
|
}, "detector");
|
|
97951
97981
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
97952
97982
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97953
|
-
const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
97983
|
+
const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-fO59bj9m.js");
|
|
97954
97984
|
return { diagram: diagram22 };
|
|
97955
97985
|
}, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
|
|
97956
97986
|
return { id: id14, diagram: diagram2 };
|
|
@@ -97970,7 +98000,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97970
98000
|
}, "detector");
|
|
97971
98001
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
97972
98002
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97973
|
-
const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-
|
|
98003
|
+
const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-BZjZXttD.js");
|
|
97974
98004
|
return { diagram: diagram22 };
|
|
97975
98005
|
}, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
|
|
97976
98006
|
return { id: id15, diagram: diagram2 };
|
|
@@ -97993,7 +98023,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97993
98023
|
}, "detector");
|
|
97994
98024
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
97995
98025
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97996
|
-
const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
98026
|
+
const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-C_R3IF0y.js");
|
|
97997
98027
|
return { diagram: diagram22 };
|
|
97998
98028
|
}, true ? __vite__mapDeps([37,36,12,13]) : void 0);
|
|
97999
98029
|
return { id: id16, diagram: diagram2 };
|
|
@@ -98010,7 +98040,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
98010
98040
|
}, "detector");
|
|
98011
98041
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
98012
98042
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98013
|
-
const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
98043
|
+
const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-DR4cvYtN.js");
|
|
98014
98044
|
return { diagram: diagram22 };
|
|
98015
98045
|
}, true ? __vite__mapDeps([38,9,11,26]) : void 0);
|
|
98016
98046
|
return { id: id17, diagram: diagram2 };
|
|
@@ -98080,7 +98110,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
98080
98110
|
}, "detector");
|
|
98081
98111
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
98082
98112
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98083
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
98113
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CVd2p2Br.js");
|
|
98084
98114
|
return { diagram: diagram22 };
|
|
98085
98115
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
98086
98116
|
return { id: id18, diagram: diagram2 };
|
|
@@ -98097,7 +98127,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
98097
98127
|
}, "detector");
|
|
98098
98128
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
98099
98129
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98100
|
-
const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-
|
|
98130
|
+
const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-Kkhw0x0F.js");
|
|
98101
98131
|
return { diagram: diagram22 };
|
|
98102
98132
|
}, true ? __vite__mapDeps([39,26]) : void 0);
|
|
98103
98133
|
return { id: id19, diagram: diagram2 };
|
|
@@ -98114,7 +98144,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
98114
98144
|
}, "detector");
|
|
98115
98145
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
98116
98146
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98117
|
-
const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-
|
|
98147
|
+
const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-DUJXw6w6.js");
|
|
98118
98148
|
return { diagram: diagram22 };
|
|
98119
98149
|
}, true ? __vite__mapDeps([40,12,13]) : void 0);
|
|
98120
98150
|
return { id: id20, diagram: diagram2 };
|
|
@@ -98131,7 +98161,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
98131
98161
|
}, "detector");
|
|
98132
98162
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
98133
98163
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98134
|
-
const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-
|
|
98164
|
+
const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-JPOdtj9o.js");
|
|
98135
98165
|
return { diagram: diagram22 };
|
|
98136
98166
|
}, true ? __vite__mapDeps([41,11]) : void 0);
|
|
98137
98167
|
return { id: id21, diagram: diagram2 };
|
|
@@ -98148,7 +98178,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
98148
98178
|
}, "detector");
|
|
98149
98179
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
98150
98180
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98151
|
-
const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
98181
|
+
const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-O3weNg52.js");
|
|
98152
98182
|
return { diagram: diagram22 };
|
|
98153
98183
|
}, true ? __vite__mapDeps([42,27,22]) : void 0);
|
|
98154
98184
|
return { id: id22, diagram: diagram2 };
|
|
@@ -98165,7 +98195,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
98165
98195
|
}, "detector");
|
|
98166
98196
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
98167
98197
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98168
|
-
const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-
|
|
98198
|
+
const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-ZL3Kts-u.js");
|
|
98169
98199
|
return { diagram: diagram22 };
|
|
98170
98200
|
}, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
|
|
98171
98201
|
return { id: id23, diagram: diagram2 };
|
|
@@ -98181,7 +98211,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
98181
98211
|
}, "detector");
|
|
98182
98212
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
98183
98213
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98184
|
-
const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-
|
|
98214
|
+
const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-DiZLndjJ.js");
|
|
98185
98215
|
return { diagram: diagram22 };
|
|
98186
98216
|
}, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
|
|
98187
98217
|
return { id: id24, diagram: diagram2 };
|
|
@@ -98197,7 +98227,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
98197
98227
|
}, "detector");
|
|
98198
98228
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
98199
98229
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98200
|
-
const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-
|
|
98230
|
+
const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-CexS18Qs.js");
|
|
98201
98231
|
return { diagram: diagram22 };
|
|
98202
98232
|
}, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
|
|
98203
98233
|
return { id: id25, diagram: diagram2 };
|
|
@@ -98214,7 +98244,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
98214
98244
|
}, "detector");
|
|
98215
98245
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
98216
98246
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98217
|
-
const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-
|
|
98247
|
+
const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-B4I8KFTn.js");
|
|
98218
98248
|
return { diagram: diagram22 };
|
|
98219
98249
|
}, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
|
|
98220
98250
|
return { id: id26, diagram: diagram2 };
|
|
@@ -98231,7 +98261,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
98231
98261
|
}, "detector");
|
|
98232
98262
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
98233
98263
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
98234
|
-
const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-
|
|
98264
|
+
const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-IAjJ50CC.js");
|
|
98235
98265
|
return { diagram: diagram22 };
|
|
98236
98266
|
}, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
|
|
98237
98267
|
return { id: id27, diagram: diagram2 };
|
|
@@ -99509,7 +99539,6 @@ const CALLING_EXPAND_STEP_VIEWPORT_RATIO = 1 / 3;
|
|
|
99509
99539
|
const AUTO_SCROLL_FOLLOW_THRESHOLD_PX = 32;
|
|
99510
99540
|
const AUTO_SCROLL_WHEEL_RESISTANCE_PX = 56;
|
|
99511
99541
|
const AUTO_SCROLL_WHEEL_DECAY_MS = 520;
|
|
99512
|
-
const AUTO_SCROLL_WHEEL_SETTLE_POLL_MS = 96;
|
|
99513
99542
|
const AUTO_SCROLL_WHEEL_MAX_RESISTANCE = 1.8;
|
|
99514
99543
|
const AUTO_SCROLL_WHEEL_IDLE_EPSILON = 0.03;
|
|
99515
99544
|
class DomindsDialogContainer extends HTMLElement {
|
|
@@ -99520,19 +99549,25 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99520
99549
|
this.serverWorkLanguage = "en";
|
|
99521
99550
|
this.runState = null;
|
|
99522
99551
|
this.suppressEvents = false;
|
|
99523
|
-
this.
|
|
99552
|
+
this.autoScrollMode = "following";
|
|
99524
99553
|
this.autoScrollPinnedToBottom = true;
|
|
99525
|
-
this.
|
|
99554
|
+
this.autoScrollLastRemainingPx = 0;
|
|
99526
99555
|
this.scrollContainer = null;
|
|
99527
99556
|
this.boundOnScrollContainerScroll = null;
|
|
99528
99557
|
this.boundOnScrollContainerWheel = null;
|
|
99558
|
+
this.boundOnScrollContainerPointerDown = null;
|
|
99559
|
+
this.boundOnWindowPointerUp = null;
|
|
99560
|
+
this.boundOnWindowKeyDown = null;
|
|
99529
99561
|
this.autoScrollResizeObserver = null;
|
|
99530
99562
|
this.autoScrollResizeScrollRaf = null;
|
|
99531
99563
|
this.autoScrollResizeObservedEl = null;
|
|
99564
|
+
this.autoScrollRealignRaf = null;
|
|
99532
99565
|
this.autoScrollWheelResistance = 0;
|
|
99533
99566
|
this.autoScrollWheelLastDecayAtMs = 0;
|
|
99534
99567
|
this.autoScrollWheelLastUpEventAtMs = 0;
|
|
99535
|
-
this.
|
|
99568
|
+
this.autoScrollPointerActive = false;
|
|
99569
|
+
this.autoScrollKeyboardIntent = "none";
|
|
99570
|
+
this.autoScrollKeyboardIntentRaf = null;
|
|
99536
99571
|
this.teammateCallingSectionBySeq = /* @__PURE__ */ new Map();
|
|
99537
99572
|
this.callingSectionByCallId = /* @__PURE__ */ new Map();
|
|
99538
99573
|
this.pendingCallTimingById = /* @__PURE__ */ new Map();
|
|
@@ -99542,6 +99577,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99542
99577
|
this.queuedUserBubbleByMsgId = /* @__PURE__ */ new Map();
|
|
99543
99578
|
this.pendingTeammateCallAnchorByGenseq = /* @__PURE__ */ new Map();
|
|
99544
99579
|
this.progressiveExpandObserverByTarget = /* @__PURE__ */ new WeakMap();
|
|
99580
|
+
this.retryPanelState = { kind: "hidden" };
|
|
99545
99581
|
this.pendingScrollRequest = null;
|
|
99546
99582
|
this.highlightSeq = 0;
|
|
99547
99583
|
this.pendingHighlight = null;
|
|
@@ -99679,13 +99715,13 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99679
99715
|
if (name !== "ui-language") return;
|
|
99680
99716
|
const parsed = normalizeLanguageCode(newValue || "");
|
|
99681
99717
|
this.uiLanguage = parsed ?? "en";
|
|
99682
|
-
this.updateResumePanel();
|
|
99683
99718
|
}
|
|
99684
99719
|
async connectedCallback() {
|
|
99685
99720
|
const parsed = normalizeLanguageCode(this.getAttribute("ui-language") || "");
|
|
99686
99721
|
this.uiLanguage = parsed ?? "en";
|
|
99687
99722
|
this.render();
|
|
99688
99723
|
this.ensureScrollContainerListener();
|
|
99724
|
+
this.ensureAutoScrollWindowListeners();
|
|
99689
99725
|
this.installCallSiteScrollListeners();
|
|
99690
99726
|
await this.loadTeamConfiguration();
|
|
99691
99727
|
const sr = this.shadowRoot;
|
|
@@ -99823,6 +99859,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99823
99859
|
}
|
|
99824
99860
|
disconnectedCallback() {
|
|
99825
99861
|
this.detachScrollContainerListener();
|
|
99862
|
+
this.detachAutoScrollWindowListeners();
|
|
99826
99863
|
this.cleanup();
|
|
99827
99864
|
}
|
|
99828
99865
|
installCallSiteScrollListeners() {
|
|
@@ -99917,10 +99954,43 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99917
99954
|
if (container && wheelListener) {
|
|
99918
99955
|
container.removeEventListener("wheel", wheelListener);
|
|
99919
99956
|
}
|
|
99957
|
+
const pointerDownListener = this.boundOnScrollContainerPointerDown;
|
|
99958
|
+
if (container && pointerDownListener) {
|
|
99959
|
+
container.removeEventListener("pointerdown", pointerDownListener);
|
|
99960
|
+
}
|
|
99920
99961
|
this.scrollContainer = null;
|
|
99921
99962
|
this.boundOnScrollContainerScroll = null;
|
|
99922
99963
|
this.boundOnScrollContainerWheel = null;
|
|
99923
|
-
this.
|
|
99964
|
+
this.boundOnScrollContainerPointerDown = null;
|
|
99965
|
+
this.resetAutoScrollTransientState();
|
|
99966
|
+
}
|
|
99967
|
+
ensureAutoScrollWindowListeners() {
|
|
99968
|
+
if (this.boundOnWindowPointerUp === null) {
|
|
99969
|
+
this.boundOnWindowPointerUp = () => {
|
|
99970
|
+
this.autoScrollPointerActive = false;
|
|
99971
|
+
};
|
|
99972
|
+
window.addEventListener("pointerup", this.boundOnWindowPointerUp, { passive: true });
|
|
99973
|
+
window.addEventListener("pointercancel", this.boundOnWindowPointerUp, { passive: true });
|
|
99974
|
+
}
|
|
99975
|
+
if (this.boundOnWindowKeyDown === null) {
|
|
99976
|
+
this.boundOnWindowKeyDown = (event) => {
|
|
99977
|
+
this.handleAutoScrollKeyDown(event);
|
|
99978
|
+
};
|
|
99979
|
+
window.addEventListener("keydown", this.boundOnWindowKeyDown, { passive: true });
|
|
99980
|
+
}
|
|
99981
|
+
}
|
|
99982
|
+
detachAutoScrollWindowListeners() {
|
|
99983
|
+
if (this.boundOnWindowPointerUp !== null) {
|
|
99984
|
+
window.removeEventListener("pointerup", this.boundOnWindowPointerUp);
|
|
99985
|
+
window.removeEventListener("pointercancel", this.boundOnWindowPointerUp);
|
|
99986
|
+
this.boundOnWindowPointerUp = null;
|
|
99987
|
+
}
|
|
99988
|
+
if (this.boundOnWindowKeyDown !== null) {
|
|
99989
|
+
window.removeEventListener("keydown", this.boundOnWindowKeyDown);
|
|
99990
|
+
this.boundOnWindowKeyDown = null;
|
|
99991
|
+
}
|
|
99992
|
+
this.autoScrollPointerActive = false;
|
|
99993
|
+
this.clearAutoScrollKeyboardIntent();
|
|
99924
99994
|
}
|
|
99925
99995
|
ensureScrollContainerListener() {
|
|
99926
99996
|
const container = this.parentElement instanceof HTMLElement ? this.parentElement : null;
|
|
@@ -99936,8 +100006,14 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99936
100006
|
this.boundOnScrollContainerWheel = (event) => {
|
|
99937
100007
|
this.handleAutoScrollWheel(event);
|
|
99938
100008
|
};
|
|
100009
|
+
this.boundOnScrollContainerPointerDown = () => {
|
|
100010
|
+
this.autoScrollPointerActive = true;
|
|
100011
|
+
};
|
|
99939
100012
|
container.addEventListener("scroll", this.boundOnScrollContainerScroll, { passive: true });
|
|
99940
100013
|
container.addEventListener("wheel", this.boundOnScrollContainerWheel, { passive: true });
|
|
100014
|
+
container.addEventListener("pointerdown", this.boundOnScrollContainerPointerDown, {
|
|
100015
|
+
passive: true
|
|
100016
|
+
});
|
|
99941
100017
|
this.refreshAutoScrollStateFromScroll(container);
|
|
99942
100018
|
}
|
|
99943
100019
|
getScrollContainerRemainingPx(container) {
|
|
@@ -99946,10 +100022,17 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99946
100022
|
isScrollContainerAtBottom(container) {
|
|
99947
100023
|
return this.getScrollContainerRemainingPx(container) <= AUTO_SCROLL_FOLLOW_THRESHOLD_PX;
|
|
99948
100024
|
}
|
|
99949
|
-
|
|
99950
|
-
|
|
99951
|
-
|
|
99952
|
-
|
|
100025
|
+
isAutoScrollFollowing() {
|
|
100026
|
+
return this.autoScrollMode === "following";
|
|
100027
|
+
}
|
|
100028
|
+
resetAutoScrollWheelResistance() {
|
|
100029
|
+
this.autoScrollWheelResistance = 0;
|
|
100030
|
+
this.autoScrollWheelLastDecayAtMs = 0;
|
|
100031
|
+
this.autoScrollWheelLastUpEventAtMs = 0;
|
|
100032
|
+
}
|
|
100033
|
+
resetAutoScrollTransientState() {
|
|
100034
|
+
this.resetAutoScrollWheelResistance();
|
|
100035
|
+
this.clearAutoScrollKeyboardIntent();
|
|
99953
100036
|
}
|
|
99954
100037
|
decayAutoScrollWheelResistance(nowMs) {
|
|
99955
100038
|
if (this.autoScrollWheelLastDecayAtMs === 0) {
|
|
@@ -99969,40 +100052,140 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99969
100052
|
getAutoScrollWheelResistancePx(nowMs) {
|
|
99970
100053
|
return this.decayAutoScrollWheelResistance(nowMs) * AUTO_SCROLL_WHEEL_RESISTANCE_PX;
|
|
99971
100054
|
}
|
|
99972
|
-
|
|
99973
|
-
|
|
99974
|
-
|
|
100055
|
+
clearAutoScrollKeyboardIntent() {
|
|
100056
|
+
if (this.autoScrollKeyboardIntentRaf !== null) {
|
|
100057
|
+
cancelAnimationFrame(this.autoScrollKeyboardIntentRaf);
|
|
100058
|
+
this.autoScrollKeyboardIntentRaf = null;
|
|
100059
|
+
}
|
|
100060
|
+
this.autoScrollKeyboardIntent = "none";
|
|
100061
|
+
}
|
|
100062
|
+
scheduleAutoScrollKeyboardIntentClear() {
|
|
100063
|
+
if (this.autoScrollKeyboardIntentRaf !== null) return;
|
|
100064
|
+
this.autoScrollKeyboardIntentRaf = requestAnimationFrame(() => {
|
|
100065
|
+
this.autoScrollKeyboardIntentRaf = null;
|
|
100066
|
+
this.autoScrollKeyboardIntent = "none";
|
|
100067
|
+
});
|
|
100068
|
+
}
|
|
100069
|
+
pauseAutoScroll() {
|
|
100070
|
+
this.autoScrollMode = "paused";
|
|
100071
|
+
this.resetAutoScrollWheelResistance();
|
|
99975
100072
|
this.updateScrollToBottomButton();
|
|
99976
100073
|
}
|
|
100074
|
+
resumeAutoScroll() {
|
|
100075
|
+
this.autoScrollMode = "following";
|
|
100076
|
+
this.autoScrollPinnedToBottom = true;
|
|
100077
|
+
this.autoScrollLastRemainingPx = 0;
|
|
100078
|
+
this.autoScrollPointerActive = false;
|
|
100079
|
+
this.clearAutoScrollKeyboardIntent();
|
|
100080
|
+
this.resetAutoScrollWheelResistance();
|
|
100081
|
+
this.updateScrollToBottomButton();
|
|
100082
|
+
}
|
|
100083
|
+
isEditableTarget(target) {
|
|
100084
|
+
if (!(target instanceof HTMLElement)) return false;
|
|
100085
|
+
if (target.isContentEditable) return true;
|
|
100086
|
+
const tagName = target.tagName;
|
|
100087
|
+
return tagName === "INPUT" || tagName === "TEXTAREA" || tagName === "SELECT";
|
|
100088
|
+
}
|
|
100089
|
+
isAutoScrollNavigationKey(key) {
|
|
100090
|
+
return key === "Home" || key === "End" || key === "PageUp" || key === "PageDown" || key === "ArrowUp" || key === "ArrowDown" || key === " " || key === "Spacebar";
|
|
100091
|
+
}
|
|
100092
|
+
isTowardLatestNavigationKey(event) {
|
|
100093
|
+
if (event.key === "End" || event.key === "PageDown" || event.key === "ArrowDown") {
|
|
100094
|
+
return true;
|
|
100095
|
+
}
|
|
100096
|
+
if (event.key === " " || event.key === "Spacebar") {
|
|
100097
|
+
return event.shiftKey !== true;
|
|
100098
|
+
}
|
|
100099
|
+
return false;
|
|
100100
|
+
}
|
|
100101
|
+
didUserMoveTowardLatest(nextRemainingPx) {
|
|
100102
|
+
return nextRemainingPx <= this.autoScrollLastRemainingPx + 0.5;
|
|
100103
|
+
}
|
|
100104
|
+
tryResumeAutoScrollFromBottom() {
|
|
100105
|
+
const container = this.scrollContainer;
|
|
100106
|
+
if (!container) return false;
|
|
100107
|
+
if (this.isAutoScrollFollowing()) return false;
|
|
100108
|
+
if (!this.isScrollContainerAtBottom(container)) return false;
|
|
100109
|
+
this.resumeAutoScroll();
|
|
100110
|
+
this.scrollToBottom({ force: true });
|
|
100111
|
+
return true;
|
|
100112
|
+
}
|
|
100113
|
+
handleAutoScrollKeyDown(event) {
|
|
100114
|
+
if (!this.isAutoScrollNavigationKey(event.key)) return;
|
|
100115
|
+
if (event.defaultPrevented) return;
|
|
100116
|
+
if (event.metaKey || event.ctrlKey || event.altKey) return;
|
|
100117
|
+
if (this.isEditableTarget(event.target)) return;
|
|
100118
|
+
if (this.isTowardLatestNavigationKey(event) && this.tryResumeAutoScrollFromBottom()) {
|
|
100119
|
+
return;
|
|
100120
|
+
}
|
|
100121
|
+
if (this.isTowardLatestNavigationKey(event)) {
|
|
100122
|
+
this.autoScrollKeyboardIntent = "toward_latest";
|
|
100123
|
+
this.scheduleAutoScrollKeyboardIntentClear();
|
|
100124
|
+
return;
|
|
100125
|
+
}
|
|
100126
|
+
this.pauseAutoScroll();
|
|
100127
|
+
}
|
|
100128
|
+
scheduleAutoScrollRealign() {
|
|
100129
|
+
if (this.autoScrollRealignRaf !== null) return;
|
|
100130
|
+
this.autoScrollRealignRaf = requestAnimationFrame(() => {
|
|
100131
|
+
this.autoScrollRealignRaf = null;
|
|
100132
|
+
if (!this.isAutoScrollFollowing()) return;
|
|
100133
|
+
this.scrollToBottom({ force: true });
|
|
100134
|
+
});
|
|
100135
|
+
}
|
|
99977
100136
|
refreshAutoScrollStateFromScroll(container) {
|
|
99978
100137
|
const remainingPx = this.getScrollContainerRemainingPx(container);
|
|
99979
|
-
|
|
99980
|
-
|
|
99981
|
-
this.
|
|
100138
|
+
const atBottom = this.isScrollContainerAtBottom(container);
|
|
100139
|
+
const movedTowardLatest = this.didUserMoveTowardLatest(remainingPx);
|
|
100140
|
+
this.autoScrollPinnedToBottom = atBottom;
|
|
100141
|
+
if (this.autoScrollPointerActive) {
|
|
100142
|
+
if (this.isAutoScrollFollowing()) {
|
|
100143
|
+
if (!movedTowardLatest) {
|
|
100144
|
+
this.pauseAutoScroll();
|
|
100145
|
+
} else if (!atBottom) {
|
|
100146
|
+
this.scheduleAutoScrollRealign();
|
|
100147
|
+
}
|
|
100148
|
+
}
|
|
100149
|
+
this.autoScrollLastRemainingPx = remainingPx;
|
|
100150
|
+
return;
|
|
100151
|
+
}
|
|
100152
|
+
if (this.autoScrollKeyboardIntent === "toward_latest") {
|
|
100153
|
+
if (this.isAutoScrollFollowing() && !atBottom) {
|
|
100154
|
+
this.scheduleAutoScrollRealign();
|
|
100155
|
+
}
|
|
100156
|
+
this.autoScrollLastRemainingPx = remainingPx;
|
|
100157
|
+
this.clearAutoScrollKeyboardIntent();
|
|
100158
|
+
return;
|
|
100159
|
+
}
|
|
100160
|
+
if (this.isAutoScrollFollowing()) {
|
|
100161
|
+
if (!atBottom) {
|
|
100162
|
+
this.scheduleAutoScrollRealign();
|
|
100163
|
+
}
|
|
100164
|
+
this.autoScrollLastRemainingPx = 0;
|
|
100165
|
+
this.updateScrollToBottomButton();
|
|
100166
|
+
return;
|
|
100167
|
+
}
|
|
100168
|
+
this.autoScrollLastRemainingPx = remainingPx;
|
|
100169
|
+
this.updateScrollToBottomButton();
|
|
99982
100170
|
}
|
|
99983
100171
|
resetAutoScrollState(enabled) {
|
|
99984
|
-
|
|
99985
|
-
|
|
99986
|
-
|
|
99987
|
-
|
|
99988
|
-
this.
|
|
99989
|
-
this.
|
|
99990
|
-
this.
|
|
100172
|
+
if (enabled) {
|
|
100173
|
+
this.resumeAutoScroll();
|
|
100174
|
+
return;
|
|
100175
|
+
}
|
|
100176
|
+
this.autoScrollMode = "paused";
|
|
100177
|
+
this.autoScrollPinnedToBottom = false;
|
|
100178
|
+
this.autoScrollLastRemainingPx = AUTO_SCROLL_FOLLOW_THRESHOLD_PX + 1;
|
|
100179
|
+
this.autoScrollPointerActive = false;
|
|
100180
|
+
this.clearAutoScrollKeyboardIntent();
|
|
100181
|
+
this.resetAutoScrollWheelResistance();
|
|
99991
100182
|
this.updateScrollToBottomButton();
|
|
99992
100183
|
}
|
|
99993
|
-
scheduleAutoScrollWheelSettle() {
|
|
99994
|
-
if (!this.autoScrollPinnedToBottom) return;
|
|
99995
|
-
if (this.autoScrollWheelSettleTimer !== null) return;
|
|
99996
|
-
this.autoScrollWheelSettleTimer = window.setTimeout(() => {
|
|
99997
|
-
this.autoScrollWheelSettleTimer = null;
|
|
99998
|
-
this.recomputeAutoScrollEnabled(performance.now());
|
|
99999
|
-
if (this.autoScrollWheelResistance >= AUTO_SCROLL_WHEEL_IDLE_EPSILON) {
|
|
100000
|
-
this.scheduleAutoScrollWheelSettle();
|
|
100001
|
-
}
|
|
100002
|
-
}, AUTO_SCROLL_WHEEL_SETTLE_POLL_MS);
|
|
100003
|
-
}
|
|
100004
100184
|
handleAutoScrollWheel(event) {
|
|
100005
100185
|
if (!Number.isFinite(event.deltaY) || event.deltaY === 0) return;
|
|
100186
|
+
if (event.deltaY > 0 && this.tryResumeAutoScrollFromBottom()) {
|
|
100187
|
+
return;
|
|
100188
|
+
}
|
|
100006
100189
|
const nowMs = performance.now();
|
|
100007
100190
|
const currentResistance = this.decayAutoScrollWheelResistance(nowMs);
|
|
100008
100191
|
const intensity = Math.min(1.25, Math.abs(event.deltaY) / 90);
|
|
@@ -100014,12 +100197,13 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100014
100197
|
currentResistance + 0.18 + intensity * 0.32 + continuityBoost
|
|
100015
100198
|
);
|
|
100016
100199
|
this.autoScrollWheelLastUpEventAtMs = nowMs;
|
|
100200
|
+
if (this.isAutoScrollFollowing() && this.getAutoScrollWheelResistancePx(nowMs) > AUTO_SCROLL_FOLLOW_THRESHOLD_PX) {
|
|
100201
|
+
this.pauseAutoScroll();
|
|
100202
|
+
}
|
|
100017
100203
|
} else {
|
|
100018
100204
|
this.autoScrollWheelResistance = Math.max(0, currentResistance - (0.1 + intensity * 0.2));
|
|
100019
100205
|
}
|
|
100020
100206
|
this.autoScrollWheelLastDecayAtMs = nowMs;
|
|
100021
|
-
this.recomputeAutoScrollEnabled(nowMs);
|
|
100022
|
-
this.scheduleAutoScrollWheelSettle();
|
|
100023
100207
|
}
|
|
100024
100208
|
async loadTeamConfiguration() {
|
|
100025
100209
|
try {
|
|
@@ -100113,7 +100297,8 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100113
100297
|
resetForCourse(course) {
|
|
100114
100298
|
this.clearGenerationGlow();
|
|
100115
100299
|
this.stopAutoScrollObservation();
|
|
100116
|
-
this.
|
|
100300
|
+
this.resetAutoScrollTransientState();
|
|
100301
|
+
this.clearRetryPanel();
|
|
100117
100302
|
this.generationBubble = void 0;
|
|
100118
100303
|
this.thinkingSection = void 0;
|
|
100119
100304
|
this.markdownSection = void 0;
|
|
@@ -100136,7 +100321,8 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100136
100321
|
cleanup() {
|
|
100137
100322
|
this.clearGenerationGlow();
|
|
100138
100323
|
this.stopAutoScrollObservation();
|
|
100139
|
-
this.
|
|
100324
|
+
this.resetAutoScrollTransientState();
|
|
100325
|
+
this.clearRetryPanel();
|
|
100140
100326
|
this.previousDialog = void 0;
|
|
100141
100327
|
this.runState = null;
|
|
100142
100328
|
this.generationBubble = void 0;
|
|
@@ -100158,6 +100344,10 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100158
100344
|
}
|
|
100159
100345
|
}
|
|
100160
100346
|
stopAutoScrollObservation() {
|
|
100347
|
+
if (this.autoScrollRealignRaf !== null) {
|
|
100348
|
+
cancelAnimationFrame(this.autoScrollRealignRaf);
|
|
100349
|
+
this.autoScrollRealignRaf = null;
|
|
100350
|
+
}
|
|
100161
100351
|
if (this.autoScrollResizeScrollRaf !== null) {
|
|
100162
100352
|
cancelAnimationFrame(this.autoScrollResizeScrollRaf);
|
|
100163
100353
|
this.autoScrollResizeScrollRaf = null;
|
|
@@ -100172,7 +100362,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100172
100362
|
if (typeof ResizeObserver === "undefined") return;
|
|
100173
100363
|
this.autoScrollResizeObservedEl = el;
|
|
100174
100364
|
this.autoScrollResizeObserver = new ResizeObserver(() => {
|
|
100175
|
-
if (!this.
|
|
100365
|
+
if (!this.isAutoScrollFollowing()) return;
|
|
100176
100366
|
if (this.autoScrollResizeScrollRaf !== null) return;
|
|
100177
100367
|
this.autoScrollResizeScrollRaf = requestAnimationFrame(() => {
|
|
100178
100368
|
this.autoScrollResizeScrollRaf = null;
|
|
@@ -100232,7 +100422,9 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100232
100422
|
break;
|
|
100233
100423
|
}
|
|
100234
100424
|
this.runState = event.runState;
|
|
100235
|
-
|
|
100425
|
+
if (event.runState.kind === "interrupted" || event.runState.kind === "dead") {
|
|
100426
|
+
this.clearRetryPanel();
|
|
100427
|
+
}
|
|
100236
100428
|
break;
|
|
100237
100429
|
case "dlg_run_state_marker_evt": {
|
|
100238
100430
|
if (!this.currentDialog || event.dialog.selfId !== this.currentDialog.selfId || event.dialog.rootId !== this.currentDialog.rootId) {
|
|
@@ -100243,10 +100435,10 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100243
100435
|
kind: "interrupted",
|
|
100244
100436
|
reason: event.reason ?? { kind: "system_stop", detail: "Interrupted." }
|
|
100245
100437
|
};
|
|
100438
|
+
this.clearRetryPanel();
|
|
100246
100439
|
} else if (this.runState !== null && this.runState.kind === "interrupted") {
|
|
100247
100440
|
this.runState = { kind: "proceeding" };
|
|
100248
100441
|
}
|
|
100249
|
-
this.updateResumePanel();
|
|
100250
100442
|
let reasonText;
|
|
100251
100443
|
const reason = event.reason;
|
|
100252
100444
|
if (reason) {
|
|
@@ -100414,6 +100606,9 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100414
100606
|
}
|
|
100415
100607
|
// === GENERATING EVENTS (Frontend Bubble Management) ===
|
|
100416
100608
|
handleGeneratingStart(seq2, timestamp2, msgId) {
|
|
100609
|
+
if (this.retryPanelState.kind !== "hidden" && this.retryPanelState.genseq !== seq2) {
|
|
100610
|
+
this.clearRetryPanel();
|
|
100611
|
+
}
|
|
100417
100612
|
const applyPendingCallAnchor = (bubble2) => {
|
|
100418
100613
|
const pendingAnchor = this.pendingTeammateCallAnchorByGenseq.get(seq2);
|
|
100419
100614
|
if (!pendingAnchor) return;
|
|
@@ -100664,6 +100859,9 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100664
100859
|
bubble.classList.remove("generating");
|
|
100665
100860
|
bubble.classList.add("completed");
|
|
100666
100861
|
bubble.setAttribute("data-finalized", "true");
|
|
100862
|
+
if (this.retryPanelState.kind !== "hidden" && this.retryPanelState.genseq === seq2) {
|
|
100863
|
+
this.clearRetryPanel();
|
|
100864
|
+
}
|
|
100667
100865
|
this.thinkingSection = void 0;
|
|
100668
100866
|
this.markdownSection = void 0;
|
|
100669
100867
|
this.callingSection = void 0;
|
|
@@ -100677,10 +100875,8 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100677
100875
|
`.generation-bubble[data-seq="${String(seq2)}"]`
|
|
100678
100876
|
) : null;
|
|
100679
100877
|
if (targetBubble) {
|
|
100680
|
-
|
|
100681
|
-
|
|
100682
|
-
if (this.generationBubble && this.generationBubble.getAttribute("data-seq") === String(seq2)) {
|
|
100683
|
-
this.generationBubble = void 0;
|
|
100878
|
+
this.resetGenerationBubbleForRetry(targetBubble);
|
|
100879
|
+
this.generationBubble = targetBubble;
|
|
100684
100880
|
this.thinkingSection = void 0;
|
|
100685
100881
|
this.markdownSection = void 0;
|
|
100686
100882
|
this.callingSection = void 0;
|
|
@@ -100864,6 +101060,28 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
100864
101060
|
}
|
|
100865
101061
|
}
|
|
100866
101062
|
}
|
|
101063
|
+
resetGenerationBubbleForRetry(bubble) {
|
|
101064
|
+
bubble.classList.remove("completed");
|
|
101065
|
+
bubble.classList.add("generating");
|
|
101066
|
+
bubble.setAttribute("data-finalized", "false");
|
|
101067
|
+
const modelEl = bubble.querySelector(".bubble-author-model");
|
|
101068
|
+
if (modelEl) {
|
|
101069
|
+
modelEl.textContent = "";
|
|
101070
|
+
}
|
|
101071
|
+
const body = bubble.querySelector(".bubble-body");
|
|
101072
|
+
if (!body) return;
|
|
101073
|
+
let sawDivider = false;
|
|
101074
|
+
for (const child of Array.from(body.children)) {
|
|
101075
|
+
if (!(child instanceof HTMLElement)) continue;
|
|
101076
|
+
if (child.classList.contains("user-response-divider")) {
|
|
101077
|
+
sawDivider = true;
|
|
101078
|
+
continue;
|
|
101079
|
+
}
|
|
101080
|
+
if (sawDivider) {
|
|
101081
|
+
child.remove();
|
|
101082
|
+
}
|
|
101083
|
+
}
|
|
101084
|
+
}
|
|
100867
101085
|
compactWebSearchItemId(itemId) {
|
|
100868
101086
|
const raw = itemId.trim();
|
|
100869
101087
|
if (raw.length <= 28) return raw;
|
|
@@ -101004,6 +101222,24 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
101004
101222
|
})();
|
|
101005
101223
|
mentionEl.textContent = this.uiLanguage === "zh" ? `诉请对象: ${joined}${sessionPart}` : `Mentions: ${joined}${sessionPart}`;
|
|
101006
101224
|
}
|
|
101225
|
+
renderSpecialCallingHeadline(section, callName) {
|
|
101226
|
+
const headlineEl = section.querySelector(".calling-headline");
|
|
101227
|
+
if (!headlineEl) return;
|
|
101228
|
+
switch (callName) {
|
|
101229
|
+
case "tellaskBack": {
|
|
101230
|
+
const assignment = this.currentDialog?.assignmentFromSup;
|
|
101231
|
+
const requesterLabel = assignment && assignment.originMemberId.trim() !== "" ? this.formatCallerLabel(assignment) : void 0;
|
|
101232
|
+
headlineEl.textContent = this.uiLanguage === "zh" ? `回问对象: 上游诉请者${requesterLabel ? ` ${requesterLabel}` : ""}` : `Ask-back target: upstream requester${requesterLabel ? ` ${requesterLabel}` : ""}`;
|
|
101233
|
+
return;
|
|
101234
|
+
}
|
|
101235
|
+
case "askHuman":
|
|
101236
|
+
headlineEl.textContent = this.uiLanguage === "zh" ? "诉请对象: 人类用户" : "Target: human user";
|
|
101237
|
+
return;
|
|
101238
|
+
case "freshBootsReasoning":
|
|
101239
|
+
headlineEl.textContent = this.uiLanguage === "zh" ? "支线类型: 扪心自问(FBR)" : "Sideline type: FBR";
|
|
101240
|
+
return;
|
|
101241
|
+
}
|
|
101242
|
+
}
|
|
101007
101243
|
renderCallTiming(section, state2, startedAtMs, endedAtMs) {
|
|
101008
101244
|
const timingEl = section.querySelector(".calling-timing");
|
|
101009
101245
|
if (!timingEl) return;
|
|
@@ -101211,6 +101447,11 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
101211
101447
|
case "tellaskSessionless":
|
|
101212
101448
|
this.renderMentionList(callingSection, mentionList);
|
|
101213
101449
|
break;
|
|
101450
|
+
case "tellaskBack":
|
|
101451
|
+
case "askHuman":
|
|
101452
|
+
case "freshBootsReasoning":
|
|
101453
|
+
this.renderSpecialCallingHeadline(callingSection, event.callName);
|
|
101454
|
+
break;
|
|
101214
101455
|
}
|
|
101215
101456
|
const bodyEl = callingSection.querySelector(".calling-body");
|
|
101216
101457
|
if (bodyEl) {
|
|
@@ -102297,52 +102538,65 @@ ${event.content}`;
|
|
|
102297
102538
|
if (trimmed.length <= 240) return trimmed;
|
|
102298
102539
|
return `${trimmed.slice(0, 240)}...`;
|
|
102299
102540
|
}
|
|
102300
|
-
|
|
102301
|
-
|
|
102302
|
-
|
|
102303
|
-
|
|
102304
|
-
|
|
102541
|
+
describeRetryFailure(event) {
|
|
102542
|
+
if (typeof event.status === "number") {
|
|
102543
|
+
return `HTTP ${event.status}`;
|
|
102544
|
+
}
|
|
102545
|
+
if (typeof event.code === "string" && event.code.trim() !== "") {
|
|
102546
|
+
return event.code.trim();
|
|
102305
102547
|
}
|
|
102306
|
-
|
|
102548
|
+
if (event.failureKind === "retriable") {
|
|
102549
|
+
return this.uiLanguage === "zh" ? "可重试错误" : "Retriable error";
|
|
102550
|
+
}
|
|
102551
|
+
if (event.failureKind === "rejected") {
|
|
102552
|
+
return this.uiLanguage === "zh" ? "请求被拒绝" : "Request rejected";
|
|
102553
|
+
}
|
|
102554
|
+
return this.uiLanguage === "zh" ? "致命错误" : "Fatal error";
|
|
102307
102555
|
}
|
|
102308
102556
|
handleLlmRetry(event) {
|
|
102309
|
-
|
|
102310
|
-
|
|
102311
|
-
|
|
102312
|
-
|
|
102313
|
-
const
|
|
102314
|
-
`.generation-bubble[data-seq="${String(event.genseq)}"]`
|
|
102315
|
-
) : null;
|
|
102316
|
-
if (!targetBubble) return;
|
|
102317
|
-
let section = targetBubble.querySelector(".retry-section");
|
|
102318
|
-
if (!section) {
|
|
102319
|
-
section = document.createElement("div");
|
|
102320
|
-
section.className = "retry-section";
|
|
102321
|
-
section.innerHTML = `
|
|
102322
|
-
<div class="section-header">
|
|
102323
|
-
<span class="section-icon icon-mask dc-icon-refresh" aria-hidden="true"></span>
|
|
102324
|
-
<span class="section-title">${this.uiLanguage === "zh" ? "重试中" : "Retrying"}</span>
|
|
102325
|
-
</div>
|
|
102326
|
-
<div class="retry-items"></div>
|
|
102327
|
-
`;
|
|
102328
|
-
const body = targetBubble.querySelector(".bubble-body");
|
|
102329
|
-
(body || targetBubble).appendChild(section);
|
|
102330
|
-
}
|
|
102331
|
-
const items = section.querySelector(".retry-items");
|
|
102332
|
-
if (!items) return;
|
|
102333
|
-
const item = document.createElement("div");
|
|
102334
|
-
item.className = `retry-item ${event.phase === "exhausted" ? "retry-item-final" : ""}`;
|
|
102335
|
-
const statusText = typeof event.status === "number" ? `HTTP ${event.status}` : typeof event.code === "string" && event.code !== "" ? event.code : event.failureKind;
|
|
102336
|
-
const metaText = event.phase === "retrying" ? this.uiLanguage === "zh" ? `第 ${event.attempt}/${event.totalAttempts} 次,等待 ${event.backoffMs ?? 0}ms,${statusText}` : `Attempt ${event.attempt}/${event.totalAttempts}, wait ${event.backoffMs ?? 0}ms, ${statusText}` : this.uiLanguage === "zh" ? `已耗尽重试 ${event.attempt}/${event.totalAttempts},${statusText}` : `Retries exhausted ${event.attempt}/${event.totalAttempts}, ${statusText}`;
|
|
102557
|
+
if (event.phase === "exhausted") {
|
|
102558
|
+
this.clearRetryPanel();
|
|
102559
|
+
return;
|
|
102560
|
+
}
|
|
102561
|
+
const failureLabel = this.describeRetryFailure(event);
|
|
102337
102562
|
const errorText = this.summarizeRetryError(event.error);
|
|
102338
|
-
|
|
102339
|
-
|
|
102340
|
-
|
|
102341
|
-
|
|
102342
|
-
|
|
102343
|
-
|
|
102344
|
-
|
|
102345
|
-
|
|
102563
|
+
if (event.phase === "waiting") {
|
|
102564
|
+
const backoffMs = Math.max(0, Math.floor(event.backoffMs ?? 0));
|
|
102565
|
+
this.retryPanelState = {
|
|
102566
|
+
kind: "retry-waiting",
|
|
102567
|
+
genseq: event.genseq,
|
|
102568
|
+
attempt: event.attempt,
|
|
102569
|
+
totalAttempts: event.totalAttempts,
|
|
102570
|
+
provider: event.provider,
|
|
102571
|
+
failureLabel,
|
|
102572
|
+
error: errorText,
|
|
102573
|
+
nextRetryAtMs: Date.now() + backoffMs
|
|
102574
|
+
};
|
|
102575
|
+
} else {
|
|
102576
|
+
this.retryPanelState = {
|
|
102577
|
+
kind: "retry-running",
|
|
102578
|
+
genseq: event.genseq,
|
|
102579
|
+
attempt: event.attempt,
|
|
102580
|
+
totalAttempts: event.totalAttempts,
|
|
102581
|
+
provider: event.provider,
|
|
102582
|
+
failureLabel,
|
|
102583
|
+
error: errorText
|
|
102584
|
+
};
|
|
102585
|
+
}
|
|
102586
|
+
this.emitRetryPanelStateChanged();
|
|
102587
|
+
}
|
|
102588
|
+
clearRetryPanel() {
|
|
102589
|
+
this.retryPanelState = { kind: "hidden" };
|
|
102590
|
+
this.emitRetryPanelStateChanged();
|
|
102591
|
+
}
|
|
102592
|
+
emitRetryPanelStateChanged() {
|
|
102593
|
+
this.dispatchEvent(
|
|
102594
|
+
new CustomEvent("dialog-retry-panel-state", {
|
|
102595
|
+
detail: { state: this.retryPanelState },
|
|
102596
|
+
bubbles: true,
|
|
102597
|
+
composed: true
|
|
102598
|
+
})
|
|
102599
|
+
);
|
|
102346
102600
|
}
|
|
102347
102601
|
handleProtocolError(err) {
|
|
102348
102602
|
const container = this.shadowRoot?.querySelector(".messages");
|
|
@@ -102450,15 +102704,6 @@ ${event.content}`;
|
|
|
102450
102704
|
<style>${this.getStyles()}</style>
|
|
102451
102705
|
<div class="container">
|
|
102452
102706
|
<div class="messages"></div>
|
|
102453
|
-
<div id="resume-panel" class="resume-panel hidden">
|
|
102454
|
-
<div class="resume-text">
|
|
102455
|
-
<div class="resume-title">${t2.continueLabel}</div>
|
|
102456
|
-
<div id="resume-reason" class="resume-reason"></div>
|
|
102457
|
-
</div>
|
|
102458
|
-
<div class="resume-actions">
|
|
102459
|
-
<button id="resume-btn" class="resume-btn" type="button">${t2.continueLabel}</button>
|
|
102460
|
-
</div>
|
|
102461
|
-
</div>
|
|
102462
102707
|
<div id="scroll-to-bottom-wrap" class="scroll-to-bottom-wrap hidden">
|
|
102463
102708
|
<button
|
|
102464
102709
|
id="scroll-to-bottom-btn"
|
|
@@ -102472,14 +102717,6 @@ ${event.content}`;
|
|
|
102472
102717
|
</div>
|
|
102473
102718
|
</div>
|
|
102474
102719
|
`;
|
|
102475
|
-
const btn = this.shadowRoot.querySelector("#resume-btn");
|
|
102476
|
-
if (btn) {
|
|
102477
|
-
btn.onclick = () => {
|
|
102478
|
-
const dialog = this.currentDialog;
|
|
102479
|
-
if (!dialog) return;
|
|
102480
|
-
this.wsManager.sendRaw({ type: "resume_dialog", dialog });
|
|
102481
|
-
};
|
|
102482
|
-
}
|
|
102483
102720
|
const scrollBtn = this.shadowRoot.querySelector(
|
|
102484
102721
|
"#scroll-to-bottom-btn"
|
|
102485
102722
|
);
|
|
@@ -102489,7 +102726,6 @@ ${event.content}`;
|
|
|
102489
102726
|
this.scrollToBottom({ force: true });
|
|
102490
102727
|
};
|
|
102491
102728
|
}
|
|
102492
|
-
this.updateResumePanel();
|
|
102493
102729
|
this.updateScrollToBottomButton();
|
|
102494
102730
|
}
|
|
102495
102731
|
updateScrollToBottomButton() {
|
|
@@ -102497,48 +102733,12 @@ ${event.content}`;
|
|
|
102497
102733
|
if (!root2) return;
|
|
102498
102734
|
const wrap = root2.querySelector("#scroll-to-bottom-wrap");
|
|
102499
102735
|
if (!wrap) return;
|
|
102500
|
-
const shouldShow = this.scrollContainer !== null && !this.
|
|
102736
|
+
const shouldShow = this.scrollContainer !== null && !this.isAutoScrollFollowing();
|
|
102501
102737
|
wrap.classList.toggle("hidden", !shouldShow);
|
|
102502
102738
|
}
|
|
102503
|
-
|
|
102504
|
-
|
|
102505
|
-
|
|
102506
|
-
const panel = root2.querySelector("#resume-panel");
|
|
102507
|
-
const reasonEl = root2.querySelector("#resume-reason");
|
|
102508
|
-
const btn = root2.querySelector("#resume-btn");
|
|
102509
|
-
const titleEl = root2.querySelector(".resume-title");
|
|
102510
|
-
if (!panel || !reasonEl || !btn) return;
|
|
102511
|
-
const t2 = getUiStrings(this.uiLanguage);
|
|
102512
|
-
if (titleEl) titleEl.textContent = t2.continueLabel;
|
|
102513
|
-
btn.textContent = t2.continueLabel;
|
|
102514
|
-
const state2 = this.runState;
|
|
102515
|
-
const canShow = !!this.currentDialog && state2 !== null && state2.kind === "interrupted";
|
|
102516
|
-
panel.classList.toggle("hidden", !canShow);
|
|
102517
|
-
if (!canShow) {
|
|
102518
|
-
reasonEl.textContent = "";
|
|
102519
|
-
btn.disabled = true;
|
|
102520
|
-
return;
|
|
102521
|
-
}
|
|
102522
|
-
btn.disabled = false;
|
|
102523
|
-
const reason = state2.reason;
|
|
102524
|
-
switch (reason.kind) {
|
|
102525
|
-
case "user_stop":
|
|
102526
|
-
reasonEl.textContent = t2.stoppedByYou;
|
|
102527
|
-
break;
|
|
102528
|
-
case "emergency_stop":
|
|
102529
|
-
reasonEl.textContent = t2.stoppedByEmergencyStop;
|
|
102530
|
-
break;
|
|
102531
|
-
case "server_restart":
|
|
102532
|
-
reasonEl.textContent = t2.interruptedByServerRestart;
|
|
102533
|
-
break;
|
|
102534
|
-
case "system_stop":
|
|
102535
|
-
reasonEl.textContent = reason.detail;
|
|
102536
|
-
break;
|
|
102537
|
-
default: {
|
|
102538
|
-
const _exhaustive = reason;
|
|
102539
|
-
reasonEl.textContent = String(_exhaustive);
|
|
102540
|
-
}
|
|
102541
|
-
}
|
|
102739
|
+
stabilizeAutoFollowAfterViewportChange() {
|
|
102740
|
+
if (!this.isAutoScrollFollowing()) return;
|
|
102741
|
+
this.scheduleAutoScrollRealign();
|
|
102542
102742
|
}
|
|
102543
102743
|
formatInterruptionReason(reason) {
|
|
102544
102744
|
const t2 = getUiStrings(this.uiLanguage);
|
|
@@ -102646,52 +102846,6 @@ ${event.content}`;
|
|
|
102646
102846
|
height: 18px;
|
|
102647
102847
|
}
|
|
102648
102848
|
|
|
102649
|
-
.resume-panel {
|
|
102650
|
-
margin: 0 12px 12px 12px;
|
|
102651
|
-
padding: 9px 10px;
|
|
102652
|
-
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
102653
|
-
border-radius: 8px;
|
|
102654
|
-
background: var(
|
|
102655
|
-
--dominds-sidebar-bg,
|
|
102656
|
-
var(--dominds-bg, var(--color-bg-secondary, #ffffff))
|
|
102657
|
-
);
|
|
102658
|
-
display: flex;
|
|
102659
|
-
align-items: center;
|
|
102660
|
-
justify-content: space-between;
|
|
102661
|
-
gap: 8px;
|
|
102662
|
-
}
|
|
102663
|
-
|
|
102664
|
-
.resume-panel.hidden {
|
|
102665
|
-
display: none;
|
|
102666
|
-
}
|
|
102667
|
-
|
|
102668
|
-
.resume-title {
|
|
102669
|
-
font-weight: 600;
|
|
102670
|
-
font-size: var(--dominds-font-size-md, 13px);
|
|
102671
|
-
color: var(--dominds-fg, var(--color-fg-primary, #0f172a));
|
|
102672
|
-
}
|
|
102673
|
-
|
|
102674
|
-
.resume-reason {
|
|
102675
|
-
font-size: var(--dominds-font-size-sm, 12px);
|
|
102676
|
-
color: var(--dominds-muted, var(--color-fg-tertiary, #64748b));
|
|
102677
|
-
margin-top: 1px;
|
|
102678
|
-
}
|
|
102679
|
-
|
|
102680
|
-
.resume-btn {
|
|
102681
|
-
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
102682
|
-
background: var(--dominds-primary, var(--color-accent-primary, #007acc));
|
|
102683
|
-
color: white;
|
|
102684
|
-
padding: 6px 8px;
|
|
102685
|
-
border-radius: 8px;
|
|
102686
|
-
cursor: pointer;
|
|
102687
|
-
font-weight: 600;
|
|
102688
|
-
}
|
|
102689
|
-
|
|
102690
|
-
.resume-btn:disabled {
|
|
102691
|
-
opacity: 0.6;
|
|
102692
|
-
cursor: not-allowed;
|
|
102693
|
-
}
|
|
102694
|
-
|
|
102695
102849
|
.run-marker {
|
|
102696
102850
|
padding: 2px 3px;
|
|
102697
102851
|
}
|
|
@@ -103192,58 +103346,6 @@ ${event.content}`;
|
|
|
103192
103346
|
margin-bottom: 0;
|
|
103193
103347
|
}
|
|
103194
103348
|
|
|
103195
|
-
.retry-section {
|
|
103196
|
-
margin: 4px 0;
|
|
103197
|
-
padding: 4px 6px;
|
|
103198
|
-
border-radius: 6px;
|
|
103199
|
-
border-left: 3px solid var(--dominds-warning, var(--color-warning, #f59e0b));
|
|
103200
|
-
background: color-mix(
|
|
103201
|
-
in srgb,
|
|
103202
|
-
var(--dominds-warning, #f59e0b) 10%,
|
|
103203
|
-
var(--dominds-bg, var(--color-bg-primary, #ffffff))
|
|
103204
|
-
);
|
|
103205
|
-
}
|
|
103206
|
-
|
|
103207
|
-
.retry-items {
|
|
103208
|
-
display: flex;
|
|
103209
|
-
flex-direction: column;
|
|
103210
|
-
gap: 4px;
|
|
103211
|
-
}
|
|
103212
|
-
|
|
103213
|
-
.retry-item {
|
|
103214
|
-
padding: 2px 0;
|
|
103215
|
-
}
|
|
103216
|
-
|
|
103217
|
-
.retry-item-final {
|
|
103218
|
-
border-top: 1px dashed
|
|
103219
|
-
color-mix(
|
|
103220
|
-
in srgb,
|
|
103221
|
-
var(--dominds-warning, #f59e0b) 45%,
|
|
103222
|
-
transparent
|
|
103223
|
-
);
|
|
103224
|
-
margin-top: 2px;
|
|
103225
|
-
padding-top: 6px;
|
|
103226
|
-
}
|
|
103227
|
-
|
|
103228
|
-
.retry-meta {
|
|
103229
|
-
font-size: var(--dominds-font-size-sm, 12px);
|
|
103230
|
-
color: var(--dominds-fg, var(--color-fg-secondary, #475569));
|
|
103231
|
-
opacity: 0.92;
|
|
103232
|
-
}
|
|
103233
|
-
|
|
103234
|
-
.retry-error {
|
|
103235
|
-
font-size: var(--dominds-font-size-sm, 12px);
|
|
103236
|
-
color: var(--dominds-fg, var(--color-fg-secondary, #475569));
|
|
103237
|
-
white-space: pre-wrap;
|
|
103238
|
-
word-break: break-word;
|
|
103239
|
-
}
|
|
103240
|
-
|
|
103241
|
-
.retry-suggestion {
|
|
103242
|
-
margin-top: 2px;
|
|
103243
|
-
font-size: var(--dominds-font-size-sm, 12px);
|
|
103244
|
-
color: var(--dominds-fg-muted, var(--color-fg-muted, #64748b));
|
|
103245
|
-
}
|
|
103246
|
-
|
|
103247
103349
|
/* Calling section styles (nested inside markdown) */
|
|
103248
103350
|
.calling-section {
|
|
103249
103351
|
margin: 4px 0;
|
|
@@ -103894,8 +103996,7 @@ ${event.content}`;
|
|
|
103894
103996
|
if (!scrollContainer) return;
|
|
103895
103997
|
const forceScroll = options !== void 0 && options.force === true;
|
|
103896
103998
|
if (!forceScroll) {
|
|
103897
|
-
this.
|
|
103898
|
-
if (!this.autoScrollEnabled) return;
|
|
103999
|
+
if (!this.isAutoScrollFollowing()) return;
|
|
103899
104000
|
}
|
|
103900
104001
|
const doScroll = () => {
|
|
103901
104002
|
const maxScroll = scrollContainer.scrollHeight - scrollContainer.clientHeight;
|
|
@@ -106817,6 +106918,7 @@ const TEAM_MGMT_MANUAL_TOPIC_KEYS = [
|
|
|
106817
106918
|
"team",
|
|
106818
106919
|
"member-properties",
|
|
106819
106920
|
"minds",
|
|
106921
|
+
"skills",
|
|
106820
106922
|
"priming",
|
|
106821
106923
|
"env",
|
|
106822
106924
|
"permissions",
|
|
@@ -106840,6 +106942,9 @@ const TEAM_MGMT_MANUAL_TOPIC_META = {
|
|
|
106840
106942
|
minds: {
|
|
106841
106943
|
titleI18n: { zh: "角色资产(.minds/team/<id>/*)", en: "Minds Assets (.minds/team/<id>/*)" }
|
|
106842
106944
|
},
|
|
106945
|
+
skills: {
|
|
106946
|
+
titleI18n: { zh: "技能(.minds/skills/*)", en: "Skills (.minds/skills/*)" }
|
|
106947
|
+
},
|
|
106843
106948
|
priming: {
|
|
106844
106949
|
titleI18n: {
|
|
106845
106950
|
zh: "启动脚本(.minds/priming/*)",
|
|
@@ -106870,6 +106975,7 @@ const TEAM_MGMT_MANUAL_UI_TOPIC_ORDER = [
|
|
|
106870
106975
|
"builtin-defaults",
|
|
106871
106976
|
"mcp",
|
|
106872
106977
|
"minds",
|
|
106978
|
+
"skills",
|
|
106873
106979
|
"priming",
|
|
106874
106980
|
"env",
|
|
106875
106981
|
"troubleshooting"
|
|
@@ -106890,6 +106996,7 @@ const TEAM_MGMT_MANUAL_UI_TOOL_TOPICS_BY_KEY = {
|
|
|
106890
106996
|
// Other
|
|
106891
106997
|
mcp: ["mcp"],
|
|
106892
106998
|
minds: ["minds"],
|
|
106999
|
+
skills: ["skills"],
|
|
106893
107000
|
priming: ["priming"],
|
|
106894
107001
|
env: ["env"],
|
|
106895
107002
|
troubleshooting: ["troubleshooting"]
|
|
@@ -111122,6 +111229,8 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
|
|
|
111122
111229
|
this.generatingDialogKeys = /* @__PURE__ */ new Set();
|
|
111123
111230
|
this.currentDialog = null;
|
|
111124
111231
|
this.currentDialogStatus = null;
|
|
111232
|
+
this.retryPanelState = { kind: "hidden" };
|
|
111233
|
+
this.retryPanelTicker = null;
|
|
111125
111234
|
this.teamMembers = [];
|
|
111126
111235
|
this.defaultResponder = null;
|
|
111127
111236
|
this.taskDocuments = [];
|
|
@@ -111277,6 +111386,7 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
|
|
|
111277
111386
|
this.runControlRefreshTimers = [];
|
|
111278
111387
|
this.toolsRegistryTimestamp = "";
|
|
111279
111388
|
this.toolsRegistryToolsets = [];
|
|
111389
|
+
this.toolsRegistryRequestSeq = 0;
|
|
111280
111390
|
this.q4hQuestionCount = 0;
|
|
111281
111391
|
this.q4hQuestions = [];
|
|
111282
111392
|
this.q4hDialogContexts = [];
|
|
@@ -111803,6 +111913,7 @@ const _DomindsApp = class _DomindsApp extends HTMLElement {
|
|
|
111803
111913
|
this.updateToolsRegistryUi();
|
|
111804
111914
|
this.updateContextHealthUi();
|
|
111805
111915
|
this.updateToastHistoryUi();
|
|
111916
|
+
this.updateDialogViewportPanels();
|
|
111806
111917
|
}
|
|
111807
111918
|
applyUiLanguageSelectDecorations(t2) {
|
|
111808
111919
|
if (!this.shadowRoot) return;
|
|
@@ -112168,6 +112279,7 @@ ${formatUiLanguageOptionLabel({
|
|
|
112168
112279
|
}
|
|
112169
112280
|
disconnectedCallback() {
|
|
112170
112281
|
this.wsManager.disconnect();
|
|
112282
|
+
this.stopRetryPanelTicker();
|
|
112171
112283
|
for (const t2 of this.runControlRefreshTimers) {
|
|
112172
112284
|
clearTimeout(t2);
|
|
112173
112285
|
}
|
|
@@ -112236,6 +112348,7 @@ ${formatUiLanguageOptionLabel({
|
|
|
112236
112348
|
this.applyUiLanguageToDom();
|
|
112237
112349
|
this.updateProblemsUi();
|
|
112238
112350
|
this.updateToolsRegistryUi();
|
|
112351
|
+
this.updateDialogViewportPanels();
|
|
112239
112352
|
}
|
|
112240
112353
|
/**
|
|
112241
112354
|
* Surgical update: Update only the dialog list without destroying the container.
|
|
@@ -114124,14 +114237,130 @@ ${formatUiLanguageOptionLabel({
|
|
|
114124
114237
|
background: var(--dominds-sidebar-bg, #f8f9fa);
|
|
114125
114238
|
}
|
|
114126
114239
|
|
|
114240
|
+
.conversation-viewport {
|
|
114241
|
+
position: relative;
|
|
114242
|
+
flex: 1;
|
|
114243
|
+
min-height: 0;
|
|
114244
|
+
}
|
|
114245
|
+
|
|
114127
114246
|
/* Conversation area scrolls independently */
|
|
114128
|
-
|
|
114129
|
-
|
|
114130
|
-
|
|
114131
|
-
|
|
114132
|
-
|
|
114133
|
-
|
|
114134
|
-
|
|
114247
|
+
.conversation-scroll-area {
|
|
114248
|
+
flex: 1;
|
|
114249
|
+
height: 100%;
|
|
114250
|
+
min-height: 0;
|
|
114251
|
+
overflow-y: auto;
|
|
114252
|
+
contain: content;
|
|
114253
|
+
background: var(--dominds-sidebar-bg, #f8f9fa);
|
|
114254
|
+
}
|
|
114255
|
+
|
|
114256
|
+
.dialog-viewport-panels {
|
|
114257
|
+
display: flex;
|
|
114258
|
+
flex-direction: column;
|
|
114259
|
+
gap: 10px;
|
|
114260
|
+
flex-shrink: 0;
|
|
114261
|
+
padding: 0 12px 12px 12px;
|
|
114262
|
+
background: var(--dominds-sidebar-bg, #f8f9fa);
|
|
114263
|
+
}
|
|
114264
|
+
|
|
114265
|
+
.dialog-viewport-panels.hidden,
|
|
114266
|
+
.dialog-viewport-panel.hidden {
|
|
114267
|
+
display: none;
|
|
114268
|
+
}
|
|
114269
|
+
|
|
114270
|
+
.dialog-viewport-panel {
|
|
114271
|
+
padding: 9px 10px;
|
|
114272
|
+
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
114273
|
+
border-radius: 8px;
|
|
114274
|
+
background: var(
|
|
114275
|
+
--dominds-sidebar-bg,
|
|
114276
|
+
var(--dominds-bg, var(--color-bg-secondary, #ffffff))
|
|
114277
|
+
);
|
|
114278
|
+
}
|
|
114279
|
+
|
|
114280
|
+
.dialog-viewport-panel-header {
|
|
114281
|
+
display: flex;
|
|
114282
|
+
align-items: flex-start;
|
|
114283
|
+
gap: 8px;
|
|
114284
|
+
}
|
|
114285
|
+
|
|
114286
|
+
.dialog-viewport-panel-header .icon-mask {
|
|
114287
|
+
width: 16px;
|
|
114288
|
+
height: 16px;
|
|
114289
|
+
flex: 0 0 auto;
|
|
114290
|
+
margin-top: 1px;
|
|
114291
|
+
}
|
|
114292
|
+
|
|
114293
|
+
.dialog-viewport-panel-text {
|
|
114294
|
+
min-width: 0;
|
|
114295
|
+
display: flex;
|
|
114296
|
+
flex-direction: column;
|
|
114297
|
+
gap: 1px;
|
|
114298
|
+
}
|
|
114299
|
+
|
|
114300
|
+
.dialog-viewport-panel-title {
|
|
114301
|
+
font-weight: 600;
|
|
114302
|
+
font-size: var(--dominds-font-size-md, 13px);
|
|
114303
|
+
color: var(--dominds-fg, var(--color-fg-primary, #0f172a));
|
|
114304
|
+
}
|
|
114305
|
+
|
|
114306
|
+
.dialog-viewport-panel-summary {
|
|
114307
|
+
font-size: var(--dominds-font-size-sm, 12px);
|
|
114308
|
+
color: var(--dominds-muted, var(--color-fg-tertiary, #64748b));
|
|
114309
|
+
margin-top: 1px;
|
|
114310
|
+
}
|
|
114311
|
+
|
|
114312
|
+
.dialog-viewport-panel-error {
|
|
114313
|
+
margin-top: 4px;
|
|
114314
|
+
font-size: var(--dominds-font-size-sm, 12px);
|
|
114315
|
+
color: var(--dominds-fg, var(--color-fg-secondary, #475569));
|
|
114316
|
+
white-space: pre-wrap;
|
|
114317
|
+
word-break: break-word;
|
|
114318
|
+
}
|
|
114319
|
+
|
|
114320
|
+
.retry-panel {
|
|
114321
|
+
border-color: color-mix(
|
|
114322
|
+
in srgb,
|
|
114323
|
+
var(--dominds-warning, var(--color-warning, #f59e0b)) 40%,
|
|
114324
|
+
var(--dominds-border, var(--color-border-primary, #e2e8f0))
|
|
114325
|
+
);
|
|
114326
|
+
background: color-mix(
|
|
114327
|
+
in srgb,
|
|
114328
|
+
var(--dominds-warning, #f59e0b) 14%,
|
|
114329
|
+
var(--dominds-sidebar-bg, var(--dominds-bg, #ffffff))
|
|
114330
|
+
);
|
|
114331
|
+
}
|
|
114332
|
+
|
|
114333
|
+
.retry-panel .icon-mask {
|
|
114334
|
+
color: var(--dominds-warning, var(--color-warning, #f59e0b));
|
|
114335
|
+
}
|
|
114336
|
+
|
|
114337
|
+
.resume-panel {
|
|
114338
|
+
display: flex;
|
|
114339
|
+
align-items: center;
|
|
114340
|
+
justify-content: space-between;
|
|
114341
|
+
gap: 10px;
|
|
114342
|
+
}
|
|
114343
|
+
|
|
114344
|
+
.dialog-viewport-panel-actions {
|
|
114345
|
+
display: flex;
|
|
114346
|
+
align-items: center;
|
|
114347
|
+
flex-shrink: 0;
|
|
114348
|
+
}
|
|
114349
|
+
|
|
114350
|
+
.dialog-resume-btn {
|
|
114351
|
+
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
114352
|
+
background: var(--dominds-primary, var(--color-accent-primary, #007acc));
|
|
114353
|
+
color: white;
|
|
114354
|
+
padding: 6px 8px;
|
|
114355
|
+
border-radius: 8px;
|
|
114356
|
+
cursor: pointer;
|
|
114357
|
+
font-weight: 600;
|
|
114358
|
+
}
|
|
114359
|
+
|
|
114360
|
+
.dialog-resume-btn:disabled {
|
|
114361
|
+
opacity: 0.6;
|
|
114362
|
+
cursor: not-allowed;
|
|
114363
|
+
}
|
|
114135
114364
|
|
|
114136
114365
|
.q4h-input-wrap {
|
|
114137
114366
|
flex-shrink: 0;
|
|
@@ -115708,9 +115937,32 @@ ${uiLanguageButtonTooltip}">
|
|
|
115708
115937
|
` : ""}
|
|
115709
115938
|
|
|
115710
115939
|
<div class="dialog-section">
|
|
115711
|
-
|
|
115712
|
-
<
|
|
115713
|
-
|
|
115940
|
+
<div class="conversation-viewport">
|
|
115941
|
+
<div class="conversation-scroll-area">
|
|
115942
|
+
<dominds-dialog-container id="dialog-container" ui-language="${this.uiLanguage}"></dominds-dialog-container>
|
|
115943
|
+
</div>
|
|
115944
|
+
</div>
|
|
115945
|
+
<div id="dialog-viewport-panels" class="dialog-viewport-panels hidden">
|
|
115946
|
+
<div id="dialog-retry-panel" class="dialog-viewport-panel retry-panel hidden" data-state="hidden">
|
|
115947
|
+
<div class="dialog-viewport-panel-header">
|
|
115948
|
+
<span class="icon-mask app-icon-refresh" aria-hidden="true"></span>
|
|
115949
|
+
<div class="dialog-viewport-panel-text">
|
|
115950
|
+
<div id="dialog-retry-title" class="dialog-viewport-panel-title"></div>
|
|
115951
|
+
<div id="dialog-retry-summary" class="dialog-viewport-panel-summary"></div>
|
|
115952
|
+
</div>
|
|
115953
|
+
</div>
|
|
115954
|
+
<div id="dialog-retry-error" class="dialog-viewport-panel-error"></div>
|
|
115955
|
+
</div>
|
|
115956
|
+
<div id="dialog-resume-panel" class="dialog-viewport-panel resume-panel hidden">
|
|
115957
|
+
<div class="dialog-viewport-panel-text">
|
|
115958
|
+
<div id="dialog-resume-title" class="dialog-viewport-panel-title">${t2.continueLabel}</div>
|
|
115959
|
+
<div id="dialog-resume-reason" class="dialog-viewport-panel-summary"></div>
|
|
115960
|
+
</div>
|
|
115961
|
+
<div class="dialog-viewport-panel-actions">
|
|
115962
|
+
<button id="dialog-resume-btn" class="dialog-resume-btn" type="button">${t2.continueLabel}</button>
|
|
115963
|
+
</div>
|
|
115964
|
+
</div>
|
|
115965
|
+
</div>
|
|
115714
115966
|
<div class="bottom-panel ${this.bottomPanelExpanded ? "expanded" : "collapsed"}" id="bottom-panel">
|
|
115715
115967
|
<div class="bottom-panel-resize-handle ${this.bottomPanelExpanded ? "" : "hidden"}" id="bottom-panel-resize-handle" role="separator" aria-orientation="horizontal">
|
|
115716
115968
|
<div class="bp-resize-grip left" data-role="resize" aria-hidden="true"></div>
|
|
@@ -116050,6 +116302,11 @@ ${content}`;
|
|
|
116050
116302
|
void this.openCreateDialogFlow({ source: "toolbar" });
|
|
116051
116303
|
return;
|
|
116052
116304
|
}
|
|
116305
|
+
const resumeBtn = target.closest("#dialog-resume-btn");
|
|
116306
|
+
if (resumeBtn) {
|
|
116307
|
+
this.resumeCurrentDialog();
|
|
116308
|
+
return;
|
|
116309
|
+
}
|
|
116053
116310
|
const savePrimingBtn = target.closest("#navibar-save-priming");
|
|
116054
116311
|
if (savePrimingBtn) {
|
|
116055
116312
|
await this.saveCurrentCourseAsPrimingScript();
|
|
@@ -116082,19 +116339,13 @@ ${content}`;
|
|
|
116082
116339
|
case "tools":
|
|
116083
116340
|
this.activityView = { kind: "tools" };
|
|
116084
116341
|
this.updateActivityView();
|
|
116085
|
-
this.
|
|
116086
|
-
this.toolsRegistryTimestamp = "";
|
|
116087
|
-
this.updateToolsRegistryUi();
|
|
116088
|
-
void this.loadToolsRegistry();
|
|
116342
|
+
this.refreshToolsRegistryView();
|
|
116089
116343
|
return;
|
|
116090
116344
|
}
|
|
116091
116345
|
}
|
|
116092
116346
|
const toolsRefresh = target.closest("#tools-registry-refresh");
|
|
116093
116347
|
if (toolsRefresh) {
|
|
116094
|
-
this.
|
|
116095
|
-
this.toolsRegistryTimestamp = "";
|
|
116096
|
-
this.updateToolsRegistryUi();
|
|
116097
|
-
void this.loadToolsRegistry();
|
|
116348
|
+
this.refreshToolsRegistryView();
|
|
116098
116349
|
return;
|
|
116099
116350
|
}
|
|
116100
116351
|
const prevBtn = target.closest("#course-navi-prev");
|
|
@@ -116286,6 +116537,17 @@ ${content}`;
|
|
|
116286
116537
|
input.setDisabled(course !== latest);
|
|
116287
116538
|
}
|
|
116288
116539
|
});
|
|
116540
|
+
dialogContainerEl.addEventListener("dialog-retry-panel-state", (e2) => {
|
|
116541
|
+
const ce2 = e2;
|
|
116542
|
+
const detail = ce2.detail && typeof ce2.detail === "object" ? ce2.detail : null;
|
|
116543
|
+
const state2 = detail?.state;
|
|
116544
|
+
if (!state2 || typeof state2 !== "object" || !("kind" in state2)) {
|
|
116545
|
+
console.warn("Invalid dialog-retry-panel-state payload", ce2.detail);
|
|
116546
|
+
return;
|
|
116547
|
+
}
|
|
116548
|
+
this.retryPanelState = state2;
|
|
116549
|
+
this.updateDialogViewportPanels();
|
|
116550
|
+
});
|
|
116289
116551
|
}
|
|
116290
116552
|
const uiLangButton = this.shadowRoot.querySelector("#ui-language-menu-button");
|
|
116291
116553
|
const uiLangMenu = this.shadowRoot.querySelector("#ui-language-menu");
|
|
@@ -117457,6 +117719,7 @@ ${content}`;
|
|
|
117457
117719
|
clearCurrentDialogSelection() {
|
|
117458
117720
|
this.currentDialog = null;
|
|
117459
117721
|
this.currentDialogStatus = null;
|
|
117722
|
+
this.retryPanelState = { kind: "hidden" };
|
|
117460
117723
|
this.updateBrowserTitle(null);
|
|
117461
117724
|
const root2 = this.shadowRoot;
|
|
117462
117725
|
if (!root2) return;
|
|
@@ -117473,6 +117736,7 @@ ${content}`;
|
|
|
117473
117736
|
this.q4hInput.clearDialog();
|
|
117474
117737
|
this.q4hInput.setRunState(null);
|
|
117475
117738
|
}
|
|
117739
|
+
this.updateDialogViewportPanels();
|
|
117476
117740
|
}
|
|
117477
117741
|
updateBrowserTitle(dialog) {
|
|
117478
117742
|
if (dialog === null) {
|
|
@@ -117939,6 +118203,140 @@ ${content}`;
|
|
|
117939
118203
|
const rootMatch = this.getRootDialog(rootId);
|
|
117940
118204
|
return rootMatch ? rootMatch.status : null;
|
|
117941
118205
|
}
|
|
118206
|
+
ensureRetryPanelTicker() {
|
|
118207
|
+
if (this.retryPanelState.kind !== "retry-waiting") {
|
|
118208
|
+
this.stopRetryPanelTicker();
|
|
118209
|
+
return;
|
|
118210
|
+
}
|
|
118211
|
+
if (this.retryPanelTicker !== null) return;
|
|
118212
|
+
this.retryPanelTicker = window.setInterval(() => {
|
|
118213
|
+
if (this.retryPanelState.kind !== "retry-waiting") {
|
|
118214
|
+
this.stopRetryPanelTicker();
|
|
118215
|
+
return;
|
|
118216
|
+
}
|
|
118217
|
+
this.updateDialogViewportPanels();
|
|
118218
|
+
}, 200);
|
|
118219
|
+
}
|
|
118220
|
+
stopRetryPanelTicker() {
|
|
118221
|
+
if (this.retryPanelTicker === null) return;
|
|
118222
|
+
window.clearInterval(this.retryPanelTicker);
|
|
118223
|
+
this.retryPanelTicker = null;
|
|
118224
|
+
}
|
|
118225
|
+
formatRetryCountdown(remainingMs) {
|
|
118226
|
+
const safeMs = Math.max(0, remainingMs);
|
|
118227
|
+
if (safeMs >= 1e4) {
|
|
118228
|
+
const seconds2 = Math.ceil(safeMs / 1e3);
|
|
118229
|
+
return this.uiLanguage === "zh" ? `${seconds2} 秒` : `${seconds2}s`;
|
|
118230
|
+
}
|
|
118231
|
+
const seconds = (safeMs / 1e3).toFixed(1);
|
|
118232
|
+
return this.uiLanguage === "zh" ? `${seconds} 秒` : `${seconds}s`;
|
|
118233
|
+
}
|
|
118234
|
+
buildRetryWaitingSummary(state2) {
|
|
118235
|
+
const t2 = getUiStrings(this.uiLanguage);
|
|
118236
|
+
const attemptText = `${t2.retryPanelAttemptPrefix}${state2.attempt}${t2.retryPanelAttemptConnector}${state2.totalAttempts}${t2.retryPanelAttemptSuffix}`;
|
|
118237
|
+
const providerText = state2.provider.trim();
|
|
118238
|
+
const failureText = providerText === "" ? state2.failureLabel : `${providerText} · ${state2.failureLabel}`;
|
|
118239
|
+
const remainingMs = Math.max(0, state2.nextRetryAtMs - Date.now());
|
|
118240
|
+
const countdown = this.formatRetryCountdown(remainingMs);
|
|
118241
|
+
return `${attemptText} · ${t2.retryPanelCountdownPrefix}${countdown} · ${failureText}`;
|
|
118242
|
+
}
|
|
118243
|
+
buildRetryRunningSummary(state2) {
|
|
118244
|
+
const t2 = getUiStrings(this.uiLanguage);
|
|
118245
|
+
const attemptText = `${t2.retryPanelRunningAttemptPrefix}${state2.attempt}${t2.retryPanelRunningAttemptSuffix}`;
|
|
118246
|
+
const providerText = state2.provider.trim();
|
|
118247
|
+
const failureText = providerText === "" ? state2.failureLabel : `${providerText} · ${state2.failureLabel}`;
|
|
118248
|
+
return `${attemptText} · ${failureText}`;
|
|
118249
|
+
}
|
|
118250
|
+
getCurrentDialogRunState() {
|
|
118251
|
+
const current = this.currentDialog;
|
|
118252
|
+
if (!current) return null;
|
|
118253
|
+
return this.dialogRunStatesByKey.get(this.dialogKey(current.rootId, current.selfId)) ?? null;
|
|
118254
|
+
}
|
|
118255
|
+
formatInterruptionReason(reason) {
|
|
118256
|
+
const t2 = getUiStrings(this.uiLanguage);
|
|
118257
|
+
switch (reason.kind) {
|
|
118258
|
+
case "user_stop":
|
|
118259
|
+
return t2.stoppedByYou;
|
|
118260
|
+
case "emergency_stop":
|
|
118261
|
+
return t2.stoppedByEmergencyStop;
|
|
118262
|
+
case "server_restart":
|
|
118263
|
+
return t2.interruptedByServerRestart;
|
|
118264
|
+
case "system_stop":
|
|
118265
|
+
return reason.detail;
|
|
118266
|
+
default: {
|
|
118267
|
+
const _exhaustive = reason;
|
|
118268
|
+
return String(_exhaustive);
|
|
118269
|
+
}
|
|
118270
|
+
}
|
|
118271
|
+
}
|
|
118272
|
+
updateDialogViewportPanels() {
|
|
118273
|
+
const root2 = this.shadowRoot;
|
|
118274
|
+
if (!root2) return;
|
|
118275
|
+
const dialogContainer = root2.querySelector(
|
|
118276
|
+
"#dialog-container"
|
|
118277
|
+
);
|
|
118278
|
+
const wrap = root2.querySelector("#dialog-viewport-panels");
|
|
118279
|
+
const retryPanel = root2.querySelector("#dialog-retry-panel");
|
|
118280
|
+
const retryTitle = root2.querySelector("#dialog-retry-title");
|
|
118281
|
+
const retrySummary = root2.querySelector("#dialog-retry-summary");
|
|
118282
|
+
const retryError = root2.querySelector("#dialog-retry-error");
|
|
118283
|
+
const resumePanel = root2.querySelector("#dialog-resume-panel");
|
|
118284
|
+
const resumeTitle = root2.querySelector("#dialog-resume-title");
|
|
118285
|
+
const resumeReason = root2.querySelector("#dialog-resume-reason");
|
|
118286
|
+
const resumeBtn = root2.querySelector("#dialog-resume-btn");
|
|
118287
|
+
if (!wrap || !retryPanel || !retryTitle || !retrySummary || !retryError || !resumePanel || !resumeTitle || !resumeReason || !resumeBtn) {
|
|
118288
|
+
return;
|
|
118289
|
+
}
|
|
118290
|
+
const wrapWasHidden = wrap.classList.contains("hidden");
|
|
118291
|
+
const retryWasHidden = retryPanel.classList.contains("hidden");
|
|
118292
|
+
const resumeWasHidden = resumePanel.classList.contains("hidden");
|
|
118293
|
+
const t2 = getUiStrings(this.uiLanguage);
|
|
118294
|
+
const retryState = this.retryPanelState;
|
|
118295
|
+
const retryVisible = this.currentDialog !== null && retryState.kind !== "hidden";
|
|
118296
|
+
retryPanel.classList.toggle("hidden", !retryVisible);
|
|
118297
|
+
if (!retryVisible) {
|
|
118298
|
+
retryTitle.textContent = "";
|
|
118299
|
+
retrySummary.textContent = "";
|
|
118300
|
+
retryError.textContent = "";
|
|
118301
|
+
this.stopRetryPanelTicker();
|
|
118302
|
+
} else {
|
|
118303
|
+
retryTitle.textContent = t2.retryPanelTitleRetrying;
|
|
118304
|
+
retrySummary.textContent = retryState.kind === "retry-waiting" ? this.buildRetryWaitingSummary(retryState) : this.buildRetryRunningSummary(retryState);
|
|
118305
|
+
retryError.textContent = retryState.error;
|
|
118306
|
+
if (retryState.kind === "retry-waiting") {
|
|
118307
|
+
this.ensureRetryPanelTicker();
|
|
118308
|
+
} else {
|
|
118309
|
+
this.stopRetryPanelTicker();
|
|
118310
|
+
}
|
|
118311
|
+
}
|
|
118312
|
+
const runState = this.getCurrentDialogRunState();
|
|
118313
|
+
const interruptedRunState = this.currentDialog !== null && runState !== null && runState.kind === "interrupted" ? runState : null;
|
|
118314
|
+
const resumeVisible = interruptedRunState !== null;
|
|
118315
|
+
resumePanel.classList.toggle("hidden", !resumeVisible);
|
|
118316
|
+
resumeTitle.textContent = t2.continueLabel;
|
|
118317
|
+
resumeBtn.textContent = t2.continueLabel;
|
|
118318
|
+
resumeBtn.disabled = !resumeVisible;
|
|
118319
|
+
if (!resumeVisible) {
|
|
118320
|
+
resumeReason.textContent = "";
|
|
118321
|
+
} else {
|
|
118322
|
+
resumeReason.textContent = this.formatInterruptionReason(interruptedRunState.reason);
|
|
118323
|
+
}
|
|
118324
|
+
const hasVisiblePanels = retryVisible || resumeVisible;
|
|
118325
|
+
wrap.classList.toggle("hidden", !hasVisiblePanels);
|
|
118326
|
+
if (dialogContainer && (wrapWasHidden !== !hasVisiblePanels || retryWasHidden !== !retryVisible || resumeWasHidden !== !resumeVisible)) {
|
|
118327
|
+
dialogContainer.stabilizeAutoFollowAfterViewportChange();
|
|
118328
|
+
}
|
|
118329
|
+
}
|
|
118330
|
+
resumeCurrentDialog() {
|
|
118331
|
+
if (!this.currentDialog) return;
|
|
118332
|
+
this.wsManager.sendRaw({
|
|
118333
|
+
type: "resume_dialog",
|
|
118334
|
+
dialog: {
|
|
118335
|
+
selfId: this.currentDialog.selfId,
|
|
118336
|
+
rootId: this.currentDialog.rootId
|
|
118337
|
+
}
|
|
118338
|
+
});
|
|
118339
|
+
}
|
|
117942
118340
|
updateInputPanelVisibility() {
|
|
117943
118341
|
const t2 = getUiStrings(this.uiLanguage);
|
|
117944
118342
|
const readOnly = this.currentDialogStatus === "completed" || this.currentDialogStatus === "archived";
|
|
@@ -117964,6 +118362,7 @@ ${content}`;
|
|
|
117964
118362
|
if (this.q4hInput) {
|
|
117965
118363
|
this.q4hInput.setDisabled(disabled);
|
|
117966
118364
|
}
|
|
118365
|
+
this.updateDialogViewportPanels();
|
|
117967
118366
|
}
|
|
117968
118367
|
async applyDialogSelection(dialog, options) {
|
|
117969
118368
|
const selfId = dialog.selfId || dialog.rootId;
|
|
@@ -117988,6 +118387,7 @@ ${content}`;
|
|
|
117988
118387
|
}
|
|
117989
118388
|
this.currentDialog = normalizedDialog;
|
|
117990
118389
|
this.currentDialogStatus = normalizedDialog.status ?? this.resolveDialogStatus(normalizedDialog);
|
|
118390
|
+
this.retryPanelState = { kind: "hidden" };
|
|
117991
118391
|
this.updateInputPanelVisibility();
|
|
117992
118392
|
this.applyDiligenceState({
|
|
117993
118393
|
disableDiligencePush: false,
|
|
@@ -117995,6 +118395,9 @@ ${content}`;
|
|
|
117995
118395
|
remaining: null
|
|
117996
118396
|
});
|
|
117997
118397
|
this.updateBottomPanelFooterUi();
|
|
118398
|
+
if (this.activityView.kind === "tools") {
|
|
118399
|
+
this.refreshToolsRegistryView();
|
|
118400
|
+
}
|
|
117998
118401
|
try {
|
|
117999
118402
|
const dialogContainer = this.shadowRoot?.querySelector("#dialog-container");
|
|
118000
118403
|
if (dialogContainer instanceof DomindsDialogContainer) {
|
|
@@ -118642,8 +119045,35 @@ ${content}`;
|
|
|
118642
119045
|
ts.textContent = this.toolsRegistryTimestamp ? this.toolsRegistryTimestamp : "";
|
|
118643
119046
|
}
|
|
118644
119047
|
}
|
|
119048
|
+
refreshToolsRegistryView() {
|
|
119049
|
+
this.toolsRegistryToolsets = [];
|
|
119050
|
+
this.toolsRegistryTimestamp = "";
|
|
119051
|
+
this.updateToolsRegistryUi();
|
|
119052
|
+
void this.loadToolsRegistry();
|
|
119053
|
+
}
|
|
119054
|
+
getToolsRegistryRequestOptions() {
|
|
119055
|
+
const currentDialog = this.currentDialog;
|
|
119056
|
+
if (!currentDialog) {
|
|
119057
|
+
return {};
|
|
119058
|
+
}
|
|
119059
|
+
const rootDialog = this.getRootDialog(currentDialog.rootId) ?? void 0;
|
|
119060
|
+
const agentId = typeof currentDialog.agentId === "string" && currentDialog.agentId.trim() !== "" ? currentDialog.agentId.trim() : typeof rootDialog?.agentId === "string" && rootDialog.agentId.trim() !== "" ? rootDialog.agentId.trim() : void 0;
|
|
119061
|
+
const taskDocPath = typeof currentDialog.taskDocPath === "string" && currentDialog.taskDocPath.trim() !== "" ? currentDialog.taskDocPath.trim() : typeof rootDialog?.taskDocPath === "string" && rootDialog.taskDocPath.trim() !== "" ? rootDialog.taskDocPath.trim() : void 0;
|
|
119062
|
+
const status = currentDialog.status ?? rootDialog?.status ?? this.currentDialogStatus ?? void 0;
|
|
119063
|
+
return {
|
|
119064
|
+
agentId,
|
|
119065
|
+
taskDocPath,
|
|
119066
|
+
rootId: currentDialog.rootId,
|
|
119067
|
+
selfId: currentDialog.selfId,
|
|
119068
|
+
status
|
|
119069
|
+
};
|
|
119070
|
+
}
|
|
118645
119071
|
async loadToolsRegistry() {
|
|
118646
|
-
const
|
|
119072
|
+
const requestSeq = ++this.toolsRegistryRequestSeq;
|
|
119073
|
+
const res = await this.apiClient.getToolsRegistry(this.getToolsRegistryRequestOptions());
|
|
119074
|
+
if (requestSeq !== this.toolsRegistryRequestSeq) {
|
|
119075
|
+
return;
|
|
119076
|
+
}
|
|
118647
119077
|
if (!res.success || !res.data) {
|
|
118648
119078
|
const t2 = getUiStrings(this.uiLanguage);
|
|
118649
119079
|
const message = res.error || t2.toolsRegistryLoadFailedToast;
|
|
@@ -121620,4 +122050,4 @@ export {
|
|
|
121620
122050
|
clear$2 as y,
|
|
121621
122051
|
defaultConfig2 as z
|
|
121622
122052
|
};
|
|
121623
|
-
//# sourceMappingURL=index-
|
|
122053
|
+
//# sourceMappingURL=index-1Tlt2ebA.js.map
|