skykoi 2026.3.128 → 2026.3.130

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 (56) hide show
  1. package/dist/{archive-CaFqMmM4.js → archive-L7r8gzZ2.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-3llcuSaH.js → channel-options-DP3CEMk4.js} +1 -1
  5. package/dist/{channels-cli-Bk6AgvR1.js → channels-cli-9K25TSE7.js} +7 -7
  6. package/dist/cli/daemon-cli.js +1 -1
  7. package/dist/{cli-BF_aMJHb.js → cli-yXGZHWow.js} +2 -2
  8. package/dist/{completion-cli-DtuZRjYk.js → completion-cli-CGYUDS2R.js} +1 -1
  9. package/dist/{config-guard-BTK_1cgd.js → config-guard-DOXeFBnf.js} +13 -13
  10. package/dist/{configure-CfZC8e7_.js → configure-BpJuMhSD.js} +4 -4
  11. package/dist/{daemon-cli-CN5DkX-a.js → daemon-cli-DXjNxXFf.js} +2 -2
  12. package/dist/{deps-CbWiVlX9.js → deps-BW-fUlkQ.js} +1 -1
  13. package/dist/{doctor-D_ThBso4.js → doctor-a-MSpOAu.js} +3 -3
  14. package/dist/entry.js +1 -1
  15. package/dist/{event-log-De5vCKH7.js → event-log-BOVreYdr.js} +79 -1
  16. package/dist/extension-api.js +2 -2
  17. package/dist/{gateway-cli-D3sdrsCj.js → gateway-cli-Cy8NqGW5.js} +18 -19
  18. package/dist/{github-copilot-auth-DlqLVHMW.js → github-copilot-auth-CgucXOSR.js} +1 -1
  19. package/dist/{health-format-DAWBzDBk.js → health-format-D0Oc6gZb.js} +1 -1
  20. package/dist/{hooks-cli-D6eAimLM.js → hooks-cli-k0OTs2sG.js} +4 -4
  21. package/dist/index.js +20 -20
  22. package/dist/{installs-B48pmlsb.js → installs-KnzQAkk4.js} +1 -1
  23. package/dist/{koi-event-bridge-WQxedlPP.js → koi-event-bridge-W0QSC_yV.js} +1 -2
  24. package/dist/{koi-uaG7jNg-.js → koi-rAv4ra_q.js} +3 -3
  25. package/dist/{models-cli-DPaGLywt.js → models-cli-C56XroL4.js} +3 -3
  26. package/dist/{node-cli-B9ghfNYN.js → node-cli-VOH72SZB.js} +1 -1
  27. package/dist/{onboard-channels-9K1iKyFw.js → onboard-channels-CwOLxGiq.js} +2 -2
  28. package/dist/{onboard-skills-BU2VSZG3.js → onboard-skills-Ca6_RtVW.js} +3 -3
  29. package/dist/{onboarding-CyuToW5v.js → onboarding-BjhSgKtI.js} +6 -6
  30. package/dist/{plugin-registry-B7u4Z7Ci.js → plugin-registry-DQ4mN_7I.js} +1 -1
  31. package/dist/plugin-sdk/index.js +14 -10
  32. package/dist/plugin-sdk/{pi-model-discovery-B1kAe0kx.js → pi-model-discovery-CeYPOTBg.js} +3 -3
  33. package/dist/plugin-sdk/sessions/event-log.d.ts +76 -0
  34. package/dist/{plugins-cli-DVnXc25D.js → plugins-cli-Ck7HLSrL.js} +6 -6
  35. package/dist/{program-1u57Cyva.js → program-HxHfSqKE.js} +4 -4
  36. package/dist/{register.subclis-COF5nx_M.js → register.subclis-c1bLgU3O.js} +20 -20
  37. package/dist/{reply-Nr_iKmH6.js → reply-CZsjNrOa.js} +15 -2
  38. package/dist/{run-main-BNPdyAkx.js → run-main-5HnA8kXi.js} +21 -21
  39. package/dist/{server-node-events-Dm1FgBUY.js → server-node-events-DhrRSOR2.js} +4 -4
  40. package/dist/{status-BwVtP7DO.js → status-CgJHOPMH.js} +1 -1
  41. package/dist/{update-BYleotIz.js → update-DQUTDo-m.js} +1 -1
  42. package/dist/{update-cli-VFt3ZwMa.js → update-cli-7MiD8Amu.js} +12 -12
  43. package/dist/{update-runner-Cy0ps-4x.js → update-runner-DJj34MGG.js} +3 -3
  44. package/package.json +1 -1
  45. package/dist/koi-events-qEkqiS0V.js +0 -69
  46. /package/dist/{logs-cli-DEjWQQTi.js → logs-cli-KYTLffV9.js} +0 -0
  47. /package/dist/{nodes-cli-D2ZJqf_H.js → nodes-cli-Cp5_-877.js} +0 -0
  48. /package/dist/{pairing-cli-DcRXluLZ.js → pairing-cli-C-sE9eNm.js} +0 -0
  49. /package/dist/{qmd-manager-ONKZDgUf.js → qmd-manager-C216OzqD.js} +0 -0
  50. /package/dist/{runner-CsINaNc5.js → runner-5m_BTiDc.js} +0 -0
  51. /package/dist/{sandbox-cli-HsHIoiCm.js → sandbox-cli-Djdijmz_.js} +0 -0
  52. /package/dist/{security-cli-C_H63spR.js → security-cli-BqvcFezj.js} +0 -0
  53. /package/dist/{skills-cli-Bha10JHV.js → skills-cli-DjFaWl9F.js} +0 -0
  54. /package/dist/{system-cli-BrkfbBdW.js → system-cli-D6_zVTR0.js} +0 -0
  55. /package/dist/{tui-cli-BnrFVwat.js → tui-cli-B7SIq5FO.js} +0 -0
  56. /package/dist/{webhooks-cli-Dh1Skhhu.js → webhooks-cli-C143Qjv6.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { xt as require_inherits } from "./reply-Nr_iKmH6.js";
2
+ import { xt as require_inherits } from "./reply-CZsjNrOa.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.128",
3
- "commit": "a469149897cd151ca94b9806728f48b13479557a",
4
- "builtAt": "2026-04-28T01:42:35.991Z"
2
+ "version": "2026.3.130",
3
+ "commit": "4565a0d8249faa2418ededb1eb6af7714d33d022",
4
+ "builtAt": "2026-04-28T01:59:49.398Z"
5
5
  }
