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.
Files changed (200) hide show
  1. package/dist/bootstrap/global-dialog-event-broadcaster.d.ts +18 -0
  2. package/dist/bootstrap/global-dialog-event-broadcaster.js +81 -0
  3. package/dist/dialog-fork.js +13 -12
  4. package/dist/dialog.d.ts +61 -50
  5. package/dist/dialog.js +284 -78
  6. package/dist/docs/dialog-system.md +12 -0
  7. package/dist/docs/dialog-system.zh.md +12 -0
  8. package/dist/docs/dominds-terminology.md +17 -0
  9. package/dist/docs/issues/global-dialog-event-broadcaster-missing.md +128 -0
  10. package/dist/docs/llm-provider-isolation.md +35 -0
  11. package/dist/docs/llm-provider-isolation.zh.md +35 -0
  12. package/dist/llm/client.d.ts +2 -1
  13. package/dist/llm/defaults.yaml +118 -4
  14. package/dist/llm/gen/anthropic.js +2 -4
  15. package/dist/llm/gen/codex.d.ts +11 -0
  16. package/dist/llm/gen/codex.js +41 -31
  17. package/dist/llm/gen/failure-classifier.js +17 -0
  18. package/dist/llm/gen/mock.js +45 -21
  19. package/dist/llm/gen/openai-compatible.d.ts +2 -0
  20. package/dist/llm/gen/openai-compatible.js +43 -38
  21. package/dist/llm/gen/openai.d.ts +3 -1
  22. package/dist/llm/gen/openai.js +888 -71
  23. package/dist/llm/gen/tool-call-context.d.ts +7 -2
  24. package/dist/llm/gen/tool-call-context.js +55 -13
  25. package/dist/llm/gen.d.ts +60 -3
  26. package/dist/llm/kernel-driver/context.js +1 -1
  27. package/dist/llm/kernel-driver/drive.js +374 -348
  28. package/dist/llm/kernel-driver/flow.js +3 -3
  29. package/dist/llm/kernel-driver/guardrails.d.ts +1 -1
  30. package/dist/llm/kernel-driver/guardrails.js +4 -4
  31. package/dist/llm/kernel-driver/runtime.js +11 -29
  32. package/dist/llm/kernel-driver/subdialog.js +56 -5
  33. package/dist/llm/kernel-driver/tellask-special.d.ts +38 -12
  34. package/dist/llm/kernel-driver/tellask-special.js +489 -180
  35. package/dist/llm/kernel-driver/types.d.ts +1 -1
  36. package/dist/persistence.d.ts +30 -62
  37. package/dist/persistence.js +978 -986
  38. package/dist/priming.js +398 -365
  39. package/dist/recovery/reply-special.js +3 -3
  40. package/dist/runtime/inter-dialog-format.d.ts +1 -1
  41. package/dist/runtime/inter-dialog-format.js +1 -1
  42. package/dist/runtime/reply-prompt-copy.js +4 -4
  43. package/dist/server/setup-routes.js +26 -5
  44. package/dist/server/snippets-routes.d.ts +1 -0
  45. package/dist/server/snippets-routes.js +20 -9
  46. package/dist/server/websocket-handler.js +58 -25
  47. package/dist/shared/utils/fbr.js +12 -8
  48. package/dist/shared/utils/inter-dialog-format.js +6 -4
  49. package/dist/team.d.ts +24 -13
  50. package/dist/team.js +123 -32
  51. package/dist/tool.d.ts +26 -0
  52. package/dist/tool.js +97 -0
  53. package/dist/tools/team_mgmt.js +18 -0
  54. package/package.json +2 -2
  55. package/webapp/dist/assets/{_basePickBy-CBOtd63g.js → _basePickBy-DsirmCgI.js} +3 -3
  56. package/webapp/dist/assets/_basePickBy-DsirmCgI.js.map +1 -0
  57. package/webapp/dist/assets/{_baseUniq-mfoKz4Wm.js → _baseUniq-tR6G8loB.js} +2 -2
  58. package/webapp/dist/assets/_baseUniq-tR6G8loB.js.map +1 -0
  59. package/webapp/dist/assets/{arc-Dq0WZLyu.js → arc-CzxpASkZ.js} +2 -2
  60. package/webapp/dist/assets/arc-CzxpASkZ.js.map +1 -0
  61. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-CNmygmp3.js → architectureDiagram-2XIMDMQ5-BSH7H5oI.js} +26 -8
  62. package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-BSH7H5oI.js.map +1 -0
  63. package/webapp/dist/assets/{blockDiagram-VD42YOAC-DvE0lybt.js → blockDiagram-WCTKOSBZ-DpLIr7yO.js} +187 -170
  64. package/webapp/dist/assets/blockDiagram-WCTKOSBZ-DpLIr7yO.js.map +1 -0
  65. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-CR7zJ2_u.js → c4Diagram-IC4MRINW-WuYKgWfY.js} +4 -4
  66. package/webapp/dist/assets/c4Diagram-IC4MRINW-WuYKgWfY.js.map +1 -0
  67. package/webapp/dist/assets/{channel-DrTrnYx4.js → channel-B-v9dqLN.js} +2 -2
  68. package/webapp/dist/assets/channel-B-v9dqLN.js.map +1 -0
  69. package/webapp/dist/assets/{chunk-4BX2VUAB-CVuJEIeN.js → chunk-4BX2VUAB-MtFUfKZy.js} +2 -2
  70. package/webapp/dist/assets/chunk-4BX2VUAB-MtFUfKZy.js.map +1 -0
  71. package/webapp/dist/assets/{chunk-55IACEB6-BxUoXApB.js → chunk-55IACEB6-rY9AJdzj.js} +2 -2
  72. package/webapp/dist/assets/chunk-55IACEB6-rY9AJdzj.js.map +1 -0
  73. package/webapp/dist/assets/{chunk-FMBD7UC4-TX-LVAaV.js → chunk-FMBD7UC4-B-RtOs7e.js} +2 -2
  74. package/webapp/dist/assets/chunk-FMBD7UC4-B-RtOs7e.js.map +1 -0
  75. package/webapp/dist/assets/{chunk-TZMSLE5B-Cw689yRl.js → chunk-JSJVCQXG-Da1d3uS4.js} +14 -6
  76. package/webapp/dist/assets/chunk-JSJVCQXG-Da1d3uS4.js.map +1 -0
  77. package/webapp/dist/assets/{chunk-QN33PNHL-D1uiKlOO.js → chunk-KX2RTZJC-DH9UrpuG.js} +2 -2
  78. package/webapp/dist/assets/chunk-KX2RTZJC-DH9UrpuG.js.map +1 -0
  79. package/webapp/dist/assets/{chunk-DI55MBZ5-SAhxUTqQ.js → chunk-NQ4KR5QH-CK365lrr.js} +9 -7
  80. package/webapp/dist/assets/chunk-NQ4KR5QH-CK365lrr.js.map +1 -0
  81. package/webapp/dist/assets/{chunk-QZHKN3VN-BxuV0Oba.js → chunk-QZHKN3VN-BCaWPGDm.js} +2 -2
  82. package/webapp/dist/assets/chunk-QZHKN3VN-BCaWPGDm.js.map +1 -0
  83. package/webapp/dist/assets/{chunk-B4BG7PRW-DpMa3-9L.js → chunk-WL4C6EOR-DDCnEwft.js} +171 -121
  84. package/webapp/dist/assets/chunk-WL4C6EOR-DDCnEwft.js.map +1 -0
  85. package/webapp/dist/assets/{classDiagram-2ON5EDUG-BTTGianr.js → classDiagram-VBA2DB6C-CvMBU4WA.js} +7 -6
  86. package/webapp/dist/assets/classDiagram-VBA2DB6C-CvMBU4WA.js.map +1 -0
  87. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-BTTGianr.js → classDiagram-v2-RAHNMMFH-CvMBU4WA.js} +7 -6
  88. package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-CvMBU4WA.js.map +1 -0
  89. package/webapp/dist/assets/{clone-Dk8cAI3I.js → clone-r98jR0MC.js} +2 -2
  90. package/webapp/dist/assets/clone-r98jR0MC.js.map +1 -0
  91. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-BjJnzB2N.js → cose-bilkent-S5V4N54A-t6J60Ogk.js} +2 -2
  92. package/webapp/dist/assets/cose-bilkent-S5V4N54A-t6J60Ogk.js.map +1 -0
  93. package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
  94. package/webapp/dist/assets/{dagre-6UL2VRFP-VF-xGhAf.js → dagre-KLK3FWXG-BlqmY2DV.js} +7 -7
  95. package/webapp/dist/assets/dagre-KLK3FWXG-BlqmY2DV.js.map +1 -0
  96. package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
  97. package/webapp/dist/assets/{diagram-PSM6KHXK-Ba5U0oRY.js → diagram-E7M64L7V-FwCHeIUD.js} +10 -10
  98. package/webapp/dist/assets/diagram-E7M64L7V-FwCHeIUD.js.map +1 -0
  99. package/webapp/dist/assets/{diagram-QEK2KX5R-DoYCnEw_.js → diagram-IFDJBPK2-NhtmkuZG.js} +9 -8
  100. package/webapp/dist/assets/diagram-IFDJBPK2-NhtmkuZG.js.map +1 -0
  101. package/webapp/dist/assets/{diagram-S2PKOQOG-CkK4SRyE.js → diagram-P4PSJMXO-B9FcmokX.js} +8 -8
  102. package/webapp/dist/assets/diagram-P4PSJMXO-B9FcmokX.js.map +1 -0
  103. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-DkI5eYww.js → erDiagram-INFDFZHY-DHKmWvtB.js} +96 -75
  104. package/webapp/dist/assets/erDiagram-INFDFZHY-DHKmWvtB.js.map +1 -0
  105. package/webapp/dist/assets/{flowDiagram-NV44I4VS-wOdPUQ7Y.js → flowDiagram-PKNHOUZH-C7Zi8I7T.js} +98 -81
  106. package/webapp/dist/assets/flowDiagram-PKNHOUZH-C7Zi8I7T.js.map +1 -0
  107. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-BtRWgkUH.js → ganttDiagram-A5KZAMGK-Cv2T8tz_.js} +28 -3
  108. package/webapp/dist/assets/ganttDiagram-A5KZAMGK-Cv2T8tz_.js.map +1 -0
  109. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-Bsz7u1vi.js → gitGraphDiagram-K3NZZRJ6-DztaipJU.js} +38 -46
  110. package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-DztaipJU.js.map +1 -0
  111. package/webapp/dist/assets/graph-C5yf62Vs.js +782 -0
  112. package/webapp/dist/assets/graph-C5yf62Vs.js.map +1 -0
  113. package/webapp/dist/assets/{index-xvYYeHuy.css → index-YaxF76or.css} +1 -1
  114. package/webapp/dist/assets/{index-rYmIohM_.js → index-hve5MWPs.js} +1603 -1415
  115. package/webapp/dist/assets/index-hve5MWPs.js.map +1 -0
  116. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-BMaxCvH5.js → infoDiagram-LFFYTUFH-VgsbBPZP.js} +7 -7
  117. package/webapp/dist/assets/infoDiagram-LFFYTUFH-VgsbBPZP.js.map +1 -0
  118. package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
  119. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-C7j3YWdw.js +966 -0
  120. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-C7j3YWdw.js.map +1 -0
  121. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-ejyerzmG.js → journeyDiagram-4ABVD52K-OO8sev-Y.js} +5 -5
  122. package/webapp/dist/assets/journeyDiagram-4ABVD52K-OO8sev-Y.js.map +1 -0
  123. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-CYj35TEs.js → kanban-definition-K7BYSVSG-DiYCC1Ig.js} +5 -3
  124. package/webapp/dist/assets/kanban-definition-K7BYSVSG-DiYCC1Ig.js.map +1 -0
  125. package/webapp/dist/assets/{layout-7Ql4zmuL.js → layout-DdZSgGdu.js} +5 -5
  126. package/webapp/dist/assets/layout-DdZSgGdu.js.map +1 -0
  127. package/webapp/dist/assets/{linear-CVmgVPuZ.js → linear-7-aHtaFi.js} +2 -2
  128. package/webapp/dist/assets/linear-7-aHtaFi.js.map +1 -0
  129. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-DOpxjGVo.js → mindmap-definition-YRQLILUH-IG3I-RdD.js} +7 -5
  130. package/webapp/dist/assets/mindmap-definition-YRQLILUH-IG3I-RdD.js.map +1 -0
  131. package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
  132. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-CLQjpmAG.js → pieDiagram-SKSYHLDU-z68KJT5r.js} +8 -8
  133. package/webapp/dist/assets/pieDiagram-SKSYHLDU-z68KJT5r.js.map +1 -0
  134. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-ClD_bz7z.js → quadrantDiagram-337W2JSQ-DaENWdO6.js} +3 -3
  135. package/webapp/dist/assets/quadrantDiagram-337W2JSQ-DaENWdO6.js.map +1 -0
  136. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-DOpb-TWH.js → requirementDiagram-Z7DCOOCP-ROTFv4sa.js} +16 -6
  137. package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-ROTFv4sa.js.map +1 -0
  138. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-D8Hsj3yx.js → sankeyDiagram-WA2Y5GQK-CK7qtpzw.js} +2 -2
  139. package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-CK7qtpzw.js.map +1 -0
  140. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-CFMNjBER.js → sequenceDiagram-2WXFIKYE-R5lDySeI.js} +601 -201
  141. package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-R5lDySeI.js.map +1 -0
  142. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-BQeDlw0P.js → stateDiagram-RAJIS63D-sr7msF5U.js} +9 -9
  143. package/webapp/dist/assets/stateDiagram-RAJIS63D-sr7msF5U.js.map +1 -0
  144. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-DscX61Rs.js → stateDiagram-v2-FVOUBMTO-X663liwS.js} +5 -5
  145. package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-X663liwS.js.map +1 -0
  146. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-BcXPSTiw.js → timeline-definition-YZTLITO2-Bw0TdG26.js} +3 -3
  147. package/webapp/dist/assets/timeline-definition-YZTLITO2-Bw0TdG26.js.map +1 -0
  148. package/webapp/dist/assets/{treemap-GDKQZRPO-BBr4UV0Z.js → treemap-KZPCXAKY-D_sjKwI7.js} +37 -24
  149. package/webapp/dist/assets/treemap-KZPCXAKY-D_sjKwI7.js.map +1 -0
  150. package/webapp/dist/assets/vennDiagram-LZ73GAT5-DhlHIHid.js +2487 -0
  151. package/webapp/dist/assets/vennDiagram-LZ73GAT5-DhlHIHid.js.map +1 -0
  152. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-CS5RAtQE.js → xychartDiagram-JWTSCODW-C65ESjTc.js} +4 -4
  153. package/webapp/dist/assets/xychartDiagram-JWTSCODW-C65ESjTc.js.map +1 -0
  154. package/webapp/dist/index.html +2 -2
  155. package/webapp/dist/assets/_basePickBy-CBOtd63g.js.map +0 -1
  156. package/webapp/dist/assets/_baseUniq-mfoKz4Wm.js.map +0 -1
  157. package/webapp/dist/assets/arc-Dq0WZLyu.js.map +0 -1
  158. package/webapp/dist/assets/architectureDiagram-VXUJARFQ-CNmygmp3.js.map +0 -1
  159. package/webapp/dist/assets/blockDiagram-VD42YOAC-DvE0lybt.js.map +0 -1
  160. package/webapp/dist/assets/c4Diagram-YG6GDRKO-CR7zJ2_u.js.map +0 -1
  161. package/webapp/dist/assets/channel-DrTrnYx4.js.map +0 -1
  162. package/webapp/dist/assets/chunk-4BX2VUAB-CVuJEIeN.js.map +0 -1
  163. package/webapp/dist/assets/chunk-55IACEB6-BxUoXApB.js.map +0 -1
  164. package/webapp/dist/assets/chunk-B4BG7PRW-DpMa3-9L.js.map +0 -1
  165. package/webapp/dist/assets/chunk-DI55MBZ5-SAhxUTqQ.js.map +0 -1
  166. package/webapp/dist/assets/chunk-FMBD7UC4-TX-LVAaV.js.map +0 -1
  167. package/webapp/dist/assets/chunk-QN33PNHL-D1uiKlOO.js.map +0 -1
  168. package/webapp/dist/assets/chunk-QZHKN3VN-BxuV0Oba.js.map +0 -1
  169. package/webapp/dist/assets/chunk-TZMSLE5B-Cw689yRl.js.map +0 -1
  170. package/webapp/dist/assets/classDiagram-2ON5EDUG-BTTGianr.js.map +0 -1
  171. package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-BTTGianr.js.map +0 -1
  172. package/webapp/dist/assets/clone-Dk8cAI3I.js.map +0 -1
  173. package/webapp/dist/assets/cose-bilkent-S5V4N54A-BjJnzB2N.js.map +0 -1
  174. package/webapp/dist/assets/dagre-6UL2VRFP-VF-xGhAf.js.map +0 -1
  175. package/webapp/dist/assets/diagram-PSM6KHXK-Ba5U0oRY.js.map +0 -1
  176. package/webapp/dist/assets/diagram-QEK2KX5R-DoYCnEw_.js.map +0 -1
  177. package/webapp/dist/assets/diagram-S2PKOQOG-CkK4SRyE.js.map +0 -1
  178. package/webapp/dist/assets/erDiagram-Q2GNP2WA-DkI5eYww.js.map +0 -1
  179. package/webapp/dist/assets/flowDiagram-NV44I4VS-wOdPUQ7Y.js.map +0 -1
  180. package/webapp/dist/assets/ganttDiagram-JELNMOA3-BtRWgkUH.js.map +0 -1
  181. package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-Bsz7u1vi.js.map +0 -1
  182. package/webapp/dist/assets/graph-DAMkuTbn.js +0 -425
  183. package/webapp/dist/assets/graph-DAMkuTbn.js.map +0 -1
  184. package/webapp/dist/assets/index-rYmIohM_.js.map +0 -1
  185. package/webapp/dist/assets/infoDiagram-HS3SLOUP-BMaxCvH5.js.map +0 -1
  186. package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-ejyerzmG.js.map +0 -1
  187. package/webapp/dist/assets/kanban-definition-3W4ZIXB7-CYj35TEs.js.map +0 -1
  188. package/webapp/dist/assets/layout-7Ql4zmuL.js.map +0 -1
  189. package/webapp/dist/assets/linear-CVmgVPuZ.js.map +0 -1
  190. package/webapp/dist/assets/mindmap-definition-VGOIOE7T-DOpxjGVo.js.map +0 -1
  191. package/webapp/dist/assets/pieDiagram-ADFJNKIX-CLQjpmAG.js.map +0 -1
  192. package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-ClD_bz7z.js.map +0 -1
  193. package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-DOpb-TWH.js.map +0 -1
  194. package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-D8Hsj3yx.js.map +0 -1
  195. package/webapp/dist/assets/sequenceDiagram-WL72ISMW-CFMNjBER.js.map +0 -1
  196. package/webapp/dist/assets/stateDiagram-FKZM4ZOC-BQeDlw0P.js.map +0 -1
  197. package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-DscX61Rs.js.map +0 -1
  198. package/webapp/dist/assets/timeline-definition-IT6M3QCI-BcXPSTiw.js.map +0 -1
  199. package/webapp/dist/assets/treemap-GDKQZRPO-BBr4UV0Z.js.map +0 -1
  200. package/webapp/dist/assets/xychartDiagram-PRI3JC2R-CS5RAtQE.js.map +0 -1
