dominds 0.7.6 → 0.8.2
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/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/agent-priming.js +169 -200
- package/dist/cli/read.js +2 -7
- package/dist/dialog-factory.js +6 -4
- package/dist/dialog-instance-registry.js +2 -2
- package/dist/dialog.js +99 -91
- package/dist/docs/dialog-persistence.md +2 -2
- package/dist/docs/dialog-persistence.zh.md +2 -2
- package/dist/docs/dialog-system.md +86 -90
- package/dist/docs/dialog-system.zh.md +82 -83
- package/dist/docs/diligence-push.md +2 -2
- package/dist/docs/diligence-push.zh.md +2 -2
- package/dist/docs/dominds-agent-priming.md +11 -11
- package/dist/docs/dominds-agent-priming.zh.md +9 -9
- package/dist/docs/dominds-terminology.md +34 -34
- package/dist/docs/fbr-implementation.md +4 -4
- package/dist/docs/fbr-implementation.zh.md +4 -4
- package/dist/docs/fbr.md +31 -53
- package/dist/docs/fbr.zh.md +30 -48
- package/dist/docs/mottos.md +2 -3
- package/dist/docs/mottos.zh.md +2 -2
- package/dist/docs/q4h.md +6 -6
- package/dist/docs/q4h.zh.md +6 -6
- package/dist/docs/tellask-collab.md +13 -13
- package/dist/docs/tellask-collab.zh.md +18 -18
- package/dist/llm/driver-entry.js +9 -33
- package/dist/llm/driver-v2/core.js +413 -111
- package/dist/llm/driver-v2/index.js +5 -0
- package/dist/llm/driver-v2/orchestrator.js +4 -3
- package/dist/llm/driver-v2/policy.js +17 -23
- package/dist/llm/driver-v2/restore-dialog-hierarchy.js +73 -0
- package/dist/llm/driver-v2/round.js +18 -7
- package/dist/llm/driver-v2/runtime-utils.js +3 -5
- package/dist/llm/driver-v2/saying-events.js +4 -42
- package/dist/llm/driver-v2/supdialog-response.js +110 -23
- package/dist/llm/driver-v2/tellask-bridge.js +560 -458
- package/dist/mcp/sdk-client.js +1 -1
- package/dist/mcp/server-runtime.js +1 -1
- package/dist/mcp/stdio-client.js +6 -6
- package/dist/mcp/tool-names.js +1 -1
- package/dist/minds/builtin/fuxi/persona.en.md +10 -10
- package/dist/minds/builtin/fuxi/persona.zh.md +12 -12
- package/dist/minds/builtin/pangu/persona.en.md +7 -7
- package/dist/minds/builtin/pangu/persona.zh.md +6 -6
- package/dist/minds/minds-i18n.js +2 -2
- package/dist/minds/system-prompt-parts.js +15 -12
- package/dist/minds/system-prompt.js +58 -56
- package/dist/persistence.js +675 -527
- package/dist/server/api-routes.js +1 -1
- package/dist/server/websocket-handler.js +10 -20
- package/dist/server.js +3 -3
- package/dist/shared/diligence.js +12 -12
- package/dist/shared/i18n/driver-messages.js +28 -118
- package/dist/shared/utils/inter-dialog-format.js +53 -53
- package/dist/snippets/starting.en.md +1 -1
- package/dist/snippets/starting.zh.md +1 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js → _baseUniq-D4N_zVXV.js} +2 -2
- package/dist/static/assets/{_baseUniq-2IQvcpiv.js.map → _baseUniq-D4N_zVXV.js.map} +1 -1
- package/dist/static/assets/{arc-Boi4s2EY.js → arc-7bP9qomB.js} +2 -2
- package/dist/static/assets/{arc-Boi4s2EY.js.map → arc-7bP9qomB.js.map} +1 -1
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js → architectureDiagram-VXUJARFQ-DToIiZuZ.js} +6 -6
- package/dist/static/assets/{architectureDiagram-VXUJARFQ-CV1IIalQ.js.map → architectureDiagram-VXUJARFQ-DToIiZuZ.js.map} +1 -1
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js → blockDiagram-VD42YOAC-C-pRNHpf.js} +7 -7
- package/dist/static/assets/{blockDiagram-VD42YOAC-C66ZvUb1.js.map → blockDiagram-VD42YOAC-C-pRNHpf.js.map} +1 -1
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js → c4Diagram-YG6GDRKO-Bnp-nWKO.js} +3 -3
- package/dist/static/assets/{c4Diagram-YG6GDRKO-2YQZQ-KQ.js.map → c4Diagram-YG6GDRKO-Bnp-nWKO.js.map} +1 -1
- package/dist/static/assets/{channel-DBG_xYT_.js → channel-CTv1SsAF.js} +2 -2
- package/dist/static/assets/{channel-DBG_xYT_.js.map → channel-CTv1SsAF.js.map} +1 -1
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js → chunk-4BX2VUAB-D_OGa3ss.js} +2 -2
- package/dist/static/assets/{chunk-4BX2VUAB-D92pQ5qM.js.map → chunk-4BX2VUAB-D_OGa3ss.js.map} +1 -1
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js → chunk-55IACEB6-I4o4MCuM.js} +2 -2
- package/dist/static/assets/{chunk-55IACEB6-T3IKxvjm.js.map → chunk-55IACEB6-I4o4MCuM.js.map} +1 -1
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js → chunk-B4BG7PRW-Bp-TIXg6.js} +5 -5
- package/dist/static/assets/{chunk-B4BG7PRW-SKDCq7xY.js.map → chunk-B4BG7PRW-Bp-TIXg6.js.map} +1 -1
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js → chunk-DI55MBZ5-Bnph5Hmd.js} +4 -4
- package/dist/static/assets/{chunk-DI55MBZ5-CKY9xXzj.js.map → chunk-DI55MBZ5-Bnph5Hmd.js.map} +1 -1
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js → chunk-FMBD7UC4-q3UyRsNI.js} +2 -2
- package/dist/static/assets/{chunk-FMBD7UC4-CzaQthG_.js.map → chunk-FMBD7UC4-q3UyRsNI.js.map} +1 -1
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js → chunk-QN33PNHL-BxUlvLXP.js} +2 -2
- package/dist/static/assets/{chunk-QN33PNHL-8v7ASP75.js.map → chunk-QN33PNHL-BxUlvLXP.js.map} +1 -1
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js → chunk-QZHKN3VN-DpQR9BVw.js} +2 -2
- package/dist/static/assets/{chunk-QZHKN3VN-Cd3_mr-D.js.map → chunk-QZHKN3VN-DpQR9BVw.js.map} +1 -1
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js → chunk-TZMSLE5B-BX8vrVo0.js} +2 -2
- package/dist/static/assets/{chunk-TZMSLE5B-BrTyfkJK.js.map → chunk-TZMSLE5B-BX8vrVo0.js.map} +1 -1
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js → classDiagram-2ON5EDUG-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-2ON5EDUG-pLBmQ3Qa.js.map → classDiagram-2ON5EDUG-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js} +6 -6
- package/dist/static/assets/{classDiagram-v2-WZHVMYZB-pLBmQ3Qa.js.map → classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js.map} +1 -1
- package/dist/static/assets/{clone-rjxmrDHc.js → clone-Cl5zSMrO.js} +2 -2
- package/dist/static/assets/{clone-rjxmrDHc.js.map → clone-Cl5zSMrO.js.map} +1 -1
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js → cose-bilkent-S5V4N54A-B-FUX86B.js} +2 -2
- package/dist/static/assets/{cose-bilkent-S5V4N54A-DaW3q2vS.js.map → cose-bilkent-S5V4N54A-B-FUX86B.js.map} +1 -1
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js → dagre-6UL2VRFP-Bj8vSSpT.js} +7 -7
- package/dist/static/assets/{dagre-6UL2VRFP-BT252775.js.map → dagre-6UL2VRFP-Bj8vSSpT.js.map} +1 -1
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js → diagram-PSM6KHXK-BPcgy7jf.js} +7 -7
- package/dist/static/assets/{diagram-PSM6KHXK-Cp0jEYgm.js.map → diagram-PSM6KHXK-BPcgy7jf.js.map} +1 -1
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js → diagram-QEK2KX5R-DHxd6LWi.js} +6 -6
- package/dist/static/assets/{diagram-QEK2KX5R-BYEiCch_.js.map → diagram-QEK2KX5R-DHxd6LWi.js.map} +1 -1
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js → diagram-S2PKOQOG-C4ynhhLr.js} +6 -6
- package/dist/static/assets/{diagram-S2PKOQOG-SNGZ1B53.js.map → diagram-S2PKOQOG-C4ynhhLr.js.map} +1 -1
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js → erDiagram-Q2GNP2WA-CQ25uxxf.js} +5 -5
- package/dist/static/assets/{erDiagram-Q2GNP2WA-CMdkkngT.js.map → erDiagram-Q2GNP2WA-CQ25uxxf.js.map} +1 -1
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js → flowDiagram-NV44I4VS-ChkkAldk.js} +6 -6
- package/dist/static/assets/{flowDiagram-NV44I4VS-k203P84f.js.map → flowDiagram-NV44I4VS-ChkkAldk.js.map} +1 -1
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js → ganttDiagram-JELNMOA3-CBt_Zorl.js} +3 -3
- package/dist/static/assets/{ganttDiagram-JELNMOA3-CgsVe01-.js.map → ganttDiagram-JELNMOA3-CBt_Zorl.js.map} +1 -1
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js → gitGraphDiagram-NY62KEGX-CtBc2dOO.js} +7 -7
- package/dist/static/assets/{gitGraphDiagram-NY62KEGX-BGOR_N5w.js.map → gitGraphDiagram-NY62KEGX-CtBc2dOO.js.map} +1 -1
- package/dist/static/assets/{graph-DDHIhCSW.js → graph-BGzNnzuI.js} +3 -3
- package/dist/static/assets/{graph-DDHIhCSW.js.map → graph-BGzNnzuI.js.map} +1 -1
- package/dist/static/assets/{index-CUZD-Ua6.js → index-Vrp1PT3b.js} +654 -355
- package/dist/static/assets/index-Vrp1PT3b.js.map +1 -0
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js → infoDiagram-WHAUD3N6-BYJF-Ol5.js} +5 -5
- package/dist/static/assets/{infoDiagram-WHAUD3N6-D0GlWUIm.js.map → infoDiagram-WHAUD3N6-BYJF-Ol5.js.map} +1 -1
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js} +5 -5
- package/dist/static/assets/{journeyDiagram-XKPGCS4Q-I0W1fDTZ.js.map → journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js.map} +1 -1
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js → kanban-definition-3W4ZIXB7-DBH-HEwY.js} +3 -3
- package/dist/static/assets/{kanban-definition-3W4ZIXB7-BY5xVZyl.js.map → kanban-definition-3W4ZIXB7-DBH-HEwY.js.map} +1 -1
- package/dist/static/assets/{layout-C7mFT1m6.js → layout-DdWO-uEo.js} +5 -5
- package/dist/static/assets/{layout-C7mFT1m6.js.map → layout-DdWO-uEo.js.map} +1 -1
- package/dist/static/assets/{linear-WSX0brRY.js → linear-BY3MovaF.js} +2 -2
- package/dist/static/assets/{linear-WSX0brRY.js.map → linear-BY3MovaF.js.map} +1 -1
- package/dist/static/assets/{min-DOTQTP4p.js → min-aHCJK1uN.js} +3 -3
- package/dist/static/assets/{min-DOTQTP4p.js.map → min-aHCJK1uN.js.map} +1 -1
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js → mindmap-definition-VGOIOE7T-BjJnBRtB.js} +4 -4
- package/dist/static/assets/{mindmap-definition-VGOIOE7T-BWhHo-Hq.js.map → mindmap-definition-VGOIOE7T-BjJnBRtB.js.map} +1 -1
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js → pieDiagram-ADFJNKIX-xAcmdymv.js} +7 -7
- package/dist/static/assets/{pieDiagram-ADFJNKIX-B91oxvos.js.map → pieDiagram-ADFJNKIX-xAcmdymv.js.map} +1 -1
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js → quadrantDiagram-AYHSOK5B-BPbEGCEj.js} +3 -3
- package/dist/static/assets/{quadrantDiagram-AYHSOK5B-DqMUyBPr.js.map → quadrantDiagram-AYHSOK5B-BPbEGCEj.js.map} +1 -1
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js → requirementDiagram-UZGBJVZJ--w6UfXy0.js} +4 -4
- package/dist/static/assets/{requirementDiagram-UZGBJVZJ-COUayA3m.js.map → requirementDiagram-UZGBJVZJ--w6UfXy0.js.map} +1 -1
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js → sankeyDiagram-TZEHDZUN-B_T6TQwh.js} +2 -2
- package/dist/static/assets/{sankeyDiagram-TZEHDZUN-Bp9r8YDi.js.map → sankeyDiagram-TZEHDZUN-B_T6TQwh.js.map} +1 -1
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js → sequenceDiagram-WL72ISMW-DX_oVvqA.js} +4 -4
- package/dist/static/assets/{sequenceDiagram-WL72ISMW-CpuTC5cG.js.map → sequenceDiagram-WL72ISMW-DX_oVvqA.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js → stateDiagram-FKZM4ZOC-BAybZU8l.js} +9 -9
- package/dist/static/assets/{stateDiagram-FKZM4ZOC-Bxoo7e6E.js.map → stateDiagram-FKZM4ZOC-BAybZU8l.js.map} +1 -1
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js} +5 -5
- package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-Q-DL7tae.js.map → stateDiagram-v2-4FDKWEC3-BUsvuCdD.js.map} +1 -1
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js → timeline-definition-IT6M3QCI-DOYN-4XM.js} +3 -3
- package/dist/static/assets/{timeline-definition-IT6M3QCI-DuOiHQPk.js.map → timeline-definition-IT6M3QCI-DOYN-4XM.js.map} +1 -1
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js → treemap-KMMF4GRG-CQXygT0T.js} +4 -4
- package/dist/static/assets/{treemap-KMMF4GRG-YbrDC0fO.js.map → treemap-KMMF4GRG-CQXygT0T.js.map} +1 -1
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js → xychartDiagram-PRI3JC2R-ByFAvTeN.js} +3 -3
- package/dist/static/assets/{xychartDiagram-PRI3JC2R-DDRlTIfV.js.map → xychartDiagram-PRI3JC2R-ByFAvTeN.js.map} +1 -1
- package/dist/static/index.html +1 -1
- package/dist/tools/builtins.js +0 -8
- package/dist/tools/env.js +1 -1
- package/dist/tools/mcp.js +31 -9
- package/dist/tools/pending-tellask-reminder.js +14 -17
- package/dist/tools/team-mgmt.js +1 -1
- package/package.json +1 -1
- package/dist/static/assets/index-CUZD-Ua6.js.map +0 -1
|
@@ -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-Bj8vSSpT.js","assets/graph-BGzNnzuI.js","assets/_baseUniq-D4N_zVXV.js","assets/layout-DdWO-uEo.js","assets/min-aHCJK1uN.js","assets/clone-Cl5zSMrO.js","assets/cose-bilkent-S5V4N54A-B-FUX86B.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-Bnp-nWKO.js","assets/chunk-TZMSLE5B-BX8vrVo0.js","assets/flowDiagram-NV44I4VS-ChkkAldk.js","assets/chunk-FMBD7UC4-q3UyRsNI.js","assets/chunk-55IACEB6-I4o4MCuM.js","assets/chunk-QN33PNHL-BxUlvLXP.js","assets/channel-CTv1SsAF.js","assets/erDiagram-Q2GNP2WA-CQ25uxxf.js","assets/gitGraphDiagram-NY62KEGX-CtBc2dOO.js","assets/chunk-4BX2VUAB-D_OGa3ss.js","assets/chunk-QZHKN3VN-DpQR9BVw.js","assets/treemap-KMMF4GRG-CQXygT0T.js","assets/ganttDiagram-JELNMOA3-CBt_Zorl.js","assets/linear-BY3MovaF.js","assets/init-ZxktEp_H.js","assets/defaultLocale-DVr69WTU.js","assets/infoDiagram-WHAUD3N6-BYJF-Ol5.js","assets/pieDiagram-ADFJNKIX-xAcmdymv.js","assets/arc-7bP9qomB.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-BPbEGCEj.js","assets/xychartDiagram-PRI3JC2R-ByFAvTeN.js","assets/requirementDiagram-UZGBJVZJ--w6UfXy0.js","assets/sequenceDiagram-WL72ISMW-DX_oVvqA.js","assets/classDiagram-2ON5EDUG-Ccx5_2Xq.js","assets/chunk-B4BG7PRW-Bp-TIXg6.js","assets/classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js","assets/stateDiagram-FKZM4ZOC-BAybZU8l.js","assets/chunk-DI55MBZ5-Bnph5Hmd.js","assets/stateDiagram-v2-4FDKWEC3-BUsvuCdD.js","assets/journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js","assets/timeline-definition-IT6M3QCI-DOYN-4XM.js","assets/mindmap-definition-VGOIOE7T-BjJnBRtB.js","assets/kanban-definition-3W4ZIXB7-DBH-HEwY.js","assets/sankeyDiagram-TZEHDZUN-B_T6TQwh.js","assets/diagram-S2PKOQOG-C4ynhhLr.js","assets/diagram-QEK2KX5R-DHxd6LWi.js","assets/blockDiagram-VD42YOAC-C-pRNHpf.js","assets/architectureDiagram-VXUJARFQ-DToIiZuZ.js","assets/diagram-PSM6KHXK-BPcgy7jf.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);
|
|
@@ -149,6 +149,8 @@ function getUiStrings(language) {
|
|
|
149
149
|
q4hGoToCallSiteTitle: "定位到提问点",
|
|
150
150
|
q4hOpenInNewTabTitle: "新标签打开",
|
|
151
151
|
q4hCopyLinkTitle: "复制链接",
|
|
152
|
+
teammateAssignmentBubbleTitle: "定位到任务安排气泡",
|
|
153
|
+
teammateRequesterCallSiteTitle: "在新标签打开诉请发起点",
|
|
152
154
|
keepGoingTabTitle: "鞭策",
|
|
153
155
|
keepGoingWorkspaceNote: "注意:修改鞭策语会影响整个 rtws(运行时工作区)!",
|
|
154
156
|
keepGoingToggleAriaLabel: "启用鞭策(取消勾选=禁用)",
|
|
@@ -425,6 +427,8 @@ function getUiStrings(language) {
|
|
|
425
427
|
q4hGoToCallSiteTitle: "Go to call site",
|
|
426
428
|
q4hOpenInNewTabTitle: "Open in new tab",
|
|
427
429
|
q4hCopyLinkTitle: "Copy link",
|
|
430
|
+
teammateAssignmentBubbleTitle: "Go to assignment bubble",
|
|
431
|
+
teammateRequesterCallSiteTitle: "Open requester call site in new tab",
|
|
428
432
|
keepGoingTabTitle: "Diligence Push",
|
|
429
433
|
keepGoingWorkspaceNote: "Note: editing the Diligence Push prompt affects the entire rtws (runtime workspace)!",
|
|
430
434
|
keepGoingToggleAriaLabel: "Enable Diligence Push (uncheck to disable)",
|
|
@@ -1646,21 +1650,21 @@ const DILIGENCE_FALLBACK_TEXT = {
|
|
|
1646
1650
|
zh: [
|
|
1647
1651
|
"你扪心自问(做一次 FBR),差遣牒已经包含足够明确的目标定义了吗?",
|
|
1648
1652
|
"",
|
|
1649
|
-
"
|
|
1653
|
+
"如果没有,使用 `askHuman` 请求人类给出足够清晰的目标。",
|
|
1650
1654
|
"",
|
|
1651
1655
|
"如果目标已经清晰定义,那么你已经完成了所有目标吗?",
|
|
1652
1656
|
"",
|
|
1653
|
-
"
|
|
1657
|
+
"如果已经完成,使用 `askHuman` 请求人类验收。",
|
|
1654
1658
|
"",
|
|
1655
|
-
"如果尚未完成,优先直接确定并执行下一步最优行动项(调用工具或诉请队友)。仅当“下一步不清晰/难以决策”时,才发起一次
|
|
1659
|
+
"如果尚未完成,优先直接确定并执行下一步最优行动项(调用工具或诉请队友)。仅当“下一步不清晰/难以决策”时,才发起一次 freshBootsReasoning 扪心自问(FBR);收齐该次回贴后,立即把结论落地为可执行动作并开始执行,不要只汇报决定。",
|
|
1656
1660
|
"",
|
|
1657
|
-
"
|
|
1661
|
+
"当你确信自己不该或者不能自主继续工作时,立即使用 `askHuman` 请求人类确认相关问题或者指出工作方向。",
|
|
1658
1662
|
"",
|
|
1659
1663
|
"---",
|
|
1660
1664
|
"",
|
|
1661
1665
|
"**注意**:",
|
|
1662
1666
|
"",
|
|
1663
|
-
"
|
|
1667
|
+
"扪心自问时,自诉请正文需要包含对当前状况的完整事实性总结(但不要包含差遣牒已有内容);发起 freshBootsReasoning 后不要立即下最终行动决策,先等回贴再综合。综合完成后必须立刻执行已确定行动(工具调用/诉请队友),避免停留在“仅汇报决定”的状态。",
|
|
1664
1668
|
"",
|
|
1665
1669
|
"队友如果回复 “将要/可以” 做 XXX 的,你要审视祂所说是否符合整体/分项任务目标,是否值得继续:",
|
|
1666
1670
|
"- 如果祂建议的事情可做可不做,那么就可以忽略,不以琐碎小事安排工作。",
|
|
@@ -1668,26 +1672,26 @@ const DILIGENCE_FALLBACK_TEXT = {
|
|
|
1668
1672
|
"",
|
|
1669
1673
|
"系统会把“尚未收到反馈、仍在执行中的诉请”自动展示为提醒项;请以提醒项作为是否仍在执行中的唯一判断依据。",
|
|
1670
1674
|
"",
|
|
1671
|
-
"凡是不在提醒项里的历史诉请,都不要继续等待(通常代表已回贴或已结束当前轮次)。若该工作线仍需推进,必须立即使用同一个
|
|
1675
|
+
"凡是不在提醒项里的历史诉请,都不要继续等待(通常代表已回贴或已结束当前轮次)。若该工作线仍需推进,必须立即使用同一个 `sessionSlug` 再次调用 `tellask` 诉请对应队友,明确要求继续执行下一步。"
|
|
1672
1676
|
].join("\n"),
|
|
1673
1677
|
en: [
|
|
1674
1678
|
"Do a self-check (run one FBR): does the Taskdoc already contain a sufficiently clear goal definition?",
|
|
1675
1679
|
"",
|
|
1676
|
-
"If not, use
|
|
1680
|
+
"If not, use `askHuman` to request a sufficiently clear goal.",
|
|
1677
1681
|
"",
|
|
1678
1682
|
"If the goal is already clearly defined, ask: have you completed all goals?",
|
|
1679
1683
|
"",
|
|
1680
|
-
"If yes, use
|
|
1684
|
+
"If yes, use `askHuman` to request acceptance.",
|
|
1681
1685
|
"",
|
|
1682
|
-
"If not complete, first determine and execute the best next action (tool call or teammate tellask). Use
|
|
1686
|
+
"If not complete, first determine and execute the best next action (tool call or teammate tellask). Use freshBootsReasoning for FBR only when the next move is unclear or hard to decide; after feedback from that FBR run is collected, immediately turn the conclusion into executable action and start execution. Do not stop at reporting a decision.",
|
|
1683
1687
|
"",
|
|
1684
|
-
"When you are convinced you should not or cannot continue autonomously, immediately use
|
|
1688
|
+
"When you are convinced you should not or cannot continue autonomously, immediately use `askHuman` to confirm the relevant issue or provide direction.",
|
|
1685
1689
|
"",
|
|
1686
1690
|
"---",
|
|
1687
1691
|
"",
|
|
1688
1692
|
"**Notes**:",
|
|
1689
1693
|
"",
|
|
1690
|
-
"When running FBR, the
|
|
1694
|
+
"When running FBR, the FBR body must include a complete factual summary of the current situation (but do not repeat information already present in the Taskdoc). After initiating a freshBootsReasoning, do not finalize the next action immediately; wait for feedback first, then synthesize. Once synthesized, immediately execute the chosen action (tool call / teammate tellask), and avoid staying in a “decision report only” state.",
|
|
1691
1695
|
"",
|
|
1692
1696
|
"If a teammate replies that they “will/can do X”, examine whether it aligns with the overall/sub-task goals and is worth continuing:",
|
|
1693
1697
|
"- If it is optional and low impact, ignore it instead of assigning trivial work.",
|
|
@@ -1695,7 +1699,7 @@ const DILIGENCE_FALLBACK_TEXT = {
|
|
|
1695
1699
|
"",
|
|
1696
1700
|
"The system automatically surfaces still-running tellasks (those without feedback yet) as reminder items; treat reminders as the single source of truth for whether a tellask is still in progress.",
|
|
1697
1701
|
"",
|
|
1698
|
-
"For any historical tellask not listed in reminders, do not keep waiting (it usually means the previous round already replied or ended). If that workstream should continue, immediately
|
|
1702
|
+
"For any historical tellask not listed in reminders, do not keep waiting (it usually means the previous round already replied or ended). If that workstream should continue, immediately call `tellask` for the same teammate with the same `sessionSlug` and explicitly ask for the next step."
|
|
1699
1703
|
].join("\n")
|
|
1700
1704
|
};
|
|
1701
1705
|
function escapeHtml$2(text2) {
|
|
@@ -1862,8 +1866,8 @@ class ArchivedDialogList extends HTMLElement {
|
|
|
1862
1866
|
}
|
|
1863
1867
|
getDialogDisplayCallsign(dialog) {
|
|
1864
1868
|
const assignment = dialog.assignmentFromSup;
|
|
1865
|
-
if (assignment
|
|
1866
|
-
|
|
1869
|
+
if (assignment?.callName === "freshBootsReasoning") {
|
|
1870
|
+
return "FBR";
|
|
1867
1871
|
}
|
|
1868
1872
|
return `@${dialog.agentId}`;
|
|
1869
1873
|
}
|
|
@@ -2210,7 +2214,7 @@ class ArchivedDialogList extends HTMLElement {
|
|
|
2210
2214
|
const t2 = getUiStrings(this.props.uiLanguage);
|
|
2211
2215
|
const isSelected = this.isSelectedDialog(dialog, this.selectionState);
|
|
2212
2216
|
const updatedAt = dialog.lastModified || "";
|
|
2213
|
-
const
|
|
2217
|
+
const sessionSlugMark = dialog.sessionSlug ?? "";
|
|
2214
2218
|
const callsign = this.getDialogDisplayCallsign(dialog);
|
|
2215
2219
|
return `
|
|
2216
2220
|
<div
|
|
@@ -2232,7 +2236,7 @@ class ArchivedDialogList extends HTMLElement {
|
|
|
2232
2236
|
</div>
|
|
2233
2237
|
<div class="dialog-row dialog-submeta">
|
|
2234
2238
|
<span class="dialog-meta-right">
|
|
2235
|
-
<span class="dialog-topic">${
|
|
2239
|
+
<span class="dialog-topic">${sessionSlugMark}</span>
|
|
2236
2240
|
</span>
|
|
2237
2241
|
</div>
|
|
2238
2242
|
</div>
|
|
@@ -2375,7 +2379,7 @@ class ArchivedDialogList extends HTMLElement {
|
|
|
2375
2379
|
agentName: "",
|
|
2376
2380
|
taskDocPath: dialog.taskDocPath,
|
|
2377
2381
|
supdialogId: dialog.supdialogId,
|
|
2378
|
-
|
|
2382
|
+
sessionSlug: dialog.sessionSlug,
|
|
2379
2383
|
assignmentFromSup: dialog.assignmentFromSup
|
|
2380
2384
|
};
|
|
2381
2385
|
this.props.onSelect(dialogInfo);
|
|
@@ -3243,40 +3247,6 @@ _CreateDialogFlowController.AGENT_PRIMING_MODE_STORAGE_KEY = "agent-priming-mode
|
|
|
3243
3247
|
_CreateDialogFlowController.AGENT_PRIMING_MODE_SHADOW_STORAGE_KEY = "agent-priming-mode-shadow-v1";
|
|
3244
3248
|
let CreateDialogFlowController = _CreateDialogFlowController;
|
|
3245
3249
|
const mannedToolIcon = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20122.88%20120.92'%20style='enable-background:new%200%200%20122.88%20120.92'%20xml:space='preserve'%3e%3cstyle%20type='text/css'%3e.st0{fill-rule:evenodd;clip-rule:evenodd;}%3c/style%3e%3cg%20transform='scale(0.8)%20translate(15,%2015)'%3e%3cpath%20class='st0'%20d='M117.32,101.23c0.8-2.32,1.23-4.81,1.23-7.39c0-6.28-2.55-11.97-6.67-16.09c-4.12-4.12-9.81-6.66-16.09-6.66%20c-6.28,0-11.97,2.55-16.09,6.66c-4.12,4.12-6.66,9.81-6.66,16.09c0,6.28,2.55,11.97,6.66,16.09c4.12,4.12,9.81,6.66,16.09,6.66%20c5.75,0,11-2.13,15.01-5.65C113.74,108.36,116.05,104.93,117.32,101.23L117.32,101.23z%20M86.36,96.38%20c-2.05,0.37-4.05,1.07-5.14,3.79c-0.71,1.76-0.54,3.89,0.35,5.82c2.42-7.38,10.92-3.02,5.45,3.34c4,0.2,6.53-2.6,6.93-6.37%20c0.19-1.78,0.34-2.74,0.73-3.51c0.21-0.42,0.5-0.78,0.89-1.2c1.31-1.44,2.77-2.7,4.2-4.19c2.69-2.81,8.42-0.22,10.61-5.72%20c0.71-1.76,0.54-3.89-0.35-5.82c-2.42,7.38-10.92,3.02-5.45-3.34c-4-0.2-6.53,2.6-6.93,6.37c-0.17,1.66,0.12,3.07-1.72,4.96%20c-1.29,1.29-2.66,2.61-3.99,3.87c-0.52,0.51-0.9,0.81-1.35,1.03c-0.8,0.4-1.78,0.52-4.22,0.95L86.36,96.38L86.36,96.38z%20M86.25,23.86l-0.03,0.09c-6.47-1.21-15.81-1.84-25.66-1.72c-9.96,0.11-20.49,0.98-29.17,2.76l-0.01-0.04%20C23.81-10.65,96.24-5.56,86.25,23.86L86.25,23.86z%20M44.15,62.42c-4.4,3.08-8.99,4.22-13.47,5.05l6.41,18.16h32.89%20c-0.82,2.59-1.27,5.35-1.27,8.21c0,7.48,3.03,14.25,7.93,19.15c4.9,4.9,11.67,7.93,19.15,7.93c7.48,0,14.25-3.03,19.15-7.93%20c5.15-5.15,7.93-11.84,7.93-19.15c0-7.48-3.03-14.25-7.93-19.15c-4.9-4.9-11.67-7.93-19.15-7.93c-2.32,0-4.57,0.29-6.72,0.84%20c-3.97-0.4-8.09-0.72-11.02-2.24c-1.34-0.83-2.51-1.99-3.59-3.46l-0.19-3c1.04-0.85,2.04-1.85,2.89-2.96%20c1.93-2.41,2.67-4.89,3.59-8.04c0.19-0.67,0.37-1.33,0.59-2c1.82-0.19,3.41-2.22,4.37-4.74c0.52-1.41,0.93-3,1.04-4.41%20c0.15-1.48,0-2.85-0.52-3.78c-0.41-0.74-1.04-1.22-1.89-1.3c-0.06-0.74,0.27-2.31,0.72-3.98c-6.13-1.1-15.03-1.67-24.5-1.56%20c-9.72,0.11-19.99,0.95-28.4,2.69l0.82,3.93c-0.63,1.04-0.78,2.67-0.59,4.41c0.19,1.7,0.7,3.48,1.45,4.97%20c0.96,1.89,2.33,3.22,3.93,3.22c0.15,0.44,0.33,0.93,0.48,1.41c1.3,3.82,2.26,6.71,4.59,9.45c0.67,0.82,1.41,1.56,2.19,2.22%20l-0.19,3.37C44.63,62,44.39,62.21,44.15,62.42L44.15,62.42z%20M71.94,60.07c-4.18,2.79-6.73,4.32-12.14,4.19%20c-5.26-0.08-8.01-1.86-12.22-4.52C47.26,77.31,72.37,78.36,71.94,60.07L71.94,60.07z%20M78.21,47.33c0.22-0.78,0.48-1.59,0.78-2.56%20c0.11-0.41,0.52-0.7,0.93-0.63c1.22,0.22,2.45-1.56,3.3-3.71c0.48-1.3,0.85-2.7,0.96-3.96c0.11-1.19,0-2.22-0.33-2.85%20c-0.33-0.61-1.25-0.26-1.93-0.85c-3.51,9.31-34.11,13.52-46.63,0.7c-0.44,0.7-0.52,1.96-0.37,3.37c0.19,1.48,0.63,3.11,1.3,4.41%20c0.78,1.52,1.78,2.56,2.78,2.3c0.41-0.11,0.85,0.11,1,0.52c0.3,0.82,0.48,1.45,0.7,2.07C47.18,65.2,71.84,66.69,78.21,47.33%20L78.21,47.33z%20M28.14,91.38c1.45,0,2.63,1.18,2.63,2.63c0,1.45-1.18,2.63-2.63,2.63c-1.45,0-2.63-1.18-2.63-2.63%20C25.52,92.56,26.69,91.38,28.14,91.38L28.14,91.38z%20M23.25,68.84C14.98,70.72,7.71,74.8,3.63,92.75L0,106.64h19.67V89.45%20c0-2.11,1.72-3.83,3.83-3.83h4.09C27.42,78.97,24.1,71.99,23.25,68.84L23.25,68.84z'/%3e%3c/g%3e%3c/svg%3e";
|
|
3246
|
-
function parseTeammateCallError(result) {
|
|
3247
|
-
const trimmed = result.trim();
|
|
3248
|
-
if (trimmed === "") return null;
|
|
3249
|
-
const firstNewline = trimmed.indexOf("\n");
|
|
3250
|
-
const firstLine = (firstNewline >= 0 ? trimmed.slice(0, firstNewline) : trimmed).trim();
|
|
3251
|
-
const rest = firstNewline >= 0 ? trimmed.slice(firstNewline + 1).trim() : "";
|
|
3252
|
-
if (firstLine === "ERR_UNKNOWN_CALL") return { code: "ERR_UNKNOWN_CALL" };
|
|
3253
|
-
if (firstLine === "ERR_TOOL_EXECUTION") {
|
|
3254
|
-
return rest ? { code: "ERR_TOOL_EXECUTION", detail: rest } : { code: "ERR_TOOL_EXECUTION" };
|
|
3255
|
-
}
|
|
3256
|
-
return null;
|
|
3257
|
-
}
|
|
3258
|
-
function formatTeammateCallErrorInline(options) {
|
|
3259
|
-
if (options.parsed.code === "ERR_UNKNOWN_CALL") {
|
|
3260
|
-
if (options.language === "zh") {
|
|
3261
|
-
return `未知诉请:@${options.responderId}
|
|
3262
|
-
标题:${options.tellaskHead}`;
|
|
3263
|
-
}
|
|
3264
|
-
return `Unknown call: @${options.responderId}
|
|
3265
|
-
Head: ${options.tellaskHead}`;
|
|
3266
|
-
}
|
|
3267
|
-
if (options.language === "zh") {
|
|
3268
|
-
const detail2 = options.parsed.detail ? `
|
|
3269
|
-
详情:
|
|
3270
|
-
${options.parsed.detail}` : "";
|
|
3271
|
-
return `执行 @${options.responderId} 出错
|
|
3272
|
-
标题:${options.tellaskHead}${detail2}`;
|
|
3273
|
-
}
|
|
3274
|
-
const detail = options.parsed.detail ? `
|
|
3275
|
-
Detail:
|
|
3276
|
-
${options.parsed.detail}` : "";
|
|
3277
|
-
return `Error executing @${options.responderId}
|
|
3278
|
-
Head: ${options.tellaskHead}${detail}`;
|
|
3279
|
-
}
|
|
3280
3250
|
const {
|
|
3281
3251
|
entries,
|
|
3282
3252
|
setPrototypeOf,
|
|
@@ -96489,12 +96459,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
96489
96459
|
registerLayoutLoaders([
|
|
96490
96460
|
{
|
|
96491
96461
|
name: "dagre",
|
|
96492
|
-
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-
|
|
96462
|
+
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-Bj8vSSpT.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
|
|
96493
96463
|
},
|
|
96494
96464
|
...[
|
|
96495
96465
|
{
|
|
96496
96466
|
name: "cose-bilkent",
|
|
96497
|
-
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-
|
|
96467
|
+
loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-B-FUX86B.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
|
|
96498
96468
|
}
|
|
96499
96469
|
]
|
|
96500
96470
|
]);
|
|
@@ -96934,7 +96904,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
96934
96904
|
}, "detector");
|
|
96935
96905
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
96936
96906
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
96937
|
-
const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-
|
|
96907
|
+
const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-Bnp-nWKO.js");
|
|
96938
96908
|
return { diagram: diagram22 };
|
|
96939
96909
|
}, true ? __vite__mapDeps([8,9]) : void 0);
|
|
96940
96910
|
return { id, diagram: diagram2 };
|
|
@@ -96954,7 +96924,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
96954
96924
|
}, "detector");
|
|
96955
96925
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
96956
96926
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
96957
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
96927
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-ChkkAldk.js");
|
|
96958
96928
|
return { diagram: diagram22 };
|
|
96959
96929
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
96960
96930
|
return { id: id2, diagram: diagram2 };
|
|
@@ -96980,7 +96950,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
96980
96950
|
}, "detector");
|
|
96981
96951
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
96982
96952
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
96983
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
96953
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-ChkkAldk.js");
|
|
96984
96954
|
return { diagram: diagram22 };
|
|
96985
96955
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
96986
96956
|
return { id: id3, diagram: diagram2 };
|
|
@@ -96997,7 +96967,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
96997
96967
|
}, "detector");
|
|
96998
96968
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
96999
96969
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97000
|
-
const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-
|
|
96970
|
+
const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-CQ25uxxf.js");
|
|
97001
96971
|
return { diagram: diagram22 };
|
|
97002
96972
|
}, true ? __vite__mapDeps([15,12,13,14]) : void 0);
|
|
97003
96973
|
return { id: id4, diagram: diagram2 };
|
|
@@ -97014,7 +96984,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
97014
96984
|
}, "detector");
|
|
97015
96985
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
97016
96986
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97017
|
-
const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-
|
|
96987
|
+
const { diagram: diagram22 } = await import("./gitGraphDiagram-NY62KEGX-CtBc2dOO.js");
|
|
97018
96988
|
return { diagram: diagram22 };
|
|
97019
96989
|
}, true ? __vite__mapDeps([16,17,18,19,4,2]) : void 0);
|
|
97020
96990
|
return { id: id5, diagram: diagram2 };
|
|
@@ -97031,7 +97001,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
97031
97001
|
}, "detector");
|
|
97032
97002
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
97033
97003
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97034
|
-
const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-
|
|
97004
|
+
const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-CBt_Zorl.js");
|
|
97035
97005
|
return { diagram: diagram22 };
|
|
97036
97006
|
}, true ? __vite__mapDeps([20,21,22,23]) : void 0);
|
|
97037
97007
|
return { id: id6, diagram: diagram2 };
|
|
@@ -97048,7 +97018,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
97048
97018
|
}, "detector");
|
|
97049
97019
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
97050
97020
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97051
|
-
const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-
|
|
97021
|
+
const { diagram: diagram22 } = await import("./infoDiagram-WHAUD3N6-BYJF-Ol5.js");
|
|
97052
97022
|
return { diagram: diagram22 };
|
|
97053
97023
|
}, true ? __vite__mapDeps([24,19,4,2]) : void 0);
|
|
97054
97024
|
return { id: id7, diagram: diagram2 };
|
|
@@ -97064,7 +97034,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
97064
97034
|
}, "detector");
|
|
97065
97035
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
97066
97036
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97067
|
-
const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-
|
|
97037
|
+
const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-xAcmdymv.js");
|
|
97068
97038
|
return { diagram: diagram22 };
|
|
97069
97039
|
}, true ? __vite__mapDeps([25,17,19,4,2,26,27,22]) : void 0);
|
|
97070
97040
|
return { id: id8, diagram: diagram2 };
|
|
@@ -97080,7 +97050,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
97080
97050
|
}, "detector");
|
|
97081
97051
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
97082
97052
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97083
|
-
const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
97053
|
+
const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-BPbEGCEj.js");
|
|
97084
97054
|
return { diagram: diagram22 };
|
|
97085
97055
|
}, true ? __vite__mapDeps([28,21,22,23]) : void 0);
|
|
97086
97056
|
return { id: id9, diagram: diagram2 };
|
|
@@ -97097,7 +97067,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
97097
97067
|
}, "detector");
|
|
97098
97068
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
97099
97069
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97100
|
-
const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-
|
|
97070
|
+
const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-ByFAvTeN.js");
|
|
97101
97071
|
return { diagram: diagram22 };
|
|
97102
97072
|
}, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
|
|
97103
97073
|
return { id: id10, diagram: diagram2 };
|
|
@@ -97114,7 +97084,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
97114
97084
|
}, "detector");
|
|
97115
97085
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
97116
97086
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97117
|
-
const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ
|
|
97087
|
+
const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ--w6UfXy0.js");
|
|
97118
97088
|
return { diagram: diagram22 };
|
|
97119
97089
|
}, true ? __vite__mapDeps([30,12,13]) : void 0);
|
|
97120
97090
|
return { id: id11, diagram: diagram2 };
|
|
@@ -97131,7 +97101,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
97131
97101
|
}, "detector");
|
|
97132
97102
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
97133
97103
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97134
|
-
const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-
|
|
97104
|
+
const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-DX_oVvqA.js");
|
|
97135
97105
|
return { diagram: diagram22 };
|
|
97136
97106
|
}, true ? __vite__mapDeps([31,9,18]) : void 0);
|
|
97137
97107
|
return { id: id12, diagram: diagram2 };
|
|
@@ -97151,7 +97121,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97151
97121
|
}, "detector");
|
|
97152
97122
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
97153
97123
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97154
|
-
const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-
|
|
97124
|
+
const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-Ccx5_2Xq.js");
|
|
97155
97125
|
return { diagram: diagram22 };
|
|
97156
97126
|
}, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
|
|
97157
97127
|
return { id: id13, diagram: diagram2 };
|
|
@@ -97171,7 +97141,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97171
97141
|
}, "detector");
|
|
97172
97142
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
97173
97143
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97174
|
-
const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
97144
|
+
const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-Ccx5_2Xq.js");
|
|
97175
97145
|
return { diagram: diagram22 };
|
|
97176
97146
|
}, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
|
|
97177
97147
|
return { id: id14, diagram: diagram2 };
|
|
@@ -97191,7 +97161,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97191
97161
|
}, "detector");
|
|
97192
97162
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
97193
97163
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97194
|
-
const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-
|
|
97164
|
+
const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-BAybZU8l.js");
|
|
97195
97165
|
return { diagram: diagram22 };
|
|
97196
97166
|
}, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
|
|
97197
97167
|
return { id: id15, diagram: diagram2 };
|
|
@@ -97214,7 +97184,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
97214
97184
|
}, "detector");
|
|
97215
97185
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
97216
97186
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97217
|
-
const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
97187
|
+
const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-BUsvuCdD.js");
|
|
97218
97188
|
return { diagram: diagram22 };
|
|
97219
97189
|
}, true ? __vite__mapDeps([37,36,12,13]) : void 0);
|
|
97220
97190
|
return { id: id16, diagram: diagram2 };
|
|
@@ -97231,7 +97201,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
97231
97201
|
}, "detector");
|
|
97232
97202
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
97233
97203
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97234
|
-
const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
97204
|
+
const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-Cl2p8ZBw.js");
|
|
97235
97205
|
return { diagram: diagram22 };
|
|
97236
97206
|
}, true ? __vite__mapDeps([38,9,11,26]) : void 0);
|
|
97237
97207
|
return { id: id17, diagram: diagram2 };
|
|
@@ -97301,7 +97271,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
97301
97271
|
}, "detector");
|
|
97302
97272
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
97303
97273
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97304
|
-
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-
|
|
97274
|
+
const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-ChkkAldk.js");
|
|
97305
97275
|
return { diagram: diagram22 };
|
|
97306
97276
|
}, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
|
|
97307
97277
|
return { id: id18, diagram: diagram2 };
|
|
@@ -97318,7 +97288,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
97318
97288
|
}, "detector");
|
|
97319
97289
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
97320
97290
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97321
|
-
const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-
|
|
97291
|
+
const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-DOYN-4XM.js");
|
|
97322
97292
|
return { diagram: diagram22 };
|
|
97323
97293
|
}, true ? __vite__mapDeps([39,26]) : void 0);
|
|
97324
97294
|
return { id: id19, diagram: diagram2 };
|
|
@@ -97335,7 +97305,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
97335
97305
|
}, "detector");
|
|
97336
97306
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
97337
97307
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97338
|
-
const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-
|
|
97308
|
+
const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-BjJnBRtB.js");
|
|
97339
97309
|
return { diagram: diagram22 };
|
|
97340
97310
|
}, true ? __vite__mapDeps([40,12,13]) : void 0);
|
|
97341
97311
|
return { id: id20, diagram: diagram2 };
|
|
@@ -97352,7 +97322,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
97352
97322
|
}, "detector");
|
|
97353
97323
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
97354
97324
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97355
|
-
const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-
|
|
97325
|
+
const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-DBH-HEwY.js");
|
|
97356
97326
|
return { diagram: diagram22 };
|
|
97357
97327
|
}, true ? __vite__mapDeps([41,11]) : void 0);
|
|
97358
97328
|
return { id: id21, diagram: diagram2 };
|
|
@@ -97369,7 +97339,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
97369
97339
|
}, "detector");
|
|
97370
97340
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
97371
97341
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97372
|
-
const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
97342
|
+
const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-B_T6TQwh.js");
|
|
97373
97343
|
return { diagram: diagram22 };
|
|
97374
97344
|
}, true ? __vite__mapDeps([42,27,22]) : void 0);
|
|
97375
97345
|
return { id: id22, diagram: diagram2 };
|
|
@@ -97386,7 +97356,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
97386
97356
|
}, "detector");
|
|
97387
97357
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
97388
97358
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97389
|
-
const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-
|
|
97359
|
+
const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-C4ynhhLr.js");
|
|
97390
97360
|
return { diagram: diagram22 };
|
|
97391
97361
|
}, true ? __vite__mapDeps([43,17,19,4,2]) : void 0);
|
|
97392
97362
|
return { id: id23, diagram: diagram2 };
|
|
@@ -97402,7 +97372,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
97402
97372
|
}, "detector");
|
|
97403
97373
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
97404
97374
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97405
|
-
const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-
|
|
97375
|
+
const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-DHxd6LWi.js");
|
|
97406
97376
|
return { diagram: diagram22 };
|
|
97407
97377
|
}, true ? __vite__mapDeps([44,17,19,4,2]) : void 0);
|
|
97408
97378
|
return { id: id24, diagram: diagram2 };
|
|
@@ -97418,7 +97388,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
97418
97388
|
}, "detector");
|
|
97419
97389
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
97420
97390
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97421
|
-
const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-
|
|
97391
|
+
const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-C-pRNHpf.js");
|
|
97422
97392
|
return { diagram: diagram22 };
|
|
97423
97393
|
}, true ? __vite__mapDeps([45,11,5,1,2,14]) : void 0);
|
|
97424
97394
|
return { id: id25, diagram: diagram2 };
|
|
@@ -97435,7 +97405,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
97435
97405
|
}, "detector");
|
|
97436
97406
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
97437
97407
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97438
|
-
const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-
|
|
97408
|
+
const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DToIiZuZ.js");
|
|
97439
97409
|
return { diagram: diagram22 };
|
|
97440
97410
|
}, true ? __vite__mapDeps([46,17,19,4,2,7]) : void 0);
|
|
97441
97411
|
return { id: id26, diagram: diagram2 };
|
|
@@ -97452,7 +97422,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
97452
97422
|
}, "detector");
|
|
97453
97423
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
97454
97424
|
const { diagram: diagram2 } = await __vitePreload(async () => {
|
|
97455
|
-
const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-
|
|
97425
|
+
const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-BPcgy7jf.js");
|
|
97456
97426
|
return { diagram: diagram22 };
|
|
97457
97427
|
}, true ? __vite__mapDeps([47,13,17,19,4,2,23,27,22]) : void 0);
|
|
97458
97428
|
return { id: id27, diagram: diagram2 };
|
|
@@ -98494,8 +98464,11 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98494
98464
|
this.autoScrollResizeObservedEl = null;
|
|
98495
98465
|
this.teammateCallingSectionBySeq = /* @__PURE__ */ new Map();
|
|
98496
98466
|
this.callingSectionByCallId = /* @__PURE__ */ new Map();
|
|
98467
|
+
this.pendingCallTimingById = /* @__PURE__ */ new Map();
|
|
98468
|
+
this.callTimingTicker = null;
|
|
98497
98469
|
this.webSearchSectionByItemId = /* @__PURE__ */ new Map();
|
|
98498
98470
|
this.webSearchSectionBySeq = /* @__PURE__ */ new Map();
|
|
98471
|
+
this.pendingTeammateCallAnchorByGenseq = /* @__PURE__ */ new Map();
|
|
98499
98472
|
this.pendingScrollRequest = null;
|
|
98500
98473
|
this.highlightSeq = 0;
|
|
98501
98474
|
this.pendingHighlight = null;
|
|
@@ -98662,6 +98635,52 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98662
98635
|
sr.addEventListener("click", async (e2) => {
|
|
98663
98636
|
const target = e2.target;
|
|
98664
98637
|
if (!target) return;
|
|
98638
|
+
const assignmentBtn = target.closest(
|
|
98639
|
+
".bubble-anchor-assignment-btn"
|
|
98640
|
+
);
|
|
98641
|
+
if (assignmentBtn) {
|
|
98642
|
+
e2.preventDefault();
|
|
98643
|
+
e2.stopPropagation();
|
|
98644
|
+
const bubble = assignmentBtn.closest(".generation-bubble");
|
|
98645
|
+
if (!bubble) return;
|
|
98646
|
+
const assignmentCourseRaw = Number.parseInt(
|
|
98647
|
+
bubble.getAttribute("data-assignment-course") ?? "",
|
|
98648
|
+
10
|
|
98649
|
+
);
|
|
98650
|
+
const assignmentGenseqRaw = Number.parseInt(
|
|
98651
|
+
bubble.getAttribute("data-assignment-genseq") ?? "",
|
|
98652
|
+
10
|
|
98653
|
+
);
|
|
98654
|
+
if (!Number.isFinite(assignmentCourseRaw) || assignmentCourseRaw <= 0) return;
|
|
98655
|
+
if (!Number.isFinite(assignmentGenseqRaw) || assignmentGenseqRaw <= 0) return;
|
|
98656
|
+
this.navigateToGenerationBubbleInApp(
|
|
98657
|
+
Math.floor(assignmentCourseRaw),
|
|
98658
|
+
Math.floor(assignmentGenseqRaw)
|
|
98659
|
+
);
|
|
98660
|
+
return;
|
|
98661
|
+
}
|
|
98662
|
+
const requesterCallsiteBtn = target.closest(
|
|
98663
|
+
".bubble-anchor-caller-callsite-btn"
|
|
98664
|
+
);
|
|
98665
|
+
if (requesterCallsiteBtn) {
|
|
98666
|
+
e2.preventDefault();
|
|
98667
|
+
e2.stopPropagation();
|
|
98668
|
+
const bubble = requesterCallsiteBtn.closest(".generation-bubble");
|
|
98669
|
+
if (!bubble) return;
|
|
98670
|
+
const callId = (bubble.getAttribute("data-call-id") ?? "").trim();
|
|
98671
|
+
const callerDialogId = (bubble.getAttribute("data-caller-dialog-id") ?? "").trim();
|
|
98672
|
+
const callerCourseRaw = Number.parseInt(
|
|
98673
|
+
bubble.getAttribute("data-caller-course") ?? "",
|
|
98674
|
+
10
|
|
98675
|
+
);
|
|
98676
|
+
if (callId === "" || callerDialogId === "") return;
|
|
98677
|
+
if (!Number.isFinite(callerCourseRaw) || callerCourseRaw <= 0) return;
|
|
98678
|
+
this.openCallSiteDeepLinkInNewTab(callId, {
|
|
98679
|
+
selfId: callerDialogId,
|
|
98680
|
+
course: Math.floor(callerCourseRaw)
|
|
98681
|
+
});
|
|
98682
|
+
return;
|
|
98683
|
+
}
|
|
98665
98684
|
const shareBtn = target.closest(".bubble-share-link-btn");
|
|
98666
98685
|
if (shareBtn) {
|
|
98667
98686
|
e2.preventDefault();
|
|
@@ -98717,6 +98736,16 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98717
98736
|
this.addEventListener("scroll-to-call-id", this.onScrollToCallId);
|
|
98718
98737
|
this.addEventListener("scroll-to-genseq", this.onScrollToGenSeq);
|
|
98719
98738
|
}
|
|
98739
|
+
buildCallIdSelector(callId) {
|
|
98740
|
+
const escaped = CSS.escape(callId);
|
|
98741
|
+
return `.calling-section[data-call-id="${escaped}"], .generation-bubble[data-call-id="${escaped}"]`;
|
|
98742
|
+
}
|
|
98743
|
+
findCallSiteTargetByCallId(messages, callId) {
|
|
98744
|
+
const selector2 = this.buildCallIdSelector(callId);
|
|
98745
|
+
const matches = Array.from(messages.querySelectorAll(selector2));
|
|
98746
|
+
if (matches.length < 1) return null;
|
|
98747
|
+
return matches[matches.length - 1] ?? null;
|
|
98748
|
+
}
|
|
98720
98749
|
maybeApplyPendingScrollRequest() {
|
|
98721
98750
|
const req = this.pendingScrollRequest;
|
|
98722
98751
|
if (!req) return;
|
|
@@ -98734,9 +98763,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98734
98763
|
}
|
|
98735
98764
|
let target = null;
|
|
98736
98765
|
if (req.kind === "by_call_id") {
|
|
98737
|
-
|
|
98738
|
-
const found = messages.querySelector(selector22);
|
|
98739
|
-
target = found instanceof HTMLElement ? found : null;
|
|
98766
|
+
target = this.findCallSiteTargetByCallId(messages, req.callId);
|
|
98740
98767
|
} else if (req.kind === "by_genseq") {
|
|
98741
98768
|
const found = messages.querySelector(`.generation-bubble[data-seq="${String(req.genseq)}"]`);
|
|
98742
98769
|
target = found instanceof HTMLElement ? found : null;
|
|
@@ -98766,7 +98793,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98766
98793
|
target.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
98767
98794
|
let selector2 = null;
|
|
98768
98795
|
if (req.kind === "by_call_id") {
|
|
98769
|
-
selector2 =
|
|
98796
|
+
selector2 = this.buildCallIdSelector(req.callId);
|
|
98770
98797
|
} else if (req.kind === "by_genseq") {
|
|
98771
98798
|
selector2 = `.generation-bubble[data-seq="${String(req.genseq)}"]`;
|
|
98772
98799
|
} else {
|
|
@@ -98916,8 +98943,11 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98916
98943
|
this.currentCourse = course;
|
|
98917
98944
|
this.activeGenSeq = void 0;
|
|
98918
98945
|
this.callingSectionByCallId.clear();
|
|
98946
|
+
this.pendingCallTimingById.clear();
|
|
98947
|
+
this.stopCallTimingTicker();
|
|
98919
98948
|
this.webSearchSectionByItemId.clear();
|
|
98920
98949
|
this.webSearchSectionBySeq.clear();
|
|
98950
|
+
this.pendingTeammateCallAnchorByGenseq.clear();
|
|
98921
98951
|
const messages = this.shadowRoot?.querySelector(".messages");
|
|
98922
98952
|
if (messages) {
|
|
98923
98953
|
messages.innerHTML = "";
|
|
@@ -98936,8 +98966,11 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
98936
98966
|
this.currentCourse = void 0;
|
|
98937
98967
|
this.activeGenSeq = void 0;
|
|
98938
98968
|
this.callingSectionByCallId.clear();
|
|
98969
|
+
this.pendingCallTimingById.clear();
|
|
98970
|
+
this.stopCallTimingTicker();
|
|
98939
98971
|
this.webSearchSectionByItemId.clear();
|
|
98940
98972
|
this.webSearchSectionBySeq.clear();
|
|
98973
|
+
this.pendingTeammateCallAnchorByGenseq.clear();
|
|
98941
98974
|
const messages = this.shadowRoot?.querySelector(".messages");
|
|
98942
98975
|
if (messages) {
|
|
98943
98976
|
messages.innerHTML = "";
|
|
@@ -99097,30 +99130,10 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99097
99130
|
case "markdown_finish_evt":
|
|
99098
99131
|
this.handleMarkdownFinish(event.genseq);
|
|
99099
99132
|
break;
|
|
99100
|
-
// === TELLASK CALL
|
|
99101
|
-
// Renamed from call_* to teammate_call_* for terminology clarity
|
|
99102
|
-
// callId is now set at finish event (not start) - content-hash based
|
|
99133
|
+
// === TELLASK CALL EVENTS (function-tool channel) ===
|
|
99103
99134
|
case "teammate_call_start_evt":
|
|
99104
99135
|
this.handleToolCallStart(event);
|
|
99105
99136
|
break;
|
|
99106
|
-
case "teammate_call_headline_chunk_evt":
|
|
99107
|
-
this.handleToolCallHeadlineChunk(event.genseq, event.chunk);
|
|
99108
|
-
break;
|
|
99109
|
-
case "teammate_call_headline_finish_evt":
|
|
99110
|
-
this.handleToolCallHeadlineFinish(event.genseq);
|
|
99111
|
-
break;
|
|
99112
|
-
case "teammate_call_body_start_evt":
|
|
99113
|
-
this.handleToolCallBodyStart(event.genseq);
|
|
99114
|
-
break;
|
|
99115
|
-
case "teammate_call_body_chunk_evt":
|
|
99116
|
-
this.handleToolCallBodyChunk(event.genseq, event.chunk);
|
|
99117
|
-
break;
|
|
99118
|
-
case "teammate_call_body_finish_evt":
|
|
99119
|
-
this.handleToolCallBodyFinish(event.genseq);
|
|
99120
|
-
break;
|
|
99121
|
-
case "teammate_call_finish_evt":
|
|
99122
|
-
this.handleToolCallFinish(event);
|
|
99123
|
-
break;
|
|
99124
99137
|
// === FUNCTION CALLS (non-streaming mode - direct tool execution) ===
|
|
99125
99138
|
case "func_call_requested_evt": {
|
|
99126
99139
|
const ev = event;
|
|
@@ -99143,10 +99156,13 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99143
99156
|
}
|
|
99144
99157
|
this.handleFuncResult(event);
|
|
99145
99158
|
break;
|
|
99146
|
-
// Teammate-call
|
|
99159
|
+
// Teammate-call lifecycle updates (call site timing + status)
|
|
99147
99160
|
case "teammate_call_response_evt":
|
|
99148
99161
|
this.handleToolCallResponse(event);
|
|
99149
99162
|
break;
|
|
99163
|
+
case "teammate_call_anchor_evt":
|
|
99164
|
+
this.handleTeammateCallAnchor(event);
|
|
99165
|
+
break;
|
|
99150
99166
|
// Teammate responses (separate bubble)
|
|
99151
99167
|
case "teammate_response_evt":
|
|
99152
99168
|
this.handleTeammateResponse(event);
|
|
@@ -99192,6 +99208,12 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99192
99208
|
}
|
|
99193
99209
|
// === GENERATING EVENTS (Frontend Bubble Management) ===
|
|
99194
99210
|
handleGeneratingStart(seq2, timestamp2) {
|
|
99211
|
+
const applyPendingCallAnchor = (bubble2) => {
|
|
99212
|
+
const pendingAnchor = this.pendingTeammateCallAnchorByGenseq.get(seq2);
|
|
99213
|
+
if (!pendingAnchor) return;
|
|
99214
|
+
this.applyTeammateCallAnchorToBubble(bubble2, pendingAnchor);
|
|
99215
|
+
this.pendingTeammateCallAnchorByGenseq.delete(seq2);
|
|
99216
|
+
};
|
|
99195
99217
|
const existingBubble = this.generationBubble;
|
|
99196
99218
|
if (existingBubble) {
|
|
99197
99219
|
const existingSeq = existingBubble.getAttribute("data-seq");
|
|
@@ -99200,6 +99222,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99200
99222
|
existingBubble.setAttribute("data-finalized", "false");
|
|
99201
99223
|
this.setBubbleTimestamp(existingBubble, timestamp2);
|
|
99202
99224
|
this.activeGenSeq = seq2;
|
|
99225
|
+
applyPendingCallAnchor(existingBubble);
|
|
99203
99226
|
this.startAutoScrollObservation(existingBubble);
|
|
99204
99227
|
this.scrollToBottom();
|
|
99205
99228
|
return;
|
|
@@ -99216,6 +99239,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99216
99239
|
const container = this.shadowRoot?.querySelector(".messages");
|
|
99217
99240
|
const bubble = this.createGenerationBubble(timestamp2);
|
|
99218
99241
|
bubble.setAttribute("data-seq", String(seq2));
|
|
99242
|
+
applyPendingCallAnchor(bubble);
|
|
99219
99243
|
bubble.classList.add("generating");
|
|
99220
99244
|
if (container) {
|
|
99221
99245
|
container.appendChild(bubble);
|
|
@@ -99225,8 +99249,15 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99225
99249
|
this.scrollToBottom();
|
|
99226
99250
|
}
|
|
99227
99251
|
ensureGenerationBubbleForSeq(seq2, timestamp2) {
|
|
99252
|
+
const applyPendingCallAnchor = (bubble) => {
|
|
99253
|
+
const pendingAnchor = this.pendingTeammateCallAnchorByGenseq.get(seq2);
|
|
99254
|
+
if (!pendingAnchor) return;
|
|
99255
|
+
this.applyTeammateCallAnchorToBubble(bubble, pendingAnchor);
|
|
99256
|
+
this.pendingTeammateCallAnchorByGenseq.delete(seq2);
|
|
99257
|
+
};
|
|
99228
99258
|
const currentBubble = this.generationBubble;
|
|
99229
99259
|
if (currentBubble && currentBubble.getAttribute("data-seq") === String(seq2)) {
|
|
99260
|
+
applyPendingCallAnchor(currentBubble);
|
|
99230
99261
|
this.startAutoScrollObservation(currentBubble);
|
|
99231
99262
|
return currentBubble;
|
|
99232
99263
|
}
|
|
@@ -99235,6 +99266,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99235
99266
|
if (existing) {
|
|
99236
99267
|
this.generationBubble = existing;
|
|
99237
99268
|
this.activeGenSeq = seq2;
|
|
99269
|
+
applyPendingCallAnchor(existing);
|
|
99238
99270
|
this.startAutoScrollObservation(existing);
|
|
99239
99271
|
return existing;
|
|
99240
99272
|
}
|
|
@@ -99474,7 +99506,7 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99474
99506
|
}
|
|
99475
99507
|
detailsEl.textContent = lines.join("\n");
|
|
99476
99508
|
}
|
|
99477
|
-
// === TELLASK CALL EVENTS (
|
|
99509
|
+
// === TELLASK CALL EVENTS (function-call mode) ===
|
|
99478
99510
|
// callId is set at finish event (not start) - content-hash based
|
|
99479
99511
|
findInFlightToolCallingSectionForGenseq(genseq) {
|
|
99480
99512
|
const sr = this.shadowRoot;
|
|
@@ -99511,116 +99543,190 @@ class DomindsDialogContainer extends HTMLElement {
|
|
|
99511
99543
|
}
|
|
99512
99544
|
return void 0;
|
|
99513
99545
|
}
|
|
99514
|
-
|
|
99515
|
-
|
|
99516
|
-
const
|
|
99517
|
-
|
|
99518
|
-
|
|
99519
|
-
|
|
99520
|
-
|
|
99521
|
-
|
|
99522
|
-
const
|
|
99523
|
-
const
|
|
99524
|
-
|
|
99525
|
-
|
|
99526
|
-
|
|
99527
|
-
|
|
99546
|
+
parseEventTimestampMs(rawTimestamp) {
|
|
99547
|
+
if (typeof rawTimestamp !== "string" || rawTimestamp.trim() === "") return null;
|
|
99548
|
+
const ts = Date.parse(rawTimestamp);
|
|
99549
|
+
return Number.isFinite(ts) ? ts : null;
|
|
99550
|
+
}
|
|
99551
|
+
formatAbsoluteTime(ms) {
|
|
99552
|
+
const d2 = new Date(ms);
|
|
99553
|
+
const y3 = d2.getFullYear();
|
|
99554
|
+
const m2 = String(d2.getMonth() + 1).padStart(2, "0");
|
|
99555
|
+
const day = String(d2.getDate()).padStart(2, "0");
|
|
99556
|
+
const hh = String(d2.getHours()).padStart(2, "0");
|
|
99557
|
+
const mm = String(d2.getMinutes()).padStart(2, "0");
|
|
99558
|
+
const ss = String(d2.getSeconds()).padStart(2, "0");
|
|
99559
|
+
return `${y3}-${m2}-${day} ${hh}:${mm}:${ss}`;
|
|
99560
|
+
}
|
|
99561
|
+
formatDuration(ms) {
|
|
99562
|
+
const totalSeconds = Math.max(0, Math.floor(ms / 1e3));
|
|
99563
|
+
const days = Math.floor(totalSeconds / 86400);
|
|
99564
|
+
const hours = Math.floor(totalSeconds % 86400 / 3600);
|
|
99565
|
+
const minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
99566
|
+
const seconds = totalSeconds % 60;
|
|
99567
|
+
if (this.uiLanguage === "zh") {
|
|
99568
|
+
const parts2 = [];
|
|
99569
|
+
if (days > 0) parts2.push(`${days}天`);
|
|
99570
|
+
if (hours > 0) parts2.push(`${hours}小时`);
|
|
99571
|
+
if (minutes > 0) parts2.push(`${minutes}分`);
|
|
99572
|
+
parts2.push(`${seconds}秒`);
|
|
99573
|
+
return parts2.join("");
|
|
99574
|
+
}
|
|
99575
|
+
const parts = [];
|
|
99576
|
+
if (days > 0) parts.push(`${days}d`);
|
|
99577
|
+
if (hours > 0) parts.push(`${hours}h`);
|
|
99578
|
+
if (minutes > 0) parts.push(`${minutes}m`);
|
|
99579
|
+
parts.push(`${seconds}s`);
|
|
99580
|
+
return parts.join(" ");
|
|
99581
|
+
}
|
|
99582
|
+
normalizeMentionToken(raw) {
|
|
99583
|
+
const trimmed = raw.trim();
|
|
99584
|
+
if (trimmed === "") return "";
|
|
99585
|
+
return trimmed.startsWith("@") ? trimmed : `@${trimmed}`;
|
|
99586
|
+
}
|
|
99587
|
+
extractMentionListFromHeadline(headline) {
|
|
99588
|
+
const re2 = /@([A-Za-z0-9_.-]+)/g;
|
|
99589
|
+
const seen2 = /* @__PURE__ */ new Set();
|
|
99590
|
+
const out = [];
|
|
99591
|
+
for (const match2 of headline.matchAll(re2)) {
|
|
99592
|
+
const id28 = (match2[1] ?? "").trim();
|
|
99593
|
+
if (id28 === "") continue;
|
|
99594
|
+
const mention = `@${id28}`;
|
|
99595
|
+
if (seen2.has(mention)) continue;
|
|
99596
|
+
seen2.add(mention);
|
|
99597
|
+
out.push(mention);
|
|
99528
99598
|
}
|
|
99529
|
-
|
|
99530
|
-
(body || bubble).appendChild(callingSection);
|
|
99531
|
-
this.callingSection = callingSection;
|
|
99532
|
-
this.teammateCallingSectionBySeq.set(genseq, callingSection);
|
|
99533
|
-
this.scrollToBottom();
|
|
99599
|
+
return out;
|
|
99534
99600
|
}
|
|
99535
|
-
|
|
99536
|
-
const
|
|
99537
|
-
if (!
|
|
99538
|
-
|
|
99539
|
-
|
|
99540
|
-
|
|
99541
|
-
|
|
99542
|
-
|
|
99543
|
-
|
|
99601
|
+
renderMentionList(section, mentions) {
|
|
99602
|
+
const mentionEl = section.querySelector(".calling-headline");
|
|
99603
|
+
if (!mentionEl) return;
|
|
99604
|
+
const normalized = mentions.map((item) => this.normalizeMentionToken(item)).filter((item) => item !== "");
|
|
99605
|
+
const unique = Array.from(new Set(normalized));
|
|
99606
|
+
const joined = unique.length > 0 ? unique.join(", ") : this.uiLanguage === "zh" ? "(无)" : "(none)";
|
|
99607
|
+
mentionEl.textContent = this.uiLanguage === "zh" ? `诉请对象: ${joined}` : `Mentions: ${joined}`;
|
|
99608
|
+
}
|
|
99609
|
+
renderCallTiming(section, state2, startedAtMs, endedAtMs) {
|
|
99610
|
+
const timingEl = section.querySelector(".calling-timing");
|
|
99611
|
+
if (!timingEl) return;
|
|
99612
|
+
const startText = this.formatAbsoluteTime(startedAtMs);
|
|
99613
|
+
if (state2 === "pending") {
|
|
99614
|
+
const elapsed = this.formatDuration(Date.now() - startedAtMs);
|
|
99615
|
+
timingEl.textContent = this.uiLanguage === "zh" ? `开始: ${startText} · 已用时: ${elapsed}` : `Started: ${startText} · Elapsed: ${elapsed}`;
|
|
99544
99616
|
return;
|
|
99545
99617
|
}
|
|
99546
|
-
const
|
|
99547
|
-
|
|
99548
|
-
this.
|
|
99618
|
+
const finishedAt = endedAtMs ?? Date.now();
|
|
99619
|
+
const endText = this.formatAbsoluteTime(finishedAt);
|
|
99620
|
+
const total = this.formatDuration(finishedAt - startedAtMs);
|
|
99621
|
+
const statusMark = state2 === "failed" ? this.uiLanguage === "zh" ? "失败" : "failed" : "";
|
|
99622
|
+
timingEl.textContent = this.uiLanguage === "zh" ? `${statusMark ? `状态: ${statusMark} · ` : ""}结束: ${endText} · 总用时: ${total}` : `${statusMark ? `Status: ${statusMark} · ` : ""}Ended: ${endText} · Total: ${total}`;
|
|
99549
99623
|
}
|
|
99550
|
-
|
|
99551
|
-
|
|
99552
|
-
|
|
99553
|
-
this.handleProtocolError(
|
|
99554
|
-
`teammate_call_headline_finish_evt received without calling section ${JSON.stringify({
|
|
99555
|
-
genseq,
|
|
99556
|
-
course: this.currentCourse
|
|
99557
|
-
})}`
|
|
99558
|
-
);
|
|
99624
|
+
refreshPendingCallTimingDisplay() {
|
|
99625
|
+
if (this.pendingCallTimingById.size === 0) {
|
|
99626
|
+
this.stopCallTimingTicker();
|
|
99559
99627
|
return;
|
|
99560
99628
|
}
|
|
99561
|
-
const
|
|
99562
|
-
|
|
99563
|
-
|
|
99564
|
-
|
|
99565
|
-
|
|
99566
|
-
|
|
99567
|
-
|
|
99568
|
-
|
|
99569
|
-
|
|
99570
|
-
|
|
99571
|
-
|
|
99629
|
+
for (const [callId, entry] of this.pendingCallTimingById.entries()) {
|
|
99630
|
+
if (!entry.section.isConnected) {
|
|
99631
|
+
this.pendingCallTimingById.delete(callId);
|
|
99632
|
+
continue;
|
|
99633
|
+
}
|
|
99634
|
+
this.renderCallTiming(entry.section, "pending", entry.startedAtMs);
|
|
99635
|
+
}
|
|
99636
|
+
if (this.pendingCallTimingById.size === 0) {
|
|
99637
|
+
this.stopCallTimingTicker();
|
|
99638
|
+
}
|
|
99639
|
+
}
|
|
99640
|
+
ensureCallTimingTicker() {
|
|
99641
|
+
if (this.callTimingTicker !== null) return;
|
|
99642
|
+
this.callTimingTicker = window.setInterval(() => {
|
|
99643
|
+
this.refreshPendingCallTimingDisplay();
|
|
99644
|
+
}, 1e3);
|
|
99645
|
+
}
|
|
99646
|
+
stopCallTimingTicker() {
|
|
99647
|
+
if (this.callTimingTicker === null) return;
|
|
99648
|
+
window.clearInterval(this.callTimingTicker);
|
|
99649
|
+
this.callTimingTicker = null;
|
|
99650
|
+
}
|
|
99651
|
+
markCallSitePending(callId, section, startedAtMs) {
|
|
99652
|
+
section.classList.remove("completed");
|
|
99653
|
+
section.classList.remove("failed");
|
|
99654
|
+
section.classList.add("pending");
|
|
99655
|
+
this.pendingCallTimingById.set(callId, { section, startedAtMs });
|
|
99656
|
+
this.renderCallTiming(section, "pending", startedAtMs);
|
|
99657
|
+
this.ensureCallTimingTicker();
|
|
99658
|
+
}
|
|
99659
|
+
markCallSiteSettled(callId, status, endedAtMs) {
|
|
99660
|
+
const section = this.callingSectionByCallId.get(callId);
|
|
99661
|
+
if (!section) return;
|
|
99662
|
+
const startedRaw = section.getAttribute("data-call-start-ms");
|
|
99663
|
+
const startedAtMsParsed = startedRaw ? Number.parseInt(startedRaw, 10) : Number.NaN;
|
|
99664
|
+
const startedAtMs = Number.isFinite(startedAtMsParsed) ? startedAtMsParsed : endedAtMs;
|
|
99665
|
+
section.classList.remove("pending");
|
|
99666
|
+
section.classList.add("completed");
|
|
99667
|
+
section.classList.toggle("failed", status === "failed");
|
|
99668
|
+
this.pendingCallTimingById.delete(callId);
|
|
99669
|
+
this.renderCallTiming(section, status, startedAtMs, endedAtMs);
|
|
99670
|
+
if (this.pendingCallTimingById.size === 0) {
|
|
99671
|
+
this.stopCallTimingTicker();
|
|
99572
99672
|
}
|
|
99573
|
-
this.scrollToBottom();
|
|
99574
99673
|
}
|
|
99575
|
-
|
|
99576
|
-
const
|
|
99577
|
-
|
|
99578
|
-
|
|
99579
|
-
|
|
99580
|
-
|
|
99581
|
-
|
|
99674
|
+
handleToolCallStart(event) {
|
|
99675
|
+
const genseq = event.genseq;
|
|
99676
|
+
const mentionList = (() => {
|
|
99677
|
+
switch (event.callName) {
|
|
99678
|
+
case "tellask":
|
|
99679
|
+
case "tellaskSessionless":
|
|
99680
|
+
return event.mentionList;
|
|
99681
|
+
case "tellaskBack":
|
|
99682
|
+
case "askHuman":
|
|
99683
|
+
case "freshBootsReasoning":
|
|
99684
|
+
return [];
|
|
99685
|
+
}
|
|
99686
|
+
})();
|
|
99687
|
+
const firstMention = (() => {
|
|
99688
|
+
if (mentionList.length > 0) {
|
|
99689
|
+
const primaryMention = mentionList[0] ?? "@unknown";
|
|
99690
|
+
return primaryMention.startsWith("@") ? primaryMention.slice(1) : primaryMention;
|
|
99691
|
+
}
|
|
99692
|
+
switch (event.callName) {
|
|
99693
|
+
case "tellaskBack":
|
|
99694
|
+
return "tellaskBack";
|
|
99695
|
+
case "askHuman":
|
|
99696
|
+
return "askHuman";
|
|
99697
|
+
case "freshBootsReasoning":
|
|
99698
|
+
return "freshBootsReasoning";
|
|
99699
|
+
case "tellask":
|
|
99700
|
+
case "tellaskSessionless":
|
|
99701
|
+
return "unknown";
|
|
99702
|
+
}
|
|
99703
|
+
})();
|
|
99704
|
+
const bubble = this.ensureGenerationBubbleForSeq(genseq, event.timestamp);
|
|
99705
|
+
if (!bubble) {
|
|
99706
|
+
console.warn("[TeammateCallStart] No generation bubble, skipping");
|
|
99582
99707
|
return;
|
|
99583
99708
|
}
|
|
99584
|
-
const
|
|
99585
|
-
|
|
99586
|
-
this.
|
|
99587
|
-
|
|
99588
|
-
|
|
99589
|
-
|
|
99590
|
-
|
|
99591
|
-
console.warn("teammate_call_body_finish_evt received without calling section", {
|
|
99592
|
-
genseq,
|
|
99593
|
-
course: this.currentCourse
|
|
99594
|
-
});
|
|
99595
|
-
return;
|
|
99709
|
+
const body = bubble.querySelector(".bubble-body");
|
|
99710
|
+
const callingSection = this.createCallingSection(event.callName, firstMention);
|
|
99711
|
+
const startedAtMs = this.parseEventTimestampMs(event.timestamp) ?? Date.now();
|
|
99712
|
+
callingSection.setAttribute("data-call-start-ms", String(startedAtMs));
|
|
99713
|
+
callingSection.setAttribute("data-call-id", event.callId);
|
|
99714
|
+
if (mentionList.length > 0) {
|
|
99715
|
+
this.renderMentionList(callingSection, mentionList);
|
|
99596
99716
|
}
|
|
99597
99717
|
const bodyEl = callingSection.querySelector(".calling-body");
|
|
99598
|
-
if (bodyEl)
|
|
99599
|
-
|
|
99600
|
-
|
|
99601
|
-
const currentSection = this.getActiveToolCallingSection(event.genseq);
|
|
99602
|
-
if (!currentSection) {
|
|
99603
|
-
this.handleProtocolError(
|
|
99604
|
-
`teammate_call_finish_evt received without calling section ${JSON.stringify({
|
|
99605
|
-
genseq: event.genseq,
|
|
99606
|
-
course: this.currentCourse,
|
|
99607
|
-
callId: event.callId
|
|
99608
|
-
})}`
|
|
99609
|
-
);
|
|
99610
|
-
return;
|
|
99611
|
-
}
|
|
99612
|
-
const callId = String(event.callId || "").trim();
|
|
99613
|
-
if (!callId) {
|
|
99614
|
-
this.handleProtocolError(
|
|
99615
|
-
`teammate_call_finish_evt missing callId ${JSON.stringify({ genseq: event.genseq })}`
|
|
99616
|
-
);
|
|
99617
|
-
return;
|
|
99718
|
+
if (bodyEl) {
|
|
99719
|
+
bodyEl.textContent = event.tellaskContent;
|
|
99720
|
+
bodyEl.classList.add("completed");
|
|
99618
99721
|
}
|
|
99619
|
-
|
|
99620
|
-
|
|
99621
|
-
|
|
99722
|
+
this.renderCallTiming(callingSection, "pending", startedAtMs);
|
|
99723
|
+
callingSection.setAttribute("data-genseq", String(genseq));
|
|
99724
|
+
(body || bubble).appendChild(callingSection);
|
|
99622
99725
|
this.callingSection = void 0;
|
|
99623
|
-
this.teammateCallingSectionBySeq.set(
|
|
99726
|
+
this.teammateCallingSectionBySeq.set(genseq, callingSection);
|
|
99727
|
+
this.callingSectionByCallId.set(event.callId, callingSection);
|
|
99728
|
+
this.markCallSitePending(event.callId, callingSection, startedAtMs);
|
|
99729
|
+
this.scrollToBottom();
|
|
99624
99730
|
}
|
|
99625
99731
|
// === FUNCTION RESULTS ===
|
|
99626
99732
|
handleFuncResult(event) {
|
|
@@ -99719,25 +99825,11 @@ ${event.content}`;
|
|
|
99719
99825
|
this.scrollToBottom();
|
|
99720
99826
|
}
|
|
99721
99827
|
}
|
|
99722
|
-
// ===
|
|
99723
|
-
//
|
|
99724
|
-
//
|
|
99828
|
+
// === TELLASK CALL RESULT HANDLER ===
|
|
99829
|
+
// Final response body is shown in a separate teammate bubble.
|
|
99830
|
+
// Call site only tracks lifecycle status/timing.
|
|
99725
99831
|
//
|
|
99726
99832
|
// Call Type Distinction:
|
|
99727
|
-
// - Tellask Call (inline bubble): !?@<mention-id>
|
|
99728
|
-
// - Result displays INLINE in same bubble via attachResultInline()
|
|
99729
|
-
// - Uses callId for correlation (callingSectionByCallId map)
|
|
99730
|
-
// - Uses this handler (handleToolCallResponse)
|
|
99731
|
-
//
|
|
99732
|
-
// - Teammate Tellask: !?@agentName (e.g., !?@coder, !?@tester)
|
|
99733
|
-
// - Result displays in SEPARATE bubble (subdialog response)
|
|
99734
|
-
// - Uses calleeDialogId for correlation
|
|
99735
|
-
// - Uses handleTeammateResponse() instead
|
|
99736
|
-
//
|
|
99737
|
-
// - Supdialog Call: subdialog responding to @parentAgentId from within
|
|
99738
|
-
// - Result displays INLINE in parent's bubble
|
|
99739
|
-
// - Uses callId for correlation
|
|
99740
|
-
// - Uses this handler (handleToolCallResponse)
|
|
99741
99833
|
handleToolCallResponse(event) {
|
|
99742
99834
|
if (typeof this.currentCourse === "number" && event.course !== this.currentCourse) {
|
|
99743
99835
|
this.handleProtocolError(
|
|
@@ -99751,10 +99843,12 @@ ${event.content}`;
|
|
|
99751
99843
|
}
|
|
99752
99844
|
const callId = String(event.callId || "").trim();
|
|
99753
99845
|
if (!callId) {
|
|
99846
|
+
const mentionListForLog = event.callName === "tellask" || event.callName === "tellaskSessionless" ? event.mentionList : void 0;
|
|
99754
99847
|
this.handleProtocolError(
|
|
99755
99848
|
`teammate_call_response_evt missing callId ${JSON.stringify({
|
|
99756
99849
|
responderId: event.responderId,
|
|
99757
|
-
|
|
99850
|
+
mentionList: mentionListForLog,
|
|
99851
|
+
tellaskContent: event.tellaskContent,
|
|
99758
99852
|
calling_genseq: event.calling_genseq
|
|
99759
99853
|
})}`
|
|
99760
99854
|
);
|
|
@@ -99763,7 +99857,7 @@ ${event.content}`;
|
|
|
99763
99857
|
const callingSection = this.callingSectionByCallId.get(callId);
|
|
99764
99858
|
if (!callingSection) {
|
|
99765
99859
|
this.handleProtocolError(
|
|
99766
|
-
`teammate_call_response_evt received before
|
|
99860
|
+
`teammate_call_response_evt received before teammate_call_start_evt ${JSON.stringify({
|
|
99767
99861
|
callId,
|
|
99768
99862
|
course: event.course,
|
|
99769
99863
|
calling_genseq: event.calling_genseq,
|
|
@@ -99772,73 +99866,117 @@ ${event.content}`;
|
|
|
99772
99866
|
);
|
|
99773
99867
|
return;
|
|
99774
99868
|
}
|
|
99775
|
-
const
|
|
99776
|
-
this.
|
|
99869
|
+
const endedAtMs = this.parseEventTimestampMs(event.timestamp) ?? Date.now();
|
|
99870
|
+
this.markCallSiteSettled(callId, event.status, endedAtMs);
|
|
99777
99871
|
if (event.status === "failed") {
|
|
99778
99872
|
const host = this.getRootNode()?.host;
|
|
99779
99873
|
const t2 = getUiStrings(this.uiLanguage);
|
|
99780
99874
|
host?.dispatchEvent(
|
|
99781
99875
|
new CustomEvent("ui-toast", {
|
|
99782
|
-
detail: {
|
|
99876
|
+
detail: {
|
|
99877
|
+
message: String(event.result || t2.teammateCallFailedToast),
|
|
99878
|
+
kind: "error"
|
|
99879
|
+
},
|
|
99783
99880
|
bubbles: true,
|
|
99784
99881
|
composed: true
|
|
99785
99882
|
})
|
|
99786
99883
|
);
|
|
99787
99884
|
}
|
|
99788
99885
|
}
|
|
99789
|
-
|
|
99790
|
-
|
|
99791
|
-
|
|
99792
|
-
const raw = bubble.getAttribute("data-user-language-code");
|
|
99793
|
-
if (typeof raw === "string") {
|
|
99794
|
-
const parsed = normalizeLanguageCode(raw);
|
|
99795
|
-
if (parsed) return parsed;
|
|
99796
|
-
}
|
|
99886
|
+
parseOptionalPositiveInt(value) {
|
|
99887
|
+
if (typeof value !== "number") {
|
|
99888
|
+
return void 0;
|
|
99797
99889
|
}
|
|
99798
|
-
|
|
99890
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
99891
|
+
return void 0;
|
|
99892
|
+
}
|
|
99893
|
+
return Math.floor(value);
|
|
99894
|
+
}
|
|
99895
|
+
applyTeammateCallAnchorToBubble(bubble, anchor2) {
|
|
99896
|
+
bubble.setAttribute("data-call-id", anchor2.callId);
|
|
99897
|
+
bubble.setAttribute("data-teammate-call-anchor-role", anchor2.anchorRole);
|
|
99898
|
+
const assignmentCourse = typeof anchor2.assignmentCourse === "number" && Number.isFinite(anchor2.assignmentCourse) ? Math.floor(anchor2.assignmentCourse) : void 0;
|
|
99899
|
+
const assignmentGenseq = typeof anchor2.assignmentGenseq === "number" && Number.isFinite(anchor2.assignmentGenseq) ? Math.floor(anchor2.assignmentGenseq) : void 0;
|
|
99900
|
+
if (assignmentCourse !== void 0) {
|
|
99901
|
+
bubble.setAttribute("data-assignment-course", String(assignmentCourse));
|
|
99902
|
+
} else {
|
|
99903
|
+
bubble.removeAttribute("data-assignment-course");
|
|
99904
|
+
}
|
|
99905
|
+
if (assignmentGenseq !== void 0) {
|
|
99906
|
+
bubble.setAttribute("data-assignment-genseq", String(assignmentGenseq));
|
|
99907
|
+
} else {
|
|
99908
|
+
bubble.removeAttribute("data-assignment-genseq");
|
|
99909
|
+
}
|
|
99910
|
+
const callerDialogId = typeof anchor2.callerDialogId === "string" ? anchor2.callerDialogId.trim() : "";
|
|
99911
|
+
if (callerDialogId !== "") {
|
|
99912
|
+
bubble.setAttribute("data-caller-dialog-id", callerDialogId);
|
|
99913
|
+
} else {
|
|
99914
|
+
bubble.removeAttribute("data-caller-dialog-id");
|
|
99915
|
+
}
|
|
99916
|
+
const callerCourse = typeof anchor2.callerCourse === "number" && Number.isFinite(anchor2.callerCourse) ? Math.floor(anchor2.callerCourse) : void 0;
|
|
99917
|
+
if (callerCourse !== void 0) {
|
|
99918
|
+
bubble.setAttribute("data-caller-course", String(callerCourse));
|
|
99919
|
+
} else {
|
|
99920
|
+
bubble.removeAttribute("data-caller-course");
|
|
99921
|
+
}
|
|
99922
|
+
this.upsertGenerationBubbleAnchorActions(bubble);
|
|
99799
99923
|
}
|
|
99800
|
-
|
|
99801
|
-
const
|
|
99802
|
-
if (
|
|
99803
|
-
|
|
99804
|
-
|
|
99805
|
-
|
|
99806
|
-
if (!
|
|
99924
|
+
handleTeammateCallAnchor(event) {
|
|
99925
|
+
const rawCallId = typeof event.callId === "string" ? event.callId.trim() : "";
|
|
99926
|
+
if (rawCallId === "") {
|
|
99927
|
+
this.handleProtocolError("teammate_call_anchor_evt missing callId");
|
|
99928
|
+
return;
|
|
99929
|
+
}
|
|
99930
|
+
if (!Number.isFinite(event.genseq) || event.genseq <= 0) {
|
|
99807
99931
|
this.handleProtocolError(
|
|
99808
|
-
`
|
|
99809
|
-
|
|
99810
|
-
|
|
99811
|
-
calling_genseq: event.calling_genseq
|
|
99932
|
+
`teammate_call_anchor_evt invalid genseq ${JSON.stringify({
|
|
99933
|
+
genseq: event.genseq,
|
|
99934
|
+
callId: rawCallId
|
|
99812
99935
|
})}`
|
|
99813
99936
|
);
|
|
99814
|
-
return
|
|
99937
|
+
return;
|
|
99815
99938
|
}
|
|
99816
|
-
|
|
99817
|
-
|
|
99818
|
-
|
|
99819
|
-
|
|
99820
|
-
|
|
99821
|
-
|
|
99822
|
-
|
|
99823
|
-
|
|
99824
|
-
|
|
99825
|
-
|
|
99826
|
-
const resultEl = section.querySelector(".calling-result");
|
|
99827
|
-
if (resultEl) {
|
|
99828
|
-
const raw = String(result || "");
|
|
99829
|
-
resultEl.innerHTML = renderDomindsMarkdown(raw);
|
|
99830
|
-
resultEl.setAttribute("data-raw-md", raw);
|
|
99831
|
-
resultEl.classList.toggle("failed", status === "failed");
|
|
99832
|
-
resultEl.style.display = "block";
|
|
99939
|
+
const rawAnchorRole = typeof event.anchorRole === "string" ? event.anchorRole.trim() : "";
|
|
99940
|
+
if (rawAnchorRole !== "assignment" && rawAnchorRole !== "response") {
|
|
99941
|
+
this.handleProtocolError(
|
|
99942
|
+
`teammate_call_anchor_evt invalid anchorRole ${JSON.stringify({
|
|
99943
|
+
anchorRole: rawAnchorRole,
|
|
99944
|
+
callId: rawCallId,
|
|
99945
|
+
genseq: event.genseq
|
|
99946
|
+
})}`
|
|
99947
|
+
);
|
|
99948
|
+
return;
|
|
99833
99949
|
}
|
|
99834
|
-
this.
|
|
99950
|
+
const assignmentCourse = this.parseOptionalPositiveInt(event.assignmentCourse);
|
|
99951
|
+
const assignmentGenseq = this.parseOptionalPositiveInt(event.assignmentGenseq);
|
|
99952
|
+
const callerCourse = this.parseOptionalPositiveInt(event.callerCourse);
|
|
99953
|
+
const callerDialogId = typeof event.callerDialogId === "string" ? event.callerDialogId.trim() : void 0;
|
|
99954
|
+
const anchorMeta = {
|
|
99955
|
+
callId: rawCallId,
|
|
99956
|
+
anchorRole: rawAnchorRole,
|
|
99957
|
+
assignmentCourse,
|
|
99958
|
+
assignmentGenseq,
|
|
99959
|
+
callerDialogId,
|
|
99960
|
+
callerCourse
|
|
99961
|
+
};
|
|
99962
|
+
const genseq = Math.floor(event.genseq);
|
|
99963
|
+
const messages = this.shadowRoot?.querySelector(".messages");
|
|
99964
|
+
const bubble = messages ? messages.querySelector(
|
|
99965
|
+
`.generation-bubble[data-seq="${String(genseq)}"]`
|
|
99966
|
+
) : null;
|
|
99967
|
+
if (bubble) {
|
|
99968
|
+
this.applyTeammateCallAnchorToBubble(bubble, anchorMeta);
|
|
99969
|
+
this.pendingTeammateCallAnchorByGenseq.delete(genseq);
|
|
99970
|
+
return;
|
|
99971
|
+
}
|
|
99972
|
+
this.pendingTeammateCallAnchorByGenseq.set(genseq, anchorMeta);
|
|
99835
99973
|
}
|
|
99836
99974
|
// === TEAMMATE RESPONSE HANDLER ===
|
|
99837
99975
|
// Handles responses for @agentName calls - displays result in SEPARATE bubble
|
|
99838
99976
|
// Now includes full response and agentId from subdialog completion
|
|
99839
99977
|
//
|
|
99840
99978
|
// Call Type Distinction:
|
|
99841
|
-
// - Teammate
|
|
99979
|
+
// - Teammate tellask function calls (tellask/tellaskSessionless)
|
|
99842
99980
|
// - Result displays in SEPARATE bubble (subdialog or supdialog response)
|
|
99843
99981
|
// - Uses calleeDialogId for correlation (event.calleeDialogId)
|
|
99844
99982
|
// - Uses this handler (handleTeammateResponse)
|
|
@@ -99848,6 +99986,11 @@ ${event.content}`;
|
|
|
99848
99986
|
// - Uses callId for correlation
|
|
99849
99987
|
// - Uses handleToolCallResponse() instead
|
|
99850
99988
|
handleTeammateResponse(event) {
|
|
99989
|
+
const normalizedCallId = String(event.callId || "").trim();
|
|
99990
|
+
if (normalizedCallId !== "") {
|
|
99991
|
+
const endedAtMs = this.parseEventTimestampMs(event.timestamp) ?? Date.now();
|
|
99992
|
+
this.markCallSiteSettled(normalizedCallId, event.status, endedAtMs);
|
|
99993
|
+
}
|
|
99851
99994
|
if (!event.calleeDialogId) {
|
|
99852
99995
|
console.error("handleTeammateResponse: Missing calleeDialogId", {
|
|
99853
99996
|
responderId: event.responderId,
|
|
@@ -99871,7 +100014,8 @@ ${event.content}`;
|
|
|
99871
100014
|
event.calling_genseq,
|
|
99872
100015
|
event.callId,
|
|
99873
100016
|
event.originMemberId,
|
|
99874
|
-
event.
|
|
100017
|
+
event.callName,
|
|
100018
|
+
typeof event.calleeCourse === "number" && Number.isFinite(event.calleeCourse) ? Math.floor(event.calleeCourse) : void 0
|
|
99875
100019
|
);
|
|
99876
100020
|
const container = this.shadowRoot?.querySelector(".messages");
|
|
99877
100021
|
if (container) {
|
|
@@ -99906,7 +100050,7 @@ ${event.content}`;
|
|
|
99906
100050
|
}
|
|
99907
100051
|
// Create teammate bubble for subagent responses
|
|
99908
100052
|
// calleeDialogId: ID of the callee dialog (subdialog OR supdialog)
|
|
99909
|
-
createTeammateBubble(calleeDialogId, agentId, responseNarr, callSiteId, callId, originMemberId,
|
|
100053
|
+
createTeammateBubble(calleeDialogId, agentId, responseNarr, callSiteId, callId, originMemberId, callName, calleeCourse) {
|
|
99910
100054
|
const t2 = getUiStrings(this.uiLanguage);
|
|
99911
100055
|
const el = document.createElement("div");
|
|
99912
100056
|
el.className = "message teammate";
|
|
@@ -99917,9 +100061,9 @@ ${event.content}`;
|
|
|
99917
100061
|
if (callId) {
|
|
99918
100062
|
el.setAttribute("data-call-id", callId);
|
|
99919
100063
|
}
|
|
99920
|
-
const
|
|
99921
|
-
const callsign =
|
|
99922
|
-
const responseIndicator =
|
|
100064
|
+
const isFbr = callName === "freshBootsReasoning";
|
|
100065
|
+
const callsign = isFbr ? "FBR" : agentId ? `@${agentId}` : "Teammate";
|
|
100066
|
+
const responseIndicator = isFbr ? " · FBR" : this.getTeammateResponseIndicator(agentId, originMemberId);
|
|
99923
100067
|
el.innerHTML = `
|
|
99924
100068
|
<div class="bubble-content">
|
|
99925
100069
|
<div class="bubble-header">
|
|
@@ -99983,7 +100127,10 @@ ${event.content}`;
|
|
|
99983
100127
|
externalBtn.addEventListener("click", (e2) => {
|
|
99984
100128
|
e2.preventDefault();
|
|
99985
100129
|
e2.stopPropagation();
|
|
99986
|
-
this.openCallSiteDeepLinkInNewTab(callId
|
|
100130
|
+
this.openCallSiteDeepLinkInNewTab(callId, {
|
|
100131
|
+
selfId: calleeDialogId,
|
|
100132
|
+
course: calleeCourse
|
|
100133
|
+
});
|
|
99987
100134
|
});
|
|
99988
100135
|
}
|
|
99989
100136
|
const shareBtn = el.querySelector("button.callsite-icon-btn.share");
|
|
@@ -99991,7 +100138,10 @@ ${event.content}`;
|
|
|
99991
100138
|
shareBtn.addEventListener("click", (e2) => {
|
|
99992
100139
|
e2.preventDefault();
|
|
99993
100140
|
e2.stopPropagation();
|
|
99994
|
-
void this.copyCallSiteDeepLinkToClipboard(callId
|
|
100141
|
+
void this.copyCallSiteDeepLinkToClipboard(callId, {
|
|
100142
|
+
selfId: calleeDialogId,
|
|
100143
|
+
course: calleeCourse
|
|
100144
|
+
});
|
|
99995
100145
|
});
|
|
99996
100146
|
}
|
|
99997
100147
|
return el;
|
|
@@ -100006,10 +100156,43 @@ ${event.content}`;
|
|
|
100006
100156
|
return;
|
|
100007
100157
|
}
|
|
100008
100158
|
}
|
|
100009
|
-
|
|
100159
|
+
navigateToGenerationBubbleInApp(course, genseq) {
|
|
100160
|
+
if (!Number.isFinite(course) || course <= 0) return;
|
|
100161
|
+
if (!Number.isFinite(genseq) || genseq <= 0) return;
|
|
100162
|
+
const normalizedCourse = Math.floor(course);
|
|
100163
|
+
const normalizedGenseq = Math.floor(genseq);
|
|
100010
100164
|
const dialog = this.currentDialog;
|
|
100011
|
-
|
|
100012
|
-
if (
|
|
100165
|
+
if (!dialog) return;
|
|
100166
|
+
if (this.currentCourse === normalizedCourse) {
|
|
100167
|
+
this.pendingScrollRequest = {
|
|
100168
|
+
kind: "by_genseq",
|
|
100169
|
+
course: normalizedCourse,
|
|
100170
|
+
genseq: normalizedGenseq
|
|
100171
|
+
};
|
|
100172
|
+
this.maybeApplyPendingScrollRequest();
|
|
100173
|
+
return;
|
|
100174
|
+
}
|
|
100175
|
+
this.dispatchEvent(
|
|
100176
|
+
new CustomEvent("navigate-genseq", {
|
|
100177
|
+
detail: {
|
|
100178
|
+
rootId: dialog.rootId,
|
|
100179
|
+
selfId: dialog.selfId,
|
|
100180
|
+
course: normalizedCourse,
|
|
100181
|
+
genseq: normalizedGenseq
|
|
100182
|
+
},
|
|
100183
|
+
bubbles: true,
|
|
100184
|
+
composed: true
|
|
100185
|
+
})
|
|
100186
|
+
);
|
|
100187
|
+
}
|
|
100188
|
+
openCallSiteDeepLinkInNewTab(callId, target) {
|
|
100189
|
+
const dialog = this.currentDialog;
|
|
100190
|
+
if (!dialog) return;
|
|
100191
|
+
const selfId = typeof target?.selfId === "string" ? target.selfId.trim() : "";
|
|
100192
|
+
const resolvedSelfId = selfId !== "" ? selfId : dialog.selfId;
|
|
100193
|
+
const course = target?.course;
|
|
100194
|
+
const resolvedCourse = typeof course === "number" && Number.isFinite(course) ? course : this.currentCourse;
|
|
100195
|
+
if (typeof resolvedCourse !== "number" || !Number.isFinite(resolvedCourse)) return;
|
|
100013
100196
|
const url = new URL(window.location.href);
|
|
100014
100197
|
url.searchParams.delete("rootId");
|
|
100015
100198
|
url.searchParams.delete("selfId");
|
|
@@ -100020,17 +100203,21 @@ ${event.content}`;
|
|
|
100020
100203
|
url.hash = "";
|
|
100021
100204
|
url.pathname = `/dl/callsite`;
|
|
100022
100205
|
url.searchParams.set("rootId", dialog.rootId);
|
|
100023
|
-
url.searchParams.set("selfId",
|
|
100024
|
-
url.searchParams.set("course", String(Math.floor(
|
|
100206
|
+
url.searchParams.set("selfId", resolvedSelfId);
|
|
100207
|
+
url.searchParams.set("course", String(Math.floor(resolvedCourse)));
|
|
100025
100208
|
url.searchParams.set("callId", callId);
|
|
100026
100209
|
const urlStr = url.toString();
|
|
100027
100210
|
const w2 = window.open(urlStr, "_blank", "noopener,noreferrer");
|
|
100028
100211
|
if (w2) w2.opener = null;
|
|
100029
100212
|
}
|
|
100030
|
-
async copyCallSiteDeepLinkToClipboard(callId) {
|
|
100213
|
+
async copyCallSiteDeepLinkToClipboard(callId, target) {
|
|
100031
100214
|
const dialog = this.currentDialog;
|
|
100032
|
-
|
|
100033
|
-
|
|
100215
|
+
if (!dialog) return;
|
|
100216
|
+
const selfId = typeof target?.selfId === "string" ? target.selfId.trim() : "";
|
|
100217
|
+
const resolvedSelfId = selfId !== "" ? selfId : dialog.selfId;
|
|
100218
|
+
const course = target?.course;
|
|
100219
|
+
const resolvedCourse = typeof course === "number" && Number.isFinite(course) ? course : this.currentCourse;
|
|
100220
|
+
if (typeof resolvedCourse !== "number" || !Number.isFinite(resolvedCourse)) return;
|
|
100034
100221
|
const url = new URL(window.location.href);
|
|
100035
100222
|
url.searchParams.delete("rootId");
|
|
100036
100223
|
url.searchParams.delete("selfId");
|
|
@@ -100041,8 +100228,8 @@ ${event.content}`;
|
|
|
100041
100228
|
url.hash = "";
|
|
100042
100229
|
url.pathname = `/dl/callsite`;
|
|
100043
100230
|
url.searchParams.set("rootId", dialog.rootId);
|
|
100044
|
-
url.searchParams.set("selfId",
|
|
100045
|
-
url.searchParams.set("course", String(Math.floor(
|
|
100231
|
+
url.searchParams.set("selfId", resolvedSelfId);
|
|
100232
|
+
url.searchParams.set("course", String(Math.floor(resolvedCourse)));
|
|
100046
100233
|
url.searchParams.set("callId", callId);
|
|
100047
100234
|
await this.copyLinkToClipboardWithToast(url.toString());
|
|
100048
100235
|
}
|
|
@@ -100112,17 +100299,11 @@ ${event.content}`;
|
|
|
100112
100299
|
);
|
|
100113
100300
|
}
|
|
100114
100301
|
formatAgentLabel(agentId) {
|
|
100115
|
-
if (agentId === "human" || agentId === "@human") {
|
|
100116
|
-
return "Human";
|
|
100117
|
-
}
|
|
100118
100302
|
return agentId.startsWith("@") ? agentId : `@${agentId}`;
|
|
100119
100303
|
}
|
|
100120
100304
|
formatCallerLabel(assignment) {
|
|
100121
100305
|
const originMemberId = assignment.originMemberId;
|
|
100122
100306
|
if (originMemberId && originMemberId.trim() !== "") {
|
|
100123
|
-
if (originMemberId === "human") {
|
|
100124
|
-
return "Human";
|
|
100125
|
-
}
|
|
100126
100307
|
return this.formatAgentLabel(originMemberId);
|
|
100127
100308
|
}
|
|
100128
100309
|
return "Assistant";
|
|
@@ -100133,13 +100314,78 @@ ${event.content}`;
|
|
|
100133
100314
|
return "Response";
|
|
100134
100315
|
}
|
|
100135
100316
|
let caller = this.formatAgentLabel(dialog.agentId);
|
|
100136
|
-
if (originMemberId
|
|
100137
|
-
caller = "Human";
|
|
100138
|
-
} else if (originMemberId && originMemberId.trim() !== "") {
|
|
100317
|
+
if (originMemberId && originMemberId.trim() !== "") {
|
|
100139
100318
|
caller = this.formatAgentLabel(originMemberId);
|
|
100140
100319
|
}
|
|
100141
100320
|
return ` → ${caller}`;
|
|
100142
100321
|
}
|
|
100322
|
+
upsertGenerationBubbleAnchorActions(bubble) {
|
|
100323
|
+
const headerRight = bubble.querySelector(".bubble-header-right");
|
|
100324
|
+
if (!headerRight) {
|
|
100325
|
+
return;
|
|
100326
|
+
}
|
|
100327
|
+
const existingActions = headerRight.querySelector(
|
|
100328
|
+
".bubble-anchor-actions"
|
|
100329
|
+
);
|
|
100330
|
+
const anchorRole = bubble.getAttribute("data-teammate-call-anchor-role");
|
|
100331
|
+
if (anchorRole !== "response") {
|
|
100332
|
+
existingActions?.remove();
|
|
100333
|
+
return;
|
|
100334
|
+
}
|
|
100335
|
+
const callId = (bubble.getAttribute("data-call-id") ?? "").trim();
|
|
100336
|
+
const assignmentCourseRaw = Number.parseInt(
|
|
100337
|
+
bubble.getAttribute("data-assignment-course") ?? "",
|
|
100338
|
+
10
|
|
100339
|
+
);
|
|
100340
|
+
const assignmentGenseqRaw = Number.parseInt(
|
|
100341
|
+
bubble.getAttribute("data-assignment-genseq") ?? "",
|
|
100342
|
+
10
|
|
100343
|
+
);
|
|
100344
|
+
const callerDialogId = (bubble.getAttribute("data-caller-dialog-id") ?? "").trim();
|
|
100345
|
+
const callerCourseRaw = Number.parseInt(bubble.getAttribute("data-caller-course") ?? "", 10);
|
|
100346
|
+
const hasAssignmentRef = Number.isFinite(assignmentCourseRaw) && assignmentCourseRaw > 0 && Number.isFinite(assignmentGenseqRaw) && assignmentGenseqRaw > 0;
|
|
100347
|
+
const hasCallerRef = callId !== "" && callerDialogId !== "" && Number.isFinite(callerCourseRaw) && callerCourseRaw > 0;
|
|
100348
|
+
if (!hasAssignmentRef || !hasCallerRef) {
|
|
100349
|
+
this.handleProtocolError(
|
|
100350
|
+
`response anchor bubble missing link refs ${JSON.stringify({
|
|
100351
|
+
callId,
|
|
100352
|
+
assignmentCourse: bubble.getAttribute("data-assignment-course"),
|
|
100353
|
+
assignmentGenseq: bubble.getAttribute("data-assignment-genseq"),
|
|
100354
|
+
callerDialogId,
|
|
100355
|
+
callerCourse: bubble.getAttribute("data-caller-course")
|
|
100356
|
+
})}`
|
|
100357
|
+
);
|
|
100358
|
+
existingActions?.remove();
|
|
100359
|
+
return;
|
|
100360
|
+
}
|
|
100361
|
+
const t2 = getUiStrings(this.uiLanguage);
|
|
100362
|
+
const actions = existingActions ?? document.createElement("div");
|
|
100363
|
+
actions.className = "bubble-anchor-actions";
|
|
100364
|
+
actions.innerHTML = `
|
|
100365
|
+
<button type="button" class="bubble-anchor-assignment-btn" aria-label="${this.escapeHtml(t2.teammateAssignmentBubbleTitle)}" title="${this.escapeHtml(t2.teammateAssignmentBubbleTitle)}">
|
|
100366
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
100367
|
+
<circle cx="12" cy="12" r="3"></circle>
|
|
100368
|
+
<path d="M12 2v3"></path>
|
|
100369
|
+
<path d="M12 19v3"></path>
|
|
100370
|
+
<path d="M2 12h3"></path>
|
|
100371
|
+
<path d="M19 12h3"></path>
|
|
100372
|
+
</svg>
|
|
100373
|
+
</button>
|
|
100374
|
+
<button type="button" class="bubble-anchor-caller-callsite-btn" aria-label="${this.escapeHtml(t2.teammateRequesterCallSiteTitle)}" title="${this.escapeHtml(t2.teammateRequesterCallSiteTitle)}">
|
|
100375
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
100376
|
+
<path d="M14 3h7v7"></path>
|
|
100377
|
+
<path d="M10 14L21 3"></path>
|
|
100378
|
+
<path d="M21 14v7H3V3h7"></path>
|
|
100379
|
+
</svg>
|
|
100380
|
+
</button>
|
|
100381
|
+
`;
|
|
100382
|
+
const shareBtn = headerRight.querySelector(".bubble-share-link-btn");
|
|
100383
|
+
if (shareBtn) {
|
|
100384
|
+
headerRight.insertBefore(actions, shareBtn);
|
|
100385
|
+
} else {
|
|
100386
|
+
headerRight.appendChild(actions);
|
|
100387
|
+
}
|
|
100388
|
+
}
|
|
100143
100389
|
buildGenerationBubbleHeaderHtml(timestamp2) {
|
|
100144
100390
|
const t2 = getUiStrings(this.uiLanguage);
|
|
100145
100391
|
const authorLabel = this.getAuthorLabel("assistant");
|
|
@@ -100154,6 +100400,7 @@ ${event.content}`;
|
|
|
100154
100400
|
</div>
|
|
100155
100401
|
</div>
|
|
100156
100402
|
<div class="bubble-header-right">
|
|
100403
|
+
<div class="bubble-anchor-actions"></div>
|
|
100157
100404
|
<button type="button" class="bubble-share-link-btn" aria-label="${this.escapeHtml(t2.q4hCopyLinkTitle)}" title="${this.escapeHtml(t2.q4hCopyLinkTitle)}">
|
|
100158
100405
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
100159
100406
|
<path d="M10 13a5 5 0 0 1 0-7l1-1a5 5 0 0 1 7 7l-1 1"></path>
|
|
@@ -100253,21 +100500,24 @@ ${event.content}`;
|
|
|
100253
100500
|
return new DomindsMarkdownSection();
|
|
100254
100501
|
}
|
|
100255
100502
|
// Create calling section (inside markdown section) - streaming mode for tellask call blocks
|
|
100256
|
-
createCallingSection(firstMention) {
|
|
100257
|
-
const
|
|
100503
|
+
createCallingSection(callName, firstMention) {
|
|
100504
|
+
const isFbr = callName === "freshBootsReasoning";
|
|
100258
100505
|
const el = document.createElement("div");
|
|
100259
|
-
el.className =
|
|
100506
|
+
el.className = isFbr ? "calling-section fbr" : "calling-section";
|
|
100260
100507
|
el.setAttribute("data-first-mention", firstMention);
|
|
100508
|
+
el.setAttribute("data-call-name", callName);
|
|
100261
100509
|
el.innerHTML = `
|
|
100262
100510
|
<div class="calling-header">
|
|
100263
|
-
${
|
|
100511
|
+
${isFbr ? `<span class="calling-icon fbr-icon" aria-hidden="true">✨</span>` : `<span class="calling-icon tool-icon">
|
|
100264
100512
|
<img src="${mannedToolIcon}" class="calling-img" alt="calling">
|
|
100265
100513
|
</span>`}
|
|
100266
|
-
<
|
|
100514
|
+
<div class="calling-meta">
|
|
100515
|
+
<span class="calling-headline"></span>
|
|
100516
|
+
<span class="calling-timing"></span>
|
|
100517
|
+
</div>
|
|
100267
100518
|
</div>
|
|
100268
100519
|
<div class="calling-content">
|
|
100269
100520
|
<div class="calling-body"></div>
|
|
100270
|
-
<div class="calling-result" style="display:none"></div>
|
|
100271
100521
|
</div>
|
|
100272
100522
|
`;
|
|
100273
100523
|
return el;
|
|
@@ -100717,6 +100967,16 @@ ${event.content}`;
|
|
|
100717
100967
|
flex-shrink: 0;
|
|
100718
100968
|
}
|
|
100719
100969
|
|
|
100970
|
+
.bubble-anchor-actions {
|
|
100971
|
+
display: inline-flex;
|
|
100972
|
+
align-items: center;
|
|
100973
|
+
gap: 6px;
|
|
100974
|
+
}
|
|
100975
|
+
|
|
100976
|
+
.bubble-anchor-actions:empty {
|
|
100977
|
+
display: none;
|
|
100978
|
+
}
|
|
100979
|
+
|
|
100720
100980
|
.bubble-share-link-btn {
|
|
100721
100981
|
width: 22px;
|
|
100722
100982
|
height: 22px;
|
|
@@ -100742,6 +101002,35 @@ ${event.content}`;
|
|
|
100742
101002
|
outline: 2px solid color-mix(in srgb, var(--dominds-primary, #007acc) 55%, transparent);
|
|
100743
101003
|
outline-offset: 2px;
|
|
100744
101004
|
}
|
|
101005
|
+
|
|
101006
|
+
.bubble-anchor-assignment-btn,
|
|
101007
|
+
.bubble-anchor-caller-callsite-btn {
|
|
101008
|
+
width: 22px;
|
|
101009
|
+
height: 22px;
|
|
101010
|
+
padding: 0;
|
|
101011
|
+
display: inline-flex;
|
|
101012
|
+
align-items: center;
|
|
101013
|
+
justify-content: center;
|
|
101014
|
+
border-radius: 6px;
|
|
101015
|
+
border: 1px solid transparent;
|
|
101016
|
+
background: transparent;
|
|
101017
|
+
color: var(--dominds-muted, var(--color-fg-tertiary, #64748b));
|
|
101018
|
+
cursor: pointer;
|
|
101019
|
+
transition: all 0.15s ease;
|
|
101020
|
+
}
|
|
101021
|
+
|
|
101022
|
+
.bubble-anchor-assignment-btn:hover,
|
|
101023
|
+
.bubble-anchor-caller-callsite-btn:hover {
|
|
101024
|
+
background: var(--dominds-hover, var(--color-bg-tertiary, #e2e8f0));
|
|
101025
|
+
border-color: var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
101026
|
+
color: var(--dominds-fg, var(--color-fg-primary, #333));
|
|
101027
|
+
}
|
|
101028
|
+
|
|
101029
|
+
.bubble-anchor-assignment-btn:focus-visible,
|
|
101030
|
+
.bubble-anchor-caller-callsite-btn:focus-visible {
|
|
101031
|
+
outline: 2px solid color-mix(in srgb, var(--dominds-primary, #007acc) 55%, transparent);
|
|
101032
|
+
outline-offset: 2px;
|
|
101033
|
+
}
|
|
100745
101034
|
|
|
100746
101035
|
.bubble-author {
|
|
100747
101036
|
font-weight: 600;
|
|
@@ -100965,23 +101254,19 @@ ${event.content}`;
|
|
|
100965
101254
|
font-size: 85%;
|
|
100966
101255
|
}
|
|
100967
101256
|
|
|
100968
|
-
.markdown-content table
|
|
100969
|
-
.calling-result table {
|
|
101257
|
+
.markdown-content table {
|
|
100970
101258
|
border-collapse: collapse;
|
|
100971
101259
|
width: 100%;
|
|
100972
101260
|
margin-bottom: 0.75em;
|
|
100973
101261
|
}
|
|
100974
101262
|
|
|
100975
101263
|
.markdown-content th,
|
|
100976
|
-
.markdown-content td
|
|
100977
|
-
.calling-result th,
|
|
100978
|
-
.calling-result td {
|
|
101264
|
+
.markdown-content td {
|
|
100979
101265
|
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
100980
101266
|
padding: 6px 13px;
|
|
100981
101267
|
}
|
|
100982
101268
|
|
|
100983
|
-
.markdown-content tr:nth-child(2n)
|
|
100984
|
-
.calling-result tr:nth-child(2n) {
|
|
101269
|
+
.markdown-content tr:nth-child(2n) {
|
|
100985
101270
|
background-color: var(--dominds-hover, var(--color-bg-tertiary, #f1f5f9));
|
|
100986
101271
|
}
|
|
100987
101272
|
|
|
@@ -101035,11 +101320,18 @@ ${event.content}`;
|
|
|
101035
101320
|
|
|
101036
101321
|
.calling-header {
|
|
101037
101322
|
display: flex;
|
|
101038
|
-
align-items:
|
|
101323
|
+
align-items: flex-start;
|
|
101039
101324
|
gap: 8px;
|
|
101040
101325
|
margin-bottom: 8px;
|
|
101041
101326
|
}
|
|
101042
101327
|
|
|
101328
|
+
.calling-meta {
|
|
101329
|
+
display: flex;
|
|
101330
|
+
flex-direction: column;
|
|
101331
|
+
gap: 3px;
|
|
101332
|
+
min-width: 0;
|
|
101333
|
+
}
|
|
101334
|
+
|
|
101043
101335
|
.calling-icon {
|
|
101044
101336
|
display: flex;
|
|
101045
101337
|
align-items: center;
|
|
@@ -101076,12 +101368,22 @@ ${event.content}`;
|
|
|
101076
101368
|
font-weight: 600;
|
|
101077
101369
|
color: var(--color-info, #06b6d4);
|
|
101078
101370
|
font-size: 12px;
|
|
101371
|
+
white-space: nowrap;
|
|
101372
|
+
overflow: hidden;
|
|
101373
|
+
text-overflow: ellipsis;
|
|
101079
101374
|
}
|
|
101080
101375
|
|
|
101081
101376
|
.calling-section.fbr .calling-headline {
|
|
101082
101377
|
color: var(--dominds-primary, var(--color-accent-primary, #007acc));
|
|
101083
101378
|
}
|
|
101084
101379
|
|
|
101380
|
+
.calling-timing {
|
|
101381
|
+
color: var(--dominds-muted, var(--color-fg-tertiary, #64748b));
|
|
101382
|
+
font-size: 11px;
|
|
101383
|
+
line-height: 1.35;
|
|
101384
|
+
white-space: pre-wrap;
|
|
101385
|
+
}
|
|
101386
|
+
|
|
101085
101387
|
.subdialog-arrow {
|
|
101086
101388
|
color: var(--color-info, #06b6d4);
|
|
101087
101389
|
font-size: 12px;
|
|
@@ -101101,38 +101403,18 @@ ${event.content}`;
|
|
|
101101
101403
|
line-height: 1.35;
|
|
101102
101404
|
}
|
|
101103
101405
|
|
|
101104
|
-
.calling-result {
|
|
101105
|
-
margin-top: 8px;
|
|
101106
|
-
padding: 8px;
|
|
101107
|
-
border-radius: 6px;
|
|
101108
|
-
font-size: 12px;
|
|
101109
|
-
white-space: normal;
|
|
101110
|
-
background: var(--color-bg-secondary, #ffffff);
|
|
101111
|
-
border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
|
|
101112
|
-
color: var(--dominds-fg, var(--color-fg-secondary, #475569));
|
|
101113
|
-
}
|
|
101114
|
-
|
|
101115
|
-
.calling-result.failed {
|
|
101116
|
-
border-color: var(--color-danger, #ef4444);
|
|
101117
|
-
color: var(--color-danger, #ef4444);
|
|
101118
|
-
}
|
|
101119
|
-
|
|
101120
101406
|
.calling-section.failed {
|
|
101121
101407
|
border-left-color: var(--color-danger, #ef4444);
|
|
101122
101408
|
background: rgba(239, 68, 68, 0.08);
|
|
101123
101409
|
}
|
|
101410
|
+
|
|
101411
|
+
.calling-section.pending {
|
|
101412
|
+
opacity: 1;
|
|
101413
|
+
}
|
|
101124
101414
|
|
|
101125
101415
|
.calling-section.completed {
|
|
101126
101416
|
opacity: 0.9;
|
|
101127
101417
|
}
|
|
101128
|
-
|
|
101129
|
-
.calling-headline.completed {
|
|
101130
|
-
opacity: 0.8;
|
|
101131
|
-
}
|
|
101132
|
-
|
|
101133
|
-
.calling-body.completed {
|
|
101134
|
-
opacity: 0.8;
|
|
101135
|
-
}
|
|
101136
101418
|
|
|
101137
101419
|
/* Function call section styles (nested inside markdown) - non-streaming mode */
|
|
101138
101420
|
.func-call-section {
|
|
@@ -101960,8 +102242,7 @@ const _DomindsQ4HInput = class _DomindsQ4HInput extends HTMLElement {
|
|
|
101960
102242
|
questionId,
|
|
101961
102243
|
dialogId: question2.dialogContext.selfId,
|
|
101962
102244
|
rootId: question2.dialogContext.rootId,
|
|
101963
|
-
|
|
101964
|
-
bodyContent: question2.bodyContent
|
|
102245
|
+
tellaskContent: question2.tellaskContent
|
|
101965
102246
|
},
|
|
101966
102247
|
bubbles: true,
|
|
101967
102248
|
composed: true
|
|
@@ -103001,8 +103282,7 @@ class DomindsQ4HPanel extends HTMLElement {
|
|
|
103001
103282
|
questionId: this.selectedQuestionId,
|
|
103002
103283
|
dialogId: dialogContext.selfId,
|
|
103003
103284
|
rootId: dialogContext.rootId,
|
|
103004
|
-
|
|
103005
|
-
bodyContent: question2.bodyContent
|
|
103285
|
+
tellaskContent: question2.tellaskContent
|
|
103006
103286
|
},
|
|
103007
103287
|
bubbles: true,
|
|
103008
103288
|
composed: true
|
|
@@ -103581,9 +103861,9 @@ class DomindsQ4HPanel extends HTMLElement {
|
|
|
103581
103861
|
</div>
|
|
103582
103862
|
<div class="q4h-question-body">
|
|
103583
103863
|
<div class="q4h-tellask">
|
|
103584
|
-
<div class="q4h-tellask-headline"
|
|
103864
|
+
<div class="q4h-tellask-headline">Q4H</div>
|
|
103585
103865
|
<hr class="q4h-tellask-sep" />
|
|
103586
|
-
<div class="q4h-tellask-body">${renderDomindsMarkdown(question2.
|
|
103866
|
+
<div class="q4h-tellask-body">${renderDomindsMarkdown(question2.tellaskContent, {})}</div>
|
|
103587
103867
|
</div>
|
|
103588
103868
|
</div>
|
|
103589
103869
|
</div>
|
|
@@ -105340,8 +105620,8 @@ class DoneDialogList extends HTMLElement {
|
|
|
105340
105620
|
}
|
|
105341
105621
|
getDialogDisplayCallsign(dialog) {
|
|
105342
105622
|
const assignment = dialog.assignmentFromSup;
|
|
105343
|
-
if (assignment
|
|
105344
|
-
|
|
105623
|
+
if (assignment?.callName === "freshBootsReasoning") {
|
|
105624
|
+
return "FBR";
|
|
105345
105625
|
}
|
|
105346
105626
|
return `@${dialog.agentId}`;
|
|
105347
105627
|
}
|
|
@@ -105703,7 +105983,7 @@ class DoneDialogList extends HTMLElement {
|
|
|
105703
105983
|
const t2 = getUiStrings(this.props.uiLanguage);
|
|
105704
105984
|
const isSelected = this.isSelectedDialog(dialog, this.selectionState);
|
|
105705
105985
|
const updatedAt = dialog.lastModified || "";
|
|
105706
|
-
const
|
|
105986
|
+
const sessionSlugMark = dialog.sessionSlug ?? "";
|
|
105707
105987
|
const callsign = this.getDialogDisplayCallsign(dialog);
|
|
105708
105988
|
return `
|
|
105709
105989
|
<div
|
|
@@ -105725,7 +106005,7 @@ class DoneDialogList extends HTMLElement {
|
|
|
105725
106005
|
</div>
|
|
105726
106006
|
<div class="dialog-row dialog-submeta">
|
|
105727
106007
|
<span class="dialog-meta-right">
|
|
105728
|
-
<span class="dialog-topic">${
|
|
106008
|
+
<span class="dialog-topic">${sessionSlugMark}</span>
|
|
105729
106009
|
</span>
|
|
105730
106010
|
</div>
|
|
105731
106011
|
</div>
|
|
@@ -105868,7 +106148,7 @@ class DoneDialogList extends HTMLElement {
|
|
|
105868
106148
|
agentName: "",
|
|
105869
106149
|
taskDocPath: dialog.taskDocPath,
|
|
105870
106150
|
supdialogId: dialog.supdialogId,
|
|
105871
|
-
|
|
106151
|
+
sessionSlug: dialog.sessionSlug,
|
|
105872
106152
|
assignmentFromSup: dialog.assignmentFromSup
|
|
105873
106153
|
};
|
|
105874
106154
|
this.props.onSelect(dialogInfo);
|
|
@@ -106343,8 +106623,8 @@ class RunningDialogList extends HTMLElement {
|
|
|
106343
106623
|
}
|
|
106344
106624
|
getDialogDisplayCallsign(dialog) {
|
|
106345
106625
|
const assignment = dialog.assignmentFromSup;
|
|
106346
|
-
if (assignment
|
|
106347
|
-
|
|
106626
|
+
if (assignment?.callName === "freshBootsReasoning") {
|
|
106627
|
+
return "FBR";
|
|
106348
106628
|
}
|
|
106349
106629
|
return `@${dialog.agentId}`;
|
|
106350
106630
|
}
|
|
@@ -106757,7 +107037,7 @@ class RunningDialogList extends HTMLElement {
|
|
|
106757
107037
|
const dialogId = kind === "sub" ? dialog.selfId ?? "" : dialog.selfId ? dialog.selfId : dialog.rootId;
|
|
106758
107038
|
const rowClass = kind === "sub" ? "dialog-item sub-dialog" : "dialog-item root-dialog";
|
|
106759
107039
|
const updatedAt = dialog.lastModified || "";
|
|
106760
|
-
const
|
|
107040
|
+
const sessionSlugMark = dialog.sessionSlug ?? "";
|
|
106761
107041
|
if (kind === "sub") {
|
|
106762
107042
|
const callsign = this.getDialogDisplayCallsign(dialog);
|
|
106763
107043
|
return `
|
|
@@ -106781,7 +107061,7 @@ class RunningDialogList extends HTMLElement {
|
|
|
106781
107061
|
</div>
|
|
106782
107062
|
<div class="dialog-row dialog-submeta">
|
|
106783
107063
|
<span class="dialog-meta-right">
|
|
106784
|
-
<span class="dialog-topic">${
|
|
107064
|
+
<span class="dialog-topic">${sessionSlugMark}</span>
|
|
106785
107065
|
</span>
|
|
106786
107066
|
</div>
|
|
106787
107067
|
</div>
|
|
@@ -106942,7 +107222,7 @@ class RunningDialogList extends HTMLElement {
|
|
|
106942
107222
|
agentName: "",
|
|
106943
107223
|
taskDocPath: dialog.taskDocPath,
|
|
106944
107224
|
supdialogId: dialog.supdialogId,
|
|
106945
|
-
|
|
107225
|
+
sessionSlug: dialog.sessionSlug,
|
|
106946
107226
|
assignmentFromSup: dialog.assignmentFromSup
|
|
106947
107227
|
};
|
|
106948
107228
|
this.props.onSelect(dialogInfo);
|
|
@@ -111144,6 +111424,25 @@ ${content}`;
|
|
|
111144
111424
|
}, 100);
|
|
111145
111425
|
}
|
|
111146
111426
|
});
|
|
111427
|
+
this.shadowRoot.addEventListener("navigate-genseq", (event) => {
|
|
111428
|
+
const ce2 = event;
|
|
111429
|
+
const detail = ce2.detail && typeof ce2.detail === "object" ? ce2.detail : null;
|
|
111430
|
+
if (!detail) return;
|
|
111431
|
+
const rootId = typeof detail["rootId"] === "string" ? detail["rootId"] : "";
|
|
111432
|
+
const selfId = typeof detail["selfId"] === "string" ? detail["selfId"] : "";
|
|
111433
|
+
const course = typeof detail["course"] === "number" ? detail["course"] : Number.NaN;
|
|
111434
|
+
const genseq = typeof detail["genseq"] === "number" ? detail["genseq"] : Number.NaN;
|
|
111435
|
+
if (!rootId || !selfId) return;
|
|
111436
|
+
if (!Number.isFinite(course) || !Number.isFinite(genseq)) return;
|
|
111437
|
+
this.pendingDeepLink = {
|
|
111438
|
+
kind: "genseq",
|
|
111439
|
+
rootId: rootId.trim(),
|
|
111440
|
+
selfId: selfId.trim(),
|
|
111441
|
+
course: Math.floor(course),
|
|
111442
|
+
genseq: Math.floor(genseq)
|
|
111443
|
+
};
|
|
111444
|
+
void this.applyPendingDeepLink();
|
|
111445
|
+
});
|
|
111147
111446
|
this.shadowRoot.addEventListener("navigate-callsite", (event) => {
|
|
111148
111447
|
const ce2 = event;
|
|
111149
111448
|
const detail = ce2.detail && typeof ce2.detail === "object" ? ce2.detail : null;
|
|
@@ -112518,7 +112817,7 @@ ${content}`;
|
|
|
112518
112817
|
lastModified: subdialog.lastModified,
|
|
112519
112818
|
runState: effectiveRunState,
|
|
112520
112819
|
supdialogId: subdialog.supdialogId ?? rootId,
|
|
112521
|
-
|
|
112820
|
+
sessionSlug: subdialog.sessionSlug,
|
|
112522
112821
|
assignmentFromSup: subdialog.assignmentFromSup
|
|
112523
112822
|
});
|
|
112524
112823
|
}
|
|
@@ -112759,8 +113058,8 @@ ${content}`;
|
|
|
112759
113058
|
const dialogTitle = this.shadowRoot?.querySelector("#current-dialog-title");
|
|
112760
113059
|
if (dialogTitle) {
|
|
112761
113060
|
let titleText = "";
|
|
112762
|
-
const
|
|
112763
|
-
const callsign =
|
|
113061
|
+
const isFbrSideline = normalizedDialog.assignmentFromSup?.callName === "freshBootsReasoning";
|
|
113062
|
+
const callsign = isFbrSideline ? "FBR" : `@${normalizedDialog.agentId}`;
|
|
112764
113063
|
titleText = `${callsign} (${normalizedDialog.selfId})`;
|
|
112765
113064
|
titleText += ` • ${normalizedDialog.taskDocPath}`;
|
|
112766
113065
|
dialogTitle.textContent = titleText;
|
|
@@ -113410,7 +113709,7 @@ ${content}`;
|
|
|
113410
113709
|
if (!isForCurrentDialog) {
|
|
113411
113710
|
return true;
|
|
113412
113711
|
}
|
|
113413
|
-
|
|
113712
|
+
const nextDialog = {
|
|
113414
113713
|
selfId: readyMsg.dialog.selfId,
|
|
113415
113714
|
rootId: readyMsg.dialog.rootId,
|
|
113416
113715
|
agentId: readyMsg.agentId,
|
|
@@ -113418,9 +113717,10 @@ ${content}`;
|
|
|
113418
113717
|
// agentId serves as the name for display
|
|
113419
113718
|
taskDocPath: readyMsg.taskDocPath,
|
|
113420
113719
|
supdialogId: readyMsg.supdialogId,
|
|
113421
|
-
|
|
113720
|
+
sessionSlug: readyMsg.sessionSlug,
|
|
113422
113721
|
assignmentFromSup: readyMsg.assignmentFromSup
|
|
113423
113722
|
};
|
|
113723
|
+
this.currentDialog = nextDialog;
|
|
113424
113724
|
this.applyDiligenceState(nextDiligenceState);
|
|
113425
113725
|
this.diligenceRtwsDirty = false;
|
|
113426
113726
|
this.updateBottomPanelFooterUi();
|
|
@@ -113429,7 +113729,7 @@ ${content}`;
|
|
|
113429
113729
|
dialogContainer.updateDialogContext(this.currentDialog);
|
|
113430
113730
|
}
|
|
113431
113731
|
if (this.q4hInput && typeof this.q4hInput.setDialog === "function") {
|
|
113432
|
-
this.q4hInput.setDialog(
|
|
113732
|
+
this.q4hInput.setDialog(nextDialog);
|
|
113433
113733
|
}
|
|
113434
113734
|
const docsPanel = this.shadowRoot?.querySelector("#docs-panel");
|
|
113435
113735
|
if (docsPanel instanceof HTMLElement) {
|
|
@@ -113594,7 +113894,7 @@ ${content}`;
|
|
|
113594
113894
|
lastModified: node2.lastModified,
|
|
113595
113895
|
runState: effectiveRunState,
|
|
113596
113896
|
supdialogId: node2.supdialogId,
|
|
113597
|
-
|
|
113897
|
+
sessionSlug: node2.sessionSlug,
|
|
113598
113898
|
assignmentFromSup: node2.assignmentFromSup
|
|
113599
113899
|
};
|
|
113600
113900
|
let replaced = false;
|
|
@@ -114041,8 +114341,7 @@ ${t2.commandLabel}: ${commandStr}`;
|
|
|
114041
114341
|
for (const question2 of context.questions) {
|
|
114042
114342
|
q4hQuestions.push({
|
|
114043
114343
|
id: question2.id,
|
|
114044
|
-
|
|
114045
|
-
bodyContent: question2.bodyContent,
|
|
114344
|
+
tellaskContent: question2.tellaskContent,
|
|
114046
114345
|
askedAt: question2.askedAt,
|
|
114047
114346
|
dialogContext: context
|
|
114048
114347
|
});
|
|
@@ -115993,4 +116292,4 @@ export {
|
|
|
115993
116292
|
clear$2 as y,
|
|
115994
116293
|
defaultConfig2 as z
|
|
115995
116294
|
};
|
|
115996
|
-
//# sourceMappingURL=index-
|
|
116295
|
+
//# sourceMappingURL=index-Vrp1PT3b.js.map
|