chatlab-cli 0.36.0 → 0.36.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/README.md +7 -7
  2. package/dist/{chat-command-SXW67RF7.mjs → chat-command-SEV6N3AR.mjs} +10 -10
  3. package/dist/chat-command-SEV6N3AR.mjs.map +1 -0
  4. package/dist/{chunk-UNIKQFI5.mjs → chunk-6E46U4H2.mjs} +2 -2
  5. package/dist/{chunk-AAGDVTP2.mjs → chunk-6EZPD3XJ.mjs} +2 -2
  6. package/dist/{chunk-VDWI4A4U.mjs → chunk-CH5YAZ4Q.mjs} +2 -2
  7. package/dist/{chunk-JHON5FN7.mjs → chunk-HWIXK7SU.mjs} +8 -3
  8. package/dist/chunk-HWIXK7SU.mjs.map +1 -0
  9. package/dist/{chunk-U2NXHIJK.mjs → chunk-TJ3NOBVI.mjs} +3 -3
  10. package/dist/{chunk-OWOEWZIC.mjs → chunk-TRGR3KKJ.mjs} +84 -28
  11. package/dist/chunk-TRGR3KKJ.mjs.map +1 -0
  12. package/dist/{chunk-GVW3BDGZ.mjs → chunk-TWH422HC.mjs} +3 -3
  13. package/dist/{chunk-4YPNYQSP.mjs → chunk-VREVDZ4Q.mjs} +390 -96
  14. package/dist/chunk-VREVDZ4Q.mjs.map +1 -0
  15. package/dist/{chunk-XDF6PMVZ.mjs → chunk-VUYWUHWW.mjs} +2 -2
  16. package/dist/{chunk-BSGLH6G3.mjs → chunk-WJQOXOMR.mjs} +147 -80
  17. package/dist/chunk-WJQOXOMR.mjs.map +1 -0
  18. package/dist/{chunk-CNEWMCGX.mjs → chunk-WRBFV2GX.mjs} +57 -57
  19. package/dist/chunk-WRBFV2GX.mjs.map +1 -0
  20. package/dist/{chunk-LZGOIRLV.mjs → chunk-YUH3H3QW.mjs} +9 -5
  21. package/dist/chunk-YUH3H3QW.mjs.map +1 -0
  22. package/dist/cli.mjs +9 -9
  23. package/dist/contacts-worker.mjs +2 -2
  24. package/dist/global-insight-worker.mjs +1 -1
  25. package/dist/{http-LVOGJFDL.mjs → http-237XYNRT.mjs} +12 -12
  26. package/dist/{import-7OU57ZHM.mjs → import-R2E2TFAK.mjs} +7 -7
  27. package/dist/index.mjs +12 -12
  28. package/dist/{mcp-CUKHTTII.mjs → mcp-BED4AARV.mjs} +8 -8
  29. package/dist/people-relationships-worker.mjs +2 -2
  30. package/dist/semantic-index-worker.mjs +1 -1
  31. package/dist/{service-KZTHBDQ5.mjs → service-ZAHXRSFD.mjs} +6 -6
  32. package/dist/service-ZAHXRSFD.mjs.map +1 -0
  33. package/dist/{src-LORFXAUE.mjs → src-AYMALWU5.mjs} +10 -6
  34. package/dist/{stream-import-7YUWIAD6.mjs → stream-import-RXNSOOYH.mjs} +7 -7
  35. package/dist/{undici-MU5I3L6Q.mjs → undici-UGXDRJLV.mjs} +193 -193
  36. package/dist/undici-UGXDRJLV.mjs.map +1 -0
  37. package/dist/{update-checker-3N7HQEP2.mjs → update-checker-UL2FBLXH.mjs} +3 -5
  38. package/dist/{update-checker-3N7HQEP2.mjs.map → update-checker-UL2FBLXH.mjs.map} +1 -1
  39. package/dist/{worker-runtime-GQ5SY7E3.mjs → worker-runtime-JGAZU7MC.mjs} +5 -5
  40. package/dist-cli-web/assets/AISettingsTab-VgI7PiJd.js +1 -0
  41. package/dist-cli-web/assets/AboutTab-DCM1-glA.js +1 -0
  42. package/dist-cli-web/assets/ActionToolsPanel-BTGgwXVD.css +1 -0
  43. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-a7RMjjve.js +112 -0
  44. package/dist-cli-web/assets/{Alert-DJzXKcec.js → Alert-D-egBWcb.js} +1 -1
  45. package/dist-cli-web/assets/ApiSettingsTab-Co3LWf1f.js +2 -0
  46. package/dist-cli-web/assets/BatchManageTab-2LrckmQm.js +1 -0
  47. package/dist-cli-web/assets/{BufferResource-DY3P-dGs.js → BufferResource-BE2_2bZK.js} +1 -1
  48. package/dist-cli-web/assets/{CanvasRenderer-As2MJTWZ.js → CanvasRenderer-DDKdvEYQ.js} +1 -1
  49. package/dist-cli-web/assets/ChatRecordDrawer-DRhztqLG.js +1 -0
  50. package/dist-cli-web/assets/{ChatRecordWorkspace-CVDPBmcl.js → ChatRecordWorkspace-DqUI4QiU.js} +1 -1
  51. package/dist-cli-web/assets/{Checkbox-4F1WAuVF.js → Checkbox-EfpQmv4A.js} +1 -1
  52. package/dist-cli-web/assets/DataDirCleanupNotice-BYIiR58J.js +1 -0
  53. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-sPDoPzZ9.js +1 -0
  54. package/dist-cli-web/assets/{DebugToolsPanel-BLU6SY8a.js → DebugToolsPanel-BIHA6jw4.js} +1 -1
  55. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-DryMSoCz.js +1 -0
  56. package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-BdFW-hvt.js +1 -0
  57. package/dist-cli-web/assets/{EChartLine.vue_vue_type_script_setup_true_lang-BYhukELX.js → EChartLine.vue_vue_type_script_setup_true_lang-C69Kdw9X.js} +1 -1
  58. package/dist-cli-web/assets/{EChartWordcloud-C16xh7Tx.js → EChartWordcloud-DM7UEHdK.js} +1 -1
  59. package/dist-cli-web/assets/{Filter-BEtPORqF.js → Filter-kO4dIDJ2.js} +1 -1
  60. package/dist-cli-web/assets/GlobalTaskBar-BZS_h0zC.js +1 -0
  61. package/dist-cli-web/assets/GroupRelationshipGalaxyView--WIaHx_F.js +1 -0
  62. package/dist-cli-web/assets/{Label-Dgl3ghzT.js → Label-CIuDXyeM.js} +1 -1
  63. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js +1 -0
  64. package/dist-cli-web/assets/MessageExportModal-BQsIpyxv.js +1 -0
  65. package/dist-cli-web/assets/{PageHeader-CL9AFfvl.js → PageHeader-DxhQHF_0.js} +1 -1
  66. package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-C22kOxIK.js → PageTabs.vue_vue_type_script_setup_true_lang-Cgungbjl.js} +1 -1
  67. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-BnkcrIpk.js → RelationshipGalaxyCanvas-Cod1JX9m.js} +14 -14
  68. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CCasBcBQ.css +1 -0
  69. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CkefzeFJ.js +4168 -0
  70. package/dist-cli-web/assets/{RenderTargetSystem-CPwnC2X3.js → RenderTargetSystem-SuQ7cbze.js} +1 -1
  71. package/dist-cli-web/assets/RovingFocusItem-psoFYxrC.js +1 -0
  72. package/dist-cli-web/assets/{ScreenCaptureModal-ByKxzNQe.js → ScreenCaptureModal-D4r9ixKh.js} +1 -1
  73. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-v_7aRBgM.js +1 -0
  74. package/dist-cli-web/assets/{Select-jVtfc_xc.js → Select-CxurgslB.js} +1 -1
  75. package/dist-cli-web/assets/SettingsModal-BFkxzo0Y.css +1 -0
  76. package/dist-cli-web/assets/SettingsModal-DBZucuf6.js +2 -0
  77. package/dist-cli-web/assets/{StorageTab-QdcDqA6Q.js → StorageTab-DhSJ-0Ir.js} +1 -1
  78. package/dist-cli-web/assets/{Switch-DYHM64k9.js → Switch-3D81G6uV.js} +1 -1
  79. package/dist-cli-web/assets/Tabs-Bnm_Q7yW.js +1 -0
  80. package/dist-cli-web/assets/{Tabs-B6Nzq2NQ.js → Tabs-DB603EEu.js} +1 -1
  81. package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-Bsq7gpC0.js → ThemeCard.vue_vue_type_script_setup_true_lang-BDTdkH5i.js} +1 -1
  82. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-Cjz8Wpg-.js +1 -0
  83. package/dist-cli-web/assets/{VisuallyHiddenInput-IQpmK9yR.js → VisuallyHiddenInput-Bo_XwaLu.js} +1 -1
  84. package/dist-cli-web/assets/{WebGLRenderer-8JHbnkTc.js → WebGLRenderer-D1x9WZRj.js} +1 -1
  85. package/dist-cli-web/assets/{WebGPURenderer-CLWfB4CC.js → WebGPURenderer-37Nw-tLm.js} +1 -1
  86. package/dist-cli-web/assets/aiChat-BCzYQeZq.js +8 -0
  87. package/dist-cli-web/assets/{browserAll-Cin6ghNg.js → browserAll-CWrz_-4U.js} +1 -1
  88. package/dist-cli-web/assets/{cli-web-D7IBc3AX.js → cli-web-C-8N0CJh.js} +1 -1
  89. package/dist-cli-web/assets/{fetch-2QEQPA9q.js → fetch-6pcVxB9h.js} +1 -1
  90. package/dist-cli-web/assets/{fetch-CuUeyk0N.js → fetch-B69OkB6B.js} +1 -1
  91. package/dist-cli-web/assets/{fetch-1NiXh-_B.js → fetch-BGmCCyzz.js} +1 -1
  92. package/dist-cli-web/assets/{fetch-C8tTTsCm.js → fetch-CFpLXWTe.js} +1 -1
  93. package/dist-cli-web/assets/{fetch-B7kuohCt.js → fetch-CgA1peJD.js} +1 -1
  94. package/dist-cli-web/assets/{fetch-OnnCjzee.js → fetch-CkXgOxcu.js} +1 -1
  95. package/dist-cli-web/assets/{fetch-BR71C0K9.js → fetch-DPSWt6yX.js} +1 -1
  96. package/dist-cli-web/assets/{fetch-Bk-7vxHV.js → fetch-DZ6OF-xW.js} +1 -1
  97. package/dist-cli-web/assets/{fetch-_CN1EVMt.js → fetch-Du-wU0OO.js} +1 -1
  98. package/dist-cli-web/assets/fetch-Gu4qQjUB.js +1 -0
  99. package/dist-cli-web/assets/{fetch-B2agy1hy.js → fetch-qd2FgBWQ.js} +1 -1
  100. package/dist-cli-web/assets/{fetch-DPRDSI39.js → fetch-z9M9FcIC.js} +1 -1
  101. package/dist-cli-web/assets/host-CWsAWKgy.js +1 -0
  102. package/dist-cli-web/assets/host-D8zlA62K.js +1 -0
  103. package/dist-cli-web/assets/index-BGd4ZfhO.js +2 -0
  104. package/dist-cli-web/assets/index-BYZF1ngN.js +1 -0
  105. package/dist-cli-web/assets/index-BcuwlCin.css +1 -0
  106. package/dist-cli-web/assets/index-BnaLj2dx.css +1 -0
  107. package/dist-cli-web/assets/index-Bq5q3kSU.js +36 -0
  108. package/dist-cli-web/assets/index-CPR3jdC2.js +137 -0
  109. package/dist-cli-web/assets/index-D3AjvaOX.js +1 -0
  110. package/dist-cli-web/assets/index-DAitScUA.js +1 -0
  111. package/dist-cli-web/assets/index-DBSMWAJ0.js +1 -0
  112. package/dist-cli-web/assets/index-DTn9htw-.js +64 -0
  113. package/dist-cli-web/assets/index-DV_rWxcH.js +1 -0
  114. package/dist-cli-web/assets/index-DxhAGqYM.css +1 -0
  115. package/dist-cli-web/assets/{index-Colc58j-.js → index-Dy0fRMDf.js} +1 -1
  116. package/dist-cli-web/assets/index-Dz_ddyZS.css +1 -0
  117. package/dist-cli-web/assets/index-I0mIcDpE.css +1 -0
  118. package/dist-cli-web/assets/{index-BIHFuCJK.js → index-a7CT8DQm.js} +1 -1
  119. package/dist-cli-web/assets/index-onwNShRw.js +2 -0
  120. package/dist-cli-web/assets/index-v6DlL4ue.js +1 -0
  121. package/dist-cli-web/assets/{people-page-header-DNPjaSt4.js → people-page-header-Czt9e1jv.js} +1 -1
  122. package/dist-cli-web/assets/{prompt-BgywZQ_g.js → prompt-DGazz143.js} +1 -1
  123. package/dist-cli-web/assets/{semantic-index-config-builder-bji_UxYE.js → semantic-index-config-builder-BkFHzIUy.js} +1 -1
  124. package/dist-cli-web/assets/service-BMqwB74f.js +1 -0
  125. package/dist-cli-web/assets/{service-DpU9fa-l.js → service-CAp0YJoS.js} +1 -1
  126. package/dist-cli-web/assets/service-CUQ8iHdS.js +1 -0
  127. package/dist-cli-web/assets/{useFormControl-De24E2zT.js → useFormControl-DcSMUc2d.js} +1 -1
  128. package/dist-cli-web/assets/useTable-Clmq3sge.js +1 -0
  129. package/dist-cli-web/assets/useToast-YAHDkKDN.js +1 -0
  130. package/dist-cli-web/assets/{vendor-echarts-DfAMQxdr.js → vendor-echarts-hTLhTs52.js} +5 -5
  131. package/dist-cli-web/assets/{vendor-echarts-wordcloud-BsaEJTPY.js → vendor-echarts-wordcloud-B8CF_NgP.js} +1 -1
  132. package/dist-cli-web/assets/{vendor-zrender-PFmZe1EY.js → vendor-zrender-D8psf1AA.js} +2 -2
  133. package/dist-cli-web/assets/{webworkerAll-BRnv6GvJ.js → webworkerAll-CvSp2Y8j.js} +1 -1
  134. package/dist-cli-web/index.html +2 -2
  135. package/package.json +4 -4
  136. package/dist/chat-command-SXW67RF7.mjs.map +0 -1
  137. package/dist/chunk-4YPNYQSP.mjs.map +0 -1
  138. package/dist/chunk-BSGLH6G3.mjs.map +0 -1
  139. package/dist/chunk-CNEWMCGX.mjs.map +0 -1
  140. package/dist/chunk-JHON5FN7.mjs.map +0 -1
  141. package/dist/chunk-LZGOIRLV.mjs.map +0 -1
  142. package/dist/chunk-OWOEWZIC.mjs.map +0 -1
  143. package/dist/service-KZTHBDQ5.mjs.map +0 -1
  144. package/dist/undici-MU5I3L6Q.mjs.map +0 -1
  145. package/dist-cli-web/assets/AISettingsTab-BmhNcUEh.js +0 -1
  146. package/dist-cli-web/assets/AboutTab-CFklrZt8.js +0 -1
  147. package/dist-cli-web/assets/ActionToolsPanel-Dp-ojXjO.css +0 -1
  148. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-B-dIPvcs.js +0 -110
  149. package/dist-cli-web/assets/ApiSettingsTab-DvDm421U.js +0 -2
  150. package/dist-cli-web/assets/BatchManageTab-DhIDH3Q1.js +0 -1
  151. package/dist-cli-web/assets/ChatRecordDrawer-DHdas7Jp.js +0 -1
  152. package/dist-cli-web/assets/DataDirCleanupNotice-jebQ9il3.js +0 -1
  153. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-Cal624eP.js +0 -1
  154. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-CsgJ-Xn3.js +0 -1
  155. package/dist-cli-web/assets/GlobalTaskBar-BvNmFO7q.js +0 -1
  156. package/dist-cli-web/assets/GroupRelationshipGalaxyView-DEUIrvgz.js +0 -1
  157. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwDIA0UP.js +0 -1
  158. package/dist-cli-web/assets/MessageExportModal-DYjhBuzO.js +0 -1
  159. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CqdqveEJ.js +0 -4108
  160. package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css +0 -1
  161. package/dist-cli-web/assets/RovingFocusItem-j33Nsbbn.js +0 -1
  162. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C6EHKB_i.js +0 -1
  163. package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +0 -1
  164. package/dist-cli-web/assets/SettingsModal-Dg27piEO.js +0 -2
  165. package/dist-cli-web/assets/Tabs-CRZdCcU4.js +0 -1
  166. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-BLpQds4F.js +0 -1
  167. package/dist-cli-web/assets/aiChat-4JvxWGXZ.js +0 -8
  168. package/dist-cli-web/assets/base-D6fxqD_X.js +0 -1
  169. package/dist-cli-web/assets/dateFormat-Bu4-Ux3L.js +0 -1
  170. package/dist-cli-web/assets/index-B4J99zv3.css +0 -1
  171. package/dist-cli-web/assets/index-BBeqtL8d.css +0 -1
  172. package/dist-cli-web/assets/index-BCEk6ZpL.js +0 -64
  173. package/dist-cli-web/assets/index-BUz_Vl9U.js +0 -2
  174. package/dist-cli-web/assets/index-BWZIoPV3.css +0 -1
  175. package/dist-cli-web/assets/index-BYQV3OA5.js +0 -1
  176. package/dist-cli-web/assets/index-CVVv_6qu.js +0 -2
  177. package/dist-cli-web/assets/index-CacwXQL4.js +0 -1
  178. package/dist-cli-web/assets/index-DImo7TQN.js +0 -1
  179. package/dist-cli-web/assets/index-DV9zQVPV.js +0 -137
  180. package/dist-cli-web/assets/index-DXKS-q-w.css +0 -1
  181. package/dist-cli-web/assets/index-DZc5A4_J.js +0 -1
  182. package/dist-cli-web/assets/index-DkWTvE7d.js +0 -36
  183. package/dist-cli-web/assets/index-DmEn0PAI.js +0 -1
  184. package/dist-cli-web/assets/index-b9eEQeVt.js +0 -1
  185. package/dist-cli-web/assets/index-waDxab2e.css +0 -1
  186. package/dist-cli-web/assets/insight-time-range-MJxLEu6o.js +0 -1
  187. package/dist-cli-web/assets/useTable-C7BH94MF.js +0 -1
  188. package/dist-cli-web/assets/useToast-CxhJkhXK.js +0 -1
  189. /package/dist/{chunk-UNIKQFI5.mjs.map → chunk-6E46U4H2.mjs.map} +0 -0
  190. /package/dist/{chunk-AAGDVTP2.mjs.map → chunk-6EZPD3XJ.mjs.map} +0 -0
  191. /package/dist/{chunk-VDWI4A4U.mjs.map → chunk-CH5YAZ4Q.mjs.map} +0 -0
  192. /package/dist/{chunk-U2NXHIJK.mjs.map → chunk-TJ3NOBVI.mjs.map} +0 -0
  193. /package/dist/{chunk-GVW3BDGZ.mjs.map → chunk-TWH422HC.mjs.map} +0 -0
  194. /package/dist/{chunk-XDF6PMVZ.mjs.map → chunk-VUYWUHWW.mjs.map} +0 -0
  195. /package/dist/{http-LVOGJFDL.mjs.map → http-237XYNRT.mjs.map} +0 -0
  196. /package/dist/{import-7OU57ZHM.mjs.map → import-R2E2TFAK.mjs.map} +0 -0
  197. /package/dist/{mcp-CUKHTTII.mjs.map → mcp-BED4AARV.mjs.map} +0 -0
  198. /package/dist/{src-LORFXAUE.mjs.map → src-AYMALWU5.mjs.map} +0 -0
  199. /package/dist/{stream-import-7YUWIAD6.mjs.map → stream-import-RXNSOOYH.mjs.map} +0 -0
  200. /package/dist/{worker-runtime-GQ5SY7E3.mjs.map → worker-runtime-JGAZU7MC.mjs.map} +0 -0
