@symerian/symi 2.8.8 → 2.8.10
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-BBb3pG_r.js → agents-BbVxJTp2.js} +4 -4
- package/dist/{agents.config-DDAd-KmU.js → agents.config-DckCExUX.js} +1 -1
- package/dist/{agents.config-C1tHX61N.js → agents.config-LE2JxgiS.js} +1 -1
- package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-rjCWpcfE.js} +4 -4
- package/dist/{auth-choice-FY48Z00U.js → auth-choice-DnKOB8Gs.js} +1 -1
- package/dist/{auth-choice-DPNcCrz1.js → auth-choice-j1FEYnxv.js} +1 -1
- package/dist/{banner-yIuMuNbm.js → banner-BFr8n0of.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +7 -7
- package/dist/bundled/session-memory/handler.js +7 -7
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-C_9TyM7R.js → channel-options-BtmFCQOB.js} +1 -1
- package/dist/{channel-options-C5SLfyqk.js → channel-options-DrBxsMlw.js} +1 -1
- package/dist/{channel-web-ByaqLmaZ.js → channel-web-YgdajAXX.js} +1 -1
- package/dist/{channels-cli-CSnENSPd.js → channels-cli-ChS_nQcP.js} +6 -6
- package/dist/{channels-cli-Ca41AO96.js → channels-cli-fYbw-4gz.js} +6 -6
- package/dist/{chrome-ROtrXlNs.js → chrome-C08Z0XAa.js} +7 -7
- package/dist/{cli-BO8YhTtM.js → cli-CA4qcSFY.js} +3 -3
- package/dist/{cli-ZZzj67hW.js → cli-NfoZJEPh.js} +3 -3
- package/dist/{command-registry-DnCUp2Vv.js → command-registry-B6spVZMd.js} +10 -10
- package/dist/{completion-cli-BpdGxP6F.js → completion-cli-DKoZNVbW.js} +1 -1
- package/dist/{completion-cli-DmWio6gO.js → completion-cli-VQrV_JN9.js} +2 -2
- package/dist/{config-cli-CihWekyc.js → config-cli-CgC3xSoL.js} +1 -1
- package/dist/{config-cli-BNZy4xXJ.js → config-cli-Dm2QMcwn.js} +1 -1
- package/dist/{configure-BB_JMk-P.js → configure-COCCg2tV.js} +3 -3
- package/dist/{configure-pkgSrqbn.js → configure-DiDXmX3E.js} +3 -3
- package/dist/{deliver-B0OUq6RP.js → deliver-qUx-eLKt.js} +1 -1
- package/dist/{doctor-completion-BCzSR_c-.js → doctor-completion-BR5k35Qj.js} +1 -1
- package/dist/{doctor-completion-CyzIEK0J.js → doctor-completion-CPFKFTc-.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-BhX-isYp.js → gateway-cli-BF1-DFEf.js} +12 -11
- package/dist/{gateway-cli-c5VWm80z.js → gateway-cli-BJH2K8fn.js} +12 -11
- package/dist/{glass-ui-ws-BRKLiUgG.js → glass-ui-ws-B7j7iTDg.js} +9 -9
- package/dist/{glass-ui-ws-BvKAGzsP.js → glass-ui-ws-DyoHQW3O.js} +9 -9
- package/dist/{health-C-B-3prj.js → health-BAjSATWA.js} +1 -1
- package/dist/{health-DlRTgD3e.js → health-D-0xOxV8.js} +1 -1
- package/dist/{hooks-cli-CApedXJB.js → hooks-cli-BaoCFIbQ.js} +4 -4
- package/dist/{hooks-cli-oulDpg7g.js → hooks-cli-ZZaM2xfC.js} +4 -4
- package/dist/{image-BuVL0jHI.js → image-C6rCON9L.js} +1 -1
- package/dist/index.js +8 -8
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{manager-BDW4v0kn.js → manager-B5JWZL0E.js} +1 -1
- package/dist/{manager-D_NVh5nU.js → manager-BpvcDr-7.js} +1 -1
- package/dist/{manager-DfbiNFMG.js → manager-BxJ9BhQe.js} +1 -1
- package/dist/{manager-C6236YLp.js → manager-DUuPE1N1.js} +1 -1
- package/dist/{memory-cli-j-HcbP06.js → memory-cli-BQZ0rTKC.js} +3 -3
- package/dist/{memory-cli-CMd2wNuE.js → memory-cli-r-ulsUBa.js} +3 -3
- package/dist/{models-CWWcJjaU.js → models-B1__62Qo.js} +2 -2
- package/dist/{models-cli-CTNMdFcR.js → models-cli-BGpB4PAp.js} +4 -4
- package/dist/{models-cli-BdTd0wN8.js → models-cli-Ch-4PBud.js} +5 -5
- package/dist/{onboard-DQZlDx_8.js → onboard-D2NC88Mp.js} +2 -2
- package/dist/{onboard-aP7vFmGI.js → onboard-D_2-lyyt.js} +2 -2
- package/dist/{onboard-channels-Nos59voI.js → onboard-channels-BgA4i9TU.js} +1 -1
- package/dist/{onboard-channels-B2HQSE5z.js → onboard-channels-CYlZtWF6.js} +1 -1
- package/dist/{onboarding-C0I5Zbfm.js → onboarding-D7N2AfyJ.js} +3 -3
- package/dist/{onboarding-BMmZ3Tnf.js → onboarding-uVLsv2Sd.js} +3 -3
- package/dist/{onboarding.finalize-lDB3lIzR.js → onboarding.finalize-CTDv0xwp.js} +8 -8
- package/dist/{onboarding.finalize-CQTERN7X.js → onboarding.finalize-DEjTjgRt.js} +7 -7
- package/dist/{pi-embedded-CC0d2GbY.js → pi-embedded-HSRJqesT.js} +33 -5
- package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-P13adotN.js} +4 -4
- package/dist/{plugin-registry-y33YD86y.js → plugin-registry-Chvg6kT0.js} +1 -1
- package/dist/{plugin-registry-nbnWVfl0.js → plugin-registry-DEKq3ti3.js} +1 -1
- package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +7 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +6 -0
- package/dist/plugin-sdk/agents/unified-runner.d.ts +8 -0
- package/dist/plugin-sdk/{channel-web-BjHrRVyw.js → channel-web-CfaamthT.js} +1 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{manager-Dkk-rYV5.js → manager-B3jEviU1.js} +1 -1
- package/dist/plugin-sdk/{reply-BvRRQRwy.js → reply-DWwxgBtH.js} +33 -5
- package/dist/plugin-sdk/{synthesis-CvCvHSQJ.js → synthesis-C_u94H_P.js} +2 -2
- package/dist/plugin-sdk/{web-BXlaAqfp.js → web-DFvYfej5.js} +3 -3
- package/dist/{plugins-cli-9vI7CQW6.js → plugins-cli-Cd99p333.js} +4 -4
- package/dist/{plugins-cli-MgRgt7Mu.js → plugins-cli-QZlpLtva.js} +4 -4
- package/dist/{program-context-hHMQ9IaD.js → program-context-Dun-c3nf.js} +18 -18
- package/dist/{program-Ba081u3Y.js → program-viRCc6Je.js} +9 -9
- package/dist/{prompt-select-styled-C-7N8FY0.js → prompt-select-styled-DVLibGeR.js} +6 -6
- package/dist/{prompt-select-styled-MVmYxgMW.js → prompt-select-styled-W2G26g34.js} +6 -6
- package/dist/{provider-auth-helpers-4eBjBsnM.js → provider-auth-helpers-DCEiDG3X.js} +1 -1
- package/dist/{provider-auth-helpers-Dr_EyLaO.js → provider-auth-helpers-KFQclkJT.js} +1 -1
- package/dist/{push-apns-D4X5TtMo.js → push-apns-CB_8WzQ9.js} +1 -1
- package/dist/{push-apns-69s0P1E4.js → push-apns-tfhjtI57.js} +1 -1
- package/dist/{pw-ai-DWkC5eGA.js → pw-ai-CeWN4iD9.js} +1 -1
- package/dist/{register.agent-6nMG0iFQ.js → register.agent--QTUjLu9.js} +7 -7
- package/dist/{register.agent-Buw0POPK.js → register.agent-i2wi1-vo.js} +8 -8
- package/dist/{register.configure-CPHixRQq.js → register.configure-B9JysEK8.js} +8 -8
- package/dist/{register.configure-D0QJaqhS.js → register.configure-ByJcC9t4.js} +8 -8
- package/dist/{register.maintenance-DFUetG40.js → register.maintenance-BGiYxRYm.js} +10 -10
- package/dist/{register.maintenance-B6retPun.js → register.maintenance-DqJL_QWT.js} +9 -9
- package/dist/{register.message-B2iknN6N.js → register.message-DT_TqsFl.js} +4 -4
- package/dist/{register.message-B-dikPUk.js → register.message-G6-UeGON.js} +4 -4
- package/dist/{register.onboard-B4js1bcI.js → register.onboard-848EXgTB.js} +6 -6
- package/dist/{register.onboard-CvEm9qn-.js → register.onboard-CfySx27T.js} +6 -6
- package/dist/{register.setup-DY-9NReY.js → register.setup-B40A19lI.js} +6 -6
- package/dist/{register.setup-C5aRtPrT.js → register.setup-C-NYSAGY.js} +6 -6
- package/dist/{register.status-health-sessions-B_OUXi_q.js → register.status-health-sessions-B03EDfwZ.js} +5 -5
- package/dist/{register.status-health-sessions-DXdy2sDv.js → register.status-health-sessions-BACExyrd.js} +5 -5
- package/dist/{register.subclis-CXZMI0Py.js → register.subclis-kF8KnNuq.js} +9 -9
- package/dist/{reply-BwSt9FgY.js → reply-C5VU6T-F.js} +32 -4
- package/dist/{run-main-DQPmad4_.js → run-main-BqpvNq8c.js} +17 -17
- package/dist/{runner-ecX1WzDt.js → runner-D633VT13.js} +1 -1
- package/dist/{server-methods-D-X3f0JZ.js → server-methods-CkLzZq0Y.js} +7 -7
- package/dist/{server-methods-BGlmZerh.js → server-methods-DjB0hxeW.js} +7 -7
- package/dist/{server-node-events-DYspYAsS.js → server-node-events-BM-APRHy.js} +4 -4
- package/dist/{server-node-events-VMWi_q_4.js → server-node-events-ZgCh4sCg.js} +4 -4
- package/dist/{status-D4IpFPfd.js → status-BhQk3JSz.js} +1 -1
- package/dist/{status-Ciil-4CY.js → status-C_gwgMp4.js} +3 -3
- package/dist/{status-CpK9Je7o.js → status-Nf53o222.js} +1 -1
- package/dist/{status-BIqQY-EW.js → status-WMQ2CpbK.js} +3 -3
- package/dist/{subagent-registry-CA3olOuQ.js → subagent-registry-BCWbFTGF.js} +32 -4
- package/dist/{synthesis-tkINNn_o.js → synthesis-CJIAYDoU.js} +3 -3
- package/dist/{synthesis-DNOkCR-a.js → synthesis-CWsrtigA.js} +2 -2
- package/dist/{synthesis-DhWAXhL7.js → synthesis-DIKBPZgB.js} +3 -3
- package/dist/{synthesis-UdetU7yM.js → synthesis-VfWtSYrv.js} +7 -7
- package/dist/{unified-runner-BdNmAHcK.js → unified-runner-yPBTU4xt.js} +47 -19
- package/dist/{update-cli-Cz-Ho1q4.js → update-cli-BCFHfhUW.js} +10 -10
- package/dist/{update-cli-Crd_JOtd.js → update-cli-B_Mxicbw.js} +9 -9
- package/dist/{update-runner-yfcQ1dWZ.js → update-runner-BQJSshFU.js} +1 -1
- package/dist/{update-runner-BR5qByxw.js → update-runner-DG5x7t--.js} +1 -1
- package/dist/{web-BQN_t3ZP.js → web-D9_FatXM.js} +7 -7
- package/dist/{web-BD0BGw7V.js → web-Dpfsnk-b.js} +3 -3
- package/dist/{web-Cuozfpq6.js → web-TVVa5EDS.js} +4 -4
- package/dist/{web-DoSYXtxt.js → web-eJWNRwV5.js} +2 -2
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, R as colorize, S as shortenHomePath, z as isRich$1 } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import { Yt as describeFailoverError, _r as formatRemainingShort, gr as buildAuthHealthSummary, gt as loadProviderUsageSummary, hr as DEFAULT_OAUTH_WARN_MS, mr as maskApiKey, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runAgentTurn } from "./reply-
|
|
4
|
+
import { Yt as describeFailoverError, _r as formatRemainingShort, gr as buildAuthHealthSummary, gt as loadProviderUsageSummary, hr as DEFAULT_OAUTH_WARN_MS, mr as maskApiKey, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runAgentTurn } from "./reply-C5VU6T-F.js";
|
|
5
5
|
import "./registry-Cja8eT7G.js";
|
|
6
6
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
7
7
|
import "./exec-CWkblSrI.js";
|
|
@@ -61,8 +61,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
|
|
|
61
61
|
import "./send-DpMnSIi5.js";
|
|
62
62
|
import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-ECsJuJew.js";
|
|
63
63
|
import "./reply-prefix-CE2YmmsD.js";
|
|
64
|
-
import "./memory-cli-
|
|
65
|
-
import "./manager-
|
|
64
|
+
import "./memory-cli-BQZ0rTKC.js";
|
|
65
|
+
import "./manager-BpvcDr-7.js";
|
|
66
66
|
import "./retry-BoS4e4X_.js";
|
|
67
67
|
import "./sqlite-D55gRQbH.js";
|
|
68
68
|
import "./target-errors-C9e6dMU_.js";
|
|
@@ -111,7 +111,7 @@ import { n as redactSecrets } from "./format-DNqZrSx7.js";
|
|
|
111
111
|
import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-C9vLT1Vj.js";
|
|
112
112
|
import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Cq0R-Q6i.js";
|
|
113
113
|
import { n as logConfigUpdated } from "./logging-CZuxhCZR.js";
|
|
114
|
-
import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-
|
|
114
|
+
import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DCEiDG3X.js";
|
|
115
115
|
import path from "node:path";
|
|
116
116
|
import fs from "node:fs/promises";
|
|
117
117
|
import crypto from "node:crypto";
|
|
@@ -14,7 +14,7 @@ import "./client-qUlxXXVJ.js";
|
|
|
14
14
|
import "./call-BrRWr7Lj.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import "./subagent-registry-
|
|
17
|
+
import "./subagent-registry-BCWbFTGF.js";
|
|
18
18
|
import "./sessions-BPD85pWA.js";
|
|
19
19
|
import "./tokens-Csntmwwn.js";
|
|
20
20
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
52
52
|
import "./thinking-8sKPnzpp.js";
|
|
53
53
|
import "./models-config-J1x_DaPn.js";
|
|
54
54
|
import "./reply-prefix-BUN71nd5.js";
|
|
55
|
-
import "./memory-cli-
|
|
56
|
-
import "./manager-
|
|
55
|
+
import "./memory-cli-r-ulsUBa.js";
|
|
56
|
+
import "./manager-BxJ9BhQe.js";
|
|
57
57
|
import "./gemini-auth-DEakvf-D.js";
|
|
58
58
|
import "./retry-C4Q_VPOo.js";
|
|
59
59
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -104,8 +104,8 @@ import "./table-Bka4fasy.js";
|
|
|
104
104
|
import "./shared-PtB96PLH.js";
|
|
105
105
|
import "./auth-token-ce8PBZwF.js";
|
|
106
106
|
import "./logging-PVQxLC6I.js";
|
|
107
|
-
import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-
|
|
108
|
-
import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-
|
|
107
|
+
import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-KFQclkJT.js";
|
|
108
|
+
import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-B1__62Qo.js";
|
|
109
109
|
|
|
110
110
|
//#region src/cli/models-cli.ts
|
|
111
111
|
function runModelsCommand(action) {
|
|
@@ -9,8 +9,8 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
|
|
|
9
9
|
import { t as assertSupportedRuntime } from "./runtime-guard-BofkqBu7.js";
|
|
10
10
|
import { r as isSystemdUserServiceAvailable } from "./systemd-CJ5L2ee4.js";
|
|
11
11
|
import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
|
|
12
|
-
import { r as healthCommand } from "./health-
|
|
13
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
12
|
+
import { r as healthCommand } from "./health-D-0xOxV8.js";
|
|
13
|
+
import { t as runOnboardingWizard } from "./onboarding-D7N2AfyJ.js";
|
|
14
14
|
import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-ce8PBZwF.js";
|
|
15
15
|
import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
|
|
16
16
|
import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-DxCamFcQ.js";
|
|
@@ -11,8 +11,8 @@ import { t as createClackPrompter } from "./clack-prompter-CM5UgVAv.js";
|
|
|
11
11
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Cp7obV7Q.js";
|
|
12
12
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Xs16roN5.js";
|
|
13
13
|
import { t as resolveGatewayService } from "./service-DzLem5vL.js";
|
|
14
|
-
import { r as healthCommand } from "./health-
|
|
15
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
14
|
+
import { r as healthCommand } from "./health-BAjSATWA.js";
|
|
15
|
+
import { t as runOnboardingWizard } from "./onboarding-uVLsv2Sd.js";
|
|
16
16
|
import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-Cq0R-Q6i.js";
|
|
17
17
|
import { n as logConfigUpdated } from "./logging-CZuxhCZR.js";
|
|
18
18
|
import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-C7jeLI7r.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-
|
|
2
|
+
import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-C5VU6T-F.js";
|
|
3
3
|
import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DCt45XZa.js";
|
|
4
4
|
import { a as formatChannelSelectionLine, i as formatChannelPrimerLine, s as listChatChannels } from "./registry-Cja8eT7G.js";
|
|
5
5
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
|
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
|
|
4
4
|
import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DjZ7Z1hW.js";
|
|
5
5
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
|
|
6
|
-
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-
|
|
6
|
+
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-BCWbFTGF.js";
|
|
7
7
|
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
|
|
8
8
|
import { t as formatDocsLink } from "./links-CxyMXTsn.js";
|
|
9
9
|
import { r as listChannelPluginCatalogEntries } from "./catalog-KcLvtTfa.js";
|
|
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
223
223
|
const { ensureAuthProfileStore } = await import("./auth-profiles-BBniPGeS.js").then((n) => n.t);
|
|
224
224
|
const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DF6R_pgV.js").then((n) => n.t);
|
|
225
225
|
const { promptCustomApiConfig } = await import("./onboard-custom-CJGSIPt3.js").then((n) => n.r);
|
|
226
|
-
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-
|
|
226
|
+
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-j1FEYnxv.js").then((n) => n.t);
|
|
227
227
|
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-n7beL1F5.js").then((n) => n.i);
|
|
228
228
|
const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
|
|
229
229
|
const authChoiceFromPrompt = opts.authChoice === void 0;
|
|
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
276
276
|
if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
|
|
277
277
|
else {
|
|
278
278
|
const { listChannelPlugins } = await import("./plugins-CwSlLxM8.js").then((n) => n.i);
|
|
279
|
-
const { setupChannels } = await import("./onboard-channels-
|
|
279
|
+
const { setupChannels } = await import("./onboard-channels-CYlZtWF6.js").then((n) => n.n);
|
|
280
280
|
const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
|
|
281
281
|
nextConfig = await setupChannels(nextConfig, runtime, prompter, {
|
|
282
282
|
allowSignalInstall: true,
|
|
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
302
302
|
mode
|
|
303
303
|
});
|
|
304
304
|
await writeConfigFile(nextConfig);
|
|
305
|
-
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-
|
|
305
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CTDv0xwp.js");
|
|
306
306
|
const { launchedTui } = await finalizeOnboardingWizard({
|
|
307
307
|
flow,
|
|
308
308
|
opts,
|
|
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
225
225
|
const { ensureAuthProfileStore } = await import("./model-selection-C-eIBa0H.js").then((n) => n.dt);
|
|
226
226
|
const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-PeQmwVpp.js").then((n) => n.t);
|
|
227
227
|
const { promptCustomApiConfig } = await import("./onboard-custom-Dk9cL3Uu.js").then((n) => n.r);
|
|
228
|
-
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-
|
|
228
|
+
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-DnKOB8Gs.js").then((n) => n.t);
|
|
229
229
|
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-BNWV-jU4.js").then((n) => n.i);
|
|
230
230
|
const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
|
|
231
231
|
const authChoiceFromPrompt = opts.authChoice === void 0;
|
|
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
278
278
|
if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
|
|
279
279
|
else {
|
|
280
280
|
const { listChannelPlugins } = await import("./plugins-DKDeQZF0.js").then((n) => n.i);
|
|
281
|
-
const { setupChannels } = await import("./onboard-channels-
|
|
281
|
+
const { setupChannels } = await import("./onboard-channels-BgA4i9TU.js").then((n) => n.n);
|
|
282
282
|
const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
|
|
283
283
|
nextConfig = await setupChannels(nextConfig, runtime, prompter, {
|
|
284
284
|
allowSignalInstall: true,
|
|
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
304
304
|
mode
|
|
305
305
|
});
|
|
306
306
|
await writeConfigFile(nextConfig);
|
|
307
|
-
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-
|
|
307
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DEjTjgRt.js");
|
|
308
308
|
const { launchedTui } = await finalizeOnboardingWizard({
|
|
309
309
|
flow,
|
|
310
310
|
opts,
|
|
@@ -15,7 +15,7 @@ import "./client-qUlxXXVJ.js";
|
|
|
15
15
|
import "./call-BrRWr7Lj.js";
|
|
16
16
|
import "./message-channel-C9dERklz.js";
|
|
17
17
|
import "./pairing-token-Byh6drgn.js";
|
|
18
|
-
import "./subagent-registry-
|
|
18
|
+
import "./subagent-registry-BCWbFTGF.js";
|
|
19
19
|
import "./sessions-BPD85pWA.js";
|
|
20
20
|
import "./tokens-Csntmwwn.js";
|
|
21
21
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
53
53
|
import "./thinking-8sKPnzpp.js";
|
|
54
54
|
import "./models-config-J1x_DaPn.js";
|
|
55
55
|
import "./reply-prefix-BUN71nd5.js";
|
|
56
|
-
import "./memory-cli-
|
|
57
|
-
import "./manager-
|
|
56
|
+
import "./memory-cli-r-ulsUBa.js";
|
|
57
|
+
import "./manager-BxJ9BhQe.js";
|
|
58
58
|
import "./gemini-auth-DEakvf-D.js";
|
|
59
59
|
import "./retry-C4Q_VPOo.js";
|
|
60
60
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -100,18 +100,18 @@ import "./prompt-style-BxVdnrLq.js";
|
|
|
100
100
|
import "./pairing-labels-BHx_CdbP.js";
|
|
101
101
|
import "./pi-tools.policy-dbCkhLDL.js";
|
|
102
102
|
import "./note-DewoEWtc.js";
|
|
103
|
-
import "./register.subclis-
|
|
104
|
-
import "./command-registry-
|
|
103
|
+
import "./register.subclis-kF8KnNuq.js";
|
|
104
|
+
import "./command-registry-B6spVZMd.js";
|
|
105
105
|
import "./program-context-DeZ44oQ9.js";
|
|
106
|
-
import { r as installCompletion } from "./completion-cli-
|
|
106
|
+
import { r as installCompletion } from "./completion-cli-VQrV_JN9.js";
|
|
107
107
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-D_elkkFW.js";
|
|
108
108
|
import "./runtime-guard-BofkqBu7.js";
|
|
109
109
|
import { r as isSystemdUserServiceAvailable } from "./systemd-CJ5L2ee4.js";
|
|
110
110
|
import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
|
|
111
|
-
import { r as healthCommand } from "./health-
|
|
111
|
+
import { r as healthCommand } from "./health-D-0xOxV8.js";
|
|
112
112
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Clf7H-Sm.js";
|
|
113
113
|
import { t as formatHealthCheckFailure } from "./health-format-DkjSgkDx.js";
|
|
114
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
114
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BR5k35Qj.js";
|
|
115
115
|
import { t as runTui } from "./tui-BiBFm_RY.js";
|
|
116
116
|
import os from "node:os";
|
|
117
117
|
import path from "node:path";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import "./reply-
|
|
4
|
+
import "./reply-C5VU6T-F.js";
|
|
5
5
|
import "./registry-Cja8eT7G.js";
|
|
6
6
|
import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
|
|
7
7
|
import "./exec-CWkblSrI.js";
|
|
@@ -61,8 +61,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
|
|
|
61
61
|
import "./send-DpMnSIi5.js";
|
|
62
62
|
import "./model-ECsJuJew.js";
|
|
63
63
|
import "./reply-prefix-CE2YmmsD.js";
|
|
64
|
-
import "./memory-cli-
|
|
65
|
-
import "./manager-
|
|
64
|
+
import "./memory-cli-BQZ0rTKC.js";
|
|
65
|
+
import "./manager-BpvcDr-7.js";
|
|
66
66
|
import "./retry-BoS4e4X_.js";
|
|
67
67
|
import "./sqlite-D55gRQbH.js";
|
|
68
68
|
import "./target-errors-C9e6dMU_.js";
|
|
@@ -104,16 +104,16 @@ import "./control-service-C0pRqIFv.js";
|
|
|
104
104
|
import "./stagger-CZ1Rrj7O.js";
|
|
105
105
|
import "./channel-selection-9fIQGtZy.js";
|
|
106
106
|
import "./runtime-guard-BKFbNplo.js";
|
|
107
|
-
import "./program-context-
|
|
107
|
+
import "./program-context-Dun-c3nf.js";
|
|
108
108
|
import "./note-ByDX0v9V.js";
|
|
109
|
-
import { r as installCompletion } from "./completion-cli-
|
|
109
|
+
import { r as installCompletion } from "./completion-cli-DKoZNVbW.js";
|
|
110
110
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Cp7obV7Q.js";
|
|
111
111
|
import { r as isSystemdUserServiceAvailable } from "./systemd-Xs16roN5.js";
|
|
112
112
|
import { t as resolveGatewayService } from "./service-DzLem5vL.js";
|
|
113
|
-
import { r as healthCommand } from "./health-
|
|
113
|
+
import { r as healthCommand } from "./health-BAjSATWA.js";
|
|
114
114
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BrP31IQR.js";
|
|
115
115
|
import { t as formatHealthCheckFailure } from "./health-format-Ct4VWeSk.js";
|
|
116
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
116
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CPFKFTc-.js";
|
|
117
117
|
import { t as runTui } from "./tui-CvHbwJ3G.js";
|
|
118
118
|
import os from "node:os";
|
|
119
119
|
import path from "node:path";
|
|
@@ -37,7 +37,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
|
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
|
|
39
39
|
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-tzIqIuKx.js";
|
|
40
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
40
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-B5JWZL0E.js";
|
|
41
41
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
43
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
|
|
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
|
|
|
3473
3473
|
const wrapper = new FallbackMemoryManager({
|
|
3474
3474
|
primary,
|
|
3475
3475
|
fallbackFactory: async () => {
|
|
3476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3476
|
+
const { MemoryIndexManager } = await import("./manager-B5JWZL0E.js").then((n) => n.n);
|
|
3477
3477
|
return await MemoryIndexManager.get(params);
|
|
3478
3478
|
}
|
|
3479
3479
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
|
|
|
3486
3486
|
}
|
|
3487
3487
|
}
|
|
3488
3488
|
try {
|
|
3489
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3489
|
+
const { MemoryIndexManager } = await import("./manager-B5JWZL0E.js").then((n) => n.n);
|
|
3490
3490
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3491
3491
|
} catch (err) {
|
|
3492
3492
|
return {
|
|
@@ -47049,6 +47049,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47049
47049
|
let aborted = Boolean(params.abortSignal?.aborted);
|
|
47050
47050
|
let timedOut = false;
|
|
47051
47051
|
let timedOutDuringCompaction = false;
|
|
47052
|
+
let circuitBreakerAborted = false;
|
|
47052
47053
|
const getAbortReason = (signal) => "reason" in signal ? signal.reason : void 0;
|
|
47053
47054
|
const makeTimeoutAbortReason = () => {
|
|
47054
47055
|
const err = /* @__PURE__ */ new Error("request timed out");
|
|
@@ -47150,6 +47151,20 @@ async function runEmbeddedAttempt(params) {
|
|
|
47150
47151
|
if (consecutiveToolErrors >= TOOL_ERROR_ABORT_THRESHOLD) {
|
|
47151
47152
|
const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
|
|
47152
47153
|
log$5.error(`Agent-loop circuit breaker: ${consecutiveToolErrors} consecutive tool errors (last: ${toolName}). Aborting run ${params.runId}.`);
|
|
47154
|
+
const breakerNotice = `I hit ${consecutiveToolErrors} consecutive tool errors (last: \`${toolName}\`). The files or resources I was looking for may not exist where I expected. Let me try answering without tools.`;
|
|
47155
|
+
try {
|
|
47156
|
+
emitAgentEvent({
|
|
47157
|
+
runId: params.runId,
|
|
47158
|
+
stream: "assistant",
|
|
47159
|
+
data: {
|
|
47160
|
+
text: breakerNotice,
|
|
47161
|
+
delta: breakerNotice
|
|
47162
|
+
}
|
|
47163
|
+
});
|
|
47164
|
+
} catch (err) {
|
|
47165
|
+
log$5.warn(`circuit breaker: synthetic notice emit failed: ${String(err)}`);
|
|
47166
|
+
}
|
|
47167
|
+
circuitBreakerAborted = true;
|
|
47153
47168
|
abortRun(false, /* @__PURE__ */ new Error(`${consecutiveToolErrors} consecutive tool errors. The model may be generating corrupted tool arguments. Run aborted to prevent infinite loop.`));
|
|
47154
47169
|
} else if (consecutiveToolErrors === TOOL_ERROR_WARN_THRESHOLD) {
|
|
47155
47170
|
const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
|
|
@@ -47467,6 +47482,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
47467
47482
|
aborted,
|
|
47468
47483
|
timedOut,
|
|
47469
47484
|
timedOutDuringCompaction,
|
|
47485
|
+
circuitBreakerAborted,
|
|
47470
47486
|
promptError,
|
|
47471
47487
|
sessionIdUsed,
|
|
47472
47488
|
systemPromptReport,
|
|
@@ -48397,6 +48413,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
48397
48413
|
durationMs: Date.now() - started,
|
|
48398
48414
|
agentMeta,
|
|
48399
48415
|
aborted,
|
|
48416
|
+
circuitBreakerAborted: attempt.circuitBreakerAborted,
|
|
48400
48417
|
systemPromptReport: attempt.systemPromptReport
|
|
48401
48418
|
},
|
|
48402
48419
|
didSendViaMessagingTool: attempt.didSendViaMessagingTool,
|
|
@@ -48425,6 +48442,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
48425
48442
|
durationMs: Date.now() - started,
|
|
48426
48443
|
agentMeta,
|
|
48427
48444
|
aborted,
|
|
48445
|
+
circuitBreakerAborted: attempt.circuitBreakerAborted,
|
|
48428
48446
|
systemPromptReport: attempt.systemPromptReport,
|
|
48429
48447
|
stopReason: attempt.clientToolCall ? "tool_calls" : void 0,
|
|
48430
48448
|
pendingToolCalls: attempt.clientToolCall ? [{
|
|
@@ -48621,6 +48639,16 @@ async function runAgentTurn(params) {
|
|
|
48621
48639
|
throw err;
|
|
48622
48640
|
}
|
|
48623
48641
|
result = result;
|
|
48642
|
+
if (result.meta.circuitBreakerAborted && !params._circuitBreakerRetried) {
|
|
48643
|
+
const continuationPrompt = "(Your previous turn aborted after several consecutive tool errors because the tool calls kept failing. For THIS turn: answer the user's original question directly using your existing knowledge and the conversation history above. Do NOT attempt any tool calls — they are disabled in this turn and will not work. If you truly cannot answer without tool access, say so clearly and explain what information you would have needed.)";
|
|
48644
|
+
return runAgentTurn({
|
|
48645
|
+
...params,
|
|
48646
|
+
runId: randomUUID(),
|
|
48647
|
+
prompt: continuationPrompt,
|
|
48648
|
+
disableTools: true,
|
|
48649
|
+
_circuitBreakerRetried: true
|
|
48650
|
+
});
|
|
48651
|
+
}
|
|
48624
48652
|
const responseText = (result.payloads ?? []).filter((p) => p.text && !p.isError).map((p) => p.text).join("\n").trim();
|
|
48625
48653
|
const resolvedProvider = fallbackProvider ?? result.meta.agentMeta?.provider ?? params.provider ?? "";
|
|
48626
48654
|
const resolvedModel = fallbackModel ?? result.meta.agentMeta?.model ?? params.modelId ?? "";
|
|
@@ -61238,7 +61266,7 @@ function isVoiceChannelType(type) {
|
|
|
61238
61266
|
function createDefaultDeps() {
|
|
61239
61267
|
return {
|
|
61240
61268
|
sendMessageWhatsApp: async (...args) => {
|
|
61241
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
61269
|
+
const { sendMessageWhatsApp } = await import("./web-eJWNRwV5.js");
|
|
61242
61270
|
return await sendMessageWhatsApp(...args);
|
|
61243
61271
|
},
|
|
61244
61272
|
sendMessageTelegram: async (...args) => {
|
|
@@ -76518,7 +76546,7 @@ function loadWebLoginQr() {
|
|
|
76518
76546
|
return webLoginQrPromise;
|
|
76519
76547
|
}
|
|
76520
76548
|
function loadWebChannel() {
|
|
76521
|
-
webChannelPromise ??= import("./web-
|
|
76549
|
+
webChannelPromise ??= import("./web-eJWNRwV5.js");
|
|
76522
76550
|
return webChannelPromise;
|
|
76523
76551
|
}
|
|
76524
76552
|
function loadWhatsAppActions() {
|
|
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-C
|
|
|
9
9
|
import { n as formatCliCommand } from "./env-BDXYbTKj.js";
|
|
10
10
|
import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
|
|
11
11
|
import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BkZ9HOKT.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-C08Z0XAa.js";
|
|
13
13
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CXxrn_e2.js";
|
|
14
14
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
|
|
15
15
|
import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
|
|
@@ -940,7 +940,7 @@ function isModuleNotFoundError(err) {
|
|
|
940
940
|
}
|
|
941
941
|
async function loadPwAiModule(mode) {
|
|
942
942
|
try {
|
|
943
|
-
return await import("./pw-ai-
|
|
943
|
+
return await import("./pw-ai-CeWN4iD9.js");
|
|
944
944
|
} catch (err) {
|
|
945
945
|
if (mode === "soft") return null;
|
|
946
946
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3480,11 +3480,11 @@ function createProfileContext(opts, profile) {
|
|
|
3480
3480
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3481
3481
|
const profileState = getProfileState();
|
|
3482
3482
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3483
|
-
await (await import("./pw-ai-
|
|
3483
|
+
await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
|
|
3484
3484
|
} catch {}
|
|
3485
3485
|
if (profileState.running) await stopRunningBrowser();
|
|
3486
3486
|
try {
|
|
3487
|
-
await (await import("./pw-ai-
|
|
3487
|
+
await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
|
|
3488
3488
|
} catch {}
|
|
3489
3489
|
if (!fs.existsSync(userDataDir)) return {
|
|
3490
3490
|
moved: false,
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
|
|
4
4
|
import { i as loadConfig } from "./config-DXt3pc08.js";
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-BCWbFTGF.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { ft as loadSymiPlugins } from "./reply-
|
|
2
|
+
import { ft as loadSymiPlugins } from "./reply-C5VU6T-F.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
5
5
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
|
|
@@ -20,6 +20,13 @@ export type EmbeddedRunAttemptResult = {
|
|
|
20
20
|
timedOut: boolean;
|
|
21
21
|
/** True if the timeout occurred while compaction was in progress or pending. */
|
|
22
22
|
timedOutDuringCompaction: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* True when the abort was triggered specifically by the consecutive-tool-error
|
|
25
|
+
* circuit breaker in attempt.ts. Distinguishes this abort kind from user
|
|
26
|
+
* aborts and timeouts so `runAgentTurn` can auto-retry the run with tools
|
|
27
|
+
* disabled instead of returning a silent empty result to the caller.
|
|
28
|
+
*/
|
|
29
|
+
circuitBreakerAborted: boolean;
|
|
23
30
|
promptError: unknown;
|
|
24
31
|
sessionIdUsed: string;
|
|
25
32
|
systemPromptReport?: SessionSystemPromptReport;
|
|
@@ -32,6 +32,12 @@ export type EmbeddedPiRunMeta = {
|
|
|
32
32
|
durationMs: number;
|
|
33
33
|
agentMeta?: EmbeddedPiAgentMeta;
|
|
34
34
|
aborted?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* True when the abort was triggered by the consecutive-tool-error circuit
|
|
37
|
+
* breaker in attempt.ts. Observed by `runAgentTurn` to decide whether to
|
|
38
|
+
* schedule a no-tool recovery retry.
|
|
39
|
+
*/
|
|
40
|
+
circuitBreakerAborted?: boolean;
|
|
35
41
|
systemPromptReport?: SessionSystemPromptReport;
|
|
36
42
|
error?: {
|
|
37
43
|
kind: "context_overflow" | "compaction_failure" | "role_ordering" | "image_size" | "retry_limit";
|
|
@@ -81,6 +81,14 @@ export interface AgentTurnParams {
|
|
|
81
81
|
symipulseMs?: number;
|
|
82
82
|
/** Retry once on transient HTTP errors (502/521) with 2.5s delay. */
|
|
83
83
|
retryOnTransientError?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* @internal Set by `runAgentTurn` when it recurses into itself to recover
|
|
86
|
+
* from a tool-error circuit-breaker abort with tools disabled. Prevents
|
|
87
|
+
* infinite recursion — a second circuit-breaker event in the retry turn
|
|
88
|
+
* (which shouldn't happen since tools are off) is surfaced as-is instead
|
|
89
|
+
* of triggering another retry.
|
|
90
|
+
*/
|
|
91
|
+
_circuitBreakerRetried?: boolean;
|
|
84
92
|
channel?: ChannelContext;
|
|
85
93
|
callbacks?: AgentTurnCallbacks;
|
|
86
94
|
}
|
|
@@ -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 { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-
|
|
3
|
+
import { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-DWwxgBtH.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-BzupW6LN.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 clearHistoryEntries, A as detectBinary, At as CHANNEL_MESSAGE_ACTION_NAMES, B as logInboundDrop, C as processLineMessage, Ct as listThreadBindingsBySessionKey, Dt as BLUEBUBBLES_ACTIONS, E as attachFooterText, Et as resolveAllowlistMatchSimple, F as optionalStringEnum, G as shouldAckReactionForWhatsApp, H as createTypingCallbacks, I as stringEnum, J as mergeAllowlist, K as resolveMentionGating, L as recordInboundSession, M as resolveDiscordChannelAllowlist, N as collectDiscordAuditChannelIds, O as resolveSlackUserAllowlist, Ot as BLUEBUBBLES_ACTION_NAMES, P as formatDocsLink, Q as buildPendingHistoryContextFromMap, R as resolveControlCommandGate, S as hasMarkdownToConvert, St as autoBindSpawnedDiscordSubagent, T as createReceiptCard, Tt as formatAllowlistMatchMeta, U as removeAckReactionAfterReply, V as logTypingFailure, W as shouldAckReaction, X as DEFAULT_GROUP_HISTORY_LIMIT, Y as summarizeMapping, _t as approveDevicePairing, a as normalizeAccountId$1, at as isWSL2Sync, bt as extractToolSend, ct as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, dt as installRequestBodyLimitGuard, et as clearHistoryEntriesIfEnabled, ft as isRequestBodyLimitError, gt as createDedupeCache, ht as requestBodyErrorToText, i as listLineAccountIds, j as resolveDiscordUserAllowlist, k as resolveSlackChannelAllowlist, kt as BLUEBUBBLES_GROUP_ACTIONS, lt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, mt as readRequestBodyWithLimit, nt as recordPendingHistoryEntryIfEnabled, o as resolveDefaultLineAccountId, ot as isWSLEnv, pt as readJsonBodyWithLimit, q as resolveMentionGatingWithBypass, s as resolveLineAccount, st as isWSLSync, tt as recordPendingHistoryEntry, ut as RequestBodyLimitError, vt as listDevicePairing, w as stripMarkdown, wt as unbindThreadBindingsBySessionKey, xt as registerPluginHttpRoute, yt as rejectDevicePairing, z as logAckFailure } from "./reply-
|
|
3
|
+
import { $ as clearHistoryEntries, A as detectBinary, At as CHANNEL_MESSAGE_ACTION_NAMES, B as logInboundDrop, C as processLineMessage, Ct as listThreadBindingsBySessionKey, Dt as BLUEBUBBLES_ACTIONS, E as attachFooterText, Et as resolveAllowlistMatchSimple, F as optionalStringEnum, G as shouldAckReactionForWhatsApp, H as createTypingCallbacks, I as stringEnum, J as mergeAllowlist, K as resolveMentionGating, L as recordInboundSession, M as resolveDiscordChannelAllowlist, N as collectDiscordAuditChannelIds, O as resolveSlackUserAllowlist, Ot as BLUEBUBBLES_ACTION_NAMES, P as formatDocsLink, Q as buildPendingHistoryContextFromMap, R as resolveControlCommandGate, S as hasMarkdownToConvert, St as autoBindSpawnedDiscordSubagent, T as createReceiptCard, Tt as formatAllowlistMatchMeta, U as removeAckReactionAfterReply, V as logTypingFailure, W as shouldAckReaction, X as DEFAULT_GROUP_HISTORY_LIMIT, Y as summarizeMapping, _t as approveDevicePairing, a as normalizeAccountId$1, at as isWSL2Sync, bt as extractToolSend, ct as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, dt as installRequestBodyLimitGuard, et as clearHistoryEntriesIfEnabled, ft as isRequestBodyLimitError, gt as createDedupeCache, ht as requestBodyErrorToText, i as listLineAccountIds, j as resolveDiscordUserAllowlist, k as resolveSlackChannelAllowlist, kt as BLUEBUBBLES_GROUP_ACTIONS, lt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, mt as readRequestBodyWithLimit, nt as recordPendingHistoryEntryIfEnabled, o as resolveDefaultLineAccountId, ot as isWSLEnv, pt as readJsonBodyWithLimit, q as resolveMentionGatingWithBypass, s as resolveLineAccount, st as isWSLSync, tt as recordPendingHistoryEntry, ut as RequestBodyLimitError, vt as listDevicePairing, w as stripMarkdown, wt as unbindThreadBindingsBySessionKey, xt as registerPluginHttpRoute, yt as rejectDevicePairing, z as logAckFailure } from "./reply-DWwxgBtH.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,12 +47,12 @@ import "./paths-A0xdf3yk.js";
|
|
|
47
47
|
import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-_oc91gNi.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-CfaamthT.js";
|
|
51
51
|
import "./image-DFyINnvE.js";
|
|
52
52
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
53
53
|
import "./api-key-rotation-CBsLb_4V.js";
|
|
54
54
|
import "./diagnostic-session-state-Wd5tNeQG.js";
|
|
55
|
-
import "./manager-
|
|
55
|
+
import "./manager-B3jEviU1.js";
|
|
56
56
|
import "./sqlite-CmVrFEYD.js";
|
|
57
57
|
import "./commands-registry-BuYpmEx-.js";
|
|
58
58
|
import "./send-CGhw9mO3.js";
|
|
@@ -3970,7 +3970,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
|
|
|
3970
3970
|
* to bypass the min-interval guard (CLI use).
|
|
3971
3971
|
*/
|
|
3972
3972
|
async runL3CycleIfDue(params) {
|
|
3973
|
-
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CafShdsH.js"), import("./synthesis-
|
|
3973
|
+
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CafShdsH.js"), import("./synthesis-C_u94H_P.js")]);
|
|
3974
3974
|
const synthesize = createSynthesizer({
|
|
3975
3975
|
cfg: this.cfg,
|
|
3976
3976
|
agentId: this.agentId,
|