vora-ai 0.1.21 → 0.1.23

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 (212) hide show
  1. package/dist/.buildstamp +1 -1
  2. package/dist/{abort-B4kfwcS5.js → abort-CapTBYfO.js} +1 -1
  3. package/dist/{abort.runtime-DGrMeV98.js → abort.runtime-B2L0T4xX.js} +1 -1
  4. package/dist/abort.runtime.js +1 -1
  5. package/dist/{access-CcOyAtuo.js → access-C1waHHCT.js} +1 -1
  6. package/dist/{account-inspect-D0DhRHYy.js → account-inspect-vzMWuUiw.js} +2 -2
  7. package/dist/{accounts-DR3Lgm_W.js → accounts-By131shu.js} +1 -1
  8. package/dist/{action-runtime-api-BezdLfcO.js → action-runtime-api-BlTKmnjT.js} +1 -1
  9. package/dist/agent-BqeyM0Df.js +2 -0
  10. package/dist/{agent-command-Dcd6_Y1M.js → agent-command-ChaqoOVP.js} +2 -2
  11. package/dist/{agent-runner.runtime-yDSxJOOP.js → agent-runner.runtime-DHQmZDyk.js} +2 -2
  12. package/dist/agent-runner.runtime.js +1 -1
  13. package/dist/{agent-runtime-BI1M4qrn.js → agent-runtime-BPkzqsFe.js} +2 -2
  14. package/dist/{agents-BiTjBpu0.js → agents-B5dF1TwM.js} +1 -1
  15. package/dist/{agents-BEo_YTpt.js → agents-QPM9ikB1.js} +1 -1
  16. package/dist/{anthropic-vertex-stream-D_8kv2T6.js → anthropic-vertex-stream-BI2eNOzt.js} +6 -4
  17. package/dist/api-Ddogv2Ry.js +10 -0
  18. package/dist/{audit-h9sni26f.js → audit-BxJZO_zF.js} +1 -1
  19. package/dist/{auth-choice-DWjgJ3qY.js → auth-choice-BcjDycfQ.js} +1 -1
  20. package/dist/{auth-choice-DAXlkaSE.js → auth-choice-Du3HNQ-5.js} +91 -1
  21. package/dist/{auth-choice-BRNAh5kg.js → auth-choice-J0HAmWN0.js} +2 -2
  22. package/dist/{bot-message-context-DX_xQEZi.js → bot-message-context-CvUJo45Z.js} +1 -1
  23. package/dist/{bot-message-context-BFErQcUe.js → bot-message-context-DPPD8z8T.js} +6 -6
  24. package/dist/{bot-native-commands.delivery.runtime-BT3KrLi7.js → bot-native-commands.delivery.runtime-KLbHzi42.js} +1 -1
  25. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  26. package/dist/build-info.json +2 -2
  27. package/dist/bundled/boot-md/handler.js +2 -2
  28. package/dist/bundled/session-memory/handler.js +1 -1
  29. package/dist/{channel-B_VDvQ6I.js → channel-YaYcTHBn.js} +11 -11
  30. package/dist/{channel-inbound-GKXaefYf.js → channel-inbound-yGZd8P2p.js} +1 -1
  31. package/dist/{cli-runner-DwWBHT0e.js → cli-runner-BtFP9ZDY.js} +2 -2
  32. package/dist/cli-startup-metadata.json +1 -1
  33. package/dist/{command-auth-8OU-oEdy.js → command-auth-ecE1e0yJ.js} +3 -3
  34. package/dist/{command-registry-CKMAtGed.js → command-registry-BP9HOWQJ.js} +1 -1
  35. package/dist/{command-registry-B3BqoIkR.js → command-registry-CkOX04wZ.js} +8 -8
  36. package/dist/commands-DUGRjVzi.js +4 -0
  37. package/dist/{commands-acp-D4PpUbzE.js → commands-acp-DH_ctK0w.js} +2 -2
  38. package/dist/{commands-core-BAXuZWBN.js → commands-core-BdU-dzmN.js} +2 -2
  39. package/dist/commands-core.runtime-Bj8pI_ic.js +2 -0
  40. package/dist/commands-core.runtime.js +1 -1
  41. package/dist/{commands-handlers.runtime-CO4OySbF.js → commands-handlers.runtime-CHvlPEjL.js} +10 -10
  42. package/dist/commands-handlers.runtime.js +1 -1
  43. package/dist/{commands-info-CbIOtDyL.js → commands-info-CeZj1BTP.js} +2 -2
  44. package/dist/commands-status.runtime-DMvqv4rf.js +2 -0
  45. package/dist/commands-status.runtime.js +1 -1
  46. package/dist/commands.runtime-D73wFV1F.js +4 -0
  47. package/dist/commands.runtime.js +1 -1
  48. package/dist/{compact.runtime-Bx0kerh3.js → compact.runtime-pZ8T4Mg7.js} +1 -1
  49. package/dist/compact.runtime.js +1 -1
  50. package/dist/{completion-cli-Dx917_Ki.js → completion-cli-BdV2GdQS.js} +2 -2
  51. package/dist/completion-cli-CRPdVDgt.js +2 -0
  52. package/dist/{config-cli-Cb7br09P.js → config-cli-BKrrEn_d.js} +1 -1
  53. package/dist/{configure-BR8tDhwB.js → configure-DRPrtNvz.js} +15 -11
  54. package/dist/{configure-5A5v--tp.js → configure-DeRNufVw.js} +1 -1
  55. package/dist/{core-D4F9u4eU.js → core-Cu12SQ-m.js} +1 -1
  56. package/dist/{delegate-BgQTilOH.js → delegate-BKLNVzEs.js} +1 -1
  57. package/dist/{delivery-Dn5iIbk0.js → delivery-HlRMyypl.js} +3 -3
  58. package/dist/{direct-dm-Dey5gG_D.js → direct-dm-DdRAvlgE.js} +1 -1
  59. package/dist/{directive-handling.fast-lane-Pe9WlOJw.js → directive-handling.fast-lane-BvDGLnH7.js} +1 -1
  60. package/dist/{directive-handling.fast-lane-IiMKkkUu.js → directive-handling.fast-lane-DzZKO5xx.js} +1 -1
  61. package/dist/{directive-handling.impl-DvDZmUDJ.js → directive-handling.impl-C7cKuDRM.js} +1 -1
  62. package/dist/{directive-handling.impl-BJwr4gCn.js → directive-handling.impl-D4R3wxB6.js} +1 -1
  63. package/dist/{directives-tfvnmDVj.js → directives-CnyV5n2h.js} +2 -2
  64. package/dist/{dispatch-C2yIdOm0.js → dispatch-DLfLgIpa.js} +2 -2
  65. package/dist/{doctor-completion-B_QhdCZp.js → doctor-completion-DiUg84qD.js} +1 -1
  66. package/dist/entry.js +1 -1
  67. package/dist/{exec-approvals-vJGesuih.js → exec-approvals-Brv_w1ot.js} +1 -1
  68. package/dist/extensionAPI.js +1 -1
  69. package/dist/extensions/browser/test-support.js +1 -1
  70. package/dist/extensions/discord/action-runtime-api.js +1 -1
  71. package/dist/extensions/discord/api.js +4 -4
  72. package/dist/extensions/discord/index.js +7 -7
  73. package/dist/extensions/discord/runtime-api.js +9 -9
  74. package/dist/extensions/discord/setup-entry.js +2 -2
  75. package/dist/extensions/discord/test-api.js +3 -3
  76. package/dist/extensions/openai/index.js +1 -1
  77. package/dist/extensions/openai/speech-provider.js +1 -1
  78. package/dist/extensions/openai/test-api.js +1 -1
  79. package/dist/extensions/openai/tts.js +1 -1
  80. package/dist/extensions/telegram/.vora-runtime-deps-stamp.json +1 -1
  81. package/dist/extensions/telegram/api.js +8 -8
  82. package/dist/extensions/telegram/index.js +2 -2
  83. package/dist/extensions/telegram/runtime-api.js +5 -5
  84. package/dist/extensions/telegram/setup-entry.js +3 -3
  85. package/dist/extensions/telegram/test-api.js +6 -6
  86. package/dist/extensions/telegram/test-support.js +3 -3
  87. package/dist/{format-mHHjl0q9.js → format-CmThbN8u.js} +1 -1
  88. package/dist/{gateway-cli-DgWf4PUv.js → gateway-cli-OUZNC688.js} +16 -16
  89. package/dist/get-reply-from-config.runtime-B5D7oWdB.js +2 -0
  90. package/dist/get-reply-from-config.runtime.js +1 -1
  91. package/dist/{handle-action-CxnNSFBT.js → handle-action-3iX4JE7g.js} +3 -3
  92. package/dist/{inbound-reply-dispatch-C_NWVZXD.js → inbound-reply-dispatch-BHeIOMCV.js} +1 -1
  93. package/dist/index.js +2 -2
  94. package/dist/{library-CpRampAw.js → library-Be3xVnRs.js} +1 -1
  95. package/dist/{llm-slug-generator--DCB2g_q.js → llm-slug-generator-Ca7RC3bR.js} +1 -1
  96. package/dist/llm-slug-generator.js +1 -1
  97. package/dist/{manager.runtime-CMCTPYfr.js → manager.runtime-CWEtc90Z.js} +5 -5
  98. package/dist/manager.runtime.js +1 -1
  99. package/dist/{message-handler-DNRscH-y.js → message-handler-DieRKjaI.js} +11 -11
  100. package/dist/{models-BHZBQszn.js → models-CdAKvkkK.js} +1 -1
  101. package/dist/{models-fel49EJn.js → models-DkEyqtG9.js} +2 -2
  102. package/dist/{models-cli-CuUwRN5g.js → models-cli-BRpNHKaZ.js} +1 -1
  103. package/dist/{monitor-Bj5WXVr6.js → monitor-LaiQ1pcl.js} +18 -18
  104. package/dist/{onboard-RuCpMGPL.js → onboard-BqJ8GcAg.js} +9 -3
  105. package/dist/{outbound-adapter-C05vLT0p.js → outbound-adapter-CWnsjhoL.js} +2 -2
  106. package/dist/plugin-sdk/agent-runtime.js +2 -2
  107. package/dist/plugin-sdk/channel-inbound.js +2 -2
  108. package/dist/plugin-sdk/command-auth.js +4 -4
  109. package/dist/plugin-sdk/compat.js +1 -1
  110. package/dist/plugin-sdk/core.js +2 -2
  111. package/dist/plugin-sdk/direct-dm.js +1 -1
  112. package/dist/plugin-sdk/index.js +1 -1
  113. package/dist/plugin-sdk/irc.js +1 -1
  114. package/dist/plugin-sdk/matrix-runtime-heavy.js +1 -1
  115. package/dist/plugin-sdk/msteams.js +1 -1
  116. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  117. package/dist/plugin-sdk/nostr.js +1 -1
  118. package/dist/plugin-sdk/reply-dispatch-runtime.js +2 -2
  119. package/dist/plugin-sdk/reply-runtime.js +4 -4
  120. package/dist/plugin-sdk/speech-core.js +1 -1
  121. package/dist/plugin-sdk/speech.js +2 -2
  122. package/dist/plugin-sdk/testing.js +2 -2
  123. package/dist/plugin-sdk/zalo.js +1 -1
  124. package/dist/plugin-sdk/zalouser.js +1 -1
  125. package/dist/plugins/runtime/index.js +1 -1
  126. package/dist/{probe-CkpKrQzx.js → probe-DLl0iaDn.js} +2 -2
  127. package/dist/{program-jxJM6ojG.js → program-CPQCX1Yn.js} +1 -1
  128. package/dist/{prompt-select-styled-QOi2_DM2.js → prompt-select-styled-BEFaavQJ.js} +1 -1
  129. package/dist/{provider-D1CDljYk.js → provider-CxTpjSXc.js} +11 -11
  130. package/dist/{provider-auth-choice-preference-CystQehW.js → provider-auth-choice-preference-DB7ArjPJ.js} +117 -17
  131. package/dist/{provider-dispatcher-B1X1ni9A.js → provider-dispatcher-CoZbfzHF.js} +1 -1
  132. package/dist/{provider-session.runtime-CmYNhv8h.js → provider-session.runtime-CLR33Zl_.js} +2 -2
  133. package/dist/provider-session.runtime.js +1 -1
  134. package/dist/provider.runtime-BA8_I04x.js +2 -0
  135. package/dist/provider.runtime.js +1 -1
  136. package/dist/{push-apns-C2OHXeDA.js → push-apns-Baus0hSk.js} +1 -1
  137. package/dist/{register.agent-i2x-aQYO.js → register.agent-Cy9-1SpW.js} +3 -3
  138. package/dist/{register.configure-ShMDJFXF.js → register.configure-B-at2ylg.js} +1 -1
  139. package/dist/{register.maintenance-WqBP0ima.js → register.maintenance-oTPKZTnA.js} +1 -1
  140. package/dist/{register.onboard-DLBLdqhN.js → register.onboard-qgiciHjI.js} +1 -1
  141. package/dist/{register.setup-BhrAcDCl.js → register.setup-C96Uonr6.js} +1 -1
  142. package/dist/{register.status-health-sessions-DKRsgWEs.js → register.status-health-sessions-DNHv94n3.js} +3 -3
  143. package/dist/{register.subclis-AFk6-U3K.js → register.subclis-BpKLYlbb.js} +1 -1
  144. package/dist/{register.subclis-wQTYHXDi.js → register.subclis-DBJTF-s2.js} +4 -4
  145. package/dist/{reply-BNG6Z_aL.js → reply-3aPmCTXF.js} +9 -9
  146. package/dist/reply-dispatch-runtime-egdBdKsw.js +3 -0
  147. package/dist/{reply-runtime-T2igqMJu.js → reply-runtime-S5TyVadC.js} +6 -6
  148. package/dist/reply.runtime-DHX5kehH.js +2 -0
  149. package/dist/reply.runtime.js +1 -1
  150. package/dist/{route-resolution-5YQv0PfF.js → route-resolution-Bp9SbFdP.js} +4 -4
  151. package/dist/{run-main-B2GborlD.js → run-main-DbbZOAk0.js} +11 -11
  152. package/dist/{runtime-_tK27FdA.js → runtime-CHdls8AI.js} +4 -4
  153. package/dist/{runtime-embedded-pi.runtime-GmSnwjm1.js → runtime-embedded-pi.runtime-Cxzdfsyh.js} +1 -1
  154. package/dist/runtime-embedded-pi.runtime.js +1 -1
  155. package/dist/{send-Ce3w1yN6.js → send-DVMmfWuX.js} +1 -1
  156. package/dist/{server-node-events-BpAGhy1Z.js → server-node-events-DtAWgJQX.js} +3 -3
  157. package/dist/{session-subagent-reactivation.runtime-CEZBGvdV.js → session-subagent-reactivation.runtime-UMUGS0gZ.js} +1 -1
  158. package/dist/session-subagent-reactivation.runtime.js +1 -1
  159. package/dist/{setup-tnJO5LYU.js → setup-DiuQ-JyY.js} +5 -3
  160. package/dist/{setup-surface-DmrCjkfY.js → setup-surface-ANnaLzvn.js} +2 -2
  161. package/dist/{setup.finalize-CVDri04B.js → setup.finalize-BD6rezSr.js} +2 -2
  162. package/dist/{shared-DkkYqBox.js → shared-CF3UfFmf.js} +1 -1
  163. package/dist/{shared-C7WfejQH.js → shared-Cp90_9rn.js} +3 -3
  164. package/dist/{simple-completion-transport-XY9GIHdV.js → simple-completion-transport-DDXyePu1.js} +1 -1
  165. package/dist/{speech-CDVQw9hy.js → speech-Bdz3Y5uh.js} +1 -1
  166. package/dist/{speech-provider-DaBL6PrI.js → speech-provider-BlyPZjmy.js} +1 -1
  167. package/dist/status-DGJL9um2.js +3 -0
  168. package/dist/{status-issues-BYF5NZNW.js → status-issues-BhTO4cT4.js} +1 -1
  169. package/dist/{status-issues-DxeTc3xG.js → status-issues-CFNOnc-8.js} +4 -4
  170. package/dist/{status-json-D84Jar1g.js → status-json-BYDxloy-.js} +1 -1
  171. package/dist/{status-DrrErYBq.js → status-tnDnynQk.js} +3 -3
  172. package/dist/{status.scan-DdXk-I63.js → status.scan-CvHd4q13.js} +2 -2
  173. package/dist/{status.scan.fast-json-CWFOj523.js → status.scan.fast-json-CjTUgwpJ.js} +1 -1
  174. package/dist/{status.scan.fast-json-C7DplmTR.js → status.scan.fast-json-DHZMxdEe.js} +1 -1
  175. package/dist/{status.scan.json-core-DPLWXWwf.js → status.scan.json-core-CIKqrdik.js} +1 -1
  176. package/dist/{status.summary-Du2fWbWb.js → status.summary-B4KbwYvd.js} +1 -1
  177. package/dist/{status.summary-BMn0ixUR.js → status.summary-WUY46Pv3.js} +1 -1
  178. package/dist/{sticker-cache-3PPlO_AL.js → sticker-cache-C1RMLHI7.js} +3 -3
  179. package/dist/{sticker-vision.runtime-DU7RTPl1.js → sticker-vision.runtime-BZfSmR0E.js} +1 -1
  180. package/dist/sticker-vision.runtime.js +1 -1
  181. package/dist/{subagent-orphan-recovery-DfYd2dqi.js → subagent-orphan-recovery-CM5WbBmt.js} +1 -1
  182. package/dist/{subagent-registry-runtime-B3YJyqQc.js → subagent-registry-runtime-BESwKEGU.js} +1 -1
  183. package/dist/{targets-C_gzlmvj.js → targets-D2QyV4FS.js} +1 -1
  184. package/dist/{task-registry.maintenance-D_x_Idw7.js → task-registry.maintenance-DwiJKrpG.js} +1 -1
  185. package/dist/{task-registry.maintenance-C6fm4Dg0.js → task-registry.maintenance-eHVxvSXa.js} +1 -1
  186. package/dist/telegram/token.js +1 -1
  187. package/dist/{testing-qZwYBTnd.js → testing-Cn9o8qwq.js} +4 -4
  188. package/dist/{thread-bindings-sQryx5W5.js → thread-bindings-C4o14LRt.js} +2 -2
  189. package/dist/{thread-bindings.discord-api-DotIxqM0.js → thread-bindings.discord-api-DnBKOrUU.js} +1 -1
  190. package/dist/{token-BqG8__5y.js → token-B6gSiRl0.js} +1 -1
  191. package/dist/{tools-effective-inventory-C501gm_M.js → tools-effective-inventory-DrHFBwZ-.js} +2 -2
  192. package/dist/{tts-DOK00mYv.js → tts-BNgC213V.js} +1 -1
  193. package/dist/{update-cli-UofgtOQ2.js → update-cli-DqCt0u-c.js} +3 -3
  194. package/dist/{vora-embedded-runner-CEDOoqMm.js → vora-embedded-runner-BlDMkTJo.js} +10 -8
  195. package/dist/{vora-embedded.runtime-DduxkW9u.js → vora-embedded.runtime-DRRoeNAf.js} +1 -1
  196. package/dist/vora-embedded.runtime.js +1 -1
  197. package/dist/vora-tools.runtime-cY8j3be3.js +2 -0
  198. package/dist/vora-tools.runtime.js +1 -1
  199. package/package.json +1 -1
  200. package/dist/agent-DFqDjaDf.js +0 -2
  201. package/dist/api-RGTbChq9.js +0 -10
  202. package/dist/commands-B0wxf-wg.js +0 -4
  203. package/dist/commands-core.runtime-D669cg12.js +0 -2
  204. package/dist/commands-status.runtime-DUCOQfdH.js +0 -2
  205. package/dist/commands.runtime-CifDQo6G.js +0 -4
  206. package/dist/completion-cli-BprGumOQ.js +0 -2
  207. package/dist/get-reply-from-config.runtime-Dn9inLEf.js +0 -2
  208. package/dist/provider.runtime-BPwDmC8A.js +0 -2
  209. package/dist/reply-dispatch-runtime-ChNZP0-d.js +0 -3
  210. package/dist/reply.runtime-j0QaBNSy.js +0 -2
  211. package/dist/status-BkY05XSZ.js +0 -3
  212. package/dist/vora-tools.runtime-VYtd-Uvn.js +0 -2
