skykoi 2026.3.297 → 2026.3.298

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.
Files changed (40) hide show
  1. package/dist/{archive-BtfMOlWi.js → archive-VE_-Q241.js} +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{channel-options-BGf9qdmW.js → channel-options-Pva7gIlA.js} +1 -1
  5. package/dist/{channels-cli-pxwIdFz-.js → channels-cli-BzwKJWjR.js} +61 -10
  6. package/dist/cli/daemon-cli.js +1 -1
  7. package/dist/{cli-DoCf7igL.js → cli-BCgQawMP.js} +1 -1
  8. package/dist/{completion-cli-D1x57Hnz.js → completion-cli-C96DgV5e.js} +1 -1
  9. package/dist/{config-guard-Iyw9hXxR.js → config-guard-BlJBidgb.js} +13 -13
  10. package/dist/{configure-Cv6ik5WL.js → configure-D2vAztvI.js} +3 -3
  11. package/dist/{daemon-cli-CE7QWZOY.js → daemon-cli-Dap6vvDM.js} +1 -1
  12. package/dist/{deps-6i6cAi_2.js → deps-GJeZtxka.js} +1 -1
  13. package/dist/{doctor-uAI2Q7S2.js → doctor-CG8gR8dw.js} +3 -3
  14. package/dist/entry.js +1 -1
  15. package/dist/extension-api.js +1 -1
  16. package/dist/{gateway-cli-DksX9sL6.js → gateway-cli-KSKaVCB_.js} +15 -15
  17. package/dist/{github-copilot-auth-DzsPSB_G.js → github-copilot-auth-DzhuLkGD.js} +1 -1
  18. package/dist/{health-format-Cwfg7Zt_.js → health-format-kOanfH3c.js} +1 -1
  19. package/dist/{hooks-cli-DufDbzl6.js → hooks-cli-C8vEBzK_.js} +3 -3
  20. package/dist/index.js +19 -19
  21. package/dist/{installs-BGV2Zvfo.js → installs-Dx6FP9Co.js} +1 -1
  22. package/dist/{koi-D8RuS2-Y.js → koi-DiIPhiDV.js} +2 -2
  23. package/dist/{models-cli-DWQ0kLgh.js → models-cli-mZYzW9o0.js} +2 -2
  24. package/dist/{onboard-channels-CxwGie__.js → onboard-channels-DAdlexBN.js} +2 -2
  25. package/dist/{onboard-skills-BwvndrGK.js → onboard-skills-EBStR-HZ.js} +3 -3
  26. package/dist/{onboarding-DQcZx2hh.js → onboarding-D9El38XR.js} +6 -6
  27. package/dist/{plugin-registry-CHQBjqFj.js → plugin-registry-D8THcrZG.js} +1 -1
  28. package/dist/plugin-sdk/index.js +5 -5
  29. package/dist/plugin-sdk/{pi-model-discovery-CBWcyyqn.js → pi-model-discovery-szlzYGsC.js} +3 -3
  30. package/dist/{plugins-cli-ZaMVzNrW.js → plugins-cli-C8M9nSQu.js} +5 -5
  31. package/dist/{program-he1byI8Z.js → program-CPB5xA3y.js} +4 -4
  32. package/dist/{register.subclis-Bbxg5ow3.js → register.subclis-BIxY1W2W.js} +10 -10
  33. package/dist/{reply-PMxz0ujM.js → reply-BeymGeaF.js} +1 -1
  34. package/dist/{run-main-DoB-rR0d.js → run-main-D16JQxTi.js} +20 -20
  35. package/dist/{server-node-events-ChPaq-rf.js → server-node-events-caxK2Bh6.js} +3 -3
  36. package/dist/{status-CJUdb2GD.js → status-XVDJ9CSQ.js} +1 -1
  37. package/dist/{update-BpZFa_ei.js → update-4FXpqRDV.js} +1 -1
  38. package/dist/{update-cli-uGjm4Woh.js → update-cli-P2ynpwI0.js} +11 -11
  39. package/dist/{update-runner-ClTnCJiY.js → update-runner-BU8p2R5R.js} +3 -3
  40. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { Ot as require_inherits } from "./reply-PMxz0ujM.js";
2
+ import { jt as require_inherits } from "./reply-BeymGeaF.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import * as tar from "tar";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.297",
3
- "commit": "907dbfc0944b1d02e54d89d1f5dda9c0b8a2a4cf",
4
- "builtAt": "2026-06-09T23:41:26.248Z"
2
+ "version": "2026.3.298",
3
+ "commit": "4bc1372a37e01775f8887c45f1d61394a2481bbd",
4
+ "builtAt": "2026-06-09T23:48:02.092Z"
5
5
  }
@@ -1 +1 @@
1
- cbd04254836b17552f0533df4b97a92f5e7a0b4730e5317fee16cac8a40c06da
1
+ 8f35f316e781717ce1f41b16afe35c89fe01b076a2e80e2342218010b826e38f
@@ -2,7 +2,7 @@ import { O as CHAT_CHANNEL_ORDER } from "./subsystem-hATE68va.js";
2
2
  import { t as isTruthyEnvValue } from "./env-Dliiu-O6.js";
3
3
  import { n as listChannelPlugins } from "./plugins-4Dg2aV3Z.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CAaRgRRA.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CHQBjqFj.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D8THcrZG.js";
6
6
 
7
7
  //#region src/cli/channel-options.ts
8
8
  function dedupe(values) {
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { Ct as loadProviderUsageSummary, G as nylasConfigured, J as writeNylasGrant, K as nylasLinked, W as DEFAULT_NYLAS_API_URI, an as parseDiscordTarget, on as fetchChannelPermissionsDiscord, q as resolveNylasConfig, wt as formatUsageReportLines, yn as createSlackWebClient } from "./reply-PMxz0ujM.js";
2
+ import { Dt as formatUsageReportLines, Et as loadProviderUsageSummary, G as DEFAULT_NYLAS_API_URI, J as readNylasGrant, K as nylasConfigured, L as sendMessage, Sn as createSlackWebClient, X as sendMessage$1, Y as resolveNylasConfig, Z as writeNylasGrant, cn as parseDiscordTarget, ln as fetchChannelPermissionsDiscord, q as nylasLinked } from "./reply-BeymGeaF.js";
3
3
  import { b as success, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -33,7 +33,7 @@ import "./server-context-BfQWGTuX.js";
33
33
  import "./image-ops-D4trOw4b.js";
34
34
  import "./message-channel-DFpLxeOe.js";
35
35
  import "./logging-DbUpYaKc.js";
36
- import "./accounts-Grk0tpBF.js";
36
+ import { d as webAuthExists, n as resolveWhatsAppAccount, s as readWebSelfId } from "./accounts-Grk0tpBF.js";
37
37
  import "./paths-DeB-Vw2o.js";
38
38
  import "./tool-images-BotO6WKu.js";
39
39
  import "./redact-AS2CBwfj.js";
@@ -70,14 +70,14 @@ import "./daemon-runtime-DUaeQ1rH.js";
70
70
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
71
71
  import "./note-DGDjXGAF.js";
72
72
  import { t as createClackPrompter } from "./clack-prompter-CjPgjdmC.js";
73
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CxwGie__.js";
73
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-DAdlexBN.js";
74
74
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CAaRgRRA.js";
75
- import "./archive-BtfMOlWi.js";
75
+ import "./archive-VE_-Q241.js";
76
76
  import "./skill-scanner-oZNfZVUO.js";
77
- import "./installs-BGV2Zvfo.js";
77
+ import "./installs-Dx6FP9Co.js";
78
78
  import { t as collectChannelStatusIssues } from "./channels-status-issues-DBv-Cc4W.js";
79
- import { n as hasExplicitOptions } from "./plugin-registry-CHQBjqFj.js";
80
- import { t as formatCliChannelOptions } from "./channel-options-BGf9qdmW.js";
79
+ import { n as hasExplicitOptions } from "./plugin-registry-D8THcrZG.js";
80
+ import { t as formatCliChannelOptions } from "./channel-options-Pva7gIlA.js";
81
81
  import { t as buildChannelAccountSnapshot } from "./status-CpFdq_6F.js";
82
82
  import { t as parseLogLine } from "./parse-log-line-DSgxApry.js";
83
83
  import { t as ensureLocalGatewayRunning } from "./ensure-local-gateway-BxT0FHAY.js";
@@ -1493,6 +1493,47 @@ async function runChannelLogin(opts, runtime = defaultRuntime) {
1493
1493
  });
1494
1494
  }
1495
1495
  /**
1496
+ * After a connection is freshly made, message the USER on that very channel so
1497
+ * they SEE it works — a self-test confirmation on each. Only fires for accounts
1498
+ * that were not already linked before this run (so re-runs never spam). Always
1499
+ * best-effort and silent on failure; never blocks setup.
1500
+ */
1501
+ async function sendConnectionSelfTests(runtime, newlyConnected) {
1502
+ const cfg = loadConfig();
1503
+ if (newlyConnected.whatsapp) try {
1504
+ const account = resolveWhatsAppAccount({ cfg });
1505
+ if (await webAuthExists(account.authDir)) {
1506
+ const self = readWebSelfId(account.authDir);
1507
+ const to = self.e164 ?? self.jid;
1508
+ if (to) {
1509
+ await sendMessage({
1510
+ cfg,
1511
+ channel: "whatsapp",
1512
+ to,
1513
+ content: "✅ SkyKoi is connected here. Just ask me and I can message or reply for you on WhatsApp.",
1514
+ bestEffort: true
1515
+ });
1516
+ runtime.log(success("Sent you a WhatsApp confirmation so you can see it works."));
1517
+ }
1518
+ }
1519
+ } catch (err) {
1520
+ runtime.log(info(`(WhatsApp confirmation skipped: ${err?.message ?? err})`));
1521
+ }
1522
+ if (newlyConnected.email) try {
1523
+ const grant = readNylasGrant();
1524
+ if (grant?.email) {
1525
+ await sendMessage$1({
1526
+ to: [{ email: grant.email }],
1527
+ subject: "✅ SkyKoi is connected",
1528
+ body: "Your email and calendar are connected. Just ask me to read, reply, send, or schedule and I'll handle it."
1529
+ });
1530
+ runtime.log(success("Sent you an email confirmation so you can see it works."));
1531
+ }
1532
+ } catch (err) {
1533
+ runtime.log(info(`(Email confirmation skipped: ${err?.message ?? err})`));
1534
+ }
1535
+ }
1536
+ /**
1496
1537
  * Link EVERY channel that supports an interactive login (QR / pairing), one
1497
1538
  * after another in a single pass, then restart the gateway exactly ONCE so all
1498
1539
  * the freshly-linked sessions come online together. This is the setup-time
@@ -1500,10 +1541,14 @@ async function runChannelLogin(opts, runtime = defaultRuntime) {
1500
1541
  * only pays a single restart at the very end, instead of one restart per
1501
1542
  * channel. Channels that are already linked skip themselves quickly (their
1502
1543
  * login is idempotent), and a failure on one channel never blocks the rest.
1544
+ * After the restart, each NEWLY connected account messages the user on itself as
1545
+ * a visible "it works" confirmation.
1503
1546
  */
