@skaile/workspaces 0.26.0 → 0.27.0
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/CHANGELOG.md +48 -0
- package/dist/{asset-feeds-WMVTI7KW.js → asset-feeds-DGZO27M7.js} +17 -10
- package/dist/asset-feeds-DGZO27M7.js.map +1 -0
- package/dist/asset-manager/index.js +7 -7
- package/dist/asset-manager/installer.js +6 -6
- package/dist/bridge/drivers/claude-sdk.js +2 -2
- package/dist/bridge/drivers/codex.js +1 -1
- package/dist/bridge/drivers/continue.d.ts +2 -0
- package/dist/bridge/drivers/continue.js +103 -0
- package/dist/bridge/drivers/continue.js.map +1 -0
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.d.ts +2 -0
- package/dist/bridge/drivers/gemini.js +10 -0
- package/dist/bridge/drivers/gemini.js.map +1 -0
- package/dist/bridge/drivers/goose.d.ts +2 -0
- package/dist/bridge/drivers/goose.js +88 -0
- package/dist/bridge/drivers/goose.js.map +1 -0
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.d.ts +2 -0
- package/dist/bridge/drivers/opencode.js +99 -0
- package/dist/bridge/drivers/opencode.js.map +1 -0
- package/dist/bridge/drivers/qwen.d.ts +2 -0
- package/dist/bridge/drivers/qwen.js +57 -0
- package/dist/bridge/drivers/qwen.js.map +1 -0
- package/dist/bridge/index.js +3 -3
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts +136 -0
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +1 -0
- package/dist/bridge/src/drivers/continue.d.ts +43 -0
- package/dist/bridge/src/drivers/continue.d.ts.map +1 -0
- package/dist/bridge/src/drivers/gemini.d.ts +55 -0
- package/dist/bridge/src/drivers/gemini.d.ts.map +1 -0
- package/dist/bridge/src/drivers/goose.d.ts +42 -0
- package/dist/bridge/src/drivers/goose.d.ts.map +1 -0
- package/dist/bridge/src/drivers/opencode.d.ts +43 -0
- package/dist/bridge/src/drivers/opencode.d.ts.map +1 -0
- package/dist/bridge/src/drivers/qwen.d.ts +39 -0
- package/dist/bridge/src/drivers/qwen.d.ts.map +1 -0
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/{chunk-XGLGS5B4.js → chunk-2NOE4AGD.js} +3 -3
- package/dist/{chunk-XGLGS5B4.js.map → chunk-2NOE4AGD.js.map} +1 -1
- package/dist/{chunk-Z5DI7PDG.js → chunk-3QQSSRYN.js} +29 -5
- package/dist/chunk-3QQSSRYN.js.map +1 -0
- package/dist/{chunk-7OBGSR7O.js → chunk-3ZER5DST.js} +4 -4
- package/dist/{chunk-7OBGSR7O.js.map → chunk-3ZER5DST.js.map} +1 -1
- package/dist/chunk-5RBPPBEK.js +110 -0
- package/dist/chunk-5RBPPBEK.js.map +1 -0
- package/dist/chunk-5V5KZQIC.js +445 -0
- package/dist/chunk-5V5KZQIC.js.map +1 -0
- package/dist/{chunk-PY7AQRGH.js → chunk-A4ASAIKK.js} +6 -6
- package/dist/{chunk-PY7AQRGH.js.map → chunk-A4ASAIKK.js.map} +1 -1
- package/dist/{chunk-23M4XZQW.js → chunk-AKSR434V.js} +3 -3
- package/dist/{chunk-23M4XZQW.js.map → chunk-AKSR434V.js.map} +1 -1
- package/dist/{chunk-QHXS3YDV.js → chunk-BUL5H6J7.js} +5 -5
- package/dist/{chunk-QHXS3YDV.js.map → chunk-BUL5H6J7.js.map} +1 -1
- package/dist/{chunk-ZYDE52WE.js → chunk-DGM74UP4.js} +3 -3
- package/dist/{chunk-ZYDE52WE.js.map → chunk-DGM74UP4.js.map} +1 -1
- package/dist/{chunk-C32BRO2W.js → chunk-FWHOU3CX.js} +3 -3
- package/dist/{chunk-C32BRO2W.js.map → chunk-FWHOU3CX.js.map} +1 -1
- package/dist/{chunk-WSZAFRQL.js → chunk-GYPA2Q7F.js} +6 -5
- package/dist/chunk-GYPA2Q7F.js.map +1 -0
- package/dist/{chunk-KL2MQ6WI.js → chunk-M4KLIEIJ.js} +3 -3
- package/dist/{chunk-KL2MQ6WI.js.map → chunk-M4KLIEIJ.js.map} +1 -1
- package/dist/{chunk-WD4LP66U.js → chunk-MZDXEFXF.js} +22 -13
- package/dist/chunk-MZDXEFXF.js.map +1 -0
- package/dist/{chunk-BKF3UFF4.js → chunk-SF4GWVR5.js} +4 -4
- package/dist/{chunk-BKF3UFF4.js.map → chunk-SF4GWVR5.js.map} +1 -1
- package/dist/{chunk-BQRRBGDE.js → chunk-UAW7VRAL.js} +2 -2
- package/dist/{chunk-BQRRBGDE.js.map → chunk-UAW7VRAL.js.map} +1 -1
- package/dist/{chunk-4SQ6Y6U7.js → chunk-UBCZVONU.js} +3 -3
- package/dist/{chunk-4SQ6Y6U7.js.map → chunk-UBCZVONU.js.map} +1 -1
- package/dist/{chunk-YRU4WB6Y.js → chunk-UIZKIUC6.js} +3 -3
- package/dist/{chunk-YRU4WB6Y.js.map → chunk-UIZKIUC6.js.map} +1 -1
- package/dist/{chunk-RTAIGPTF.js → chunk-WRRYESHC.js} +4 -85
- package/dist/chunk-WRRYESHC.js.map +1 -0
- package/dist/{chunk-YDTW4GT6.js → chunk-XHBPQ7QP.js} +5 -5
- package/dist/{chunk-YDTW4GT6.js.map → chunk-XHBPQ7QP.js.map} +1 -1
- package/dist/chunk-Z3XXKR5E.js +88 -0
- package/dist/chunk-Z3XXKR5E.js.map +1 -0
- package/dist/{chunk-45H3UO2R.js → chunk-ZEKWHJBB.js} +52 -2
- package/dist/chunk-ZEKWHJBB.js.map +1 -0
- package/dist/cli/index.js +213 -104
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/asset-feeds.d.ts +14 -1
- package/dist/cli/src/asset-feeds.d.ts.map +1 -1
- package/dist/cli/src/commands/manage.d.ts +46 -23
- package/dist/cli/src/commands/manage.d.ts.map +1 -1
- package/dist/cli/src/helpers.d.ts +10 -1
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/connectors/config.js +6 -6
- package/dist/connectors/index.js +8 -8
- package/dist/core/index.js +5 -5
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/workspace-config.d.ts +10 -1
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +5 -5
- package/dist/{ensure-sources-CVULUVH4.js → ensure-sources-KQQEUDKM.js} +11 -10
- package/dist/ensure-sources-KQQEUDKM.js.map +1 -0
- package/dist/factory-assets/connectors/deploy.js +8 -8
- package/dist/factory-assets/connectors/devserver.js +8 -8
- package/dist/factory-assets/connectors/flow/adapter.js +8 -8
- package/dist/factory-assets/connectors/flow/engine.js +5 -5
- package/dist/factory-assets/connectors/flow/run-flow.js +9 -9
- package/dist/factory-assets/connectors/flow.js +8 -8
- package/dist/factory-assets/connectors/git.js +8 -8
- package/dist/factory-assets/connectors/gmail.js +8 -8
- package/dist/factory-assets/connectors/googledrive.js +8 -8
- package/dist/factory-assets/connectors/local.js +8 -8
- package/dist/factory-assets/connectors/mattermost.js +8 -8
- package/dist/factory-assets/connectors/memory.js +8 -8
- package/dist/factory-assets/connectors/minio.js +8 -8
- package/dist/factory-assets/connectors/postgres.js +8 -8
- package/dist/factory-assets/connectors/s3.js +8 -8
- package/dist/factory-assets/connectors/sharepoint.js +8 -8
- package/dist/factory-assets/connectors/sqlite.js +8 -8
- package/dist/factory-assets/connectors/static-server.js +8 -8
- package/dist/factory-assets/connectors/tunnel.js +8 -8
- package/dist/factory-assets/connectors/webdav.js +8 -8
- package/dist/factory-assets/connectors/xstate-store.js +8 -8
- package/dist/factory-assets/connectors/xstate.js +8 -8
- package/dist/{flows-JZFJD5IN.js → flows-L3GHQD7F.js} +4 -4
- package/dist/{flows-JZFJD5IN.js.map → flows-L3GHQD7F.js.map} +1 -1
- package/dist/helpers-F4NZ66VD.js +4 -0
- package/dist/{helpers-LTN3HMD3.js.map → helpers-F4NZ66VD.js.map} +1 -1
- package/dist/library/index.js +8 -7
- package/dist/library/install.d.ts +2 -0
- package/dist/library/install.js +16 -0
- package/dist/library/install.js.map +1 -0
- package/dist/library/src/install/index.d.ts +3 -0
- package/dist/library/src/install/index.d.ts.map +1 -0
- package/dist/{open-library-WYASW4BH.js → open-library-I7YTADMD.js} +12 -11
- package/dist/{open-library-WYASW4BH.js.map → open-library-I7YTADMD.js.map} +1 -1
- package/dist/{paths-BMW6JYW6.js → paths-CE66L3AL.js} +8 -8
- package/dist/{paths-BMW6JYW6.js.map → paths-CE66L3AL.js.map} +1 -1
- package/dist/{plugin-store-O5VR45CA.js → plugin-store-GL5VKYUA.js} +7 -7
- package/dist/{plugin-store-O5VR45CA.js.map → plugin-store-GL5VKYUA.js.map} +1 -1
- package/dist/runner/index.js +14 -14
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +7 -7
- package/dist/sdk/bridge.js +3 -3
- package/dist/sdk/core.js +5 -5
- package/dist/sdk/flow.js +5 -5
- package/dist/sdk/index.js +14 -14
- package/dist/sdk/runner.js +14 -14
- package/dist/{setup-YNLFR5GB.js → setup-4YMN2BDU.js} +10 -10
- package/dist/{setup-YNLFR5GB.js.map → setup-4YMN2BDU.js.map} +1 -1
- package/dist/{store-client-CENBEASX.js → store-client-BCP5LCAZ.js} +8 -8
- package/dist/{store-client-CENBEASX.js.map → store-client-BCP5LCAZ.js.map} +1 -1
- package/dist/tui/index.js +14 -14
- package/dist/workspace-plugin/adapters/mcp.js +3 -3
- package/dist/workspace-plugin/adapters/omp.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +37 -1
- package/dist/asset-feeds-WMVTI7KW.js.map +0 -1
- package/dist/chunk-45H3UO2R.js.map +0 -1
- package/dist/chunk-RTAIGPTF.js.map +0 -1
- package/dist/chunk-WD4LP66U.js.map +0 -1
- package/dist/chunk-WSZAFRQL.js.map +0 -1
- package/dist/chunk-Z5DI7PDG.js.map +0 -1
- package/dist/ensure-sources-CVULUVH4.js.map +0 -1
- package/dist/helpers-LTN3HMD3.js +0 -4
package/dist/cli/index.js
CHANGED
|
@@ -1,52 +1,53 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-3ZER5DST.js';
|
|
3
|
+
import { logErr, S, logOk, colorRef, logInfo, logWarn, kindColorPad, kindColor, formatRelativeTime, fitWidth } from '../chunk-GYPA2Q7F.js';
|
|
4
|
+
import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-2NOE4AGD.js';
|
|
5
|
+
import { AI_RESOURCES, aiResourceRoots } from '../chunk-UBCZVONU.js';
|
|
6
6
|
import { LocalSecretsProvider } from '../chunk-7GWYRVAX.js';
|
|
7
|
-
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-
|
|
8
|
-
import '../chunk-R7FOF242.js';
|
|
7
|
+
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-WRRYESHC.js';
|
|
9
8
|
import '../chunk-JIQLLZ65.js';
|
|
9
|
+
import '../chunk-Z3XXKR5E.js';
|
|
10
|
+
import '../chunk-R7FOF242.js';
|
|
10
11
|
import '../chunk-OKRUTSG7.js';
|
|
11
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
12
|
+
import { runFlow, resumeFlow } from '../chunk-BUL5H6J7.js';
|
|
12
13
|
import '../chunk-ZONCCO5N.js';
|
|
13
14
|
import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-TV72ZJYN.js';
|
|
14
|
-
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-
|
|
15
|
-
import { buildClaudePluginFiles } from '../chunk-
|
|
15
|
+
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-MZDXEFXF.js';
|
|
16
|
+
import { buildClaudePluginFiles } from '../chunk-UAW7VRAL.js';
|
|
16
17
|
import '../chunk-X5YPJV4N.js';
|
|
17
|
-
import '../chunk-TDSRLMDB.js';
|
|
18
18
|
import '../chunk-O7SG5PC2.js';
|
|
19
19
|
import '../chunk-7QBNJTTQ.js';
|
|
20
20
|
import '../chunk-GTS2FODO.js';
|
|
21
21
|
import '../chunk-WQ7DE5UC.js';
|
|
22
22
|
import '../chunk-32NA4TVC.js';
|
|
23
23
|
import '../chunk-W3UDISS2.js';
|
|
24
|
-
import '../chunk-
|
|
24
|
+
import '../chunk-TDSRLMDB.js';
|
|
25
|
+
import '../chunk-AKSR434V.js';
|
|
26
|
+
import '../chunk-RRVQAE5D.js';
|
|
25
27
|
import '../chunk-BMQKMOQY.js';
|
|
26
28
|
import '../chunk-PAYAFNXG.js';
|
|
27
|
-
import '../chunk-
|
|
28
|
-
import '../chunk-45H3UO2R.js';
|
|
29
|
+
import '../chunk-ZEKWHJBB.js';
|
|
29
30
|
import '../chunk-LV2HPH3C.js';
|
|
30
|
-
import '../chunk-
|
|
31
|
-
import '../chunk-ZYDE52WE.js';
|
|
32
|
-
import '../chunk-QMONOHXT.js';
|
|
31
|
+
import '../chunk-XHBPQ7QP.js';
|
|
33
32
|
import '../chunk-OVRSNIKJ.js';
|
|
33
|
+
import '../chunk-DGM74UP4.js';
|
|
34
|
+
import '../chunk-QMONOHXT.js';
|
|
34
35
|
import '../chunk-6E6PKKAD.js';
|
|
35
36
|
import { loadFlow, loadAllFlows } from '../chunk-W7W66MDZ.js';
|
|
36
37
|
import '../chunk-DEYYRFQU.js';
|
|
37
38
|
import '../chunk-IFGTRL2I.js';
|
|
38
|
-
import { AssetManager } from '../chunk-
|
|
39
|
-
import '../chunk-
|
|
40
|
-
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-
|
|
41
|
-
import
|
|
42
|
-
import {
|
|
43
|
-
import '../chunk-C32BRO2W.js';
|
|
44
|
-
import { resolveAgentDir, resolveSkWorkspaceConfig, findWorkspaceRoot, workspaceConfigFilename } from '../chunk-Z5DI7PDG.js';
|
|
39
|
+
import { AssetManager } from '../chunk-A4ASAIKK.js';
|
|
40
|
+
import '../chunk-SF4GWVR5.js';
|
|
41
|
+
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-M4KLIEIJ.js';
|
|
42
|
+
import '../chunk-FWHOU3CX.js';
|
|
43
|
+
import { resolveAgentDir, resolveSkWorkspaceConfig, findWorkspaceRoot, workspaceConfigFilename } from '../chunk-3QQSSRYN.js';
|
|
45
44
|
import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest } from '../chunk-IERB3UXJ.js';
|
|
46
45
|
import { parseFrontmatter } from '../chunk-2FS4FPZ7.js';
|
|
47
46
|
import { ASSET_KINDS, parseAssetRef, isValidAssetName, ASSET_NAME_HINT, assetRefToStr } from '../chunk-IEJ5IOC3.js';
|
|
48
47
|
import '../chunk-JKNWJ64A.js';
|
|
49
48
|
import { SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
|
|
49
|
+
import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
|
|
50
|
+
import { assetSearchDirs, detectDomains } from '../chunk-ZAP2BDHG.js';
|
|
50
51
|
import { openSqlite } from '../chunk-24UIWON4.js';
|
|
51
52
|
import '../chunk-KTBKW2FI.js';
|
|
52
53
|
import '../chunk-UQ6LFBPZ.js';
|
|
@@ -311,7 +312,7 @@ function makeSearchCommand() {
|
|
|
311
312
|
}
|
|
312
313
|
if (showStore) {
|
|
313
314
|
try {
|
|
314
|
-
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-
|
|
315
|
+
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-BCP5LCAZ.js');
|
|
315
316
|
const config = getStoreConfig2();
|
|
316
317
|
const params = {};
|
|
317
318
|
if (query) params.q = query;
|
|
@@ -473,7 +474,7 @@ function makeCatalogCommand() {
|
|
|
473
474
|
const cfg = resolveConfig({ projectDir });
|
|
474
475
|
const baseUrl = opts.url ?? cfg.catalog.url;
|
|
475
476
|
if (isLocalCatalogUrl(baseUrl)) {
|
|
476
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
477
|
+
const { resolveCatalogSource } = await import('../open-library-I7YTADMD.js');
|
|
477
478
|
let resolved;
|
|
478
479
|
try {
|
|
479
480
|
resolved = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
@@ -1471,7 +1472,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
1471
1472
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
1472
1473
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
1473
1474
|
if (config.plugins && config.plugins.length > 0) {
|
|
1474
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
1475
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-GL5VKYUA.js');
|
|
1475
1476
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
1476
1477
|
for (const f of result.failed) logWarn(f.error);
|
|
1477
1478
|
}
|
|
@@ -2231,6 +2232,14 @@ function makeLogsCommand() {
|
|
|
2231
2232
|
}
|
|
2232
2233
|
);
|
|
2233
2234
|
}
|
|
2235
|
+
var ORIGIN_META = {
|
|
2236
|
+
library: { icon: "\u{1F4DA}", label: "Library" },
|
|
2237
|
+
source: { icon: "\u{1F517}", label: "Sources" },
|
|
2238
|
+
store: { icon: "\u{1F4E6}", label: "Store" }
|
|
2239
|
+
};
|
|
2240
|
+
var ORIGIN_ORDER = ["library", "source", "store"];
|
|
2241
|
+
var srcKey = (origin, publisher) => `${origin}:${publisher}`;
|
|
2242
|
+
var repoKey = (origin, publisher, repo) => `${origin}:${publisher}:${repo}`;
|
|
2234
2243
|
var am;
|
|
2235
2244
|
var state = {
|
|
2236
2245
|
tab: "assets",
|
|
@@ -2241,39 +2250,61 @@ var state = {
|
|
|
2241
2250
|
visibleRows: [],
|
|
2242
2251
|
pendingAdds: /* @__PURE__ */ new Set(),
|
|
2243
2252
|
pendingRemoves: /* @__PURE__ */ new Set(),
|
|
2253
|
+
collapsedOrigins: /* @__PURE__ */ new Set(),
|
|
2244
2254
|
collapsedSources: /* @__PURE__ */ new Set(),
|
|
2245
2255
|
collapsedRepos: /* @__PURE__ */ new Set(),
|
|
2256
|
+
seenOrigins: /* @__PURE__ */ new Set(),
|
|
2257
|
+
originFilter: null,
|
|
2246
2258
|
message: "",
|
|
2247
2259
|
cols: 80,
|
|
2248
2260
|
awaitingExitConfirm: false
|
|
2249
2261
|
};
|
|
2250
|
-
function buildVisibleRows(rows, collapsedSources, collapsedRepos) {
|
|
2262
|
+
function buildVisibleRows(rows, collapsedOrigins, collapsedSources, collapsedRepos, originFilter = null) {
|
|
2251
2263
|
return rows.filter((row) => {
|
|
2264
|
+
const origin = rowOrigin(row);
|
|
2265
|
+
if (originFilter && origin !== originFilter) return false;
|
|
2266
|
+
if (row.type === "origin-header") return true;
|
|
2267
|
+
if (collapsedOrigins.has(origin)) return false;
|
|
2252
2268
|
if (row.type === "publisher-header") return true;
|
|
2253
2269
|
if (row.type === "repo-header") {
|
|
2254
|
-
return !collapsedSources.has(row.source);
|
|
2270
|
+
return !collapsedSources.has(srcKey(origin, row.source));
|
|
2255
2271
|
}
|
|
2256
|
-
const publisher = row
|
|
2257
|
-
if (collapsedSources.has(publisher)) return false;
|
|
2258
|
-
const repo = row
|
|
2259
|
-
return repo === "" || !collapsedRepos.has(
|
|
2272
|
+
const publisher = rowPublisher(row);
|
|
2273
|
+
if (collapsedSources.has(srcKey(origin, publisher))) return false;
|
|
2274
|
+
const repo = rowRepo(row);
|
|
2275
|
+
return repo === "" || !collapsedRepos.has(repoKey(origin, publisher, repo));
|
|
2260
2276
|
});
|
|
2261
2277
|
}
|
|
2262
|
-
function
|
|
2263
|
-
return rows.filter((r) => isAsset(r) &&
|
|
2278
|
+
function originAssetRefs(rows, origin) {
|
|
2279
|
+
return refsOf(rows.filter((r) => isAsset(r) && rowOrigin(r) === origin));
|
|
2280
|
+
}
|
|
2281
|
+
function repoAssetRefs(rows, origin, publisher, repo) {
|
|
2282
|
+
return refsOf(rows.filter((r) => isAsset(r) && inRepo(r, origin, publisher, repo)));
|
|
2264
2283
|
}
|
|
2265
|
-
function sourceAssetRefs(rows, source) {
|
|
2266
|
-
return rows.filter((r) => isAsset(r) && inSource(r, source))
|
|
2284
|
+
function sourceAssetRefs(rows, origin, source) {
|
|
2285
|
+
return refsOf(rows.filter((r) => isAsset(r) && inSource(r, origin, source)));
|
|
2267
2286
|
}
|
|
2268
2287
|
function isAsset(r) {
|
|
2269
2288
|
return r.type === "asset";
|
|
2270
2289
|
}
|
|
2271
|
-
function
|
|
2272
|
-
return
|
|
2290
|
+
function rowOrigin(r) {
|
|
2291
|
+
return r.origin ?? "source";
|
|
2273
2292
|
}
|
|
2274
|
-
function
|
|
2275
|
-
|
|
2276
|
-
|
|
2293
|
+
function rowPublisher(r) {
|
|
2294
|
+
return r.entry?.publisher || "other";
|
|
2295
|
+
}
|
|
2296
|
+
function rowRepo(r) {
|
|
2297
|
+
return r.entry?.repo || "";
|
|
2298
|
+
}
|
|
2299
|
+
function refsOf(rows) {
|
|
2300
|
+
return rows.map((r) => assetRefOf(r)).filter((ref) => ref !== null);
|
|
2301
|
+
}
|
|
2302
|
+
function inSource(r, origin, source) {
|
|
2303
|
+
return rowOrigin(r) === origin && rowPublisher(r) === source;
|
|
2304
|
+
}
|
|
2305
|
+
function inRepo(r, origin, publisher, repo) {
|
|
2306
|
+
if (!inSource(r, origin, publisher)) return false;
|
|
2307
|
+
return rowRepo(r) === repo;
|
|
2277
2308
|
}
|
|
2278
2309
|
function assetRefOf(r) {
|
|
2279
2310
|
if (!isAsset(r) || !r.entry?.publisher) return null;
|
|
@@ -2319,62 +2350,84 @@ function bulkSelection(refs, action3) {
|
|
|
2319
2350
|
for (const ref of refs) setSelection(ref, action3);
|
|
2320
2351
|
}
|
|
2321
2352
|
function actOnHeader(row, action3) {
|
|
2353
|
+
if (row.type === "origin-header") {
|
|
2354
|
+
bulkSelection(originAssetRefs(state.assetRows, rowOrigin(row)), action3);
|
|
2355
|
+
return true;
|
|
2356
|
+
}
|
|
2322
2357
|
if (row.type === "publisher-header") {
|
|
2323
|
-
bulkSelection(sourceAssetRefs(state.assetRows, row.source), action3);
|
|
2358
|
+
bulkSelection(sourceAssetRefs(state.assetRows, rowOrigin(row), row.source), action3);
|
|
2324
2359
|
return true;
|
|
2325
2360
|
}
|
|
2326
2361
|
if (row.type === "repo-header") {
|
|
2327
|
-
bulkSelection(repoAssetRefs(state.assetRows, row.source, row.repo), action3);
|
|
2362
|
+
bulkSelection(repoAssetRefs(state.assetRows, rowOrigin(row), row.source, row.repo), action3);
|
|
2328
2363
|
return true;
|
|
2329
2364
|
}
|
|
2330
2365
|
return false;
|
|
2331
2366
|
}
|
|
2332
2367
|
async function loadAssets() {
|
|
2333
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
2368
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-DGZO27M7.js');
|
|
2334
2369
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
2335
2370
|
if (notes.length > 0) {
|
|
2336
2371
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
2337
2372
|
}
|
|
2338
2373
|
const installed = new Set(am.listDeployed().map((e) => `${e.kind}:${e.name}`));
|
|
2339
|
-
const
|
|
2340
|
-
for (const
|
|
2341
|
-
const publisher =
|
|
2342
|
-
const repo =
|
|
2374
|
+
const byOrigin = /* @__PURE__ */ new Map();
|
|
2375
|
+
for (const { origin, entry } of entries) {
|
|
2376
|
+
const publisher = entry.publisher || "other";
|
|
2377
|
+
const repo = entry.repo || "";
|
|
2378
|
+
if (!byOrigin.has(origin)) byOrigin.set(origin, /* @__PURE__ */ new Map());
|
|
2379
|
+
const byPublisher = byOrigin.get(origin);
|
|
2343
2380
|
if (!byPublisher.has(publisher)) byPublisher.set(publisher, /* @__PURE__ */ new Map());
|
|
2344
2381
|
const byRepo = byPublisher.get(publisher);
|
|
2345
2382
|
if (!byRepo.has(repo)) byRepo.set(repo, []);
|
|
2346
|
-
byRepo.get(repo).push(
|
|
2383
|
+
byRepo.get(repo).push(entry);
|
|
2347
2384
|
}
|
|
2348
2385
|
const rows = [];
|
|
2349
|
-
for (const
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
rows.push({ type: "
|
|
2353
|
-
const
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
);
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2386
|
+
for (const origin of ORIGIN_ORDER) {
|
|
2387
|
+
const byPublisher = byOrigin.get(origin);
|
|
2388
|
+
if (!byPublisher || byPublisher.size === 0) continue;
|
|
2389
|
+
rows.push({ type: "origin-header", origin });
|
|
2390
|
+
for (const [publisher, byRepo] of [...byPublisher.entries()].sort(
|
|
2391
|
+
(a, b) => a[0].localeCompare(b[0])
|
|
2392
|
+
)) {
|
|
2393
|
+
rows.push({ type: "publisher-header", origin, source: publisher });
|
|
2394
|
+
const pushAssets = (items) => {
|
|
2395
|
+
items.sort(
|
|
2396
|
+
(a, b) => a.kind !== b.kind ? a.kind.localeCompare(b.kind) : a.name.localeCompare(b.name)
|
|
2397
|
+
);
|
|
2398
|
+
for (const entry of items) {
|
|
2399
|
+
const ref = `${entry.kind}:${entry.name}`;
|
|
2400
|
+
rows.push({ type: "asset", origin, entry, installed: installed.has(ref) });
|
|
2401
|
+
}
|
|
2402
|
+
};
|
|
2403
|
+
const noRepo = byRepo.get("");
|
|
2404
|
+
if (noRepo) pushAssets(noRepo);
|
|
2405
|
+
for (const [repo, items] of [...byRepo.entries()].filter(([r]) => r !== "").sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
2406
|
+
rows.push({ type: "repo-header", origin, source: publisher, repo });
|
|
2407
|
+
pushAssets(items);
|
|
2360
2408
|
}
|
|
2361
|
-
};
|
|
2362
|
-
const noRepo = byRepo.get("");
|
|
2363
|
-
if (noRepo) pushAssets(noRepo);
|
|
2364
|
-
for (const [repo, items] of [...byRepo.entries()].filter(([r]) => r !== "").sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
2365
|
-
rows.push({ type: "repo-header", source: publisher, repo });
|
|
2366
|
-
pushAssets(items);
|
|
2367
2409
|
}
|
|
2368
2410
|
}
|
|
2369
2411
|
state.assetRows = rows;
|
|
2412
|
+
const presentOrigins = new Set(rows.filter((r) => r.type === "origin-header").map(rowOrigin));
|
|
2413
|
+
for (const o of presentOrigins) {
|
|
2414
|
+
if (!state.seenOrigins.has(o)) {
|
|
2415
|
+
if (o === "store") state.collapsedOrigins.add(o);
|
|
2416
|
+
state.seenOrigins.add(o);
|
|
2417
|
+
}
|
|
2418
|
+
}
|
|
2419
|
+
for (const o of state.collapsedOrigins) {
|
|
2420
|
+
if (!presentOrigins.has(o)) state.collapsedOrigins.delete(o);
|
|
2421
|
+
}
|
|
2422
|
+
if (state.originFilter && !presentOrigins.has(state.originFilter)) state.originFilter = null;
|
|
2370
2423
|
const newSources = new Set(
|
|
2371
|
-
rows.filter((r) => r.type === "publisher-header").map((r) => r.source)
|
|
2424
|
+
rows.filter((r) => r.type === "publisher-header").map((r) => srcKey(rowOrigin(r), r.source))
|
|
2372
2425
|
);
|
|
2373
2426
|
for (const s of state.collapsedSources) {
|
|
2374
2427
|
if (!newSources.has(s)) state.collapsedSources.delete(s);
|
|
2375
2428
|
}
|
|
2376
2429
|
const newRepoKeys = new Set(
|
|
2377
|
-
rows.filter((r) => r.type === "repo-header").map((r) =>
|
|
2430
|
+
rows.filter((r) => r.type === "repo-header").map((r) => repoKey(rowOrigin(r), r.source, r.repo))
|
|
2378
2431
|
);
|
|
2379
2432
|
for (const d of state.collapsedRepos) {
|
|
2380
2433
|
if (!newRepoKeys.has(d)) state.collapsedRepos.delete(d);
|
|
@@ -2385,7 +2438,7 @@ async function loadAssets() {
|
|
|
2385
2438
|
async function loadSourcesAndLibraries() {
|
|
2386
2439
|
try {
|
|
2387
2440
|
const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir: skaileHomeDir2 }] = await Promise.all([
|
|
2388
|
-
import('../open-library-
|
|
2441
|
+
import('../open-library-I7YTADMD.js'),
|
|
2389
2442
|
import('../library/index.js')
|
|
2390
2443
|
]);
|
|
2391
2444
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -2423,8 +2476,10 @@ async function loadSourcesAndLibraries() {
|
|
|
2423
2476
|
function rebuildVisible() {
|
|
2424
2477
|
state.visibleRows = buildVisibleRows(
|
|
2425
2478
|
state.assetRows,
|
|
2479
|
+
state.collapsedOrigins,
|
|
2426
2480
|
state.collapsedSources,
|
|
2427
|
-
state.collapsedRepos
|
|
2481
|
+
state.collapsedRepos,
|
|
2482
|
+
state.originFilter
|
|
2428
2483
|
);
|
|
2429
2484
|
clampCursor();
|
|
2430
2485
|
}
|
|
@@ -2448,7 +2503,7 @@ var TABS = {
|
|
|
2448
2503
|
rowCount: () => state.visibleRows.length,
|
|
2449
2504
|
selectableCount: () => state.assetRows.filter(isAsset).length,
|
|
2450
2505
|
renderRow: (i, sel) => renderAssetRow(state.visibleRows[i], sel),
|
|
2451
|
-
footer: " \u2191\u2193/jk
|
|
2506
|
+
footer: " \u2191\u2193/jk nav \u2190/\u2192 collapse/expand [space/+/-] select [a/\u21B5] apply [i] info [1]lib [2]src [3]store [0]all Tab switch [q] quit"
|
|
2452
2507
|
},
|
|
2453
2508
|
sources: {
|
|
2454
2509
|
label: "Sources",
|
|
@@ -2532,24 +2587,38 @@ function renderHeaderLine(opts) {
|
|
|
2532
2587
|
return opts.selected ? pc5.bgWhite(pc5.black(`${line} `.padEnd(state.cols))) : line;
|
|
2533
2588
|
}
|
|
2534
2589
|
function renderAssetRow(row, selected) {
|
|
2535
|
-
if (row.type === "
|
|
2590
|
+
if (row.type === "origin-header") {
|
|
2591
|
+
const origin = rowOrigin(row);
|
|
2592
|
+
const meta = ORIGIN_META[origin];
|
|
2536
2593
|
return renderHeaderLine({
|
|
2537
2594
|
indent: " ",
|
|
2538
|
-
collapsed: state.
|
|
2539
|
-
match: (r) => isAsset(r) &&
|
|
2540
|
-
refs:
|
|
2595
|
+
collapsed: state.collapsedOrigins.has(origin),
|
|
2596
|
+
match: (r) => isAsset(r) && rowOrigin(r) === origin,
|
|
2597
|
+
refs: originAssetRefs(state.assetRows, origin),
|
|
2598
|
+
label: `${meta.icon} ${pc5.bold(pc5.cyan(meta.label))}`,
|
|
2599
|
+
selected
|
|
2600
|
+
});
|
|
2601
|
+
}
|
|
2602
|
+
if (row.type === "publisher-header") {
|
|
2603
|
+
const origin = rowOrigin(row);
|
|
2604
|
+
return renderHeaderLine({
|
|
2605
|
+
indent: " ".repeat(3),
|
|
2606
|
+
collapsed: state.collapsedSources.has(srcKey(origin, row.source)),
|
|
2607
|
+
match: (r) => isAsset(r) && inSource(r, origin, row.source),
|
|
2608
|
+
refs: sourceAssetRefs(state.assetRows, origin, row.source),
|
|
2541
2609
|
label: pc5.bold(pc5.cyan(row.source)),
|
|
2542
2610
|
selected
|
|
2543
2611
|
});
|
|
2544
2612
|
}
|
|
2545
2613
|
if (row.type === "repo-header") {
|
|
2614
|
+
const origin = rowOrigin(row);
|
|
2546
2615
|
const slug = row.repo;
|
|
2547
2616
|
const bare = slug.includes("/") ? slug.slice(slug.indexOf("/") + 1) : slug;
|
|
2548
2617
|
return renderHeaderLine({
|
|
2549
|
-
indent: " ".repeat(
|
|
2550
|
-
collapsed: state.collapsedRepos.has(
|
|
2551
|
-
match: (r) => isAsset(r) && inRepo(r, row.source, slug),
|
|
2552
|
-
refs: repoAssetRefs(state.assetRows, row.source, slug),
|
|
2618
|
+
indent: " ".repeat(5),
|
|
2619
|
+
collapsed: state.collapsedRepos.has(repoKey(origin, row.source, slug)),
|
|
2620
|
+
match: (r) => isAsset(r) && inRepo(r, origin, row.source, slug),
|
|
2621
|
+
refs: repoAssetRefs(state.assetRows, origin, row.source, slug),
|
|
2553
2622
|
label: pc5.bold(bare),
|
|
2554
2623
|
selected
|
|
2555
2624
|
});
|
|
@@ -2561,12 +2630,12 @@ function renderAssetRow(row, selected) {
|
|
|
2561
2630
|
else if (state.pendingRemoves.has(ref)) status4 = pc5.red("- ");
|
|
2562
2631
|
else if (row.installed) status4 = pc5.green("\u2713 ");
|
|
2563
2632
|
else status4 = pc5.dim("\xB7 ");
|
|
2564
|
-
const kind = kindColorPad(e.kind
|
|
2633
|
+
const kind = kindColorPad(e.kind);
|
|
2565
2634
|
const name = fitWidth(e.name, 30);
|
|
2566
2635
|
const badge = e.category ? `${pc5.dim("[")}${pc5.cyan(e.category)}${pc5.dim("]")} ` : "";
|
|
2567
2636
|
const badgeWidth = e.category ? e.category.length + 3 : 0;
|
|
2568
|
-
const desc = e.description?.slice(0, Math.max(0, state.cols -
|
|
2569
|
-
const indent = " ".repeat(e.repo ?
|
|
2637
|
+
const desc = e.description?.slice(0, Math.max(0, state.cols - 56 - badgeWidth)) ?? "";
|
|
2638
|
+
const indent = " ".repeat(e.repo ? 7 : 5);
|
|
2570
2639
|
const line = `${indent}${status4} ${kind} ${name} ${badge}${pc5.dim(desc)}`;
|
|
2571
2640
|
return selected ? pc5.inverse(line.padEnd(state.cols)) : line;
|
|
2572
2641
|
}
|
|
@@ -2587,7 +2656,8 @@ function render() {
|
|
|
2587
2656
|
const overhead = 5 + pendingLines + msgLines;
|
|
2588
2657
|
const maxRows = Math.max(5, (process.stdout.rows || 30) - overhead);
|
|
2589
2658
|
console.log();
|
|
2590
|
-
|
|
2659
|
+
const filterTag = state.tab === "assets" && state.originFilter ? ` ${pc5.bgYellow(pc5.black(` filter: ${ORIGIN_META[state.originFilter].label} `))} ${pc5.dim("[0] clear")}` : "";
|
|
2660
|
+
console.log(` ${pc5.bold("skaile manage")} ${renderTabs()}${filterTag}`);
|
|
2591
2661
|
console.log(` ${S.rule(state.cols - 4)}`);
|
|
2592
2662
|
const spec = TABS[state.tab];
|
|
2593
2663
|
const total = spec.rowCount();
|
|
@@ -2680,9 +2750,10 @@ async function showInfo() {
|
|
|
2680
2750
|
console.log();
|
|
2681
2751
|
console.log(` ${kindColor(e.kind)} ${pc5.bold(e.name)}`);
|
|
2682
2752
|
console.log(` ${S.rule(50)}`);
|
|
2753
|
+
console.log(` origin: ${pc5.dim(ORIGIN_META[rowOrigin(row)].label)}`);
|
|
2683
2754
|
if (e.version) console.log(` version: ${e.version}`);
|
|
2684
2755
|
if (e.description) console.log(` description: ${e.description}`);
|
|
2685
|
-
if (e.publisher) console.log(`
|
|
2756
|
+
if (e.publisher) console.log(` publisher: ${pc5.dim(e.publisher)}`);
|
|
2686
2757
|
console.log(` manifest: ${pc5.dim(e.source)}`);
|
|
2687
2758
|
console.log(` installed: ${row.installed ? pc5.green("yes") : pc5.red("no")}`);
|
|
2688
2759
|
if (e.requires.length) {
|
|
@@ -2703,14 +2774,31 @@ async function showInfo() {
|
|
|
2703
2774
|
process.stdin.once("data", onData);
|
|
2704
2775
|
});
|
|
2705
2776
|
}
|
|
2777
|
+
function setOriginFilter(origin) {
|
|
2778
|
+
if (origin === null || state.originFilter === origin) {
|
|
2779
|
+
state.originFilter = null;
|
|
2780
|
+
} else if (state.seenOrigins.has(origin)) {
|
|
2781
|
+
state.originFilter = origin;
|
|
2782
|
+
state.collapsedOrigins.delete(origin);
|
|
2783
|
+
} else {
|
|
2784
|
+
state.message = pc5.dim(`No ${ORIGIN_META[origin].label} assets to show.`);
|
|
2785
|
+
return;
|
|
2786
|
+
}
|
|
2787
|
+
state.cursor = 0;
|
|
2788
|
+
rebuildVisible();
|
|
2789
|
+
}
|
|
2706
2790
|
function expandUnderCursor() {
|
|
2707
2791
|
const row = state.visibleRows[state.cursor];
|
|
2708
2792
|
if (!row) return;
|
|
2709
|
-
|
|
2710
|
-
|
|
2793
|
+
const origin = rowOrigin(row);
|
|
2794
|
+
if (row.type === "origin-header" && state.collapsedOrigins.has(origin)) {
|
|
2795
|
+
state.collapsedOrigins.delete(origin);
|
|
2796
|
+
rebuildVisible();
|
|
2797
|
+
} else if (row.type === "publisher-header" && state.collapsedSources.has(srcKey(origin, row.source))) {
|
|
2798
|
+
state.collapsedSources.delete(srcKey(origin, row.source));
|
|
2711
2799
|
rebuildVisible();
|
|
2712
2800
|
} else if (row.type === "repo-header") {
|
|
2713
|
-
const dk =
|
|
2801
|
+
const dk = repoKey(origin, row.source, row.repo);
|
|
2714
2802
|
if (state.collapsedRepos.has(dk)) {
|
|
2715
2803
|
state.collapsedRepos.delete(dk);
|
|
2716
2804
|
rebuildVisible();
|
|
@@ -2720,15 +2808,31 @@ function expandUnderCursor() {
|
|
|
2720
2808
|
function collapseOrJumpUnderCursor() {
|
|
2721
2809
|
const row = state.visibleRows[state.cursor];
|
|
2722
2810
|
if (!row) return;
|
|
2811
|
+
const origin = rowOrigin(row);
|
|
2812
|
+
if (row.type === "origin-header") {
|
|
2813
|
+
if (!state.collapsedOrigins.has(origin)) {
|
|
2814
|
+
state.collapsedOrigins.add(origin);
|
|
2815
|
+
rebuildVisible();
|
|
2816
|
+
}
|
|
2817
|
+
return;
|
|
2818
|
+
}
|
|
2723
2819
|
if (row.type === "publisher-header") {
|
|
2724
|
-
|
|
2725
|
-
|
|
2820
|
+
const sk = srcKey(origin, row.source);
|
|
2821
|
+
if (!state.collapsedSources.has(sk)) {
|
|
2822
|
+
state.collapsedSources.add(sk);
|
|
2726
2823
|
rebuildVisible();
|
|
2824
|
+
} else {
|
|
2825
|
+
const idx2 = findLastIndex(
|
|
2826
|
+
state.visibleRows,
|
|
2827
|
+
state.cursor,
|
|
2828
|
+
(r) => r.type === "origin-header"
|
|
2829
|
+
);
|
|
2830
|
+
if (idx2 >= 0) state.cursor = idx2;
|
|
2727
2831
|
}
|
|
2728
2832
|
return;
|
|
2729
2833
|
}
|
|
2730
2834
|
if (row.type === "repo-header") {
|
|
2731
|
-
const dk =
|
|
2835
|
+
const dk = repoKey(origin, row.source, row.repo);
|
|
2732
2836
|
if (!state.collapsedRepos.has(dk)) {
|
|
2733
2837
|
state.collapsedRepos.add(dk);
|
|
2734
2838
|
rebuildVisible();
|
|
@@ -2745,7 +2849,7 @@ function collapseOrJumpUnderCursor() {
|
|
|
2745
2849
|
const idx = findLastIndex(
|
|
2746
2850
|
state.visibleRows,
|
|
2747
2851
|
state.cursor,
|
|
2748
|
-
(r) => r.type === "repo-header" || r.type === "publisher-header"
|
|
2852
|
+
(r) => r.type === "repo-header" || r.type === "publisher-header" || r.type === "origin-header"
|
|
2749
2853
|
);
|
|
2750
2854
|
if (idx >= 0) state.cursor = idx;
|
|
2751
2855
|
}
|
|
@@ -2846,7 +2950,12 @@ var KEYMAP = [
|
|
|
2846
2950
|
// Enter — apply on assets tab
|
|
2847
2951
|
{ keys: ["\r", "\n"], when: TAB_ASSETS, run: applyChanges },
|
|
2848
2952
|
// Info — assets only
|
|
2849
|
-
{ keys: ["i"], when: TAB_ASSETS, run: showInfo }
|
|
2953
|
+
{ keys: ["i"], when: TAB_ASSETS, run: showInfo },
|
|
2954
|
+
// Origin filter — assets only. 1/2/3 isolate one origin, 0 clears.
|
|
2955
|
+
{ keys: ["1"], when: TAB_ASSETS, run: () => setOriginFilter("library") },
|
|
2956
|
+
{ keys: ["2"], when: TAB_ASSETS, run: () => setOriginFilter("source") },
|
|
2957
|
+
{ keys: ["3"], when: TAB_ASSETS, run: () => setOriginFilter("store") },
|
|
2958
|
+
{ keys: ["0"], when: TAB_ASSETS, run: () => setOriginFilter(null) }
|
|
2850
2959
|
];
|
|
2851
2960
|
async function dispatchKey(key) {
|
|
2852
2961
|
for (const b of KEYMAP) {
|
|
@@ -3717,7 +3826,7 @@ function action2(fn) {
|
|
|
3717
3826
|
};
|
|
3718
3827
|
}
|
|
3719
3828
|
async function reconcileAndReport(projectDir, plugins) {
|
|
3720
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
3829
|
+
const { reconcilePlugins } = await import('../plugin-store-GL5VKYUA.js');
|
|
3721
3830
|
if (plugins.length === 0) {
|
|
3722
3831
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
3723
3832
|
return;
|
|
@@ -3733,7 +3842,7 @@ async function reconcileAndReport(projectDir, plugins) {
|
|
|
3733
3842
|
async function runInstall2(spec, opts) {
|
|
3734
3843
|
const projectDir = path15__default.resolve(opts.projectDir);
|
|
3735
3844
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3736
|
-
const { specName } = await import('../plugin-store-
|
|
3845
|
+
const { specName } = await import('../plugin-store-GL5VKYUA.js');
|
|
3737
3846
|
const yamlPath = path15__default.join(projectDir, "skaile.yaml");
|
|
3738
3847
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3739
3848
|
const replaced = editor.addPlugin(spec, specName);
|
|
@@ -3745,7 +3854,7 @@ async function runInstall2(spec, opts) {
|
|
|
3745
3854
|
async function runRemove(name, opts) {
|
|
3746
3855
|
const projectDir = path15__default.resolve(opts.projectDir);
|
|
3747
3856
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3748
|
-
const { specName } = await import('../plugin-store-
|
|
3857
|
+
const { specName } = await import('../plugin-store-GL5VKYUA.js');
|
|
3749
3858
|
const yamlPath = path15__default.join(projectDir, "skaile.yaml");
|
|
3750
3859
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3751
3860
|
const removed = editor.removePlugin(name, specName);
|
|
@@ -3773,7 +3882,7 @@ async function runList(opts) {
|
|
|
3773
3882
|
const registry = createPluginRegistry();
|
|
3774
3883
|
if (declared.length > 0) {
|
|
3775
3884
|
try {
|
|
3776
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
3885
|
+
const { loadPlugins } = await import('../plugin-store-GL5VKYUA.js');
|
|
3777
3886
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
3778
3887
|
for (const f of result.failed) logWarn(f.error);
|
|
3779
3888
|
} catch (err) {
|
|
@@ -3984,7 +4093,7 @@ function makeInstallCommand() {
|
|
|
3984
4093
|
const spinner6 = p5.spinner();
|
|
3985
4094
|
spinner6.start(`Installing ${ref}`);
|
|
3986
4095
|
try {
|
|
3987
|
-
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-
|
|
4096
|
+
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-I7YTADMD.js');
|
|
3988
4097
|
const catalog = await openCatalogSource2({ projectDir: path15__default.resolve(opts.projectDir) });
|
|
3989
4098
|
if (!supportsInstallManifest(catalog)) {
|
|
3990
4099
|
throw new Error(
|
|
@@ -4016,7 +4125,7 @@ function makeInstallCommand() {
|
|
|
4016
4125
|
}
|
|
4017
4126
|
const projectDir = path15__default.resolve(opts.projectDir);
|
|
4018
4127
|
try {
|
|
4019
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
4128
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-KQQEUDKM.js');
|
|
4020
4129
|
const hydrate = ensureSourcesCloned(projectDir, { quiet: true });
|
|
4021
4130
|
if (hydrate.cloned.length > 0) {
|
|
4022
4131
|
logOk(`Cloned source(s): ${hydrate.cloned.join(", ")}`);
|
|
@@ -4451,12 +4560,12 @@ function makeServeCommand() {
|
|
|
4451
4560
|
);
|
|
4452
4561
|
}
|
|
4453
4562
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
4454
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
4563
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-F4NZ66VD.js');
|
|
4455
4564
|
try {
|
|
4456
4565
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
4457
4566
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
4458
4567
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
4459
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
4568
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-GL5VKYUA.js');
|
|
4460
4569
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
4461
4570
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
4462
4571
|
if (result.loaded.length > 0) {
|
|
@@ -4470,14 +4579,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
4470
4579
|
}
|
|
4471
4580
|
}
|
|
4472
4581
|
async function runCompileTest(opts) {
|
|
4473
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
4582
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-F4NZ66VD.js');
|
|
4474
4583
|
const { tmpdir } = await import('os');
|
|
4475
4584
|
const { dirname: dirname3, join: join5, resolve: resolve4 } = await import('path');
|
|
4476
4585
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
4477
4586
|
const { unlinkSync, existsSync: existsSync12 } = await import('fs');
|
|
4478
4587
|
const { spawn } = await import('child_process');
|
|
4479
4588
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
4480
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
4589
|
+
const { MONOREPO_ROOT } = await import('../paths-CE66L3AL.js');
|
|
4481
4590
|
if (MONOREPO_ROOT === null) {
|
|
4482
4591
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
4483
4592
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -6478,7 +6587,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6478
6587
|
);
|
|
6479
6588
|
}
|
|
6480
6589
|
try {
|
|
6481
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
6590
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-KQQEUDKM.js');
|
|
6482
6591
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
6483
6592
|
for (const n of hydrate.cloned) created.push(`~/.skaile/sources/${n}/`);
|
|
6484
6593
|
if (hydrate.failed.length > 0) {
|
|
@@ -6504,7 +6613,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6504
6613
|
console.log();
|
|
6505
6614
|
});
|
|
6506
6615
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
6507
|
-
const { cmdSetup } = await import('../setup-
|
|
6616
|
+
const { cmdSetup } = await import('../setup-4YMN2BDU.js');
|
|
6508
6617
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
6509
6618
|
});
|
|
6510
6619
|
program.addCommand(makeInstallCommand());
|