skykoi 2026.3.258 → 2026.3.259

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-BMmgk5KP.js → archive-W8rsoBYh.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-DJzDttZm.js → channel-options-B8VOC47h.js} +1 -1
  5. package/dist/{channels-cli-Bd449nyG.js → channels-cli-DmRqBVnC.js} +6 -6
  6. package/dist/cli/daemon-cli.js +1 -1
  7. package/dist/{cli-BqTPyyxM.js → cli-06GXMT2h.js} +1 -1
  8. package/dist/{completion-cli-thFypIZk.js → completion-cli-BtMCeQrb.js} +1 -1
  9. package/dist/{config-guard-DWiWNQzf.js → config-guard-XbUcqVcn.js} +13 -13
  10. package/dist/{configure-CXCoCQvG.js → configure-BMmn2eLg.js} +4 -4
  11. package/dist/{daemon-cli-DNZKRc5Q.js → daemon-cli-Dif1Is-I.js} +2 -2
  12. package/dist/{deps-D24ZTayV.js → deps-ChkamwfD.js} +1 -1
  13. package/dist/{doctor-Bymu6jT_.js → doctor-BN7K9ZNh.js} +3 -3
  14. package/dist/entry.js +1 -1
  15. package/dist/extension-api.js +1 -1
  16. package/dist/{gateway-cli-BZNwW8HI.js → gateway-cli-hWYnELTw.js} +15 -15
  17. package/dist/{github-copilot-auth-F6C4Ejbn.js → github-copilot-auth-sPPiNJU-.js} +1 -1
  18. package/dist/{health-format-CLSvBgKv.js → health-format-MDGRXhYr.js} +1 -1
  19. package/dist/{hooks-cli-46m2O6ST.js → hooks-cli-CHrCMDMe.js} +3 -3
  20. package/dist/index.js +19 -19
  21. package/dist/{installs-aFzmpJbj.js → installs-BhiaD1yI.js} +1 -1
  22. package/dist/{koi-SqZzxNIy.js → koi-PYJ3eOYY.js} +2 -2
  23. package/dist/{models-cli-BDaaciB0.js → models-cli-CK9ygdKp.js} +2 -2
  24. package/dist/{onboard-channels-CI02lbU3.js → onboard-channels-DsVSfdIu.js} +2 -2
  25. package/dist/{onboard-skills-BCwuQJV6.js → onboard-skills-CxiSK6WI.js} +3 -3
  26. package/dist/{onboarding-BUnX80CY.js → onboarding-BekrzT99.js} +6 -6
  27. package/dist/{plugin-registry-Bf_40cVb.js → plugin-registry-BdRYqp1H.js} +1 -1
  28. package/dist/plugin-sdk/index.js +6 -5
  29. package/dist/plugin-sdk/{pi-model-discovery-BsWYwu7p.js → pi-model-discovery-DIELoDpU.js} +3 -3
  30. package/dist/{plugins-cli-C_Amscsp.js → plugins-cli-BJOazuyP.js} +5 -5
  31. package/dist/{program-Lnu81w9O.js → program-CasYC4-7.js} +4 -4
  32. package/dist/{register.subclis-DzCBpl05.js → register.subclis-D5QBERRW.js} +10 -10
  33. package/dist/{reply-B7ucnjr_.js → reply-BK1ZEmE-.js} +80 -11
  34. package/dist/{run-main-BKBpbQCi.js → run-main-lFLLorw5.js} +20 -20
  35. package/dist/{server-node-events-BE9979WS.js → server-node-events-JU1Vyr2P.js} +3 -3
  36. package/dist/{status-CBsQl8ku.js → status-z_6fGIwV.js} +1 -1
  37. package/dist/{update-C-iDbQud.js → update-DmEVdhH0.js} +1 -1
  38. package/dist/{update-cli-TmYsQJMf.js → update-cli-n8NFSOq2.js} +11 -11
  39. package/dist/{update-runner-CLofKLmw.js → update-runner-Bns3qDHZ.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 { Ct as require_inherits } from "./reply-B7ucnjr_.js";
2
+ import { Ct as require_inherits } from "./reply-BK1ZEmE-.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.258",
3
- "commit": "52f9396f7ea3f62aad049e436269498b12210c96",
4
- "builtAt": "2026-05-08T09:47:01.899Z"
2
+ "version": "2026.3.259",
3
+ "commit": "2d730846d205d73b2ab24f7161be056b0629d2a7",
4
+ "builtAt": "2026-05-08T09:58:18.415Z"
5
5
  }
@@ -1 +1 @@
1
- 8492e1e8852c5a99fa842623019370808ff1e0b910deb7d538195fc0e217597e
1
+ 78653f034278ae1dd5276d92ea2ae627a4bd600f9d68097ff95aa938407fb2c6
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-RXphV8Xh.js";
2
2
  import { t as isTruthyEnvValue } from "./env-BA3nu3t6.js";
3
3
  import { n as listChannelPlugins } from "./plugins-D6P_BD0C.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CDSibY2C.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bf_40cVb.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BdRYqp1H.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-N5dAgB2x.js";
2
- import { Cn as fetchChannelPermissionsDiscord, In as createSlackWebClient, Sn as parseDiscordTarget, vt as loadProviderUsageSummary, yt as formatUsageReportLines } from "./reply-B7ucnjr_.js";
2
+ import { Cn as fetchChannelPermissionsDiscord, In as createSlackWebClient, Sn as parseDiscordTarget, vt as loadProviderUsageSummary, yt as formatUsageReportLines } from "./reply-BK1ZEmE-.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, p as danger, y as setVerbose } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
@@ -63,14 +63,14 @@ import "./event-log-CRTHQkp5.js";
63
63
  import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
64
64
  import "./note-CrS1Szhk.js";
65
65
  import { t as createClackPrompter } from "./clack-prompter-D65FuQH4.js";
66
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CI02lbU3.js";
66
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-DsVSfdIu.js";
67
67
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CDSibY2C.js";
68
- import "./archive-BMmgk5KP.js";
68
+ import "./archive-W8rsoBYh.js";
69
69
  import "./skill-scanner-C1Y-vAfe.js";
70
- import "./installs-aFzmpJbj.js";
70
+ import "./installs-BhiaD1yI.js";
71
71
  import { t as collectChannelStatusIssues } from "./channels-status-issues-C88xoNq1.js";
72
- import { n as hasExplicitOptions } from "./plugin-registry-Bf_40cVb.js";
73
- import { t as formatCliChannelOptions } from "./channel-options-DJzDttZm.js";
72
+ import { n as hasExplicitOptions } from "./plugin-registry-BdRYqp1H.js";
73
+ import { t as formatCliChannelOptions } from "./channel-options-B8VOC47h.js";
74
74
  import { t as buildChannelAccountSnapshot } from "./status-jB5_YcY1.js";
75
75
  import { t as parseLogLine } from "./parse-log-line-D-aKdxYt.js";
76
76
  import fs from "node:fs/promises";