@@ -826,6 +826,9 @@ function isSupportedChatLabFormatVersion(version) {
826
826
  }
827
827
 
828
828
  // ../../packages/shared-types/index.ts
829
+ var ANNUAL_SUMMARY_PLUGIN_ID = "chatlab.insight.annual-summary";
830
+ var TIME_INVESTMENT_PLUGIN_ID = "chatlab.insight.time-investment";
831
+ var NAVIGATION_LAYOUT_SCHEMA_VERSION = 1;
829
832
  var MessageType = /* @__PURE__ */ ((MessageType2) => {
830
833
  MessageType2[MessageType2["TEXT"] = 0] = "TEXT";
831
834
  MessageType2[MessageType2["IMAGE"] = 1] = "IMAGE";
@@ -7920,6 +7923,7 @@ function computeRepeat(messages) {
7920
7923
  content,
7921
7924
  count: stats.count,
7922
7925
  maxChainLength: stats.maxChainLength,
7926
+ originatorId: stats.originatorId,
7923
7927
  originatorName: originatorInfo?.name || "\u672A\u77E5",
7924
7928
  lastTs: stats.lastTs,
7925
7929
  firstMessageId: stats.firstMessageId
@@ -10438,6 +10442,7 @@ function createActivateSkillTool(options) {
10438
10442
  },
10439
10443
  required: ["skill_id"]
10440
10444
  },
10445
+ executionMode: "sequential",
10441
10446
  execute: async (_toolCallId, params) => {
10442
10447
  const toolParams = params && typeof params === "object" ? params : {};
10443
10448
  const skillId = toolParams.skill_id || "";
@@ -10978,10 +10983,33 @@ function forceTruncate(input, targetTokens) {
10978
10983
  return result.join("\n") || input.slice(0, targetTokens * 3);
10979
10984
  }
10980
10985
 
10981
- // ../../packages/node-runtime/src/ai/compression/adapter-factory.ts
10986
+ // ../../packages/node-runtime/src/ai/pi-runtime.ts
10982
10987
  import {
10983
- completeSimple
10988
+ lazyApi,
10989
+ lazyStream
10984
10990
  } from "@earendil-works/pi-ai";
10991
+ var apiStreams = {
10992
+ "openai-completions": lazyApi(() => import("@earendil-works/pi-ai/api/openai-completions")),
10993
+ "openai-responses": lazyApi(() => import("@earendil-works/pi-ai/api/openai-responses")),
10994
+ "anthropic-messages": lazyApi(() => import("@earendil-works/pi-ai/api/anthropic-messages")),
10995
+ "google-generative-ai": lazyApi(() => import("@earendil-works/pi-ai/api/google-generative-ai"))
10996
+ };
10997
+ function isSupportedApi(api) {
10998
+ return Object.hasOwn(apiStreams, api);
10999
+ }
11000
+ function streamSimple(model, context, options) {
11001
+ if (!isSupportedApi(model.api)) {
11002
+ return lazyStream(model, async () => {
11003
+ throw new Error(`Unsupported ChatLab AI API format: ${model.api}`);
11004
+ });
11005
+ }
11006
+ return apiStreams[model.api].streamSimple(model, context, options);
11007
+ }
11008
+ function completeSimple(model, context, options) {
11009
+ return streamSimple(model, context, options).result();
11010
+ }
11011
+
11012
+ // ../../packages/node-runtime/src/ai/compression/adapter-factory.ts
10985
11013
  var DEFAULT_CONTEXT_WINDOW2 = 128e3;
10986
11014
  function createCompressionLlmAdapter(options) {
10987
11015
  const { piModel, apiKey, onCompressing, onError } = options;
@@ -11738,10 +11766,7 @@ var DEFAULT_MAX_TOOL_ROUNDS = 20;
11738
11766
 
11739
11767
  // ../../packages/node-runtime/src/ai/agent/core.ts
11740
11768
  import { Agent as PiAgentCore } from "@earendil-works/pi-agent-core";
11741
- import {
11742
- streamSimple as defaultStreamSimple,
11743
- clampThinkingLevel
11744
- } from "@earendil-works/pi-ai";
11769
+ import { clampThinkingLevel } from "@earendil-works/pi-ai";
11745
11770
  function isPiMessage(message) {
11746
11771
  return message.role === "user" || message.role === "assistant" || message.role === "toolResult";
11747
11772
  }
@@ -11761,7 +11786,7 @@ async function runAgentCore(options) {
11761
11786
  onDebugContext
11762
11787
  } = options;
11763
11788
  await initTokenizer();
11764
- const resolvedStreamFn = options.streamFn ?? defaultStreamSimple;
11789
+ const resolvedStreamFn = options.streamFn ?? streamSimple;
11765
11790
  const totalUsage = {
11766
11791
  promptTokens: 0,
11767
11792
  completionTokens: 0,
@@ -11797,6 +11822,7 @@ async function runAgentCore(options) {
11797
11822
  return clampThinkingLevel(piModel, level);
11798
11823
  })();
11799
11824
  const finalThinkingLevel = resolvedThinkingLevel ?? (piModel.reasoning ? void 0 : "off");
11825
+ let hasReachedToolRoundLimit = false;
11800
11826
  const thinkingFormat = piModel.compat?.thinkingFormat;
11801
11827
  const replayOptions = piModel.reasoning && thinkingFormat === "deepseek" ? {
11802
11828
  modelInfo: { api: piModel.api, provider: piModel.provider, id: piModel.id },
@@ -11818,9 +11844,17 @@ async function runAgentCore(options) {
11818
11844
  );
11819
11845
  onConvertToLlm?.(filtered);
11820
11846
  return filtered;
11821
- }
11847
+ },
11848
+ prepareNextTurn: () => hasReachedToolRoundLimit ? {
11849
+ context: {
11850
+ systemPrompt,
11851
+ messages: coreAgent.state.messages,
11852
+ tools: []
11853
+ }
11854
+ } : void 0,
11855
+ sessionId: options.providerSessionId,
11856
+ toolExecution: "parallel"
11822
11857
  });
11823
- let hasReachedToolRoundLimit = false;
11824
11858
  const thinkingStartTime = /* @__PURE__ */ new Map();
11825
11859
  const useThinkParser = needsStreamingThinkParsing(piModel.provider, piModel.id);
11826
11860
  let thinkParserStartTime;
@@ -11872,6 +11906,16 @@ async function runAgentCore(options) {
11872
11906
  toolName: event.toolName,
11873
11907
  toolParams: event.args || {}
11874
11908
  });
