@symerian/symi 2.0.16 → 2.0.18

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 (357) hide show
  1. package/dist/{acp-cli-CSX62tsS.js → acp-cli-Cp81ShIC.js} +3 -3
  2. package/dist/{acp-cli-CrfY9UHo.js → acp-cli-h36Zuriy.js} +3 -3
  3. package/dist/{agents-CP6mOf0j.js → agents-B2jtcp_Y.js} +8 -8
  4. package/dist/{agents.config-CFps8Krs.js → agents.config-ButbIjGA.js} +1 -1
  5. package/dist/{agents.config-Da5XukaM.js → agents.config-DTJxgmnd.js} +1 -1
  6. package/dist/{api-key-rotation-BukD0zzl.js → api-key-rotation-De1ivBc0.js} +1 -1
  7. package/dist/{audio-preflight-DRQD_nt1.js → audio-preflight-B_VLZd_F.js} +7 -7
  8. package/dist/{audio-preflight-CQ5_RYEe.js → audio-preflight-CSix46JB.js} +13 -13
  9. package/dist/{audio-preflight-DSeaWZZW.js → audio-preflight-DGpde3Ae.js} +13 -13
  10. package/dist/{audio-preflight-Cq4C-m27.js → audio-preflight-k4jOy8Bo.js} +7 -7
  11. package/dist/{audit-Do2bVss3.js → audit-BbhuQjTl.js} +7 -7
  12. package/dist/{audit-x_SzU263.js → audit-BmuBsZal.js} +7 -7
  13. package/dist/{auth-choice-CZ9ugRNS.js → auth-choice-BMHb00f1.js} +7 -7
  14. package/dist/{auth-choice-za414gQg.js → auth-choice-Du7VUK1p.js} +7 -7
  15. package/dist/{auth-profiles-BD22fK4p.js → auth-profiles-Cs3GPB03.js} +6 -2
  16. package/dist/{auth-token-CNnt7guc.js → auth-token-CbDExtp_.js} +1 -1
  17. package/dist/{auth-token-BrlnZiCq.js → auth-token-DdkoxDu3.js} +1 -1
  18. package/dist/{banner-DHgxDWv_.js → banner-BoFDxo1X.js} +1 -1
  19. package/dist/{browser-cli-BydQRa6Z.js → browser-cli-Bu0BnRct.js} +4 -4
  20. package/dist/{browser-cli-Bz2dcSy1.js → browser-cli-DEnpvEPP.js} +4 -4
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +18 -18
  23. package/dist/bundled/session-memory/handler.js +18 -18
  24. package/dist/{call-BVw7l9v8.js → call-6AGLOo_A.js} +1 -1
  25. package/dist/{call-CJYWtIM9.js → call-TvMa4u8t.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-D7RdZp1E.js → channel-options-BzQJoPFc.js} +1 -1
  28. package/dist/{channel-options-BCZol8_4.js → channel-options-D1K0w33c.js} +1 -1
  29. package/dist/{channel-web-Dki5eEiP.js → channel-web-NaWX5pUl.js} +8 -8
  30. package/dist/{channels-cli-CwliXNUk.js → channels-cli-BGX2AX0X.js} +38 -38
  31. package/dist/{channels-cli-CILkYyG3.js → channels-cli-KVy9GUcY.js} +39 -39
  32. package/dist/{chrome-BgIDB_SH.js → chrome-CaijV4gw.js} +1 -1
  33. package/dist/{chrome-D9OwvWm7.js → chrome-Cgiw9tI6.js} +1 -1
  34. package/dist/{chrome-h6BnL8Lp.js → chrome-DX-9I4dn.js} +1 -1
  35. package/dist/{chrome-LmEyZdbC.js → chrome-DrxNYzTD.js} +1 -1
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-aAOs92a8.js → cli-DAaNQKv7.js} +33 -33
  38. package/dist/{cli-CLHi2LEP.js → cli-MBTHCM04.js} +34 -34
  39. package/dist/{command-registry-OHfvK1Oq.js → command-registry-DRHBO07P.js} +11 -11
  40. package/dist/{commands-registry-DyWjIe7d.js → commands-registry-B_V42ZiZ.js} +1 -1
  41. package/dist/{commands-registry-Copoizgv.js → commands-registry-DN93gKlx.js} +1 -1
  42. package/dist/{commands-registry-uo2OKqdL.js → commands-registry-nK_mZXUN.js} +1 -1
  43. package/dist/{commands-registry-C3C4Rv3O.js → commands-registry-tuRMQmX4.js} +1 -1
  44. package/dist/{completion-cli-DSHmAUFN.js → completion-cli-By9Hj91p.js} +1 -1
  45. package/dist/{completion-cli-D7iBY_Z-.js → completion-cli-E2HmAubG.js} +2 -2
  46. package/dist/{config-BjGo9GnL.js → config-BUHRlrbS.js} +5 -2
  47. package/dist/{config-amjzHiWZ.js → config-COvlkain.js} +5 -2
  48. package/dist/{config-DM0K7qC1.js → config-C_1uZzwy.js} +5 -2
  49. package/dist/{config-Dgn_cL29.js → config-DB5jMj3Z.js} +5 -2
  50. package/dist/{config-cli-CcbYdW1-.js → config-cli-DaV2gvHS.js} +3 -3
  51. package/dist/{config-cli-BlusBXAA.js → config-cli-gvLM_Jmx.js} +3 -3
  52. package/dist/{config-guard-BpQn1MKk.js → config-guard-CP12zw3r.js} +2 -2
  53. package/dist/{config-guard-Cnu2qssk.js → config-guard-DLAUq-eu.js} +5 -5
  54. package/dist/{config-validation-BHjDr-an.js → config-validation-BdUdtuuI.js} +1 -1
  55. package/dist/{config-validation-pVfqbrLy.js → config-validation-CJNWEllT.js} +1 -1
  56. package/dist/{configure-CJf-vDqN.js → configure-BPdAIpJb.js} +11 -11
  57. package/dist/{configure-rrxn5n5n.js → configure-DjRUXJNv.js} +11 -11
  58. package/dist/{control-service-DVFF3PrV.js → control-service-CwdjvhxE.js} +4 -4
  59. package/dist/{control-service-DMz_CcLi.js → control-service-D670V6cS.js} +4 -4
  60. package/dist/control-ui/js/app.js +79 -0
  61. package/dist/control-ui/js/render.js +39 -0
  62. package/dist/{cron-cli-CMb8Tfrd.js → cron-cli-BVdg2ZHh.js} +4 -4
  63. package/dist/{cron-cli-B9s3FO4y.js → cron-cli-CWybZWLu.js} +4 -4
  64. package/dist/{daemon-cli-DY782AjS.js → daemon-cli-A0V_cYcw.js} +6 -6
  65. package/dist/{daemon-cli-duUjaj82.js → daemon-cli-BSKnv95o.js} +6 -6
  66. package/dist/daemon-cli.js +4 -1
  67. package/dist/{daemon-runtime-B38pOixq.js → daemon-runtime-BgbGrT3P.js} +1 -1
  68. package/dist/{daemon-runtime-CjgoCPLb.js → daemon-runtime-DtGPdsmL.js} +1 -1
  69. package/dist/{deliver-DONp5mgd.js → deliver-CUJWonlP.js} +3 -3
  70. package/dist/{deliver-B3UoBZdC.js → deliver-DXVMhb3A.js} +2 -2
  71. package/dist/{deliver-2Y_F_0yh.js → deliver-sMuSzZX6.js} +3 -3
  72. package/dist/{deliver-CZF9f8aC.js → deliver-wRQauy5B.js} +2 -2
  73. package/dist/{devices-cli-Ch8p42OS.js → devices-cli-Bwg8gUuS.js} +3 -3
  74. package/dist/{devices-cli-Cahrr6Rd.js → devices-cli-DBDevKR4.js} +3 -3
  75. package/dist/{directory-cli-B0H80BMR.js → directory-cli-2W4B1Ct_.js} +2 -2
  76. package/dist/{directory-cli-DH9ww80p.js → directory-cli-B9wwg8xg.js} +2 -2
  77. package/dist/{dm-policy-shared-BovJdm5T.js → dm-policy-shared-CvHrO6D_.js} +1 -1
  78. package/dist/{dm-policy-shared-DckBYBwg.js → dm-policy-shared-flFO0wFg.js} +1 -1
  79. package/dist/{dns-cli-CVMQnrzw.js → dns-cli-Dc8SoCMN.js} +2 -2
  80. package/dist/{dns-cli-Lzt29-Zu.js → dns-cli-go7hrLbV.js} +2 -2
  81. package/dist/{doctor-completion-B6R-Um0m.js → doctor-completion-CJ6GgqdP.js} +1 -1
  82. package/dist/{doctor-completion-Db9Ka2VX.js → doctor-completion-cGUMfSWW.js} +1 -1
  83. package/dist/{doctor-config-flow-C_56SUPO.js → doctor-config-flow-CSyqq_3u.js} +3 -3
  84. package/dist/{doctor-config-flow-B150h841.js → doctor-config-flow-DpVhYkFY.js} +3 -3
  85. package/dist/entry.js +1 -1
  86. package/dist/{exec-approvals-cli-CSTHY6Vs.js → exec-approvals-cli-Bc7-sWEN.js} +5 -5
  87. package/dist/{exec-approvals-cli-lduNEUnu.js → exec-approvals-cli-NGv-JYZx.js} +5 -5
  88. package/dist/extensionAPI.js +18 -18
  89. package/dist/{gateway-cli-VZ3pwSh3.js → gateway-cli-BACTzHef.js} +52 -52
  90. package/dist/{gateway-cli-DVzEvDKA.js → gateway-cli-DIUZJz3l.js} +51 -51
  91. package/dist/{gateway-rpc-BTXPWO6j.js → gateway-rpc-CzQ2-09T.js} +1 -1
  92. package/dist/{gateway-rpc-Cx0HPjI7.js → gateway-rpc-DijKM-l5.js} +1 -1
  93. package/dist/{gemini-auth-7AWT6JXV.js → gemini-auth-2cinXFeY.js} +1 -1
  94. package/dist/{gemini-auth-BHSrr2_B.js → gemini-auth-DmWoaMTb.js} +1 -1
  95. package/dist/{gemini-auth-K6vg8B5c.js → gemini-auth-DtBB7-5F.js} +1 -1
  96. package/dist/{glass-ui-ws-CAm9wWND.js → glass-ui-ws-BBYLD-43.js} +43 -43
  97. package/dist/{glass-ui-ws-DmPVzO59.js → glass-ui-ws-DMW9fQLQ.js} +42 -42
  98. package/dist/{health-CnH3J7xA.js → health-BIgxejdY.js} +5 -5
  99. package/dist/{health-CYZdOaco.js → health-D9sE5ymK.js} +5 -5
  100. package/dist/{hooks-cli-CHMoGB4O.js → hooks-cli-DnvETK6m.js} +34 -34
  101. package/dist/{hooks-cli-C7tb9Ef0.js → hooks-cli-EthBM_qY.js} +35 -35
  102. package/dist/{image-RFofsrof.js → image-Bf_jHnTg.js} +3 -3
  103. package/dist/{image-B4LY9KFw.js → image-CEcLOmLW.js} +3 -3
  104. package/dist/{image-DrZEJQwQ.js → image-DCArHTqR.js} +3 -3
  105. package/dist/{image-DOnOTocl.js → image-Kl1J-62v.js} +3 -3
  106. package/dist/index.js +42 -42
  107. package/dist/{lifecycle-core-De5BcVI4.js → lifecycle-core-fFRFJvPD.js} +2 -2
  108. package/dist/{lifecycle-core-BYV6-zd8.js → lifecycle-core-pG9T1o7U.js} +2 -2
  109. package/dist/llm-slug-generator.js +18 -18
  110. package/dist/{login-BH17fJ5L.js → login-BwU6oNNU.js} +2 -2
  111. package/dist/{login-BG_7eJLu.js → login-CM1U-ARd.js} +2 -2
  112. package/dist/{login-CXSct1EH.js → login-CvotLxMc.js} +2 -2
  113. package/dist/{login-BZYFLDxo.js → login-J-hL4MZQ.js} +2 -2
  114. package/dist/{login-qr-BLmEvZVj.js → login-qr-CADWVR1b.js} +3 -3
  115. package/dist/{login-qr-zVpxocbF.js → login-qr-CW01jgLl.js} +3 -3
  116. package/dist/{login-qr-DoNfx43Q.js → login-qr-CiPw9ee6.js} +3 -3
  117. package/dist/{login-qr-9OQSnm5L.js → login-qr-_FriwsNr.js} +3 -3
  118. package/dist/{logs-cli-Cvhx1c0V.js → logs-cli-DPaTYFru.js} +4 -4
  119. package/dist/{logs-cli-DUzUCojZ.js → logs-cli-mM7GM-9Q.js} +4 -4
  120. package/dist/{manager-oiX42wby.js → manager-Cw42HtQ7.js} +136 -19
  121. package/dist/{manager-C_DoJrcP.js → manager-D0d-bOOe.js} +136 -19
  122. package/dist/{manager-B5EXdBQV.js → manager-D5ZbBYmN.js} +136 -19
  123. package/dist/{manager-CYHgFXd8.js → manager-DqkRhYYl.js} +136 -19
  124. package/dist/{memory-cli-D4J9SO7Z.js → memory-cli-C7w-I03k.js} +206 -3
  125. package/dist/{memory-cli-BhnOq4Ev.js → memory-cli-Pp2xuPKC.js} +206 -3
  126. package/dist/{model-CLebVu_U.js → model-ApXxvnzl.js} +1 -1
  127. package/dist/{model-DaukLY-k.js → model-DDV7HL-B.js} +1 -1
  128. package/dist/{model-auth-CeL58m55.js → model-auth-Db8I8QVL.js} +6 -2
  129. package/dist/{model-catalog-Dj5pIc1G.js → model-catalog-61-kKlKu.js} +4 -4
  130. package/dist/{model-catalog-CX8kAHv8.js → model-catalog-QboGjwLO.js} +4 -4
  131. package/dist/{model-picker-ay4NPk8S.js → model-picker-CSnZDydf.js} +3 -3
  132. package/dist/{model-picker-CDXdeNr-.js → model-picker-iDZTbvXk.js} +3 -3
  133. package/dist/{model-selection-Csawd2_i.js → model-selection-BBrZnKDw.js} +6 -2
  134. package/dist/{model-selection--4t4F87n.js → model-selection-DBPwoBvb.js} +6 -2
  135. package/dist/{models-wHzbWyGd.js → models-B_oSANn2.js} +14 -14
  136. package/dist/{models-cli-CTptBZ1_.js → models-cli-CzdeeUpE.js} +40 -40
  137. package/dist/{models-cli-xt0_lwNn.js → models-cli-u62LAXdh.js} +39 -39
  138. package/dist/{models-config-u4va9_AO.js → models-config-BTd2aHYU.js} +2 -2
  139. package/dist/{models-config-Cb41NmVa.js → models-config-CMJN_5Vh.js} +2 -2
  140. package/dist/{node-cli-BhCoxgBf.js → node-cli-BEvFRkYC.js} +10 -10
  141. package/dist/{node-cli-C8scjTTR.js → node-cli-BQyxhqF5.js} +10 -10
  142. package/dist/{nodes-cli-DvFB1bRc.js → nodes-cli-C2hHbQ47.js} +4 -4
  143. package/dist/{nodes-cli-BHnGJEDY.js → nodes-cli-FbzJ-7tA.js} +4 -4
  144. package/dist/{onboard-CLT8dKkn.js → onboard-CwNzqMn1.js} +10 -10
  145. package/dist/{onboard-CqrqIyTw.js → onboard-DcBV5QjY.js} +10 -10
  146. package/dist/{onboard-channels-B1qEMRuK.js → onboard-channels-C0wtv2Cp.js} +2 -2
  147. package/dist/{onboard-channels-Dq99OYWi.js → onboard-channels-C79jGR3_.js} +2 -2
  148. package/dist/{onboard-custom-BKR6vm2R.js → onboard-custom-CwTH9Yg-.js} +3 -3
  149. package/dist/{onboard-custom-BPHkLBMT.js → onboard-custom-adn6IG8i.js} +3 -3
  150. package/dist/{onboard-helpers-Dsr4zKCb.js → onboard-helpers-Bt2zwkKD.js} +2 -2
  151. package/dist/{onboard-helpers-CYxzQfe5.js → onboard-helpers-CKM-mWPH.js} +2 -2
  152. package/dist/{onboard-remote-d48SMpNw.js → onboard-remote-C-4NSq0W.js} +1 -1
  153. package/dist/{onboard-remote-3c_muVej.js → onboard-remote-P6H-x_vQ.js} +1 -1
  154. package/dist/{onboard-skills-2HJIpm3O.js → onboard-skills-C9ZAlUR6.js} +2 -2
  155. package/dist/{onboard-skills-b_chEkYH.js → onboard-skills-DlbXWPzM.js} +2 -2
  156. package/dist/{onboarding-yfMTHyHB.js → onboarding-C2vTobUO.js} +11 -11
  157. package/dist/{onboarding-Bs82247P.js → onboarding-CT_P8dE6.js} +11 -11
  158. package/dist/{onboarding.finalize-QC0g7ZLU.js → onboarding.finalize-BdeyH2Eh.js} +39 -39
  159. package/dist/{onboarding.finalize-DkZuXXiU.js → onboarding.finalize-DPQDvxEp.js} +41 -41
  160. package/dist/{onboarding.gateway-config-BkXJPv7f.js → onboarding.gateway-config-DKVcVoUF.js} +5 -5
  161. package/dist/{onboarding.gateway-config-stm3z82Y.js → onboarding.gateway-config-IqmHGk2A.js} +5 -5
  162. package/dist/{openai-model-default-DF334-MD.js → openai-model-default-BMY_YH9P.js} +2 -2
  163. package/dist/{openai-model-default-DJwRgrAC.js → openai-model-default-l66tU27B.js} +2 -2
  164. package/dist/{outbound-Cedd_yui.js → outbound-0ici4ICv.js} +1 -1
  165. package/dist/{outbound-BNMysnJ1.js → outbound-BEumB8qs.js} +1 -1
  166. package/dist/{outbound-Bv4FdtnF.js → outbound-CzuytbQ5.js} +1 -1
  167. package/dist/{outbound-DfOF58G2.js → outbound-DTZdWgeZ.js} +1 -1
  168. package/dist/{pairing-cli-7_4ayuXX.js → pairing-cli-CUu3LyX0.js} +4 -4
  169. package/dist/{pairing-cli-B7oA36Ke.js → pairing-cli-D_9vmECc.js} +4 -4
  170. package/dist/{pairing-labels-B-WwqJ-z.js → pairing-labels-Ca15tgVV.js} +1 -1
  171. package/dist/{pairing-labels-sIj1ZLt-.js → pairing-labels-D_XOc2nT.js} +1 -1
  172. package/dist/{pairing-store-CFwkjcA5.js → pairing-store-DdUVpKvp.js} +1 -1
  173. package/dist/{pairing-store-CicZMhK8.js → pairing-store-cjckhuQX.js} +1 -1
  174. package/dist/{pi-auth-json-BNhcohVK.js → pi-auth-json-BJB80_DY.js} +1 -1
  175. package/dist/{pi-auth-json-DV2ruNQM.js → pi-auth-json-BqB9Z6Gg.js} +1 -1
  176. package/dist/{pi-auth-json-B83DuyYZ.js → pi-auth-json-Bzpuls50.js} +2 -2
  177. package/dist/{pi-auth-json-CNgAAznq.js → pi-auth-json-etIDtHw9.js} +1 -1
  178. package/dist/{pi-embedded-DDe6lqPs.js → pi-embedded-DUUw7-tO.js} +448 -60
  179. package/dist/{pi-embedded-B3nbPN60.js → pi-embedded-DmUwEsG1.js} +448 -60
  180. package/dist/{pi-embedded-helpers-kB5lBgXk.js → pi-embedded-helpers-CLip13MP.js} +6 -6
  181. package/dist/{pi-embedded-helpers-CgxKWHj9.js → pi-embedded-helpers-D57pDra0.js} +1 -1
  182. package/dist/{pi-embedded-helpers--yFTAWwW.js → pi-embedded-helpers-D9Rvkx8A.js} +6 -6
  183. package/dist/{pi-embedded-helpers-ueCT6VlS.js → pi-embedded-helpers-f7cnM8BN.js} +1 -1
  184. package/dist/{pi-tools.policy-T6Z5F-_n.js → pi-tools.policy-BV1RWUnE.js} +2 -2
  185. package/dist/{pi-tools.policy-DPmdlOwE.js → pi-tools.policy-BegHNtNO.js} +2 -2
  186. package/dist/{plugin-auto-enable-D4BRdbII.js → plugin-auto-enable-B-WfJQ_3.js} +1 -1
  187. package/dist/{plugin-auto-enable-DdvlcMuw.js → plugin-auto-enable-CdctkFTt.js} +1 -1
  188. package/dist/{plugin-registry-DWJeC9bW.js → plugin-registry-C80itc6t.js} +2 -2
  189. package/dist/{plugin-registry-SCI1BVkI.js → plugin-registry-DrYURaBs.js} +2 -2
  190. package/dist/plugin-sdk/agents/memory-search.d.ts +2 -2
  191. package/dist/plugin-sdk/agents/synthetic-models.d.ts +1 -1
  192. package/dist/plugin-sdk/agents/system-prompt.d.ts +2 -1
  193. package/dist/plugin-sdk/{api-key-rotation-Qy7QGV8_.js → api-key-rotation-DNKq8sDG.js} +1 -1
  194. package/dist/plugin-sdk/{audio-preflight-CpYjfwrA.js → audio-preflight-D5K2YgFn.js} +7 -7
  195. package/dist/plugin-sdk/{channel-web-BUTyAx0r.js → channel-web-Bkv0U1ox.js} +7 -7
  196. package/dist/plugin-sdk/{chrome-BFy_lpld.js → chrome-DJ6LIeRu.js} +1 -1
  197. package/dist/plugin-sdk/{commands-registry-CvppXodz.js → commands-registry-un-LmdXo.js} +1 -1
  198. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +2 -0
  199. package/dist/plugin-sdk/config/types.tools.d.ts +2 -2
  200. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +3 -2
  201. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +4 -4
  202. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +5 -4
  203. package/dist/plugin-sdk/config/zod-schema.d.ts +5 -4
  204. package/dist/plugin-sdk/{config-Do1-fcaS.js → config-8u0WDlgj.js} +5 -2
  205. package/dist/plugin-sdk/{deliver-BwnrMlHO.js → deliver-Bip_mCNI.js} +2 -2
  206. package/dist/plugin-sdk/{image-k_W1USVr.js → image-DX2HTDUY.js} +3 -3
  207. package/dist/plugin-sdk/index.js +22 -22
  208. package/dist/plugin-sdk/{login-DPofXJE3.js → login-CKLot2mH.js} +2 -2
  209. package/dist/plugin-sdk/{login-qr-CNatqAUv.js → login-qr-DOVV9TXm.js} +3 -3
  210. package/dist/plugin-sdk/{manager-DnoXj4EG.js → manager-BItSTruD.js} +136 -19
  211. package/dist/plugin-sdk/memory/embeddings-ollama.d.ts +27 -0
  212. package/dist/plugin-sdk/memory/embeddings.d.ts +4 -1
  213. package/dist/plugin-sdk/memory/manager-sync-ops.d.ts +1 -1
  214. package/dist/plugin-sdk/memory/manager.d.ts +1 -1
  215. package/dist/plugin-sdk/{model-selection-D6J2MZsj.js → model-selection-aEd_4vFO.js} +6 -2
  216. package/dist/plugin-sdk/{outbound-w5v_6nFD.js → outbound-uamhXJrA.js} +1 -1
  217. package/dist/plugin-sdk/{pi-auth-json-BmWuNdJA.js → pi-auth-json-FyiScmI7.js} +1 -1
  218. package/dist/plugin-sdk/{pi-embedded-helpers-Cs2-_EpL.js → pi-embedded-helpers-JY-1kHdk.js} +6 -6
  219. package/dist/plugin-sdk/{pw-ai-BoitXk7j.js → pw-ai-BG29-fkq.js} +3 -3
  220. package/dist/plugin-sdk/{replies-BU-tUT8j.js → replies-B1pTxZOl.js} +1 -1
  221. package/dist/plugin-sdk/{reply-CjWIATx5.js → reply-B576Fhv8.js} +446 -58
  222. package/dist/plugin-sdk/{runner-Br1179I4.js → runner-BL2UhCUB.js} +5 -5
  223. package/dist/plugin-sdk/{send-Ts2lINh9.js → send-CARqECtw.js} +1 -1
  224. package/dist/plugin-sdk/{send-CE6VxWke.js → send-CJEdtrU7.js} +1 -1
  225. package/dist/plugin-sdk/{send-P8PiZ2Os.js → send-DnSED91h.js} +2 -2
  226. package/dist/plugin-sdk/{send-Dkyi5g1U.js → send-e3xSJ8To.js} +1 -1
  227. package/dist/plugin-sdk/{send-BaLZTKkj.js → send-oZqyXIiB.js} +1 -1
  228. package/dist/plugin-sdk/{session-Bwdr4g-M.js → session-CzQVSJF5.js} +1 -1
  229. package/dist/plugin-sdk/{skill-commands-NTPqO_az.js → skill-commands-Cwps3qpb.js} +1 -1
  230. package/dist/plugin-sdk/{web-C1q3B85D.js → web-mZ4uDhBl.js} +22 -22
  231. package/dist/plugin-sdk/{whatsapp-actions-Di-yCTCj.js → whatsapp-actions-1-Mp-KwB.js} +3 -3
  232. package/dist/{plugins-cli-D2GDnmKk.js → plugins-cli-Cv9eBXlW.js} +34 -34
  233. package/dist/{plugins-cli-QSrupxLG.js → plugins-cli-Dnq6iHh8.js} +35 -35
  234. package/dist/{program-context-CIOqtCr8.js → program-context-D_OS2K8H.js} +38 -38
  235. package/dist/{program-7hcHnpYu.js → program-iimCXTOX.js} +41 -41
  236. package/dist/{prompt-select-styled-DpVAhv1V.js → prompt-select-styled-B1V6teLm.js} +17 -17
  237. package/dist/{prompt-select-styled-DC-k-kBQ.js → prompt-select-styled-BHDOHzSI.js} +17 -17
  238. package/dist/{provider-auth-helpers-BGhm_DOe.js → provider-auth-helpers-nXDpwc0f.js} +4 -4
  239. package/dist/{provider-auth-helpers-DvwmlisW.js → provider-auth-helpers-ozVqcIrR.js} +4 -4
  240. package/dist/{push-apns-CiOx7dgB.js → push-apns-BZ7FEmsK.js} +1 -1
  241. package/dist/{push-apns-BZu5OVg5.js → push-apns-Dmo8BBk4.js} +1 -1
  242. package/dist/{pw-ai-CQzJmf8V.js → pw-ai-3nNWe272.js} +3 -3
  243. package/dist/{pw-ai-CAkn033M.js → pw-ai-BUH9Ew6q.js} +3 -3
  244. package/dist/{pw-ai-C_C5as1t.js → pw-ai-DQuj9c2U.js} +3 -3
  245. package/dist/{pw-ai-CdaTpZo1.js → pw-ai-DhirpjMU.js} +3 -3
  246. package/dist/{qr-cli-Diq_Rb3t.js → qr-cli-CGS8DyNl.js} +2 -2
  247. package/dist/{qr-cli-DlVBiDQm.js → qr-cli-CHnzhKoc.js} +2 -2
  248. package/dist/{register.agent-CDD5Z9Fj.js → register.agent-BOuUXJJS.js} +43 -43
  249. package/dist/{register.agent-Ds6PkEYl.js → register.agent-DYzV2wmB.js} +45 -45
  250. package/dist/{register.configure-COyj6XWC.js → register.configure-C4oljj3F.js} +47 -47
  251. package/dist/{register.configure-CBRYdCX2.js → register.configure-CHvDZtU1.js} +48 -48
  252. package/dist/{register.maintenance-DwHXDl_N.js → register.maintenance-DIylvylR.js} +44 -44
  253. package/dist/{register.maintenance-CyJQDrP0.js → register.maintenance-DhprP_dA.js} +46 -46
  254. package/dist/{register.message-BNe6-SJE.js → register.message-B9SgsGyt.js} +35 -35
  255. package/dist/{register.message-CvQ7LEYe.js → register.message-DF4_1evm.js} +34 -34
  256. package/dist/{register.onboard-BxxfWU46.js → register.onboard-CdwNCs_L.js} +42 -42
  257. package/dist/{register.onboard-CuRnx0wV.js → register.onboard-DOJyYmJS.js} +43 -43
  258. package/dist/{register.setup-qmcQQ6EM.js → register.setup-0Due7c9e.js} +43 -43
  259. package/dist/{register.setup-B4rO_Fld.js → register.setup-DxV_KIbP.js} +42 -42
  260. package/dist/{register.status-health-sessions-CQ0_UB_j.js → register.status-health-sessions-C584c9tm.js} +38 -38
  261. package/dist/{register.status-health-sessions-4OEVg4h6.js → register.status-health-sessions-D1tqd_k_.js} +40 -40
  262. package/dist/{register.subclis-68XcQ3ao.js → register.subclis-DuON_fJu.js} +28 -28
  263. package/dist/{replies-QloQerhz.js → replies-BXYTRk0Z.js} +1 -1
  264. package/dist/{replies-D9V19U2-.js → replies-Bhx469BX.js} +1 -1
  265. package/dist/{replies-CTKReSzx.js → replies-BnmCXHdE.js} +1 -1
  266. package/dist/{replies-DqdOBkTB.js → replies-UxER0fi1.js} +1 -1
  267. package/dist/{reply-DI3kOl7x.js → reply-BzqL_47o.js} +257 -70
  268. package/dist/{routes-qIyRWgzF.js → routes-DH3bW8wF.js} +3 -3
  269. package/dist/{routes-BYphcpth.js → routes-lbqRkIBb.js} +3 -3
  270. package/dist/{rpc-CvzWzHjS.js → rpc-BkvZNT-M.js} +1 -1
  271. package/dist/{rpc-DfC0wvv1.js → rpc-DYXJGfFr.js} +1 -1
  272. package/dist/{run-main-DiJI5-hU.js → run-main-CcFCZNx_.js} +53 -53
  273. package/dist/{runner-DOvsNiYz.js → runner-BHZy2rvh.js} +5 -5
  274. package/dist/{runner-BXN4KYDK.js → runner-CNY0hwm-.js} +5 -5
  275. package/dist/{runner-VHq3quQZ.js → runner-CplzHJ1b.js} +5 -5
  276. package/dist/{runner-uDZlTCm2.js → runner-Cu0qqBIE.js} +5 -5
  277. package/dist/{sandbox-rMmahr2s.js → sandbox-B0QOR7Cn.js} +5 -5
  278. package/dist/{sandbox-cli-C90jqh9l.js → sandbox-cli-CPkB96x-.js} +7 -7
  279. package/dist/{sandbox-cli-Duc05KL9.js → sandbox-cli-DAY7EbKl.js} +7 -7
  280. package/dist/{sandbox-CbuJolk2.js → sandbox-psIl5_gT.js} +5 -5
  281. package/dist/{security-cli-BTcKFy-k.js → security-cli-Bolpxy60.js} +12 -12
  282. package/dist/{security-cli-BPqLtK8x.js → security-cli-C2ZKf8ET.js} +12 -12
  283. package/dist/{send-BVZGeP2r.js → send-8dFVpIIg.js} +1 -1
  284. package/dist/{send-CHOArYFe.js → send-BPqK6C8h.js} +1 -1
  285. package/dist/{send-D0dzPf6g.js → send-BVRNZ9hM.js} +1 -1
  286. package/dist/{send-CzE5UKr-.js → send-BbscKwuU.js} +1 -1
  287. package/dist/{send-Do-0Kcmv.js → send-Bj2SQQVP.js} +1 -1
  288. package/dist/{send-BeASPkFg.js → send-Bj3PJmrF.js} +1 -1
  289. package/dist/{send-De_WCeGZ.js → send-Bv-112XA.js} +1 -1
  290. package/dist/{send-BH09HKsX.js → send-C8fjzstb.js} +1 -1
  291. package/dist/{send-mi3NHnwI.js → send-C8ohJBK5.js} +2 -2
  292. package/dist/{send-BsocounR.js → send-CIvsJpdo.js} +2 -2
  293. package/dist/{send-BVw7fCyL.js → send-CUhH6I6A.js} +1 -1
  294. package/dist/{send-3YM-aarb.js → send-CWrxWRjz.js} +1 -1
  295. package/dist/{send-CYfaZNZ4.js → send-Ci0uVV_k.js} +1 -1
  296. package/dist/{send-C7u4_H5t.js → send-Ci3UEBVK.js} +1 -1
  297. package/dist/{send-hNornLoH.js → send-CzxMGZc_.js} +2 -2
  298. package/dist/{send-DEWzWqfZ.js → send-DEcC_kQP.js} +1 -1
  299. package/dist/{send-D16XtYvC.js → send-DPKghOxz.js} +1 -1
  300. package/dist/{send-D3M6pMr5.js → send-DZbplWNh.js} +1 -1
  301. package/dist/{send-D_yJMeJa.js → send-DiBs_eJc.js} +2 -2
  302. package/dist/{send-B18gkuvz.js → send-FW1P3D82.js} +1 -1
  303. package/dist/{server-context-bMIwnOnH.js → server-context-AHh7m1PV.js} +5 -5
  304. package/dist/{server-context-DG2dIhAy.js → server-context-cw7ha2ct.js} +5 -5
  305. package/dist/{server-methods-DnTo3Oou.js → server-methods-BriHyeA7.js} +17 -17
  306. package/dist/{server-methods-B_JpD0c-.js → server-methods-CJ7xa1ot.js} +18 -18
  307. package/dist/{server-node-events-IlWB4f_P.js → server-node-events-CCId0gGy.js} +34 -34
  308. package/dist/{server-node-events-t5pGPXLD.js → server-node-events-_q8duhVi.js} +35 -35
  309. package/dist/{session-BeJq-MLE.js → session-B4Bibpie.js} +1 -1
  310. package/dist/{session-T0JXlYWe.js → session-D4FMCkcS.js} +1 -1
  311. package/dist/{session-BjcsCwgz.js → session-Dw3zM2St.js} +1 -1
  312. package/dist/{session-BkVBeAkg.js → session-lD2CnIWX.js} +1 -1
  313. package/dist/{session-utils-Cdv2Qaq2.js → session-utils-DySzoW4O.js} +4 -4
  314. package/dist/{sessions-CX93jXmG.js → sessions-BVbSbD60.js} +4 -4
  315. package/dist/{sessions-DJAxaVI7.js → sessions-CRTZnttk.js} +2 -2
  316. package/dist/{sessions-BEyCtqBB.js → sessions-L4e356Ra.js} +2 -2
  317. package/dist/{shared-CMw4odDH.js → shared-DZ9YCnZC.js} +2 -2
  318. package/dist/{shared-CLXhDldI.js → shared-oaw6SrnD.js} +2 -2
  319. package/dist/{skill-commands-CWySL97a.js → skill-commands-BlfEmZ8t.js} +1 -1
  320. package/dist/{skill-commands-B64uavY9.js → skill-commands-C2kxEz5h.js} +1 -1
  321. package/dist/{skill-commands-DrFCB9F9.js → skill-commands-CSBmZ_di.js} +1 -1
  322. package/dist/{skill-commands-DWcJOIzP.js → skill-commands-C_ZNSYNS.js} +1 -1
  323. package/dist/{skills-cli-DIx7YItN.js → skills-cli-D9gvgM58.js} +2 -2
  324. package/dist/{skills-cli-CQ7XQ4Kn.js → skills-cli-DBVcmBEp.js} +2 -2
  325. package/dist/{status-s1Tp-jVl.js → status-BUX2e6T-.js} +11 -11
  326. package/dist/{status-cWLYsK8x.js → status-C6UoBmkd.js} +2 -2
  327. package/dist/{status-BXQGCrxj.js → status-DJDE9f6i.js} +12 -12
  328. package/dist/{status-kOpLSgWJ.js → status-oObYVZk-.js} +2 -2
  329. package/dist/{status.update-DlaskfTr.js → status.update-CbAFtv61.js} +1 -1
  330. package/dist/{status.update-BXs3adtg.js → status.update-qDyKo2AJ.js} +1 -1
  331. package/dist/{subagent-registry-XHBZsH3Q.js → subagent-registry-BmP1Rhns.js} +258 -71
  332. package/dist/{system-cli-DPNDYRBr.js → system-cli-DpluDf4c.js} +4 -4
  333. package/dist/{system-cli-D10NhXw1.js → system-cli-gtr03ReO.js} +4 -4
  334. package/dist/{systemd-hints-Bm2H1erP.js → systemd-hints-Bmr_bzjF.js} +1 -1
  335. package/dist/{systemd-hints-BBPT8Use.js → systemd-hints-CnG98ooq.js} +1 -1
  336. package/dist/{tui-pvq_HI-q.js → tui-DnLFki4B.js} +16 -7
  337. package/dist/{tui-4d-MyU6O.js → tui-UMEqttti.js} +16 -7
  338. package/dist/{tui-cli-BsSKYVE3.js → tui-cli-ChVrbXQ7.js} +11 -11
  339. package/dist/{tui-cli-9uTZZ13F.js → tui-cli-DaL5S2ce.js} +11 -11
  340. package/dist/{update-cli-B3VC_mrH.js → update-cli-Bxb34ox7.js} +49 -49
  341. package/dist/{update-cli-_1YRH17q.js → update-cli-C-zL3WoC.js} +47 -47
  342. package/dist/{update-runner-Dsc1_XOK.js → update-runner-D9rjTCpa.js} +1 -1
  343. package/dist/{update-runner-DBbX4Iin.js → update-runner-rav9ZMjZ.js} +1 -1
  344. package/dist/{web-JIG-oxRW.js → web-4xYayj1G.js} +37 -37
  345. package/dist/{web-DjgeLZ5l.js → web-BS91XHKA.js} +21 -21
  346. package/dist/{web-DzjJ_iNt.js → web-DlKbVYgh.js} +37 -37
  347. package/dist/{web-CmZZsoMg.js → web-OmlhMCcZ.js} +21 -21
  348. package/dist/{webhooks-cli-B0Crq2Ec.js → webhooks-cli-BxXpx8Hu.js} +2 -2
  349. package/dist/{webhooks-cli-CLIdArAE.js → webhooks-cli-CvbEWtdd.js} +2 -2
  350. package/dist/{whatsapp-actions-Jfx4zcwv.js → whatsapp-actions-7xW0TEHg.js} +3 -3
  351. package/dist/{whatsapp-actions-B821AFp-.js → whatsapp-actions-B3zu-BhB.js} +3 -3
  352. package/dist/{whatsapp-actions-BL7tCNC_.js → whatsapp-actions-BWERIEcF.js} +3 -3
  353. package/dist/{whatsapp-actions-BIjGyW3T.js → whatsapp-actions-DAFOi466.js} +3 -3
  354. package/dist/{with-timeout-Cj_xUxo6.js → with-timeout-C6nbJrH1.js} +1 -1
  355. package/dist/{with-timeout-BeA4Jxcl.js → with-timeout-CNkLG3QR.js} +1 -1
  356. package/docs/reference/templates/SYMIPULSE.md +23 -1
  357. package/package.json +1 -1