@@ -1 +1 @@
1
- 75ed71dd7d4e06268a392c5e73620a7184a042024c223bd8775276aeeb6701ce
1
+ 9d7ec62605016843692d80920be9ce13fec3a10b6ee8bc2b1217ecf39a7716b3
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-RXphV8Xh.js";
2
2
  import { t as isTruthyEnvValue } from "./env-CUqrNILf.js";
3
3
  import { n as listChannelPlugins } from "./plugins-CSje3MWA.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CBrRnYgk.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B7u4Z7Ci.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DQ4mN_7I.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-ncfpXBXH.js";
2
- import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-Nr_iKmH6.js";
2
+ import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-CZsjNrOa.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";
@@ -45,7 +45,7 @@ import { n as formatAge } from "./channel-summary-BuTXn_Jz.js";
45
45
  import "./device-identity-BRDqGqU6.js";
46
46
  import "./net-D-ETDImo.js";
47
47
  import { n as callGateway } from "./call-NpNu1VrD.js";
48
- import "./koi-events-qEkqiS0V.js";
48
+ import "./event-log-BOVreYdr.js";
49
49
  import "./pairing-store-Bdnt3ukz.js";
50
50
  import { t as formatDocsLink } from "./links-BBLYHZ5A.js";
51
51
  import { n as runCommandWithRuntime } from "./cli-utils-DtAxdCte.js";
@@ -61,14 +61,14 @@ import { n as resolveMessageChannelSelection } from "./channel-selection-DiReX4u
61
61
  import { t as resolveChannelDefaultAccountId } from "./helpers-l-UlRZwn.js";
62
62
  import "./note-swMLU6eQ.js";
63
63
  import { t as createClackPrompter } from "./clack-prompter-DqCydyWA.js";
64
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-9K1iKyFw.js";
64
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CwOLxGiq.js";
65
65
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CBrRnYgk.js";
66
- import "./archive-CaFqMmM4.js";
66
+ import "./archive-L7r8gzZ2.js";
67
67
  import "./skill-scanner-DWrSBOMA.js";
68
- import "./installs-B48pmlsb.js";
68
+ import "./installs-KnzQAkk4.js";
69
69
  import { t as collectChannelStatusIssues } from "./channels-status-issues-B4Jcc6Dx.js";
70
- import { n as hasExplicitOptions } from "./plugin-registry-B7u4Z7Ci.js";
71
- import { t as formatCliChannelOptions } from "./channel-options-3llcuSaH.js";
70
+ import { n as hasExplicitOptions } from "./plugin-registry-DQ4mN_7I.js";
71
+ import { t as formatCliChannelOptions } from "./channel-options-DP3CEMk4.js";
72
72
  import { t as buildChannelAccountSnapshot } from "./status-Dphemd-L.js";
