skykoi 2026.3.376 → 2026.3.377

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 (41) hide show
  1. package/dist/{archive-PMxMPzgz.js → archive-CLP9ZNKN.js} +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{capture-service-CgiT_L3Y.js → capture-service-CQce38jE.js} +1 -1
  5. package/dist/{channel-options-CbNcadEW.js → channel-options-DrGMgOD5.js} +1 -1
  6. package/dist/{channels-cli-xF6zBiE6.js → channels-cli-DnUekMyk.js} +6 -6
  7. package/dist/cli/daemon-cli.js +1 -1
  8. package/dist/{cli-B8ggt6rj.js → cli-DecDOPbA.js} +1 -1
  9. package/dist/{completion-cli-TWGBbOuJ.js → completion-cli-DvQ9jyD4.js} +1 -1
  10. package/dist/{config-guard-B8zPz93m.js → config-guard-D3gc6E8C.js} +13 -13
  11. package/dist/{configure-Bvkl46FH.js → configure-DCGwOsl5.js} +3 -3
  12. package/dist/{daemon-cli-B-2BOusp.js → daemon-cli-CQVrLqqK.js} +1 -1
  13. package/dist/{deps-Bj5gRQ0W.js → deps-t5L-A83G.js} +1 -1
  14. package/dist/{doctor-hOdaxJX-.js → doctor-CD-WtrdU.js} +3 -3
  15. package/dist/{doctor-completion-8eroKxvz.js → doctor-completion-Cu2S0xEi.js} +1 -1
  16. package/dist/entry.js +1 -1
  17. package/dist/extension-api.js +1 -1
  18. package/dist/{gateway-cli-D1m2vIoD.js → gateway-cli-DmyZs7Ep.js} +16 -16
  19. package/dist/{github-copilot-auth-B4_ACZo9.js → github-copilot-auth-Chy6C864.js} +1 -1
  20. package/dist/{health-format-Dawo2k_L.js → health-format-bz_y3Is4.js} +1 -1
  21. package/dist/{hooks-cli-BqQrM62Y.js → hooks-cli-BDpcQSSf.js} +3 -3
  22. package/dist/index.js +19 -19
  23. package/dist/{installs-I2cTEUw0.js → installs-CX86qYwg.js} +1 -1
  24. package/dist/{koi-2V4YGRG5.js → koi-OQR48eFq.js} +2 -2
  25. package/dist/{models-cli-DbwdaoDx.js → models-cli-DXHiRtoq.js} +2 -2
  26. package/dist/{onboard-channels-CCzlFse3.js → onboard-channels-Dwa2VDnr.js} +2 -2
  27. package/dist/{onboard-skills-D-GmrLoI.js → onboard-skills-9NTw2UQb.js} +3 -3
  28. package/dist/{onboarding-Clc8WWFN.js → onboarding-DYhH6247.js} +6 -6
  29. package/dist/{plugin-registry-CVtTkPO6.js → plugin-registry-BHK4iVLz.js} +1 -1
  30. package/dist/plugin-sdk/index.js +10 -10
  31. package/dist/{plugins-cli-BzZchZW8.js → plugins-cli-CqGTXqrP.js} +5 -5
  32. package/dist/{proactive-eval-g3mVjevU.js → proactive-eval-HZJsb8uR.js} +35 -15
  33. package/dist/{program-SC_74Kyf.js → program-BwtRA2k1.js} +4 -4
  34. package/dist/{register.subclis-DKA3xq9X.js → register.subclis-C6ltYa9G.js} +10 -10
  35. package/dist/{reply-DkyVI8Bi.js → reply-B3dci0a3.js} +1 -1
  36. package/dist/{run-main-DAMIpotp.js → run-main-0tlpaIOm.js} +20 -20
  37. package/dist/{server-node-events-B49PNDu5.js → server-node-events-Bl4gEUV2.js} +3 -3
  38. package/dist/{status-CjK3RKQi.js → status-C6z-Dsgd.js} +1 -1
  39. package/dist/{update-B5paR6YI.js → update-B77bDb9t.js} +1 -1
  40. package/dist/{update-cli-JC8snRye.js → update-cli-DSsG4v98.js} +11 -11
  41. 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 { mt as require_inherits } from "./reply-DkyVI8Bi.js";
2
+ import { mt as require_inherits } from "./reply-B3dci0a3.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.376",
3
- "commit": "187c980e3bcb453b1c1e714a9b1ad1683467a2bb",
4
- "builtAt": "2026-06-25T19:42:34.309Z"
2
+ "version": "2026.3.377",
3
+ "commit": "1f06ec7140ac56877fc59bd376ae3bdaace5272c",
4
+ "builtAt": "2026-06-25T21:33:44.252Z"
5
5
  }
@@ -1 +1 @@
1
- c86b88c323bf1153324ddab7a79be1e52b8faf5cdff68ba3a3ab39703fdd1c89
1
+ a1f4a18d7fc4097331e38546ddc2ecc975724a466fe3459242e6a986ea432372
@@ -2051,7 +2051,7 @@ async function startCaptureService(opts) {
2051
2051
  console.error(`[capture] Audio capture failed to start: ${err}`);
2052
2052
  }
