@symerian/symi 3.4.25 → 3.4.26

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 (139) hide show
  1. package/dist/{agent-CQlyTNu-.js → agent-DQvcs-ag.js} +1 -1
  2. package/dist/{agent-N_J2cDO6.js → agent-DR2UU-2F.js} +2 -2
  3. package/dist/{agents-1xmRO246.js → agents-BewjExwR.js} +2 -2
  4. package/dist/{audit-DCwHws4M.js → audit-bjakulrx.js} +5 -5
  5. package/dist/{auth-choice-Ryx7oj6G.js → auth-choice-BkSsm1pk.js} +1 -1
  6. package/dist/{auth-choice-DwXdS4c2.js → auth-choice-L6_DvGSb.js} +2 -2
  7. package/dist/{banner-CxMQaUgh.js → banner-DoxWG0Rv.js} +1 -1
  8. package/dist/{browser-cli-C3hfJNZy.js → browser-cli-DdLN-X6g.js} +3 -3
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +2 -2
  11. package/dist/bundled/session-memory/handler.js +2 -2
  12. package/dist/{call-BouPakqe.js → call-BOE4s-tQ.js} +1 -1
  13. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  14. package/dist/{channel-options-n9C_ovb1.js → channel-options-CJOhNCrO.js} +1 -1
  15. package/dist/{channel-options-WR29vfWK.js → channel-options-X5Mgr-oH.js} +1 -1
  16. package/dist/{channels-cli-Cs-Uq67O.js → channels-cli-CBdy4UL6.js} +7 -7
  17. package/dist/{channels-cli-DbFGI3vF.js → channels-cli-Drn3JOc8.js} +17 -17
  18. package/dist/{chrome-B7-rO4i9.js → chrome-BKUACyeO.js} +7 -7
  19. package/dist/{chrome-rzK8edU7.js → chrome-xlyBE8q3.js} +7 -7
  20. package/dist/{cli-D55pCJ8Q.js → cli-DJA_Gm3_.js} +4 -4
  21. package/dist/{cli-7ceDvtPc.js → cli-S62cMO1-.js} +14 -14
  22. package/dist/{client-BzUAFrla.js → client-iv2QpsT1.js} +3 -3
  23. package/dist/{command-registry-DAy62yhH.js → command-registry-CZrQWdR_.js} +10 -10
  24. package/dist/{completion-cli-Bh-Y2NVp.js → completion-cli-CPiZTObN.js} +2 -2
  25. package/dist/{completion-cli-Bc1jojml.js → completion-cli-DvaCHwGr.js} +1 -1
  26. package/dist/{config-cli-DupKETmw.js → config-cli-CiTMrunf.js} +1 -1
  27. package/dist/{config-cli-BxRcn2oD.js → config-cli-Dhb3ZuZ6.js} +1 -1
  28. package/dist/{configure-BilM_Fgn.js → configure-CzAszDyQ.js} +2 -2
  29. package/dist/{configure-0XYm59w7.js → configure-DlLBbvyP.js} +6 -6
  30. package/dist/{control-service-Ry7Le68N.js → control-service-BgfKoTwJ.js} +3 -3
  31. package/dist/{cron-cli-DHFgjr_X.js → cron-cli-Bg9CiOss.js} +3 -3
  32. package/dist/{daemon-cli-fC2R9YZd.js → daemon-cli-wRBPfyuU.js} +2 -2
  33. package/dist/{deliver-oWGJwzFf.js → deliver-Cjyb6h4g.js} +4 -4
  34. package/dist/{devices-cli-DtkKN4l0.js → devices-cli-IoQV2hfa.js} +2 -2
  35. package/dist/{doctor-completion-B6OPl_GZ.js → doctor-completion-C4vmp9I7.js} +1 -1
  36. package/dist/{doctor-completion-BZJWX3Dr.js → doctor-completion-CBs1R4s0.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/{exec-approvals-cli-C3gZAwV8.js → exec-approvals-cli-D107mxRX.js} +4 -4
  39. package/dist/extensionAPI.js +4 -4
  40. package/dist/{gateway-cli-CyhLb-zS.js → gateway-cli-D6v-ok73.js} +25 -25
  41. package/dist/{gateway-cli-DQhYa6AL.js → gateway-cli-q8Mf3jQH.js} +10 -10
  42. package/dist/{gateway-rpc-DNq7EMhm.js → gateway-rpc-rNjNMA6y.js} +1 -1
  43. package/dist/{glass-ui-ws-SJVljtUx.js → glass-ui-ws-CC93azF2.js} +21 -21
  44. package/dist/{glass-ui-ws-CLDbMDPk.js → glass-ui-ws-CIm7LZ8W.js} +8 -8
  45. package/dist/{health-DZ0aipDZ.js → health-B92I0vwb.js} +1 -1
  46. package/dist/{hooks-cli-BVtdP5x7.js → hooks-cli-DCVYSJ8i.js} +5 -5
  47. package/dist/{hooks-cli-BMRj13QU.js → hooks-cli-DfFHpfYB.js} +15 -15
  48. package/dist/index.js +18 -18
  49. package/dist/llm-slug-generator.js +2 -2
  50. package/dist/{logs-cli-mdSEYBKS.js → logs-cli-DvPMH-Ur.js} +3 -3
  51. package/dist/{manager-BLg6zbeA.js → manager-C1bLWQJb.js} +1 -1
  52. package/dist/{manager-BhIaahpm.js → manager-CVP2spyx.js} +1 -1
  53. package/dist/{manager-BIt2_nlu.js → manager-Dj2dVPGR.js} +1 -1
  54. package/dist/{manager-DhHNnMyK.js → manager-Dz4nKG33.js} +1 -1
  55. package/dist/{memory-BENbCb4f.js → memory-BGLXu8Hn.js} +2 -2
  56. package/dist/{memory-B4DsKRSc.js → memory-D_CuTCAW.js} +2 -2
  57. package/dist/{memory-cli-BIjwqjBx.js → memory-cli-DLyBqCnp.js} +2 -2
  58. package/dist/{memory-cli-DotHyA76.js → memory-cli-XxOC0_-M.js} +2 -2
  59. package/dist/{models-CmToZKBp.js → models-Bf57T7rZ.js} +2 -2
  60. package/dist/{models-cli-Di7iKhD4.js → models-cli-BoUVPeOA.js} +6 -6
  61. package/dist/{models-cli-CZgkOUZB.js → models-cli-C7UZtCdE.js} +16 -16
  62. package/dist/{node-cli-BXv9SEDG.js → node-cli-DBa3SOQb.js} +6 -6
  63. package/dist/{nodes-cli-Cim3ANNU.js → nodes-cli-Dx8iwcda.js} +3 -3
  64. package/dist/{onboard-CuLvp4Ds.js → onboard-CvXaQ6g7.js} +3 -3
  65. package/dist/{onboard-BXI02b3e.js → onboard-CvspL8de.js} +1 -1
  66. package/dist/{onboard-channels-E5NIYGJz.js → onboard-channels-Bf0N23cr.js} +1 -1
  67. package/dist/{onboard-channels-A6_QP7MR.js → onboard-channels-MlbB9sk1.js} +1 -1
  68. package/dist/{onboard-helpers---sZ9pdZ.js → onboard-helpers-DP7FgSbE.js} +1 -1
  69. package/dist/{onboard-remote-BUB3VPBP.js → onboard-remote-KlZ04Ycj.js} +1 -1
  70. package/dist/{onboard-skills-Cs3BZ4VJ.js → onboard-skills-C2YVZLtY.js} +1 -1
  71. package/dist/{onboarding-BeYl1Egj.js → onboarding-Bkqm3GYG.js} +3 -3
  72. package/dist/{onboarding-BWMBA6cP.js → onboarding-Dhjsa9Kl.js} +7 -7
  73. package/dist/{onboarding.finalize-CH8dBgA2.js → onboarding.finalize-DEnbT-08.js} +13 -13
  74. package/dist/{onboarding.finalize-Bk-XW8b3.js → onboarding.finalize-Dj2kTz2P.js} +4 -4
  75. package/dist/{onboarding.gateway-config-arRNxrI9.js → onboarding.gateway-config-1PP2Esxt.js} +3 -3
  76. package/dist/{pi-embedded-0I7WdtRz.js → pi-embedded-DisxTf9Y.js} +50 -12
  77. package/dist/{pi-embedded-helpers-B5cWV7_y.js → pi-embedded-helpers-x7n6pMgT.js} +1 -1
  78. package/dist/{pi-tools.policy-BdGVEMZn.js → pi-tools.policy-J58A7qFU.js} +1 -1
  79. package/dist/{plugin-registry-CAdIrLmG.js → plugin-registry-BTkbl0FJ.js} +1 -1
  80. package/dist/{plugin-registry-DovNSdK0.js → plugin-registry-D-hgQT7P.js} +1 -1
  81. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +1 -2
  82. package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +10 -0
  83. package/dist/plugin-sdk/agents/tools/common.d.ts +30 -0
  84. package/dist/{plugins-cli-ZG4PxNTC.js → plugins-cli-Bh5QiPdZ.js} +15 -15
  85. package/dist/{plugins-cli-JzKO-vmR.js → plugins-cli-kV-uO1kp.js} +5 -5
  86. package/dist/{program-BbfU4idg.js → program-CbGjDDWP.js} +10 -10
  87. package/dist/{program-context-ByiEP1Lk.js → program-context-DFJyoCC0.js} +30 -30
  88. package/dist/{prompt-select-styled-DvrG_zWV.js → prompt-select-styled-DaVdKaBp.js} +8 -8
  89. package/dist/{prompt-select-styled-CWH2Mcrb.js → prompt-select-styled-p9o4e4m6.js} +4 -4
  90. package/dist/{provider-auth-helpers-2x7YxT5F.js → provider-auth-helpers-BCiBe4Q9.js} +1 -1
  91. package/dist/{provider-auth-helpers-CMQexdSl.js → provider-auth-helpers-CoGyeok2.js} +1 -1
  92. package/dist/{push-apns-CtWwPxRj.js → push-apns-BorKE_Qo.js} +1 -1
  93. package/dist/{push-apns-eGdGU3r7.js → push-apns-DzCR9bci.js} +1 -1
  94. package/dist/{pw-ai-tgngV3iZ.js → pw-ai-8E0uhtHT.js} +1 -1
  95. package/dist/{pw-ai-BOOB8qoi.js → pw-ai-BFS9ezWe.js} +1 -1
  96. package/dist/{register.agent-Dwkya1rv.js → register.agent-CaN-g4uZ.js} +19 -19
  97. package/dist/{register.agent-DZE9NBNx.js → register.agent-DydJFXJP.js} +9 -9
  98. package/dist/{register.configure-CD8WkXo8.js → register.configure-BVe4hnaS.js} +8 -8
  99. package/dist/{register.configure-DCpbCHR0.js → register.configure-DAy2cE8-.js} +22 -22
  100. package/dist/{register.maintenance-Bqjj77CZ.js → register.maintenance-DOPFPjF1.js} +20 -20
  101. package/dist/{register.maintenance-CxVeo_7j.js → register.maintenance-dg4F8WtF.js} +9 -9
  102. package/dist/{register.message-tcJN7-E3.js → register.message-BcVCnsvF.js} +5 -5
  103. package/dist/{register.message-uhAmNxoO.js → register.message-C142fUnJ.js} +15 -15
  104. package/dist/{register.onboard-F6d_Wrv1.js → register.onboard-JdqDBt_q.js} +6 -6
  105. package/dist/{register.onboard-Rm5t0yxX.js → register.onboard-rAsjY0XL.js} +2 -2
  106. package/dist/{register.setup-C2datfZK.js → register.setup--uV2P6Rv.js} +2 -2
  107. package/dist/{register.setup-CcHxpsUT.js → register.setup-D1aL4OSn.js} +6 -6
  108. package/dist/{register.status-health-sessions-DIUDRMqm.js → register.status-health-sessions-78J4b8E3.js} +13 -13
  109. package/dist/{register.status-health-sessions-DFVjS9Hy.js → register.status-health-sessions-CsaUl0vE.js} +3 -3
  110. package/dist/{register.subclis-D9uGnVGm.js → register.subclis-BVReTdEZ.js} +9 -9
  111. package/dist/{routes-C-rIjd8Z.js → routes-DIFuU49J.js} +2 -2
  112. package/dist/{rpc-BkFkeuJ6.js → rpc-DfaVxm4P.js} +1 -1
  113. package/dist/{run-main-HkbyvIDy.js → run-main-Crj9RFFj.js} +17 -17
  114. package/dist/{sandbox-Dx8IMw-E.js → sandbox-DR_uvPm8.js} +3 -3
  115. package/dist/{sandbox-cli-BFkLKdlk.js → sandbox-cli-we8HwKzB.js} +4 -4
  116. package/dist/{security-cli-BEpQ_rO1.js → security-cli-B3nmOCuA.js} +8 -8
  117. package/dist/{server-context--mmXXEkE.js → server-context-DZK_rfwz.js} +4 -4
  118. package/dist/{server-methods-DJ8eiTu1.js → server-methods-BR_LQLUr.js} +6 -6
  119. package/dist/{server-methods-RtjWUhkv.js → server-methods-qP6jEpBJ.js} +12 -12
  120. package/dist/{server-node-events-DQ1iCUgY.js → server-node-events-BLrBQ1Ix.js} +16 -16
  121. package/dist/{server-node-events-CT8fFtBQ.js → server-node-events-C9CEaVgd.js} +6 -6
  122. package/dist/{status-EAjzyREy.js → status-COihHYJZ.js} +1 -1
  123. package/dist/{status-CuMBp54T.js → status-DCL7G3Ib.js} +5 -5
  124. package/dist/{status-CoqGtHXq.js → status-DTQT3d18.js} +1 -1
  125. package/dist/{status-Cpz64Vy_.js → status-ORM-gYB7.js} +1 -1
  126. package/dist/{subagent-registry-Dkif1XYO.js → subagent-registry-8gdHiRIg.js} +43 -5
  127. package/dist/{synthesis-D3fpp3Vu.js → synthesis-CH82c52O.js} +4 -4
  128. package/dist/{synthesis-CKKZrrYd.js → synthesis-CppYEB8e.js} +14 -14
  129. package/dist/{synthesis-B0PXRiiM.js → synthesis-RrXFr-nJ.js} +2 -2
  130. package/dist/{synthesis-CpsURf9J.js → synthesis-SpZQv_zc.js} +4 -4
  131. package/dist/{system-cli-DMKzffe3.js → system-cli-DNR3YCgN.js} +3 -3
  132. package/dist/{tui-CqrM_Fj2.js → tui-BADAjgA5.js} +3 -3
  133. package/dist/{tui-cli-BsqRmqTX.js → tui-cli-3ZepuEPv.js} +8 -8
  134. package/dist/{unified-runner-DkPztkL8.js → unified-runner-97bDoU4e.js} +43 -5
  135. package/dist/{unified-runner-DZAjU6aB.js → unified-runner-DOYB1_-K.js} +53 -15
  136. package/dist/{update-cli-t7W6vcQY.js → update-cli-BTkGps8b.js} +21 -21
  137. package/dist/{update-cli-Bgk30eoA.js → update-cli-CKoIGU3l.js} +9 -9
  138. package/dist/{with-timeout-B5zAsivw.js → with-timeout-CGWq0-d5.js} +1 -1
  139. package/package.json +1 -1
@@ -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-DZAjU6aB.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-DOYB1_-K.js";
2
2
  import { A as isRich$1, j as theme, k as colorize } from "./registry-Sbac4a4z.js";
3
3
  import { t as CONFIG_PATH } from "./paths-By0XjHBk.js";
4
4
  import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
@@ -10,20 +10,20 @@ import { D as resolveDefaultAgentWorkspaceDir, a as resolveAgentModelFallbacksOv
10
10
  import { C as DEFAULT_MODEL, _ as resolveModelRefFromString, a as findNormalizedProviderValue, c as modelKey, d as parseModelRef, h as resolveDefaultModelForAgent, m as resolveConfiguredModelRef, r as buildModelAliasIndex, u as normalizeProviderId, w as DEFAULT_PROVIDER } from "./model-selection-7wdmO-Iw.js";
11
11
  import "./file-lock-BVUYnlQv.js";
12
12
  import { t as resolveSymiAgentDir } from "./agent-paths-BbZSGrUA.js";
13
- import "./pi-embedded-helpers-B5cWV7_y.js";
13
+ import "./pi-embedded-helpers-x7n6pMgT.js";
14
14
  import { f as parseDurationMs, i as loadConfig } from "./config-D7SS4vdk.js";
15
15
  import "./boolean-CbZoNRMn.js";
16
16
  import "./env-BRnPI9sO.js";
17
17
  import { o as shouldEnableShellEnvFallback, t as getShellEnvAppliedKeys } from "./shell-env-Dc3iU7HK.js";
18
18
  import "./manifest-registry-D1MLZEjS.js";
19
- import "./sandbox-Dx8IMw-E.js";
20
- import "./chrome-rzK8edU7.js";
19
+ import "./sandbox-DR_uvPm8.js";
20
+ import "./chrome-xlyBE8q3.js";
21
21
  import "./tailscale-DpKBMIvx.js";
22
22
  import "./auth-Bkx-QuRN.js";
23
- import "./server-context--mmXXEkE.js";
23
+ import "./server-context-DZK_rfwz.js";
24
24
  import "./frontmatter-B_jqcova.js";
25
25
  import "./skills-BwDmcZdt.js";
26
- import "./routes-C-rIjd8Z.js";
26
+ import "./routes-DIFuU49J.js";
27
27
  import "./redact-B3O-RBO1.js";
28
28
  import "./errors-bI7Tdx75.js";
29
29
  import "./fs-safe-BdejYjW8.js";
@@ -49,10 +49,10 @@ import { t as ensureSymiModelsJson } from "./models-config-CRnTzdFs.js";
49
49
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Db8XJVGL.js";
50
50
  import "./session-cost-usage-D6Ocwmq1.js";
51
51
  import { _ as loadProviderUsageSummary, b as resolveUsageProviderId, y as formatUsageWindowSummary } from "./session-utils-BZnPW904.js";
52
- import "./with-timeout-B5zAsivw.js";
52
+ import "./with-timeout-CGWq0-d5.js";
53
53
  import "./reply-prefix-BFNeXT65.js";
54
- import "./memory-B4DsKRSc.js";
55
- import "./manager-BLg6zbeA.js";
54
+ import "./memory-D_CuTCAW.js";
55
+ import "./manager-C1bLWQJb.js";
56
56
  import "./sqlite-Cod7C5ba.js";
57
57
  import "./chunk-BxfKjCUx.js";
58
58
  import "./markdown-tables-CS1Tvb3z.js";
@@ -60,8 +60,8 @@ import "./fetch-guard-JHxT9355.js";
60
60
  import "./local-roots-CgDCgCuM.js";
61
61
  import "./commands-DUzLGgEZ.js";
62
62
  import "./commands-registry-VfAQOVZO.js";
63
- import "./client-BzUAFrla.js";
64
- import "./call-BouPakqe.js";
63
+ import "./client-iv2QpsT1.js";
64
+ import "./call-BOE4s-tQ.js";
65
65
  import "./pairing-token-Dcy37-4s.js";
66
66
  import "./tool-display-DFOL6UQ9.js";
67
67
  import "./skills-remote-bz71Bstn.js";
@@ -72,7 +72,7 @@ import "./skill-commands-yPirQFOb.js";
72
72
  import "./pairing-store-BNhJOnWn.js";
73
73
  import "./exec-approvals-DioSaIeH.js";
74
74
  import "./nodes-screen-De9ma6e1.js";
75
- import "./control-service-Ry7Le68N.js";
75
+ import "./control-service-BgfKoTwJ.js";
76
76
  import "./stagger-DUVGiPYV.js";
77
77
  import "./channel-selection-DF4bza2Q.js";
78
78
  import "./delivery-queue-RUd4NhRw.js";
@@ -82,22 +82,22 @@ import { t as formatDocsLink } from "./links-TQwptN6q.js";
82
82
  import { n as runCommandWithRuntime, t as resolveOptionFromCommand } from "./cli-utils-tNdOjVQI.js";
83
83
  import "./help-format-CPT6NY3h.js";
84
84
  import { r as withProgressTotals } from "./progress-HNhsbm0E.js";
85
- import "./memory-cli-DotHyA76.js";
85
+ import "./memory-cli-XxOC0_-M.js";
86
86
  import "./logging-Czh4x_NQ.js";
87
87
  import "./replies-DzsYQ8Md.js";
88
- import "./pi-tools.policy-BdGVEMZn.js";
88
+ import "./pi-tools.policy-J58A7qFU.js";
89
89
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-DsMHOvMn.js";
90
90
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BEDZROvQ.js";
91
91
  import "./note-DlaPViz1.js";
92
92
  import { t as createClackPrompter } from "./clack-prompter-Dw5j2O2o.js";
93
- import { f as openUrl } from "./onboard-helpers---sZ9pdZ.js";
93
+ import { f as openUrl } from "./onboard-helpers-DP7FgSbE.js";
94
94
  import { t as renderTable } from "./table-D902H0x3.js";
95
95
  import { t as inferParamBFromIdOrName } from "./model-param-b-7eOskmw9.js";
96
96
  import { n as redactSecrets } from "./format-Bxjkt5ce.js";
97
97
  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-DJFwvlUi.js";
98
98
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-DgRRSbEX.js";
99
99
  import { n as logConfigUpdated } from "./logging-CoYSc9bY.js";
100
- 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-2x7YxT5F.js";
100
+ 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-BCiBe4Q9.js";
101
101
  import crypto from "node:crypto";
102
102
  import path from "node:path";
103
103
  import fs from "node:fs/promises";
@@ -11,11 +11,11 @@ import "./boolean-CbZoNRMn.js";
11
11
  import "./env-BRnPI9sO.js";
12
12
  import "./shell-env-Dc3iU7HK.js";
13
13
  import { _ as sanitizeHostExecEnv } from "./manifest-registry-D1MLZEjS.js";
14
- import "./chrome-rzK8edU7.js";
14
+ import "./chrome-xlyBE8q3.js";
15
15
  import "./tailscale-DpKBMIvx.js";
16
16
  import "./auth-Bkx-QuRN.js";
17
- import { i as resolveBrowserConfig } from "./server-context--mmXXEkE.js";
18
- import "./routes-C-rIjd8Z.js";
17
+ import { i as resolveBrowserConfig } from "./server-context-DZK_rfwz.js";
18
+ import "./routes-DIFuU49J.js";
19
19
  import "./redact-B3O-RBO1.js";
20
20
  import "./errors-bI7Tdx75.js";
21
21
  import "./fs-safe-BdejYjW8.js";
@@ -25,12 +25,12 @@ import { c as detectMime } from "./image-ops-L70xVnpG.js";
25
25
  import "./ports-gxLM5ahL.js";
26
26
  import "./trash-_YhavPQI.js";
27
27
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
28
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout } from "./with-timeout-B5zAsivw.js";
29
- import { rn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-BzUAFrla.js";
28
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout } from "./with-timeout-CGWq0-d5.js";
29
+ import { rn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-iv2QpsT1.js";
30
30
  import "./pairing-token-Dcy37-4s.js";
31
31
  import { _ as getTrustedSafeBinDirs, a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, d as resolveExecApprovals, g as resolveSafeBins, h as evaluateShellAllowlist, l as recordAllowlistUse, m as evaluateExecAllowlist, n as addAllowlistEntry, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals, u as requiresExecApproval, v as analyzeArgvCommand, x as requestJsonlSocket } from "./exec-approvals-DioSaIeH.js";
32
32
  import { g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, m as resolveNodeLaunchAgentLabel, s as formatNodeServiceDescription } from "./constants-ChnKXZKi.js";
33
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Ry7Le68N.js";
33
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BgfKoTwJ.js";
34
34
  import { t as formatDocsLink } from "./links-TQwptN6q.js";
35
35
  import { t as formatHelpExamples } from "./help-format-CPT6NY3h.js";
36
36
  import "./logging-Czh4x_NQ.js";
@@ -13,8 +13,8 @@ import "./manifest-registry-D1MLZEjS.js";
13
13
  import "./redact-B3O-RBO1.js";
14
14
  import "./errors-bI7Tdx75.js";
15
15
  import "./message-channel-DgjXWzf-.js";
16
- import "./client-BzUAFrla.js";
17
- import { a as randomIdempotencyKey } from "./call-BouPakqe.js";
16
+ import "./client-iv2QpsT1.js";
17
+ import { a as randomIdempotencyKey } from "./call-BOE4s-tQ.js";
18
18
  import "./pairing-token-Dcy37-4s.js";
19
19
  import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
20
20
  import { f as resolveExecApprovalsFromFile, i as maxAsk, o as minSecurity, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-DioSaIeH.js";
@@ -26,7 +26,7 @@ import { n as runCommandWithRuntime } from "./cli-utils-tNdOjVQI.js";
26
26
  import { t as formatHelpExamples } from "./help-format-CPT6NY3h.js";
27
27
  import "./progress-HNhsbm0E.js";
28
28
  import { t as renderTable } from "./table-D902H0x3.js";
29
- import { a as unauthorizedHintForMessage, i as resolveNodeId, n as callGatewayCli, o as formatPermissions, r as nodesCallOpts, t as buildNodeInvokeParams } from "./rpc-BkFkeuJ6.js";
29
+ import { a as unauthorizedHintForMessage, i as resolveNodeId, n as callGatewayCli, o as formatPermissions, r as nodesCallOpts, t as buildNodeInvokeParams } from "./rpc-DfaVxm4P.js";
30
30
  import fs from "node:fs/promises";
31
31
 
32
32
  //#region src/cli/nodes-cli/cli-utils.ts
@@ -11,11 +11,11 @@ import { t as assertSupportedRuntime } from "./runtime-guard-DfRLODeV.js";
11
11
  import { t as WizardCancelledError } from "./prompts-GoDC3iAV.js";
12
12
  import { t as createClackPrompter } from "./clack-prompter-Dw5j2O2o.js";
13
13
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-tZgIbDPz.js";
14
- import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as handleReset, g as resolveControlUiLinks, h as randomToken, n as applyWizardMetadata, t as DEFAULT_WORKSPACE } from "./onboard-helpers---sZ9pdZ.js";
14
+ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as handleReset, g as resolveControlUiLinks, h as randomToken, n as applyWizardMetadata, t as DEFAULT_WORKSPACE } from "./onboard-helpers-DP7FgSbE.js";
15
15
  import { r as isSystemdUserServiceAvailable } from "./systemd-DRpQb_L1.js";
16
16
  import { t as resolveGatewayService } from "./service-CyEDtYLq.js";
17
- import { r as healthCommand } from "./health-DZ0aipDZ.js";
18
- import { t as runOnboardingWizard } from "./onboarding-BWMBA6cP.js";
17
+ import { r as healthCommand } from "./health-B92I0vwb.js";
18
+ import { t as runOnboardingWizard } from "./onboarding-Dhjsa9Kl.js";
19
19
  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-DgRRSbEX.js";
20
20
  import { n as logConfigUpdated } from "./logging-CoYSc9bY.js";
21
21
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-GGnDhlyD.js";
@@ -13,7 +13,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
13
13
  import { r as isSystemdUserServiceAvailable } from "./systemd-krdArbOb.js";
14
14
  import { t as resolveGatewayService } from "./service-Bhr6wh5u.js";
15
15
  import { r as healthCommand } from "./health-CXUnVb6i.js";
16
- import { t as runOnboardingWizard } from "./onboarding-BeYl1Egj.js";
16
+ import { t as runOnboardingWizard } from "./onboarding-Bkqm3GYG.js";
17
17
  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-DUIqGPhx.js";
18
18
  import { n as logConfigUpdated } from "./logging-BqCc-3Ld.js";
19
19
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-Ay7AiVPU.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-DZAjU6aB.js";
2
+ import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-DOYB1_-K.js";
3
3
  import { a as formatChannelSelectionLine, i as formatChannelPrimerLine, s as listChatChannels } from "./registry-Sbac4a4z.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
3
3
  import { t as formatCliCommand } from "./command-format-B3nkKRhC.js";
4
4
  import { m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-CFxFgYxM.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-C-Jte08L.js";
6
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-Dkif1XYO.js";
6
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-8gdHiRIg.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BsEhWvLn.js";
8
8
  import { t as formatDocsLink } from "./links-BDe4dm1J.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-CPv67Mhc.js";
@@ -8,7 +8,7 @@ import { n as pickPrimaryTailnetIPv4 } from "./tailnet-XKACsamF.js";
8
8
  import { c as pickPrimaryLanIPv4, o as isValidIPv4 } from "./ws-C7Ktmt-R.js";
9
9
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
10
10
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-BtvQ7JvU.js";
11
- import { n as callGateway } from "./call-BouPakqe.js";
11
+ import { n as callGateway } from "./call-BOE4s-tQ.js";
12
12
  import { r as stylePromptTitle } from "./prompt-style-BEDZROvQ.js";
13
13
  import { t as isWSL } from "./wsl-DMA0sTvh.js";
14
14
  import crypto from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { r as detectBinary } from "./onboard-helpers---sZ9pdZ.js";
2
+ import { r as detectBinary } from "./onboard-helpers-DP7FgSbE.js";
3
3
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-CK7KqIOE.js";
4
4
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-C44-sj_H.js";
5
5
 
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
3
3
  import { n as normalizeSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
4
4
  import { t as buildWorkspaceSkillStatus } from "./skills-status-iltfI_bO.js";
5
- import { _ as resolveNodeManagerOptions, r as detectBinary } from "./onboard-helpers---sZ9pdZ.js";
5
+ import { _ as resolveNodeManagerOptions, r as detectBinary } from "./onboard-helpers-DP7FgSbE.js";
6
6
  import { t as installSkill } from "./skills-install-CLN_Ks5r.js";
7
7
 
8
8
  //#region src/commands/onboard-skills.ts
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-D11Xw15i.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BMT9i-O0.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-BcR121kZ.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Ryx7oj6G.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BkSsm1pk.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-BAKALONd.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-BsEhWvLn.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-A6_QP7MR.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-MlbB9sk1.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-Bk-XW8b3.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Dj2kTz2P.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -36,7 +36,7 @@ async function requireRiskAcknowledgement(params) {
36
36
  })) throw new WizardCancelledError("risk not accepted");
37
37
  }
