@symerian/symi 3.4.32 → 3.4.33

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 (109) hide show
  1. package/dist/{agent-BaSGoKPq.js → agent-DQfitMBw.js} +1 -1
  2. package/dist/{agent-C8IIjDyn.js → agent-DkDdGuzJ.js} +1 -1
  3. package/dist/{agents-D6Ygz9ED.js → agents-AMdYY8k4.js} +2 -2
  4. package/dist/{auth-choice-Bx4Duu6u.js → auth-choice-BfSOQfbj.js} +1 -1
  5. package/dist/{auth-choice-BBrEzoy2.js → auth-choice-Di69jPrV.js} +1 -1
  6. package/dist/{banner-l9GjW5Rm.js → banner-2AO478QB.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +4 -4
  9. package/dist/bundled/session-memory/handler.js +4 -4
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-DGUqfnbP.js → channel-options-BCzXW2z-.js} +1 -1
  12. package/dist/{channel-options-COanIUoQ.js → channel-options-W61Bhzx-.js} +1 -1
  13. package/dist/{channels-cli-CZ3M3yE1.js → channels-cli-BUG1t9xo.js} +7 -7
  14. package/dist/{channels-cli-B1zmnm5a.js → channels-cli-Dw4fyG1g.js} +7 -7
  15. package/dist/{chrome-CQn8fDIy.js → chrome-CPSDqbK6.js} +7 -7
  16. package/dist/{chrome-B4P7ycw5.js → chrome-DT1fIVG1.js} +7 -7
  17. package/dist/{cli-CC5GrdTI.js → cli-CXO2Tt3f.js} +4 -4
  18. package/dist/{cli-C7I5uEFC.js → cli-CaF1rsTl.js} +4 -4
  19. package/dist/{command-registry-D8fj6th4.js → command-registry-HlICZbMN.js} +10 -10
  20. package/dist/{completion-cli-C-85b5b8.js → completion-cli-BGyTfZsT.js} +1 -1
  21. package/dist/{completion-cli-BxspmuYm.js → completion-cli-C9s04Ris.js} +2 -2
  22. package/dist/{config-cli-DSDGwckX.js → config-cli-Ce0FG7iI.js} +1 -1
  23. package/dist/{config-cli-BqzjDmIH.js → config-cli-p2PrIOF5.js} +1 -1
  24. package/dist/{configure-Dl1f1Den.js → configure-Dj3xQ-cs.js} +2 -2
  25. package/dist/{configure-BazJdwKU.js → configure-c96EHRee.js} +2 -2
  26. package/dist/{deliver-BkCYBlzi.js → deliver-59sRVaYQ.js} +4 -4
  27. package/dist/{deliver-DvW5xHHr.js → deliver-Mqq3tgqB.js} +4 -4
  28. package/dist/{doctor-completion-CX7LjkOD.js → doctor-completion-B1ny8yKk.js} +1 -1
  29. package/dist/{doctor-completion-BwHbIZjF.js → doctor-completion-RWwGjpox.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +4 -4
  32. package/dist/{gateway-cli-CW-Z71cE.js → gateway-cli-8lvej8_J.js} +10 -10
  33. package/dist/{gateway-cli-CTcK1Az2.js → gateway-cli-CkZXvPYl.js} +10 -10
  34. package/dist/{glass-ui-ws-BNJkhJrL.js → glass-ui-ws-Ce9TvGD_.js} +8 -8
  35. package/dist/{glass-ui-ws-BZvH4MBO.js → glass-ui-ws-CmUlgTXc.js} +8 -8
  36. package/dist/{hooks-cli-DkP3Y4ou.js → hooks-cli-BGzzZ0NS.js} +5 -5
  37. package/dist/{hooks-cli-qO421UdO.js → hooks-cli-hb_Ed-Jz.js} +5 -5
  38. package/dist/index.js +8 -8
  39. package/dist/llm-slug-generator.js +4 -4
  40. package/dist/{manager-D0NIHMuQ.js → manager-CWnvYURh.js} +1 -1
  41. package/dist/{manager-DOiW-Koo.js → manager-CnHkbF80.js} +1 -1
  42. package/dist/{manager-BD_cpL9b.js → manager-DkZ5wkXy.js} +1 -1
  43. package/dist/{manager-BQaZlWzK.js → manager-v-DndeD8.js} +1 -1
  44. package/dist/{memory-Cl4I_45k.js → memory-DAiUTYsN.js} +2 -2
  45. package/dist/{memory-kIYeV9aO.js → memory-DIz78XgT.js} +2 -2
  46. package/dist/{memory-cli-DkD_OD70.js → memory-cli-DfW-A_QO.js} +2 -2
  47. package/dist/{memory-cli-CszP57Ee.js → memory-cli-Xhj74cTT.js} +2 -2
  48. package/dist/{models-BYi0Fo1a.js → models-CE_4elo3.js} +2 -2
  49. package/dist/{models-cli-Bn9M1TgO.js → models-cli-BKKWrGzr.js} +5 -5
  50. package/dist/{models-cli-EdjvkvFO.js → models-cli-Dc2tXjX2.js} +6 -6
  51. package/dist/{onboard-CAIujkV7.js → onboard-DepZiaNF.js} +1 -1
  52. package/dist/{onboard-channels-D_uUQbem.js → onboard-channels-C6BRMuCW.js} +1 -1
  53. package/dist/{onboard-channels-B2l6OoMg.js → onboard-channels-CXpGsHLr.js} +1 -1
  54. package/dist/{onboard-C8IQnigm.js → onboard-jE4b4C-p.js} +1 -1
  55. package/dist/{onboarding-BIq5BxG0.js → onboarding-DPH9gWr4.js} +3 -3
  56. package/dist/{onboarding-4v9LJueP.js → onboarding-DnTefFwg.js} +3 -3
  57. package/dist/{onboarding.finalize-CXAQzVXM.js → onboarding.finalize-3ZKGCjhd.js} +4 -4
  58. package/dist/{onboarding.finalize-Bkcwe5RS.js → onboarding.finalize-C8ibJ9uq.js} +3 -3
  59. package/dist/{pi-embedded-CGebiST2.js → pi-embedded-C1ziBpAk.js} +10 -99
  60. package/dist/{plugin-registry-D7ACpV2Y.js → plugin-registry-COJjE9SO.js} +1 -1
  61. package/dist/{plugin-registry-d4hMhLLZ.js → plugin-registry-c9GdlkR9.js} +1 -1
  62. package/dist/plugin-sdk/agents/model-aware-stream.d.ts +0 -21
  63. package/dist/plugin-sdk/index.js +6 -6
  64. package/dist/{plugins-cli-CPf1hMaZ.js → plugins-cli-C9oli8ls.js} +5 -5
  65. package/dist/{plugins-cli-D1gd8p9T.js → plugins-cli-D6dclODT.js} +5 -5
  66. package/dist/{program-C19G7o-Q.js → program-9PTJNfZ7.js} +10 -10
  67. package/dist/{program-context-BSUkEz3n.js → program-context-BUekmPwY.js} +18 -18
  68. package/dist/{prompt-select-styled-CnYM7W0j.js → prompt-select-styled-BK0mAdgX.js} +4 -4
  69. package/dist/{prompt-select-styled-B5wlPYN5.js → prompt-select-styled-BUycx1hY.js} +4 -4
  70. package/dist/{provider-auth-helpers-DpRoNr_8.js → provider-auth-helpers-CczPUO0p.js} +1 -1
  71. package/dist/{provider-auth-helpers-BUC4xGK9.js → provider-auth-helpers-DgK9MncE.js} +1 -1
  72. package/dist/{push-apns-Bm39oOO9.js → push-apns-BGpLn10e.js} +1 -1
  73. package/dist/{push-apns-DqmFEcqh.js → push-apns-CgvbJbQC.js} +1 -1
  74. package/dist/{pw-ai-BsEf8C15.js → pw-ai-C5MJKzUM.js} +1 -1
  75. package/dist/{pw-ai-BB1pJj9_.js → pw-ai-w6Qalz1W.js} +1 -1
  76. package/dist/{register.agent-DZuxoC0a.js → register.agent-BdAFrDZP.js} +9 -9
  77. package/dist/{register.agent-CCKcgAXs.js → register.agent-CiSmK5cW.js} +8 -8
  78. package/dist/{register.configure-JT8T7HO5.js → register.configure-CJ8DVLfn.js} +8 -8
  79. package/dist/{register.configure-CJErdFO_.js → register.configure-FMKBV7zr.js} +8 -8
  80. package/dist/{register.maintenance-CKsv0lok.js → register.maintenance-C9VugUAp.js} +9 -9
  81. package/dist/{register.maintenance-DDzKUGYJ.js → register.maintenance-D5Li0TBK.js} +8 -8
  82. package/dist/{register.message-_bfhetTg.js → register.message-BYoMS5CB.js} +5 -5
  83. package/dist/{register.message-CpOXi1rz.js → register.message-Ds_xPChV.js} +5 -5
  84. package/dist/{register.onboard-CkIM3hU7.js → register.onboard-BzIJn1Lg.js} +2 -2
  85. package/dist/{register.onboard-BHtTh0b_.js → register.onboard-si2z7-YL.js} +2 -2
  86. package/dist/{register.setup-CYtYDKMU.js → register.setup-BsJUgbDb.js} +2 -2
  87. package/dist/{register.setup-CLhdFQHW.js → register.setup-Df3R4yLs.js} +2 -2
  88. package/dist/{register.status-health-sessions-DmX0DLAt.js → register.status-health-sessions-B8sNB-yT.js} +3 -3
  89. package/dist/{register.status-health-sessions-DZnebsxZ.js → register.status-health-sessions-D8NDF7y5.js} +3 -3
  90. package/dist/{register.subclis-CnDo2jzv.js → register.subclis-Yhn2bUmt.js} +9 -9
  91. package/dist/{run-main-BIRbWKyA.js → run-main-CFH2Lrwb.js} +17 -17
  92. package/dist/{server-methods-Dz6NGEg3.js → server-methods-C-CwdwCK.js} +6 -6
  93. package/dist/{server-methods-vp5zi6v5.js → server-methods-DeytIhcV.js} +6 -6
  94. package/dist/{server-node-events-B7UtUhkC.js → server-node-events-C1ClYFgH.js} +6 -6
  95. package/dist/{server-node-events-4ufB_olv.js → server-node-events-V9Lp56Gv.js} +6 -6
  96. package/dist/{status-DEXnB1sw.js → status-9g-DM9_P.js} +1 -1
  97. package/dist/{status-MMLxoRgQ.js → status-DI7oeBoM.js} +1 -1
  98. package/dist/{status-BD8gFYKH.js → status-DajsgZgR.js} +1 -1
  99. package/dist/{status-B0HecH1s.js → status-JGAm0LR-.js} +1 -1
  100. package/dist/{subagent-registry-C57PFGHU.js → subagent-registry-Fio11IHF.js} +3 -92
  101. package/dist/{synthesis-CjsIBd8X.js → synthesis-Bz8Yp6oI.js} +4 -4
  102. package/dist/{synthesis-j_kjlFo1.js → synthesis-CXXYGwNN.js} +4 -4
  103. package/dist/{synthesis-DSdF0vsi.js → synthesis-DUu4tYgx.js} +4 -4
  104. package/dist/{synthesis-CQdzrLFL.js → synthesis-DwljJPko.js} +4 -4
  105. package/dist/{unified-runner-DCiPB--z.js → unified-runner-B3G4fVeJ.js} +3 -92
  106. package/dist/{unified-runner-BNt7TQKM.js → unified-runner-V6KJgMsY.js} +10 -99
  107. package/dist/{update-cli-CWufRpkr.js → update-cli-BaLUelaZ.js} +8 -8
  108. package/dist/{update-cli-Dl_QbjXc.js → update-cli-C8Uy9Hox.js} +9 -9
  109. package/package.json +1 -1
@@ -5,8 +5,8 @@ import { l as resolveDefaultAgentId } from "./agent-scope-B6p555mP.js";
5
5
  import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-igdtSRrZ.js";
6
6
  import { n as formatErrorMessage } from "./errors-TVUWuVoP.js";
7
7
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-CNexk5_o.js";
8
- import { t as getMemorySearchManager } from "./memory-Cl4I_45k.js";
9
- import { i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels } from "./manager-BQaZlWzK.js";
8
+ import { t as getMemorySearchManager } from "./memory-DAiUTYsN.js";
9
+ import { i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels } from "./manager-v-DndeD8.js";
10
10
  import { c as normalizeExtraMemoryPaths, s as listMemoryFiles } from "./internal-BuBDa4KX.js";
11
11
  import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
12
12
  import { r as withManager } from "./cli-utils-BqMwAlgf.js";
@@ -7,7 +7,7 @@ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CUZ7IgY7.j
7
7
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-DgN15006.js";
8
8
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
9
9
  import { f as parseDurationMs, i as loadConfig } from "./config-igdtSRrZ.js";
10
- import { It as maskApiKey, Lt as DEFAULT_OAUTH_WARN_MS, Rt as buildAuthHealthSummary, T as runAgentTurn, X as describeFailoverError, zt as formatRemainingShort } from "./subagent-registry-C57PFGHU.js";
10
+ import { It as maskApiKey, Lt as DEFAULT_OAUTH_WARN_MS, Rt as buildAuthHealthSummary, T as runAgentTurn, X as describeFailoverError, zt as formatRemainingShort } from "./subagent-registry-Fio11IHF.js";
11
11
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-CNexk5_o.js";
12
12
  import { t as ensureSymiModelsJson } from "./models-config-yKxNCn4V.js";
13
13
  import { f as formatUsageWindowSummary, p as resolveUsageProviderId, u as loadProviderUsageSummary } from "./redact-identifier-Cm1VfV7E.js";
@@ -22,7 +22,7 @@ import { n as redactSecrets } from "./format-BGzoTHhD.js";
22
22
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-CIeW3aWF.js";
23
23
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Brb1Askz.js";
24
24
  import { n as logConfigUpdated } from "./logging-BeA4q4J_.js";
25
- import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-BUC4xGK9.js";
25
+ import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DgK9MncE.js";
26
26
  import path from "node:path";
27
27
  import fs from "node:fs/promises";
28
28
  import { complete, getEnvApiKey, getModel } from "@mariozechner/pi-ai";
@@ -1,4 +1,4 @@
1
- import { On as describeFailoverError, _t as buildAuthHealthSummary, gt as DEFAULT_OAUTH_WARN_MS, ht as maskApiKey, t as runAgentTurn, vt as formatRemainingShort } from "./unified-runner-DCiPB--z.js";
1
+ import { On as describeFailoverError, _t as buildAuthHealthSummary, gt as DEFAULT_OAUTH_WARN_MS, ht as maskApiKey, t as runAgentTurn, vt as formatRemainingShort } from "./unified-runner-B3G4fVeJ.js";
2
2
  import { A as isRich$1, j as theme, k as colorize } from "./registry-DKJLAPDB.js";
3
3
  import { t as CONFIG_PATH } from "./paths-BSzKwaxE.js";
4
4
  import { v as shortenHomePath } from "./utils-BU8jVQFM.js";
@@ -46,8 +46,8 @@ import "./session-cost-usage-DYcv40ss.js";
46
46
  import { _ as loadProviderUsageSummary, b as resolveUsageProviderId, y as formatUsageWindowSummary } from "./session-utils-CgGDr4eh.js";
47
47
  import "./with-timeout-BE7lxhxW.js";
48
48
  import "./reply-prefix-BOdARKaY.js";
49
- import "./memory-kIYeV9aO.js";
50
- import "./manager-DOiW-Koo.js";
49
+ import "./memory-DIz78XgT.js";
50
+ import "./manager-CnHkbF80.js";
51
51
  import "./sqlite-DBEvS-Ne.js";
52
52
  import "./chunk-DQGU0F8t.js";
53
53
  import "./markdown-tables-GTLvbzuR.js";
@@ -77,7 +77,7 @@ import { t as formatDocsLink } from "./links-CSaUKNKm.js";
77
77
  import { n as runCommandWithRuntime, t as resolveOptionFromCommand } from "./cli-utils-CX1oQ81G.js";
78
78
  import "./help-format-BI_G2p1e.js";
79
79
  import { r as withProgressTotals } from "./progress-CyPyGCDn.js";
80
- import "./memory-cli-DkD_OD70.js";
80
+ import "./memory-cli-DfW-A_QO.js";
81
81
  import "./logging-B5YNzZB9.js";
82
82
  import "./replies-B2O2eRh6.js";
83
83
  import "./pi-tools.policy-Dyx3nBmp.js";
@@ -92,7 +92,7 @@ import { n as redactSecrets } from "./format-C-0EAOjI.js";
92
92
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-_wwqvx84.js";
93
93
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-SebYuqfR.js";
94
94
  import { n as logConfigUpdated } from "./logging-B96FQvnn.js";
95
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DpRoNr_8.js";
95
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-CczPUO0p.js";
96
96
  import crypto from "node:crypto";
97
97
  import path from "node:path";
98
98
  import fs from "node:fs/promises";
@@ -14,7 +14,7 @@ import "./client-Dp8LUTmF.js";
14
14
  import "./call-5IE9ycvm.js";
15
15
  import "./message-channel-CNPAq1Tl.js";
16
16
  import "./pairing-token-Bnr7QjVF.js";
17
- import "./subagent-registry-C57PFGHU.js";
17
+ import "./subagent-registry-Fio11IHF.js";
18
18
  import "./sessions-BNEDanZO.js";
19
19
  import "./plugins-Bq-Msc8Z.js";
20
20
  import "./send-EluKytgO.js";
@@ -42,8 +42,8 @@ import "./paths-CNexk5_o.js";
42
42
  import "./thinking-BDh5LPh-.js";
43
43
  import "./models-config-yKxNCn4V.js";
44
44
  import "./reply-prefix-B7pYEiW_.js";
45
- import "./memory-Cl4I_45k.js";
46
- import "./manager-BQaZlWzK.js";
45
+ import "./memory-DAiUTYsN.js";
46
+ import "./manager-v-DndeD8.js";
47
47
  import "./sqlite-l3CZYU6t.js";
48
48
  import "./chunk-BySyfaEr.js";
49
49
  import "./markdown-tables-CCOfinlW.js";
@@ -73,7 +73,7 @@ import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
73
73
  import { n as runCommandWithRuntime, t as resolveOptionFromCommand } from "./cli-utils-BqMwAlgf.js";
74
74
  import "./help-format-DbbIlOje.js";
75
75
  import "./progress-C4ck6JXh.js";
76
- import "./memory-cli-CszP57Ee.js";
76
+ import "./memory-cli-Xhj74cTT.js";
77
77
  import "./logging-D0L9TWhE.js";
78
78
  import "./replies-DIHkSwoW.js";
79
79
  import "./pi-tools.policy-BaRznBvu.js";
@@ -85,8 +85,8 @@ import "./table-CSEp22Mk.js";
85
85
  import "./shared-CIeW3aWF.js";
86
86
  import "./auth-token-Brb1Askz.js";
87
87
  import "./logging-BeA4q4J_.js";
88
- import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-BUC4xGK9.js";
89
- import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-BYi0Fo1a.js";
88
+ import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-DgK9MncE.js";
89
+ import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-CE_4elo3.js";
90
90
 
91
91
  //#region src/cli/models-cli.ts
92
92
  function runModelsCommand(action) {
@@ -10,7 +10,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-p_nEAkHC.js";
11
11
  import { t as resolveGatewayService } from "./service-BIixwO-v.js";
12
12
  import { r as healthCommand } from "./health-DdzNc1yA.js";
13
- import { t as runOnboardingWizard } from "./onboarding-BIq5BxG0.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-DPH9gWr4.js";
14
14
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-Brb1Askz.js";
15
15
  import { n as logConfigUpdated } from "./logging-BeA4q4J_.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-D9WcUI_J.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-DCiPB--z.js";
2
+ import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-B3G4fVeJ.js";
3
3
  import { a as formatChannelSelectionLine, i as formatChannelPrimerLine, s as listChatChannels } from "./registry-DKJLAPDB.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
5
5
  import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
3
3
  import { t as formatCliCommand } from "./command-format-Xm6vX3qJ.js";
4
4
  import { m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-BfskPVEs.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-B6p555mP.js";
6
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-C57PFGHU.js";
6
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-Fio11IHF.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-Bq-Msc8Z.js";
8
8
  import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-CJzUbDcX.js";
@@ -12,7 +12,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-9LEEqibe.js";
13
13
  import { t as resolveGatewayService } from "./service-AP9pR9R5.js";
14
14
  import { r as healthCommand } from "./health-D8cKia4i.js";
15
- import { t as runOnboardingWizard } from "./onboarding-4v9LJueP.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-DnTefFwg.js";
16
16
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-SebYuqfR.js";
17
17
  import { n as logConfigUpdated } from "./logging-B96FQvnn.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-CsjluQCN.js";
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-Bs5D0GUv.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DBfm0y9l.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-DcZ2SEUv.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Bx4Duu6u.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BfSOQfbj.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-4NUXHy8M.js").then((n) => n.i);
228
228
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
229
229
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
276
276
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
277
277
  else {
278
278
  const { listChannelPlugins } = await import("./plugins-Bq-Msc8Z.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-B2l6OoMg.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-CXpGsHLr.js").then((n) => n.n);
280
280
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
281
281
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
282
282
  allowSignalInstall: true,
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CXAQzVXM.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-3ZKGCjhd.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./auth-profiles-BFSVvFKy.js").then((n) => n.t);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-D8GvjOBX.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-B2fJvyxt.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BBrEzoy2.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Di69jPrV.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-CV56GE8A.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-DuuHorqi.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-D_uUQbem.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-C6BRMuCW.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Bkcwe5RS.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-C8ibJ9uq.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -39,10 +39,10 @@ import "./bindings-D3NmzRPM.js";
39
39
  import "./progress-C4ck6JXh.js";
40
40
  import "./prompt-style-Z2ZizQap.js";
41
41
  import "./note-DKRm9hYC.js";
42
- import "./register.subclis-CnDo2jzv.js";
43
- import "./command-registry-D8fj6th4.js";
42
+ import "./register.subclis-Yhn2bUmt.js";
43
+ import "./command-registry-HlICZbMN.js";
44
44
  import "./program-context-BFKw4l9I.js";
45
- import { r as installCompletion } from "./completion-cli-BxspmuYm.js";
45
+ import { r as installCompletion } from "./completion-cli-C9s04Ris.js";
46
46
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2Y9RfgcP.js";
47
47
  import "./runtime-guard-p4-FMx0l.js";
48
48
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-Bm-oyLWy.js";
@@ -51,7 +51,7 @@ import { t as resolveGatewayService } from "./service-BIixwO-v.js";
51
51
  import { r as healthCommand } from "./health-DdzNc1yA.js";
52
52
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5BrwGRs.js";
53
53
  import { t as formatHealthCheckFailure } from "./health-format-DaP03FBk.js";
54
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CX7LjkOD.js";
54
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B1ny8yKk.js";
55
55
  import { t as runTui } from "./tui-D0j61PXx.js";
56
56
  import os from "node:os";
57
57
  import path from "node:path";
@@ -43,10 +43,10 @@ import "./tool-display-Dr6VaTg5.js";
43
43
  import "./bindings-9LSA3Jr1.js";
44
44
  import "./progress-CyPyGCDn.js";
45
45
  import "./runtime-guard-BZ3_1QqS.js";
46
- import "./program-context-BSUkEz3n.js";
46
+ import "./program-context-BUekmPwY.js";
47
47
  import "./prompt-style-Cad0BDRS.js";
48
48
  import "./note-CHrtEumO.js";
49
- import { r as installCompletion } from "./completion-cli-C-85b5b8.js";
49
+ import { r as installCompletion } from "./completion-cli-BGyTfZsT.js";
50
50
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BpfA4d6Q.js";
51
51
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CHfdRdZR.js";
52
52
  import { r as isSystemdUserServiceAvailable } from "./systemd-9LEEqibe.js";
@@ -54,7 +54,7 @@ import { t as resolveGatewayService } from "./service-AP9pR9R5.js";
54
54
  import { r as healthCommand } from "./health-D8cKia4i.js";
55
55
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DUhvOLUL.js";
56
56
  import { t as formatHealthCheckFailure } from "./health-format-39e76m9p.js";
57
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BwHbIZjF.js";
57
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-RWwGjpox.js";
58
58
  import { t as runTui } from "./tui-DFuScHlA.js";
59
59
  import path from "node:path";
60
60
  import os from "node:os";
@@ -10,13 +10,13 @@ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Bbs
10
10
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
11
11
  import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
12
12
  import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-DU-fXkSk.js";
13
- import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-DvW5xHHr.js";
13
+ import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-Mqq3tgqB.js";
14
14
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BvZmqxYI.js";
15
15
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
16
16
  import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-BjnT3w_x.js";
17
17
  import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, o as normalizeHostname, p as parseDurationMs, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-CBajKNWO.js";
18
18
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-CAWGTwb5.js";
19
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CQn8fDIy.js";
19
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CPSDqbK6.js";
20
20
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bn0f9KTL.js";
21
21
  import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
22
22
  import { n as formatErrorMessage } from "./errors-C6sHIFo_.js";
@@ -25,7 +25,7 @@ import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeV
25
25
  import { n as resolveConversationLabel } from "./conversation-label-CPUfoQmh.js";
26
26
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
27
27
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
28
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-D0NIHMuQ.js";
28
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-CWnvYURh.js";
29
29
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
30
30
  import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
31
31
  import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-BRWqR35Z.js";
@@ -49,7 +49,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
49
49
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
50
50
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
51
51
  import AjvPkg from "ajv";
52
- import { WebSocket } from "ws";
52
+ import { WebSocket as WebSocket$1 } from "ws";
53
53
  import { Buffer as Buffer$1 } from "node:buffer";
54
54
  import { createJiti } from "jiti";
55
55
  import { Type } from "@sinclair/typebox";
@@ -1028,7 +1028,7 @@ async function getMemorySearchManager(params) {
1028
1028
  const wrapper = new FallbackMemoryManager({
1029
1029
  primary,
1030
1030
  fallbackFactory: async () => {
1031
- const { MemoryIndexManager } = await import("./manager-D0NIHMuQ.js").then((n) => n.t);
1031
+ const { MemoryIndexManager } = await import("./manager-CWnvYURh.js").then((n) => n.t);
1032
1032
  return await MemoryIndexManager.get(params);
1033
1033
  }
1034
1034
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1041,7 +1041,7 @@ async function getMemorySearchManager(params) {
1041
1041
  }
1042
1042
  }
1043
1043
  try {
1044
- const { MemoryIndexManager } = await import("./manager-D0NIHMuQ.js").then((n) => n.t);
1044
+ const { MemoryIndexManager } = await import("./manager-CWnvYURh.js").then((n) => n.t);
1045
1045
  return { manager: await MemoryIndexManager.get(params) };
1046
1046
  } catch (err) {
1047
1047
  return {
@@ -3554,7 +3554,7 @@ var GatewayClient = class {
3554
3554
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
3555
3555
  });
3556
3556
  }
3557
- this.ws = new WebSocket(url, wsOptions);
3557
+ this.ws = new WebSocket$1(url, wsOptions);
3558
3558
  this.ws.on("open", () => {
3559
3559
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
3560
3560
  const tlsError = this.validateTlsFingerprint();
@@ -3773,7 +3773,7 @@ var GatewayClient = class {
3773
3773
  return null;
3774
3774
  }
3775
3775
  async request(method, params, opts) {
3776
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
3776
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
3777
3777
  const id = randomUUID();
3778
3778
  const frame = {
3779
3779
  type: "req",
@@ -4719,7 +4719,7 @@ async function routeReply(params) {
4719
4719
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4720
4720
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4721
4721
  try {
4722
- const { deliverOutboundPayloads } = await import("./deliver-DvW5xHHr.js").then((n) => n.n);
4722
+ const { deliverOutboundPayloads } = await import("./deliver-Mqq3tgqB.js").then((n) => n.n);
4723
4723
  return {
4724
4724
  ok: true,
4725
4725
  messageId: (await deliverOutboundPayloads({
@@ -38774,7 +38774,7 @@ async function deliverSessionMaintenanceWarning(params) {
38774
38774
  return;
38775
38775
  }
38776
38776
  try {
38777
- const { deliverOutboundPayloads } = await import("./deliver-DvW5xHHr.js").then((n) => n.n);
38777
+ const { deliverOutboundPayloads } = await import("./deliver-Mqq3tgqB.js").then((n) => n.n);
38778
38778
  await deliverOutboundPayloads({
38779
38779
  cfg: params.cfg,
38780
38780
  channel,
@@ -41198,91 +41198,6 @@ function createOutputNormalizer(profile, modelId) {
41198
41198
  //#endregion
41199
41199
  //#region src/agents/model-aware-stream.ts
41200
41200
  /**
41201
- * Match imperative tool requests:
41202
- * "Use the exec tool to run X"
41203
- * "use exec to ..."
41204
- * "Please invoke the read tool"
41205
- * "call memory_search with ..."
41206
- *
41207
- * Anchored to start-of-string, start-of-line, or after a closing-bracket
41208
- * delimiter `] ` (covers Symi's `[Thu 2026-04-30 20:48 EDT] ` timestamp
41209
- * envelope, the `[Outlook 365] ` plugin banner, and similar prefixes that
41210
- * gateway middleware can inject before the user's actual prompt — verified
41211
- * live: `chat.send` from Glass UI ships content like
41212
- *
41213
- * Conversation info (untrusted metadata):
41214
- * ```json
41215
- * { "message_id": "...", ... }
41216
- * ```
41217
- *
41218
- * [Thu 2026-04-30 20:48 EDT] Use the exec tool to run: hostname
41219
- *
41220
- * so the `Use` is preceded by `] ` not by `\n` or `^`).
41221
- *
41222
- * Verb list is conservative (use/invoke/call/please-{use,call}) — pure
41223
- * imperative verbs that read unambiguously as "do this for me." Tool name
41224
- * must match EXPLICIT_TOOL_NAMES exactly to keep "use poetic language" /
41225
- * "use clear writing" / etc. from triggering.
41226
- */
41227
- const EXPLICIT_TOOL_REQUEST_PATTERN = new RegExp(String.raw`(?:^|\n|\]\s)\s*(?:please\s+)?(?:use|invoke|call)\s+(?:the\s+)?(?:` + [
41228
- "exec",
41229
- "bash",
41230
- "read",
41231
- "write",
41232
- "edit",
41233
- "patch",
41234
- "web_search",
41235
- "web_fetch",
41236
- "browser",
41237
- "browser_navigate",
41238
- "browser_snapshot",
41239
- "browser_click",
41240
- "browser_type",
41241
- "memory_search",
41242
- "memory_get",
41243
- "memory_pin",
41244
- "memory_unpin",
41245
- "spawn_agent",
41246
- "message",
41247
- "task_list",
41248
- "task_cancel",
41249
- "cron",
41250
- "fetch",
41251
- "skill_search"
41252
- ].map((n) => n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|") + String.raw`)(?:\s+tool)?\b`, "i");
41253
- /**
41254
- * Extract the user-role text ONLY when it's the LAST message in the
41255
- * conversation (i.e., we're at the start of a fresh turn, not in the
41256
- * middle of an agent loop). Returns "" when:
41257
- * - messages isn't an array
41258
- * - the last message isn't user-role (= we're after a tool_call /
41259
- * tool_result and the model is continuing — forcing tool_choice
41260
- * "required" here would loop the agent: model must call a tool →
41261
- * tool result → model must call ANOTHER tool → tool result → ...)
41262
- *
41263
- * Verified live on 3.0.7 dev: with the original "find any prior user
41264
- * message" implementation, every agent-loop iteration saw the same
41265
- * matching userText and re-forced tool_choice="required", spinning the
41266
- * model in an infinite tool-call loop and timing out at 180s.
41267
- */
41268
- function extractLastUserText(messages) {
41269
- if (!Array.isArray(messages) || messages.length === 0) return "";
41270
- const last = messages[messages.length - 1];
41271
- if (!last || typeof last !== "object") return "";
41272
- const msg = last;
41273
- if (msg.role !== "user") return "";
41274
- if (typeof msg.content === "string") return msg.content;
41275
- if (Array.isArray(msg.content)) {
41276
- const parts = [];
41277
- for (const part of msg.content) if (part && typeof part === "object") {
41278
- const block = part;
41279
- if (block.type === "text" && typeof block.text === "string") parts.push(block.text);
41280
- }
41281
- return parts.join("\n");
41282
- }
41283
- return "";
41284
- }
41285
- /**
41286
41201
  * Create a single stream function wrapper that handles all provider-specific
41287
41202
  * param injection via one onPayload hook.
41288
41203
  *
@@ -41330,10 +41245,6 @@ function createModelAwareStreamFn(opts) {
41330
41245
  delete p.store;
41331
41246
  }
41332
41247
  if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === void 0) p.tool_choice = "auto";
41333
- if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === "auto") {
41334
- const userText = extractLastUserText(p.messages);
41335
- if (userText && EXPLICIT_TOOL_REQUEST_PATTERN.test(userText)) p.tool_choice = "required";
41336
- }
41337
41248
  }
41338
41249
  callerOnPayload?.(payload);
41339
41250
  };
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-B6p555mP.js";
4
4
  import { i as loadConfig } from "./config-igdtSRrZ.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-C57PFGHU.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-Fio11IHF.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-DCiPB--z.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-B3G4fVeJ.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-DKJLAPDB.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DIjW66iO.js";
@@ -13,26 +13,6 @@
13
13
  import type { StreamFn } from "@mariozechner/pi-agent-core";
14
14
  import type { SymiConfig } from "../config/config.js";
15
15
  import type { ModelProfile } from "../config/model-profiles.js";
16
- /**
17
- * Extract the user-role text ONLY when it's the LAST message in the
18
- * conversation (i.e., we're at the start of a fresh turn, not in the
19
- * middle of an agent loop). Returns "" when:
20
- * - messages isn't an array
21
- * - the last message isn't user-role (= we're after a tool_call /
22
- * tool_result and the model is continuing — forcing tool_choice
23
- * "required" here would loop the agent: model must call a tool →
24
- * tool result → model must call ANOTHER tool → tool result → ...)
25
- *
26
- * Verified live on 3.0.7 dev: with the original "find any prior user
27
- * message" implementation, every agent-loop iteration saw the same
28
- * matching userText and re-forced tool_choice="required", spinning the
29
- * model in an infinite tool-call loop and timing out at 180s.
30
- */
31
- declare function extractLastUserText(messages: unknown): string;
32
- /** Exposed for unit tests. */
33
- export declare const __EXPLICIT_TOOL_REQUEST_PATTERN: RegExp;
34
- /** Exposed for unit tests. */
35
- export declare const __extractLastUserText: typeof extractLastUserText;
36
16
  export interface ModelAwareStreamOptions {
37
17
  /** Base streaming function — streamSimple or createOllamaStreamFn. */
38
18
  baseStreamFn?: StreamFn;
@@ -59,4 +39,3 @@ export interface ModelAwareStreamOptions {
59
39
  export declare function createModelAwareStreamFn(opts: ModelAwareStreamOptions): StreamFn;
60
40
  /** Detect vLLM providers by model hints or baseUrl patterns. */
61
41
  export declare function isVllmProvider(provider: string, modelId: string, config?: SymiConfig): boolean;
62
- export {};
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import fs, { constants, readFileSync } from "node:fs";
4
4
  import os from "node:os";
5
5
  import { Logger } from "tslog";
6
- import JSON5 from "json5";
6
+ import json5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import fs$1, { mkdtemp, rm } from "node:fs/promises";
9
9
  import { z } from "zod";
@@ -473,7 +473,7 @@ function readLoggingConfig() {
473
473
  try {
474
474
  if (!fs.existsSync(configPath)) return;
475
475
  const raw = fs.readFileSync(configPath, "utf-8");
476
- const logging = JSON5.parse(raw)?.logging;
476
+ const logging = json5.parse(raw)?.logging;
477
477
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
478
478
  return logging;
479
479
  } catch {
@@ -7320,7 +7320,7 @@ function safeRealpath(target) {
7320
7320
  }
7321
7321
  const defaultResolver = {
7322
7322
  readFile: (p) => fs.readFileSync(p, "utf-8"),
7323
- parseJson: (raw) => JSON5.parse(raw)
7323
+ parseJson: (raw) => json5.parse(raw)
7324
7324
  };
7325
7325
  /**
7326
7326
  * Resolves all $include directives in a parsed config object.
@@ -10551,7 +10551,7 @@ function resolveConfigPathForDeps(deps) {
10551
10551
  function normalizeDeps(overrides = {}) {
10552
10552
  return {
10553
10553
  fs: overrides.fs ?? fs,
10554
- json5: overrides.json5 ?? JSON5,
10554
+ json5: overrides.json5 ?? json5,
10555
10555
  env: overrides.env ?? process.env,
10556
10556
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
10557
10557
  configPath: overrides.configPath ?? "",
@@ -10562,11 +10562,11 @@ function maybeLoadDotEnvForConfig(env) {
10562
10562
  if (env !== process.env) return;
10563
10563
  loadDotEnv({ quiet: true });
10564
10564
  }
10565
- function parseConfigJson5(raw, json5 = JSON5) {
10565
+ function parseConfigJson5(raw, json5$1 = json5) {
10566
10566
  try {
10567
10567
  return {
10568
10568
  ok: true,
10569
- parsed: json5.parse(raw)
10569
+ parsed: json5$1.parse(raw)
10570
10570
  };
10571
10571
  } catch (err) {
10572
10572
  return {
@@ -1,4 +1,4 @@
1
- import "./unified-runner-DCiPB--z.js";
1
+ import "./unified-runner-B3G4fVeJ.js";
2
2
  import { j as theme } from "./registry-DKJLAPDB.js";
3
3
  import { g as resolveStateDir } from "./paths-BSzKwaxE.js";
4
4
  import { _ as shortenHomeInString, h as resolveUserPath, p as resolveConfigDir, v as shortenHomePath } from "./utils-BU8jVQFM.js";
@@ -45,8 +45,8 @@ import "./session-cost-usage-DYcv40ss.js";
45
45
  import "./session-utils-CgGDr4eh.js";
46
46
  import "./with-timeout-BE7lxhxW.js";
47
47
  import "./reply-prefix-BOdARKaY.js";
48
- import "./memory-kIYeV9aO.js";
49
- import "./manager-DOiW-Koo.js";
48
+ import "./memory-DIz78XgT.js";
49
+ import "./manager-CnHkbF80.js";
50
50
  import "./sqlite-DBEvS-Ne.js";
51
51
  import "./chunk-DQGU0F8t.js";
52
52
  import "./markdown-tables-GTLvbzuR.js";
@@ -76,7 +76,7 @@ import { t as formatDocsLink } from "./links-CSaUKNKm.js";
76
76
  import "./cli-utils-CX1oQ81G.js";
77
77
  import "./help-format-BI_G2p1e.js";
78
78
  import "./progress-CyPyGCDn.js";
79
- import "./memory-cli-DkD_OD70.js";
79
+ import "./memory-cli-DfW-A_QO.js";
80
80
  import "./logging-B5YNzZB9.js";
81
81
  import "./replies-B2O2eRh6.js";
82
82
  import "./pi-tools.policy-Dyx3nBmp.js";
@@ -86,7 +86,7 @@ import "./npm-registry-spec-BXw_6vF6.js";
86
86
  import "./skill-scanner-YF2jR4RY.js";
87
87
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-DhSLZRT7.js";
88
88
  import { t as renderTable } from "./table-DkAQzCOR.js";
89
- import { t as buildPluginStatusReport } from "./status-B0HecH1s.js";
89
+ import { t as buildPluginStatusReport } from "./status-JGAm0LR-.js";
90
90
  import { n as updateNpmInstalledPlugins } from "./update-CjZgU686.js";
91
91
  import path from "node:path";
92
92
  import fs from "node:fs";