73
73
  import { t as parseLogLine } from "./parse-log-line-BLo_2RTu.js";
74
74
  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-CN5DkX-a.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-DXjNxXFf.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ncfpXBXH.js";
2
- import { ht as loadSKYKOIPlugins } from "./reply-Nr_iKmH6.js";
2
+ import { ht as loadSKYKOIPlugins } from "./reply-CZsjNrOa.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -43,7 +43,7 @@ import "./channel-summary-BuTXn_Jz.js";
43
43
  import "./device-identity-BRDqGqU6.js";
44
44
  import "./net-D-ETDImo.js";
45
45
  import "./call-NpNu1VrD.js";
46
- import "./koi-events-qEkqiS0V.js";
46
+ import "./event-log-BOVreYdr.js";
47
47
  import "./pairing-store-Bdnt3ukz.js";
48
48
  import "./links-BBLYHZ5A.js";
49
49
  import "./progress-biWIBoKk.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-COF5nx_M.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-c1bLgU3O.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 handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-Nr_iKmH6.js";
1
+ import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-CZsjNrOa.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-BBLYHZ5A.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-DtAxdCte.js";
20
20
  import { n as withProgress } from "./progress-biWIBoKk.js";
21
21
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-C20AG96t.js";
22
- import { t as createDefaultDeps } from "./deps-CbWiVlX9.js";
22
+ import { t as createDefaultDeps } from "./deps-BW-fUlkQ.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-j6BXvebf.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-l-UlRZwn.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-Rs2mtIgJ.js";
26
26
  import { t as WizardCancelledError } from "./prompts-CUUO-m6Y.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-DqCydyWA.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-CyuToW5v.js";
29
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BU2VSZG3.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-DlqLVHMW.js";
31
- import { n as setupChannels } from "./onboard-channels-9K1iKyFw.js";
32
- import { l as healthCommand } from "./health-format-DAWBzDBk.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-BjhSgKtI.js";
29
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-Ca6_RtVW.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-CgucXOSR.js";
31
+ import { n as setupChannels } from "./onboard-channels-CwOLxGiq.js";
32
+ import { l as healthCommand } from "./health-format-D0Oc6gZb.js";
33
33
  import { t as renderTable } from "./table-CVL_L9XP.js";
34
34
  import { t as resolveGatewayService } from "./service-Cy2txARn.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-CY9yZD5p.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-COF5nx_M.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-c1bLgU3O.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-B5hHm4iM.js";
38
38
  import { t as formatHelpExamples } from "./help-format-DRKSPmdM.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-uaG7jNg-.js";
