skykoi 2026.3.111 → 2026.3.113

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 (39) hide show
  1. package/dist/{agent-Da5YOcs3.js → agent-W16M_JVV.js} +2 -2
  2. package/dist/{archive-CdIhvmdq.js → archive-BwcWGib9.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{channel-options-CkTlHlq7.js → channel-options-DFIv57w6.js} +1 -1
  6. package/dist/{channels-cli-B9v6Cz4b.js → channels-cli-Dy_YqO_G.js} +6 -6
  7. package/dist/cli/daemon-cli.js +1 -1
  8. package/dist/{cli-C0kcHMN5.js → cli-mjv2gAet.js} +1 -1
  9. package/dist/{completion-cli-4JYy7b35.js → completion-cli-DMRQpSpH.js} +1 -1
  10. package/dist/{config-guard-BXXiyeEb.js → config-guard-TIFy-6hy.js} +13 -13
  11. package/dist/{configure-C504luDs.js → configure-ShYwWLdM.js} +4 -4
  12. package/dist/{daemon-cli-DLtD4zDH.js → daemon-cli-Bw_dP53Z.js} +2 -2
  13. package/dist/{deps-C6KOAneQ.js → deps-DmfzhPN1.js} +1 -1
  14. package/dist/{doctor-BPESbchY.js → doctor-CO3PPV0J.js} +3 -3
  15. package/dist/entry.js +1 -1
  16. package/dist/extension-api.js +1 -1
  17. package/dist/{gateway-cli-D23A7b51.js → gateway-cli-CYSBA8bi.js} +15 -19
  18. package/dist/{github-copilot-auth-DzwNnQJj.js → github-copilot-auth-1Dk5IIXu.js} +1 -1
  19. package/dist/{health-format-6-sirUMO.js → health-format-CMb_0rCe.js} +1 -1
  20. package/dist/{hooks-cli-Bcd65fa3.js → hooks-cli-BUfz4vro.js} +3 -3
  21. package/dist/index.js +19 -19
  22. package/dist/{installs-BS8Q_aqJ.js → installs-qktJXsvc.js} +1 -1
  23. package/dist/{models-cli-BfHsXWsB.js → models-cli-DAxauNWO.js} +2 -2
  24. package/dist/{onboard-channels-B3o8UrpN.js → onboard-channels-DyMJgLeh.js} +2 -2
  25. package/dist/{onboard-skills-B7VesLf0.js → onboard-skills-BRB4QIGk.js} +3 -3
  26. package/dist/{onboarding-BYmhyyK0.js → onboarding-QQuNSzOR.js} +6 -6
  27. package/dist/{plugin-registry-C2pg1P8k.js → plugin-registry-DHffbSib.js} +1 -1
  28. package/dist/plugin-sdk/index.js +8 -8
  29. package/dist/{plugins-cli-yGYQtfgy.js → plugins-cli-yyXpMTwr.js} +5 -5
  30. package/dist/{program-Cn-IUods.js → program-DedxW59q.js} +4 -4
  31. package/dist/{register.subclis-BcEwwuzW.js → register.subclis-CcGbAbQ8.js} +10 -10
  32. package/dist/{reply-Bma2fIJw.js → reply-DSt9Rh5Y.js} +3 -6
  33. package/dist/{run-main-DKkktYVY.js → run-main-CYoYGNr_.js} +20 -20
  34. package/dist/{server-node-events-C550S2ce.js → server-node-events-8LwfRYhM.js} +3 -3
  35. package/dist/{status-DcXXRApT.js → status-C3EYTRuj.js} +1 -1
  36. package/dist/{update-pWQbZXY-.js → update-BK8LYpYE.js} +1 -1
  37. package/dist/{update-cli-D3ODTbqD.js → update-cli-vHmrovz_.js} +11 -11
  38. package/dist/{update-runner-7neXUX8D.js → update-runner-DNMaKyp1.js} +3 -3
  39. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { An as AGENT_LANE_NESTED, Cr as applyModelOverrideToSessionEntry, Fn as registerAgentRunContext, Gt as getRemoteSkillEligibility, H as runWithModelFallback, L as resolveOutboundTarget, Mn as emitAgentEvent, R as resolveSessionDeliveryTarget, Sr as clearSessionAuthProfileOverride, Wr as resolveAgentTimeoutMs, Zt as getSkillsSnapshotVersion, c as runEmbeddedPiAgent, i as runCliAgent, jn as clearAgentRunContext, kr as loadModelCatalog, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, wr as applyVerboseOverride, xr as lookupContextTokens } from "./reply-Bma2fIJw.js";
2
+ import { An as AGENT_LANE_NESTED, Cr as applyModelOverrideToSessionEntry, Fn as registerAgentRunContext, Gt as getRemoteSkillEligibility, H as runWithModelFallback, L as resolveOutboundTarget, Mn as emitAgentEvent, R as resolveSessionDeliveryTarget, Sr as clearSessionAuthProfileOverride, Wr as resolveAgentTimeoutMs, Zt as getSkillsSnapshotVersion, c as runEmbeddedPiAgent, i as runCliAgent, jn as clearAgentRunContext, kr as loadModelCatalog, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, wr as applyVerboseOverride, xr as lookupContextTokens } from "./reply-DSt9Rh5Y.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import { d as resolveAgentIdFromSessionKey, l as normalizeAgentId, u as normalizeMainKey } from "./session-key-hGS8_hRJ.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-DrL2uTp9.js";
@@ -13,7 +13,7 @@ import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatew
13
13
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-CAvRsPIf.js";
14
14
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-DDU96v2Z.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-CJ5Inqel.js";
16
- import { t as createDefaultDeps } from "./deps-C6KOAneQ.js";
16
+ import { t as createDefaultDeps } from "./deps-DmfzhPN1.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./chunk-D_gEzPfs.js";
2
- import { xt as require_inherits } from "./reply-Bma2fIJw.js";
2
+ import { xt as require_inherits } from "./reply-DSt9Rh5Y.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.111",
3
- "commit": "ed14c8f40880d71af80b7a6e4f44636fb2b40d3b",
4
- "builtAt": "2026-04-13T01:00:44.979Z"
2
+ "version": "2026.3.113",
3
+ "commit": "f94d65693a978eb9074a31151f758770cc58fab0",
4
+ "builtAt": "2026-04-13T01:29:59.379Z"
5
5
  }
@@ -1 +1 @@
1
- 683d72bada4262363630f6ea138be66d233ef64a178a4c4ed8322678c04d6cca
1
+ 1f0752e373dcfbd2cb492b34911737108086421520027a006ba731000b5e7d27
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-Dl1sS5S-.js";
2
2
  import { t as isTruthyEnvValue } from "./env-EjmWoVFM.js";
3
3
  import { n as listChannelPlugins } from "./plugins-CvpPbUcD.js";
4
4
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-ClD8Hu9T.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C2pg1P8k.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DHffbSib.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-D5gz7ahu.js";
2
- import { _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord, zn as createSlackWebClient } from "./reply-Bma2fIJw.js";
2
+ import { _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord, zn as createSlackWebClient } from "./reply-DSt9Rh5Y.js";
3
3
  import { N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, p as danger, y as setVerbose } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -60,14 +60,14 @@ import { n as resolveMessageChannelSelection } from "./channel-selection-BZvCBj3
60
60
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
61
61
  import "./note-ty8fydmp.js";
62
62
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
63
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-B3o8UrpN.js";
63
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-DyMJgLeh.js";
64
64
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-ClD8Hu9T.js";
65
- import "./archive-CdIhvmdq.js";
65
+ import "./archive-BwcWGib9.js";
66
66
  import "./skill-scanner-BapBkMb3.js";
67
- import "./installs-BS8Q_aqJ.js";
67
+ import "./installs-qktJXsvc.js";
68
68
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BaXwaWXv.js";
69
- import { n as hasExplicitOptions } from "./plugin-registry-C2pg1P8k.js";
70
- import { t as formatCliChannelOptions } from "./channel-options-CkTlHlq7.js";
69
+ import { n as hasExplicitOptions } from "./plugin-registry-DHffbSib.js";
70
+ import { t as formatCliChannelOptions } from "./channel-options-DFIv57w6.js";
71
71
  import { t as buildChannelAccountSnapshot } from "./status-DqH1H1Pt.js";
72
72
  import { t as parseLogLine } from "./parse-log-line-BjmXZSHU.js";
73
73
  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-DLtD4zDH.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-Bw_dP53Z.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { ht as loadSKYKOIPlugins } from "./reply-Bma2fIJw.js";
2
+ import { ht as loadSKYKOIPlugins } from "./reply-DSt9Rh5Y.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -1,6 +1,6 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
2
  import { g as resolveStateDir } from "./paths-DcA9-j8b.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-BcEwwuzW.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CcGbAbQ8.js";
4
4
  import path from "node:path";
5
5
  import os from "node:os";
6
6
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, xr as lookupContextTokens, z as formatTargetDisplay } from "./reply-Bma2fIJw.js";
1
+ import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, xr as lookupContextTokens, z as formatTargetDisplay } from "./reply-DSt9Rh5Y.js";
2
2
  import { B as normalizeChatChannelId, C as colorize, I as getChatChannelMeta, N as DEFAULT_CHAT_CHANNEL, T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, p as danger, w as isRich, y as setVerbose } from "./subsystem-Dl1sS5S-.js";
3
3
  import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
4
4
  import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -19,29 +19,29 @@ import { t as formatDocsLink } from "./links-yjT27ApF.js";
19
19
  import { n as runCommandWithRuntime } from "./cli-utils-CodyYLHe.js";
20
20
  import { n as withProgress } from "./progress-C_FQJYVr.js";
