@symerian/symi 2.3.0 → 2.3.1
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/{agents-B0pTMEwy.js → agents-DzuttgJU.js} +4 -4
- package/dist/{agents.config-_b7ghdyb.js → agents.config-2HlZJsR3.js} +1 -1
- package/dist/{agents.config-CdNbu8M5.js → agents.config-CSucty2T.js} +1 -1
- package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-BsfqyC31.js} +4 -4
- package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
- package/dist/{auth-choice-Bx2Ly3cQ.js → auth-choice-ChrEc3cZ.js} +1 -1
- package/dist/{auth-choice-EFFQA4ii.js → auth-choice-Cve09z1a.js} +1 -1
- package/dist/{banner-B3eic4uq.js → banner-BoLflN_R.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CiowWU_F.js → channel-options-Dkd1WQZx.js} +1 -1
- package/dist/{channel-options-75aPoFR-.js → channel-options-DqgeO1f6.js} +1 -1
- package/dist/{channel-web-B3e8z6ws.js → channel-web-CJvDQ5Ea.js} +1 -1
- package/dist/{channels-cli-DZM3aIdY.js → channels-cli-D0jjOLRb.js} +4 -4
- package/dist/{channels-cli-BDAVsmSm.js → channels-cli-DtqwJZWy.js} +4 -4
- package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
- package/dist/{chrome-CxSAp8x3.js → chrome-w3SLcQJF.js} +7 -7
- package/dist/{cli-BRwovkQi.js → cli-CEtg8kql.js} +1 -1
- package/dist/{cli-D9SQsNnH.js → cli-CHOmeum9.js} +1 -1
- package/dist/{command-registry-BOI6nYdi.js → command-registry-Ba2z3dYq.js} +9 -9
- package/dist/{completion-cli-NNzoK79d.js → completion-cli-BgX3MWVU.js} +1 -1
- package/dist/{completion-cli-83vpWmfU.js → completion-cli-CD-306wt.js} +2 -2
- package/dist/{config-cli-DEAh6EN8.js → config-cli-Cz87-TYh.js} +1 -1
- package/dist/{config-cli-MLtPektI.js → config-cli-DAbXVRUL.js} +1 -1
- package/dist/{configure-BdfU-OWp.js → configure-0nrthdSf.js} +3 -3
- package/dist/{configure-vl7Z4vWj.js → configure-D45ne4lm.js} +3 -3
- package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
- package/dist/{deliver-BA7ZN3iM.js → deliver-BmPK91JP.js} +1 -1
- package/dist/{doctor-completion-Ds-_m1_I.js → doctor-completion-CcDVOtZ5.js} +1 -1
- package/dist/{doctor-completion-OyrrKhcY.js → doctor-completion-CmGtqUHQ.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{gateway-cli-Coue82yW.js → gateway-cli-BVN31fwu.js} +9 -9
- package/dist/{gateway-cli-DfFSqETj.js → gateway-cli-DajX3Pye.js} +9 -9
- package/dist/{glass-ui-ws-D0Y3Ftjr.js → glass-ui-ws-CQG6acJl.js} +7 -7
- package/dist/{glass-ui-ws-Dkh8KQKx.js → glass-ui-ws-Z1IOT6Vc.js} +7 -7
- package/dist/{health-BL_zFcJ8.js → health-D9eQW7fJ.js} +1 -1
- package/dist/{health-B1LT2TG3.js → health-f056vLGT.js} +1 -1
- package/dist/{hooks-cli-CI7p--JB.js → hooks-cli-CW-IRS72.js} +2 -2
- package/dist/{hooks-cli-BoE1T7F1.js → hooks-cli-hJ4euq2R.js} +2 -2
- package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
- package/dist/{image-BGmVDkkw.js → image-rZ4x9VS9.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{models-cli-B-mDqwNv.js → models-cli-B2ticsCM.js} +2 -2
- package/dist/{models-cli-Dm_3bpun.js → models-cli-D9bG44Ao.js} +3 -3
- package/dist/{models-DSx-ohwA.js → models-nO_t1uzp.js} +2 -2
- package/dist/{onboard-CPRPPhos.js → onboard-BDbpfrZj.js} +2 -2
- package/dist/{onboard-u4HyeN9s.js → onboard-BtZ9WqhJ.js} +2 -2
- package/dist/{onboard-channels-BUz8JSpV.js → onboard-channels-CHE8nfNA.js} +1 -1
- package/dist/{onboard-channels-CixaQo6p.js → onboard-channels-HubyUVjT.js} +1 -1
- package/dist/{onboarding-DVnX6G65.js → onboarding-DtP0sps0.js} +3 -3
- package/dist/{onboarding-HeYKKCUg.js → onboarding-eVb5gvwo.js} +3 -3
- package/dist/{onboarding.finalize-CyfJOd_0.js → onboarding.finalize-CetxPTxL.js} +5 -5
- package/dist/{onboarding.finalize-BJD7ST55.js → onboarding.finalize-D8035U2E.js} +6 -6
- package/dist/{pi-embedded-Du1crlEA.js → pi-embedded-BY-dBus2.js} +216 -171
- package/dist/{pi-embedded-Dbwt0RDE.js → pi-embedded-Dc3muKtS.js} +216 -171
- package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-B2z46qeM.js} +4 -4
- package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
- package/dist/{plugin-registry-B3_VvP9Z.js → plugin-registry-CuoX8mar.js} +1 -1
- package/dist/{plugin-registry-BHTWmVtf.js → plugin-registry-fxcvycGr.js} +1 -1
- package/dist/plugin-sdk/{channel-web-pXiGDTMm.js → channel-web-CV1KLtZh.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-ClH0tnJf.js → reply-C4mijdMZ.js} +202 -157
- package/dist/plugin-sdk/{web-D-2D6z4H.js → web-B17UUsjm.js} +2 -2
- package/dist/{plugins-cli-CiJ3j55S.js → plugins-cli-4OqSGHp-.js} +2 -2
- package/dist/{plugins-cli-Dm1uy7by.js → plugins-cli-BbE_Qnlk.js} +2 -2
- package/dist/{program-CH2ZAXFK.js → program-DkXOdfM2.js} +7 -7
- package/dist/{program-context-BHdXKRCG.js → program-context-0bDxGpMx.js} +17 -17
- package/dist/{prompt-select-styled-D8-TYiCU.js → prompt-select-styled-DJkRn30j.js} +4 -4
- package/dist/{prompt-select-styled-YbkZmrxn.js → prompt-select-styled-_6KbTFXs.js} +4 -4
- package/dist/{provider-auth-helpers-BvwbMhtC.js → provider-auth-helpers-Bnkj4QXS.js} +1 -1
- package/dist/{provider-auth-helpers-BXnJRRuA.js → provider-auth-helpers-BpVAdwK_.js} +1 -1
- package/dist/{push-apns-CtNHq-T0.js → push-apns-C0wMP1XU.js} +1 -1
- package/dist/{push-apns-BKDV4tcx.js → push-apns-EKnCwrqK.js} +1 -1
- package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
- package/dist/{pw-ai-DhwRiS06.js → pw-ai-PiQUncix.js} +1 -1
- package/dist/{register.agent-BUq96Y9v.js → register.agent-B0S1CJEx.js} +5 -5
- package/dist/{register.agent-BKI5-fHH.js → register.agent-B48Vf_DK.js} +6 -6
- package/dist/{register.configure-D5lE614j.js → register.configure-Drr3E9OG.js} +6 -6
- package/dist/{register.configure-wxLUAVNm.js → register.configure-Wyv7vb24.js} +6 -6
- package/dist/{register.maintenance-C7McOGSl.js → register.maintenance-Cmf17EW0.js} +7 -7
- package/dist/{register.maintenance-CBkeGPZ5.js → register.maintenance-TgjAQ4E0.js} +8 -8
- package/dist/{register.message-COdTYFse.js → register.message-BcsPnPvW.js} +2 -2
- package/dist/{register.message-CI-7hMop.js → register.message-Dwv2puIB.js} +2 -2
- package/dist/{register.onboard-BB0BR6ER.js → register.onboard-BDGaSyq2.js} +4 -4
- package/dist/{register.onboard-Cvq4D9PO.js → register.onboard-C8w7_w93.js} +4 -4
- package/dist/{register.setup-BFsDqWth.js → register.setup-CMGSNKXS.js} +4 -4
- package/dist/{register.setup-BYdcj7kG.js → register.setup-CiEuZOlI.js} +4 -4
- package/dist/{register.status-health-sessions-Z5xGFCb6.js → register.status-health-sessions-C8p0uINc.js} +3 -3
- package/dist/{register.status-health-sessions-CLTBPceP.js → register.status-health-sessions-zKjmZyOs.js} +3 -3
- package/dist/{register.subclis-DbjFcioS.js → register.subclis-CofZE_pt.js} +9 -9
- package/dist/{reply-Dlka9TPn.js → reply-SBi_U7P7.js} +202 -157
- package/dist/{run-main-CZKS1Km-.js → run-main-BJaDO3WW.js} +14 -14
- package/dist/{runner-B_KP4voe.js → runner-CCSMfQee.js} +1 -1
- package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
- package/dist/{server-methods-Dl2xnUeP.js → server-methods-Cm6W01ne.js} +7 -7
- package/dist/{server-methods-060ibtki.js → server-methods-CyFB3XQf.js} +7 -7
- package/dist/{server-node-events-BaVEbs-L.js → server-node-events-Bhgt3xLw.js} +2 -2
- package/dist/{server-node-events-CxdmKBmm.js → server-node-events-CX1plxJz.js} +2 -2
- package/dist/{status-B161_hoB.js → status-BBpD_1pG.js} +2 -2
- package/dist/{status-DFFFYwyN.js → status-BdmYV3_x.js} +1 -1
- package/dist/{status-DqWKFOGN.js → status-CwXg8OO1.js} +2 -2
- package/dist/{status-V0eZ4bzN.js → status-U_1mE-yc.js} +1 -1
- package/dist/{subagent-registry-DLH72QgE.js → subagent-registry-Du9P0G2U.js} +202 -157
- package/dist/{update-cli-BHNHad5c.js → update-cli-DJzF_9UX.js} +7 -7
- package/dist/{update-cli-t1GIk6uw.js → update-cli-_45TJ3hZ.js} +8 -8
- package/dist/{update-runner-Ciq1c0YL.js → update-runner-8Ac4bJ1w.js} +1 -1
- package/dist/{update-runner-CDG0-jLB.js → update-runner-BSQFv9b6.js} +1 -1
- package/dist/{web-CWhHll12.js → web-BZSI7b07.js} +2 -2
- package/dist/{web-B_JQgMeX.js → web-BqRsq6mP.js} +6 -6
- package/dist/{web-BkvYOXO1.js → web-C1Zn8_qW.js} +6 -6
- package/dist/{web-FaXjM6fP.js → web-w-vV1rCZ.js} +1 -1
- package/package.json +1 -1
|
@@ -22374,7 +22374,7 @@ async function runWithImageModelFallback(params) {
|
|
|
22374
22374
|
function createDefaultDeps() {
|
|
22375
22375
|
return {
|
|
22376
22376
|
sendMessageWhatsApp: async (...args) => {
|
|
22377
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
22377
|
+
const { sendMessageWhatsApp } = await import("./web-BZSI7b07.js");
|
|
22378
22378
|
return await sendMessageWhatsApp(...args);
|
|
22379
22379
|
},
|
|
22380
22380
|
sendMessageTelegram: async (...args) => {
|
|
@@ -40937,7 +40937,7 @@ function loadWebLoginQr() {
|
|
|
40937
40937
|
return webLoginQrPromise;
|
|
40938
40938
|
}
|
|
40939
40939
|
function loadWebChannel() {
|
|
40940
|
-
webChannelPromise ??= import("./web-
|
|
40940
|
+
webChannelPromise ??= import("./web-BZSI7b07.js");
|
|
40941
40941
|
return webChannelPromise;
|
|
40942
40942
|
}
|
|
40943
40943
|
function loadWhatsAppActions() {
|
|
@@ -59029,6 +59029,162 @@ async function compactEmbeddedPiSession(params) {
|
|
|
59029
59029
|
return enqueueCommandInLane(sessionLane, () => enqueueGlobal(async () => compactEmbeddedPiSessionDirect(params)));
|
|
59030
59030
|
}
|
|
59031
59031
|
|
|
59032
|
+
//#endregion
|
|
59033
|
+
//#region src/config/model-profiles-builtin.ts
|
|
59034
|
+
/**
|
|
59035
|
+
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
59036
|
+
* that `resolveModelProfile` can return the first match.
|
|
59037
|
+
*
|
|
59038
|
+
* Order matters: "ollama/" must precede "gemma" because model IDs like
|
|
59039
|
+
* "ollama/gemma4:31b-128k" contain both substrings.
|
|
59040
|
+
*/
|
|
59041
|
+
const BUILTIN_PROFILES = [
|
|
59042
|
+
{
|
|
59043
|
+
match: ["ollama/"],
|
|
59044
|
+
label: "Ollama Local",
|
|
59045
|
+
params: {
|
|
59046
|
+
temperature: 1,
|
|
59047
|
+
top_p: .95,
|
|
59048
|
+
top_k: 64,
|
|
59049
|
+
max_tokens: 4096,
|
|
59050
|
+
stop: ["<end_of_turn>", "<eos>"]
|
|
59051
|
+
},
|
|
59052
|
+
streaming: {
|
|
59053
|
+
deltaThrottleMs: 50,
|
|
59054
|
+
flushOnFinal: true,
|
|
59055
|
+
chunkPattern: "burst"
|
|
59056
|
+
},
|
|
59057
|
+
filters: {
|
|
59058
|
+
stripPatterns: [
|
|
59059
|
+
"<\\|channel>\\w*",
|
|
59060
|
+
"<channel\\|>",
|
|
59061
|
+
"<start_of_turn>(?:model|user)?",
|
|
59062
|
+
"<end_of_turn>"
|
|
59063
|
+
],
|
|
59064
|
+
suppressMonologue: true,
|
|
59065
|
+
hasStructuredThinking: false
|
|
59066
|
+
},
|
|
59067
|
+
promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
|
|
59068
|
+
ui: {
|
|
59069
|
+
badge: "Local",
|
|
59070
|
+
watchdogMs: 9e5,
|
|
59071
|
+
armWatchdogOnSend: true
|
|
59072
|
+
}
|
|
59073
|
+
},
|
|
59074
|
+
{
|
|
59075
|
+
match: ["anthropic/", "claude-"],
|
|
59076
|
+
label: "Claude",
|
|
59077
|
+
params: {
|
|
59078
|
+
temperature: 1,
|
|
59079
|
+
top_p: 1,
|
|
59080
|
+
max_tokens: 8192
|
|
59081
|
+
},
|
|
59082
|
+
streaming: {
|
|
59083
|
+
deltaThrottleMs: 150,
|
|
59084
|
+
flushOnFinal: false,
|
|
59085
|
+
chunkPattern: "token"
|
|
59086
|
+
},
|
|
59087
|
+
filters: {
|
|
59088
|
+
stripPatterns: [],
|
|
59089
|
+
suppressMonologue: false,
|
|
59090
|
+
hasStructuredThinking: true
|
|
59091
|
+
},
|
|
59092
|
+
promptAdditions: [],
|
|
59093
|
+
ui: {
|
|
59094
|
+
badge: "API",
|
|
59095
|
+
watchdogMs: 3e5,
|
|
59096
|
+
armWatchdogOnSend: false
|
|
59097
|
+
}
|
|
59098
|
+
},
|
|
59099
|
+
{
|
|
59100
|
+
match: ["gemma", "redsand/"],
|
|
59101
|
+
label: "Gemma 4",
|
|
59102
|
+
params: {
|
|
59103
|
+
temperature: 1,
|
|
59104
|
+
top_p: .95,
|
|
59105
|
+
top_k: 64,
|
|
59106
|
+
max_tokens: 4096,
|
|
59107
|
+
stop: ["<end_of_turn>", "<eos>"]
|
|
59108
|
+
},
|
|
59109
|
+
streaming: {
|
|
59110
|
+
deltaThrottleMs: 50,
|
|
59111
|
+
flushOnFinal: true,
|
|
59112
|
+
chunkPattern: "burst"
|
|
59113
|
+
},
|
|
59114
|
+
filters: {
|
|
59115
|
+
stripPatterns: [
|
|
59116
|
+
"<\\|channel>\\w*",
|
|
59117
|
+
"<channel\\|>",
|
|
59118
|
+
"<start_of_turn>(?:model|user)?",
|
|
59119
|
+
"<end_of_turn>",
|
|
59120
|
+
"<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
|
|
59121
|
+
"^\\s*<bos>\\s*"
|
|
59122
|
+
],
|
|
59123
|
+
suppressMonologue: true,
|
|
59124
|
+
hasStructuredThinking: false
|
|
59125
|
+
},
|
|
59126
|
+
promptAdditions: [
|
|
59127
|
+
"You are running as Gemma 4 via vLLM. Important behavioral rules:",
|
|
59128
|
+
"- Never output raw control tokens, channel tags, or turn markers in your responses.",
|
|
59129
|
+
"- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
|
|
59130
|
+
"- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
|
|
59131
|
+
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
59132
|
+
"- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
|
|
59133
|
+
],
|
|
59134
|
+
ui: {
|
|
59135
|
+
badge: "CoreWeave",
|
|
59136
|
+
watchdogMs: 6e5,
|
|
59137
|
+
armWatchdogOnSend: true
|
|
59138
|
+
}
|
|
59139
|
+
}
|
|
59140
|
+
];
|
|
59141
|
+
|
|
59142
|
+
//#endregion
|
|
59143
|
+
//#region src/config/resolve-model-profile.ts
|
|
59144
|
+
/** Default profile returned when no match is found. */
|
|
59145
|
+
const FALLBACK_PROFILE = {
|
|
59146
|
+
match: "*",
|
|
59147
|
+
label: "Generic",
|
|
59148
|
+
params: {
|
|
59149
|
+
temperature: 1,
|
|
59150
|
+
max_tokens: 4096
|
|
59151
|
+
},
|
|
59152
|
+
streaming: {
|
|
59153
|
+
deltaThrottleMs: 150,
|
|
59154
|
+
flushOnFinal: true,
|
|
59155
|
+
chunkPattern: "burst"
|
|
59156
|
+
},
|
|
59157
|
+
filters: {
|
|
59158
|
+
stripPatterns: [],
|
|
59159
|
+
suppressMonologue: false,
|
|
59160
|
+
hasStructuredThinking: false
|
|
59161
|
+
},
|
|
59162
|
+
promptAdditions: [],
|
|
59163
|
+
ui: {
|
|
59164
|
+
watchdogMs: 3e5,
|
|
59165
|
+
armWatchdogOnSend: true
|
|
59166
|
+
}
|
|
59167
|
+
};
|
|
59168
|
+
/**
|
|
59169
|
+
* Resolve the active model profile for a given model ID.
|
|
59170
|
+
*
|
|
59171
|
+
* Resolution order:
|
|
59172
|
+
* 1. User-defined profiles (from `models.profiles` in symi.json)
|
|
59173
|
+
* 2. Built-in profiles ({@link BUILTIN_PROFILES})
|
|
59174
|
+
* 3. Fallback "Generic" profile
|
|
59175
|
+
*
|
|
59176
|
+
* Matching is case-insensitive prefix/substring against the model ID.
|
|
59177
|
+
*/
|
|
59178
|
+
function resolveModelProfile(modelId, userProfiles) {
|
|
59179
|
+
const id = modelId.toLowerCase();
|
|
59180
|
+
const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
|
|
59181
|
+
for (const profile of allProfiles) {
|
|
59182
|
+
const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
|
|
59183
|
+
for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
|
|
59184
|
+
}
|
|
59185
|
+
return FALLBACK_PROFILE;
|
|
59186
|
+
}
|
|
59187
|
+
|
|
59032
59188
|
//#endregion
|
|
59033
59189
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
59034
59190
|
const OPENROUTER_APP_HEADERS = {
|
|
@@ -59048,7 +59204,9 @@ const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]);
|
|
|
59048
59204
|
function resolveExtraParams(params) {
|
|
59049
59205
|
const modelKey = `${params.provider}/${params.modelId}`;
|
|
59050
59206
|
const modelConfig = params.cfg?.agents?.defaults?.models?.[modelKey];
|
|
59051
|
-
|
|
59207
|
+
if (modelConfig?.params) return { ...modelConfig.params };
|
|
59208
|
+
const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
|
|
59209
|
+
if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
|
|
59052
59210
|
}
|
|
59053
59211
|
/**
|
|
59054
59212
|
* Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
|
|
@@ -59078,6 +59236,7 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
59078
59236
|
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
59079
59237
|
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
59080
59238
|
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
59239
|
+
if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
|
|
59081
59240
|
if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
|
|
59082
59241
|
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
59083
59242
|
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
@@ -59206,6 +59365,42 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
59206
59365
|
});
|
|
59207
59366
|
};
|
|
59208
59367
|
}
|
|
59368
|
+
const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
|
|
59369
|
+
const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
|
|
59370
|
+
function isVllmOrGemmaProvider(provider, modelId, cfg) {
|
|
59371
|
+
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
59372
|
+
if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
|
|
59373
|
+
const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
59374
|
+
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
59375
|
+
}
|
|
59376
|
+
/**
|
|
59377
|
+
* Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
|
|
59378
|
+
* 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
|
|
59379
|
+
* 2. Inject Gemma stop sequences if none are set
|
|
59380
|
+
* 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
|
|
59381
|
+
*/
|
|
59382
|
+
function createVllmCompatWrapper(baseStreamFn, extraParams) {
|
|
59383
|
+
const underlying = baseStreamFn ?? streamSimple;
|
|
59384
|
+
const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
|
|
59385
|
+
return (model, context, options) => {
|
|
59386
|
+
const originalOnPayload = options?.onPayload;
|
|
59387
|
+
return underlying(model, context, {
|
|
59388
|
+
...options,
|
|
59389
|
+
onPayload: (payload) => {
|
|
59390
|
+
if (payload && typeof payload === "object") {
|
|
59391
|
+
const p = payload;
|
|
59392
|
+
if (p.max_completion_tokens && !p.max_tokens) {
|
|
59393
|
+
p.max_tokens = p.max_completion_tokens;
|
|
59394
|
+
delete p.max_completion_tokens;
|
|
59395
|
+
}
|
|
59396
|
+
if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
|
|
59397
|
+
delete p.store;
|
|
59398
|
+
}
|
|
59399
|
+
originalOnPayload?.(payload);
|
|
59400
|
+
}
|
|
59401
|
+
});
|
|
59402
|
+
};
|
|
59403
|
+
}
|
|
59209
59404
|
/**
|
|
59210
59405
|
* Apply extra params (like temperature) to an agent's streamFn.
|
|
59211
59406
|
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
@@ -59240,161 +59435,11 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
59240
59435
|
agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
|
|
59241
59436
|
}
|
|
59242
59437
|
}
|
|
59243
|
-
|
|
59244
|
-
}
|
|
59245
|
-
|
|
59246
|
-
//#endregion
|
|
59247
|
-
//#region src/config/model-profiles-builtin.ts
|
|
59248
|
-
/**
|
|
59249
|
-
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
59250
|
-
* that `resolveModelProfile` can return the first match.
|
|
59251
|
-
*
|
|
59252
|
-
* Order matters: "ollama/" must precede "gemma" because model IDs like
|
|
59253
|
-
* "ollama/gemma4:31b-128k" contain both substrings.
|
|
59254
|
-
*/
|
|
59255
|
-
const BUILTIN_PROFILES = [
|
|
59256
|
-
{
|
|
59257
|
-
match: ["ollama/"],
|
|
59258
|
-
label: "Ollama Local",
|
|
59259
|
-
params: {
|
|
59260
|
-
temperature: 1,
|
|
59261
|
-
top_p: .95,
|
|
59262
|
-
top_k: 64,
|
|
59263
|
-
max_tokens: 4096
|
|
59264
|
-
},
|
|
59265
|
-
streaming: {
|
|
59266
|
-
deltaThrottleMs: 50,
|
|
59267
|
-
flushOnFinal: true,
|
|
59268
|
-
chunkPattern: "burst"
|
|
59269
|
-
},
|
|
59270
|
-
filters: {
|
|
59271
|
-
stripPatterns: [
|
|
59272
|
-
"<\\|channel>\\w*",
|
|
59273
|
-
"<channel\\|>",
|
|
59274
|
-
"<start_of_turn>(?:model|user)?",
|
|
59275
|
-
"<end_of_turn>"
|
|
59276
|
-
],
|
|
59277
|
-
suppressMonologue: true,
|
|
59278
|
-
hasStructuredThinking: false
|
|
59279
|
-
},
|
|
59280
|
-
promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
|
|
59281
|
-
ui: {
|
|
59282
|
-
badge: "Local",
|
|
59283
|
-
watchdogMs: 9e5,
|
|
59284
|
-
armWatchdogOnSend: true
|
|
59285
|
-
}
|
|
59286
|
-
},
|
|
59287
|
-
{
|
|
59288
|
-
match: ["anthropic/", "claude-"],
|
|
59289
|
-
label: "Claude",
|
|
59290
|
-
params: {
|
|
59291
|
-
temperature: 1,
|
|
59292
|
-
top_p: 1,
|
|
59293
|
-
max_tokens: 8192
|
|
59294
|
-
},
|
|
59295
|
-
streaming: {
|
|
59296
|
-
deltaThrottleMs: 150,
|
|
59297
|
-
flushOnFinal: false,
|
|
59298
|
-
chunkPattern: "token"
|
|
59299
|
-
},
|
|
59300
|
-
filters: {
|
|
59301
|
-
stripPatterns: [],
|
|
59302
|
-
suppressMonologue: false,
|
|
59303
|
-
hasStructuredThinking: true
|
|
59304
|
-
},
|
|
59305
|
-
promptAdditions: [],
|
|
59306
|
-
ui: {
|
|
59307
|
-
badge: "API",
|
|
59308
|
-
watchdogMs: 3e5,
|
|
59309
|
-
armWatchdogOnSend: false
|
|
59310
|
-
}
|
|
59311
|
-
},
|
|
59312
|
-
{
|
|
59313
|
-
match: ["gemma", "redsand/"],
|
|
59314
|
-
label: "Gemma 4",
|
|
59315
|
-
params: {
|
|
59316
|
-
temperature: 1,
|
|
59317
|
-
top_p: .95,
|
|
59318
|
-
top_k: 64,
|
|
59319
|
-
max_tokens: 8192
|
|
59320
|
-
},
|
|
59321
|
-
streaming: {
|
|
59322
|
-
deltaThrottleMs: 50,
|
|
59323
|
-
flushOnFinal: true,
|
|
59324
|
-
chunkPattern: "burst"
|
|
59325
|
-
},
|
|
59326
|
-
filters: {
|
|
59327
|
-
stripPatterns: [
|
|
59328
|
-
"<\\|channel>\\w*",
|
|
59329
|
-
"<channel\\|>",
|
|
59330
|
-
"<start_of_turn>(?:model|user)?",
|
|
59331
|
-
"<end_of_turn>",
|
|
59332
|
-
"<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
|
|
59333
|
-
"^\\s*<bos>\\s*"
|
|
59334
|
-
],
|
|
59335
|
-
suppressMonologue: true,
|
|
59336
|
-
hasStructuredThinking: false
|
|
59337
|
-
},
|
|
59338
|
-
promptAdditions: [
|
|
59339
|
-
"You are running as Gemma 4 via vLLM. Important behavioral rules:",
|
|
59340
|
-
"- Never output raw control tokens, channel tags, or turn markers in your responses.",
|
|
59341
|
-
"- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
|
|
59342
|
-
"- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
|
|
59343
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
59344
|
-
"- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
|
|
59345
|
-
],
|
|
59346
|
-
ui: {
|
|
59347
|
-
badge: "CoreWeave",
|
|
59348
|
-
watchdogMs: 6e5,
|
|
59349
|
-
armWatchdogOnSend: true
|
|
59350
|
-
}
|
|
59351
|
-
}
|
|
59352
|
-
];
|
|
59353
|
-
|
|
59354
|
-
//#endregion
|
|
59355
|
-
//#region src/config/resolve-model-profile.ts
|
|
59356
|
-
/** Default profile returned when no match is found. */
|
|
59357
|
-
const FALLBACK_PROFILE = {
|
|
59358
|
-
match: "*",
|
|
59359
|
-
label: "Generic",
|
|
59360
|
-
params: {
|
|
59361
|
-
temperature: 1,
|
|
59362
|
-
max_tokens: 4096
|
|
59363
|
-
},
|
|
59364
|
-
streaming: {
|
|
59365
|
-
deltaThrottleMs: 150,
|
|
59366
|
-
flushOnFinal: true,
|
|
59367
|
-
chunkPattern: "burst"
|
|
59368
|
-
},
|
|
59369
|
-
filters: {
|
|
59370
|
-
stripPatterns: [],
|
|
59371
|
-
suppressMonologue: false,
|
|
59372
|
-
hasStructuredThinking: false
|
|
59373
|
-
},
|
|
59374
|
-
promptAdditions: [],
|
|
59375
|
-
ui: {
|
|
59376
|
-
watchdogMs: 3e5,
|
|
59377
|
-
armWatchdogOnSend: true
|
|
59438
|
+
if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
|
|
59439
|
+
log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
|
|
59440
|
+
agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
|
|
59378
59441
|
}
|
|
59379
|
-
|
|
59380
|
-
/**
|
|
59381
|
-
* Resolve the active model profile for a given model ID.
|
|
59382
|
-
*
|
|
59383
|
-
* Resolution order:
|
|
59384
|
-
* 1. User-defined profiles (from `models.profiles` in symi.json)
|
|
59385
|
-
* 2. Built-in profiles ({@link BUILTIN_PROFILES})
|
|
59386
|
-
* 3. Fallback "Generic" profile
|
|
59387
|
-
*
|
|
59388
|
-
* Matching is case-insensitive prefix/substring against the model ID.
|
|
59389
|
-
*/
|
|
59390
|
-
function resolveModelProfile(modelId, userProfiles) {
|
|
59391
|
-
const id = modelId.toLowerCase();
|
|
59392
|
-
const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
|
|
59393
|
-
for (const profile of allProfiles) {
|
|
59394
|
-
const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
|
|
59395
|
-
for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
|
|
59396
|
-
}
|
|
59397
|
-
return FALLBACK_PROFILE;
|
|
59442
|
+
agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
|
|
59398
59443
|
}
|
|
59399
59444
|
|
|
59400
59445
|
//#endregion
|
|
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
|
|
|
13
13
|
import "./call-BcE47FtD.js";
|
|
14
14
|
import "./message-channel-C9dERklz.js";
|
|
15
15
|
import "./pairing-token-Byh6drgn.js";
|
|
16
|
-
import "./subagent-registry-
|
|
16
|
+
import "./subagent-registry-Du9P0G2U.js";
|
|
17
17
|
import "./sessions-CJXnZVjR.js";
|
|
18
18
|
import "./tokens-Csntmwwn.js";
|
|
19
19
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -101,9 +101,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
|
|
|
101
101
|
import "./catalog-DLQFKucJ.js";
|
|
102
102
|
import "./note-DDecZomM.js";
|
|
103
103
|
import "./plugin-auto-enable-D6ENR3Xg.js";
|
|
104
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
104
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CuoX8mar.js";
|
|
105
105
|
import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
|
|
106
|
-
import { t as emitCliBanner } from "./banner-
|
|
106
|
+
import { t as emitCliBanner } from "./banner-BoLflN_R.js";
|
|
107
107
|
import "./doctor-config-flow-CA3eiKhd.js";
|
|
108
108
|
import { n as ensureConfigReady } from "./config-guard-CPHvOzsC.js";
|
|
109
109
|
import process$1 from "node:process";
|
|
@@ -118,7 +118,7 @@ const routeHealth = {
|
|
|
118
118
|
const verbose = getVerboseFlag(argv, { includeDebug: true });
|
|
119
119
|
const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
|
|
120
120
|
if (timeoutMs === null) return false;
|
|
121
|
-
const { healthCommand } = await import("./health-
|
|
121
|
+
const { healthCommand } = await import("./health-D9eQW7fJ.js").then((n) => n.i);
|
|
122
122
|
await healthCommand({
|
|
123
123
|
json,
|
|
124
124
|
timeoutMs,
|
|
@@ -138,7 +138,7 @@ const routeStatus = {
|
|
|
138
138
|
const verbose = getVerboseFlag(argv, { includeDebug: true });
|
|
139
139
|
const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
|
|
140
140
|
if (timeoutMs === null) return false;
|
|
141
|
-
const { statusCommand } = await import("./status-
|
|
141
|
+
const { statusCommand } = await import("./status-BBpD_1pG.js").then((n) => n.t);
|
|
142
142
|
await statusCommand({
|
|
143
143
|
json,
|
|
144
144
|
deep,
|
|
@@ -172,7 +172,7 @@ const routeAgentsList = {
|
|
|
172
172
|
run: async (argv) => {
|
|
173
173
|
const json = hasFlag(argv, "--json");
|
|
174
174
|
const bindings = hasFlag(argv, "--bindings");
|
|
175
|
-
const { agentsListCommand } = await import("./agents-
|
|
175
|
+
const { agentsListCommand } = await import("./agents-DzuttgJU.js").then((n) => n.t);
|
|
176
176
|
await agentsListCommand({
|
|
177
177
|
json,
|
|
178
178
|
bindings
|
|
@@ -243,7 +243,7 @@ const routes = [
|
|
|
243
243
|
const pathArg = getCommandPositionals(argv)[2];
|
|
244
244
|
if (!pathArg) return false;
|
|
245
245
|
const json = hasFlag(argv, "--json");
|
|
246
|
-
const { runConfigGet } = await import("./config-cli-
|
|
246
|
+
const { runConfigGet } = await import("./config-cli-DAbXVRUL.js");
|
|
247
247
|
await runConfigGet({
|
|
248
248
|
path: pathArg,
|
|
249
249
|
json
|
|
@@ -256,7 +256,7 @@ const routes = [
|
|
|
256
256
|
run: async (argv) => {
|
|
257
257
|
const pathArg = getCommandPositionals(argv)[2];
|
|
258
258
|
if (!pathArg) return false;
|
|
259
|
-
const { runConfigUnset } = await import("./config-cli-
|
|
259
|
+
const { runConfigUnset } = await import("./config-cli-DAbXVRUL.js");
|
|
260
260
|
await runConfigUnset({ path: pathArg });
|
|
261
261
|
return true;
|
|
262
262
|
}
|
|
@@ -270,7 +270,7 @@ const routes = [
|
|
|
270
270
|
const local = hasFlag(argv, "--local");
|
|
271
271
|
const json = hasFlag(argv, "--json");
|
|
272
272
|
const plain = hasFlag(argv, "--plain");
|
|
273
|
-
const { modelsListCommand } = await import("./models-
|
|
273
|
+
const { modelsListCommand } = await import("./models-nO_t1uzp.js").then((n) => n.t);
|
|
274
274
|
await modelsListCommand({
|
|
275
275
|
all,
|
|
276
276
|
local,
|
|
@@ -301,7 +301,7 @@ const routes = [
|
|
|
301
301
|
const plain = hasFlag(argv, "--plain");
|
|
302
302
|
const check = hasFlag(argv, "--check");
|
|
303
303
|
const probe = hasFlag(argv, "--probe");
|
|
304
|
-
const { modelsStatusCommand } = await import("./models-
|
|
304
|
+
const { modelsStatusCommand } = await import("./models-nO_t1uzp.js").then((n) => n.t);
|
|
305
305
|
await modelsStatusCommand({
|
|
306
306
|
json,
|
|
307
307
|
plain,
|
|
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
379
379
|
assertSupportedRuntime();
|
|
380
380
|
if (await tryRouteCli(normalizedArgv)) return;
|
|
381
381
|
enableConsoleCapture();
|
|
382
|
-
const { buildProgram } = await import("./program-
|
|
382
|
+
const { buildProgram } = await import("./program-DkXOdfM2.js");
|
|
383
383
|
const program = buildProgram();
|
|
384
384
|
installUnhandledRejectionHandler();
|
|
385
385
|
process$1.on("uncaughtException", (error) => {
|
|
@@ -411,10 +411,10 @@ async function runCli(argv = process$1.argv) {
|
|
|
411
411
|
const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
|
|
412
412
|
const ctx = getProgramContext(program);
|
|
413
413
|
if (ctx) {
|
|
414
|
-
const { registerCoreCliByName } = await import("./command-registry-
|
|
414
|
+
const { registerCoreCliByName } = await import("./command-registry-Ba2z3dYq.js").then((n) => n.t);
|
|
415
415
|
await registerCoreCliByName(program, ctx, primary, parseArgv);
|
|
416
416
|
}
|
|
417
|
-
const { registerSubCliByName } = await import("./register.subclis-
|
|
417
|
+
const { registerSubCliByName } = await import("./register.subclis-CofZE_pt.js").then((n) => n.a);
|
|
418
418
|
await registerSubCliByName(program, primary);
|
|
419
419
|
}
|
|
420
420
|
const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
|
|
@@ -423,7 +423,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
423
423
|
primary,
|
|
424
424
|
hasBuiltinPrimary
|
|
425
425
|
})) {
|
|
426
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
426
|
+
const { registerPluginCliCommands } = await import("./cli-CEtg8kql.js");
|
|
427
427
|
const { loadConfig } = await import("./config-DHBLS1Hl.js").then((n) => n.t);
|
|
428
428
|
registerPluginCliCommands(program, loadConfig());
|
|
429
429
|
}
|
|
@@ -4,7 +4,7 @@ import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
|
4
4
|
import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-S8-8dAhx.js";
|
|
5
5
|
import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveSymiAgentDir } from "./model-auth-CwOuTuXl.js";
|
|
6
6
|
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-eEaJddXj.js";
|
|
7
|
-
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-
|
|
7
|
+
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-rZ4x9VS9.js";
|
|
8
8
|
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CF48hUR9.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
|
|
10
10
|
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-C7OCYACU.js";
|
|
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
|
|
|
4
4
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
5
5
|
import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
|
|
6
6
|
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BmV60pPT.js";
|
|
7
|
-
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-
|
|
7
|
+
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CHzdaNJ4.js";
|
|
8
8
|
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CSlZZ1Pw.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
|
|
10
10
|
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
|
|
4
|
-
import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as normalizeSendPolicy, C as loadSessionEntry, E as resolveSessionModelRef, Gn as resolveTtsApiKey, H as formatDoctorNonInteractiveHint, Hn as getTtsProvider, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, Lt as resolveOutboundTarget, Mn as listSubagentRunsForRequester, Nt as resolveAgentDeliveryPlan, O as ensureOutboundSessionEntry, Pr as resolveAgentTimeoutMs, Pt as resolveAgentOutboundTarget, Qn as textToSpeech, R as scheduleGatewaySigusr1Restart, S as loadCombinedSessionStoreForGateway, Sr as isSystemEventContextChanged, T as resolveGatewaySessionStoreTarget, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Ut as createOutboundSendDeps, Vn as resolveUserTimezone, Vt as resolveSendPolicy, Wn as isTtsProviderConfigured, X as normalizeCronJobPatch, Xn as setTtsEnabled, Y as normalizeCronJobCreate, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _t as loadSymiPlugins, b as listAgentsForGateway, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, f as waitForEmbeddedPiRunEnd, in as unbindThreadBindingsBySessionKey, jn as listDescendantRunsForRequester, jt as agentCommand, k as resolveOutboundSessionRoute, lt as applyBrowserProxyPaths, mn as createReplyDispatcher, n as BARE_SESSION_RESET_PROMPT, pn as dispatchInboundMessage, q as writeRestartSentinel, qn as resolveTtsConfig, u as abortEmbeddedPiRun, ut as persistBrowserProxyFiles, v as canonicalizeSpawnedByForAgent, vr as applyModelOverrideToSessionEntry, w as pruneLegacyStoreKeys, wn as isAbortTrigger, x as listSessionsFromStore, xn as formatZonedTimestamp, xr as enqueueSystemEvent, xt as loadProviderUsageSummary, yr as applyVerboseOverride, yt as normalizeGroupActivation, zn as onAgentEvent } from "./reply-
|
|
4
|
+
import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as normalizeSendPolicy, C as loadSessionEntry, E as resolveSessionModelRef, Gn as resolveTtsApiKey, H as formatDoctorNonInteractiveHint, Hn as getTtsProvider, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, Lt as resolveOutboundTarget, Mn as listSubagentRunsForRequester, Nt as resolveAgentDeliveryPlan, O as ensureOutboundSessionEntry, Pr as resolveAgentTimeoutMs, Pt as resolveAgentOutboundTarget, Qn as textToSpeech, R as scheduleGatewaySigusr1Restart, S as loadCombinedSessionStoreForGateway, Sr as isSystemEventContextChanged, T as resolveGatewaySessionStoreTarget, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Ut as createOutboundSendDeps, Vn as resolveUserTimezone, Vt as resolveSendPolicy, Wn as isTtsProviderConfigured, X as normalizeCronJobPatch, Xn as setTtsEnabled, Y as normalizeCronJobCreate, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _t as loadSymiPlugins, b as listAgentsForGateway, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, f as waitForEmbeddedPiRunEnd, in as unbindThreadBindingsBySessionKey, jn as listDescendantRunsForRequester, jt as agentCommand, k as resolveOutboundSessionRoute, lt as applyBrowserProxyPaths, mn as createReplyDispatcher, n as BARE_SESSION_RESET_PROMPT, pn as dispatchInboundMessage, q as writeRestartSentinel, qn as resolveTtsConfig, u as abortEmbeddedPiRun, ut as persistBrowserProxyFiles, v as canonicalizeSpawnedByForAgent, vr as applyModelOverrideToSessionEntry, w as pruneLegacyStoreKeys, wn as isAbortTrigger, x as listSessionsFromStore, xn as formatZonedTimestamp, xr as enqueueSystemEvent, xt as loadProviderUsageSummary, yr as applyVerboseOverride, yt as normalizeGroupActivation, zn as onAgentEvent } from "./reply-SBi_U7P7.js";
|
|
5
5
|
import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
|
|
6
6
|
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
7
7
|
import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
|
|
@@ -39,14 +39,14 @@ import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
|
|
|
39
39
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BcGbMZD1.js";
|
|
40
40
|
import { t as buildChannelAccountSnapshot } from "./status-BrV-afZE.js";
|
|
41
41
|
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
|
|
42
|
-
import { n as getStatusSummary } from "./status-
|
|
43
|
-
import { s as setHeartbeatsEnabled } from "./health-
|
|
42
|
+
import { n as getStatusSummary } from "./status-CwXg8OO1.js";
|
|
43
|
+
import { s as setHeartbeatsEnabled } from "./health-f056vLGT.js";
|
|
44
44
|
import { m as normalizeUpdateChannel } from "./update-check-CtckACbb.js";
|
|
45
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
46
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
45
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-EKnCwrqK.js";
|
|
46
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-2HlZJsR3.js";
|
|
47
47
|
import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
|
|
48
48
|
import { t as installSkill } from "./skills-install-D67isO1L.js";
|
|
49
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
49
|
+
import { t as runGatewayUpdate } from "./update-runner-BSQFv9b6.js";
|
|
50
50
|
import * as fs$2 from "node:fs";
|
|
51
51
|
import fs from "node:fs";
|
|
52
52
|
import * as os$1 from "node:os";
|
|
@@ -6853,7 +6853,7 @@ const nodeHandlers = {
|
|
|
6853
6853
|
const p = params;
|
|
6854
6854
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
6855
6855
|
await respondUnavailableOnThrow(respond, async () => {
|
|
6856
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
6856
|
+
const { handleNodeEvent } = await import("./server-node-events-Bhgt3xLw.js");
|
|
6857
6857
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
6858
6858
|
await handleNodeEvent({
|
|
6859
6859
|
deps: context.deps,
|
|
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
|
|
|
12
12
|
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
|
|
13
13
|
import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
|
|
14
14
|
import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
15
|
-
import { $n as resolveTtsAutoMode, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dt as normalizeCronJobPatch, E as agentCommand, Et as normalizeCronJobCreate, G as dispatchInboundMessage, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, K as createReplyDispatcher, M as createOutboundSendDeps, O as resolveAgentDeliveryPlan, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, X as BARE_SESSION_RESET_PROMPT, Xn as isTtsEnabled, Yn as getTtsProvider, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, f as waitForEmbeddedPiRunEnd, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, k as resolveAgentOutboundTarget, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, u as abortEmbeddedPiRun, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, xn as applyVerboseOverride, y as loadSymiPlugins, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-
|
|
15
|
+
import { $n as resolveTtsAutoMode, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dt as normalizeCronJobPatch, E as agentCommand, Et as normalizeCronJobCreate, G as dispatchInboundMessage, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, K as createReplyDispatcher, M as createOutboundSendDeps, O as resolveAgentDeliveryPlan, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, X as BARE_SESSION_RESET_PROMPT, Xn as isTtsEnabled, Yn as getTtsProvider, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, f as waitForEmbeddedPiRunEnd, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, k as resolveAgentOutboundTarget, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, u as abortEmbeddedPiRun, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, xn as applyVerboseOverride, y as loadSymiPlugins, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-Du9P0G2U.js";
|
|
16
16
|
import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-CJXnZVjR.js";
|
|
17
17
|
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
|
|
18
18
|
import { n as createBrowserRouteDispatcher } from "./with-timeout-Di0nddLY.js";
|
|
@@ -37,14 +37,14 @@ import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
|
|
|
37
37
|
import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
|
|
38
38
|
import { t as buildChannelAccountSnapshot } from "./status-BUedPCLb.js";
|
|
39
39
|
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-Byo5jCLN.js";
|
|
40
|
-
import { r as getStatusSummary } from "./status-
|
|
41
|
-
import { c as setHeartbeatsEnabled } from "./health-
|
|
40
|
+
import { r as getStatusSummary } from "./status-BBpD_1pG.js";
|
|
41
|
+
import { c as setHeartbeatsEnabled } from "./health-D9eQW7fJ.js";
|
|
42
42
|
import { m as normalizeUpdateChannel } from "./update-check-ZdimP1aU.js";
|
|
43
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
44
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
43
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-C0wMP1XU.js";
|
|
44
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CSucty2T.js";
|
|
45
45
|
import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
|
|
46
46
|
import { t as installSkill } from "./skills-install-1ZdwGTnh.js";
|
|
47
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
47
|
+
import { t as runGatewayUpdate } from "./update-runner-8Ac4bJ1w.js";
|
|
48
48
|
import { spawnSync } from "node:child_process";
|
|
49
49
|
import * as os$1 from "node:os";
|
|
50
50
|
import os from "node:os";
|
|
@@ -6851,7 +6851,7 @@ const nodeHandlers = {
|
|
|
6851
6851
|
const p = params;
|
|
6852
6852
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
6853
6853
|
await respondUnavailableOnThrow(respond, async () => {
|
|
6854
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
6854
|
+
const { handleNodeEvent } = await import("./server-node-events-CX1plxJz.js");
|
|
6855
6855
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
6856
6856
|
await handleNodeEvent({
|
|
6857
6857
|
deps: context.deps,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./paths-Cqn-zk3M.js";
|
|
2
2
|
import "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import { C as loadSessionEntry, Lt as resolveOutboundTarget, T as resolveGatewaySessionStoreTarget, ft as requestHeartbeatNow, jt as agentCommand, w as pruneLegacyStoreKeys, xr as enqueueSystemEvent, zt as createOutboundSendDeps } from "./reply-
|
|
4
|
+
import { C as loadSessionEntry, Lt as resolveOutboundTarget, T as resolveGatewaySessionStoreTarget, ft as requestHeartbeatNow, jt as agentCommand, w as pruneLegacyStoreKeys, xr as enqueueSystemEvent, zt as createOutboundSendDeps } from "./reply-SBi_U7P7.js";
|
|
5
5
|
import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
|
|
6
6
|
import "./registry-Cja8eT7G.js";
|
|
7
7
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
@@ -102,7 +102,7 @@ import "./pi-tools.policy-CIDBbw6x.js";
|
|
|
102
102
|
import "./control-service-Bz7rxLWq.js";
|
|
103
103
|
import "./stagger-BUClb97_.js";
|
|
104
104
|
import "./channel-selection-DuWs0Aak.js";
|
|
105
|
-
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-
|
|
105
|
+
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-EKnCwrqK.js";
|
|
106
106
|
import { randomUUID } from "node:crypto";
|
|
107
107
|
|
|
108
108
|
//#region src/gateway/server-node-events.ts
|