@symerian/symi 3.5.5 → 3.5.7
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.
- package/dist/{agent-8EuVoCbs.js → agent-BCszhl_7.js} +1 -1
- package/dist/{agent-B87OYNFx.js → agent-Cmx-1Tfs.js} +1 -1
- package/dist/{agents-CNbjbSD0.js → agents-BkTzJJ83.js} +2 -2
- package/dist/{auth-choice-BL4lqaJL.js → auth-choice-CucG4Wor.js} +1 -1
- package/dist/{auth-choice-CB0rQByJ.js → auth-choice-D-iIJjJY.js} +1 -1
- package/dist/{banner-D-ssxnQN.js → banner-CApT91CY.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-_DJXj921.js → channel-options-CdIEyHya.js} +1 -1
- package/dist/{channel-options-DLV6zIpW.js → channel-options-DYh8mLMN.js} +1 -1
- package/dist/{channels-cli-2OTAQPvZ.js → channels-cli-Bb18aE2b.js} +7 -7
- package/dist/{channels-cli-CUsX2v-1.js → channels-cli-sG9Wf2LH.js} +7 -7
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{cli-Qq7pr2SX.js → cli-DEGt0Tp0.js} +4 -4
- package/dist/{cli-D4cMWhob.js → cli-DtdTf-ZQ.js} +4 -4
- package/dist/{command-registry-Br9vlIL_.js → command-registry-O155hUhR.js} +10 -10
- package/dist/{completion-cli-CKLoZFMQ.js → completion-cli-BaOjuoPX.js} +2 -2
- package/dist/{completion-cli-P5zBWNnc.js → completion-cli-DLUKoSIx.js} +1 -1
- package/dist/{config-cli-NvqRZAqr.js → config-cli-BuZ-L1Iw.js} +1 -1
- package/dist/{config-cli-CcJOubCt.js → config-cli-BxWavRxN.js} +1 -1
- package/dist/{configure-C7BfUqKR.js → configure-BSKWgEhS.js} +2 -2
- package/dist/{configure-B1RJ6bi3.js → configure-gxAEhC9E.js} +2 -2
- package/dist/control-ui/js/app.js +8 -0
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/{doctor-completion-Be3Of_A2.js → doctor-completion-BzfgfpBH.js} +1 -1
- package/dist/{doctor-completion-Dco2Lmvy.js → doctor-completion-wlBp8bv7.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +4 -4
- package/dist/{gateway-cli-XV8T-ix8.js → gateway-cli-Bz5fqsnE.js} +10 -10
- package/dist/{gateway-cli-BQAh5DqM.js → gateway-cli-_xNZ2L_e.js} +10 -10
- package/dist/{glass-ui-ws-1FOCi0nn.js → glass-ui-ws-CbKVlQRh.js} +8 -8
- package/dist/{glass-ui-ws-CqGzDNV7.js → glass-ui-ws-DO8WKPIK.js} +8 -8
- package/dist/{hooks-cli-D7iTDry_.js → hooks-cli-CrgD2ZqP.js} +5 -5
- package/dist/{hooks-cli-BPa-ssdB.js → hooks-cli-mwiHuRfO.js} +5 -5
- package/dist/index.js +8 -8
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{manager-DghM7T-b.js → manager-BVPXSK-I.js} +1 -1
- package/dist/{manager-Ck1YSfr6.js → manager-CpBJ1BE6.js} +1 -1
- package/dist/{manager-CC13EPO9.js → manager-CvqH_tah.js} +1 -1
- package/dist/{manager-Bt-1HGg9.js → manager-D9m8F3HR.js} +1 -1
- package/dist/{memory-CgWOtF4K.js → memory-BsGfHO_F.js} +2 -2
- package/dist/{memory-d0YI5Lr0.js → memory-CbwmxmxW.js} +2 -2
- package/dist/{memory-cli-DGheAg5i.js → memory-cli-B1dFPZw-.js} +2 -2
- package/dist/{memory-cli-vN3fGs79.js → memory-cli-BwQsPEFk.js} +2 -2
- package/dist/{models-CBw1pGIq.js → models-Dm6dSSSx.js} +2 -2
- package/dist/{models-cli-Bmh1S3iG.js → models-cli-BA6ufqLd.js} +5 -5
- package/dist/{models-cli-BBReZHNq.js → models-cli-BPSrz6tf.js} +6 -6
- package/dist/{onboard-Csj4sOF5.js → onboard-CjnPughY.js} +1 -1
- package/dist/{onboard-LVUmCZhX.js → onboard-Cmz6Rtm-.js} +1 -1
- package/dist/{onboard-channels-vDtX0e0w.js → onboard-channels-Cozz3CQv.js} +1 -1
- package/dist/{onboard-channels-mrSIlZDB.js → onboard-channels-D00NAtQt.js} +1 -1
- package/dist/{onboarding-DojADc8N.js → onboarding-BPZb40BJ.js} +3 -3
- package/dist/{onboarding-D2VmoKU1.js → onboarding-BrTMOcPF.js} +3 -3
- package/dist/{onboarding.finalize-C4BwVw6u.js → onboarding.finalize-Bd2rGMjo.js} +3 -3
- package/dist/{onboarding.finalize-Bi1wSEtw.js → onboarding.finalize-BiL_LXrR.js} +4 -4
- package/dist/{pi-embedded-zSv7VKNQ.js → pi-embedded-C2-v_4OT.js} +184 -76
- package/dist/{plugin-registry-L1h7mxjX.js → plugin-registry-BLoSesyj.js} +1 -1
- package/dist/{plugin-registry-Dq6OJ45H.js → plugin-registry-CZDG8fjK.js} +1 -1
- package/dist/plugin-sdk/auto-reply/reply/middleware-context-warning.d.ts +22 -0
- package/dist/plugin-sdk/auto-reply/session-boundary-messages.d.ts +16 -3
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/{plugins-cli-C9ehLXaT.js → plugins-cli-2yraoR6V.js} +5 -5
- package/dist/{plugins-cli-BEIKMoVH.js → plugins-cli-CGs9-UtO.js} +5 -5
- package/dist/{program-iTd2Dei7.js → program-BnKEJpZF.js} +10 -10
- package/dist/{program-context-Bh5wzWdC.js → program-context-BvP9L_1W.js} +18 -18
- package/dist/{prompt-select-styled-CNFytCD3.js → prompt-select-styled-BTF5vvv8.js} +4 -4
- package/dist/{prompt-select-styled-fXotfbCt.js → prompt-select-styled-Brx330O3.js} +4 -4
- package/dist/{provider-auth-helpers-Dho1n21x.js → provider-auth-helpers-CppzYZM9.js} +1 -1
- package/dist/{provider-auth-helpers-DBrH-cce.js → provider-auth-helpers-hjy3e-oS.js} +1 -1
- package/dist/{push-apns-DpyCFRTu.js → push-apns-BD2iO09c.js} +1 -1
- package/dist/{push-apns-DYYY9NOE.js → push-apns-DJ55TFPT.js} +1 -1
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{register.agent-BYpBNbHe.js → register.agent-DTGvQGla.js} +9 -9
- package/dist/{register.agent-DceNHGi_.js → register.agent-Dz_P7PxO.js} +8 -8
- package/dist/{register.configure-09lIIUvq.js → register.configure-CrgU3FzU.js} +8 -8
- package/dist/{register.configure-UUZqL0Ck.js → register.configure-D9w7Tm9e.js} +8 -8
- package/dist/{register.maintenance-DdX8GZpv.js → register.maintenance-CqvrXPF7.js} +9 -9
- package/dist/{register.maintenance-CsoEyVyl.js → register.maintenance-d5xHdDgu.js} +8 -8
- package/dist/{register.message-RYn7LD6-.js → register.message-C0tqgEor.js} +5 -5
- package/dist/{register.message-CAM62MaW.js → register.message-DNMCxaAD.js} +5 -5
- package/dist/{register.onboard-CoRtNlNa.js → register.onboard--eJVfJGa.js} +2 -2
- package/dist/{register.onboard-DhR5o8KO.js → register.onboard-dkAvGraV.js} +2 -2
- package/dist/{register.setup-CI_RT1Wa.js → register.setup-CgufX-6c.js} +2 -2
- package/dist/{register.setup-CEjhFwYz.js → register.setup-Dwh0ylCS.js} +2 -2
- package/dist/{register.status-health-sessions-DNlsQ-xt.js → register.status-health-sessions-BeAm7HAq.js} +3 -3
- package/dist/{register.status-health-sessions-8N1xEKl7.js → register.status-health-sessions-D6BRCFg_.js} +3 -3
- package/dist/{register.subclis-D1qkm3UK.js → register.subclis-Hb2xSHBy.js} +9 -9
- package/dist/{run-main-hKg6FDt6.js → run-main-B_NTFmz1.js} +17 -17
- package/dist/{server-methods-bIWvtXlT.js → server-methods-CFWjtx32.js} +7 -7
- package/dist/{server-methods-CXoipzKe.js → server-methods-Cz_-FX5B.js} +7 -7
- package/dist/{server-node-events-BD8wnswX.js → server-node-events-BiMD-Sik.js} +6 -6
- package/dist/{server-node-events-nQkNuQOx.js → server-node-events-UJ4Hwcsf.js} +6 -6
- package/dist/{status-CIZltjd7.js → status-BGUaaSHe.js} +1 -1
- package/dist/{status-Dgg3SlRY.js → status-Bp48-ySL.js} +1 -1
- package/dist/{status-CWzbgPAZ.js → status-CObdh7-H.js} +1 -1
- package/dist/{status-CTDVhXdb.js → status-FX0BMcCb.js} +1 -1
- package/dist/{subagent-registry-DQ_BPb-T.js → subagent-registry-ChDWDl_p.js} +177 -69
- package/dist/{synthesis-CSsmBmJc.js → synthesis-CmQvOHg6.js} +2 -2
- package/dist/{synthesis-CDd1xqI3.js → synthesis-DdP6tbyk.js} +4 -4
- package/dist/{synthesis-XbEFEFK1.js → synthesis-Dq-zHW08.js} +4 -4
- package/dist/{synthesis-DIqhHKjV.js → synthesis-m6WCyI41.js} +4 -4
- package/dist/{unified-runner-DN0asRIR.js → unified-runner-Cu3lGa3A.js} +177 -69
- package/dist/{unified-runner-Bm3r8UOg.js → unified-runner-DL-sfvGT.js} +178 -70
- package/dist/{update-cli-kysdsvn3.js → update-cli-DAKoU0Wn.js} +8 -8
- package/dist/{update-cli-CK7nw0t0.js → update-cli-gEBRNrm2.js} +9 -9
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
|
|
|
13
13
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Dtydk5-z.js";
|
|
14
14
|
import { t as resolveGatewayService } from "./service-Ccv3Zi5_.js";
|
|
15
15
|
import { r as healthCommand } from "./health-B7yvi1O9.js";
|
|
16
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
16
|
+
import { t as runOnboardingWizard } from "./onboarding-BrTMOcPF.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-lPWiklDD.js";
|
|
18
18
|
import { n as logConfigUpdated } from "./logging-BRejMykf.js";
|
|
19
19
|
import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-iEyARXI2.js";
|
|
@@ -15,7 +15,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
|
|
|
15
15
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Dic80Qni.js";
|
|
16
16
|
import { t as resolveGatewayService } from "./service-BF50XyKr.js";
|
|
17
17
|
import { r as healthCommand } from "./health-B5BrlZ8G.js";
|
|
18
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
18
|
+
import { t as runOnboardingWizard } from "./onboarding-BPZb40BJ.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-DyhvQgv4.js";
|
|
20
20
|
import { n as logConfigUpdated } from "./logging-BmJ5ky59.js";
|
|
21
21
|
import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-BZWIpO92.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-
|
|
6
|
+
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-ChDWDl_p.js";
|
|
7
7
|
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BsEhWvLn.js";
|
|
8
8
|
import { t as formatDocsLink } from "./links-B9CbwY46.js";
|
|
9
9
|
import { r as listChannelPluginCatalogEntries } from "./catalog-BaM8d1-T.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-
|
|
2
|
+
import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-DL-sfvGT.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";
|
|
@@ -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-BnvC700A.js").then((n) => n.t);
|
|
227
227
|
const { promptCustomApiConfig } = await import("./onboard-custom-BCcuL4Uq.js").then((n) => n.r);
|
|
228
|
-
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-
|
|
228
|
+
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-D-iIJjJY.js").then((n) => n.t);
|
|
229
229
|
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-DN-co6Oy.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-CF5skkHh.js").then((n) => n.i);
|
|
281
|
-
const { setupChannels } = await import("./onboard-channels-
|
|
281
|
+
const { setupChannels } = await import("./onboard-channels-D00NAtQt.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-
|
|
307
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Bd2rGMjo.js");
|
|
308
308
|
const { launchedTui } = await finalizeOnboardingWizard({
|
|
309
309
|
flow,
|
|
310
310
|
opts,
|
|
@@ -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-kt2FcieM.js").then((n) => n.t);
|
|
225
225
|
const { promptCustomApiConfig } = await import("./onboard-custom-C-wfNtOM.js").then((n) => n.r);
|
|
226
|
-
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-
|
|
226
|
+
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CucG4Wor.js").then((n) => n.t);
|
|
227
227
|
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-CS_h9RHv.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-
|
|
279
|
+
const { setupChannels } = await import("./onboard-channels-Cozz3CQv.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-
|
|
305
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BiL_LXrR.js");
|
|
306
306
|
const { launchedTui } = await finalizeOnboardingWizard({
|
|
307
307
|
flow,
|
|
308
308
|
opts,
|
|
@@ -44,10 +44,10 @@ import "./tool-display-DFOL6UQ9.js";
|
|
|
44
44
|
import "./bindings-BAOPW5eK.js";
|
|
45
45
|
import "./progress-DQTvTiEg.js";
|
|
46
46
|
import "./runtime-guard-Bgv3O9s4.js";
|
|
47
|
-
import "./program-context-
|
|
47
|
+
import "./program-context-BvP9L_1W.js";
|
|
48
48
|
import "./prompt-style-pphr4yLK.js";
|
|
49
49
|
import "./note-ytwb4wwn.js";
|
|
50
|
-
import { r as installCompletion } from "./completion-cli-
|
|
50
|
+
import { r as installCompletion } from "./completion-cli-DLUKoSIx.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-7YBz5otm.js";
|
|
52
52
|
import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-BKfeJ1xj.js";
|
|
53
53
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Dic80Qni.js";
|
|
@@ -55,7 +55,7 @@ import { t as resolveGatewayService } from "./service-BF50XyKr.js";
|
|
|
55
55
|
import { r as healthCommand } from "./health-B5BrlZ8G.js";
|
|
56
56
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CnX0W3vy.js";
|
|
57
57
|
import { t as formatHealthCheckFailure } from "./health-format-Dp4xmTKn.js";
|
|
58
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
58
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BzfgfpBH.js";
|
|
59
59
|
import { t as runTui } from "./tui-CEhOf9fk.js";
|
|
60
60
|
import path from "node:path";
|
|
61
61
|
import os from "node:os";
|
|
@@ -40,10 +40,10 @@ import "./bindings-c7qLJdIA.js";
|
|
|
40
40
|
import "./progress-BOQ0hkeM.js";
|
|
41
41
|
import "./prompt-style-CzRuIYtp.js";
|
|
42
42
|
import "./note-Cltpxj6i.js";
|
|
43
|
-
import "./register.subclis-
|
|
44
|
-
import "./command-registry-
|
|
43
|
+
import "./register.subclis-Hb2xSHBy.js";
|
|
44
|
+
import "./command-registry-O155hUhR.js";
|
|
45
45
|
import "./program-context-CGKRxOBU.js";
|
|
46
|
-
import { r as installCompletion } from "./completion-cli-
|
|
46
|
+
import { r as installCompletion } from "./completion-cli-BaOjuoPX.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-DaJ4Tf2a.js";
|
|
48
48
|
import "./runtime-guard-ofQGcCUc.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-CCI7SimM.js";
|
|
@@ -52,7 +52,7 @@ import { t as resolveGatewayService } from "./service-Ccv3Zi5_.js";
|
|
|
52
52
|
import { r as healthCommand } from "./health-B7yvi1O9.js";
|
|
53
53
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DfBRXG5y.js";
|
|
54
54
|
import { t as formatHealthCheckFailure } from "./health-format-Li703vy6.js";
|
|
55
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
55
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-wlBp8bv7.js";
|
|
56
56
|
import { t as runTui } from "./tui-Dp58oYvX.js";
|
|
57
57
|
import os from "node:os";
|
|
58
58
|
import path from "node:path";
|
|
@@ -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-0nzkXt6o.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-
|
|
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-q23ar_Pm.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-
|
|
21
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DNssqQJs.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-
|
|
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-D9m8F3HR.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
|
|
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-
|
|
3393
|
+
const { MemoryIndexManager } = await import("./manager-D9m8F3HR.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-
|
|
3406
|
+
const { MemoryIndexManager } = await import("./manager-D9m8F3HR.js").then((n) => n.t);
|
|
3407
3407
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3408
3408
|
} catch (err) {
|
|
3409
3409
|
return {
|
|
@@ -5920,7 +5920,7 @@ var GatewayClient = class {
|
|
|
5920
5920
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5921
5921
|
});
|
|
5922
5922
|
}
|
|
5923
|
-
this.ws = new WebSocket
|
|
5923
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
5924
5924
|
this.ws.on("open", () => {
|
|
5925
5925
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5926
5926
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -6139,7 +6139,7 @@ var GatewayClient = class {
|
|
|
6139
6139
|
return null;
|
|
6140
6140
|
}
|
|
6141
6141
|
async request(method, params, opts) {
|
|
6142
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
6142
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
6143
6143
|
const id = randomUUID();
|
|
6144
6144
|
const frame = {
|
|
6145
6145
|
type: "req",
|
|
@@ -7087,7 +7087,7 @@ async function routeReply(params) {
|
|
|
7087
7087
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7088
7088
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7089
7089
|
try {
|
|
7090
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7090
|
+
const { deliverOutboundPayloads } = await import("./deliver-q23ar_Pm.js").then((n) => n.n);
|
|
7091
7091
|
return {
|
|
7092
7092
|
ok: true,
|
|
7093
7093
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -16084,13 +16084,21 @@ async function applyMediaUnderstanding(params) {
|
|
|
16084
16084
|
* Soft warning appended when context usage crosses the threshold.
|
|
16085
16085
|
* Fires once per session (tracked via `SessionEntry.contextWarningSent`).
|
|
16086
16086
|
*/
|
|
16087
|
-
const SESSION_CONTEXT_WARNING_MESSAGE = "📋 Heads up — this session is approaching the context limit.
|
|
16087
|
+
const SESSION_CONTEXT_WARNING_MESSAGE = "📋 Heads up — this session is approaching the context limit. Symi will compact older context automatically when usage reaches 90%.";
|
|
16088
16088
|
/**
|
|
16089
|
-
*
|
|
16090
|
-
*
|
|
16091
|
-
* turn
|
|
16089
|
+
* Inline status emitted by Symi before running compaction proactively
|
|
16090
|
+
* at the 90% threshold. Followed by the agent's actual response in the
|
|
16091
|
+
* same turn.
|
|
16092
16092
|
*/
|
|
16093
|
-
const
|
|
16093
|
+
const SESSION_COMPACTING_MESSAGE = "📋 Context limit reached for this session. Compacting older context and continuing…";
|
|
16094
|
+
/**
|
|
16095
|
+
* Returned when compaction can't recover enough budget to continue —
|
|
16096
|
+
* either because the proactive compaction at 90% failed, or because a
|
|
16097
|
+
* single user message overshot the window in one turn and the reactive
|
|
16098
|
+
* fallback compaction also failed. Same message also short-circuits
|
|
16099
|
+
* subsequent turns until /reset or /new.
|
|
16100
|
+
*/
|
|
16101
|
+
const SESSION_COMPACTION_FAILED_MESSAGE = "📋 Couldn't compact this session further. Please /reset or /new to continue — your full conversation is saved in history.";
|
|
16094
16102
|
|
|
16095
16103
|
//#endregion
|
|
16096
16104
|
//#region src/sessions/level-overrides.ts
|
|
@@ -41819,6 +41827,86 @@ async function handleInlineActions(params) {
|
|
|
41819
41827
|
};
|
|
41820
41828
|
}
|
|
41821
41829
|
|
|
41830
|
+
//#endregion
|
|
41831
|
+
//#region src/auto-reply/reply/middleware-context-warning.ts
|
|
41832
|
+
/** Threshold (fraction of context window) that triggers the soft warning. */
|
|
41833
|
+
const CONTEXT_WARNING_THRESHOLD = .85;
|
|
41834
|
+
/**
|
|
41835
|
+
* Threshold that triggers proactive compaction in `prepareReplyTurn`.
|
|
41836
|
+
* Higher than the soft warning so the user sees the heads-up first;
|
|
41837
|
+
* compaction runs the next turn the threshold is observed.
|
|
41838
|
+
*/
|
|
41839
|
+
const CONTEXT_PROACTIVE_COMPACT_THRESHOLD = .9;
|
|
41840
|
+
/**
|
|
41841
|
+
* Pure decision for "should `prepareReplyTurn` run proactive compaction
|
|
41842
|
+
* before the next turn?" — extracted so the trigger logic is unit-testable
|
|
41843
|
+
* without mocking the rest of the prep pipeline.
|
|
41844
|
+
*
|
|
41845
|
+
* Returns true ONLY when:
|
|
41846
|
+
* - we have a session id (otherwise compaction has no target),
|
|
41847
|
+
* - we have a positive context window,
|
|
41848
|
+
* - we have a positive cumulative usage from the previous turn,
|
|
41849
|
+
* - usage / window ≥ CONTEXT_PROACTIVE_COMPACT_THRESHOLD.
|
|
41850
|
+
*/
|
|
41851
|
+
function shouldProactivelyCompact(args) {
|
|
41852
|
+
if (!args.sessionId) return false;
|
|
41853
|
+
if (!args.contextTokens || args.contextTokens <= 0) return false;
|
|
41854
|
+
const usage = args.totalTokens ?? 0;
|
|
41855
|
+
if (usage <= 0) return false;
|
|
41856
|
+
return usage / args.contextTokens >= CONTEXT_PROACTIVE_COMPACT_THRESHOLD;
|
|
41857
|
+
}
|
|
41858
|
+
/**
|
|
41859
|
+
* Read the model's context-window size, falling back to the global
|
|
41860
|
+
* default when the model isn't in the registry yet.
|
|
41861
|
+
*/
|
|
41862
|
+
function resolveContextWindow(modelId) {
|
|
41863
|
+
const fromRegistry = lookupContextTokens(modelId);
|
|
41864
|
+
if (fromRegistry && fromRegistry > 0) return fromRegistry;
|
|
41865
|
+
return DEFAULT_CONTEXT_TOKENS;
|
|
41866
|
+
}
|
|
41867
|
+
/**
|
|
41868
|
+
* After-turn hook that surfaces a one-time soft warning when usage
|
|
41869
|
+
* crosses the context threshold. Mutates the result text to append
|
|
41870
|
+
* the warning when triggered, and persists `contextWarningSent: true`
|
|
41871
|
+
* on the session entry so the warning doesn't fire again.
|
|
41872
|
+
*/
|
|
41873
|
+
function withContextUsageWarning() {
|
|
41874
|
+
return (next) => async (params) => {
|
|
41875
|
+
const result = await next(params);
|
|
41876
|
+
if (result.outbound.action === "drop") return result;
|
|
41877
|
+
if (!params.sessionKey) return result;
|
|
41878
|
+
const usage = result.rawResult.meta.agentMeta?.usage?.total ?? 0;
|
|
41879
|
+
if (usage <= 0) return result;
|
|
41880
|
+
if (usage / resolveContextWindow(params.modelId ?? result.modelId) < CONTEXT_WARNING_THRESHOLD) return result;
|
|
41881
|
+
const agentId = resolveAgentIdFromSessionKey(params.sessionKey);
|
|
41882
|
+
const storePath = resolveStorePath(params.config.session?.store, { agentId });
|
|
41883
|
+
let alreadyWarned = false;
|
|
41884
|
+
try {
|
|
41885
|
+
await updateSessionStoreEntry({
|
|
41886
|
+
storePath,
|
|
41887
|
+
sessionKey: params.sessionKey,
|
|
41888
|
+
update: async (entry) => {
|
|
41889
|
+
if (entry.contextWarningSent === true) {
|
|
41890
|
+
alreadyWarned = true;
|
|
41891
|
+
return null;
|
|
41892
|
+
}
|
|
41893
|
+
return { contextWarningSent: true };
|
|
41894
|
+
}
|
|
41895
|
+
});
|
|
41896
|
+
} catch (err) {
|
|
41897
|
+
logVerbose(`context-warning: failed to persist contextWarningSent flag for ${params.sessionKey}: ${String(err)}`);
|
|
41898
|
+
return result;
|
|
41899
|
+
}
|
|
41900
|
+
if (alreadyWarned) return result;
|
|
41901
|
+
const trimmedText = result.text.trimEnd();
|
|
41902
|
+
const separator = trimmedText ? "\n\n" : "";
|
|
41903
|
+
return {
|
|
41904
|
+
...result,
|
|
41905
|
+
text: `${trimmedText}${separator}${SESSION_CONTEXT_WARNING_MESSAGE}`
|
|
41906
|
+
};
|
|
41907
|
+
};
|
|
41908
|
+
}
|
|
41909
|
+
|
|
41822
41910
|
//#endregion
|
|
41823
41911
|
//#region src/auto-reply/reply/session-reset-model.ts
|
|
41824
41912
|
function splitBody(body) {
|
|
@@ -41988,7 +42076,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41988
42076
|
return;
|
|
41989
42077
|
}
|
|
41990
42078
|
try {
|
|
41991
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
42079
|
+
const { deliverOutboundPayloads } = await import("./deliver-q23ar_Pm.js").then((n) => n.n);
|
|
41992
42080
|
await deliverOutboundPayloads({
|
|
41993
42081
|
cfg: params.cfg,
|
|
41994
42082
|
channel,
|
|
@@ -42715,7 +42803,7 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
|
|
|
42715
42803
|
typing.cleanup();
|
|
42716
42804
|
return {
|
|
42717
42805
|
kind: "early-reply",
|
|
42718
|
-
reply: { text:
|
|
42806
|
+
reply: { text: SESSION_COMPACTION_FAILED_MESSAGE }
|
|
42719
42807
|
};
|
|
42720
42808
|
}
|
|
42721
42809
|
await applyResetModelOverride({
|
|
@@ -42828,6 +42916,82 @@ async function prepareReplyTurn(ctx, opts, configOverride) {
|
|
|
42828
42916
|
};
|
|
42829
42917
|
directives = inlineActionResult.directives;
|
|
42830
42918
|
abortedLastRun = inlineActionResult.abortedLastRun ?? abortedLastRun;
|
|
42919
|
+
if (shouldProactivelyCompact({
|
|
42920
|
+
totalTokens: sessionEntry.totalTokens,
|
|
42921
|
+
contextTokens,
|
|
42922
|
+
sessionId: sessionEntry.sessionId
|
|
42923
|
+
})) {
|
|
42924
|
+
if (resolvedOpts?.onBlockReply) try {
|
|
42925
|
+
await resolvedOpts.onBlockReply({ text: SESSION_COMPACTING_MESSAGE });
|
|
42926
|
+
} catch (err) {
|
|
42927
|
+
logVerbose(`proactive-compact: inline status delivery failed: ${String(err)}`);
|
|
42928
|
+
}
|
|
42929
|
+
if (isEmbeddedPiRunActive(sessionEntry.sessionId)) {
|
|
42930
|
+
abortEmbeddedPiRun(sessionEntry.sessionId);
|
|
42931
|
+
await waitForEmbeddedPiRunEnd(sessionEntry.sessionId, 15e3);
|
|
42932
|
+
}
|
|
42933
|
+
let compactResult;
|
|
42934
|
+
try {
|
|
42935
|
+
compactResult = await compactEmbeddedPiSession({
|
|
42936
|
+
sessionId: sessionEntry.sessionId,
|
|
42937
|
+
sessionKey,
|
|
42938
|
+
messageChannel: command.channel,
|
|
42939
|
+
groupId: sessionEntry.groupId,
|
|
42940
|
+
groupChannel: sessionEntry.groupChannel,
|
|
42941
|
+
groupSpace: sessionEntry.space,
|
|
42942
|
+
spawnedBy: sessionEntry.spawnedBy,
|
|
42943
|
+
sessionFile: resolveSessionFilePath(sessionEntry.sessionId, sessionEntry, resolveSessionFilePathOptions({
|
|
42944
|
+
agentId,
|
|
42945
|
+
storePath
|
|
42946
|
+
})),
|
|
42947
|
+
workspaceDir,
|
|
42948
|
+
agentDir,
|
|
42949
|
+
config: cfg,
|
|
42950
|
+
skillsSnapshot: sessionEntry.skillsSnapshot,
|
|
42951
|
+
provider,
|
|
42952
|
+
model,
|
|
42953
|
+
thinkLevel: resolvedThinkLevel,
|
|
42954
|
+
reasoningLevel: resolvedReasoningLevel,
|
|
42955
|
+
trigger: "overflow",
|
|
42956
|
+
senderIsOwner: command.senderIsOwner,
|
|
42957
|
+
ownerNumbers: command.ownerList.length > 0 ? command.ownerList : void 0
|
|
42958
|
+
});
|
|
42959
|
+
} catch (err) {
|
|
42960
|
+
logVerbose(`proactive-compact: compactor threw for ${sessionKey}: ${String(err)}`);
|
|
42961
|
+
compactResult = {
|
|
42962
|
+
ok: false,
|
|
42963
|
+
compacted: false,
|
|
42964
|
+
reason: String(err)
|
|
42965
|
+
};
|
|
42966
|
+
}
|
|
42967
|
+
if (compactResult.ok && compactResult.compacted) await incrementCompactionCount({
|
|
42968
|
+
sessionEntry,
|
|
42969
|
+
sessionStore,
|
|
42970
|
+
sessionKey,
|
|
42971
|
+
storePath,
|
|
42972
|
+
tokensAfter: compactResult.result?.tokensAfter
|
|
42973
|
+
});
|
|
42974
|
+
else {
|
|
42975
|
+
logVerbose(`proactive-compact: failed for ${sessionKey} (${compactResult.reason ?? "unknown"})`);
|
|
42976
|
+
if (storePath) try {
|
|
42977
|
+
await updateSessionStoreEntry({
|
|
42978
|
+
storePath,
|
|
42979
|
+
sessionKey,
|
|
42980
|
+
update: async (entry) => {
|
|
42981
|
+
if (entry.endedReason === "context_overflow") return null;
|
|
42982
|
+
return { endedReason: "context_overflow" };
|
|
42983
|
+
}
|
|
42984
|
+
});
|
|
42985
|
+
} catch (err) {
|
|
42986
|
+
logVerbose(`proactive-compact: failed to mark session sealed: ${String(err)}`);
|
|
42987
|
+
}
|
|
42988
|
+
typing.cleanup();
|
|
42989
|
+
return {
|
|
42990
|
+
kind: "early-reply",
|
|
42991
|
+
reply: { text: SESSION_COMPACTION_FAILED_MESSAGE }
|
|
42992
|
+
};
|
|
42993
|
+
}
|
|
42994
|
+
}
|
|
42831
42995
|
await stageSandboxMedia({
|
|
42832
42996
|
ctx,
|
|
42833
42997
|
sessionCtx,
|
|
@@ -52439,7 +52603,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
52439
52603
|
error: err
|
|
52440
52604
|
});
|
|
52441
52605
|
}
|
|
52442
|
-
const MAX_OVERFLOW_COMPACTION_ATTEMPTS =
|
|
52606
|
+
const MAX_OVERFLOW_COMPACTION_ATTEMPTS = 1;
|
|
52443
52607
|
const MAX_RUN_LOOP_ITERATIONS = resolveMaxRunRetryIterations(profileCandidates.length);
|
|
52444
52608
|
let overflowCompactionAttempts = 0;
|
|
52445
52609
|
let toolResultTruncationAttempted = false;
|
|
@@ -53462,8 +53626,8 @@ function extractErrorMessage(err) {
|
|
|
53462
53626
|
function buildBoundaryResult(params) {
|
|
53463
53627
|
const profile = resolveModelProfile(params.provider && params.modelId ? `${params.provider}/${params.modelId}` : "", params.config.models?.profiles);
|
|
53464
53628
|
return {
|
|
53465
|
-
text:
|
|
53466
|
-
rawText:
|
|
53629
|
+
text: SESSION_COMPACTION_FAILED_MESSAGE,
|
|
53630
|
+
rawText: SESSION_COMPACTION_FAILED_MESSAGE,
|
|
53467
53631
|
outbound: {
|
|
53468
53632
|
action: "deliver",
|
|
53469
53633
|
reason: "deliver"
|
|
@@ -53474,7 +53638,7 @@ function buildBoundaryResult(params) {
|
|
|
53474
53638
|
profile,
|
|
53475
53639
|
didSendViaMessagingTool: false,
|
|
53476
53640
|
rawResult: {
|
|
53477
|
-
payloads: [{ text:
|
|
53641
|
+
payloads: [{ text: SESSION_COMPACTION_FAILED_MESSAGE }],
|
|
53478
53642
|
meta: {
|
|
53479
53643
|
durationMs: Date.now() - params.startTime,
|
|
53480
53644
|
agentMeta: {
|
|
@@ -53533,62 +53697,6 @@ function withContextOverflowRecovery() {
|
|
|
53533
53697
|
};
|
|
53534
53698
|
}
|
|
53535
53699
|
|
|
53536
|
-
//#endregion
|
|
53537
|
-
//#region src/auto-reply/reply/middleware-context-warning.ts
|
|
53538
|
-
/** Threshold (fraction of context window) that triggers the soft warning. */
|
|
53539
|
-
const CONTEXT_WARNING_THRESHOLD = .85;
|
|
53540
|
-
/**
|
|
53541
|
-
* Read the model's context-window size, falling back to the global
|
|
53542
|
-
* default when the model isn't in the registry yet.
|
|
53543
|
-
*/
|
|
53544
|
-
function resolveContextWindow(modelId) {
|
|
53545
|
-
const fromRegistry = lookupContextTokens(modelId);
|
|
53546
|
-
if (fromRegistry && fromRegistry > 0) return fromRegistry;
|
|
53547
|
-
return DEFAULT_CONTEXT_TOKENS;
|
|
53548
|
-
}
|
|
53549
|
-
/**
|
|
53550
|
-
* After-turn hook that surfaces a one-time soft warning when usage
|
|
53551
|
-
* crosses the context threshold. Mutates the result text to append
|
|
53552
|
-
* the warning when triggered, and persists `contextWarningSent: true`
|
|
53553
|
-
* on the session entry so the warning doesn't fire again.
|
|
53554
|
-
*/
|
|
53555
|
-
function withContextUsageWarning() {
|
|
53556
|
-
return (next) => async (params) => {
|
|
53557
|
-
const result = await next(params);
|
|
53558
|
-
if (result.outbound.action === "drop") return result;
|
|
53559
|
-
if (!params.sessionKey) return result;
|
|
53560
|
-
const usage = result.rawResult.meta.agentMeta?.usage?.total ?? 0;
|
|
53561
|
-
if (usage <= 0) return result;
|
|
53562
|
-
if (usage / resolveContextWindow(params.modelId ?? result.modelId) < CONTEXT_WARNING_THRESHOLD) return result;
|
|
53563
|
-
const agentId = resolveAgentIdFromSessionKey(params.sessionKey);
|
|
53564
|
-
const storePath = resolveStorePath(params.config.session?.store, { agentId });
|
|
53565
|
-
let alreadyWarned = false;
|
|
53566
|
-
try {
|
|
53567
|
-
await updateSessionStoreEntry({
|
|
53568
|
-
storePath,
|
|
53569
|
-
sessionKey: params.sessionKey,
|
|
53570
|
-
update: async (entry) => {
|
|
53571
|
-
if (entry.contextWarningSent === true) {
|
|
53572
|
-
alreadyWarned = true;
|
|
53573
|
-
return null;
|
|
53574
|
-
}
|
|
53575
|
-
return { contextWarningSent: true };
|
|
53576
|
-
}
|
|
53577
|
-
});
|
|
53578
|
-
} catch (err) {
|
|
53579
|
-
logVerbose(`context-warning: failed to persist contextWarningSent flag for ${params.sessionKey}: ${String(err)}`);
|
|
53580
|
-
return result;
|
|
53581
|
-
}
|
|
53582
|
-
if (alreadyWarned) return result;
|
|
53583
|
-
const trimmedText = result.text.trimEnd();
|
|
53584
|
-
const separator = trimmedText ? "\n\n" : "";
|
|
53585
|
-
return {
|
|
53586
|
-
...result,
|
|
53587
|
-
text: `${trimmedText}${separator}${SESSION_CONTEXT_WARNING_MESSAGE}`
|
|
53588
|
-
};
|
|
53589
|
-
};
|
|
53590
|
-
}
|
|
53591
|
-
|
|
53592
53700
|
//#endregion
|
|
53593
53701
|
//#region src/auto-reply/reply/middleware-diagnostic-logging.ts
|
|
53594
53702
|
function deriveChannel(ctx) {
|
|
@@ -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-C-Jte08L.js";
|
|
4
4
|
import { i as loadConfig } from "./config-D7TcU4qN.js";
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-ChDWDl_p.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-
|
|
2
|
+
import { s as loadSymiPlugins } from "./unified-runner-DL-sfvGT.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import type { TurnMiddleware } from "./turn-middleware.js";
|
|
2
2
|
/** Threshold (fraction of context window) that triggers the soft warning. */
|
|
3
3
|
export declare const CONTEXT_WARNING_THRESHOLD = 0.85;
|
|
4
|
+
/**
|
|
5
|
+
* Threshold that triggers proactive compaction in `prepareReplyTurn`.
|
|
6
|
+
* Higher than the soft warning so the user sees the heads-up first;
|
|
7
|
+
* compaction runs the next turn the threshold is observed.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CONTEXT_PROACTIVE_COMPACT_THRESHOLD = 0.9;
|
|
10
|
+
/**
|
|
11
|
+
* Pure decision for "should `prepareReplyTurn` run proactive compaction
|
|
12
|
+
* before the next turn?" — extracted so the trigger logic is unit-testable
|
|
13
|
+
* without mocking the rest of the prep pipeline.
|
|
14
|
+
*
|
|
15
|
+
* Returns true ONLY when:
|
|
16
|
+
* - we have a session id (otherwise compaction has no target),
|
|
17
|
+
* - we have a positive context window,
|
|
18
|
+
* - we have a positive cumulative usage from the previous turn,
|
|
19
|
+
* - usage / window ≥ CONTEXT_PROACTIVE_COMPACT_THRESHOLD.
|
|
20
|
+
*/
|
|
21
|
+
export declare function shouldProactivelyCompact(args: {
|
|
22
|
+
totalTokens: number | undefined;
|
|
23
|
+
contextTokens: number | undefined;
|
|
24
|
+
sessionId: string | undefined;
|
|
25
|
+
}): boolean;
|
|
4
26
|
/**
|
|
5
27
|
* After-turn hook that surfaces a one-time soft warning when usage
|
|
6
28
|
* crosses the context threshold. Mutates the result text to append
|
|
@@ -4,8 +4,21 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare const SESSION_CONTEXT_WARNING_MESSAGE: string;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* turn
|
|
7
|
+
* Inline status emitted by Symi before running compaction proactively
|
|
8
|
+
* at the 90% threshold. Followed by the agent's actual response in the
|
|
9
|
+
* same turn.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SESSION_COMPACTING_MESSAGE = "\uD83D\uDCCB Context limit reached for this session. Compacting older context and continuing\u2026";
|
|
12
|
+
/**
|
|
13
|
+
* Returned when compaction can't recover enough budget to continue —
|
|
14
|
+
* either because the proactive compaction at 90% failed, or because a
|
|
15
|
+
* single user message overshot the window in one turn and the reactive
|
|
16
|
+
* fallback compaction also failed. Same message also short-circuits
|
|
17
|
+
* subsequent turns until /reset or /new.
|
|
18
|
+
*/
|
|
19
|
+
export declare const SESSION_COMPACTION_FAILED_MESSAGE: string;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use SESSION_COMPACTION_FAILED_MESSAGE. Kept as an alias
|
|
22
|
+
* during the 3.5.6 transition; the new code path renders the same text.
|
|
10
23
|
*/
|
|
11
24
|
export declare const SESSION_OVERFLOW_MESSAGE: string;
|