2053
2053
  try {
2054
- const { startProactiveEval } = await import("./proactive-eval-g3mVjevU.js");
2054
+ const { startProactiveEval } = await import("./proactive-eval-HZJsb8uR.js");
2055
2055
  const proactiveHandle = startProactiveEval();
2056
2056
  stops.push(proactiveHandle.stop);
2057
2057
  } catch (err) {
@@ -2,7 +2,7 @@ import { O as CHAT_CHANNEL_ORDER } from "./subsystem-hATE68va.js";
2
2
  import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
3
3
  import { n as listChannelPlugins } from "./plugins-BXfIVhTg.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-Cg3LRidd.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CVtTkPO6.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BHK4iVLz.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-VJ9hOBTv.js";
2
- import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-DkyVI8Bi.js";
2
+ import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-B3dci0a3.js";
3
3
  import { f as danger, s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -73,20 +73,20 @@ import "./event-log-BJRHlOn8.js";
73
73
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
74
74
  import "./note-DRoVRuAi.js";
75
75
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
76
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CCzlFse3.js";
76
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-Dwa2VDnr.js";
77
77
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-Cg3LRidd.js";
78
- import "./archive-PMxMPzgz.js";
78
+ import "./archive-CLP9ZNKN.js";
79
79
  import "./skill-scanner-CBHxr1An.js";
80
- import "./installs-I2cTEUw0.js";
80
+ import "./installs-CX86qYwg.js";
81
81
  import "./service-BGkVTESM.js";
82
82
  import "./systemd-BzTSelz8.js";
83
83
  import "./diagnostics-CFV2YxpG.js";
84
84
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
85
- import { n as hasExplicitOptions } from "./plugin-registry-CVtTkPO6.js";
85
+ import { n as hasExplicitOptions } from "./plugin-registry-BHK4iVLz.js";
86
86
  import "./daemon-runtime-r19-i0S0.js";
87
87
  import "./ensure-local-gateway-VbJtdpui.js";
88
88
  import { n as runChannelLoginAll, r as runChannelLogout, t as runChannelLogin } from "./channel-auth-DrJ2FCUT.js";
89
- import { t as formatCliChannelOptions } from "./channel-options-CbNcadEW.js";
89
+ import { t as formatCliChannelOptions } from "./channel-options-DrGMgOD5.js";
90
90
  import { t as buildChannelAccountSnapshot } from "./status-BN46BKoK.js";
91
91
  import { t as parseLogLine } from "./parse-log-line-BOe9IEjO.js";
92
92
  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-B-2BOusp.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-CQVrLqqK.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
2
+ import { ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DKA3xq9X.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-C6ltYa9G.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 { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-DkyVI8Bi.js";
1
+ import { B as CHANNEL_MESSAGE_ACTION_NAMES, Bn as lookupContextTokens, F as runMessageAction, Ot as registerMemoryCli, R as formatTargetDisplay, it as CHANNEL_TARGET_DESCRIPTION, kt as runMemoryStatus, rt as CHANNEL_TARGETS_DESCRIPTION } from "./reply-B3dci0a3.js";
2
2
  import { I as normalizeChatChannelId, M as getChatChannelMeta, c as restoreTerminalState, f as danger, k as DEFAULT_CHAT_CHANNEL, p as info, s as defaultRuntime, v as setVerbose } from "./subsystem-hATE68va.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -21,32 +21,32 @@ import { n as runCommandWithRuntime } from "./cli-utils-CwUbbnsD.js";
21
21
  import { n as withProgress } from "./progress-BPDEiFpj.js";
22
22
  import { a as ensureWorkspaceAndSessions, c as handleReset, d as openUrl, h as resolveControlUiLinks, i as detectBrowserOpenSupport, l as moveToTrash, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, t as DEFAULT_WORKSPACE, v as waitForGatewayReachable } from "./onboard-helpers-DKhundDe.js";
23
23
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-e5zz5JM8.js";
24
- import { t as createDefaultDeps } from "./deps-Bj5gRQ0W.js";
24
+ import { t as createDefaultDeps } from "./deps-t5L-A83G.js";
25
25
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
26
26
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
27
27
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-1Q_KlUsW.js";
28
28
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
29
29
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
30
- import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-Clc8WWFN.js";
31
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-D-GmrLoI.js";
32
- import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-B4_ACZo9.js";
33
- import { n as setupChannels } from "./onboard-channels-CCzlFse3.js";
34
- import { i as healthCommand } from "./health-format-Dawo2k_L.js";
30
+ import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-DYhH6247.js";
31
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-9NTw2UQb.js";
32
+ import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-Chy6C864.js";
33
+ import { n as setupChannels } from "./onboard-channels-Dwa2VDnr.js";
34
+ import { i as healthCommand } from "./health-format-bz_y3Is4.js";
35
35
  import { t as renderTable } from "./table-B3RHVa0g.js";
36
36
  import { t as resolveGatewayService } from "./service-BGkVTESM.js";
37
37
  import { r as isSystemdUserServiceAvailable } from "./systemd-BzTSelz8.js";
38
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-DKA3xq9X.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-C6ltYa9G.js";
39
39
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CIxOsvvC.js";
40
40
  import { t as formatHelpExamples } from "./help-format-BVBm9rU4.js";
41
41
  import { t as adminUnlockCommand } from "./admin-unlock-Dr4FqRVP.js";
42
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-2V4YGRG5.js";
43
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-CVtTkPO6.js";
42
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-OQR48eFq.js";
43
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-BHK4iVLz.js";
44
44
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-BwzKU4J1.js";
45
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-Bvkl46FH.js";
45
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-DCGwOsl5.js";
46
46
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-r19-i0S0.js";
47
47
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Be49_NdF.js";
48
48
  import { t as loginCommand } from "./login-C71-L2cR.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-hOdaxJX-.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CD-WtrdU.js";
50
50
  import { fileURLToPath } from "node:url";
51
51
  import fs from "node:fs";
52
52
  import path from "node:path";
@@ -2797,7 +2797,7 @@ async function loadValidConfig() {
2797
2797
  }
2798
2798
  function registerConfigCli(program) {
2799
2799
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.skykoi.com/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2800
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-Bvkl46FH.js").then((n) => n.t);
2800
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-DCGwOsl5.js").then((n) => n.t);
2801
2801
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2802
2802
  if (sections.length === 0) {
2803
2803
  await configureCommand(defaultRuntime);
@@ -14,9 +14,9 @@ import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
14
14
  import { t as note$1 } from "./note-DRoVRuAi.js";
15
15
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
16
16
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
17
- 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-D-GmrLoI.js";
18
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CCzlFse3.js";
19
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-Dawo2k_L.js";
17
+ 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-9NTw2UQb.js";
18
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-Dwa2VDnr.js";
19
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-bz_y3Is4.js";
20
20
  import { t as resolveGatewayService } from "./service-BGkVTESM.js";
21
21
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.js";
22
22
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-r19-i0S0.js";
@@ -15,7 +15,7 @@ import { n as withProgress } from "./progress-BPDEiFpj.js";
15
15
  import { h as resolveControlUiLinks } from "./onboard-helpers-DKhundDe.js";
16
16
  import { n as isWSLEnv, t as isWSL } from "./wsl-DiiAe4Ci.js";
17
17
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-BezzOOYJ.js";
18
- import { t as createDefaultDeps } from "./deps-Bj5gRQ0W.js";
18
+ import { t as createDefaultDeps } from "./deps-t5L-A83G.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-BGkVTESM.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-BzTSelz8.js";
21
21
  import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
@@ -1,4 +1,4 @@
1
- import { Ht as sendMessageTelegram, Ut as sendMessageDiscord, ht as sendMessageIMessage, nn as sendMessageWhatsApp, rn as sendMessageSlack } from "./reply-DkyVI8Bi.js";
1
+ import { Ht as sendMessageTelegram, Ut as sendMessageDiscord, ht as sendMessageIMessage, nn as sendMessageWhatsApp, rn as sendMessageSlack } from "./reply-B3dci0a3.js";
2
2
  import { b as sendMessageSignal } from "./deliver-DJbxwsAM.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
1
+ import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
2
2
  import { s as defaultRuntime, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
3
3
  import { d as resolveIsNixMode, f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { a as buildKoiMainSessionKey, l as normalizeKoiId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
@@ -26,7 +26,7 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
26
26
  import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
27
27
  import { t as note$1 } from "./note-DRoVRuAi.js";
28
28
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-Cg3LRidd.js";
29
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-Dawo2k_L.js";
29
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-bz_y3Is4.js";
30
30
  import { t as runGatewayUpdate } from "./update-runner-odTAl-uh.js";
31
31
  import { i as resolveGatewayAuth } from "./auth-Vh115fQN.js";
32
32
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DakSfN8r.js";
@@ -34,7 +34,7 @@ import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLa
34
34
  import { r as isSystemdUserServiceAvailable } from "./systemd-BzTSelz8.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
36
36
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
37
- import { n as doctorShellCompletion } from "./doctor-completion-8eroKxvz.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-Cu2S0xEi.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-B0N-n2rD.js";
39
39
  import { a as gatewayInstallErrorHint, d as renderSystemNodeWarning, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, p as resolveSystemNodeInfo, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-r19-i0S0.js";
40
40
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Be49_NdF.js";
@@ -3,7 +3,7 @@ import { r as resolveCliName, t as formatCliCommand } from "./command-format-DOY
3
3
  import { t as VERSION } from "./version-BKRSzdyx.js";
4
4
  import { t as note } from "./note-DRoVRuAi.js";
5
5
  import { c as compareSemverStrings, s as checkUpdateStatus } from "./update-runner-odTAl-uh.js";
6
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-TWGBbOuJ.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DvQ9jyD4.js";
7
7
  import path from "node:path";
8
8
  import { spawnSync } from "node:child_process";
9
9
 
package/dist/entry.js CHANGED
@@ -247,7 +247,7 @@ if (!ensureExperimentalWarningSuppressed()) {
247
247
  applyCliProfileEnv({ profile: parsed.profile });
248
248
  process$1.argv = parsed.argv;
249
249
  }
250
- import("./run-main-DAMIpotp.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-0tlpaIOm.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
251
251
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
252
252
  process$1.exitCode = 1;
253
253
  });
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { c as runEmbeddedPiKoi, lr as resolveKoiTimeoutMs, sn as resolveKoiIdentity } from "./reply-DkyVI8Bi.js";
2
+ import { c as runEmbeddedPiKoi, lr as resolveKoiTimeoutMs, sn as resolveKoiIdentity } from "./reply-B3dci0a3.js";
3
3
  import "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
2
  import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, R as normalizeElevatedLevel, V as normalizeUsageDisplay, W as supportsXHighThinking, z as normalizeReasoningLevel } from "./pi-embedded-helpers-VJ9hOBTv.js";
3
- import { $ as normalizeOptionalText, $n as DEFAULT_INPUT_IMAGE_MIMES, $t as findSubkoiRunByRunId, A as capArrayByJsonBytes, An as setCommandLaneConcurrency, Bn as lookupContextTokens, Bt as onHeartbeatEvent, C as listKoisForGateway, Cn as resolveTtsPrefsPath, Ct as registerSkillsChangeListener, D as resolveGatewaySessionStoreTarget, Dn as textToSpeech, Dt as isExternalHookSession, E as loadSessionEntry, En as setTtsProvider, Et as getHookType, Fn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, G as consumeGatewaySigusr1RestartAuthorization, Gn as enqueueSystemEvent, H as runWithModelFallback, Hn as applyModelOverrideToSessionEntry, I as ensureOutboundSessionEntry, It as buildHistoryContextFromEntries, J as setGatewaySigusr1RestartPolicy, Jn as loadModelCatalog, Jt as createReplyDispatcher, K as isGatewaySigusr1RestartExternallyAllowed, Kn as isSystemEventContextChanged, L as resolveOutboundSessionRoute, Lt as resolveHeartbeatVisibility, M as readSessionPreviewItemsFromTranscript, Mn as startDiagnosticHeartbeat, Mt as normalizeGroupActivation, N as resolveSessionTranscriptCandidates, Nn as stopDiagnosticHeartbeat, O as resolveSessionModelRef, P as stripEnvelopeFromMessages, Pn as isDiagnosticsEnabled, Pt as registerUnhandledRejectionHandler, Q as normalizeOptionalKoiId, Qn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Qt as findSubkoiRunByChildSessionKey, S as resolveAnnounceTargetFromKey, Sn as resolveTtsConfig, St as getSkillsSnapshotVersion, T as loadCombinedSessionStoreForGateway, Tn as setTtsEnabled, Tt as detectSuspiciousPatterns, Un as applyVerboseOverride, V as readRecentActivity, W as authorizeGatewaySigusr1Restart, Wn as parseVerboseOverride, Wt as getChannelActivity, X as normalizeCronJobPatch, Xn as DEFAULT_INPUT_FILE_MAX_CHARS, Xt as isAbortTrigger, Y as normalizeCronJobCreate, Yn as DEFAULT_INPUT_FILE_MAX_BYTES, Yt as formatZonedTimestamp, Z as inferLegacyName, Zn as DEFAULT_INPUT_FILE_MIMES, Zt as stopSubkoisForRequester, _ as canvasUri, _n as getTtsProvider, _t as primeRemoteSkillsCache, a as normalizeSendPolicy, ar as extractFileContentFromSource, at as requestHeartbeatNow, b as onCanvasChange, bn as resolveTtsApiKey, bt as refreshRemoteNodeBins, c as runEmbeddedPiKoi, cn as formatUserTime, ct as loadSKYKOIPlugins, dn as clearInternalHooks, en as initSubkoiRegistry, er as DEFAULT_INPUT_MAX_REDIRECTS, et as normalizePayloadToSystemText, f as waitForEmbeddedPiRunEnd, fn as createInternalHookEvent, g as createSKYKOITools, gn as OPENAI_TTS_VOICES, gt as getRemoteSkillEligibility, h as initRuntimeContext, hn as OPENAI_TTS_MODELS, i as runCliKoi, ir as DEFAULT_INPUT_TIMEOUT_MS, j as readSessionMessages, jn as CommandLane, jt as createReplyPrefixOptions, k as archiveFileOnDisk, l as getLastSystemPrompt, ln as resolveUserTimeFormat, lr as resolveKoiTimeoutMs, lt as loadProviderUsageSummary, mn as triggerInternalHook, n as getCliSessionId, nr as DEFAULT_INPUT_PDF_MAX_PIXELS, nt as migrateLegacyCronPayload, o as resolveSendPolicy, or as extractImageContentFromSource, pn as registerInternalHook, pt as handleSlackHttpRequest, q as scheduleGatewaySigusr1Restart, qt as dispatchInboundMessage, r as setCliSessionId, rr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, s as clearSessionQueues, sn as resolveKoiIdentity, sr as normalizeMimeList, st as getPluginToolMeta, tr as DEFAULT_INPUT_PDF_MAX_PAGES, tt as normalizeRequiredName, u as abortEmbeddedPiRun, un as resolveUserTimezone, v as getCanvasResource, vn as isTtsEnabled, vt as recordRemoteNodeInfo, w as listSessionsFromStore, wn as resolveTtsProviderOrder, wt as buildSafeExternalPrompt, x as replaceCanvasResource, xn as resolveTtsAutoMode, xt as setSkillsRemoteRegistry, y as listCanvasUris, yn as isTtsProviderConfigured, yt as refreshRemoteBinsForConnectedNodes, z as resetDirectoryCache, zn as stripHeartbeatToken, zt as getLastHeartbeatEvent } from "./reply-DkyVI8Bi.js";
3
+ import { $ as normalizeOptionalText, $n as DEFAULT_INPUT_IMAGE_MIMES, $t as findSubkoiRunByRunId, A as capArrayByJsonBytes, An as setCommandLaneConcurrency, Bn as lookupContextTokens, Bt as onHeartbeatEvent, C as listKoisForGateway, Cn as resolveTtsPrefsPath, Ct as registerSkillsChangeListener, D as resolveGatewaySessionStoreTarget, Dn as textToSpeech, Dt as isExternalHookSession, E as loadSessionEntry, En as setTtsProvider, Et as getHookType, Fn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, G as consumeGatewaySigusr1RestartAuthorization, Gn as enqueueSystemEvent, H as runWithModelFallback, Hn as applyModelOverrideToSessionEntry, I as ensureOutboundSessionEntry, It as buildHistoryContextFromEntries, J as setGatewaySigusr1RestartPolicy, Jn as loadModelCatalog, Jt as createReplyDispatcher, K as isGatewaySigusr1RestartExternallyAllowed, Kn as isSystemEventContextChanged, L as resolveOutboundSessionRoute, Lt as resolveHeartbeatVisibility, M as readSessionPreviewItemsFromTranscript, Mn as startDiagnosticHeartbeat, Mt as normalizeGroupActivation, N as resolveSessionTranscriptCandidates, Nn as stopDiagnosticHeartbeat, O as resolveSessionModelRef, P as stripEnvelopeFromMessages, Pn as isDiagnosticsEnabled, Pt as registerUnhandledRejectionHandler, Q as normalizeOptionalKoiId, Qn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Qt as findSubkoiRunByChildSessionKey, S as resolveAnnounceTargetFromKey, Sn as resolveTtsConfig, St as getSkillsSnapshotVersion, T as loadCombinedSessionStoreForGateway, Tn as setTtsEnabled, Tt as detectSuspiciousPatterns, Un as applyVerboseOverride, V as readRecentActivity, W as authorizeGatewaySigusr1Restart, Wn as parseVerboseOverride, Wt as getChannelActivity, X as normalizeCronJobPatch, Xn as DEFAULT_INPUT_FILE_MAX_CHARS, Xt as isAbortTrigger, Y as normalizeCronJobCreate, Yn as DEFAULT_INPUT_FILE_MAX_BYTES, Yt as formatZonedTimestamp, Z as inferLegacyName, Zn as DEFAULT_INPUT_FILE_MIMES, Zt as stopSubkoisForRequester, _ as canvasUri, _n as getTtsProvider, _t as primeRemoteSkillsCache, a as normalizeSendPolicy, ar as extractFileContentFromSource, at as requestHeartbeatNow, b as onCanvasChange, bn as resolveTtsApiKey, bt as refreshRemoteNodeBins, c as runEmbeddedPiKoi, cn as formatUserTime, ct as loadSKYKOIPlugins, dn as clearInternalHooks, en as initSubkoiRegistry, er as DEFAULT_INPUT_MAX_REDIRECTS, et as normalizePayloadToSystemText, f as waitForEmbeddedPiRunEnd, fn as createInternalHookEvent, g as createSKYKOITools, gn as OPENAI_TTS_VOICES, gt as getRemoteSkillEligibility, h as initRuntimeContext, hn as OPENAI_TTS_MODELS, i as runCliKoi, ir as DEFAULT_INPUT_TIMEOUT_MS, j as readSessionMessages, jn as CommandLane, jt as createReplyPrefixOptions, k as archiveFileOnDisk, l as getLastSystemPrompt, ln as resolveUserTimeFormat, lr as resolveKoiTimeoutMs, lt as loadProviderUsageSummary, mn as triggerInternalHook, n as getCliSessionId, nr as DEFAULT_INPUT_PDF_MAX_PIXELS, nt as migrateLegacyCronPayload, o as resolveSendPolicy, or as extractImageContentFromSource, pn as registerInternalHook, pt as handleSlackHttpRequest, q as scheduleGatewaySigusr1Restart, qt as dispatchInboundMessage, r as setCliSessionId, rr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, s as clearSessionQueues, sn as resolveKoiIdentity, sr as normalizeMimeList, st as getPluginToolMeta, tr as DEFAULT_INPUT_PDF_MAX_PAGES, tt as normalizeRequiredName, u as abortEmbeddedPiRun, un as resolveUserTimezone, v as getCanvasResource, vn as isTtsEnabled, vt as recordRemoteNodeInfo, w as listSessionsFromStore, wn as resolveTtsProviderOrder, wt as buildSafeExternalPrompt, x as replaceCanvasResource, xn as resolveTtsAutoMode, xt as setSkillsRemoteRegistry, y as listCanvasUris, yn as isTtsProviderConfigured, yt as refreshRemoteBinsForConnectedNodes, z as resetDirectoryCache, zn as stripHeartbeatToken, zt as getLastHeartbeatEvent } from "./reply-B3dci0a3.js";
4
4
  import { C as getLogger, D as CHANNEL_IDS, L as getActivePluginRegistry, S as getChildLogger, a as setConsoleTimestampPrefix, i as setConsoleSubsystemFilter, k as DEFAULT_CHAT_CHANNEL, n as runtimeForLogger, s as defaultRuntime, t as createSubsystemLogger, v as setVerbose, w as getResolvedLoggerSettings } from "./subsystem-hATE68va.js";
5
5
  import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
6
6
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -79,7 +79,7 @@ import { t as parseAbsoluteTimeMs } from "./parse-B6Z5uj5w.js";
79
79
  import { a as summarizeRestartSentinel, n as formatDoctorNonInteractiveHint, r as formatRestartSentinelMessage, s as writeRestartSentinel, t as consumeRestartSentinel } from "./restart-sentinel-Cu-Tbnik.js";
80
80
  import { n as resolveMessageChannelSelection } from "./channel-selection-Cd-vguDM.js";
81
81
  import { i as readEventsSince, n as clearEventLogForSession, o as subscribeAll, r as hydrateSession, t as appendEvent } from "./event-log-BJRHlOn8.js";
82
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-Bj5gRQ0W.js";
82
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-t5L-A83G.js";
83
83
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-BO36kRfh.js";
84
84
  import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
85
85
  import { t as forceFreePortAndWait } from "./ports-YIGvuUFy.js";
@@ -87,15 +87,15 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
87
87
  import "./logging-1Q_KlUsW.js";
88
88
  import "./note-DRoVRuAi.js";
89
89
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
90
- 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-Clc8WWFN.js";
91
- import { n as installSkill } from "./onboard-skills-D-GmrLoI.js";
92
- import "./github-copilot-auth-B4_ACZo9.js";
93
- import "./onboard-channels-CCzlFse3.js";
90
+ 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-DYhH6247.js";
91
+ import { n as installSkill } from "./onboard-skills-9NTw2UQb.js";
92
+ import "./github-copilot-auth-Chy6C864.js";
93
+ import "./onboard-channels-Dwa2VDnr.js";
94
94
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-Cg3LRidd.js";
95
- import "./archive-PMxMPzgz.js";
95
+ import "./archive-CLP9ZNKN.js";
96
96
  import "./skill-scanner-CBHxr1An.js";
97
- import "./installs-I2cTEUw0.js";
98
- import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-Dawo2k_L.js";
97
+ import "./installs-CX86qYwg.js";
98
+ import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-bz_y3Is4.js";
99
99
  import { c as compareSemverStrings, d as resolveNpmChannelTag, g as normalizeUpdateChannel, l as fetchNpmLatestVersion, p as DEFAULT_PACKAGE_CHANNEL, s as checkUpdateStatus, t as runGatewayUpdate } from "./update-runner-odTAl-uh.js";
100
100
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-Vh115fQN.js";
101
101
  import { i as probeGateway } from "./audit-BhMw948Z.js";
@@ -106,21 +106,21 @@ import { p as resolveGatewayStateDir } from "./systemd-BzTSelz8.js";
106
106
  import "./diagnostics-CFV2YxpG.js";
107
107
  import "./node-service-BzD7Bqwc.js";
108
108
  import "./channels-status-issues-BLygTpUh.js";
109
- import "./doctor-completion-8eroKxvz.js";
110
- import "./register.subclis-DKA3xq9X.js";
111
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-2V4YGRG5.js";
109
+ import "./doctor-completion-Cu2S0xEi.js";
110
+ import "./register.subclis-C6ltYa9G.js";
111
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-OQR48eFq.js";
112
112
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.js";
113
113
  import "./daemon-runtime-r19-i0S0.js";
114
114
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-Bb9eE_C1.js";
115
115
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-Du_kGDHQ.js";
116
116
  import "./ensure-local-gateway-VbJtdpui.js";
117
- import "./completion-cli-TWGBbOuJ.js";
117
+ import "./completion-cli-DvQ9jyD4.js";
118
118
  import "./service-audit-C3mNLBya.js";
119
119
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-B0H9mn8K.js";
120
120
  import "./tui-C8LwqY_j.js";
121
121
  import { t as buildChannelAccountSnapshot } from "./status-BN46BKoK.js";
122
122
  import "./shared-BJlh4CKo.js";
123
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-B-2BOusp.js";
123
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-CQVrLqqK.js";
124
124
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CwLJrrHf.js";
125
125
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-C9-8BLr6.js";
126
126
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-B_tUL1-k.js";
@@ -12024,7 +12024,7 @@ const nodeHandlers = {
12024
12024
  const p = params;
12025
12025
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12026
12026
  await respondUnavailableOnThrow(respond, async () => {
12027
- const { handleNodeEvent } = await import("./server-node-events-B49PNDu5.js");
12027
+ const { handleNodeEvent } = await import("./server-node-events-Bl4gEUV2.js");
12028
12028
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12029
12029
  await handleNodeEvent({
12030
12030
  deps: context.deps,
@@ -21087,7 +21087,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
21087
21087
  let captureServiceStop = null;
21088
21088
  (async () => {
21089
21089
  try {
21090
- const { startCaptureService } = await import("./capture-service-CgiT_L3Y.js");
21090
+ const { startCaptureService } = await import("./capture-service-CQce38jE.js");
21091
21091
  captureServiceStop = (await startCaptureService()).stop;
21092
21092
  console.log("[capture] Device capture service started");
21093
21093
  } catch (err) {
@@ -1,4 +1,4 @@
1
- import { ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
4
4
  import { b as sleep } from "./utils-D019Z2NU.js";
@@ -1,4 +1,4 @@
1
- import { Fn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, In as DEFAULT_HEARTBEAT_EVERY, Ln as isHeartbeatContentEffectivelyEmpty, Lt as resolveHeartbeatVisibility, On as enqueueCommandInLane, Rn as resolveHeartbeatPrompt$1, Rt as emitHeartbeatEvent, Vt as resolveIndicatorType, at as requestHeartbeatNow, d as isEmbeddedPiRunActive, jn as CommandLane, kn as getQueueSize, on as resolveEffectiveMessagesConfig, ot as setHeartbeatWakeHandler, qn as peekSystemEvents, t as getReplyFromConfig, un as resolveUserTimezone, zn as stripHeartbeatToken } from "./reply-DkyVI8Bi.js";
1
+ import { Fn as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, In as DEFAULT_HEARTBEAT_EVERY, Ln as isHeartbeatContentEffectivelyEmpty, Lt as resolveHeartbeatVisibility, On as enqueueCommandInLane, Rn as resolveHeartbeatPrompt$1, Rt as emitHeartbeatEvent, Vt as resolveIndicatorType, at as requestHeartbeatNow, d as isEmbeddedPiRunActive, jn as CommandLane, kn as getQueueSize, on as resolveEffectiveMessagesConfig, ot as setHeartbeatWakeHandler, qn as peekSystemEvents, t as getReplyFromConfig, un as resolveUserTimezone, zn as stripHeartbeatToken } from "./reply-B3dci0a3.js";
2
2
  import { p as info, s as defaultRuntime, t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { n as isRich, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
4
4
  import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-B2OXLVi_.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import "./reply-DkyVI8Bi.js";
2
+ import "./reply-B3dci0a3.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -68,10 +68,10 @@ import "./control-service-Bbl6R2bi.js";
68
68
  import "./restart-sentinel-Cu-Tbnik.js";
69
69
  import "./channel-selection-Cd-vguDM.js";
70
70
  import "./event-log-BJRHlOn8.js";
71
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-PMxMPzgz.js";
71
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CLP9ZNKN.js";
72
72
  import { t as renderTable } from "./table-B3RHVa0g.js";
73
73
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-B0H9mn8K.js";
74
- import { t as buildPluginStatusReport } from "./status-CjK3RKQi.js";
74
+ import { t as buildPluginStatusReport } from "./status-C6z-Dsgd.js";
75
75
  import fs from "node:fs";
76
76
  import path from "node:path";
77
77
  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-VJ9hOBTv.js";
3
- import { At as monitorWebChannel, Ft as waitForever, Nt as installUnhandledRejectionHandler, cr as applyTemplate, t as getReplyFromConfig } from "./reply-DkyVI8Bi.js";
3
+ import { At as monitorWebChannel, Ft as waitForever, Nt as installUnhandledRejectionHandler, cr as applyTemplate, t as getReplyFromConfig } from "./reply-B3dci0a3.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-hATE68va.js";
5
5
  import "./paths-VdmjGGyc.js";
6
6
  import "./theme-C5EwWDWE.js";
@@ -68,25 +68,25 @@ import "./control-service-Bbl6R2bi.js";
68
68
  import "./restart-sentinel-Cu-Tbnik.js";
69
69
  import "./channel-selection-Cd-vguDM.js";
70
70
  import "./event-log-BJRHlOn8.js";
71
- import { t as createDefaultDeps } from "./deps-Bj5gRQ0W.js";
71
+ import { t as createDefaultDeps } from "./deps-t5L-A83G.js";
72
72
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-BO36kRfh.js";
73
73
  import { t as isMainModule } from "./is-main-Cs8_TnVO.js";
74
74
  import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
75
75
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
76
76
  import "./ports-YIGvuUFy.js";
77
- import "./config-guard-B8zPz93m.js";
77
+ import "./config-guard-D3gc6E8C.js";
78
78
  import "./logging-1Q_KlUsW.js";
79
79
  import "./note-DRoVRuAi.js";
80
80
  import "./clack-prompter-B9o3eQeW.js";
81
- import "./onboarding-Clc8WWFN.js";
82
- import "./onboard-skills-D-GmrLoI.js";
83
- import "./github-copilot-auth-B4_ACZo9.js";
84
- import "./onboard-channels-CCzlFse3.js";
81
+ import "./onboarding-DYhH6247.js";
82
+ import "./onboard-skills-9NTw2UQb.js";
83
+ import "./github-copilot-auth-Chy6C864.js";
84
+ import "./onboard-channels-Dwa2VDnr.js";
85
85
  import "./plugin-auto-enable-Cg3LRidd.js";
86
- import "./archive-PMxMPzgz.js";
86
+ import "./archive-CLP9ZNKN.js";
87
87
  import "./skill-scanner-CBHxr1An.js";
88
- import "./installs-I2cTEUw0.js";
89
- import "./health-format-Dawo2k_L.js";
88
+ import "./installs-CX86qYwg.js";
89
+ import "./health-format-bz_y3Is4.js";
90
90
  import "./update-runner-odTAl-uh.js";
91
91
  import "./auth-Vh115fQN.js";
92
92
  import "./audit-BhMw948Z.js";
@@ -97,15 +97,15 @@ import "./systemd-BzTSelz8.js";
97
97
  import "./diagnostics-CFV2YxpG.js";
98
98
  import "./node-service-BzD7Bqwc.js";
99
99
  import "./channels-status-issues-BLygTpUh.js";
100
- import "./doctor-completion-8eroKxvz.js";
101
- import "./register.subclis-DKA3xq9X.js";
100
+ import "./doctor-completion-Cu2S0xEi.js";
101
+ import "./register.subclis-C6ltYa9G.js";
102
102
  import "./gateway-rpc-CIxOsvvC.js";
103
103
  import "./help-format-BVBm9rU4.js";
104
104
  import "./admin-unlock-Dr4FqRVP.js";
105
- import "./koi-2V4YGRG5.js";
106
- import "./plugin-registry-CVtTkPO6.js";
105
+ import "./koi-OQR48eFq.js";
106
+ import "./plugin-registry-BHK4iVLz.js";
107
107
  import "./control-ui-assets-B0N-n2rD.js";
108
- import "./configure-Bvkl46FH.js";
108
+ import "./configure-DCGwOsl5.js";
109
109
  import "./daemon-runtime-r19-i0S0.js";
110
110
  import "./systemd-linger-Be49_NdF.js";
111
111
  import "./widearea-dns-Bb9eE_C1.js";
@@ -114,13 +114,13 @@ import "./ensure-local-gateway-VbJtdpui.js";
114
114
  import "./login-C71-L2cR.js";
115
115
  import "./channel-auth-DrJ2FCUT.js";
116
116
  import "./auth-health-DX1wRWrd.js";
117
- import "./doctor-hOdaxJX-.js";
118
- import "./completion-cli-TWGBbOuJ.js";
117
+ import "./doctor-CD-WtrdU.js";
118
+ import "./completion-cli-DvQ9jyD4.js";
119
119
  import "./service-audit-C3mNLBya.js";
120
120
  import "./hooks-status-B0H9mn8K.js";
121
121
  import "./tui-C8LwqY_j.js";
122
- import "./channel-options-CbNcadEW.js";
123
- import { n as buildProgram } from "./program-SC_74Kyf.js";
122
+ import "./channel-options-DrGMgOD5.js";
123
+ import { n as buildProgram } from "./program-BwtRA2k1.js";
124
124
  import process from "node:process";
125
125
  import { fileURLToPath } from "node:url";
126
126
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-D019Z2NU.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-DdlIawm8.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-DEGu_o5t.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-PMxMPzgz.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CLP9ZNKN.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-CBHxr1An.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, W as supportsXHighThinking } from "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { Bn as lookupContextTokens, H as runWithModelFallback, Hn as applyModelOverrideToSessionEntry, Jn as loadModelCatalog, St as getSkillsSnapshotVersion, Un as applyVerboseOverride, Vn as clearSessionAuthProfileOverride, c as runEmbeddedPiKoi, gt as getRemoteSkillEligibility, i as runCliKoi, lr as resolveKoiTimeoutMs, m as compactEmbeddedPiSession, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, tn as KOI_LANE_NESTED } from "./reply-DkyVI8Bi.js";
2
+ import { Bn as lookupContextTokens, H as runWithModelFallback, Hn as applyModelOverrideToSessionEntry, Jn as loadModelCatalog, St as getSkillsSnapshotVersion, Un as applyVerboseOverride, Vn as clearSessionAuthProfileOverride, c as runEmbeddedPiKoi, gt as getRemoteSkillEligibility, i as runCliKoi, lr as resolveKoiTimeoutMs, m as compactEmbeddedPiSession, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, tn as KOI_LANE_NESTED } from "./reply-B3dci0a3.js";
3
3
  import { k as DEFAULT_CHAT_CHANNEL, s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import { d as resolveKoiIdFromSessionKey, l as normalizeKoiId, u as normalizeMainKey } from "./session-key-B2OXLVi_.js";
5
5
  import { S as ensureKoiWorkspace, a as resolveKoiDir, c as resolveKoiSkillsFilter, l as resolveKoiWorkspaceDir, n as listKoiIds, o as resolveKoiModelFallbacksOverride, s as resolveKoiModelPrimary } from "./koi-scope-7GA83nWp.js";
@@ -14,7 +14,7 @@ import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads,
14
14
  import { a as resolveOutboundTarget, o as resolveSessionDeliveryTarget } from "./message-0gwe6UQ4.js";
15
15
  import { n as emitKoiEvent, o as registerKoiRunContext, t as clearKoiRunContext } from "./koi-events-c_9Lexjh.js";
16
16
  import { l as hasNonzeroUsage } from "./session-cost-usage--3A8ZVbE.js";
17
- import { t as createDefaultDeps } from "./deps-Bj5gRQ0W.js";
17
+ import { t as createDefaultDeps } from "./deps-t5L-A83G.js";
18
18
  import crypto from "node:crypto";
19
19
 
20
20
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { Jn as loadModelCatalog, U as describeFailoverError, c as runEmbeddedPiKoi, dt as formatUsageWindowSummary, ft as resolveUsageProviderId, lt as loadProviderUsageSummary } from "./reply-DkyVI8Bi.js";
2
+ import { Jn as loadModelCatalog, U as describeFailoverError, c as runEmbeddedPiKoi, dt as formatUsageWindowSummary, ft as resolveUsageProviderId, lt as loadProviderUsageSummary } from "./reply-B3dci0a3.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import { t as CONFIG_PATH } from "./paths-VdmjGGyc.js";
5
5
  import { n as isRich$1, r as theme, t as colorize } from "./theme-C5EwWDWE.js";
@@ -72,7 +72,7 @@ import "./event-log-BJRHlOn8.js";
72
72
  import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
73
73
  import "./note-DRoVRuAi.js";
74
74
  import { t as createClackPrompter } from "./clack-prompter-B9o3eQeW.js";
75
- 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-B4_ACZo9.js";
75
+ 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-Chy6C864.js";
76
76
  import { t as renderTable } from "./table-B3RHVa0g.js";
77
77
  import { i as redactSecrets } from "./format-IoT-eUxs.js";
78
78
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-DX1wRWrd.js";
@@ -1,4 +1,4 @@
1
- import { ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
2
2
  import { A as formatChannelPrimerLine, N as listChatChannels, j as formatChannelSelectionLine, t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-B2OXLVi_.js";
4
4
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-7GA83nWp.js";
@@ -7,7 +7,7 @@ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BXfIVh
7
7
  import { t as formatDocsLink } from "./links-B0HTM-CT.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
9
9
  import { i as listChannelPluginCatalogEntries, n as isChannelConfigured } from "./plugin-auto-enable-Cg3LRidd.js";
10
- import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-I2cTEUw0.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-CX86qYwg.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
13
 
@@ -1,4 +1,4 @@
1
- import { Jn as loadModelCatalog } from "./reply-DkyVI8Bi.js";
1
+ import { Jn as loadModelCatalog } from "./reply-B3dci0a3.js";
2
2
  import { f as resolveConfigDir, h as resolveUserPath, s as ensureDir, t as CONFIG_DIR } from "./utils-D019Z2NU.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-DdlIawm8.js";
4
4
  import { T as resolveDefaultKoiWorkspaceDir, a as resolveKoiDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId, s as resolveKoiModelPrimary } from "./koi-scope-7GA83nWp.js";
@@ -8,8 +8,8 @@ import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t
8
8
  import { K as fetchWithSsrFGuard } from "./deliver-DJbxwsAM.js";
9
9
  import { d as openUrl, g as resolveNodeManagerOptions, r as detectBinary } from "./onboard-helpers-DKhundDe.js";
10
10
  import { t as resolveBrewExecutable } from "./brew-BJ9My-K-.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-B4_ACZo9.js";
12
- import { a as enablePluginInConfig } from "./onboard-channels-CCzlFse3.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-Chy6C864.js";
12
+ import { a as enablePluginInConfig } from "./onboard-channels-Dwa2VDnr.js";
13
13
  import { t as scanDirectoryWithSummary } from "./skill-scanner-CBHxr1An.js";
14
14
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DakSfN8r.js";
15
15
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-Bb9eE_C1.js";
@@ -1,4 +1,4 @@
1
- import { Bn as lookupContextTokens, C as listKoisForGateway, an as getMemorySearchManager, gt as getRemoteSkillEligibility, lt as loadProviderUsageSummary, p as sha256HexPrefix, qn as peekSystemEvents, ut as formatUsageReportLines } from "./reply-DkyVI8Bi.js";
1
+ import { Bn as lookupContextTokens, C as listKoisForGateway, an as getMemorySearchManager, gt as getRemoteSkillEligibility, lt as loadProviderUsageSummary, p as sha256HexPrefix, qn as peekSystemEvents, ut as formatUsageReportLines } from "./reply-B3dci0a3.js";
2
2
  import { c as restoreTerminalState, p as info, s as defaultRuntime } from "./subsystem-hATE68va.js";
3
3
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
4
4
  import { n as isRich, r as theme } from "./theme-C5EwWDWE.js";
@@ -24,9 +24,9 @@ import { a as findTailscaleBinary, o as getTailnetHostname, s as readTailscaleSt
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-y1KKH5pe.js";
25
25
  import { n as logConfigUpdated } from "./logging-1Q_KlUsW.js";
26
26
  import { t as WizardCancelledError } from "./prompts-yNyvMdpp.js";
27
- 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-D-GmrLoI.js";
28
- import { n as setupChannels } from "./onboard-channels-CCzlFse3.js";
29
- import { a as resolveHeartbeatSummaryForKoi, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-Dawo2k_L.js";
27
+ 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-9NTw2UQb.js";
28
+ import { n as setupChannels } from "./onboard-channels-Dwa2VDnr.js";
29
+ import { a as resolveHeartbeatSummaryForKoi, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-bz_y3Is4.js";
30
30
  import { _ as resolveEffectiveUpdateChannel, c as compareSemverStrings, g as normalizeUpdateChannel, h as formatUpdateChannelLabel, s as checkUpdateStatus } from "./update-runner-odTAl-uh.js";
31
31
  import { i as probeGateway, t as runSecurityAudit } from "./audit-BhMw948Z.js";
32
32
  import { t as renderTable } from "./table-B3RHVa0g.js";
@@ -37,10 +37,10 @@ import { t as readLastGatewayErrorLine } from "./diagnostics-CFV2YxpG.js";
37
37
  import { t as resolveNodeService } from "./node-service-BzD7Bqwc.js";
38
38
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BLygTpUh.js";
39
39
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-IoT-eUxs.js";
40
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-8eroKxvz.js";
40
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Cu2S0xEi.js";
41
41
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B0N-n2rD.js";
42
42
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-r19-i0S0.js";
43
- import { r as installCompletion } from "./completion-cli-TWGBbOuJ.js";
43
+ import { r as installCompletion } from "./completion-cli-DvQ9jyD4.js";
44
44
  import { t as buildWorkspaceHookStatus } from "./hooks-status-B0H9mn8K.js";
45
45
  import { t as runTui } from "./tui-C8LwqY_j.js";
46
46
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-7GA83nWp.js";
4
4
  import { o as loadConfig } from "./config-BFoj5wyy.js";
@@ -21,7 +21,7 @@ import chalk, { Chalk } from "chalk";
21
21
  import fs, { constants, createWriteStream, existsSync, promises, statSync } from "node:fs";
22
22
  import path, { join } from "node:path";
23
23
  import { Logger } from "tslog";
24
- import JSON5 from "json5";
24
+ import json5 from "json5";
25
25
  import os, { homedir, tmpdir } from "node:os";
26
26
  import { promisify } from "node:util";
27
27
  import fs$1 from "node:fs/promises";
@@ -33,7 +33,7 @@ import { exec as exec$1 } from "child_process";
33
33
  import { createReadStream as createReadStream$1, createWriteStream as createWriteStream$1, promises as promises$1 } from "fs";
34
34
  import { Readable, Transform } from "stream";
35
35
  import { platform, release, tmpdir as tmpdir$1 } from "os";
36
- import EventEmitter, { EventEmitter as EventEmitter$1, once } from "events";
36
+ import EventEmitter$1, { EventEmitter, once } from "events";
37
37
  import { promisify as promisify$1 } from "util";
38
38
  import { join as join$1 } from "path";
39
39
  import * as Crypto from "crypto";
@@ -2263,7 +2263,7 @@ function readLoggingConfig() {
2263
2263
  try {
2264
2264
  if (!fs.existsSync(configPath)) return;
2265
2265
  const raw = fs.readFileSync(configPath, "utf-8");
2266
- const logging = JSON5.parse(raw)?.logging;
2266
+ const logging = json5.parse(raw)?.logging;
2267
2267
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2268
2268
  return logging;
2269
2269
  } catch {
@@ -19031,7 +19031,7 @@ var IncludeProcessor = class IncludeProcessor {
19031
19031
  };
19032
19032
  const defaultResolver = {
19033
19033
  readFile: (p) => fs.readFileSync(p, "utf-8"),
19034
- parseJson: (raw) => JSON5.parse(raw)
19034
+ parseJson: (raw) => json5.parse(raw)
19035
19035
  };
19036
19036
  /**
19037
19037
  * Resolves all $include directives in a parsed config object.
@@ -21728,18 +21728,18 @@ function resolveConfigPathForDeps(deps) {
21728
21728
  function normalizeDeps(overrides = {}) {
21729
21729
  return {
21730
21730
  fs: overrides.fs ?? fs,
21731
- json5: overrides.json5 ?? JSON5,
21731
+ json5: overrides.json5 ?? json5,
21732
21732
  env: overrides.env ?? process.env,
21733
21733
  homedir: overrides.homedir ?? os.homedir,
21734
21734
  configPath: overrides.configPath ?? "",
21735
21735
  logger: overrides.logger ?? console
21736
21736
  };
21737
21737
  }
21738
- function parseConfigJson5(raw, json5 = JSON5) {
21738
+ function parseConfigJson5(raw, json5$1 = json5) {
21739
21739
  try {
21740
21740
  return {
21741
21741
  ok: true,
21742
- parsed: json5.parse(raw)
21742
+ parsed: json5$1.parse(raw)
21743
21743
  };
21744
21744
  } catch (err) {
21745
21745
  return {
@@ -22253,7 +22253,7 @@ function loadSessionStore(storePath, opts = {}) {
22253
22253
  let mtimeMs = getFileMtimeMs(storePath);
22254
22254
  try {
22255
22255
  const raw = fs.readFileSync(storePath, "utf-8");
22256
- const parsed = JSON5.parse(raw);
22256
+ const parsed = json5.parse(raw);
22257
22257
  if (isSessionStoreRecord(parsed)) store = parsed;
22258
22258
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22259
22259
  } catch {}
@@ -228308,7 +228308,7 @@ const BUFFERABLE_EVENT_SET = new Set([
228308
228308
  * making the data processing more efficient.
228309
228309
  */
228310
228310
  const makeEventBuffer = (logger) => {
228311
- const ev = new EventEmitter();
228311
+ const ev = new EventEmitter$1();
228312
228312
  const historyCache = /* @__PURE__ */ new Set();
228313
228313
  let data = makeBufferData();
228314
228314
  let isBuffering = false;
@@ -233878,7 +233878,7 @@ var BinaryInfo = class {
233878
233878
 
233879
233879
  //#endregion
233880
233880
  //#region node_modules/.pnpm/@whiskeysockets+baileys@7.0.0-rc.9_audio-decode@2.2.3_sharp@0.34.5/node_modules/@whiskeysockets/baileys/lib/Socket/Client/types.js
233881
- var AbstractSocketClient = class extends EventEmitter$1 {
233881
+ var AbstractSocketClient = class extends EventEmitter {
233882
233882
  constructor(url, config) {
233883
233883
  super();
233884
233884
  this.url = url;
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import "./reply-DkyVI8Bi.js";
2
+ import "./reply-B3dci0a3.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -67,12 +67,12 @@ import "./control-service-Bbl6R2bi.js";
67
67
  import "./restart-sentinel-Cu-Tbnik.js";
68
68
  import "./channel-selection-Cd-vguDM.js";
69
69
  import "./event-log-BJRHlOn8.js";
70
- import { i as resolveArchiveKind } from "./archive-PMxMPzgz.js";
70
+ import { i as resolveArchiveKind } from "./archive-CLP9ZNKN.js";
71
71
  import "./skill-scanner-CBHxr1An.js";
72
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-I2cTEUw0.js";
72
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CX86qYwg.js";
73
73
  import { t as renderTable } from "./table-B3RHVa0g.js";
74
- import { t as buildPluginStatusReport } from "./status-CjK3RKQi.js";
75
- import { n as updateNpmInstalledPlugins } from "./update-B5paR6YI.js";
74
+ import { t as buildPluginStatusReport } from "./status-C6z-Dsgd.js";
75
+ import { n as updateNpmInstalledPlugins } from "./update-B77bDb9t.js";
76
76
  import fs from "node:fs";
77
77
  import path from "node:path";
78
78
 
@@ -6,8 +6,8 @@ import { a as buildKoiMainSessionKey } from "./session-key-B2OXLVi_.js";
6
6
  import "./utils-D019Z2NU.js";
7
7
  import "./logger-BKidfKRU.js";
8
8
  import "./exec-DdlIawm8.js";
9
- import { u as resolveSessionKoiId } from "./koi-scope-7GA83nWp.js";
10
- import { H as resolveEnvApiKey } from "./model-selection-B8ZAcQCt.js";
9
+ import "./koi-scope-7GA83nWp.js";
10
+ import "./model-selection-B8ZAcQCt.js";
11
11
  import "./dist-0-pT_XrC.js";
12
12
  import "./dist-cjs-C9i3z5oP.js";
13
13
  import "./boolean-D-3joTkO.js";
@@ -37,11 +37,30 @@ import { homedir } from "node:os";
37
37
  * with tool access via chat.send.
38
38
  */
39
39
  const log = createSubsystemLogger("proactive");
40
- const ANTHROPIC_URL = "https://api.anthropic.com/v1/messages";
41
40
  const SONNET_MODEL = "claude-sonnet-4-6";
42
41
  const OPUS_MODEL = "claude-opus-4-8";
43
42
  const EVAL_TIMEOUT_MS = 15e3;
44
43
  const OPUS_TIMEOUT_MS = 3e4;
44
+ function resolveProxyAuth() {
45
+ try {
46
+ const config = loadConfig();
47
+ const token = config.gateway?.auth?.token;
48
+ const mesh = config.gateway?.mesh;
49
+ const koiId = mesh?.koiId;
50
+ const platformUrl = mesh && typeof mesh.platformUrl === "string" ? mesh.platformUrl : "https://www.skykoi.com";
51
+ if (!koiId || !token) {
52
+ log.warn(`proxy auth missing: koiId=${koiId ? "yes" : "no"} token=${token ? "yes" : "no"}`);
53
+ return null;
54
+ }
55
+ return {
56
+ url: `${platformUrl}/api/ai/anthropic/v1/messages`,
57
+ apiKey: `${koiId}.${token}`
58
+ };
59
+ } catch (err) {
60
+ log.warn(`proxy auth error: ${err}`);
61
+ return null;
62
+ }
63
+ }
45
64
  const MIN_NOTIFY_INTERVAL_MS = 3e4;
46
65
  const MIN_EVAL_INTERVAL_MS = 3e3;
47
66
  let lastNotifyTs = 0;
@@ -106,12 +125,12 @@ function formatTriggersForEval(triggers) {
106
125
  return lines.join("\n");
107
126
  }
108
127
  async function sonnetGate(triggers, fullContext) {
109
- const key = resolveEnvApiKey("anthropic")?.apiKey;
110
- if (!key) return {
128
+ const proxy = resolveProxyAuth();
129
+ if (!proxy) return {
111
130
  pass: false,
112
131
  actionable: false,
113
132
  summary: "",
114
- reason: "no anthropic key"
133
+ reason: "no proxy auth"
115
134
  };
116
135
  const triggerText = formatTriggersForEval(triggers);
117
136
  const systemPrompt = `You are a real-time signal triage system. Your ONLY job is to decide whether incoming device events are important enough to proactively alert the user.
@@ -142,11 +161,11 @@ Respond with EXACTLY this JSON (no other text):
142
161
  const controller = new AbortController();
143
162
  const timer = setTimeout(() => controller.abort(), EVAL_TIMEOUT_MS);
144
163
  try {
145
- const res = await fetch(ANTHROPIC_URL, {
164
+ const res = await fetch(proxy.url, {
146
165
  method: "POST",
147
166
  headers: {
148
167
  "content-type": "application/json",
149
- "x-api-key": key,
168
+ "x-api-key": proxy.apiKey,
150
169
  "anthropic-version": "2023-06-01"
151
170
  },
152
171
  body: JSON.stringify({
@@ -161,7 +180,8 @@ Respond with EXACTLY this JSON (no other text):
161
180
  signal: controller.signal
162
181
  });
163
182
  if (!res.ok) {
164
- log.warn(`sonnet gate failed: HTTP ${res.status}`);
183
+ const errBody = await res.text().catch(() => "");
184
+ log.warn(`sonnet gate failed: HTTP ${res.status} — ${errBody.slice(0, 200)}`);
165
185
  return {
166
186
  pass: false,
167
187
  actionable: false,
@@ -197,8 +217,8 @@ Respond with EXACTLY this JSON (no other text):
197
217
  }
198
218
  }
199
219
  async function opusNotify(summary, triggerText, fullContext) {
200
- const key = resolveEnvApiKey("anthropic")?.apiKey;
201
- if (!key) return null;
220
+ const proxy = resolveProxyAuth();
221
+ if (!proxy) return null;
202
222
  const systemPrompt = `You are the user's koi — their personal AI that lives on their device. You know them deeply and you're tapping them on the shoulder because something important just happened.
203
223
 
204
224
  ${fullContext}
@@ -211,11 +231,11 @@ Keep it under 2-3 sentences. Be direct.`;
211
231
  const controller = new AbortController();
212
232
  const timer = setTimeout(() => controller.abort(), OPUS_TIMEOUT_MS);
213
233
  try {
214
- const res = await fetch(ANTHROPIC_URL, {
234
+ const res = await fetch(proxy.url, {
215
235
  method: "POST",
216
236
  headers: {
217
237
  "content-type": "application/json",
218
- "x-api-key": key,
238
+ "x-api-key": proxy.apiKey,
219
239
  "anthropic-version": "2023-06-01"
220
240
  },
221
241
  body: JSON.stringify({
@@ -246,7 +266,7 @@ async function injectAssistantMessage(message) {
246
266
  await callGateway({
247
267
  method: "chat.inject",
248
268
  params: {
249
- sessionKey: buildKoiMainSessionKey({ koiId: resolveSessionKoiId({ config: loadConfig() }) }).toLowerCase(),
269
+ sessionKey: buildKoiMainSessionKey({ koiId: (loadConfig().gateway?.mesh)?.koiId || "main" }).toLowerCase(),
250
270
  message,
251
271
  role: "assistant"
252
272
  },
@@ -262,7 +282,7 @@ async function triggerKoiAction(summary, triggerText) {
262
282
  await callGateway({
263
283
  method: "chat.send",
264
284
  params: {
265
- sessionKey: buildKoiMainSessionKey({ koiId: resolveSessionKoiId({ config: loadConfig() }) }).toLowerCase(),
285
+ sessionKey: buildKoiMainSessionKey({ koiId: (loadConfig().gateway?.mesh)?.koiId || "main" }).toLowerCase(),
266
286
  message: `[proactive — your capture system detected this, act on it]\n${triggerText}\n\nSummary: ${summary}\n\nRespond naturally and take action. Use your tools if needed.`,
267
287
  idempotencyKey: `proactive-${Date.now()}`,
268
288
  timeoutMs: 6e4
@@ -5,11 +5,11 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-DOYW_
5
5
  import { t as isTruthyEnvValue } from "./env-ChCKTuXK.js";
6
6
  import { t as VERSION } from "./version-BKRSzdyx.js";
7
7
  import { t as formatDocsLink } from "./links-B0HTM-CT.js";
8
- import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-B8zPz93m.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-DKA3xq9X.js";
10
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CVtTkPO6.js";
8
+ import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-D3gc6E8C.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-C6ltYa9G.js";
10
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BHK4iVLz.js";
11
11
  import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-C8LwqY_j.js";
12
- import { n as resolveCliChannelOptions } from "./channel-options-CbNcadEW.js";
12
+ import { n as resolveCliChannelOptions } from "./channel-options-DrGMgOD5.js";
13
13
  import { Command } from "commander";
14
14
 
15
15
  //#region src/cli/program/context.ts
@@ -124,14 +124,14 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-D1m2vIoD.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-DmyZs7Ep.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-B-2BOusp.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-CQVrLqqK.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-DbwdaoDx.js")).registerModelsCli(program);
155
+ (await import("./models-cli-DXHiRtoq.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-BqQrM62Y.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-BDpcQSSf.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-B8ggt6rj.js");
239
+ const { registerPluginCliCommands } = await import("./cli-DecDOPbA.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
241
  (await import("./pairing-cli-YCG-zMZV.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-BzZchZW8.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-B8ggt6rj.js");
248
+ (await import("./plugins-cli-CqGTXqrP.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-DecDOPbA.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-xF6zBiE6.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-DnUekMyk.js")).registerChannelsCli(program);
258
258
  }
259
259
  },
260
260
  {
@@ -296,14 +296,14 @@ const entries = [
296
296
  name: "update",
297
297
  description: "CLI update helpers",
298
298
  register: async (program) => {
299
- (await import("./update-cli-JC8snRye.js")).registerUpdateCli(program);
299
+ (await import("./update-cli-DSsG4v98.js")).registerUpdateCli(program);
300
300
  }
301
301
  },
302
302
  {
303
303
  name: "completion",
304
304
  description: "Generate shell completion script",
305
305
  register: async (program) => {
306
- (await import("./completion-cli-TWGBbOuJ.js").then((n) => n.n)).registerCompletionCli(program);
306
+ (await import("./completion-cli-DvQ9jyD4.js").then((n) => n.n)).registerCompletionCli(program);
307
307
  }
308
308
  }
309
309
  ];
@@ -165880,7 +165880,7 @@ async function runEmbeddedAttempt(params) {
165880
165880
  const promptStartedAt = Date.now();
165881
165881
  let effectivePrompt = params.prompt;
165882
165882
  try {
165883
- const { buildCaptureContextBlock } = await import("./capture-service-CgiT_L3Y.js");
165883
+ const { buildCaptureContextBlock } = await import("./capture-service-CQce38jE.js");
165884
165884
  const captureBlock = buildCaptureContextBlock();
165885
165885
  if (captureBlock) {
165886
165886
  effectivePrompt = `${captureBlock}\n\n---\n\n${effectivePrompt}`;
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { Nt as installUnhandledRejectionHandler } from "./reply-DkyVI8Bi.js";
2
+ import { Nt as installUnhandledRejectionHandler } from "./reply-B3dci0a3.js";
3
3
  import { r as enableConsoleCapture, s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -67,23 +67,23 @@ import "./control-service-Bbl6R2bi.js";
67
67
  import "./restart-sentinel-Cu-Tbnik.js";
68
68
  import "./channel-selection-Cd-vguDM.js";
69
69
  import "./event-log-BJRHlOn8.js";
70
- import "./deps-Bj5gRQ0W.js";
70
+ import "./deps-t5L-A83G.js";
71
71
  import "./tailscale-BO36kRfh.js";
72
72
  import { t as ensureSKYKOICliOnPath } from "./path-env-gxBbRHVZ.js";
73
73
  import { t as assertSupportedRuntime } from "./runtime-guard-C80qkv4W.js";
74
- import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-B8zPz93m.js";
74
+ import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-D3gc6E8C.js";
75
75
  import "./logging-1Q_KlUsW.js";
76
76
  import "./note-DRoVRuAi.js";
77
77
  import "./clack-prompter-B9o3eQeW.js";
78
- import "./onboarding-Clc8WWFN.js";
79
- import "./onboard-skills-D-GmrLoI.js";
80
- import "./github-copilot-auth-B4_ACZo9.js";
81
- import "./onboard-channels-CCzlFse3.js";
78
+ import "./onboarding-DYhH6247.js";
79
+ import "./onboard-skills-9NTw2UQb.js";
80
+ import "./github-copilot-auth-Chy6C864.js";
81
+ import "./onboard-channels-Dwa2VDnr.js";
82
82
  import "./plugin-auto-enable-Cg3LRidd.js";
83
- import "./archive-PMxMPzgz.js";
83
+ import "./archive-CLP9ZNKN.js";
84
84
  import "./skill-scanner-CBHxr1An.js";
85
- import "./installs-I2cTEUw0.js";
86
- import "./health-format-Dawo2k_L.js";
85
+ import "./installs-CX86qYwg.js";
86
+ import "./health-format-bz_y3Is4.js";
87
87
  import "./update-runner-odTAl-uh.js";
88
88
  import "./auth-Vh115fQN.js";
89
89
  import "./audit-BhMw948Z.js";
@@ -94,15 +94,15 @@ import "./systemd-BzTSelz8.js";
94
94
  import "./diagnostics-CFV2YxpG.js";
95
95
  import "./node-service-BzD7Bqwc.js";
96
96
  import "./channels-status-issues-BLygTpUh.js";
97
- import "./doctor-completion-8eroKxvz.js";
98
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-DKA3xq9X.js";
97
+ import "./doctor-completion-Cu2S0xEi.js";
98
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-C6ltYa9G.js";
99
99
  import "./gateway-rpc-CIxOsvvC.js";
100
100
  import "./help-format-BVBm9rU4.js";
101
101
  import "./admin-unlock-Dr4FqRVP.js";
102
- import "./koi-2V4YGRG5.js";
103
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CVtTkPO6.js";
102
+ import "./koi-OQR48eFq.js";
103
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BHK4iVLz.js";
104
104
  import "./control-ui-assets-B0N-n2rD.js";
105
- import "./configure-Bvkl46FH.js";
105
+ import "./configure-DCGwOsl5.js";
106
106
  import "./daemon-runtime-r19-i0S0.js";
107
107
  import "./systemd-linger-Be49_NdF.js";
108
108
  import "./widearea-dns-Bb9eE_C1.js";
@@ -111,8 +111,8 @@ import "./ensure-local-gateway-VbJtdpui.js";
111
111
  import "./login-C71-L2cR.js";
112
112
  import "./channel-auth-DrJ2FCUT.js";
113
113
  import "./auth-health-DX1wRWrd.js";
114
- import "./doctor-hOdaxJX-.js";
115
- import "./completion-cli-TWGBbOuJ.js";
114
+ import "./doctor-CD-WtrdU.js";
115
+ import "./completion-cli-DvQ9jyD4.js";
116
116
  import "./service-audit-C3mNLBya.js";
117
117
  import "./hooks-status-B0H9mn8K.js";
118
118
  import { r as emitCliBanner } from "./tui-C8LwqY_j.js";
@@ -169,7 +169,7 @@ async function runCli(argv = process$1.argv) {
169
169
  assertSupportedRuntime();
170
170
  if (await tryRouteCli(normalizedArgv)) return;
171
171
  enableConsoleCapture();
172
- const { buildProgram } = await import("./program-SC_74Kyf.js").then((n) => n.t);
172
+ const { buildProgram } = await import("./program-BwtRA2k1.js").then((n) => n.t);
173
173
  const program = buildProgram();
174
174
  installUnhandledRejectionHandler();
175
175
  process$1.on("uncaughtException", (error) => {
@@ -202,11 +202,11 @@ async function runCli(argv = process$1.argv) {
202
202
  }
203
203
  const primary = getPrimaryCommand(parseArgv);
204
204
  if (primary) {
205
- const { registerSubCliByName } = await import("./register.subclis-DKA3xq9X.js").then((n) => n.i);
205
+ const { registerSubCliByName } = await import("./register.subclis-C6ltYa9G.js").then((n) => n.i);
206
206
  await registerSubCliByName(program, primary);
207
207
  }
208
208
  if (!!primary && PLUGIN_CLI_COMMANDS.has(primary)) {
209
- const { registerPluginCliCommands } = await import("./cli-B8ggt6rj.js");
209
+ const { registerPluginCliCommands } = await import("./cli-DecDOPbA.js");
210
210
  const { loadConfig } = await import("./config-BFoj5wyy.js").then((n) => n.t);
211
211
  registerPluginCliCommands(program, loadConfig());
212
212
  }
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-VJ9hOBTv.js";
2
- import { E as loadSessionEntry, Gn as enqueueSystemEvent, at as requestHeartbeatNow } from "./reply-DkyVI8Bi.js";
2
+ import { E as loadSessionEntry, Gn as enqueueSystemEvent, at as requestHeartbeatNow } from "./reply-B3dci0a3.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import "./theme-C5EwWDWE.js";
@@ -68,8 +68,8 @@ import "./control-service-Bbl6R2bi.js";
68
68
  import "./restart-sentinel-Cu-Tbnik.js";
69
69
  import "./channel-selection-Cd-vguDM.js";
70
70
  import "./event-log-BJRHlOn8.js";
71
- import "./deps-Bj5gRQ0W.js";
72
- import { t as koiCommand } from "./koi-2V4YGRG5.js";
71
+ import "./deps-t5L-A83G.js";
72
+ import { t as koiCommand } from "./koi-OQR48eFq.js";
73
73
  import { t as formatForLog } from "./ws-log-C9-8BLr6.js";
74
74
  import { randomUUID } from "node:crypto";
75
75
 
@@ -1,4 +1,4 @@
1
- import { ct as loadSKYKOIPlugins } from "./reply-DkyVI8Bi.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-B3dci0a3.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-hATE68va.js";
3
3
  import { T as resolveDefaultKoiWorkspaceDir, l as resolveKoiWorkspaceDir, r as resolveDefaultKoiId } from "./koi-scope-7GA83nWp.js";
4
4
  import { o as loadConfig } from "./config-BFoj5wyy.js";
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath } from "./utils-D019Z2NU.js";
2
2
  import { n as discoverSKYKOIPlugins, r as loadPluginManifest } from "./manifest-registry-DEGu_o5t.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-I2cTEUw0.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-CX86qYwg.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-VJ9hOBTv.js";
2
- import "./reply-DkyVI8Bi.js";
2
+ import "./reply-B3dci0a3.js";
3
3
  import { s as defaultRuntime } from "./subsystem-hATE68va.js";
4
4
  import "./paths-VdmjGGyc.js";
5
5
  import { r as theme } from "./theme-C5EwWDWE.js";
@@ -69,16 +69,16 @@ import "./control-service-Bbl6R2bi.js";
69
69
  import { o as trimLogTail } from "./restart-sentinel-Cu-Tbnik.js";
70
70
  import "./channel-selection-Cd-vguDM.js";
71
71
  import "./event-log-BJRHlOn8.js";
72
- import "./deps-Bj5gRQ0W.js";
72
+ import "./deps-t5L-A83G.js";
73
73
  import "./tailscale-BO36kRfh.js";
74
74
  import { r as parseSemver } from "./runtime-guard-C80qkv4W.js";
75
75
  import "./logging-1Q_KlUsW.js";
76
76
  import "./note-DRoVRuAi.js";
77
77
  import "./plugin-auto-enable-Cg3LRidd.js";
78
- import "./archive-PMxMPzgz.js";
78
+ import "./archive-CLP9ZNKN.js";
79
79
  import "./skill-scanner-CBHxr1An.js";
80
- import "./installs-I2cTEUw0.js";
81
- import "./health-format-Dawo2k_L.js";
80
+ import "./installs-CX86qYwg.js";
81
+ import "./health-format-bz_y3Is4.js";
82
82
  import { _ as resolveEffectiveUpdateChannel, a as globalInstallArgs, c as compareSemverStrings, d as resolveNpmChannelTag, f as DEFAULT_GIT_CHANNEL, g as normalizeUpdateChannel, h as formatUpdateChannelLabel, i as detectGlobalInstallManagerForRoot, m as channelToNpmTag, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as DEFAULT_PACKAGE_CHANNEL, r as detectGlobalInstallManagerByPresence, s as checkUpdateStatus, t as runGatewayUpdate, u as fetchNpmTagVersion } from "./update-runner-odTAl-uh.js";
83
83
  import "./auth-Vh115fQN.js";
84
84
  import { t as renderTable } from "./table-B3RHVa0g.js";
@@ -87,19 +87,19 @@ import "./service-BGkVTESM.js";
87
87
  import "./systemd-BzTSelz8.js";
88
88
  import "./diagnostics-CFV2YxpG.js";
89
89
  import "./channels-status-issues-BLygTpUh.js";
90
- import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-8eroKxvz.js";
91
- import "./register.subclis-DKA3xq9X.js";
90
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-Cu2S0xEi.js";
91
+ import "./register.subclis-C6ltYa9G.js";
92
92
  import { t as formatHelpExamples } from "./help-format-BVBm9rU4.js";
93
93
  import "./control-ui-assets-B0N-n2rD.js";
94
94
  import "./daemon-runtime-r19-i0S0.js";
95
95
  import "./systemd-linger-Be49_NdF.js";
96
96
  import "./auth-health-DX1wRWrd.js";
97
- import { t as doctorCommand } from "./doctor-hOdaxJX-.js";
98
- import { r as installCompletion } from "./completion-cli-TWGBbOuJ.js";
97
+ import { t as doctorCommand } from "./doctor-CD-WtrdU.js";
98
+ import { r as installCompletion } from "./completion-cli-DvQ9jyD4.js";
99
99
  import "./service-audit-C3mNLBya.js";
100
100
  import "./shared-BJlh4CKo.js";
101
- import { r as runDaemonRestart } from "./daemon-cli-B-2BOusp.js";
102
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-B5paR6YI.js";
101
+ import { r as runDaemonRestart } from "./daemon-cli-CQVrLqqK.js";
102
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-B77bDb9t.js";
103
103
  import path from "node:path";
104
104
  import os from "node:os";
105
105
  import fs from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.376",
3
+ "version": "2026.3.377",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",