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
package/dist/priming.js
CHANGED
|
@@ -239,17 +239,15 @@ function isPrimingRecordType(raw) {
|
|
|
239
239
|
raw === 'ui_only_markdown_record' ||
|
|
240
240
|
raw === 'runtime_guide_record' ||
|
|
241
241
|
raw === 'func_call_record' ||
|
|
242
|
-
raw === '
|
|
242
|
+
raw === 'tellask_call_record' ||
|
|
243
243
|
raw === 'web_search_call_record' ||
|
|
244
244
|
raw === 'human_text_record' ||
|
|
245
245
|
raw === 'func_result_record' ||
|
|
246
|
+
raw === 'tellask_result_record' ||
|
|
246
247
|
raw === 'quest_for_sup_record' ||
|
|
247
|
-
raw === 'tellask_call_result_record' ||
|
|
248
248
|
raw === 'tellask_reply_resolution_record' ||
|
|
249
|
-
raw === 'tellask_call_carryover_record' ||
|
|
250
249
|
raw === 'tellask_call_anchor_record' ||
|
|
251
|
-
raw === '
|
|
252
|
-
raw === 'tellask_carryover_result_record' ||
|
|
250
|
+
raw === 'tellask_carryover_record' ||
|
|
253
251
|
raw === 'gen_start_record' ||
|
|
254
252
|
raw === 'gen_finish_record');
|
|
255
253
|
}
|
|
@@ -261,21 +259,18 @@ function getRecordMarkdownTextField(type) {
|
|
|
261
259
|
case 'runtime_guide_record':
|
|
262
260
|
case 'human_text_record':
|
|
263
261
|
case 'func_result_record':
|
|
264
|
-
case '
|
|
262
|
+
case 'tellask_result_record':
|
|
265
263
|
return 'content';
|
|
266
264
|
case 'quest_for_sup_record':
|
|
267
265
|
return 'tellaskContent';
|
|
268
|
-
case 'tellask_call_result_record':
|
|
269
|
-
return 'result';
|
|
270
266
|
case 'tellask_reply_resolution_record':
|
|
267
|
+
case 'tellask_call_record':
|
|
271
268
|
return null;
|
|
272
|
-
case '
|
|
273
|
-
return null;
|
|
274
|
-
case 'tellask_response_record':
|
|
275
|
-
case 'tellask_carryover_result_record':
|
|
269
|
+
case 'tellask_carryover_record':
|
|
276
270
|
return 'response';
|
|
277
271
|
case 'func_call_record':
|
|
278
272
|
case 'web_search_call_record':
|
|
273
|
+
case 'native_tool_call_record':
|
|
279
274
|
case 'tellask_call_anchor_record':
|
|
280
275
|
case 'gen_start_record':
|
|
281
276
|
case 'gen_finish_record':
|
|
@@ -352,6 +347,15 @@ function expectStringField(record, key, context, allowEmpty = false) {
|
|
|
352
347
|
}
|
|
353
348
|
return value;
|
|
354
349
|
}
|
|
350
|
+
function parseOptionalStringField(record, key, context) {
|
|
351
|
+
const value = record[key];
|
|
352
|
+
if (value === undefined)
|
|
353
|
+
return undefined;
|
|
354
|
+
if (typeof value !== 'string') {
|
|
355
|
+
throw new Error(`${context}.${key} must be a string when provided`);
|
|
356
|
+
}
|
|
357
|
+
return value;
|
|
358
|
+
}
|
|
355
359
|
function parseOptionalIntegerField(record, key, context) {
|
|
356
360
|
const value = record[key];
|
|
357
361
|
if (value === undefined)
|
|
@@ -649,9 +653,9 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
649
653
|
return withoutTs;
|
|
650
654
|
}
|
|
651
655
|
case 'func_call_record': {
|
|
652
|
-
const
|
|
653
|
-
if (
|
|
654
|
-
throw new Error(`${context}.
|
|
656
|
+
const rawArgumentsText = raw['rawArgumentsText'];
|
|
657
|
+
if (typeof rawArgumentsText !== 'string') {
|
|
658
|
+
throw new Error(`${context}.rawArgumentsText must be a string`);
|
|
655
659
|
}
|
|
656
660
|
const record = {
|
|
657
661
|
ts: '',
|
|
@@ -659,14 +663,14 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
659
663
|
genseq: expectIntegerField(raw, 'genseq', context),
|
|
660
664
|
id: expectStringField(raw, 'id', context),
|
|
661
665
|
name: expectStringField(raw, 'name', context),
|
|
662
|
-
|
|
666
|
+
rawArgumentsText,
|
|
663
667
|
};
|
|
664
668
|
if (sourceTag)
|
|
665
669
|
record.sourceTag = sourceTag;
|
|
666
670
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
667
671
|
return withoutTs;
|
|
668
672
|
}
|
|
669
|
-
case '
|
|
673
|
+
case 'tellask_call_record': {
|
|
670
674
|
const base = {
|
|
671
675
|
ts: '',
|
|
672
676
|
type,
|
|
@@ -674,49 +678,29 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
674
678
|
id: expectStringField(raw, 'id', context),
|
|
675
679
|
};
|
|
676
680
|
const name = expectStringField(raw, 'name', context);
|
|
677
|
-
const
|
|
681
|
+
const rawArgumentsText = raw['rawArgumentsText'];
|
|
682
|
+
if (typeof rawArgumentsText !== 'string') {
|
|
683
|
+
throw new Error(`${context}.rawArgumentsText must be a string`);
|
|
684
|
+
}
|
|
685
|
+
const deliveryMode = raw['deliveryMode'];
|
|
686
|
+
if (deliveryMode !== 'tellask_call_start' && deliveryMode !== 'func_call_requested') {
|
|
687
|
+
throw new Error(`${context}.deliveryMode must be 'tellask_call_start' | 'func_call_requested'`);
|
|
688
|
+
}
|
|
678
689
|
let record;
|
|
679
690
|
switch (name) {
|
|
680
691
|
case 'tellaskBack':
|
|
681
|
-
record = { ...base, name, tellaskContent: content };
|
|
682
|
-
break;
|
|
683
692
|
case 'tellask':
|
|
684
|
-
record = {
|
|
685
|
-
...base,
|
|
686
|
-
name,
|
|
687
|
-
targetAgentId: expectStringField(raw, 'targetAgentId', context),
|
|
688
|
-
sessionSlug: expectStringField(raw, 'sessionSlug', context),
|
|
689
|
-
tellaskContent: content,
|
|
690
|
-
};
|
|
691
|
-
break;
|
|
692
693
|
case 'tellaskSessionless':
|
|
693
|
-
record = {
|
|
694
|
-
...base,
|
|
695
|
-
name,
|
|
696
|
-
targetAgentId: expectStringField(raw, 'targetAgentId', context),
|
|
697
|
-
tellaskContent: content,
|
|
698
|
-
};
|
|
699
|
-
break;
|
|
700
694
|
case 'replyTellask':
|
|
701
695
|
case 'replyTellaskSessionless':
|
|
702
696
|
case 'replyTellaskBack':
|
|
703
|
-
record = { ...base, name, replyContent: content };
|
|
704
|
-
break;
|
|
705
697
|
case 'askHuman':
|
|
706
|
-
record = { ...base, name, tellaskContent: content };
|
|
707
|
-
break;
|
|
708
698
|
case 'freshBootsReasoning': {
|
|
709
|
-
|
|
710
|
-
record = {
|
|
711
|
-
...base,
|
|
712
|
-
name,
|
|
713
|
-
tellaskContent: content,
|
|
714
|
-
...(effort !== undefined ? { effort } : {}),
|
|
715
|
-
};
|
|
699
|
+
record = { ...base, name, rawArgumentsText, deliveryMode };
|
|
716
700
|
break;
|
|
717
701
|
}
|
|
718
702
|
default:
|
|
719
|
-
throw new Error(`${context}.name must be a supported tellask
|
|
703
|
+
throw new Error(`${context}.name must be a supported tellask function`);
|
|
720
704
|
}
|
|
721
705
|
if (sourceTag)
|
|
722
706
|
record.sourceTag = sourceTag;
|
|
@@ -725,13 +709,17 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
725
709
|
}
|
|
726
710
|
case 'web_search_call_record': {
|
|
727
711
|
const phase = raw['phase'];
|
|
712
|
+
const source = raw['source'];
|
|
728
713
|
if (phase !== 'added' && phase !== 'done') {
|
|
729
714
|
throw new Error(`${context}.phase must be added | done`);
|
|
730
715
|
}
|
|
716
|
+
if (source !== undefined && source !== 'codex' && source !== 'openai_responses') {
|
|
717
|
+
throw new Error(`${context}.source must be codex | openai_responses when provided`);
|
|
718
|
+
}
|
|
731
719
|
const itemId = raw['itemId'];
|
|
732
720
|
const status = raw['status'];
|
|
733
|
-
if (itemId !==
|
|
734
|
-
throw new Error(`${context}.itemId must be a string
|
|
721
|
+
if (typeof itemId !== 'string' || itemId.trim() === '') {
|
|
722
|
+
throw new Error(`${context}.itemId must be a non-empty string`);
|
|
735
723
|
}
|
|
736
724
|
if (status !== undefined && typeof status !== 'string') {
|
|
737
725
|
throw new Error(`${context}.status must be a string when provided`);
|
|
@@ -743,8 +731,9 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
743
731
|
genseq: expectIntegerField(raw, 'genseq', context),
|
|
744
732
|
phase,
|
|
745
733
|
};
|
|
746
|
-
if (
|
|
747
|
-
record.
|
|
734
|
+
if (source !== undefined)
|
|
735
|
+
record.source = source;
|
|
736
|
+
record.itemId = itemId.trim();
|
|
748
737
|
if (status !== undefined)
|
|
749
738
|
record.status = status;
|
|
750
739
|
if (action !== undefined)
|
|
@@ -754,13 +743,110 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
754
743
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
755
744
|
return withoutTs;
|
|
756
745
|
}
|
|
746
|
+
case 'native_tool_call_record': {
|
|
747
|
+
const phase = raw['phase'];
|
|
748
|
+
const source = raw['source'];
|
|
749
|
+
const itemType = raw['itemType'];
|
|
750
|
+
if (phase !== 'added' && phase !== 'done') {
|
|
751
|
+
throw new Error(`${context}.phase must be added | done`);
|
|
752
|
+
}
|
|
753
|
+
if (source !== undefined && source !== 'openai_responses') {
|
|
754
|
+
throw new Error(`${context}.source must be openai_responses when provided`);
|
|
755
|
+
}
|
|
756
|
+
switch (itemType) {
|
|
757
|
+
case 'file_search_call':
|
|
758
|
+
case 'code_interpreter_call':
|
|
759
|
+
case 'image_generation_call':
|
|
760
|
+
case 'mcp_call':
|
|
761
|
+
case 'mcp_list_tools':
|
|
762
|
+
case 'mcp_approval_request':
|
|
763
|
+
case 'custom_tool_call':
|
|
764
|
+
break;
|
|
765
|
+
default:
|
|
766
|
+
throw new Error(`${context}.itemType must be a supported native tool call type`);
|
|
767
|
+
}
|
|
768
|
+
const itemId = raw['itemId'];
|
|
769
|
+
const callId = raw['callId'];
|
|
770
|
+
const status = raw['status'];
|
|
771
|
+
const title = raw['title'];
|
|
772
|
+
const summary = raw['summary'];
|
|
773
|
+
const detail = raw['detail'];
|
|
774
|
+
if (itemId !== undefined && typeof itemId !== 'string') {
|
|
775
|
+
throw new Error(`${context}.itemId must be a string when provided`);
|
|
776
|
+
}
|
|
777
|
+
if (callId !== undefined && typeof callId !== 'string') {
|
|
778
|
+
throw new Error(`${context}.callId must be a string when provided`);
|
|
779
|
+
}
|
|
780
|
+
if (status !== undefined && typeof status !== 'string') {
|
|
781
|
+
throw new Error(`${context}.status must be a string when provided`);
|
|
782
|
+
}
|
|
783
|
+
if (title !== undefined && typeof title !== 'string') {
|
|
784
|
+
throw new Error(`${context}.title must be a string when provided`);
|
|
785
|
+
}
|
|
786
|
+
if (summary !== undefined && typeof summary !== 'string') {
|
|
787
|
+
throw new Error(`${context}.summary must be a string when provided`);
|
|
788
|
+
}
|
|
789
|
+
if (detail !== undefined && typeof detail !== 'string') {
|
|
790
|
+
throw new Error(`${context}.detail must be a string when provided`);
|
|
791
|
+
}
|
|
792
|
+
let record;
|
|
793
|
+
const genseq = expectIntegerField(raw, 'genseq', context);
|
|
794
|
+
if (itemType === 'custom_tool_call') {
|
|
795
|
+
if (typeof callId !== 'string' || callId.trim() === '') {
|
|
796
|
+
throw new Error(`${context}.callId must be a non-empty string for custom_tool_call`);
|
|
797
|
+
}
|
|
798
|
+
if (typeof itemId === 'string' && itemId.trim() === '') {
|
|
799
|
+
throw new Error(`${context}.itemId must be non-empty when provided for custom_tool_call`);
|
|
800
|
+
}
|
|
801
|
+
record = {
|
|
802
|
+
ts: '',
|
|
803
|
+
type,
|
|
804
|
+
genseq,
|
|
805
|
+
itemType,
|
|
806
|
+
phase,
|
|
807
|
+
callId: callId.trim(),
|
|
808
|
+
};
|
|
809
|
+
if (typeof itemId === 'string' && itemId.trim() !== '')
|
|
810
|
+
record.itemId = itemId.trim();
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
if (callId !== undefined) {
|
|
814
|
+
throw new Error(`${context}.callId is not allowed for non-custom native tool calls`);
|
|
815
|
+
}
|
|
816
|
+
if (typeof itemId !== 'string' || itemId.trim() === '') {
|
|
817
|
+
throw new Error(`${context}.itemId must be a non-empty string for ${String(itemType)}`);
|
|
818
|
+
}
|
|
819
|
+
record = {
|
|
820
|
+
ts: '',
|
|
821
|
+
type,
|
|
822
|
+
genseq,
|
|
823
|
+
itemType,
|
|
824
|
+
phase,
|
|
825
|
+
itemId: itemId.trim(),
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
if (source !== undefined)
|
|
829
|
+
record.source = source;
|
|
830
|
+
if (status !== undefined)
|
|
831
|
+
record.status = status;
|
|
832
|
+
if (title !== undefined)
|
|
833
|
+
record.title = title;
|
|
834
|
+
if (summary !== undefined)
|
|
835
|
+
record.summary = summary;
|
|
836
|
+
if (detail !== undefined)
|
|
837
|
+
record.detail = detail;
|
|
838
|
+
if (sourceTag)
|
|
839
|
+
record.sourceTag = sourceTag;
|
|
840
|
+
const { ts: _unusedTs, ...withoutTs } = record;
|
|
841
|
+
return withoutTs;
|
|
842
|
+
}
|
|
757
843
|
case 'human_text_record': {
|
|
758
844
|
const grammar = raw['grammar'];
|
|
759
845
|
if (grammar !== 'markdown') {
|
|
760
846
|
throw new Error(`${context}.grammar must be 'markdown'`);
|
|
761
847
|
}
|
|
762
848
|
const userLanguageCode = parseOptionalLanguageCodeField(raw, 'userLanguageCode', context);
|
|
763
|
-
const
|
|
849
|
+
const q4hAnswerCallId = parseOptionalStringField(raw, 'q4hAnswerCallId', context);
|
|
764
850
|
const tellaskReplyDirective = parseTellaskReplyDirective(raw, context);
|
|
765
851
|
const record = {
|
|
766
852
|
ts: '',
|
|
@@ -772,8 +858,8 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
772
858
|
};
|
|
773
859
|
if (userLanguageCode !== undefined)
|
|
774
860
|
record.userLanguageCode = userLanguageCode;
|
|
775
|
-
if (
|
|
776
|
-
record.
|
|
861
|
+
if (q4hAnswerCallId !== undefined)
|
|
862
|
+
record.q4hAnswerCallId = q4hAnswerCallId;
|
|
777
863
|
if (tellaskReplyDirective !== undefined)
|
|
778
864
|
record.tellaskReplyDirective = tellaskReplyDirective;
|
|
779
865
|
if (sourceTag)
|
|
@@ -798,22 +884,7 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
798
884
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
799
885
|
return withoutTs;
|
|
800
886
|
}
|
|
801
|
-
case '
|
|
802
|
-
const mentionList = parseOptionalStringArray(raw, 'mentionList', context) ?? [];
|
|
803
|
-
const record = {
|
|
804
|
-
ts: '',
|
|
805
|
-
type,
|
|
806
|
-
genseq: expectIntegerField(raw, 'genseq', context),
|
|
807
|
-
mentionList,
|
|
808
|
-
tellaskContent: expectStringField(raw, 'tellaskContent', context, true),
|
|
809
|
-
subDialogId: expectStringField(raw, 'subDialogId', context),
|
|
810
|
-
};
|
|
811
|
-
if (sourceTag)
|
|
812
|
-
record.sourceTag = sourceTag;
|
|
813
|
-
const { ts: _unusedTs, ...withoutTs } = record;
|
|
814
|
-
return withoutTs;
|
|
815
|
-
}
|
|
816
|
-
case 'tellask_call_result_record': {
|
|
887
|
+
case 'tellask_result_record': {
|
|
817
888
|
const callName = raw['callName'];
|
|
818
889
|
if (callName !== 'tellaskBack' &&
|
|
819
890
|
callName !== 'tellask' &&
|
|
@@ -823,63 +894,163 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
823
894
|
throw new Error(`${context}.callName is invalid`);
|
|
824
895
|
}
|
|
825
896
|
const status = raw['status'];
|
|
826
|
-
if (status !== 'completed' && status !== 'failed') {
|
|
827
|
-
throw new Error(`${context}.status must be completed | failed`);
|
|
897
|
+
if (status !== 'pending' && status !== 'completed' && status !== 'failed') {
|
|
898
|
+
throw new Error(`${context}.status must be pending | completed | failed`);
|
|
828
899
|
}
|
|
829
900
|
const callingGenseq = parseOptionalIntegerField(raw, 'calling_genseq', context);
|
|
830
|
-
const
|
|
831
|
-
|
|
901
|
+
const callRaw = raw['call'];
|
|
902
|
+
if (!isRecord(callRaw)) {
|
|
903
|
+
throw new Error(`${context}.call must be an object`);
|
|
904
|
+
}
|
|
905
|
+
const responderRaw = raw['responder'];
|
|
906
|
+
if (!isRecord(responderRaw)) {
|
|
907
|
+
throw new Error(`${context}.responder must be an object`);
|
|
908
|
+
}
|
|
909
|
+
const routeRaw = raw['route'];
|
|
910
|
+
if (routeRaw !== undefined && !isRecord(routeRaw)) {
|
|
911
|
+
throw new Error(`${context}.route must be an object when provided`);
|
|
912
|
+
}
|
|
913
|
+
const route = routeRaw === undefined
|
|
914
|
+
? undefined
|
|
915
|
+
: {
|
|
916
|
+
...(typeof routeRaw['calleeDialogId'] === 'string'
|
|
917
|
+
? { calleeDialogId: routeRaw['calleeDialogId'] }
|
|
918
|
+
: routeRaw['calleeDialogId'] === undefined
|
|
919
|
+
? {}
|
|
920
|
+
: (() => {
|
|
921
|
+
throw new Error(`${context}.route.calleeDialogId must be a string`);
|
|
922
|
+
})()),
|
|
923
|
+
...(parseOptionalIntegerField(routeRaw, 'calleeCourse', `${context}.route`) !==
|
|
924
|
+
undefined
|
|
925
|
+
? {
|
|
926
|
+
calleeCourse: (0, storage_1.toCalleeCourseNumber)(parseOptionalIntegerField(routeRaw, 'calleeCourse', `${context}.route`)),
|
|
927
|
+
}
|
|
928
|
+
: {}),
|
|
929
|
+
...(parseOptionalIntegerField(routeRaw, 'calleeGenseq', `${context}.route`) !==
|
|
930
|
+
undefined
|
|
931
|
+
? {
|
|
932
|
+
calleeGenseq: (0, storage_1.toCalleeGenerationSeqNumber)(parseOptionalIntegerField(routeRaw, 'calleeGenseq', `${context}.route`)),
|
|
933
|
+
}
|
|
934
|
+
: {}),
|
|
935
|
+
};
|
|
936
|
+
const responder = {
|
|
937
|
+
responderId: expectStringField(responderRaw, 'responderId', `${context}.responder`),
|
|
938
|
+
...(typeof responderRaw['agentId'] === 'string'
|
|
939
|
+
? { agentId: responderRaw['agentId'] }
|
|
940
|
+
: responderRaw['agentId'] === undefined
|
|
941
|
+
? {}
|
|
942
|
+
: (() => {
|
|
943
|
+
throw new Error(`${context}.responder.agentId must be a string`);
|
|
944
|
+
})()),
|
|
945
|
+
...(typeof responderRaw['originMemberId'] === 'string'
|
|
946
|
+
? { originMemberId: responderRaw['originMemberId'] }
|
|
947
|
+
: responderRaw['originMemberId'] === undefined
|
|
948
|
+
? {}
|
|
949
|
+
: (() => {
|
|
950
|
+
throw new Error(`${context}.responder.originMemberId must be a string`);
|
|
951
|
+
})()),
|
|
952
|
+
};
|
|
953
|
+
const base = {
|
|
832
954
|
ts: '',
|
|
833
955
|
type,
|
|
834
|
-
|
|
835
|
-
callName,
|
|
836
|
-
tellaskContent: expectStringField(raw, 'tellaskContent', context, true),
|
|
837
|
-
status,
|
|
838
|
-
result: expectStringField(raw, 'result', context, true),
|
|
956
|
+
genseq: expectIntegerField(raw, 'genseq', context),
|
|
839
957
|
callId: expectStringField(raw, 'callId', context),
|
|
958
|
+
status,
|
|
959
|
+
content: expectStringField(raw, 'content', context, true),
|
|
960
|
+
responder,
|
|
840
961
|
};
|
|
962
|
+
const record = (() => {
|
|
963
|
+
switch (callName) {
|
|
964
|
+
case 'tellask': {
|
|
965
|
+
const mentionList = parseOptionalStringArray(callRaw, 'mentionList', `${context}.call`);
|
|
966
|
+
if (!mentionList) {
|
|
967
|
+
throw new Error(`${context}.call.mentionList is required for tellask`);
|
|
968
|
+
}
|
|
969
|
+
return {
|
|
970
|
+
...base,
|
|
971
|
+
callName,
|
|
972
|
+
call: {
|
|
973
|
+
tellaskContent: expectStringField(callRaw, 'tellaskContent', `${context}.call`, true),
|
|
974
|
+
mentionList,
|
|
975
|
+
sessionSlug: expectStringField(callRaw, 'sessionSlug', `${context}.call`),
|
|
976
|
+
},
|
|
977
|
+
};
|
|
978
|
+
}
|
|
979
|
+
case 'tellaskSessionless': {
|
|
980
|
+
const mentionList = parseOptionalStringArray(callRaw, 'mentionList', `${context}.call`);
|
|
981
|
+
if (!mentionList) {
|
|
982
|
+
throw new Error(`${context}.call.mentionList is required for tellaskSessionless`);
|
|
983
|
+
}
|
|
984
|
+
if (callRaw['sessionSlug'] !== undefined) {
|
|
985
|
+
throw new Error(`${context}.call.sessionSlug must be undefined for tellaskSessionless`);
|
|
986
|
+
}
|
|
987
|
+
return {
|
|
988
|
+
...base,
|
|
989
|
+
callName,
|
|
990
|
+
call: {
|
|
991
|
+
tellaskContent: expectStringField(callRaw, 'tellaskContent', `${context}.call`, true),
|
|
992
|
+
mentionList,
|
|
993
|
+
},
|
|
994
|
+
};
|
|
995
|
+
}
|
|
996
|
+
case 'tellaskBack':
|
|
997
|
+
case 'askHuman':
|
|
998
|
+
case 'freshBootsReasoning':
|
|
999
|
+
if (callRaw['mentionList'] !== undefined) {
|
|
1000
|
+
throw new Error(`${context}.call.mentionList must be undefined for ${callName}`);
|
|
1001
|
+
}
|
|
1002
|
+
if (callRaw['sessionSlug'] !== undefined) {
|
|
1003
|
+
throw new Error(`${context}.call.sessionSlug must be undefined for ${callName}`);
|
|
1004
|
+
}
|
|
1005
|
+
return {
|
|
1006
|
+
...base,
|
|
1007
|
+
callName,
|
|
1008
|
+
call: {
|
|
1009
|
+
tellaskContent: expectStringField(callRaw, 'tellaskContent', `${context}.call`, true),
|
|
1010
|
+
},
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
})();
|
|
841
1014
|
if (callingGenseq !== undefined) {
|
|
842
1015
|
record.calling_genseq = (0, storage_1.toCallingGenerationSeqNumber)(callingGenseq);
|
|
843
1016
|
}
|
|
844
|
-
if (
|
|
845
|
-
record.
|
|
1017
|
+
if (route !== undefined) {
|
|
1018
|
+
record.route = route;
|
|
1019
|
+
}
|
|
846
1020
|
if (sourceTag)
|
|
847
1021
|
record.sourceTag = sourceTag;
|
|
848
1022
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
849
1023
|
return withoutTs;
|
|
850
1024
|
}
|
|
851
|
-
case '
|
|
852
|
-
const
|
|
853
|
-
if (replyCallName !== 'replyTellask' &&
|
|
854
|
-
replyCallName !== 'replyTellaskSessionless' &&
|
|
855
|
-
replyCallName !== 'replyTellaskBack') {
|
|
856
|
-
throw new Error(`${context}.replyCallName must be a supported replyTellask* function`);
|
|
857
|
-
}
|
|
1025
|
+
case 'quest_for_sup_record': {
|
|
1026
|
+
const mentionList = parseOptionalStringArray(raw, 'mentionList', context) ?? [];
|
|
858
1027
|
const record = {
|
|
859
1028
|
ts: '',
|
|
860
1029
|
type,
|
|
861
1030
|
genseq: expectIntegerField(raw, 'genseq', context),
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
1031
|
+
mentionList,
|
|
1032
|
+
tellaskContent: expectStringField(raw, 'tellaskContent', context, true),
|
|
1033
|
+
subDialogId: expectStringField(raw, 'subDialogId', context),
|
|
865
1034
|
};
|
|
866
1035
|
if (sourceTag)
|
|
867
1036
|
record.sourceTag = sourceTag;
|
|
868
1037
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
869
1038
|
return withoutTs;
|
|
870
1039
|
}
|
|
871
|
-
case '
|
|
872
|
-
const
|
|
873
|
-
if (
|
|
874
|
-
|
|
1040
|
+
case 'tellask_reply_resolution_record': {
|
|
1041
|
+
const replyCallName = raw['replyCallName'];
|
|
1042
|
+
if (replyCallName !== 'replyTellask' &&
|
|
1043
|
+
replyCallName !== 'replyTellaskSessionless' &&
|
|
1044
|
+
replyCallName !== 'replyTellaskBack') {
|
|
1045
|
+
throw new Error(`${context}.replyCallName must be a supported replyTellask* function`);
|
|
875
1046
|
}
|
|
876
1047
|
const record = {
|
|
877
1048
|
ts: '',
|
|
878
1049
|
type,
|
|
879
|
-
|
|
880
|
-
status,
|
|
1050
|
+
genseq: expectIntegerField(raw, 'genseq', context),
|
|
881
1051
|
callId: expectStringField(raw, 'callId', context),
|
|
882
|
-
|
|
1052
|
+
replyCallName,
|
|
1053
|
+
targetCallId: expectStringField(raw, 'targetCallId', context),
|
|
883
1054
|
};
|
|
884
1055
|
if (sourceTag)
|
|
885
1056
|
record.sourceTag = sourceTag;
|
|
@@ -945,102 +1116,11 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
945
1116
|
const { ts: _unusedTs, ...withoutTs } = record;
|
|
946
1117
|
return withoutTs;
|
|
947
1118
|
}
|
|
948
|
-
case '
|
|
949
|
-
const callName = raw['callName'];
|
|
950
|
-
if (callName !== 'tellaskBack' &&
|
|
951
|
-
callName !== 'tellask' &&
|
|
952
|
-
callName !== 'tellaskSessionless' &&
|
|
953
|
-
callName !== 'freshBootsReasoning') {
|
|
954
|
-
throw new Error(`${context}.callName is invalid`);
|
|
955
|
-
}
|
|
956
|
-
const status = raw['status'];
|
|
957
|
-
if (status !== 'completed' && status !== 'failed') {
|
|
958
|
-
throw new Error(`${context}.status must be completed | failed`);
|
|
959
|
-
}
|
|
960
|
-
const mentionList = parseOptionalStringArray(raw, 'mentionList', context);
|
|
961
|
-
const sessionSlug = raw['sessionSlug'];
|
|
962
|
-
const callingGenseq = parseOptionalIntegerField(raw, 'calling_genseq', context);
|
|
963
|
-
const calleeCourse = parseOptionalIntegerField(raw, 'calleeCourse', context);
|
|
964
|
-
const calleeGenseq = parseOptionalIntegerField(raw, 'calleeGenseq', context);
|
|
965
|
-
const calleeDialogId = raw['calleeDialogId'];
|
|
966
|
-
if (calleeDialogId !== undefined && typeof calleeDialogId !== 'string') {
|
|
967
|
-
throw new Error(`${context}.calleeDialogId must be a string when provided`);
|
|
968
|
-
}
|
|
969
|
-
const base = {
|
|
970
|
-
ts: '',
|
|
971
|
-
type,
|
|
972
|
-
responderId: expectStringField(raw, 'responderId', context),
|
|
973
|
-
tellaskContent: expectStringField(raw, 'tellaskContent', context, true),
|
|
974
|
-
status,
|
|
975
|
-
response: expectStringField(raw, 'response', context, true),
|
|
976
|
-
agentId: expectStringField(raw, 'agentId', context),
|
|
977
|
-
callId: expectStringField(raw, 'callId', context),
|
|
978
|
-
originMemberId: expectStringField(raw, 'originMemberId', context),
|
|
979
|
-
};
|
|
980
|
-
const record = (() => {
|
|
981
|
-
switch (callName) {
|
|
982
|
-
case 'tellask': {
|
|
983
|
-
if (!Array.isArray(mentionList) || mentionList.length < 1) {
|
|
984
|
-
throw new Error(`${context}.mentionList is required for tellask response`);
|
|
985
|
-
}
|
|
986
|
-
if (typeof sessionSlug !== 'string' || sessionSlug.trim() === '') {
|
|
987
|
-
throw new Error(`${context}.sessionSlug is required for tellask response`);
|
|
988
|
-
}
|
|
989
|
-
return {
|
|
990
|
-
...base,
|
|
991
|
-
callName,
|
|
992
|
-
sessionSlug: sessionSlug.trim(),
|
|
993
|
-
mentionList,
|
|
994
|
-
};
|
|
995
|
-
}
|
|
996
|
-
case 'tellaskSessionless': {
|
|
997
|
-
if (!Array.isArray(mentionList) || mentionList.length < 1) {
|
|
998
|
-
throw new Error(`${context}.mentionList is required for tellaskSessionless response`);
|
|
999
|
-
}
|
|
1000
|
-
if (sessionSlug !== undefined) {
|
|
1001
|
-
throw new Error(`${context}.sessionSlug must be undefined for tellaskSessionless response`);
|
|
1002
|
-
}
|
|
1003
|
-
return {
|
|
1004
|
-
...base,
|
|
1005
|
-
callName,
|
|
1006
|
-
mentionList,
|
|
1007
|
-
};
|
|
1008
|
-
}
|
|
1009
|
-
case 'tellaskBack':
|
|
1010
|
-
case 'freshBootsReasoning': {
|
|
1011
|
-
if (mentionList !== undefined) {
|
|
1012
|
-
throw new Error(`${context}.mentionList must be undefined for ${callName}`);
|
|
1013
|
-
}
|
|
1014
|
-
if (sessionSlug !== undefined) {
|
|
1015
|
-
throw new Error(`${context}.sessionSlug must be undefined for ${callName}`);
|
|
1016
|
-
}
|
|
1017
|
-
return {
|
|
1018
|
-
...base,
|
|
1019
|
-
callName,
|
|
1020
|
-
};
|
|
1021
|
-
}
|
|
1022
|
-
}
|
|
1023
|
-
})();
|
|
1024
|
-
if (callingGenseq !== undefined) {
|
|
1025
|
-
record.calling_genseq = (0, storage_1.toCallingGenerationSeqNumber)(callingGenseq);
|
|
1026
|
-
}
|
|
1027
|
-
if (calleeDialogId !== undefined)
|
|
1028
|
-
record.calleeDialogId = calleeDialogId;
|
|
1029
|
-
if (calleeCourse !== undefined) {
|
|
1030
|
-
record.calleeCourse = (0, storage_1.toCalleeCourseNumber)(calleeCourse);
|
|
1031
|
-
}
|
|
1032
|
-
if (calleeGenseq !== undefined) {
|
|
1033
|
-
record.calleeGenseq = (0, storage_1.toCalleeGenerationSeqNumber)(calleeGenseq);
|
|
1034
|
-
}
|
|
1035
|
-
if (sourceTag)
|
|
1036
|
-
record.sourceTag = sourceTag;
|
|
1037
|
-
const { ts: _unusedTs, ...withoutTs } = record;
|
|
1038
|
-
return withoutTs;
|
|
1039
|
-
}
|
|
1040
|
-
case 'tellask_carryover_result_record': {
|
|
1119
|
+
case 'tellask_carryover_record': {
|
|
1041
1120
|
const callName = raw['callName'];
|
|
1042
1121
|
if (callName !== 'tellask' &&
|
|
1043
1122
|
callName !== 'tellaskSessionless' &&
|
|
1123
|
+
callName !== 'askHuman' &&
|
|
1044
1124
|
callName !== 'freshBootsReasoning') {
|
|
1045
1125
|
throw new Error(`${context}.callName is invalid`);
|
|
1046
1126
|
}
|
|
@@ -1048,7 +1128,9 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
1048
1128
|
if (status !== 'completed' && status !== 'failed') {
|
|
1049
1129
|
throw new Error(`${context}.status must be completed | failed`);
|
|
1050
1130
|
}
|
|
1131
|
+
const genseq = expectIntegerField(raw, 'genseq', context);
|
|
1051
1132
|
const originCourse = expectIntegerField(raw, 'originCourse', context);
|
|
1133
|
+
const carryoverCourse = expectIntegerField(raw, 'carryoverCourse', context);
|
|
1052
1134
|
const mentionList = parseOptionalStringArray(raw, 'mentionList', context);
|
|
1053
1135
|
const sessionSlug = raw['sessionSlug'];
|
|
1054
1136
|
const calleeCourse = parseOptionalIntegerField(raw, 'calleeCourse', context);
|
|
@@ -1060,7 +1142,9 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
1060
1142
|
const base = {
|
|
1061
1143
|
ts: '',
|
|
1062
1144
|
type,
|
|
1145
|
+
genseq,
|
|
1063
1146
|
originCourse: (0, storage_1.toCallingCourseNumber)(originCourse),
|
|
1147
|
+
carryoverCourse: (0, storage_1.toDialogCourseNumber)(carryoverCourse),
|
|
1064
1148
|
responderId: expectStringField(raw, 'responderId', context),
|
|
1065
1149
|
tellaskContent: expectStringField(raw, 'tellaskContent', context, true),
|
|
1066
1150
|
status,
|
|
@@ -1073,7 +1157,7 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
1073
1157
|
const record = (() => {
|
|
1074
1158
|
switch (callName) {
|
|
1075
1159
|
case 'tellask': {
|
|
1076
|
-
if (!Array.isArray(mentionList)
|
|
1160
|
+
if (!Array.isArray(mentionList)) {
|
|
1077
1161
|
throw new Error(`${context}.mentionList is required for tellask carryover`);
|
|
1078
1162
|
}
|
|
1079
1163
|
if (typeof sessionSlug !== 'string' || sessionSlug.trim() === '') {
|
|
@@ -1087,7 +1171,7 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
1087
1171
|
};
|
|
1088
1172
|
}
|
|
1089
1173
|
case 'tellaskSessionless': {
|
|
1090
|
-
if (!Array.isArray(mentionList)
|
|
1174
|
+
if (!Array.isArray(mentionList)) {
|
|
1091
1175
|
throw new Error(`${context}.mentionList is required for tellaskSessionless carryover`);
|
|
1092
1176
|
}
|
|
1093
1177
|
if (sessionSlug !== undefined) {
|
|
@@ -1099,6 +1183,17 @@ function normalizePrimingRecordFromJson(raw) {
|
|
|
1099
1183
|
mentionList,
|
|
1100
1184
|
};
|
|
1101
1185
|
}
|
|
1186
|
+
case 'askHuman':
|
|
1187
|
+
if (mentionList !== undefined) {
|
|
1188
|
+
throw new Error(`${context}.mentionList must be undefined for askHuman carryover`);
|
|
1189
|
+
}
|
|
1190
|
+
if (sessionSlug !== undefined) {
|
|
1191
|
+
throw new Error(`${context}.sessionSlug must be undefined for askHuman carryover`);
|
|
1192
|
+
}
|
|
1193
|
+
return {
|
|
1194
|
+
...base,
|
|
1195
|
+
callName,
|
|
1196
|
+
};
|
|
1102
1197
|
case 'freshBootsReasoning':
|
|
1103
1198
|
if (mentionList !== undefined) {
|
|
1104
1199
|
throw new Error(`${context}.mentionList must be undefined for FBR carryover`);
|
|
@@ -1592,8 +1687,9 @@ function remapRecordGenseq(record, mapGenseq) {
|
|
|
1592
1687
|
case 'ui_only_markdown_record':
|
|
1593
1688
|
case 'runtime_guide_record':
|
|
1594
1689
|
case 'func_call_record':
|
|
1595
|
-
case '
|
|
1690
|
+
case 'tellask_call_record':
|
|
1596
1691
|
case 'web_search_call_record':
|
|
1692
|
+
case 'native_tool_call_record':
|
|
1597
1693
|
case 'human_text_record':
|
|
1598
1694
|
case 'func_result_record':
|
|
1599
1695
|
case 'quest_for_sup_record':
|
|
@@ -1601,26 +1697,17 @@ function remapRecordGenseq(record, mapGenseq) {
|
|
|
1601
1697
|
case 'gen_start_record':
|
|
1602
1698
|
case 'gen_finish_record':
|
|
1603
1699
|
return { ...record, genseq: mapGenseq(record.genseq) };
|
|
1604
|
-
case '
|
|
1700
|
+
case 'tellask_result_record':
|
|
1605
1701
|
return {
|
|
1606
1702
|
...record,
|
|
1703
|
+
genseq: mapGenseq(record.genseq),
|
|
1607
1704
|
calling_genseq: record.calling_genseq !== undefined
|
|
1608
1705
|
? (0, storage_1.toCallingGenerationSeqNumber)(remapOptionalGenseq(record.calling_genseq))
|
|
1609
1706
|
: undefined,
|
|
1610
1707
|
};
|
|
1611
1708
|
case 'tellask_reply_resolution_record':
|
|
1709
|
+
case 'tellask_carryover_record':
|
|
1612
1710
|
return { ...record, genseq: mapGenseq(record.genseq) };
|
|
1613
|
-
case 'tellask_call_carryover_record':
|
|
1614
|
-
return record;
|
|
1615
|
-
case 'tellask_response_record':
|
|
1616
|
-
return {
|
|
1617
|
-
...record,
|
|
1618
|
-
calling_genseq: record.calling_genseq !== undefined
|
|
1619
|
-
? (0, storage_1.toCallingGenerationSeqNumber)(remapOptionalGenseq(record.calling_genseq))
|
|
1620
|
-
: undefined,
|
|
1621
|
-
};
|
|
1622
|
-
case 'tellask_carryover_result_record':
|
|
1623
|
-
return record;
|
|
1624
1711
|
default: {
|
|
1625
1712
|
const _exhaustive = record;
|
|
1626
1713
|
throw new Error(`Unhandled priming record in remapRecordGenseq: ${String(_exhaustive)}`);
|
|
@@ -1660,17 +1747,16 @@ function addPrimingSourceTag(record) {
|
|
|
1660
1747
|
case 'ui_only_markdown_record':
|
|
1661
1748
|
case 'runtime_guide_record':
|
|
1662
1749
|
case 'func_call_record':
|
|
1663
|
-
case '
|
|
1750
|
+
case 'tellask_call_record':
|
|
1664
1751
|
case 'web_search_call_record':
|
|
1752
|
+
case 'native_tool_call_record':
|
|
1665
1753
|
case 'human_text_record':
|
|
1666
1754
|
case 'func_result_record':
|
|
1755
|
+
case 'tellask_result_record':
|
|
1667
1756
|
case 'quest_for_sup_record':
|
|
1668
|
-
case 'tellask_call_result_record':
|
|
1669
1757
|
case 'tellask_reply_resolution_record':
|
|
1670
|
-
case 'tellask_call_carryover_record':
|
|
1671
1758
|
case 'tellask_call_anchor_record':
|
|
1672
|
-
case '
|
|
1673
|
-
case 'tellask_carryover_result_record':
|
|
1759
|
+
case 'tellask_carryover_record':
|
|
1674
1760
|
case 'gen_start_record':
|
|
1675
1761
|
case 'gen_finish_record':
|
|
1676
1762
|
return { ...record, sourceTag: 'priming_script' };
|
|
@@ -1687,17 +1773,16 @@ function withTimestamp(record, ts) {
|
|
|
1687
1773
|
case 'ui_only_markdown_record':
|
|
1688
1774
|
case 'runtime_guide_record':
|
|
1689
1775
|
case 'func_call_record':
|
|
1690
|
-
case '
|
|
1776
|
+
case 'tellask_call_record':
|
|
1691
1777
|
case 'web_search_call_record':
|
|
1692
1778
|
case 'human_text_record':
|
|
1693
1779
|
case 'func_result_record':
|
|
1780
|
+
case 'tellask_result_record':
|
|
1694
1781
|
case 'quest_for_sup_record':
|
|
1695
|
-
case 'tellask_call_result_record':
|
|
1696
1782
|
case 'tellask_reply_resolution_record':
|
|
1697
|
-
case 'tellask_call_carryover_record':
|
|
1698
1783
|
case 'tellask_call_anchor_record':
|
|
1699
|
-
case '
|
|
1700
|
-
case '
|
|
1784
|
+
case 'tellask_carryover_record':
|
|
1785
|
+
case 'native_tool_call_record':
|
|
1701
1786
|
case 'gen_start_record':
|
|
1702
1787
|
case 'gen_finish_record':
|
|
1703
1788
|
return { ts, ...record };
|
|
@@ -1726,12 +1811,7 @@ function primingRecordToChatMessage(record) {
|
|
|
1726
1811
|
content: record.content,
|
|
1727
1812
|
};
|
|
1728
1813
|
case 'ui_only_markdown_record':
|
|
1729
|
-
return
|
|
1730
|
-
type: 'ui_only_markdown_msg',
|
|
1731
|
-
role: 'assistant',
|
|
1732
|
-
genseq: record.genseq,
|
|
1733
|
-
content: record.content,
|
|
1734
|
-
};
|
|
1814
|
+
return null;
|
|
1735
1815
|
case 'runtime_guide_record':
|
|
1736
1816
|
return {
|
|
1737
1817
|
type: 'transient_guide_msg',
|
|
@@ -1754,43 +1834,16 @@ function primingRecordToChatMessage(record) {
|
|
|
1754
1834
|
genseq: record.genseq,
|
|
1755
1835
|
id: record.id,
|
|
1756
1836
|
name: record.name,
|
|
1757
|
-
arguments:
|
|
1837
|
+
arguments: record.rawArgumentsText,
|
|
1758
1838
|
};
|
|
1759
|
-
case '
|
|
1839
|
+
case 'tellask_call_record':
|
|
1760
1840
|
return {
|
|
1761
1841
|
type: 'func_call_msg',
|
|
1762
1842
|
role: 'assistant',
|
|
1763
1843
|
genseq: record.genseq,
|
|
1764
1844
|
id: record.id,
|
|
1765
1845
|
name: record.name,
|
|
1766
|
-
arguments:
|
|
1767
|
-
switch (record.name) {
|
|
1768
|
-
case 'tellaskBack':
|
|
1769
|
-
return JSON.stringify({ tellaskContent: record.tellaskContent });
|
|
1770
|
-
case 'tellask':
|
|
1771
|
-
return JSON.stringify({
|
|
1772
|
-
targetAgentId: record.targetAgentId,
|
|
1773
|
-
sessionSlug: record.sessionSlug,
|
|
1774
|
-
tellaskContent: record.tellaskContent,
|
|
1775
|
-
});
|
|
1776
|
-
case 'tellaskSessionless':
|
|
1777
|
-
return JSON.stringify({
|
|
1778
|
-
targetAgentId: record.targetAgentId,
|
|
1779
|
-
tellaskContent: record.tellaskContent,
|
|
1780
|
-
});
|
|
1781
|
-
case 'replyTellask':
|
|
1782
|
-
case 'replyTellaskSessionless':
|
|
1783
|
-
case 'replyTellaskBack':
|
|
1784
|
-
return JSON.stringify({ replyContent: record.replyContent });
|
|
1785
|
-
case 'askHuman':
|
|
1786
|
-
return JSON.stringify({ tellaskContent: record.tellaskContent });
|
|
1787
|
-
case 'freshBootsReasoning':
|
|
1788
|
-
return JSON.stringify({
|
|
1789
|
-
tellaskContent: record.tellaskContent,
|
|
1790
|
-
...(record.effort !== undefined ? { effort: record.effort } : {}),
|
|
1791
|
-
});
|
|
1792
|
-
}
|
|
1793
|
-
})(),
|
|
1846
|
+
arguments: record.rawArgumentsText,
|
|
1794
1847
|
};
|
|
1795
1848
|
case 'func_result_record':
|
|
1796
1849
|
return {
|
|
@@ -1802,51 +1855,69 @@ function primingRecordToChatMessage(record) {
|
|
|
1802
1855
|
content: record.content,
|
|
1803
1856
|
contentItems: record.contentItems,
|
|
1804
1857
|
};
|
|
1805
|
-
case '
|
|
1806
|
-
const mentionList = record.callName === 'tellask' || record.callName === 'tellaskSessionless'
|
|
1807
|
-
? record.mentionList
|
|
1808
|
-
: undefined;
|
|
1858
|
+
case 'tellask_result_record':
|
|
1809
1859
|
return {
|
|
1810
1860
|
type: 'tellask_result_msg',
|
|
1811
1861
|
role: 'tool',
|
|
1812
|
-
|
|
1813
|
-
mentionList,
|
|
1814
|
-
tellaskContent: record.tellaskContent,
|
|
1815
|
-
status: record.status,
|
|
1862
|
+
genseq: record.genseq,
|
|
1816
1863
|
callId: record.callId,
|
|
1817
|
-
|
|
1818
|
-
};
|
|
1819
|
-
}
|
|
1820
|
-
case 'tellask_call_carryover_record':
|
|
1821
|
-
return null;
|
|
1822
|
-
case 'tellask_response_record': {
|
|
1823
|
-
const mentionList = record.callName === 'tellask' || record.callName === 'tellaskSessionless'
|
|
1824
|
-
? record.mentionList
|
|
1825
|
-
: undefined;
|
|
1826
|
-
return {
|
|
1827
|
-
type: 'tellask_result_msg',
|
|
1828
|
-
role: 'tool',
|
|
1829
|
-
responderId: record.responderId,
|
|
1830
|
-
mentionList,
|
|
1831
|
-
tellaskContent: record.tellaskContent,
|
|
1864
|
+
callName: record.callName,
|
|
1832
1865
|
status: record.status,
|
|
1833
|
-
|
|
1834
|
-
|
|
1866
|
+
content: record.content,
|
|
1867
|
+
...(record.calling_genseq !== undefined ? { calling_genseq: record.calling_genseq } : {}),
|
|
1868
|
+
call: record.call,
|
|
1869
|
+
responder: record.responder,
|
|
1870
|
+
...(record.route ? { route: record.route } : {}),
|
|
1871
|
+
responderId: record.responder.responderId,
|
|
1872
|
+
...(record.callName === 'tellask' || record.callName === 'tellaskSessionless'
|
|
1873
|
+
? { mentionList: record.call.mentionList }
|
|
1874
|
+
: {}),
|
|
1875
|
+
tellaskContent: record.call.tellaskContent,
|
|
1876
|
+
...(record.callName === 'tellask' ? { sessionSlug: record.call.sessionSlug } : {}),
|
|
1877
|
+
...(record.responder.agentId ? { agentId: record.responder.agentId } : {}),
|
|
1878
|
+
...(record.responder.originMemberId
|
|
1879
|
+
? { originMemberId: record.responder.originMemberId }
|
|
1880
|
+
: {}),
|
|
1881
|
+
...(record.route?.calleeDialogId ? { calleeDialogId: record.route.calleeDialogId } : {}),
|
|
1882
|
+
...(record.route?.calleeCourse !== undefined
|
|
1883
|
+
? { calleeCourse: record.route.calleeCourse }
|
|
1884
|
+
: {}),
|
|
1885
|
+
...(record.route?.calleeGenseq !== undefined
|
|
1886
|
+
? { calleeGenseq: record.route.calleeGenseq }
|
|
1887
|
+
: {}),
|
|
1835
1888
|
};
|
|
1836
|
-
|
|
1837
|
-
case 'tellask_carryover_result_record':
|
|
1889
|
+
case 'tellask_carryover_record':
|
|
1838
1890
|
return {
|
|
1839
|
-
type: '
|
|
1891
|
+
type: 'tellask_carryover_msg',
|
|
1840
1892
|
role: 'user',
|
|
1893
|
+
genseq: record.genseq,
|
|
1841
1894
|
content: record.content,
|
|
1842
1895
|
originCourse: record.originCourse,
|
|
1896
|
+
carryoverCourse: record.carryoverCourse,
|
|
1843
1897
|
responderId: record.responderId,
|
|
1844
1898
|
callName: record.callName,
|
|
1845
1899
|
tellaskContent: record.tellaskContent,
|
|
1846
1900
|
status: record.status,
|
|
1901
|
+
response: record.response,
|
|
1902
|
+
agentId: record.agentId,
|
|
1847
1903
|
callId: record.callId,
|
|
1904
|
+
originMemberId: record.originMemberId,
|
|
1905
|
+
...(record.callName === 'tellask'
|
|
1906
|
+
? {
|
|
1907
|
+
mentionList: record.mentionList,
|
|
1908
|
+
sessionSlug: record.sessionSlug,
|
|
1909
|
+
}
|
|
1910
|
+
: record.callName === 'tellaskSessionless'
|
|
1911
|
+
? {
|
|
1912
|
+
mentionList: record.mentionList,
|
|
1913
|
+
}
|
|
1914
|
+
: {}),
|
|
1915
|
+
...(record.calleeDialogId ? { calleeDialogId: record.calleeDialogId } : {}),
|
|
1916
|
+
...(record.calleeCourse !== undefined ? { calleeCourse: record.calleeCourse } : {}),
|
|
1917
|
+
...(record.calleeGenseq !== undefined ? { calleeGenseq: record.calleeGenseq } : {}),
|
|
1848
1918
|
};
|
|
1849
1919
|
case 'web_search_call_record':
|
|
1920
|
+
case 'native_tool_call_record':
|
|
1850
1921
|
case 'quest_for_sup_record':
|
|
1851
1922
|
case 'tellask_call_anchor_record':
|
|
1852
1923
|
case 'tellask_reply_resolution_record':
|
|
@@ -1971,6 +2042,8 @@ function formatScriptMarkdown(args) {
|
|
|
1971
2042
|
case 'web_search_call_record': {
|
|
1972
2043
|
blockMeta['genseq'] = record.genseq;
|
|
1973
2044
|
blockMeta['phase'] = record.phase;
|
|
2045
|
+
if (record.source !== undefined)
|
|
2046
|
+
blockMeta['source'] = record.source;
|
|
1974
2047
|
if (record.itemId !== undefined)
|
|
1975
2048
|
blockMeta['itemId'] = record.itemId;
|
|
1976
2049
|
if (record.status !== undefined)
|
|
@@ -1987,8 +2060,9 @@ function formatScriptMarkdown(args) {
|
|
|
1987
2060
|
blockMeta['grammar'] = record.grammar;
|
|
1988
2061
|
if (record.userLanguageCode !== undefined)
|
|
1989
2062
|
blockMeta['userLanguageCode'] = record.userLanguageCode;
|
|
1990
|
-
|
|
1991
|
-
|
|
2063
|
+
// Preserve this technical continuation marker verbatim in priming dumps for debugging.
|
|
2064
|
+
if (record.q4hAnswerCallId !== undefined)
|
|
2065
|
+
blockMeta['q4hAnswerCallId'] = record.q4hAnswerCallId;
|
|
1992
2066
|
if (record.tellaskReplyDirective !== undefined)
|
|
1993
2067
|
blockMeta['tellaskReplyDirective'] = record.tellaskReplyDirective;
|
|
1994
2068
|
if (record.sourceTag !== undefined)
|
|
@@ -2016,54 +2090,15 @@ function formatScriptMarkdown(args) {
|
|
|
2016
2090
|
blockBody = record.tellaskContent;
|
|
2017
2091
|
break;
|
|
2018
2092
|
}
|
|
2019
|
-
case '
|
|
2093
|
+
case 'tellask_call_record': {
|
|
2020
2094
|
blockMeta['genseq'] = record.genseq;
|
|
2021
2095
|
blockMeta['id'] = record.id;
|
|
2022
2096
|
blockMeta['name'] = record.name;
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
blockBody = record.tellaskContent;
|
|
2026
|
-
break;
|
|
2027
|
-
case 'tellask':
|
|
2028
|
-
blockMeta['targetAgentId'] = record.targetAgentId;
|
|
2029
|
-
blockMeta['sessionSlug'] = record.sessionSlug;
|
|
2030
|
-
blockBody = record.tellaskContent;
|
|
2031
|
-
break;
|
|
2032
|
-
case 'tellaskSessionless':
|
|
2033
|
-
blockMeta['targetAgentId'] = record.targetAgentId;
|
|
2034
|
-
blockBody = record.tellaskContent;
|
|
2035
|
-
break;
|
|
2036
|
-
case 'replyTellask':
|
|
2037
|
-
case 'replyTellaskSessionless':
|
|
2038
|
-
case 'replyTellaskBack':
|
|
2039
|
-
blockBody = record.replyContent;
|
|
2040
|
-
break;
|
|
2041
|
-
case 'askHuman':
|
|
2042
|
-
blockBody = record.tellaskContent;
|
|
2043
|
-
break;
|
|
2044
|
-
case 'freshBootsReasoning':
|
|
2045
|
-
if (record.effort !== undefined)
|
|
2046
|
-
blockMeta['effort'] = record.effort;
|
|
2047
|
-
blockBody = record.tellaskContent;
|
|
2048
|
-
break;
|
|
2049
|
-
}
|
|
2050
|
-
if (record.sourceTag !== undefined)
|
|
2051
|
-
blockMeta['sourceTag'] = record.sourceTag;
|
|
2052
|
-
break;
|
|
2053
|
-
}
|
|
2054
|
-
case 'tellask_call_result_record': {
|
|
2055
|
-
blockMeta['responderId'] = record.responderId;
|
|
2056
|
-
blockMeta['callName'] = record.callName;
|
|
2057
|
-
if (record.mentionList !== undefined)
|
|
2058
|
-
blockMeta['mentionList'] = record.mentionList;
|
|
2059
|
-
blockMeta['tellaskContent'] = record.tellaskContent;
|
|
2060
|
-
blockMeta['status'] = record.status;
|
|
2061
|
-
blockMeta['callId'] = record.callId;
|
|
2062
|
-
if (record.calling_genseq !== undefined)
|
|
2063
|
-
blockMeta['calling_genseq'] = record.calling_genseq;
|
|
2097
|
+
blockMeta['deliveryMode'] = record.deliveryMode;
|
|
2098
|
+
blockMeta['rawArgumentsText'] = record.rawArgumentsText;
|
|
2064
2099
|
if (record.sourceTag !== undefined)
|
|
2065
2100
|
blockMeta['sourceTag'] = record.sourceTag;
|
|
2066
|
-
blockBody =
|
|
2101
|
+
blockBody = '';
|
|
2067
2102
|
break;
|
|
2068
2103
|
}
|
|
2069
2104
|
case 'tellask_reply_resolution_record': {
|
|
@@ -2075,15 +2110,6 @@ function formatScriptMarkdown(args) {
|
|
|
2075
2110
|
blockMeta['sourceTag'] = record.sourceTag;
|
|
2076
2111
|
break;
|
|
2077
2112
|
}
|
|
2078
|
-
case 'tellask_call_carryover_record': {
|
|
2079
|
-
blockMeta['responderId'] = record.responderId;
|
|
2080
|
-
blockMeta['status'] = record.status;
|
|
2081
|
-
blockMeta['callId'] = record.callId;
|
|
2082
|
-
blockMeta['carryoverCourse'] = record.carryoverCourse;
|
|
2083
|
-
if (record.sourceTag !== undefined)
|
|
2084
|
-
blockMeta['sourceTag'] = record.sourceTag;
|
|
2085
|
-
break;
|
|
2086
|
-
}
|
|
2087
2113
|
case 'tellask_call_anchor_record': {
|
|
2088
2114
|
blockMeta['anchorRole'] = record.anchorRole;
|
|
2089
2115
|
blockMeta['callId'] = record.callId;
|
|
@@ -2100,41 +2126,26 @@ function formatScriptMarkdown(args) {
|
|
|
2100
2126
|
blockMeta['sourceTag'] = record.sourceTag;
|
|
2101
2127
|
break;
|
|
2102
2128
|
}
|
|
2103
|
-
case '
|
|
2104
|
-
blockMeta['
|
|
2129
|
+
case 'tellask_result_record': {
|
|
2130
|
+
blockMeta['genseq'] = record.genseq;
|
|
2131
|
+
blockMeta['callId'] = record.callId;
|
|
2105
2132
|
blockMeta['callName'] = record.callName;
|
|
2106
|
-
switch (record.callName) {
|
|
2107
|
-
case 'tellask':
|
|
2108
|
-
blockMeta['sessionSlug'] = record.sessionSlug;
|
|
2109
|
-
blockMeta['mentionList'] = record.mentionList;
|
|
2110
|
-
break;
|
|
2111
|
-
case 'tellaskSessionless':
|
|
2112
|
-
blockMeta['mentionList'] = record.mentionList;
|
|
2113
|
-
break;
|
|
2114
|
-
case 'tellaskBack':
|
|
2115
|
-
case 'freshBootsReasoning':
|
|
2116
|
-
break;
|
|
2117
|
-
}
|
|
2118
|
-
blockMeta['tellaskContent'] = record.tellaskContent;
|
|
2119
2133
|
blockMeta['status'] = record.status;
|
|
2120
|
-
blockMeta['
|
|
2121
|
-
blockMeta['
|
|
2122
|
-
blockMeta['originMemberId'] = record.originMemberId;
|
|
2134
|
+
blockMeta['call'] = record.call;
|
|
2135
|
+
blockMeta['responder'] = record.responder;
|
|
2123
2136
|
if (record.calling_genseq !== undefined)
|
|
2124
2137
|
blockMeta['calling_genseq'] = record.calling_genseq;
|
|
2125
|
-
if (record.
|
|
2126
|
-
blockMeta['
|
|
2127
|
-
if (record.calleeCourse !== undefined)
|
|
2128
|
-
blockMeta['calleeCourse'] = record.calleeCourse;
|
|
2129
|
-
if (record.calleeGenseq !== undefined)
|
|
2130
|
-
blockMeta['calleeGenseq'] = record.calleeGenseq;
|
|
2138
|
+
if (record.route !== undefined)
|
|
2139
|
+
blockMeta['route'] = record.route;
|
|
2131
2140
|
if (record.sourceTag !== undefined)
|
|
2132
2141
|
blockMeta['sourceTag'] = record.sourceTag;
|
|
2133
|
-
blockBody = record.
|
|
2142
|
+
blockBody = record.content;
|
|
2134
2143
|
break;
|
|
2135
2144
|
}
|
|
2136
|
-
case '
|
|
2145
|
+
case 'tellask_carryover_record': {
|
|
2146
|
+
blockMeta['genseq'] = record.genseq;
|
|
2137
2147
|
blockMeta['originCourse'] = record.originCourse;
|
|
2148
|
+
blockMeta['carryoverCourse'] = record.carryoverCourse;
|
|
2138
2149
|
blockMeta['responderId'] = record.responderId;
|
|
2139
2150
|
blockMeta['callName'] = record.callName;
|
|
2140
2151
|
switch (record.callName) {
|
|
@@ -2145,6 +2156,7 @@ function formatScriptMarkdown(args) {
|
|
|
2145
2156
|
case 'tellaskSessionless':
|
|
2146
2157
|
blockMeta['mentionList'] = record.mentionList;
|
|
2147
2158
|
break;
|
|
2159
|
+
case 'askHuman':
|
|
2148
2160
|
case 'freshBootsReasoning':
|
|
2149
2161
|
break;
|
|
2150
2162
|
}
|
|
@@ -2181,6 +2193,28 @@ function formatScriptMarkdown(args) {
|
|
|
2181
2193
|
blockMeta['sourceTag'] = record.sourceTag;
|
|
2182
2194
|
break;
|
|
2183
2195
|
}
|
|
2196
|
+
case 'native_tool_call_record': {
|
|
2197
|
+
blockMeta['genseq'] = record.genseq;
|
|
2198
|
+
blockMeta['itemType'] = record.itemType;
|
|
2199
|
+
blockMeta['phase'] = record.phase;
|
|
2200
|
+
if (record.source !== undefined)
|
|
2201
|
+
blockMeta['source'] = record.source;
|
|
2202
|
+
if (record.itemId !== undefined)
|
|
2203
|
+
blockMeta['itemId'] = record.itemId;
|
|
2204
|
+
if (record.itemType === 'custom_tool_call')
|
|
2205
|
+
blockMeta['callId'] = record.callId;
|
|
2206
|
+
if (record.status !== undefined)
|
|
2207
|
+
blockMeta['status'] = record.status;
|
|
2208
|
+
if (record.title !== undefined)
|
|
2209
|
+
blockMeta['title'] = record.title;
|
|
2210
|
+
if (record.summary !== undefined)
|
|
2211
|
+
blockMeta['summary'] = record.summary;
|
|
2212
|
+
if (record.detail !== undefined)
|
|
2213
|
+
blockMeta['detail'] = record.detail;
|
|
2214
|
+
if (record.sourceTag !== undefined)
|
|
2215
|
+
blockMeta['sourceTag'] = record.sourceTag;
|
|
2216
|
+
break;
|
|
2217
|
+
}
|
|
2184
2218
|
default: {
|
|
2185
2219
|
const _exhaustive = record;
|
|
2186
2220
|
throw new Error(`Unhandled priming record in formatScriptMarkdown: ${String(_exhaustive)}`);
|
|
@@ -2205,16 +2239,15 @@ function stripTimestampFromRecord(event) {
|
|
|
2205
2239
|
case 'ui_only_markdown_record':
|
|
2206
2240
|
case 'runtime_guide_record':
|
|
2207
2241
|
case 'func_call_record':
|
|
2208
|
-
case '
|
|
2242
|
+
case 'tellask_call_record':
|
|
2209
2243
|
case 'web_search_call_record':
|
|
2244
|
+
case 'native_tool_call_record':
|
|
2210
2245
|
case 'human_text_record':
|
|
2211
2246
|
case 'func_result_record':
|
|
2247
|
+
case 'tellask_result_record':
|
|
2212
2248
|
case 'quest_for_sup_record':
|
|
2213
|
-
case 'tellask_call_result_record':
|
|
2214
|
-
case 'tellask_call_carryover_record':
|
|
2215
2249
|
case 'tellask_call_anchor_record':
|
|
2216
|
-
case '
|
|
2217
|
-
case 'tellask_carryover_result_record':
|
|
2250
|
+
case 'tellask_carryover_record':
|
|
2218
2251
|
case 'gen_start_record':
|
|
2219
2252
|
case 'gen_finish_record': {
|
|
2220
2253
|
const { ts: _unusedTs, ...withoutTs } = event;
|