dominds 1.16.2 → 1.16.4

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 (170) hide show
  1. package/dist/dialog-display-state.d.ts +3 -1
  2. package/dist/dialog-display-state.js +8 -1
  3. package/dist/dialog-fork.js +9 -0
  4. package/dist/dialog-global-registry.d.ts +5 -1
  5. package/dist/dialog-global-registry.js +45 -1
  6. package/dist/dialog.d.ts +3 -0
  7. package/dist/dialog.js +4 -0
  8. package/dist/llm/gen/anthropic.d.ts +3 -3
  9. package/dist/llm/gen/anthropic.js +115 -21
  10. package/dist/llm/gen/codex.js +78 -13
  11. package/dist/llm/gen/failure-classifier.js +10 -0
  12. package/dist/llm/gen/openai-compatible.d.ts +6 -3
  13. package/dist/llm/gen/openai-compatible.js +132 -16
  14. package/dist/llm/gen/openai.d.ts +2 -2
  15. package/dist/llm/gen/openai.js +95 -15
  16. package/dist/llm/gen/tool-result-image-ingest.d.ts +39 -0
  17. package/dist/llm/gen/tool-result-image-ingest.js +158 -0
  18. package/dist/llm/gen.d.ts +17 -1
  19. package/dist/llm/kernel-driver/drive.js +15 -0
  20. package/dist/llm/kernel-driver/flow.js +230 -177
  21. package/dist/llm/kernel-driver/loop.js +5 -0
  22. package/dist/persistence.d.ts +2 -0
  23. package/dist/persistence.js +107 -0
  24. package/dist/priming.js +76 -0
  25. package/package.json +3 -3
  26. package/webapp/dist/assets/{_basePickBy-BJWCmtUm.js → _basePickBy-BKLfvXfr.js} +3 -3
  27. package/webapp/dist/assets/_basePickBy-BKLfvXfr.js.map +1 -0
  28. package/webapp/dist/assets/{_baseUniq-D6k_lGfs.js → _baseUniq-DeO2MBcA.js} +2 -2
  29. package/webapp/dist/assets/_baseUniq-DeO2MBcA.js.map +1 -0
  30. package/webapp/dist/assets/{arc-DYDaESgj.js → arc-Bez5-ouI.js} +2 -2
  31. package/webapp/dist/assets/arc-Bez5-ouI.js.map +1 -0
  32. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-DZMT7dqc.js → architectureDiagram-2XIMDMQ5-BiDh8CGJ.js} +26 -8
  33. package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-BiDh8CGJ.js.map +1 -0
  34. package/webapp/dist/assets/{blockDiagram-VD42YOAC-CABpgVAa.js → blockDiagram-WCTKOSBZ-fSZbZ3PY.js} +187 -170
  35. package/webapp/dist/assets/blockDiagram-WCTKOSBZ-fSZbZ3PY.js.map +1 -0
  36. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-COLZS8Ul.js → c4Diagram-IC4MRINW-C-WxkPD_.js} +4 -4
  37. package/webapp/dist/assets/c4Diagram-IC4MRINW-C-WxkPD_.js.map +1 -0
  38. package/webapp/dist/assets/{channel-CYFm9Cri.js → channel-CbXK2-c_.js} +2 -2
  39. package/webapp/dist/assets/channel-CbXK2-c_.js.map +1 -0
  40. package/webapp/dist/assets/{chunk-4BX2VUAB-CX_-XbaN.js → chunk-4BX2VUAB-D6CgMaUm.js} +2 -2
  41. package/webapp/dist/assets/chunk-4BX2VUAB-D6CgMaUm.js.map +1 -0
  42. package/webapp/dist/assets/{chunk-55IACEB6-ByD-NdBC.js → chunk-55IACEB6-CafQjmEn.js} +2 -2
  43. package/webapp/dist/assets/chunk-55IACEB6-CafQjmEn.js.map +1 -0
  44. package/webapp/dist/assets/{chunk-FMBD7UC4-DYGviJnf.js → chunk-FMBD7UC4-CZRe1oW9.js} +2 -2
  45. package/webapp/dist/assets/chunk-FMBD7UC4-CZRe1oW9.js.map +1 -0
  46. package/webapp/dist/assets/{chunk-TZMSLE5B-_HISzxl3.js → chunk-JSJVCQXG-C3KJDde2.js} +14 -6
  47. package/webapp/dist/assets/chunk-JSJVCQXG-C3KJDde2.js.map +1 -0
  48. package/webapp/dist/assets/{chunk-QN33PNHL-B8DWRL9f.js → chunk-KX2RTZJC-1gHfMJyM.js} +2 -2
  49. package/webapp/dist/assets/chunk-KX2RTZJC-1gHfMJyM.js.map +1 -0
  50. package/webapp/dist/assets/{chunk-DI55MBZ5-DV7sdJmQ.js → chunk-NQ4KR5QH-CEZ0VIio.js} +9 -7
  51. package/webapp/dist/assets/chunk-NQ4KR5QH-CEZ0VIio.js.map +1 -0
  52. package/webapp/dist/assets/{chunk-QZHKN3VN-B1aYIzMR.js → chunk-QZHKN3VN-BE5nbumW.js} +2 -2
  53. package/webapp/dist/assets/chunk-QZHKN3VN-BE5nbumW.js.map +1 -0
  54. package/webapp/dist/assets/{chunk-B4BG7PRW-BANemsDD.js → chunk-WL4C6EOR-CY1FogYe.js} +171 -121
  55. package/webapp/dist/assets/chunk-WL4C6EOR-CY1FogYe.js.map +1 -0
  56. package/webapp/dist/assets/{classDiagram-2ON5EDUG-CpyYj1Rc.js → classDiagram-VBA2DB6C-DIAo1m4U.js} +7 -6
  57. package/webapp/dist/assets/classDiagram-VBA2DB6C-DIAo1m4U.js.map +1 -0
  58. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-CpyYj1Rc.js → classDiagram-v2-RAHNMMFH-DIAo1m4U.js} +7 -6
  59. package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-DIAo1m4U.js.map +1 -0
  60. package/webapp/dist/assets/{clone-B_9AxWIU.js → clone-BzZfwhKW.js} +2 -2
  61. package/webapp/dist/assets/clone-BzZfwhKW.js.map +1 -0
  62. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-17ECLfPR.js → cose-bilkent-S5V4N54A-DIRdD9UY.js} +2 -2
  63. package/webapp/dist/assets/cose-bilkent-S5V4N54A-DIRdD9UY.js.map +1 -0
  64. package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
  65. package/webapp/dist/assets/{dagre-6UL2VRFP-DhRqcF1o.js → dagre-KLK3FWXG-BCEgv7zL.js} +7 -7
  66. package/webapp/dist/assets/dagre-KLK3FWXG-BCEgv7zL.js.map +1 -0
  67. package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
  68. package/webapp/dist/assets/{diagram-PSM6KHXK-lpDT6Wwb.js → diagram-E7M64L7V-CwNdHUlg.js} +10 -10
  69. package/webapp/dist/assets/diagram-E7M64L7V-CwNdHUlg.js.map +1 -0
  70. package/webapp/dist/assets/{diagram-QEK2KX5R-ohxbPpDH.js → diagram-IFDJBPK2-DBtRFFBv.js} +9 -8
  71. package/webapp/dist/assets/diagram-IFDJBPK2-DBtRFFBv.js.map +1 -0
  72. package/webapp/dist/assets/{diagram-S2PKOQOG-DAFFGfch.js → diagram-P4PSJMXO-BJRf8VnU.js} +8 -8
  73. package/webapp/dist/assets/diagram-P4PSJMXO-BJRf8VnU.js.map +1 -0
  74. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BH-7rI43.js → erDiagram-INFDFZHY-BoZdWdP2.js} +96 -75
  75. package/webapp/dist/assets/erDiagram-INFDFZHY-BoZdWdP2.js.map +1 -0
  76. package/webapp/dist/assets/{flowDiagram-NV44I4VS-CdEjFbz4.js → flowDiagram-PKNHOUZH-Dptcw76l.js} +98 -81
  77. package/webapp/dist/assets/flowDiagram-PKNHOUZH-Dptcw76l.js.map +1 -0
  78. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Cju2t-lK.js → ganttDiagram-A5KZAMGK-qM3zsgxI.js} +28 -3
  79. package/webapp/dist/assets/ganttDiagram-A5KZAMGK-qM3zsgxI.js.map +1 -0
  80. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js → gitGraphDiagram-K3NZZRJ6-125S1YW0.js} +38 -46
  81. package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-125S1YW0.js.map +1 -0
  82. package/webapp/dist/assets/graph-PACfG8qk.js +782 -0
  83. package/webapp/dist/assets/graph-PACfG8qk.js.map +1 -0
  84. package/webapp/dist/assets/{index-BLnM-uON.js → index-D8Klc1n-.js} +1114 -1048
  85. package/webapp/dist/assets/{index-BLnM-uON.js.map → index-D8Klc1n-.js.map} +1 -1
  86. package/webapp/dist/assets/{index-xvYYeHuy.css → index-YaxF76or.css} +1 -1
  87. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-Df8p0okQ.js → infoDiagram-LFFYTUFH-B9vrFy_9.js} +7 -7
  88. package/webapp/dist/assets/infoDiagram-LFFYTUFH-B9vrFy_9.js.map +1 -0
  89. package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
  90. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-CzcXR0Tc.js +966 -0
  91. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-CzcXR0Tc.js.map +1 -0
  92. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-BXMl8H-d.js → journeyDiagram-4ABVD52K-BzoWs6ft.js} +5 -5
  93. package/webapp/dist/assets/journeyDiagram-4ABVD52K-BzoWs6ft.js.map +1 -0
  94. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-Cc5RwCEh.js → kanban-definition-K7BYSVSG-TJm1UiSH.js} +5 -3
  95. package/webapp/dist/assets/kanban-definition-K7BYSVSG-TJm1UiSH.js.map +1 -0
  96. package/webapp/dist/assets/{layout-BB2SvQcE.js → layout-D-kg27bk.js} +5 -5
  97. package/webapp/dist/assets/layout-D-kg27bk.js.map +1 -0
  98. package/webapp/dist/assets/{linear-Cj50lA0a.js → linear-l0qAHpRW.js} +2 -2
  99. package/webapp/dist/assets/linear-l0qAHpRW.js.map +1 -0
  100. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BLBklJVX.js → mindmap-definition-YRQLILUH-D4282T7u.js} +7 -5
  101. package/webapp/dist/assets/mindmap-definition-YRQLILUH-D4282T7u.js.map +1 -0
  102. package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
  103. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BQrOgSc-.js → pieDiagram-SKSYHLDU-BKJYIUkU.js} +8 -8
  104. package/webapp/dist/assets/pieDiagram-SKSYHLDU-BKJYIUkU.js.map +1 -0
  105. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-C62TxtsO.js → quadrantDiagram-337W2JSQ-yjekONzR.js} +3 -3
  106. package/webapp/dist/assets/quadrantDiagram-337W2JSQ-yjekONzR.js.map +1 -0
  107. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-Is6Q3osM.js → requirementDiagram-Z7DCOOCP-DMH1wutn.js} +16 -6
  108. package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-DMH1wutn.js.map +1 -0
  109. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-CCAW8Dr2.js → sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js} +2 -2
  110. package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js.map +1 -0
  111. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-DpODpbl6.js → sequenceDiagram-2WXFIKYE-4sriOpV9.js} +601 -201
  112. package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-4sriOpV9.js.map +1 -0
  113. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-B8LHaf5T.js → stateDiagram-RAJIS63D-BUMObt6W.js} +9 -9
  114. package/webapp/dist/assets/stateDiagram-RAJIS63D-BUMObt6W.js.map +1 -0
  115. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-4FzTkpgz.js → stateDiagram-v2-FVOUBMTO-DazzpfnH.js} +5 -5
  116. package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-DazzpfnH.js.map +1 -0
  117. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-Ckxc4qZe.js → timeline-definition-YZTLITO2-CdChFPnp.js} +3 -3
  118. package/webapp/dist/assets/timeline-definition-YZTLITO2-CdChFPnp.js.map +1 -0
  119. package/webapp/dist/assets/{treemap-GDKQZRPO-QQa4vKMv.js → treemap-KZPCXAKY-DW9mBchB.js} +37 -24
  120. package/webapp/dist/assets/treemap-KZPCXAKY-DW9mBchB.js.map +1 -0
  121. package/webapp/dist/assets/vennDiagram-LZ73GAT5-Bu9N_8Cu.js +2487 -0
  122. package/webapp/dist/assets/vennDiagram-LZ73GAT5-Bu9N_8Cu.js.map +1 -0
  123. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-Ba2uJcs6.js → xychartDiagram-JWTSCODW-BI_N4JiZ.js} +4 -4
  124. package/webapp/dist/assets/xychartDiagram-JWTSCODW-BI_N4JiZ.js.map +1 -0
  125. package/webapp/dist/index.html +2 -2
  126. package/webapp/dist/assets/_basePickBy-BJWCmtUm.js.map +0 -1
  127. package/webapp/dist/assets/_baseUniq-D6k_lGfs.js.map +0 -1
  128. package/webapp/dist/assets/arc-DYDaESgj.js.map +0 -1
  129. package/webapp/dist/assets/architectureDiagram-VXUJARFQ-DZMT7dqc.js.map +0 -1
  130. package/webapp/dist/assets/blockDiagram-VD42YOAC-CABpgVAa.js.map +0 -1
  131. package/webapp/dist/assets/c4Diagram-YG6GDRKO-COLZS8Ul.js.map +0 -1
  132. package/webapp/dist/assets/channel-CYFm9Cri.js.map +0 -1
  133. package/webapp/dist/assets/chunk-4BX2VUAB-CX_-XbaN.js.map +0 -1
  134. package/webapp/dist/assets/chunk-55IACEB6-ByD-NdBC.js.map +0 -1
  135. package/webapp/dist/assets/chunk-B4BG7PRW-BANemsDD.js.map +0 -1
  136. package/webapp/dist/assets/chunk-DI55MBZ5-DV7sdJmQ.js.map +0 -1
  137. package/webapp/dist/assets/chunk-FMBD7UC4-DYGviJnf.js.map +0 -1
  138. package/webapp/dist/assets/chunk-QN33PNHL-B8DWRL9f.js.map +0 -1
  139. package/webapp/dist/assets/chunk-QZHKN3VN-B1aYIzMR.js.map +0 -1
  140. package/webapp/dist/assets/chunk-TZMSLE5B-_HISzxl3.js.map +0 -1
  141. package/webapp/dist/assets/classDiagram-2ON5EDUG-CpyYj1Rc.js.map +0 -1
  142. package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-CpyYj1Rc.js.map +0 -1
  143. package/webapp/dist/assets/clone-B_9AxWIU.js.map +0 -1
  144. package/webapp/dist/assets/cose-bilkent-S5V4N54A-17ECLfPR.js.map +0 -1
  145. package/webapp/dist/assets/dagre-6UL2VRFP-DhRqcF1o.js.map +0 -1
  146. package/webapp/dist/assets/diagram-PSM6KHXK-lpDT6Wwb.js.map +0 -1
  147. package/webapp/dist/assets/diagram-QEK2KX5R-ohxbPpDH.js.map +0 -1
  148. package/webapp/dist/assets/diagram-S2PKOQOG-DAFFGfch.js.map +0 -1
  149. package/webapp/dist/assets/erDiagram-Q2GNP2WA-BH-7rI43.js.map +0 -1
  150. package/webapp/dist/assets/flowDiagram-NV44I4VS-CdEjFbz4.js.map +0 -1
  151. package/webapp/dist/assets/ganttDiagram-JELNMOA3-Cju2t-lK.js.map +0 -1
  152. package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js.map +0 -1
  153. package/webapp/dist/assets/graph-mhcc7ldf.js +0 -425
  154. package/webapp/dist/assets/graph-mhcc7ldf.js.map +0 -1
  155. package/webapp/dist/assets/infoDiagram-HS3SLOUP-Df8p0okQ.js.map +0 -1
  156. package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-BXMl8H-d.js.map +0 -1
  157. package/webapp/dist/assets/kanban-definition-3W4ZIXB7-Cc5RwCEh.js.map +0 -1
  158. package/webapp/dist/assets/layout-BB2SvQcE.js.map +0 -1
  159. package/webapp/dist/assets/linear-Cj50lA0a.js.map +0 -1
  160. package/webapp/dist/assets/mindmap-definition-VGOIOE7T-BLBklJVX.js.map +0 -1
  161. package/webapp/dist/assets/pieDiagram-ADFJNKIX-BQrOgSc-.js.map +0 -1
  162. package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-C62TxtsO.js.map +0 -1
  163. package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-Is6Q3osM.js.map +0 -1
  164. package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-CCAW8Dr2.js.map +0 -1
  165. package/webapp/dist/assets/sequenceDiagram-WL72ISMW-DpODpbl6.js.map +0 -1
  166. package/webapp/dist/assets/stateDiagram-FKZM4ZOC-B8LHaf5T.js.map +0 -1
  167. package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-4FzTkpgz.js.map +0 -1
  168. package/webapp/dist/assets/timeline-definition-IT6M3QCI-Ckxc4qZe.js.map +0 -1
  169. package/webapp/dist/assets/treemap-GDKQZRPO-QQa4vKMv.js.map +0 -1
  170. package/webapp/dist/assets/xychartDiagram-PRI3JC2R-Ba2uJcs6.js.map +0 -1
