@symerian/symi 3.5.5 → 3.5.6
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/{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/{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 +2 -2
- 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-Bt-1HGg9.js → manager-CnBU0aOR.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/{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-C9wLrFjj.js} +177 -69
- 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/{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-XbEFEFK1.js → synthesis-DIkOQnhF.js} +2 -2
- package/dist/{synthesis-CDd1xqI3.js → synthesis-DdP6tbyk.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
|
@@ -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";
|
|
@@ -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-CnBU0aOR.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";
|
|
@@ -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-CnBU0aOR.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-CnBU0aOR.js").then((n) => n.t);
|
|
3407
3407
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3408
3408
|
} catch (err) {
|
|
3409
3409
|
return {
|
|
@@ -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) {
|
|
@@ -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;
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import fs, { constants, readFileSync } from "node:fs";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import { Logger } from "tslog";
|
|
7
|
-
import
|
|
7
|
+
import json5 from "json5";
|
|
8
8
|
import chalk, { Chalk } from "chalk";
|
|
9
9
|
import fs$1, { mkdtemp, rm } from "node:fs/promises";
|
|
10
10
|
import { z } from "zod";
|
|
@@ -294,7 +294,7 @@ function readLoggingConfig() {
|
|
|
294
294
|
try {
|
|
295
295
|
if (!fs.existsSync(configPath)) return;
|
|
296
296
|
const raw = fs.readFileSync(configPath, "utf-8");
|
|
297
|
-
const logging =
|
|
297
|
+
const logging = json5.parse(raw)?.logging;
|
|
298
298
|
if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
|
|
299
299
|
return logging;
|
|
300
300
|
} catch {
|
|
@@ -7392,7 +7392,7 @@ function safeRealpath(target) {
|
|
|
7392
7392
|
}
|
|
7393
7393
|
const defaultResolver = {
|
|
7394
7394
|
readFile: (p) => fs.readFileSync(p, "utf-8"),
|
|
7395
|
-
parseJson: (raw) =>
|
|
7395
|
+
parseJson: (raw) => json5.parse(raw)
|
|
7396
7396
|
};
|
|
7397
7397
|
/**
|
|
7398
7398
|
* Resolves all $include directives in a parsed config object.
|
|
@@ -10623,7 +10623,7 @@ function resolveConfigPathForDeps(deps) {
|
|
|
10623
10623
|
function normalizeDeps(overrides = {}) {
|
|
10624
10624
|
return {
|
|
10625
10625
|
fs: overrides.fs ?? fs,
|
|
10626
|
-
json5: overrides.json5 ??
|
|
10626
|
+
json5: overrides.json5 ?? json5,
|
|
10627
10627
|
env: overrides.env ?? process.env,
|
|
10628
10628
|
homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
|
|
10629
10629
|
configPath: overrides.configPath ?? "",
|
|
@@ -10634,11 +10634,11 @@ function maybeLoadDotEnvForConfig(env) {
|
|
|
10634
10634
|
if (env !== process.env) return;
|
|
10635
10635
|
loadDotEnv({ quiet: true });
|
|
10636
10636
|
}
|
|
10637
|
-
function parseConfigJson5(raw, json5 =
|
|
10637
|
+
function parseConfigJson5(raw, json5$1 = json5) {
|
|
10638
10638
|
try {
|
|
10639
10639
|
return {
|
|
10640
10640
|
ok: true,
|
|
10641
|
-
parsed: json5.parse(raw)
|
|
10641
|
+
parsed: json5$1.parse(raw)
|
|
10642
10642
|
};
|
|
10643
10643
|
} catch (err) {
|
|
10644
10644
|
return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./unified-runner-
|
|
1
|
+
import "./unified-runner-DL-sfvGT.js";
|
|
2
2
|
import { j as theme } from "./registry-Sbac4a4z.js";
|
|
3
3
|
import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
|
|
4
4
|
import { _ as shortenHomeInString, h as resolveUserPath, p as resolveConfigDir, v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
@@ -50,8 +50,8 @@ import "./session-cost-usage-D3mgssM_.js";
|
|
|
50
50
|
import "./session-utils-Cs1jlD-q.js";
|
|
51
51
|
import "./with-timeout-GbJ1Yzsh.js";
|
|
52
52
|
import "./reply-prefix-BFNeXT65.js";
|
|
53
|
-
import "./memory-
|
|
54
|
-
import "./manager-
|
|
53
|
+
import "./memory-BsGfHO_F.js";
|
|
54
|
+
import "./manager-CvqH_tah.js";
|
|
55
55
|
import "./sqlite-Cod7C5ba.js";
|
|
56
56
|
import "./chunk-BxfKjCUx.js";
|
|
57
57
|
import "./markdown-tables-CS1Tvb3z.js";
|
|
@@ -82,7 +82,7 @@ import { t as formatDocsLink } from "./links-CQZxjjCO.js";
|
|
|
82
82
|
import "./cli-utils-CbnnSB38.js";
|
|
83
83
|
import "./help-format-8IYCRvx1.js";
|
|
84
84
|
import "./progress-DQTvTiEg.js";
|
|
85
|
-
import "./memory-cli-
|
|
85
|
+
import "./memory-cli-BwQsPEFk.js";
|
|
86
86
|
import "./logging-CLWZ3KQI.js";
|
|
87
87
|
import "./replies-C5CBlnFS.js";
|
|
88
88
|
import "./pi-tools.policy-WaLKhqJQ.js";
|
|
@@ -92,7 +92,7 @@ import "./npm-registry-spec-DPqOMFd9.js";
|
|
|
92
92
|
import "./skill-scanner-D5p8L-xO.js";
|
|
93
93
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-Bb1phV9x.js";
|
|
94
94
|
import { t as renderTable } from "./table-Ds5CZCyv.js";
|
|
95
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
95
|
+
import { t as buildPluginStatusReport } from "./status-CObdh7-H.js";
|
|
96
96
|
import { n as updateNpmInstalledPlugins } from "./update-CcacbR32.js";
|
|
97
97
|
import path from "node:path";
|
|
98
98
|
import fs from "node:fs";
|
|
@@ -17,7 +17,7 @@ import "./client-DhdWcgZP.js";
|
|
|
17
17
|
import "./call-ogggp9QZ.js";
|
|
18
18
|
import "./message-channel-DXToSaWK.js";
|
|
19
19
|
import "./pairing-token-B-OTYROz.js";
|
|
20
|
-
import "./subagent-registry-
|
|
20
|
+
import "./subagent-registry-ChDWDl_p.js";
|
|
21
21
|
import "./sessions-Dn6VXn4p.js";
|
|
22
22
|
import "./plugins-BsEhWvLn.js";
|
|
23
23
|
import "./send-Dq252-bi.js";
|
|
@@ -47,8 +47,8 @@ import "./model-auth-Byr7Gic_.js";
|
|
|
47
47
|
import "./github-copilot-token-B5y4__YM.js";
|
|
48
48
|
import "./models-config-CiR_RUxw.js";
|
|
49
49
|
import "./reply-prefix-DV3KhOhL.js";
|
|
50
|
-
import "./memory-
|
|
51
|
-
import "./manager-
|
|
50
|
+
import "./memory-CbwmxmxW.js";
|
|
51
|
+
import "./manager-BVPXSK-I.js";
|
|
52
52
|
import "./sqlite-9jF_eajd.js";
|
|
53
53
|
import "./chunk-B2lBXhR0.js";
|
|
54
54
|
import "./markdown-tables-BEdkErjm.js";
|
|
@@ -79,7 +79,7 @@ import { t as formatDocsLink } from "./links-B9CbwY46.js";
|
|
|
79
79
|
import "./cli-utils-Ca0KE-dW.js";
|
|
80
80
|
import "./help-format-BTNd5kFC.js";
|
|
81
81
|
import "./progress-BOQ0hkeM.js";
|
|
82
|
-
import "./memory-cli-
|
|
82
|
+
import "./memory-cli-B1dFPZw-.js";
|
|
83
83
|
import "./logging-uD67RPtO.js";
|
|
84
84
|
import "./replies-_DV8VSSj.js";
|
|
85
85
|
import "./pi-tools.policy-CU8U7--z.js";
|
|
@@ -88,7 +88,7 @@ import "./npm-registry-spec-CONWlhd6.js";
|
|
|
88
88
|
import "./skill-scanner-EhsZUzzk.js";
|
|
89
89
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BVJQl3Tj.js";
|
|
90
90
|
import { t as renderTable } from "./table-Dm8jYqmW.js";
|
|
91
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
91
|
+
import { t as buildPluginStatusReport } from "./status-BGUaaSHe.js";
|
|
92
92
|
import { n as updateNpmInstalledPlugins } from "./update-BDo7wxMf.js";
|
|
93
93
|
import os from "node:os";
|
|
94
94
|
import path from "node:path";
|
|
@@ -18,7 +18,7 @@ import "./client-DhdWcgZP.js";
|
|
|
18
18
|
import "./call-ogggp9QZ.js";
|
|
19
19
|
import "./message-channel-DXToSaWK.js";
|
|
20
20
|
import "./pairing-token-B-OTYROz.js";
|
|
21
|
-
import "./subagent-registry-
|
|
21
|
+
import "./subagent-registry-ChDWDl_p.js";
|
|
22
22
|
import "./sessions-Dn6VXn4p.js";
|
|
23
23
|
import "./plugins-BsEhWvLn.js";
|
|
24
24
|
import "./send-Dq252-bi.js";
|
|
@@ -48,8 +48,8 @@ import "./model-auth-Byr7Gic_.js";
|
|
|
48
48
|
import "./github-copilot-token-B5y4__YM.js";
|
|
49
49
|
import "./models-config-CiR_RUxw.js";
|
|
50
50
|
import "./reply-prefix-DV3KhOhL.js";
|
|
51
|
-
import "./memory-
|
|
52
|
-
import "./manager-
|
|
51
|
+
import "./memory-CbwmxmxW.js";
|
|
52
|
+
import "./manager-BVPXSK-I.js";
|
|
53
53
|
import "./sqlite-9jF_eajd.js";
|
|
54
54
|
import "./chunk-B2lBXhR0.js";
|
|
55
55
|
import "./markdown-tables-BEdkErjm.js";
|
|
@@ -80,18 +80,18 @@ import { t as formatDocsLink } from "./links-B9CbwY46.js";
|
|
|
80
80
|
import "./cli-utils-Ca0KE-dW.js";
|
|
81
81
|
import "./help-format-BTNd5kFC.js";
|
|
82
82
|
import "./progress-BOQ0hkeM.js";
|
|
83
|
-
import "./memory-cli-
|
|
83
|
+
import "./memory-cli-B1dFPZw-.js";
|
|
84
84
|
import "./logging-uD67RPtO.js";
|
|
85
85
|
import "./replies-_DV8VSSj.js";
|
|
86
86
|
import "./pi-tools.policy-CU8U7--z.js";
|
|
87
87
|
import "./catalog-BaM8d1-T.js";
|
|
88
|
-
import "./plugin-registry-
|
|
89
|
-
import { n as resolveCliChannelOptions } from "./channel-options-
|
|
90
|
-
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-
|
|
91
|
-
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-
|
|
88
|
+
import "./plugin-registry-BLoSesyj.js";
|
|
89
|
+
import { n as resolveCliChannelOptions } from "./channel-options-CdIEyHya.js";
|
|
90
|
+
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-Hb2xSHBy.js";
|
|
91
|
+
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-O155hUhR.js";
|
|
92
92
|
import { r as setProgramContext } from "./program-context-CGKRxOBU.js";
|
|
93
93
|
import { t as forceFreePort } from "./ports-C2swmreL.js";
|
|
94
|
-
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-
|
|
94
|
+
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-CApT91CY.js";
|
|
95
95
|
import { Command } from "commander";
|
|
96
96
|
|
|
97
97
|
//#region src/cli/program/context.ts
|
|
@@ -199,7 +199,7 @@ function registerPreActionHooks(program, programVersion) {
|
|
|
199
199
|
commandPath
|
|
200
200
|
});
|
|
201
201
|
if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
|
|
202
|
-
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-
|
|
202
|
+
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-BLoSesyj.js").then((n) => n.n);
|
|
203
203
|
ensurePluginRegistryLoaded();
|
|
204
204
|
}
|
|
205
205
|
});
|