38
38
  async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
39
- const onboardHelpers = await import("./onboard-helpers---sZ9pdZ.js").then((n) => n.d);
39
+ const onboardHelpers = await import("./onboard-helpers-DP7FgSbE.js").then((n) => n.d);
40
40
  onboardHelpers.printWizardHeader(runtime);
41
41
  await prompter.intro("Symi onboarding");
42
42
  await requireRiskAcknowledgement({
@@ -204,7 +204,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
204
204
  }]
205
205
  }));
206
206
  if (mode === "remote") {
207
- const { promptRemoteGatewayConfig } = await import("./onboard-remote-BUB3VPBP.js").then((n) => n.t);
207
+ const { promptRemoteGatewayConfig } = await import("./onboard-remote-KlZ04Ycj.js").then((n) => n.t);
208
208
  const { logConfigUpdated } = await import("./logging-CoYSc9bY.js").then((n) => n.r);
209
209
  let nextConfig = await promptRemoteGatewayConfig(baseConfig, prompter);
210
210
  nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./auth-profiles-Ce7R_25e.js").then((n) => n.t);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-D8hErqN3.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-BrtjWDlX.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-DwXdS4c2.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-L6_DvGSb.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-D4TY_tPx.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -263,7 +263,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
263
263
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
264
264
  }