@@ -399,6 +399,21 @@ function buildFuncResultRecord(funcResult, genseq) {
399
399
  genseq,
400
400
  };
401
401
  }
402
+ function buildToolResultImageIngestRecord(ingest, genseq) {
403
+ return {
404
+ ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
405
+ type: 'tool_result_image_ingest_record',
406
+ genseq,
407
+ toolCallId: ingest.toolCallId,
408
+ toolName: ingest.toolName,
409
+ artifact: ingest.artifact,
410
+ provider: ingest.provider,
411
+ model: ingest.model,
412
+ disposition: ingest.disposition,
413
+ message: ingest.message,
414
+ detail: ingest.detail,
415
+ };
416
+ }
402
417
  function buildTellaskCallRecord(args) {
403
418
  return {
404
419
  ts: (0, time_1.formatUnifiedTimestamp)(new Date()),
@@ -1432,6 +1447,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
1432
1447
  content: funcResult.content,
1433
1448
  contentItems: funcResult.contentItems,
1434
1449
  course,
1450
+ genseq,
1435
1451
  };
1436
1452
  (0, evt_registry_1.postDialogEvent)(dialog, funcResultEvt);
1437
1453
  }
@@ -1873,6 +1889,64 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
1873
1889
  await this.appendEvent(dialog, course, record);