@@ -16,6 +16,87 @@ const OLLAMA_DEFAULT_CONTEXT_WINDOW = 128e3;
16
16
  const OLLAMA_DEFAULT_MAX_TOKENS = 8192;
17
17
  const OLLAMA_PROFILE_ID = "ollama:default";
18
18
  const OLLAMA_DISCOVERY_TIMEOUT_MS = 1e4;
19
+ function checkOllamaInstalled() {
20
+ try {
21
+ return spawnSync("ollama", ["--version"], {
22
+ encoding: "utf8",
23
+ stdio: "pipe"
24
+ }).status === 0;
25
+ } catch {
26
+ return false;
27
+ }
28
+ }
29
+ function isLikelyLocalOllamaBaseUrl(baseUrl) {
30
+ try {
31
+ const parsed = new URL(baseUrl);
32
+ if (!["http:", "https:"].includes(parsed.protocol)) return false;
33
+ const host = parsed.hostname.toLowerCase();
34
+ return host === "127.0.0.1" || host === "localhost" || host === "::1";
35
+ } catch {
36
+ return false;
37
+ }
38
+ }
39
+ async function tryStartOllamaServeInBackground(params) {
40
+ if (!isLikelyLocalOllamaBaseUrl(params.baseUrl)) return false;
41
+ if (!checkOllamaInstalled()) return false;
42
+ await params.prompter.note(["Could not reach Ollama API yet.", "Trying to start Ollama automatically in the background: ollama serve"].join("\n"), "Ollama");
43
+ if ((process.platform === "win32" ? spawnSync("powershell", [
44
+ "-NoProfile",
45
+ "-Command",
46
+ "Start-Process -FilePath ollama -ArgumentList 'serve' -WindowStyle Hidden"
47
+ ], {
48
+ encoding: "utf8",
49
+ stdio: "pipe"
50
+ }) : spawnSync("sh", ["-c", "nohup ollama serve >/dev/null 2>&1 &"], {
51
+ encoding: "utf8",
52
+ stdio: "pipe"
53
+ })).status !== 0) return false;
54
+ const tagsUrl = new URL("/api/tags", `${params.baseUrl}/`).toString();
55
+ for (let attempt = 0; attempt < 6; attempt += 1) {
56
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
57
+ try {
58
+ if ((await fetchWithTimeout(tagsUrl, { method: "GET" }, Math.max(1500, Math.floor(OLLAMA_DISCOVERY_TIMEOUT_MS / 6)))).ok) {
59
+ await params.prompter.note("Ollama API is now reachable.", "Ollama");
60
+ return true;
61
+ }
62
+ } catch {}
63
+ }
64
+ return false;
65
+ }
66
+ async function autoPullModel(prompter, modelId) {
67
+ if (!await prompter.confirm({
68
+ message: `📦 Should I download the model "${modelId}" for you? (This may take a few minutes)`,
69
+ initialValue: true
70
+ })) return false;
71
+ await prompter.note([
72
+ `🚀 Downloading model: ${modelId}`,
73
+ "This may take several minutes depending on your internet connection...",
74
+ "The model is several GB in size."
75
+ ].join("\n"), "Downloading Model");
76
+ try {
77
+ const pullResult = spawnSync("ollama", ["pull", modelId], {
78
+ encoding: "utf8",
79
+ stdio: "pipe"
80
+ });
81
+ if (pullResult.status !== 0) throw new Error(`Pull failed: ${pullResult.stderr}`);
82
+ await prompter.note([
83
+ `✅ Model "${modelId}" downloaded successfully!`,
84
+ "",
85
+ "🎉 You're all set to use Ollama with VORA!"
86
+ ].join("\n"), "Model Ready");
87
+ return true;
88
+ } catch (error) {
89
+ await prompter.note([
90
+ `❌ Failed to download model: ${modelId}`,
91
+ "",
92
+ "You can download it manually later:",
93
+ `ollama pull ${modelId}`,
94
+ "",
95
+ `Error: ${error instanceof Error ? error.message : String(error)}`
96
+ ].join("\n"), "Download Failed");
97
+ return false;
98
+ }
99
+ }
19
100
  function normalizeOllamaBaseUrl(raw) {
20
101
  const normalized = (String(raw ?? "").trim() || "http://127.0.0.1:11434").replace(/\/+$/u, "");
21
102
  if (normalized.endsWith("/v1")) return normalized.slice(0, -3);
@@ -77,15 +158,25 @@ function mergeOllamaProviderConfig(params) {
77
158
  }
78
159
  async function promptOllamaModelId(params) {
79
160
  let discoveredModels = [];
161
+ let discoveryFailed = false;
80
162
  try {
81
163
  discoveredModels = await discoverOllamaModelIds(params.baseUrl);
82
164
  } catch (error) {
165
+ discoveryFailed = true;
83
166
  await params.prompter.note([
84
167
  `Could not query ${params.baseUrl}/api/tags.`,
85
168
  error instanceof Error ? error.message : String(error),
86
- "Run `ollama serve` first, or enter a model name manually."
169
+ "Trying to start Ollama automatically, then retrying once."
87
170
  ].join("\n"), "Ollama");
88
171
  }
172
+ if (discoveryFailed) {
173
+ if (await tryStartOllamaServeInBackground({
174
+ prompter: params.prompter,
175
+ baseUrl: params.baseUrl
176
+ })) try {
177
+ discoveredModels = await discoverOllamaModelIds(params.baseUrl);
178
+ } catch {}
179
+ }
89
180
  if (discoveredModels.length > 0) {
90
181
  const choice = await params.prompter.select({
91
182
  message: "Ollama model",
@@ -101,20 +192,23 @@ async function promptOllamaModelId(params) {
101
192
  initialValue: discoveredModels[0]
102
193
  });
103
194
  if (choice !== "__manual__") return String(choice);
104
- } else await params.prompter.note([
105
- "🤖 No local Ollama models detected yet.",
106
- "",
107
- "🚀 Quick start commands:",
108
- "curl -fsSL https://ollama.ai/install.sh | sh",
109
- "ollama serve",
110
- "",
111
- "📦 Pull your first model (pick one):",
112
- "ollama pull llama3.2 # All-purpose",
113
- "ollama pull qwen2.5:7b # Great for coding",
114
- "ollama pull deepseek-coder # Code specialist",
115
- "",
116
- "💡 After pulling, restart this setup!"
117
- ].join("\n"), "Ollama Models");
195
+ } else {
196
+ if (await autoPullModel(params.prompter, "llama3.2")) return "llama3.2";
197
+ await params.prompter.note([
198
+ "🤖 No local Ollama models detected yet.",
199
+ "",
200
+ "🚀 Quick start commands:",
201
+ "curl -fsSL https://ollama.ai/install.sh | sh",
202
+ "ollama serve",
203
+ "",
204
+ "📦 Pull your first model (pick one):",
205
+ "ollama pull llama3.2 # All-purpose",
206
+ "ollama pull qwen2.5:7b # Great for coding",
207
+ "ollama pull deepseek-coder # Code specialist",
208
+ "",
209
+ "💡 After pulling, restart this setup!"
210
+ ].join("\n"), "Ollama Models");
211
+ }
118
212
  return String(await params.prompter.text({
119
213
  message: "Ollama model",
120
214
  initialValue: discoveredModels[0],
@@ -163,7 +257,10 @@ async function applyAuthChoiceOllama(params) {
163
257
  "",
164
258
  `Error: ${error instanceof Error ? error.message : String(error)}`
165
259
  ].join("\n"), "Installation Failed");
166
- return null;
260
+ return {
261
+ config: params.config,
262
+ skipModelSelection: true
263
+ };
167
264
  }
168
265
  } else if (platform === "windows") {
169
266
  await params.prompter.note([
@@ -174,7 +271,10 @@ async function applyAuthChoiceOllama(params) {
174
271
  "",
175
272
  "After Ollama is running, start onboarding again."
176
273
  ].join("\n"), "Windows Installation Required");
177
- return null;
274
+ return {
275
+ config: params.config,
276
+ skipModelSelection: true
277
+ };
178
278
  }
179
279
  }
180
280
  await params.prompter.note(["Ollama runs fully local on this machine.", "If needed, start it first with: ollama serve"].join("\n"), "Ollama");
@@ -1,4 +1,4 @@
1
- import { n as dispatchInboundMessageWithBufferedDispatcher, r as dispatchInboundMessageWithDispatcher } from "./dispatch-C2yIdOm0.js";
1
+ import { n as dispatchInboundMessageWithBufferedDispatcher, r as dispatchInboundMessageWithDispatcher } from "./dispatch-DLfLgIpa.js";
2
2
  //#region src/auto-reply/reply/provider-dispatcher.ts
3
3
  async function dispatchReplyWithBufferedBlockDispatcher(params) {
4
4
  return await dispatchInboundMessageWithBufferedDispatcher({
@@ -3,6 +3,6 @@ import { m as resolveThreadBindingsEnabled, s as resolveThreadBindingIdleTimeout
3
3
  import "./conversation-runtime-BIDOB7qJ.js";
4
4
  import { n as isAcpRuntimeError } from "./errors-CfMDo3FB.js";
5
5
  import "./acp-runtime-DOqjjN69.js";
6
- import { i as reconcileAcpThreadBindingsOnStartup, l as createNoopThreadBindingManager, u as createThreadBindingManager } from "./thread-bindings-sQryx5W5.js";
7
- import { t as createDiscordMessageHandler } from "./message-handler-DNRscH-y.js";
6
+ import { i as reconcileAcpThreadBindingsOnStartup, l as createNoopThreadBindingManager, u as createThreadBindingManager } from "./thread-bindings-C4o14LRt.js";
7
+ import { t as createDiscordMessageHandler } from "./message-handler-DieRKjaI.js";
8
8
  export { createDiscordMessageHandler, createNoopThreadBindingManager, createThreadBindingManager, getAcpSessionManager, isAcpRuntimeError, reconcileAcpThreadBindingsOnStartup, resolveThreadBindingIdleTimeoutMs, resolveThreadBindingMaxAgeMs, resolveThreadBindingsEnabled };
@@ -1 +1 @@
1
- export * from "./provider-session.runtime-CmYNhv8h.js";
1
+ export * from "./provider-session.runtime-CLR33Zl_.js";
@@ -0,0 +1,2 @@
1
+ import { t as monitorDiscordProvider } from "./provider-CxTpjSXc.js";
2
+ export { monitorDiscordProvider };
@@ -1 +1 @@
1
- export * from "./provider.runtime-BPwDmC8A.js";
1
+ export * from "./provider.runtime-BA8_I04x.js";
@@ -2,7 +2,7 @@ import { _ as resolveStateDir } from "./paths-DAiKc28o.js";
2
2
  import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-BTzholfl.js";
3
3
  import { a as signDevicePayload, n as loadOrCreateDeviceIdentity } from "./device-identity-OdQ55xnd.js";
4
4
  import { o as estimateBase64DecodedBytes } from "./tool-images-Dk60Ug5h.js";
5
- import { S as sniffMimeFromBase64 } from "./vora-embedded-runner-CEDOoqMm.js";
5
+ import { S as sniffMimeFromBase64 } from "./vora-embedded-runner-BlDMkTJo.js";
6
6
  import { i as deleteMediaBuffer, l as saveMediaBuffer } from "./store-44w7oil1.js";
7
7
  import { URL } from "node:url";
8
8
  import path from "node:path";
@@ -14,12 +14,12 @@ import { c as randomIdempotencyKey, r as callGateway } from "./call-20Lf7dnt.js"
14
14
  import { n as withProgress } from "./progress-BvK_oMpz.js";
15
15
  import { p as resolveSendableOutboundReplyParts } from "./reply-payload-D0XXyIHC.js";
16
16
  import { t as createDefaultDeps } from "./deps-CadqGIl8.js";
17
- import { r as resolveSessionKeyForRequest, t as agentCommand } from "./agent-command-Dcd6_Y1M.js";
17
+ import { r as resolveSessionKeyForRequest, t as agentCommand } from "./agent-command-ChaqoOVP.js";
18
18
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
19
19
  import { t as formatHelpExamples } from "./help-format-Dad85O74.js";
20
- import "./agent-DFqDjaDf.js";
20
+ import "./agent-BqeyM0Df.js";
21
21
  import { t as collectOption } from "./helpers-CY4wVIki.js";
22
- import { a as agentsBindCommand, i as agentsAddCommand, n as agentsSetIdentityCommand, o as agentsBindingsCommand, r as agentsDeleteCommand, s as agentsUnbindCommand, t as agentsListCommand } from "./agents-BiTjBpu0.js";
22
+ import { a as agentsBindCommand, i as agentsAddCommand, n as agentsSetIdentityCommand, o as agentsBindingsCommand, r as agentsDeleteCommand, s as agentsUnbindCommand, t as agentsListCommand } from "./agents-B5dF1TwM.js";
23
23
  //#region src/commands/agent-via-gateway.ts
24
24
  const NO_GATEWAY_TIMEOUT_MS = 2147e6;
25
25
  function parseTimeoutSeconds(opts) {
@@ -2,7 +2,7 @@ import { n as defaultRuntime } from "./runtime-D0VpiCHi.js";
2
2
  import { t as formatDocsLink } from "./links-Dew9XRNK.js";
3
3
  import { r as theme } from "./theme-BJIQPogA.js";
4
4
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
5
- import { n as configureCommandFromSectionsArg, o as CONFIGURE_WIZARD_SECTIONS } from "./configure-BR8tDhwB.js";
5
+ import { n as configureCommandFromSectionsArg, o as CONFIGURE_WIZARD_SECTIONS } from "./configure-DRPrtNvz.js";
6
6
  //#region src/cli/program/register.configure.ts
7
7
  function registerConfigureCommand(program) {
8
8
  program.command("configure").description("Interactive configuration for credentials, channels, gateway, and agent defaults").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/configure", "docs.vora.ai/cli/configure")}\n`).option("--section <section>", `Configuration sections (repeatable). Options: ${CONFIGURE_WIZARD_SECTIONS.join(", ")}`, (value, previous) => [...previous, value], []).action(async (opts) => {
@@ -16,7 +16,7 @@ import { r as resolveGatewayService } from "./service-BTzHQLyB.js";
16
16
  import { n as resolveConfiguredSecretInputWithFallback } from "./resolve-configured-secret-input-string-yXf0bl0s.js";
17
17
  import { a as removePath, i as listAgentSessionDirs, o as removeStateAndLinkedPaths, r as buildCleanupPlan, s as removeWorkspaceDirs } from "./backup-create-CXkZOMaj.js";
18
18
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
19
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-QOi2_DM2.js";
19
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BEFaavQJ.js";
20
20
  import path from "node:path";
21
21
  import { cancel, confirm, isCancel, multiselect } from "@clack/prompts";
22
22
  //#region src/infra/clipboard.ts
@@ -4,7 +4,7 @@ import { r as theme } from "./theme-BJIQPogA.js";
4
4
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
5
5
  import { a as resolveManifestProviderOnboardAuthFlags } from "./provider-auth-choices-Bd3lk8hB.js";
6
6
  import { n as formatAuthChoiceChoicesForCli } from "./auth-choice-options-tu8d27iO.js";
7
- import { n as CORE_ONBOARD_AUTH_FLAGS, t as setupWizardCommand } from "./onboard-RuCpMGPL.js";
7
+ import { n as CORE_ONBOARD_AUTH_FLAGS, t as setupWizardCommand } from "./onboard-BqJ8GcAg.js";
8
8
  //#region src/cli/program/register.onboard.ts
9
9
  function resolveInstallDaemonFlag(command, opts) {
10
10
  if (!command || typeof command !== "object") return;
@@ -11,7 +11,7 @@ import { s as resolveSessionTranscriptsDir } from "./paths-gP6OIXO6.js";
11
11
  import { n as safeParseWithSchema } from "./zod-parse-CoS4Cf-k.js";
12
12
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-uLL6eiQ2.js";
13
13
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
14
- import { t as setupWizardCommand } from "./onboard-RuCpMGPL.js";
14
+ import { t as setupWizardCommand } from "./onboard-BqJ8GcAg.js";
15
15
  import fs from "node:fs/promises";
16
16
  import { z } from "zod";
17
17
  import JSON5 from "json5";
@@ -8,14 +8,14 @@ import "./config-VR_8cPXG.js";
8
8
  import { f as capEntryCount, h as enforceSessionDiskBudget, m as resolveMaintenanceConfig, p as pruneStaleEntries, r as loadSessionStore, u as updateSessionStore } from "./store-C60maEw3.js";
9
9
  import "./sessions-B54vWLtS.js";
10
10
  import { i as resolveSessionFilePathOptions, r as resolveSessionFilePath } from "./paths-gP6OIXO6.js";
11
- import { St as updateTaskNotifyPolicyById, gt as getTaskById, pt as cancelTaskById } from "./vora-embedded-runner-CEDOoqMm.js";
11
+ import { St as updateTaskNotifyPolicyById, gt as getTaskById, pt as cancelTaskById } from "./vora-embedded-runner-BlDMkTJo.js";
12
12
  import { n as summarizeTaskRecords } from "./task-registry.summary-DxVk_l3y.js";
13
13
  import { n as runCommandWithRuntime } from "./cli-utils-CMfpS8SF.js";
14
14
  import { t as formatHelpExamples } from "./help-format-Dad85O74.js";
15
15
  import { n as parsePositiveIntOrUndefined } from "./helpers-CY4wVIki.js";
16
16
  import { r as healthCommand } from "./health-DieLeder.js";
17
- import { a as reconcileInspectableTasks, c as runTaskRegistryMaintenance, f as listTaskAuditFindings, i as previewTaskRegistryMaintenance, n as getInspectableTaskRegistrySummary, o as reconcileTaskLookupToken, p as summarizeTaskAuditFindings, t as getInspectableTaskAuditSummary } from "./task-registry.maintenance-D_x_Idw7.js";
18
- import { t as statusCommand } from "./status-DrrErYBq.js";
17
+ import { a as reconcileInspectableTasks, c as runTaskRegistryMaintenance, f as listTaskAuditFindings, i as previewTaskRegistryMaintenance, n as getInspectableTaskRegistrySummary, o as reconcileTaskLookupToken, p as summarizeTaskAuditFindings, t as getInspectableTaskAuditSummary } from "./task-registry.maintenance-DwiJKrpG.js";
18
+ import { t as statusCommand } from "./status-tnDnynQk.js";
19
19
  import { a as formatSessionModelCell, c as toSessionDisplayRows, i as formatSessionKeyCell, l as resolveSessionStoreTargetsOrExit, n as formatSessionAgeCell, o as resolveSessionDisplayDefaults, r as formatSessionFlagsCell, s as resolveSessionDisplayModel, t as sessionsCommand } from "./sessions-CNJhQNiG.js";
20
20
  import fsSync from "node:fs";
21
21
  //#region src/commands/sessions-cleanup.ts
@@ -1,3 +1,3 @@
1
1
  import "./subcli-descriptors-BjrzwVTU.js";
2
- import { n as loadValidatedConfigForPluginRegistration, r as registerSubCliByName } from "./register.subclis-wQTYHXDi.js";
2
+ import { n as loadValidatedConfigForPluginRegistration, r as registerSubCliByName } from "./register.subclis-DBJTF-s2.js";
3
3
  export { loadValidatedConfigForPluginRegistration, registerSubCliByName };
@@ -30,7 +30,7 @@ const entries = [
30
30
  description: "Run, inspect, and query the WebSocket Gateway",
31
31
  hasSubcommands: true,
32
32
  register: async (program) => {
33
- (await import("./gateway-cli-DgWf4PUv.js")).registerGatewayCli(program);
33
+ (await import("./gateway-cli-OUZNC688.js")).registerGatewayCli(program);
34
34
  }
35
35
  },
36
36
  {
@@ -62,7 +62,7 @@ const entries = [
62
62
  description: "Discover, scan, and configure models",
63
63
  hasSubcommands: true,
64
64
  register: async (program) => {
65
- (await import("./models-cli-CuUwRN5g.js")).registerModelsCli(program);
65
+ (await import("./models-cli-BRpNHKaZ.js")).registerModelsCli(program);
66
66
  }
67
67
  },
68
68
  {
@@ -236,7 +236,7 @@ const entries = [
236
236
  description: "Update Vora and inspect update channel status",
237
237
  hasSubcommands: true,
238
238
  register: async (program) => {
239
- (await import("./update-cli-UofgtOQ2.js")).registerUpdateCli(program);
239
+ (await import("./update-cli-DqCt0u-c.js")).registerUpdateCli(program);
240
240
  }
241
241
  },
242
242
  {
@@ -244,7 +244,7 @@ const entries = [
244
244
  description: "Generate shell completion script",
245
245
  hasSubcommands: false,
246
246
  register: async (program) => {
247
- (await import("./completion-cli-BprGumOQ.js")).registerCompletionCli(program);
247
+ (await import("./completion-cli-CRPdVDgt.js")).registerCompletionCli(program);
248
248
  }
249
249
  }
250
250
  ];
@@ -152,7 +152,7 @@ let directiveImplPromise = null;
152
152
  let directiveFastLanePromise = null;
153
153
  let directivePersistPromise = null;
154
154
  function loadCommandsStatus() {
155
- commandsStatusPromise ??= import("./commands-status.runtime-DUCOQfdH.js");
155
+ commandsStatusPromise ??= import("./commands-status.runtime-DMvqv4rf.js");
156
156
  return commandsStatusPromise;
157
157
  }
158
158
  function loadDirectiveLevels() {
@@ -160,11 +160,11 @@ function loadDirectiveLevels() {
160
160
  return directiveLevelsPromise;
161
161
  }
162
162
  function loadDirectiveImpl() {
163
- directiveImplPromise ??= import("./directive-handling.impl-BJwr4gCn.js");
163
+ directiveImplPromise ??= import("./directive-handling.impl-D4R3wxB6.js");
164
164
  return directiveImplPromise;
165
165
  }
166
166
  function loadDirectiveFastLane() {
167
- directiveFastLanePromise ??= import("./directive-handling.fast-lane-IiMKkkUu.js");
167
+ directiveFastLanePromise ??= import("./directive-handling.fast-lane-DzZKO5xx.js");
168
168
  return directiveFastLanePromise;
169
169
  }
170
170
  function loadDirectivePersist() {
@@ -1128,7 +1128,7 @@ async function handleInlineActions(params) {
1128
1128
  if (dispatch?.kind === "tool") {
1129
1129
  const rawArgs = (skillInvocation.args ?? "").trim();
1130
1130
  const channel = resolveGatewayMessageChannel(ctx.Surface) ?? resolveGatewayMessageChannel(ctx.Provider) ?? void 0;
1131
- const { createVoraTools } = await import("./vora-tools.runtime-VYtd-Uvn.js");
1131
+ const { createVoraTools } = await import("./vora-tools.runtime-cY8j3be3.js");
1132
1132
  const tool = applyOwnerOnlyToolPolicy(createVoraTools({
1133
1133
  agentSessionKey: sessionKey,
1134
1134
  agentChannel: channel,
@@ -1222,7 +1222,7 @@ async function handleInlineActions(params) {
1222
1222
  }) && inlineStatusRequested;
1223
1223
  let didSendInlineStatus = false;
1224
1224
  if (handleInlineStatus) {
1225
- const { buildStatusReply } = await import("./commands.runtime-CifDQo6G.js");
1225
+ const { buildStatusReply } = await import("./commands.runtime-D73wFV1F.js");
1226
1226
  await sendInlineReply(await buildStatusReply({
1227
1227
  cfg,
1228
1228
  command,
@@ -1249,7 +1249,7 @@ async function handleInlineActions(params) {
1249
1249
  };
1250
1250
  }
1251
1251
  const runCommands = async (commandInput) => {
1252
- const { handleCommands } = await import("./commands.runtime-CifDQo6G.js");
1252
+ const { handleCommands } = await import("./commands.runtime-D73wFV1F.js");
1253
1253
  return handleCommands({
1254
1254
  ctx: sessionCtx,
1255
1255
  rootCtx: ctx,
@@ -1626,11 +1626,11 @@ let routeReplyRuntimePromise = null;
1626
1626
  let sessionUpdatesRuntimePromise = null;
1627
1627
  let sessionStoreRuntimePromise = null;
1628
1628
  function loadPiEmbeddedRuntime() {
1629
- piEmbeddedRuntimePromise ??= import("./vora-embedded.runtime-DduxkW9u.js");
1629
+ piEmbeddedRuntimePromise ??= import("./vora-embedded.runtime-DRRoeNAf.js");
1630
1630
  return piEmbeddedRuntimePromise;
1631
1631
  }
1632
1632
  function loadAgentRunnerRuntime() {
1633
- agentRunnerRuntimePromise ??= import("./agent-runner.runtime-yDSxJOOP.js");
1633
+ agentRunnerRuntimePromise ??= import("./agent-runner.runtime-DHQmZDyk.js");
1634
1634
  return agentRunnerRuntimePromise;
1635
1635
  }
1636
1636
  function loadRouteReplyRuntime() {
@@ -3015,7 +3015,7 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
3015
3015
  if (!resetTriggered || !command.isAuthorizedSender || command.resetHookTriggered) return;
3016
3016
  const resetMatch = command.commandBodyNormalized.match(/^\/(new|reset)(?:\s|$)/);
3017
3017
  if (!resetMatch) return;
3018
- const { emitResetCommandHooks } = await import("./commands-core.runtime-D669cg12.js");
3018
+ const { emitResetCommandHooks } = await import("./commands-core.runtime-Bj8pI_ic.js");
3019
3019
  await emitResetCommandHooks({
3020
3020
  action: resetMatch[1] === "reset" ? "reset" : "new",
3021
3021
  ctx,
@@ -0,0 +1,3 @@
1
+ import "./chunk-B2LpVnXo.js";
2
+ import "./provider-dispatcher-CoZbfzHF.js";
3
+ export {};
@@ -5,13 +5,13 @@ import "./heartbeat-BNjK8rpR.js";
5
5
  import { t as requireApiKey } from "./model-auth-runtime-shared-C6EfNsiC.js";
6
6
  import { n as getApiKeyForModel } from "./model-auth-Dy6WxuWj.js";
7
7
  import "./chunk-B2LpVnXo.js";
8
- import { r as resolveModelAsync } from "./anthropic-vertex-stream-D_8kv2T6.js";
9
- import "./dispatch-C2yIdOm0.js";
10
- import "./provider-dispatcher-B1X1ni9A.js";
11
- import "./reply-BNG6Z_aL.js";
12
- import "./abort-B4kfwcS5.js";
8
+ import { r as resolveModelAsync } from "./anthropic-vertex-stream-BI2eNOzt.js";
9
+ import "./dispatch-DLfLgIpa.js";
10
+ import "./provider-dispatcher-CoZbfzHF.js";
11
+ import "./reply-3aPmCTXF.js";
12
+ import "./abort-CapTBYfO.js";
13
13
  import "./btw-command-DmD4u3zZ.js";
14
- import { t as prepareModelForSimpleCompletion } from "./simple-completion-transport-XY9GIHdV.js";
14
+ import { t as prepareModelForSimpleCompletion } from "./simple-completion-transport-DDXyePu1.js";
15
15
  import { completeSimple } from "@mariozechner/pi-ai";
16
16
  //#region src/auto-reply/reply/reply-reference.ts
17
17
  function createReplyReferencePlanner(options) {
@@ -0,0 +1,2 @@
1
+ import { t as getReplyFromConfig } from "./reply-3aPmCTXF.js";
2
+ export { getReplyFromConfig };
@@ -1 +1 @@
1
- export * from "./reply.runtime-j0QaBNSy.js";
1
+ export * from "./reply.runtime-DHX5kehH.js";
@@ -15,19 +15,19 @@ import { t as convertMarkdownTables } from "./tables-DbAeYck3.js";
15
15
  import { n as readStoreAllowFromForDmPolicy, o as resolveDmGroupAccessWithLists } from "./dm-policy-shared-BUc9YpWz.js";
16
16
  import "./runtime-env-Uafcsyhl.js";
17
17
  import "./config-runtime-D_dtnl47.js";
18
- import { r as createReplyReferencePlanner } from "./reply-runtime-T2igqMJu.js";
18
+ import { r as createReplyReferencePlanner } from "./reply-runtime-S5TyVadC.js";
19
19
  import { t as resolveAgentAvatar } from "./identity-avatar-B10Ze5u7.js";
20
20
  import "./media-runtime-CG9Erzcm.js";
21
21
  import "./conversation-runtime-BIDOB7qJ.js";
22
22
  import "./text-runtime-C0ThGXw5.js";
23
- import { r as prepareSimpleCompletionModelForAgent, t as completeWithPreparedSimpleCompletionModel } from "./agent-runtime-BI1M4qrn.js";
23
+ import { r as prepareSimpleCompletionModelForAgent, t as completeWithPreparedSimpleCompletionModel } from "./agent-runtime-BPkzqsFe.js";
24
24
  import "./security-runtime-n_laQL8U.js";
25
25
  import { t as createChannelPairingChallengeIssuer } from "./channel-pairing-Dx7NU9a4.js";
26
- import "./command-auth-8OU-oEdy.js";
26
+ import "./command-auth-ecE1e0yJ.js";
27
27
  import "./retry-runtime-lGXuHoun.js";
28
28
  import { o as resolveDiscordAccount } from "./accounts-BxWQao3o.js";
29
29
  import { _ as formatDiscordUserTag, a as resolveDiscordAllowListMatch, r as normalizeDiscordAllowList, y as resolveTimestampMs } from "./allow-list-se_3jmMC.js";
30
- import { M as sendWebhookMessageDiscord, O as sendMessageDiscord, bt as chunkDiscordTextWithMode, j as sendVoiceMessageDiscord, ut as sendDiscordText, yt as createDiscordRetryRunner } from "./send-Ce3w1yN6.js";
30
+ import { M as sendWebhookMessageDiscord, O as sendMessageDiscord, bt as chunkDiscordTextWithMode, j as sendVoiceMessageDiscord, ut as sendDiscordText, yt as createDiscordRetryRunner } from "./send-DVMmfWuX.js";
31
31
  import { ChannelType } from "@buape/carbon";
32
32
  import { Routes, StickerFormatType } from "discord-api-types/v10";
33
33
  //#region extensions/discord/src/monitor/message-utils.ts
@@ -44,7 +44,7 @@ const routeStatus = {
44
44
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
45
45
  if (timeoutMs === null) return false;
46
46
  if (json) {
47
- const { statusJsonCommand } = await import("./status-json-D84Jar1g.js");
47
+ const { statusJsonCommand } = await import("./status-json-BYDxloy-.js");
48
48
  await statusJsonCommand({
49
49
  deep,
50
50
  all,
@@ -53,7 +53,7 @@ const routeStatus = {
53
53
  }, defaultRuntime);
54
54
  return true;
55
55
  }
56
- const { statusCommand } = await import("./status-BkY05XSZ.js");
56
+ const { statusCommand } = await import("./status-DGJL9um2.js");
57
57
  await statusCommand({
58
58
  json,
59
59
  deep,
@@ -130,7 +130,7 @@ const routeAgentsList = {
130
130
  run: async (argv) => {
131
131
  const json = hasFlag(argv, "--json");
132
132
  const bindings = hasFlag(argv, "--bindings");
133
- const { agentsListCommand } = await import("./agents-BEo_YTpt.js");
133
+ const { agentsListCommand } = await import("./agents-QPM9ikB1.js");
134
134
  await agentsListCommand({
135
135
  json,
136
136
  bindings
@@ -176,7 +176,7 @@ const routes = [
176
176
  const pathArg = positionals[0];
177
177
  if (!pathArg) return false;
178
178
  const json = hasFlag(argv, "--json");
179
- const { runConfigGet } = await import("./config-cli-Cb7br09P.js");
179
+ const { runConfigGet } = await import("./config-cli-BKrrEn_d.js");
180
180
  await runConfigGet({
181
181
  path: pathArg,
182
182
  json
@@ -191,7 +191,7 @@ const routes = [
191
191
  if (!positionals || positionals.length !== 1) return false;
192
192
  const pathArg = positionals[0];
193
193
  if (!pathArg) return false;
194
- const { runConfigUnset } = await import("./config-cli-Cb7br09P.js");
194
+ const { runConfigUnset } = await import("./config-cli-BKrrEn_d.js");
195
195
  await runConfigUnset({ path: pathArg });
196
196
  return true;
197
197
  }
@@ -205,7 +205,7 @@ const routes = [
205
205
  const local = hasFlag(argv, "--local");
206
206
  const json = hasFlag(argv, "--json");
207
207
  const plain = hasFlag(argv, "--plain");
208
- const { modelsListCommand } = await import("./models-BHZBQszn.js");
208
+ const { modelsListCommand } = await import("./models-CdAKvkkK.js");
209
209
  await modelsListCommand({
210
210
  all,
211
211
  local,
@@ -236,7 +236,7 @@ const routes = [
236
236
  const plain = hasFlag(argv, "--plain");
237
237
  const check = hasFlag(argv, "--check");
238
238
  const probe = hasFlag(argv, "--probe");
239
- const { modelsStatusCommand } = await import("./models-BHZBQszn.js");
239
+ const { modelsStatusCommand } = await import("./models-CdAKvkkK.js");
240
240
  await modelsStatusCommand({
241
241
  json,
242
242
  plain,
@@ -374,7 +374,7 @@ async function runCli(argv = process$1.argv) {
374
374
  }
375
375
  if (await tryRouteCli(normalizedArgv)) return;
376
376
  enableConsoleCapture();
377
- const { buildProgram } = await import("./program-jxJM6ojG.js");
377
+ const { buildProgram } = await import("./program-CPQCX1Yn.js");
378
378
  const program = buildProgram();
379
379
  const { installUnhandledRejectionHandler } = await import("./unhandled-rejections-D0HD8aaS.js");
380
380
  installUnhandledRejectionHandler();
@@ -388,10 +388,10 @@ async function runCli(argv = process$1.argv) {
388
388
  const { getProgramContext } = await import("./program-context-m43Ch5Cy.js");
389
389
  const ctx = getProgramContext(program);
390
390
  if (ctx) {
391
- const { registerCoreCliByName } = await import("./command-registry-CKMAtGed.js");
391
+ const { registerCoreCliByName } = await import("./command-registry-BP9HOWQJ.js");
392
392
  await registerCoreCliByName(program, ctx, primary, parseArgv);
393
393
  }
394
- const { registerSubCliByName } = await import("./register.subclis-AFk6-U3K.js");
394
+ const { registerSubCliByName } = await import("./register.subclis-BpKLYlbb.js");
395
395
  await registerSubCliByName(program, primary);
396
396
  }
397
397
  if (!shouldSkipPluginCommandRegistration({
@@ -400,7 +400,7 @@ async function runCli(argv = process$1.argv) {
400
400
  hasBuiltinPrimary: primary !== null && program.commands.some((command) => command.name() === primary)
401
401
  })) {
402
402
  const { registerPluginCliCommands } = await import("./cli-g_JdU9WU.js");
403
- const { loadValidatedConfigForPluginRegistration } = await import("./register.subclis-AFk6-U3K.js");
403
+ const { loadValidatedConfigForPluginRegistration } = await import("./register.subclis-BpKLYlbb.js");
404
404
  const config = await loadValidatedConfigForPluginRegistration();
405
405
  if (config) {
406
406
  await registerPluginCliCommands(program, config, void 0, void 0, {
@@ -56,12 +56,12 @@ import { i as runWebSearch, n as listWebSearchProviders } from "./runtime-DZyz4f
56
56
  import { n as resolveChannelGroupRequireMention, t as resolveChannelGroupPolicy } from "./group-policy-Cr7UXkoj.js";
57
57
  import { t as appendCronStyleCurrentTimeLine } from "./current-time-AvIq1E3O.js";
58
58
  import { i as shouldComputeCommandAuthorized, r as isControlCommandMessage, t as hasControlCommand } from "./command-detection-zajIyDVG.js";
59
- import { c as dispatchReplyFromConfig, i as withReplyDispatcher, o as createReplyDispatcherWithTyping } from "./dispatch-C2yIdOm0.js";
59
+ import { c as dispatchReplyFromConfig, i as withReplyDispatcher, o as createReplyDispatcherWithTyping } from "./dispatch-DLfLgIpa.js";
60
60
  import { t as finalizeInboundContext } from "./inbound-context-BxNfypB6.js";
61
61
  import { a as resolveEnvelopeFormatOptions, r as formatInboundEnvelope, t as formatAgentEnvelope } from "./envelope-BT4nxsRe.js";
62
62
  import { n as resolveInboundDebounceMs, t as createInboundDebouncer } from "./inbound-debounce-YEtyt_k_.js";
63
63
  import { i as matchesMentionWithExplicit, n as buildMentionRegexes, r as matchesMentionPatterns } from "./mentions-BOEaM8u9.js";
64
- import { t as dispatchReplyWithBufferedBlockDispatcher } from "./provider-dispatcher-B1X1ni9A.js";
64
+ import { t as dispatchReplyWithBufferedBlockDispatcher } from "./provider-dispatcher-CoZbfzHF.js";
65
65
  import { n as shouldAckReaction, t as removeAckReactionAfterReply } from "./ack-reactions-BZ-o06GS.js";
66
66
  import { t as resolveCommandAuthorizedFromAuthorizers } from "./command-gating-HO-bVa6h.js";
67
67
  import { t as recordInboundSession } from "./session-BJpgc1D8.js";
@@ -73,7 +73,7 @@ import { a as probeSignal, d as signalMessageActions, i as monitorSignalProvider
73
73
  import "./signal-B7C3zAm1.js";
74
74
  import { i as isVoiceCompatibleAudio } from "./audio-DFt2UJ9l.js";
75
75
  import { t as resolveHeartbeatReplyPayload } from "./heartbeat-reply-payload-C-Rlp4k5.js";
76
- import { t as getReplyFromConfig } from "./reply-BNG6Z_aL.js";
76
+ import { t as getReplyFromConfig } from "./reply-3aPmCTXF.js";
77
77
  import { n as resolveHeartbeatIntervalMs, t as isHeartbeatEnabledForAgent } from "./heartbeat-summary-DDS5EE_E.js";
78
78
  import fsSync from "node:fs";
79
79
  import path from "node:path";
@@ -97,7 +97,7 @@ function defineCachedValue(target, key, create) {
97
97
  }
98
98
  //#endregion
99
99
  //#region src/plugins/runtime/runtime-agent.ts
100
- const loadEmbeddedPiRuntime = createLazyRuntimeModule(() => import("./runtime-embedded-pi.runtime-GmSnwjm1.js"));
100
+ const loadEmbeddedPiRuntime = createLazyRuntimeModule(() => import("./runtime-embedded-pi.runtime-Cxzdfsyh.js"));
101
101
  function createRuntimeAgent() {
102
102
  const agentRuntime = {
103
103
  defaults: {
@@ -1,2 +1,2 @@
1
- import { t as runEmbeddedVoraAgent } from "./vora-embedded-runner-CEDOoqMm.js";
1
+ import { t as runEmbeddedVoraAgent } from "./vora-embedded-runner-BlDMkTJo.js";
2
2
  export { runEmbeddedVoraAgent };
@@ -1 +1 @@
1
- export * from "./runtime-embedded-pi.runtime-GmSnwjm1.js";
1
+ export * from "./runtime-embedded-pi.runtime-Cxzdfsyh.js";
@@ -15,7 +15,7 @@ import { t as resolveMarkdownTableMode } from "./markdown-tables-Cwp71sI4.js";
15
15
  import { c as recordChannelActivity } from "./heartbeat-visibility-kNXllOIC.js";
16
16
  import { t as convertMarkdownTables } from "./tables-DbAeYck3.js";
17
17
  import "./config-runtime-D_dtnl47.js";
18
- import "./reply-runtime-T2igqMJu.js";
18
+ import "./reply-runtime-S5TyVadC.js";
19
19
  import { t as reduceInteractiveReply } from "./interactive-C3NpHdfG.js";
20
20
  import "./channel-runtime-Dy1B1-cc.js";
21
21
  import { n as createRateLimitRetryRunner } from "./retry-policy-MF-VKG65.js";