265
265
  await warnIfModelConfigLooksOff(nextConfig, prompter);
266
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-arRNxrI9.js");
266
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-1PP2Esxt.js");
267
267
  const gateway = await configureGatewayForOnboarding({
268
268
  flow,
269
269
  baseConfig,
@@ -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-CF5skkHh.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-E5NIYGJz.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-Bf0N23cr.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,
@@ -294,7 +294,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
294
294
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
295
295
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
296
296
  else {
297
- const { setupSkills } = await import("./onboard-skills-Cs3BZ4VJ.js").then((n) => n.t);
297
+ const { setupSkills } = await import("./onboard-skills-C2YVZLtY.js").then((n) => n.t);
298
298
  nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
299
299
  }
300
300
  const { setupInternalHooks } = await import("./onboard-hooks-CtIRdncr.js");
@@ -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-CH8dBgA2.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DEnbT-08.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -7,20 +7,20 @@ import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
7
7
  import "./exec-DuYbft0z.js";
8
8
  import { h as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-DOrZjOnW.js";
9
9
  import "./model-selection-7wdmO-Iw.js";
10
- import "./pi-embedded-helpers-B5cWV7_y.js";
10
+ import "./pi-embedded-helpers-x7n6pMgT.js";
11
11
  import "./config-D7SS4vdk.js";
12
12
  import "./boolean-CbZoNRMn.js";
13
13
  import "./env-BRnPI9sO.js";
14
14
  import "./shell-env-Dc3iU7HK.js";
15
15
  import "./manifest-registry-D1MLZEjS.js";
16
- import "./sandbox-Dx8IMw-E.js";
17
- import "./chrome-rzK8edU7.js";
16
+ import "./sandbox-DR_uvPm8.js";
17
+ import "./chrome-xlyBE8q3.js";
18
18
  import "./tailscale-DpKBMIvx.js";
19
19
  import "./auth-Bkx-QuRN.js";
20
- import "./server-context--mmXXEkE.js";
20
+ import "./server-context-DZK_rfwz.js";
21
21
  import "./frontmatter-B_jqcova.js";
22
22
  import "./skills-BwDmcZdt.js";
23
- import "./routes-C-rIjd8Z.js";
23
+ import "./routes-DIFuU49J.js";
24
24
  import "./redact-B3O-RBO1.js";
25
25
  import "./errors-bI7Tdx75.js";
26
26
  import "./fs-safe-BdejYjW8.js";
@@ -37,26 +37,26 @@ import "./paths-BtvQ7JvU.js";
37
37
  import "./thinking-COroyVA5.js";
38
38
  import "./commands-DUzLGgEZ.js";
39
39
  import "./commands-registry-VfAQOVZO.js";
40
- import "./client-BzUAFrla.js";
41
- import "./call-BouPakqe.js";
40
+ import "./client-iv2QpsT1.js";
41
+ import "./call-BOE4s-tQ.js";
42
42
  import "./pairing-token-Dcy37-4s.js";
43
43
  import "./tool-display-DFOL6UQ9.js";
44
44
  import "./bindings-CLS_owm_.js";
45
45
  import "./progress-HNhsbm0E.js";
46
46
  import "./runtime-guard-DfRLODeV.js";
47
- import "./program-context-ByiEP1Lk.js";
47
+ import "./program-context-DFJyoCC0.js";
48
48
  import "./prompt-style-BEDZROvQ.js";
49
49
  import "./note-DlaPViz1.js";
50
- import { r as installCompletion } from "./completion-cli-Bc1jojml.js";
50
+ import { r as installCompletion } from "./completion-cli-DvaCHwGr.js";
51
51
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-tZgIbDPz.js";
52
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers---sZ9pdZ.js";
52
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-DP7FgSbE.js";
53
53
  import { r as isSystemdUserServiceAvailable } from "./systemd-DRpQb_L1.js";
54
54
  import { t as resolveGatewayService } from "./service-CyEDtYLq.js";
55
- import { r as healthCommand } from "./health-DZ0aipDZ.js";
55
+ import { r as healthCommand } from "./health-B92I0vwb.js";
56
56
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DuDhl0co.js";
57
57
  import { t as formatHealthCheckFailure } from "./health-format-CUEM0lJl.js";
58
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B6OPl_GZ.js";
59
- import { t as runTui } from "./tui-CqrM_Fj2.js";
58
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-C4vmp9I7.js";
59
+ import { t as runTui } from "./tui-BADAjgA5.js";
60
60
  import path from "node:path";
61
61
  import os from "node:os";
62
62
  import fs from "node:fs/promises";
@@ -40,10 +40,10 @@ import "./bindings-BpMZcmYL.js";
40
40
  import "./progress-CqV5lJkt.js";
41
41
  import "./prompt-style-BIa9VCNS.js";
42
42
  import "./note--x67NNhv.js";
43
- import "./register.subclis-D9uGnVGm.js";
44
- import "./command-registry-DAy62yhH.js";
43
+ import "./register.subclis-BVReTdEZ.js";
44
+ import "./command-registry-CZrQWdR_.js";
45
45
  import "./program-context-4vIUuzQk.js";
46
- import { r as installCompletion } from "./completion-cli-Bh-Y2NVp.js";
46
+ import { r as installCompletion } from "./completion-cli-CPiZTObN.js";
47
47
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Cyqcsmvq.js";
48
48
  import "./runtime-guard-C8jl1lEu.js";
49
49
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-Cut7JJgz.js";
@@ -52,7 +52,7 @@ import { t as resolveGatewayService } from "./service-Bhr6wh5u.js";
52
52
  import { r as healthCommand } from "./health-CXUnVb6i.js";
53
53
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C_5Ba0OA.js";
54
54
  import { t as formatHealthCheckFailure } from "./health-format-y74JTiFu.js";
55
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BZJWX3Dr.js";
55
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CBs1R4s0.js";
56
56
  import { t as runTui } from "./tui-KP3CPTV4.js";
57
57
  import os from "node:os";
58
58
  import path from "node:path";
@@ -16,11 +16,11 @@ import "./dock-hF45sewN.js";
16
16
  import "./message-channel-DgjXWzf-.js";
17
17
  import "./plugins-CF5skkHh.js";
18
18
  import "./paths-BtvQ7JvU.js";
19
- import "./client-BzUAFrla.js";
20
- import "./call-BouPakqe.js";
19
+ import "./client-iv2QpsT1.js";
20
+ import "./call-BOE4s-tQ.js";
21
21
  import "./pairing-token-Dcy37-4s.js";
22
22
  import "./prompt-style-BEDZROvQ.js";
23
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers---sZ9pdZ.js";
23
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-DP7FgSbE.js";
24
24
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-Coaw2jro.js";
25
25
 
26
26
  //#region src/wizard/onboarding.gateway-config.ts
@@ -9,7 +9,7 @@ import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as reso
9
9
  import { t as normalizeChatType } from "./chat-type-Acj2OK2p.js";
10
10
  import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-CZ_mYwXq.js";
11
11
  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-BYF1gbJf.js";
12
- 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-oWGJwzFf.js";
12
+ 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-Cjyb6h4g.js";
13
13
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BdRnGknC.js";
14
14
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-DpxCUzoM.js";
15
15
  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-CAZujdOi.js";
@@ -18,7 +18,7 @@ import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _
18
18
  import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
19
19
  import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-DgjeObDZ.js";
20
20
  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";
21
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B7-rO4i9.js";
21
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BKUACyeO.js";
22
22
  import { n as resolveCliName, t as formatCliCommand } from "./command-format-DPd9RN2g.js";
23
23
  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-DO7WNsVJ.js";
24
24
  import { n as redactToolDetail } from "./redact-DSOAcWMe.js";
@@ -29,7 +29,7 @@ import { n as resolveConversationLabel } from "./conversation-label-DTTqF8gH.js"
29
29
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BsT3BvfH.js";
30
30
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.js";
31
31
  import { n as saveJsonFile, t as loadJsonFile } from "./json-file-B7D44OOV.js";
32
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-DhHNnMyK.js";
32
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-Dz4nKG33.js";
33
33
  import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-dYUr1mDQ.js";
34
34
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Ce-sg7EN.js";
35
35
  import { n as resolveMarkdownTableMode } from "./markdown-tables-jQzXAsf3.js";
@@ -53,7 +53,7 @@ import { fileURLToPath } from "node:url";
53
53
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
54
54
  import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
55
55
  import AjvPkg from "ajv";
56
- import { WebSocket as WebSocket$1 } from "ws";
56
+ import { WebSocket } from "ws";
57
57
  import { Buffer as Buffer$1 } from "node:buffer";
58
58
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
59
59
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
@@ -3390,7 +3390,7 @@ async function getMemorySearchManager(params) {
3390
3390
  const wrapper = new FallbackMemoryManager({
3391
3391
  primary,
3392
3392
  fallbackFactory: async () => {
3393
- const { MemoryIndexManager } = await import("./manager-DhHNnMyK.js").then((n) => n.t);
3393
+ const { MemoryIndexManager } = await import("./manager-Dz4nKG33.js").then((n) => n.t);
3394
3394
  return await MemoryIndexManager.get(params);
3395
3395
  }
3396
3396
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3403,7 +3403,7 @@ async function getMemorySearchManager(params) {
3403
3403
  }
3404
3404
  }
3405
3405
  try {
3406
- const { MemoryIndexManager } = await import("./manager-DhHNnMyK.js").then((n) => n.t);
3406
+ const { MemoryIndexManager } = await import("./manager-Dz4nKG33.js").then((n) => n.t);
3407
3407
  return { manager: await MemoryIndexManager.get(params) };
3408
3408
  } catch (err) {
3409
3409
  return {
@@ -5918,7 +5918,7 @@ var GatewayClient = class {
5918
5918
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5919
5919
  });
5920
5920
  }
5921
- this.ws = new WebSocket$1(url, wsOptions);
5921
+ this.ws = new WebSocket(url, wsOptions);
5922
5922
  this.ws.on("open", () => {
5923
5923
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5924
5924
  const tlsError = this.validateTlsFingerprint();
@@ -6137,7 +6137,7 @@ var GatewayClient = class {
6137
6137
  return null;
6138
6138
  }
6139
6139
  async request(method, params, opts) {
6140
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
6140
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
6141
6141
  const id = randomUUID();
6142
6142
  const frame = {
6143
6143
  type: "req",
@@ -7084,7 +7084,7 @@ async function routeReply(params) {
7084
7084
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7085
7085
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7086
7086
  try {
7087
- const { deliverOutboundPayloads } = await import("./deliver-oWGJwzFf.js").then((n) => n.n);
7087
+ const { deliverOutboundPayloads } = await import("./deliver-Cjyb6h4g.js").then((n) => n.n);
7088
7088
  return {
7089
7089
  ok: true,
7090
7090
  messageId: (await deliverOutboundPayloads({
@@ -41140,7 +41140,7 @@ async function deliverSessionMaintenanceWarning(params) {
41140
41140
  return;
41141
41141
  }
41142
41142
  try {
41143
- const { deliverOutboundPayloads } = await import("./deliver-oWGJwzFf.js").then((n) => n.n);
41143
+ const { deliverOutboundPayloads } = await import("./deliver-Cjyb6h4g.js").then((n) => n.n);
41144
41144
  await deliverOutboundPayloads({
41145
41145
  cfg: params.cfg,
41146
41146
  channel,
@@ -60903,6 +60903,44 @@ function applyToolPolicyPipeline(params) {
60903
60903
  return filtered;
60904
60904
  }
60905
60905
 
60906
+ //#endregion
60907
+ //#region src/agents/tools/availability-filter.ts
60908
+ const FORCE_ALL_TOOLS_ENV = "SYMI_FORCE_ALL_TOOLS";
60909
+ /**
60910
+ * Filter the tool palette by each tool's `checkFn`. Tools without a
60911
+ * checkFn pass through unchanged. Throwing checkFns are treated as
60912
+ * available (defensive). The `SYMI_FORCE_ALL_TOOLS=1` env bypasses the
60913
+ * filter entirely.
60914
+ *
60915
+ * Pure function — does not mutate the input array.
60916
+ */
60917
+ function filterToolsByAvailability(tools) {
60918
+ if (isTruthyEnvValue(process.env[FORCE_ALL_TOOLS_ENV])) return [...tools];
60919
+ const out = [];
60920
+ for (const tool of tools) {
60921
+ if (!tool.checkFn) {
60922
+ out.push(tool);
60923
+ continue;
60924
+ }
60925
+ let available;
60926
+ try {
60927
+ available = tool.checkFn();
60928
+ } catch (err) {
60929
+ logVerbose(`tool availability: checkFn for "${getToolName(tool)}" threw — including tool anyway. ${String(err)}`);
60930
+ out.push(tool);
60931
+ continue;
60932
+ }
60933
+ if (available) out.push(tool);
60934
+ else logVerbose(`tool availability: filtered out "${getToolName(tool)}" — checkFn returned false. Set ${FORCE_ALL_TOOLS_ENV}=1 to bypass this filter.`);
60935
+ }
60936
+ return out;
60937
+ }
60938
+ function getToolName(tool) {
60939
+ const definition = tool.definition;
60940
+ if (definition && typeof definition.name === "string") return definition.name;
60941
+ return "(unknown tool)";
60942
+ }
60943
+
60906
60944
  //#endregion
60907
60945
  //#region src/agents/pi-tools.ts
60908
60946
  function isOpenAIProvider(provider) {
@@ -61122,7 +61160,7 @@ function createSymiCodingTools(options) {
61122
61160
  root: sandboxRoot,
61123
61161
  bridge: sandboxFsBridge
61124
61162
  }), readEditTracker) : null;
61125
- const withHooks = applyToolPolicyPipeline({
61163
+ const withHooks = filterToolsByAvailability(applyToolPolicyPipeline({
61126
61164
  tools: applyOwnerOnlyToolPolicy([
61127
61165
  ...base,
61128
61166
  ...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
@@ -61194,7 +61232,7 @@ function createSymiCodingTools(options) {
61194
61232
  label: "subagent tools.allow"
61195
61233
  }
61196
61234
  ]
61197
- }).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
61235
+ })).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
61198
61236
  agentId,
61199
61237
  sessionKey: options?.sessionKey,
61200
61238
  loopDetection: resolveToolLoopDetectionConfig({
@@ -1,6 +1,6 @@
1
1
  import { x as truncateUtf16Safe } from "./utils-CTPsqyE_.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-Dx8IMw-E.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DR_uvPm8.js";
4
4
  import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-L70xVnpG.js";
5
5
  import { s as normalizeThinkLevel } from "./thinking-COroyVA5.js";
6
6
  import { createHash } from "node:crypto";
@@ -1,7 +1,7 @@
1
1
  import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
2
2
  import { r as resolveAgentConfig } from "./agent-scope-DOrZjOnW.js";
3
3
  import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-D7SS4vdk.js";
4
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-Dx8IMw-E.js";
4
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-DR_uvPm8.js";
5
5
  import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-hF45sewN.js";
6
6
  import { l as normalizeMessageChannel } from "./message-channel-DgjXWzf-.js";
7
7