@@ -4,28 +4,28 @@ import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWork
4
4
  import "./subsystem-Bs9YvKLa.js";
5
5
  import "./workspace-wAaHI8-5.js";
6
6
  import "./tokens-H1H1LiSQ.js";
7
- import { t as runEmbeddedPiAgent } from "./pi-embedded-DDe6lqPs.js";
7
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-DUUw7-tO.js";
8
8
  import "./plugins-DQYI3Fr-.js";
9
9
  import "./accounts-tNElYrCH.js";
10
10
  import "./boolean-B8-BqKGQ.js";
11
11
  import "./command-format-BaxDnULz.js";
12
12
  import "./bindings-B7Ke6LJi.js";
13
- import "./send-CHOArYFe.js";
14
- import "./send-D3M6pMr5.js";
15
- import "./deliver-B3UoBZdC.js";
13
+ import "./send-BPqK6C8h.js";
14
+ import "./send-DZbplWNh.js";
15
+ import "./deliver-DXVMhb3A.js";
16
16
  import "./diagnostic-CI0kRQkt.js";
17
17
  import "./diagnostic-session-state-Bxo4UHOL.js";
18
18
  import "./accounts-CWktKM8a.js";
19
- import "./send-D_yJMeJa.js";
19
+ import "./send-DiBs_eJc.js";
20
20
  import "./image-ops-CvJzsyvE.js";
