@symerian/symi 2.3.4 → 2.4.0
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-E_Ere0qU.js → agents-CI3xxYc_.js} +4 -4
- package/dist/{agents.config-Cv_wsBXL.js → agents.config-DCE3RGr9.js} +1 -1
- package/dist/{agents.config-DJTb7Jka.js → agents.config-DTUAM1AG.js} +1 -1
- package/dist/{auth-choice-D8ynWABO.js → auth-choice-DuQwRfJc.js} +1 -1
- package/dist/{auth-choice-B3D_jLQw.js → auth-choice-IiIysHGO.js} +1 -1
- package/dist/{banner-ChYzCy5p.js → banner-xhDZu_ZJ.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BYUiEgev.js → channel-options-D3gGVwBd.js} +1 -1
- package/dist/{channel-options-CMNzHg4p.js → channel-options-Dvxd7eJY.js} +1 -1
- package/dist/{channel-web-C-HLPbLL.js → channel-web-a5tX1YI3.js} +1 -1
- package/dist/{channels-cli-CcCmH-Tp.js → channels-cli-BLUkl5Li.js} +4 -4
- package/dist/{channels-cli-CyhXPEWq.js → channels-cli-C9wBYmDe.js} +4 -4
- package/dist/{cli-Gcuf3NTF.js → cli-CaEE46xi.js} +1 -1
- package/dist/{cli-Cp-NQ7yu.js → cli-Cw45F0yJ.js} +1 -1
- package/dist/{command-registry-Cvr_dlLY.js → command-registry-ea9SD1eA.js} +9 -9
- package/dist/{completion-cli-DaOHSXM3.js → completion-cli-CMJmUQbI.js} +1 -1
- package/dist/{completion-cli-DDlYn0ya.js → completion-cli-DVkiEAEA.js} +2 -2
- package/dist/{config-cli-CmUPAVUz.js → config-cli-B2d28_hb.js} +1 -1
- package/dist/{config-cli-BcuAsDOu.js → config-cli-VIg0PSyq.js} +1 -1
- package/dist/{configure-Ctwt1377.js → configure-C_TVBt76.js} +3 -3
- package/dist/{configure-OxYdT2hU.js → configure-D-3FiJbK.js} +3 -3
- package/dist/{doctor-completion-D7ShsgUp.js → doctor-completion-CJHJYIwQ.js} +1 -1
- package/dist/{doctor-completion-Dw78bQaQ.js → doctor-completion-DeRX6gkI.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +1 -1
- package/dist/{gateway-cli-Bd7u0krH.js → gateway-cli-BDDHBfYP.js} +9 -9
- package/dist/{gateway-cli-D7nxPtEc.js → gateway-cli-DiDJ6Z2d.js} +9 -9
- package/dist/{glass-ui-ws-CzH0ikhI.js → glass-ui-ws-Bj1IuJXt.js} +7 -7
- package/dist/{glass-ui-ws-DBivjzVA.js → glass-ui-ws-rGIAkViC.js} +7 -7
- package/dist/{health-BSOMI4B6.js → health-Bst5HnLF.js} +1 -1
- package/dist/{health-rR61mwm3.js → health-CypF_2ZD.js} +1 -1
- package/dist/{hooks-cli-BbiA-gGi.js → hooks-cli-CDMcqTy4.js} +2 -2
- package/dist/{hooks-cli-dS4fMEKE.js → hooks-cli-CfsqqxPX.js} +2 -2
- package/dist/index.js +6 -6
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{models-DqE1s0YL.js → models-ZEOGlFx7.js} +2 -2
- package/dist/{models-cli-6v9jkDxp.js → models-cli-BM1QyeXr.js} +3 -3
- package/dist/{models-cli-BWC7jYp4.js → models-cli-BwOQhZ_c.js} +2 -2
- package/dist/{onboard-Bxoibs4p.js → onboard-CU-pntZD.js} +2 -2
- package/dist/{onboard-BUEYf2m9.js → onboard-DQ34giB5.js} +2 -2
- package/dist/{onboard-channels-af6Cu6fT.js → onboard-channels-BOBxxhHX.js} +1 -1
- package/dist/{onboard-channels-C3UYzZNC.js → onboard-channels-g5cvwJpx.js} +1 -1
- package/dist/{onboarding-DW-7o6Ln.js → onboarding-CXWUjdM5.js} +3 -3
- package/dist/{onboarding-CDdMZbov.js → onboarding-DWs6tHZ9.js} +3 -3
- package/dist/{onboarding.finalize-29jsMLO2.js → onboarding.finalize-CAYf88mf.js} +6 -6
- package/dist/{onboarding.finalize-BI70KOeI.js → onboarding.finalize-vupGASMK.js} +5 -5
- package/dist/{pi-embedded-PkSwAmVq.js → pi-embedded-CJsSOG2j.js} +103 -168
- package/dist/{pi-embedded-JXvD5-F-.js → pi-embedded-DwbQz0MC.js} +103 -168
- package/dist/{plugin-registry-B7AdPXfF.js → plugin-registry-BDpdOTei.js} +1 -1
- package/dist/{plugin-registry-Reem6P3K.js → plugin-registry-CZeHSx_c.js} +1 -1
- package/dist/plugin-sdk/agents/model-aware-stream.d.ts +41 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/extra-params.d.ts +13 -0
- package/dist/plugin-sdk/{channel-web-CM7A3Y7G.js → channel-web-uUypcT9Q.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-CDloTGFF.js → reply-DTKTuCrn.js} +103 -168
- package/dist/plugin-sdk/{web-CWNoMlnF.js → web-Dh6Youzv.js} +2 -2
- package/dist/{plugins-cli-V8mTTTnD.js → plugins-cli-CCQ3skeQ.js} +2 -2
- package/dist/{plugins-cli-B-6wVg3A.js → plugins-cli-D_RzeRoE.js} +2 -2
- package/dist/{program-DBtlRiFS.js → program-Cl9i8ubQ.js} +7 -7
- package/dist/{program-context-BHPNVgg2.js → program-context-BbmYGW-V.js} +17 -17
- package/dist/{prompt-select-styled-Bh-zAqW1.js → prompt-select-styled-BN0T6GxF.js} +4 -4
- package/dist/{prompt-select-styled-Cup1c9RJ.js → prompt-select-styled-BfuyvChh.js} +4 -4
- package/dist/{provider-auth-helpers-CiuLdUK3.js → provider-auth-helpers-CkmLFHXL.js} +1 -1
- package/dist/{provider-auth-helpers-BNmU48Ez.js → provider-auth-helpers-CuT5EHza.js} +1 -1
- package/dist/{push-apns-8VJkVSdh.js → push-apns-CFkFVwEz.js} +1 -1
- package/dist/{push-apns-9zUNNHgy.js → push-apns-DeJt9kAO.js} +1 -1
- package/dist/{register.agent-BtNmleKV.js → register.agent-BQm4YmZp.js} +6 -6
- package/dist/{register.agent-DnglG42G.js → register.agent-BygseJ7t.js} +5 -5
- package/dist/{register.configure-DfQOfV1W.js → register.configure-C2fhjZze.js} +6 -6
- package/dist/{register.configure-CLW9tdE4.js → register.configure-Cj95vB2U.js} +6 -6
- package/dist/{register.maintenance-BQfMsgo7.js → register.maintenance-CClfXq5e.js} +8 -8
- package/dist/{register.maintenance-jFYcRLEN.js → register.maintenance-K1x3E7OS.js} +7 -7
- package/dist/{register.message-DUsBvFSF.js → register.message-BSr-kUvJ.js} +2 -2
- package/dist/{register.message-BhoZYcqM.js → register.message-CSRzBl-c.js} +2 -2
- package/dist/{register.onboard-BBwhoeoE.js → register.onboard-Bd6wPydW.js} +4 -4
- package/dist/{register.onboard-DQOkpYBY.js → register.onboard-TsU21RR7.js} +4 -4
- package/dist/{register.setup-Ca6khTSz.js → register.setup-C9gu0W5l.js} +4 -4
- package/dist/{register.setup-6jlL3L1h.js → register.setup-DK-zsne2.js} +4 -4
- package/dist/{register.status-health-sessions-DQDXZYI3.js → register.status-health-sessions-DN5Ui3V0.js} +3 -3
- package/dist/{register.status-health-sessions-DsYNMl06.js → register.status-health-sessions-rZsuoqtr.js} +3 -3
- package/dist/{register.subclis-DJf3ihsW.js → register.subclis-DnzHFtLz.js} +9 -9
- package/dist/{reply-DSjeqLEz.js → reply-Ca3slrA3.js} +103 -168
- package/dist/{run-main-B2coomPj.js → run-main-DlHh5iOO.js} +14 -14
- package/dist/{server-methods-QNBQbsvr.js → server-methods-BYOkyf-q.js} +7 -7
- package/dist/{server-methods-DHo5e8Gj.js → server-methods-b_Qod4tt.js} +7 -7
- package/dist/{server-node-events-D_S0NRCQ.js → server-node-events-60nWpTh1.js} +2 -2
- package/dist/{server-node-events-CJOo8WcL.js → server-node-events-oU4Amei7.js} +2 -2
- package/dist/{status-B8yaGk2o.js → status-BXW5l4sd.js} +2 -2
- package/dist/{status-4DaGE8j5.js → status-BxbbINLV.js} +2 -2
- package/dist/{status-D_J6qcC1.js → status-D3-lP2_9.js} +1 -1
- package/dist/{status-kfEtYX22.js → status-kdz9P3tw.js} +1 -1
- package/dist/{subagent-registry-CyW0EDWw.js → subagent-registry-CbTbJKLs.js} +103 -168
- package/dist/{update-cli-DJupxo-f.js → update-cli-B5TI650v.js} +7 -7
- package/dist/{update-cli-C-ZGqknl.js → update-cli-Cy0gdWRf.js} +8 -8
- package/dist/{update-runner-BF5UULe-.js → update-runner-B0NdgPvD.js} +1 -1
- package/dist/{update-runner-AiIhp7fw.js → update-runner-Bacq0oLK.js} +1 -1
- package/dist/{web-6026eRzJ.js → web-D-oCzJTU.js} +1 -1
- package/dist/{web-CryqKXT4.js → web-DWNtg4iV.js} +1 -1
- package/dist/{web-HeObJp6A.js → web-DmED3zDP.js} +2 -2
- package/dist/{web-6vYYN17n.js → web-QVwKg99Q.js} +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-Aware Stream Function — the single wrapper that replaces the
|
|
3
|
+
* 6-layer chain in applyExtraParamsToAgent().
|
|
4
|
+
*
|
|
5
|
+
* Handles ALL provider-specific concerns in ONE onPayload hook:
|
|
6
|
+
* - Injects stop, top_p, top_k, repeat_penalty (ignored by buildParams)
|
|
7
|
+
* - Fixes max_completion_tokens → max_tokens for vLLM
|
|
8
|
+
* - Removes unsupported fields (store) for vLLM
|
|
9
|
+
* - Chains caller's onPayload explicitly (no collision)
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import type { StreamFn } from "@mariozechner/pi-agent-core";
|
|
14
|
+
import type { SymiConfig } from "../config/config.js";
|
|
15
|
+
import type { ModelProfile } from "../config/model-profiles.js";
|
|
16
|
+
export interface ModelAwareStreamOptions {
|
|
17
|
+
/** Base streaming function — streamSimple or createOllamaStreamFn. */
|
|
18
|
+
baseStreamFn?: StreamFn;
|
|
19
|
+
/** Resolved model profile (from resolveModelProfile). */
|
|
20
|
+
profile: ModelProfile;
|
|
21
|
+
/** Provider ID (e.g. "redsand", "anthropic"). */
|
|
22
|
+
provider: string;
|
|
23
|
+
/** Model ID (e.g. "gemma-4-31b", "claude-sonnet-4-6"). */
|
|
24
|
+
modelId: string;
|
|
25
|
+
/** Full Symi config — used for provider baseUrl detection. */
|
|
26
|
+
config?: SymiConfig;
|
|
27
|
+
/** Per-model params from symi.json (agents.defaults.models[key].params). */
|
|
28
|
+
configExtraParams?: Record<string, unknown>;
|
|
29
|
+
/** Runtime overrides (e.g. CLI --temperature). */
|
|
30
|
+
streamParamsOverride?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a single stream function wrapper that handles all provider-specific
|
|
34
|
+
* param injection via one onPayload hook.
|
|
35
|
+
*
|
|
36
|
+
* Replaces: createStreamFnWithExtraParams, createVllmCompatWrapper,
|
|
37
|
+
* createOpenRouterHeadersWrapper.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createModelAwareStreamFn(opts: ModelAwareStreamOptions): StreamFn;
|
|
40
|
+
/** Detect vLLM/Gemma providers by model hints or baseUrl patterns. */
|
|
41
|
+
export declare function isVllmProvider(provider: string, modelId: string, config?: SymiConfig): boolean;
|
|
@@ -11,6 +11,19 @@ export declare function resolveExtraParams(params: {
|
|
|
11
11
|
provider: string;
|
|
12
12
|
modelId: string;
|
|
13
13
|
}): Record<string, unknown> | undefined;
|
|
14
|
+
export declare function createOpenAIResponsesStoreWrapper(baseStreamFn: StreamFn | undefined): StreamFn;
|
|
15
|
+
export declare function resolveAnthropicBetas(extraParams: Record<string, unknown> | undefined, provider: string, modelId: string): string[] | undefined;
|
|
16
|
+
export declare function createAnthropicBetaHeadersWrapper(baseStreamFn: StreamFn | undefined, betas: string[]): StreamFn;
|
|
17
|
+
/**
|
|
18
|
+
* Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
|
|
19
|
+
*
|
|
20
|
+
* Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
|
|
21
|
+
* of tool call arguments and reasoning content. When enabled, the API returns
|
|
22
|
+
* progressive tool_call deltas, allowing users to see tool execution in real-time.
|
|
23
|
+
*
|
|
24
|
+
* @see https://docs.z.ai/api-reference#streaming
|
|
25
|
+
*/
|
|
26
|
+
export declare function createZaiToolStreamWrapper(baseStreamFn: StreamFn | undefined, enabled: boolean): StreamFn;
|
|
14
27
|
/**
|
|
15
28
|
* Apply extra params (like temperature) to an agent's streamFn.
|
|
16
29
|
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-
|
|
3
|
+
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-DTKTuCrn.js";
|
|
4
4
|
import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
|
|
5
5
|
import { n as loadConfig } from "./config-DDkdiUOR.js";
|
|
6
6
|
import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-
|
|
3
|
+
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-DTKTuCrn.js";
|
|
4
4
|
import "./paths-DR2yt_mP.js";
|
|
5
5
|
import "./github-copilot-token-D9X2phUj.js";
|
|
6
6
|
import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-BbAvhC25.js";
|
|
@@ -47,7 +47,7 @@ import "./paths-A0xdf3yk.js";
|
|
|
47
47
|
import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-mFf4i4G9.js";
|
|
48
48
|
import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
|
|
49
49
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
|
|
50
|
-
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-
|
|
50
|
+
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-uUypcT9Q.js";
|
|
51
51
|
import "./image-BOYy0Ump.js";
|
|
52
52
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
53
53
|
import "./api-key-rotation-CVBMpnPc.js";
|
|
@@ -27119,7 +27119,7 @@ async function runWithImageModelFallback(params) {
|
|
|
27119
27119
|
function createDefaultDeps() {
|
|
27120
27120
|
return {
|
|
27121
27121
|
sendMessageWhatsApp: async (...args) => {
|
|
27122
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
27122
|
+
const { sendMessageWhatsApp } = await import("./web-Dh6Youzv.js");
|
|
27123
27123
|
return await sendMessageWhatsApp(...args);
|
|
27124
27124
|
},
|
|
27125
27125
|
sendMessageTelegram: async (...args) => {
|
|
@@ -44745,7 +44745,7 @@ function loadWebLoginQr() {
|
|
|
44745
44745
|
return webLoginQrPromise;
|
|
44746
44746
|
}
|
|
44747
44747
|
function loadWebChannel() {
|
|
44748
|
-
webChannelPromise ??= import("./web-
|
|
44748
|
+
webChannelPromise ??= import("./web-Dh6Youzv.js");
|
|
44749
44749
|
return webChannelPromise;
|
|
44750
44750
|
}
|
|
44751
44751
|
function loadWhatsAppActions() {
|
|
@@ -64447,10 +64447,6 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
64447
64447
|
|
|
64448
64448
|
//#endregion
|
|
64449
64449
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
64450
|
-
const OPENROUTER_APP_HEADERS = {
|
|
64451
|
-
"HTTP-Referer": "https://symi.ai",
|
|
64452
|
-
"X-Title": "Symi"
|
|
64453
|
-
};
|
|
64454
64450
|
const ANTHROPIC_CONTEXT_1M_BETA = "context-1m-2025-08-07";
|
|
64455
64451
|
const ANTHROPIC_1M_MODEL_PREFIXES = ["claude-opus-4", "claude-sonnet-4"];
|
|
64456
64452
|
const OPENAI_RESPONSES_APIS = new Set(["openai-responses"]);
|
|
@@ -64468,70 +64464,6 @@ function resolveExtraParams(params) {
|
|
|
64468
64464
|
const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
|
|
64469
64465
|
if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
|
|
64470
64466
|
}
|
|
64471
|
-
/**
|
|
64472
|
-
* Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
|
|
64473
|
-
* and legacy `cacheControlTtl` values for backwards compatibility.
|
|
64474
|
-
*
|
|
64475
|
-
* Mapping: "5m" → "short", "1h" → "long"
|
|
64476
|
-
*
|
|
64477
|
-
* Only applies to Anthropic provider (OpenRouter uses openai-completions API
|
|
64478
|
-
* with hardcoded cache_control, not the cacheRetention stream option).
|
|
64479
|
-
*
|
|
64480
|
-
* Defaults to "short" for Anthropic provider when not explicitly configured.
|
|
64481
|
-
*/
|
|
64482
|
-
function resolveCacheRetention(extraParams, provider) {
|
|
64483
|
-
if (provider !== "anthropic") return;
|
|
64484
|
-
const newVal = extraParams?.cacheRetention;
|
|
64485
|
-
if (newVal === "none" || newVal === "short" || newVal === "long") return newVal;
|
|
64486
|
-
const legacy = extraParams?.cacheControlTtl;
|
|
64487
|
-
if (legacy === "5m") return "short";
|
|
64488
|
-
if (legacy === "1h") return "long";
|
|
64489
|
-
return "short";
|
|
64490
|
-
}
|
|
64491
|
-
function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
64492
|
-
if (!extraParams || Object.keys(extraParams).length === 0) return;
|
|
64493
|
-
const streamParams = {};
|
|
64494
|
-
if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
|
|
64495
|
-
if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
|
|
64496
|
-
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
64497
|
-
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
64498
|
-
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
64499
|
-
if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
|
|
64500
|
-
if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
|
|
64501
|
-
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
64502
|
-
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
64503
|
-
if (Object.keys(streamParams).length === 0) return;
|
|
64504
|
-
log$2.debug(`creating streamFn wrapper with params: ${JSON.stringify(streamParams)}`);
|
|
64505
|
-
const sp = streamParams;
|
|
64506
|
-
const payloadOverrides = {};
|
|
64507
|
-
if (Array.isArray(sp.stop) && sp.stop.length > 0) payloadOverrides.stop = sp.stop;
|
|
64508
|
-
if (typeof sp.top_p === "number") payloadOverrides.top_p = sp.top_p;
|
|
64509
|
-
if (typeof sp.top_k === "number") payloadOverrides.top_k = sp.top_k;
|
|
64510
|
-
if (typeof sp.repeat_penalty === "number") payloadOverrides.repeat_penalty = sp.repeat_penalty;
|
|
64511
|
-
const hasPayloadOverrides = Object.keys(payloadOverrides).length > 0;
|
|
64512
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64513
|
-
const wrappedStreamFn = (model, context, options) => {
|
|
64514
|
-
if (hasPayloadOverrides) {
|
|
64515
|
-
const originalOnPayload = options?.onPayload;
|
|
64516
|
-
return underlying(model, context, {
|
|
64517
|
-
...streamParams,
|
|
64518
|
-
...options,
|
|
64519
|
-
onPayload: (payload) => {
|
|
64520
|
-
if (payload && typeof payload === "object") {
|
|
64521
|
-
const p = payload;
|
|
64522
|
-
for (const [key, value] of Object.entries(payloadOverrides)) if (p[key] === void 0) p[key] = value;
|
|
64523
|
-
}
|
|
64524
|
-
originalOnPayload?.(payload);
|
|
64525
|
-
}
|
|
64526
|
-
});
|
|
64527
|
-
}
|
|
64528
|
-
return underlying(model, context, {
|
|
64529
|
-
...streamParams,
|
|
64530
|
-
...options
|
|
64531
|
-
});
|
|
64532
|
-
};
|
|
64533
|
-
return wrappedStreamFn;
|
|
64534
|
-
}
|
|
64535
64467
|
function isDirectOpenAIBaseUrl(baseUrl) {
|
|
64536
64468
|
if (typeof baseUrl !== "string" || !baseUrl.trim()) return true;
|
|
64537
64469
|
try {
|
|
@@ -64612,20 +64544,6 @@ function createAnthropicBetaHeadersWrapper(baseStreamFn, betas) {
|
|
|
64612
64544
|
};
|
|
64613
64545
|
}
|
|
64614
64546
|
/**
|
|
64615
|
-
* Create a streamFn wrapper that adds OpenRouter app attribution headers.
|
|
64616
|
-
* These headers allow Symi to appear on OpenRouter's leaderboard.
|
|
64617
|
-
*/
|
|
64618
|
-
function createOpenRouterHeadersWrapper(baseStreamFn) {
|
|
64619
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64620
|
-
return (model, context, options) => underlying(model, context, {
|
|
64621
|
-
...options,
|
|
64622
|
-
headers: {
|
|
64623
|
-
...OPENROUTER_APP_HEADERS,
|
|
64624
|
-
...options?.headers
|
|
64625
|
-
}
|
|
64626
|
-
});
|
|
64627
|
-
}
|
|
64628
|
-
/**
|
|
64629
64547
|
* Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
|
|
64630
64548
|
*
|
|
64631
64549
|
* Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
|
|
@@ -64648,82 +64566,6 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
64648
64566
|
});
|
|
64649
64567
|
};
|
|
64650
64568
|
}
|
|
64651
|
-
const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
|
|
64652
|
-
const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
|
|
64653
|
-
function isVllmOrGemmaProvider(provider, modelId, cfg) {
|
|
64654
|
-
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
64655
|
-
if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
|
|
64656
|
-
const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
64657
|
-
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
64658
|
-
}
|
|
64659
|
-
/**
|
|
64660
|
-
* Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
|
|
64661
|
-
* 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
|
|
64662
|
-
* 2. Inject Gemma stop sequences if none are set
|
|
64663
|
-
* 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
|
|
64664
|
-
*/
|
|
64665
|
-
function createVllmCompatWrapper(baseStreamFn, extraParams) {
|
|
64666
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64667
|
-
const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
|
|
64668
|
-
return (model, context, options) => {
|
|
64669
|
-
const originalOnPayload = options?.onPayload;
|
|
64670
|
-
return underlying(model, context, {
|
|
64671
|
-
...options,
|
|
64672
|
-
onPayload: (payload) => {
|
|
64673
|
-
if (payload && typeof payload === "object") {
|
|
64674
|
-
const p = payload;
|
|
64675
|
-
if (p.max_completion_tokens && !p.max_tokens) {
|
|
64676
|
-
p.max_tokens = p.max_completion_tokens;
|
|
64677
|
-
delete p.max_completion_tokens;
|
|
64678
|
-
}
|
|
64679
|
-
if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
|
|
64680
|
-
delete p.store;
|
|
64681
|
-
}
|
|
64682
|
-
originalOnPayload?.(payload);
|
|
64683
|
-
}
|
|
64684
|
-
});
|
|
64685
|
-
};
|
|
64686
|
-
}
|
|
64687
|
-
/**
|
|
64688
|
-
* Apply extra params (like temperature) to an agent's streamFn.
|
|
64689
|
-
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
64690
|
-
*
|
|
64691
|
-
* @internal Exported for testing
|
|
64692
|
-
*/
|
|
64693
|
-
function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverride) {
|
|
64694
|
-
const extraParams = resolveExtraParams({
|
|
64695
|
-
cfg,
|
|
64696
|
-
provider,
|
|
64697
|
-
modelId
|
|
64698
|
-
});
|
|
64699
|
-
const override = extraParamsOverride && Object.keys(extraParamsOverride).length > 0 ? Object.fromEntries(Object.entries(extraParamsOverride).filter(([, value]) => value !== void 0)) : void 0;
|
|
64700
|
-
const merged = Object.assign({}, extraParams, override);
|
|
64701
|
-
const wrappedStreamFn = createStreamFnWithExtraParams(agent.streamFn, merged, provider);
|
|
64702
|
-
if (wrappedStreamFn) {
|
|
64703
|
-
log$2.debug(`applying extraParams to agent streamFn for ${provider}/${modelId}`);
|
|
64704
|
-
agent.streamFn = wrappedStreamFn;
|
|
64705
|
-
}
|
|
64706
|
-
const anthropicBetas = resolveAnthropicBetas(merged, provider, modelId);
|
|
64707
|
-
if (anthropicBetas?.length) {
|
|
64708
|
-
log$2.debug(`applying Anthropic beta header for ${provider}/${modelId}: ${anthropicBetas.join(",")}`);
|
|
64709
|
-
agent.streamFn = createAnthropicBetaHeadersWrapper(agent.streamFn, anthropicBetas);
|
|
64710
|
-
}
|
|
64711
|
-
if (provider === "openrouter") {
|
|
64712
|
-
log$2.debug(`applying OpenRouter app attribution headers for ${provider}/${modelId}`);
|
|
64713
|
-
agent.streamFn = createOpenRouterHeadersWrapper(agent.streamFn);
|
|
64714
|
-
}
|
|
64715
|
-
if (provider === "zai" || provider === "z-ai") {
|
|
64716
|
-
if (merged?.tool_stream !== false) {
|
|
64717
|
-
log$2.debug(`enabling Z.AI tool_stream for ${provider}/${modelId}`);
|
|
64718
|
-
agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
|
|
64719
|
-
}
|
|
64720
|
-
}
|
|
64721
|
-
if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
|
|
64722
|
-
log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
|
|
64723
|
-
agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
|
|
64724
|
-
}
|
|
64725
|
-
agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
|
|
64726
|
-
}
|
|
64727
64569
|
|
|
64728
64570
|
//#endregion
|
|
64729
64571
|
//#region src/utils/safe-json.ts
|
|
@@ -65000,6 +64842,74 @@ function createCacheTrace(params) {
|
|
|
65000
64842
|
};
|
|
65001
64843
|
}
|
|
65002
64844
|
|
|
64845
|
+
//#endregion
|
|
64846
|
+
//#region src/agents/model-aware-stream.ts
|
|
64847
|
+
/**
|
|
64848
|
+
* Create a single stream function wrapper that handles all provider-specific
|
|
64849
|
+
* param injection via one onPayload hook.
|
|
64850
|
+
*
|
|
64851
|
+
* Replaces: createStreamFnWithExtraParams, createVllmCompatWrapper,
|
|
64852
|
+
* createOpenRouterHeadersWrapper.
|
|
64853
|
+
*/
|
|
64854
|
+
function createModelAwareStreamFn(opts) {
|
|
64855
|
+
const underlying = opts.baseStreamFn ?? streamSimple;
|
|
64856
|
+
const mergedParams = {
|
|
64857
|
+
...opts.profile.params,
|
|
64858
|
+
...opts.configExtraParams,
|
|
64859
|
+
...opts.streamParamsOverride
|
|
64860
|
+
};
|
|
64861
|
+
const nativeOpts = {};
|
|
64862
|
+
if (typeof mergedParams.temperature === "number") nativeOpts.temperature = mergedParams.temperature;
|
|
64863
|
+
if (typeof mergedParams.max_tokens === "number") nativeOpts.maxTokens = mergedParams.max_tokens;
|
|
64864
|
+
else if (typeof mergedParams.maxTokens === "number") nativeOpts.maxTokens = mergedParams.maxTokens;
|
|
64865
|
+
const injections = {};
|
|
64866
|
+
if (Array.isArray(mergedParams.stop) && mergedParams.stop.length > 0) injections.stop = mergedParams.stop;
|
|
64867
|
+
if (typeof mergedParams.top_p === "number") injections.top_p = mergedParams.top_p;
|
|
64868
|
+
if (typeof mergedParams.top_k === "number") injections.top_k = mergedParams.top_k;
|
|
64869
|
+
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
64870
|
+
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
64871
|
+
const isOpenRouter = opts.provider === "openrouter";
|
|
64872
|
+
const extraHeaders = {};
|
|
64873
|
+
if (isOpenRouter) {
|
|
64874
|
+
extraHeaders["HTTP-Referer"] = "https://symi.ai";
|
|
64875
|
+
extraHeaders["X-Title"] = "Symi";
|
|
64876
|
+
}
|
|
64877
|
+
const hasExtraHeaders = Object.keys(extraHeaders).length > 0;
|
|
64878
|
+
const onPayloadHook = (payload, callerOnPayload) => {
|
|
64879
|
+
if (payload && typeof payload === "object") {
|
|
64880
|
+
const p = payload;
|
|
64881
|
+
for (const [key, val] of Object.entries(injections)) if (p[key] === void 0) p[key] = val;
|
|
64882
|
+
if (isVllm) {
|
|
64883
|
+
if (p.max_completion_tokens && !p.max_tokens) {
|
|
64884
|
+
p.max_tokens = p.max_completion_tokens;
|
|
64885
|
+
delete p.max_completion_tokens;
|
|
64886
|
+
}
|
|
64887
|
+
delete p.store;
|
|
64888
|
+
}
|
|
64889
|
+
}
|
|
64890
|
+
callerOnPayload?.(payload);
|
|
64891
|
+
};
|
|
64892
|
+
return (model, context, options) => {
|
|
64893
|
+
const callerOnPayload = options?.onPayload;
|
|
64894
|
+
return underlying(model, context, {
|
|
64895
|
+
...nativeOpts,
|
|
64896
|
+
...options,
|
|
64897
|
+
onPayload: (payload) => onPayloadHook(payload, callerOnPayload),
|
|
64898
|
+
...hasExtraHeaders ? { headers: {
|
|
64899
|
+
...extraHeaders,
|
|
64900
|
+
...options?.headers
|
|
64901
|
+
} } : {}
|
|
64902
|
+
});
|
|
64903
|
+
};
|
|
64904
|
+
}
|
|
64905
|
+
/** Detect vLLM/Gemma providers by model hints or baseUrl patterns. */
|
|
64906
|
+
function isVllmProvider(provider, modelId, config) {
|
|
64907
|
+
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
64908
|
+
if (["gemma", "redsand"].some((h) => lower.includes(h))) return true;
|
|
64909
|
+
const baseUrl = ((config?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
64910
|
+
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
64911
|
+
}
|
|
64912
|
+
|
|
65003
64913
|
//#endregion
|
|
65004
64914
|
//#region src/auto-reply/reply/streaming-directives.ts
|
|
65005
64915
|
const splitTrailingDirective = (text) => {
|
|
@@ -68047,14 +67957,39 @@ async function runEmbeddedAttempt(params) {
|
|
|
68047
67957
|
modelApi: params.model.api,
|
|
68048
67958
|
workspaceDir: params.workspaceDir
|
|
68049
67959
|
});
|
|
68050
|
-
|
|
68051
|
-
|
|
68052
|
-
|
|
68053
|
-
|
|
68054
|
-
|
|
68055
|
-
|
|
68056
|
-
|
|
68057
|
-
|
|
67960
|
+
{
|
|
67961
|
+
let baseStreamFn = streamSimple;
|
|
67962
|
+
if (params.model.api === "ollama") {
|
|
67963
|
+
const providerConfig = params.config?.models?.providers?.[params.model.provider];
|
|
67964
|
+
const modelBaseUrl = typeof params.model.baseUrl === "string" ? params.model.baseUrl.trim() : "";
|
|
67965
|
+
const providerBaseUrl = typeof providerConfig?.baseUrl === "string" ? providerConfig.baseUrl.trim() : "";
|
|
67966
|
+
baseStreamFn = createOllamaStreamFn(modelBaseUrl || providerBaseUrl || OLLAMA_NATIVE_BASE_URL);
|
|
67967
|
+
}
|
|
67968
|
+
const configExtraParams = resolveExtraParams({
|
|
67969
|
+
cfg: params.config,
|
|
67970
|
+
provider: params.provider,
|
|
67971
|
+
modelId: params.modelId
|
|
67972
|
+
});
|
|
67973
|
+
activeSession.agent.streamFn = createModelAwareStreamFn({
|
|
67974
|
+
baseStreamFn,
|
|
67975
|
+
profile: modelProfile,
|
|
67976
|
+
provider: params.provider,
|
|
67977
|
+
modelId: params.modelId,
|
|
67978
|
+
config: params.config,
|
|
67979
|
+
configExtraParams,
|
|
67980
|
+
streamParamsOverride: params.streamParams
|
|
67981
|
+
});
|
|
67982
|
+
const merged = {
|
|
67983
|
+
...configExtraParams,
|
|
67984
|
+
...params.streamParams
|
|
67985
|
+
};
|
|
67986
|
+
const anthropicBetas = resolveAnthropicBetas(merged, params.provider, params.modelId);
|
|
67987
|
+
if (anthropicBetas?.length) activeSession.agent.streamFn = createAnthropicBetaHeadersWrapper(activeSession.agent.streamFn, anthropicBetas);
|
|
67988
|
+
if (params.provider === "zai" || params.provider === "z-ai") {
|
|
67989
|
+
if (merged?.tool_stream !== false) activeSession.agent.streamFn = createZaiToolStreamWrapper(activeSession.agent.streamFn, true);
|
|
67990
|
+
}
|
|
67991
|
+
activeSession.agent.streamFn = createOpenAIResponsesStoreWrapper(activeSession.agent.streamFn);
|
|
67992
|
+
}
|
|
68058
67993
|
if (cacheTrace) {
|
|
68059
67994
|
cacheTrace.recordStage("session:loaded", {
|
|
68060
67995
|
messages: activeSession.messages,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-DTKTuCrn.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-BbAvhC25.js";
|
|
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-BveUP4hk.js";
|
|
|
45
45
|
import "./paths-A0xdf3yk.js";
|
|
46
46
|
import "./diagnostic-mFf4i4G9.js";
|
|
47
47
|
import "./store-Do3t33-c.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-
|
|
48
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-uUypcT9Q.js";
|
|
49
49
|
import "./image-BOYy0Ump.js";
|
|
50
50
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
51
|
import "./api-key-rotation-CVBMpnPc.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import "./reply-
|
|
4
|
+
import "./reply-Ca3slrA3.js";
|
|
5
5
|
import "./registry-Cja8eT7G.js";
|
|
6
6
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
7
7
|
import "./exec-CWkblSrI.js";
|
|
@@ -106,7 +106,7 @@ import "./npm-registry-spec-C2JDdSZS.js";
|
|
|
106
106
|
import "./skill-scanner-CLs8u6vQ.js";
|
|
107
107
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-C1Cebk97.js";
|
|
108
108
|
import { t as renderTable } from "./table-BTgkRafz.js";
|
|
109
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
109
|
+
import { t as buildPluginStatusReport } from "./status-kdz9P3tw.js";
|
|
110
110
|
import { n as updateNpmInstalledPlugins } from "./update-rw7wJwHd.js";
|
|
111
111
|
import fs from "node:fs";
|
|
112
112
|
import os from "node:os";
|
|
@@ -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-CbTbJKLs.js";
|
|
17
17
|
import "./sessions-CJXnZVjR.js";
|
|
18
18
|
import "./tokens-Csntmwwn.js";
|
|
19
19
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -102,7 +102,7 @@ import "./npm-registry-spec-DkaZNHAW.js";
|
|
|
102
102
|
import "./skill-scanner-BGWOBqLY.js";
|
|
103
103
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CgQpVncj.js";
|
|
104
104
|
import { t as renderTable } from "./table-D01d2GuY.js";
|
|
105
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
105
|
+
import { t as buildPluginStatusReport } from "./status-D3-lP2_9.js";
|
|
106
106
|
import { n as updateNpmInstalledPlugins } from "./update-DEMKx4eC.js";
|
|
107
107
|
import os from "node:os";
|
|
108
108
|
import path from "node:path";
|
|
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
|
|
|
14
14
|
import "./call-BcE47FtD.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import "./subagent-registry-
|
|
17
|
+
import "./subagent-registry-CbTbJKLs.js";
|
|
18
18
|
import "./sessions-CJXnZVjR.js";
|
|
19
19
|
import "./tokens-Csntmwwn.js";
|
|
20
20
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -99,13 +99,13 @@ import "./prompt-style-DwCXob2h.js";
|
|
|
99
99
|
import "./pairing-labels-D1HDboV2.js";
|
|
100
100
|
import "./pi-tools.policy-De00gPXt.js";
|
|
101
101
|
import "./catalog-DLQFKucJ.js";
|
|
102
|
-
import "./plugin-registry-
|
|
103
|
-
import { n as resolveCliChannelOptions } from "./channel-options-
|
|
104
|
-
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-
|
|
105
|
-
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-
|
|
102
|
+
import "./plugin-registry-BDpdOTei.js";
|
|
103
|
+
import { n as resolveCliChannelOptions } from "./channel-options-Dvxd7eJY.js";
|
|
104
|
+
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-DnzHFtLz.js";
|
|
105
|
+
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-ea9SD1eA.js";
|
|
106
106
|
import { r as setProgramContext } from "./program-context-CqzR_m-7.js";
|
|
107
107
|
import { t as forceFreePort } from "./ports-Dn122MUd.js";
|
|
108
|
-
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-
|
|
108
|
+
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-xhDZu_ZJ.js";
|
|
109
109
|
import { Command } from "commander";
|
|
110
110
|
|
|
111
111
|
//#region src/cli/program/context.ts
|
|
@@ -213,7 +213,7 @@ function registerPreActionHooks(program, programVersion) {
|
|
|
213
213
|
commandPath
|
|
214
214
|
});
|
|
215
215
|
if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
|
|
216
|
-
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-
|
|
216
|
+
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-BDpdOTei.js").then((n) => n.n);
|
|
217
217
|
ensurePluginRegistryLoaded();
|
|
218
218
|
}
|
|
219
219
|
});
|
|
@@ -43,7 +43,7 @@ const entries = [
|
|
|
43
43
|
description: "Run, inspect, and query the WebSocket Gateway",
|
|
44
44
|
hasSubcommands: true,
|
|
45
45
|
register: async (program) => {
|
|
46
|
-
(await import("./gateway-cli-
|
|
46
|
+
(await import("./gateway-cli-BDDHBfYP.js")).registerGatewayCli(program);
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
{
|
|
@@ -75,7 +75,7 @@ const entries = [
|
|
|
75
75
|
description: "Discover, scan, and configure models",
|
|
76
76
|
hasSubcommands: true,
|
|
77
77
|
register: async (program) => {
|
|
78
|
-
(await import("./models-cli-
|
|
78
|
+
(await import("./models-cli-BwOQhZ_c.js")).registerModelsCli(program);
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
{
|
|
@@ -155,7 +155,7 @@ const entries = [
|
|
|
155
155
|
description: "Manage internal agent hooks",
|
|
156
156
|
hasSubcommands: true,
|
|
157
157
|
register: async (program) => {
|
|
158
|
-
(await import("./hooks-cli-
|
|
158
|
+
(await import("./hooks-cli-CfsqqxPX.js")).registerHooksCli(program);
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
161
|
{
|
|
@@ -179,7 +179,7 @@ const entries = [
|
|
|
179
179
|
description: "Secure DM pairing (approve inbound requests)",
|
|
180
180
|
hasSubcommands: true,
|
|
181
181
|
register: async (program) => {
|
|
182
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
182
|
+
const { registerPluginCliCommands } = await import("./cli-Cw45F0yJ.js");
|
|
183
183
|
registerPluginCliCommands(program, await loadConfig());
|
|
184
184
|
(await import("./pairing-cli-CBLfGvqW.js")).registerPairingCli(program);
|
|
185
185
|
}
|
|
@@ -189,8 +189,8 @@ const entries = [
|
|
|
189
189
|
description: "Manage Symi plugins and extensions",
|
|
190
190
|
hasSubcommands: true,
|
|
191
191
|
register: async (program) => {
|
|
192
|
-
(await import("./plugins-cli-
|
|
193
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
192
|
+
(await import("./plugins-cli-CCQ3skeQ.js")).registerPluginsCli(program);
|
|
193
|
+
const { registerPluginCliCommands } = await import("./cli-Cw45F0yJ.js");
|
|
194
194
|
registerPluginCliCommands(program, await loadConfig());
|
|
195
195
|
}
|
|
196
196
|
},
|
|
@@ -199,7 +199,7 @@ const entries = [
|
|
|
199
199
|
description: "Manage connected chat channels (Telegram, Discord, etc.)",
|
|
200
200
|
hasSubcommands: true,
|
|
201
201
|
register: async (program) => {
|
|
202
|
-
(await import("./channels-cli-
|
|
202
|
+
(await import("./channels-cli-BLUkl5Li.js")).registerChannelsCli(program);
|
|
203
203
|
}
|
|
204
204
|
},
|
|
205
205
|
{
|
|
@@ -231,7 +231,7 @@ const entries = [
|
|
|
231
231
|
description: "Update Symi and inspect update channel status",
|
|
232
232
|
hasSubcommands: true,
|
|
233
233
|
register: async (program) => {
|
|
234
|
-
(await import("./update-cli-
|
|
234
|
+
(await import("./update-cli-B5TI650v.js")).registerUpdateCli(program);
|
|
235
235
|
}
|
|
236
236
|
},
|
|
237
237
|
{
|
|
@@ -239,7 +239,7 @@ const entries = [
|
|
|
239
239
|
description: "Generate shell completion script",
|
|
240
240
|
hasSubcommands: false,
|
|
241
241
|
register: async (program) => {
|
|
242
|
-
(await import("./completion-cli-
|
|
242
|
+
(await import("./completion-cli-CMJmUQbI.js").then((n) => n.n)).registerCompletionCli(program);
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
];
|
|
@@ -302,7 +302,7 @@ const coreEntries = [
|
|
|
302
302
|
hasSubcommands: false
|
|
303
303
|
}],
|
|
304
304
|
register: async ({ program }) => {
|
|
305
|
-
(await import("./register.setup-
|
|
305
|
+
(await import("./register.setup-C9gu0W5l.js")).registerSetupCommand(program);
|
|
306
306
|
}
|
|
307
307
|
},
|
|
308
308
|
{
|
|
@@ -312,7 +312,7 @@ const coreEntries = [
|
|
|
312
312
|
hasSubcommands: false
|
|
313
313
|
}],
|
|
314
314
|
register: async ({ program }) => {
|
|
315
|
-
(await import("./register.onboard-
|
|
315
|
+
(await import("./register.onboard-TsU21RR7.js")).registerOnboardCommand(program);
|
|
316
316
|
}
|
|
317
317
|
},
|
|
318
318
|
{
|
|
@@ -322,7 +322,7 @@ const coreEntries = [
|
|
|
322
322
|
hasSubcommands: false
|
|
323
323
|
}],
|
|
324
324
|
register: async ({ program }) => {
|
|
325
|
-
(await import("./register.configure-
|
|
325
|
+
(await import("./register.configure-C2fhjZze.js")).registerConfigureCommand(program);
|
|
326
326
|
}
|
|
327
327
|
},
|
|
328
328
|
{
|
|
@@ -332,7 +332,7 @@ const coreEntries = [
|
|
|
332
332
|
hasSubcommands: true
|
|
333
333
|
}],
|
|
334
334
|
register: async ({ program }) => {
|
|
335
|
-
(await import("./config-cli-
|
|
335
|
+
(await import("./config-cli-B2d28_hb.js")).registerConfigCli(program);
|
|
336
336
|
}
|
|
337
337
|
},
|
|
338
338
|
{
|
|
@@ -359,7 +359,7 @@ const coreEntries = [
|
|
|
359
359
|
}
|
|
360
360
|
],
|
|
361
361
|
register: async ({ program }) => {
|
|
362
|
-
(await import("./register.maintenance-
|
|
362
|
+
(await import("./register.maintenance-K1x3E7OS.js")).registerMaintenanceCommands(program);
|
|
363
363
|
}
|
|
364
364
|
},
|
|
365
365
|
{
|
|
@@ -369,7 +369,7 @@ const coreEntries = [
|
|
|
369
369
|
hasSubcommands: true
|
|
370
370
|
}],
|
|
371
371
|
register: async ({ program, ctx }) => {
|
|
372
|
-
(await import("./register.message-
|
|
372
|
+
(await import("./register.message-CSRzBl-c.js")).registerMessageCommands(program, ctx);
|
|
373
373
|
}
|
|
374
374
|
},
|
|
375
375
|
{
|
|
@@ -393,7 +393,7 @@ const coreEntries = [
|
|
|
393
393
|
hasSubcommands: true
|
|
394
394
|
}],
|
|
395
395
|
register: async ({ program, ctx }) => {
|
|
396
|
-
(await import("./register.agent-
|
|
396
|
+
(await import("./register.agent-BygseJ7t.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
|
|
397
397
|
}
|
|
398
398
|
},
|
|
399
399
|
{
|
|
@@ -415,7 +415,7 @@ const coreEntries = [
|
|
|
415
415
|
}
|
|
416
416
|
],
|
|
417
417
|
register: async ({ program }) => {
|
|
418
|
-
(await import("./register.status-health-sessions-
|
|
418
|
+
(await import("./register.status-health-sessions-rZsuoqtr.js")).registerStatusHealthSessionsCommands(program);
|
|
419
419
|
}
|
|
420
420
|
},
|
|
421
421
|
{
|