skykoi 2026.3.374 → 2026.3.375

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 (42) hide show
  1. package/dist/{archive-B3eMefRa.js → archive-DzmUNaKN.js} +1 -1
  2. package/dist/build-info.json +2 -2
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/{capture-service-c4LFLVLD.js → capture-service-oaa1iW7j.js} +1 -1
  5. package/dist/{channel-options-DAkRGG8X.js → channel-options-BlZbtbL7.js} +1 -1
  6. package/dist/{channels-cli-DbBQzBzA.js → channels-cli-B_Lh8ODQ.js} +6 -6
  7. package/dist/cli/daemon-cli.js +1 -1
  8. package/dist/{cli-Dnh2IunR.js → cli-ClApxD3K.js} +1 -1
  9. package/dist/{completion-cli-DeQHSQKl.js → completion-cli-8J33fDd7.js} +1 -1
  10. package/dist/{config-guard-r91G-rdb.js → config-guard-B1mY-RXe.js} +13 -13
  11. package/dist/{configure-D9DlCvVy.js → configure-CFbsPXeT.js} +3 -3
  12. package/dist/{daemon-cli-v5-R4zAv.js → daemon-cli-BmMuR5yY.js} +1 -1
  13. package/dist/{deps-C40AV7FF.js → deps-EK9M62oT.js} +1 -1
  14. package/dist/{doctor-1TF44mR_.js → doctor-D7c8avE3.js} +3 -3
  15. package/dist/{doctor-completion-ahDb_IAk.js → doctor-completion-D5Lj45k3.js} +1 -1
  16. package/dist/entry.js +1 -1
  17. package/dist/extension-api.js +1 -1
  18. package/dist/{gateway-cli-CIJ-Jgx4.js → gateway-cli-CzXTsFyS.js} +16 -16
  19. package/dist/{github-copilot-auth-CAM7sDl5.js → github-copilot-auth-oNUb3Awp.js} +1 -1
  20. package/dist/{health-format-1k8pCgq2.js → health-format-DjaMSGJd.js} +1 -1
  21. package/dist/{hooks-cli-qBcTlRwr.js → hooks-cli-CA_gQN_1.js} +3 -3
  22. package/dist/index.js +19 -19
  23. package/dist/{installs-BJYE96Lb.js → installs-kIVkUob2.js} +1 -1
  24. package/dist/{koi-BZaNuNu7.js → koi-4MJySF-c.js} +2 -2
  25. package/dist/{models-cli-CLwvmF5F.js → models-cli-OXkfW__i.js} +2 -2
  26. package/dist/{onboard-channels-BjveHxG_.js → onboard-channels-CAh6_wav.js} +2 -2
  27. package/dist/{onboard-skills-pW0A8mDR.js → onboard-skills-B8CXQM1s.js} +3 -3
  28. package/dist/{onboarding-DtFQKsiq.js → onboarding-BOPeS4_5.js} +6 -6
  29. package/dist/{plugin-registry-Ck8UGGLF.js → plugin-registry-sX_mLb06.js} +1 -1
  30. package/dist/plugin-sdk/index.js +5 -5
  31. package/dist/plugin-sdk/{pi-model-discovery-szlzYGsC.js → pi-model-discovery-CBWcyyqn.js} +3 -3
  32. package/dist/{plugins-cli-BmnU4zO0.js → plugins-cli-Dc_566Ps.js} +5 -5
  33. package/dist/{proactive-eval-tdXZlkTF.js → proactive-eval-Ci1O0vVL.js} +55 -42
  34. package/dist/{program-BzgFh3Jk.js → program-D2qrmPi-.js} +4 -4
  35. package/dist/{register.subclis-C25mLHRU.js → register.subclis-TVuEtfEL.js} +10 -10
  36. package/dist/{reply-BZDAeRWS.js → reply-TR5Udnfb.js} +1 -1
  37. package/dist/{run-main-C0vdUtdQ.js → run-main-BykhlL-f.js} +20 -20
  38. package/dist/{server-node-events-WMJod-Kq.js → server-node-events-6cbIufGb.js} +3 -3
  39. package/dist/{status-TNpgkQma.js → status-BHZ2cWnD.js} +1 -1
  40. package/dist/{update-JQD9EQfX.js → update-ZN2LWEvT.js} +1 -1
  41. package/dist/{update-cli-DJvQzPMV.js → update-cli-C79j0FOh.js} +11 -11
  42. 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-BZDAeRWS.js";
2
+ import { mt as require_inherits } from "./reply-TR5Udnfb.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.374",
2
+ "version": "2026.3.375",
3
3
  "commit": "4bd60b7c1b294bb24b257d2f381ec929031df39c",
4
- "builtAt": "2026-06-25T19:15:29.564Z"
4
+ "builtAt": "2026-06-25T19:26:06.110Z"
5
5
  }