21
- import "./model-auth-CeL58m55.js";
21
+ import "./model-auth-Db8I8QVL.js";
22
22
  import "./github-copilot-token-C_qUP7p5.js";
23
23
  import "./pi-model-discovery-DaNAekda.js";
24
24
  import "./message-channel-Dz5lr5b0.js";
25
- import "./pi-embedded-helpers-kB5lBgXk.js";
26
- import "./config-DM0K7qC1.js";
25
+ import "./pi-embedded-helpers-CLip13MP.js";
26
+ import "./config-C_1uZzwy.js";
27
27
  import "./manifest-registry-D0IQ3WuX.js";
28
- import "./chrome-LmEyZdbC.js";
28
+ import "./chrome-DrxNYzTD.js";
29
29
  import "./frontmatter-C_bv_0P8.js";
30
30
  import "./skills-BFekKL7i.js";
31
31
  import "./redact-jSxx6Ep2.js";
@@ -36,10 +36,10 @@ import "./thinking-CdlENGRW.js";
36
36
  import "./accounts-qtxJ-6em.js";
37
37
  import "./paths-DLyHUt31.js";
38
38
  import "./tool-images-DXB7tqWi.js";
39
- import "./image-RFofsrof.js";
39
+ import "./image-Bf_jHnTg.js";
40
40
  import "./reply-prefix-XlyuyChD.js";