40
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-B7u4Z7Ci.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-rAv4ra_q.js";
40
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-DQ4mN_7I.js";
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CZd4e84I.js";
42
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CfZC8e7_.js";
42
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-BpJuMhSD.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Cc5dBQJX.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-D_ThBso4.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-a-MSpOAu.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-CfZC8e7_.js").then((n) => n.t);
2795
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-BpJuMhSD.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 { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-Nr_iKmH6.js";
2
+ import { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-CZsjNrOa.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-Rs2mtIgJ.js";
15
15
  import { t as note$1 } from "./note-swMLU6eQ.js";
16
16
  import { t as WizardCancelledError } from "./prompts-CUUO-m6Y.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-DqCydyWA.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-BU2VSZG3.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-9K1iKyFw.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-DAWBzDBk.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-Ca6_RtVW.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CwOLxGiq.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-D0Oc6gZb.js";
21
21
  import { t as resolveGatewayService } from "./service-Cy2txARn.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Cc5dBQJX.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 { Lt as resolveControlUiLinks } from "./reply-Nr_iKmH6.js";
2
+ import { Lt as resolveControlUiLinks } from "./reply-CZsjNrOa.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-NpNu1VrD.js";
14
14
  import { t as formatDocsLink } from "./links-BBLYHZ5A.js";
15
15
  import { n as withProgress } from "./progress-biWIBoKk.js";
16
16
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-B4jXJRQF.js";
17
- import { t as createDefaultDeps } from "./deps-CbWiVlX9.js";
17
+ import { t as createDefaultDeps } from "./deps-BW-fUlkQ.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-j6BXvebf.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cy2txARn.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-CY9yZD5p.js";
@@ -1,4 +1,4 @@
1
- import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-Nr_iKmH6.js";
1
+ import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-CZsjNrOa.js";
2
2
  import { b as sendMessageSignal } from "./deliver-DFXZKnTB.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-Nr_iKmH6.js";
1
+ import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-CZsjNrOa.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";
@@ -25,8 +25,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-l-UlRZwn.js";
25
25
  import { n as logConfigUpdated } from "./logging-Rs2mtIgJ.js";
26
26
  import { t as note$1 } from "./note-swMLU6eQ.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CBrRnYgk.js";
28
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DAWBzDBk.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-Cy0ps-4x.js";
28
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-D0Oc6gZb.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DJj34MGG.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-BU1k9Ju2.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CzMsWE-o.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-Cy2txARn.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-BNPdyAkx.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-5HnA8kXi.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,7 +1,74 @@
1
1
  import { promises } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { homedir } from "node:os";
4
+ import { AsyncLocalStorage } from "node:async_hooks";
4
5
 
6
+ //#region src/infra/koi-events.ts
7
+ /**
8
+ * Per-async-flow run identity. When a koi turn begins, the runner wraps
9
+ * execution with `runIdStorage.run(runId, ...)` so every tool invocation
10
+ * inside that turn can recover *its own* runId via `getCurrentRunId()`.
11
+ *
12
+ * Why this matters: sub-kois spawn concurrently. The old module-level
13
+ * `activeRunId` tracking via lifecycle listeners was last-writer-wins — when
14
+ * a child's `phase: "start"` fired, the parent's tools silently started
15
+ * reading/writing state under the child's sessionKey. That produced:
16
+ * - `checklist.complete_item` returning "No checklist exists" after a
17
+ * successful `update`
18
+ * - Each sub-koi's canvas overwritten with the parent's state
19
+ * - `history`-push on phase transition never firing (prior title gone)
20
+ *
21
+ * AsyncLocalStorage follows async/await chains correctly, so a parent's
22
+ * tool call and a concurrent child's tool call see different stores.
23
+ */
24
+ const runIdStorage = new AsyncLocalStorage();
25
+ function runWithRunId(runId, fn) {
26
+ return runIdStorage.run(runId, fn);
27
+ }
28
+ function getCurrentRunId() {
29
+ return runIdStorage.getStore();
30
+ }
31
+ const seqByRun = /* @__PURE__ */ new Map();
32
+ const listeners = /* @__PURE__ */ new Set();
33
+ const runContextById = /* @__PURE__ */ new Map();
34
+ function registerKoiRunContext(runId, context) {
35
+ if (!runId) return;
36
+ const existing = runContextById.get(runId);
37
+ if (!existing) {
38
+ runContextById.set(runId, { ...context });
39
+ return;
40
+ }
41
+ if (context.sessionKey && existing.sessionKey !== context.sessionKey) existing.sessionKey = context.sessionKey;
42
+ if (context.verboseLevel && existing.verboseLevel !== context.verboseLevel) existing.verboseLevel = context.verboseLevel;
43
+ if (context.isHeartbeat !== void 0 && existing.isHeartbeat !== context.isHeartbeat) existing.isHeartbeat = context.isHeartbeat;
44
+ }
45
+ function getKoiRunContext(runId) {
46
+ return runContextById.get(runId);
47
+ }
48
+ function clearKoiRunContext(runId) {
49
+ runContextById.delete(runId);
50
+ }
51
+ function emitKoiEvent(event) {
52
+ const nextSeq = (seqByRun.get(event.runId) ?? 0) + 1;
53
+ seqByRun.set(event.runId, nextSeq);
54
+ const context = runContextById.get(event.runId);
55
+ const sessionKey = typeof event.sessionKey === "string" && event.sessionKey.trim() ? event.sessionKey : context?.sessionKey;
56
+ const enriched = {
57
+ ...event,
58
+ sessionKey,
59
+ seq: nextSeq,
60
+ ts: Date.now()
61
+ };
62
+ for (const listener of listeners) try {
63
+ listener(enriched);
64
+ } catch {}
65
+ }
66
+ function onKoiEvent(listener) {
67
+ listeners.add(listener);
68
+ return () => listeners.delete(listener);
69
+ }
70
+
71
+ //#endregion
5
72
  //#region src/sessions/event-log.ts
6
73
  /**
7
74
  * Per-session append-only event log.
@@ -93,6 +160,17 @@ function appendEvent(args) {
93
160
  return ev;
94
161
  }
95
162
  /**
163
+ * Subscribe to live events for a session. Returns an unsubscribe
164
+ * function. The caller is responsible for calling it on disconnect.
165
+ */
166
+ function subscribe(sessionId, fn) {
167
+ const s = getOrCreate(sessionId);
168
+ s.listeners.add(fn);
169
+ return () => {
170
+ s.listeners.delete(fn);
171
+ };
172
+ }
173
+ /**
96
174
  * Read events strictly after `sinceEventId` from the in-memory tail.
97
175
  * For deeper replay, the caller should fall back to the JSONL mirror
98
176
  * (helper not yet exposed — Phase 4 covers cold-load via DB shadow).
@@ -136,4 +214,4 @@ async function hydrateSession(sessionId) {
136
214
  }
137
215
 
138
216
  //#endregion
139
- export { hydrateSession as n, readEventsSince as r, appendEvent as t };
217
+ export { clearKoiRunContext as a, getKoiRunContext as c, runWithRunId as d, subscribe as i, onKoiEvent as l, hydrateSession as n, emitKoiEvent as o, readEventsSince as r, getCurrentRunId as s, appendEvent as t, registerKoiRunContext as u };
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-ncfpXBXH.js";
2
- import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-Nr_iKmH6.js";
2
+ import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-CZsjNrOa.js";
3
3
  import "./subsystem-RXphV8Xh.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./utils-rBzA-VDv.js";
@@ -43,7 +43,7 @@ import "./channel-summary-BuTXn_Jz.js";
43
43
  import "./device-identity-BRDqGqU6.js";
44
44
  import "./net-D-ETDImo.js";
45
45
  import "./call-NpNu1VrD.js";
46
- import "./koi-events-qEkqiS0V.js";
46
+ import "./event-log-BOVreYdr.js";
47
47
  import "./pairing-store-Bdnt3ukz.js";
48
48
  import "./links-BBLYHZ5A.js";
49
49
  import "./progress-biWIBoKk.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-ncfpXBXH.js";
3
- import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-Nr_iKmH6.js";
3
+ import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-CZsjNrOa.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";
@@ -49,7 +49,7 @@ import { i as normalizeDevicePublicKeyBase64Url, s as verifyDeviceSignature, t a
49
49
  import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tailnet-RCC3zelV.js";
50
50
  import { $ as validateNodeDescribeParams, A as validateDevicePairApproveParams, At as validateWizardCancelParams, B as validateExecApprovalsSetParams, C as validateCronAddParams, Ct as validateSkillsStatusParams, D as validateCronRunsParams, Dt as validateWakeParams, E as validateCronRunParams, Et as validateUpdateRunParams, F as validateExecApprovalRequestParams, Ft as ErrorCodes, G as validateKoiFilesSetParams, H as validateKoiDeleteParams, I as validateExecApprovalResolveParams, It as errorShape, J as validateKoiParams, K as validateKoiIdentityParams, L as validateExecApprovalsGetParams, M as validateDevicePairRejectParams, Mt as validateWizardStartParams, N as validateDeviceTokenRevokeParams, Nt as validateWizardStatusParams, O as validateCronStatusParams, Ot as validateWebLoginStartParams, P as validateDeviceTokenRotateParams, Pt as PROTOCOL_VERSION, Q as validateModelsListParams, R as validateExecApprovalsNodeGetParams, Rt as parseSessionLabel, S as validateConnectParams, St as validateSkillsInstallParams, T as validateCronRemoveParams, Tt as validateTalkModeParams, U as validateKoiFilesGetParams, V as validateKoiCreateParams, W as validateKoiFilesListParams, X as validateKoiWaitParams, Y as validateKoiUpdateParams, Z as validateLogsTailParams, _ as validateConfigApplyParams, _t as validateSessionsPreviewParams, at as validateNodePairListParams, b as validateConfigSchemaParams, bt as validateSessionsUsageParams, c as resolveGatewayListenHosts, ct as validateNodePairVerifyParams, d as validateChannelsLogoutParams, dt as validateRequestFrame, et as validateNodeEventParams, f as validateChannelsStatusParams, ft as validateSendParams, g as validateChatSendParams, gt as validateSessionsPatchParams, h as validateChatInjectParams, ht as validateSessionsListParams, it as validateNodePairApproveParams, j as validateDevicePairListParams, jt as validateWizardNextParams, k as validateCronUpdateParams, kt as validateWebLoginWaitParams, l as GatewayClient, lt as validateNodeRenameParams, m as validateChatHistoryParams, mt as validateSessionsDeleteParams, n as isLoopbackHost$2, nt as validateNodeInvokeResultParams, o as resolveGatewayBindHost, ot as validateNodePairRejectParams, p as validateChatAbortParams, pt as validateSessionsCompactParams, q as validateKoiListParams, r as isTrustedProxyAddress, rt as validateNodeListParams, s as resolveGatewayClientIp, st as validateNodePairRequestParams, t as isLoopbackAddress, tt as validateNodeInvokeParams, u as formatValidationErrors, ut as validatePollParams, v as validateConfigGetParams, vt as validateSessionsResetParams, w as validateCronListParams, wt as validateSkillsUpdateParams, x as validateConfigSetParams, xt as validateSkillsBinsParams, y as validateConfigPatchParams, yt as validateSessionsResolveParams, z as validateExecApprovalsNodeSetParams, zt as buildDeviceAuthPayload } from "./net-D-ETDImo.js";
51
51
  import { n as callGateway, s as loadGatewayTlsRuntime$1 } from "./call-NpNu1VrD.js";
52
- import { a as onKoiEvent, i as getKoiRunContext, n as emitKoiEvent, o as registerKoiRunContext, t as clearKoiRunContext } from "./koi-events-qEkqiS0V.js";
52
+ import { a as clearKoiRunContext, c as getKoiRunContext, l as onKoiEvent, n as hydrateSession, o as emitKoiEvent, r as readEventsSince, t as appendEvent, u as registerKoiRunContext } from "./event-log-BOVreYdr.js";
53
53
  import "./pairing-store-Bdnt3ukz.js";
54
54
  import { t as formatDocsLink } from "./links-BBLYHZ5A.js";
55
55
  import { n as runCommandWithRuntime } from "./cli-utils-DtAxdCte.js";
@@ -65,7 +65,7 @@ import { i as readExecApprovalsSnapshot, o as resolveExecApprovalsSocketPath, r
65
65
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DK62bmWi.js";
66
66
  import { t as parseAbsoluteTimeMs } from "./parse-DuALaizI.js";
67
67
  import { n as resolveMessageChannelSelection } from "./channel-selection-DiReX4uH.js";
68
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-CbWiVlX9.js";
68
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BW-fUlkQ.js";
69
69
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DjEWk05x.js";
70
70
  import { t as ensureSKYKOICliOnPath } from "./path-env-DTqn3LHr.js";
71
71
  import "./daemon-runtime-j6BXvebf.js";
@@ -74,16 +74,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-l-UlRZwn.js";
74
74
  import "./logging-Rs2mtIgJ.js";
75
75
  import "./note-swMLU6eQ.js";
76
76
  import { t as WizardCancelledError } from "./prompts-CUUO-m6Y.js";
77
- 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-CyuToW5v.js";
78
- import { n as installSkill } from "./onboard-skills-BU2VSZG3.js";
79
- import "./github-copilot-auth-DlqLVHMW.js";
80
- import "./onboard-channels-9K1iKyFw.js";
77
+ 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-BjhSgKtI.js";
78
+ import { n as installSkill } from "./onboard-skills-Ca6_RtVW.js";
79
+ import "./github-copilot-auth-CgucXOSR.js";
80
+ import "./onboard-channels-CwOLxGiq.js";
81
81
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CBrRnYgk.js";
82
- import "./archive-CaFqMmM4.js";
82
+ import "./archive-L7r8gzZ2.js";
83
83
  import "./skill-scanner-DWrSBOMA.js";
84
- import "./installs-B48pmlsb.js";
85
- 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-DAWBzDBk.js";
86
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-Cy0ps-4x.js";
84
+ import "./installs-KnzQAkk4.js";
85
+ 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-D0Oc6gZb.js";
86
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-DJj34MGG.js";
87
87
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-BU1k9Ju2.js";
88
88
  import { i as probeGateway } from "./audit-LYaLjBZX.js";
89
89
  import "./table-CVL_L9XP.js";
@@ -93,21 +93,20 @@ import { p as resolveGatewayStateDir } from "./systemd-CY9yZD5p.js";
93
93
  import "./service-audit-DsCmgQ1X.js";
94
94
  import "./node-service-CXKZycpA.js";
95
95
  import "./channels-status-issues-B4Jcc6Dx.js";
96
- import "./register.subclis-COF5nx_M.js";
97
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-uaG7jNg-.js";
96
+ import "./register.subclis-c1bLgU3O.js";
97
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-rAv4ra_q.js";
98
98
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-D7RZHcnw.js";
99
99
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-CL9_dZq4.js";
100
- import "./completion-cli-DtuZRjYk.js";
100
+ import "./completion-cli-CGYUDS2R.js";
101
101
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DsyLjI6q.js";
102
102
  import "./tui-CkGhnP4j.js";
103
103
  import { t as buildChannelAccountSnapshot } from "./status-Dphemd-L.js";
104
104
  import "./shared-BfSDjJQ7.js";
105
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-CN5DkX-a.js";
105
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DXjNxXFf.js";
106
106
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-C8PgVE1m.js";
107
107
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-qLKG9nwJ.js";
108
108
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BkfD4mzX.js";
109
- import { n as hydrateSession, r as readEventsSince, t as appendEvent } from "./event-log-De5vCKH7.js";
110
- import { t as runNodeHost } from "./runner-CsINaNc5.js";
109
+ import { t as runNodeHost } from "./runner-5m_BTiDc.js";
111
110
  import { fileURLToPath, pathToFileURL } from "node:url";
112
111
  import chalk from "chalk";
113
112
  import * as fsSync from "node:fs";
@@ -10774,7 +10773,7 @@ const nodeHandlers = {
10774
10773
  const p = params;
10775
10774
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
10776
10775
  await respondUnavailableOnThrow(respond, async () => {
10777
- const { handleNodeEvent } = await import("./server-node-events-Dm1FgBUY.js");
10776
+ const { handleNodeEvent } = await import("./server-node-events-DhrRSOR2.js");
10778
10777
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
10779
10778
  await handleNodeEvent({
10780
10779
  deps: context.deps,
@@ -19514,7 +19513,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
19514
19513
  const heartbeatUnsub = onHeartbeatEvent((evt) => {
19515
19514
  broadcast("heartbeat", evt, { dropIfSlow: true });
19516
19515
  });
19517
- const sessionBridgeUnsub = (await import("./koi-event-bridge-WQxedlPP.js")).startKoiEventBridge();
19516
+ const sessionBridgeUnsub = (await import("./koi-event-bridge-W0QSC_yV.js")).startKoiEventBridge();
19518
19517
  let heartbeatRunner = startHeartbeatRunner({ cfg: cfgAtStart });
19519
19518
  cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
19520
19519
  const execApprovalHandlers = createExecApprovalHandlers(new ExecApprovalManager(), { forwarder: createExecApprovalForwarder() });
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-Nr_iKmH6.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-CZsjNrOa.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 { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-Nr_iKmH6.js";
1
+ import { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-CZsjNrOa.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-ncfpXBXH.js";
2
- import "./reply-Nr_iKmH6.js";
2
+ import "./reply-CZsjNrOa.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";
@@ -44,7 +44,7 @@ import "./channel-summary-BuTXn_Jz.js";
44
44
  import "./device-identity-BRDqGqU6.js";
45
45
  import "./net-D-ETDImo.js";
46
46
  import "./call-NpNu1VrD.js";
47
- import "./koi-events-qEkqiS0V.js";
47
+ import "./event-log-BOVreYdr.js";
48
48
  import "./pairing-store-Bdnt3ukz.js";
49
49
  import { t as formatDocsLink } from "./links-BBLYHZ5A.js";
50
50
  import "./progress-biWIBoKk.js";
@@ -56,10 +56,10 @@ import "./satisfies-CjgBz0wz.js";
56
56
  import "./session-cost-usage-DHjYU2WF.js";
57
57
  import "./control-service-DK62bmWi.js";
58
58
  import "./channel-selection-DiReX4uH.js";
59
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CaFqMmM4.js";
59
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-L7r8gzZ2.js";
60
60
  import { t as renderTable } from "./table-CVL_L9XP.js";
61
61
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-DsyLjI6q.js";
62
- import { t as buildPluginStatusReport } from "./status-BwVtP7DO.js";
62
+ import { t as buildPluginStatusReport } from "./status-CgJHOPMH.js";
63
63
  import fs from "node:fs";
64
64
  import path from "node:path";
65
65
  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-ncfpXBXH.js";
3
- import { Rr as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-Nr_iKmH6.js";
3
+ import { Rr as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-CZsjNrOa.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";
@@ -44,7 +44,7 @@ import "./channel-summary-BuTXn_Jz.js";
44
44
  import "./device-identity-BRDqGqU6.js";
45
45
  import "./net-D-ETDImo.js";
46
46
  import "./call-NpNu1VrD.js";
47
- import "./koi-events-qEkqiS0V.js";
47
+ import "./event-log-BOVreYdr.js";
48
48
  import "./pairing-store-Bdnt3ukz.js";
49
49
  import "./links-BBLYHZ5A.js";
50
50
  import "./progress-biWIBoKk.js";
@@ -56,27 +56,27 @@ import "./satisfies-CjgBz0wz.js";
56
56
  import "./session-cost-usage-DHjYU2WF.js";
57
57
  import "./control-service-DK62bmWi.js";
58
58
  import "./channel-selection-DiReX4uH.js";
59
- import { t as createDefaultDeps } from "./deps-CbWiVlX9.js";
59
+ import { t as createDefaultDeps } from "./deps-BW-fUlkQ.js";
60
60
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-DjEWk05x.js";
61
61
  import { t as loadDotEnv } from "./dotenv-DpLKqAh6.js";
62
62
  import { t as isMainModule } from "./is-main-DhP3Zub9.js";
63
63
  import { t as ensureSKYKOICliOnPath } from "./path-env-DTqn3LHr.js";
64
64
  import { g as assertSupportedRuntime } from "./daemon-runtime-j6BXvebf.js";
65
65
  import "./ports-B4yFkeKi.js";
66
- import "./config-guard-BTK_1cgd.js";
66
+ import "./config-guard-DOXeFBnf.js";
67
67
  import "./logging-Rs2mtIgJ.js";
68
68
  import "./note-swMLU6eQ.js";
69
69
  import "./clack-prompter-DqCydyWA.js";
70
- import "./onboarding-CyuToW5v.js";
71
- import "./onboard-skills-BU2VSZG3.js";
72
- import "./github-copilot-auth-DlqLVHMW.js";
73
- import "./onboard-channels-9K1iKyFw.js";
70
+ import "./onboarding-BjhSgKtI.js";
71
+ import "./onboard-skills-Ca6_RtVW.js";
72
+ import "./github-copilot-auth-CgucXOSR.js";
73
+ import "./onboard-channels-CwOLxGiq.js";
74
74
  import "./plugin-auto-enable-CBrRnYgk.js";
75
- import "./archive-CaFqMmM4.js";
75
+ import "./archive-L7r8gzZ2.js";
76
76
  import "./skill-scanner-DWrSBOMA.js";
77
- import "./installs-B48pmlsb.js";
78
- import "./health-format-DAWBzDBk.js";
79
- import "./update-runner-Cy0ps-4x.js";
77
+ import "./installs-KnzQAkk4.js";
78
+ import "./health-format-D0Oc6gZb.js";
79
+ import "./update-runner-DJj34MGG.js";
80
80
  import "./auth-BU1k9Ju2.js";
81
81
  import "./audit-LYaLjBZX.js";
82
82
  import "./table-CVL_L9XP.js";
@@ -86,22 +86,22 @@ import "./systemd-CY9yZD5p.js";
86
86
  import "./service-audit-DsCmgQ1X.js";
87
87
  import "./node-service-CXKZycpA.js";
88
88
  import "./channels-status-issues-B4Jcc6Dx.js";
89
- import "./register.subclis-COF5nx_M.js";
89
+ import "./register.subclis-c1bLgU3O.js";
90
90
  import "./gateway-rpc-B5hHm4iM.js";
91
91
  import "./help-format-DRKSPmdM.js";
92
- import "./koi-uaG7jNg-.js";
93
- import "./plugin-registry-B7u4Z7Ci.js";
94
- import "./configure-CfZC8e7_.js";
92
+ import "./koi-rAv4ra_q.js";
93
+ import "./plugin-registry-DQ4mN_7I.js";
94
+ import "./configure-BpJuMhSD.js";
95
95
  import "./systemd-linger-Cc5dBQJX.js";
96
96
  import "./widearea-dns-D7RZHcnw.js";
97
97
  import "./bonjour-discovery-CL9_dZq4.js";
98
98
  import "./auth-health-BufubYiK.js";
99
- import "./doctor-D_ThBso4.js";
100
- import "./completion-cli-DtuZRjYk.js";
99
+ import "./doctor-a-MSpOAu.js";
100
+ import "./completion-cli-CGYUDS2R.js";
101
101
  import "./hooks-status-DsyLjI6q.js";
102
102
  import "./tui-CkGhnP4j.js";
103
- import "./channel-options-3llcuSaH.js";
104
- import { n as buildProgram } from "./program-1u57Cyva.js";
103
+ import "./channel-options-DP3CEMk4.js";
104
+ import { n as buildProgram } from "./program-HxHfSqKE.js";
105
105
  import process from "node:process";
106
106
  import { fileURLToPath } from "node:url";
107
107