1504
1547
  async function runChannelLoginAll(opts = {}, runtime = defaultRuntime) {
1505
1548
  setVerbose(Boolean(opts.verbose));
1506
1549
  const cfg = loadConfig();
1550
+ const waLinkedBefore = await webAuthExists(resolveWhatsAppAccount({ cfg }).authDir);
1551
+ const emailLinkedBefore = nylasLinked();
1507
1552
  const linkable = listChannelPlugins().filter((plugin) => plugin.auth?.login);
1508
1553
  if (linkable.length === 0) {
1509
1554
  runtime.log(info("No channels support interactive linking right now."));
@@ -1537,15 +1582,21 @@ async function runChannelLoginAll(opts = {}, runtime = defaultRuntime) {
1537
1582
  runtime.log(info("\n──────── Email & Calendar (Gmail / Outlook / iCloud) ────────"));
1538
1583
  const res = await runNylasConnect({ log: (m) => runtime.log(info(m)) });
1539
1584
  if (!res.ok) runtime.log(danger(`Email link skipped: ${res.error} (you can rerun later)`));
1540
- } else runtime.log(info("\n──────── Email & Calendar ────────\nNot configured yet — set NYLAS_API_KEY in ~/.skykoi/.env to enable, then rerun."));
1585
+ } else runtime.log(info("\n──────── Email & Calendar ────────\nNot set up yet — skipping."));
1541
1586
  runtime.log(info("\nAll channels processed. Restarting the gateway once so the new sessions come online…"));
1542
1587
  await new Promise((resolve) => {
1543
1588
  execFile("pkill", ["-f", "skykoi-gateway"], () => resolve());
1544
1589
  });
1545
1590
  await new Promise((resolve) => setTimeout(resolve, 1500));
1546
1591
  const result = await ensureLocalGatewayRunning();
1547
- if (result.ok) runtime.log(success("Gateway restarted — your channels are linked and ready to send."));
1548
- else runtime.log(danger(`Gateway restart issue: ${result.error}. Try \`koi gateway run\`.`));
1592
+ if (result.ok) {
1593
+ runtime.log(success("Gateway restarted your channels are linked and ready to send."));
1594
+ await new Promise((resolve) => setTimeout(resolve, 5e3));
1595
+ await sendConnectionSelfTests(runtime, {
1596
+ whatsapp: !waLinkedBefore,
1597
+ email: !emailLinkedBefore
1598
+ });
1599
+ } else runtime.log(danger(`Gateway restart issue: ${result.error}. Try \`koi gateway run\`.`));
1549
1600
  }