41
- import "./manager-B5EXdBQV.js";
42
- import "./gemini-auth-7AWT6JXV.js";
41
+ import "./manager-D5ZbBYmN.js";
42
+ import "./gemini-auth-2cinXFeY.js";
43
43
  import "./sqlite-DRbx2dhW.js";
44
44
  import "./retry-Cly39XZB.js";
45
45
  import "./target-errors-Be1SwYlW.js";
@@ -48,18 +48,18 @@ import "./markdown-tables-iMQQZu4Q.js";
48
48
  import "./local-roots-DMwIh5cS.js";
49
49
  import "./ir-DccrnjsE.js";
50
50
  import "./render-CDCvpfhh.js";
51
- import "./commands-registry-C3C4Rv3O.js";
52
- import "./skill-commands-B64uavY9.js";
53
- import "./runner-DOvsNiYz.js";
51
+ import "./commands-registry-tuRMQmX4.js";
52
+ import "./skill-commands-C2kxEz5h.js";
53
+ import "./runner-BHZy2rvh.js";
54
54
  import "./fetch-Bso4i15F.js";
55
55
  import "./channel-activity-CsM_hJ_s.js";
56
56
  import "./tables-DuZspiBu.js";
57
- import "./send-CzE5UKr-.js";
57
+ import "./send-BbscKwuU.js";
58
58
  import "./outbound-attachment-DjNDa3zn.js";
