dominds 1.13.2 → 1.15.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/dist/bootstrap/global-dialog-event-broadcaster.d.ts +18 -0
- package/dist/bootstrap/global-dialog-event-broadcaster.js +81 -0
- package/dist/dialog-fork.js +13 -12
- package/dist/dialog.d.ts +61 -50
- package/dist/dialog.js +284 -78
- package/dist/docs/dialog-system.md +12 -0
- package/dist/docs/dialog-system.zh.md +12 -0
- package/dist/docs/dominds-terminology.md +17 -0
- package/dist/docs/issues/global-dialog-event-broadcaster-missing.md +128 -0
- package/dist/docs/llm-provider-isolation.md +35 -0
- package/dist/docs/llm-provider-isolation.zh.md +35 -0
- package/dist/llm/client.d.ts +2 -1
- package/dist/llm/defaults.yaml +118 -4
- package/dist/llm/gen/anthropic.js +2 -4
- package/dist/llm/gen/codex.d.ts +11 -0
- package/dist/llm/gen/codex.js +41 -31
- package/dist/llm/gen/failure-classifier.js +17 -0
- package/dist/llm/gen/mock.js +45 -21
- package/dist/llm/gen/openai-compatible.d.ts +2 -0
- package/dist/llm/gen/openai-compatible.js +43 -38
- package/dist/llm/gen/openai.d.ts +3 -1
- package/dist/llm/gen/openai.js +888 -71
- package/dist/llm/gen/tool-call-context.d.ts +7 -2
- package/dist/llm/gen/tool-call-context.js +55 -13
- package/dist/llm/gen.d.ts +60 -3
- package/dist/llm/kernel-driver/context.js +1 -1
- package/dist/llm/kernel-driver/drive.js +374 -348
- package/dist/llm/kernel-driver/flow.js +3 -3
- package/dist/llm/kernel-driver/guardrails.d.ts +1 -1
- package/dist/llm/kernel-driver/guardrails.js +4 -4
- package/dist/llm/kernel-driver/runtime.js +11 -29
- package/dist/llm/kernel-driver/subdialog.js +56 -5
- package/dist/llm/kernel-driver/tellask-special.d.ts +38 -12
- package/dist/llm/kernel-driver/tellask-special.js +489 -180
- package/dist/llm/kernel-driver/types.d.ts +1 -1
- package/dist/persistence.d.ts +30 -62
- package/dist/persistence.js +978 -986
- package/dist/priming.js +398 -365
- package/dist/recovery/reply-special.js +3 -3
- package/dist/runtime/inter-dialog-format.d.ts +1 -1
- package/dist/runtime/inter-dialog-format.js +1 -1
- package/dist/runtime/reply-prompt-copy.js +4 -4
- package/dist/server/setup-routes.js +26 -5
- package/dist/server/snippets-routes.d.ts +1 -0
- package/dist/server/snippets-routes.js +20 -9
- package/dist/server/websocket-handler.js +58 -25
- package/dist/shared/utils/fbr.js +12 -8
- package/dist/shared/utils/inter-dialog-format.js +6 -4
- package/dist/team.d.ts +24 -13
- package/dist/team.js +123 -32
- package/dist/tool.d.ts +26 -0
- package/dist/tool.js +97 -0
- package/dist/tools/team_mgmt.js +18 -0
- package/package.json +2 -2
- package/webapp/dist/assets/{_basePickBy-CBOtd63g.js → _basePickBy-DsirmCgI.js} +3 -3
- package/webapp/dist/assets/_basePickBy-DsirmCgI.js.map +1 -0
- package/webapp/dist/assets/{_baseUniq-mfoKz4Wm.js → _baseUniq-tR6G8loB.js} +2 -2
- package/webapp/dist/assets/_baseUniq-tR6G8loB.js.map +1 -0
- package/webapp/dist/assets/{arc-Dq0WZLyu.js → arc-CzxpASkZ.js} +2 -2
- package/webapp/dist/assets/arc-CzxpASkZ.js.map +1 -0
- package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-CNmygmp3.js → architectureDiagram-2XIMDMQ5-BSH7H5oI.js} +26 -8
- package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-BSH7H5oI.js.map +1 -0
- package/webapp/dist/assets/{blockDiagram-VD42YOAC-DvE0lybt.js → blockDiagram-WCTKOSBZ-DpLIr7yO.js} +187 -170
- package/webapp/dist/assets/blockDiagram-WCTKOSBZ-DpLIr7yO.js.map +1 -0
- package/webapp/dist/assets/{c4Diagram-YG6GDRKO-CR7zJ2_u.js → c4Diagram-IC4MRINW-WuYKgWfY.js} +4 -4
- package/webapp/dist/assets/c4Diagram-IC4MRINW-WuYKgWfY.js.map +1 -0
- package/webapp/dist/assets/{channel-DrTrnYx4.js → channel-B-v9dqLN.js} +2 -2
- package/webapp/dist/assets/channel-B-v9dqLN.js.map +1 -0
- package/webapp/dist/assets/{chunk-4BX2VUAB-CVuJEIeN.js → chunk-4BX2VUAB-MtFUfKZy.js} +2 -2
- package/webapp/dist/assets/chunk-4BX2VUAB-MtFUfKZy.js.map +1 -0
- package/webapp/dist/assets/{chunk-55IACEB6-BxUoXApB.js → chunk-55IACEB6-rY9AJdzj.js} +2 -2
- package/webapp/dist/assets/chunk-55IACEB6-rY9AJdzj.js.map +1 -0
- package/webapp/dist/assets/{chunk-FMBD7UC4-TX-LVAaV.js → chunk-FMBD7UC4-B-RtOs7e.js} +2 -2
- package/webapp/dist/assets/chunk-FMBD7UC4-B-RtOs7e.js.map +1 -0
- package/webapp/dist/assets/{chunk-TZMSLE5B-Cw689yRl.js → chunk-JSJVCQXG-Da1d3uS4.js} +14 -6
- package/webapp/dist/assets/chunk-JSJVCQXG-Da1d3uS4.js.map +1 -0
- package/webapp/dist/assets/{chunk-QN33PNHL-D1uiKlOO.js → chunk-KX2RTZJC-DH9UrpuG.js} +2 -2
- package/webapp/dist/assets/chunk-KX2RTZJC-DH9UrpuG.js.map +1 -0
- package/webapp/dist/assets/{chunk-DI55MBZ5-SAhxUTqQ.js → chunk-NQ4KR5QH-CK365lrr.js} +9 -7
- package/webapp/dist/assets/chunk-NQ4KR5QH-CK365lrr.js.map +1 -0
- package/webapp/dist/assets/{chunk-QZHKN3VN-BxuV0Oba.js → chunk-QZHKN3VN-BCaWPGDm.js} +2 -2
- package/webapp/dist/assets/chunk-QZHKN3VN-BCaWPGDm.js.map +1 -0
- package/webapp/dist/assets/{chunk-B4BG7PRW-DpMa3-9L.js → chunk-WL4C6EOR-DDCnEwft.js} +171 -121
- package/webapp/dist/assets/chunk-WL4C6EOR-DDCnEwft.js.map +1 -0
- package/webapp/dist/assets/{classDiagram-2ON5EDUG-BTTGianr.js → classDiagram-VBA2DB6C-CvMBU4WA.js} +7 -6
- package/webapp/dist/assets/classDiagram-VBA2DB6C-CvMBU4WA.js.map +1 -0
- package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-BTTGianr.js → classDiagram-v2-RAHNMMFH-CvMBU4WA.js} +7 -6
- package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-CvMBU4WA.js.map +1 -0
- package/webapp/dist/assets/{clone-Dk8cAI3I.js → clone-r98jR0MC.js} +2 -2
- package/webapp/dist/assets/clone-r98jR0MC.js.map +1 -0
- package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BjJnzB2N.js → cose-bilkent-S5V4N54A-t6J60Ogk.js} +2 -2
- package/webapp/dist/assets/cose-bilkent-S5V4N54A-t6J60Ogk.js.map +1 -0
- package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
- package/webapp/dist/assets/{dagre-6UL2VRFP-VF-xGhAf.js → dagre-KLK3FWXG-BlqmY2DV.js} +7 -7
- package/webapp/dist/assets/dagre-KLK3FWXG-BlqmY2DV.js.map +1 -0
- package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
- package/webapp/dist/assets/{diagram-PSM6KHXK-Ba5U0oRY.js → diagram-E7M64L7V-FwCHeIUD.js} +10 -10
- package/webapp/dist/assets/diagram-E7M64L7V-FwCHeIUD.js.map +1 -0
- package/webapp/dist/assets/{diagram-QEK2KX5R-DoYCnEw_.js → diagram-IFDJBPK2-NhtmkuZG.js} +9 -8
- package/webapp/dist/assets/diagram-IFDJBPK2-NhtmkuZG.js.map +1 -0
- package/webapp/dist/assets/{diagram-S2PKOQOG-CkK4SRyE.js → diagram-P4PSJMXO-B9FcmokX.js} +8 -8
- package/webapp/dist/assets/diagram-P4PSJMXO-B9FcmokX.js.map +1 -0
- package/webapp/dist/assets/{erDiagram-Q2GNP2WA-DkI5eYww.js → erDiagram-INFDFZHY-DHKmWvtB.js} +96 -75
- package/webapp/dist/assets/erDiagram-INFDFZHY-DHKmWvtB.js.map +1 -0
- package/webapp/dist/assets/{flowDiagram-NV44I4VS-wOdPUQ7Y.js → flowDiagram-PKNHOUZH-C7Zi8I7T.js} +98 -81
- package/webapp/dist/assets/flowDiagram-PKNHOUZH-C7Zi8I7T.js.map +1 -0
- package/webapp/dist/assets/{ganttDiagram-JELNMOA3-BtRWgkUH.js → ganttDiagram-A5KZAMGK-Cv2T8tz_.js} +28 -3
- package/webapp/dist/assets/ganttDiagram-A5KZAMGK-Cv2T8tz_.js.map +1 -0
- package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-Bsz7u1vi.js → gitGraphDiagram-K3NZZRJ6-DztaipJU.js} +38 -46
- package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-DztaipJU.js.map +1 -0
- package/webapp/dist/assets/graph-C5yf62Vs.js +782 -0
- package/webapp/dist/assets/graph-C5yf62Vs.js.map +1 -0
- package/webapp/dist/assets/{index-xvYYeHuy.css → index-YaxF76or.css} +1 -1
- package/webapp/dist/assets/{index-rYmIohM_.js → index-hve5MWPs.js} +1603 -1415
- package/webapp/dist/assets/index-hve5MWPs.js.map +1 -0
- package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BMaxCvH5.js → infoDiagram-LFFYTUFH-VgsbBPZP.js} +7 -7
- package/webapp/dist/assets/infoDiagram-LFFYTUFH-VgsbBPZP.js.map +1 -0
- package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
- package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-C7j3YWdw.js +966 -0
- package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-C7j3YWdw.js.map +1 -0
- package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-ejyerzmG.js → journeyDiagram-4ABVD52K-OO8sev-Y.js} +5 -5
- package/webapp/dist/assets/journeyDiagram-4ABVD52K-OO8sev-Y.js.map +1 -0
- package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-CYj35TEs.js → kanban-definition-K7BYSVSG-DiYCC1Ig.js} +5 -3
- package/webapp/dist/assets/kanban-definition-K7BYSVSG-DiYCC1Ig.js.map +1 -0
- package/webapp/dist/assets/{layout-7Ql4zmuL.js → layout-DdZSgGdu.js} +5 -5
- package/webapp/dist/assets/layout-DdZSgGdu.js.map +1 -0
- package/webapp/dist/assets/{linear-CVmgVPuZ.js → linear-7-aHtaFi.js} +2 -2
- package/webapp/dist/assets/linear-7-aHtaFi.js.map +1 -0
- package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-DOpxjGVo.js → mindmap-definition-YRQLILUH-IG3I-RdD.js} +7 -5
- package/webapp/dist/assets/mindmap-definition-YRQLILUH-IG3I-RdD.js.map +1 -0
- package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
- package/webapp/dist/assets/{pieDiagram-ADFJNKIX-CLQjpmAG.js → pieDiagram-SKSYHLDU-z68KJT5r.js} +8 -8
- package/webapp/dist/assets/pieDiagram-SKSYHLDU-z68KJT5r.js.map +1 -0
- package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-ClD_bz7z.js → quadrantDiagram-337W2JSQ-DaENWdO6.js} +3 -3
- package/webapp/dist/assets/quadrantDiagram-337W2JSQ-DaENWdO6.js.map +1 -0
- package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-DOpb-TWH.js → requirementDiagram-Z7DCOOCP-ROTFv4sa.js} +16 -6
- package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-ROTFv4sa.js.map +1 -0
- package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-D8Hsj3yx.js → sankeyDiagram-WA2Y5GQK-CK7qtpzw.js} +2 -2
- package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-CK7qtpzw.js.map +1 -0
- package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-CFMNjBER.js → sequenceDiagram-2WXFIKYE-R5lDySeI.js} +601 -201
- package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-R5lDySeI.js.map +1 -0
- package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-BQeDlw0P.js → stateDiagram-RAJIS63D-sr7msF5U.js} +9 -9
- package/webapp/dist/assets/stateDiagram-RAJIS63D-sr7msF5U.js.map +1 -0
- package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-DscX61Rs.js → stateDiagram-v2-FVOUBMTO-X663liwS.js} +5 -5
- package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-X663liwS.js.map +1 -0
- package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BcXPSTiw.js → timeline-definition-YZTLITO2-Bw0TdG26.js} +3 -3
- package/webapp/dist/assets/timeline-definition-YZTLITO2-Bw0TdG26.js.map +1 -0
- package/webapp/dist/assets/{treemap-GDKQZRPO-BBr4UV0Z.js → treemap-KZPCXAKY-D_sjKwI7.js} +37 -24
- package/webapp/dist/assets/treemap-KZPCXAKY-D_sjKwI7.js.map +1 -0
- package/webapp/dist/assets/vennDiagram-LZ73GAT5-DhlHIHid.js +2487 -0
- package/webapp/dist/assets/vennDiagram-LZ73GAT5-DhlHIHid.js.map +1 -0
- package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-CS5RAtQE.js → xychartDiagram-JWTSCODW-C65ESjTc.js} +4 -4
- package/webapp/dist/assets/xychartDiagram-JWTSCODW-C65ESjTc.js.map +1 -0
- package/webapp/dist/index.html +2 -2
- package/webapp/dist/assets/_basePickBy-CBOtd63g.js.map +0 -1
- package/webapp/dist/assets/_baseUniq-mfoKz4Wm.js.map +0 -1
- package/webapp/dist/assets/arc-Dq0WZLyu.js.map +0 -1
- package/webapp/dist/assets/architectureDiagram-VXUJARFQ-CNmygmp3.js.map +0 -1
- package/webapp/dist/assets/blockDiagram-VD42YOAC-DvE0lybt.js.map +0 -1
- package/webapp/dist/assets/c4Diagram-YG6GDRKO-CR7zJ2_u.js.map +0 -1
- package/webapp/dist/assets/channel-DrTrnYx4.js.map +0 -1
- package/webapp/dist/assets/chunk-4BX2VUAB-CVuJEIeN.js.map +0 -1
- package/webapp/dist/assets/chunk-55IACEB6-BxUoXApB.js.map +0 -1
- package/webapp/dist/assets/chunk-B4BG7PRW-DpMa3-9L.js.map +0 -1
- package/webapp/dist/assets/chunk-DI55MBZ5-SAhxUTqQ.js.map +0 -1
- package/webapp/dist/assets/chunk-FMBD7UC4-TX-LVAaV.js.map +0 -1
- package/webapp/dist/assets/chunk-QN33PNHL-D1uiKlOO.js.map +0 -1
- package/webapp/dist/assets/chunk-QZHKN3VN-BxuV0Oba.js.map +0 -1
- package/webapp/dist/assets/chunk-TZMSLE5B-Cw689yRl.js.map +0 -1
- package/webapp/dist/assets/classDiagram-2ON5EDUG-BTTGianr.js.map +0 -1
- package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-BTTGianr.js.map +0 -1
- package/webapp/dist/assets/clone-Dk8cAI3I.js.map +0 -1
- package/webapp/dist/assets/cose-bilkent-S5V4N54A-BjJnzB2N.js.map +0 -1
- package/webapp/dist/assets/dagre-6UL2VRFP-VF-xGhAf.js.map +0 -1
- package/webapp/dist/assets/diagram-PSM6KHXK-Ba5U0oRY.js.map +0 -1
- package/webapp/dist/assets/diagram-QEK2KX5R-DoYCnEw_.js.map +0 -1
- package/webapp/dist/assets/diagram-S2PKOQOG-CkK4SRyE.js.map +0 -1
- package/webapp/dist/assets/erDiagram-Q2GNP2WA-DkI5eYww.js.map +0 -1
- package/webapp/dist/assets/flowDiagram-NV44I4VS-wOdPUQ7Y.js.map +0 -1
- package/webapp/dist/assets/ganttDiagram-JELNMOA3-BtRWgkUH.js.map +0 -1
- package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-Bsz7u1vi.js.map +0 -1
- package/webapp/dist/assets/graph-DAMkuTbn.js +0 -425
- package/webapp/dist/assets/graph-DAMkuTbn.js.map +0 -1
- package/webapp/dist/assets/index-rYmIohM_.js.map +0 -1
- package/webapp/dist/assets/infoDiagram-HS3SLOUP-BMaxCvH5.js.map +0 -1
- package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-ejyerzmG.js.map +0 -1
- package/webapp/dist/assets/kanban-definition-3W4ZIXB7-CYj35TEs.js.map +0 -1
- package/webapp/dist/assets/layout-7Ql4zmuL.js.map +0 -1
- package/webapp/dist/assets/linear-CVmgVPuZ.js.map +0 -1
- package/webapp/dist/assets/mindmap-definition-VGOIOE7T-DOpxjGVo.js.map +0 -1
- package/webapp/dist/assets/pieDiagram-ADFJNKIX-CLQjpmAG.js.map +0 -1
- package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-ClD_bz7z.js.map +0 -1
- package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-DOpb-TWH.js.map +0 -1
- package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-D8Hsj3yx.js.map +0 -1
- package/webapp/dist/assets/sequenceDiagram-WL72ISMW-CFMNjBER.js.map +0 -1
- package/webapp/dist/assets/stateDiagram-FKZM4ZOC-BQeDlw0P.js.map +0 -1
- package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-DscX61Rs.js.map +0 -1
- package/webapp/dist/assets/timeline-definition-IT6M3QCI-BcXPSTiw.js.map +0 -1
- package/webapp/dist/assets/treemap-GDKQZRPO-BBr4UV0Z.js.map +0 -1
- package/webapp/dist/assets/xychartDiagram-PRI3JC2R-CS5RAtQE.js.map +0 -1
|
@@ -105,7 +105,7 @@ function resolveAppRunControlSource(args) {
|
|
|
105
105
|
if (!prompt) {
|
|
106
106
|
return null;
|
|
107
107
|
}
|
|
108
|
-
return
|
|
108
|
+
return typeof prompt.q4hAnswerCallId === 'string' && prompt.q4hAnswerCallId.trim() !== ''
|
|
109
109
|
? 'drive_dialog_by_user_answer'
|
|
110
110
|
: 'drive_dlg_by_user_msg';
|
|
111
111
|
}
|
|
@@ -250,7 +250,7 @@ async function resolveEffectivePrompt(dialog, humanPrompt) {
|
|
|
250
250
|
userLanguageCode: upNext.userLanguageCode === 'zh' || upNext.userLanguageCode === 'en'
|
|
251
251
|
? upNext.userLanguageCode
|
|
252
252
|
: undefined,
|
|
253
|
-
|
|
253
|
+
q4hAnswerCallId: upNext.q4hAnswerCallId,
|
|
254
254
|
tellaskReplyDirective: upNext.tellaskReplyDirective,
|
|
255
255
|
skipTaskdoc: upNext.skipTaskdoc,
|
|
256
256
|
subdialogReplyTarget: upNext.subdialogReplyTarget,
|
|
@@ -681,7 +681,7 @@ async function executeDriveRound(args) {
|
|
|
681
681
|
userLanguageCode: followUp.userLanguageCode === 'zh' || followUp.userLanguageCode === 'en'
|
|
682
682
|
? followUp.userLanguageCode
|
|
683
683
|
: undefined,
|
|
684
|
-
|
|
684
|
+
q4hAnswerCallId: followUp.q4hAnswerCallId,
|
|
685
685
|
tellaskReplyDirective: followUp.tellaskReplyDirective,
|
|
686
686
|
skipTaskdoc: followUp.skipTaskdoc,
|
|
687
687
|
subdialogReplyTarget: followUp.subdialogReplyTarget,
|
|
@@ -12,7 +12,7 @@ export type KernelDriverPolicyState = Readonly<{
|
|
|
12
12
|
effectiveAgentTools: readonly Tool[];
|
|
13
13
|
prependedContextMessages: readonly ChatMessage[];
|
|
14
14
|
tellaskPolicy: KernelDriverTellaskPolicy;
|
|
15
|
-
|
|
15
|
+
allowTellaskFunctions: boolean;
|
|
16
16
|
allowFunctionCalls: boolean;
|
|
17
17
|
}>;
|
|
18
18
|
export type KernelDriverPolicyViolationKind = 'tellask' | 'tool' | 'tellask_and_tool';
|
|
@@ -34,7 +34,7 @@ function buildKernelDriverPolicy(args) {
|
|
|
34
34
|
effectiveAgentTools: agentTools,
|
|
35
35
|
prependedContextMessages: [],
|
|
36
36
|
tellaskPolicy: 'allow_any',
|
|
37
|
-
|
|
37
|
+
allowTellaskFunctions: true,
|
|
38
38
|
allowFunctionCalls: true,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
@@ -57,7 +57,7 @@ function buildKernelDriverPolicy(args) {
|
|
|
57
57
|
},
|
|
58
58
|
],
|
|
59
59
|
tellaskPolicy: 'deny_all',
|
|
60
|
-
|
|
60
|
+
allowTellaskFunctions: false,
|
|
61
61
|
allowFunctionCalls: isConclusionPhase,
|
|
62
62
|
};
|
|
63
63
|
}
|
|
@@ -68,8 +68,8 @@ function validateKernelDriverPolicyInvariants(policy, language) {
|
|
|
68
68
|
if (policy.tellaskPolicy !== 'deny_all') {
|
|
69
69
|
return { ok: false, detail: 'FBR tellaskPolicy must be deny_all.' };
|
|
70
70
|
}
|
|
71
|
-
if (policy.
|
|
72
|
-
return { ok: false, detail: 'FBR
|
|
71
|
+
if (policy.allowTellaskFunctions) {
|
|
72
|
+
return { ok: false, detail: 'FBR allowTellaskFunctions must be false.' };
|
|
73
73
|
}
|
|
74
74
|
if (policy.prependedContextMessages.length !== 1) {
|
|
75
75
|
return { ok: false, detail: 'FBR must prepend exactly one no-tools notice message.' };
|
|
@@ -44,12 +44,10 @@ const id_1 = require("@longrun-ai/kernel/utils/id");
|
|
|
44
44
|
const time_1 = require("@longrun-ai/kernel/utils/time");
|
|
45
45
|
const evt_registry_1 = require("../../evt-registry");
|
|
46
46
|
const log_1 = require("../../log");
|
|
47
|
-
const persistence_1 = require("../../persistence");
|
|
48
47
|
const problems_1 = require("../../problems");
|
|
49
48
|
const driver_messages_1 = require("../../runtime/driver-messages");
|
|
50
49
|
const work_language_1 = require("../../runtime/work-language");
|
|
51
50
|
const tool_1 = require("../../tool");
|
|
52
|
-
const id_2 = require("../../utils/id");
|
|
53
51
|
function isNodeErrorWithCode(error) {
|
|
54
52
|
return error instanceof Error && 'code' in error;
|
|
55
53
|
}
|
|
@@ -157,34 +155,18 @@ async function maybePrepareDiligenceAutoContinuePrompt(options) {
|
|
|
157
155
|
}
|
|
158
156
|
async function suspendForKeepGoingBudgetExhausted(options) {
|
|
159
157
|
const { dlg, maxInjectCount } = options;
|
|
160
|
-
const questionId = `q4h-${(0, id_2.generateDialogID)()}`;
|
|
161
158
|
const language = dlg.getLastUserLanguageCode();
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
type: 'new_q4h_asked',
|
|
174
|
-
question: {
|
|
175
|
-
id: question.id,
|
|
176
|
-
selfId: dlg.id.selfId,
|
|
177
|
-
tellaskContent: question.tellaskContent,
|
|
178
|
-
askedAt: question.askedAt,
|
|
179
|
-
callId: question.callId,
|
|
180
|
-
remainingCallIds: question.remainingCallIds,
|
|
181
|
-
callSiteRef: question.callSiteRef,
|
|
182
|
-
rootId: dlg.id.rootId,
|
|
183
|
-
agentId: dlg.agentId,
|
|
184
|
-
taskDocPath: dlg.taskDocPath,
|
|
185
|
-
},
|
|
186
|
-
};
|
|
187
|
-
(0, evt_registry_1.postDialogEvent)(dlg, newQuestionEvent);
|
|
159
|
+
const content = (0, driver_messages_1.formatQ4HDiligencePushBudgetExhausted)(language, { maxInjectCount });
|
|
160
|
+
const genseq = dlg.activeGenSeqOrUndefined ?? 1;
|
|
161
|
+
// This is informational only: it stops further automatic diligence pushes, but does not create
|
|
162
|
+
// a Q4H wait state and does not participate in revive gating.
|
|
163
|
+
await dlg.persistUiOnlyMarkdown(content, genseq);
|
|
164
|
+
(0, evt_registry_1.postDialogEvent)(dlg, {
|
|
165
|
+
type: 'ui_only_markdown_evt',
|
|
166
|
+
content,
|
|
167
|
+
course: dlg.currentCourse,
|
|
168
|
+
genseq,
|
|
169
|
+
});
|
|
188
170
|
}
|
|
189
171
|
function isPlainObject(value) {
|
|
190
172
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -357,25 +357,76 @@ async function supplyResponseToSupdialog(args) {
|
|
|
357
357
|
});
|
|
358
358
|
const immediateMirror = carryoverContent !== undefined
|
|
359
359
|
? {
|
|
360
|
-
type: '
|
|
360
|
+
type: 'tellask_carryover_msg',
|
|
361
361
|
role: 'user',
|
|
362
|
+
genseq: parentDialog.activeGenSeqOrUndefined ?? 1,
|
|
362
363
|
content: carryoverContent,
|
|
363
364
|
originCourse: carryoverOriginCourse,
|
|
365
|
+
carryoverCourse: parentDialog.currentCourse,
|
|
364
366
|
responderId: result.responderId,
|
|
365
367
|
callName: result.callName,
|
|
366
368
|
tellaskContent: result.tellaskContent,
|
|
367
369
|
status,
|
|
370
|
+
response: upstreamResponseText,
|
|
371
|
+
agentId: result.responderAgentId ?? result.responderId,
|
|
368
372
|
callId: resolvedCallId,
|
|
373
|
+
originMemberId: requesterId,
|
|
374
|
+
...(result.callName === 'tellask'
|
|
375
|
+
? {
|
|
376
|
+
mentionList: result.mentionList ?? [],
|
|
377
|
+
sessionSlug: result.sessionSlug,
|
|
378
|
+
}
|
|
379
|
+
: result.callName === 'tellaskSessionless'
|
|
380
|
+
? {
|
|
381
|
+
mentionList: result.mentionList ?? [],
|
|
382
|
+
}
|
|
383
|
+
: {}),
|
|
384
|
+
...(calleeResponseRef !== undefined
|
|
385
|
+
? {
|
|
386
|
+
calleeDialogId: subdialogId.selfId,
|
|
387
|
+
calleeCourse: calleeResponseRef.course,
|
|
388
|
+
calleeGenseq: calleeResponseRef.genseq,
|
|
389
|
+
}
|
|
390
|
+
: {
|
|
391
|
+
calleeDialogId: subdialogId.selfId,
|
|
392
|
+
}),
|
|
369
393
|
}
|
|
370
394
|
: {
|
|
371
395
|
type: 'tellask_result_msg',
|
|
372
396
|
role: 'tool',
|
|
373
|
-
|
|
374
|
-
mentionList: result.mentionList,
|
|
375
|
-
tellaskContent: result.tellaskContent,
|
|
376
|
-
status,
|
|
397
|
+
genseq: parentDialog.activeGenSeqOrUndefined ?? 1,
|
|
377
398
|
callId: resolvedCallId,
|
|
399
|
+
callName: result.callName,
|
|
400
|
+
status,
|
|
378
401
|
content: upstreamResponseText,
|
|
402
|
+
call: result.callName === 'tellask'
|
|
403
|
+
? {
|
|
404
|
+
tellaskContent: result.tellaskContent,
|
|
405
|
+
mentionList: result.mentionList ?? [],
|
|
406
|
+
...(result.sessionSlug ? { sessionSlug: result.sessionSlug } : {}),
|
|
407
|
+
}
|
|
408
|
+
: result.callName === 'tellaskSessionless'
|
|
409
|
+
? {
|
|
410
|
+
tellaskContent: result.tellaskContent,
|
|
411
|
+
mentionList: result.mentionList ?? [],
|
|
412
|
+
}
|
|
413
|
+
: {
|
|
414
|
+
tellaskContent: result.tellaskContent,
|
|
415
|
+
},
|
|
416
|
+
responder: {
|
|
417
|
+
responderId: result.responderId,
|
|
418
|
+
agentId: result.responderAgentId ?? result.responderId,
|
|
419
|
+
originMemberId: requesterId,
|
|
420
|
+
},
|
|
421
|
+
route: {
|
|
422
|
+
calleeDialogId: subdialogId.selfId,
|
|
423
|
+
...(calleeResponseRef !== undefined
|
|
424
|
+
? {
|
|
425
|
+
calleeCourse: calleeResponseRef.course,
|
|
426
|
+
calleeGenseq: calleeResponseRef.genseq,
|
|
427
|
+
}
|
|
428
|
+
: {}),
|
|
429
|
+
},
|
|
379
430
|
};
|
|
380
431
|
await parentDialog.addChatMessages(immediateMirror);
|
|
381
432
|
if (result.shouldRevive) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TellaskReplyDirective } from '@longrun-ai/kernel/types/storage';
|
|
2
2
|
import { Dialog } from '../../dialog';
|
|
3
|
-
import type { ChatMessage, FuncCallMsg } from '../client';
|
|
3
|
+
import type { ChatMessage, FuncCallMsg, FuncResultMsg } from '../client';
|
|
4
4
|
import type { KernelDriverDriveCallbacks } from './types';
|
|
5
5
|
export type TellaskRoutingParseResult = {
|
|
6
6
|
type: 'A';
|
|
@@ -14,8 +14,8 @@ export type TellaskRoutingParseResult = {
|
|
|
14
14
|
agentId: string;
|
|
15
15
|
};
|
|
16
16
|
declare const TELLASK_SPECIAL_FUNCTION_NAMES: readonly ["tellaskBack", "tellask", "tellaskSessionless", "replyTellask", "replyTellaskSessionless", "replyTellaskBack", "askHuman", "freshBootsReasoning"];
|
|
17
|
-
export type
|
|
18
|
-
export type
|
|
17
|
+
export type TellaskCallFunctionName = (typeof TELLASK_SPECIAL_FUNCTION_NAMES)[number];
|
|
18
|
+
export type TellaskCall = Readonly<{
|
|
19
19
|
callId: string;
|
|
20
20
|
callName: 'tellaskBack';
|
|
21
21
|
tellaskContent: string;
|
|
@@ -54,11 +54,17 @@ export type TellaskSpecialCall = Readonly<{
|
|
|
54
54
|
tellaskContent: string;
|
|
55
55
|
effort?: number;
|
|
56
56
|
}>;
|
|
57
|
-
export type
|
|
58
|
-
|
|
57
|
+
export type ResolvedTellaskFunctionCall = Readonly<{
|
|
58
|
+
originalCall: FuncCallMsg;
|
|
59
|
+
call: TellaskCall;
|
|
60
|
+
}>;
|
|
61
|
+
export type InvalidTellaskFunctionCall = Readonly<{
|
|
62
|
+
originalCall: FuncCallMsg;
|
|
59
63
|
error: string;
|
|
64
|
+
rawArgumentsText: string;
|
|
65
|
+
contextArguments: string;
|
|
60
66
|
}>;
|
|
61
|
-
export declare function
|
|
67
|
+
export declare function isTellaskCallFunctionName(name: string): name is TellaskCallFunctionName;
|
|
62
68
|
export declare function loadLatestActiveTellaskReplyDirective(dialog: Dialog): Promise<TellaskReplyDirective | undefined>;
|
|
63
69
|
export declare function deliverTellaskBackReplyFromDirective(args: {
|
|
64
70
|
dlg: Dialog;
|
|
@@ -73,19 +79,39 @@ export declare function recoverPendingReplyTellaskCalls(args: {
|
|
|
73
79
|
dlg: Dialog;
|
|
74
80
|
callbacks: KernelDriverDriveCallbacks;
|
|
75
81
|
}): Promise<number>;
|
|
76
|
-
export declare function
|
|
77
|
-
allowedSpecials?: ReadonlySet<
|
|
82
|
+
export declare function resolveTellaskFunctionCalls(funcCalls: readonly FuncCallMsg[], options?: {
|
|
83
|
+
allowedSpecials?: ReadonlySet<TellaskCallFunctionName>;
|
|
78
84
|
}): {
|
|
79
|
-
|
|
85
|
+
validCalls: ResolvedTellaskFunctionCall[];
|
|
86
|
+
invalidCalls: InvalidTellaskFunctionCall[];
|
|
80
87
|
normalCalls: FuncCallMsg[];
|
|
81
|
-
parseIssues: TellaskSpecialCallParseIssue[];
|
|
82
88
|
};
|
|
83
|
-
export declare function
|
|
89
|
+
export declare function formatTellaskInvalidCallResult(args: {
|
|
90
|
+
call: FuncCallMsg;
|
|
91
|
+
error: string;
|
|
92
|
+
}): FuncResultMsg;
|
|
93
|
+
export declare function formatPendingTellaskFuncResultContent(name: TellaskCallFunctionName, startedAtMs: number | null): string;
|
|
94
|
+
export declare function formatResolvedAskHumanResultContent(): string;
|
|
95
|
+
export declare function executeTellaskCalls(args: {
|
|
84
96
|
dlg: Dialog;
|
|
85
|
-
calls: readonly
|
|
97
|
+
calls: readonly TellaskCall[];
|
|
86
98
|
callbacks: KernelDriverDriveCallbacks;
|
|
87
99
|
}): Promise<{
|
|
88
100
|
toolOutputs: ChatMessage[];
|
|
89
101
|
successfulReplyCallIds: string[];
|
|
90
102
|
}>;
|
|
103
|
+
export type TellaskFunctionRoundResult = Readonly<{
|
|
104
|
+
normalCalls: readonly FuncCallMsg[];
|
|
105
|
+
tellaskCallMessages: readonly FuncCallMsg[];
|
|
106
|
+
tellaskResults: readonly FuncResultMsg[];
|
|
107
|
+
toolOutputs: readonly ChatMessage[];
|
|
108
|
+
handledCallIds: readonly string[];
|
|
109
|
+
shouldStopAfterReplyTool: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
export declare function processTellaskFunctionRound(args: {
|
|
112
|
+
dlg: Dialog;
|
|
113
|
+
funcCalls: readonly FuncCallMsg[];
|
|
114
|
+
allowedSpecials: ReadonlySet<TellaskCallFunctionName>;
|
|
115
|
+
callbacks: KernelDriverDriveCallbacks;
|
|
116
|
+
}): Promise<TellaskFunctionRoundResult>;
|
|
91
117
|
export {};
|