@@ -1 +1 @@
1
- 4454242969ea3dda6b91dc838452afac20837a61a0ded3f366d2c6668cf546d4
1
+ b98b380e4ec2d697bb84b6c06afa96fcd8621f5b1c74574d49102b78551d64d9
@@ -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-tdXZlkTF.js");
2054
+ const { startProactiveEval } = await import("./proactive-eval-Ci1O0vVL.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-Ck8UGGLF.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-sX_mLb06.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-BMPkPwKV.js";
2
- import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-BZDAeRWS.js";
2
+ import { Gt as parseDiscordTarget, Kt as fetchChannelPermissionsDiscord, in as createSlackWebClient, lt as loadProviderUsageSummary, ut as formatUsageReportLines } from "./reply-TR5Udnfb.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-BjveHxG_.js";
76
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CAh6_wav.js";
77
77
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-Cg3LRidd.js";
78
- import "./archive-B3eMefRa.js";
78
+ import "./archive-DzmUNaKN.js";
79
79
  import "./skill-scanner-CBHxr1An.js";
80
- import "./installs-BJYE96Lb.js";
80
+ import "./installs-kIVkUob2.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-Ck8UGGLF.js";
85
+ import { n as hasExplicitOptions } from "./plugin-registry-sX_mLb06.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-Bu3z5Shg.js";
89
- import { t as formatCliChannelOptions } from "./channel-options-DAkRGG8X.js";
89
+ import { t as formatCliChannelOptions } from "./channel-options-BlZbtbL7.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-v5-R4zAv.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-BmMuR5yY.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BMPkPwKV.js";
2
- import { ct as loadSKYKOIPlugins } from "./reply-BZDAeRWS.js";
2
+ import { ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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-C25mLHRU.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-TVuEtfEL.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-BZDAeRWS.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-TR5Udnfb.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-C40AV7FF.js";
24
+ import { t as createDefaultDeps } from "./deps-EK9M62oT.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-DtFQKsiq.js";
31
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-pW0A8mDR.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-CAM7sDl5.js";
33
- import { n as setupChannels } from "./onboard-channels-BjveHxG_.js";
34
- import { i as healthCommand } from "./health-format-1k8pCgq2.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-BOPeS4_5.js";
31
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-B8CXQM1s.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-oNUb3Awp.js";
33
+ import { n as setupChannels } from "./onboard-channels-CAh6_wav.js";
34
+ import { i as healthCommand } from "./health-format-DjaMSGJd.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-C25mLHRU.js";
38
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-TVuEtfEL.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-BZaNuNu7.js";
43
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-Ck8UGGLF.js";
42
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-4MJySF-c.js";
43
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-sX_mLb06.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-D9DlCvVy.js";
45
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-CFbsPXeT.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-Cjb8NlG3.js";
49
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-1TF44mR_.js";
49
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-D7c8avE3.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-D9DlCvVy.js").then((n) => n.t);
2800
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-CFbsPXeT.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-pW0A8mDR.js";
18
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-BjveHxG_.js";
19
- import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-1k8pCgq2.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-B8CXQM1s.js";
18
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-CAh6_wav.js";
19
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-DjaMSGJd.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-C40AV7FF.js";
18
+ import { t as createDefaultDeps } from "./deps-EK9M62oT.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-BZDAeRWS.js";
1
+ import { Ht as sendMessageTelegram, Ut as sendMessageDiscord, ht as sendMessageIMessage, nn as sendMessageWhatsApp, rn as sendMessageSlack } from "./reply-TR5Udnfb.js";
2
2
  import { b as sendMessageSignal } from "./deliver-DOHMG5Rz.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-BZDAeRWS.js";
1
+ import { Jn as loadModelCatalog, ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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-1k8pCgq2.js";
29
+ import { i as healthCommand, t as formatHealthCheckFailure } from "./health-format-DjaMSGJd.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-zrpOQ6N9.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-ahDb_IAk.js";
37
+ import { n as doctorShellCompletion } from "./doctor-completion-D5Lj45k3.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-DeQHSQKl.js";
6
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-8J33fDd7.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-C0vdUtdQ.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
250
+ import("./run-main-BykhlL-f.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-BMPkPwKV.js";
2
- import { c as runEmbeddedPiKoi, lr as resolveKoiTimeoutMs, sn as resolveKoiIdentity } from "./reply-BZDAeRWS.js";
2
+ import { c as runEmbeddedPiKoi, lr as resolveKoiTimeoutMs, sn as resolveKoiIdentity } from "./reply-TR5Udnfb.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-BMPkPwKV.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-BZDAeRWS.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-TR5Udnfb.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-C40AV7FF.js";
82
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-EK9M62oT.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-DtFQKsiq.js";
91
- import { n as installSkill } from "./onboard-skills-pW0A8mDR.js";
92
- import "./github-copilot-auth-CAM7sDl5.js";
93
- import "./onboard-channels-BjveHxG_.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-BOPeS4_5.js";
91
+ import { n as installSkill } from "./onboard-skills-B8CXQM1s.js";
92
+ import "./github-copilot-auth-oNUb3Awp.js";
93
+ import "./onboard-channels-CAh6_wav.js";
94
94
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-Cg3LRidd.js";
95
- import "./archive-B3eMefRa.js";
95
+ import "./archive-DzmUNaKN.js";
96
96
  import "./skill-scanner-CBHxr1An.js";
97
- import "./installs-BJYE96Lb.js";
98
- import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-1k8pCgq2.js";
97
+ import "./installs-kIVkUob2.js";
98
+ import { c as startHeartbeatRunner, n as formatHealthChannelLines, o as runHeartbeatOnce, r as getHealthSnapshot, s as setHeartbeatsEnabled } from "./health-format-DjaMSGJd.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--3nZ378U.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-ahDb_IAk.js";
110
- import "./register.subclis-C25mLHRU.js";
111
- import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-BZaNuNu7.js";
109
+ import "./doctor-completion-D5Lj45k3.js";
110
+ import "./register.subclis-TVuEtfEL.js";
111
+ import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-4MJySF-c.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-DeQHSQKl.js";
117
+ import "./completion-cli-8J33fDd7.js";
118
118
  import "./service-audit-C3mNLBya.js";
119
119
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-BDYS1g53.js";
120
120
  import "./tui-BJ7QDpZm.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-v5-R4zAv.js";
123
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-BmMuR5yY.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-B6W2qrNw.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-WMJod-Kq.js");
12027
+ const { handleNodeEvent } = await import("./server-node-events-6cbIufGb.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-c4LFLVLD.js");
21090
+ const { startCaptureService } = await import("./capture-service-oaa1iW7j.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-BZDAeRWS.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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-BZDAeRWS.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-TR5Udnfb.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-BMPkPwKV.js";
2
- import "./reply-BZDAeRWS.js";
2
+ import "./reply-TR5Udnfb.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-B3eMefRa.js";
71
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-DzmUNaKN.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-BDYS1g53.js";
74
- import { t as buildPluginStatusReport } from "./status-TNpgkQma.js";
74
+ import { t as buildPluginStatusReport } from "./status-BHZ2cWnD.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-BMPkPwKV.js";
3
- import { At as monitorWebChannel, Ft as waitForever, Nt as installUnhandledRejectionHandler, cr as applyTemplate, t as getReplyFromConfig } from "./reply-BZDAeRWS.js";
3
+ import { At as monitorWebChannel, Ft as waitForever, Nt as installUnhandledRejectionHandler, cr as applyTemplate, t as getReplyFromConfig } from "./reply-TR5Udnfb.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-C40AV7FF.js";
71
+ import { t as createDefaultDeps } from "./deps-EK9M62oT.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-r91G-rdb.js";
77
+ import "./config-guard-B1mY-RXe.js";
78
78
  import "./logging-1Q_KlUsW.js";
79
79
  import "./note-DRoVRuAi.js";
80
80
  import "./clack-prompter-B9o3eQeW.js";
81
- import "./onboarding-DtFQKsiq.js";
82
- import "./onboard-skills-pW0A8mDR.js";
83
- import "./github-copilot-auth-CAM7sDl5.js";
84
- import "./onboard-channels-BjveHxG_.js";
81
+ import "./onboarding-BOPeS4_5.js";
82
+ import "./onboard-skills-B8CXQM1s.js";
83
+ import "./github-copilot-auth-oNUb3Awp.js";
84
+ import "./onboard-channels-CAh6_wav.js";
85
85
  import "./plugin-auto-enable-Cg3LRidd.js";
86
- import "./archive-B3eMefRa.js";
86
+ import "./archive-DzmUNaKN.js";
87
87
  import "./skill-scanner-CBHxr1An.js";
88
- import "./installs-BJYE96Lb.js";
89
- import "./health-format-1k8pCgq2.js";
88
+ import "./installs-kIVkUob2.js";
89
+ import "./health-format-DjaMSGJd.js";
90
90
  import "./update-runner-odTAl-uh.js";
91
91
  import "./auth-Vh115fQN.js";
92
92
  import "./audit--3nZ378U.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-ahDb_IAk.js";
101
- import "./register.subclis-C25mLHRU.js";
100
+ import "./doctor-completion-D5Lj45k3.js";
101
+ import "./register.subclis-TVuEtfEL.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-BZaNuNu7.js";
106
- import "./plugin-registry-Ck8UGGLF.js";
105
+ import "./koi-4MJySF-c.js";
106
+ import "./plugin-registry-sX_mLb06.js";
107
107
  import "./control-ui-assets-B0N-n2rD.js";
108
- import "./configure-D9DlCvVy.js";
108
+ import "./configure-CFbsPXeT.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-Cjb8NlG3.js";
115
115
  import "./channel-auth-Bu3z5Shg.js";
116
116
  import "./auth-health-DX1wRWrd.js";
117
- import "./doctor-1TF44mR_.js";
118
- import "./completion-cli-DeQHSQKl.js";
117
+ import "./doctor-D7c8avE3.js";
118
+ import "./completion-cli-8J33fDd7.js";
119
119
  import "./service-audit-C3mNLBya.js";
120
120
  import "./hooks-status-BDYS1g53.js";
121
121
  import "./tui-BJ7QDpZm.js";
122
- import "./channel-options-DAkRGG8X.js";
123
- import { n as buildProgram } from "./program-BzgFh3Jk.js";
122
+ import "./channel-options-BlZbtbL7.js";
123
+ import { n as buildProgram } from "./program-D2qrmPi-.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-B3eMefRa.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-DzmUNaKN.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-BMPkPwKV.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-BZDAeRWS.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-TR5Udnfb.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-C-Jhw-K2.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-C40AV7FF.js";
17
+ import { t as createDefaultDeps } from "./deps-EK9M62oT.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-BMPkPwKV.js";
2
- import { Jn as loadModelCatalog, U as describeFailoverError, c as runEmbeddedPiKoi, dt as formatUsageWindowSummary, ft as resolveUsageProviderId, lt as loadProviderUsageSummary } from "./reply-BZDAeRWS.js";
2
+ import { Jn as loadModelCatalog, U as describeFailoverError, c as runEmbeddedPiKoi, dt as formatUsageWindowSummary, ft as resolveUsageProviderId, lt as loadProviderUsageSummary } from "./reply-TR5Udnfb.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-CAM7sDl5.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-oNUb3Awp.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-BZDAeRWS.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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-BJYE96Lb.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-kIVkUob2.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-BZDAeRWS.js";
1
+ import { Jn as loadModelCatalog } from "./reply-TR5Udnfb.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-DOHMG5Rz.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-CAM7sDl5.js";
12
- import { a as enablePluginInConfig } from "./onboard-channels-BjveHxG_.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-oNUb3Awp.js";
12
+ import { a as enablePluginInConfig } from "./onboard-channels-CAh6_wav.js";
13
13
  import { t as scanDirectoryWithSummary } from "./skill-scanner-CBHxr1An.js";
14
14
  import { t as buildWorkspaceSkillStatus } from "./skills-status-zrpOQ6N9.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-BZDAeRWS.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-TR5Udnfb.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-pW0A8mDR.js";
28
- import { n as setupChannels } from "./onboard-channels-BjveHxG_.js";
29
- import { a as resolveHeartbeatSummaryForKoi, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-1k8pCgq2.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-B8CXQM1s.js";
28
+ import { n as setupChannels } from "./onboard-channels-CAh6_wav.js";
29
+ import { a as resolveHeartbeatSummaryForKoi, i as healthCommand, n as formatHealthChannelLines, t as formatHealthCheckFailure } from "./health-format-DjaMSGJd.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--3nZ378U.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-ahDb_IAk.js";
40
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, o as getUpdateCheckResult, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-D5Lj45k3.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-DeQHSQKl.js";
43
+ import { r as installCompletion } from "./completion-cli-8J33fDd7.js";
44
44
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BDYS1g53.js";
45
45
  import { t as runTui } from "./tui-BJ7QDpZm.js";
46
46
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { ct as loadSKYKOIPlugins } from "./reply-BZDAeRWS.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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";
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-szlzYGsC.js";
2
+ import { a as require_jws, i as require_dist_cjs$1, n as LRUCache$1, o as require_safe_buffer, r as getOAuthProviders, s as getEnvApiKey } from "./pi-model-discovery-CBWcyyqn.js";
3
3
  import { t as require_dist_cjs$2 } from "./dist-cjs-B9iGzXDA.js";
4
4
  import { C as require_dist_cjs$3, E as init_dist_es$1, M as require_dist_cjs$13, N as require_dist_cjs$12, T as dist_es_exports$1, a as require_dist_cjs$5, c as require_dist_cjs$17, d as require_dist_cjs$15, f as dist_es_exports, h as protocols_exports, i as require_dist_cjs$7, j as require_dist_cjs$14, l as require_dist_cjs$16, m as init_protocols, n as require_dist_cjs$10, o as require_dist_cjs$8, p as init_dist_es, r as require_dist_cjs$9, s as require_dist_cjs$11, t as require_dist_cjs$18, u as require_dist_cjs$6, w as require_dist_cjs$4 } from "./dist-cjs-Cpdu8jQP.js";
5
5
  import { C as schema_exports, N as require_dist_cjs$21, P as require_dist_cjs$19, S as init_schema, t as require_dist_cjs$20 } from "./dist-cjs-BVSr8ctW.js";
@@ -42,7 +42,7 @@ import { mkdir, readFile, stat as stat$1, unlink, writeFile } from "fs/promises"
42
42
  import { Readable as Readable$1 } from "node:stream";
43
43
  import { pipeline as pipeline$1 } from "node:stream/promises";
44
44
  import WebSocket, { WebSocket as WebSocket$1 } from "ws";
45
- import AjvPkg from "ajv";
45
+ import AjvModule from "ajv";
46
46
  import lockfile from "proper-lockfile";
47
47
  import { URL as URL$1 } from "url";
48
48
  import "yaml";
@@ -20541,7 +20541,7 @@ function loadPluginManifestRegistry(params) {
20541
20541
 
20542
20542
  //#endregion
20543
20543
  //#region src/plugins/schema-validator.ts
20544
- const ajv$1 = new AjvPkg({
20544
+ const ajv$1 = new AjvModule({
20545
20545
  allErrors: true,
20546
20546
  strict: false,
20547
20547
  removeAdditional: false
@@ -48187,7 +48187,7 @@ const PROTOCOL_VERSION = 3;
48187
48187
 
48188
48188
  //#endregion
48189
48189
  //#region src/gateway/protocol/index.ts
48190
- const ajv = new AjvPkg({
48190
+ const ajv = new AjvModule({
48191
48191
  allErrors: true,
48192
48192
  strict: false,
48193
48193
  removeAdditional: false
@@ -68060,7 +68060,7 @@ function enqueueSystemEvent(text, options) {
68060
68060
  const MODEL_CACHE = /* @__PURE__ */ new Map();
68061
68061
  (async () => {
68062
68062
  try {
68063
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-szlzYGsC.js").then((n) => n.t);
68063
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-CBWcyyqn.js").then((n) => n.t);
68064
68064
  await ensureSKYKOIModelsJson(loadConfig());
68065
68065
  const koiDir = resolveSKYKOIKoiDir();
68066
68066
  const models = discoverModels(discoverAuthStorage(koiDir), koiDir).getAll();
@@ -34,7 +34,7 @@ import { access, mkdir, readFile, stat as stat$1, writeFile } from "fs/promises"
34
34
  import Stream, { Readable as Readable$1 } from "node:stream";
35
35
  import { finished } from "node:stream/promises";
36
36
  import * as NodeWs from "ws";
37
- import AjvPkg from "ajv";
37
+ import AjvModule from "ajv";
38
38
  import lockfile from "proper-lockfile";
39
39
  import { fileURLToPath as fileURLToPath$1 } from "url";
40
40
  import { TypeCompiler } from "@sinclair/typebox/compiler";
@@ -59699,7 +59699,7 @@ var require_dist$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
59699
59699
  //#endregion
59700
59700
  //#region node_modules/.pnpm/@mariozechner+pi-ai@0.52.8_ws@8.19.0_zod@4.3.6/node_modules/@mariozechner/pi-ai/dist/utils/validation.js
59701
59701
  var import_dist$1 = /* @__PURE__ */ __toESM(require_dist$1(), 1);
59702
- const Ajv$1 = AjvPkg.default || AjvPkg;
59702
+ const Ajv$1 = AjvModule.default || AjvModule;
59703
59703
  const addFormats = import_dist$1.default.default || import_dist$1.default;
59704
59704
  const isBrowserExtension = typeof globalThis !== "undefined" && globalThis.chrome?.runtime?.id !== void 0;
59705
59705
  let ajv = null;
@@ -174026,7 +174026,7 @@ var AuthStorage = class {
174026
174026
  /**
174027
174027
  * Model registry - manages built-in and custom models, provides API key resolution.
174028
174028
  */
174029
- const Ajv = AjvPkg.default || AjvPkg;
174029
+ const Ajv = AjvModule.default || AjvModule;
174030
174030
  const OpenRouterRoutingSchema = Type.Object({
174031
174031
  only: Type.Optional(Type.Array(Type.String())),
174032
174032
  order: Type.Optional(Type.Array(Type.String()))
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-BMPkPwKV.js";
2
- import "./reply-BZDAeRWS.js";
2
+ import "./reply-TR5Udnfb.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-B3eMefRa.js";
70
+ import { i as resolveArchiveKind } from "./archive-DzmUNaKN.js";
71
71
  import "./skill-scanner-CBHxr1An.js";
72
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BJYE96Lb.js";
72
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-kIVkUob2.js";
73
73
  import { t as renderTable } from "./table-B3RHVa0g.js";
74
- import { t as buildPluginStatusReport } from "./status-TNpgkQma.js";
75
- import { n as updateNpmInstalledPlugins } from "./update-JQD9EQfX.js";
74
+ import { t as buildPluginStatusReport } from "./status-BHZ2cWnD.js";
75
+ import { n as updateNpmInstalledPlugins } from "./update-ZN2LWEvT.js";
76
76
  import fs from "node:fs";
77
77
  import path from "node:path";
78
78
 
@@ -21,7 +21,7 @@ import "./device-identity-BZ8FfIMK.js";
21
21
  import "./client-QUeLEngh.js";
22
22
  import { n as callGateway } from "./call-C9iXIbXI.js";
23
23
  import { r as getAllEvents } from "./capture-store-CW4hVLPX.js";
24
- import { closeSync, existsSync, openSync, readFileSync, readSync, statSync } from "node:fs";
24
+ import { closeSync, existsSync, openSync, readFileSync, readSync, readdirSync, statSync } from "node:fs";
25
25
  import { join } from "node:path";
26
26
  import { homedir } from "node:os";
27
27
 
@@ -38,35 +38,40 @@ import { homedir } from "node:os";
38
38
  * working on, what's coming up).
39
39
  */
40
40
  const log = createSubsystemLogger("proactive");
41
- const GROQ_URL = "https://api.groq.com/openai/v1/chat/completions";
42
- const GROQ_MODEL = "llama-4-scout-17b-16e-instruct";
43
- const EVAL_TIMEOUT_MS = 8e3;
41
+ const ANTHROPIC_URL = "https://api.anthropic.com/v1/messages";
42
+ const ANTHROPIC_MODEL = "claude-sonnet-4-6";
43
+ const EVAL_TIMEOUT_MS = 15e3;
44
44
  const MIN_NOTIFY_INTERVAL_MS = 3e4;
45
45
  const MIN_EVAL_INTERVAL_MS = 5e3;
46
46
  let lastNotifyTs = 0;
47
47
  let lastEvalTs = 0;
48
48
  let lastEvalEventCount = 0;
49
49
  let pendingTriggers = [];
50
- function loadDossier() {
50
+ function loadFullContext() {
51
51
  const wsDir = join(homedir(), ".skykoi", "workspace");
52
52
  const parts = [];
53
53
  const userMd = join(wsDir, "USER.md");
54
54
  if (existsSync(userMd)) try {
55
- const content = readFileSync(userMd, "utf8").slice(0, 3e3);
56
- parts.push(content);
55
+ parts.push("## User Dossier (USER.md)\n" + readFileSync(userMd, "utf8").slice(0, 8e3));
57
56
  } catch {}
58
57
  const profileJson = join(wsDir, "profile.json");
59
58
  if (existsSync(profileJson)) try {
60
59
  const raw = JSON.parse(readFileSync(profileJson, "utf8"));
61
- const people = raw.people?.map((p) => ({
62
- name: p.name,
63
- relationship: p.relationship,
64
- channels: p.channels
65
- }));
66
- if (people?.length) parts.push("People:\n" + JSON.stringify(people, null, 1));
67
- if (raw.identity) parts.push("Identity: " + JSON.stringify(raw.identity, null, 1));
60
+ const clean = JSON.parse(JSON.stringify(raw, (k, v) => k === "avatar" && typeof v === "string" && v.length > 200 ? "[avatar]" : v));
61
+ parts.push("## User Profile (profile.json)\n" + JSON.stringify(clean, null, 1));
68
62
  } catch {}
69
- return parts.join("\n\n") || "No dossier available.";
63
+ const memDir = join(wsDir, "memory");
64
+ if (existsSync(memDir)) try {
65
+ const files = readdirSync(memDir);
66
+ for (const f of files.slice(0, 10)) {
67
+ if (!f.endsWith(".md")) continue;
68
+ try {
69
+ const content = readFileSync(join(memDir, f), "utf8").slice(0, 1e3);
70
+ parts.push(`## Memory: ${f}\n${content}`);
71
+ } catch {}
72
+ }
73
+ } catch {}
74
+ return parts.join("\n\n") || "No context available.";
70
75
  }
71
76
  function isTriggerEvent(event) {
72
77
  const type = event.data?.type;
@@ -94,49 +99,57 @@ function formatTriggersForEval(triggers) {
94
99
  return lines.join("\n");
95
100
  }
96
101
  async function evaluateTriggers(triggers) {
97
- const key = resolveEnvApiKey("groq")?.apiKey;
102
+ const key = resolveEnvApiKey("anthropic")?.apiKey;
98
103
  if (!key) return {
99
104
  shouldNotify: false,
100
- reason: "no groq key"
105
+ reason: "no anthropic key"
101
106
  };
102
- const dossier = loadDossier();
107
+ const fullContext = loadFullContext();
103
108
  const triggerText = formatTriggersForEval(triggers);
104
- const systemPrompt = `You are a proactive notification filter for a personal AI assistant (a "koi"). Your job is to decide whether an incoming event is important enough to interrupt the user RIGHT NOW.
109
+ const systemPrompt = `You are the user's koi their personal AI assistant that runs on their own device. You have full context about who they are, what they're working on, who matters to them, and what's happening on their device right now.
110
+
111
+ Your job RIGHT NOW is to decide whether the incoming event(s) below are important enough to proactively message the user. You are their chief of staff — you only tap their shoulder when it genuinely matters.
112
+
113
+ ${fullContext}
114
+
115
+ ## Decision rules
116
+
117
+ NOTIFY when:
118
+ - A message arrives from someone important to the user (co-founder, girlfriend, family, close friends, key clients) about something real or actionable
119
+ - A meeting is starting in <5 minutes — especially if it requires prep
120
+ - A meeting just ended and you captured audio — offer to summarize
121
+ - The user just woke up / unlocked after a long absence and there are pending important messages to catch them up on
122
+ - Someone assigned the user a task or said their name in a meeting/call (from audio transcription)
123
+ - An email arrives that needs action soon from a VIP
124
+
125
+ DO NOT NOTIFY when:
126
+ - Routine/filler messages ("ok", "👍", "lol", "sounds good") from anyone
127
+ - Messages from unknown numbers or automated services
128
+ - Marketing, newsletters, receipts, spam
129
+ - System events that don't need the user's attention
130
+ - Anything you're not sure about — when in doubt, stay quiet
105
131
 
106
- The user's context:
107
- ${dossier}
132
+ ## Response format
108
133
 
109
- RULES:
110
- - Only notify for things that ACTUALLY MATTER to this specific user
111
- - Messages from close people (girlfriend, co-founder, family) about something real → notify
112
- - Messages from unknown numbers or spam → skip
113
- - Meeting starting in <5 min → notify
114
- - Meeting just ended (and was transcribed) → notify with summary
115
- - Wake/unlock after long absence + pending important messages → notify
116
- - Audio transcript where someone assigned the user a task or said their name → notify
117
- - Routine messages ("ok", "👍", "lol") from anyone → skip
118
- - Marketing, newsletters, automated messages → skip
119
- - If in doubt, DON'T notify. The user trusts you to filter noise.
134
+ Write your response as the koi speaking naturally to the user — short, warm, casual, like a sharp assistant who knows them well. Never mention the notification system, never say "I detected an event". Just give them the heads-up as if you're telling them in person.
120
135
 
121
136
  Respond with EXACTLY this JSON (no other text):
122
- {"notify": true/false, "message": "short natural heads-up in the koi's voice if notify=true, otherwise empty", "reason": "why you decided this"}`;
137
+ {"notify": true/false, "message": "your natural heads-up to the user if notify=true, otherwise empty string", "reason": "internal reason for your decision"}`;
123
138
  const controller = new AbortController();
124
139
  const timer = setTimeout(() => controller.abort(), EVAL_TIMEOUT_MS);
125
140
  try {
126
- const res = await fetch(GROQ_URL, {
141
+ const res = await fetch(ANTHROPIC_URL, {
127
142
  method: "POST",
128
143
  headers: {
129
144
  "content-type": "application/json",
130
- authorization: `Bearer ${key}`
145
+ "x-api-key": key,
146
+ "anthropic-version": "2023-06-01"
131
147
  },
132
148
  body: JSON.stringify({
133
- model: GROQ_MODEL,
134
- max_tokens: 200,
135
- temperature: .1,
149
+ model: ANTHROPIC_MODEL,
150
+ max_tokens: 300,
151
+ system: systemPrompt,
136
152
  messages: [{
137
- role: "system",
138
- content: systemPrompt
139
- }, {
140
153
  role: "user",
141
154
  content: `Events to evaluate:\n${triggerText}`
142
155
  }]
@@ -150,7 +163,7 @@ Respond with EXACTLY this JSON (no other text):
150
163
  reason: `http ${res.status}`
151
164
  };
152
165
  }
153
- const raw = (await res.json()).choices?.[0]?.message?.content?.trim();
166
+ const raw = (await res.json()).content?.find((b) => b.type === "text")?.text?.trim();
154
167
  if (!raw) return {
155
168
  shouldNotify: false,
156
169
  reason: "empty response"
@@ -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-r91G-rdb.js";
9
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-C25mLHRU.js";
10
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Ck8UGGLF.js";
8
+ import { i as registerProgramCommands, n as PLUGIN_CLI_COMMANDS, t as ensureConfigReady } from "./config-guard-B1mY-RXe.js";
9
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-TVuEtfEL.js";
10
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-sX_mLb06.js";
11
11
  import { a as hasEmittedCliBanner, i as formatCliBannerLine, r as emitCliBanner } from "./tui-BJ7QDpZm.js";
12
- import { n as resolveCliChannelOptions } from "./channel-options-DAkRGG8X.js";
12
+ import { n as resolveCliChannelOptions } from "./channel-options-BlZbtbL7.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-CIJ-Jgx4.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CzXTsFyS.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-v5-R4zAv.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-BmMuR5yY.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-CLwvmF5F.js")).registerModelsCli(program);
155
+ (await import("./models-cli-OXkfW__i.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-qBcTlRwr.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-CA_gQN_1.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-Dnh2IunR.js");
239
+ const { registerPluginCliCommands } = await import("./cli-ClApxD3K.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-BmnU4zO0.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-Dnh2IunR.js");
248
+ (await import("./plugins-cli-Dc_566Ps.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-ClApxD3K.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-DbBQzBzA.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-B_Lh8ODQ.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-DJvQzPMV.js")).registerUpdateCli(program);
299
+ (await import("./update-cli-C79j0FOh.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-DeQHSQKl.js").then((n) => n.n)).registerCompletionCli(program);
306
+ (await import("./completion-cli-8J33fDd7.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-c4LFLVLD.js");
165883
+ const { buildCaptureContextBlock } = await import("./capture-service-oaa1iW7j.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-BMPkPwKV.js";
2
- import { Nt as installUnhandledRejectionHandler } from "./reply-BZDAeRWS.js";
2
+ import { Nt as installUnhandledRejectionHandler } from "./reply-TR5Udnfb.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-C40AV7FF.js";
70
+ import "./deps-EK9M62oT.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-r91G-rdb.js";
74
+ import { n as PLUGIN_CLI_COMMANDS, r as findRoutedCommand, t as ensureConfigReady } from "./config-guard-B1mY-RXe.js";
75
75
  import "./logging-1Q_KlUsW.js";
76
76
  import "./note-DRoVRuAi.js";
77
77
  import "./clack-prompter-B9o3eQeW.js";
78
- import "./onboarding-DtFQKsiq.js";
79
- import "./onboard-skills-pW0A8mDR.js";
80
- import "./github-copilot-auth-CAM7sDl5.js";
81
- import "./onboard-channels-BjveHxG_.js";
78
+ import "./onboarding-BOPeS4_5.js";
79
+ import "./onboard-skills-B8CXQM1s.js";
80
+ import "./github-copilot-auth-oNUb3Awp.js";
81
+ import "./onboard-channels-CAh6_wav.js";
82
82
  import "./plugin-auto-enable-Cg3LRidd.js";
83
- import "./archive-B3eMefRa.js";
83
+ import "./archive-DzmUNaKN.js";
84
84
  import "./skill-scanner-CBHxr1An.js";
85
- import "./installs-BJYE96Lb.js";
86
- import "./health-format-1k8pCgq2.js";
85
+ import "./installs-kIVkUob2.js";
86
+ import "./health-format-DjaMSGJd.js";
87
87
  import "./update-runner-odTAl-uh.js";
88
88
  import "./auth-Vh115fQN.js";
89
89
  import "./audit--3nZ378U.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-ahDb_IAk.js";
98
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-C25mLHRU.js";
97
+ import "./doctor-completion-D5Lj45k3.js";
98
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-TVuEtfEL.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-BZaNuNu7.js";
103
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Ck8UGGLF.js";
102
+ import "./koi-4MJySF-c.js";
103
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-sX_mLb06.js";
104
104
  import "./control-ui-assets-B0N-n2rD.js";
105
- import "./configure-D9DlCvVy.js";
105
+ import "./configure-CFbsPXeT.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-Cjb8NlG3.js";
112
112
  import "./channel-auth-Bu3z5Shg.js";
113
113
  import "./auth-health-DX1wRWrd.js";
114
- import "./doctor-1TF44mR_.js";
115
- import "./completion-cli-DeQHSQKl.js";
114
+ import "./doctor-D7c8avE3.js";
115
+ import "./completion-cli-8J33fDd7.js";
116
116
  import "./service-audit-C3mNLBya.js";
117
117
  import "./hooks-status-BDYS1g53.js";
118
118
  import { r as emitCliBanner } from "./tui-BJ7QDpZm.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-BzgFh3Jk.js").then((n) => n.t);
172
+ const { buildProgram } = await import("./program-D2qrmPi-.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-C25mLHRU.js").then((n) => n.i);
205
+ const { registerSubCliByName } = await import("./register.subclis-TVuEtfEL.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-Dnh2IunR.js");
209
+ const { registerPluginCliCommands } = await import("./cli-ClApxD3K.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-BMPkPwKV.js";
2
- import { E as loadSessionEntry, Gn as enqueueSystemEvent, at as requestHeartbeatNow } from "./reply-BZDAeRWS.js";
2
+ import { E as loadSessionEntry, Gn as enqueueSystemEvent, at as requestHeartbeatNow } from "./reply-TR5Udnfb.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-C40AV7FF.js";
72
- import { t as koiCommand } from "./koi-BZaNuNu7.js";
71
+ import "./deps-EK9M62oT.js";
72
+ import { t as koiCommand } from "./koi-4MJySF-c.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-BZDAeRWS.js";
1
+ import { ct as loadSKYKOIPlugins } from "./reply-TR5Udnfb.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-BJYE96Lb.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-kIVkUob2.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-BMPkPwKV.js";
2
- import "./reply-BZDAeRWS.js";
2
+ import "./reply-TR5Udnfb.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-C40AV7FF.js";
72
+ import "./deps-EK9M62oT.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-B3eMefRa.js";
78
+ import "./archive-DzmUNaKN.js";
79
79
  import "./skill-scanner-CBHxr1An.js";
80
- import "./installs-BJYE96Lb.js";
81
- import "./health-format-1k8pCgq2.js";
80
+ import "./installs-kIVkUob2.js";
81
+ import "./health-format-DjaMSGJd.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-ahDb_IAk.js";
91
- import "./register.subclis-C25mLHRU.js";
90
+ import { a as formatUpdateOneLiner, i as formatUpdateAvailableHint, r as ensureCompletionCacheExists, s as resolveUpdateAvailability, t as checkShellCompletionStatus } from "./doctor-completion-D5Lj45k3.js";
91
+ import "./register.subclis-TVuEtfEL.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-1TF44mR_.js";
98
- import { r as installCompletion } from "./completion-cli-DeQHSQKl.js";
97
+ import { t as doctorCommand } from "./doctor-D7c8avE3.js";
98
+ import { r as installCompletion } from "./completion-cli-8J33fDd7.js";
99
99
  import "./service-audit-C3mNLBya.js";
100
100
  import "./shared-BJlh4CKo.js";
101
- import { r as runDaemonRestart } from "./daemon-cli-v5-R4zAv.js";
102
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-JQD9EQfX.js";
101
+ import { r as runDaemonRestart } from "./daemon-cli-BmMuR5yY.js";
102
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-ZN2LWEvT.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.374",
3
+ "version": "2026.3.375",
4
4
  "description": "SkyKoi — Koi runtime. Multi-channel gateway CLI with RPC Koi.",
5
5
  "keywords": [
6
6
  "cli",