59
- import "./send-BeASPkFg.js";
59
+ import "./send-Bj3PJmrF.js";
60
60
  import "./resolve-route-CZ-1eqw0.js";
61
61
  import "./proxy-CBJ1upuz.js";
62
- import "./replies-D9V19U2-.js";
62
+ import "./replies-Bhx469BX.js";
63
63
  import fs from "node:fs/promises";
64
64
  import os from "node:os";
65
65
  import path from "node:path";
@@ -2,9 +2,9 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Ct as success, _ as defaultRuntime, gt as info, ht as danger } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { o as logInfo } from "./exec-CBKBIMpA.js";
5
- import { i as loadConfig } from "./config-amjzHiWZ.js";
5
+ import { i as loadConfig } from "./config-COvlkain.js";
6
6
  import { n as resolveWhatsAppAccount, o as logoutWeb } from "./accounts-D9ITgITj.js";
7
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-BjcsCwgz.js";
7
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-Dw3zM2St.js";
8
8
  import { DisconnectReason } from "@whiskeysockets/baileys";
9
9
 
10
10
  //#region src/web/login.ts
@@ -4,8 +4,8 @@ import { r as defaultRuntime } from "./subsystem-Bs9YvKLa.js";
4
4
  import { x as logInfo } from "./workspace-wAaHI8-5.js";