1550
1601
  async function runChannelLogout(opts, runtime = defaultRuntime) {
1551
1602
  const channelInput = opts.channel ?? DEFAULT_CHAT_CHANNEL;
@@ -1,2 +1,2 @@
1
1
  // Legacy shim for pre-tsdown update-cli imports.
2
- export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-CE7QWZOY.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-Dap6vvDM.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { St as loadSKYKOIPlugins } from "./reply-PMxz0ujM.js";
2
+ import { Tt as loadSKYKOIPlugins } from "./reply-BeymGeaF.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-Bbxg5ow3.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-BIxY1W2W.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { Ht as registerMemoryCli, P as runMessageAction, U as CHANNEL_MESSAGE_ACTION_NAMES, Ut as runMemoryStatus, V as formatTargetDisplay, _t as CHANNEL_TARGETS_DESCRIPTION, tr as lookupContextTokens, vt as CHANNEL_TARGET_DESCRIPTION } from "./reply-PMxz0ujM.js";
1
+ import { Gt as registerMemoryCli, H as formatTargetDisplay, Kt as runMemoryStatus, P as runMessageAction, W as CHANNEL_MESSAGE_ACTION_NAMES, bt as CHANNEL_TARGETS_DESCRIPTION, ir as lookupContextTokens, xt as CHANNEL_TARGET_DESCRIPTION } from "./reply-BeymGeaF.js";
2
2
  import { I as normalizeChatChannelId, M as getChatChannelMeta, c as restoreTerminalState, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose } from "./subsystem-hATE68va.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -21,31 +21,31 @@ import { n as runCommandWithRuntime } from "./cli-utils-B9oLkk15.js";
21
21
  import { n as withProgress } from "./progress-DpXGZ7eP.js";
22
22
  import { a as ensureWorkspaceAndSessions, c as handleReset, d as openUrl, h as resolveControlUiLinks, i as detectBrowserOpenSupport, l as moveToTrash, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, t as DEFAULT_WORKSPACE, v as waitForGatewayReachable } from "./onboard-helpers-BfbPZ2qa.js";
23
23
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-VlLGOsyw.js";
24
- import { t as createDefaultDeps } from "./deps-6i6cAi_2.js";
24
+ import { t as createDefaultDeps } from "./deps-GJeZtxka.js";
25
25
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DUaeQ1rH.js";
26
26
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
27
27
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-C1O4qtJt.js";
28
28
  import { t as WizardCancelledError } from "./prompts-BI__va99.js";
29
29
  import { t as createClackPrompter } from "./clack-prompter-CjPgjdmC.js";
30
- import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-DQcZx2hh.js";
31
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BwvndrGK.js";
32
- import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DzsPSB_G.js";
33
- import { n as setupChannels } from "./onboard-channels-CxwGie__.js";
34
- import { l as healthCommand } from "./health-format-Cwfg7Zt_.js";
30
+ import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-D9El38XR.js";
31
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-EBStR-HZ.js";
32
+ import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DzhuLkGD.js";
33
+ import { n as setupChannels } from "./onboard-channels-DAdlexBN.js";
34
+ import { l as healthCommand } from "./health-format-kOanfH3c.js";
35
35
  import { t as renderTable } from "./table-3qkY6e1T.js";
36
36
  import { t as resolveGatewayService } from "./service-CYp-ZMZO.js";
37
37
  import { r as isSystemdUserServiceAvailable } from "./systemd-BwrS2WmZ.js";
38
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-Bbxg5ow3.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-BIxY1W2W.js";
39
39
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CyFabm9F.js";
40
40
  import { t as formatHelpExamples } from "./help-format-lN5-Ns06.js";
41
41
  import { t as adminUnlockCommand } from "./admin-unlock-kahk3vPh.js";
42
42
  import { r as readAuthFile, t as loginCommand } from "./login-CmBbN0eq.js";
43
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-D8RuS2-Y.js";
44
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-CHQBjqFj.js";
43
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-DiIPhiDV.js";
44
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-D8THcrZG.js";
45
45
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-Bw8Inumq.js";
46
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-Cv6ik5WL.js";
46
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-D2vAztvI.js";
47
47
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Dppl0X6M.js";
48
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-uAI2Q7S2.js";
48
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CG8gR8dw.js";
49
49
  import { fileURLToPath } from "node:url";
50
50
  import fs from "node:fs";
51
51
  import path from "node:path";
@@ -2797,7 +2797,7 @@ async function loadValidConfig() {
2797
2797
  }
2798
2798
  function registerConfigCli(program) {
2799
2799
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.skykoi.com/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2800
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-Cv6ik5WL.js").then((n) => n.t);
2800
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-D2vAztvI.js").then((n) => n.t);
2801
2801
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2802
2802
  if (sections.length === 0) {
2803
2803
  await configureCommand(defaultRuntime);
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-C1O4qtJt.js";
15
15
  import { t as note$1 } from "./note-DGDjXGAF.js";
16
16
  import { t as WizardCancelledError } from "./prompts-BI__va99.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-CjPgjdmC.js";
18
- import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-BwvndrGK.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CxwGie__.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-Cwfg7Zt_.js";
18
+ import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-EBStR-HZ.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-DAdlexBN.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-kOanfH3c.js";
21
21
  import { t as resolveGatewayService } from "./service-CYp-ZMZO.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Dppl0X6M.js";
23
23
  import { confirm, intro, outro, select, text } from "@clack/prompts";
@@ -15,7 +15,7 @@ import { n as withProgress } from "./progress-DpXGZ7eP.js";
15
15
  import { h as resolveControlUiLinks } from "./onboard-helpers-BfbPZ2qa.js";
16
16
  import { n as isWSLEnv, t as isWSL } from "./wsl-uZioIdb1.js";
17
17
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-BKhjbqCK.js";
18
- import { t as createDefaultDeps } from "./deps-6i6cAi_2.js";
18
+ import { t as createDefaultDeps } from "./deps-GJeZtxka.js";
19
19
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DUaeQ1rH.js";
20
20
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-CYp-ZMZO.js";
21
21
  import { r as isSystemdUserServiceAvailable } from "./systemd-BwrS2WmZ.js";
@@ -1,4 +1,4 @@
1
- import { gn as sendMessageWhatsApp, kt as sendMessageIMessage, nn as sendMessageTelegram, rn as sendMessageDiscord, vn as sendMessageSlack } from "./reply-PMxz0ujM.js";
1
+ import { Mt as sendMessageIMessage, an as sendMessageTelegram, on as sendMessageDiscord, xn as sendMessageSlack, yn as sendMessageWhatsApp } from "./reply-BeymGeaF.js";
2
2
  import { b as sendMessageSignal } from "./deliver-8e9qnJCU.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { St as loadSKYKOIPlugins, lr as loadModelCatalog } from "./reply-PMxz0ujM.js";
1
+ import { Tt as loadSKYKOIPlugins, fr as loadModelCatalog } from "./reply-BeymGeaF.js";
2
2
  import { s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
3
3
  import { d as resolveIsNixMode, f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { a as buildKoiMainSessionKey, l as normalizeKoiId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
@@ -27,8 +27,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
27
27
  import { n as logConfigUpdated } from "./logging-C1O4qtJt.js";
28
28
  import { t as note$1 } from "./note-DGDjXGAF.js";
29
29
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CAaRgRRA.js";
30
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-Cwfg7Zt_.js";
31
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-ClTnCJiY.js";
30
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-kOanfH3c.js";
31
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-BU8p2R5R.js";
32
32
  import { i as resolveGatewayAuth } from "./auth-oGq4xOCr.js";
33
33
  import { t as buildWorkspaceSkillStatus } from "./skills-status-MQ9kq-A7.js";
34
34
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-CYp-ZMZO.js";
package/dist/entry.js CHANGED
@@ -246,7 +246,7 @@ if (!ensureExperimentalWarningSuppressed()) {
246
246
  applyCliProfileEnv({ profile: parsed.profile });
247
247
  process$1.argv = parsed.argv;
248
248
  }
249
- import("./run-main-DoB-rR0d.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
249
+ import("./run-main-D16JQxTi.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
250
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
251
251
  process$1.exitCode = 1;
252
252
  });
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { Sn as resolveKoiIdentity, c as runEmbeddedPiKoi, wr as resolveKoiTimeoutMs } from "./reply-PMxz0ujM.js";
2
+ import { Dr as resolveKoiTimeoutMs, Tn as resolveKoiIdentity, c as runEmbeddedPiKoi } from "./reply-BeymGeaF.js";
3
3
  import "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
2
  import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, R as normalizeElevatedLevel, V as normalizeUsageDisplay, W as supportsXHighThinking, z as normalizeReasoningLevel } from "./pi-embedded-helpers-Q1hWOaK2.js";
3
- import { $ as isGatewaySigusr1RestartExternallyAllowed, $t as getLastHeartbeatEvent, A as readSessionMessages, An as OPENAI_TTS_MODELS, At as getRemoteSkillEligibility, B as resolveSessionDeliveryTarget, Bn as setTtsEnabled, Bt as getHookType, C as listSessionsFromStore, Cn as formatUserTime, Ct as loadProviderUsageSummary, D as resolveSessionModelRef, Dn as createInternalHookEvent, Dt as handleSlackHttpRequest, E as resolveGatewaySessionStoreTarget, En as clearInternalHooks, F as ensureOutboundSessionEntry, Fn as resolveTtsApiKey, Ft as setSkillsRemoteRegistry, Gn as setCommandLaneConcurrency, Gt as createReplyPrefixOptions, H as resetDirectoryCache, Hn as textToSpeech, I as resolveOutboundSessionRoute, In as resolveTtsAutoMode, It as getSkillsSnapshotVersion, Jn as stopDiagnosticHeartbeat, Jt as registerUnhandledRejectionHandler, Kn as CommandLane, Kt as normalizeGroupActivation, Ln as resolveTtsConfig, Lt as registerSkillsChangeListener, M as resolveSessionTranscriptCandidates, Mn as getTtsProvider, Mt as recordRemoteNodeInfo, N as stripEnvelopeFromMessages, Nn as isTtsEnabled, Nt as refreshRemoteBinsForConnectedNodes, O as archiveFileOnDisk, On as registerInternalHook, Pn as isTtsProviderConfigured, Pt as refreshRemoteNodeBins, Q as consumeGatewaySigusr1RestartAuthorization, Rn as resolveTtsPrefsPath, Rt as buildSafeExternalPrompt, S as listKoisForGateway, Sn as resolveKoiIdentity, Sr as normalizeMimeList, St as loadSKYKOIPlugins, T as loadSessionEntry, Tn as resolveUserTimezone, Vn as setTtsProvider, Vt as isExternalHookSession, Xn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Xt as buildHistoryContextFromEntries, Y as runWithModelFallback, Yn as isDiagnosticsEnabled, Z as authorizeGatewaySigusr1Restart, Zt as resolveHeartbeatVisibility, _ as getCanvasResource, _n as normalizePollInput, _r as DEFAULT_INPUT_PDF_MAX_PIXELS, a as normalizeSendPolicy, ar as parseVerboseOverride, b as replaceCanvasResource, br as extractFileContentFromSource, c as runEmbeddedPiKoi, cn as createReplyDispatcher, ct as writeRestartSentinel, d as waitForEmbeddedPiRunEnd, dn as stopSubkoisForRequester, dr as DEFAULT_INPUT_FILE_MAX_CHARS, dt as inferLegacyName, en as onHeartbeatEvent, er as stripHeartbeatToken, et as scheduleGatewaySigusr1Restart, fn as findSubkoiRunByChildSessionKey, fr as DEFAULT_INPUT_FILE_MIMES, ft as normalizeOptionalKoiId, g as canvasUri, gr as DEFAULT_INPUT_PDF_MAX_PAGES, gt as migrateLegacyCronPayload, h as createSKYKOITools, hr as DEFAULT_INPUT_MAX_REDIRECTS, ht as normalizeRequiredName, i as runCliKoi, in as getChannelActivity, ir as applyVerboseOverride, it as formatRestartSentinelMessage, j as readSessionPreviewItemsFromTranscript, jn as OPENAI_TTS_VOICES, jt as primeRemoteSkillsCache, k as capArrayByJsonBytes, kn as triggerInternalHook, l as abortEmbeddedPiRun, ln as formatZonedTimestamp, lr as loadModelCatalog, lt as normalizeCronJobCreate, m as initRuntimeContext, mn as initSubkoiRegistry, mr as DEFAULT_INPUT_IMAGE_MIMES, mt as normalizePayloadToSystemText, n as getCliSessionId, nt as consumeRestartSentinel, o as resolveSendPolicy, or as enqueueSystemEvent, ot as summarizeRestartSentinel, pn as findSubkoiRunByRunId, pr as DEFAULT_INPUT_IMAGE_MAX_BYTES, pt as normalizeOptionalText, qn as startDiagnosticHeartbeat, r as setCliSessionId, rr as applyModelOverrideToSessionEntry, rt as formatDoctorNonInteractiveHint, s as clearSessionQueues, sn as dispatchInboundMessage, sr as isSystemEventContextChanged, tr as lookupContextTokens, tt as setGatewaySigusr1RestartPolicy, un as isAbortTrigger, ur as DEFAULT_INPUT_FILE_MAX_BYTES, ut as normalizeCronJobPatch, v as listCanvasUris, vr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, w as loadCombinedSessionStoreForGateway, wn as resolveUserTimeFormat, wr as resolveKoiTimeoutMs, x as resolveAnnounceTargetFromKey, xr as extractImageContentFromSource, xt as getPluginToolMeta, y as onCanvasChange, yr as DEFAULT_INPUT_TIMEOUT_MS, yt as requestHeartbeatNow, z as resolveOutboundTarget, zn as resolveTtsProviderOrder, zt as detectSuspiciousPatterns } from "./reply-PMxz0ujM.js";
3
+ import { $n as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, $t as buildHistoryContextFromEntries, A as readSessionMessages, An as createInternalHookEvent, At as handleSlackHttpRequest, B as resolveOutboundTarget, Bn as resolveTtsConfig, Bt as registerSkillsChangeListener, C as listSessionsFromStore, Cr as extractFileContentFromSource, D as resolveSessionModelRef, Dn as resolveUserTimeFormat, Dr as resolveKoiTimeoutMs, E as resolveGatewaySessionStoreTarget, En as formatUserTime, Et as loadProviderUsageSummary, F as ensureOutboundSessionEntry, Fn as getTtsProvider, Ft as recordRemoteNodeInfo, Gn as textToSpeech, Hn as resolveTtsProviderOrder, Ht as detectSuspiciousPatterns, I as resolveOutboundSessionRoute, In as isTtsEnabled, It as refreshRemoteBinsForConnectedNodes, Jn as setCommandLaneConcurrency, Jt as createReplyPrefixOptions, Ln as isTtsProviderConfigured, Lt as refreshRemoteNodeBins, M as resolveSessionTranscriptCandidates, Mn as triggerInternalHook, N as stripEnvelopeFromMessages, Nn as OPENAI_TTS_MODELS, Nt as getRemoteSkillEligibility, O as archiveFileOnDisk, On as resolveUserTimezone, Pn as OPENAI_TTS_VOICES, Pt as primeRemoteSkillsCache, Q as runWithModelFallback, Qn as isDiagnosticsEnabled, Rn as resolveTtsApiKey, Rt as setSkillsRemoteRegistry, S as listKoisForGateway, Sr as DEFAULT_INPUT_TIMEOUT_MS, St as requestHeartbeatNow, T as loadSessionEntry, Tn as resolveKoiIdentity, Tr as normalizeMimeList, Tt as loadSKYKOIPlugins, U as resetDirectoryCache, Un as setTtsEnabled, Ut as getHookType, V as resolveSessionDeliveryTarget, Vn as resolveTtsPrefsPath, Vt as buildSafeExternalPrompt, Wn as setTtsProvider, Wt as isExternalHookSession, Xn as startDiagnosticHeartbeat, Yn as CommandLane, Yt as normalizeGroupActivation, Zn as stopDiagnosticHeartbeat, Zt as registerUnhandledRejectionHandler, _ as getCanvasResource, _n as initSubkoiRegistry, _r as DEFAULT_INPUT_IMAGE_MIMES, _t as normalizePayloadToSystemText, a as normalizeSendPolicy, at as consumeRestartSentinel, b as replaceCanvasResource, bn as normalizePollInput, br as DEFAULT_INPUT_PDF_MAX_PIXELS, c as runEmbeddedPiKoi, cr as parseVerboseOverride, d as waitForEmbeddedPiRunEnd, dn as createReplyDispatcher, dt as writeRestartSentinel, en as resolveHeartbeatVisibility, et as authorizeGatewaySigusr1Restart, fn as formatZonedTimestamp, fr as loadModelCatalog, ft as normalizeCronJobCreate, g as canvasUri, gn as findSubkoiRunByRunId, gr as DEFAULT_INPUT_IMAGE_MAX_BYTES, gt as normalizeOptionalText, h as createSKYKOITools, hn as findSubkoiRunByChildSessionKey, hr as DEFAULT_INPUT_FILE_MIMES, ht as normalizeOptionalKoiId, i as runCliKoi, ir as lookupContextTokens, it as setGatewaySigusr1RestartPolicy, j as readSessionPreviewItemsFromTranscript, jn as registerInternalHook, k as capArrayByJsonBytes, kn as clearInternalHooks, l as abortEmbeddedPiRun, lr as enqueueSystemEvent, lt as summarizeRestartSentinel, m as initRuntimeContext, mn as stopSubkoisForRequester, mr as DEFAULT_INPUT_FILE_MAX_CHARS, mt as inferLegacyName, n as getCliSessionId, nn as getLastHeartbeatEvent, nt as isGatewaySigusr1RestartExternallyAllowed, o as resolveSendPolicy, or as applyModelOverrideToSessionEntry, ot as formatDoctorNonInteractiveHint, pn as isAbortTrigger, pr as DEFAULT_INPUT_FILE_MAX_BYTES, pt as normalizeCronJobPatch, r as setCliSessionId, rn as onHeartbeatEvent, rr as stripHeartbeatToken, rt as scheduleGatewaySigusr1Restart, s as clearSessionQueues, sn as getChannelActivity, sr as applyVerboseOverride, st as formatRestartSentinelMessage, tt as consumeGatewaySigusr1RestartAuthorization, un as dispatchInboundMessage, ur as isSystemEventContextChanged, v as listCanvasUris, vr as DEFAULT_INPUT_MAX_REDIRECTS, vt as normalizeRequiredName, w as loadCombinedSessionStoreForGateway, wr as extractImageContentFromSource, wt as getPluginToolMeta, x as resolveAnnounceTargetFromKey, xr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, y as onCanvasChange, yr as DEFAULT_INPUT_PDF_MAX_PAGES, yt as migrateLegacyCronPayload, zn as resolveTtsAutoMode, zt as getSkillsSnapshotVersion } from "./reply-BeymGeaF.js";
4
4
  import { C as getLogger, D as CHANNEL_IDS, L as getActivePluginRegistry, S as getChildLogger, a as setConsoleTimestampPrefix, i as setConsoleSubsystemFilter, k as DEFAULT_CHAT_CHANNEL, n as runtimeForLogger, s as defaultRuntime, t as createSubsystemLogger, v as setVerbose, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
5
5
  import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
6
6
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -74,7 +74,7 @@ import { n as createBrowserControlContext, r as startBrowserControlServiceFromCo
74
74
  import { t as parseAbsoluteTimeMs } from "./parse-CpfPstIh.js";
75
75
  import { n as resolveMessageChannelSelection } from "./channel-selection-C4X4L8u3.js";
76
76
  import { i as readEventsSince, n as clearEventLogForSession, o as subscribeAll, r as hydrateSession, t as appendEvent } from "./event-log-Bp_kcsW9.js";
77
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-6i6cAi_2.js";
77
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-GJeZtxka.js";
78
78
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-B9nalljD.js";
79
79
  import { t as ensureSKYKOICliOnPath } from "./path-env-DGypuWGK.js";
80
80
  import "./daemon-runtime-DUaeQ1rH.js";
@@ -83,16 +83,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
83
83
  import "./logging-C1O4qtJt.js";
84
84
  import "./note-DGDjXGAF.js";
85
85
  import { t as WizardCancelledError } from "./prompts-BI__va99.js";
86
- import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-DQcZx2hh.js";
87
- import { n as installSkill } from "./onboard-skills-BwvndrGK.js";
88
- import "./github-copilot-auth-DzsPSB_G.js";
89
- import "./onboard-channels-CxwGie__.js";
86
+ import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-D9El38XR.js";
87
+ import { n as installSkill } from "./onboard-skills-EBStR-HZ.js";
88
+ import "./github-copilot-auth-DzhuLkGD.js";
89
+ import "./onboard-channels-DAdlexBN.js";
90
90
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CAaRgRRA.js";
91
- import "./archive-BtfMOlWi.js";
91
+ import "./archive-VE_-Q241.js";
92
92
  import "./skill-scanner-oZNfZVUO.js";
93
- import "./installs-BGV2Zvfo.js";
94
- import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-Cwfg7Zt_.js";
95
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-ClTnCJiY.js";
93
+ import "./installs-Dx6FP9Co.js";
94
+ import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-kOanfH3c.js";
95
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BU8p2R5R.js";
96
96
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-oGq4xOCr.js";
97
97
  import { i as probeGateway } from "./audit-BSp4Sphl.js";
98
98
  import "./table-3qkY6e1T.js";
@@ -102,16 +102,16 @@ import { p as resolveGatewayStateDir } from "./systemd-BwrS2WmZ.js";
102
102
  import "./service-audit-CtA-SSNX.js";
103
103
  import "./node-service-CMlPSxKk.js";
104
104
  import "./channels-status-issues-DBv-Cc4W.js";
105
- import "./register.subclis-Bbxg5ow3.js";
106
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-D8RuS2-Y.js";
105
+ import "./register.subclis-BIxY1W2W.js";
106
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-DiIPhiDV.js";
107
107
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-BV1FENWO.js";
108
108
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-BSmdJTHl.js";
109
- import "./completion-cli-D1x57Hnz.js";
109
+ import "./completion-cli-C96DgV5e.js";
110
110
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DAyfqKUD.js";
111
111
  import "./tui-Cp9kceCv.js";
112
112
  import { t as buildChannelAccountSnapshot } from "./status-CpFdq_6F.js";
113
113
  import "./shared-BIgTSNKP.js";
114
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-CE7QWZOY.js";
114
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-Dap6vvDM.js";
115
115
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-JypYb4w7.js";
116
116
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-BSxE5LhM.js";
117
117
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-RyZRhi5-.js";
@@ -11175,7 +11175,7 @@ const nodeHandlers = {
11175
11175
  const p = params;
11176
11176
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
11177
11177
  await respondUnavailableOnThrow(respond, async () => {
11178
- const { handleNodeEvent } = await import("./server-node-events-ChPaq-rf.js");
11178
+ const { handleNodeEvent } = await import("./server-node-events-caxK2Bh6.js");
11179
11179
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11180
11180
  await handleNodeEvent({
11181
11181
  deps: context.deps,
@@ -1,4 +1,4 @@
1
- import { St as loadSKYKOIPlugins } from "./reply-PMxz0ujM.js";
1
+ import { Tt as loadSKYKOIPlugins } from "./reply-BeymGeaF.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
4
4
  import { b as sleep } from "./utils-D019Z2NU.js";
@@ -1,4 +1,4 @@
1
- import { $n as resolveHeartbeatPrompt$1, Kn as CommandLane, L as resolveHeartbeatDeliveryTarget, Qn as isHeartbeatContentEffectivelyEmpty, Qt as emitHeartbeatEvent, R as resolveHeartbeatSenderContext, Tn as resolveUserTimezone, Un as enqueueCommandInLane, Wn as getQueueSize, Xn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Zn as DEFAULT_HEARTBEAT_EVERY, Zt as resolveHeartbeatVisibility, bt as setHeartbeatWakeHandler, cr as peekSystemEvents, er as stripHeartbeatToken, t as getReplyFromConfig, tn as resolveIndicatorType, u as isEmbeddedPiRunActive, xn as resolveEffectiveMessagesConfig, yt as requestHeartbeatNow } from "./reply-PMxz0ujM.js";
1
+ import { $n as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Ct as setHeartbeatWakeHandler, Kn as enqueueCommandInLane, On as resolveUserTimezone, R as resolveHeartbeatDeliveryTarget, St as requestHeartbeatNow, Yn as CommandLane, dr as peekSystemEvents, en as resolveHeartbeatVisibility, er as DEFAULT_HEARTBEAT_EVERY, in as resolveIndicatorType, nr as resolveHeartbeatPrompt$1, qn as getQueueSize, rr as stripHeartbeatToken, t as getReplyFromConfig, tn as emitHeartbeatEvent, tr as isHeartbeatContentEffectivelyEmpty, u as isEmbeddedPiRunActive, wn as resolveEffectiveMessagesConfig, z as resolveHeartbeatSenderContext } from "./reply-BeymGeaF.js";
2
2
  import { p as info, s as defaultRuntime, t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
4
4
  import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import "./reply-PMxz0ujM.js";
2
+ import "./reply-BeymGeaF.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -64,10 +64,10 @@ import "./session-cost-usage-C1dZUsv0.js";
64
64
  import "./control-service-Deb7vSlB.js";
65
65
  import "./channel-selection-C4X4L8u3.js";
66
66
  import "./event-log-Bp_kcsW9.js";
67
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BtfMOlWi.js";
67
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-VE_-Q241.js";
68
68
  import { t as renderTable } from "./table-3qkY6e1T.js";
69
69
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-DAyfqKUD.js";
70
- import { t as buildPluginStatusReport } from "./status-CJUdb2GD.js";
70
+ import { t as buildPluginStatusReport } from "./status-XVDJ9CSQ.js";
71
71
  import fs from "node:fs";
72
72
  import path from "node:path";
73
73
  import os from "node:os";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import "./pi-embedded-helpers-Q1hWOaK2.js";
3
- import { Cr as applyTemplate, Wt as monitorWebChannel, Yt as waitForever, qt as installUnhandledRejectionHandler, t as getReplyFromConfig } from "./reply-PMxz0ujM.js";
3
+ import { Er as applyTemplate, Qt as waitForever, Xt as installUnhandledRejectionHandler, qt as monitorWebChannel, t as getReplyFromConfig } from "./reply-BeymGeaF.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-hATE68va.js";
5
5
  import "./paths-VdmjGGyc.js";
6
6
  import "./theme-C5EwWDWE.js";
@@ -64,27 +64,27 @@ import "./session-cost-usage-C1dZUsv0.js";
64
64
  import "./control-service-Deb7vSlB.js";
65
65
  import "./channel-selection-C4X4L8u3.js";
66
66
  import "./event-log-Bp_kcsW9.js";
67
- import { t as createDefaultDeps } from "./deps-6i6cAi_2.js";
67
+ import { t as createDefaultDeps } from "./deps-GJeZtxka.js";
68
68
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-B9nalljD.js";
69
69
  import { t as loadDotEnv } from "./dotenv-2TPorV-O.js";
70
70
  import { t as isMainModule } from "./is-main-IPFNRi1N.js";
71
71
  import { t as ensureSKYKOICliOnPath } from "./path-env-DGypuWGK.js";
72
72
  import { g as assertSupportedRuntime } from "./daemon-runtime-DUaeQ1rH.js";
73
73
  import "./ports-C1z23xs4.js";
74
- import "./config-guard-Iyw9hXxR.js";
74
+ import "./config-guard-BlJBidgb.js";
75
75
  import "./logging-C1O4qtJt.js";
76
76
  import "./note-DGDjXGAF.js";
77
77
  import "./clack-prompter-CjPgjdmC.js";
78
- import "./onboarding-DQcZx2hh.js";
79
- import "./onboard-skills-BwvndrGK.js";
80
- import "./github-copilot-auth-DzsPSB_G.js";
81
- import "./onboard-channels-CxwGie__.js";
78
+ import "./onboarding-D9El38XR.js";
79
+ import "./onboard-skills-EBStR-HZ.js";
80
+ import "./github-copilot-auth-DzhuLkGD.js";
81
+ import "./onboard-channels-DAdlexBN.js";
82
82
  import "./plugin-auto-enable-CAaRgRRA.js";
83
- import "./archive-BtfMOlWi.js";
83
+ import "./archive-VE_-Q241.js";
84
84
  import "./skill-scanner-oZNfZVUO.js";
85
- import "./installs-BGV2Zvfo.js";
86
- import "./health-format-Cwfg7Zt_.js";
87
- import "./update-runner-ClTnCJiY.js";
85
+ import "./installs-Dx6FP9Co.js";
86
+ import "./health-format-kOanfH3c.js";
87
+ import "./update-runner-BU8p2R5R.js";
88
88
  import "./auth-oGq4xOCr.js";
89
89
  import "./audit-BSp4Sphl.js";
90
90
  import "./table-3qkY6e1T.js";
@@ -94,23 +94,23 @@ import "./systemd-BwrS2WmZ.js";
94
94
  import "./service-audit-CtA-SSNX.js";
95
95
  import "./node-service-CMlPSxKk.js";
96
96
  import "./channels-status-issues-DBv-Cc4W.js";
97
- import "./register.subclis-Bbxg5ow3.js";
97
+ import "./register.subclis-BIxY1W2W.js";
98
98
  import "./gateway-rpc-CyFabm9F.js";
99
99
  import "./help-format-lN5-Ns06.js";
100
100
  import "./admin-unlock-kahk3vPh.js";
101
- import "./koi-D8RuS2-Y.js";
102
- import "./plugin-registry-CHQBjqFj.js";
103
- import "./configure-Cv6ik5WL.js";
101
+ import "./koi-DiIPhiDV.js";
102
+ import "./plugin-registry-D8THcrZG.js";
103
+ import "./configure-D2vAztvI.js";
104
104
  import "./systemd-linger-Dppl0X6M.js";
105
105
  import "./widearea-dns-BV1FENWO.js";
106
106
  import "./bonjour-discovery-BSmdJTHl.js";
107
107
  import "./auth-health-B3BNAX3f.js";
108
- import "./doctor-uAI2Q7S2.js";
109
- import "./completion-cli-D1x57Hnz.js";
108
+ import "./doctor-CG8gR8dw.js";
109
+ import "./completion-cli-C96DgV5e.js";
110
110
  import "./hooks-status-DAyfqKUD.js";
111
111
  import "./tui-Cp9kceCv.js";
112
- import "./channel-options-BGf9qdmW.js";
113
- import { n as buildProgram } from "./program-he1byI8Z.js";
112
+ import "./channel-options-Pva7gIlA.js";
113
+ import { n as buildProgram } from "./program-CPB5xA3y.js";
114
114
  import process from "node:process";
115
115
  import { fileURLToPath } from "node:url";
116
116
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-D019Z2NU.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-xrC0ejqg.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-oBOOUSYE.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BtfMOlWi.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-VE_-Q241.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-oZNfZVUO.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, W as supportsXHighThinking } from "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { At as getRemoteSkillEligibility, B as resolveSessionDeliveryTarget, It as getSkillsSnapshotVersion, Y as runWithModelFallback, c as runEmbeddedPiKoi, hn as KOI_LANE_NESTED, i as runCliKoi, ir as applyVerboseOverride, lr as loadModelCatalog, n as getCliSessionId, nr as clearSessionAuthProfileOverride, o as resolveSendPolicy, p as compactEmbeddedPiSession, r as setCliSessionId, rr as applyModelOverrideToSessionEntry, tr as lookupContextTokens, wr as resolveKoiTimeoutMs, z as resolveOutboundTarget } from "./reply-PMxz0ujM.js";
2
+ import { B as resolveOutboundTarget, Dr as resolveKoiTimeoutMs, Nt as getRemoteSkillEligibility, Q as runWithModelFallback, V as resolveSessionDeliveryTarget, ar as clearSessionAuthProfileOverride, c as runEmbeddedPiKoi, fr as loadModelCatalog, i as runCliKoi, ir as lookupContextTokens, n as getCliSessionId, o as resolveSendPolicy, or as applyModelOverrideToSessionEntry, p as compactEmbeddedPiSession, r as setCliSessionId, sr as applyVerboseOverride, vn as KOI_LANE_NESTED, zt as getSkillsSnapshotVersion } from "./reply-BeymGeaF.js";
3
3
  import { k as DEFAULT_CHAT_CHANNEL, s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import { d as resolveKoiIdFromSessionKey, l as normalizeKoiId, u as normalizeMainKey } from "./session-key-B2OXLVi_.js";
5
5
  import { S as ensureKoiWorkspace, a as resolveKoiDir, c as resolveKoiSkillsFilter, l as resolveKoiWorkspaceDir, n as listKoiIds, o as resolveKoiModelFallbacksOverride, s as resolveKoiModelPrimary } from "./koi-scope-D8R_V4oO.js";
@@ -13,7 +13,7 @@ import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-DeB-
13
13
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-8e9qnJCU.js";
14
14
  import { n as emitKoiEvent, o as registerKoiRunContext, t as clearKoiRunContext } from "./koi-events-mTBifGCl.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-C1dZUsv0.js";
16
- import { t as createDefaultDeps } from "./deps-6i6cAi_2.js";
16
+ import { t as createDefaultDeps } from "./deps-GJeZtxka.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { Ct as loadProviderUsageSummary, Et as resolveUsageProviderId, Tt as formatUsageWindowSummary, X as describeFailoverError, c as runEmbeddedPiKoi, lr as loadModelCatalog } from "./reply-PMxz0ujM.js";
2
+ import { $ as describeFailoverError, Et as loadProviderUsageSummary, Ot as formatUsageWindowSummary, c as runEmbeddedPiKoi, fr as loadModelCatalog, kt as resolveUsageProviderId } from "./reply-BeymGeaF.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import { t as CONFIG_PATH } from "./paths-VdmjGGyc.js";
5
5
  import { n as isRich$1, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -68,7 +68,7 @@ import "./event-log-Bp_kcsW9.js";
68
68
  import { n as logConfigUpdated } from "./logging-C1O4qtJt.js";
69
69
  import "./note-DGDjXGAF.js";
70
70
  import { t as createClackPrompter } from "./clack-prompter-CjPgjdmC.js";
71
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownKoiId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-DzsPSB_G.js";
71
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownKoiId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-DzhuLkGD.js";
72
72
  import { t as renderTable } from "./table-3qkY6e1T.js";
73
73
  import { i as redactSecrets } from "./format-BReK3zxQ.js";
74
74
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-B3BNAX3f.js";
@@ -1,4 +1,4 @@
1
- import { St as loadSKYKOIPlugins } from "./reply-PMxz0ujM.js";
1
+ import { Tt as loadSKYKOIPlugins } from "./reply-BeymGeaF.js";
2
2
  import { A as formatChannelPrimerLine, N as listChatChannels, j as formatChannelSelectionLine, t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
4
4
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-D8R_V4oO.js";
@@ -7,7 +7,7 @@ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-4Dg2aV
7
7
  import { t as formatDocsLink } from "./links-RRRDj3kH.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
9
9
  import { i as listChannelPluginCatalogEntries, n as isChannelConfigured } from "./plugin-auto-enable-CAaRgRRA.js";
10
- import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BGV2Zvfo.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-Dx6FP9Co.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
13
 
@@ -1,4 +1,4 @@
1
- import { lr as loadModelCatalog } from "./reply-PMxz0ujM.js";
1
+ import { fr as loadModelCatalog } from "./reply-BeymGeaF.js";
2
2
  import { f as resolveConfigDir, h as resolveUserPath, s as ensureDir, t as CONFIG_DIR } from "./utils-D019Z2NU.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-xrC0ejqg.js";
4
4
  import { T as resolveDefaultKoiWorkspaceDir, a as resolveKoiDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId, s as resolveKoiModelPrimary } from "./koi-scope-D8R_V4oO.js";
@@ -9,8 +9,8 @@ import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t
9
9
  import { Y as fetchWithSsrFGuard } from "./deliver-8e9qnJCU.js";
10
10
  import { d as openUrl, g as resolveNodeManagerOptions, r as detectBinary } from "./onboard-helpers-BfbPZ2qa.js";
11
11
  import { t as resolveBrewExecutable } from "./brew-DthNG9In.js";
12
- import { $ as setOpenrouterApiKey, A as applyQianfanProviderConfig, B as applyXiaomiProviderConfig, C as applyMoonshotConfig, D as applyOpenrouterConfig, E as applyMoonshotProviderConfigCn, F as applyVercelAiGatewayConfig, G as ZAI_DEFAULT_MODEL_REF, H as OPENROUTER_DEFAULT_MODEL_REF, I as applyVercelAiGatewayProviderConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, M as applySyntheticProviderConfig, N as applyVeniceConfig, O as applyOpenrouterProviderConfig, P as applyVeniceProviderConfig, Q as setOpencodeZenApiKey, R as applyXaiProviderConfig, S as applyKimiCodeProviderConfig, T as applyMoonshotProviderConfig, U as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, V as applyZaiConfig, W as XIAOMI_DEFAULT_MODEL_REF, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, _ as applyMinimaxProviderConfig, at as setXiaomiApiKey, b as applyCloudflareAiGatewayProviderConfig, ct as KIMI_CODING_MODEL_REF, d as resolvePluginProviders, dt as XAI_DEFAULT_MODEL_REF, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, h as applyMinimaxApiProviderConfig, i as formatTokenK, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, l as createVpsAwareOAuthHandlers, lt as MOONSHOT_DEFAULT_MODEL_REF, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, p as applyOpencodeZenProviderConfig, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, st as writeOAuthCredentials, t as githubCopilotLoginCommand, tt as setSyntheticApiKey, u as isRemoteEnvironment, ut as QIANFAN_DEFAULT_MODEL_REF, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DzsPSB_G.js";
13
- import { a as enablePluginInConfig } from "./onboard-channels-CxwGie__.js";
12
+ import { $ as setOpenrouterApiKey, A as applyQianfanProviderConfig, B as applyXiaomiProviderConfig, C as applyMoonshotConfig, D as applyOpenrouterConfig, E as applyMoonshotProviderConfigCn, F as applyVercelAiGatewayConfig, G as ZAI_DEFAULT_MODEL_REF, H as OPENROUTER_DEFAULT_MODEL_REF, I as applyVercelAiGatewayProviderConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, M as applySyntheticProviderConfig, N as applyVeniceConfig, O as applyOpenrouterProviderConfig, P as applyVeniceProviderConfig, Q as setOpencodeZenApiKey, R as applyXaiProviderConfig, S as applyKimiCodeProviderConfig, T as applyMoonshotProviderConfig, U as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, V as applyZaiConfig, W as XIAOMI_DEFAULT_MODEL_REF, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, _ as applyMinimaxProviderConfig, at as setXiaomiApiKey, b as applyCloudflareAiGatewayProviderConfig, ct as KIMI_CODING_MODEL_REF, d as resolvePluginProviders, dt as XAI_DEFAULT_MODEL_REF, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, h as applyMinimaxApiProviderConfig, i as formatTokenK, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, l as createVpsAwareOAuthHandlers, lt as MOONSHOT_DEFAULT_MODEL_REF, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, p as applyOpencodeZenProviderConfig, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, st as writeOAuthCredentials, t as githubCopilotLoginCommand, tt as setSyntheticApiKey, u as isRemoteEnvironment, ut as QIANFAN_DEFAULT_MODEL_REF, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DzhuLkGD.js";
13
+ import { a as enablePluginInConfig } from "./onboard-channels-DAdlexBN.js";
14
14
  import { t as scanDirectoryWithSummary } from "./skill-scanner-oZNfZVUO.js";
15
15
  import { t as buildWorkspaceSkillStatus } from "./skills-status-MQ9kq-A7.js";
16
16
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-BV1FENWO.js";
@@ -1,4 +1,4 @@
1
- import { At as getRemoteSkillEligibility, Ct as loadProviderUsageSummary, S as listKoisForGateway, at as readRestartSentinel, bn as getMemorySearchManager, cr as peekSystemEvents, f as sha256HexPrefix, ot as summarizeRestartSentinel, tr as lookupContextTokens, wt as formatUsageReportLines } from "./reply-PMxz0ujM.js";
1
+ import { Cn as getMemorySearchManager, Dt as formatUsageReportLines, Et as loadProviderUsageSummary, Nt as getRemoteSkillEligibility, S as listKoisForGateway, ct as readRestartSentinel, dr as peekSystemEvents, f as sha256HexPrefix, ir as lookupContextTokens, lt as summarizeRestartSentinel } from "./reply-BeymGeaF.js";
2
2
  import { c as restoreTerminalState, p as info, s as defaultRuntime } from "./subsystem-hATE68va.js";
3
3
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { n as isRich, r as theme } from "./theme-C5EwWDWE.js";
@@ -23,10 +23,10 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWA
23
23
  import { t as resolveChannelDefaultAccountId } from "./helpers-BMbd4SfJ.js";
24
24
  import { n as logConfigUpdated } from "./logging-C1O4qtJt.js";
25
25
  import { t as WizardCancelledError } from "./prompts-BI__va99.js";
26
- import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-BwvndrGK.js";
27
- import { n as setupChannels } from "./onboard-channels-CxwGie__.js";
28
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForKoi } from "./health-format-Cwfg7Zt_.js";
29
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-ClTnCJiY.js";
26
+ import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-EBStR-HZ.js";
27
+ import { n as setupChannels } from "./onboard-channels-DAdlexBN.js";
28
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForKoi } from "./health-format-kOanfH3c.js";
29
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-BU8p2R5R.js";
30
30
  import { i as probeGateway, t as runSecurityAudit } from "./audit-BSp4Sphl.js";
31
31
  import { t as renderTable } from "./table-3qkY6e1T.js";
32
32
  import { t as buildWorkspaceSkillStatus } from "./skills-status-MQ9kq-A7.js";
@@ -36,7 +36,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-CtA-SSNX.js";
36
36
  import { t as resolveNodeService } from "./node-service-CMlPSxKk.js";
37
37
  import { t as collectChannelStatusIssues } from "./channels-status-issues-DBv-Cc4W.js";
38
38
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-BReK3zxQ.js";
39
- import { r as installCompletion } from "./completion-cli-D1x57Hnz.js";
39
+ import { r as installCompletion } from "./completion-cli-C96DgV5e.js";
40
40
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DAyfqKUD.js";
41
41
  import { t as runTui } from "./tui-Cp9kceCv.js";
42
42
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { St as loadSKYKOIPlugins } from "./reply-PMxz0ujM.js";
1
+ import { Tt as loadSKYKOIPlugins } from "./reply-BeymGeaF.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-D8R_V4oO.js";
4
4
  import { o as loadConfig } from "./config-CJCyYQfd.js";
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-CBWcyyqn.js";
2
+ import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-szlzYGsC.js";
3
3
  import { t as require_dist_cjs$2 } from "./dist-cjs-B9iGzXDA.js";
4
4
  import { C as require_dist_cjs$3, E as init_dist_es$1, M as require_dist_cjs$13, N as require_dist_cjs$12, T as dist_es_exports$1, a as require_dist_cjs$5, c as require_dist_cjs$17, d as require_dist_cjs$15, f as dist_es_exports, h as protocols_exports, i as require_dist_cjs$7, j as require_dist_cjs$14, l as require_dist_cjs$16, m as init_protocols, n as require_dist_cjs$10, o as require_dist_cjs$8, p as init_dist_es, r as require_dist_cjs$9, s as require_dist_cjs$11, t as require_dist_cjs$18, u as require_dist_cjs$6, w as require_dist_cjs$4 } from "./dist-cjs-Cpdu8jQP.js";
5
5
  import { C as schema_exports, N as require_dist_cjs$21, P as require_dist_cjs$19, S as init_schema, t as require_dist_cjs$20 } from "./dist-cjs-BVSr8ctW.js";
@@ -42,7 +42,7 @@ import { mkdir, readFile, stat as stat$1, unlink, writeFile } from "fs/promises"
42
42
  import { Readable as Readable$1 } from "node:stream";
43
43
  import { pipeline as pipeline$1 } from "node:stream/promises";
44
44
  import WebSocket, { WebSocket as WebSocket$1 } from "ws";
45
- import AjvModule from "ajv";
45
+ import AjvPkg from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
48
48
  import "yaml";
@@ -20536,7 +20536,7 @@ function loadPluginManifestRegistry(params) {
20536
20536
 
20537
20537
  //#endregion
20538
20538
  //#region src/plugins/schema-validator.ts
20539
- const ajv$1 = new AjvModule({
20539
+ const ajv$1 = new AjvPkg({
20540
20540
  allErrors: true,
20541
20541
  strict: false,
20542
20542
  removeAdditional: false
@@ -48182,7 +48182,7 @@ const PROTOCOL_VERSION = 3;
48182
48182
 
48183
48183
  //#endregion
48184
48184
  //#region src/gateway/protocol/index.ts
48185
- const ajv = new AjvModule({
48185
+ const ajv = new AjvPkg({
48186
48186
  allErrors: true,
48187
48187
  strict: false,
48188
48188
  removeAdditional: false
@@ -68060,7 +68060,7 @@ function enqueueSystemEvent(text, options) {
68060
68060
  const MODEL_CACHE = /* @__PURE__ */ new Map();
68061
68061
  (async () => {
68062
68062
  try {
68063
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-CBWcyyqn.js").then((n) => n.t);
68063
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-szlzYGsC.js").then((n) => n.t);
68064
68064
  await ensureSKYKOIModelsJson(loadConfig());
68065
68065
  const koiDir = resolveSKYKOIKoiDir();
68066
68066
  const models = discoverModels(discoverAuthStorage(koiDir), koiDir).getAll();
@@ -34,7 +34,7 @@ import { access, mkdir, readFile, stat as stat$1, writeFile } from "fs/promises"
34
34
  import Stream, { Readable as Readable$1 } from "node:stream";
35
35
  import { finished } from "node:stream/promises";
36
36
  import * as NodeWs from "ws";
37
- import AjvModule from "ajv";
37
+ import AjvPkg from "ajv";
38
38
  import lockfile from "proper-lockfile";
39
39
  import { fileURLToPath as fileURLToPath$1 } from "url";
40
40
  import { TypeCompiler } from "@sinclair/typebox/compiler";
@@ -59699,7 +59699,7 @@ var require_dist$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
59699
59699
  //#endregion
59700
59700
  //#region node_modules/.pnpm/@mariozechner+pi-ai@0.52.8_ws@8.19.0_zod@4.3.6/node_modules/@mariozechner/pi-ai/dist/utils/validation.js
59701
59701
  var import_dist$1 = /* @__PURE__ */ __toESM(require_dist$1(), 1);
59702
- const Ajv$1 = AjvModule.default || AjvModule;
59702
+ const Ajv$1 = AjvPkg.default || AjvPkg;
59703
59703
  const addFormats = import_dist$1.default.default || import_dist$1.default;
59704
59704
  const isBrowserExtension = typeof globalThis !== "undefined" && globalThis.chrome?.runtime?.id !== void 0;
59705
59705
  let ajv = null;
@@ -174026,7 +174026,7 @@ var AuthStorage = class {
174026
174026
  /**
174027
174027
  * Model registry - manages built-in and custom models, provides API key resolution.
174028
174028
  */
174029
- const Ajv = AjvModule.default || AjvModule;
174029
+ const Ajv = AjvPkg.default || AjvPkg;
174030
174030
  const OpenRouterRoutingSchema = Type.Object({
174031
174031
  only: Type.Optional(Type.Array(Type.String())),
174032
174032
  order: Type.Optional(Type.Array(Type.String()))
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import "./reply-PMxz0ujM.js";
2
+ import "./reply-BeymGeaF.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -63,12 +63,12 @@ import "./session-cost-usage-C1dZUsv0.js";
63
63
  import "./control-service-Deb7vSlB.js";
64
64
  import "./channel-selection-C4X4L8u3.js";
65
65
  import "./event-log-Bp_kcsW9.js";
66
- import { i as resolveArchiveKind } from "./archive-BtfMOlWi.js";
66
+ import { i as resolveArchiveKind } from "./archive-VE_-Q241.js";
67
67
  import "./skill-scanner-oZNfZVUO.js";
68
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BGV2Zvfo.js";
68
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-Dx6FP9Co.js";
69
69
  import { t as renderTable } from "./table-3qkY6e1T.js";
70
- import { t as buildPluginStatusReport } from "./status-CJUdb2GD.js";
71
- import { n as updateNpmInstalledPlugins } from "./update-BpZFa_ei.js";
70
+ import { t as buildPluginStatusReport } from "./status-XVDJ9CSQ.js";
71
+ import { n as updateNpmInstalledPlugins } from "./update-4FXpqRDV.js";
72
72
  import fs from "node:fs";
73
73
  import path from "node:path";
74
74
 
@@ -5,11 +5,11 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-CAp_z
5
5
  import { t as isTruthyEnvValue } from "./env-Dliiu-O6.js";
6
6
  import { N as VERSION } from "./config-CJCyYQfd.js";
7
7
  import { t as formatDocsLink } from "./links-RRRDj3kH.js";
8
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-Iyw9hXxR.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-Bbxg5ow3.js";
10
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CHQBjqFj.js";
8
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-BlJBidgb.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-BIxY1W2W.js";
10
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D8THcrZG.js";
11
11
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-Cp9kceCv.js";
12
- import { n as resolveCliChannelOptions } from "./channel-options-BGf9qdmW.js";
12
+ import { n as resolveCliChannelOptions } from "./channel-options-Pva7gIlA.js";
13
13
  import { Command } from "commander";
14
14
 
15
15
  //#region src/cli/program/context.ts
@@ -124,14 +124,14 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-DksX9sL6.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-KSKaVCB_.js")).registerGatewayCli(program);
128
128
  }
129
129
  },
130
130
  {
131
131
  name: "daemon",
132
132
  description: "Gateway service (legacy alias)",
133
133
  register: async (program) => {
134
- (await import("./daemon-cli-CE7QWZOY.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-Dap6vvDM.js").then((n) => n.t)).registerDaemonCli(program);
135
135
  }
136
136
  },
137
137
  {
@@ -152,7 +152,7 @@ const entries = [
152
152
  name: "models",
153
153
  description: "Model configuration",
154
154
  register: async (program) => {
155
- (await import("./models-cli-DWQ0kLgh.js")).registerModelsCli(program);
155
+ (await import("./models-cli-mZYzW9o0.js")).registerModelsCli(program);
156
156
  }
157
157
  },
158
158
  {
@@ -222,7 +222,7 @@ const entries = [
222
222
  name: "hooks",
223
223
  description: "Hooks tooling",
224
224
  register: async (program) => {
225
- (await import("./hooks-cli-DufDbzl6.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-C8vEBzK_.js")).registerHooksCli(program);
226
226
  }
227
227
  },
228
228
  {
@@ -236,7 +236,7 @@ const entries = [
236
236
  name: "pairing",
237
237
  description: "Pairing helpers",
238
238
  register: async (program) => {
239
- const { registerPluginCliCommands } = await import("./cli-DoCf7igL.js");
239
+ const { registerPluginCliCommands } = await import("./cli-BCgQawMP.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
241
  (await import("./pairing-cli-ZX69bUaj.js")).registerPairingCli(program);
242
242
  }
@@ -245,8 +245,8 @@ const entries = [
245
245
  name: "plugins",
246
246
  description: "Plugin management",
247
247
  register: async (program) => {
248
- (await import("./plugins-cli-ZaMVzNrW.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-DoCf7igL.js");
248
+ (await import("./plugins-cli-C8M9nSQu.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-BCgQawMP.js");
250
250
  registerPluginCliCommands(program, await loadConfig());
251
251
  }
252
252
  },
@@ -254,7 +254,7 @@ const entries = [
254
254
  name: "channels",
255
255
  description: "Channel management",
256
256
  register: async (program) => {
257
- (await import("./channels-cli-pxwIdFz-.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-BzwKJWjR.js")).registerChannelsCli(program);
258
258
  }
259
259
  },
260
260
  {
@@ -282,14 +282,14 @@ const entries = [
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-uGjm4Woh.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-P2ynpwI0.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
289
289
  name: "completion",
290
290
  description: "Generate shell completion script",
291
291
  register: async (program) => {
292
- (await import("./completion-cli-D1x57Hnz.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-C96DgV5e.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -173978,4 +173978,4 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
173978
173978
  }
173979
173979
 
173980
173980
  //#endregion
173981
- export { isGatewaySigusr1RestartExternallyAllowed as $, resolveHeartbeatPrompt as $n, getLastHeartbeatEvent as $t, readSessionMessages as A, OPENAI_TTS_MODELS as An, getRemoteSkillEligibility as At, resolveSessionDeliveryTarget as B, setTtsEnabled as Bn, getHookType as Bt, listSessionsFromStore as C, formatUserTime as Cn, applyTemplate as Cr, loadProviderUsageSummary as Ct, resolveSessionModelRef as D, createInternalHookEvent as Dn, handleSlackHttpRequest as Dt, resolveGatewaySessionStoreTarget as E, clearInternalHooks as En, resolveUsageProviderId as Et, ensureOutboundSessionEntry as F, resolveTtsApiKey as Fn, setSkillsRemoteRegistry as Ft, nylasConfigured as G, setCommandLaneConcurrency as Gn, createReplyPrefixOptions as Gt, resetDirectoryCache as H, textToSpeech as Hn, registerMemoryCli as Ht, resolveOutboundSessionRoute as I, resolveTtsAutoMode as In, getSkillsSnapshotVersion as It, writeNylasGrant as J, stopDiagnosticHeartbeat as Jn, registerUnhandledRejectionHandler as Jt, nylasLinked as K, CommandLane as Kn, normalizeGroupActivation as Kt, resolveHeartbeatDeliveryTarget as L, resolveTtsConfig as Ln, registerSkillsChangeListener as Lt, resolveSessionTranscriptCandidates as M, getTtsProvider as Mn, recordRemoteNodeInfo as Mt, stripEnvelopeFromMessages as N, isTtsEnabled as Nn, refreshRemoteBinsForConnectedNodes as Nt, archiveFileOnDisk as O, registerInternalHook as On, require_inherits as Ot, runMessageAction as P, isTtsProviderConfigured as Pn, refreshRemoteNodeBins as Pt, consumeGatewaySigusr1RestartAuthorization as Q, isHeartbeatContentEffectivelyEmpty as Qn, emitHeartbeatEvent as Qt, resolveHeartbeatSenderContext as R, resolveTtsPrefsPath as Rn, buildSafeExternalPrompt as Rt, listKoisForGateway as S, resolveKoiIdentity as Sn, normalizeMimeList as Sr, loadSKYKOIPlugins as St, loadSessionEntry as T, resolveUserTimezone as Tn, formatUsageWindowSummary as Tt, CHANNEL_MESSAGE_ACTION_NAMES as U, enqueueCommandInLane as Un, runMemoryStatus as Ut, formatTargetDisplay as V, setTtsProvider as Vn, isExternalHookSession as Vt, DEFAULT_NYLAS_API_URI as W, getQueueSize as Wn, monitorWebChannel as Wt, describeFailoverError as X, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as Xn, buildHistoryContextFromEntries as Xt, runWithModelFallback as Y, isDiagnosticsEnabled as Yn, waitForever as Yt, authorizeGatewaySigusr1Restart as Z, DEFAULT_HEARTBEAT_EVERY as Zn, resolveHeartbeatVisibility as Zt, getCanvasResource as _, normalizePollInput as _n, DEFAULT_INPUT_PDF_MAX_PIXELS as _r, CHANNEL_TARGETS_DESCRIPTION as _t, normalizeSendPolicy as a, parseDiscordTarget as an, parseVerboseOverride as ar, readRestartSentinel as at, replaceCanvasResource as b, getMemorySearchManager as bn, extractFileContentFromSource as br, setHeartbeatWakeHandler as bt, runEmbeddedPiKoi as c, createReplyDispatcher as cn, peekSystemEvents as cr, writeRestartSentinel as ct, waitForEmbeddedPiRunEnd as d, stopSubkoisForRequester as dn, DEFAULT_INPUT_FILE_MAX_CHARS as dr, inferLegacyName as dt, onHeartbeatEvent as en, stripHeartbeatToken as er, scheduleGatewaySigusr1Restart as et, sha256HexPrefix as f, findSubkoiRunByChildSessionKey as fn, DEFAULT_INPUT_FILE_MIMES as fr, normalizeOptionalKoiId as ft, canvasUri as g, sendMessageWhatsApp as gn, DEFAULT_INPUT_PDF_MAX_PAGES as gr, migrateLegacyCronPayload as gt, createSKYKOITools as h, KOI_LANE_NESTED as hn, DEFAULT_INPUT_MAX_REDIRECTS as hr, normalizeRequiredName as ht, runCliKoi as i, getChannelActivity as in, applyVerboseOverride as ir, formatRestartSentinelMessage as it, readSessionPreviewItemsFromTranscript as j, OPENAI_TTS_VOICES as jn, primeRemoteSkillsCache as jt, capArrayByJsonBytes as k, triggerInternalHook as kn, sendMessageIMessage as kt, abortEmbeddedPiRun as l, formatZonedTimestamp as ln, loadModelCatalog as lr, normalizeCronJobCreate as lt, initRuntimeContext as m, initSubkoiRegistry as mn, DEFAULT_INPUT_IMAGE_MIMES as mr, normalizePayloadToSystemText as mt, getCliSessionId as n, sendMessageTelegram as nn, clearSessionAuthProfileOverride as nr, consumeRestartSentinel as nt, resolveSendPolicy as o, fetchChannelPermissionsDiscord as on, enqueueSystemEvent as or, summarizeRestartSentinel as ot, compactEmbeddedPiSession as p, findSubkoiRunByRunId as pn, DEFAULT_INPUT_IMAGE_MAX_BYTES as pr, normalizeOptionalText as pt, resolveNylasConfig as q, startDiagnosticHeartbeat as qn, installUnhandledRejectionHandler as qt, setCliSessionId as r, sendMessageDiscord as rn, applyModelOverrideToSessionEntry as rr, formatDoctorNonInteractiveHint as rt, clearSessionQueues as s, dispatchInboundMessage as sn, isSystemEventContextChanged as sr, trimLogTail as st, getReplyFromConfig as t, resolveIndicatorType as tn, lookupContextTokens as tr, setGatewaySigusr1RestartPolicy as tt, isEmbeddedPiRunActive as u, isAbortTrigger as un, DEFAULT_INPUT_FILE_MAX_BYTES as ur, normalizeCronJobPatch as ut, listCanvasUris as v, sendMessageSlack as vn, DEFAULT_INPUT_PDF_MIN_TEXT_CHARS as vr, CHANNEL_TARGET_DESCRIPTION as vt, loadCombinedSessionStoreForGateway as w, resolveUserTimeFormat as wn, resolveKoiTimeoutMs as wr, formatUsageReportLines as wt, resolveAnnounceTargetFromKey as x, resolveEffectiveMessagesConfig as xn, extractImageContentFromSource as xr, getPluginToolMeta as xt, onCanvasChange as y, createSlackWebClient as yn, DEFAULT_INPUT_TIMEOUT_MS as yr, requestHeartbeatNow as yt, resolveOutboundTarget as z, resolveTtsProviderOrder as zn, detectSuspiciousPatterns as zt };
173981
+ export { describeFailoverError as $, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as $n, buildHistoryContextFromEntries as $t, readSessionMessages as A, createInternalHookEvent as An, handleSlackHttpRequest as At, resolveOutboundTarget as B, resolveTtsConfig as Bn, registerSkillsChangeListener as Bt, listSessionsFromStore as C, getMemorySearchManager as Cn, extractFileContentFromSource as Cr, setHeartbeatWakeHandler as Ct, resolveSessionModelRef as D, resolveUserTimeFormat as Dn, resolveKoiTimeoutMs as Dr, formatUsageReportLines as Dt, resolveGatewaySessionStoreTarget as E, formatUserTime as En, applyTemplate as Er, loadProviderUsageSummary as Et, ensureOutboundSessionEntry as F, getTtsProvider as Fn, recordRemoteNodeInfo as Ft, DEFAULT_NYLAS_API_URI as G, textToSpeech as Gn, registerMemoryCli as Gt, formatTargetDisplay as H, resolveTtsProviderOrder as Hn, detectSuspiciousPatterns as Ht, resolveOutboundSessionRoute as I, isTtsEnabled as In, refreshRemoteBinsForConnectedNodes as It, readNylasGrant as J, setCommandLaneConcurrency as Jn, createReplyPrefixOptions as Jt, nylasConfigured as K, enqueueCommandInLane as Kn, runMemoryStatus as Kt, sendMessage as L, isTtsProviderConfigured as Ln, refreshRemoteNodeBins as Lt, resolveSessionTranscriptCandidates as M, triggerInternalHook as Mn, sendMessageIMessage as Mt, stripEnvelopeFromMessages as N, OPENAI_TTS_MODELS as Nn, getRemoteSkillEligibility as Nt, archiveFileOnDisk as O, resolveUserTimezone as On, formatUsageWindowSummary as Ot, runMessageAction as P, OPENAI_TTS_VOICES as Pn, primeRemoteSkillsCache as Pt, runWithModelFallback as Q, isDiagnosticsEnabled as Qn, waitForever as Qt, resolveHeartbeatDeliveryTarget as R, resolveTtsApiKey as Rn, setSkillsRemoteRegistry as Rt, listKoisForGateway as S, createSlackWebClient as Sn, DEFAULT_INPUT_TIMEOUT_MS as Sr, requestHeartbeatNow as St, loadSessionEntry as T, resolveKoiIdentity as Tn, normalizeMimeList as Tr, loadSKYKOIPlugins as Tt, resetDirectoryCache as U, setTtsEnabled as Un, getHookType as Ut, resolveSessionDeliveryTarget as V, resolveTtsPrefsPath as Vn, buildSafeExternalPrompt as Vt, CHANNEL_MESSAGE_ACTION_NAMES as W, setTtsProvider as Wn, isExternalHookSession as Wt, sendMessage$1 as X, startDiagnosticHeartbeat as Xn, installUnhandledRejectionHandler as Xt, resolveNylasConfig as Y, CommandLane as Yn, normalizeGroupActivation as Yt, writeNylasGrant as Z, stopDiagnosticHeartbeat as Zn, registerUnhandledRejectionHandler as Zt, getCanvasResource as _, initSubkoiRegistry as _n, DEFAULT_INPUT_IMAGE_MIMES as _r, normalizePayloadToSystemText as _t, normalizeSendPolicy as a, sendMessageTelegram as an, clearSessionAuthProfileOverride as ar, consumeRestartSentinel as at, replaceCanvasResource as b, normalizePollInput as bn, DEFAULT_INPUT_PDF_MAX_PIXELS as br, CHANNEL_TARGETS_DESCRIPTION as bt, runEmbeddedPiKoi as c, parseDiscordTarget as cn, parseVerboseOverride as cr, readRestartSentinel as ct, waitForEmbeddedPiRunEnd as d, createReplyDispatcher as dn, peekSystemEvents as dr, writeRestartSentinel as dt, resolveHeartbeatVisibility as en, DEFAULT_HEARTBEAT_EVERY as er, authorizeGatewaySigusr1Restart as et, sha256HexPrefix as f, formatZonedTimestamp as fn, loadModelCatalog as fr, normalizeCronJobCreate as ft, canvasUri as g, findSubkoiRunByRunId as gn, DEFAULT_INPUT_IMAGE_MAX_BYTES as gr, normalizeOptionalText as gt, createSKYKOITools as h, findSubkoiRunByChildSessionKey as hn, DEFAULT_INPUT_FILE_MIMES as hr, normalizeOptionalKoiId as ht, runCliKoi as i, resolveIndicatorType as in, lookupContextTokens as ir, setGatewaySigusr1RestartPolicy as it, readSessionPreviewItemsFromTranscript as j, registerInternalHook as jn, require_inherits as jt, capArrayByJsonBytes as k, clearInternalHooks as kn, resolveUsageProviderId as kt, abortEmbeddedPiRun as l, fetchChannelPermissionsDiscord as ln, enqueueSystemEvent as lr, summarizeRestartSentinel as lt, initRuntimeContext as m, stopSubkoisForRequester as mn, DEFAULT_INPUT_FILE_MAX_CHARS as mr, inferLegacyName as mt, getCliSessionId as n, getLastHeartbeatEvent as nn, resolveHeartbeatPrompt as nr, isGatewaySigusr1RestartExternallyAllowed as nt, resolveSendPolicy as o, sendMessageDiscord as on, applyModelOverrideToSessionEntry as or, formatDoctorNonInteractiveHint as ot, compactEmbeddedPiSession as p, isAbortTrigger as pn, DEFAULT_INPUT_FILE_MAX_BYTES as pr, normalizeCronJobPatch as pt, nylasLinked as q, getQueueSize as qn, monitorWebChannel as qt, setCliSessionId as r, onHeartbeatEvent as rn, stripHeartbeatToken as rr, scheduleGatewaySigusr1Restart as rt, clearSessionQueues as s, getChannelActivity as sn, applyVerboseOverride as sr, formatRestartSentinelMessage as st, getReplyFromConfig as t, emitHeartbeatEvent as tn, isHeartbeatContentEffectivelyEmpty as tr, consumeGatewaySigusr1RestartAuthorization as tt, isEmbeddedPiRunActive as u, dispatchInboundMessage as un, isSystemEventContextChanged as ur, trimLogTail as ut, listCanvasUris as v, KOI_LANE_NESTED as vn, DEFAULT_INPUT_MAX_REDIRECTS as vr, normalizeRequiredName as vt, loadCombinedSessionStoreForGateway as w, resolveEffectiveMessagesConfig as wn, extractImageContentFromSource as wr, getPluginToolMeta as wt, resolveAnnounceTargetFromKey as x, sendMessageSlack as xn, DEFAULT_INPUT_PDF_MIN_TEXT_CHARS as xr, CHANNEL_TARGET_DESCRIPTION as xt, onCanvasChange as y, sendMessageWhatsApp as yn, DEFAULT_INPUT_PDF_MAX_PAGES as yr, migrateLegacyCronPayload as yt, resolveHeartbeatSenderContext as z, resolveTtsAutoMode as zn, getSkillsSnapshotVersion as zt };
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { qt as installUnhandledRejectionHandler } from "./reply-PMxz0ujM.js";
2
+ import { Xt as installUnhandledRejectionHandler } from "./reply-BeymGeaF.js";
3
3
  import { r as enableConsoleCapture, s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -63,25 +63,25 @@ import "./session-cost-usage-C1dZUsv0.js";
63
63
  import "./control-service-Deb7vSlB.js";
64
64
  import "./channel-selection-C4X4L8u3.js";
65
65
  import "./event-log-Bp_kcsW9.js";
66
- import "./deps-6i6cAi_2.js";
66
+ import "./deps-GJeZtxka.js";
67
67
  import "./tailscale-B9nalljD.js";
68
68
  import { t as loadDotEnv } from "./dotenv-2TPorV-O.js";
69
69
  import { t as ensureSKYKOICliOnPath } from "./path-env-DGypuWGK.js";
70
70
  import { g as assertSupportedRuntime } from "./daemon-runtime-DUaeQ1rH.js";
71
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-Iyw9hXxR.js";
71
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-BlJBidgb.js";
72
72
  import "./logging-C1O4qtJt.js";
73
73
  import "./note-DGDjXGAF.js";
74
74
  import "./clack-prompter-CjPgjdmC.js";
75
- import "./onboarding-DQcZx2hh.js";
76
- import "./onboard-skills-BwvndrGK.js";
77
- import "./github-copilot-auth-DzsPSB_G.js";
78
- import "./onboard-channels-CxwGie__.js";
75
+ import "./onboarding-D9El38XR.js";
76
+ import "./onboard-skills-EBStR-HZ.js";
77
+ import "./github-copilot-auth-DzhuLkGD.js";
78
+ import "./onboard-channels-DAdlexBN.js";
79
79
  import "./plugin-auto-enable-CAaRgRRA.js";
80
- import "./archive-BtfMOlWi.js";
80
+ import "./archive-VE_-Q241.js";
81
81
  import "./skill-scanner-oZNfZVUO.js";
82
- import "./installs-BGV2Zvfo.js";
83
- import "./health-format-Cwfg7Zt_.js";
84
- import "./update-runner-ClTnCJiY.js";
82
+ import "./installs-Dx6FP9Co.js";
83
+ import "./health-format-kOanfH3c.js";
84
+ import "./update-runner-BU8p2R5R.js";
85
85
  import "./auth-oGq4xOCr.js";
86
86
  import "./audit-BSp4Sphl.js";
87
87
  import "./table-3qkY6e1T.js";
@@ -91,19 +91,19 @@ import "./systemd-BwrS2WmZ.js";
91
91
  import "./service-audit-CtA-SSNX.js";
92
92
  import "./node-service-CMlPSxKk.js";
93
93
  import "./channels-status-issues-DBv-Cc4W.js";
94
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-Bbxg5ow3.js";
94
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-BIxY1W2W.js";
95
95
  import "./gateway-rpc-CyFabm9F.js";
96
96
  import "./help-format-lN5-Ns06.js";
97
97
  import "./admin-unlock-kahk3vPh.js";
98
- import "./koi-D8RuS2-Y.js";
99
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CHQBjqFj.js";
100
- import "./configure-Cv6ik5WL.js";
98
+ import "./koi-DiIPhiDV.js";
99
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D8THcrZG.js";
100
+ import "./configure-D2vAztvI.js";
101
101
  import "./systemd-linger-Dppl0X6M.js";
102
102
  import "./widearea-dns-BV1FENWO.js";
103
103
  import "./bonjour-discovery-BSmdJTHl.js";
104
104
  import "./auth-health-B3BNAX3f.js";
105
- import "./doctor-uAI2Q7S2.js";
106
- import "./completion-cli-D1x57Hnz.js";
105
+ import "./doctor-CG8gR8dw.js";
106
+ import "./completion-cli-C96DgV5e.js";
107
107
  import "./hooks-status-DAyfqKUD.js";
108
108
  import { n as emitCliBanner } from "./tui-Cp9kceCv.js";
109
109
  import process$1 from "node:process";
@@ -159,7 +159,7 @@ async function runCli(argv = process$1.argv) {
159
159
  assertSupportedRuntime();
160
160
  if (await tryRouteCli(normalizedArgv)) return;
161
161
  enableConsoleCapture();
162
- const { buildProgram } = await import("./program-he1byI8Z.js").then((n) => n.t);
162
+ const { buildProgram } = await import("./program-CPB5xA3y.js").then((n) => n.t);
163
163
  const program = buildProgram();
164
164
  installUnhandledRejectionHandler();
165
165
  process$1.on("uncaughtException", (error) => {
@@ -192,11 +192,11 @@ async function runCli(argv = process$1.argv) {
192
192
  }
193
193
  const primary = getPrimaryCommand(parseArgv);
194
194
  if (primary) {
195
- const { registerSubCliByName } = await import("./register.subclis-Bbxg5ow3.js").then((n) => n.i);
195
+ const { registerSubCliByName } = await import("./register.subclis-BIxY1W2W.js").then((n) => n.i);
196
196
  await registerSubCliByName(program, primary);
197
197
  }
198
198
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
199
- const { registerPluginCliCommands } = await import("./cli-DoCf7igL.js");
199
+ const { registerPluginCliCommands } = await import("./cli-BCgQawMP.js");
200
200
  const { loadConfig } = await import("./config-CJCyYQfd.js").then((n) => n.t);
201
201
  registerPluginCliCommands(program, loadConfig());
202
202
  }
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { T as loadSessionEntry, or as enqueueSystemEvent, yt as requestHeartbeatNow } from "./reply-PMxz0ujM.js";
2
+ import { St as requestHeartbeatNow, T as loadSessionEntry, lr as enqueueSystemEvent } from "./reply-BeymGeaF.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -64,8 +64,8 @@ import "./session-cost-usage-C1dZUsv0.js";
64
64
  import "./control-service-Deb7vSlB.js";
65
65
  import "./channel-selection-C4X4L8u3.js";
66
66
  import "./event-log-Bp_kcsW9.js";
67
- import "./deps-6i6cAi_2.js";
68
- import { t as koiCommand } from "./koi-D8RuS2-Y.js";
67
+ import "./deps-GJeZtxka.js";
68
+ import { t as koiCommand } from "./koi-DiIPhiDV.js";
69
69
  import { t as formatForLog } from "./ws-log-BSxE5LhM.js";
70
70
  import { randomUUID } from "node:crypto";
71
71
 
@@ -1,4 +1,4 @@
1
- import { St as loadSKYKOIPlugins } from "./reply-PMxz0ujM.js";
1
+ import { Tt as loadSKYKOIPlugins } from "./reply-BeymGeaF.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { T as resolveDefaultKoiWorkspaceDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-D8R_V4oO.js";
4
4
  import { o as loadConfig } from "./config-CJCyYQfd.js";
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath } from "./utils-D019Z2NU.js";
2
2
  import { n as discoverSKYKOIPlugins, r as loadPluginManifest } from "./manifest-registry-oBOOUSYE.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BGV2Zvfo.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-Dx6FP9Co.js";
4
4
  import fs from "node:fs/promises";
5
5
 
6
6
  //#region src/plugins/update.ts
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-Q1hWOaK2.js";
2
- import { st as trimLogTail } from "./reply-PMxz0ujM.js";
2
+ import { ut as trimLogTail } from "./reply-BeymGeaF.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -65,17 +65,17 @@ import "./session-cost-usage-C1dZUsv0.js";
65
65
  import "./control-service-Deb7vSlB.js";
66
66
  import "./channel-selection-C4X4L8u3.js";
67
67
  import "./event-log-Bp_kcsW9.js";
68
- import "./deps-6i6cAi_2.js";
68
+ import "./deps-GJeZtxka.js";
69
69
  import "./tailscale-B9nalljD.js";
70
70
  import { _ as parseSemver } from "./daemon-runtime-DUaeQ1rH.js";
71
71
  import "./logging-C1O4qtJt.js";
72
72
  import "./note-DGDjXGAF.js";
73
73
  import "./plugin-auto-enable-CAaRgRRA.js";
74
- import "./archive-BtfMOlWi.js";
74
+ import "./archive-VE_-Q241.js";
75
75
  import "./skill-scanner-oZNfZVUO.js";
76
- import "./installs-BGV2Zvfo.js";
77
- import "./health-format-Cwfg7Zt_.js";
78
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-ClTnCJiY.js";
76
+ import "./installs-Dx6FP9Co.js";
77
+ import "./health-format-kOanfH3c.js";
78
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BU8p2R5R.js";
79
79
  import "./auth-oGq4xOCr.js";
80
80
  import { t as renderTable } from "./table-3qkY6e1T.js";
81
81
  import "./skills-status-MQ9kq-A7.js";
@@ -83,15 +83,15 @@ import "./service-CYp-ZMZO.js";
83
83
  import "./systemd-BwrS2WmZ.js";
84
84
  import "./service-audit-CtA-SSNX.js";
85
85
  import "./channels-status-issues-DBv-Cc4W.js";
86
- import "./register.subclis-Bbxg5ow3.js";
86
+ import "./register.subclis-BIxY1W2W.js";
87
87
  import { t as formatHelpExamples } from "./help-format-lN5-Ns06.js";
88
88
  import "./systemd-linger-Dppl0X6M.js";
89
89
  import "./auth-health-B3BNAX3f.js";
90
- import { t as doctorCommand } from "./doctor-uAI2Q7S2.js";
91
- import { r as installCompletion } from "./completion-cli-D1x57Hnz.js";
90
+ import { t as doctorCommand } from "./doctor-CG8gR8dw.js";
91
+ import { r as installCompletion } from "./completion-cli-C96DgV5e.js";
92
92
  import "./shared-BIgTSNKP.js";
93
- import { r as runDaemonRestart } from "./daemon-cli-CE7QWZOY.js";
94
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BpZFa_ei.js";
93
+ import { r as runDaemonRestart } from "./daemon-cli-Dap6vvDM.js";
94
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-4FXpqRDV.js";
95
95
  import path from "node:path";
96
96
  import os from "node:os";
97
97
  import fs from "node:fs/promises";
@@ -1,12 +1,12 @@
1
- import { st as trimLogTail } from "./reply-PMxz0ujM.js";
1
+ import { ut as trimLogTail } from "./reply-BeymGeaF.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-xrC0ejqg.js";
3
3
  import { t as resolveSKYKOIPackageRoot } from "./skykoi-root-rFrz2aC7.js";
4
4
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-CAp_zt7z.js";
5
5
  import { N as VERSION } from "./config-CJCyYQfd.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-DUaeQ1rH.js";
7
7
  import { t as note } from "./note-DGDjXGAF.js";
8
- import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-Cwfg7Zt_.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-D1x57Hnz.js";
8
+ import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-kOanfH3c.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C96DgV5e.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
12
12
  import fs from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.297",
3
+ "version": "2026.3.298",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",