1874
1890
  (0, evt_registry_1.postDialogEvent)(dialog, evt);
1875
1891
  }
1892
+ async toolResultImageIngest(dialog, payload) {
1893
+ // This is an attempt-scoped projection diagnostic, not a durable semantic fact about the
1894
+ // transcript. We append it immediately so live UIs can explain the current request shape, and
1895
+ // rely on generation rollback + genseq_discard_evt to erase failed attempts.
1896
+ const course = dialog.activeGenCourseOrUndefined ?? dialog.currentCourse;
1897
+ const toolCallId = payload.toolCallId.trim();
1898
+ const toolName = payload.toolName.trim();
1899
+ const model = payload.model.trim();
1900
+ const provider = payload.provider.trim();
1901
+ const relPath = payload.artifact.relPath.trim();
1902
+ if (toolCallId === '') {
1903
+ log_1.log.error('Protocol violation: toolResultImageIngest called with empty toolCallId; dropping event', new Error('tool_result_image_ingest_empty_tool_call_id'), { dialog, payload });
1904
+ return;
1905
+ }
1906
+ if (toolName === '') {
1907
+ log_1.log.error('Protocol violation: toolResultImageIngest called with empty toolName; dropping event', new Error('tool_result_image_ingest_empty_tool_name'), { dialog, payload });
1908
+ return;
1909
+ }
1910
+ if (provider === '' || model === '') {
1911
+ log_1.log.error('Protocol violation: toolResultImageIngest missing provider/model; dropping event', new Error('tool_result_image_ingest_missing_provider_or_model'), { dialog, payload });
1912
+ return;
1913
+ }
1914
+ if (relPath === '') {
1915
+ log_1.log.error('Protocol violation: toolResultImageIngest called with empty artifact relPath; dropping event', new Error('tool_result_image_ingest_empty_rel_path'), { dialog, payload });
1916
+ return;
1917
+ }
1918
+ const normalizedPayload = {
1919
+ toolCallId,
1920
+ toolName,
1921
+ artifact: {
1922
+ rootId: payload.artifact.rootId,
1923
+ selfId: payload.artifact.selfId,
1924
+ status: payload.artifact.status,
1925
+ relPath,
1926
+ },
1927
+ provider,
1928
+ model,
1929
+ disposition: payload.disposition,
1930
+ message: payload.message,
1931
+ ...(payload.detail !== undefined ? { detail: payload.detail } : {}),
1932
+ };
1933
+ const record = buildToolResultImageIngestRecord(normalizedPayload, dialog.activeGenSeq);
1934
+ await this.appendEvent(dialog, course, record);
1935
+ const evt = {
1936
+ type: 'tool_result_image_ingest_evt',
1937
+ course,
1938
+ genseq: dialog.activeGenSeq,
1939
+ toolCallId,
1940
+ toolName,
1941
+ artifact: normalizedPayload.artifact,
1942
+ provider,
1943
+ model,
1944
+ disposition: normalizedPayload.disposition,
1945
+ message: normalizedPayload.message,
1946
+ ...(normalizedPayload.detail !== undefined ? { detail: normalizedPayload.detail } : {}),
1947
+ };
1948
+ (0, evt_registry_1.postDialogEvent)(dialog, evt);
1949
+ }
1876
1950
  /**
1877
1951
  * Emit stream error for current generation lifecycle (uses active genseq when present)
1878
1952
  */