5
5
  import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
6
6
  import { t as formatCliCommand } from "./command-format-BaxDnULz.js";
7
- import { n as loadConfig } from "./config-DM0K7qC1.js";
8
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-T0JXlYWe.js";
7
+ import { n as loadConfig } from "./config-C_1uZzwy.js";
8
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-D4FMCkcS.js";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
 
11
11
  //#region src/web/login.ts
@@ -3,9 +3,9 @@ import { I as success, O as danger, k as info } from "./utils-B-0b9bGM.js";
3
3
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
4
4
  import { o as logInfo } from "./exec-CWkblSrI.js";
5
5
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
6
- import { i as loadConfig } from "./config-Dgn_cL29.js";
6
+ import { i as loadConfig } from "./config-DB5jMj3Z.js";
7
7
  import { n as resolveWhatsAppAccount, o as logoutWeb } from "./accounts-DDuIpcln.js";
8
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-BeJq-MLE.js";
8
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-B4Bibpie.js";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
 
11
11
  //#region src/web/login.ts
@@ -4,8 +4,8 @@ import { A as logInfo } from "./agent-scope-Cbl5pNe1.js";
4
4
  import { r as defaultRuntime } from "./subsystem-CZixfwU8.js";
5
5
  import { r as formatCliCommand } from "./env-CQ_DQOwT.js";
6
6
  import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
7
- import { n as loadConfig } from "./config-BjGo9GnL.js";
8
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-BkVBeAkg.js";
7
+ import { n as loadConfig } from "./config-BUHRlrbS.js";
8
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-lD2CnIWX.js";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
 
11
11
  //#region src/web/login.ts
@@ -2,13 +2,13 @@ import "./paths-CE7eVGHg.js";
2
2
  import { U as danger, W as info, X as success } from "./registry-BhoUuugi.js";
3
3
  import { A as logInfo } from "./agent-scope-Cbl5pNe1.js";
4
4
  import { r as defaultRuntime } from "./subsystem-CZixfwU8.js";
5
- import "./model-selection--4t4F87n.js";
5
+ import "./model-selection-DBPwoBvb.js";
6
6
  import "./github-copilot-token-BbsJ0Qbo.js";
7
7
  import "./env-CQ_DQOwT.js";
8
8
  import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
9
- import { n as loadConfig } from "./config-BjGo9GnL.js";
9
+ import { n as loadConfig } from "./config-BUHRlrbS.js";
10
10
  import "./manifest-registry-D-mTF1cj.js";
11
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BkVBeAkg.js";
11
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-lD2CnIWX.js";
12
12
  import { randomUUID } from "node:crypto";
13
13
  import { DisconnectReason } from "@whiskeysockets/baileys";
14
14
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -1,13 +1,13 @@
1
1
  import { Ct as success, _ as defaultRuntime, gt as info, ht as danger } from "./entry.js";
2
- import "./auth-profiles-BD22fK4p.js";
2
+ import "./auth-profiles-Cs3GPB03.js";
3
3
  import { o as logInfo } from "./exec-CBKBIMpA.js";
4
4
  import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-Czr39pxG.js";