21
21
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-DjEIdF58.js";
22
- import { t as createDefaultDeps } from "./deps-C6KOAneQ.js";
22
+ import { t as createDefaultDeps } from "./deps-DmfzhPN1.js";
23
23
  import { a as gatewayInstallErrorHint, g as assertSupportedRuntime, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-vtoMFexx.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
25
25
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-B818ac7o.js";
26
26
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
27
27
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
28
- import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-BYmhyyK0.js";
29
- import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-B7VesLf0.js";
30
- import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-DzwNnQJj.js";
31
- import { n as setupChannels } from "./onboard-channels-B3o8UrpN.js";
32
- import { l as healthCommand } from "./health-format-6-sirUMO.js";
28
+ import { a as buildAgentSummaries, c as loadAgentIdentity, f as parseIdentityMarkdown, i as applyAgentConfig, l as pruneAgentConfig, n as statusCommand, o as findAgentEntryIndex, s as listAgentEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-QQuNSzOR.js";
29
+ import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-BRB4QIGk.js";
30
+ import { $ as setOpenrouterApiKey, C as applyMoonshotConfig, D as applyOpenrouterConfig, F as applyVercelAiGatewayConfig, J as setGeminiApiKey, K as setAnthropicApiKey, L as applyXaiConfig, N as applyVeniceConfig, Q as setOpencodeZenApiKey, V as applyZaiConfig, X as setMinimaxApiKey, Y as setKimiCodingApiKey, Z as setMoonshotApiKey, at as setXiaomiApiKey, et as setQianfanApiKey, f as applyOpencodeZenConfig, ft as buildTokenProfileId, g as applyMinimaxConfig, it as setXaiApiKey, j as applySyntheticConfig, k as applyQianfanConfig, m as applyMinimaxApiConfig, nt as setVeniceApiKey, ot as setZaiApiKey, pt as validateAnthropicSetupToken, q as setCloudflareAiGatewayConfig, rt as setVercelAiGatewayApiKey, tt as setSyntheticApiKey, v as applyAuthProfileConfig, w as applyMoonshotConfigCn, x as applyKimiCodeConfig, y as applyCloudflareAiGatewayConfig, z as applyXiaomiConfig } from "./github-copilot-auth-1Dk5IIXu.js";
31
+ import { n as setupChannels } from "./onboard-channels-DyMJgLeh.js";
32
+ import { l as healthCommand } from "./health-format-CMb_0rCe.js";
33
33
  import { t as renderTable } from "./table-BuHjFIeu.js";
34
34
  import { t as resolveGatewayService } from "./service-Fxlow9XO.js";
35
35
  import { r as isSystemdUserServiceAvailable } from "./systemd-BTcdURXT.js";
36
- import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-BcEwwuzW.js";
36
+ import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CcGbAbQ8.js";
37
37
  import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-D4VaaKAU.js";
38
38
  import { t as formatHelpExamples } from "./help-format-rUxU9jE_.js";
39
- import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-Da5YOcs3.js";
40
- import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-C2pg1P8k.js";
39
+ import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-W16M_JVV.js";
40
+ import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-DHffbSib.js";
41
41
  import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-xCg96Vkw.js";
42
- import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-C504luDs.js";
42
+ import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-ShYwWLdM.js";
43
43
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BSA8MnYc.js";
44
- import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-BPESbchY.js";
44
+ import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-CO3PPV0J.js";
45
45
  import { fileURLToPath } from "node:url";
46
46
  import fs from "node:fs";
47
47
  import path from "node:path";
@@ -2792,7 +2792,7 @@ async function loadValidConfig() {
2792
2792
  }
2793
2793
  function registerConfigCli(program) {
2794
2794
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.skykoi.com/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
2795
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-C504luDs.js").then((n) => n.t);
2795
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-ShYwWLdM.js").then((n) => n.t);
2796
2796
  const sections = Array.isArray(opts.section) ? opts.section.map((value) => typeof value === "string" ? value.trim() : "").filter(Boolean) : [];
2797
2797
  if (sections.length === 0) {
2798
2798
  await configureCommand(defaultRuntime);
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-Bma2fIJw.js";
2
+ import { Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Ft as probeGatewayReachable, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Pt as printWizardHeader, kt as guardCancel, wt as applyWizardMetadata, zt as summarizeExistingConfig } from "./reply-DSt9Rh5Y.js";
3
3
  import { c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-B818ac7o.js";
15
15
  import { t as note$1 } from "./note-ty8fydmp.js";
16
16
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
17
17
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
18
- import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-B7VesLf0.js";
19
- import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-B3o8UrpN.js";
20
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-6-sirUMO.js";
18
+ import { a as applyModelFallbacksFromSelection, c as promptModelAllowlist, d as applyAuthChoice, h as promptAuthChoiceGrouped, i as applyModelAllowlist, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills } from "./onboard-skills-BRB4QIGk.js";
19
+ import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-DyMJgLeh.js";
20
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-CMb_0rCe.js";
21
21
  import { t as resolveGatewayService } from "./service-Fxlow9XO.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BSA8MnYc.js";
23
23
  import { confirm, intro, outro, select, text } from "@clack/prompts";
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "./chunk-D_gEzPfs.js";
2
- import { Lt as resolveControlUiLinks } from "./reply-Bma2fIJw.js";
2
+ import { Lt as resolveControlUiLinks } from "./reply-DSt9Rh5Y.js";
3
3
  import { C as colorize, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, w as isRich } from "./subsystem-Dl1sS5S-.js";
4
4
  import { d as resolveIsNixMode, g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
5
5
  import { y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -14,7 +14,7 @@ import { n as callGateway } from "./call-DwOdrKsR.js";
14
14
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
15
15
  import { n as withProgress } from "./progress-C_FQJYVr.js";
16
16
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-CXZus5hc.js";
17
- import { t as createDefaultDeps } from "./deps-C6KOAneQ.js";
17
+ import { t as createDefaultDeps } from "./deps-DmfzhPN1.js";
18
18
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-vtoMFexx.js";
19
19
  import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Fxlow9XO.js";
20
20
  import { r as isSystemdUserServiceAvailable } from "./systemd-BTcdURXT.js";
@@ -1,4 +1,4 @@
1
- import { In as sendMessageWhatsApp, Rn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, vn as sendMessageDiscord } from "./reply-Bma2fIJw.js";
1
+ import { In as sendMessageWhatsApp, Rn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, vn as sendMessageDiscord } from "./reply-DSt9Rh5Y.js";
2
2
  import { b as sendMessageSignal } from "./deliver-DDU96v2Z.js";
3
3
 
4
4
  //#region src/cli/deps.ts
@@ -1,4 +1,4 @@
1
- import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kr as loadModelCatalog, kt as guardCancel, wt as applyWizardMetadata } from "./reply-Bma2fIJw.js";
1
+ import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kr as loadModelCatalog, kt as guardCancel, wt as applyWizardMetadata } from "./reply-DSt9Rh5Y.js";
2
2
  import { O as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-Dl1sS5S-.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-DcA9-j8b.js";
4
4
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
@@ -25,8 +25,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
25
25
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
26
26
  import { t as note$1 } from "./note-ty8fydmp.js";
27
27
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-ClD8Hu9T.js";
28
- import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-6-sirUMO.js";
29
- import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-7neXUX8D.js";
28
+ import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-CMb_0rCe.js";
29
+ import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-DNMaKyp1.js";
30
30
  import { i as resolveGatewayAuth } from "./auth-CMhFyIcG.js";
31
31
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BSS2etLw.js";
32
32
  import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-Fxlow9XO.js";
package/dist/entry.js CHANGED
@@ -244,7 +244,7 @@ if (!ensureExperimentalWarningSuppressed()) {
244
244
  applyCliProfileEnv({ profile: parsed.profile });
245
245
  process$1.argv = parsed.argv;
246
246
  }
247
- import("./run-main-DKkktYVY.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
247
+ import("./run-main-CYoYGNr_.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
248
248
  console.error("[SKYKOI] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
249
249
  process$1.exitCode = 1;
250
250
  });
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { Vn as resolveAgentIdentity, Wr as resolveAgentTimeoutMs, c as runEmbeddedPiAgent } from "./reply-Bma2fIJw.js";
2
+ import { Vn as resolveAgentIdentity, Wr as resolveAgentTimeoutMs, c as runEmbeddedPiAgent } from "./reply-DSt9Rh5Y.js";
3
3
  import "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "./chunk-D_gEzPfs.js";
2
2
  import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-D5gz7ahu.js";
3
- import { $ as summarizeRestartSentinel, $n as isTtsEnabled, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_FILE_MAX_BYTES, At as handleReset, B as resetDirectoryCache, Br as extractFileContentFromSource, C as loadSessionEntry, Cn as createReplyDispatcher, Cr as applyModelOverrideToSessionEntry, D as capArrayByJsonBytes, Dn as findSubagentRunByChildSessionKey, Dr as isSystemEventContextChanged, E as archiveFileOnDisk, En as stopSubagentsForRequester, Er as enqueueSystemEvent, Fn as registerAgentRunContext, Fr as DEFAULT_INPUT_MAX_REDIRECTS, G as consumeGatewaySigusr1RestartAuthorization, Gn as resolveUserTimezone, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hr as normalizeMimeList, Ht as buildControlUiAvatarUrl, Ir as DEFAULT_INPUT_PDF_MAX_PAGES, J as setGatewaySigusr1RestartPolicy, Jn as registerInternalHook, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as clearInternalHooks, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as normalizePollInput, Lr as DEFAULT_INPUT_PDF_MAX_PIXELS, Mn as emitAgentEvent, Mr as DEFAULT_INPUT_FILE_MIMES, N as ensureOutboundSessionEntry, Nn as getAgentRunContext, Nr as DEFAULT_INPUT_IMAGE_MAX_BYTES, O as readSessionMessages, On as findSubagentRunByRunId, P as resolveOutboundSessionRoute, Pn as onAgentEvent, Pr as DEFAULT_INPUT_IMAGE_MIMES, Qn as getTtsProvider, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as parseVerboseOverride, Un as formatUserTime, Ut as normalizeControlUiBasePath, Vn as resolveAgentIdentity, Vr as extractImageContentFromSource, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as resolveUserTimeFormat, Wr as resolveAgentTimeoutMs, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as OPENAI_TTS_MODELS, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as triggerInternalHook, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as OPENAI_TTS_VOICES, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, ar as resolveTtsProviderOrder, at as normalizeOptionalAgentId, b as listAgentsForGateway, br as stripHeartbeatToken, bt as handleSlackHttpRequest, c as runEmbeddedPiAgent, cr as textToSpeech, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as setCommandLaneConcurrency, en as detectSuspiciousPatterns, er as isTtsProviderConfigured, fn as resolveHeartbeatVisibility, fr as CommandLane, ft as requestHeartbeatNow, g as listCanvasUris, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as isDiagnosticsEnabled, ht as loadSKYKOIPlugins, i as runCliAgent, ir as resolveTtsPrefsPath, it as inferLegacyName, j as stripEnvelopeFromMessages, jn as clearAgentRunContext, jr as DEFAULT_INPUT_FILE_MAX_CHARS, k as readSessionPreviewItemsFromTranscript, kn as initSubagentRegistry, kr as loadModelCatalog, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mr as stopDiagnosticHeartbeat, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as resolveTtsAutoMode, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setTtsEnabled, ot as normalizeOptionalText, p as createSKYKOITools, pr as startDiagnosticHeartbeat, q as scheduleGatewaySigusr1Restart, qn as createInternalHookEvent, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as resolveTtsConfig, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as setTtsProvider, st as normalizePayloadToSystemText, tn as getHookType, tr as resolveTtsApiKey, tt as writeRestartSentinel, v as replaceCanvasResource, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as applyVerboseOverride, x as listSessionsFromStore, xr as lookupContextTokens, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, zr as DEFAULT_INPUT_TIMEOUT_MS } from "./reply-Bma2fIJw.js";
3
+ import { $ as summarizeRestartSentinel, $n as isTtsEnabled, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_FILE_MAX_BYTES, At as handleReset, B as resetDirectoryCache, Br as extractFileContentFromSource, C as loadSessionEntry, Cn as createReplyDispatcher, Cr as applyModelOverrideToSessionEntry, D as capArrayByJsonBytes, Dn as findSubagentRunByChildSessionKey, Dr as isSystemEventContextChanged, E as archiveFileOnDisk, En as stopSubagentsForRequester, Er as enqueueSystemEvent, Fn as registerAgentRunContext, Fr as DEFAULT_INPUT_MAX_REDIRECTS, G as consumeGatewaySigusr1RestartAuthorization, Gn as resolveUserTimezone, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hr as normalizeMimeList, Ht as buildControlUiAvatarUrl, Ir as DEFAULT_INPUT_PDF_MAX_PAGES, J as setGatewaySigusr1RestartPolicy, Jn as registerInternalHook, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as clearInternalHooks, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as normalizePollInput, Lr as DEFAULT_INPUT_PDF_MAX_PIXELS, Mn as emitAgentEvent, Mr as DEFAULT_INPUT_FILE_MIMES, N as ensureOutboundSessionEntry, Nn as getAgentRunContext, Nr as DEFAULT_INPUT_IMAGE_MAX_BYTES, O as readSessionMessages, On as findSubagentRunByRunId, P as resolveOutboundSessionRoute, Pn as onAgentEvent, Pr as DEFAULT_INPUT_IMAGE_MIMES, Qn as getTtsProvider, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as parseVerboseOverride, Un as formatUserTime, Ut as normalizeControlUiBasePath, Vn as resolveAgentIdentity, Vr as extractImageContentFromSource, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as resolveUserTimeFormat, Wr as resolveAgentTimeoutMs, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as OPENAI_TTS_MODELS, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as triggerInternalHook, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as OPENAI_TTS_VOICES, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, ar as resolveTtsProviderOrder, at as normalizeOptionalAgentId, b as listAgentsForGateway, br as stripHeartbeatToken, bt as handleSlackHttpRequest, c as runEmbeddedPiAgent, cr as textToSpeech, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as setCommandLaneConcurrency, en as detectSuspiciousPatterns, er as isTtsProviderConfigured, fn as resolveHeartbeatVisibility, fr as CommandLane, ft as requestHeartbeatNow, g as listCanvasUris, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as isDiagnosticsEnabled, ht as loadSKYKOIPlugins, i as runCliAgent, ir as resolveTtsPrefsPath, it as inferLegacyName, j as stripEnvelopeFromMessages, jn as clearAgentRunContext, jr as DEFAULT_INPUT_FILE_MAX_CHARS, k as readSessionPreviewItemsFromTranscript, kn as initSubagentRegistry, kr as loadModelCatalog, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mr as stopDiagnosticHeartbeat, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as resolveTtsAutoMode, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setTtsEnabled, ot as normalizeOptionalText, p as createSKYKOITools, pr as startDiagnosticHeartbeat, q as scheduleGatewaySigusr1Restart, qn as createInternalHookEvent, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as resolveTtsConfig, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as setTtsProvider, st as normalizePayloadToSystemText, tn as getHookType, tr as resolveTtsApiKey, tt as writeRestartSentinel, v as replaceCanvasResource, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as applyVerboseOverride, x as listSessionsFromStore, xr as lookupContextTokens, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, zr as DEFAULT_INPUT_TIMEOUT_MS } from "./reply-DSt9Rh5Y.js";
4
4
  import { C as colorize, D as getLogger, E as getChildLogger, N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, V as getActivePluginRegistry, a as setConsoleTimestampPrefix, c as defaultRuntime, i as setConsoleSubsystemFilter, j as CHANNEL_IDS, n as runtimeForLogger, t as createSubsystemLogger, w as isRich, y as setVerbose } from "./subsystem-Dl1sS5S-.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-DcA9-j8b.js";
6
6
  import { _ as isSubagentSessionKey, d as resolveAgentIdFromSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, m as toAgentRequestSessionKey, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseAgentSessionKey } from "./session-key-hGS8_hRJ.js";
@@ -64,7 +64,7 @@ import { i as readExecApprovalsSnapshot, o as resolveExecApprovalsSocketPath, r
64
64
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BonAEJ5j.js";
65
65
  import { t as parseAbsoluteTimeMs } from "./parse-CQc2Wki1.js";
66
66
  import { n as resolveMessageChannelSelection } from "./channel-selection-BZvCBj33.js";
67
- import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-C6KOAneQ.js";
67
+ import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-DmfzhPN1.js";
68
68
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-CW2aNYJ9.js";
69
69
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
70
70
  import "./daemon-runtime-vtoMFexx.js";
@@ -73,16 +73,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
73
73
  import "./logging-B818ac7o.js";
74
74
  import "./note-ty8fydmp.js";
75
75
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
76
- import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-BYmhyyK0.js";
77
- import { n as installSkill } from "./onboard-skills-B7VesLf0.js";
78
- import "./github-copilot-auth-DzwNnQJj.js";
79
- import "./onboard-channels-B3o8UrpN.js";
76
+ import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-QQuNSzOR.js";
77
+ import { n as installSkill } from "./onboard-skills-BRB4QIGk.js";
78
+ import "./github-copilot-auth-1Dk5IIXu.js";
79
+ import "./onboard-channels-DyMJgLeh.js";
80
80
  import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-ClD8Hu9T.js";
81
- import "./archive-CdIhvmdq.js";
81
+ import "./archive-BwcWGib9.js";
82
82
  import "./skill-scanner-BapBkMb3.js";
83
- import "./installs-BS8Q_aqJ.js";
84
- import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-6-sirUMO.js";
85
- import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-7neXUX8D.js";
83
+ import "./installs-qktJXsvc.js";
84
+ import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-CMb_0rCe.js";
85
+ import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-DNMaKyp1.js";
86
86
  import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-CMhFyIcG.js";
87
87
  import { i as probeGateway } from "./audit-CgQYEpCL.js";
88
88
  import "./table-BuHjFIeu.js";
@@ -92,16 +92,16 @@ import { p as resolveGatewayStateDir } from "./systemd-BTcdURXT.js";
92
92
  import "./service-audit-CO_WVcvf.js";
93
93
  import "./node-service-CdjRxBgz.js";
94
94
  import "./channels-status-issues-BaXwaWXv.js";
95
- import "./register.subclis-BcEwwuzW.js";
96
- import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-Da5YOcs3.js";
95
+ import "./register.subclis-CcGbAbQ8.js";
96
+ import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-W16M_JVV.js";
97
97
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-C09wbKzV.js";
98
98
  import { n as discoverGatewayBeacons } from "./bonjour-discovery-DF5ll51G.js";
99
- import "./completion-cli-4JYy7b35.js";
99
+ import "./completion-cli-DMRQpSpH.js";
100
100
  import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-Bk7yFv90.js";
101
101
  import "./tui-0wcL5_de.js";
102
102
  import { t as buildChannelAccountSnapshot } from "./status-DqH1H1Pt.js";
103
103
  import "./shared-BzZOYgS0.js";
104
- import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DLtD4zDH.js";
104
+ import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-Bw_dP53Z.js";
105
105
  import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-vW-rMMy7.js";
106
106
  import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-NQGsvlnZ.js";
107
107
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Ja2q39R7.js";
@@ -10754,7 +10754,7 @@ const nodeHandlers = {
10754
10754
  const p = params;
10755
10755
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
10756
10756
  await respondUnavailableOnThrow(respond, async () => {
10757
- const { handleNodeEvent } = await import("./server-node-events-C550S2ce.js");
10757
+ const { handleNodeEvent } = await import("./server-node-events-8LwfRYhM.js");
10758
10758
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
10759
10759
  await handleNodeEvent({
10760
10760
  deps: context.deps,
@@ -14745,7 +14745,6 @@ function startSubagentFleetTelemetry() {
14745
14745
  const reason = data?.reason ?? "completed";
14746
14746
  patchFleetEntry(parent, child, {
14747
14747
  status: "done",
14748
- streamingText: void 0,
14749
14748
  currentAction: void 0,
14750
14749
  lastActivityAt: now
14751
14750
  });
@@ -14754,12 +14753,10 @@ function startSubagentFleetTelemetry() {
14754
14753
  text: reason,
14755
14754
  ts: now
14756
14755
  });
14757
- lastTextByChild.delete(child);
14758
14756
  } else if (phase === "error") {
14759
14757
  const errMsg = data?.error ?? data?.message ?? "error";
14760
14758
  patchFleetEntry(parent, child, {
14761
14759
  status: "failed",
14762
- streamingText: void 0,
14763
14760
  currentAction: void 0,
14764
14761
  lastActivityAt: now
14765
14762
  });
@@ -14768,7 +14765,6 @@ function startSubagentFleetTelemetry() {
14768
14765
  text: errMsg,
14769
14766
  ts: now
14770
14767
  });
14771
- lastTextByChild.delete(child);
14772
14768
  }
14773
14769
  return;
14774
14770
  }
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-Bma2fIJw.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-DSt9Rh5Y.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { l as normalizeAgentId } from "./session-key-hGS8_hRJ.js";
4
4
  import { b as sleep } from "./utils-DIctjiBL.js";
@@ -1,4 +1,4 @@
1
- import { F as resolveHeartbeatDeliveryTarget, Gn as resolveUserTimezone, Hn as resolveEffectiveMessagesConfig, I as resolveHeartbeatSenderContext, Or as peekSystemEvents, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, fn as resolveHeartbeatVisibility, fr as CommandLane, ft as requestHeartbeatNow, gn as resolveIndicatorType, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as enqueueCommandInLane, pn as emitHeartbeatEvent, pt as setHeartbeatWakeHandler, t as getReplyFromConfig, u as isEmbeddedPiRunActive, ur as getQueueSize, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-Bma2fIJw.js";
1
+ import { F as resolveHeartbeatDeliveryTarget, Gn as resolveUserTimezone, Hn as resolveEffectiveMessagesConfig, I as resolveHeartbeatSenderContext, Or as peekSystemEvents, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, fn as resolveHeartbeatVisibility, fr as CommandLane, ft as requestHeartbeatNow, gn as resolveIndicatorType, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as enqueueCommandInLane, pn as emitHeartbeatEvent, pt as setHeartbeatWakeHandler, t as getReplyFromConfig, u as isEmbeddedPiRunActive, ur as getQueueSize, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-DSt9Rh5Y.js";
2
2
  import { C as colorize, T as theme, c as defaultRuntime, m as info, t as createSubsystemLogger, w as isRich } from "./subsystem-Dl1sS5S-.js";
3
3
  import { d as resolveAgentIdFromSessionKey, h as toAgentStoreSessionKey, l as normalizeAgentId } from "./session-key-hGS8_hRJ.js";
4
4
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import "./reply-Bma2fIJw.js";
2
+ import "./reply-DSt9Rh5Y.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, t as CONFIG_DIR, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -55,10 +55,10 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-CJ5Inqel.js";
56
56
  import "./control-service-BonAEJ5j.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CdIhvmdq.js";
58
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BwcWGib9.js";
59
59
  import { t as renderTable } from "./table-BuHjFIeu.js";
60
60
  import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-Bk7yFv90.js";
61
- import { t as buildPluginStatusReport } from "./status-DcXXRApT.js";
61
+ import { t as buildPluginStatusReport } from "./status-C3EYTRuj.js";
62
62
  import fs from "node:fs";
63
63
  import path from "node:path";
64
64
  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-D5gz7ahu.js";
3
- import { Ur as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-Bma2fIJw.js";
3
+ import { Ur as applyTemplate, an as monitorWebChannel, cn as installUnhandledRejectionHandler, t as getReplyFromConfig, un as waitForever } from "./reply-DSt9Rh5Y.js";
4
4
  import { r as enableConsoleCapture } from "./subsystem-Dl1sS5S-.js";
5
5
  import "./paths-DcA9-j8b.js";
6
6
  import { S as toWhatsappJid, d as normalizeE164, n as assertWebChannel } from "./utils-DIctjiBL.js";
@@ -55,27 +55,27 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-CJ5Inqel.js";
56
56
  import "./control-service-BonAEJ5j.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import { t as createDefaultDeps } from "./deps-C6KOAneQ.js";
58
+ import { t as createDefaultDeps } from "./deps-DmfzhPN1.js";
59
59
  import { l as ensureBinary, u as promptYesNo } from "./tailscale-CW2aNYJ9.js";
60
60
  import { t as loadDotEnv } from "./dotenv-DlZCd7a6.js";
61
61
  import { t as isMainModule } from "./is-main-DY9Hjhai.js";
62
62
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
63
63
  import { g as assertSupportedRuntime } from "./daemon-runtime-vtoMFexx.js";
64
64
  import "./ports-CCPpWmHD.js";
65
- import "./config-guard-BXXiyeEb.js";
65
+ import "./config-guard-TIFy-6hy.js";
66
66
  import "./logging-B818ac7o.js";
67
67
  import "./note-ty8fydmp.js";
68
68
  import "./clack-prompter-D03d7Olp.js";
69
- import "./onboarding-BYmhyyK0.js";
70
- import "./onboard-skills-B7VesLf0.js";
71
- import "./github-copilot-auth-DzwNnQJj.js";
72
- import "./onboard-channels-B3o8UrpN.js";
69
+ import "./onboarding-QQuNSzOR.js";
70
+ import "./onboard-skills-BRB4QIGk.js";
71
+ import "./github-copilot-auth-1Dk5IIXu.js";
72
+ import "./onboard-channels-DyMJgLeh.js";
73
73
  import "./plugin-auto-enable-ClD8Hu9T.js";
74
- import "./archive-CdIhvmdq.js";
74
+ import "./archive-BwcWGib9.js";
75
75
  import "./skill-scanner-BapBkMb3.js";
76
- import "./installs-BS8Q_aqJ.js";
77
- import "./health-format-6-sirUMO.js";
78
- import "./update-runner-7neXUX8D.js";
76
+ import "./installs-qktJXsvc.js";
77
+ import "./health-format-CMb_0rCe.js";
78
+ import "./update-runner-DNMaKyp1.js";
79
79
  import "./auth-CMhFyIcG.js";
80
80
  import "./audit-CgQYEpCL.js";
81
81
  import "./table-BuHjFIeu.js";
@@ -85,22 +85,22 @@ import "./systemd-BTcdURXT.js";
85
85
  import "./service-audit-CO_WVcvf.js";
86
86
  import "./node-service-CdjRxBgz.js";
87
87
  import "./channels-status-issues-BaXwaWXv.js";
88
- import "./register.subclis-BcEwwuzW.js";
88
+ import "./register.subclis-CcGbAbQ8.js";
89
89
  import "./gateway-rpc-D4VaaKAU.js";
90
90
  import "./help-format-rUxU9jE_.js";
91
- import "./agent-Da5YOcs3.js";
92
- import "./plugin-registry-C2pg1P8k.js";
93
- import "./configure-C504luDs.js";
91
+ import "./agent-W16M_JVV.js";
92
+ import "./plugin-registry-DHffbSib.js";
93
+ import "./configure-ShYwWLdM.js";
94
94
  import "./systemd-linger-BSA8MnYc.js";
95
95
  import "./widearea-dns-C09wbKzV.js";
96
96
  import "./bonjour-discovery-DF5ll51G.js";
97
97
  import "./auth-health-Cg7cWRH-.js";
98
- import "./doctor-BPESbchY.js";
99
- import "./completion-cli-4JYy7b35.js";
98
+ import "./doctor-CO3PPV0J.js";
99
+ import "./completion-cli-DMRQpSpH.js";
100
100
  import "./hooks-status-Bk7yFv90.js";
101
101
  import "./tui-0wcL5_de.js";
102
- import "./channel-options-CkTlHlq7.js";
103
- import { n as buildProgram } from "./program-Cn-IUods.js";
102
+ import "./channel-options-DFIv57w6.js";
103
+ import { n as buildProgram } from "./program-DedxW59q.js";
104
104
  import process from "node:process";
105
105
  import { fileURLToPath } from "node:url";
106
106
 
@@ -1,7 +1,7 @@
1
1
  import { h as resolveUserPath, t as CONFIG_DIR } from "./utils-DIctjiBL.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
3
3
  import { a as MANIFEST_KEY } from "./manifest-registry-5tS0nRed.js";
4
- import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-CdIhvmdq.js";
4
+ import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BwcWGib9.js";
5
5
  import { t as scanDirectoryWithSummary } from "./skill-scanner-BapBkMb3.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { Nt as openUrl, U as describeFailoverError, c as runEmbeddedPiAgent, gt as loadProviderUsageSummary, kr as loadModelCatalog, vt as formatUsageWindowSummary, yt as resolveUsageProviderId } from "./reply-Bma2fIJw.js";
2
+ import { Nt as openUrl, U as describeFailoverError, c as runEmbeddedPiAgent, gt as loadProviderUsageSummary, kr as loadModelCatalog, vt as formatUsageWindowSummary, yt as resolveUsageProviderId } from "./reply-DSt9Rh5Y.js";
3
3
  import { C as colorize, T as theme, c as defaultRuntime, w as isRich$1 } from "./subsystem-Dl1sS5S-.js";
4
4
  import { t as CONFIG_PATH } from "./paths-DcA9-j8b.js";
5
5
  import { y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -59,7 +59,7 @@ import "./channel-selection-BZvCBj33.js";
59
59
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
60
60
  import "./note-ty8fydmp.js";
61
61
  import { t as createClackPrompter } from "./clack-prompter-D03d7Olp.js";
62
- import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownAgentId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-DzwNnQJj.js";
62
+ import { a as normalizeAlias, c as updateConfig, d as resolvePluginProviders, i as formatTokenK, l as createVpsAwareOAuthHandlers, n as ensureFlagCompatibility, o as resolveKnownAgentId, pt as validateAnthropicSetupToken, r as formatMs, s as resolveModelTarget, t as githubCopilotLoginCommand, u as isRemoteEnvironment, v as applyAuthProfileConfig } from "./github-copilot-auth-1Dk5IIXu.js";
63
63
  import { t as renderTable } from "./table-BuHjFIeu.js";
64
64
  import { i as redactSecrets } from "./format-APMZSEkl.js";
65
65
  import { n as buildAuthHealthSummary, r as formatRemainingShort, t as DEFAULT_OAUTH_WARN_MS } from "./auth-health-Cg7cWRH-.js";
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-Bma2fIJw.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-DSt9Rh5Y.js";
2
2
  import { F as formatChannelSelectionLine, L as listChatChannels, P as formatChannelPrimerLine, t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-hGS8_hRJ.js";
4
4
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
@@ -7,7 +7,7 @@ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CvpPbU
7
7
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
9
9
  import { i as listChannelPluginCatalogEntries, n as isChannelConfigured } from "./plugin-auto-enable-ClD8Hu9T.js";
10
- import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BS8Q_aqJ.js";
10
+ import { n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-qktJXsvc.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
13
 
@@ -1,4 +1,4 @@
1
- import { Nt as openUrl, Rt as resolveNodeManagerOptions, Tt as detectBinary, kr as loadModelCatalog } from "./reply-Bma2fIJw.js";
1
+ import { Nt as openUrl, Rt as resolveNodeManagerOptions, Tt as detectBinary, kr as loadModelCatalog } from "./reply-DSt9Rh5Y.js";
2
2
  import { f as resolveConfigDir, h as resolveUserPath, s as ensureDir, t as CONFIG_DIR } from "./utils-DIctjiBL.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
4
4
  import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
@@ -8,8 +8,8 @@ import { t as formatCliCommand } from "./command-format-BxjVkF35.js";
8
8
  import { _ as resolveSkillKey, d as hasBinary, i as loadWorkspaceSkillEntries, t as resolveSkillsInstallPreferences } from "./skills-Bfqz-DdS.js";
9
9
  import { Y as fetchWithSsrFGuard } from "./deliver-DDU96v2Z.js";
10
10
  import { t as resolveBrewExecutable } from "./brew-C3EWd0g3.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-DzwNnQJj.js";
12
- import { a as enablePluginInConfig } from "./onboard-channels-B3o8UrpN.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-1Dk5IIXu.js";
12
+ import { a as enablePluginInConfig } from "./onboard-channels-DyMJgLeh.js";
13
13
  import { t as scanDirectoryWithSummary } from "./skill-scanner-BapBkMb3.js";
14
14
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BSS2etLw.js";
15
15
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-C09wbKzV.js";
@@ -1,4 +1,4 @@
1
- import { $ as summarizeRestartSentinel, At as handleReset, Bn as getMemorySearchManager, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, Ft as probeGatewayReachable, Gt as getRemoteSkillEligibility, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Nt as openUrl, Or as peekSystemEvents, Ot as formatControlUiSshHint, Pt as printWizardHeader, Q as readRestartSentinel, Ut as normalizeControlUiBasePath, _t as formatUsageReportLines, b as listAgentsForGateway, f as sha256HexPrefix, gt as loadProviderUsageSummary, wt as applyWizardMetadata, xr as lookupContextTokens, zt as summarizeExistingConfig } from "./reply-Bma2fIJw.js";
1
+ import { $ as summarizeRestartSentinel, At as handleReset, Bn as getMemorySearchManager, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, Ft as probeGatewayReachable, Gt as getRemoteSkillEligibility, It as randomToken, Lt as resolveControlUiLinks, Mt as normalizeGatewayTokenInput, Nt as openUrl, Or as peekSystemEvents, Ot as formatControlUiSshHint, Pt as printWizardHeader, Q as readRestartSentinel, Ut as normalizeControlUiBasePath, _t as formatUsageReportLines, b as listAgentsForGateway, f as sha256HexPrefix, gt as loadProviderUsageSummary, wt as applyWizardMetadata, xr as lookupContextTokens, zt as summarizeExistingConfig } from "./reply-DSt9Rh5Y.js";
2
2
  import { T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, w as isRich } from "./subsystem-Dl1sS5S-.js";
3
3
  import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-DcA9-j8b.js";
4
4
  import { l as normalizeAgentId, v as parseAgentSessionKey } from "./session-key-hGS8_hRJ.js";
@@ -21,10 +21,10 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWA
21
21
  import { t as resolveChannelDefaultAccountId } from "./helpers-Ccy5jhZP.js";
22
22
  import { n as logConfigUpdated } from "./logging-B818ac7o.js";
23
23
  import { t as WizardCancelledError } from "./prompts-CDHXxTNu.js";
24
- import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-B7VesLf0.js";
25
- import { n as setupChannels } from "./onboard-channels-B3o8UrpN.js";
26
- import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-6-sirUMO.js";
27
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-7neXUX8D.js";
24
+ import { d as applyAuthChoice, h as promptAuthChoiceGrouped, l as resolvePreferredProviderForAuthChoice, o as applyPrimaryModel, r as promptRemoteGatewayConfig, s as promptDefaultModel, t as setupSkills, u as warnIfModelConfigLooksOff } from "./onboard-skills-BRB4QIGk.js";
25
+ import { n as setupChannels } from "./onboard-channels-DyMJgLeh.js";
26
+ import { l as healthCommand, n as ensureControlUiAssetsBuilt, s as formatHealthChannelLines, t as formatHealthCheckFailure, u as resolveHeartbeatSummaryForAgent } from "./health-format-CMb_0rCe.js";
27
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, d as formatUpdateOneLiner, f as getUpdateCheckResult, h as compareSemverStrings, l as ensureCompletionCacheExists, m as checkUpdateStatus, p as resolveUpdateAvailability, s as checkShellCompletionStatus, u as formatUpdateAvailableHint, x as formatUpdateChannelLabel } from "./update-runner-DNMaKyp1.js";
28
28
  import { i as probeGateway, t as runSecurityAudit } from "./audit-CgQYEpCL.js";
29
29
  import { t as renderTable } from "./table-BuHjFIeu.js";
30
30
  import { t as buildWorkspaceSkillStatus } from "./skills-status-BSS2etLw.js";
@@ -34,7 +34,7 @@ import { o as readLastGatewayErrorLine } from "./service-audit-CO_WVcvf.js";
34
34
  import { t as resolveNodeService } from "./node-service-CdjRxBgz.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BaXwaWXv.js";
36
36
  import { i as redactSecrets, n as formatDuration$1, r as formatGatewayAuthUsed, t as formatAge$1 } from "./format-APMZSEkl.js";
37
- import { r as installCompletion } from "./completion-cli-4JYy7b35.js";
37
+ import { r as installCompletion } from "./completion-cli-DMRQpSpH.js";
38
38
  import { t as buildWorkspaceHookStatus } from "./hooks-status-Bk7yFv90.js";
39
39
  import { t as runTui } from "./tui-0wcL5_de.js";
40
40
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-Bma2fIJw.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-DSt9Rh5Y.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
4
4
  import { o as loadConfig } from "./config-Baj9Whac.js";
@@ -21,7 +21,7 @@ import chalk, { Chalk } from "chalk";
21
21
  import fs, { constants, createWriteStream, existsSync, statSync } from "node:fs";
22
22
  import path from "node:path";
23
23
  import { Logger } from "tslog";
24
- import JSON5 from "json5";
24
+ import json5 from "json5";
25
25
  import os, { homedir, tmpdir } from "node:os";
26
26
  import { promisify } from "node:util";
27
27
  import fs$1 from "node:fs/promises";
@@ -2269,7 +2269,7 @@ function readLoggingConfig() {
2269
2269
  try {
2270
2270
  if (!fs.existsSync(configPath)) return;
2271
2271
  const raw = fs.readFileSync(configPath, "utf-8");
2272
- const logging = JSON5.parse(raw)?.logging;
2272
+ const logging = json5.parse(raw)?.logging;
2273
2273
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
2274
2274
  return logging;
2275
2275
  } catch {
@@ -18997,7 +18997,7 @@ var IncludeProcessor = class IncludeProcessor {
18997
18997
  };
18998
18998
  const defaultResolver = {
18999
18999
  readFile: (p) => fs.readFileSync(p, "utf-8"),
19000
- parseJson: (raw) => JSON5.parse(raw)
19000
+ parseJson: (raw) => json5.parse(raw)
19001
19001
  };
19002
19002
  /**
19003
19003
  * Resolves all $include directives in a parsed config object.
@@ -21671,18 +21671,18 @@ function resolveConfigPathForDeps(deps) {
21671
21671
  function normalizeDeps(overrides = {}) {
21672
21672
  return {
21673
21673
  fs: overrides.fs ?? fs,
21674
- json5: overrides.json5 ?? JSON5,
21674
+ json5: overrides.json5 ?? json5,
21675
21675
  env: overrides.env ?? process.env,
21676
21676
  homedir: overrides.homedir ?? os.homedir,
21677
21677
  configPath: overrides.configPath ?? "",
21678
21678
  logger: overrides.logger ?? console
21679
21679
  };
21680
21680
  }
21681
- function parseConfigJson5(raw, json5 = JSON5) {
21681
+ function parseConfigJson5(raw, json5$1 = json5) {
21682
21682
  try {
21683
21683
  return {
21684
21684
  ok: true,
21685
- parsed: json5.parse(raw)
21685
+ parsed: json5$1.parse(raw)
21686
21686
  };
21687
21687
  } catch (err) {
21688
21688
  return {
@@ -22196,7 +22196,7 @@ function loadSessionStore(storePath, opts = {}) {
22196
22196
  let mtimeMs = getFileMtimeMs(storePath);
22197
22197
  try {
22198
22198
  const raw = fs.readFileSync(storePath, "utf-8");
22199
- const parsed = JSON5.parse(raw);
22199
+ const parsed = json5.parse(raw);
22200
22200
  if (isSessionStoreRecord(parsed)) store = parsed;
22201
22201
  mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
22202
22202
  } catch {}
@@ -243114,7 +243114,7 @@ const ChecklistToolSchema = Type.Object({
243114
243114
  action: stringEnum(ACTIONS$1),
243115
243115
  title: Type.Optional(Type.String()),
243116
243116
  items: Type.Optional(Type.Array(ChecklistItemSchema)),
243117
- itemIndex: Type.Optional(Type.Union([Type.Number(), Type.String()]))
243117
+ itemIndex: Type.Optional(Type.String())
243118
243118
  });
243119
243119
 
243120
243120
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import "./reply-Bma2fIJw.js";
2
+ import "./reply-DSt9Rh5Y.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { h as resolveUserPath, v as shortenHomeInString, y as shortenHomePath } from "./utils-DIctjiBL.js";
@@ -54,12 +54,12 @@ import "./satisfies-Ch9z1ETk.js";
54
54
  import "./session-cost-usage-CJ5Inqel.js";
55
55
  import "./control-service-BonAEJ5j.js";
56
56
  import "./channel-selection-BZvCBj33.js";
57
- import { i as resolveArchiveKind } from "./archive-CdIhvmdq.js";
57
+ import { i as resolveArchiveKind } from "./archive-BwcWGib9.js";
58
58
  import "./skill-scanner-BapBkMb3.js";
59
- import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BS8Q_aqJ.js";
59
+ import { n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-qktJXsvc.js";
60
60
  import { t as renderTable } from "./table-BuHjFIeu.js";
61
- import { t as buildPluginStatusReport } from "./status-DcXXRApT.js";
62
- import { n as updateNpmInstalledPlugins } from "./update-pWQbZXY-.js";
61
+ import { t as buildPluginStatusReport } from "./status-C3EYTRuj.js";
62
+ import { n as updateNpmInstalledPlugins } from "./update-BK8LYpYE.js";
63
63
  import fs from "node:fs";
64
64
  import path from "node:path";
65
65
 
@@ -4,11 +4,11 @@ import { n as replaceCliName, r as resolveCliName } from "./command-format-BxjVk
4
4
  import { t as isTruthyEnvValue } from "./env-EjmWoVFM.js";
5
5
  import { N as VERSION } from "./config-Baj9Whac.js";
6
6
  import { t as formatDocsLink } from "./links-yjT27ApF.js";
7
- import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-BXXiyeEb.js";
8
- import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-BcEwwuzW.js";
9
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C2pg1P8k.js";
7
+ import { r as registerProgramCommands, t as ensureConfigReady } from "./config-guard-TIFy-6hy.js";
8
+ import { a as getCommandPath, d as hasHelpOrVersion, l as getVerboseFlag } from "./register.subclis-CcGbAbQ8.js";
9
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DHffbSib.js";
10
10
  import { i as hasEmittedCliBanner, n as emitCliBanner, r as formatCliBannerLine } from "./tui-0wcL5_de.js";
11
- import { n as resolveCliChannelOptions } from "./channel-options-CkTlHlq7.js";
11
+ import { n as resolveCliChannelOptions } from "./channel-options-DFIv57w6.js";
12
12
  import { Command } from "commander";
13
13
 
14
14
  //#region src/cli/program/context.ts
@@ -124,14 +124,14 @@ const entries = [
124
124
  name: "gateway",
125
125
  description: "Gateway control",
126
126
  register: async (program) => {
127
- (await import("./gateway-cli-D23A7b51.js")).registerGatewayCli(program);
127
+ (await import("./gateway-cli-CYSBA8bi.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-DLtD4zDH.js").then((n) => n.t)).registerDaemonCli(program);
134
+ (await import("./daemon-cli-Bw_dP53Z.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-BfHsXWsB.js")).registerModelsCli(program);
155
+ (await import("./models-cli-DAxauNWO.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-Bcd65fa3.js")).registerHooksCli(program);
225
+ (await import("./hooks-cli-BUfz4vro.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-C0kcHMN5.js");
239
+ const { registerPluginCliCommands } = await import("./cli-mjv2gAet.js");
240
240
  registerPluginCliCommands(program, await loadConfig());
241
241
  (await import("./pairing-cli-Cw_pzXp7.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-yGYQtfgy.js")).registerPluginsCli(program);
249
- const { registerPluginCliCommands } = await import("./cli-C0kcHMN5.js");
248
+ (await import("./plugins-cli-yyXpMTwr.js")).registerPluginsCli(program);
249
+ const { registerPluginCliCommands } = await import("./cli-mjv2gAet.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-B9v6Cz4b.js")).registerChannelsCli(program);
257
+ (await import("./channels-cli-Dy_YqO_G.js")).registerChannelsCli(program);
258
258
  }
259
259
  },
260
260
  {
@@ -282,14 +282,14 @@ const entries = [
282
282
  name: "update",
283
283
  description: "CLI update helpers",
284
284
  register: async (program) => {
285
- (await import("./update-cli-D3ODTbqD.js")).registerUpdateCli(program);
285
+ (await import("./update-cli-vHmrovz_.js")).registerUpdateCli(program);
286
286
  }
287
287
  },
288
288
  {
289
289
  name: "completion",
290
290
  description: "Generate shell completion script",
291
291
  register: async (program) => {
292
- (await import("./completion-cli-4JYy7b35.js").then((n) => n.n)).registerCompletionCli(program);
292
+ (await import("./completion-cli-DMRQpSpH.js").then((n) => n.n)).registerCompletionCli(program);
293
293
  }
294
294
  }
295
295
  ];
@@ -138490,7 +138490,7 @@ function buildAgentSystemPrompt(params) {
138490
138490
  }
138491
138491
  if (!isMinimal) {
138492
138492
  lines.push("## Credential Requests & Account Access", "", "### Requesting Credentials", "When you need login credentials, API keys, or verification codes, output a hidden marker:", "`<!-- CREDENTIAL_REQUEST:{\"service\":\"github\",\"fields\":[\"email\",\"password\"],\"message\":\"I need your GitHub credentials to log in.\"} -->`", "", "The frontend renders a secure inline form with options:", "- **Continue with Google/GitHub/etc.** — OAuth one-click sign-in (best UX)", "- **Use saved** — auto-fill from vault (if credentials were saved before)", "- **Manual entry** — user types email/password", "", "After submission, you receive a [System] event with the credentials. Use them immediately. Do NOT echo credentials, do NOT ask to re-enter.", "", "**IMPORTANT**: Always request BOTH email AND password together. Use field names: email, password, username, code, otp, 2fa, phone, api_key, token.", "For 2FA codes, use `type: \"2fa_request\"` and `fields: [\"code\"]`.", "", "### OAuth Authentication", "When you receive `[System] User authenticated with {provider} via OAuth`, the user already signed in via one-click OAuth. You have their:", "- Email address and name (in the system event)", "- OAuth access token stored in the credential vault", "DO NOT ask for credentials again. DO NOT explain API setup. Just confirm the account is connected and proceed with whatever task prompted the login.", "Example response: \"Your Google account (user@gmail.com) is now connected! What would you like me to do with it?\"", "", "### Contextual Understanding (CRITICAL)", "When the user sends a short message like 'send', 'send it', 'show me', or 'do it', infer from context what they mean. Examples:", "- User: \"show me screenshot of desktop\" → You: take screenshot → User: \"send\" → SEND THE SCREENSHOT. Do NOT ask \"send what?\"", "- User: \"write me an email\" → You: draft email → User: \"send\" → SEND THE EMAIL. Do NOT ask \"send to whom?\"", "- If you just produced content (screenshot, file, text), 'send' means deliver that content to the user in this chat.", "- Never ask clarifying questions about something you JUST discussed. Use conversation context.", "- When delivering files/images, include them inline in your response (use the upload server or message tool with media). Do not just mention the file path.", "", "### Browser-Based Access", "You have a full Playwright-capable browser. For ANY website or service:", "1. Navigate to the site with the browser tool", "2. If login is needed, request credentials via the CREDENTIAL_REQUEST marker", "3. After receiving credentials, type them into the login form using browser actions (click, type, press)", "4. Handle 2FA if prompted (request code via 2fa_request marker)", "5. Once logged in, the browser session persists — you can interact with the site fully", "", "You can access ANY website the user needs. Gmail, GitHub, AWS Console, social media, banking dashboards — anything with a web interface. The browser runs on your server with full Playwright support (navigate, click, type, screenshot, evaluate JS).", "");
138493
- lines.push("## ⚠ Plan Mode (MANDATORY for ANY multi-step ask)", "", "If the user's ask takes MORE than ONE tool call to complete — build a thing, refactor code, investigate a bug across multiple files, migrate, research, design — your FIRST tool call MUST be `plan(action=\"propose\", ...)`. No exceptions. Do NOT start implementing, reading files, or writing code before the plan exists.", "", "One-shot asks (e.g. \"what's in this file\", \"run this command\", \"summarise this page\") don't need a plan. Everything else does.", "", "### Research is required, not optional", "The plan tool rejects shallow plans at the tool level. Before calling `plan`:", "- Run web searches AND web fetches to gather vendor docs, blog posts, prior implementations, comparable work. Minimum 2 sources with a one-sentence `takeaway` each.", "- Read project files relevant to the task. Minimum 1 file with a `finding` explaining what you learned. Only applies when working inside a project.", "- More is better. Substantial asks deserve 5-10+ web sources and a half-dozen file reads.", "", "### Plans have PHASES, each with its OWN separate checklist", "- A plan decomposes the work into 1-5 phases. Each phase has its own `checklist` of concrete actionable items.", "- Simple work = 1 phase with a checklist.", "- Larger work = 2-5 phases. E.g. 'Prep & Instrument' → 'Build' → 'Rollout'.", "- Each phase needs ≥2 checklist items (tool-enforced). One-item 'phases' should be folded into siblings.", "", "### ⚠ CRITICAL: PER-PHASE CHECKLIST DISCIPLINE", "- The checklist tool holds ONE phase's items at a time. It is NOT a mega-list of every phase's work.", "- When starting a phase: call `checklist(action=\"reset\")` FIRST to clear any prior phase's items, THEN `checklist(action=\"update\", items=<just this phase's items>)`.", "- Checklists should generally be HIERARCHICAL: 3-6 top-level sections with 2-5 children each. The tool rejects flat lists of ≥6 items without children.", "- NEVER merge multiple phases into a single giant checklist. Each phase starts fresh.", "", "### ⚠ CRITICAL: Work the whole plan autonomously in one turn", "Do NOT stop after the first item and ask the user to say 'continue'. A plan + checklist is an autonomous contract: you work through it end-to-end.", "", "The rhythm:", " 1. Do the work for the active sub-item (file write, exec, browser, research).", " 2. Call `complete_item` on that sub-item — e.g. itemIndex=\"0.0\".", " 3. IMMEDIATELY move to the next sub-item. Don't announce intent; do.", " 4. When the last sub-item of a phase is done, call `plan(action=\"complete_phase\", phaseId=N)`.", " 5. Call `checklist(action=\"reset\")` to clear, then `checklist(action=\"update\", items=<next phase's items>)` to begin the next phase.", " 6. Continue the rhythm through every phase.", " 7. Only yield control to the user when: (a) you need an answer, (b) you hit an unrecoverable error, or (c) `allPhasesDone: true` came back from complete_phase.", "", "Multiple `complete_item` calls per turn are FINE now. Multiple file writes per turn are FINE. The UI animates each canvas revision live, so the user watches incremental progress in real time regardless of how many mutations you pack into one turn. Don't artificially pace yourself — just do the work.", "", "- Do NOT call `plan(action=\"reset\")` while phases remain — the tool rejects it.", "", "### Claiming 'done'", "- Never say \"all done\" or \"finished\" in text unless the checklist shows N/N items complete AND `allPhasesDone` is true.", "- If you think the work is done but items are still pending, mark the pending ones via `complete_item` first.", "", "### Asking the user for context", "Include 1-3 `questions` in the plan for genuine open decisions (not padding). Use `kind: 'choice'` with `choices` when the answer is one of a few options; `kind: 'text'` for open-ended. On the next turn, use `action: 'revise'` with the user's answers folded in.", "", "## Task Checklists (MANDATORY for multi-step work)", "", "When a user asks you to do something with 2+ steps, you MUST use the `checklist` tool. Do NOT write markdown checklists (`- [x]`, `- [ ]`) in your messages — EVER.", "", "### How to use the checklist tool", "1. **Plan first.** Break the work into SECTIONS with SUB-TASKS. Use hierarchical items (items with children arrays).", "2. **Create:** Call `checklist` with action=\"update\", a descriptive title, and detailed items. Mark the first actionable sub-item \"active\".", "3. **Progress:** After each step, call `checklist` with action=\"complete_item\" and the index path.", " - Top-level: itemIndex=0 (number), 1, 2...", " - Sub-items: itemIndex is a STRING like 0.0 or 1.2 (parent-dot-child). Pass the VALUE — do not wrap it in extra quote characters. Correct: {\"itemIndex\": \"0.0\"}. Wrong: {\"itemIndex\": \"\\\"0.0\\\"\"}.", "4. Parent sections auto-complete when all their children are done.", "", "### IMPORTANT: Make checklists DETAILED", "- For complex tasks: use 3-6 SECTIONS, each with 2-5 sub-tasks.", "- Section = a phase of work (e.g. 'Research', 'Implementation', 'Testing').", "- Sub-task = a specific action (e.g. 'Read the config file', 'Write the migration script').", "- Simple tasks (2-3 steps) can be flat without children.", "", "### Example (hierarchical)", "```json", "{\"action\":\"update\",\"title\":\"Build Authentication System\",\"items\":[", " {\"text\":\"Database Setup\",\"status\":\"active\",\"children\":[", " {\"text\":\"Create users table schema\",\"status\":\"active\"},", " {\"text\":\"Add indexes and constraints\",\"status\":\"pending\"},", " {\"text\":\"Run migration\",\"status\":\"pending\"}", " ]},", " {\"text\":\"API Endpoints\",\"status\":\"pending\",\"children\":[", " {\"text\":\"POST /auth/register\",\"status\":\"pending\"},", " {\"text\":\"POST /auth/login\",\"status\":\"pending\"},", " {\"text\":\"GET /auth/me\",\"status\":\"pending\"}", " ]},", " {\"text\":\"Testing\",\"status\":\"pending\",\"children\":[", " {\"text\":\"Unit tests for auth logic\",\"status\":\"pending\"},", " {\"text\":\"Integration test end-to-end\",\"status\":\"pending\"}", " ]}", "]}", "```", "Then complete sub-items: `{\"action\":\"complete_item\",\"itemIndex\":\"0.0\"}` → `\"0.1\"` → `\"0.2\"` → `\"1.0\"` ...", "", "### Rules", "- ALWAYS use the checklist tool. NEVER write markdown checklists in your messages.", "- **NEVER call `complete_item` on a parent/section index.** Sections are containers that auto-complete when their last child is done. If you target a parent with pending children, the tool returns `applied: false, skipReason: \"parent-has-pending-children\"` plus a warning pointing at the right sub-item index. Always complete SUB-ITEMS — e.g. `itemIndex: \"0.0\"` not `itemIndex: 0`. The parent closes itself.", "- **Work the checklist end-to-end in a single turn.** Don't stop after the first item and wait for the user to say 'continue'. Do the item's work, call `complete_item` on it, move straight to the next one. When the last item of a phase is done, call `plan(action=\"complete_phase\", phaseId=...)` then `checklist(reset)` + `checklist(update, items=<next phase's items>)` and keep going into the next phase. Only yield control to the user when (a) you need an answer, (b) you hit an unrecoverable error and need guidance, or (c) the whole plan is complete.", "- Between items, actually do the work — write files, run exec, hit the browser, research — then `complete_item`. Don't just announce; do.", "- The UI animates each `complete_item` live, so prefer one `complete_item` call per logical chunk of work rather than a giant `update` that pre-marks everything. But: if you genuinely finished several items in one blast (e.g. a single `write` call produced the output expected by 3 sub-tasks), `update` with them marked done is fine — the tool now returns a soft `warning` instead of a hard BLOCKED, and applies what you asked.", "- The tool always returns `ok: true`; watch for `warning` and `applied: false` to know when something didn't take effect. React by reading the warning and adjusting within the SAME turn, not waiting for the user.", "", "### Pattern for spawn-based phases", "If a phase's checklist items are \"Spawn X sub-agent\", \"Spawn Y sub-agent\", etc., do ONE per turn:", "```", "Turn N: sessions_spawn(X) → complete_item(itemIndex=\"0.0\") → end", "Turn N+1: sessions_spawn(Y) → complete_item(itemIndex=\"0.1\") → end", "```", "Do NOT spawn all sub-agents in one turn and then try to mark them all done — the harness will block you. One spawn per turn, one complete_item per turn, with real work between each. When the last child is done, the parent phase auto-completes.", "", "## Live Web Previews — use the `deliverable` tool", "", "PREFERRED: call `deliverable.publish({type:\"website\", url, label?})`. The tool runs a full server-side preflight (protocol, mixed-content, HEAD/GET reachability), writes a resource the UI subscribes to, and returns the deliverable id + final state. Then emit `[deliverable: <id>]` in your message — the UI renders the live state machine directly (pending → verified → iframe, or a friendly error card if broken).", "", "Usage:", " 1. deliverable.publish({type: \"website\", url: \"https://example.com\", label: \"Dashboard\"})", " → returns { deliverable: { id, state, remedy? }, ... }", " 2. Read `deliverable.state`. If not \"verified\", follow the returned remedy and re-call with action=\"recheck\".", " 3. Only after state is \"verified\": emit `[deliverable: <id>]` in your message.", "", "Rules:", "- **MUST be https://** — the chat is HTTPS, so http:// URLs are blocked as mixed content. `deliverable.publish` will flag this for you (state: blocked_mixed_content). Deploy behind CloudFront, Vercel, Netlify, GitHub Pages, or Cloudflare Pages. NEVER use the S3 website endpoint (s3-website-<region>.amazonaws.com) — HTTP only.", "- Only for PUBLIC URLs. Never publish localhost / 127.0.0.1 / private-range IPs.", "- If you spin up a local dev server, tunnel it (cloudflared) or deploy it first.", "- For static HTML files on disk, just mention the file path — the UI renders those as preview cards directly; no deliverable needed.", "", "### ⚠ MANDATORY: read back before claiming done", "Tunnels drop. Dev servers crash. Cloudflare returns 502/530 at random. If you declare a task complete while the preview is broken, the user is left staring at an error page thinking you lied.", "", "Before any of these actions involving a live preview:", "- `plan(action=\"complete_phase\")` on a phase that delivered a preview", "- `checklist(action=\"complete_item\")` on the last item of a preview-delivering task", "- Saying 'it's live', 'the site is ready', 'preview is up' in your text reply", "", "…verify the deliverable state is \"verified\" (either from the publish return value, or by reading the canvas resource back via deliverable.read). If it's in an error state, FIX the issue (restart tunnel, restart server, redeploy), then call deliverable.recheck({id}). Do NOT claim complete while non-verified.", "", "### Legacy `[embed: <url>]` marker (still works, being phased out)", "The older `[embed: <url>]` / `[embed: <url> | Label]` marker path still renders an iframe directly. It does NOT get the state-machine rendering or preflight verification — the user can end up staring at a loading-forever spinner if anything is wrong. Prefer `deliverable` for anything new. The `preview_check` tool continues to work as a one-shot probe if you just need a status check without publishing.", "");
138493
+ lines.push("## ⚠ Plan Mode (MANDATORY for ANY multi-step ask)", "", "If the user's ask takes MORE than ONE tool call to complete — build a thing, refactor code, investigate a bug across multiple files, migrate, research, design — your FIRST tool call MUST be `plan(action=\"propose\", ...)`. No exceptions. Do NOT start implementing, reading files, or writing code before the plan exists.", "", "One-shot asks (e.g. \"what's in this file\", \"run this command\", \"summarise this page\") don't need a plan. Everything else does.", "", "### Research is required, not optional", "The plan tool rejects shallow plans at the tool level. Before calling `plan`:", "- Run web searches AND web fetches to gather vendor docs, blog posts, prior implementations, comparable work. Minimum 2 sources with a one-sentence `takeaway` each.", "- Read project files relevant to the task. Minimum 1 file with a `finding` explaining what you learned. Only applies when working inside a project.", "- More is better. Substantial asks deserve 5-10+ web sources and a half-dozen file reads.", "", "### Plans have PHASES, each with its OWN separate checklist", "- A plan decomposes the work into 1-5 phases. Each phase has its own `checklist` of concrete actionable items.", "- Simple work = 1 phase with a checklist.", "- Larger work = 2-5 phases. E.g. 'Prep & Instrument' → 'Build' → 'Rollout'.", "- Each phase needs ≥2 checklist items (tool-enforced). One-item 'phases' should be folded into siblings.", "", "### ⚠ CRITICAL: PER-PHASE CHECKLIST DISCIPLINE", "- The checklist tool holds ONE phase's items at a time. It is NOT a mega-list of every phase's work.", "- When starting a phase: call `checklist(action=\"reset\")` FIRST to clear any prior phase's items, THEN `checklist(action=\"update\", items=<just this phase's items>)`.", "- Checklists should generally be HIERARCHICAL: 3-6 top-level sections with 2-5 children each. The tool rejects flat lists of ≥6 items without children.", "- NEVER merge multiple phases into a single giant checklist. Each phase starts fresh.", "", "### ⚠ CRITICAL: Work the whole plan autonomously in one turn", "Do NOT stop after the first item and ask the user to say 'continue'. A plan + checklist is an autonomous contract: you work through it end-to-end.", "", "The rhythm:", " 1. Do the work for the active sub-item (file write, exec, browser, research).", " 2. Call `complete_item` on that sub-item — e.g. itemIndex=\"0.0\".", " 3. IMMEDIATELY move to the next sub-item. Don't announce intent; do.", " 4. When the last sub-item of a phase is done, call `plan(action=\"complete_phase\", phaseId=N)`.", " 5. Call `checklist(action=\"reset\")` to clear, then `checklist(action=\"update\", items=<next phase's items>)` to begin the next phase.", " 6. Continue the rhythm through every phase.", " 7. Only yield control to the user when: (a) you need an answer, (b) you hit an unrecoverable error, or (c) `allPhasesDone: true` came back from complete_phase.", "", "### ⚠ NEVER say 'I'll check back later' / 'I'll verify shortly'", "A chat turn is not a reminder you can wake yourself up from. If a deploy needs propagation (CloudFront, DNS, queue drain), wait INLINE during the same turn:", " exec({command: 'for i in $(seq 1 30); do curl -sI https://... | head -1 | grep -q 200 && break; sleep 10; done'})", "Or poll with `deliverable.recheck({id})` between sleeps. Only when the polling succeeds (or exceeds a sensible budget like 5 minutes) do you complete the final checklist item and emit the verified deliverable. Saying 'I'll check back' leaves the task hanging forever because no one will re-wake you — the user has to send another message, and they usually don't.", "", "Multiple `complete_item` calls per turn are FINE now. Multiple file writes per turn are FINE. The UI animates each canvas revision live, so the user watches incremental progress in real time regardless of how many mutations you pack into one turn. Don't artificially pace yourself — just do the work.", "", "- Do NOT call `plan(action=\"reset\")` while phases remain — the tool rejects it.", "", "### Claiming 'done'", "- Never say \"all done\" or \"finished\" in text unless the checklist shows N/N items complete AND `allPhasesDone` is true.", "- If you think the work is done but items are still pending, mark the pending ones via `complete_item` first.", "", "### Asking the user for context", "Include 1-3 `questions` in the plan for genuine open decisions (not padding). Use `kind: 'choice'` with `choices` when the answer is one of a few options; `kind: 'text'` for open-ended. On the next turn, use `action: 'revise'` with the user's answers folded in.", "", "## Task Checklists (MANDATORY for multi-step work)", "", "When a user asks you to do something with 2+ steps, you MUST use the `checklist` tool. Do NOT write markdown checklists (`- [x]`, `- [ ]`) in your messages — EVER.", "", "### How to use the checklist tool", "1. **Plan first.** Break the work into SECTIONS with SUB-TASKS. Use hierarchical items (items with children arrays).", "2. **Create:** Call `checklist` with action=\"update\", a descriptive title, and detailed items. Mark the first actionable sub-item \"active\".", "3. **Progress:** After each step, call `checklist` with action=\"complete_item\" and the index path.", " - Top-level: itemIndex=0 (number), 1, 2...", " - Sub-items: itemIndex is a STRING like 0.0 or 1.2 (parent-dot-child). Pass the VALUE — do not wrap it in extra quote characters. Correct: {\"itemIndex\": \"0.0\"}. Wrong: {\"itemIndex\": \"\\\"0.0\\\"\"}.", "4. Parent sections auto-complete when all their children are done.", "", "### IMPORTANT: Make checklists DETAILED", "- For complex tasks: use 3-6 SECTIONS, each with 2-5 sub-tasks.", "- Section = a phase of work (e.g. 'Research', 'Implementation', 'Testing').", "- Sub-task = a specific action (e.g. 'Read the config file', 'Write the migration script').", "- Simple tasks (2-3 steps) can be flat without children.", "", "### Example (hierarchical)", "```json", "{\"action\":\"update\",\"title\":\"Build Authentication System\",\"items\":[", " {\"text\":\"Database Setup\",\"status\":\"active\",\"children\":[", " {\"text\":\"Create users table schema\",\"status\":\"active\"},", " {\"text\":\"Add indexes and constraints\",\"status\":\"pending\"},", " {\"text\":\"Run migration\",\"status\":\"pending\"}", " ]},", " {\"text\":\"API Endpoints\",\"status\":\"pending\",\"children\":[", " {\"text\":\"POST /auth/register\",\"status\":\"pending\"},", " {\"text\":\"POST /auth/login\",\"status\":\"pending\"},", " {\"text\":\"GET /auth/me\",\"status\":\"pending\"}", " ]},", " {\"text\":\"Testing\",\"status\":\"pending\",\"children\":[", " {\"text\":\"Unit tests for auth logic\",\"status\":\"pending\"},", " {\"text\":\"Integration test end-to-end\",\"status\":\"pending\"}", " ]}", "]}", "```", "Then complete sub-items: `{\"action\":\"complete_item\",\"itemIndex\":\"0.0\"}` → `\"0.1\"` → `\"0.2\"` → `\"1.0\"` ...", "", "### Rules", "- ALWAYS use the checklist tool. NEVER write markdown checklists in your messages.", "- **NEVER call `complete_item` on a parent/section index.** Sections are containers that auto-complete when their last child is done. If you target a parent with pending children, the tool returns `applied: false, skipReason: \"parent-has-pending-children\"` plus a warning pointing at the right sub-item index. Always complete SUB-ITEMS — e.g. `itemIndex: \"0.0\"` not `itemIndex: 0`. The parent closes itself.", "- **Work the checklist end-to-end in a single turn.** Don't stop after the first item and wait for the user to say 'continue'. Do the item's work, call `complete_item` on it, move straight to the next one. When the last item of a phase is done, call `plan(action=\"complete_phase\", phaseId=...)` then `checklist(reset)` + `checklist(update, items=<next phase's items>)` and keep going into the next phase. Only yield control to the user when (a) you need an answer, (b) you hit an unrecoverable error and need guidance, or (c) the whole plan is complete.", "- Between items, actually do the work — write files, run exec, hit the browser, research — then `complete_item`. Don't just announce; do.", "- The UI animates each `complete_item` live, so prefer one `complete_item` call per logical chunk of work rather than a giant `update` that pre-marks everything. But: if you genuinely finished several items in one blast (e.g. a single `write` call produced the output expected by 3 sub-tasks), `update` with them marked done is fine — the tool now returns a soft `warning` instead of a hard BLOCKED, and applies what you asked.", "- The tool always returns `ok: true`; watch for `warning` and `applied: false` to know when something didn't take effect. React by reading the warning and adjusting within the SAME turn, not waiting for the user.", "", "### Pattern for spawn-based phases", "If a phase's checklist items are \"Spawn X sub-agent\", \"Spawn Y sub-agent\", etc., do ONE per turn:", "```", "Turn N: sessions_spawn(X) → complete_item(itemIndex=\"0.0\") → end", "Turn N+1: sessions_spawn(Y) → complete_item(itemIndex=\"0.1\") → end", "```", "Do NOT spawn all sub-agents in one turn and then try to mark them all done — the harness will block you. One spawn per turn, one complete_item per turn, with real work between each. When the last child is done, the parent phase auto-completes.", "", "## Live Web Previews — use the `deliverable` tool", "", "PREFERRED: call `deliverable.publish({type:\"website\", url, label?})`. The tool runs a full server-side preflight (protocol, mixed-content, HEAD/GET reachability), writes a resource the UI subscribes to, and returns the deliverable id + final state. Then emit `[deliverable: <id>]` in your message — the UI renders the live state machine directly (pending → verified → iframe, or a friendly error card if broken).", "", "Usage:", " 1. deliverable.publish({type: \"website\", url: \"https://example.com\", label: \"Dashboard\"})", " → returns { deliverable: { id, state, remedy? }, ... }", " 2. Read `deliverable.state`. If not \"verified\", follow the returned remedy and re-call with action=\"recheck\".", " 3. Only after state is \"verified\": emit `[deliverable: <id>]` in your message.", "", "Rules:", "- **MUST be https://** — the chat is HTTPS, so http:// URLs are blocked as mixed content. `deliverable.publish` will flag this for you (state: blocked_mixed_content). Deploy behind CloudFront, Vercel, Netlify, GitHub Pages, or Cloudflare Pages. NEVER use the S3 website endpoint (s3-website-<region>.amazonaws.com) — HTTP only.", "- Only for PUBLIC URLs. Never publish localhost / 127.0.0.1 / private-range IPs.", "- If you spin up a local dev server, tunnel it (cloudflared) or deploy it first.", "- For static HTML files on disk, just mention the file path — the UI renders those as preview cards directly; no deliverable needed.", "", "### ⚠ MANDATORY: read back before claiming done", "Tunnels drop. Dev servers crash. Cloudflare returns 502/530 at random. If you declare a task complete while the preview is broken, the user is left staring at an error page thinking you lied.", "", "Before any of these actions involving a live preview:", "- `plan(action=\"complete_phase\")` on a phase that delivered a preview", "- `checklist(action=\"complete_item\")` on the last item of a preview-delivering task", "- Saying 'it's live', 'the site is ready', 'preview is up' in your text reply", "", "…verify the deliverable state is \"verified\" (either from the publish return value, or by reading the canvas resource back via deliverable.read). If it's in an error state, FIX the issue (restart tunnel, restart server, redeploy), then call deliverable.recheck({id}). Do NOT claim complete while non-verified.", "", "### Legacy `[embed: <url>]` marker (still works, being phased out)", "The older `[embed: <url>]` / `[embed: <url> | Label]` marker path still renders an iframe directly. It does NOT get the state-machine rendering or preflight verification — the user can end up staring at a loading-forever spinner if anything is wrong. Prefer `deliverable` for anything new. The `preview_check` tool continues to work as a one-shot probe if you just need a status check without publishing.", "");
138494
138494
  lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
138495
138495
  }
138496
138496
  if (!isMinimal) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), you MUST do productive work and report what you did. Neither HEARTBEAT_OK nor NO_REPLY are acceptable responses to heartbeats. Always take real action: use tools, run commands, update files, check infrastructure, test things, review code, maintain memory. Then describe what you did. 'Nothing to do' does not exist.", "SKYKOI treats a leading/trailing \"HEARTBEAT_OK\" as a heartbeat ack (and may discard it).", "");
@@ -155176,7 +155176,7 @@ const ChecklistToolSchema = Type.Object({
155176
155176
  action: stringEnum(ACTIONS$3),
155177
155177
  title: Type.Optional(Type.String()),
155178
155178
  items: Type.Optional(Type.Array(ChecklistItemSchema)),
155179
- itemIndex: Type.Optional(Type.Union([Type.Number(), Type.String()]))
155179
+ itemIndex: Type.Optional(Type.String())
155180
155180
  });
155181
155181
  function flatCount(items) {
155182
155182
  let done = 0;
@@ -155217,10 +155217,7 @@ function activateNextPending(items) {
155217
155217
  return false;
155218
155218
  }
155219
155219
  function resolveIndex(items, indexPath) {
155220
- let rawPath;
155221
- if (typeof indexPath === "number") rawPath = String(indexPath);
155222
- else rawPath = String(indexPath ?? "");
155223
- const clean = rawPath.trim().replace(/^["'`]+|["'`]+$/g, "").trim();
155220
+ const clean = (typeof indexPath === "number" ? String(indexPath) : String(indexPath ?? "")).trim().replace(/^["'`]+|["'`]+$/g, "").trim();
155224
155221
  if (!clean) return null;
155225
155222
  const parts = clean.split(".").map((p) => p.trim());
155226
155223
  if (parts.length === 1) {
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { cn as installUnhandledRejectionHandler } from "./reply-Bma2fIJw.js";
2
+ import { cn as installUnhandledRejectionHandler } from "./reply-DSt9Rh5Y.js";
3
3
  import { c as defaultRuntime, r as enableConsoleCapture } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -54,25 +54,25 @@ import "./satisfies-Ch9z1ETk.js";
54
54
  import "./session-cost-usage-CJ5Inqel.js";
55
55
  import "./control-service-BonAEJ5j.js";
56
56
  import "./channel-selection-BZvCBj33.js";
57
- import "./deps-C6KOAneQ.js";
57
+ import "./deps-DmfzhPN1.js";
58
58
  import "./tailscale-CW2aNYJ9.js";
59
59
  import { t as loadDotEnv } from "./dotenv-DlZCd7a6.js";
60
60
  import { t as ensureSKYKOICliOnPath } from "./path-env-DsAko5OY.js";
61
61
  import { g as assertSupportedRuntime } from "./daemon-runtime-vtoMFexx.js";
62
- import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-BXXiyeEb.js";
62
+ import { n as findRoutedCommand, t as ensureConfigReady } from "./config-guard-TIFy-6hy.js";
63
63
  import "./logging-B818ac7o.js";
64
64
  import "./note-ty8fydmp.js";
65
65
  import "./clack-prompter-D03d7Olp.js";
66
- import "./onboarding-BYmhyyK0.js";
67
- import "./onboard-skills-B7VesLf0.js";
68
- import "./github-copilot-auth-DzwNnQJj.js";
69
- import "./onboard-channels-B3o8UrpN.js";
66
+ import "./onboarding-QQuNSzOR.js";
67
+ import "./onboard-skills-BRB4QIGk.js";
68
+ import "./github-copilot-auth-1Dk5IIXu.js";
69
+ import "./onboard-channels-DyMJgLeh.js";
70
70
  import "./plugin-auto-enable-ClD8Hu9T.js";
71
- import "./archive-CdIhvmdq.js";
71
+ import "./archive-BwcWGib9.js";
72
72
  import "./skill-scanner-BapBkMb3.js";
73
- import "./installs-BS8Q_aqJ.js";
74
- import "./health-format-6-sirUMO.js";
75
- import "./update-runner-7neXUX8D.js";
73
+ import "./installs-qktJXsvc.js";
74
+ import "./health-format-CMb_0rCe.js";
75
+ import "./update-runner-DNMaKyp1.js";
76
76
  import "./auth-CMhFyIcG.js";
77
77
  import "./audit-CgQYEpCL.js";
78
78
  import "./table-BuHjFIeu.js";
@@ -82,18 +82,18 @@ import "./systemd-BTcdURXT.js";
82
82
  import "./service-audit-CO_WVcvf.js";
83
83
  import "./node-service-CdjRxBgz.js";
84
84
  import "./channels-status-issues-BaXwaWXv.js";
85
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-BcEwwuzW.js";
85
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-CcGbAbQ8.js";
86
86
  import "./gateway-rpc-D4VaaKAU.js";
87
87
  import "./help-format-rUxU9jE_.js";
88
- import "./agent-Da5YOcs3.js";
89
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C2pg1P8k.js";
90
- import "./configure-C504luDs.js";
88
+ import "./agent-W16M_JVV.js";
89
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DHffbSib.js";
90
+ import "./configure-ShYwWLdM.js";
91
91
  import "./systemd-linger-BSA8MnYc.js";
92
92
  import "./widearea-dns-C09wbKzV.js";
93
93
  import "./bonjour-discovery-DF5ll51G.js";
94
94
  import "./auth-health-Cg7cWRH-.js";
95
- import "./doctor-BPESbchY.js";
96
- import "./completion-cli-4JYy7b35.js";
95
+ import "./doctor-CO3PPV0J.js";
96
+ import "./completion-cli-DMRQpSpH.js";
97
97
  import "./hooks-status-Bk7yFv90.js";
98
98
  import { n as emitCliBanner } from "./tui-0wcL5_de.js";
99
99
  import process$1 from "node:process";
@@ -149,7 +149,7 @@ async function runCli(argv = process$1.argv) {
149
149
  assertSupportedRuntime();
150
150
  if (await tryRouteCli(normalizedArgv)) return;
151
151
  enableConsoleCapture();
152
- const { buildProgram } = await import("./program-Cn-IUods.js").then((n) => n.t);
152
+ const { buildProgram } = await import("./program-DedxW59q.js").then((n) => n.t);
153
153
  const program = buildProgram();
154
154
  installUnhandledRejectionHandler();
155
155
  process$1.on("uncaughtException", (error) => {
@@ -159,11 +159,11 @@ async function runCli(argv = process$1.argv) {
159
159
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
160
160
  const primary = getPrimaryCommand(parseArgv);
161
161
  if (primary) {
162
- const { registerSubCliByName } = await import("./register.subclis-BcEwwuzW.js").then((n) => n.i);
162
+ const { registerSubCliByName } = await import("./register.subclis-CcGbAbQ8.js").then((n) => n.i);
163
163
  await registerSubCliByName(program, primary);
164
164
  }
165
165
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
166
- const { registerPluginCliCommands } = await import("./cli-C0kcHMN5.js");
166
+ const { registerPluginCliCommands } = await import("./cli-mjv2gAet.js");
167
167
  const { loadConfig } = await import("./config-Baj9Whac.js").then((n) => n.t);
168
168
  registerPluginCliCommands(program, loadConfig());
169
169
  }
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-D5gz7ahu.js";
2
- import { C as loadSessionEntry, Er as enqueueSystemEvent, ft as requestHeartbeatNow } from "./reply-Bma2fIJw.js";
2
+ import { C as loadSessionEntry, Er as enqueueSystemEvent, ft as requestHeartbeatNow } from "./reply-DSt9Rh5Y.js";
3
3
  import { c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import { u as normalizeMainKey } from "./session-key-hGS8_hRJ.js";
@@ -55,8 +55,8 @@ import "./satisfies-Ch9z1ETk.js";
55
55
  import "./session-cost-usage-CJ5Inqel.js";
56
56
  import "./control-service-BonAEJ5j.js";
57
57
  import "./channel-selection-BZvCBj33.js";
58
- import "./deps-C6KOAneQ.js";
59
- import { t as agentCommand } from "./agent-Da5YOcs3.js";
58
+ import "./deps-DmfzhPN1.js";
59
+ import { t as agentCommand } from "./agent-W16M_JVV.js";
60
60
  import { t as formatForLog } from "./ws-log-NQGsvlnZ.js";
61
61
  import { randomUUID } from "node:crypto";
62
62
 
@@ -1,4 +1,4 @@
1
- import { ht as loadSKYKOIPlugins } from "./reply-Bma2fIJw.js";
1
+ import { ht as loadSKYKOIPlugins } from "./reply-DSt9Rh5Y.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Dl1sS5S-.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir, w as resolveDefaultAgentWorkspaceDir } from "./agent-scope-DrL2uTp9.js";
4
4
  import { o as loadConfig } from "./config-Baj9Whac.js";
@@ -1,6 +1,6 @@
1
1
  import { h as resolveUserPath } from "./utils-DIctjiBL.js";
2
2
  import { n as discoverSKYKOIPlugins, r as loadPluginManifest } from "./manifest-registry-5tS0nRed.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-BS8Q_aqJ.js";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-qktJXsvc.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-D5gz7ahu.js";
2
- import { et as trimLogTail } from "./reply-Bma2fIJw.js";
2
+ import { et as trimLogTail } from "./reply-DSt9Rh5Y.js";
3
3
  import { T as theme, c as defaultRuntime } from "./subsystem-Dl1sS5S-.js";
4
4
  import "./paths-DcA9-j8b.js";
5
5
  import "./utils-DIctjiBL.js";
@@ -56,17 +56,17 @@ import "./satisfies-Ch9z1ETk.js";
56
56
  import "./session-cost-usage-CJ5Inqel.js";
57
57
  import "./control-service-BonAEJ5j.js";
58
58
  import "./channel-selection-BZvCBj33.js";
59
- import "./deps-C6KOAneQ.js";
59
+ import "./deps-DmfzhPN1.js";
60
60
  import "./tailscale-CW2aNYJ9.js";
61
61
  import { _ as parseSemver } from "./daemon-runtime-vtoMFexx.js";
62
62
  import "./logging-B818ac7o.js";
63
63
  import "./note-ty8fydmp.js";
64
64
  import "./plugin-auto-enable-ClD8Hu9T.js";
65
- import "./archive-CdIhvmdq.js";
65
+ import "./archive-BwcWGib9.js";
66
66
  import "./skill-scanner-BapBkMb3.js";
67
- import "./installs-BS8Q_aqJ.js";
68
- import "./health-format-6-sirUMO.js";
69
- import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-7neXUX8D.js";
67
+ import "./installs-qktJXsvc.js";
68
+ import "./health-format-CMb_0rCe.js";
69
+ import { C as resolveEffectiveUpdateChannel, S as normalizeUpdateChannel, _ as resolveNpmChannelTag, a as globalInstallArgs, b as channelToNpmTag, d as formatUpdateOneLiner, g as fetchNpmTagVersion, h as compareSemverStrings, i as detectGlobalInstallManagerForRoot, l as ensureCompletionCacheExists, m as checkUpdateStatus, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, p as resolveUpdateAvailability, r as detectGlobalInstallManagerByPresence, s as checkShellCompletionStatus, t as runGatewayUpdate, u as formatUpdateAvailableHint, v as DEFAULT_GIT_CHANNEL, x as formatUpdateChannelLabel, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-DNMaKyp1.js";
70
70
  import "./auth-CMhFyIcG.js";
71
71
  import { t as renderTable } from "./table-BuHjFIeu.js";
72
72
  import "./skills-status-BSS2etLw.js";
@@ -74,15 +74,15 @@ import "./service-Fxlow9XO.js";
74
74
  import "./systemd-BTcdURXT.js";
75
75
  import "./service-audit-CO_WVcvf.js";
76
76
  import "./channels-status-issues-BaXwaWXv.js";
77
- import "./register.subclis-BcEwwuzW.js";
77
+ import "./register.subclis-CcGbAbQ8.js";
78
78
  import { t as formatHelpExamples } from "./help-format-rUxU9jE_.js";
79
79
  import "./systemd-linger-BSA8MnYc.js";
80
80
  import "./auth-health-Cg7cWRH-.js";
81
- import { t as doctorCommand } from "./doctor-BPESbchY.js";
82
- import { r as installCompletion } from "./completion-cli-4JYy7b35.js";
81
+ import { t as doctorCommand } from "./doctor-CO3PPV0J.js";
82
+ import { r as installCompletion } from "./completion-cli-DMRQpSpH.js";
83
83
  import "./shared-BzZOYgS0.js";
84
- import { r as runDaemonRestart } from "./daemon-cli-DLtD4zDH.js";
85
- import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-pWQbZXY-.js";
84
+ import { r as runDaemonRestart } from "./daemon-cli-Bw_dP53Z.js";
85
+ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-BK8LYpYE.js";
86
86
  import path from "node:path";
87
87
  import os from "node:os";
88
88
  import fs from "node:fs/promises";
@@ -1,12 +1,12 @@
1
- import { et as trimLogTail } from "./reply-Bma2fIJw.js";
1
+ import { et as trimLogTail } from "./reply-DSt9Rh5Y.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-CToLomNk.js";
3
3
  import { t as resolveSKYKOIPackageRoot } from "./skykoi-root-BcOj1-eE.js";
4
4
  import { r as resolveCliName, t as formatCliCommand } from "./command-format-BxjVkF35.js";
5
5
  import { N as VERSION } from "./config-Baj9Whac.js";
6
6
  import { _ as parseSemver } from "./daemon-runtime-vtoMFexx.js";
7
7
  import { t as note } from "./note-ty8fydmp.js";
8
- import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-6-sirUMO.js";
9
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-4JYy7b35.js";
8
+ import { i as resolveControlUiDistIndexPathForRoot, r as resolveControlUiDistIndexHealth } from "./health-format-CMb_0rCe.js";
9
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DMRQpSpH.js";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
12
12
  import fs from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skykoi",
3
- "version": "2026.3.111",
3
+ "version": "2026.3.113",
4
4
  "description": "SkyKoi — AI agent runtime. Multi-channel gateway CLI with RPC agent. Forked from SkyKoi.",
5
5
  "keywords": [
6
6
  "skykoi",