@@ -2061,6 +2135,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
2061
2135
  content: result.content,
2062
2136
  contentItems: result.contentItems,
2063
2137
  course,
2138
+ genseq,
2064
2139
  };
2065
2140
  (0, evt_registry_1.postDialogEvent)(dialog, funcResultEvt);
2066
2141
  }
@@ -2094,6 +2169,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
2094
2169
  content: args.result.content,
2095
2170
  contentItems: args.result.contentItems,
2096
2171
  course,
2172
+ genseq: resultGenseq,
2097
2173
  };
2098
2174
  (0, evt_registry_1.postDialogEvent)(dialog, funcResultEvt);
2099
2175
  }
@@ -2863,6 +2939,7 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
2863
2939
  content: event.content,
2864
2940
  contentItems: event.contentItems,
2865
2941
  course,
2942
+ genseq: event.genseq,
2866
2943
  dialog: {
2867
2944
  selfId: dialog.id.selfId,
2868
2945
  rootId: dialog.id.rootId,
@@ -2874,6 +2951,32 @@ class DiskFileDialogStore extends dialog_1.DialogStore {
2874
2951
  }
2875
2952
  break;
2876
2953
  }
2954
+ case 'tool_result_image_ingest_record': {
2955
+ const toolResultImageIngestEvt = {
2956
+ type: 'tool_result_image_ingest_evt',
2957
+ course,
2958
+ genseq: event.genseq,
2959
+ toolCallId: event.toolCallId,
2960
+ toolName: event.toolName,
2961
+ artifact: event.artifact,
2962
+ provider: event.provider,
2963
+ model: event.model,
2964
+ disposition: event.disposition,
2965
+ message: event.message,
2966
+ ...(event.detail !== undefined ? { detail: event.detail } : {}),
2967
+ };
2968
+ if (ws.readyState === 1) {
2969
+ ws.send(JSON.stringify({
2970
+ ...toolResultImageIngestEvt,
2971
+ dialog: {
2972
+ selfId: dialog.id.selfId,
2973
+ rootId: dialog.id.rootId,
2974
+ },
2975
+ timestamp: event.ts,
2976
+ }));
2977
+ }
2978
+ break;
2979
+ }
2877
2980
  case 'tellask_result_record': {
2878
2981
  const base = {
2879
2982
  type: 'tellask_result_evt',
@@ -5776,6 +5879,10 @@ class DialogPersistence {
5776
5879
  // UI-only timeline event for OpenAI Responses native tool visualization.
5777
5880
  // Must not be injected into LLM context reconstruction.
5778
5881
  break;
5882
+ case 'tool_result_image_ingest_record':
5883
+ // UI-only per-generation image projection diagnostics for tool results.
5884
+ // Must not be injected into LLM context reconstruction.
5885
+ break;
5779
5886
  case 'func_result_record': {
5780
5887
  // Convert function result to ChatMessage
5781
5888
  messages.push({
package/dist/priming.js CHANGED
@@ -241,6 +241,7 @@ function isPrimingRecordType(raw) {
241
241
  raw === 'func_call_record' ||
242
242
  raw === 'tellask_call_record' ||
243
243
  raw === 'web_search_call_record' ||
244
+ raw === 'tool_result_image_ingest_record' ||
244
245
  raw === 'human_text_record' ||
245
246
  raw === 'func_result_record' ||
246
247
  raw === 'tellask_result_record' ||
@@ -270,6 +271,7 @@ function getRecordMarkdownTextField(type) {
270
271
  return 'response';
271
272
  case 'func_call_record':
272
273
  case 'web_search_call_record':
274
+ case 'tool_result_image_ingest_record':
273
275
  case 'native_tool_call_record':
274
276
  case 'tellask_call_anchor_record':
275
277
  case 'gen_start_record':
@@ -840,6 +842,60 @@ function normalizePrimingRecordFromJson(raw) {
840
842
  const { ts: _unusedTs, ...withoutTs } = record;
841
843
  return withoutTs;
842
844
  }
845
+ case 'tool_result_image_ingest_record': {
846
+ const disposition = raw['disposition'];
847
+ if (disposition !== 'fed_native' &&
848
+ disposition !== 'fed_provider_transformed' &&
849
+ disposition !== 'filtered_provider_unsupported' &&
850
+ disposition !== 'filtered_model_unsupported' &&
851
+ disposition !== 'filtered_mime_unsupported' &&
852
+ disposition !== 'filtered_size_limit' &&
853
+ disposition !== 'filtered_read_failed' &&
854
+ disposition !== 'filtered_missing') {
855
+ throw new Error(`${context}.disposition is invalid`);
856
+ }
857
+ const artifactRaw = raw['artifact'];
858
+ if (!isRecord(artifactRaw)) {
859
+ throw new Error(`${context}.artifact must be an object`);
860
+ }
861
+ const rootId = artifactRaw['rootId'];
862
+ const selfId = artifactRaw['selfId'];
863
+ const status = artifactRaw['status'];
864
+ const relPath = artifactRaw['relPath'];
865
+ if (typeof rootId !== 'string' ||
866
+ typeof selfId !== 'string' ||
867
+ typeof relPath !== 'string' ||
868
+ (status !== 'running' && status !== 'completed' && status !== 'archived')) {
869
+ throw new Error(`${context}.artifact has invalid fields`);
870
+ }
871
+ const detail = raw['detail'];
872
+ if (detail !== undefined && typeof detail !== 'string') {
873
+ throw new Error(`${context}.detail must be a string when provided`);
874
+ }
875
+ const record = {
876
+ ts: '',
877
+ type,
878
+ genseq: expectIntegerField(raw, 'genseq', context),
879
+ toolCallId: expectStringField(raw, 'toolCallId', context),
880
+ toolName: expectStringField(raw, 'toolName', context),
881
+ artifact: {
882
+ rootId,
883
+ selfId,
884
+ status,
885
+ relPath,
886
+ },
887
+ provider: expectStringField(raw, 'provider', context),
888
+ model: expectStringField(raw, 'model', context),
889
+ disposition,
890
+ message: expectStringField(raw, 'message', context, true),
891
+ };
892
+ if (detail !== undefined)
893
+ record.detail = detail;
894
+ if (sourceTag)
895
+ record.sourceTag = sourceTag;
896
+ const { ts: _unusedTs, ...withoutTs } = record;
897
+ return withoutTs;
898
+ }
843
899
  case 'human_text_record': {
844
900
  const grammar = raw['grammar'];
845
901
  if (grammar !== 'markdown') {
@@ -1689,6 +1745,7 @@ function remapRecordGenseq(record, mapGenseq) {
1689
1745
  case 'func_call_record':
1690
1746
  case 'tellask_call_record':
1691
1747
  case 'web_search_call_record':
1748
+ case 'tool_result_image_ingest_record':
1692
1749
  case 'native_tool_call_record':
1693
1750
  case 'human_text_record':
1694
1751
  case 'func_result_record':
@@ -1749,6 +1806,7 @@ function addPrimingSourceTag(record) {
1749
1806
  case 'func_call_record':
1750
1807
  case 'tellask_call_record':
1751
1808
  case 'web_search_call_record':
1809
+ case 'tool_result_image_ingest_record':
1752
1810
  case 'native_tool_call_record':
1753
1811
  case 'human_text_record':
1754
1812
  case 'func_result_record':
@@ -1775,6 +1833,7 @@ function withTimestamp(record, ts) {
1775
1833
  case 'func_call_record':
1776
1834
  case 'tellask_call_record':
1777
1835
  case 'web_search_call_record':
1836
+ case 'tool_result_image_ingest_record':
1778
1837
  case 'human_text_record':
1779
1838
  case 'func_result_record':
1780
1839
  case 'tellask_result_record':
@@ -1917,6 +1976,7 @@ function primingRecordToChatMessage(record) {
1917
1976
  ...(record.calleeGenseq !== undefined ? { calleeGenseq: record.calleeGenseq } : {}),
1918
1977
  };
1919
1978
  case 'web_search_call_record':
1979
+ case 'tool_result_image_ingest_record':
1920
1980
  case 'native_tool_call_record':
1921
1981
  case 'quest_for_sup_record':
1922
1982
  case 'tellask_call_anchor_record':
@@ -2054,6 +2114,21 @@ function formatScriptMarkdown(args) {
2054
2114
  blockMeta['sourceTag'] = record.sourceTag;
2055
2115
  break;
2056
2116
  }
2117
+ case 'tool_result_image_ingest_record': {
2118
+ blockMeta['genseq'] = record.genseq;
2119
+ blockMeta['toolCallId'] = record.toolCallId;
2120
+ blockMeta['toolName'] = record.toolName;
2121
+ blockMeta['artifact'] = record.artifact;
2122
+ blockMeta['provider'] = record.provider;
2123
+ blockMeta['model'] = record.model;
2124
+ blockMeta['disposition'] = record.disposition;
2125
+ if (record.detail !== undefined)
2126
+ blockMeta['detail'] = record.detail;
2127
+ if (record.sourceTag !== undefined)
2128
+ blockMeta['sourceTag'] = record.sourceTag;
2129
+ blockBody = record.message;
2130
+ break;
2131
+ }
2057
2132
  case 'human_text_record': {
2058
2133
  blockMeta['genseq'] = record.genseq;
2059
2134
  blockMeta['msgId'] = record.msgId;
@@ -2241,6 +2316,7 @@ function stripTimestampFromRecord(event) {
2241
2316
  case 'func_call_record':
2242
2317
  case 'tellask_call_record':
2243
2318
  case 'web_search_call_record':
2319
+ case 'tool_result_image_ingest_record':
2244
2320
  case 'native_tool_call_record':
2245
2321
  case 'human_text_record':
2246
2322
  case 'func_result_record':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dominds",
3
- "version": "1.16.2",
3
+ "version": "1.16.4",
4
4
  "description": "Dominds CLI and aggregation shell for the LongRun AI kernel/runtime packages.",
5
5
  "type": "commonjs",
6
6
  "publishConfig": {
@@ -52,8 +52,8 @@
52
52
  "ws": "^8.19.0",
53
53
  "yaml": "^2.8.2",
54
54
  "zod": "^4.3.6",
55
- "@longrun-ai/kernel": "1.8.11",
56
- "@longrun-ai/shell": "1.8.11",
55
+ "@longrun-ai/kernel": "1.8.12",
56
+ "@longrun-ai/shell": "1.8.12",
57
57
  "@longrun-ai/codex-auth": "0.12.0"
58
58
  },
59
59
  "devDependencies": {
@@ -1,5 +1,5 @@
1
- import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-D6k_lGfs.js";
2
- import { aR as isObject, aA as baseRest, aS as isIterateeCall, aT as keysIn, aU as eq, aV as isArrayLike, aW as isArray, aX as identity, aY as isIndex, aZ as assignValue } from "./index-BLnM-uON.js";
1
+ import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-DeO2MBcA.js";
2
+ import { aU as isObject, aC as baseRest, aV as isIterateeCall, aW as keysIn, aX as eq, aY as isArrayLike, aZ as isArray, a_ as identity, a$ as isIndex, b0 as assignValue } from "./index-D8Klc1n-.js";
3
3
  var reWhitespace = /\s/;
4
4
  function trimmedEndIndex(string) {
5
5
  var index = string.length;
@@ -193,4 +193,4 @@ export {
193
193
  map as m,
194
194
  toFinite as t
195
195
  };
196
- //# sourceMappingURL=_basePickBy-BJWCmtUm.js.map
196
+ //# sourceMappingURL=_basePickBy-BKLfvXfr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_basePickBy-BKLfvXfr.js","sources":["../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/defaults.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createFind.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/find.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/has.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseLt.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseExtremum.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/min.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n"],"names":["objectProto","hasOwnProperty","collection"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}
@@ -1,4 +1,4 @@
1
- import { be as isObjectLike, bf as baseGetTag, aW as isArray, bg as Symbol$1, aV as isArrayLike, bh as arrayLikeKeys, bi as baseKeys, bj as memoize, bk as isArguments, bl as copyObject, aT as keysIn, bm as getPrototype, bn as cloneArrayBuffer, bo as cloneTypedArray, bp as getTag, bc as baseUnary, bq as nodeUtil, aR as isObject, br as copyArray, bs as isBuffer, bt as cloneBuffer, bu as initCloneObject, bv as Stack, aZ as assignValue, bw as MapCache, aU as eq, bx as Uint8Array, by as isTypedArray, bz as isLength, aY as isIndex, aX as identity, ba as baseFor, bA as Set } from "./index-BLnM-uON.js";
1
+ import { bh as isObjectLike, bi as baseGetTag, aZ as isArray, bj as Symbol$1, aY as isArrayLike, bk as arrayLikeKeys, bl as baseKeys, bm as memoize, bn as isArguments, bo as copyObject, aW as keysIn, bp as getPrototype, bq as cloneArrayBuffer, br as cloneTypedArray, bs as getTag, bf as baseUnary, bt as nodeUtil, aU as isObject, bu as copyArray, bv as isBuffer, bw as cloneBuffer, bx as initCloneObject, by as Stack, b0 as assignValue, bz as MapCache, aX as eq, bA as Uint8Array, bB as isTypedArray, bC as isLength, a$ as isIndex, a_ as identity, bd as baseFor, bD as Set } from "./index-D8Klc1n-.js";
2
2
  var symbolTag$3 = "[object Symbol]";
3
3
  function isSymbol(value) {
4
4
  return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
@@ -833,4 +833,4 @@ export {
833
833
  baseIndexOf as y,
834
834
  getAllKeysIn as z
835
835
  };
836
- //# sourceMappingURL=_baseUniq-D6k_lGfs.js.map
836
+ //# sourceMappingURL=_baseUniq-DeO2MBcA.js.map