skykoi 2026.3.103 → 2026.3.105
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/{agent-p9b8oR9g.js → agent-mAGmMMpi.js} +2 -2
- package/dist/{archive-B2TNvtJ1.js → archive-lKJkn4tB.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BZFkxqhG.js → channel-options-BQKMTvEb.js} +1 -1
- package/dist/{channels-cli-Dgv8lS9w.js → channels-cli-DKidLVbk.js} +6 -6
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-C7xoSVIu.js → cli-Duq_X80m.js} +1 -1
- package/dist/{completion-cli-DZIf5MsP.js → completion-cli-BONN8uTE.js} +1 -1
- package/dist/{config-guard-8XnGwS-a.js → config-guard-BYQHM8DH.js} +13 -13
- package/dist/{configure-C_b3Snqr.js → configure-D3XHyzEv.js} +4 -4
- package/dist/{daemon-cli-BoYYTs26.js → daemon-cli-B-IYbDk-.js} +2 -2
- package/dist/{deps-rn0gZrpC.js → deps-qVFsEN7y.js} +1 -1
- package/dist/{doctor-BEpUTgnw.js → doctor-DkkAz_Ng.js} +3 -3
- package/dist/entry.js +1 -1
- package/dist/extension-api.js +1 -1
- package/dist/{gateway-cli-CTM6rHhC.js → gateway-cli-BOYZ_ok8.js} +189 -16
- package/dist/{github-copilot-auth-CKHES8sa.js → github-copilot-auth-ZU1Aj7LV.js} +1 -1
- package/dist/{health-format-CAyqRYsb.js → health-format-DvKXCjHa.js} +1 -1
- package/dist/{hooks-cli-CW60ov-f.js → hooks-cli-D8Dr4I05.js} +3 -3
- package/dist/index.js +19 -19
- package/dist/{installs-h4Uc-evh.js → installs-DM0xQ8yX.js} +1 -1
- package/dist/{models-cli-DsYR2tR8.js → models-cli-B5Ye1nrU.js} +2 -2
- package/dist/{onboard-channels-BI-CPjHC.js → onboard-channels-edOVTcaz.js} +2 -2
- package/dist/{onboard-skills-DGackeCI.js → onboard-skills-DV2i2V1F.js} +3 -3
- package/dist/{onboarding-BKfryJ6L.js → onboarding-BdV4ib3N.js} +6 -6
- package/dist/{plugin-registry-DzMh5IiO.js → plugin-registry-fMiGyQBb.js} +1 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/infra/canvas-registry.d.ts +46 -0
- package/dist/{plugins-cli-DZK7twrV.js → plugins-cli-likupW63.js} +5 -5
- package/dist/{program-1Z6kvss1.js → program-BUOqtJvs.js} +4 -4
- package/dist/{register.subclis-BYn7PfDN.js → register.subclis-CwNCais0.js} +10 -10
- package/dist/{reply-tjsZJRCw.js → reply-LYsD96rY.js} +197 -22
- package/dist/{run-main-BFgv6dNS.js → run-main-CO0kDLLK.js} +20 -20
- package/dist/{server-node-events-DruIxhbS.js → server-node-events-CW3dUZdH.js} +3 -3
- package/dist/{status-CW25nak_.js → status-CiuH86Fv.js} +1 -1
- package/dist/{update-BjhenzIm.js → update-BGLxRh8b.js} +1 -1
- package/dist/{update-cli-B98LZuzh.js → update-cli-BAkZuxEO.js} +11 -11
- package/dist/{update-runner-w1c33B-I.js → update-runner-uWq7AVhY.js} +3 -3
- 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 {
|
|
2
|
+
import { B as runWithModelFallback, Br as resolveAgentTimeoutMs, Dn as clearAgentRunContext, En as AGENT_LANE_NESTED, F as resolveOutboundTarget, I as resolveSessionDeliveryTarget, On as emitAgentEvent, Tr as loadModelCatalog, Ut as getRemoteSkillEligibility, Yt as getSkillsSnapshotVersion, _r as lookupContextTokens, br as applyVerboseOverride, c as runEmbeddedPiAgent, i as runCliAgent, jn as registerAgentRunContext, n as getCliSessionId, o as resolveSendPolicy, r as setCliSessionId, vr as clearSessionAuthProfileOverride, yr as applyModelOverrideToSessionEntry } from "./reply-LYsD96rY.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-
|
|
16
|
+
import { t as createDefaultDeps } from "./deps-qVFsEN7y.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 {
|
|
2
|
+
import { yt as require_inherits } from "./reply-LYsD96rY.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
|
+
61ff04e989d88e370fd3dadedfaa01b95d1d5cc366950670c0d6003251e75e0f
|
|
@@ -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-
|
|
5
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-fMiGyQBb.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 {
|
|
2
|
+
import { Fn as createSlackWebClient, ht as formatUsageReportLines, mt as loadProviderUsageSummary, vn as parseDiscordTarget, yn as fetchChannelPermissionsDiscord } from "./reply-LYsD96rY.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-
|
|
63
|
+
import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-edOVTcaz.js";
|
|
64
64
|
import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-ClD8Hu9T.js";
|
|
65
|
-
import "./archive-
|
|
65
|
+
import "./archive-lKJkn4tB.js";
|
|
66
66
|
import "./skill-scanner-BapBkMb3.js";
|
|
67
|
-
import "./installs-
|
|
67
|
+
import "./installs-DM0xQ8yX.js";
|
|
68
68
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-BaXwaWXv.js";
|
|
69
|
-
import { n as hasExplicitOptions } from "./plugin-registry-
|
|
70
|
-
import { t as formatCliChannelOptions } from "./channel-options-
|
|
69
|
+
import { n as hasExplicitOptions } from "./plugin-registry-fMiGyQBb.js";
|
|
70
|
+
import { t as formatCliChannelOptions } from "./channel-options-BQKMTvEb.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";
|
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-B-IYbDk-.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./pi-embedded-helpers-D5gz7ahu.js";
|
|
2
|
-
import {
|
|
2
|
+
import { pt as loadSKYKOIPlugins } from "./reply-LYsD96rY.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-
|
|
3
|
+
import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CwNCais0.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 {
|
|
1
|
+
import { A as runMessageAction, Et as formatControlUiSshHint, Ft as resolveControlUiLinks, L as formatTargetDisplay, Ot as handleReset, Pt as randomToken, Rt as waitForGatewayReachable, St as applyWizardMetadata, Tt as ensureWorkspaceAndSessions, _r as lookupContextTokens, ct as CHANNEL_TARGETS_DESCRIPTION, jt as openUrl, kt as moveToTrash, lt as CHANNEL_TARGET_DESCRIPTION, nn as runMemoryStatus, tn as registerMemoryCli, wt as detectBrowserOpenSupport, xt as DEFAULT_WORKSPACE, z as CHANNEL_MESSAGE_ACTION_NAMES } from "./reply-LYsD96rY.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-
|
|
22
|
+
import { t as createDefaultDeps } from "./deps-qVFsEN7y.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-
|
|
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 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-BdV4ib3N.js";
|
|
29
|
+
import { d as applyAuthChoice, f as applyOpenAIConfig, h as promptAuthChoiceGrouped, m as applyGoogleGeminiModelDefault, p as upsertSharedEnvVar, u as warnIfModelConfigLooksOff } from "./onboard-skills-DV2i2V1F.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-ZU1Aj7LV.js";
|
|
31
|
+
import { n as setupChannels } from "./onboard-channels-edOVTcaz.js";
|
|
32
|
+
import { l as healthCommand } from "./health-format-DvKXCjHa.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-
|
|
36
|
+
import { l as getVerboseFlag, o as getFlagValue, r as registerSubCliCommands, s as getPositiveIntFlagValue, u as hasFlag } from "./register.subclis-CwNCais0.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-
|
|
40
|
-
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
39
|
+
import { a as createOutboundSendDeps, n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-mAGmMMpi.js";
|
|
40
|
+
import { n as hasExplicitOptions, t as ensurePluginRegistryLoaded } from "./plugin-registry-fMiGyQBb.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-
|
|
42
|
+
import { i as CONFIGURE_WIZARD_SECTIONS, n as configureCommand, r as configureCommandWithSections } from "./configure-D3XHyzEv.js";
|
|
43
43
|
import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BSA8MnYc.js";
|
|
44
|
-
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-
|
|
44
|
+
import { n as loadAndMaybeMigrateDoctorConfig, t as doctorCommand } from "./doctor-DkkAz_Ng.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-D3XHyzEv.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 { At as
|
|
2
|
+
import { At as normalizeGatewayTokenInput, Dt as guardCancel, Ft as resolveControlUiLinks, Lt as summarizeExistingConfig, Mt as printWizardHeader, Nt as probeGatewayReachable, Pt as randomToken, Rt as waitForGatewayReachable, St as applyWizardMetadata, Tt as ensureWorkspaceAndSessions, xt as DEFAULT_WORKSPACE } from "./reply-LYsD96rY.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-
|
|
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-DV2i2V1F.js";
|
|
19
|
+
import { n as setupChannels, t as noteChannelStatus } from "./onboard-channels-edOVTcaz.js";
|
|
20
|
+
import { l as healthCommand, n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-DvKXCjHa.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 {
|
|
2
|
+
import { Ft as resolveControlUiLinks } from "./reply-LYsD96rY.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-
|
|
17
|
+
import { t as createDefaultDeps } from "./deps-qVFsEN7y.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 {
|
|
1
|
+
import { Mn as sendMessageWhatsApp, Pn as sendMessageSlack, bt as sendMessageIMessage, gn as sendMessageDiscord, hn as sendMessageTelegram } from "./reply-LYsD96rY.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 {
|
|
1
|
+
import { Dt as guardCancel, Mt as printWizardHeader, Pt as randomToken, St as applyWizardMetadata, Tr as loadModelCatalog, pt as loadSKYKOIPlugins } from "./reply-LYsD96rY.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-
|
|
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-DvKXCjHa.js";
|
|
29
|
+
import { c as doctorShellCompletion, t as runGatewayUpdate } from "./update-runner-uWq7AVhY.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-
|
|
247
|
+
import("./run-main-CO0kDLLK.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-D5gz7ahu.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Br as resolveAgentTimeoutMs, Ln as resolveAgentIdentity, c as runEmbeddedPiAgent } from "./reply-LYsD96rY.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
|
|
3
|
+
import { $ as writeRestartSentinel, $n as resolveTtsConfig, $t as getHookType, An as onAgentEvent, Ar as DEFAULT_INPUT_IMAGE_MIMES, B as runWithModelFallback, Bn as resolveUserTimeFormat, Br as resolveAgentTimeoutMs, Bt as buildControlUiAvatarUrl, C as resolveSessionModelRef, Cn as isAbortTrigger, Cr as isSystemEventContextChanged, D as readSessionPreviewItemsFromTranscript, Dn as clearAgentRunContext, Dr as DEFAULT_INPUT_FILE_MAX_CHARS, E as readSessionMessages, Er as DEFAULT_INPUT_FILE_MAX_BYTES, F as resolveOutboundTarget, Fr as DEFAULT_INPUT_TIMEOUT_MS, G as scheduleGatewaySigusr1Restart, Gn as triggerInternalHook, Gt as recordRemoteNodeInfo, H as authorizeGatewaySigusr1Restart, Hn as clearInternalHooks, Ht as resolveAssistantAvatarUrl, I as resolveSessionDeliveryTarget, Ir as extractFileContentFromSource, J as formatDoctorNonInteractiveHint, Jn as getTtsProvider, Jt as setSkillsRemoteRegistry, K as setGatewaySigusr1RestartPolicy, Kn as OPENAI_TTS_MODELS, Kt as refreshRemoteBinsForConnectedNodes, Ln as resolveAgentIdentity, Lr as extractImageContentFromSource, M as resolveOutboundSessionRoute, Mr as DEFAULT_INPUT_PDF_MAX_PAGES, Nn as normalizePollInput, Nr as DEFAULT_INPUT_PDF_MAX_PIXELS, O as resolveSessionTranscriptCandidates, On as emitAgentEvent, Or as DEFAULT_INPUT_FILE_MIMES, Ot as handleReset, Pr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, Qn as resolveTtsAutoMode, Qt as detectSuspiciousPatterns, R as resetDirectoryCache, Rr as normalizeMimeList, S as resolveGatewaySessionStoreTarget, Sn as formatZonedTimestamp, Sr as enqueueSystemEvent, T as capArrayByJsonBytes, Tn as initSubagentRegistry, Tr as loadModelCatalog, U as consumeGatewaySigusr1RestartAuthorization, Un as createInternalHookEvent, Ut as getRemoteSkillEligibility, Vn as resolveUserTimezone, Vt as normalizeControlUiBasePath, W as isGatewaySigusr1RestartExternallyAllowed, Wn as registerInternalHook, Wt as primeRemoteSkillsCache, Xn as isTtsProviderConfigured, Xt as registerSkillsChangeListener, Y as formatRestartSentinelMessage, Yn as isTtsEnabled, Yt as getSkillsSnapshotVersion, Z as summarizeRestartSentinel, Zn as resolveTtsApiKey, Zt as buildSafeExternalPrompt, _ as resolveAnnounceTargetFromKey, _n as getChannelActivity, _r as lookupContextTokens, a as normalizeSendPolicy, an as normalizeGroupActivation, at as normalizePayloadToSystemText, b as loadCombinedSessionStoreForGateway, bn as dispatchInboundMessage, br as applyVerboseOverride, c as runEmbeddedPiAgent, cr as CommandLane, d as waitForEmbeddedPiRunEnd, dr as isDiagnosticsEnabled, en as isExternalHookSession, er as resolveTtsPrefsPath, et as normalizeCronJobCreate, fn as getLastHeartbeatEvent, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ft as getPluginToolMeta, g as onCanvasChange, gr as stripHeartbeatToken, h as listCanvasUris, i as runCliAgent, in as createReplyPrefixOptions, ir as textToSpeech, it as normalizeOptionalText, j as ensureOutboundSessionEntry, jn as registerAgentRunContext, jr as DEFAULT_INPUT_MAX_REDIRECTS, k as stripEnvelopeFromMessages, kn as getAgentRunContext, kr as DEFAULT_INPUT_IMAGE_MAX_BYTES, l as abortEmbeddedPiRun, ln as buildHistoryContextFromEntries, lr as startDiagnosticHeartbeat, m as getCanvasResource, mt as loadProviderUsageSummary, n as getCliSessionId, nr as setTtsEnabled, nt as inferLegacyName, o as resolveSendPolicy, ot as normalizeRequiredName, p as createSKYKOITools, pn as onHeartbeatEvent, pt as loadSKYKOIPlugins, q as consumeRestartSentinel, qn as OPENAI_TTS_VOICES, qt as refreshRemoteNodeBins, r as setCliSessionId, rr as setTtsProvider, rt as normalizeOptionalAgentId, s as clearSessionQueues, sn as registerUnhandledRejectionHandler, sr as setCommandLaneConcurrency, st as migrateLegacyCronPayload, tr as resolveTtsProviderOrder, tt as normalizeCronJobPatch, un as resolveHeartbeatVisibility, ur as stopDiagnosticHeartbeat, ut as requestHeartbeatNow, v as listAgentsForGateway, vt as handleSlackHttpRequest, w as archiveFileOnDisk, wn as stopSubagentsForRequester, x as loadSessionEntry, xn as createReplyDispatcher, xr as parseVerboseOverride, y as listSessionsFromStore, yr as applyModelOverrideToSessionEntry, zn as formatUserTime, zt as CONTROL_UI_AVATAR_PREFIX } from "./reply-LYsD96rY.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-
|
|
67
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-qVFsEN7y.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-
|
|
77
|
-
import { n as installSkill } from "./onboard-skills-
|
|
78
|
-
import "./github-copilot-auth-
|
|
79
|
-
import "./onboard-channels-
|
|
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-BdV4ib3N.js";
|
|
77
|
+
import { n as installSkill } from "./onboard-skills-DV2i2V1F.js";
|
|
78
|
+
import "./github-copilot-auth-ZU1Aj7LV.js";
|
|
79
|
+
import "./onboard-channels-edOVTcaz.js";
|
|
80
80
|
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-ClD8Hu9T.js";
|
|
81
|
-
import "./archive-
|
|
81
|
+
import "./archive-lKJkn4tB.js";
|
|
82
82
|
import "./skill-scanner-BapBkMb3.js";
|
|
83
|
-
import "./installs-
|
|
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-
|
|
85
|
-
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
83
|
+
import "./installs-DM0xQ8yX.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-DvKXCjHa.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-uWq7AVhY.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-
|
|
96
|
-
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
95
|
+
import "./register.subclis-CwNCais0.js";
|
|
96
|
+
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-mAGmMMpi.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-
|
|
99
|
+
import "./completion-cli-BONN8uTE.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-
|
|
104
|
+
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-B-IYbDk-.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";
|
|
@@ -5878,6 +5878,10 @@ const BASE_METHODS = [
|
|
|
5878
5878
|
"chat.history",
|
|
5879
5879
|
"chat.abort",
|
|
5880
5880
|
"chat.send",
|
|
5881
|
+
"canvas.read",
|
|
5882
|
+
"canvas.subscribe",
|
|
5883
|
+
"canvas.unsubscribe",
|
|
5884
|
+
"canvas.list",
|
|
5881
5885
|
"mesh.announce",
|
|
5882
5886
|
"mesh.nodes.changed",
|
|
5883
5887
|
"mesh.peer.list",
|
|
@@ -7249,6 +7253,168 @@ const browserHandlers = { "browser.request": async ({ params, respond, context }
|
|
|
7249
7253
|
respond(true, result.body);
|
|
7250
7254
|
} };
|
|
7251
7255
|
|
|
7256
|
+
//#endregion
|
|
7257
|
+
//#region src/gateway/server-methods/canvas.ts
|
|
7258
|
+
/**
|
|
7259
|
+
* @module gateway/server-methods/canvas
|
|
7260
|
+
*
|
|
7261
|
+
* Gateway RPC handlers for canvas resources — the session-scoped
|
|
7262
|
+
* state documents that back every live widget (checklist, plan, fleet,
|
|
7263
|
+
* deliverables). See `infra/canvas-registry.ts` for the store itself
|
|
7264
|
+
* and the architecture plan for the full design rationale.
|
|
7265
|
+
*
|
|
7266
|
+
* Methods:
|
|
7267
|
+
* canvas.read — fetch current content + revision for a URI
|
|
7268
|
+
* canvas.subscribe — register this connection for `canvas:updated`
|
|
7269
|
+
* pings on a URI; returns current snapshot
|
|
7270
|
+
* canvas.unsubscribe — unregister (idempotent)
|
|
7271
|
+
* canvas.list — list every URI currently tracked for a session
|
|
7272
|
+
*
|
|
7273
|
+
* Notifications emitted (via the broadcaster):
|
|
7274
|
+
* `canvas:updated` — `{uri, revision, turnSeq}`; URI-only ping so the
|
|
7275
|
+
* wire stays tiny. Client re-reads via canvas.read.
|
|
7276
|
+
*
|
|
7277
|
+
* The per-URI subscription registry lives in this module — a Map of
|
|
7278
|
+
* `uri -> Set<connId>` — so the fan-out of notifications only hits
|
|
7279
|
+
* clients that actually care about the changed URI.
|
|
7280
|
+
*/
|
|
7281
|
+
const urisByConn = /* @__PURE__ */ new Map();
|
|
7282
|
+
const connsByUri = /* @__PURE__ */ new Map();
|
|
7283
|
+
function bindSubscription(connId, uri) {
|
|
7284
|
+
let uriSet = urisByConn.get(connId);
|
|
7285
|
+
if (!uriSet) {
|
|
7286
|
+
uriSet = /* @__PURE__ */ new Set();
|
|
7287
|
+
urisByConn.set(connId, uriSet);
|
|
7288
|
+
}
|
|
7289
|
+
uriSet.add(uri);
|
|
7290
|
+
let connSet = connsByUri.get(uri);
|
|
7291
|
+
if (!connSet) {
|
|
7292
|
+
connSet = /* @__PURE__ */ new Set();
|
|
7293
|
+
connsByUri.set(uri, connSet);
|
|
7294
|
+
}
|
|
7295
|
+
connSet.add(connId);
|
|
7296
|
+
}
|
|
7297
|
+
function releaseSubscription(connId, uri) {
|
|
7298
|
+
const uriSet = urisByConn.get(connId);
|
|
7299
|
+
uriSet?.delete(uri);
|
|
7300
|
+
if (uriSet && uriSet.size === 0) urisByConn.delete(connId);
|
|
7301
|
+
const connSet = connsByUri.get(uri);
|
|
7302
|
+
connSet?.delete(connId);
|
|
7303
|
+
if (connSet && connSet.size === 0) connsByUri.delete(uri);
|
|
7304
|
+
}
|
|
7305
|
+
/** Drop every subscription for a disconnected connection. */
|
|
7306
|
+
function releaseAllSubscriptionsForConn(connId) {
|
|
7307
|
+
const uris = urisByConn.get(connId);
|
|
7308
|
+
if (!uris) return;
|
|
7309
|
+
for (const uri of uris) {
|
|
7310
|
+
const connSet = connsByUri.get(uri);
|
|
7311
|
+
connSet?.delete(connId);
|
|
7312
|
+
if (connSet && connSet.size === 0) connsByUri.delete(uri);
|
|
7313
|
+
}
|
|
7314
|
+
urisByConn.delete(connId);
|
|
7315
|
+
}
|
|
7316
|
+
/**
|
|
7317
|
+
* Register the canvas-change → broadcaster bridge. Call this once at
|
|
7318
|
+
* gateway startup. Whenever the registry mutates, we find the set of
|
|
7319
|
+
* connections subscribed to that URI and send each a `canvas:updated`
|
|
7320
|
+
* notification with just `{uri, revision, turnSeq}`.
|
|
7321
|
+
*/
|
|
7322
|
+
function wireCanvasBroadcast(broadcastToConnIds) {
|
|
7323
|
+
return onCanvasChange((resource) => {
|
|
7324
|
+
const conns = connsByUri.get(resource.uri);
|
|
7325
|
+
if (!conns || conns.size === 0) return;
|
|
7326
|
+
broadcastToConnIds("canvas:updated", {
|
|
7327
|
+
uri: resource.uri,
|
|
7328
|
+
revision: resource.revision,
|
|
7329
|
+
turnSeq: resource.turnSeq
|
|
7330
|
+
}, conns, { dropIfSlow: true });
|
|
7331
|
+
});
|
|
7332
|
+
}
|
|
7333
|
+
const canvasHandlers = {
|
|
7334
|
+
"canvas.read": ({ params, respond }) => {
|
|
7335
|
+
const uri = typeof params?.uri === "string" ? params.uri : "";
|
|
7336
|
+
if (!uri) {
|
|
7337
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "missing uri"));
|
|
7338
|
+
return;
|
|
7339
|
+
}
|
|
7340
|
+
const resource = getCanvasResource(uri);
|
|
7341
|
+
if (!resource) {
|
|
7342
|
+
respond(true, {
|
|
7343
|
+
uri,
|
|
7344
|
+
exists: false,
|
|
7345
|
+
revision: 0,
|
|
7346
|
+
turnSeq: 0,
|
|
7347
|
+
content: null
|
|
7348
|
+
});
|
|
7349
|
+
return;
|
|
7350
|
+
}
|
|
7351
|
+
respond(true, {
|
|
7352
|
+
uri: resource.uri,
|
|
7353
|
+
exists: true,
|
|
7354
|
+
revision: resource.revision,
|
|
7355
|
+
turnSeq: resource.turnSeq,
|
|
7356
|
+
content: resource.content,
|
|
7357
|
+
updatedAt: resource.updatedAt
|
|
7358
|
+
});
|
|
7359
|
+
},
|
|
7360
|
+
"canvas.subscribe": ({ params, respond, client }) => {
|
|
7361
|
+
const uri = typeof params?.uri === "string" ? params.uri : "";
|
|
7362
|
+
const sinceRev = typeof params?.sinceRev === "number" ? params.sinceRev : void 0;
|
|
7363
|
+
const connId = client?.connId;
|
|
7364
|
+
if (!uri) {
|
|
7365
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "missing uri"));
|
|
7366
|
+
return;
|
|
7367
|
+
}
|
|
7368
|
+
if (!connId) {
|
|
7369
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "no connection id"));
|
|
7370
|
+
return;
|
|
7371
|
+
}
|
|
7372
|
+
bindSubscription(connId, uri);
|
|
7373
|
+
const resource = getCanvasResource(uri);
|
|
7374
|
+
const resync = !!(sinceRev !== void 0 && resource && resource.revision > sinceRev + 1);
|
|
7375
|
+
respond(true, {
|
|
7376
|
+
uri,
|
|
7377
|
+
exists: !!resource,
|
|
7378
|
+
revision: resource?.revision ?? 0,
|
|
7379
|
+
turnSeq: resource?.turnSeq ?? 0,
|
|
7380
|
+
content: resource?.content ?? null,
|
|
7381
|
+
updatedAt: resource?.updatedAt,
|
|
7382
|
+
resync
|
|
7383
|
+
});
|
|
7384
|
+
},
|
|
7385
|
+
"canvas.unsubscribe": ({ params, respond, client }) => {
|
|
7386
|
+
const uri = typeof params?.uri === "string" ? params.uri : "";
|
|
7387
|
+
const connId = client?.connId;
|
|
7388
|
+
if (!uri) {
|
|
7389
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "missing uri"));
|
|
7390
|
+
return;
|
|
7391
|
+
}
|
|
7392
|
+
if (!connId) {
|
|
7393
|
+
respond(true, {
|
|
7394
|
+
uri,
|
|
7395
|
+
unsubscribed: false
|
|
7396
|
+
});
|
|
7397
|
+
return;
|
|
7398
|
+
}
|
|
7399
|
+
releaseSubscription(connId, uri);
|
|
7400
|
+
respond(true, {
|
|
7401
|
+
uri,
|
|
7402
|
+
unsubscribed: true
|
|
7403
|
+
});
|
|
7404
|
+
},
|
|
7405
|
+
"canvas.list": ({ params, respond }) => {
|
|
7406
|
+
const sessionKey = typeof params?.sessionKey === "string" ? params.sessionKey : "";
|
|
7407
|
+
if (!sessionKey) {
|
|
7408
|
+
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "missing sessionKey"));
|
|
7409
|
+
return;
|
|
7410
|
+
}
|
|
7411
|
+
respond(true, {
|
|
7412
|
+
sessionKey,
|
|
7413
|
+
uris: listCanvasUris(sessionKey)
|
|
7414
|
+
});
|
|
7415
|
+
}
|
|
7416
|
+
};
|
|
7417
|
+
|
|
7252
7418
|
//#endregion
|
|
7253
7419
|
//#region src/gateway/server-methods/mesh.ts
|
|
7254
7420
|
/**
|
|
@@ -10588,7 +10754,7 @@ const nodeHandlers = {
|
|
|
10588
10754
|
const p = params;
|
|
10589
10755
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
10590
10756
|
await respondUnavailableOnThrow(respond, async () => {
|
|
10591
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
10757
|
+
const { handleNodeEvent } = await import("./server-node-events-CW3dUZdH.js");
|
|
10592
10758
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
10593
10759
|
await handleNodeEvent({
|
|
10594
10760
|
deps: context.deps,
|
|
@@ -13021,7 +13187,11 @@ const READ_METHODS = new Set([
|
|
|
13021
13187
|
"node.describe",
|
|
13022
13188
|
"chat.history",
|
|
13023
13189
|
"mesh.peer.list",
|
|
13024
|
-
"mesh.ping"
|
|
13190
|
+
"mesh.ping",
|
|
13191
|
+
"canvas.read",
|
|
13192
|
+
"canvas.subscribe",
|
|
13193
|
+
"canvas.unsubscribe",
|
|
13194
|
+
"canvas.list"
|
|
13025
13195
|
]);
|
|
13026
13196
|
const WRITE_METHODS = new Set([
|
|
13027
13197
|
"send",
|
|
@@ -13091,6 +13261,7 @@ const coreGatewayHandlers = {
|
|
|
13091
13261
|
...agentHandlers,
|
|
13092
13262
|
...agentsHandlers,
|
|
13093
13263
|
...browserHandlers,
|
|
13264
|
+
...canvasHandlers,
|
|
13094
13265
|
...meshHandlers,
|
|
13095
13266
|
...credentialsHandlers
|
|
13096
13267
|
};
|
|
@@ -17012,6 +17183,7 @@ async function createGatewayRuntimeState(params) {
|
|
|
17012
17183
|
const removeChatRun = chatRunRegistry.remove;
|
|
17013
17184
|
const chatAbortControllers = /* @__PURE__ */ new Map();
|
|
17014
17185
|
const toolEventRecipients = createToolEventRecipientRegistry();
|
|
17186
|
+
wireCanvasBroadcast(broadcastToConnIds);
|
|
17015
17187
|
return {
|
|
17016
17188
|
canvasHost,
|
|
17017
17189
|
httpServer,
|
|
@@ -18613,6 +18785,7 @@ function attachGatewayWsConnectionHandler(params) {
|
|
|
18613
18785
|
const nodeId = context.nodeRegistry.unregister(connId);
|
|
18614
18786
|
if (nodeId) context.nodeUnsubscribeAll(nodeId);
|
|
18615
18787
|
}
|
|
18788
|
+
releaseAllSubscriptionsForConn(connId);
|
|
18616
18789
|
logWs("out", "close", {
|
|
18617
18790
|
connId,
|
|
18618
18791
|
code,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { pt as loadSKYKOIPlugins } from "./reply-LYsD96rY.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 {
|
|
1
|
+
import { N as resolveHeartbeatDeliveryTarget, P as resolveHeartbeatSenderContext, Rn as resolveEffectiveMessagesConfig, Vn as resolveUserTimezone, ar as enqueueCommandInLane, cr as CommandLane, dn as emitHeartbeatEvent, dt as setHeartbeatWakeHandler, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, gr as stripHeartbeatToken, hr as resolveHeartbeatPrompt$1, mn as resolveIndicatorType, mr as isHeartbeatContentEffectivelyEmpty, or as getQueueSize, pr as DEFAULT_HEARTBEAT_EVERY, t as getReplyFromConfig, u as isEmbeddedPiRunActive, un as resolveHeartbeatVisibility, ut as requestHeartbeatNow, wr as peekSystemEvents } from "./reply-LYsD96rY.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-
|
|
2
|
+
import "./reply-LYsD96rY.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-
|
|
58
|
+
import { a as resolvePackedRootDir, i as resolveArchiveKind, n as fileExists, r as readJsonFile, t as extractArchive } from "./archive-lKJkn4tB.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-
|
|
61
|
+
import { t as buildPluginStatusReport } from "./status-CiuH86Fv.js";
|
|
62
62
|
import fs from "node:fs";
|
|
63
63
|
import path from "node:path";
|
|
64
64
|
import os from "node:os";
|