@skaile/workspaces 0.33.0 → 0.35.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 +62 -0
- package/dist/{asset-feeds-DX5JPM76.js → asset-feeds-PCLTE2W5.js} +20 -12
- package/dist/asset-feeds-PCLTE2W5.js.map +1 -0
- package/dist/asset-manager/index.js +8 -8
- package/dist/asset-manager/installer.js +7 -7
- package/dist/{chunk-PKPUVQJP.js → chunk-2Q6OY3SU.js} +3 -3
- package/dist/{chunk-PKPUVQJP.js.map → chunk-2Q6OY3SU.js.map} +1 -1
- package/dist/{chunk-LRFZNLB2.js → chunk-52HINMW4.js} +3 -3
- package/dist/{chunk-LRFZNLB2.js.map → chunk-52HINMW4.js.map} +1 -1
- package/dist/{chunk-AZODLVKH.js → chunk-56YT6CWS.js} +5 -5
- package/dist/{chunk-AZODLVKH.js.map → chunk-56YT6CWS.js.map} +1 -1
- package/dist/{chunk-RQG5TXIR.js → chunk-5DPQ766L.js} +4 -4
- package/dist/{chunk-RQG5TXIR.js.map → chunk-5DPQ766L.js.map} +1 -1
- package/dist/{chunk-BUMDC3R2.js → chunk-6422UOMQ.js} +5 -5
- package/dist/{chunk-BUMDC3R2.js.map → chunk-6422UOMQ.js.map} +1 -1
- package/dist/{chunk-XQRAXAL5.js → chunk-7B3CL5JT.js} +7 -7
- package/dist/{chunk-XQRAXAL5.js.map → chunk-7B3CL5JT.js.map} +1 -1
- package/dist/{chunk-LFDZYCEO.js → chunk-BM7XANVN.js} +2 -2
- package/dist/chunk-BM7XANVN.js.map +1 -0
- package/dist/{chunk-QUWXW2N3.js → chunk-EOCKR5TN.js} +3 -3
- package/dist/{chunk-QUWXW2N3.js.map → chunk-EOCKR5TN.js.map} +1 -1
- package/dist/{chunk-EJZFQCQG.js → chunk-I3TERDTR.js} +2 -2
- package/dist/{chunk-EJZFQCQG.js.map → chunk-I3TERDTR.js.map} +1 -1
- package/dist/{chunk-N74UQJPN.js → chunk-KYC6JH75.js} +3 -3
- package/dist/{chunk-N74UQJPN.js.map → chunk-KYC6JH75.js.map} +1 -1
- package/dist/{chunk-4AGIEU7V.js → chunk-MAPRKFBD.js} +3 -3
- package/dist/{chunk-4AGIEU7V.js.map → chunk-MAPRKFBD.js.map} +1 -1
- package/dist/{chunk-362QBS57.js → chunk-NAMD4AIK.js} +235 -13
- package/dist/chunk-NAMD4AIK.js.map +1 -0
- package/dist/{chunk-KKERAIPQ.js → chunk-O2OHGE4S.js} +4 -4
- package/dist/{chunk-KKERAIPQ.js.map → chunk-O2OHGE4S.js.map} +1 -1
- package/dist/{chunk-7MANNJ3U.js → chunk-O4PANZI2.js} +5 -5
- package/dist/{chunk-7MANNJ3U.js.map → chunk-O4PANZI2.js.map} +1 -1
- package/dist/{chunk-H5YXL4KI.js → chunk-SAXDHVJZ.js} +3 -3
- package/dist/{chunk-H5YXL4KI.js.map → chunk-SAXDHVJZ.js.map} +1 -1
- package/dist/{chunk-R2I7RHT7.js → chunk-SKVUDDHE.js} +191 -23
- package/dist/chunk-SKVUDDHE.js.map +1 -0
- package/dist/{chunk-PWXN2KHV.js → chunk-UAYAK7N4.js} +5 -5
- package/dist/{chunk-PWXN2KHV.js.map → chunk-UAYAK7N4.js.map} +1 -1
- package/dist/{chunk-PTDVTMQL.js → chunk-WEQN6EWW.js} +4 -4
- package/dist/{chunk-PTDVTMQL.js.map → chunk-WEQN6EWW.js.map} +1 -1
- package/dist/{chunk-VXW2K4YH.js → chunk-XOBPOVFT.js} +3 -3
- package/dist/{chunk-VXW2K4YH.js.map → chunk-XOBPOVFT.js.map} +1 -1
- package/dist/{chunk-4ZVS6KV4.js → chunk-ZGJE4ZDP.js} +2 -2
- package/dist/{chunk-4ZVS6KV4.js.map → chunk-ZGJE4ZDP.js.map} +1 -1
- package/dist/cli/index.js +196 -101
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/asset-feeds.d.ts +8 -1
- package/dist/cli/src/asset-feeds.d.ts.map +1 -1
- package/dist/cli/src/commands/manage.d.ts +33 -22
- package/dist/cli/src/commands/manage.d.ts.map +1 -1
- package/dist/connectors/config.js +7 -7
- package/dist/connectors/index.js +8 -8
- package/dist/connectors/src/connector-manager.d.ts +56 -3
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors/src/fleet-health-gate.d.ts +86 -0
- package/dist/connectors/src/fleet-health-gate.d.ts.map +1 -0
- package/dist/connectors/src/fleet-utils.d.ts +16 -0
- package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
- package/dist/connectors/src/index.d.ts +4 -1
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/connectors/src/mount-placeholder.d.ts +8 -0
- package/dist/connectors/src/mount-placeholder.d.ts.map +1 -1
- package/dist/core/index.js +6 -6
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.js +1 -1
- package/dist/core/publish-manifest.js +2 -2
- package/dist/core/runtime-assets.js +5 -5
- package/dist/core/src/index.d.ts +1 -1
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/models.d.ts +28 -0
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +13 -0
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +4 -4
- package/dist/deploy/index.js +6 -6
- package/dist/discovery/index.js +4 -4
- package/dist/{ensure-sources-O6RMWP6C.js → ensure-sources-HMMEQEZC.js} +11 -11
- package/dist/{ensure-sources-O6RMWP6C.js.map → ensure-sources-HMMEQEZC.js.map} +1 -1
- 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 +6 -6
- 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-QWYIUDA2.js → flows-O7OXGFIY.js} +3 -3
- package/dist/{flows-QWYIUDA2.js.map → flows-O7OXGFIY.js.map} +1 -1
- package/dist/library/index.js +9 -9
- package/dist/library/install.js +7 -7
- package/dist/open-library-5WWTBHQD.js +23 -0
- package/dist/{open-library-B7BLYXYK.js.map → open-library-5WWTBHQD.js.map} +1 -1
- package/dist/paths-UC3ZHLKC.js +15 -0
- package/dist/{paths-5IUR235S.js.map → paths-UC3ZHLKC.js.map} +1 -1
- package/dist/{plugin-store-WWOJXWG7.js → plugin-store-R2WLXRT3.js} +8 -8
- package/dist/{plugin-store-WWOJXWG7.js.map → plugin-store-R2WLXRT3.js.map} +1 -1
- package/dist/runner/index.js +10 -10
- package/dist/runner/src/external-mcp.d.ts +45 -4
- package/dist/runner/src/external-mcp.d.ts.map +1 -1
- package/dist/runner/src/fleet-health-flag-dispatcher.d.ts +40 -0
- package/dist/runner/src/fleet-health-flag-dispatcher.d.ts.map +1 -0
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +8 -8
- package/dist/sdk/core.js +6 -6
- package/dist/sdk/flow.js +6 -6
- package/dist/sdk/index.js +10 -10
- package/dist/sdk/runner.js +10 -10
- package/dist/{setup-2RD6EDBZ.js → setup-BSDHVMR6.js} +8 -8
- package/dist/{setup-2RD6EDBZ.js.map → setup-BSDHVMR6.js.map} +1 -1
- package/dist/store-client-4GKV4LOD.js +15 -0
- package/dist/{store-client-XQQRHYDW.js.map → store-client-4GKV4LOD.js.map} +1 -1
- package/dist/tui/index.js +10 -10
- package/dist/workspace-plugin/adapters/mcp.js +1 -1
- package/dist/workspace-plugin/adapters/omp.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/asset-feeds-DX5JPM76.js.map +0 -1
- package/dist/chunk-362QBS57.js.map +0 -1
- package/dist/chunk-LFDZYCEO.js.map +0 -1
- package/dist/chunk-R2I7RHT7.js.map +0 -1
- package/dist/open-library-B7BLYXYK.js +0 -23
- package/dist/paths-5IUR235S.js +0 -15
- package/dist/store-client-XQQRHYDW.js +0 -15
package/dist/cli/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-
|
|
2
|
+
import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-O2OHGE4S.js';
|
|
3
3
|
import { logErr, S, logOk, logInfo, colorRef, logWarn, kindColorPad, kindColor, formatRelativeTime, fitWidth } from '../chunk-GYPA2Q7F.js';
|
|
4
|
-
import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-
|
|
5
|
-
import { AI_RESOURCES, aiResourceRoots } from '../chunk-
|
|
4
|
+
import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-XOBPOVFT.js';
|
|
5
|
+
import { AI_RESOURCES, aiResourceRoots } from '../chunk-EOCKR5TN.js';
|
|
6
6
|
import { LocalSecretsProvider } from '../chunk-6LW7Q53Z.js';
|
|
7
|
-
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-UAYAK7N4.js';
|
|
8
|
+
import '../chunk-O4PANZI2.js';
|
|
9
|
+
import '../chunk-KYC6JH75.js';
|
|
10
10
|
import '../chunk-R7FOF242.js';
|
|
11
11
|
import '../chunk-ZDKJHQY2.js';
|
|
12
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
12
|
+
import { runFlow, resumeFlow } from '../chunk-6422UOMQ.js';
|
|
13
13
|
import '../chunk-4R6DROGN.js';
|
|
14
14
|
import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-GXC3TYMQ.js';
|
|
15
|
-
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-
|
|
16
|
-
import { buildClaudePluginFiles } from '../chunk-
|
|
15
|
+
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-SKVUDDHE.js';
|
|
16
|
+
import { buildClaudePluginFiles } from '../chunk-ZGJE4ZDP.js';
|
|
17
17
|
import '../chunk-X5YPJV4N.js';
|
|
18
18
|
import '../chunk-O7SG5PC2.js';
|
|
19
19
|
import '../chunk-7QBNJTTQ.js';
|
|
@@ -28,22 +28,22 @@ import '../chunk-BMQKMOQY.js';
|
|
|
28
28
|
import '../chunk-NGJ6E344.js';
|
|
29
29
|
import '../chunk-CIFTUSBV.js';
|
|
30
30
|
import '../chunk-LV2HPH3C.js';
|
|
31
|
-
import '../chunk-
|
|
31
|
+
import '../chunk-NAMD4AIK.js';
|
|
32
32
|
import '../chunk-OVRSNIKJ.js';
|
|
33
|
-
import '../chunk-
|
|
33
|
+
import '../chunk-52HINMW4.js';
|
|
34
34
|
import '../chunk-XT6AZWK3.js';
|
|
35
35
|
import '../chunk-6E6PKKAD.js';
|
|
36
36
|
import { loadFlow, loadAllFlows } from '../chunk-X46FY45B.js';
|
|
37
37
|
import '../chunk-DEYYRFQU.js';
|
|
38
38
|
import '../chunk-IFGTRL2I.js';
|
|
39
|
-
import { AssetManager } from '../chunk-
|
|
40
|
-
import '../chunk-
|
|
41
|
-
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-
|
|
42
|
-
import '../chunk-
|
|
43
|
-
import { resolveAgentDir, findWorkspaceRoot, workspaceConfigFilename, resolveSkWorkspaceConfig } from '../chunk-
|
|
44
|
-
import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest } from '../chunk-
|
|
45
|
-
import { parseFrontmatter } from '../chunk-
|
|
46
|
-
import { ASSET_KINDS, parseAssetRef, isValidAssetName, ASSET_NAME_HINT, assetRefToStr } from '../chunk-
|
|
39
|
+
import { AssetManager } from '../chunk-7B3CL5JT.js';
|
|
40
|
+
import '../chunk-WEQN6EWW.js';
|
|
41
|
+
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-2Q6OY3SU.js';
|
|
42
|
+
import '../chunk-5DPQ766L.js';
|
|
43
|
+
import { resolveAgentDir, findWorkspaceRoot, workspaceConfigFilename, resolveSkWorkspaceConfig } from '../chunk-56YT6CWS.js';
|
|
44
|
+
import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest } from '../chunk-SAXDHVJZ.js';
|
|
45
|
+
import { parseFrontmatter } from '../chunk-MAPRKFBD.js';
|
|
46
|
+
import { ASSET_KINDS, parseAssetRef, isValidAssetName, ASSET_NAME_HINT, assetRefToStr } from '../chunk-BM7XANVN.js';
|
|
47
47
|
import '../chunk-XGCXFX7X.js';
|
|
48
48
|
import { SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
|
|
49
49
|
import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
|
|
@@ -321,7 +321,7 @@ function printLocalEntries(entries) {
|
|
|
321
321
|
}
|
|
322
322
|
async function searchStore(query, kind, opts) {
|
|
323
323
|
try {
|
|
324
|
-
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-
|
|
324
|
+
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-4GKV4LOD.js');
|
|
325
325
|
const config = getStoreConfig2();
|
|
326
326
|
const params = {};
|
|
327
327
|
if (query) params.q = query;
|
|
@@ -509,7 +509,7 @@ function makeCatalogCommand() {
|
|
|
509
509
|
return catalog;
|
|
510
510
|
}
|
|
511
511
|
async function runLocalCatalogTest(projectDir) {
|
|
512
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
512
|
+
const { resolveCatalogSource } = await import('../open-library-5WWTBHQD.js');
|
|
513
513
|
let resolved;
|
|
514
514
|
try {
|
|
515
515
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -1499,7 +1499,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
1499
1499
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
1500
1500
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
1501
1501
|
if (config.plugins && config.plugins.length > 0) {
|
|
1502
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
1502
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-R2WLXRT3.js');
|
|
1503
1503
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
1504
1504
|
for (const f of result.failed) logWarn(f.error);
|
|
1505
1505
|
}
|
|
@@ -2865,7 +2865,27 @@ var ORIGIN_META = {
|
|
|
2865
2865
|
};
|
|
2866
2866
|
var ORIGIN_ORDER = ["library", "source", "store"];
|
|
2867
2867
|
var srcKey = (origin, publisher) => `${origin}:${publisher}`;
|
|
2868
|
-
var
|
|
2868
|
+
var domainKey = (origin, publisher, slug) => `${origin}:${publisher}:dom:${slug}`;
|
|
2869
|
+
var NO_DOMAIN = "";
|
|
2870
|
+
var domainRegistry = /* @__PURE__ */ new Map();
|
|
2871
|
+
function relationBadge(relation) {
|
|
2872
|
+
if (relation === "additions") return pc5.dim("[") + pc5.green("add") + pc5.dim("]");
|
|
2873
|
+
if (relation === "alternatives") return pc5.dim("[") + pc5.yellow("alt") + pc5.dim("]");
|
|
2874
|
+
if (relation === "sequence") return pc5.dim("[") + pc5.blue("seq") + pc5.dim("]");
|
|
2875
|
+
return "";
|
|
2876
|
+
}
|
|
2877
|
+
function relationGlyph(relation, seq) {
|
|
2878
|
+
if (relation === "additions") return pc5.green("[add]");
|
|
2879
|
+
if (relation === "alternatives") return pc5.yellow("\u25B7alt");
|
|
2880
|
+
if (relation === "sequence") return pc5.blue(`\u21E3${seq ?? "?"}`);
|
|
2881
|
+
return "";
|
|
2882
|
+
}
|
|
2883
|
+
function relationGlyphText(relation, seq) {
|
|
2884
|
+
if (relation === "additions") return "[add]";
|
|
2885
|
+
if (relation === "alternatives") return "\u25B7alt";
|
|
2886
|
+
if (relation === "sequence") return `\u21E3${seq ?? "?"}`;
|
|
2887
|
+
return "";
|
|
2888
|
+
}
|
|
2869
2889
|
var am;
|
|
2870
2890
|
var state = {
|
|
2871
2891
|
tab: "assets",
|
|
@@ -2878,34 +2898,37 @@ var state = {
|
|
|
2878
2898
|
pendingRemoves: /* @__PURE__ */ new Set(),
|
|
2879
2899
|
collapsedOrigins: /* @__PURE__ */ new Set(),
|
|
2880
2900
|
collapsedSources: /* @__PURE__ */ new Set(),
|
|
2881
|
-
|
|
2901
|
+
collapsedDomains: /* @__PURE__ */ new Set(),
|
|
2902
|
+
expandedDomainInfo: /* @__PURE__ */ new Set(),
|
|
2882
2903
|
seenOrigins: /* @__PURE__ */ new Set(),
|
|
2883
2904
|
originFilter: null,
|
|
2884
2905
|
message: "",
|
|
2885
2906
|
cols: 80,
|
|
2886
2907
|
awaitingExitConfirm: false
|
|
2887
2908
|
};
|
|
2888
|
-
function buildVisibleRows(rows, collapsedOrigins, collapsedSources,
|
|
2909
|
+
function buildVisibleRows(rows, collapsedOrigins, collapsedSources, collapsedDomains, originFilter = null) {
|
|
2889
2910
|
return rows.filter((row) => {
|
|
2890
2911
|
const origin = rowOrigin(row);
|
|
2891
2912
|
if (originFilter && origin !== originFilter) return false;
|
|
2892
2913
|
if (row.type === "origin-header") return true;
|
|
2893
2914
|
if (collapsedOrigins.has(origin)) return false;
|
|
2894
2915
|
if (row.type === "publisher-header") return true;
|
|
2895
|
-
if (row.
|
|
2896
|
-
|
|
2916
|
+
if (collapsedSources.has(srcKey(origin, row.source ?? rowPublisher(row)))) return false;
|
|
2917
|
+
if (row.type === "domain-header") return true;
|
|
2918
|
+
if (row.type === "domain-info") {
|
|
2919
|
+
return !collapsedDomains.has(domainKey(origin, row.source, row.domainSlug ?? NO_DOMAIN));
|
|
2920
|
+
}
|
|
2921
|
+
if (row.underDomain) {
|
|
2922
|
+
return !collapsedDomains.has(domainKey(origin, rowPublisher(row), rowDomain(row)));
|
|
2897
2923
|
}
|
|
2898
|
-
|
|
2899
|
-
if (collapsedSources.has(srcKey(origin, publisher))) return false;
|
|
2900
|
-
const repo = rowRepo(row);
|
|
2901
|
-
return repo === "" || !collapsedRepos.has(repoKey(origin, publisher, repo));
|
|
2924
|
+
return true;
|
|
2902
2925
|
});
|
|
2903
2926
|
}
|
|
2904
2927
|
function originAssetRefs(rows, origin) {
|
|
2905
2928
|
return refsOf(rows.filter((r) => isAsset(r) && rowOrigin(r) === origin));
|
|
2906
2929
|
}
|
|
2907
|
-
function
|
|
2908
|
-
return refsOf(rows.filter((r) => isAsset(r) &&
|
|
2930
|
+
function domainAssetRefs(rows, origin, publisher, slug) {
|
|
2931
|
+
return refsOf(rows.filter((r) => isAsset(r) && inDomain(r, origin, publisher, slug)));
|
|
2909
2932
|
}
|
|
2910
2933
|
function sourceAssetRefs(rows, origin, source) {
|
|
2911
2934
|
return refsOf(rows.filter((r) => isAsset(r) && inSource(r, origin, source)));
|
|
@@ -2919,8 +2942,8 @@ function rowOrigin(r) {
|
|
|
2919
2942
|
function rowPublisher(r) {
|
|
2920
2943
|
return r.entry?.publisher || "other";
|
|
2921
2944
|
}
|
|
2922
|
-
function
|
|
2923
|
-
return r.entry?.
|
|
2945
|
+
function rowDomain(r) {
|
|
2946
|
+
return r.entry?.domainSlug || NO_DOMAIN;
|
|
2924
2947
|
}
|
|
2925
2948
|
function refsOf(rows) {
|
|
2926
2949
|
return rows.map((r) => assetRefOf(r)).filter((ref) => ref !== null);
|
|
@@ -2928,9 +2951,9 @@ function refsOf(rows) {
|
|
|
2928
2951
|
function inSource(r, origin, source) {
|
|
2929
2952
|
return rowOrigin(r) === origin && rowPublisher(r) === source;
|
|
2930
2953
|
}
|
|
2931
|
-
function
|
|
2954
|
+
function inDomain(r, origin, publisher, slug) {
|
|
2932
2955
|
if (!inSource(r, origin, publisher)) return false;
|
|
2933
|
-
return
|
|
2956
|
+
return rowDomain(r) === slug;
|
|
2934
2957
|
}
|
|
2935
2958
|
function assetRefOf(r) {
|
|
2936
2959
|
if (!isAsset(r) || !r.entry?.publisher) return null;
|
|
@@ -2984,63 +3007,71 @@ function actOnHeader(row, action3) {
|
|
|
2984
3007
|
bulkSelection(sourceAssetRefs(state.assetRows, rowOrigin(row), row.source), action3);
|
|
2985
3008
|
return true;
|
|
2986
3009
|
}
|
|
2987
|
-
|
|
2988
|
-
bulkSelection(repoAssetRefs(state.assetRows, rowOrigin(row), row.source, row.repo), action3);
|
|
2989
|
-
return true;
|
|
2990
|
-
}
|
|
2991
|
-
return false;
|
|
3010
|
+
return row.type === "domain-header" || row.type === "domain-info";
|
|
2992
3011
|
}
|
|
2993
3012
|
async function loadAssets() {
|
|
2994
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
2995
|
-
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
3013
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-PCLTE2W5.js');
|
|
3014
|
+
const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
2996
3015
|
if (notes.length > 0) {
|
|
2997
3016
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
2998
3017
|
}
|
|
3018
|
+
domainRegistry = new Map(domains.map((d) => [d.slug, d]));
|
|
2999
3019
|
const installed = new Set(am.listDeployed().map((e) => `${e.kind}:${e.name}`));
|
|
3000
|
-
const byOrigin =
|
|
3020
|
+
const byOrigin = groupEntriesByOriginPublisherDomain(entries);
|
|
3001
3021
|
const rows = buildAssetRowsFromGroups(byOrigin, installed);
|
|
3002
3022
|
state.assetRows = rows;
|
|
3003
3023
|
reconcileCollapsedSets(rows);
|
|
3004
3024
|
rebuildVisible();
|
|
3005
3025
|
}
|
|
3006
|
-
function
|
|
3026
|
+
function groupEntriesByOriginPublisherDomain(entries) {
|
|
3007
3027
|
const byOrigin = /* @__PURE__ */ new Map();
|
|
3008
3028
|
for (const { origin, entry } of entries) {
|
|
3009
3029
|
const publisher = entry.publisher || "other";
|
|
3010
|
-
const
|
|
3030
|
+
const slug = entry.domainSlug || NO_DOMAIN;
|
|
3011
3031
|
if (!byOrigin.has(origin)) byOrigin.set(origin, /* @__PURE__ */ new Map());
|
|
3012
3032
|
const byPublisher = byOrigin.get(origin);
|
|
3013
3033
|
if (!byPublisher.has(publisher)) byPublisher.set(publisher, /* @__PURE__ */ new Map());
|
|
3014
|
-
const
|
|
3015
|
-
if (!
|
|
3016
|
-
|
|
3034
|
+
const byDomain = byPublisher.get(publisher);
|
|
3035
|
+
if (!byDomain.has(slug)) byDomain.set(slug, []);
|
|
3036
|
+
byDomain.get(slug).push(entry);
|
|
3017
3037
|
}
|
|
3018
3038
|
return byOrigin;
|
|
3019
3039
|
}
|
|
3040
|
+
function sortedDomainSlugs(slugs) {
|
|
3041
|
+
return slugs.filter((s) => s !== NO_DOMAIN).sort((a, b) => {
|
|
3042
|
+
const oa = domainRegistry.get(a)?.order ?? Number.MAX_SAFE_INTEGER;
|
|
3043
|
+
const ob = domainRegistry.get(b)?.order ?? Number.MAX_SAFE_INTEGER;
|
|
3044
|
+
return oa !== ob ? oa - ob : a.localeCompare(b);
|
|
3045
|
+
});
|
|
3046
|
+
}
|
|
3020
3047
|
function buildAssetRowsFromGroups(byOrigin, installed) {
|
|
3021
3048
|
const rows = [];
|
|
3049
|
+
const sortItems = (items) => items.sort(
|
|
3050
|
+
(a, b) => a.kind !== b.kind ? a.kind.localeCompare(b.kind) : a.name.localeCompare(b.name)
|
|
3051
|
+
);
|
|
3052
|
+
const pushAsset = (origin, entry, underDomain, seq) => {
|
|
3053
|
+
const ref = `${entry.kind}:${entry.name}`;
|
|
3054
|
+
rows.push({ type: "asset", origin, entry, installed: installed.has(ref), underDomain, seq });
|
|
3055
|
+
};
|
|
3022
3056
|
for (const origin of ORIGIN_ORDER) {
|
|
3023
3057
|
const byPublisher = byOrigin.get(origin);
|
|
3024
3058
|
if (!byPublisher || byPublisher.size === 0) continue;
|
|
3025
3059
|
rows.push({ type: "origin-header", origin });
|
|
3026
|
-
for (const [publisher,
|
|
3060
|
+
for (const [publisher, byDomain] of [...byPublisher.entries()].sort(
|
|
3027
3061
|
(a, b) => a[0].localeCompare(b[0])
|
|
3028
3062
|
)) {
|
|
3029
3063
|
rows.push({ type: "publisher-header", origin, source: publisher });
|
|
3030
|
-
const
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
);
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
rows.push({ type: "
|
|
3064
|
+
const loose = byDomain.get(NO_DOMAIN);
|
|
3065
|
+
if (loose) for (const entry of sortItems(loose)) pushAsset(origin, entry, false);
|
|
3066
|
+
for (const slug of sortedDomainSlugs([...byDomain.keys()])) {
|
|
3067
|
+
const meta = domainRegistry.get(slug);
|
|
3068
|
+
rows.push({ type: "domain-header", origin, source: publisher, domainSlug: slug });
|
|
3069
|
+
if (meta?.description) {
|
|
3070
|
+
rows.push({ type: "domain-info", origin, source: publisher, domainSlug: slug });
|
|
3037
3071
|
}
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
for (const [repo, items] of [...byRepo.entries()].filter(([r]) => r !== "").sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
3042
|
-
rows.push({ type: "repo-header", origin, source: publisher, repo });
|
|
3043
|
-
pushAssets(items);
|
|
3072
|
+
const items = sortItems(byDomain.get(slug));
|
|
3073
|
+
const sequenced = meta?.relation === "sequence";
|
|
3074
|
+
items.forEach((entry, i) => pushAsset(origin, entry, true, sequenced ? i + 1 : void 0));
|
|
3044
3075
|
}
|
|
3045
3076
|
}
|
|
3046
3077
|
}
|
|
@@ -3064,18 +3095,20 @@ function reconcileCollapsedSets(rows) {
|
|
|
3064
3095
|
for (const s of state.collapsedSources) {
|
|
3065
3096
|
if (!newSources.has(s)) state.collapsedSources.delete(s);
|
|
3066
3097
|
}
|
|
3067
|
-
const
|
|
3068
|
-
rows.filter((r) => r.type === "
|
|
3098
|
+
const newDomainKeys = new Set(
|
|
3099
|
+
rows.filter((r) => r.type === "domain-header").map((r) => domainKey(rowOrigin(r), r.source, r.domainSlug ?? NO_DOMAIN))
|
|
3069
3100
|
);
|
|
3070
|
-
for (const d of state.
|
|
3071
|
-
if (!
|
|
3101
|
+
for (const d of state.collapsedDomains) {
|
|
3102
|
+
if (!newDomainKeys.has(d)) state.collapsedDomains.delete(d);
|
|
3103
|
+
}
|
|
3104
|
+
for (const d of state.expandedDomainInfo) {
|
|
3105
|
+
if (!newDomainKeys.has(d)) state.expandedDomainInfo.delete(d);
|
|
3072
3106
|
}
|
|
3073
|
-
for (const d of newRepoKeys) state.collapsedRepos.add(d);
|
|
3074
3107
|
}
|
|
3075
3108
|
async function loadSourcesAndLibraries() {
|
|
3076
3109
|
try {
|
|
3077
3110
|
const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir: skaileHomeDir2 }] = await Promise.all([
|
|
3078
|
-
import('../open-library-
|
|
3111
|
+
import('../open-library-5WWTBHQD.js'),
|
|
3079
3112
|
import('../library/index.js')
|
|
3080
3113
|
]);
|
|
3081
3114
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -3115,7 +3148,7 @@ function rebuildVisible() {
|
|
|
3115
3148
|
state.assetRows,
|
|
3116
3149
|
state.collapsedOrigins,
|
|
3117
3150
|
state.collapsedSources,
|
|
3118
|
-
state.
|
|
3151
|
+
state.collapsedDomains,
|
|
3119
3152
|
state.originFilter
|
|
3120
3153
|
);
|
|
3121
3154
|
clampCursor();
|
|
@@ -3140,7 +3173,7 @@ var TABS = {
|
|
|
3140
3173
|
rowCount: () => state.visibleRows.length,
|
|
3141
3174
|
selectableCount: () => state.assetRows.filter(isAsset).length,
|
|
3142
3175
|
renderRow: (i, sel) => renderAssetRow(state.visibleRows[i], sel),
|
|
3143
|
-
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
|
|
3176
|
+
footer: " \u2191\u2193/jk nav \u2190/\u2192 collapse/expand [space/+/-] select [a/\u21B5] apply [d] domain info [i] info [1]lib [2]src [3]store [0]all Tab [q] quit"
|
|
3144
3177
|
},
|
|
3145
3178
|
sources: {
|
|
3146
3179
|
label: "Sources",
|
|
@@ -3247,19 +3280,35 @@ function renderAssetRow(row, selected) {
|
|
|
3247
3280
|
selected
|
|
3248
3281
|
});
|
|
3249
3282
|
}
|
|
3250
|
-
if (row.type === "
|
|
3283
|
+
if (row.type === "domain-header") {
|
|
3251
3284
|
const origin = rowOrigin(row);
|
|
3252
|
-
const slug = row.
|
|
3253
|
-
const
|
|
3285
|
+
const slug = row.domainSlug ?? NO_DOMAIN;
|
|
3286
|
+
const meta = domainRegistry.get(slug);
|
|
3287
|
+
const title = meta?.title || slug || "(no domain)";
|
|
3288
|
+
const badge2 = relationBadge(meta?.relation);
|
|
3289
|
+
const label = `${pc5.magenta("\u25C8")} ${pc5.bold(title)}${badge2 ? ` ${badge2}` : ""}`;
|
|
3254
3290
|
return renderHeaderLine({
|
|
3255
3291
|
indent: " ".repeat(5),
|
|
3256
|
-
collapsed: state.
|
|
3257
|
-
match: (r) => isAsset(r) &&
|
|
3258
|
-
refs:
|
|
3259
|
-
label
|
|
3292
|
+
collapsed: state.collapsedDomains.has(domainKey(origin, row.source, slug)),
|
|
3293
|
+
match: (r) => isAsset(r) && inDomain(r, origin, row.source, slug),
|
|
3294
|
+
refs: domainAssetRefs(state.assetRows, origin, row.source, slug),
|
|
3295
|
+
label,
|
|
3260
3296
|
selected
|
|
3261
3297
|
});
|
|
3262
3298
|
}
|
|
3299
|
+
if (row.type === "domain-info") {
|
|
3300
|
+
const origin = rowOrigin(row);
|
|
3301
|
+
const slug = row.domainSlug ?? NO_DOMAIN;
|
|
3302
|
+
const key = domainKey(origin, row.source, slug);
|
|
3303
|
+
const line2 = renderDomainInfoLine(
|
|
3304
|
+
domainRegistry.get(slug),
|
|
3305
|
+
origin,
|
|
3306
|
+
row.source,
|
|
3307
|
+
slug,
|
|
3308
|
+
state.expandedDomainInfo.has(key)
|
|
3309
|
+
);
|
|
3310
|
+
return selected ? pc5.inverse(line2.padEnd(state.cols)) : line2;
|
|
3311
|
+
}
|
|
3263
3312
|
const e = row.entry;
|
|
3264
3313
|
const ref = assetRefOf(row) ?? "";
|
|
3265
3314
|
let status4;
|
|
@@ -3267,15 +3316,41 @@ function renderAssetRow(row, selected) {
|
|
|
3267
3316
|
else if (state.pendingRemoves.has(ref)) status4 = pc5.red("- ");
|
|
3268
3317
|
else if (row.installed) status4 = pc5.green("\u2713 ");
|
|
3269
3318
|
else status4 = pc5.dim("\xB7 ");
|
|
3319
|
+
const dm = row.underDomain ? domainRegistry.get(rowDomain(row)) : void 0;
|
|
3320
|
+
const recommended = !!dm?.recommendedRef && dm.recommendedRef === ref;
|
|
3321
|
+
const hintStr = [relationGlyph(dm?.relation, row.seq), recommended ? pc5.yellow("\u2605") : ""].filter(Boolean).join(" ");
|
|
3322
|
+
const hintWidthText = [relationGlyphText(dm?.relation, row.seq), recommended ? "\u2605" : ""].filter(Boolean).join(" ");
|
|
3323
|
+
const hint = hintStr ? `${hintStr} ` : "";
|
|
3324
|
+
const hintWidth = hintWidthText ? hintWidthText.length + 1 : 0;
|
|
3270
3325
|
const kind = kindColorPad(e.kind);
|
|
3271
3326
|
const name = fitWidth(e.name, 30);
|
|
3272
3327
|
const badge = e.category ? `${pc5.dim("[")}${pc5.cyan(e.category)}${pc5.dim("]")} ` : "";
|
|
3273
3328
|
const badgeWidth = e.category ? e.category.length + 3 : 0;
|
|
3274
|
-
const
|
|
3275
|
-
const
|
|
3276
|
-
const
|
|
3329
|
+
const repoBare = e.repo ? e.repo.includes("/") ? e.repo.slice(e.repo.indexOf("/") + 1) : e.repo : "";
|
|
3330
|
+
const repoBadge = repoBare ? pc5.dim(` \xB7${repoBare}`) : "";
|
|
3331
|
+
const repoWidth = repoBare ? repoBare.length + 2 : 0;
|
|
3332
|
+
const desc = e.description?.slice(0, Math.max(0, state.cols - 56 - badgeWidth - hintWidth - repoWidth)) ?? "";
|
|
3333
|
+
const indent = " ".repeat(row.underDomain ? 7 : 5);
|
|
3334
|
+
const line = `${indent}${status4} ${hint}${kind} ${name} ${badge}${pc5.dim(desc)}${repoBadge}`;
|
|
3277
3335
|
return selected ? pc5.inverse(line.padEnd(state.cols)) : line;
|
|
3278
3336
|
}
|
|
3337
|
+
function renderDomainInfoLine(meta, origin, publisher, slug, expanded) {
|
|
3338
|
+
const indent = " ".repeat(7);
|
|
3339
|
+
const desc = meta?.description ?? "";
|
|
3340
|
+
if (!expanded) {
|
|
3341
|
+
const budget2 = Math.max(0, state.cols - indent.length - 12);
|
|
3342
|
+
const shown2 = desc.length > budget2 ? `${desc.slice(0, Math.max(0, budget2 - 1))}\u2026` : desc;
|
|
3343
|
+
return pc5.dim(`${indent}\u24D8 ${shown2} [d]`);
|
|
3344
|
+
}
|
|
3345
|
+
const members = domainAssetRefs(state.assetRows, origin, publisher, slug).length;
|
|
3346
|
+
const parts = [desc, `${members} members`];
|
|
3347
|
+
if (meta?.recommendedRef) parts.push(`\u2605 ${meta.recommendedRef}`);
|
|
3348
|
+
if (meta?.sidecarSource) parts.push(`sidecar ${meta.sidecarSource}`);
|
|
3349
|
+
const full = parts.join(" \xB7 ");
|
|
3350
|
+
const budget = Math.max(0, state.cols - indent.length - 3);
|
|
3351
|
+
const shown = full.length > budget ? `${full.slice(0, Math.max(0, budget - 1))}\u2026` : full;
|
|
3352
|
+
return pc5.dim(`${indent}\u24D8 ${shown}`);
|
|
3353
|
+
}
|
|
3279
3354
|
function renderSourceRow(row, selected) {
|
|
3280
3355
|
const line = ` ${S.cmd(fitWidth(row.name, 20))} ${pc5.dim(row.ownership.padEnd(12))} ${pc5.dim(`${row.assetCount} assets`)} ${pc5.dim(row.path)}`;
|
|
3281
3356
|
return selected ? pc5.inverse(line.padEnd(state.cols)) : line;
|
|
@@ -3449,10 +3524,10 @@ function expandUnderCursor() {
|
|
|
3449
3524
|
} else if (row.type === "publisher-header" && state.collapsedSources.has(srcKey(origin, row.source))) {
|
|
3450
3525
|
state.collapsedSources.delete(srcKey(origin, row.source));
|
|
3451
3526
|
rebuildVisible();
|
|
3452
|
-
} else if (row.type === "
|
|
3453
|
-
const dk =
|
|
3454
|
-
if (state.
|
|
3455
|
-
state.
|
|
3527
|
+
} else if (row.type === "domain-header") {
|
|
3528
|
+
const dk = domainKey(origin, row.source, row.domainSlug ?? NO_DOMAIN);
|
|
3529
|
+
if (state.collapsedDomains.has(dk)) {
|
|
3530
|
+
state.collapsedDomains.delete(dk);
|
|
3456
3531
|
rebuildVisible();
|
|
3457
3532
|
}
|
|
3458
3533
|
}
|
|
@@ -3483,10 +3558,10 @@ function collapseOrJumpUnderCursor() {
|
|
|
3483
3558
|
}
|
|
3484
3559
|
return;
|
|
3485
3560
|
}
|
|
3486
|
-
if (row.type === "
|
|
3487
|
-
const dk =
|
|
3488
|
-
if (!state.
|
|
3489
|
-
state.
|
|
3561
|
+
if (row.type === "domain-header") {
|
|
3562
|
+
const dk = domainKey(origin, row.source, row.domainSlug ?? NO_DOMAIN);
|
|
3563
|
+
if (!state.collapsedDomains.has(dk)) {
|
|
3564
|
+
state.collapsedDomains.add(dk);
|
|
3490
3565
|
rebuildVisible();
|
|
3491
3566
|
} else {
|
|
3492
3567
|
const idx2 = findLastIndex(
|
|
@@ -3501,10 +3576,28 @@ function collapseOrJumpUnderCursor() {
|
|
|
3501
3576
|
const idx = findLastIndex(
|
|
3502
3577
|
state.visibleRows,
|
|
3503
3578
|
state.cursor,
|
|
3504
|
-
(r) => r.type === "
|
|
3579
|
+
(r) => r.type === "domain-header" || r.type === "publisher-header" || r.type === "origin-header"
|
|
3505
3580
|
);
|
|
3506
3581
|
if (idx >= 0) state.cursor = idx;
|
|
3507
3582
|
}
|
|
3583
|
+
function toggleDomainInfoUnderCursor() {
|
|
3584
|
+
const row = state.visibleRows[state.cursor];
|
|
3585
|
+
if (!row) return;
|
|
3586
|
+
const origin = rowOrigin(row);
|
|
3587
|
+
let key = null;
|
|
3588
|
+
if (row.type === "domain-header" || row.type === "domain-info") {
|
|
3589
|
+
key = domainKey(origin, row.source, row.domainSlug ?? NO_DOMAIN);
|
|
3590
|
+
} else if (row.type === "asset" && row.underDomain) {
|
|
3591
|
+
key = domainKey(origin, rowPublisher(row), rowDomain(row));
|
|
3592
|
+
}
|
|
3593
|
+
if (!key) {
|
|
3594
|
+
state.message = pc5.dim("No domain here \u2014 [d] opens a domain's info region.");
|
|
3595
|
+
return;
|
|
3596
|
+
}
|
|
3597
|
+
if (state.expandedDomainInfo.has(key)) state.expandedDomainInfo.delete(key);
|
|
3598
|
+
else state.expandedDomainInfo.add(key);
|
|
3599
|
+
rebuildVisible();
|
|
3600
|
+
}
|
|
3508
3601
|
function findLastIndex(arr, endExclusive, pred) {
|
|
3509
3602
|
for (let i = Math.min(endExclusive, arr.length) - 1; i >= 0; i--) {
|
|
3510
3603
|
if (pred(arr[i])) return i;
|
|
@@ -3603,6 +3696,8 @@ var KEYMAP = [
|
|
|
3603
3696
|
{ keys: ["\r", "\n"], when: TAB_ASSETS, run: applyChanges },
|
|
3604
3697
|
// Info — assets only
|
|
3605
3698
|
{ keys: ["i"], when: TAB_ASSETS, run: showInfo },
|
|
3699
|
+
// Domain info region — assets only. Toggles the ⓘ line truncated ↔ full.
|
|
3700
|
+
{ keys: ["d"], when: TAB_ASSETS, run: toggleDomainInfoUnderCursor },
|
|
3606
3701
|
// Origin filter — assets only. 1/2/3 isolate one origin, 0 clears.
|
|
3607
3702
|
{ keys: ["1"], when: TAB_ASSETS, run: () => setOriginFilter("library") },
|
|
3608
3703
|
{ keys: ["2"], when: TAB_ASSETS, run: () => setOriginFilter("source") },
|
|
@@ -3877,7 +3972,7 @@ function action2(fn) {
|
|
|
3877
3972
|
};
|
|
3878
3973
|
}
|
|
3879
3974
|
async function reconcileAndReport(projectDir, plugins) {
|
|
3880
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
3975
|
+
const { reconcilePlugins } = await import('../plugin-store-R2WLXRT3.js');
|
|
3881
3976
|
if (plugins.length === 0) {
|
|
3882
3977
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
3883
3978
|
return;
|
|
@@ -3893,7 +3988,7 @@ async function reconcileAndReport(projectDir, plugins) {
|
|
|
3893
3988
|
async function runInstall2(spec, opts) {
|
|
3894
3989
|
const projectDir = path12__default.resolve(opts.projectDir);
|
|
3895
3990
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3896
|
-
const { specName } = await import('../plugin-store-
|
|
3991
|
+
const { specName } = await import('../plugin-store-R2WLXRT3.js');
|
|
3897
3992
|
const yamlPath = path12__default.join(projectDir, "skaile.yaml");
|
|
3898
3993
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3899
3994
|
const replaced = editor.addPlugin(spec, specName);
|
|
@@ -3905,7 +4000,7 @@ async function runInstall2(spec, opts) {
|
|
|
3905
4000
|
async function runRemove(name, opts) {
|
|
3906
4001
|
const projectDir = path12__default.resolve(opts.projectDir);
|
|
3907
4002
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3908
|
-
const { specName } = await import('../plugin-store-
|
|
4003
|
+
const { specName } = await import('../plugin-store-R2WLXRT3.js');
|
|
3909
4004
|
const yamlPath = path12__default.join(projectDir, "skaile.yaml");
|
|
3910
4005
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3911
4006
|
const removed = editor.removePlugin(name, specName);
|
|
@@ -3933,7 +4028,7 @@ async function runList(opts) {
|
|
|
3933
4028
|
const registry = createPluginRegistry();
|
|
3934
4029
|
if (declared.length > 0) {
|
|
3935
4030
|
try {
|
|
3936
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
4031
|
+
const { loadPlugins } = await import('../plugin-store-R2WLXRT3.js');
|
|
3937
4032
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
3938
4033
|
for (const f of result.failed) logWarn(f.error);
|
|
3939
4034
|
} catch (err) {
|
|
@@ -4165,7 +4260,7 @@ async function runRefInstall(ref, opts) {
|
|
|
4165
4260
|
const spinner5 = p5.spinner();
|
|
4166
4261
|
spinner5.start(`Installing ${ref}`);
|
|
4167
4262
|
try {
|
|
4168
|
-
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-
|
|
4263
|
+
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-5WWTBHQD.js');
|
|
4169
4264
|
const catalog = await openCatalogSource2({ projectDir: path12__default.resolve(opts.projectDir) });
|
|
4170
4265
|
if (!supportsInstallManifest(catalog)) {
|
|
4171
4266
|
throw new Error(
|
|
@@ -4197,7 +4292,7 @@ async function runRefInstall(ref, opts) {
|
|
|
4197
4292
|
async function runYamlInstall(opts) {
|
|
4198
4293
|
const projectDir = path12__default.resolve(opts.projectDir);
|
|
4199
4294
|
try {
|
|
4200
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
4295
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-HMMEQEZC.js');
|
|
4201
4296
|
const hydrate = ensureSourcesCloned(projectDir, { quiet: true });
|
|
4202
4297
|
if (hydrate.cloned.length > 0) {
|
|
4203
4298
|
logOk(`Cloned source(s): ${hydrate.cloned.join(", ")}`);
|
|
@@ -4634,7 +4729,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
4634
4729
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
4635
4730
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
4636
4731
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
4637
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
4732
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-R2WLXRT3.js');
|
|
4638
4733
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
4639
4734
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
4640
4735
|
if (result.loaded.length > 0) {
|
|
@@ -4655,7 +4750,7 @@ async function runCompileTest(opts) {
|
|
|
4655
4750
|
const { unlinkSync, existsSync: existsSync12 } = await import('fs');
|
|
4656
4751
|
const { spawn } = await import('child_process');
|
|
4657
4752
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
4658
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
4753
|
+
const { MONOREPO_ROOT } = await import('../paths-UC3ZHLKC.js');
|
|
4659
4754
|
if (MONOREPO_ROOT === null) {
|
|
4660
4755
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
4661
4756
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -6728,7 +6823,7 @@ async function bootstrapUserConfig() {
|
|
|
6728
6823
|
}
|
|
6729
6824
|
async function hydrateInitSources(resolved, created) {
|
|
6730
6825
|
try {
|
|
6731
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
6826
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-HMMEQEZC.js');
|
|
6732
6827
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
6733
6828
|
for (const n of hydrate.cloned) created.push(`~/.skaile/sources/${n}/`);
|
|
6734
6829
|
if (hydrate.failed.length > 0) {
|
|
@@ -6756,7 +6851,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
6756
6851
|
console.log();
|
|
6757
6852
|
}
|
|
6758
6853
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
6759
|
-
const { cmdSetup } = await import('../setup-
|
|
6854
|
+
const { cmdSetup } = await import('../setup-BSDHVMR6.js');
|
|
6760
6855
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
6761
6856
|
});
|
|
6762
6857
|
program.addCommand(makeInstallCommand());
|