11909
+ } else if (event.type === "tool_execution_update") {
11910
+ const details = event.partialResult?.details;
11911
+ if (details?.progress) {
11912
+ onEvent({
11913
+ type: "tool_update",
11914
+ toolCallId: event.toolCallId,
11915
+ toolName: event.toolName,
11916
+ progress: details.progress
11917
+ });
11918
+ }
11875
11919
  } else if (event.type === "tool_execution_end") {
11876
11920
  onEvent({
11877
11921
  type: "tool_end",
@@ -12007,9 +12051,6 @@ notes:
12007
12051
  }
12008
12052
 
12009
12053
  // ../../packages/node-runtime/src/ai/agent/router.ts
12010
- import {
12011
- completeSimple as completeSimple2
12012
- } from "@earendil-works/pi-ai";
12013
12054
  var DEFAULT_LLM_FALLBACK_CONFIDENCE_THRESHOLD = 0.6;
12014
12055
  function clampConfidence(value) {
12015
12056
  if (!Number.isFinite(value)) return 0;
@@ -12212,7 +12253,7 @@ async function completeWithPiAi(prompt, options) {
12212
12253
  if (!options.piModel || !options.apiKey) {
12213
12254
  throw new Error("LLM router requires piModel and apiKey");
12214
12255
  }
12215
- const result = await completeSimple2(
12256
+ const result = await completeSimple(
12216
12257
  options.piModel,
12217
12258
  {
12218
12259
  systemPrompt: "You are a strict JSON classifier for ChatLab AI routing. Return JSON only.",
@@ -12237,10 +12278,6 @@ async function completeWithPiAi(prompt, options) {
12237
12278
  }
12238
12279
 
12239
12280
  // ../../packages/node-runtime/src/ai/agent/planner.ts
12240
- import {
12241
- completeSimple as completeSimple3,
12242
- streamSimple
12243
- } from "@earendil-works/pi-ai";
12244
12281
  var PLAN_INTENTS = [
12245
12282
  "summary",
12246
12283
  "trend",
@@ -12405,7 +12442,7 @@ async function completeWithPiAi2(prompt, options, signal) {
12405
12442
  if (!options.piModel || !options.apiKey) {
12406
12443
  throw new Error("Planner requires piModel and apiKey");
12407
12444
  }
12408
- const result = await completeSimple3(
12445
+ const result = await completeSimple(
12409
12446
  options.piModel,
12410
12447
  {
12411
12448
  systemPrompt: "You are a strict planner for ChatLab analysis. Return the requested blocks only.",
@@ -12601,6 +12638,7 @@ var AgentEventHandler = class {
12601
12638
  onChunk;
12602
12639
  context;
12603
12640
  systemPrompt;
12641
+ activeTools = /* @__PURE__ */ new Map();
12604
12642
  constructor(config) {
12605
12643
  this.onChunk = config.onChunk;
12606
12644
  this.context = config.context;
@@ -12626,11 +12664,21 @@ var AgentEventHandler = class {
12626
12664
  case "tool_start": {
12627
12665
  const params = this.normalizeToolParams(event.toolName, event.toolParams);
12628
12666
  this.toolsUsed.push(event.toolName);
12667
+ this.activeTools.set(event.toolCallId, event.toolName);
12629
12668
  this.onChunk({ type: "tool_start", toolCallId: event.toolCallId, toolName: event.toolName, toolParams: params });
12630
12669
  this.emitStatus("tool_running", messages, { currentTool: event.toolName, force: true });
12631
12670
  break;
12632
12671
  }
12672
+ case "tool_update":
12673
+ this.onChunk({
12674
+ type: "tool_update",
12675
+ toolCallId: event.toolCallId,
12676
+ toolName: event.toolName,
12677
+ toolProgress: event.progress
12678
+ });
12679
+ break;
12633
12680
  case "tool_end":
12681
+ this.activeTools.delete(event.toolCallId);
12634
12682
  this.onChunk({
12635
12683
  type: "tool_result",
12636
12684
  toolCallId: event.toolCallId,
@@ -12638,10 +12686,17 @@ var AgentEventHandler = class {
12638
12686
  toolResult: event.toolResult,
12639
12687
  toolIsError: event.isError
12640
12688
  });
12641
- this.emitStatus("thinking", messages, { force: true });
12689
+ if (this.activeTools.size > 0) {
12690
+ const currentTool = Array.from(this.activeTools.values()).at(-1);
12691
+ this.emitStatus("tool_running", messages, { currentTool, force: true });
12692
+ } else {
12693
+ this.emitStatus("thinking", messages, { force: true });
12694
+ }
12642
12695
  break;
12643
12696
  case "turn_end":
12697
+ this.activeTools.clear();
12644
12698
  this.toolRounds = event.round;
12699
+ this.onChunk({ type: "turn_end", hadToolCalls: event.hadToolCalls });
12645
12700
  this.emitStatus("thinking", messages, { force: true });
12646
12701
  break;
12647
12702
  case "usage_update":
@@ -15173,7 +15228,6 @@ function buildPiModel(config, options) {
15173
15228
  }
15174
15229
 
15175
15230
  // ../../packages/node-runtime/src/ai/remote-api.ts
15176
- import { completeSimple as completeSimple4 } from "@earendil-works/pi-ai";
15177
15231
  async function fetchRemoteModels(provider, apiKey, baseUrl, apiFormat, options) {
15178
15232
  const effectiveApiFormat = apiFormat || "openai-completions";
15179
15233
  if (effectiveApiFormat === "anthropic-messages") {
@@ -15257,7 +15311,7 @@ async function validateApiKey(provider, apiKey, baseUrl, model, apiFormat, optio
15257
15311
  const abortController = new AbortController();
15258
15312
  const timeout = setTimeout(() => abortController.abort(), 15e3);
15259
15313
  try {
15260
- const result = await completeSimple4(
15314
+ const result = await completeSimple(
15261
15315
  piModel,
15262
15316
  { messages: [{ role: "user", content: "Hi", timestamp: Date.now() }] },
15263
15317
  { apiKey, maxTokens: 1, signal: abortController.signal }
@@ -15278,7 +15332,6 @@ async function validateApiKey(provider, apiKey, baseUrl, model, apiFormat, optio
15278
15332
  }
15279
15333
 
15280
15334
  // ../../packages/node-runtime/src/ai/llm-stream.ts
15281
- import { streamSimple as streamSimple2 } from "@earendil-works/pi-ai";
15282
15335
  function toPiMessages(messages, timestamp) {
15283
15336
  return messages.map((m) => ({
15284
15337
  role: m.role,
@@ -15291,7 +15344,7 @@ async function runSimpleLlmStream(options) {
15291
15344
  const systemMsg = messages.find((m) => m.role === "system");
15292
15345
  const nonSystemMsgs = messages.filter((m) => m.role !== "system");
15293
15346
  const now = Date.now();
15294
- const eventStream = streamSimple2(
15347
+ const eventStream = streamSimple(
15295
15348
  piModel,
15296
15349
  {
15297
15350
  systemPrompt: systemMsg?.content,
@@ -15349,7 +15402,7 @@ async function runSimpleLlmStream(options) {
15349
15402
  }
15350
15403
 
15351
15404
  // ../../packages/node-runtime/src/ai/index.ts
15352
- import { Type, completeSimple as completeSimple5, streamSimple as streamSimple3 } from "@earendil-works/pi-ai";
15405
+ import { Type } from "@earendil-works/pi-ai";
15353
15406
 
15354
15407
  // ../../packages/node-runtime/src/migrations/electron-data-migration.ts
15355
15408
  import * as fs10 from "fs";
@@ -16186,7 +16239,7 @@ var CHAT_TOPIC_MODEL_TIMEOUT_MS = 12e4;
16186
16239
  function createChatTopicModelClient(config, deps = {}) {
16187
16240
  const model = buildPiModel(config);
16188
16241
  const modelId = `${config.provider}/${model.id}`;
16189
- const runCompletion = deps.completeSimple ?? completeSimple5;
16242
+ const runCompletion = deps.completeSimple ?? completeSimple;
16190
16243
  return {
16191
16244
  modelId,
16192
16245
  async complete(prompts, options) {
@@ -18856,6 +18909,9 @@ export {
18856
18909
  CHATLAB_FORMAT_VERSION,
18857
18910
  CHATLAB_SUPPORTED_FORMAT_VERSIONS,
18858
18911
  isSupportedChatLabFormatVersion,
18912
+ ANNUAL_SUMMARY_PLUGIN_ID,
18913
+ TIME_INVESTMENT_PLUGIN_ID,
18914
+ NAVIGATION_LAYOUT_SCHEMA_VERSION,
18859
18915
  MessageType,
18860
18916
  KNOWN_PLATFORMS,
18861
18917
  getDefaultGeneralAssistantId,
@@ -18955,6 +19011,8 @@ export {
18955
19011
  DEFAULT_CONTEXT_COMPRESSION_CONFIG,
18956
19012
  checkAndCompress,
18957
19013
  manualCompress,
19014
+ streamSimple,
19015
+ completeSimple,
18958
19016
  createCompressionLlmAdapter,
18959
19017
  preprocessMessages,
18960
19018
  preprocessMessagesWithStats,
@@ -19009,8 +19067,6 @@ export {
19009
19067
  validateApiKey,
19010
19068
  runSimpleLlmStream,
19011
19069
  Type,
19012
- completeSimple5 as completeSimple,
19013
- streamSimple3 as streamSimple,
19014
19070
  wasElectronUsed,
19015
19071
  verifyCliDataPath,
19016
19072
  migrateFromElectronIfNeeded,
@@ -19069,4 +19125,4 @@ export {
19069
19125
  StaticPathProvider,
19070
19126
  createDatabaseManagerAdapter
19071
19127
  };
19072
- //# sourceMappingURL=chunk-OWOEWZIC.mjs.map
19128
+ //# sourceMappingURL=chunk-TRGR3KKJ.mjs.map