@@ -36,7 +36,7 @@ export interface KernelDriverHumanPrompt {
36
36
  msgId: string;
37
37
  grammar: 'markdown';
38
38
  userLanguageCode?: LanguageCode;
39
- q4hAnswerCallIds?: string[];
39
+ q4hAnswerCallId?: string;
40
40
  tellaskReplyDirective?: TellaskReplyDirective;
41
41
  origin: 'user' | 'diligence_push' | 'runtime';
42
42
  skipTaskdoc?: boolean;
@@ -5,13 +5,13 @@
5
5
  * Provides file-based storage with append-only events and atomic operations.
6
6
  */
7
7
  import type { ContextHealthSnapshot } from '@longrun-ai/kernel/types/context-health';
8
- import type { WebSearchCallAction } from '@longrun-ai/kernel/types/dialog';
8
+ import type { NativeToolCallPayload, WebSearchCallAction, WebSearchCallSource } from '@longrun-ai/kernel/types/dialog';
9
9
  import type { LanguageCode } from '@longrun-ai/kernel/types/language';
10
- import type { CalleeCourseNumber, CalleeGenerationSeqNumber, CallingCourseNumber, DialogLatestFile, DialogMetadataFile, HumanQuestion, PendingSubdialogStateRecord, PersistedDialogRecord, ProviderData, ReasoningPayload, ReconciledRecordWriteTarget, RootDialogMetadataFile, RootGenerationAnchor, SubdialogMetadataFile, SubdialogRegistryStateRecord, SubdialogResponseStateRecord, TellaskReplyDirective, ToolArguments } from '@longrun-ai/kernel/types/storage';
10
+ import type { DialogLatestFile, DialogMetadataFile, HumanQuestion, PendingSubdialogStateRecord, PersistedDialogRecord, ProviderData, ReasoningPayload, ReconciledRecordWriteTarget, RootDialogMetadataFile, RootGenerationAnchor, SubdialogMetadataFile, SubdialogRegistryStateRecord, SubdialogResponseStateRecord, TellaskCallRecordName, TellaskReplyDirective } from '@longrun-ai/kernel/types/storage';
11
11
  import { WebSocket } from 'ws';
12
12
  import type { PendingSubdialog } from './dialog';
13
13
  import { Dialog, DialogID, DialogStore, RootDialog, SubDialog } from './dialog';
14
- import { ChatMessage, FuncResultMsg } from './llm/client';
14
+ import { ChatMessage, FuncResultMsg, TellaskCarryoverMsg, TellaskResultMsg } from './llm/client';
15
15
  import { Reminder } from './tool';
16
16
  export interface DialogPersistenceState {
17
17
  metadata: DialogMetadataFile;
@@ -48,56 +48,8 @@ export declare class DiskFileDialogStore extends DialogStore {
48
48
  * Receive and handle function call results (includes logging)
49
49
  */
50
50
  receiveFuncResult(dialog: Dialog, funcResult: FuncResultMsg): Promise<void>;
51
- /**
52
- * Receive and handle tellask call results with callId for inline result display
53
- *
54
- * Call Types:
55
- * - tellask-special function call (inline bubble)
56
- * - Result displays INLINE in the same bubble
57
- * - Uses callId for correlation between call_start and response
58
- * - Uses receiveTellaskCallResult() + callId parameter
59
- *
60
- * - Tellask sideline response (subdialog response bubble)
61
- * - Result displays in SEPARATE bubble (subdialog response)
62
- * - Uses calleeDialogId for correlation
63
- * - Uses receiveTellaskResponse() instead
64
- *
65
- * @param dialog - The dialog receiving the response
66
- * @param responderId - ID of the tool/agent that responded (e.g., "add_reminder")
67
- * @param mentionList - Mention list of the original call
68
- * @param tellaskContent - Tellask content of the original call
69
- * @param result - The result content to display
70
- * @param status - Response status ('completed' | 'failed')
71
- * @param callId - Correlation ID from call_start_evt (REQUIRED for inline display)
72
- */
73
- receiveTellaskCallResult(dialog: Dialog, responderId: string, callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'askHuman' | 'freshBootsReasoning', mentionList: string[] | undefined, tellaskContent: string, result: string, status: 'completed' | 'failed', callId: string): Promise<void>;
74
- /**
75
- * Receive and handle tellask responses (separate bubble for subdialog/supdialog replies)
76
- *
77
- * Call Types:
78
- * - Tellask sideline response
79
- * - Result displays in SEPARATE bubble (subdialog or supdialog response)
80
- * - Uses calleeDialogId for correlation (not callId)
81
- * - Uses this method (receiveTellaskResponse)
82
- *
83
- * @param dialog - The dialog receiving the response
84
- * @param responderId - ID of the responder agent (e.g., "coder")
85
- * @param mentionList - Mention list of the original tellask
86
- * @param tellaskContent - Tellask content of the original tellask
87
- * @param status - Response status ('completed' | 'failed')
88
- * @param calleeDialogId - ID of the callee dialog (subdialog OR supdialog) for navigation links
89
- */
90
- receiveTellaskResponse(dialog: Dialog, responderId: string, callName: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning', mentionList: string[] | undefined, tellaskContent: string, status: 'completed' | 'failed', calleeDialogId: DialogID | undefined, options: {
91
- response: string;
92
- agentId: string;
93
- callId: string;
94
- originMemberId: string;
95
- originCourse?: CallingCourseNumber;
96
- carryoverContent?: string;
97
- sessionSlug?: string;
98
- calleeCourse?: CalleeCourseNumber;
99
- calleeGenseq?: CalleeGenerationSeqNumber;
100
- }): Promise<void>;
51
+ receiveTellaskResult(dialog: Dialog, result: TellaskResultMsg): Promise<void>;
52
+ receiveTellaskCarryover(dialog: Dialog, result: TellaskCarryoverMsg): Promise<void>;
101
53
  /**
102
54
  * Ensure subdialog directory exists (delegate to DialogPersistence)
103
55
  */
@@ -106,6 +58,7 @@ export declare class DiskFileDialogStore extends DialogStore {
106
58
  * Append event to course JSONL file (delegate to DialogPersistence)
107
59
  */
108
60
  private appendEvent;
61
+ private appendEvents;
109
62
  /**
110
63
  * Notify start of LLM generation for frontend bubble management
111
64
  * CRITICAL: This must be called BEFORE any substream events (thinking_start, markdown_start, etc.)
@@ -137,11 +90,13 @@ export declare class DiskFileDialogStore extends DialogStore {
137
90
  }): Promise<void>;
138
91
  funcCallRequested(dialog: Dialog, funcId: string, funcName: string, argumentsStr: string): Promise<void>;
139
92
  webSearchCall(dialog: Dialog, payload: {
93
+ source?: WebSearchCallSource;
140
94
  phase: 'added' | 'done';
141
95
  itemId: string;
142
96
  status?: string;
143
97
  action?: WebSearchCallAction;
144
98
  }): Promise<void>;
99
+ nativeToolCall(dialog: Dialog, payload: NativeToolCallPayload): Promise<void>;
145
100
  /**
146
101
  * Emit stream error for current generation lifecycle (uses active genseq when present)
147
102
  */
@@ -160,7 +115,7 @@ export declare class DiskFileDialogStore extends DialogStore {
160
115
  * Note: The end_of_user_saying_evt is emitted by the driver after user content
161
116
  * is rendered and any tellask calls are parsed/executed.
162
117
  */
163
- persistUserMessage(dialog: Dialog, content: string, msgId: string, grammar: 'markdown', origin: 'user' | 'diligence_push' | 'runtime' | undefined, userLanguageCode?: LanguageCode, q4hAnswerCallIds?: string[], tellaskReplyDirective?: TellaskReplyDirective): Promise<void>;
118
+ persistUserMessage(dialog: Dialog, content: string, msgId: string, grammar: 'markdown', origin: 'user' | 'diligence_push' | 'runtime' | undefined, userLanguageCode?: LanguageCode, q4hAnswerCallId?: string, tellaskReplyDirective?: TellaskReplyDirective): Promise<void>;
164
119
  appendTellaskReplyResolution(dialog: Dialog, payload: {
165
120
  callId: string;
166
121
  replyCallName: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack';
@@ -175,8 +130,19 @@ export declare class DiskFileDialogStore extends DialogStore {
175
130
  /**
176
131
  * Persist a function call to storage
177
132
  */
178
- persistFunctionCall(dialog: Dialog, id: string, name: string, arguments_: ToolArguments, genseq: number): Promise<void>;
179
- persistTellaskSpecialCall(dialog: Dialog, id: string, name: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack' | 'askHuman' | 'freshBootsReasoning', arguments_: ToolArguments, genseq: number): Promise<void>;
133
+ persistFunctionCall(dialog: Dialog, id: string, name: string, rawArgumentsText: string, genseq: number): Promise<void>;
134
+ persistTellaskCall(dialog: Dialog, id: string, name: 'tellaskBack' | 'tellask' | 'tellaskSessionless' | 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack' | 'askHuman' | 'freshBootsReasoning', rawArgumentsText: string, genseq: number, options?: {
135
+ deliveryMode?: 'tellask_call_start' | 'func_call_requested';
136
+ }): Promise<void>;
137
+ persistFunctionCallResultPair(dialog: Dialog, id: string, name: string, rawArgumentsText: string, genseq: number, result: FuncResultMsg): Promise<void>;
138
+ persistTellaskCallResultPair(dialog: Dialog, args: {
139
+ id: string;
140
+ name: TellaskCallRecordName;
141
+ rawArgumentsText: string;
142
+ genseq: number;
143
+ result: TellaskResultMsg | FuncResultMsg;
144
+ deliveryMode: 'tellask_call_start' | 'func_call_requested';
145
+ }): Promise<void>;
180
146
  /**
181
147
  * Update questions for human state (exceptional overwrite pattern)
182
148
  */
@@ -291,7 +257,6 @@ type DialogLatestMutation = {
291
257
  * Utility class for managing dialog persistence
292
258
  */
293
259
  export declare class DialogPersistence {
294
- private static repairInterruptedFunctionCallsOnRestore;
295
260
  private static readonly DIALOGS_DIR;
296
261
  private static readonly RUN_DIR;
297
262
  private static readonly DONE_DIR;
@@ -373,6 +338,7 @@ export declare class DialogPersistence {
373
338
  /**
374
339
  * Append event to course JSONL file (append-only pattern)
375
340
  */
341
+ static appendEvents(dialogId: DialogID, course: number, events: readonly PersistedDialogRecord[], status?: 'running' | 'completed' | 'archived'): Promise<void>;
376
342
  static appendEvent(dialogId: DialogID, course: number, event: PersistedDialogRecord, status?: 'running' | 'completed' | 'archived'): Promise<void>;
377
343
  static persistRuntimeGuide(dialog: Dialog, content: string, genseq: number): Promise<void>;
378
344
  /**
@@ -436,8 +402,7 @@ export declare class DialogPersistence {
436
402
  taskDocPath: string;
437
403
  tellaskContent: string;
438
404
  askedAt: string;
439
- callId?: string;
440
- remainingCallIds?: string[];
405
+ callId: string;
441
406
  callSiteRef: {
442
407
  course: number;
443
408
  messageIndex: number;
@@ -571,8 +536,11 @@ export declare class DialogPersistence {
571
536
  */
572
537
  static restoreDialogTree(rootDialogId: DialogID, status?: 'running' | 'completed' | 'archived'): Promise<DialogPersistenceState | null>;
573
538
  /**
574
- * Restore dialog from disk using JSONL events (optimized: only latest course loaded)
575
- * For historical courses, use loadCourseEvents() on-demand for UI navigation
539
+ * Restore dialog from disk using JSONL events (optimized: only latest course loaded).
540
+ * Historical-course ask/tellask context that still matters to the current round must already be
541
+ * represented via latest-course carryover records; older courses themselves are not reloaded into
542
+ * LLM context during restore. For historical courses, use loadCourseEvents() on-demand for UI
543
+ * navigation.
576
544
  */
577
545
  static restoreDialog(dialogId: DialogID, status?: 'running' | 'completed' | 'archived'): Promise<DialogPersistenceState | null>;
578
546
  /**
@@ -580,7 +548,7 @@ export declare class DialogPersistence {
580
548
  */
581
549
  static loadCourseEvents(dialogId: DialogID, course: number, status?: 'running' | 'completed' | 'archived'): Promise<PersistedDialogRecord[]>;
582
550
  /**
583
- * Reconstruct dialog state from JSONL events (optimized: only latest course needed)
551
+ * Reconstruct dialog state from JSONL events (optimized: only latest course needed).
584
552
  */
585
553
  static rebuildFromEvents(events: PersistedDialogRecord[], metadata: DialogMetadataFile, reminders: Reminder[], currentCourse: number): Promise<DialogPersistenceState>;
586
554
  /**