7
- import { i as loadConfig } from "./config-amjzHiWZ.js";
7
+ import { i as loadConfig } from "./config-COvlkain.js";
8
8
  import { m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
9
9
  import "./logging-CFvkxgcX.js";
10
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BjcsCwgz.js";
10
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-Dw3zM2St.js";
11
11
  import { randomUUID } from "node:crypto";
12
12
  import { DisconnectReason } from "@whiskeysockets/baileys";
13
13
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -4,15 +4,15 @@ import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import { o as logInfo } from "./exec-CWkblSrI.js";
6
6
  import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-Csawd2_i.js";
7
+ import "./model-selection-BBrZnKDw.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
- import { i as loadConfig } from "./config-Dgn_cL29.js";
11
+ import { i as loadConfig } from "./config-DB5jMj3Z.js";
12
12
  import "./manifest-registry-C4BxOMWX.js";
13
13
  import { m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
14
14
  import "./logging-w5jq5901.js";
15
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BeJq-MLE.js";
15
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-B4Bibpie.js";
16
16
  import { randomUUID } from "node:crypto";
17
17
  import { DisconnectReason } from "@whiskeysockets/baileys";
18
18
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -6,11 +6,11 @@ import { x as logInfo } from "./workspace-wAaHI8-5.js";
6
6
  import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
7
7
  import "./boolean-B8-BqKGQ.js";
8
8
  import "./command-format-BaxDnULz.js";
9
- import "./model-auth-CeL58m55.js";
9
+ import "./model-auth-Db8I8QVL.js";
10
10
  import "./github-copilot-token-C_qUP7p5.js";
11
- import { n as loadConfig } from "./config-DM0K7qC1.js";
11
+ import { n as loadConfig } from "./config-C_1uZzwy.js";
12
12
  import "./manifest-registry-D0IQ3WuX.js";
13
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-T0JXlYWe.js";
13
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-D4FMCkcS.js";
14
14
  import { randomUUID } from "node:crypto";
15
15
  import { DisconnectReason } from "@whiskeysockets/baileys";
16
16
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -1,18 +1,18 @@
1
1
  import { Dt as theme, Et as isRich, Tt as colorize, p as formatLocalIsoWithOffset, y as clearActiveProgressLine } from "./entry.js";
2
- import "./auth-profiles-BD22fK4p.js";
2
+ import "./auth-profiles-Cs3GPB03.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import "./exec-CBKBIMpA.js";
5
5
  import "./agent-scope-D-jRCY0d.js";
6
6
  import "./github-copilot-token-DuFIqfeC.js";
7
7
  import "./manifest-registry-Czr39pxG.js";
8
- import "./config-amjzHiWZ.js";
8
+ import "./config-COvlkain.js";
9
9
  import "./client-DMBZpU6X.js";
10
- import { t as buildGatewayConnectionDetails } from "./call-BVw7l9v8.js";
10
+ import { t as buildGatewayConnectionDetails } from "./call-6AGLOo_A.js";
11
11
  import "./message-channel-C9dERklz.js";
12
12
  import "./pairing-token-Byh6drgn.js";
13
13
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
14
14
  import "./progress-BAHiAaDW.js";
15
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BTXPWO6j.js";
15
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CzQ2-09T.js";
16
16
  import { t as parseLogLine } from "./parse-log-line-C6yJx969.js";
17
17
  import { setTimeout } from "node:timers/promises";
18
18
 
@@ -4,20 +4,20 @@ import "./registry-Cja8eT7G.js";
4
4
  import { c as formatLocalIsoWithOffset, m as clearActiveProgressLine } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
6
  import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-Csawd2_i.js";
7
+ import "./model-selection-BBrZnKDw.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
10
10
  import "./boolean-BsqeuxE6.js";
11
11
  import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
- import "./config-Dgn_cL29.js";
13
+ import "./config-DB5jMj3Z.js";
14
14
  import "./manifest-registry-C4BxOMWX.js";
15
15
  import "./client-CQSyCS4M.js";
16
- import { t as buildGatewayConnectionDetails } from "./call-CJYWtIM9.js";
16
+ import { t as buildGatewayConnectionDetails } from "./call-TvMa4u8t.js";
17
17
  import "./pairing-token-CX3NN_qj.js";
18
18
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
19
19
  import "./progress-jIePzvGA.js";
20
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Cx0HPjI7.js";
20
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DijKM-l5.js";
21
21
  import { t as parseLogLine } from "./parse-log-line-BHCUQaF3.js";
22
22
  import { setTimeout } from "node:timers/promises";
23
23
 
@@ -3,12 +3,12 @@ import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
3
3
  import { C as clampNumber, P as resolveUserPath, S as clampInt, V as truncateUtf16Safe } from "./registry-BhoUuugi.js";
4
4
  import { n as resolveAgentConfig, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-Cbl5pNe1.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
- import { T as resolveApiKeyForProvider, w as requireApiKey } from "./model-selection--4t4F87n.js";
6
+ import { T as resolveApiKeyForProvider, w as requireApiKey } from "./model-selection-DBPwoBvb.js";
7
7
  import { t as isTruthyEnvValue } from "./env-CQ_DQOwT.js";
8
8
  import { n as formatErrorMessage } from "./errors-CPfngF0S.js";
9
9
  import { o as resolveSessionTranscriptsDirForAgent } from "./paths-DkMamAQ-.js";
10
10
  import { n as onSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
11
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-K6vg8B5c.js";
11
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DtBB7-5F.js";
12
12
  import { _ as isFileMissingError, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath, v as statRegularFile } from "./sqlite-BNh23mUR.js";
13
13
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
14
14
  import path from "node:path";
@@ -63,7 +63,7 @@ function mergeConfig(defaults, overrides, agentId) {
63
63
  const provider = overrides?.provider ?? defaults?.provider ?? "auto";
64
64
  const defaultRemote = defaults?.remote;
65
65
  const overrideRemote = overrides?.remote;
66
- const includeRemote = Boolean(overrideRemote?.baseUrl || overrideRemote?.apiKey || overrideRemote?.headers || defaultRemote?.baseUrl || defaultRemote?.apiKey || defaultRemote?.headers) || provider === "openai" || provider === "gemini" || provider === "voyage" || provider === "auto";
66
+ const includeRemote = Boolean(overrideRemote?.baseUrl || overrideRemote?.apiKey || overrideRemote?.headers || defaultRemote?.baseUrl || defaultRemote?.apiKey || defaultRemote?.headers) || provider === "openai" || provider === "gemini" || provider === "voyage" || provider === "ollama" || provider === "auto";
67
67
  const batch = {
68
68
  enabled: overrideRemote?.batch?.enabled ?? defaultRemote?.batch?.enabled ?? false,
69
69
  wait: overrideRemote?.batch?.wait ?? defaultRemote?.batch?.wait ?? true,
@@ -330,6 +330,124 @@ async function resolveGeminiEmbeddingClient(options) {
330
330
  };
331
331
  }
332
332
 
333
+ //#endregion
334
+ //#region src/memory/embeddings-remote-fetch.ts
335
+ async function fetchRemoteEmbeddingVectors(params) {
336
+ const res = await fetch(params.url, {
337
+ method: "POST",
338
+ headers: params.headers,
339
+ body: JSON.stringify(params.body)
340
+ });
341
+ if (!res.ok) {
342
+ const text = await res.text();
343
+ throw new Error(`${params.errorPrefix}: ${res.status} ${text}`);
344
+ }
345
+ return ((await res.json()).data ?? []).map((entry) => entry.embedding ?? []);
346
+ }
347
+
348
+ //#endregion
349
+ //#region src/memory/embeddings-ollama.ts
350
+ /**
351
+ * Known embedding model name prefixes. Ollama's `/api/tags` does not expose
352
+ * model capabilities, so we rely on well-known naming patterns.
353
+ */
354
+ const EMBEDDING_MODEL_PATTERNS = [
355
+ "nomic-embed",
356
+ "mxbai-embed",
357
+ "all-minilm",
358
+ "bge-",
359
+ "snowflake-arctic-embed",
360
+ "gte-",
361
+ "e5-",
362
+ "multilingual-e5",
363
+ "paraphrase-",
364
+ "jina-embeddings",
365
+ "stella-"
366
+ ];
367
+ function isEmbeddingModel(name) {
368
+ const lower = name.toLowerCase();
369
+ return EMBEDDING_MODEL_PATTERNS.some((pattern) => lower.includes(pattern));
370
+ }
371
+ /**
372
+ * Resolve the Ollama API base URL from config or defaults.
373
+ * Strips any trailing `/v1` suffix since we need the native API base.
374
+ */
375
+ function resolveOllamaBaseUrl(cfg) {
376
+ const configured = cfg?.models?.providers?.ollama?.baseUrl?.trim() ?? void 0;
377
+ if (configured) return configured.replace(/\/v1\/?$/, "").replace(/\/$/, "");
378
+ return "http://127.0.0.1:11434";
379
+ }
380
+ /**
381
+ * Probe an Ollama instance for available embedding models.
382
+ * Returns null if Ollama is unreachable or has no embedding models.
383
+ */
384
+ async function probeOllamaEmbeddingModels(baseUrl) {
385
+ try {
386
+ const controller = new AbortController();
387
+ const timeout = setTimeout(() => controller.abort(), 5e3);
388
+ const res = await fetch(`${baseUrl}/api/tags`, { signal: controller.signal });
389
+ clearTimeout(timeout);
390
+ if (!res.ok) return null;
391
+ const models = ((await res.json()).models ?? []).map((m) => m.name ?? "").filter(Boolean).filter(isEmbeddingModel);
392
+ if (models.length === 0) return null;
393
+ return {
394
+ models,
395
+ baseUrl
396
+ };
397
+ } catch {
398
+ return null;
399
+ }
400
+ }
401
+ /**
402
+ * Create an embedding provider that uses Ollama's OpenAI-compatible
403
+ * `/v1/embeddings` endpoint. No auth header is required for local Ollama.
404
+ */
405
+ async function createOllamaEmbeddingProvider(options) {
406
+ const cfg = options.config;
407
+ const remoteBaseUrl = options.remote?.baseUrl?.trim();
408
+ let ollamaBase;
409
+ if (remoteBaseUrl) ollamaBase = remoteBaseUrl.replace(/\/v1\/?$/, "").replace(/\/$/, "");
410
+ else ollamaBase = resolveOllamaBaseUrl(cfg);
411
+ let model = options.model?.trim();
412
+ if (!model) {
413
+ const probe = await probeOllamaEmbeddingModels(ollamaBase);
414
+ if (!probe || probe.models.length === 0) throw new Error(`No embedding models found on Ollama at ${ollamaBase}. Pull one with: ollama pull nomic-embed-text`);
415
+ model = probe.models[0];
416
+ }
417
+ const embeddingsUrl = `${ollamaBase}/v1/embeddings`;
418
+ const headers = { "Content-Type": "application/json" };
419
+ const apiKey = options.remote?.apiKey?.trim();
420
+ if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
421
+ const client = {
422
+ baseUrl: ollamaBase,
423
+ model
424
+ };
425
+ const embed = async (input) => {
426
+ if (input.length === 0) return [];
427
+ return await fetchRemoteEmbeddingVectors({
428
+ url: embeddingsUrl,
429
+ headers,
430
+ body: {
431
+ model,
432
+ input
433
+ },
434
+ errorPrefix: "ollama embeddings failed"
435
+ });
436
+ };
437
+ return {
438
+ provider: {
439
+ id: "ollama",
440
+ model,
441
+ embedQuery: async (text) => {
442
+ const [vec] = await embed([text]);
443
+ return vec ?? [];
444
+ },
445
+ embedBatch: embed
446
+ },
447
+ client
448
+ };
449
+ }
450
+
333
451
  //#endregion
334
452
  //#region src/memory/embeddings-remote-client.ts
335
453
  async function resolveRemoteEmbeddingBearerClient(params) {
@@ -354,21 +472,6 @@ async function resolveRemoteEmbeddingBearerClient(params) {
354
472
  };
355
473
  }
356
474
 
357
- //#endregion
358
- //#region src/memory/embeddings-remote-fetch.ts
359
- async function fetchRemoteEmbeddingVectors(params) {
360
- const res = await fetch(params.url, {
361
- method: "POST",
362
- headers: params.headers,
363
- body: JSON.stringify(params.body)
364
- });
365
- if (!res.ok) {
366
- const text = await res.text();
367
- throw new Error(`${params.errorPrefix}: ${res.status} ${text}`);
368
- }
369
- return ((await res.json()).data ?? []).map((entry) => entry.embedding ?? []);
370
- }
371
-
372
475
  //#endregion
373
476
  //#region src/memory/embeddings-openai.ts
374
477
  const DEFAULT_OPENAI_EMBEDDING_MODEL = "text-embedding-3-small";
@@ -556,6 +659,13 @@ async function createEmbeddingProvider(options) {
556
659
  const fallback = options.fallback;
557
660
  const createProvider = async (id) => {
558
661
  if (id === "local") return { provider: await createLocalEmbeddingProvider(options) };
662
+ if (id === "ollama") {
663
+ const { provider, client } = await createOllamaEmbeddingProvider(options);
664
+ return {
665
+ provider,
666
+ ollama: client
667
+ };
668
+ }
559
669
  if (id === "gemini") {
560
670
  const { provider, client } = await createGeminiEmbeddingProvider(options);
561
671
  return {
@@ -588,6 +698,13 @@ async function createEmbeddingProvider(options) {
588
698
  } catch (err) {
589
699
  localError = formatLocalSetupError(err);
590
700
  }
701
+ try {
702
+ const probe = await probeOllamaEmbeddingModels(resolveOllamaBaseUrl(options.config));
703
+ if (probe && probe.models.length > 0) return {
704
+ ...await createProvider("ollama"),
705
+ requestedProvider
706
+ };
707
+ } catch {}
591
708
  for (const provider of REMOTE_EMBEDDING_PROVIDER_IDS) try {
592
709
  return {
593
710
  ...await createProvider(provider),
@@ -3742,4 +3859,4 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
3742
3859
  };
3743
3860
 
3744
3861
  //#endregion
3745
- export { resolveMemorySearchConfig as n, manager_exports as t };
3862
+ export { resolveMemorySearchConfig as i, probeOllamaEmbeddingModels as n, resolveOllamaBaseUrl as r, manager_exports as t };
@@ -3,12 +3,12 @@ import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
3
3
  import { E as truncateUtf16Safe, a as clampNumber, i as clampInt, y as resolveUserPath } from "./utils-B-0b9bGM.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, i as resolveAgentDir, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
6
- import { K as requireApiKey, q as resolveApiKeyForProvider } from "./model-selection-Csawd2_i.js";
6
+ import { K as requireApiKey, q as resolveApiKeyForProvider } from "./model-selection-BBrZnKDw.js";
7
7
  import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
8
8
  import { n as formatErrorMessage } from "./errors-BF3TeRH2.js";
9
9
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-CyhzMxFA.js";
10
10
  import { n as onSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
11
- import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-BukD0zzl.js";
11
+ import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-De1ivBc0.js";
12
12
  import { _ as statRegularFile, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as isFileMissingError, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath } from "./sqlite-Dx3J_aSE.js";
13
13
  import { n as retryAsync } from "./retry-BoS4e4X_.js";
14
14
  import fs from "node:fs";
@@ -63,7 +63,7 @@ function mergeConfig(defaults, overrides, agentId) {
63
63
  const provider = overrides?.provider ?? defaults?.provider ?? "auto";
64
64
  const defaultRemote = defaults?.remote;
65
65
  const overrideRemote = overrides?.remote;
66
- const includeRemote = Boolean(overrideRemote?.baseUrl || overrideRemote?.apiKey || overrideRemote?.headers || defaultRemote?.baseUrl || defaultRemote?.apiKey || defaultRemote?.headers) || provider === "openai" || provider === "gemini" || provider === "voyage" || provider === "auto";
66
+ const includeRemote = Boolean(overrideRemote?.baseUrl || overrideRemote?.apiKey || overrideRemote?.headers || defaultRemote?.baseUrl || defaultRemote?.apiKey || defaultRemote?.headers) || provider === "openai" || provider === "gemini" || provider === "voyage" || provider === "ollama" || provider === "auto";
67
67
  const batch = {
68
68
  enabled: overrideRemote?.batch?.enabled ?? defaultRemote?.batch?.enabled ?? false,
69
69
  wait: overrideRemote?.batch?.wait ?? defaultRemote?.batch?.wait ?? true,
@@ -330,6 +330,124 @@ async function resolveGeminiEmbeddingClient(options) {
330
330
  };
331
331
  }
332
332
 
333
+ //#endregion
334
+ //#region src/memory/embeddings-remote-fetch.ts
335
+ async function fetchRemoteEmbeddingVectors(params) {
336
+ const res = await fetch(params.url, {
337
+ method: "POST",
338
+ headers: params.headers,
339
+ body: JSON.stringify(params.body)
340
+ });
341
+ if (!res.ok) {
342
+ const text = await res.text();
343
+ throw new Error(`${params.errorPrefix}: ${res.status} ${text}`);
344
+ }
345
+ return ((await res.json()).data ?? []).map((entry) => entry.embedding ?? []);
346
+ }
347
+
348
+ //#endregion
349
+ //#region src/memory/embeddings-ollama.ts
350
+ /**
351
+ * Known embedding model name prefixes. Ollama's `/api/tags` does not expose
352
+ * model capabilities, so we rely on well-known naming patterns.
353
+ */
354
+ const EMBEDDING_MODEL_PATTERNS = [
355
+ "nomic-embed",
356
+ "mxbai-embed",
357
+ "all-minilm",
358
+ "bge-",
359
+ "snowflake-arctic-embed",
360
+ "gte-",
361
+ "e5-",
362
+ "multilingual-e5",
363
+ "paraphrase-",
364
+ "jina-embeddings",
365
+ "stella-"
366
+ ];
367
+ function isEmbeddingModel(name) {
368
+ const lower = name.toLowerCase();
369
+ return EMBEDDING_MODEL_PATTERNS.some((pattern) => lower.includes(pattern));
370
+ }
371
+ /**
372
+ * Resolve the Ollama API base URL from config or defaults.
373
+ * Strips any trailing `/v1` suffix since we need the native API base.
374
+ */
375
+ function resolveOllamaBaseUrl(cfg) {
376
+ const configured = cfg?.models?.providers?.ollama?.baseUrl?.trim() ?? void 0;
377
+ if (configured) return configured.replace(/\/v1\/?$/, "").replace(/\/$/, "");
378
+ return "http://127.0.0.1:11434";
379
+ }
380
+ /**
381
+ * Probe an Ollama instance for available embedding models.
382
+ * Returns null if Ollama is unreachable or has no embedding models.
383
+ */
384
+ async function probeOllamaEmbeddingModels(baseUrl) {
385
+ try {
386
+ const controller = new AbortController();
387
+ const timeout = setTimeout(() => controller.abort(), 5e3);
388
+ const res = await fetch(`${baseUrl}/api/tags`, { signal: controller.signal });
389
+ clearTimeout(timeout);
390
+ if (!res.ok) return null;
391
+ const models = ((await res.json()).models ?? []).map((m) => m.name ?? "").filter(Boolean).filter(isEmbeddingModel);
392
+ if (models.length === 0) return null;
393
+ return {
394
+ models,
395
+ baseUrl
396
+ };
397
+ } catch {
398
+ return null;
399
+ }
400
+ }
401
+ /**
402
+ * Create an embedding provider that uses Ollama's OpenAI-compatible
403
+ * `/v1/embeddings` endpoint. No auth header is required for local Ollama.
404
+ */
405
+ async function createOllamaEmbeddingProvider(options) {
406
+ const cfg = options.config;
407
+ const remoteBaseUrl = options.remote?.baseUrl?.trim();
408
+ let ollamaBase;
409
+ if (remoteBaseUrl) ollamaBase = remoteBaseUrl.replace(/\/v1\/?$/, "").replace(/\/$/, "");
410
+ else ollamaBase = resolveOllamaBaseUrl(cfg);
411
+ let model = options.model?.trim();
412
+ if (!model) {
413
+ const probe = await probeOllamaEmbeddingModels(ollamaBase);
414
+ if (!probe || probe.models.length === 0) throw new Error(`No embedding models found on Ollama at ${ollamaBase}. Pull one with: ollama pull nomic-embed-text`);
415
+ model = probe.models[0];
416
+ }
417
+ const embeddingsUrl = `${ollamaBase}/v1/embeddings`;
418
+ const headers = { "Content-Type": "application/json" };
419
+ const apiKey = options.remote?.apiKey?.trim();
420
+ if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
421
+ const client = {
422
+ baseUrl: ollamaBase,
423
+ model
424
+ };
425
+ const embed = async (input) => {
426
+ if (input.length === 0) return [];
427
+ return await fetchRemoteEmbeddingVectors({
428
+ url: embeddingsUrl,
429
+ headers,
430
+ body: {
431
+ model,
432
+ input
433
+ },
434
+ errorPrefix: "ollama embeddings failed"
435
+ });
436
+ };
437
+ return {
438
+ provider: {
439
+ id: "ollama",
440
+ model,
441
+ embedQuery: async (text) => {
442
+ const [vec] = await embed([text]);
443
+ return vec ?? [];
444
+ },
445
+ embedBatch: embed
446
+ },
447
+ client
448
+ };
449
+ }
450
+
333
451
  //#endregion
334
452
  //#region src/memory/embeddings-remote-client.ts
335
453
  async function resolveRemoteEmbeddingBearerClient(params) {
@@ -354,21 +472,6 @@ async function resolveRemoteEmbeddingBearerClient(params) {
354
472
  };
355
473
  }
356
474
 
357
- //#endregion
358
- //#region src/memory/embeddings-remote-fetch.ts
359
- async function fetchRemoteEmbeddingVectors(params) {
360
- const res = await fetch(params.url, {
361
- method: "POST",
362
- headers: params.headers,
363
- body: JSON.stringify(params.body)
364
- });
365
- if (!res.ok) {
366
- const text = await res.text();
367
- throw new Error(`${params.errorPrefix}: ${res.status} ${text}`);
368
- }
369
- return ((await res.json()).data ?? []).map((entry) => entry.embedding ?? []);
370
- }
371
-
372
475
  //#endregion
373
476
  //#region src/memory/embeddings-openai.ts
374
477
  const DEFAULT_OPENAI_EMBEDDING_MODEL = "text-embedding-3-small";
@@ -556,6 +659,13 @@ async function createEmbeddingProvider(options) {
556
659
  const fallback = options.fallback;
557
660
  const createProvider = async (id) => {
558
661
  if (id === "local") return { provider: await createLocalEmbeddingProvider(options) };
662
+ if (id === "ollama") {
663
+ const { provider, client } = await createOllamaEmbeddingProvider(options);
664
+ return {
665
+ provider,
666
+ ollama: client
667
+ };
668
+ }
559
669
  if (id === "gemini") {
560
670
  const { provider, client } = await createGeminiEmbeddingProvider(options);
561
671
  return {
@@ -588,6 +698,13 @@ async function createEmbeddingProvider(options) {
588
698
  } catch (err) {
589
699
  localError = formatLocalSetupError(err);
590
700
  }
701
+ try {
702
+ const probe = await probeOllamaEmbeddingModels(resolveOllamaBaseUrl(options.config));
703
+ if (probe && probe.models.length > 0) return {
704
+ ...await createProvider("ollama"),
705
+ requestedProvider
706
+ };
707
+ } catch {}
591
708
  for (const provider of REMOTE_EMBEDDING_PROVIDER_IDS) try {
592
709
  return {
593
710
  ...await createProvider(provider),
@@ -3742,4 +3859,4 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
3742
3859
  };
3743
3860
 
3744
3861
  //#endregion
3745
- export { resolveMemorySearchConfig as n, manager_exports as t };
3862
+ export { resolveMemorySearchConfig as i, probeOllamaEmbeddingModels as n, resolveOllamaBaseUrl as r, manager_exports as t };