skykoi 2026.3.141 → 2026.3.144
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.
- package/dist/{archive-DY8f3Ark.js → archive-BS4Wlj8k.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BdKMkuMf.js → channel-options-CGg-LPTZ.js} +1 -1
- package/dist/{channels-cli-DaTN_Vy6.js → channels-cli-CQ1Mnn3h.js} +6 -6
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-DmjmM44r.js → cli-BQf7vxwg.js} +1 -1
- package/dist/{completion-cli-ue2Mk_vY.js → completion-cli-D6wsn_DI.js} +1 -1
- package/dist/{config-guard-V7HSiQXK.js → config-guard-SLpdkB8g.js} +13 -13
- package/dist/{configure-BxaklAOg.js → configure-YIKpYHmO.js} +4 -4
- package/dist/{daemon-cli-9H9EUm62.js → daemon-cli-BrF-ryvH.js} +2 -2
- package/dist/{deps-BiHA-8jF.js → deps-BEAH_bJY.js} +1 -1
- package/dist/{doctor-DFEQISUA.js → doctor-Qo-9lKEv.js} +3 -3
- package/dist/entry.js +1 -1
- package/dist/extension-api.js +1 -1
- package/dist/{gateway-cli-CsmC87-F.js → gateway-cli-ClcY19_y.js} +122 -68
- package/dist/{github-copilot-auth-D1-2Q3mc.js → github-copilot-auth-C1hw7ZJn.js} +1 -1
- package/dist/{health-format-Xl2Msj0y.js → health-format-DYmAWnO8.js} +1 -1
- package/dist/{hooks-cli-BMkxCTkI.js → hooks-cli-Bs0QUZlG.js} +3 -3
- package/dist/index.js +19 -19
- package/dist/{installs-Bnf82qFT.js → installs-DTvx5P-y.js} +1 -1
- package/dist/{koi-lfW-GxLj.js → koi-N5zj_zdz.js} +11 -14
- package/dist/{models-cli-CQCD5Lme.js → models-cli-BeubF1gn.js} +2 -2
- package/dist/{onboard-channels-BQMaZZ2y.js → onboard-channels-B8Q9t4c8.js} +2 -2
- package/dist/{onboard-skills-CY489IDv.js → onboard-skills-C-Fi9wfj.js} +3 -3
- package/dist/{onboarding-Cz7ZsVp3.js → onboarding-Bq50kCAV.js} +6 -6
- package/dist/{plugin-registry-DWcJcJHI.js → plugin-registry-kzzN7Hl7.js} +1 -1
- package/dist/plugin-sdk/auto-reply/templating.d.ts +11 -0
- package/dist/plugin-sdk/index.js +577 -19
- package/dist/{plugins-cli-B3QAFza4.js → plugins-cli-DW1JGHHh.js} +5 -5
- package/dist/{program-51qVEMcB.js → program-CHmIOhwi.js} +4 -4
- package/dist/{register.subclis-CuqMI9hK.js → register.subclis-CpeHiia3.js} +10 -10
- package/dist/{reply-D7jk74q8.js → reply-DutjQDCU.js} +572 -13
- package/dist/{run-main-CJjC2i17.js → run-main-CAN_yhwI.js} +20 -20
- package/dist/{server-node-events-vZicc6_x.js → server-node-events-BkDbIkz0.js} +3 -3
- package/dist/{status-Ca3F9BB9.js → status-BeBV0v7T.js} +1 -1
- package/dist/{update-tkfe_igb.js → update-Sq9jKwsm.js} +1 -1
- package/dist/{update-cli-D6IXvqhg.js → update-cli-COIl7Xpo.js} +11 -11
- package/dist/{update-runner-BaV_nORy.js → update-runner-CDYfL8Yz.js} +3 -3
- package/extensions/bluebubbles/node_modules/.bin/skykoi +2 -2
- package/extensions/copilot-proxy/node_modules/.bin/skykoi +2 -2
- package/extensions/diagnostics-otel/node_modules/.bin/skykoi +2 -2
- package/extensions/discord/node_modules/.bin/skykoi +2 -2
- package/extensions/feishu/node_modules/.bin/skykoi +2 -2
- package/extensions/google-antigravity-auth/node_modules/.bin/skykoi +2 -2
- package/extensions/google-gemini-cli-auth/node_modules/.bin/skykoi +2 -2
- package/extensions/googlechat/node_modules/.bin/skykoi +2 -2
- package/extensions/imessage/node_modules/.bin/skykoi +2 -2
- package/extensions/line/node_modules/.bin/skykoi +2 -2
- package/extensions/llm-task/node_modules/.bin/skykoi +2 -2
- package/extensions/lobster/node_modules/.bin/skykoi +2 -2
- package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
- package/extensions/matrix/node_modules/.bin/skykoi +2 -2
- package/extensions/mattermost/node_modules/.bin/skykoi +2 -2
- package/extensions/memory-core/node_modules/.bin/skykoi +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/skykoi +2 -2
- package/extensions/minimax-portal-auth/node_modules/.bin/skykoi +2 -2
- package/extensions/msteams/node_modules/.bin/skykoi +2 -2
- package/extensions/nextcloud-talk/node_modules/.bin/skykoi +2 -2
- package/extensions/nostr/node_modules/.bin/skykoi +2 -2
- package/extensions/open-prose/node_modules/.bin/skykoi +2 -2
- package/extensions/signal/node_modules/.bin/skykoi +2 -2
- package/extensions/slack/node_modules/.bin/skykoi +2 -2
- package/extensions/telegram/node_modules/.bin/skykoi +2 -2
- package/extensions/tlon/node_modules/.bin/skykoi +2 -2
- package/extensions/twitch/node_modules/.bin/skykoi +2 -2
- package/extensions/voice-call/node_modules/.bin/skykoi +2 -2
- package/extensions/whatsapp/node_modules/.bin/skykoi +2 -2
- package/extensions/zalo/node_modules/.bin/skykoi +2 -2
- package/extensions/zalouser/node_modules/.bin/skykoi +2 -2
- package/package.json +1 -1
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -21
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -21
- package/extensions/nostr/node_modules/.bin/tsc +0 -21
- package/extensions/nostr/node_modules/.bin/tsserver +0 -21
|
@@ -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-
|
|
2
|
+
import { xt as require_inherits } from "./reply-DutjQDCU.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import * as tar from "tar";
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ceadb188ed9db3b80ec01b08d0568de6a8447911d9a8ca02f9e000287863c22d
|
|
@@ -2,7 +2,7 @@ import { M as CHAT_CHANNEL_ORDER } from "./subsystem-RXphV8Xh.js";
|
|
|
2
2
|
import { t as isTruthyEnvValue } from "./env-Bj0uZSiW.js";
|
|
3
3
|
import { n as listChannelPlugins } from "./plugins-DUZvbUrn.js";
|
|
4
4
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-BmXyiOxr.js";
|
|
5
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
5
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-kzzN7Hl7.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-B5MOH8w_.js";
|
|
2
|
-
import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-
|
|
2
|
+
import { Pn as createSlackWebClient, _t as formatUsageReportLines, bn as parseDiscordTarget, gt as loadProviderUsageSummary, xn as fetchChannelPermissionsDiscord } from "./reply-DutjQDCU.js";
|
|
3
3
|
import { N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, p as danger, y as setVerbose } from "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
|
|
@@ -62,14 +62,14 @@ import "./event-log-DtrKraIx.js";
|
|
|
62
62
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
|
|
63
63
|
import "./note-CbRknFZ7.js";
|
|
64
64
|
import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
|
|
65
|
-
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-
|
|
65
|
+
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-B8Q9t4c8.js";
|
|
66
66
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-BmXyiOxr.js";
|
|
67
|
-
import "./archive-
|
|
67
|
+
import "./archive-BS4Wlj8k.js";
|
|
68
68
|
import "./skill-scanner-WnNLktfw.js";
|
|
69
|
-
import "./installs-
|
|
69
|
+
import "./installs-DTvx5P-y.js";
|
|
70
70
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-GKs-LbrV.js";
|
|
71
|
-
import { n as hasExplicitOptions } from "./plugin-registry-
|
|
72
|
-
import { t as formatCliChannelOptions } from "./channel-options-
|
|
71
|
+
import { n as hasExplicitOptions } from "./plugin-registry-kzzN7Hl7.js";
|
|
72
|
+
import { t as formatCliChannelOptions } from "./channel-options-CGg-LPTZ.js";
|
|
73
73
|
import { t as buildChannelAccountSnapshot } from "./status-BA0KgRIG.js";
|
|
74
74
|
import { t as parseLogLine } from "./parse-log-line-Btq1hVHj.js";
|
|
75
75
|
import fs from "node:fs/promises";
|
package/dist/cli/daemon-cli.js
CHANGED
|
@@ -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-
|
|
2
|
+
export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-BrF-ryvH.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-B5MOH8w_.js";
|
|
2
|
-
import { ht as loadSKYKOIPlugins } from "./reply-
|
|
2
|
+
import { ht as loadSKYKOIPlugins } from "./reply-DutjQDCU.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import "./utils-rBzA-VDv.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as __exportAll } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { g as resolveStateDir } from "./paths-VdmjGGyc.js";
|
|
3
|
-
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-
|
|
3
|
+
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CpeHiia3.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import fs from "node:fs/promises";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-
|
|
1
|
+
import { At as handleReset, Bt as waitForGatewayReachable, Ct as DEFAULT_WORKSPACE, Dt as ensureWorkspaceAndSessions, Et as detectBrowserOpenSupport, It as randomToken, Lt as resolveControlUiLinks, M as runMessageAction, Nt as openUrl, Ot as formatControlUiSshHint, V as CHANNEL_MESSAGE_ACTION_NAMES, dt as CHANNEL_TARGET_DESCRIPTION, gr as lookupContextTokens, in as runMemoryStatus, jt as moveToTrash, rn as registerMemoryCli, ut as CHANNEL_TARGETS_DESCRIPTION, wt as applyWizardMetadata, z as formatTargetDisplay } from "./reply-DutjQDCU.js";
|
|
2
2
|
import { B as normalizeChatChannelId, C as colorize, I as getChatChannelMeta, N as DEFAULT_CHAT_CHANNEL, T as theme, c as defaultRuntime, l as restoreTerminalState, m as info, p as danger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.js";
|
|
3
3
|
import { g as resolveStateDir, i as isNixMode, m as resolveOAuthDir, o as resolveConfigPath, r as STATE_DIR, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
4
4
|
import { l as normalizeKoiId, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
|
|
@@ -19,29 +19,29 @@ import { t as formatDocsLink } from "./links-D5FJjx5x.js";
|
|
|
19
19
|
import { n as runCommandWithRuntime } from "./cli-utils-C1YHVD4o.js";
|
|
20
20
|
import { n as withProgress } from "./progress-CIrle3FT.js";
|
|
21
21
|
import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-BJmW_JM3.js";
|
|
22
|
-
import { t as createDefaultDeps } from "./deps-
|
|
22
|
+
import { t as createDefaultDeps } from "./deps-BEAH_bJY.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-DkLy62aK.js";
|
|
24
24
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
|
|
25
25
|
import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BusiCyt_.js";
|
|
26
26
|
import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
|
|
27
27
|
import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.js";
|
|
28
|
-
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-
|
|
29
|
-
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-
|
|
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-
|
|
31
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
32
|
-
import { l as healthCommand } from "./health-format-
|
|
28
|
+
import { a as buildKoiSummaries, c as loadKoiIdentity, f as parseIdentityMarkdown, i as applyKoiConfig, l as pruneKoiConfig, n as statusCommand, o as findKoiEntryIndex, s as listKoiEntries, t as runOnboardingWizard, u as identityHasValues } from "./onboarding-Bq50kCAV.js";
|
|
29
|
+
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-C-Fi9wfj.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-C1hw7ZJn.js";
|
|
31
|
+
import { n as setupChannels } from "./onboard-channels-B8Q9t4c8.js";
|
|
32
|
+
import { l as healthCommand } from "./health-format-DYmAWnO8.js";
|
|
33
33
|
import { t as renderTable } from "./table-CgHdpI6b.js";
|
|
34
34
|
import { t as resolveGatewayService } from "./service-CTrRN1-T.js";
|
|
35
35
|
import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
|
|
36
|
-
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-
|
|
36
|
+
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CpeHiia3.js";
|
|
37
37
|
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-GLatQ1eS.js";
|
|
38
38
|
import { t as formatHelpExamples } from "./help-format-Cbr54gLP.js";
|
|
39
|
-
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-
|
|
40
|
-
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
39
|
+
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as koiCommand } from "./koi-N5zj_zdz.js";
|
|
40
|
+
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-kzzN7Hl7.js";
|
|
41
41
|
import { n as parsePositiveIntOrUndefined, t as collectOption } from "./helpers-CgAOTnxe.js";
|
|
42
|
-
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-
|
|
42
|
+
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-YIKpYHmO.js";
|
|
43
43
|
import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BLQwmm6k.js";
|
|
44
|
-
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-
|
|
44
|
+
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-Qo-9lKEv.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-
|
|
2795
|
+
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } = await import("./configure-YIKpYHmO.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-
|
|
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-DutjQDCU.js";
|
|
3
3
|
import { c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
5
5
|
import { h as resolveUserPath, y as shortenHomePath } from "./utils-rBzA-VDv.js";
|
|
@@ -15,9 +15,9 @@ import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
|
|
|
15
15
|
import { t as note$1 } from "./note-CbRknFZ7.js";
|
|
16
16
|
import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
|
|
17
17
|
import { t as createClackPrompter } from "./clack-prompter-BxHCh6Tn.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-
|
|
19
|
-
import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
20
|
-
import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-
|
|
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-C-Fi9wfj.js";
|
|
19
|
+
import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-B8Q9t4c8.js";
|
|
20
|
+
import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-DYmAWnO8.js";
|
|
21
21
|
import { t as resolveGatewayService } from "./service-CTrRN1-T.js";
|
|
22
22
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BLQwmm6k.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-
|
|
2
|
+
import { Lt as resolveControlUiLinks } from "./reply-DutjQDCU.js";
|
|
3
3
|
import { C as colorize, O as getResolvedLoggerSettings, T as theme, c as defaultRuntime, w as isRich } from "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import { d as resolveIsNixMode, g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
5
5
|
import { y as shortenHomePath } from "./utils-rBzA-VDv.js";
|
|
@@ -14,7 +14,7 @@ import { n as callGateway } from "./call-ByTcqcvV.js";
|
|
|
14
14
|
import { t as formatDocsLink } from "./links-D5FJjx5x.js";
|
|
15
15
|
import { n as withProgress } from "./progress-CIrle3FT.js";
|
|
16
16
|
import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-QCWVHQSI.js";
|
|
17
|
-
import { t as createDefaultDeps } from "./deps-
|
|
17
|
+
import { t as createDefaultDeps } from "./deps-BEAH_bJY.js";
|
|
18
18
|
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DkLy62aK.js";
|
|
19
19
|
import { o as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-CTrRN1-T.js";
|
|
20
20
|
import { r as isSystemdUserServiceAvailable } from "./systemd-BuS1yu_z.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-
|
|
1
|
+
import { Nn as sendMessageSlack, St as sendMessageIMessage, _n as sendMessageTelegram, jn as sendMessageWhatsApp, vn as sendMessageDiscord } from "./reply-DutjQDCU.js";
|
|
2
2
|
import { b as sendMessageSignal } from "./deliver-xcdMpFjH.js";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/deps.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-
|
|
1
|
+
import { It as randomToken, Pt as printWizardHeader, ht as loadSKYKOIPlugins, kt as guardCancel, wr as loadModelCatalog, wt as applyWizardMetadata } from "./reply-DutjQDCU.js";
|
|
2
2
|
import { O as getResolvedLoggerSettings, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
|
|
3
3
|
import { d as resolveIsNixMode, f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
4
4
|
import { a as buildKoiMainSessionKey, l as normalizeKoiId, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-DvA8Pdt6.js";
|
|
@@ -25,8 +25,8 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
|
|
|
25
25
|
import { n as logConfigUpdated } from "./logging-BusiCyt_.js";
|
|
26
26
|
import { t as note$1 } from "./note-CbRknFZ7.js";
|
|
27
27
|
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BmXyiOxr.js";
|
|
28
|
-
import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-
|
|
29
|
-
import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-
|
|
28
|
+
import { i as resolveControlUiDistIndexPathForRoot, l as healthCommand, r as resolveControlUiDistIndexHealth, t as formatHealthCheckFailure } from "./health-format-DYmAWnO8.js";
|
|
29
|
+
import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-CDYfL8Yz.js";
|
|
30
30
|
import { i as resolveGatewayAuth } from "./auth-DQvUzR68.js";
|
|
31
31
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-M1VnIEz1.js";
|
|
32
32
|
import { a as repairLaunchAgentBootstrap, i as launchAgentPlistExists, n as isLaunchAgentListed, o as resolveGatewayLogPaths, r as isLaunchAgentLoaded, t as resolveGatewayService } from "./service-CTrRN1-T.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-
|
|
247
|
+
import("./run-main-CAN_yhwI.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
|
});
|
package/dist/extension-api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-B5MOH8w_.js";
|
|
2
|
-
import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-
|
|
2
|
+
import { Ln as resolveKoiIdentity, c as runEmbeddedPiKoi, zr as resolveKoiTimeoutMs } from "./reply-DutjQDCU.js";
|
|
3
3
|
import "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import "./utils-rBzA-VDv.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { o as __toESM } from "./chunk-D_gEzPfs.js";
|
|
2
2
|
import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-B5MOH8w_.js";
|
|
3
|
-
import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-
|
|
3
|
+
import { $ as summarizeRestartSentinel, $n as resolveTtsPrefsPath, $t as buildSafeExternalPrompt, A as resolveSessionTranscriptCandidates, Ar as DEFAULT_INPUT_MAX_REDIRECTS, At as handleReset, B as resetDirectoryCache, Bn as resolveUserTimezone, C as loadSessionEntry, Cn as createReplyDispatcher, D as capArrayByJsonBytes, Dn as findSubkoiRunByChildSessionKey, Dr as DEFAULT_INPUT_FILE_MIMES, E as archiveFileOnDisk, En as stopSubkoisForRequester, Er as DEFAULT_INPUT_FILE_MAX_CHARS, Fr as extractFileContentFromSource, G as consumeGatewaySigusr1RestartAuthorization, Gn as OPENAI_TTS_MODELS, Gt as getRemoteSkillEligibility, H as runWithModelFallback, Hn as createInternalHookEvent, Ht as buildControlUiAvatarUrl, Ir as extractImageContentFromSource, J as setGatewaySigusr1RestartPolicy, Jn as isTtsEnabled, Jt as refreshRemoteBinsForConnectedNodes, K as isGatewaySigusr1RestartExternallyAllowed, Kn as OPENAI_TTS_VOICES, Kt as primeRemoteSkillsCache, L as resolveOutboundTarget, Ln as resolveKoiIdentity, Lr as normalizeMimeList, Mn as normalizePollInput, Mr as DEFAULT_INPUT_PDF_MAX_PIXELS, N as ensureOutboundSessionEntry, Nr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, O as readSessionMessages, On as findSubkoiRunByRunId, Or as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveOutboundSessionRoute, Pr as DEFAULT_INPUT_TIMEOUT_MS, Qn as resolveTtsConfig, Qt as registerSkillsChangeListener, R as resolveSessionDeliveryTarget, Rn as formatUserTime, S as loadCombinedSessionStoreForGateway, Sn as dispatchInboundMessage, Sr as isSystemEventContextChanged, T as resolveSessionModelRef, Tn as isAbortTrigger, Tr as DEFAULT_INPUT_FILE_MAX_BYTES, Un as registerInternalHook, Ut as normalizeControlUiBasePath, Vn as clearInternalHooks, Vt as CONTROL_UI_AVATAR_PREFIX, W as authorizeGatewaySigusr1Restart, Wn as triggerInternalHook, Wt as resolveAssistantAvatarUrl, X as formatDoctorNonInteractiveHint, Xn as resolveTtsApiKey, Xt as setSkillsRemoteRegistry, Y as consumeRestartSentinel, Yn as isTtsProviderConfigured, Yt as refreshRemoteNodeBins, Z as formatRestartSentinelMessage, Zn as resolveTtsAutoMode, Zt as getSkillsSnapshotVersion, _ as onCanvasChange, a as normalizeSendPolicy, at as normalizeOptionalKoiId, b as listKoisForGateway, br as parseVerboseOverride, bt as handleSlackHttpRequest, c as runEmbeddedPiKoi, cr as startDiagnosticHeartbeat, ct as normalizeRequiredName, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, en as detectSuspiciousPatterns, er as resolveTtsProviderOrder, fn as resolveHeartbeatVisibility, ft as requestHeartbeatNow, g as listCanvasUris, gr as lookupContextTokens, gt as loadProviderUsageSummary, h as getCanvasResource, hn as onHeartbeatEvent, hr as stripHeartbeatToken, ht as loadSKYKOIPlugins, i as runCliKoi, it as inferLegacyName, j as stripEnvelopeFromMessages, jr as DEFAULT_INPUT_PDF_MAX_PAGES, k as readSessionPreviewItemsFromTranscript, kn as initSubkoiRegistry, kr as DEFAULT_INPUT_IMAGE_MIMES, l as abortEmbeddedPiRun, ln as registerUnhandledRejectionHandler, lr as stopDiagnosticHeartbeat, lt as migrateLegacyCronPayload, m as canvasUri, mn as getLastHeartbeatEvent, mt as getPluginToolMeta, n as getCliSessionId, nn as isExternalHookSession, nr as setTtsProvider, nt as normalizeCronJobCreate, o as resolveSendPolicy, on as createReplyPrefixOptions, or as setCommandLaneConcurrency, ot as normalizeOptionalText, p as createSKYKOITools, q as scheduleGatewaySigusr1Restart, qn as getTtsProvider, qt as recordRemoteNodeInfo, r as setCliSessionId, rr as textToSpeech, rt as normalizeCronJobPatch, s as clearSessionQueues, sn as normalizeGroupActivation, sr as CommandLane, st as normalizePayloadToSystemText, tn as getHookType, tr as setTtsEnabled, tt as writeRestartSentinel, ur as isDiagnosticsEnabled, v as replaceCanvasResource, vr as applyModelOverrideToSessionEntry, w as resolveGatewaySessionStoreTarget, wn as formatZonedTimestamp, wr as loadModelCatalog, x as listSessionsFromStore, xr as enqueueSystemEvent, y as resolveAnnounceTargetFromKey, yn as getChannelActivity, yr as applyVerboseOverride, zn as resolveUserTimeFormat, zr as resolveKoiTimeoutMs } from "./reply-DutjQDCU.js";
|
|
4
4
|
import { C as colorize, D as getLogger, E as getChildLogger, N as DEFAULT_CHAT_CHANNEL, O as getResolvedLoggerSettings, T as theme, V as getActivePluginRegistry, a as setConsoleTimestampPrefix, c as defaultRuntime, i as setConsoleSubsystemFilter, j as CHANNEL_IDS, n as runtimeForLogger, t as createSubsystemLogger, w as isRich, y as setVerbose } from "./subsystem-RXphV8Xh.js";
|
|
5
5
|
import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-VdmjGGyc.js";
|
|
6
6
|
import { _ as isSubkoiSessionKey, a as buildKoiMainSessionKey, d as resolveKoiIdFromSessionKey, l as normalizeKoiId, m as toKoiRequestSessionKey, n as DEFAULT_KOI_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseKoiSessionKey } from "./session-key-DvA8Pdt6.js";
|
|
@@ -66,7 +66,7 @@ import { n as createBrowserControlContext, r as startBrowserControlServiceFromCo
|
|
|
66
66
|
import { t as parseAbsoluteTimeMs } from "./parse-DbwfoyR_.js";
|
|
67
67
|
import { n as resolveMessageChannelSelection } from "./channel-selection-B5tUOB8t.js";
|
|
68
68
|
import { n as hydrateSession, r as readEventsSince, t as appendEvent } from "./event-log-DtrKraIx.js";
|
|
69
|
-
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-
|
|
69
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BEAH_bJY.js";
|
|
70
70
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-4hm01eUI.js";
|
|
71
71
|
import { t as ensureSKYKOICliOnPath } from "./path-env-B1xMZ4TX.js";
|
|
72
72
|
import "./daemon-runtime-DkLy62aK.js";
|
|
@@ -75,16 +75,16 @@ import { t as resolveChannelDefaultAccountId } from "./helpers-BMifWcsO.js";
|
|
|
75
75
|
import "./logging-BusiCyt_.js";
|
|
76
76
|
import "./note-CbRknFZ7.js";
|
|
77
77
|
import { t as WizardCancelledError } from "./prompts-DxnxCHKt.js";
|
|
78
|
-
import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-
|
|
79
|
-
import { n as installSkill } from "./onboard-skills-
|
|
80
|
-
import "./github-copilot-auth-
|
|
81
|
-
import "./onboard-channels-
|
|
78
|
+
import { c as loadKoiIdentity, d as loadKoiIdentityFromWorkspace, i as applyKoiConfig, l as pruneKoiConfig, o as findKoiEntryIndex, r as getStatusSummary, s as listKoiEntries, t as runOnboardingWizard } from "./onboarding-Bq50kCAV.js";
|
|
79
|
+
import { n as installSkill } from "./onboard-skills-C-Fi9wfj.js";
|
|
80
|
+
import "./github-copilot-auth-C1hw7ZJn.js";
|
|
81
|
+
import "./onboard-channels-B8Q9t4c8.js";
|
|
82
82
|
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-BmXyiOxr.js";
|
|
83
|
-
import "./archive-
|
|
83
|
+
import "./archive-BS4Wlj8k.js";
|
|
84
84
|
import "./skill-scanner-WnNLktfw.js";
|
|
85
|
-
import "./installs-
|
|
86
|
-
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-
|
|
87
|
-
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
85
|
+
import "./installs-DTvx5P-y.js";
|
|
86
|
+
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-DYmAWnO8.js";
|
|
87
|
+
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CDYfL8Yz.js";
|
|
88
88
|
import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-DQvUzR68.js";
|
|
89
89
|
import { i as probeGateway } from "./audit-lnQLYqhu.js";
|
|
90
90
|
import "./table-CgHdpI6b.js";
|
|
@@ -94,16 +94,16 @@ import { p as resolveGatewayStateDir } from "./systemd-BuS1yu_z.js";
|
|
|
94
94
|
import "./service-audit-CN0kFCuS.js";
|
|
95
95
|
import "./node-service-DfmbTqpi.js";
|
|
96
96
|
import "./channels-status-issues-GKs-LbrV.js";
|
|
97
|
-
import "./register.subclis-
|
|
98
|
-
import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-
|
|
97
|
+
import "./register.subclis-CpeHiia3.js";
|
|
98
|
+
import { a as createOutboundSendDeps$1, i as resolveKoiOutboundTarget, r as resolveKoiDeliveryPlan, t as koiCommand } from "./koi-N5zj_zdz.js";
|
|
99
99
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DMja3M8B.js";
|
|
100
100
|
import { n as discoverGatewayBeacons } from "./bonjour-discovery-D_eYlsQc.js";
|
|
101
|
-
import "./completion-cli-
|
|
101
|
+
import "./completion-cli-D6wsn_DI.js";
|
|
102
102
|
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-DWt1gNJd.js";
|
|
103
103
|
import "./tui-pDEVRDQz.js";
|
|
104
104
|
import { t as buildChannelAccountSnapshot } from "./status-BA0KgRIG.js";
|
|
105
105
|
import "./shared-DCuTTPOy.js";
|
|
106
|
-
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-
|
|
106
|
+
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-BrF-ryvH.js";
|
|
107
107
|
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-18N_WkHM.js";
|
|
108
108
|
import { i as setGatewayWsLogStyle, n as logWs, r as summarizeKoiEventForWsLog, t as formatForLog } from "./ws-log-BhaGKxqL.js";
|
|
109
109
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DIXuCA40.js";
|
|
@@ -5939,6 +5939,71 @@ const GATEWAY_EVENTS = [
|
|
|
5939
5939
|
"mesh.peer.left"
|
|
5940
5940
|
];
|
|
5941
5941
|
|
|
5942
|
+
//#endregion
|
|
5943
|
+
//#region src/gateway/mention-dispatch.ts
|
|
5944
|
+
/**
|
|
5945
|
+
* @module gateway/mention-dispatch
|
|
5946
|
+
*
|
|
5947
|
+
* Shared @-mention parser used by chat.send and koi RPC handlers to
|
|
5948
|
+
* route a turn to a companion koi inside the host's shared session.
|
|
5949
|
+
*
|
|
5950
|
+
* Two chip forms are supported:
|
|
5951
|
+
* 1. Anchored: `@[Display Name](koi:<id>)` — emitted by the
|
|
5952
|
+
* composer's mention picker. Both name and id are available.
|
|
5953
|
+
* 2. Plain text: `@DisplayName` (or quoted multi-word names) —
|
|
5954
|
+
* what users type by hand. The caller resolves it via
|
|
5955
|
+
* findCompanionByName.
|
|
5956
|
+
*
|
|
5957
|
+
* We honor only the FIRST mention per turn — directing one message
|
|
5958
|
+
* to multiple kois at once is more confusing than useful.
|
|
5959
|
+
*
|
|
5960
|
+
* The dispatcher returns a `speakerKoiId` (the companion that
|
|
5961
|
+
* should answer this turn) when a known companion is mentioned and
|
|
5962
|
+
* the mention does not point at the host. The caller must NOT
|
|
5963
|
+
* rewrite sessionKey: the session belongs to the host, but the
|
|
5964
|
+
* speaker drives workspace/SOUL/model/skills for this turn so the
|
|
5965
|
+
* companion's persona answers in the same shared transcript.
|
|
5966
|
+
*/
|
|
5967
|
+
function parseFirstMention(text) {
|
|
5968
|
+
if (!text) return null;
|
|
5969
|
+
const chip = text.match(/@\[([^\]]+)\]\(koi:([^)]+)\)/);
|
|
5970
|
+
if (chip) {
|
|
5971
|
+
const name = chip[1]?.trim();
|
|
5972
|
+
const koiId = chip[2]?.trim();
|
|
5973
|
+
if (name && koiId) return {
|
|
5974
|
+
name,
|
|
5975
|
+
koiId
|
|
5976
|
+
};
|
|
5977
|
+
}
|
|
5978
|
+
const plain = text.match(/(?:^|\s)@([A-Za-z][A-Za-z0-9_-]*(?:\s+[A-Za-z][A-Za-z0-9_-]*){0,4})/);
|
|
5979
|
+
if (plain) {
|
|
5980
|
+
const name = plain[1]?.trim();
|
|
5981
|
+
if (name) return {
|
|
5982
|
+
name,
|
|
5983
|
+
koiId: null
|
|
5984
|
+
};
|
|
5985
|
+
}
|
|
5986
|
+
return null;
|
|
5987
|
+
}
|
|
5988
|
+
/**
|
|
5989
|
+
* Inspect an inbound message body for an @-mention pointing at a
|
|
5990
|
+
* known companion. Returns the companion's koi id when matched (and
|
|
5991
|
+
* the mention does not name the host), so the caller can hand the
|
|
5992
|
+
* turn to that companion via SpeakerKoiId / koiId override.
|
|
5993
|
+
*/
|
|
5994
|
+
function resolveMentionDispatch(message) {
|
|
5995
|
+
const match = parseFirstMention(message);
|
|
5996
|
+
if (!match) return null;
|
|
5997
|
+
const companion = (match.koiId ? findCompanionById(match.koiId) : null) ?? findCompanionByName(match.name);
|
|
5998
|
+
if (!companion) return null;
|
|
5999
|
+
const cached = getCachedCompanions();
|
|
6000
|
+
if (!!match.koiId && cached?.hostKoiId.toLowerCase() === match.koiId.toLowerCase()) return null;
|
|
6001
|
+
return {
|
|
6002
|
+
speakerKoiId: companion.id,
|
|
6003
|
+
companionName: companion.name
|
|
6004
|
+
};
|
|
6005
|
+
}
|
|
6006
|
+
|
|
5942
6007
|
//#endregion
|
|
5943
6008
|
//#region src/gateway/assistant-identity.ts
|
|
5944
6009
|
const MAX_ASSISTANT_NAME = 50;
|
|
@@ -6279,6 +6344,37 @@ const koiHandlers = {
|
|
|
6279
6344
|
return;
|
|
6280
6345
|
}
|
|
6281
6346
|
message = injectTimestamp(message, timestampOptsFromConfig(cfg));
|
|
6347
|
+
let mentionMatch = resolveMentionDispatch(message);
|
|
6348
|
+
if (!mentionMatch) {
|
|
6349
|
+
if (/(?:^|\s)@\S/.test(message) || /@\[/.test(message)) try {
|
|
6350
|
+
const platformUrl = cfg.gateway?.mesh?.platformUrl || process.env.SKYKOI_APP_URL;
|
|
6351
|
+
const hostKoiId = cfg.gateway?.mesh?.koiId || process.env.SKYKOI_KOI_ID;
|
|
6352
|
+
const gatewayToken = cfg.gateway?.auth?.token || process.env.SKYKOI_GATEWAY_TOKEN;
|
|
6353
|
+
if (platformUrl && hostKoiId && gatewayToken) {
|
|
6354
|
+
await fetchCompanions({
|
|
6355
|
+
platformUrl,
|
|
6356
|
+
hostKoiId,
|
|
6357
|
+
gatewayToken,
|
|
6358
|
+
log: context.logGateway
|
|
6359
|
+
});
|
|
6360
|
+
const { resolveKoiConfig } = await import("./koi-scope-Bhy7bqp7.js").then((n) => n.t);
|
|
6361
|
+
await applyCompanions({
|
|
6362
|
+
cfg,
|
|
6363
|
+
hostKoiId,
|
|
6364
|
+
hostWorkspaceDir: resolveKoiConfig(cfg, hostKoiId)?.workspace || process.env.SKYKOI_WORKSPACE_DIR || `${process.env.HOME ?? ""}/skykoi-koi`,
|
|
6365
|
+
log: context.logGateway
|
|
6366
|
+
});
|
|
6367
|
+
mentionMatch = resolveMentionDispatch(message);
|
|
6368
|
+
}
|
|
6369
|
+
} catch (err) {
|
|
6370
|
+
context.logGateway.warn(`koi: on-demand companion refresh failed: ${err?.message ?? err}`);
|
|
6371
|
+
}
|
|
6372
|
+
}
|
|
6373
|
+
let speakerKoiOverride;
|
|
6374
|
+
if (mentionMatch) {
|
|
6375
|
+
speakerKoiOverride = mentionMatch.speakerKoiId;
|
|
6376
|
+
context.logGateway.info(`koi: handing turn to companion ${mentionMatch.companionName} (id=${mentionMatch.speakerKoiId})`);
|
|
6377
|
+
}
|
|
6282
6378
|
const isKnownGatewayChannel = (value) => isGatewayMessageChannel(value);
|
|
6283
6379
|
const channelHints = [request.channel, request.replyChannel].filter((value) => typeof value === "string").map((value) => value.trim()).filter(Boolean);
|
|
6284
6380
|
for (const rawChannel of channelHints) {
|
|
@@ -6289,10 +6385,11 @@ const koiHandlers = {
|
|
|
6289
6385
|
}
|
|
6290
6386
|
}
|
|
6291
6387
|
const koiIdRaw = typeof request.koiId === "string" ? request.koiId.trim() : "";
|
|
6292
|
-
const
|
|
6388
|
+
const explicitKoiId = koiIdRaw ? normalizeKoiId(koiIdRaw) : void 0;
|
|
6389
|
+
const koiId = explicitKoiId ?? speakerKoiOverride;
|
|
6293
6390
|
if (koiId) {
|
|
6294
6391
|
if (!listKoiIds(cfg).includes(koiId)) {
|
|
6295
|
-
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid koi params: unknown koi id "${request.koiId}"`));
|
|
6392
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid koi params: unknown koi id "${request.koiId ?? koiId}"`));
|
|
6296
6393
|
return;
|
|
6297
6394
|
}
|
|
6298
6395
|
}
|
|
@@ -6301,9 +6398,9 @@ const koiHandlers = {
|
|
|
6301
6398
|
cfg,
|
|
6302
6399
|
koiId
|
|
6303
6400
|
});
|
|
6304
|
-
if (
|
|
6401
|
+
if (explicitKoiId && requestedSessionKeyRaw && !speakerKoiOverride) {
|
|
6305
6402
|
const sessionKoiId = resolveKoiIdFromSessionKey(requestedSessionKeyRaw);
|
|
6306
|
-
if (sessionKoiId !==
|
|
6403
|
+
if (sessionKoiId !== explicitKoiId) {
|
|
6307
6404
|
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid koi params: koi "${request.koiId}" does not match session key koi "${sessionKoiId}"`));
|
|
6308
6405
|
return;
|
|
6309
6406
|
}
|
|
@@ -7696,39 +7793,6 @@ const channelsHandlers = {
|
|
|
7696
7793
|
* Gateway RPC handlers for chat operations: sending messages, aborting runs,
|
|
7697
7794
|
* streaming koi responses, and managing chat session lifecycle.
|
|
7698
7795
|
*/
|
|
7699
|
-
/**
|
|
7700
|
-
* Parse the first companion mention out of a message body.
|
|
7701
|
-
* Supports two forms:
|
|
7702
|
-
* 1. Chip syntax inserted by the composer's mention picker:
|
|
7703
|
-
* `@[Name](koi:<id>)` — both name and id available.
|
|
7704
|
-
* 2. Plain text the user typed manually: `@Name` or
|
|
7705
|
-
* `@"Multi Word Name"` — only name available; the caller
|
|
7706
|
-
* resolves it via findCompanionByName.
|
|
7707
|
-
*
|
|
7708
|
-
* We honor only the FIRST mention per turn — directing one
|
|
7709
|
-
* message to multiple kois at once is more confusing than useful.
|
|
7710
|
-
*/
|
|
7711
|
-
function parseFirstMention(text) {
|
|
7712
|
-
if (!text) return null;
|
|
7713
|
-
const chip = text.match(/@\[([^\]]+)\]\(koi:([^)]+)\)/);
|
|
7714
|
-
if (chip) {
|
|
7715
|
-
const name = chip[1]?.trim();
|
|
7716
|
-
const koiId = chip[2]?.trim();
|
|
7717
|
-
if (name && koiId) return {
|
|
7718
|
-
name,
|
|
7719
|
-
koiId
|
|
7720
|
-
};
|
|
7721
|
-
}
|
|
7722
|
-
const plain = text.match(/(?:^|\s)@([A-Za-z][A-Za-z0-9_-]*(?:\s+[A-Za-z][A-Za-z0-9_-]*){0,4})/);
|
|
7723
|
-
if (plain) {
|
|
7724
|
-
const name = plain[1]?.trim();
|
|
7725
|
-
if (name) return {
|
|
7726
|
-
name,
|
|
7727
|
-
koiId: null
|
|
7728
|
-
};
|
|
7729
|
-
}
|
|
7730
|
-
return null;
|
|
7731
|
-
}
|
|
7732
7796
|
function resolveTranscriptPath(params) {
|
|
7733
7797
|
const { sessionId, storePath, sessionFile } = params;
|
|
7734
7798
|
if (sessionFile) return sessionFile;
|
|
@@ -7966,20 +8030,9 @@ const chatHandlers = {
|
|
|
7966
8030
|
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, String(err)));
|
|
7967
8031
|
return;
|
|
7968
8032
|
}
|
|
7969
|
-
const
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
const cached = getCachedCompanions();
|
|
7973
|
-
const isHost = !!mentionMatch.koiId && cached?.hostKoiId.toLowerCase() === mentionMatch.koiId.toLowerCase();
|
|
7974
|
-
if (companion && !isHost) {
|
|
7975
|
-
const parts = p.sessionKey.split(":");
|
|
7976
|
-
if (parts[0] === "koi" && parts.length >= 3) {
|
|
7977
|
-
const newKey = `koi:${companion.id}:${parts.slice(2).join(":")}`;
|
|
7978
|
-
context.logGateway.info(`chat.send: routing to companion ${companion.name} (sessionKey ${p.sessionKey} → ${newKey})`);
|
|
7979
|
-
p.sessionKey = newKey;
|
|
7980
|
-
}
|
|
7981
|
-
}
|
|
7982
|
-
}
|
|
8033
|
+
const mention = resolveMentionDispatch(parsedMessage);
|
|
8034
|
+
const speakerKoiOverride = mention?.speakerKoiId;
|
|
8035
|
+
if (mention) context.logGateway.info(`chat.send: handing turn to companion ${mention.companionName} (id=${mention.speakerKoiId}, session ${p.sessionKey} unchanged)`);
|
|
7983
8036
|
const { cfg, entry } = loadSessionEntry(p.sessionKey);
|
|
7984
8037
|
{
|
|
7985
8038
|
const parts = p.sessionKey.split(":");
|
|
@@ -8102,11 +8155,12 @@ const chatHandlers = {
|
|
|
8102
8155
|
SenderId: clientInfo?.id,
|
|
8103
8156
|
SenderName: clientInfo?.displayName,
|
|
8104
8157
|
SenderUsername: clientInfo?.displayName,
|
|
8105
|
-
GatewayClientScopes: client?.connect?.scopes
|
|
8158
|
+
GatewayClientScopes: client?.connect?.scopes,
|
|
8159
|
+
SpeakerKoiId: speakerKoiOverride
|
|
8106
8160
|
};
|
|
8107
8161
|
const { onModelSelected, ...prefixOptions } = createReplyPrefixOptions({
|
|
8108
8162
|
cfg,
|
|
8109
|
-
koiId: resolveSessionKoiId({
|
|
8163
|
+
koiId: speakerKoiOverride ?? resolveSessionKoiId({
|
|
8110
8164
|
sessionKey: p.sessionKey,
|
|
8111
8165
|
config: cfg
|
|
8112
8166
|
}),
|
|
@@ -10858,7 +10912,7 @@ const nodeHandlers = {
|
|
|
10858
10912
|
const p = params;
|
|
10859
10913
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
10860
10914
|
await respondUnavailableOnThrow(respond, async () => {
|
|
10861
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
10915
|
+
const { handleNodeEvent } = await import("./server-node-events-BkDbIkz0.js");
|
|
10862
10916
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
10863
10917
|
await handleNodeEvent({
|
|
10864
10918
|
deps: context.deps,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ht as loadSKYKOIPlugins } from "./reply-
|
|
1
|
+
import { ht as loadSKYKOIPlugins } from "./reply-DutjQDCU.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-RXphV8Xh.js";
|
|
3
3
|
import { l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
|
|
4
4
|
import { b as sleep } from "./utils-rBzA-VDv.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-
|
|
1
|
+
import { Bn as resolveUserTimezone, Cr as peekSystemEvents, F as resolveHeartbeatDeliveryTarget, I as resolveHeartbeatSenderContext, In as resolveEffectiveMessagesConfig, ar as getQueueSize, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, fn as resolveHeartbeatVisibility, fr as DEFAULT_HEARTBEAT_EVERY, ft as requestHeartbeatNow, gn as resolveIndicatorType, hr as stripHeartbeatToken, ir as enqueueCommandInLane, mr as resolveHeartbeatPrompt$1, pn as emitHeartbeatEvent, pr as isHeartbeatContentEffectivelyEmpty, pt as setHeartbeatWakeHandler, sr as CommandLane, t as getReplyFromConfig, u as isEmbeddedPiRunActive } from "./reply-DutjQDCU.js";
|
|
2
2
|
import { C as colorize, T as theme, c as defaultRuntime, m as info, t as createSubsystemLogger, w as isRich } from "./subsystem-RXphV8Xh.js";
|
|
3
3
|
import { d as resolveKoiIdFromSessionKey, h as toKoiStoreSessionKey, l as normalizeKoiId } from "./session-key-DvA8Pdt6.js";
|
|
4
4
|
import { t as runCommandWithTimeout } from "./exec-BE7MIgZB.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-B5MOH8w_.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-DutjQDCU.js";
|
|
3
3
|
import { T as theme, c as defaultRuntime } from "./subsystem-RXphV8Xh.js";
|
|
4
4
|
import "./paths-VdmjGGyc.js";
|
|
5
5
|
import { h as resolveUserPath, t as CONFIG_DIR, y as shortenHomePath } from "./utils-rBzA-VDv.js";
|
|
@@ -57,10 +57,10 @@ import "./session-cost-usage-CbribqqH.js";
|
|
|
57
57
|
import "./control-service-DnzgVIyk.js";
|
|
58
58
|
import "./channel-selection-B5tUOB8t.js";
|
|
59
59
|
import "./event-log-DtrKraIx.js";
|
|
60
|
-
import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-
|
|
60
|
+
import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-BS4Wlj8k.js";
|
|
61
61
|
import { t as renderTable } from "./table-CgHdpI6b.js";
|
|
62
62
|
import { a as parseFrontmatter, n as loadWorkspaceHookEntries, t as buildWorkspaceHookStatus } from "./hooks-status-DWt1gNJd.js";
|
|
63
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
63
|
+
import { t as buildPluginStatusReport } from "./status-BeBV0v7T.js";
|
|
64
64
|
import fs from "node:fs";
|
|
65
65
|
import path from "node:path";
|
|
66
66
|
import os from "node:os";
|