@@ -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-DNZKRc5Q.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-Dif1Is-I.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-N5dAgB2x.js";
2
- import { _t as loadSKYKOIPlugins } from "./reply-B7ucnjr_.js";
2
+ import { _t as loadSKYKOIPlugins } from "./reply-BK1ZEmE-.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.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-DzCBpl05.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-D5QBERRW.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 { At as formatControlUiSshHint, Et as applyWizardMetadata, Ft as openUrl, Ht as waitForGatewayReachable, Mt as handleReset, Nt as moveToTrash, Ot as detectBrowserOpenSupport, P as runMessageAction, Rt as randomToken, Tt as DEFAULT_WORKSPACE, U as CHANNEL_MESSAGE_ACTION_NAMES, V as formatTargetDisplay, an as registerMemoryCli, ft as CHANNEL_TARGETS_DESCRIPTION, kt as ensureWorkspaceAndSessions, on as runMemoryStatus, pt as CHANNEL_TARGET_DESCRIPTION, vr as lookupContextTokens, zt as resolveControlUiLinks } from "./reply-B7ucnjr_.js";
1
+ import { At as formatControlUiSshHint, Et as applyWizardMetadata, Ft as openUrl, Ht as waitForGatewayReachable, Mt as handleReset, Nt as moveToTrash, Ot as detectBrowserOpenSupport, P as runMessageAction, Rt as randomToken, Tt as DEFAULT_WORKSPACE, U as CHANNEL_MESSAGE_ACTION_NAMES, V as formatTargetDisplay, an as registerMemoryCli, ft as CHANNEL_TARGETS_DESCRIPTION, kt as ensureWorkspaceAndSessions, on as runMemoryStatus, pt as CHANNEL_TARGET_DESCRIPTION, vr as lookupContextTokens, zt as resolveControlUiLinks } from "./reply-BK1ZEmE-.js";
2
2
  import { B as normalizeChatChannelId, C as colorize, I as getChatChannelMeta, N as DEFAULT_CHAT_CHANNEL, T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, p as danger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { l as normalizeKoiId, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
@@ -19,29 +19,29 @@ import { t as formatDocsLink } from "./links-BraPfmsh.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-c9SIZezA.js";
20
20
  import { n as withProgress } from "./progress-n072C1nN.js";
21
21
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BioBnB_X.js";
22
- import { t as createDefaultDeps } from "./deps-D24ZTayV.js";
22
+ import { t as createDefaultDeps } from "./deps-ChkamwfD.js";
23
23
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BrHV63lV.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-D_xKFcV1.js";
26
26
  import { t as WizardCancelledError } from "./prompts-CL2SstQz.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-D65FuQH4.js";
28
- 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-BUnX80CY.js";
29
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BCwuQJV6.js";
30
- 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-F6C4Ejbn.js";
31
- import { n as setupChannels } from "./onboard-channels-CI02lbU3.js";
32
- import { l as healthCommand } from "./health-format-CLSvBgKv.js";
28
+ 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-BekrzT99.js";
29
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-CxiSK6WI.js";
30
+ 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-sPPiNJU-.js";
31
+ import { n as setupChannels } from "./onboard-channels-DsVSfdIu.js";
32
+ import { l as healthCommand } from "./health-format-MDGRXhYr.js";
33
33
  import { t as renderTable } from "./table-6UNPpVEx.js";
34
34
  import { t as resolveGatewayService } from "./service-bz-Q1pz8.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-WeDhEsPI.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DzCBpl05.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-D5QBERRW.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BmbZ18rs.js";
38
38
  import { t as formatHelpExamples } from "./help-format-BN200Sfc.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-SqZzxNIy.js";
40
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-Bf_40cVb.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-PYJ3eOYY.js";
40
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-BdRYqp1H.js";
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-DUclfUl-.js";
42
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CXCoCQvG.js";
42
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-BMmn2eLg.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BjfFUdaX.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Bymu6jT_.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BN7K9ZNh.js";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
@@ -2792,7 +2792,7 @@ async function loadValidConfig() {
2792
2792
  }
2793
2793
  function registerConfigCli(program) {
2794
2794
  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) => {
2795
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-CXCoCQvG.js").then((n) => n.t);
2795
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-BMmn2eLg.js").then((n) => n.t);
2796
2796
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2797
2797
  if (sections.length === 0) {
2798
2798
  await configureCommand(defaultRuntime);
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { Et as applyWizardMetadata, Ht as waitForGatewayReachable, It as printWizardHeader, Lt as probeGatewayReachable, Pt as normalizeGatewayTokenInput, Rt as randomToken, Tt as DEFAULT_WORKSPACE, Vt as summarizeExistingConfig, jt as guardCancel, kt as ensureWorkspaceAndSessions, zt as resolveControlUiLinks } from "./reply-B7ucnjr_.js";
2
+ import { Et as applyWizardMetadata, Ht as waitForGatewayReachable, It as printWizardHeader, Lt as probeGatewayReachable, Pt as normalizeGatewayTokenInput, Rt as randomToken, Tt as DEFAULT_WORKSPACE, Vt as summarizeExistingConfig, jt as guardCancel, kt as ensureWorkspaceAndSessions, zt as resolveControlUiLinks } from "./reply-BK1ZEmE-.js";
3
3
  import { c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
5
5
  import { h as resolveUserPath, y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-D_xKFcV1.js";
15
15
  import { t as note$1 } from "./note-CrS1Szhk.js";
16
16
  import { t as WizardCancelledError } from "./prompts-CL2SstQz.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-D65FuQH4.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-BCwuQJV6.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CI02lbU3.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-CLSvBgKv.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-CxiSK6WI.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-DsVSfdIu.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-MDGRXhYr.js";
21
21
  import { t as resolveGatewayService } from "./service-bz-Q1pz8.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BjfFUdaX.js";
23
23
  import { confirm, intro, outro, select, text } from "@clack/prompts";
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { zt as resolveControlUiLinks } from "./reply-B7ucnjr_.js";
2
+ import { zt as resolveControlUiLinks } from "./reply-BK1ZEmE-.js";
3
3
  import { C as colorize, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, w as isRich } from "./subsystem-RXphV8Xh.js";
4
4
  import { d as resolveIsNixMode, g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
5
5
  import { y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -14,7 +14,7 @@ import { n as callGateway } from "./call-DX0qYMrV.js";
14
14
  import { t as formatDocsLink } from "./links-BraPfmsh.js";
15
15
  import { n as withProgress } from "./progress-n072C1nN.js";
16
16
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-BgaL_XFJ.js";
17
- import { t as createDefaultDeps } from "./deps-D24ZTayV.js";
17
+ import { t as createDefaultDeps } from "./deps-ChkamwfD.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BrHV63lV.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-bz-Q1pz8.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-WeDhEsPI.js";
@@ -1,4 +1,4 @@
1
- import { Fn as sendMessageSlack, Nn as sendMessageWhatsApp, bn as sendMessageDiscord, wt as sendMessageIMessage, yn as sendMessageTelegram } from "./reply-B7ucnjr_.js";
1
+ import { Fn as sendMessageSlack, Nn as sendMessageWhatsApp, bn as sendMessageDiscord, wt as sendMessageIMessage, yn as sendMessageTelegram } from "./reply-BK1ZEmE-.js";
2
2
  import { b as sendMessageSignal } from "./deliver-MZK6dLre.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { Er as loadModelCatalog, Et as applyWizardMetadata, It as printWizardHeader, Rt as randomToken, _t as loadSKYKOIPlugins, jt as guardCancel } from "./reply-B7ucnjr_.js";
1
+ import { Er as loadModelCatalog, Et as applyWizardMetadata, It as printWizardHeader, Rt as randomToken, _t as loadSKYKOIPlugins, jt as guardCancel } from "./reply-BK1ZEmE-.js";
2
2
  import { O as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-RXphV8Xh.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-DvA8Pdt6.js";
@@ -26,8 +26,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
26
26
  import { n as logConfigUpdated } from "./logging-D_xKFcV1.js";
27
27
  import { t as note$1 } from "./note-CrS1Szhk.js";
28
28
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CDSibY2C.js";
29
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-CLSvBgKv.js";
30
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-CLofKLmw.js";
29
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-MDGRXhYr.js";
30
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-Bns3qDHZ.js";
31
31
  import { i as resolveGatewayAuth } from "./auth-DGixDs29.js";
32
32
  import { t as buildWorkspaceSkillStatus } from "./skills-status-Cq3eOGn7.js";
33
33
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-bz-Q1pz8.js";
package/dist/entry.js CHANGED
@@ -244,7 +244,7 @@ if (!ensureExperimentalWarningSuppressed()) {
244
244
  applyCliProfileEnv({ profile: parsed.profile });
245
245
  process$1.argv = parsed.argv;
246
246
  }
247
- import("./run-main-BKBpbQCi.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-lFLLorw5.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
248
248
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
249
249
  process$1.exitCode = 1;
250
250
  });
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-N5dAgB2x.js";
2
- import { Vr as resolveKoiTimeoutMs, c as runEmbeddedPiKoi, zn as resolveKoiIdentity } from "./reply-B7ucnjr_.js";
2
+ import { Vr as resolveKoiTimeoutMs, c as runEmbeddedPiKoi, zn as resolveKoiIdentity } from "./reply-BK1ZEmE-.js";
3
3
  import "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
2
  import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-N5dAgB2x.js";
3
- import { $ as formatRestartSentinelMessage, $n as resolveTtsAutoMode, $t as getSkillsSnapshotVersion, A as readSessionMessages, An as findSubkoiRunByRunId, Ar as DEFAULT_INPUT_IMAGE_MAX_BYTES, B as resolveSessionDeliveryTarget, Bn as formatUserTime, C as listSessionsFromStore, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dn as isAbortTrigger, Dr as DEFAULT_INPUT_FILE_MAX_BYTES, E as resolveGatewaySessionStoreTarget, En as formatZonedTimestamp, Er as loadModelCatalog, F as ensureOutboundSessionEntry, Fr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Gn as registerInternalHook, Gt as normalizeControlUiBasePath, H as resetDirectoryCache, Hn as resolveUserTimezone, I as resolveOutboundSessionRoute, Ir as DEFAULT_INPUT_TIMEOUT_MS, J as isGatewaySigusr1RestartExternallyAllowed, Jn as OPENAI_TTS_VOICES, Jt as primeRemoteSkillsCache, K as authorizeGatewaySigusr1Restart, Kn as triggerInternalHook, Kt as resolveAssistantAvatarUrl, Lr as extractFileContentFromSource, M as resolveSessionTranscriptCandidates, Mr as DEFAULT_INPUT_MAX_REDIRECTS, Mt as handleReset, N as stripEnvelopeFromMessages, Nr as DEFAULT_INPUT_PDF_MAX_PAGES, O as archiveFileOnDisk, On as stopSubkoisForRequester, Or as DEFAULT_INPUT_FILE_MAX_CHARS, Pn as normalizePollInput, Pr as DEFAULT_INPUT_PDF_MAX_PIXELS, Q as formatDoctorNonInteractiveHint, Qn as resolveTtsApiKey, Qt as setSkillsRemoteRegistry, Rr as extractImageContentFromSource, S as listKoisForGateway, Sr as parseVerboseOverride, St as handleSlackHttpRequest, T as loadSessionEntry, Tn as createReplyDispatcher, Un as clearInternalHooks, Ut as CONTROL_UI_AVATAR_PREFIX, Vn as resolveUserTimeFormat, Vr as resolveKoiTimeoutMs, W as runWithModelFallback, Wn as createInternalHookEvent, Wt as buildControlUiAvatarUrl, X as setGatewaySigusr1RestartPolicy, Xn as isTtsEnabled, Xt as refreshRemoteBinsForConnectedNodes, Y as scheduleGatewaySigusr1Restart, Yn as getTtsProvider, Yt as recordRemoteNodeInfo, Z as consumeRestartSentinel, Zn as isTtsProviderConfigured, Zt as refreshRemoteNodeBins, _ as getCanvasResource, _n as onHeartbeatEvent, _r as stripHeartbeatToken, _t as loadSKYKOIPlugins, a as normalizeSendPolicy, ar as textToSpeech, at as normalizeCronJobPatch, b as replaceCanvasResource, br as applyModelOverrideToSessionEntry, c as runEmbeddedPiKoi, cn as createReplyPrefixOptions, cr as setCommandLaneConcurrency, ct as normalizeOptionalText, d as waitForEmbeddedPiRunEnd, dn as registerUnhandledRejectionHandler, dr as stopDiagnosticHeartbeat, dt as migrateLegacyCronPayload, en as registerSkillsChangeListener, er as resolveTtsConfig, fr as isDiagnosticsEnabled, g as canvasUri, gn as getLastHeartbeatEvent, gt as getPluginToolMeta, h as createSKYKOITools, i as runCliKoi, in as isExternalHookSession, ir as setTtsProvider, it as normalizeCronJobCreate, j as readSessionPreviewItemsFromTranscript, jn as initSubkoiRegistry, jr as DEFAULT_INPUT_IMAGE_MIMES, k as capArrayByJsonBytes, kn as findSubkoiRunByChildSessionKey, kr as DEFAULT_INPUT_FILE_MIMES, l as abortEmbeddedPiRun, ln as normalizeGroupActivation, lr as CommandLane, lt as normalizePayloadToSystemText, m as initRuntimeContext, mn as resolveHeartbeatVisibility, mt as requestHeartbeatNow, n as getCliSessionId, nn as detectSuspiciousPatterns, nr as resolveTtsProviderOrder, o as resolveSendPolicy, ot as inferLegacyName, pn as buildHistoryContextFromEntries, pr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, q as consumeGatewaySigusr1RestartAuthorization, qn as OPENAI_TTS_MODELS, qt as getRemoteSkillEligibility, r as setCliSessionId, rn as getHookType, rr as setTtsEnabled, rt as writeRestartSentinel, s as clearSessionQueues, st as normalizeOptionalKoiId, tn as buildSafeExternalPrompt, tr as resolveTtsPrefsPath, tt as summarizeRestartSentinel, ur as startDiagnosticHeartbeat, ut as normalizeRequiredName, v as listCanvasUris, vr as lookupContextTokens, vt as loadProviderUsageSummary, w as loadCombinedSessionStoreForGateway, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as resolveAnnounceTargetFromKey, xn as getChannelActivity, xr as applyVerboseOverride, y as onCanvasChange, z as resolveOutboundTarget, zn as resolveKoiIdentity, zr as normalizeMimeList } from "./reply-B7ucnjr_.js";
3
+ import { $ as formatRestartSentinelMessage, $n as resolveTtsAutoMode, $t as getSkillsSnapshotVersion, A as readSessionMessages, An as findSubkoiRunByRunId, Ar as DEFAULT_INPUT_IMAGE_MAX_BYTES, B as resolveSessionDeliveryTarget, Bn as formatUserTime, C as listSessionsFromStore, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dn as isAbortTrigger, Dr as DEFAULT_INPUT_FILE_MAX_BYTES, E as resolveGatewaySessionStoreTarget, En as formatZonedTimestamp, Er as loadModelCatalog, F as ensureOutboundSessionEntry, Fr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Gn as registerInternalHook, Gt as normalizeControlUiBasePath, H as resetDirectoryCache, Hn as resolveUserTimezone, I as resolveOutboundSessionRoute, Ir as DEFAULT_INPUT_TIMEOUT_MS, J as isGatewaySigusr1RestartExternallyAllowed, Jn as OPENAI_TTS_VOICES, Jt as primeRemoteSkillsCache, K as authorizeGatewaySigusr1Restart, Kn as triggerInternalHook, Kt as resolveAssistantAvatarUrl, Lr as extractFileContentFromSource, M as resolveSessionTranscriptCandidates, Mr as DEFAULT_INPUT_MAX_REDIRECTS, Mt as handleReset, N as stripEnvelopeFromMessages, Nr as DEFAULT_INPUT_PDF_MAX_PAGES, O as archiveFileOnDisk, On as stopSubkoisForRequester, Or as DEFAULT_INPUT_FILE_MAX_CHARS, Pn as normalizePollInput, Pr as DEFAULT_INPUT_PDF_MAX_PIXELS, Q as formatDoctorNonInteractiveHint, Qn as resolveTtsApiKey, Qt as setSkillsRemoteRegistry, Rr as extractImageContentFromSource, S as listKoisForGateway, Sr as parseVerboseOverride, St as handleSlackHttpRequest, T as loadSessionEntry, Tn as createReplyDispatcher, Un as clearInternalHooks, Ut as CONTROL_UI_AVATAR_PREFIX, Vn as resolveUserTimeFormat, Vr as resolveKoiTimeoutMs, W as runWithModelFallback, Wn as createInternalHookEvent, Wt as buildControlUiAvatarUrl, X as setGatewaySigusr1RestartPolicy, Xn as isTtsEnabled, Xt as refreshRemoteBinsForConnectedNodes, Y as scheduleGatewaySigusr1Restart, Yn as getTtsProvider, Yt as recordRemoteNodeInfo, Z as consumeRestartSentinel, Zn as isTtsProviderConfigured, Zt as refreshRemoteNodeBins, _ as getCanvasResource, _n as onHeartbeatEvent, _r as stripHeartbeatToken, _t as loadSKYKOIPlugins, a as normalizeSendPolicy, ar as textToSpeech, at as normalizeCronJobPatch, b as replaceCanvasResource, br as applyModelOverrideToSessionEntry, c as runEmbeddedPiKoi, cn as createReplyPrefixOptions, cr as setCommandLaneConcurrency, ct as normalizeOptionalText, d as waitForEmbeddedPiRunEnd, dn as registerUnhandledRejectionHandler, dr as stopDiagnosticHeartbeat, dt as migrateLegacyCronPayload, en as registerSkillsChangeListener, er as resolveTtsConfig, fr as isDiagnosticsEnabled, g as canvasUri, gn as getLastHeartbeatEvent, gt as getPluginToolMeta, h as createSKYKOITools, i as runCliKoi, in as isExternalHookSession, ir as setTtsProvider, it as normalizeCronJobCreate, j as readSessionPreviewItemsFromTranscript, jn as initSubkoiRegistry, jr as DEFAULT_INPUT_IMAGE_MIMES, k as capArrayByJsonBytes, kn as findSubkoiRunByChildSessionKey, kr as DEFAULT_INPUT_FILE_MIMES, l as abortEmbeddedPiRun, ln as normalizeGroupActivation, lr as CommandLane, lt as normalizePayloadToSystemText, m as initRuntimeContext, mn as resolveHeartbeatVisibility, mt as requestHeartbeatNow, n as getCliSessionId, nn as detectSuspiciousPatterns, nr as resolveTtsProviderOrder, o as resolveSendPolicy, ot as inferLegacyName, pn as buildHistoryContextFromEntries, pr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, q as consumeGatewaySigusr1RestartAuthorization, qn as OPENAI_TTS_MODELS, qt as getRemoteSkillEligibility, r as setCliSessionId, rn as getHookType, rr as setTtsEnabled, rt as writeRestartSentinel, s as clearSessionQueues, st as normalizeOptionalKoiId, tn as buildSafeExternalPrompt, tr as resolveTtsPrefsPath, tt as summarizeRestartSentinel, ur as startDiagnosticHeartbeat, ut as normalizeRequiredName, v as listCanvasUris, vr as lookupContextTokens, vt as loadProviderUsageSummary, w as loadCombinedSessionStoreForGateway, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as resolveAnnounceTargetFromKey, xn as getChannelActivity, xr as applyVerboseOverride, y as onCanvasChange, z as resolveOutboundTarget, zn as resolveKoiIdentity, zr as normalizeMimeList } from "./reply-BK1ZEmE-.js";
4
4
  import { C as colorize, D as getLogger, E as getChildLogger, N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, V as getActivePluginRegistry, a as setConsoleTimestampPrefix, c as defaultRuntime, i as setConsoleSubsystemFilter, j as CHANNEL_IDS, n as runtimeForLogger, t as createSubsystemLogger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.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 { _ as isSubkoiSessionKey, a as buildKoiMainSessionKey, d as resolveKoiIdFromSessionKey, l as normalizeKoiId, m as toKoiRequestSessionKey, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseKoiSessionKey } from "./session-key-DvA8Pdt6.js";
@@ -67,7 +67,7 @@ import { n as createBrowserControlContext, r as startBrowserControlServiceFromCo
67
67
  import { t as parseAbsoluteTimeMs } from "./parse-TGKW2P5S.js";
68
68
  import { n as resolveMessageChannelSelection } from "./channel-selection-jyGnnq0E.js";
69
69
  import { n as hydrateSession, r as readEventsSince, t as appendEvent } from "./event-log-CRTHQkp5.js";
70
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-D24ZTayV.js";
70
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-ChkamwfD.js";
71
71
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-BVFil2zN.js";
72
72
  import { t as ensureSKYKOICliOnPath } from "./path-env-D7MDOz2j.js";
73
73
  import "./daemon-runtime-BrHV63lV.js";
@@ -76,16 +76,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
76
76
  import "./logging-D_xKFcV1.js";
77
77
  import "./note-CrS1Szhk.js";
78
78
  import { t as WizardCancelledError } from "./prompts-CL2SstQz.js";
79
- 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-BUnX80CY.js";
80
- import { n as installSkill } from "./onboard-skills-BCwuQJV6.js";
81
- import "./github-copilot-auth-F6C4Ejbn.js";
82
- import "./onboard-channels-CI02lbU3.js";
79
+ 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-BekrzT99.js";
80
+ import { n as installSkill } from "./onboard-skills-CxiSK6WI.js";
81
+ import "./github-copilot-auth-sPPiNJU-.js";
82
+ import "./onboard-channels-DsVSfdIu.js";
83
83
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CDSibY2C.js";
84
- import "./archive-BMmgk5KP.js";
84
+ import "./archive-W8rsoBYh.js";
85
85
  import "./skill-scanner-C1Y-vAfe.js";
86
- import "./installs-aFzmpJbj.js";
87
- 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-CLSvBgKv.js";
88
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CLofKLmw.js";
86
+ import "./installs-BhiaD1yI.js";
87
+ 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-MDGRXhYr.js";
88
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-Bns3qDHZ.js";
89
89
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DGixDs29.js";
90
90
  import { i as probeGateway } from "./audit-Bjsdct8d.js";
91
91
  import "./table-6UNPpVEx.js";
@@ -95,16 +95,16 @@ import { p as resolveGatewayStateDir } from "./systemd-WeDhEsPI.js";
95
95
  import "./service-audit-0Irp8Nwq.js";
96
96
  import "./node-service-DoNL0Ruu.js";
97
97
  import "./channels-status-issues-C88xoNq1.js";
98
- import "./register.subclis-DzCBpl05.js";
99
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-SqZzxNIy.js";
98
+ import "./register.subclis-D5QBERRW.js";
99
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-PYJ3eOYY.js";
100
100
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-D8atdlDH.js";
101
101
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DTM_9zJu.js";
102
- import "./completion-cli-thFypIZk.js";
102
+ import "./completion-cli-BtMCeQrb.js";
103
103
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DYC2HNdI.js";
104
104
  import "./tui-DFcLvKcS.js";
105
105
  import { t as buildChannelAccountSnapshot } from "./status-jB5_YcY1.js";
106
106
  import "./shared-BaXeHg7G.js";
107
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DNZKRc5Q.js";
107
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-Dif1Is-I.js";
108
108
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CaREiIvb.js";
109
109
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-DeKwTnzt.js";
110
110
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-B4NTj3UO.js";
@@ -11129,7 +11129,7 @@ const nodeHandlers = {
11129
11129
  const p = params;
11130
11130
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
11131
11131
  await respondUnavailableOnThrow(respond, async () => {
11132
- const { handleNodeEvent } = await import("./server-node-events-BE9979WS.js");
11132
+ const { handleNodeEvent } = await import("./server-node-events-JU1Vyr2P.js");
11133
11133
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
11134
11134
  await handleNodeEvent({
11135
11135
  deps: context.deps,
@@ -1,4 +1,4 @@
1
- import { _t as loadSKYKOIPlugins } from "./reply-B7ucnjr_.js";
1
+ import { _t as loadSKYKOIPlugins } from "./reply-BK1ZEmE-.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
3
3
  import { l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
4
4
  import { b as sleep } from "./utils-rBzA-VDv.js";
@@ -1,4 +1,4 @@
1
- import { Hn as resolveUserTimezone, L as resolveHeartbeatDeliveryTarget, R as resolveHeartbeatSenderContext, Rn as resolveEffectiveMessagesConfig, Tr as peekSystemEvents, _r as stripHeartbeatToken, gr as resolveHeartbeatPrompt$1, hn as emitHeartbeatEvent, hr as isHeartbeatContentEffectivelyEmpty, ht as setHeartbeatWakeHandler, lr as CommandLane, mn as resolveHeartbeatVisibility, mr as DEFAULT_HEARTBEAT_EVERY, mt as requestHeartbeatNow, or as enqueueCommandInLane, pr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, sr as getQueueSize, t as getReplyFromConfig, u as isEmbeddedPiRunActive, vn as resolveIndicatorType } from "./reply-B7ucnjr_.js";
1
+ import { Hn as resolveUserTimezone, L as resolveHeartbeatDeliveryTarget, R as resolveHeartbeatSenderContext, Rn as resolveEffectiveMessagesConfig, Tr as peekSystemEvents, _r as stripHeartbeatToken, gr as resolveHeartbeatPrompt$1, hn as emitHeartbeatEvent, hr as isHeartbeatContentEffectivelyEmpty, ht as setHeartbeatWakeHandler, lr as CommandLane, mn as resolveHeartbeatVisibility, mr as DEFAULT_HEARTBEAT_EVERY, mt as requestHeartbeatNow, or as enqueueCommandInLane, pr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, sr as getQueueSize, t as getReplyFromConfig, u as isEmbeddedPiRunActive, vn as resolveIndicatorType } from "./reply-BK1ZEmE-.js";
2
2
  import { C as colorize, T as theme, c as defaultRuntime, m as info, t as createSubsystemLogger, w as isRich } from "./subsystem-RXphV8Xh.js";
3
3
  import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
4
4
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-N5dAgB2x.js";
2
- import "./reply-B7ucnjr_.js";
2
+ import "./reply-BK1ZEmE-.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { h as resolveUserPath, t as CONFIG_DIR, y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -58,10 +58,10 @@ import "./session-cost-usage-C3Scd8s_.js";
58
58
  import "./control-service-DvYWm_np.js";
59
59
  import "./channel-selection-jyGnnq0E.js";
60
60
  import "./event-log-CRTHQkp5.js";
61
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BMmgk5KP.js";
61
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-W8rsoBYh.js";
62
62
  import { t as renderTable } from "./table-6UNPpVEx.js";
63
63
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-DYC2HNdI.js";
64
- import { t as buildPluginStatusReport } from "./status-CBsQl8ku.js";
64
+ import { t as buildPluginStatusReport } from "./status-z_6fGIwV.js";
65
65
  import fs from "node:fs";
66
66
  import path from "node:path";
67
67
  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-N5dAgB2x.js";
3
- import { Br as applyTemplate, fn as waitForever, sn as monitorWebChannel, t as getReplyFromConfig, un as installUnhandledRejectionHandler } from "./reply-B7ucnjr_.js";
3
+ import { Br as applyTemplate, fn as waitForever, sn as monitorWebChannel, t as getReplyFromConfig, un as installUnhandledRejectionHandler } from "./reply-BK1ZEmE-.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-RXphV8Xh.js";
5
5
  import "./paths-VdmjGGyc.js";
6
6
  import { S as toWhatsappJid, d as normalizeE164, n as assertWebChannel } from "./utils-rBzA-VDv.js";
@@ -58,27 +58,27 @@ import "./session-cost-usage-C3Scd8s_.js";
58
58
  import "./control-service-DvYWm_np.js";
59
59
  import "./channel-selection-jyGnnq0E.js";
60
60
  import "./event-log-CRTHQkp5.js";
61
- import { t as createDefaultDeps } from "./deps-D24ZTayV.js";
61
+ import { t as createDefaultDeps } from "./deps-ChkamwfD.js";
62
62
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-BVFil2zN.js";
63
63
  import { t as loadDotEnv } from "./dotenv-BhXDZTJk.js";
64
64
  import { t as isMainModule } from "./is-main-CFOIyUwL.js";
65
65
  import { t as ensureSKYKOICliOnPath } from "./path-env-D7MDOz2j.js";
66
66
  import { g as assertSupportedRuntime } from "./daemon-runtime-BrHV63lV.js";
67
67
  import "./ports-D80unNIa.js";
68
- import "./config-guard-DWiWNQzf.js";
68
+ import "./config-guard-XbUcqVcn.js";
69
69
  import "./logging-D_xKFcV1.js";
70
70
  import "./note-CrS1Szhk.js";
71
71
  import "./clack-prompter-D65FuQH4.js";
72
- import "./onboarding-BUnX80CY.js";
73
- import "./onboard-skills-BCwuQJV6.js";
74
- import "./github-copilot-auth-F6C4Ejbn.js";
75
- import "./onboard-channels-CI02lbU3.js";
72
+ import "./onboarding-BekrzT99.js";
73
+ import "./onboard-skills-CxiSK6WI.js";
74
+ import "./github-copilot-auth-sPPiNJU-.js";
75
+ import "./onboard-channels-DsVSfdIu.js";
76
76
  import "./plugin-auto-enable-CDSibY2C.js";
77
- import "./archive-BMmgk5KP.js";
77
+ import "./archive-W8rsoBYh.js";
78
78
  import "./skill-scanner-C1Y-vAfe.js";
79
- import "./installs-aFzmpJbj.js";
80
- import "./health-format-CLSvBgKv.js";
81
- import "./update-runner-CLofKLmw.js";
79
+ import "./installs-BhiaD1yI.js";
80
+ import "./health-format-MDGRXhYr.js";
81
+ import "./update-runner-Bns3qDHZ.js";
82
82
  import "./auth-DGixDs29.js";
83
83
  import "./audit-Bjsdct8d.js";
84
84
  import "./table-6UNPpVEx.js";
@@ -88,22 +88,22 @@ import "./systemd-WeDhEsPI.js";
88
88
  import "./service-audit-0Irp8Nwq.js";
89
89
  import "./node-service-DoNL0Ruu.js";
90
90
  import "./channels-status-issues-C88xoNq1.js";
91
- import "./register.subclis-DzCBpl05.js";
91
+ import "./register.subclis-D5QBERRW.js";
92
92
  import "./gateway-rpc-BmbZ18rs.js";
93
93
  import "./help-format-BN200Sfc.js";
94
- import "./koi-SqZzxNIy.js";
95
- import "./plugin-registry-Bf_40cVb.js";
96
- import "./configure-CXCoCQvG.js";
94
+ import "./koi-PYJ3eOYY.js";
95
+ import "./plugin-registry-BdRYqp1H.js";
96
+ import "./configure-BMmn2eLg.js";
97
97
  import "./systemd-linger-BjfFUdaX.js";
98
98
  import "./widearea-dns-D8atdlDH.js";
99
99
  import "./bonjour-discovery-DTM_9zJu.js";
100
100
  import "./auth-health-Dme6P_xB.js";
101
- import "./doctor-Bymu6jT_.js";
102
- import "./completion-cli-thFypIZk.js";
101
+ import "./doctor-BN7K9ZNh.js";
102
+ import "./completion-cli-BtMCeQrb.js";
103
103
  import "./hooks-status-DYC2HNdI.js";
104
104
  import "./tui-DFcLvKcS.js";
105
- import "./channel-options-DJzDttZm.js";
106
- import { n as buildProgram } from "./program-Lnu81w9O.js";
105
+ import "./channel-options-B8VOC47h.js";
106
+ import { n as buildProgram } from "./program-CasYC4-7.js";
107
107
  import process from "node:process";
108
108
  import { fileURLToPath } from "node:url";
109
109
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-rBzA-VDv.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-BfJkwq3e.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BMmgk5KP.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-W8rsoBYh.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-C1Y-vAfe.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-N5dAgB2x.js";
2
- import { $t as getSkillsSnapshotVersion, B as resolveSessionDeliveryTarget, Er as loadModelCatalog, Mn as KOI_LANE_NESTED, Vr as resolveKoiTimeoutMs, W as runWithModelFallback, br as applyModelOverrideToSessionEntry, c as runEmbeddedPiKoi, i as runCliKoi, n as getCliSessionId, o as resolveSendPolicy, p as compactEmbeddedPiSession, qt as getRemoteSkillEligibility, r as setCliSessionId, vr as lookupContextTokens, xr as applyVerboseOverride, yr as clearSessionAuthProfileOverride, z as resolveOutboundTarget } from "./reply-B7ucnjr_.js";
2
+ import { $t as getSkillsSnapshotVersion, B as resolveSessionDeliveryTarget, Er as loadModelCatalog, Mn as KOI_LANE_NESTED, Vr as resolveKoiTimeoutMs, W as runWithModelFallback, br as applyModelOverrideToSessionEntry, c as runEmbeddedPiKoi, i as runCliKoi, n as getCliSessionId, o as resolveSendPolicy, p as compactEmbeddedPiSession, qt as getRemoteSkillEligibility, r as setCliSessionId, vr as lookupContextTokens, xr as applyVerboseOverride, yr as clearSessionAuthProfileOverride, z as resolveOutboundTarget } from "./reply-BK1ZEmE-.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import { d as resolveKoiIdFromSessionKey, l as normalizeKoiId, u as normalizeMainKey } from "./session-key-DvA8Pdt6.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-B7BaYiK4.js";
@@ -13,7 +13,7 @@ import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-g0XV
13
13
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-MZK6dLre.js";
14
14
  import { n as emitKoiEvent, o as registerKoiRunContext, t as clearKoiRunContext } from "./koi-events-BaxaD02c.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-C3Scd8s_.js";
16
- import { t as createDefaultDeps } from "./deps-D24ZTayV.js";
16
+ import { t as createDefaultDeps } from "./deps-ChkamwfD.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-N5dAgB2x.js";
2
- import { Er as loadModelCatalog, Ft as openUrl, G as describeFailoverError, bt as formatUsageWindowSummary, c as runEmbeddedPiKoi, vt as loadProviderUsageSummary, xt as resolveUsageProviderId } from "./reply-B7ucnjr_.js";
2
+ import { Er as loadModelCatalog, Ft as openUrl, G as describeFailoverError, bt as formatUsageWindowSummary, c as runEmbeddedPiKoi, vt as loadProviderUsageSummary, xt as resolveUsageProviderId } from "./reply-BK1ZEmE-.js";
3
3
  import { C as colorize, T as theme, c as defaultRuntime, w as isRich$1 } from "./subsystem-RXphV8Xh.js";
4
4
  import { t as CONFIG_PATH } from "./paths-VdmjGGyc.js";
5
5
  import { y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -62,7 +62,7 @@ import "./event-log-CRTHQkp5.js";
62
62
  import { n as logConfigUpdated } from "./logging-D_xKFcV1.js";
63
63
  import "./note-CrS1Szhk.js";
64
64
  import { t as createClackPrompter } from "./clack-prompter-D65FuQH4.js";
65
- 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-F6C4Ejbn.js";
65
+ 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-sPPiNJU-.js";
66
66
  import { t as renderTable } from "./table-6UNPpVEx.js";
67
67
  import { i as redactSecrets } from "./format-C8RwgLWp.js";
68
68
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Dme6P_xB.js";
@@ -1,4 +1,4 @@
1
- import { _t as loadSKYKOIPlugins } from "./reply-B7ucnjr_.js";
1
+ import { _t as loadSKYKOIPlugins } from "./reply-BK1ZEmE-.js";
2
2
  import { F as formatChannelSelectionLine, L as listChatChannels, P as formatChannelPrimerLine, t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
4
4
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-B7BaYiK4.js";
@@ -7,7 +7,7 @@ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-D6P_BD
7
7
  import { t as formatDocsLink } from "./links-BraPfmsh.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
9
9
  import { i as listChannelPluginCatalogEntries, n as isChannelConfigured } from "./plugin-auto-enable-CDSibY2C.js";
10
- import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-aFzmpJbj.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BhiaD1yI.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
13
 
@@ -1,4 +1,4 @@
1
- import { Bt as resolveNodeManagerOptions, Dt as detectBinary, Er as loadModelCatalog, Ft as openUrl } from "./reply-B7ucnjr_.js";
1
+ import { Bt as resolveNodeManagerOptions, Dt as detectBinary, Er as loadModelCatalog, Ft as openUrl } from "./reply-BK1ZEmE-.js";
2
2
  import { f as resolveConfigDir, h as resolveUserPath, s as ensureDir, t as CONFIG_DIR } from "./utils-rBzA-VDv.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
4
4
  import { T as resolveDefaultKoiWorkspaceDir, a as resolveKoiDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId, s as resolveKoiModelPrimary } from "./koi-scope-B7BaYiK4.js";
@@ -8,8 +8,8 @@ import { t as formatCliCommand } from "./command-format-DQtyHEuH.js";
8
8
  import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t as resolveSkillsInstallPreferences } from "./skills-BqVpvDa-.js";
9
9
  import { Y as fetchWithSsrFGuard } from "./deliver-MZK6dLre.js";
10
10
  import { t as resolveBrewExecutable } from "./brew-DYTrysTv.js";
11
- 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-F6C4Ejbn.js";
12
- import { a as enablePluginInConfig } from "./onboard-channels-CI02lbU3.js";
11
+ 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-sPPiNJU-.js";
12
+ import { a as enablePluginInConfig } from "./onboard-channels-DsVSfdIu.js";
13
13
  import { t as scanDirectoryWithSummary } from "./skill-scanner-C1Y-vAfe.js";
14
14
  import { t as buildWorkspaceSkillStatus } from "./skills-status-Cq3eOGn7.js";
15
15
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-D8atdlDH.js";
@@ -1,4 +1,4 @@
1
- import { At as formatControlUiSshHint, Et as applyWizardMetadata, Ft as openUrl, Gt as normalizeControlUiBasePath, Ht as waitForGatewayReachable, It as printWizardHeader, Ln as getMemorySearchManager, Lt as probeGatewayReachable, Mt as handleReset, Ot as detectBrowserOpenSupport, Pt as normalizeGatewayTokenInput, Rt as randomToken, S as listKoisForGateway, Tr as peekSystemEvents, Tt as DEFAULT_WORKSPACE, Vt as summarizeExistingConfig, et as readRestartSentinel, f as sha256HexPrefix, kt as ensureWorkspaceAndSessions, qt as getRemoteSkillEligibility, tt as summarizeRestartSentinel, vr as lookupContextTokens, vt as loadProviderUsageSummary, yt as formatUsageReportLines, zt as resolveControlUiLinks } from "./reply-B7ucnjr_.js";
1
+ import { At as formatControlUiSshHint, Et as applyWizardMetadata, Ft as openUrl, Gt as normalizeControlUiBasePath, Ht as waitForGatewayReachable, It as printWizardHeader, Ln as getMemorySearchManager, Lt as probeGatewayReachable, Mt as handleReset, Ot as detectBrowserOpenSupport, Pt as normalizeGatewayTokenInput, Rt as randomToken, S as listKoisForGateway, Tr as peekSystemEvents, Tt as DEFAULT_WORKSPACE, Vt as summarizeExistingConfig, et as readRestartSentinel, f as sha256HexPrefix, kt as ensureWorkspaceAndSessions, qt as getRemoteSkillEligibility, tt as summarizeRestartSentinel, vr as lookupContextTokens, vt as loadProviderUsageSummary, yt as formatUsageReportLines, zt as resolveControlUiLinks } from "./reply-BK1ZEmE-.js";
2
2
  import { T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, w as isRich } from "./subsystem-RXphV8Xh.js";
3
3
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { l as normalizeKoiId, v as parseKoiSessionKey } from "./session-key-DvA8Pdt6.js";
@@ -21,10 +21,10 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWA
21
21
  import { t as resolveChannelDefaultAccountId } from "./helpers-BNuSQH6i.js";
22
22
  import { n as logConfigUpdated } from "./logging-D_xKFcV1.js";
23
23
  import { t as WizardCancelledError } from "./prompts-CL2SstQz.js";
24
- 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-BCwuQJV6.js";
25
- import { n as setupChannels } from "./onboard-channels-CI02lbU3.js";
26
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForKoi } from "./health-format-CLSvBgKv.js";
27
- 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-CLofKLmw.js";
24
+ 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-CxiSK6WI.js";
25
+ import { n as setupChannels } from "./onboard-channels-DsVSfdIu.js";
26
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForKoi } from "./health-format-MDGRXhYr.js";
27
+ 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-Bns3qDHZ.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-Bjsdct8d.js";
29
29
  import { t as renderTable } from "./table-6UNPpVEx.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-Cq3eOGn7.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-0Irp8Nwq.js";
34
34
  import { t as resolveNodeService } from "./node-service-DoNL0Ruu.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-C88xoNq1.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-C8RwgLWp.js";
37
- import { r as installCompletion } from "./completion-cli-thFypIZk.js";
37
+ import { r as installCompletion } from "./completion-cli-BtMCeQrb.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DYC2HNdI.js";
39
39
  import { t as runTui } from "./tui-DFcLvKcS.js";
40
40
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { _t as loadSKYKOIPlugins } from "./reply-B7ucnjr_.js";
1
+ import { _t as loadSKYKOIPlugins } from "./reply-BK1ZEmE-.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
3
3
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-B7BaYiK4.js";
4
4
  import { o as loadConfig } from "./config-DG0yIsda.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-BsWYwu7p.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-DIELoDpU.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 AjvPkg from "ajv";
45
+ import AjvModule from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
48
48
  import "yaml";
@@ -20498,7 +20498,7 @@ function loadPluginManifestRegistry(params) {
20498
20498
 
20499
20499
  //#endregion
20500
20500
  //#region src/plugins/schema-validator.ts
20501
- const ajv$1 = new AjvPkg({
20501
+ const ajv$1 = new AjvModule({
20502
20502
  allErrors: true,
20503
20503
  strict: false,
20504
20504
  removeAdditional: false
@@ -47071,7 +47071,7 @@ const PROTOCOL_VERSION = 3;
47071
47071
 
47072
47072
  //#endregion
47073
47073
  //#region src/gateway/protocol/index.ts
47074
- const ajv = new AjvPkg({
47074
+ const ajv = new AjvModule({
47075
47075
  allErrors: true,
47076
47076
  strict: false,
47077
47077
  removeAdditional: false
@@ -66391,7 +66391,7 @@ function enqueueSystemEvent(text, options) {
66391
66391
  const MODEL_CACHE = /* @__PURE__ */ new Map();
66392
66392
  (async () => {
66393
66393
  try {
66394
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-BsWYwu7p.js").then((n) => n.t);
66394
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-DIELoDpU.js").then((n) => n.t);
66395
66395
  await ensureSKYKOIModelsJson(loadConfig());
66396
66396
  const koiDir = resolveSKYKOIKoiDir();
66397
66397
  const models = discoverModels(discoverAuthStorage(koiDir), koiDir).getAll();
@@ -243327,6 +243327,7 @@ const PreviewCheckSchema = Type.Object({ url: Type.String({ description: "Full h
243327
243327
  const exec$2 = promisify(exec);
243328
243328
  const PublishSiteParams = Type.Object({
243329
243329
  slug: Type.String({ description: "URL-safe project slug (lowercase letters, digits, hyphens; max 63 chars)." }),
243330
+ label: Type.Optional(Type.String()),
243330
243331
  html: Type.Optional(Type.String()),
243331
243332
  dir: Type.Optional(Type.String()),
243332
243333
  files: Type.Optional(Type.Record(Type.String(), Type.String(), { description: "Relative path → file contents for inline multi-file sites." }))
@@ -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 AjvPkg from "ajv";
37
+ import AjvModule 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 = AjvPkg.default || AjvPkg;
59702
+ const Ajv$1 = AjvModule.default || AjvModule;
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 = AjvPkg.default || AjvPkg;
174029
+ const Ajv = AjvModule.default || AjvModule;
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-N5dAgB2x.js";
2
- import "./reply-B7ucnjr_.js";
2
+ import "./reply-BK1ZEmE-.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { h as resolveUserPath, v as shortenHomeInString, y as shortenHomePath } from "./utils-rBzA-VDv.js";
@@ -57,12 +57,12 @@ import "./session-cost-usage-C3Scd8s_.js";
57
57
  import "./control-service-DvYWm_np.js";
58
58
  import "./channel-selection-jyGnnq0E.js";
59
59
  import "./event-log-CRTHQkp5.js";
60
- import { i as resolveArchiveKind } from "./archive-BMmgk5KP.js";
60
+ import { i as resolveArchiveKind } from "./archive-W8rsoBYh.js";
61
61
  import "./skill-scanner-C1Y-vAfe.js";
62
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-aFzmpJbj.js";
62
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BhiaD1yI.js";
63
63
  import { t as renderTable } from "./table-6UNPpVEx.js";
64
- import { t as buildPluginStatusReport } from "./status-CBsQl8ku.js";
65
- import { n as updateNpmInstalledPlugins } from "./update-C-iDbQud.js";
64
+ import { t as buildPluginStatusReport } from "./status-z_6fGIwV.js";
65
+ import { n as updateNpmInstalledPlugins } from "./update-DmEVdhH0.js";
66
66
  import fs from "node:fs";
67
67
  import path from "node:path";
68
68
 
@@ -4,11 +4,11 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-DQtyH
4
4
  import { t as isTruthyEnvValue } from "./env-BA3nu3t6.js";
5
5
  import { N as VERSION } from "./config-DG0yIsda.js";
6
6
  import { t as formatDocsLink } from "./links-BraPfmsh.js";
7
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-DWiWNQzf.js";
8
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-DzCBpl05.js";
9
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bf_40cVb.js";
7
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-XbUcqVcn.js";
8
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-D5QBERRW.js";
9
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BdRYqp1H.js";
10
10
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-DFcLvKcS.js";
11
- import { n as resolveCliChannelOptions } from "./channel-options-DJzDttZm.js";
11
+ import { n as resolveCliChannelOptions } from "./channel-options-B8VOC47h.js";
12
12
  import { Command } from "commander";
13
13
 
14
14
  //#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-BZNwW8HI.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-hWYnELTw.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-DNZKRc5Q.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-Dif1Is-I.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-BDaaciB0.js")).registerModelsCli(program);
155
+ (await import("./models-cli-CK9ygdKp.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-46m2O6ST.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-CHrCMDMe.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-BqTPyyxM.js");
239
+ const { registerPluginCliCommands } = await import("./cli-06GXMT2h.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
241
  (await import("./pairing-cli-DyLBaOcj.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-C_Amscsp.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-BqTPyyxM.js");
248
+ (await import("./plugins-cli-BJOazuyP.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-06GXMT2h.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-Bd449nyG.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-DmRqBVnC.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-TmYsQJMf.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-n8NFSOq2.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-thFypIZk.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-BtMCeQrb.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -16,7 +16,7 @@ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-v4M
16
16
  import { C as getConfigValueAtPath, E as unsetConfigValueAtPath, N as VERSION, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, b as resetConfigOverrides, c as readConfigFileSnapshot, d as validateConfigObjectWithPlugins, g as isSafeExecutableValue, h as resolveTelegramCustomCommands, j as resolveKoiMaxConcurrent, l as resolveConfigSnapshotHash, m as normalizeTelegramCommandName, o as loadConfig, p as TELEGRAM_COMMAND_NAME_PATTERN, u as writeConfigFile, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-DG0yIsda.js";
17
17
  import { c as resolveEnableState, l as resolveMemorySlotDecision, n as discoverSKYKOIPlugins, s as normalizePluginsConfig, t as loadPluginManifestRegistry } from "./manifest-registry-BfJkwq3e.js";
18
18
  import { _ as listEnabledDiscordAccounts, a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-D6P_BD0C.js";
19
- import { B as listEnabledSignalAccounts, C as resolveSessionResetPolicy, E as DEFAULT_RESET_TRIGGERS, F as getChannelDock, G as resolveConversationLabel, H as resolveIMessageAccount, I as listChannelDocks, L as resolveChannelGroupPolicy, N as deriveSessionMetaPatch, O as canonicalizeMainSessionAlias, R as resolveChannelGroupRequireMention, S as resolveChannelResetConfig, T as resolveThreadFlag, U as buildGroupDisplayName, V as resolveSignalAccount, W as resolveGroupSessionKey, _ as normalizeSessionDeliveryFields, a as readSessionUpdatedAt, b as resolveSessionKey$2, c as updateLastRoute, d as isCacheEnabled, f as resolveCacheTtlMs$1, g as normalizeDeliveryContext, h as mergeDeliveryContext, i as loadSessionStore, j as resolveMainSessionKey, l as updateSessionStore, m as deliveryContextKey, n as appendAssistantMessageToSessionTranscript, o as recordSessionMetaFromInbound, p as deliveryContextFromSession, u as updateSessionStoreEntry, w as resolveSessionResetType, x as evaluateSessionFreshness } from "./sessions-ENZENUw0.js";
19
+ import { B as listEnabledSignalAccounts, C as resolveSessionResetPolicy, E as DEFAULT_RESET_TRIGGERS, F as getChannelDock, G as resolveConversationLabel, H as resolveIMessageAccount, I as listChannelDocks, L as resolveChannelGroupPolicy, N as deriveSessionMetaPatch, O as canonicalizeMainSessionAlias, R as resolveChannelGroupRequireMention, S as resolveChannelResetConfig, T as resolveThreadFlag, U as buildGroupDisplayName, V as resolveSignalAccount, W as resolveGroupSessionKey, _ as normalizeSessionDeliveryFields, a as readSessionUpdatedAt, b as resolveSessionKey$3, c as updateLastRoute, d as isCacheEnabled, f as resolveCacheTtlMs$1, g as normalizeDeliveryContext, h as mergeDeliveryContext, i as loadSessionStore, j as resolveMainSessionKey, l as updateSessionStore, m as deliveryContextKey, n as appendAssistantMessageToSessionTranscript, o as recordSessionMetaFromInbound, p as deliveryContextFromSession, u as updateSessionStoreEntry, w as resolveSessionResetType, x as evaluateSessionFreshness } from "./sessions-ENZENUw0.js";
20
20
  import { _ as ensureSKYKOIModelsJson, a as decodeDataUrl, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as stripDowngradedToolCallText, o as resolveProviderVisionModelFromConfig, p as promoteThinkingTagsToBlocks, r as coerceImageAssistantText, s as extractAssistantText$1, t as describeImageWithModel, u as extractThinkingFromTaggedText, v as minimaxUnderstandImage } from "./image-DXaouwNm.js";
21
21
  import { A as SessionManager, M as SettingsManager, a as createWriteTool, c as createEditTool, i as codingTools, j as estimateTokens, k as CURRENT_SESSION_VERSION, o as createReadTool, s as readTool, t as createAgentSession } from "./dist-DwNpZCZh.js";
22
22
  import { n as require_ms, t as require_src$1 } from "./src-D8AlCNvU.js";
@@ -5154,11 +5154,11 @@ let lastActivityAt = 0;
5154
5154
  function markActivity() {
5155
5155
  lastActivityAt = Date.now();
5156
5156
  }
5157
- function resolveSessionKey$1({ sessionKey, sessionId }) {
5157
+ function resolveSessionKey$2({ sessionKey, sessionId }) {
5158
5158
  return sessionKey ?? sessionId ?? "unknown";
5159
5159
  }
5160
5160
  function getSessionState$1(ref) {
5161
- const key = resolveSessionKey$1(ref);
5161
+ const key = resolveSessionKey$2(ref);
5162
5162
  const existing = sessionStates.get(key);
5163
5163
  if (existing) {
5164
5164
  if (ref.sessionId) existing.sessionId = ref.sessionId;
@@ -131768,7 +131768,7 @@ function createSlackMonitorContext(params) {
131768
131768
  const isGroup = channelType === "mpim";
131769
131769
  const from = isDirectMessage ? `slack:${channelId}` : isGroup ? `slack:group:${channelId}` : `slack:channel:${channelId}`;
131770
131770
  const chatType = isDirectMessage ? "direct" : isGroup ? "group" : "channel";
131771
- return resolveSessionKey$2(params.sessionScope, {
131771
+ return resolveSessionKey$3(params.sessionScope, {
131772
131772
  From: from,
131773
131773
  ChatType: chatType,
131774
131774
  Provider: "slack"
@@ -155557,7 +155557,7 @@ const REMEDY_BY_STATE = {
155557
155557
  invalid_url: "URL is malformed. Provide a full http(s) URL."
155558
155558
  };
155559
155559
  function registerTracker() {}
155560
- function resolveSessionKey() {
155560
+ function resolveSessionKey$1() {
155561
155561
  const runId = getCurrentRunId();
155562
155562
  if (!runId) return null;
155563
155563
  return getKoiRunContext(runId)?.sessionKey ?? null;
@@ -155687,7 +155687,7 @@ function createDeliverableTool() {
155687
155687
  execute: async (_toolCallId, args) => {
155688
155688
  const p = args;
155689
155689
  const action = p.action || "publish";
155690
- const sessionKey = resolveSessionKey();
155690
+ const sessionKey = resolveSessionKey$1();
155691
155691
  if (!sessionKey) return jsonResult({
155692
155692
  _type: "deliverable",
155693
155693
  error: "no active session context — run this tool inside a koi turn"
@@ -156424,6 +156424,7 @@ const exec$1 = promisify(exec);
156424
156424
  const SLUG_RE = /^[a-z0-9][a-z0-9-]{0,62}$/;
156425
156425
  const PublishSiteParams = Type.Object({
156426
156426
  slug: Type.String({ description: "URL-safe project slug (lowercase letters, digits, hyphens; max 63 chars)." }),
156427
+ label: Type.Optional(Type.String()),
156427
156428
  html: Type.Optional(Type.String()),
156428
156429
  dir: Type.Optional(Type.String()),
156429
156430
  files: Type.Optional(Type.Record(Type.String(), Type.String(), { description: "Relative path → file contents for inline multi-file sites." }))
@@ -156470,6 +156471,65 @@ async function awsS3CpFile(localPath, s3Url, contentType) {
156470
156471
  "--only-show-errors"
156471
156472
  ].join(" "), { timeout: 3e4 });
156472
156473
  }
156474
+ function resolveSessionKey() {
156475
+ const runId = getCurrentRunId();
156476
+ if (!runId) return null;
156477
+ return getKoiRunContext(runId)?.sessionKey ?? null;
156478
+ }
156479
+ /**
156480
+ * Auto-emit a deliverable canvas resource so the chat preview card shows up
156481
+ * with no extra round trip. We just uploaded so the URL is known-good →
156482
+ * skip preflight and go straight to state="verified". The user can still
156483
+ * call deliverable.recheck if something goes sideways later.
156484
+ */
156485
+ function emitDeliverable(opts) {
156486
+ const sessionKey = resolveSessionKey();
156487
+ if (!sessionKey) return null;
156488
+ const id = `site-${opts.slug}`;
156489
+ const now = Date.now();
156490
+ const entry = {
156491
+ id,
156492
+ type: "website",
156493
+ url: opts.url,
156494
+ label: opts.label ?? opts.slug,
156495
+ state: "verified",
156496
+ statusCode: 200,
156497
+ contentType: "text/html",
156498
+ createdAt: now,
156499
+ lastCheckedAt: now,
156500
+ verifiedAt: now
156501
+ };
156502
+ const itemUri = canvasUri(sessionKey, `deliverables/${id}`);
156503
+ try {
156504
+ replaceCanvasResource(itemUri, entry);
156505
+ } catch {
156506
+ return null;
156507
+ }
156508
+ const listUri = canvasUri(sessionKey, "deliverables");
156509
+ try {
156510
+ const prior = getCanvasResource(listUri)?.content;
156511
+ const priorItems = Array.isArray(prior?.items) ? prior.items : [];
156512
+ const compact = {
156513
+ id,
156514
+ type: entry.type,
156515
+ url: entry.url,
156516
+ label: entry.label,
156517
+ state: entry.state
156518
+ };
156519
+ const idx = priorItems.findIndex((x) => x.id === id);
156520
+ const items = [...priorItems];
156521
+ if (idx >= 0) items[idx] = compact;
156522
+ else items.push(compact);
156523
+ replaceCanvasResource(listUri, {
156524
+ _type: "deliverables",
156525
+ items
156526
+ });
156527
+ } catch {}
156528
+ return {
156529
+ uri: itemUri,
156530
+ id
156531
+ };
156532
+ }
156473
156533
  async function awsCloudFrontInvalidate(distId, paths) {
156474
156534
  try {
156475
156535
  await exec$1(`aws cloudfront create-invalidation --distribution-id ${distId} --paths ${paths.map((p) => `"${p}"`).join(",")} --query Invalidation.Id --output text`, { timeout: 3e4 });
@@ -156480,19 +156540,23 @@ function createPublishSiteTool() {
156480
156540
  label: "publish_site",
156481
156541
  name: "publish_site",
156482
156542
  description: [
156483
- "Publish a static site (HTML / directory / multi-file) to the shared SkyKoi CloudFront distribution and return a live https:// URL — usually in 2-5 seconds.",
156543
+ "Publish a static site to AWS S3 + CloudFront and return a live https:// URL — usually in 2-5 seconds total. Auto-emits the chat preview card; no separate deliverable.publish call needed.",
156484
156544
  "",
156485
- "USE THIS for any 'make me a website / landing page / portfolio / dashboard' task instead of manually creating S3 buckets and CloudFront distributions. One call, no propagation wait, no infra cleanup.",
156545
+ "USE THIS for any 'make me a website / landing page / portfolio / dashboard / one-pager' task. ONE tool call, no S3-bucket creation, no CloudFront-distribution creation, no propagation wait, no cleanup.",
156486
156546
  "",
156487
156547
  "Args (provide exactly one of html/dir/files):",
156488
156548
  " slug — URL-safe project name (lowercase, digits, hyphens). Determines the URL path.",
156489
156549
  " html — single-page sites: a complete HTML string, published as index.html.",
156490
156550
  " dir — absolute path to a local directory; uploaded recursively (preserves structure).",
156491
156551
  " files — { 'relpath': contents } map for inline multi-file sites.",
156552
+ " label — optional human-readable name for the chat preview card.",
156492
156553
  "",
156493
156554
  "URL pattern: https://<sites-domain>/<koi-id>/<slug>/",
156494
156555
  "",
156495
- "After publishing, ALWAYS also call `deliverable.publish` with the returned URL so the chat's preview widget shows up and the URL is health-checked."
156556
+ "Pattern for the user's 'make a website' request collapse to a SINGLE assistant turn:",
156557
+ " 1. write the full inline HTML directly in the tool call's `html` arg",
156558
+ " 2. call publish_site once",
156559
+ " 3. reply with the returned URL — done."
156496
156560
  ].join("\n"),
156497
156561
  parameters: PublishSiteParams,
156498
156562
  execute: async (_toolCallId, args) => {
@@ -156568,7 +156632,12 @@ function createPublishSiteTool() {
156568
156632
  bucket,
156569
156633
  prefix,
156570
156634
  uploaded,
156571
- message: `Published to ${url}. The page is live now (no propagation wait). Pass this URL to deliverable.publish so the chat shows the preview card.`
156635
+ deliverable: emitDeliverable({
156636
+ url,
156637
+ slug,
156638
+ label: typeof p.label === "string" ? p.label.trim() : void 0
156639
+ }),
156640
+ message: `Published to ${url}. Live now. Chat preview card auto-emitted — just reply with the URL.`
156572
156641
  });
156573
156642
  }
156574
156643
  };
@@ -171369,7 +171438,7 @@ async function initSessionState(params) {
171369
171438
  break;
171370
171439
  }
171371
171440
  }
171372
- sessionKey = resolveSessionKey$2(sessionScope, sessionCtxForState, mainKey);
171441
+ sessionKey = resolveSessionKey$3(sessionScope, sessionCtxForState, mainKey);
171373
171442
  const entry = sessionStore[sessionKey];
171374
171443
  const previousSessionEntry = resetTriggered && entry ? { ...entry } : void 0;
171375
171444
  const now = Date.now();
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-N5dAgB2x.js";
2
- import { un as installUnhandledRejectionHandler } from "./reply-B7ucnjr_.js";
2
+ import { un as installUnhandledRejectionHandler } from "./reply-BK1ZEmE-.js";
3
3
  import { c as defaultRuntime, r as enableConsoleCapture } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -57,25 +57,25 @@ import "./session-cost-usage-C3Scd8s_.js";
57
57
  import "./control-service-DvYWm_np.js";
58
58
  import "./channel-selection-jyGnnq0E.js";
59
59
  import "./event-log-CRTHQkp5.js";
60
- import "./deps-D24ZTayV.js";
60
+ import "./deps-ChkamwfD.js";
61
61
  import "./tailscale-BVFil2zN.js";
62
62
  import { t as loadDotEnv } from "./dotenv-BhXDZTJk.js";
63
63
  import { t as ensureSKYKOICliOnPath } from "./path-env-D7MDOz2j.js";
64
64
  import { g as assertSupportedRuntime } from "./daemon-runtime-BrHV63lV.js";
65
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-DWiWNQzf.js";
65
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-XbUcqVcn.js";
66
66
  import "./logging-D_xKFcV1.js";
67
67
  import "./note-CrS1Szhk.js";
68
68
  import "./clack-prompter-D65FuQH4.js";
69
- import "./onboarding-BUnX80CY.js";
70
- import "./onboard-skills-BCwuQJV6.js";
71
- import "./github-copilot-auth-F6C4Ejbn.js";
72
- import "./onboard-channels-CI02lbU3.js";
69
+ import "./onboarding-BekrzT99.js";
70
+ import "./onboard-skills-CxiSK6WI.js";
71
+ import "./github-copilot-auth-sPPiNJU-.js";
72
+ import "./onboard-channels-DsVSfdIu.js";
73
73
  import "./plugin-auto-enable-CDSibY2C.js";
74
- import "./archive-BMmgk5KP.js";
74
+ import "./archive-W8rsoBYh.js";
75
75
  import "./skill-scanner-C1Y-vAfe.js";
76
- import "./installs-aFzmpJbj.js";
77
- import "./health-format-CLSvBgKv.js";
78
- import "./update-runner-CLofKLmw.js";
76
+ import "./installs-BhiaD1yI.js";
77
+ import "./health-format-MDGRXhYr.js";
78
+ import "./update-runner-Bns3qDHZ.js";
79
79
  import "./auth-DGixDs29.js";
80
80
  import "./audit-Bjsdct8d.js";
81
81
  import "./table-6UNPpVEx.js";
@@ -85,18 +85,18 @@ import "./systemd-WeDhEsPI.js";
85
85
  import "./service-audit-0Irp8Nwq.js";
86
86
  import "./node-service-DoNL0Ruu.js";
87
87
  import "./channels-status-issues-C88xoNq1.js";
88
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-DzCBpl05.js";
88
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-D5QBERRW.js";
89
89
  import "./gateway-rpc-BmbZ18rs.js";
90
90
  import "./help-format-BN200Sfc.js";
91
- import "./koi-SqZzxNIy.js";
92
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bf_40cVb.js";
93
- import "./configure-CXCoCQvG.js";
91
+ import "./koi-PYJ3eOYY.js";
92
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BdRYqp1H.js";
93
+ import "./configure-BMmn2eLg.js";
94
94
  import "./systemd-linger-BjfFUdaX.js";
95
95
  import "./widearea-dns-D8atdlDH.js";
96
96
  import "./bonjour-discovery-DTM_9zJu.js";
97
97
  import "./auth-health-Dme6P_xB.js";
98
- import "./doctor-Bymu6jT_.js";
99
- import "./completion-cli-thFypIZk.js";
98
+ import "./doctor-BN7K9ZNh.js";
99
+ import "./completion-cli-BtMCeQrb.js";
100
100
  import "./hooks-status-DYC2HNdI.js";
101
101
  import { n as emitCliBanner } from "./tui-DFcLvKcS.js";
102
102
  import process$1 from "node:process";
@@ -152,7 +152,7 @@ async function runCli(argv = process$1.argv) {
152
152
  assertSupportedRuntime();
153
153
  if (await tryRouteCli(normalizedArgv)) return;
154
154
  enableConsoleCapture();
155
- const { buildProgram } = await import("./program-Lnu81w9O.js").then((n) => n.t);
155
+ const { buildProgram } = await import("./program-CasYC4-7.js").then((n) => n.t);
156
156
  const program = buildProgram();
157
157
  installUnhandledRejectionHandler();
158
158
  process$1.on("uncaughtException", (error) => {
@@ -162,11 +162,11 @@ async function runCli(argv = process$1.argv) {
162
162
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
163
163
  const primary = getPrimaryCommand(parseArgv);
164
164
  if (primary) {
165
- const { registerSubCliByName } = await import("./register.subclis-DzCBpl05.js").then((n) => n.i);
165
+ const { registerSubCliByName } = await import("./register.subclis-D5QBERRW.js").then((n) => n.i);
166
166
  await registerSubCliByName(program, primary);
167
167
  }
168
168
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
169
- const { registerPluginCliCommands } = await import("./cli-BqTPyyxM.js");
169
+ const { registerPluginCliCommands } = await import("./cli-06GXMT2h.js");
170
170
  const { loadConfig } = await import("./config-DG0yIsda.js").then((n) => n.t);
171
171
  registerPluginCliCommands(program, loadConfig());
172
172
  }
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-N5dAgB2x.js";
2
- import { Cr as enqueueSystemEvent, T as loadSessionEntry, mt as requestHeartbeatNow } from "./reply-B7ucnjr_.js";
2
+ import { Cr as enqueueSystemEvent, T as loadSessionEntry, mt as requestHeartbeatNow } from "./reply-BK1ZEmE-.js";
3
3
  import { c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { u as normalizeMainKey } from "./session-key-DvA8Pdt6.js";
@@ -58,8 +58,8 @@ import "./session-cost-usage-C3Scd8s_.js";
58
58
  import "./control-service-DvYWm_np.js";
59
59
  import "./channel-selection-jyGnnq0E.js";
60
60
  import "./event-log-CRTHQkp5.js";
61
- import "./deps-D24ZTayV.js";
62
- import { t as koiCommand } from "./koi-SqZzxNIy.js";
61
+ import "./deps-ChkamwfD.js";
62
+ import { t as koiCommand } from "./koi-PYJ3eOYY.js";
63
63
  import { t as formatForLog } from "./ws-log-DeKwTnzt.js";
64
64
  import { randomUUID } from "node:crypto";
65
65
 
@@ -1,4 +1,4 @@
1
- import { _t as loadSKYKOIPlugins } from "./reply-B7ucnjr_.js";
1
+ import { _t as loadSKYKOIPlugins } from "./reply-BK1ZEmE-.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
3
3
  import { T as resolveDefaultKoiWorkspaceDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-B7BaYiK4.js";
4
4
  import { o as loadConfig } from "./config-DG0yIsda.js";
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath } from "./utils-rBzA-VDv.js";
2
2
  import { n as discoverSKYKOIPlugins, r as loadPluginManifest } from "./manifest-registry-BfJkwq3e.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-aFzmpJbj.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BhiaD1yI.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-N5dAgB2x.js";
2
- import { nt as trimLogTail } from "./reply-B7ucnjr_.js";
2
+ import { nt as trimLogTail } from "./reply-BK1ZEmE-.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -59,17 +59,17 @@ import "./session-cost-usage-C3Scd8s_.js";
59
59
  import "./control-service-DvYWm_np.js";
60
60
  import "./channel-selection-jyGnnq0E.js";
61
61
  import "./event-log-CRTHQkp5.js";
62
- import "./deps-D24ZTayV.js";
62
+ import "./deps-ChkamwfD.js";
63
63
  import "./tailscale-BVFil2zN.js";
64
64
  import { _ as parseSemver } from "./daemon-runtime-BrHV63lV.js";
65
65
  import "./logging-D_xKFcV1.js";
66
66
  import "./note-CrS1Szhk.js";
67
67
  import "./plugin-auto-enable-CDSibY2C.js";
68
- import "./archive-BMmgk5KP.js";
68
+ import "./archive-W8rsoBYh.js";
69
69
  import "./skill-scanner-C1Y-vAfe.js";
70
- import "./installs-aFzmpJbj.js";
71
- import "./health-format-CLSvBgKv.js";
72
- 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-CLofKLmw.js";
70
+ import "./installs-BhiaD1yI.js";
71
+ import "./health-format-MDGRXhYr.js";
72
+ 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-Bns3qDHZ.js";
73
73
  import "./auth-DGixDs29.js";
74
74
  import { t as renderTable } from "./table-6UNPpVEx.js";
75
75
  import "./skills-status-Cq3eOGn7.js";
@@ -77,15 +77,15 @@ import "./service-bz-Q1pz8.js";
77
77
  import "./systemd-WeDhEsPI.js";
78
78
  import "./service-audit-0Irp8Nwq.js";
79
79
  import "./channels-status-issues-C88xoNq1.js";
80
- import "./register.subclis-DzCBpl05.js";
80
+ import "./register.subclis-D5QBERRW.js";
81
81
  import { t as formatHelpExamples } from "./help-format-BN200Sfc.js";
82
82
  import "./systemd-linger-BjfFUdaX.js";
83
83
  import "./auth-health-Dme6P_xB.js";
84
- import { t as doctorCommand } from "./doctor-Bymu6jT_.js";
85
- import { r as installCompletion } from "./completion-cli-thFypIZk.js";
84
+ import { t as doctorCommand } from "./doctor-BN7K9ZNh.js";
85
+ import { r as installCompletion } from "./completion-cli-BtMCeQrb.js";
86
86
  import "./shared-BaXeHg7G.js";
87
- import { r as runDaemonRestart } from "./daemon-cli-DNZKRc5Q.js";
88
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-C-iDbQud.js";
87
+ import { r as runDaemonRestart } from "./daemon-cli-Dif1Is-I.js";
88
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DmEVdhH0.js";
89
89
  import path from "node:path";
90
90
  import os from "node:os";
91
91
  import fs from "node:fs/promises";
@@ -1,12 +1,12 @@
1
- import { nt as trimLogTail } from "./reply-B7ucnjr_.js";
1
+ import { nt as trimLogTail } from "./reply-BK1ZEmE-.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
3
3
  import { t as resolveSKYKOIPackageRoot } from "./skykoi-root-BcOj1-eE.js";
4
4
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-DQtyHEuH.js";
5
5
  import { N as VERSION } from "./config-DG0yIsda.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-BrHV63lV.js";
7
7
  import { t as note } from "./note-CrS1Szhk.js";
8
- import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-CLSvBgKv.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-thFypIZk.js";
8
+ import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-MDGRXhYr.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BtMCeQrb.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.258",
3
+ "version": "2026.3.259",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "skykoi",