@skill-map/cli 0.54.0 → 0.56.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/dist/cli/tutorial/sm-tutorial/SKILL.md +22 -24
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +8 -7
- package/dist/cli/tutorial/sm-tutorial/references/_manifest.yml +21 -42
- package/dist/cli/tutorial/sm-tutorial/references/fixtures.md +15 -7
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-cli.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-connect-harness.md +9 -10
- package/dist/cli/tutorial/sm-tutorial/references/part-daily-loop.md +563 -0
- package/dist/cli/tutorial/sm-tutorial/references/part-mcp.md +5 -1
- package/dist/cli/tutorial/sm-tutorial/references/part-plugins.md +7 -7
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +24 -12
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -2
- package/dist/cli.js +1785 -1102
- package/dist/index.js +148 -14
- package/dist/kernel/index.d.ts +229 -97
- package/dist/kernel/index.js +148 -14
- package/dist/migrations/001_initial.sql +5 -0
- package/dist/ui/chunk-4ITL7E6U.js +1 -0
- package/dist/ui/chunk-DWBJCNC7.js +2 -0
- package/dist/ui/{chunk-CXTU4HQV.js → chunk-GHOVZAAV.js} +1 -1
- package/dist/ui/{chunk-GBKHMJ4B.js → chunk-H6O2DYVT.js} +13 -13
- package/dist/ui/chunk-HDKR6XHG.js +917 -0
- package/dist/ui/{chunk-GEI6INVH.js → chunk-JA4Z74I3.js} +1 -1
- package/dist/ui/chunk-RS3ANRT5.js +1 -0
- package/dist/ui/chunk-VUNP5KNI.js +3 -0
- package/dist/ui/chunk-W3Z3CZL4.js +1844 -0
- package/dist/ui/chunk-YHJL5LP3.js +913 -0
- package/dist/ui/index.html +2 -2
- package/dist/ui/{main-HP3MOLI2.js → main-PL3BEVQI.js} +3 -3
- package/dist/ui/{styles-4SNVM34O.css → styles-RHEEXRHQ.css} +1 -1
- package/migrations/001_initial.sql +5 -0
- package/package.json +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-live-site.md +0 -155
- package/dist/cli/tutorial/sm-tutorial/references/part-maintain.md +0 -284
- package/dist/cli/tutorial/sm-tutorial/references/part-run-harness.md +0 -181
- package/dist/ui/chunk-4CXAL43H.js +0 -1
- package/dist/ui/chunk-BUNPMGDX.js +0 -2205
- package/dist/ui/chunk-DSNBKMYU.js +0 -2
- package/dist/ui/chunk-JXRIGHET.js +0 -552
- package/dist/ui/chunk-MVRQGDZJ.js +0 -123
- package/dist/ui/chunk-WFLPMCK4.js +0 -392
package/dist/kernel/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// kernel/i18n/registry.texts.ts
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bed984e8-cc93-51f3-94cd-c0789fe21577")}catch(e){}}();
|
|
4
4
|
var REGISTRY_TEXTS = {
|
|
5
5
|
duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
|
|
6
6
|
unknownKind: "Unknown extension kind: {{kind}}",
|
|
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
|
|
|
102
102
|
// package.json
|
|
103
103
|
var package_default = {
|
|
104
104
|
name: "@skill-map/cli",
|
|
105
|
-
version: "0.
|
|
105
|
+
version: "0.56.0",
|
|
106
106
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
type: "module",
|
|
@@ -745,6 +745,10 @@ function matchesFilter(hook, event) {
|
|
|
745
745
|
function buildHookContext(_hook, trigger, event) {
|
|
746
746
|
const data = event.data ?? {};
|
|
747
747
|
const ctx = {
|
|
748
|
+
// `settings` is always populated (possibly empty) so hooks can read
|
|
749
|
+
// `ctx.settings.<id>` without a presence check. The composer
|
|
750
|
+
// populated `resolvedSettings` on each composed hook.
|
|
751
|
+
settings: _hook.resolvedSettings ?? {},
|
|
748
752
|
event: {
|
|
749
753
|
type: trigger,
|
|
750
754
|
timestamp: event.timestamp,
|
|
@@ -1190,8 +1194,83 @@ function isExternalUrlLink(link) {
|
|
|
1190
1194
|
return EXTERNAL_URL_SCHEME_RE.test(link.target);
|
|
1191
1195
|
}
|
|
1192
1196
|
|
|
1197
|
+
// kernel/orchestrator/action-projections.ts
|
|
1198
|
+
function runActionProjections(actions, nodes, links, emitter) {
|
|
1199
|
+
const contributions = [];
|
|
1200
|
+
const contributionErrors = [];
|
|
1201
|
+
const validators = loadSchemaValidators();
|
|
1202
|
+
for (const action of actions) {
|
|
1203
|
+
if (typeof action.project !== "function") continue;
|
|
1204
|
+
const qualifiedId = qualifiedExtensionId(action.pluginId, action.id);
|
|
1205
|
+
const declaredContributions = readDeclaredContributionRefs(action);
|
|
1206
|
+
const emitContribution = (nodePath, ref, payload) => {
|
|
1207
|
+
const declared = typeof ref === "object" && ref !== null ? declaredContributions.get(ref) : void 0;
|
|
1208
|
+
if (!declared) {
|
|
1209
|
+
const message = tx(ORCHESTRATOR_TEXTS.extensionErrorContributionUndeclaredRef, {
|
|
1210
|
+
extractorId: qualifiedId,
|
|
1211
|
+
nodePath
|
|
1212
|
+
});
|
|
1213
|
+
emitExtensionError(emitter, qualifiedId, nodePath, {
|
|
1214
|
+
phase: "emitContribution",
|
|
1215
|
+
reason: "undeclared-contribution-ref",
|
|
1216
|
+
message
|
|
1217
|
+
});
|
|
1218
|
+
contributionErrors.push({
|
|
1219
|
+
pluginId: action.pluginId,
|
|
1220
|
+
extensionId: action.id,
|
|
1221
|
+
nodePath,
|
|
1222
|
+
reason: "undeclared-contribution-ref",
|
|
1223
|
+
message,
|
|
1224
|
+
emittedAt: Date.now()
|
|
1225
|
+
});
|
|
1226
|
+
return;
|
|
1227
|
+
}
|
|
1228
|
+
const result = validators.validateContributionPayload(declared.slot, payload);
|
|
1229
|
+
if (!result.ok) {
|
|
1230
|
+
const message = tx(ORCHESTRATOR_TEXTS.extensionErrorContributionPayloadInvalid, {
|
|
1231
|
+
extractorId: qualifiedId,
|
|
1232
|
+
contributionId: declared.id,
|
|
1233
|
+
nodePath,
|
|
1234
|
+
slot: declared.slot,
|
|
1235
|
+
errors: result.errors
|
|
1236
|
+
});
|
|
1237
|
+
emitExtensionError(emitter, qualifiedId, nodePath, {
|
|
1238
|
+
phase: "emitContribution",
|
|
1239
|
+
contributionId: declared.id,
|
|
1240
|
+
slot: declared.slot,
|
|
1241
|
+
reason: result.errors,
|
|
1242
|
+
message
|
|
1243
|
+
});
|
|
1244
|
+
contributionErrors.push({
|
|
1245
|
+
pluginId: action.pluginId,
|
|
1246
|
+
extensionId: action.id,
|
|
1247
|
+
nodePath,
|
|
1248
|
+
reason: result.errors,
|
|
1249
|
+
message,
|
|
1250
|
+
contributionId: declared.id,
|
|
1251
|
+
slot: declared.slot,
|
|
1252
|
+
emittedAt: Date.now()
|
|
1253
|
+
});
|
|
1254
|
+
return;
|
|
1255
|
+
}
|
|
1256
|
+
contributions.push({
|
|
1257
|
+
pluginId: action.pluginId,
|
|
1258
|
+
extensionId: action.id,
|
|
1259
|
+
nodePath,
|
|
1260
|
+
contributionId: declared.id,
|
|
1261
|
+
slot: declared.slot,
|
|
1262
|
+
payload,
|
|
1263
|
+
emittedAt: Date.now()
|
|
1264
|
+
});
|
|
1265
|
+
};
|
|
1266
|
+
const ctx = { nodes, links, emitContribution };
|
|
1267
|
+
action.project(ctx);
|
|
1268
|
+
}
|
|
1269
|
+
return { contributions, contributionErrors };
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1193
1272
|
// kernel/orchestrator/analyzers.ts
|
|
1194
|
-
async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, signals, seedIssues = []) {
|
|
1273
|
+
async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, brokenLinks, signals, seedIssues = []) {
|
|
1195
1274
|
const issues = [...seedIssues];
|
|
1196
1275
|
const contributions = [];
|
|
1197
1276
|
const contributionErrors = [];
|
|
@@ -1268,6 +1347,10 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1268
1347
|
const emitted = await analyzer.evaluate({
|
|
1269
1348
|
nodes,
|
|
1270
1349
|
links: internalLinks,
|
|
1350
|
+
// `settings` is always populated (possibly empty) so analyzers can
|
|
1351
|
+
// read `ctx.settings.<id>` without a presence check. The composer
|
|
1352
|
+
// populated `resolvedSettings` on each composed analyzer.
|
|
1353
|
+
settings: analyzer.resolvedSettings ?? {},
|
|
1271
1354
|
orphanSidecars: analyzerOrphans,
|
|
1272
1355
|
sidecarRoots,
|
|
1273
1356
|
annotationContributions,
|
|
@@ -1281,6 +1364,7 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1281
1364
|
...referenceablePaths ? { referenceablePaths } : {},
|
|
1282
1365
|
...cwd ? { cwd } : {},
|
|
1283
1366
|
...reservedNodePaths ? { reservedNodePaths } : {},
|
|
1367
|
+
...brokenLinks ? { brokenLinks } : {},
|
|
1284
1368
|
...signals && signals.length > 0 ? { signals } : {},
|
|
1285
1369
|
emitContribution
|
|
1286
1370
|
});
|
|
@@ -1560,16 +1644,34 @@ function readDirname(node) {
|
|
|
1560
1644
|
|
|
1561
1645
|
// kernel/orchestrator/lift-resolved-link-confidence.ts
|
|
1562
1646
|
var RESERVED_TARGET_CONFIDENCE = 0.1;
|
|
1647
|
+
var BROKEN_TARGET_CONFIDENCE = 0.5;
|
|
1563
1648
|
function liftResolvedLinkConfidence(links, nodes, ctx) {
|
|
1564
1649
|
if (!links.some((l) => l.confidence < 1)) return;
|
|
1565
1650
|
const indexes = buildIndexes(nodes, ctx);
|
|
1566
1651
|
for (const link of links) {
|
|
1567
|
-
if (link.confidence
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1652
|
+
if (link.confidence < 1) applyResolution(link, indexes, ctx);
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
function collectBrokenLinks(links, nodes, ctx) {
|
|
1656
|
+
const broken = /* @__PURE__ */ new Set();
|
|
1657
|
+
if (links.length === 0) return broken;
|
|
1658
|
+
const indexes = buildIndexes(nodes, ctx);
|
|
1659
|
+
for (const link of links) {
|
|
1660
|
+
if (isGenuinelyBroken(link, indexes)) broken.add(link);
|
|
1572
1661
|
}
|
|
1662
|
+
return broken;
|
|
1663
|
+
}
|
|
1664
|
+
function applyResolution(link, indexes, ctx) {
|
|
1665
|
+
const resolution = resolve5(link, indexes, ctx);
|
|
1666
|
+
if (resolution === "none") {
|
|
1667
|
+
if (isGenuinelyBroken(link, indexes)) {
|
|
1668
|
+
link.confidence = Math.min(link.confidence, BROKEN_TARGET_CONFIDENCE);
|
|
1669
|
+
}
|
|
1670
|
+
return;
|
|
1671
|
+
}
|
|
1672
|
+
link.resolvedTarget = resolution;
|
|
1673
|
+
if (indexes.nodeByPath.get(resolution)?.virtual) return;
|
|
1674
|
+
link.confidence = ctx.reservedNodePaths.has(resolution) ? RESERVED_TARGET_CONFIDENCE : 1;
|
|
1573
1675
|
}
|
|
1574
1676
|
function buildIndexes(nodes, ctx) {
|
|
1575
1677
|
const byPath2 = /* @__PURE__ */ new Set();
|
|
@@ -1586,6 +1688,12 @@ function resolve5(link, indexes, ctx) {
|
|
|
1586
1688
|
if (indexes.byPath.has(link.target)) return link.target;
|
|
1587
1689
|
return resolveByName(link, indexes, ctx);
|
|
1588
1690
|
}
|
|
1691
|
+
function isGenuinelyBroken(link, indexes) {
|
|
1692
|
+
if (indexes.byPath.has(link.target)) return false;
|
|
1693
|
+
const stripped = stripTriggerSigil(link.trigger?.normalizedTrigger);
|
|
1694
|
+
if (stripped !== null && indexes.byName.has(stripped)) return false;
|
|
1695
|
+
return true;
|
|
1696
|
+
}
|
|
1589
1697
|
function resolveByName(link, indexes, ctx) {
|
|
1590
1698
|
const stripped = stripTriggerSigil(link.trigger?.normalizedTrigger);
|
|
1591
1699
|
if (stripped === null) return "none";
|
|
@@ -2146,11 +2254,11 @@ async function* walkContent(roots, options) {
|
|
|
2146
2254
|
const extensions = options.extensions;
|
|
2147
2255
|
const sizeLimit = buildSizeLimit(options);
|
|
2148
2256
|
for (const root of roots) {
|
|
2149
|
-
for await (const
|
|
2150
|
-
const relPath = relative2(root,
|
|
2257
|
+
for await (const entry of walkRoot(root, root, filter, extensions, sizeLimit)) {
|
|
2258
|
+
const relPath = relative2(root, entry.full).split(sep).join("/");
|
|
2151
2259
|
let raw;
|
|
2152
2260
|
try {
|
|
2153
|
-
raw = await readFile(
|
|
2261
|
+
raw = await readFile(entry.full, "utf8");
|
|
2154
2262
|
} catch {
|
|
2155
2263
|
continue;
|
|
2156
2264
|
}
|
|
@@ -2160,6 +2268,9 @@ async function* walkContent(roots, options) {
|
|
|
2160
2268
|
body: parsed.body,
|
|
2161
2269
|
frontmatterRaw: parsed.frontmatterRaw,
|
|
2162
2270
|
frontmatter: parsed.frontmatter,
|
|
2271
|
+
// File mtime from the TOCTOU `lstat` (zero extra syscalls).
|
|
2272
|
+
// Threaded onto the persisted `Node` as `modifiedAtMs`.
|
|
2273
|
+
modifiedAtMs: entry.modifiedAtMs,
|
|
2163
2274
|
// Audit L1: forward parser diagnostics (e.g. malformed YAML)
|
|
2164
2275
|
// through the IRawNode surface so the orchestrator can
|
|
2165
2276
|
// convert them into warn-level kernel `Issue` rows. Omitted
|
|
@@ -2200,7 +2311,7 @@ async function* walkRoot(root, current, filter, extensions, sizeLimit) {
|
|
|
2200
2311
|
sizeLimit.onOversizedFile?.({ path: rel, bytes: s.size });
|
|
2201
2312
|
continue;
|
|
2202
2313
|
}
|
|
2203
|
-
yield full;
|
|
2314
|
+
yield { full, modifiedAtMs: Math.round(s.mtimeMs) };
|
|
2204
2315
|
} catch {
|
|
2205
2316
|
}
|
|
2206
2317
|
}
|
|
@@ -2491,6 +2602,7 @@ function buildNode(args) {
|
|
|
2491
2602
|
externalRefsCount: 0,
|
|
2492
2603
|
frontmatter: args.frontmatter
|
|
2493
2604
|
};
|
|
2605
|
+
if (args.modifiedAtMs !== void 0) node.modifiedAtMs = args.modifiedAtMs;
|
|
2494
2606
|
if (args.encoder) {
|
|
2495
2607
|
node.tokens = countTokens(args.encoder, args.frontmatterRaw, args.body);
|
|
2496
2608
|
}
|
|
@@ -2606,7 +2718,10 @@ function buildFreshNodeAndValidateFrontmatter(opts) {
|
|
|
2606
2718
|
frontmatter: opts.raw.frontmatter,
|
|
2607
2719
|
bodyHash: opts.bodyHash,
|
|
2608
2720
|
frontmatterHash: opts.frontmatterHash,
|
|
2609
|
-
encoder: opts.encoder
|
|
2721
|
+
encoder: opts.encoder,
|
|
2722
|
+
// Thread the walker's mtime through; `buildNode` only attaches it
|
|
2723
|
+
// when present, so virtual / walk()-without-stat sources stay absent.
|
|
2724
|
+
modifiedAtMs: opts.raw.modifiedAtMs
|
|
2610
2725
|
});
|
|
2611
2726
|
const frontmatterIssues = [];
|
|
2612
2727
|
if (opts.raw.parseIssues && opts.raw.parseIssues.length > 0) {
|
|
@@ -3027,6 +3142,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3027
3142
|
walked.signals = resolved.resolvedSignals;
|
|
3028
3143
|
const postWalkCtx = buildPostWalkTransformCtx(exts.providers, walked.nodes, activeProviderId);
|
|
3029
3144
|
walked.internalLinks = applyPostWalkTransforms(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3145
|
+
const brokenLinks = collectBrokenLinks(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3030
3146
|
recomputeLinkCounts(walked.nodes, walked.internalLinks);
|
|
3031
3147
|
recomputeExternalRefsCount(walked.nodes, walked.externalLinks, walked.cachedPaths);
|
|
3032
3148
|
await dispatchExtractorCompleted(exts.extractors, emitter, hookDispatcher);
|
|
@@ -3048,6 +3164,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3048
3164
|
emitter,
|
|
3049
3165
|
hookDispatcher,
|
|
3050
3166
|
postWalkCtx.reservedNodePaths,
|
|
3167
|
+
brokenLinks,
|
|
3051
3168
|
walked.signals,
|
|
3052
3169
|
// Seed the accumulator with orchestrator-emitted frontmatter
|
|
3053
3170
|
// issues so the aggregate phase (`core/issue-counter`) counts
|
|
@@ -3056,6 +3173,13 @@ async function runScanInternal(_kernel, options) {
|
|
|
3056
3173
|
walked.frontmatterIssues
|
|
3057
3174
|
);
|
|
3058
3175
|
mergeAnalyzerEmissions(walked, analyzerResult, exts.analyzers);
|
|
3176
|
+
const projectionResult = runActionProjections(
|
|
3177
|
+
exts.actions ?? [],
|
|
3178
|
+
walked.nodes,
|
|
3179
|
+
walked.internalLinks,
|
|
3180
|
+
emitter
|
|
3181
|
+
);
|
|
3182
|
+
mergeActionProjections(walked, projectionResult, exts.actions);
|
|
3059
3183
|
const issues = analyzerResult.issues;
|
|
3060
3184
|
const silenced = options.ignoreFilter ? (path) => options.ignoreFilter.ignores(path) : void 0;
|
|
3061
3185
|
const renameOps = prior ? detectRenamesAndOrphans(prior, walked.nodes, issues, silenced) : [];
|
|
@@ -3164,6 +3288,16 @@ function mergeAnalyzerEmissions(walked, analyzerResult, analyzers) {
|
|
|
3164
3288
|
}
|
|
3165
3289
|
}
|
|
3166
3290
|
}
|
|
3291
|
+
function mergeActionProjections(walked, projectionResult, actions) {
|
|
3292
|
+
for (const c of projectionResult.contributions) walked.contributions.push(c);
|
|
3293
|
+
for (const e of projectionResult.contributionErrors) walked.contributionErrors.push(e);
|
|
3294
|
+
for (const action of actions ?? []) {
|
|
3295
|
+
if (action.ui === void 0 || typeof action.project !== "function") continue;
|
|
3296
|
+
for (const node of walked.nodes) {
|
|
3297
|
+
walked.freshlyRunTuples.add(`${action.pluginId}\0${action.id}\0${node.path}`);
|
|
3298
|
+
}
|
|
3299
|
+
}
|
|
3300
|
+
}
|
|
3167
3301
|
function buildScanStats(walked, issues, start) {
|
|
3168
3302
|
return {
|
|
3169
3303
|
// `filesSkipped` is "files walked but not classified by any
|
|
@@ -3632,4 +3766,4 @@ export {
|
|
|
3632
3766
|
runScanWithRenames
|
|
3633
3767
|
};
|
|
3634
3768
|
//# sourceMappingURL=index.js.map
|
|
3635
|
-
//# debugId=
|
|
3769
|
+
//# debugId=bed984e8-cc93-51f3-94cd-c0789fe21577
|
|
@@ -38,6 +38,11 @@ CREATE TABLE scan_nodes (
|
|
|
38
38
|
-- inspector can list every external URL without a second round-trip.
|
|
39
39
|
external_refs_json TEXT,
|
|
40
40
|
scanned_at INTEGER NOT NULL,
|
|
41
|
+
-- File modification time (`mtime`) in Unix ms, captured at scan time
|
|
42
|
+
-- from the walker's `lstat`. NULL for virtual / derived nodes (no
|
|
43
|
+
-- backing file). Drives the UI "last modified" sortable column; never
|
|
44
|
+
-- participates in `body_hash` / `frontmatter_hash`.
|
|
45
|
+
modified_at_ms INTEGER,
|
|
41
46
|
-- Sidecar denormalisation (Step 9.6.2 — Decision #3, option (a)):
|
|
42
47
|
-- - `sidecar_present` — 1 when a co-located `.sm` file accompanies
|
|
43
48
|
-- this node, 0 otherwise.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as l,B as C,E as R,H as w,K as g,N as p,P as c,_ as I,c as y,d as M,f as T,ga as d,ia as v,sc as h,u as S}from"./chunk-Q2A6FWC7.js";import{a as m,b}from"./chunk-WCABR6TI.js";var A=new p("DATA_SOURCE"),F=class extends Error{code;details;constructor(r,e,t){super(e),this.name="DataSourceError",this.code=r,this.details=t}};function E(n){n||(n=c(l));let r=new y(e=>{if(n.destroyed){e.next();return}return n.onDestroy(e.next.bind(e))});return e=>e.pipe(R(r))}function me(n,r){let t=!r?.manualCleanup?r?.injector?.get(l)??c(l):null,o=B(r?.equal),s;r?.requireSync?s=d({kind:0},{equal:o}):s=d({kind:1,value:r?.initialValue},{equal:o});let a,i=n.subscribe({next:u=>s.set({kind:1,value:u}),error:u=>{s.set({kind:2,error:u}),a?.()},complete:()=>{a?.()}});if(r?.requireSync&&s().kind===0)throw new w(601,!1);return a=t?.onDestroy(i.unsubscribe.bind(i)),h(()=>{let u=s();switch(u.kind){case 1:return u.value;case 2:throw u.error;case 0:throw new w(601,!1)}},{equal:r?.equal})}function B(n=Object.is){return(r,e)=>r.kind===1&&e.kind===1&&n(r.value,e.value)}var O=new p("SKILL_MAP_MODE");function be(){return typeof document>"u"?"live":document.querySelector('meta[name="skill-map-mode"]')?.content==="demo"?"demo":"live"}function D(n){if(typeof n!="object"||n===null)return!1;let r=n;if(typeof r.type!="string"||r.type.length===0)return!1;let e=r.timestamp;return!(typeof e!="number"&&typeof e!="string"||!("data"in r))}function j(n){if(!D(n)||n.type!=="sidecar.bumped")return!1;let r=n.data;if(typeof r!="object"||r===null||typeof r.nodePath!="string"||r.nodePath.length===0)return!1;let e=r.version;return!(e!==null&&typeof e!="number"||r.status!=="fresh")}var f={connected:n=>`[ws] connected to ${n}`,closed:(n,r)=>`[ws] closed (code=${n}, reason="${r}")`,malformedFrame:n=>`[ws] malformed frame dropped: ${n}`,socketError:n=>`[ws] socket error: ${n}`,reconnectScheduled:(n,r)=>`[ws] reconnect attempt ${r} scheduled in ${n}ms`,reconnectGiveUp:n=>`[ws] giving up after ${n} failed reconnect attempts`};var N=[1e3,2e3,4e3,8e3,16e3,3e4],L=10,K=new Set([1e3]);function W(){return typeof window>"u"||!window.location?"ws://127.0.0.1:4242/ws":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}var H=new p("WS_SOCKET_FACTORY",{providedIn:"root",factory:()=>n=>new WebSocket(n)}),V=new p("WS_URL",{providedIn:"root",factory:()=>W()}),P=(()=>{class n{mode=c(O);destroyRef=c(l);subject=new M;socket=null;reconnectTimer=null;reconnectAttempt=0;disposed=!1;_connectionState=d("connecting");connectionState=this._connectionState.asReadonly();socketFactory=c(H);url=c(V);events$;scanCompleted$;sidecarBumped$;constructor(){this.mode!=="live"?this.events$=T:this.events$=new y(e=>{!this.socket&&!this.disposed&&this.connect();let t=this.subject.subscribe(e);return()=>t.unsubscribe()}).pipe(C({resetOnRefCountZero:!1})),this.scanCompleted$=this.events$.pipe(S(e=>e.type==="scan.completed")),this.sidecarBumped$=this.events$.pipe(S(j)),this.destroyRef.onDestroy(()=>this.disconnect())}disconnect(){if(!this.disposed){if(this.disposed=!0,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket){try{this.socket.close(1e3,"client disconnect")}catch{}this.socket=null}this.subject.complete()}}reconnect(){this.disposed||this.socket||(this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempt=0,this._connectionState.set("connecting"),this.connect())}ngOnDestroy(){this.disconnect()}connect(){if(this.disposed)return;let e;try{e=this.socketFactory(this.url)}catch(t){let o=t instanceof Error?t.message:String(t);console.warn(f.socketError(o)),this.scheduleReconnect();return}this.socket=e,e.onopen=()=>{this.reconnectAttempt=0,this._connectionState.set("open"),console.info(f.connected(this.url))},e.onmessage=t=>{this.handleFrame(t.data)},e.onerror=t=>{let o=typeof t=="object"&&t!==null&&"message"in t?String(t.message??"unknown"):"unknown";console.warn(f.socketError(o))},e.onclose=t=>{console.info(f.closed(t.code,t.reason)),this.socket=null,!this.disposed&&(K.has(t.code)||this.scheduleReconnect())}}handleFrame(e){if(typeof e!="string"){console.warn(f.malformedFrame("non-string frame"));return}let t;try{t=JSON.parse(e)}catch(o){let s=o instanceof Error?o.message:String(o);console.warn(f.malformedFrame(s));return}if(!D(t)){console.warn(f.malformedFrame("envelope shape"));return}this.subject.next(t)}scheduleReconnect(){if(this.disposed)return;if(this.reconnectAttempt>=L){console.warn(f.reconnectGiveUp(L)),this._connectionState.set("lost");return}this._connectionState.set("reconnecting");let e=Math.min(this.reconnectAttempt,N.length-1),t=N[e];this.reconnectAttempt+=1,console.info(f.reconnectScheduled(t,this.reconnectAttempt)),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}get _reconnectAttempt(){return this.reconnectAttempt}static \u0275fac=function(t){return new(t||n)};static \u0275prov=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Oe=(()=>{class n{dataSource=c(A);wsEvents=c(P);destroyRef=c(l);_nodes=d([]);_scan=d(null);_loading=d(!1);_error=d(null);pendingRefresh=!1;wsConnectedBefore=!1;nodes=this._nodes.asReadonly();scan=this._scan.asReadonly();loading=this._loading.asReadonly();error=this._error.asReadonly();count=h(()=>this._nodes().length);byKind=h(()=>{let e=new Map;for(let t of this._nodes()){let o=e.get(t.kind);o?o.push(t):e.set(t.kind,[t])}return e});hasAnyFavorites=h(()=>this._nodes().some(e=>e.isFavorite===!0));constructor(){this.wsEvents.scanCompleted$.pipe(E(this.destroyRef)).subscribe(()=>{this.load()}),this.wsEvents.sidecarBumped$.pipe(E(this.destroyRef)).subscribe(e=>{this.patchSidecarFromBump({nodePath:e.data.nodePath,version:e.data.version,status:e.data.status})}),v(()=>{this.wsEvents.connectionState()==="open"&&(this.wsConnectedBefore&&this.load(),this.wsConnectedBefore=!0)})}setFavoriteLocal(e,t){this._nodes.update(o=>{let s=!1,a=o.map(i=>i.path!==e||i.isFavorite===t?i:(s=!0,b(m({},i),{isFavorite:t})));return s?a:o})}async toggleFavorite(e,t){this.setFavoriteLocal(e,t);try{return t?await this.dataSource.setFavorite(e):await this.dataSource.unsetFavorite(e),t}catch(o){this.setFavoriteLocal(e,!t);let s=o instanceof Error?o.message:String(o);return this._error.set(s),!t}}patchSidecarFromBump(e){this._nodes.update(t=>{let o=!1,s=t.map(a=>{if(a.path!==e.nodePath)return a;o=!0;let i=a.sidecar,u=m({},i?.annotations??{});return e.version!==null&&(u.version=e.version),b(m({},a),{sidecar:m({present:!0,status:e.status,annotations:u},i?.root===void 0?{}:{root:i.root})})});return o?s:t})}async load(){if(this._loading()){this.pendingRefresh=!0;return}this._loading.set(!0),this._error.set(null);try{let e=await this.dataSource.loadScan();this._scan.set(e),this._nodes.set(e.nodes.map(X))}catch(e){let t=e instanceof Error?e.message:String(e);this._error.set(t)}finally{this._loading.set(!1),this.pendingRefresh&&(this.pendingRefresh=!1,queueMicrotask(()=>{this.load()}))}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function X(n){let r=n.kind,e=n.frontmatter??{},t=b(m({},e),{name:typeof e.name=="string"?e.name:"",description:typeof e.description=="string"?e.description:""}),o={path:n.path,kind:r,provider:n.provider,frontmatter:t,linksOutCount:n.linksOutCount,linksInCount:n.linksInCount,externalRefsCount:n.externalRefsCount,bytesTotal:n.bytes?.total,tokensTotal:n.tokens?.total,modifiedAtMs:n.modifiedAtMs??void 0,bodyHash:n.bodyHash,frontmatterHash:n.frontmatterHash,isFavorite:n.isFavorite===!0};return n.sidecar&&(o.sidecar=m({},n.sidecar)),n.contributions&&(o.contributions=[...n.contributions]),o}var _=[{id:"neon-red",htmlClass:"app-neon-red",forcesDark:!0,label:"Neon R",description:"Electric-red glow on a deep console."},{id:"neon-green",htmlClass:"app-neon-green",forcesDark:!0,label:"Neon G",description:"Electric-green glow on a deep console."},{id:"neon",htmlClass:"app-neon",forcesDark:!0,label:"Neon B",description:"Electric-cyan glow on a deep-navy console."},{id:"matrix",htmlClass:"app-matrix",forcesDark:!0,favicon:"favicon-matrix.svg",fontHref:"https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap",fontLinkId:"sm-matrix-font",label:"Matrix",description:"Cyber-green retint on the dark palette."}];function k(n){return n?_.find(r=>r.id===n)??null:null}var U="skill-map.ui.theme",x="skill-map.ui.extra-theme",Y="app-dark",G="dark",q="(prefers-color-scheme: dark)",J="favicon.svg",Q='link[rel="icon"][type="image/svg+xml"]',Be=(()=>{class n{doc=c(I);destroyRef=c(l);mode=d(this.readInitialMode());extraTheme=d(this.readInitialExtra());systemPrefersDark=d(this.readSystemPref());resolved=h(()=>{let e=this.mode();return e==="auto"?this.systemPrefersDark()?"dark":"light":e});constructor(){this.subscribeToSystemPref(),v(()=>{let e=this.extraTheme(),t=k(e),s=this.resolved()==="dark"||t?.forcesDark===!0,a=this.doc.documentElement;a.classList.toggle(Y,s),a.classList.toggle(G,s);for(let i of _)a.classList.toggle(i.htmlClass,t?.id===i.id);this.applyFavicon(t?.favicon??J),t&&this.ensureExtraThemeFont(t);try{let i=this.doc.defaultView?.localStorage;i?.setItem(U,this.mode()),t===null?i?.removeItem(x):i?.setItem(x,t.id)}catch{}})}toggle(){this.extraTheme()!==null&&this.extraTheme.set(null),this.mode.update(e=>e==="auto"?"light":e==="light"?"dark":"auto")}set(e){this.mode.set(e)}setExtraTheme(e){this.extraTheme.set(k(e)?.id??null)}readInitialMode(){try{let e=this.doc.defaultView?.localStorage.getItem(U);if(e==="auto"||e==="light"||e==="dark")return e}catch{}return"auto"}readInitialExtra(){try{let e=this.doc.defaultView?.localStorage.getItem(x);return k(e)?.id??null}catch{return null}}readSystemPref(){try{return this.doc.defaultView?.matchMedia(q).matches??!1}catch{return!1}}ensureExtraThemeFont(e){if(!e.fontHref||!e.fontLinkId||this.doc.getElementById(e.fontLinkId))return;let t=this.doc.head;if(!t)return;let o=this.doc.createElement("link");o.id=e.fontLinkId,o.rel="stylesheet",o.href=e.fontHref,t.appendChild(o)}applyFavicon(e){let t=this.doc.querySelector(Q);t&&t.getAttribute("href")!==e&&t.setAttribute("href",e)}subscribeToSystemPref(){let e=this.doc.defaultView;if(!e||typeof e.matchMedia!="function")return;let t=e.matchMedia(q),o=s=>{this.systemPrefersDark.set(s.matches)};t.addEventListener("change",o),this.destroyRef.onDestroy(()=>t.removeEventListener("change",o))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();export{E as a,me as b,A as c,F as d,O as e,be as f,P as g,Oe as h,_ as i,Be as j};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as Tt,i as Se}from"./chunk-UBQUCSQ4.js";import{a as Et,c as St,d as Be,j as kt}from"./chunk-4ITL7E6U.js";import{K as V,L as H,R as Mt,S as Nt}from"./chunk-H6O2DYVT.js";import{g as wt}from"./chunk-LCOYSPKE.js";import{$ as pt,$a as ut,Bb as _t,Eb as he,Gb as Ne,Ha as p,Hb as yt,Ib as h,K as Q,N as lt,P as K,Tb as xt,Ub as te,V as me,W as ge,Wa as A,Wb as je,Xb as C,Yb as M,Zb as Ee,_ as dt,ab as ft,ga as F,gb as mt,hb as gt,hc as bt,ia as Me,ib as vt,ic as Ct,jb as k,mb as N,nb as E,ob as ht,qb as W,rb as X,sb as $,sc as d,tb as I,ub as D,uc as P,vb as ee,wb as T,xb as S,yb as de}from"./chunk-Q2A6FWC7.js";import{a as Te,b as st,d as ct}from"./chunk-WCABR6TI.js";var Hn=new Set(["stale-body","stale-frontmatter","stale-both"]);function Dt(e){return e?Hn.has(e.status??null):!1}function _e(e){let i=e.metadata;return i&&typeof i=="object"&&!Array.isArray(i)?i:null}function Eo(e){if(!e)return null;let i=e.sidecar?.annotations;if(i&&typeof i.version=="number")return`v${i.version}`;let t=_e(e.frontmatter)?.version;return typeof t=="string"&&t.length>0?`v${t}`:null}function So(e){if(!e)return null;let t=e.sidecar?.annotations?.stability;if(t==="stable"||t==="experimental"||t==="deprecated")return t;let n=_e(e.frontmatter)?.stability;return n==="stable"||n==="experimental"||n==="deprecated"?n:null}function ko(e){return Dt(e?.sidecar)}function Do(e){if(!e)return null;let t=e.sidecar?.annotations?.supersededBy;if(typeof t=="string"&&t.length>0)return t;let n=_e(e.frontmatter)?.supersededBy;return typeof n=="string"&&n.length>0?n:null}function Ot(e){if(!e)return[];let t=e.sidecar?.annotations?.tags;if(Array.isArray(t))return t.filter(o=>typeof o=="string"&&o.length>0);let n=_e(e.frontmatter)?.tags;return Array.isArray(n)?n.filter(o=>typeof o=="string"&&o.length>0):[]}function Oo(e,i){switch(e?.sidecar?.status){case"stale-body":return i.staleBody;case"stale-frontmatter":return i.staleFrontmatter;case"stale-both":return i.staleBoth;default:return""}}function Io(e){return e<1e3?`${e}`:e<1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${Math.round(e/1e3)}k`}function Po(e){let i=new Date(e);if(isNaN(i.getTime()))return e;let t=Date.now()-i.getTime(),n=Math.floor(t/1e3);if(n<60)return"just now";let o=Math.floor(n/60);if(o<60)return`${o} minute${o===1?"":"s"} ago`;let r=Math.floor(o/60);if(r<24)return`${r} hour${r===1?"":"s"} ago`;let s=Math.floor(r/24);if(s<30)return`${s} day${s===1?"":"s"} ago`;let a=Math.floor(s/30);if(a<12)return`${a} month${a===1?"":"s"} ago`;let c=Math.floor(s/365);return`${c} year${c===1?"":"s"} ago`}function Ao(e){return Number.isFinite(e)?new Date(e).toISOString().slice(0,10):""}function Fo(e){return Number.isFinite(e)?`${new Date(e).toISOString().slice(0,19).replace("T"," ")}Z`:""}var It=["invokes","references","points","mentions","supersedes"],Pt="sm.workspace.search-affects-map";function Gn(){return typeof localStorage>"u"?!1:localStorage.getItem(Pt)==="1"}function Yn(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Pt,e?"1":"0")}catch{}}var Bo=(()=>{class e{_searchText=F("");_selectedKinds=F([]);_kindToggleExplicitEmpty=F(!1);_favoritesOnly=F(!1);_selectedLinkKinds=F([]);_severityErrorActive=F(!1);_severityWarnActive=F(!1);_searchAffectsMap=F(Gn());searchText=this._searchText.asReadonly();searchAffectsMap=this._searchAffectsMap.asReadonly();selectedKinds=this._selectedKinds.asReadonly();favoritesOnly=this._favoritesOnly.asReadonly();selectedLinkKinds=this._selectedLinkKinds.asReadonly();severityErrorActive=this._severityErrorActive.asReadonly();severityWarnActive=this._severityWarnActive.asReadonly();kindToggleExplicitEmpty=this._kindToggleExplicitEmpty.asReadonly();isActive=d(()=>this._searchText().trim().length>0||this._selectedKinds().length>0||this._kindToggleExplicitEmpty()||this._favoritesOnly()||this._selectedLinkKinds().length>0||this._severityErrorActive()||this._severityWarnActive());setSearchText(t){this._searchText.set(t)}toggleSearchAffectsMap(){let t=!this._searchAffectsMap();this._searchAffectsMap.set(t),Yn(t)}setKinds(t){this._kindToggleExplicitEmpty.set(!1),this._selectedKinds.set([...t])}toggleKind(t,n){let o=this._selectedKinds(),r=n,a=this._kindToggleExplicitEmpty()?new Set:o.length===0?new Set(r):new Set(o);a.has(t)?a.delete(t):a.add(t),a.size===r.length?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1)):a.size===0?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!0)):(this._selectedKinds.set([...a]),this._kindToggleExplicitEmpty.set(!1))}isKindActive(t){if(this._kindToggleExplicitEmpty())return!1;let n=this._selectedKinds();return n.length===0?!0:n.includes(t)}setFavoritesOnly(t){this._favoritesOnly.set(t)}setLinkKinds(t){this._selectedLinkKinds.set([...t])}toggleLinkKind(t){let n=this._selectedLinkKinds(),o=n.length===0?new Set(It):new Set(n);o.has(t)?o.delete(t):o.add(t),o.size===It.length?this._selectedLinkKinds.set([]):this._selectedLinkKinds.set([...o])}isLinkKindActive(t){let n=this._selectedLinkKinds();return n.length===0?!0:n.includes(t)}toggleSeverity(t){t==="error"?this._severityErrorActive.set(!this._severityErrorActive()):this._severityWarnActive.set(!this._severityWarnActive())}isSeverityActive(t){return t==="error"?this._severityErrorActive():this._severityWarnActive()}setSeverityFilters(t){let n=new Set(t);this._severityErrorActive.set(n.has("error")),this._severityWarnActive.set(n.has("warn"))}reset(){this._searchText.set(""),this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1),this._favoritesOnly.set(!1),this._selectedLinkKinds.set([]),this._severityErrorActive.set(!1),this._severityWarnActive.set(!1)}apply(t,n,o){let s=o?.includeSearch??!0?this.searchText().trim().toLowerCase():"",a=this.selectedKinds(),c=this._kindToggleExplicitEmpty(),l=this.favoritesOnly(),f=this._severityErrorActive(),y=this._severityWarnActive(),_=(f||y)&&n!==void 0;return t.filter(m=>{if(s){let w=Ot(m).join(" ");if(![m.path,m.frontmatter.name??"",m.frontmatter.description??"",w].join(" ").toLowerCase().includes(s))return!1}return!(c||a.length>0&&!a.includes(m.kind)||l&&m.isFavorite!==!0||_&&(f&&!n.errors.has(m.path)||y&&!n.warns.has(m.path)))})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Wn=(()=>{class e{router=K(Se);open(t){this.router.navigate(["/"],{queryParams:{path:t}})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),At=new lt("NODE_OPEN_INTENT",{providedIn:"root",factory:()=>K(Wn)});var ke="sm-debug-slots",Xn="debug",qn="is-debug-slots",Ft=(()=>{class e{visible=F(!1);constructor(){this.visible.set(this.resolveInitial()),Me(()=>{let t=this.visible();document.documentElement.classList.toggle(qn,t)})}toggle(){let t=!this.visible();this.visible.set(t);try{localStorage.setItem(ke,t?"1":"0")}catch{}}resolveInitial(){let n=new URLSearchParams(window.location.search).get(Xn);if(n!==null&&n!=="0"&&n!=="false"){try{localStorage.setItem(ke,"1")}catch{}return!0}if(n==="0"||n==="false"){try{localStorage.setItem(ke,"0")}catch{}return!1}try{return localStorage.getItem(ke)==="1"}catch{return!1}}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var $t=(()=>{class e{registry=F({});setRegistry(t){t&&this.registry.set(t)}get(t){return this.registry()[t]}all(){return this.registry()}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Z(e){return typeof e=="object"&&e!==null}function ae(e,i){return Z(e)&&Array.isArray(e[i])}function De(e,i){return Z(e)&&typeof e[i]=="string"}var G={panelHeader:"Plugin contributions",panelCount:e=>`${e} contribution${e===1?"":"s"}`,emptyDefault:"No contributions for this node.",rendererInvalid:"Contribution data failed schema validation.",rendererUnknownSlot:e=>`Unknown slot: ${e}. Update the UI to a newer catalog version.`,overflowBadge:e=>`+${e}`,overflowTooltip:e=>`Hidden: ${e}`,recordsCell:{boolTrue:"yes",boolFalse:"no"}};var Qn=(e,i)=>i.label;function Zn(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Jn(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function ei(e,i){if(e&1&&(T(0,"li",4)(1,"span",5),C(2),S(),T(3,"span",6),de(4,"span",7),S(),T(5,"span",8),C(6),S()()),e&2){let t=i.$implicit,n=h(2);k("title",t.tooltip??""),p(2),M(t.label),p(2),xt("width",n.percent(t.value),"%"),p(2),M(t.value)}}function ti(e,i){if(e&1&&(T(0,"ul",3),W(1,ei,7,5,"li",4,Qn),S()),e&2){let t=h();p(),X(t.bars())}}var Lt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"bars")?t:{bars:[]}:{bars:[]}});bars=d(()=>this.typed().bars??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);maxValue=d(()=>this.bars().reduce((n,o)=>o.value>n?o.value:n,0));percent(t){let n=this.maxValue();return n===0?0:Math.round(t/n*100)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-breakdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-breakdown"],[1,"vc-breakdown__header"],[1,"vc-breakdown__empty"],[1,"vc-breakdown__rows"],[1,"vc-breakdown__row"],[1,"vc-breakdown__label"],[1,"vc-breakdown__bar-track"],["aria-hidden","true",1,"vc-breakdown__bar"],[1,"vc-breakdown__value"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,Zn,2,1,"h5",1),N(2,Jn,2,1,"p",2)(3,ti,3,0,"ul",3),S()),n&2&&(k("data-testid","renderer-node-breakdown"),p(),E(o.label()?1:-1),p(),E(o.bars().length===0?2:3))},styles:[".vc-breakdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-breakdown__rows[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.vc-breakdown__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(4rem,.4fr) 1fr 3rem;align-items:center;gap:.5rem;font-size:.85rem}.vc-breakdown__label[_ngcontent-%COMP%]{color:var(--p-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-breakdown__bar-track[_ngcontent-%COMP%]{background:var(--p-surface-100);border-radius:var(--sm-radius-md);height:.625rem;overflow:hidden}.vc-breakdown__bar[_ngcontent-%COMP%]{display:block;height:100%;background:var(--p-primary-500)}.vc-breakdown__value[_ngcontent-%COMP%]{text-align:right;color:var(--p-text-color)}.vc-breakdown__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();function ni(e,i){if(e&1&&(T(0,"span",1),C(1),S()),e&2){let t=h(),n=h();je(n.hostClass()),p(),M(t.text)}}function ii(e,i){if(e&1&&de(0,"i",1),e&2){let t=h(),n=h();je(n.hostClass()+" "+t.cls)}}function oi(e,i){e&1&&N(0,ni,2,3,"span",0)(1,ii,1,2,"i",0),e&2&&E(i.kind==="emoji"?0:1)}function ze(e){if(!e)return null;let i=e.trim();if(i.length===0)return null;let t=i.codePointAt(0)??0;if(!(t>=65&&t<=90||t>=97&&t<=122))return{kind:"emoji",text:i};if(/^pi pi-[a-z0-9-]+$/.test(i))return{kind:"pi",cls:i};if(/^pi-[a-z0-9-]+$/.test(i))return{kind:"pi",cls:`pi ${i}`};if(/^fa-(?:solid|regular|brands) fa-[a-z0-9-]+$/.test(i))return{kind:"fa",cls:i};if(/^fa-[a-z0-9-]+$/.test(i)){let o=i.slice(3);return o==="solid"||o==="regular"||o==="brands"||o.includes("fa-")?null:{kind:"fa",cls:`fa-solid ${i}`}}return null}var oe=(()=>{class e{icon=P(void 0);hostClass=P("");resolved=d(()=>{let t=this.icon(),n=ze(t);return t&&!n&&console.warn(`[sm-icon] Invalid icon string "${t}". Expected emoji, pi-foo, pi pi-foo, fa-{solid|regular|brands} fa-foo, or fa-foo.`),n});static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-icon"]],inputs:{icon:[1,"icon"],hostClass:[1,"hostClass"]},decls:1,vars:1,consts:[["aria-hidden","true",3,"class"],["aria-hidden","true"]],template:function(n,o){if(n&1&&N(0,oi,2,1),n&2){let r;E((r=o.resolved())?0:-1,r)}},styles:["[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{font-size:inherit;line-height:inherit}[_nghost-%COMP%] i[_ngcontent-%COMP%]{transform:translateY(1px)}"],changeDetection:0})}return e})();function ri(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();k("aria-label",t.ariaLabel()),p(),M(t.value())}}var Oe=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{value:0}:t});value=d(()=>this.typed().value);icon=d(()=>this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=d(()=>this.inputs().label??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-counter"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-counter",3,"pTooltip"],[1,"vc-counter__icon"],[3,"icon"],[1,"vc-counter__value"]],template:function(n,o){n&1&&(I(0,"span",0)(1,"span",1),ee(2,"sm-icon",2),D(),N(3,ri,2,2,"span",3),D()),n&2&&(te("vc-counter--info",o.severity()==="info")("vc-counter--warn",o.severity()==="warn")("vc-counter--success",o.severity()==="success")("vc-counter--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-counter"),p(2),$("icon",o.icon()),p(),E(o.value()>0?3:-1))},dependencies:[H,V,oe],styles:[".vc-counter[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1;color:var(--p-text-color)}.vc-counter__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-counter__value[_ngcontent-%COMP%]{font-weight:600;color:var(--p-text-color);line-height:1;display:block}.vc-counter--info[_ngcontent-%COMP%], .vc-counter--info[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-counter--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);opacity:.85}.vc-counter--warn[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-counter--success[_ngcontent-%COMP%], .vc-counter--success[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-counter--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error);opacity:.85}.vc-counter--danger[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var ai=(e,i)=>i.key;function si(e,i){if(e&1&&(I(0,"h5",1),C(1),D()),e&2){let t=h();p(),M(t.label())}}function ci(e,i){if(e&1&&(I(0,"p",2),C(1),D()),e&2){let t=h();p(),M(t.emptyText())}}function li(e,i){if(e&1&&(I(0,"dt",4),C(1),D(),I(2,"dd"),C(3),D()),e&2){let t=i.$implicit,n=h(2);$("pTooltip",t.tooltip??""),p(),M(t.key),p(2),M(n.formatValue(t.value))}}function di(e,i){if(e&1&&(I(0,"dl",3),W(1,li,4,3,null,null,ai),D()),e&2){let t=h();p(),X(t.pairs())}}var Rt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"pairs")?t:{pairs:[]}:{pairs:[]}});pairs=d(()=>this.typed().pairs??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);formatValue(t){return t==null?"\xB7":typeof t=="boolean"?t?"true":"false":String(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-key-values"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-kv"],[1,"vc-kv__header"],[1,"vc-kv__empty"],[1,"vc-kv__list"],[3,"pTooltip"]],template:function(n,o){n&1&&(I(0,"section",0),N(1,si,2,1,"h5",1),N(2,ci,2,1,"p",2)(3,di,3,0,"dl",3),D()),n&2&&(k("data-testid","renderer-node-key-values"),p(),E(o.label()?1:-1),p(),E(o.pairs().length===0?2:3))},dependencies:[H,V],styles:[".vc-kv__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-kv__list[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.25rem .75rem;margin:0;font-size:.85rem}.vc-kv__list[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-weight:500}.vc-kv__list[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--p-text-color);margin:0;word-break:break-word}.vc-kv__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var pi=(e,i)=>i.path;function ui(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function fi(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function mi(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.kind)}}function gi(e,i){if(e&1){let t=he();T(0,"li")(1,"button",4),yt("click",function(){let o=me(t).$implicit,r=h(2);return ge(r.onOpenPath(o.path))}),N(2,mi,2,1,"span",5),T(3,"span",6),C(4),S()()()}if(e&2){let t=i.$implicit;p(2),E(t.kind?2:-1),p(2),M(t.label??t.path)}}function vi(e,i){if(e&1&&(T(0,"ul",3),W(1,gi,5,2,"li",null,pi),S()),e&2){let t=h();p(),X(t.links())}}var jt=(()=>{class e{openIntent=K(At);inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"links")?t:{links:[]}:{links:[]}});links=d(()=>this.typed().links??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);onOpenPath(t){this.openIntent.open(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-link-list"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-links"],[1,"vc-links__header"],[1,"vc-links__empty"],[1,"vc-links__list"],["type","button",1,"vc-links__btn",3,"click"],[1,"vc-links__kind"],[1,"vc-links__label"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,ui,2,1,"h5",1),N(2,fi,2,1,"p",2)(3,vi,3,0,"ul",3),S()),n&2&&(k("data-testid","renderer-node-link-list"),p(),E(o.label()?1:-1),p(),E(o.links().length===0?2:3))},styles:[".vc-links__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-links__list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem;font-size:.85rem}.vc-links__btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;padding:.25rem .5rem;border-radius:var(--sm-radius-md);color:var(--p-primary-color);cursor:pointer;text-align:left;width:100%}.vc-links__btn[_ngcontent-%COMP%]:hover{background:var(--p-surface-100)}.vc-links__kind[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-family:var(--sm-font-mono);font-size:.75rem}.vc-links__label[_ngcontent-%COMP%]{word-break:break-all}.vc-links__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var Bt=(e,i)=>i.key;function hi(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function _i(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function yi(e,i){if(e&1&&(T(0,"th"),C(1),S()),e&2){let t=i.$implicit;p(),M(t.label)}}function xi(e,i){if(e&1&&de(0,"i",4),e&2){let t=h(4);k("aria-label",t.texts.boolTrue)}}function bi(e,i){if(e&1&&de(0,"i",5),e&2){let t=h(4);k("aria-label",t.texts.boolFalse)}}function Ci(e,i){}function wi(e,i){if(e&1&&C(0),e&2){let t=h().$implicit,n=h().$implicit,o=h(2);Ee(" ",o.cellText(n[t.key])," ")}}function Ti(e,i){if(e&1&&(T(0,"td"),N(1,xi,1,1,"i",4)(2,bi,1,1,"i",5)(3,Ci,0,0)(4,wi,1,1),S()),e&2){let t,n=i.$implicit,o=h().$implicit,r=h(2);p(),E((t=r.cellKind(o[n.key]))==="bool-true"?1:t==="bool-false"?2:t==="empty"?3:4)}}function Mi(e,i){if(e&1&&(T(0,"tr"),W(1,Ti,5,1,"td",null,Bt),S()),e&2){let t=h(2);p(),X(t.columns())}}function Ni(e,i){if(e&1&&(T(0,"table",3)(1,"thead")(2,"tr"),W(3,yi,2,1,"th",null,Bt),S()(),T(5,"tbody"),W(6,Mi,3,0,"tr",null,ht),S()()),e&2){let t=h();p(3),X(t.columns()),p(3),X(t.rows())}}var zt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?!ae(t,"columns")||!ae(t,"rows")?{columns:[],rows:[]}:t:{columns:[],rows:[]}});columns=d(()=>this.typed().columns??[]);rows=d(()=>this.typed().rows??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);texts=G.recordsCell;cellKind(t){return t==null?"empty":typeof t=="boolean"?t?"bool-true":"bool-false":"text"}cellText(t){return t==null?"":String(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-records"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-records"],[1,"vc-records__header"],[1,"vc-records__empty"],[1,"vc-records__table"],["role","img",1,"pi","pi-check","vc-records__bool","vc-records__bool--true"],["role","img",1,"pi","pi-minus","vc-records__bool","vc-records__bool--false"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,hi,2,1,"h5",1),N(2,_i,2,1,"p",2)(3,Ni,8,0,"table",3),S()),n&2&&(k("data-testid","renderer-node-records"),p(),E(o.label()?1:-1),p(),E(o.rows().length===0?2:3))},styles:[".vc-records__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-records__table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.85rem}.vc-records__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-200);color:var(--p-text-muted-color);font-weight:600}.vc-records__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-100);color:var(--p-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem}.vc-records__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}.vc-records__bool[_ngcontent-%COMP%]{font-size:.9rem;line-height:1}.vc-records__bool--true[_ngcontent-%COMP%]{color:var(--p-primary-color)}.vc-records__bool--false[_ngcontent-%COMP%]{color:var(--p-text-muted-color)}"],changeDetection:0})}return e})();function Ei(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Si(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function ki(e,i){if(e&1&&(T(0,"pre",3),C(1),S()),e&2){let t=h();p(),M(t.markdown())}}var Kt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?De(t,"markdown")?t:{markdown:""}:{markdown:""}});markdown=d(()=>this.typed().markdown??"");label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-markdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-markdown"],[1,"vc-markdown__header"],[1,"vc-markdown__empty"],[1,"vc-markdown__body"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,Ei,2,1,"h5",1),N(2,Si,2,1,"p",2)(3,ki,2,1,"pre",3),S()),n&2&&(k("data-testid","renderer-node-markdown"),p(),E(o.label()?1:-1),p(),E(o.markdown()?3:2))},styles:[".vc-markdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-markdown__body[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-color);background:var(--p-surface-50);padding:.5rem;border-radius:var(--sm-radius-md);white-space:pre-wrap;word-break:break-word;margin:0;max-height:12rem;overflow:auto}.vc-markdown__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var Ut={countAriaFallback:"count"};function Di(e,i){if(e&1&&(I(0,"span",1),ee(1,"sm-icon",4),D()),e&2){let t=h();p(),$("icon",t.icon())}}function Oi(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h();p(),M(t.label())}}function Ii(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();k("aria-label",t.countAria()),p(),M(t.count())}}var Vt=(()=>{class e{inputs=P.required();texts=Ut;typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.inputs().icon);label=d(()=>{let t=this.typed().label;return typeof t=="string"?t:""});count=d(()=>{let t=this.typed().count;return typeof t=="number"&&Number.isFinite(t)?t:null});severity=d(()=>this.typed().severity);hasTint=d(()=>!!this.severity()&&this.label().length>0);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");countAria=d(()=>this.inputs().label??(this.label()||this.texts.countAriaFallback));static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-badge"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:15,consts:[["tooltipPosition","left",1,"vc-badge",3,"pTooltip"],[1,"vc-badge__icon"],[1,"vc-badge__label"],[1,"vc-badge__count"],[3,"icon"]],template:function(n,o){n&1&&(I(0,"span",0),N(1,Di,2,1,"span",1),N(2,Oi,2,1,"span",2),N(3,Ii,2,2,"span",3),D()),n&2&&(te("vc-badge--tinted",o.hasTint())("vc-badge--info",o.severity()==="info")("vc-badge--warn",o.severity()==="warn")("vc-badge--success",o.severity()==="success")("vc-badge--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-badge"),p(),E(o.icon()?1:-1),p(),E(o.label()?2:-1),p(),E(o.count()!==null?3:-1))},dependencies:[H,V,oe],styles:[".vc-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1;color:var(--p-text-color)}.vc-badge__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-badge__label[_ngcontent-%COMP%]{font-weight:500;line-height:1;display:block}.vc-badge__count[_ngcontent-%COMP%]{font-weight:600;line-height:1;display:block}.vc-badge--info[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-info)}.vc-badge--warn[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-warn);opacity:.85}.vc-badge--success[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-success)}.vc-badge--danger[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-error);opacity:.85}.vc-badge--tinted[_ngcontent-%COMP%]{padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-badge--tinted.vc-badge--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info)}.vc-badge--tinted.vc-badge--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.vc-badge--tinted.vc-badge--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success)}.vc-badge--tinted.vc-badge--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var Ht={errorPrefix:"Action failed:",errorFresh:"This node is fresh; nothing to do.",errorNotFound:"Node not found on the server.",errorReadonly:"Actions are not available in demo mode.",errorGeneric:"Could not run the action."};var Gt=(()=>{class e{dataSource=K(St);texts=Ht;inFlightSig=F(!1);errorSig=F(null);consentOpenSig=F(!1);inFlight=this.inFlightSig.asReadonly();error=this.errorSig.asReadonly();consentOpen=this.consentOpenSig.asReadonly();idle=d(()=>!this.inFlightSig());pending=null;async dispatch(t,n,o){this.inFlightSig()||(this.errorSig.set(null),await this.run(t,n,o,{}))}resolveConsent(t){this.consentOpenSig.set(!1);let n=this.pending;if(this.pending=null,!n||!t.accepted)return;let o=t.always?{confirm:!0,always:!0}:{confirm:!0};this.run(n.actionId,n.nodePath,n.input,o)}dismissError(){this.errorSig.set(null)}async run(t,n,o,r){this.inFlightSig.set(!0);try{await this.dataSource.dispatchAction(t,n,Te({input:o},r))}catch(s){if(r.confirm!==!0&&s instanceof Be&&s.code==="confirm-required"&&Pi(s.details)){this.pending={actionId:t,nodePath:n,input:o},this.consentOpenSig.set(!0);return}this.errorSig.set(this.formatError(s))}finally{this.inFlightSig.set(!1)}}formatError(t){if(t instanceof Be)switch(t.code){case"sidecar-fresh":return`${this.texts.errorPrefix} ${this.texts.errorFresh}`;case"not-found":return`${this.texts.errorPrefix} ${this.texts.errorNotFound}`;case"demo-readonly":return`${this.texts.errorPrefix} ${this.texts.errorReadonly}`;default:return`${this.texts.errorPrefix} ${t.message||this.texts.errorGeneric}`}let n=t instanceof Error?t.message:String(t);return`${this.texts.errorPrefix} ${n||this.texts.errorGeneric}`}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Pi(e){return typeof e!="object"||e===null?!1:e.key==="allowEditSmFiles"}var Yt={fallbackLabel:"Run action",dismissErrorAriaLabel:"Dismiss",promptDialogHeader:"Provide a value"};var Ai=()=>[import("./chunk-RS3ANRT5.js").then(e=>e.ActionPromptDialog)];function Fi(e,i){if(e&1){let t=he();I(0,"span",2)(1,"span",3),C(2),D(),I(3,"button",4),Ne("click",function(){me(t);let o=h();return ge(o.dismissError())}),ee(4,"i",5),D()()}if(e&2){let t=h();p(2),M(i),p(),k("aria-label",t.texts.dismissErrorAriaLabel)}}function $i(e,i){if(e&1){let t=he();I(0,"sm-action-prompt-dialog",7),Ne("confirmed",function(o){me(t);let r=h(2);return ge(r.onPromptConfirmed(o))})("closed",function(){me(t);let o=h(2);return ge(o.cancelPrompt())}),D()}if(e&2){let t=h(2);$("open",t.promptOpen())("descriptor",t.promptDescriptor())("headerText",t.dialogHeader())("busy",t.inFlight())}}function Li(e,i){if(e&1&&N(0,$i,1,4,"sm-action-prompt-dialog",6),e&2){let t,n=h();E((t=n.prompt())?0:-1,t)}}var Wt=(()=>{class e{inputs=P.required();texts=Yt;dispatcher=K(Gt);inFlightSig=F(!1);errorSig=F(null);promptOpenSig=F(!1);promptOpenedSig=F(!1);inFlight=this.inFlightSig.asReadonly();error=this.errorSig.asReadonly();promptOpen=this.promptOpenSig.asReadonly();promptOpened=this.promptOpenedSig.asReadonly();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{actionId:""}:t});actionId=d(()=>this.typed().actionId||"");label=d(()=>this.typed().label??this.inputs().label??this.texts.fallbackLabel);icon=d(()=>{let t=ze(this.typed().icon??this.inputs().icon);return t&&t.kind!=="emoji"?t.cls:void 0});enabled=d(()=>this.typed().enabled!==!1);severity=d(()=>{switch(this.typed().severity){case"info":return"info";case"warn":return"warn";case"success":return"success";case"danger":return"danger";default:return}});tooltip=d(()=>this.enabled()?this.inputs().tooltip??"":this.typed().disabledReason??"");prompt=d(()=>{let t=this.typed().prompt;return!t||typeof t!="object"||!t.inputType||!t.paramKey?null:t});promptDescriptor=d(()=>{let t=this.prompt();return{inputType:t?.inputType??"",label:t?.label??"",options:t?.options,defaultValue:t?.defaultValue}});dialogHeader=d(()=>this.typed().label??this.texts.promptDialogHeader);run(){if(!(!this.enabled()||this.inFlightSig())){if(this.prompt()){this.openPrompt();return}this.dispatch(this.typed().input)}}openPrompt(){this.errorSig.set(null),this.promptOpenedSig.set(!0),this.promptOpenSig.set(!0)}onPromptConfirmed(t){let n=this.prompt();if(!n)return;this.promptOpenSig.set(!1);let o=st(Te({},this.typed().input??{}),{[n.paramKey]:t});this.dispatch(o)}cancelPrompt(){this.promptOpenSig.set(!1)}async dispatch(t){let n=this.actionId(),o=this.inputs().nodePath;if(!(!n||!o)){this.errorSig.set(null),this.inFlightSig.set(!0);try{await this.dispatcher.dispatch(n,o,t);let r=this.dispatcher.error();r&&this.errorSig.set(r)}finally{this.inFlightSig.set(!1)}}}dismissError(){this.errorSig.set(null),this.dispatcher.dismissError()}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-action-button"]],inputs:{inputs:[1,"inputs"]},decls:6,vars:9,consts:[["data-testid","renderer-node-action-button",1,"vc-action"],["size","small",3,"onClick","label","icon","severity","disabled","loading","pTooltip"],["role","alert","data-testid","renderer-node-action-button-error",1,"vc-action__error"],[1,"vc-action__error-text"],["type","button","data-testid","renderer-node-action-button-error-dismiss",1,"vc-action__error-dismiss",3,"click"],["aria-hidden","true",1,"pi","pi-times"],[3,"open","descriptor","headerText","busy"],[3,"confirmed","closed","open","descriptor","headerText","busy"]],template:function(n,o){if(n&1&&(I(0,"span",0)(1,"p-button",1),Ne("onClick",function(){return o.run()}),D(),N(2,Fi,5,2,"span",2),D(),ft(3,Li,1,1),mt(4,3,Ai),vt()),n&2){let r;p(),$("label",o.label())("icon",o.icon()??"")("severity",o.severity())("disabled",!o.enabled()||o.inFlight())("loading",o.inFlight())("pTooltip",o.tooltip()),k("data-testid","action-"+o.actionId()),p(),E((r=o.error())?2:-1,r),p(2),gt(o.promptOpened())}},dependencies:[Nt,Mt,H,V],styles:[".vc-action[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.vc-action__error[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--sm-severity-error);background:var(--sm-severity-error-bg);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-action__error-dismiss[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;padding:0;line-height:1;color:var(--sm-severity-error);display:inline-flex}.vc-action__error-dismiss[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:.7rem}"],changeDetection:0})}return e})();var Ri=()=>[],Xt=(e,i)=>i.label;function ji(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Bi(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function zi(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.marker)}}function Ki(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.marker)}}function Ui(e,i){if(e&1&&(T(0,"li",4),N(1,Ki,2,1,"span",5),T(2,"span",6),C(3),S()()),e&2){let t=i.$implicit;k("title",t.tooltip??""),p(),E(t.marker?1:-1),p(2),M(t.label)}}function Vi(e,i){if(e&1&&(T(0,"ul",7),W(1,Ui,4,3,"li",4,Xt),S()),e&2){let t=h().$implicit;p(),X(t.children)}}function Hi(e,i){if(e&1&&(T(0,"li",4),N(1,zi,2,1,"span",5),T(2,"span",6),C(3),S(),N(4,Vi,3,0,"ul",7),S()),e&2){let t=i.$implicit;k("title",t.tooltip??""),p(),E(t.marker?1:-1),p(2),M(t.label),p(),E(t.children&&t.children.length>0?4:-1)}}function Gi(e,i){if(e&1&&(T(0,"ul",3),W(1,Hi,5,4,"li",4,Xt),S()),e&2){let t=h();p(),X(t.root().children??bt(0,Ri))}}var qt=(()=>{class e{inputs=P.required();root=d(()=>{let t=this.inputs().payload;return Z(t)?De(t,"label")?t.children!==void 0&&!Array.isArray(t.children)?{label:""}:t:{label:""}:{label:""}});rootIsEmpty=d(()=>{let t=this.root();return!t.children||t.children.length===0});label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-tree"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-tree"],[1,"vc-tree__header"],[1,"vc-tree__empty"],["role","tree",1,"vc-tree__list"],["role","treeitem"],["aria-hidden","true",1,"vc-tree__marker"],[1,"vc-tree__label"],["role","group",1,"vc-tree__list"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,ji,2,1,"h5",1),N(2,Bi,2,1,"p",2)(3,Gi,3,1,"ul",3),S()),n&2&&(k("data-testid","renderer-node-tree"),p(),E(o.label()?1:-1),p(),E(o.rootIsEmpty()?2:3))},styles:[".vc-tree__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-tree__list[_ngcontent-%COMP%]{list-style:none;padding-left:1rem;margin:0;font-size:.85rem}.vc-tree__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{padding:.125rem 0}.vc-tree__marker[_ngcontent-%COMP%]{margin-right:.25rem;opacity:.7}.vc-tree__label[_ngcontent-%COMP%]{color:var(--p-text-color)}.vc-tree__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();function Yi(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h();p(),M(t.formattedCount())}}var Qt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.typed().icon??this.inputs().icon);severity=d(()=>this.typed().severity);count=d(()=>this.typed().count??null);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");formattedCount=d(()=>{let t=this.count();return t===null?"":t>=99?"99+":String(t)});static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-alert"]],inputs:{inputs:[1,"inputs"]},decls:3,vars:12,consts:[[1,"vc-alert",3,"pTooltip"],["hostClass","vc-alert__icon",3,"icon"],[1,"vc-alert__count"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),N(2,Yi,2,1,"span",2),D()),n&2&&(te("vc-alert--info",o.severity()==="info")("vc-alert--warn",o.severity()==="warn")("vc-alert--success",o.severity()==="success")("vc-alert--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-alert"),p(),$("icon",o.icon()),p(),E(o.count()!==null?2:-1))},dependencies:[H,V,oe],styles:[".vc-alert[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-width:1.1rem;min-height:1.1rem;font-size:.85rem;color:var(--p-surface-700)}.vc-alert--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-alert--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-alert--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-alert--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var Zt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.typed().icon??this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=d(()=>this.inputs().label??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-icon"]],inputs:{inputs:[1,"inputs"]},decls:2,vars:12,consts:[[1,"vc-icon",3,"pTooltip"],["hostClass","vc-icon__glyph",3,"icon"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),D()),n&2&&(te("vc-icon--info",o.severity()==="info")("vc-icon--warn",o.severity()==="warn")("vc-icon--success",o.severity()==="success")("vc-icon--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("aria-label",o.ariaLabel())("data-testid","renderer-node-icon"),p(),$("icon",o.icon()))},dependencies:[H,V,oe],styles:[".vc-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:22px;height:22px}.vc-icon__glyph[_ngcontent-%COMP%]{font-size:.7rem;line-height:1;display:block}.vc-icon--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-icon--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-icon--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-icon--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();function Wi(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();p(),M(t.label())}}var Jt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{value:""}:t});value=d(()=>String(this.typed().value??""));label=d(()=>this.typed().label??this.inputs().label);icon=d(()=>this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-scope-stat"]],inputs:{inputs:[1,"inputs"]},decls:5,vars:13,consts:[[1,"vc-stat",3,"pTooltip"],["hostClass","vc-stat__icon",3,"icon"],[1,"vc-stat__value"],[1,"vc-stat__label"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),I(2,"span",2),C(3),D(),N(4,Wi,2,1,"span",3),D()),n&2&&(te("vc-stat--info",o.severity()==="info")("vc-stat--warn",o.severity()==="warn")("vc-stat--success",o.severity()==="success")("vc-stat--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-scope-stat"),p(),$("icon",o.icon()),p(2),M(o.value()),p(),E(o.label()?4:-1))},dependencies:[H,V,oe],styles:[".vc-stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:.75rem;font-size:.85rem;background:var(--p-surface-100);color:var(--p-surface-800)}.vc-stat__label[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.8rem}.vc-stat--info[_ngcontent-%COMP%]{background:var(--p-blue-100);color:var(--p-blue-700)}.vc-stat--warn[_ngcontent-%COMP%]{background:var(--p-yellow-100);color:var(--p-yellow-800)}.vc-stat--success[_ngcontent-%COMP%]{background:var(--p-green-100);color:var(--p-green-700)}.vc-stat--danger[_ngcontent-%COMP%]{background:var(--p-red-100);color:var(--p-red-700)}"],changeDetection:0})}return e})();var Ke={"card.title.right":Zt,"card.subtitle.left":Oe,"card.footer.left":Oe,"card.footer.right":Oe,"graph.node.alert":Qt,"inspector.header.badge":Vt,"inspector.action.button":Wt,"inspector.body.panel.breakdown":Lt,"inspector.body.panel.records":zt,"inspector.body.panel.tree":qt,"inspector.body.panel.key-values":Rt,"inspector.body.panel.link-list":jt,"inspector.body.panel.markdown":Kt,"topbar.nav.start":Jt};function en(e){return e in Ke}var Za=new Set(["inspector.body.panel.breakdown","inspector.body.panel.records","inspector.body.panel.tree","inspector.body.panel.key-values","inspector.body.panel.link-list","inspector.body.panel.markdown"]),le={"topbar.nav.start":{id:"topbar.nav.start",cardinality:"multi",maxItems:3,order:"alphabetical",strategy:"append"},"inspector.header.badge":{id:"inspector.header.badge",cardinality:"multi",maxItems:4,order:"priority",strategy:"append",respectSeverity:!0},"inspector.action.button":{id:"inspector.action.button",cardinality:"multi",order:"priority",strategy:"append",respectSeverity:!0},"inspector.body.panel.breakdown":{id:"inspector.body.panel.breakdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.records":{id:"inspector.body.panel.records",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.tree":{id:"inspector.body.panel.tree",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.key-values":{id:"inspector.body.panel.key-values",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.link-list":{id:"inspector.body.panel.link-list",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.markdown":{id:"inspector.body.panel.markdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"card.footer.left":{id:"card.footer.left",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.footer.right":{id:"card.footer.right",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.subtitle.left":{id:"card.subtitle.left",cardinality:"multi",maxItems:3,order:"priority",strategy:"append",respectSeverity:!0},"card.title.right":{id:"card.title.right",cardinality:"multi",maxItems:2,order:"priority",strategy:"append",respectSeverity:!0},"graph.node.alert":{id:"graph.node.alert",cardinality:"multi",maxItems:1,order:"severity",strategy:"append",showOverflowBadge:!1}};function tn(e,i,t,n){let o=le[i].respectSeverity!==!1,r=e.payload;if(!o&&typeof r=="object"&&r!==null&&"severity"in r){let a=r,{severity:c}=a;r=ct(a,["severity"])}let s={pluginId:e.pluginId,extensionId:e.extensionId,contributionId:e.contributionId,nodePath:t,payload:r};return n?.label&&(s.label=n.label),n?.tooltip&&(s.tooltip=n.tooltip),n?.icon&&(s.icon=n.icon),n?.emptyText&&(s.emptyText=n.emptyText),s}var Xi=e=>({inputs:e}),qi=(e,i)=>i.qualifiedId;function Qi(e,i){e&1&&_t(0)}function Zi(e,i){if(e&1&&(I(0,"span",1),ut(1,Qi,1,0,"ng-container",3),D()),e&2){let t=i.$implicit,n=h(2);k("data-testid","contribution-"+t.qualifiedId.replaceAll("/","-")),p(),$("ngComponentOutlet",n.rendererFor(t.slot))("ngComponentOutletInputs",Ct(3,Xi,t.rendererInputs))}}function Ji(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h(2);$("pTooltip",t.overflowTooltip()),p(),Ee(" ",t.overflowBadge()," ")}}function eo(e,i){if(e&1&&(I(0,"span",0),W(1,Zi,2,5,"span",1,qi),N(3,Ji,2,2,"span",2),D()),e&2){let t=h();k("data-testid","view-contributions-host-"+t.testidSuffix()),p(),X(t.visible()),p(2),E(t.overflowCount()>0&&t.showOverflowBadge()?3:-1)}}var ms=(()=>{class e{slot=P.required();node=P(null);debugSlots=K(Ft);debugVisible=this.debugSlots.visible;testidSuffix=d(()=>this.slot().replaceAll(".","-"));registry=K($t);dispatched=d(()=>{let t=this.node();if(!t)return[];let n=t.contributions??[];if(n.length===0)return[];let o=this.slot(),r=n.filter(s=>s.slot===o).filter(s=>en(s.slot));return this.sortBySlotOrder(r,o).map(s=>({qualifiedId:`${s.pluginId}/${s.extensionId}/${s.contributionId}`,slot:s.slot,rendererInputs:this.buildInputs(s,o,t.path)}))});visible=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;return n===void 0?t:t.slice(0,n)});debugTitle=d(()=>{if(!this.debugVisible())return null;let t=this.dispatched();return t.length===0?null:t.map(n=>n.qualifiedId).join(`
|
|
2
|
+
`)});overflowCount=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;return n===void 0?0:Math.max(0,t.length-n)});showOverflowBadge=d(()=>le[this.slot()].showOverflowBadge!==!1);overflowBadge=d(()=>G.overflowBadge(this.overflowCount()));overflowTooltip=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;if(n===void 0)return"";let o=t.slice(n).map(r=>r.qualifiedId).join(", ");return G.overflowTooltip(o)});rendererFor(t){return Ke[t]}buildInputs(t,n,o){let r=`${t.pluginId}/${t.extensionId}/${t.contributionId}`;return tn(t,n,o,this.registry.get(r))}sortBySlotOrder(t,n){let o=le[n].order;return o==="fifo"?t.slice():o==="priority"?t.slice().sort((r,s)=>{let a=this.priorityFor(r),c=this.priorityFor(s);return a!==c?a-c:Ue(r,s)}):o==="severity"?t.slice().sort((r,s)=>{let a=nn(r),c=nn(s);return a!==c?c-a:Ue(r,s)}):t.slice().sort(Ue)}priorityFor(t){let n=`${t.pluginId}/${t.extensionId}/${t.contributionId}`;return this.registry.get(n)?.priority??100}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-view-contributions-host"]],hostVars:4,hostBindings:function(n,o){n&2&&(k("data-debug-slot",o.debugVisible()?o.slot():null)("title",o.debugTitle()),te("sm-debug-slot",o.debugVisible()))},inputs:{slot:[1,"slot"],node:[1,"node"]},decls:1,vars:1,consts:[[1,"vch"],[1,"vch__slot"],["data-testid","view-contributions-host-overflow",1,"vch__overflow",3,"pTooltip"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(n,o){n&1&&N(0,eo,4,2,"span",0),n&2&&E(o.visible().length>0||o.overflowCount()>0?0:-1)},dependencies:[wt,H,V],styles:["[_nghost-%COMP%]{display:contents}.vch[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}.vch__slot[_ngcontent-%COMP%]{display:inline-flex}.vch__overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.75rem;background:var(--p-surface-100);color:var(--p-surface-600);font-size:.8rem;cursor:default}"],changeDetection:0})}return e})();function Ue(e,i){let t=`${e.pluginId}/${e.extensionId}/${e.contributionId}`,n=`${i.pluginId}/${i.extensionId}/${i.contributionId}`;return t<n?-1:t>n?1:0}function nn(e){let i=e.payload;if(typeof i!="object"||i===null)return 0;switch(i.severity){case"danger":return 4;case"warn":return 3;case"info":return 2;case"success":return 1;default:return 0}}var vs="https://bb9dce0fd2cb4ab27ac0475aa394aeb4@o4511475590037504.ingest.de.sentry.io/4511475725959248",Ve="phc_vMX3PcNeDsacWNg2hYEbKVXDijSWcjKFzabCkzU7RNEr",on="https://eu.i.posthog.com";var to="<HOME>",no=["server_name","user"],io=[/[A-Za-z]:[\\/]Users[\\/][^\\/\s:*?"<>|]+/g,/\/(?:home|Users)\/[^/\s:]+/g,/\/root(?=\/|\b)/g];function oo(e){let i=e;for(let t of io)i=i.replace(t,to);return i}function rn(e){let i=He(e);if(i!==null&&typeof i=="object"&&!Array.isArray(i)){let t=i;for(let n of no)n in t&&delete t[n]}return i}function He(e){if(typeof e=="string")return oo(e);if(Array.isArray(e))return e.map(i=>He(i));if(e!==null&&typeof e=="object"){let i={};for(let[t,n]of Object.entries(e))i[t]=He(n);return i}return e}var an=!1,ye=null;async function bs(e){if(an||Ve===""||!e.consentEnabled||e.distinctId===null)return;let{default:i}=await import("./chunk-P3SNMV4X.js");i.init(Ve,{api_host:on,autocapture:!1,capture_pageview:!1,capture_pageleave:!1,disable_session_recording:!0,person_profiles:"identified_only",bootstrap:{distinctID:e.distinctId},before_send:t=>t===null?null:rn(t)}),ye=i,an=!0}function Ge(e,i={}){ye!==null&&ye.capture(e,i)}function sn(e){ye!==null&&ye.register(e)}var ks=(()=>{class e{router=K(Se);theme=K(kt);destroyRef=K(pt);constructor(){this.router.events.pipe(Et(this.destroyRef)).subscribe(t=>{if(t instanceof Tt){let n=ro(t.urlAfterRedirects);n!==null&&Ge(`ui.view.${n}`)}}),Me(()=>this.syncTheme())}trackFeature(t){Ge(`ui.feature.${t}`)}syncTheme(){sn({theme_base:this.theme.resolved(),theme_extra:this.theme.extraTheme()??"none"})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ro(e){return(e.split("?")[0]??"")==="/"?"workspace":null}function Ye(e,i){var t,n=1;e==null&&(e=0),i==null&&(i=0);function o(){var r,s=t.length,a,c=0,l=0;for(r=0;r<s;++r)a=t[r],c+=a.x,l+=a.y;for(c=(c/s-e)*n,l=(l/s-i)*n,r=0;r<s;++r)a=t[r],a.x-=c,a.y-=l}return o.initialize=function(r){t=r},o.x=function(r){return arguments.length?(e=+r,o):e},o.y=function(r){return arguments.length?(i=+r,o):i},o.strength=function(r){return arguments.length?(n=+r,o):n},o}function cn(e){let i=+this._x.call(null,e),t=+this._y.call(null,e);return ln(this.cover(i,t),i,t,e)}function ln(e,i,t,n){if(isNaN(i)||isNaN(t))return e;var o,r=e._root,s={data:n},a=e._x0,c=e._y0,l=e._x1,f=e._y1,y,_,m,w,g,u,v,x;if(!r)return e._root=s,e;for(;r.length;)if((g=i>=(y=(a+l)/2))?a=y:l=y,(u=t>=(_=(c+f)/2))?c=_:f=_,o=r,!(r=r[v=u<<1|g]))return o[v]=s,e;if(m=+e._x.call(null,r.data),w=+e._y.call(null,r.data),i===m&&t===w)return s.next=r,o?o[v]=s:e._root=s,e;do o=o?o[v]=new Array(4):e._root=new Array(4),(g=i>=(y=(a+l)/2))?a=y:l=y,(u=t>=(_=(c+f)/2))?c=_:f=_;while((v=u<<1|g)===(x=(w>=_)<<1|m>=y));return o[x]=r,o[v]=s,e}function dn(e){var i,t,n=e.length,o,r,s=new Array(n),a=new Array(n),c=1/0,l=1/0,f=-1/0,y=-1/0;for(t=0;t<n;++t)isNaN(o=+this._x.call(null,i=e[t]))||isNaN(r=+this._y.call(null,i))||(s[t]=o,a[t]=r,o<c&&(c=o),o>f&&(f=o),r<l&&(l=r),r>y&&(y=r));if(c>f||l>y)return this;for(this.cover(c,l).cover(f,y),t=0;t<n;++t)ln(this,s[t],a[t],e[t]);return this}function pn(e,i){if(isNaN(e=+e)||isNaN(i=+i))return this;var t=this._x0,n=this._y0,o=this._x1,r=this._y1;if(isNaN(t))o=(t=Math.floor(e))+1,r=(n=Math.floor(i))+1;else{for(var s=o-t||1,a=this._root,c,l;t>e||e>=o||n>i||i>=r;)switch(l=(i<n)<<1|e<t,c=new Array(4),c[l]=a,a=c,s*=2,l){case 0:o=t+s,r=n+s;break;case 1:t=o-s,r=n+s;break;case 2:o=t+s,n=r-s;break;case 3:t=o-s,n=r-s;break}this._root&&this._root.length&&(this._root=a)}return this._x0=t,this._y0=n,this._x1=o,this._y1=r,this}function un(){var e=[];return this.visit(function(i){if(!i.length)do e.push(i.data);while(i=i.next)}),e}function fn(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function U(e,i,t,n,o){this.node=e,this.x0=i,this.y0=t,this.x1=n,this.y1=o}function mn(e,i,t){var n,o=this._x0,r=this._y0,s,a,c,l,f=this._x1,y=this._y1,_=[],m=this._root,w,g;for(m&&_.push(new U(m,o,r,f,y)),t==null?t=1/0:(o=e-t,r=i-t,f=e+t,y=i+t,t*=t);w=_.pop();)if(!(!(m=w.node)||(s=w.x0)>f||(a=w.y0)>y||(c=w.x1)<o||(l=w.y1)<r))if(m.length){var u=(s+c)/2,v=(a+l)/2;_.push(new U(m[3],u,v,c,l),new U(m[2],s,v,u,l),new U(m[1],u,a,c,v),new U(m[0],s,a,u,v)),(g=(i>=v)<<1|e>=u)&&(w=_[_.length-1],_[_.length-1]=_[_.length-1-g],_[_.length-1-g]=w)}else{var x=e-+this._x.call(null,m.data),O=i-+this._y.call(null,m.data),b=x*x+O*O;if(b<t){var L=Math.sqrt(t=b);o=e-L,r=i-L,f=e+L,y=i+L,n=m.data}}return n}function gn(e){if(isNaN(f=+this._x.call(null,e))||isNaN(y=+this._y.call(null,e)))return this;var i,t=this._root,n,o,r,s=this._x0,a=this._y0,c=this._x1,l=this._y1,f,y,_,m,w,g,u,v;if(!t)return this;if(t.length)for(;;){if((w=f>=(_=(s+c)/2))?s=_:c=_,(g=y>=(m=(a+l)/2))?a=m:l=m,i=t,!(t=t[u=g<<1|w]))return this;if(!t.length)break;(i[u+1&3]||i[u+2&3]||i[u+3&3])&&(n=i,v=u)}for(;t.data!==e;)if(o=t,!(t=t.next))return this;return(r=t.next)&&delete t.next,o?(r?o.next=r:delete o.next,this):i?(r?i[u]=r:delete i[u],(t=i[0]||i[1]||i[2]||i[3])&&t===(i[3]||i[2]||i[1]||i[0])&&!t.length&&(n?n[v]=t:this._root=t),this):(this._root=r,this)}function vn(e){for(var i=0,t=e.length;i<t;++i)this.remove(e[i]);return this}function hn(){return this._root}function _n(){var e=0;return this.visit(function(i){if(!i.length)do++e;while(i=i.next)}),e}function yn(e){var i=[],t,n=this._root,o,r,s,a,c;for(n&&i.push(new U(n,this._x0,this._y0,this._x1,this._y1));t=i.pop();)if(!e(n=t.node,r=t.x0,s=t.y0,a=t.x1,c=t.y1)&&n.length){var l=(r+a)/2,f=(s+c)/2;(o=n[3])&&i.push(new U(o,l,f,a,c)),(o=n[2])&&i.push(new U(o,r,f,l,c)),(o=n[1])&&i.push(new U(o,l,s,a,f)),(o=n[0])&&i.push(new U(o,r,s,l,f))}return this}function xn(e){var i=[],t=[],n;for(this._root&&i.push(new U(this._root,this._x0,this._y0,this._x1,this._y1));n=i.pop();){var o=n.node;if(o.length){var r,s=n.x0,a=n.y0,c=n.x1,l=n.y1,f=(s+c)/2,y=(a+l)/2;(r=o[0])&&i.push(new U(r,s,a,f,y)),(r=o[1])&&i.push(new U(r,f,a,c,y)),(r=o[2])&&i.push(new U(r,s,y,f,l)),(r=o[3])&&i.push(new U(r,f,y,c,l))}t.push(n)}for(;n=t.pop();)e(n.node,n.x0,n.y0,n.x1,n.y1);return this}function bn(e){return e[0]}function Cn(e){return arguments.length?(this._x=e,this):this._x}function wn(e){return e[1]}function Tn(e){return arguments.length?(this._y=e,this):this._y}function ue(e,i,t){var n=new We(i??bn,t??wn,NaN,NaN,NaN,NaN);return e==null?n:n.addAll(e)}function We(e,i,t,n,o,r){this._x=e,this._y=i,this._x0=t,this._y0=n,this._x1=o,this._y1=r,this._root=void 0}function Mn(e){for(var i={data:e.data},t=i;e=e.next;)t=t.next={data:e.data};return i}var q=ue.prototype=We.prototype;q.copy=function(){var e=new We(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root,t,n;if(!i)return e;if(!i.length)return e._root=Mn(i),e;for(t=[{source:i,target:e._root=new Array(4)}];i=t.pop();)for(var o=0;o<4;++o)(n=i.source[o])&&(n.length?t.push({source:n,target:i.target[o]=new Array(4)}):i.target[o]=Mn(n));return e};q.add=cn;q.addAll=dn;q.cover=pn;q.data=un;q.extent=fn;q.find=mn;q.remove=gn;q.removeAll=vn;q.root=hn;q.size=_n;q.visit=yn;q.visitAfter=xn;q.x=Cn;q.y=Tn;function j(e){return function(){return e}}function ie(e){return(e()-.5)*1e-6}function ao(e){return e.x+e.vx}function so(e){return e.y+e.vy}function Xe(e){var i,t,n,o=1,r=1;typeof e!="function"&&(e=j(e==null?1:+e));function s(){for(var l,f=i.length,y,_,m,w,g,u,v=0;v<r;++v)for(y=ue(i,ao,so).visitAfter(a),l=0;l<f;++l)_=i[l],g=t[_.index],u=g*g,m=_.x+_.vx,w=_.y+_.vy,y.visit(x);function x(O,b,L,Y,J){var B=O.data,ne=O.r,z=g+ne;if(B){if(B.index>_.index){var se=m-B.x-B.vx,ce=w-B.y-B.vy,re=se*se+ce*ce;re<z*z&&(se===0&&(se=ie(n),re+=se*se),ce===0&&(ce=ie(n),re+=ce*ce),re=(z-(re=Math.sqrt(re)))/re*o,_.vx+=(se*=re)*(z=(ne*=ne)/(u+ne)),_.vy+=(ce*=re)*z,B.vx-=se*(z=1-z),B.vy-=ce*z)}return}return b>m+z||Y<m-z||L>w+z||J<w-z}}function a(l){if(l.data)return l.r=t[l.data.index];for(var f=l.r=0;f<4;++f)l[f]&&l[f].r>l.r&&(l.r=l[f].r)}function c(){if(i){var l,f=i.length,y;for(t=new Array(f),l=0;l<f;++l)y=i[l],t[y.index]=+e(y,l,i)}}return s.initialize=function(l,f){i=l,n=f,c()},s.iterations=function(l){return arguments.length?(r=+l,s):r},s.strength=function(l){return arguments.length?(o=+l,s):o},s.radius=function(l){return arguments.length?(e=typeof l=="function"?l:j(+l),c(),s):e},s}function co(e){return e.index}function Nn(e,i){var t=e.get(i);if(!t)throw new Error("node not found: "+i);return t}function qe(e){var i=co,t=y,n,o=j(30),r,s,a,c,l,f=1;e==null&&(e=[]);function y(u){return 1/Math.min(a[u.source.index],a[u.target.index])}function _(u){for(var v=0,x=e.length;v<f;++v)for(var O=0,b,L,Y,J,B,ne,z;O<x;++O)b=e[O],L=b.source,Y=b.target,J=Y.x+Y.vx-L.x-L.vx||ie(l),B=Y.y+Y.vy-L.y-L.vy||ie(l),ne=Math.sqrt(J*J+B*B),ne=(ne-r[O])/ne*u*n[O],J*=ne,B*=ne,Y.vx-=J*(z=c[O]),Y.vy-=B*z,L.vx+=J*(z=1-z),L.vy+=B*z}function m(){if(s){var u,v=s.length,x=e.length,O=new Map(s.map((L,Y)=>[i(L,Y,s),L])),b;for(u=0,a=new Array(v);u<x;++u)b=e[u],b.index=u,typeof b.source!="object"&&(b.source=Nn(O,b.source)),typeof b.target!="object"&&(b.target=Nn(O,b.target)),a[b.source.index]=(a[b.source.index]||0)+1,a[b.target.index]=(a[b.target.index]||0)+1;for(u=0,c=new Array(x);u<x;++u)b=e[u],c[u]=a[b.source.index]/(a[b.source.index]+a[b.target.index]);n=new Array(x),w(),r=new Array(x),g()}}function w(){if(s)for(var u=0,v=e.length;u<v;++u)n[u]=+t(e[u],u,e)}function g(){if(s)for(var u=0,v=e.length;u<v;++u)r[u]=+o(e[u],u,e)}return _.initialize=function(u,v){s=u,l=v,m()},_.links=function(u){return arguments.length?(e=u,m(),_):e},_.id=function(u){return arguments.length?(i=u,_):i},_.iterations=function(u){return arguments.length?(f=+u,_):f},_.strength=function(u){return arguments.length?(t=typeof u=="function"?u:j(+u),w(),_):t},_.distance=function(u){return arguments.length?(o=typeof u=="function"?u:j(+u),g(),_):o},_}var lo={value:()=>{}};function Sn(){for(var e=0,i=arguments.length,t={},n;e<i;++e){if(!(n=arguments[e]+"")||n in t||/[\s.]/.test(n))throw new Error("illegal type: "+n);t[n]=[]}return new Ie(t)}function Ie(e){this._=e}function po(e,i){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");if(o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),t&&!i.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})}Ie.prototype=Sn.prototype={constructor:Ie,on:function(e,i){var t=this._,n=po(e+"",t),o,r=-1,s=n.length;if(arguments.length<2){for(;++r<s;)if((o=(e=n[r]).type)&&(o=uo(t[o],e.name)))return o;return}if(i!=null&&typeof i!="function")throw new Error("invalid callback: "+i);for(;++r<s;)if(o=(e=n[r]).type)t[o]=En(t[o],e.name,i);else if(i==null)for(o in t)t[o]=En(t[o],e.name,null);return this},copy:function(){var e={},i=this._;for(var t in i)e[t]=i[t].slice();return new Ie(e)},call:function(e,i){if((o=arguments.length-2)>0)for(var t=new Array(o),n=0,o,r;n<o;++n)t[n]=arguments[n+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(r=this._[e],n=0,o=r.length;n<o;++n)r[n].value.apply(i,t)},apply:function(e,i,t){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var n=this._[e],o=0,r=n.length;o<r;++o)n[o].value.apply(i,t)}};function uo(e,i){for(var t=0,n=e.length,o;t<n;++t)if((o=e[t]).name===i)return o.value}function En(e,i,t){for(var n=0,o=e.length;n<o;++n)if(e[n].name===i){e[n]=lo,e=e.slice(0,n).concat(e.slice(n+1));break}return t!=null&&e.push({name:i,value:t}),e}var Qe=Sn;var ve=0,be=0,xe=0,Dn=1e3,Pe,Ce,Ae=0,fe=0,Fe=0,we=typeof performance=="object"&&performance.now?performance:Date,On=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function et(){return fe||(On(fo),fe=we.now()+Fe)}function fo(){fe=0}function Ze(){this._call=this._time=this._next=null}Ze.prototype=$e.prototype={constructor:Ze,restart:function(e,i,t){if(typeof e!="function")throw new TypeError("callback is not a function");t=(t==null?et():+t)+(i==null?0:+i),!this._next&&Ce!==this&&(Ce?Ce._next=this:Pe=this,Ce=this),this._call=e,this._time=t,Je()},stop:function(){this._call&&(this._call=null,this._time=1/0,Je())}};function $e(e,i,t){var n=new Ze;return n.restart(e,i,t),n}function In(){et(),++ve;for(var e=Pe,i;e;)(i=fe-e._time)>=0&&e._call.call(void 0,i),e=e._next;--ve}function kn(){fe=(Ae=we.now())+Fe,ve=be=0;try{In()}finally{ve=0,go(),fe=0}}function mo(){var e=we.now(),i=e-Ae;i>Dn&&(Fe-=i,Ae=e)}function go(){for(var e,i=Pe,t,n=1/0;i;)i._call?(n>i._time&&(n=i._time),e=i,i=i._next):(t=i._next,i._next=null,i=e?e._next=t:Pe=t);Ce=e,Je(n)}function Je(e){if(!ve){be&&(be=clearTimeout(be));var i=e-fe;i>24?(e<1/0&&(be=setTimeout(kn,e-we.now()-Fe)),xe&&(xe=clearInterval(xe))):(xe||(Ae=we.now(),xe=setInterval(mo,Dn)),ve=1,On(kn))}}function Pn(){let e=1;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function An(e){return e.x}function Fn(e){return e.y}var vo=10,ho=Math.PI*(3-Math.sqrt(5));function tt(e){var i,t=1,n=.001,o=1-Math.pow(n,1/300),r=0,s=.6,a=new Map,c=$e(y),l=Qe("tick","end"),f=Pn();e==null&&(e=[]);function y(){_(),l.call("tick",i),t<n&&(c.stop(),l.call("end",i))}function _(g){var u,v=e.length,x;g===void 0&&(g=1);for(var O=0;O<g;++O)for(t+=(r-t)*o,a.forEach(function(b){b(t)}),u=0;u<v;++u)x=e[u],x.fx==null?x.x+=x.vx*=s:(x.x=x.fx,x.vx=0),x.fy==null?x.y+=x.vy*=s:(x.y=x.fy,x.vy=0);return i}function m(){for(var g=0,u=e.length,v;g<u;++g){if(v=e[g],v.index=g,v.fx!=null&&(v.x=v.fx),v.fy!=null&&(v.y=v.fy),isNaN(v.x)||isNaN(v.y)){var x=vo*Math.sqrt(.5+g),O=g*ho;v.x=x*Math.cos(O),v.y=x*Math.sin(O)}(isNaN(v.vx)||isNaN(v.vy))&&(v.vx=v.vy=0)}}function w(g){return g.initialize&&g.initialize(e,f),g}return m(),i={tick:_,restart:function(){return c.restart(y),i},stop:function(){return c.stop(),i},nodes:function(g){return arguments.length?(e=g,m(),a.forEach(w),i):e},alpha:function(g){return arguments.length?(t=+g,i):t},alphaMin:function(g){return arguments.length?(n=+g,i):n},alphaDecay:function(g){return arguments.length?(o=+g,i):+o},alphaTarget:function(g){return arguments.length?(r=+g,i):r},velocityDecay:function(g){return arguments.length?(s=1-g,i):1-s},randomSource:function(g){return arguments.length?(f=g,a.forEach(w),i):f},force:function(g,u){return arguments.length>1?(u==null?a.delete(g):a.set(g,w(u)),i):a.get(g)},find:function(g,u,v){var x=0,O=e.length,b,L,Y,J,B;for(v==null?v=1/0:v*=v,x=0;x<O;++x)J=e[x],b=g-J.x,L=u-J.y,Y=b*b+L*L,Y<v&&(B=J,v=Y);return B},on:function(g,u){return arguments.length>1?(l.on(g,u),i):l.on(g)}}}function nt(){var e,i,t,n,o=j(-30),r,s=1,a=1/0,c=.81;function l(m){var w,g=e.length,u=ue(e,An,Fn).visitAfter(y);for(n=m,w=0;w<g;++w)i=e[w],u.visit(_)}function f(){if(e){var m,w=e.length,g;for(r=new Array(w),m=0;m<w;++m)g=e[m],r[g.index]=+o(g,m,e)}}function y(m){var w=0,g,u,v=0,x,O,b;if(m.length){for(x=O=b=0;b<4;++b)(g=m[b])&&(u=Math.abs(g.value))&&(w+=g.value,v+=u,x+=u*g.x,O+=u*g.y);m.x=x/v,m.y=O/v}else{g=m,g.x=g.data.x,g.y=g.data.y;do w+=r[g.data.index];while(g=g.next)}m.value=w}function _(m,w,g,u){if(!m.value)return!0;var v=m.x-i.x,x=m.y-i.y,O=u-w,b=v*v+x*x;if(O*O/c<b)return b<a&&(v===0&&(v=ie(t),b+=v*v),x===0&&(x=ie(t),b+=x*x),b<s&&(b=Math.sqrt(s*b)),i.vx+=v*m.value*n/b,i.vy+=x*m.value*n/b),!0;if(m.length||b>=a)return;(m.data!==i||m.next)&&(v===0&&(v=ie(t),b+=v*v),x===0&&(x=ie(t),b+=x*x),b<s&&(b=Math.sqrt(s*b)));do m.data!==i&&(O=r[m.data.index]*n/b,i.vx+=v*O,i.vy+=x*O);while(m=m.next)}return l.initialize=function(m,w){e=m,t=w,f()},l.strength=function(m){return arguments.length?(o=typeof m=="function"?m:j(+m),f(),l):o},l.distanceMin=function(m){return arguments.length?(s=m*m,l):Math.sqrt(s)},l.distanceMax=function(m){return arguments.length?(a=m*m,l):Math.sqrt(a)},l.theta=function(m){return arguments.length?(c=m*m,l):Math.sqrt(c)},l}function it(e){var i=j(.1),t,n,o;typeof e!="function"&&(e=j(e==null?0:+e));function r(a){for(var c=0,l=t.length,f;c<l;++c)f=t[c],f.vx+=(o[c]-f.x)*n[c]*a}function s(){if(t){var a,c=t.length;for(n=new Array(c),o=new Array(c),a=0;a<c;++a)n[a]=isNaN(o[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return r.initialize=function(a){t=a,s()},r.strength=function(a){return arguments.length?(i=typeof a=="function"?a:j(+a),s(),r):i},r.x=function(a){return arguments.length?(e=typeof a=="function"?a:j(+a),s(),r):e},r}function ot(e){var i=j(.1),t,n,o;typeof e!="function"&&(e=j(e==null?0:+e));function r(a){for(var c=0,l=t.length,f;c<l;++c)f=t[c],f.vy+=(o[c]-f.y)*n[c]*a}function s(){if(t){var a,c=t.length;for(n=new Array(c),o=new Array(c),a=0;a<c;++a)n[a]=isNaN(o[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return r.initialize=function(a){t=a,s()},r.strength=function(a){return arguments.length?(i=typeof a=="function"?a:j(+a),s(),r):i},r.y=function(a){return arguments.length?(e=typeof a=="function"?a:j(+a),s(),r):e},r}var _o=["network-simplex","longest-path","force"];function Gc(e){return e!=="force"}var yo=["TOP_BOTTOM","BOTTOM_TOP","LEFT_RIGHT","RIGHT_LEFT"];var $n={compact:{nodeGap:40,layerGap:56},normal:{nodeGap:64,layerGap:96},spacious:{nodeGap:96,layerGap:144}},Yc="network-simplex",Wc="LEFT_RIGHT",Xc="normal";function qc(e){return typeof e=="string"&&_o.includes(e)}function Qc(e){return typeof e=="string"&&yo.includes(e)}var rt=260,Ln=120;function Rn(e){return e.resolvedTarget??e.target}function il(e,i){let t=i?.links??[],n=new Set(e.map(f=>f.path)),o=new Set,r=0,s=0,a=0,c=0,l=0;for(let f of t){if(!n.has(f.source)){r++;continue}let y=Rn(f);if(!n.has(y)){s++;continue}if(f.source===y){a++;continue}let _=jn(f.kind,f.source,y);if(o.has(_)){c++;continue}o.add(_),l++}return{raw:t.length,drawn:l,brokenSource:r,brokenTarget:s,selfLoops:a,duplicates:c}}function ol(e,i){let t=e.map(o=>o.path).sort(),n=i.map(o=>o.id).sort();return`${t.length}|${t.join(",")}|${n.length}|${n.join(",")}`}function rl(e,i){let t=new Set(e.map(c=>c.path)),n=new Map,o=i?.links??[];for(let c of o){if(!t.has(c.source))continue;let l=Rn(c);if(!t.has(l)||c.source===l)continue;let f=jn(c.kind,c.source,l),y=typeof c.confidence=="number"?c.confidence:.6,_=n.get(f);_?y>_.confidence&&(_.confidence=y):n.set(f,{id:f,from:c.source,to:l,kind:c.kind,confidence:y})}let r=[...n.values()],s=new Map;for(let c of e)s.set(c.path,c);let a=new Map;for(let c of i?.nodes??[])a.set(c.path,c);return{nodesByPath:s,apiNodesByPath:a,edges:r}}async function al(e,i,t,n){let o={width:rt,height:Ln},r=i.map(f=>({id:f.path,size:o})),s=t.map(f=>({source:f.from,target:f.to})),a=$n[n.spacing],c=await e.calculate(r,s,{algorithm:n.algorithm,direction:n.direction,nodeGap:a.nodeGap,layerGap:a.layerGap}),l=new Map;for(let{id:f,position:y}of c.nodes)l.set(f,{x:y.x,y:y.y});return l}function sl(e,i){let t=e.map(a=>({id:a.path})),n=i.map(a=>({source:a.from,target:a.to})),o=tt(t).force("link",qe(n).id(a=>a.id).distance(90).strength(1)).force("charge",nt().strength(-200)).force("center",Ye(0,0)).force("x",it(0).strength(.06)).force("y",ot(0).strength(.06)).force("collide",Xe(rt/2+12)).stop(),r=400;for(let a=0;a<r;a++)o.tick();let s=new Map;for(let a of t)s.set(a.id,{x:(a.x??0)-rt/2,y:(a.y??0)-Ln/2});return s}function cl(e,i,t,n=null){let o=e.edges.filter(c=>i.has(c.from)&&i.has(c.to)&&(n===null||n.has(c.kind))),r=new Map,s=new Map;for(let c of o)r.set(c.from,(r.get(c.from)??0)+1),s.set(c.to,(s.get(c.to)??0)+1);let a=[];for(let c of i){let l=e.nodesByPath.get(c);if(!l)continue;let f=e.apiNodesByPath.get(c),y=t.get(c),_=e.positions.get(c)??{x:0,y:0},m=y?{x:y.x,y:y.y}:_;a.push({id:c,path:c,view:l,kind:l.kind,position:m,stats:{linksIn:s.get(c)??0,linksOut:r.get(c)??0,bytesTotal:f?.bytes.total,tokensTotal:f?.tokens?.total,externalRefsCount:f?.externalRefsCount},summary:xo(l)})}return{nodes:a,edges:o}}function xo(e){let i={injectionDetected:!1,contentQuality:"clean"},t=(e.frontmatter.description??e.frontmatter.name??"").trim();return{kind:"markdown",confidence:.6,safety:i,whatItCovers:t||`${e.kind} entry`,topics:[],keyFacts:[]}}function jn(e,i,t){return`${e}:${i}::${t}`}var Bn={invalidHex:e=>`deriveTints: invalid hex color "${e}" (expected #RRGGBB)`};function Le(e,i,t){return[Math.round(e[0]+(i[0]-e[0])*t),Math.round(e[1]+(i[1]-e[1])*t),Math.round(e[2]+(i[2]-e[2])*t)]}function bo(e){let i=/^#([0-9a-f]{6})$/i.exec(e);if(!i)throw new Error(Bn.invalidHex(e));let t=parseInt(i[1],16);return[t>>16&255,t>>8&255,t&255]}function Re([e,i,t]){let n=o=>Math.max(0,Math.min(255,o)).toString(16).padStart(2,"0");return`#${n(e)}${n(i)}${n(t)}`}var zn=[255,255,255],Kn=[0,0,0];function at(e,i){let t=bo(e);return i==="light"?{bg:Re(Le(t,zn,.85)),fg:Re(Le(t,Kn,.5))}:{bg:Re(Le(t,Kn,.7)),fg:Re(Le(t,zn,.6))}}var Co=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/,Un=/^#[0-9a-f]{6}$/i,hl=(()=>{class e{doc=K(dt);_entries=F([]);kinds=this._entries.asReadonly();index=d(()=>{let t=new Map;for(let n of this._entries())t.set(n.name,n);return t});ingest(t){if(!t)return;let n=[];for(let[r,s]of Object.entries(t)){if(!Co.test(r))continue;let a=s.providers[s.primaryProviderId];if(!a)continue;let c={name:r,primaryProviderId:s.primaryProviderId,providers:s.providers,label:a.label,color:a.color};a.colorDark!==void 0&&(c.colorDark=a.colorDark),a.emoji!==void 0&&(c.emoji=a.emoji),a.icon!==void 0&&(c.icon=a.icon),n.push(c)}let o=this._entries();To(o,n)||(this._entries.set(n),this.applyCssVars())}lookup(t){return this.index().get(t)}labelOf(t){return this.lookup(t)?.label??t}colorOf(t,n="light"){let o=this.lookup(t);return o?n==="dark"?o.colorDark??o.color:o.color:"#9ca3af"}iconOf(t){return this.lookup(t)?.icon}emojiOf(t){return this.lookup(t)?.emoji}providersOf(t){return this.lookup(t)?.providers}applyCssVars(){if(!this.doc.head)return;let t=wo(this.doc),n=[],o=[];for(let r of this._entries()){if(!Un.test(r.color))continue;let s=r.colorDark??r.color;if(Un.test(s))try{let a=at(r.color,"light"),c=at(s,"dark");n.push(`--sm-kind-${r.name}: ${r.color};`),n.push(`--sm-kind-${r.name}-bg: ${a.bg};`),n.push(`--sm-kind-${r.name}-fg: ${a.fg};`),o.push(`--sm-kind-${r.name}: ${s};`),o.push(`--sm-kind-${r.name}-bg: ${c.bg};`),o.push(`--sm-kind-${r.name}-fg: ${c.fg};`)}catch{continue}}t.textContent=`:root { ${n.join(" ")} } .app-dark { ${o.join(" ")} }`}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Vn="sm-kind-vars";function wo(e){let i=e.getElementById(Vn);return i||(i=e.createElement("style"),i.id=Vn,e.head.appendChild(i)),i}function To(e,i){if(e.length!==i.length)return!1;for(let t=0;t<e.length;t++){let n=e[t],o=i[t];if(n.name!==o.name||n.primaryProviderId!==o.primaryProviderId||JSON.stringify(n.providers)!==JSON.stringify(o.providers))return!1}return!0}export{Eo as a,So as b,ko as c,Do as d,Ot as e,Oo as f,Io as g,Po as h,Ao as i,Fo as j,It as k,Bo as l,At as m,_o as n,Gc as o,yo as p,Yc as q,Wc as r,Xc as s,qc as t,Qc as u,hl as v,Ft as w,$t as x,oe as y,Gt as z,Ke as A,en as B,Za as C,tn as D,ms as E,vs as F,rn as G,bs as H,sn as I,ks as J,il as K,ol as L,rl as M,al as N,sl as O,cl as P};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as l,d,h as p}from"./chunk-4CXAL43H.js";import{K as o,P as s,ga as r,sc as a}from"./chunk-Q2A6FWC7.js";import{a as c}from"./chunk-WCABR6TI.js";var S={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"Per-machine preferences.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."},telemetry:{label:"Send anonymous error & usage reports",description:"Report crashes and which features you use. No file contents or paths.",hint:"Restart sm for this to take effect."}},extraTheme:{label:"Theme",description:"Pick a specialty theme.",options:{none:{label:"None",description:"Use the topbar dark/light toggle."}}},storageHintLabel:"Settings are stored in:",storageHintPath:"~/.skill-map/settings.json"},project:{heading:"Project",introPrefix:"These settings apply only to this project and are saved in",introPath:".skill-map/settings.local.json",introSuffix:".",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",referencePathsLabel:"Folders for link validation",referencePathsDescription:"If your notes link to files outside this project, list those folders here. Skill-map checks them only to confirm the links work, nothing from these folders shows up in the map.",referencePathsPlaceholder:"~/Documents/research",referencePathsInputAriaLabel:"New folder path",commaForbidden:"Add one path at a time, without commas.",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel",ignorePatternsLabel:"Ignored patterns",ignorePatternsDescriptionPrefix:"Patterns that exclude files and folders from the scan, stored in",ignorePatternsDescriptionFile:".skillmapignore",ignorePatternsDescriptionMiddle:"at the project root. Same syntax as",ignorePatternsDescriptionGitignore:".gitignore",ignorePatternsDescriptionSuffix:"(one pattern per line).",ignorePatternsPlaceholder:"secrets.md",ignorePatternsInputAriaLabel:"New ignore pattern",ignorePatternEmpty:"Pattern cannot be empty or whitespace-only.",ignorePatternHasControlChar:"Pattern must be a single line without control characters.",ignorePatternDuplicate:"This pattern is already in the list.",addIgnorePatternLabel:"Add pattern",removeIgnorePatternLabel:"Remove",activeProviderLabel:"Active provider",activeProviderDescription:"Selects which provider sees this project. The map reflects how the chosen provider interprets your files.",activeProviderSourceAutodetect:"Auto-detected from your files (no value saved yet).",activeProviderSourceNone:"No provider detected. Install or enable a provider to start.",activeProviderDetectedPrefix:"Detected:",activeProviderEmptyOption:"(none)",activeProviderDisabledSuffix:"(disabled)",activeProviderConfirmHeader:"Switch the active provider?",activeProviderConfirmIntro:"Switching will clear the persisted scan (nodes, links, issues). Jobs and history are kept. You will need to run `sm scan` after the switch.",activeProviderConfirmAccept:"Switch and clear scan",activeProviderConfirmReject:"Cancel",activeProviderSwitchedPrefix:"Lens switched. Cleared",activeProviderSwitchedSuffix:"scan table(s). Run `sm scan` to repopulate.",activeProviderSwitchedNoDb:"Lens switched. Run `sm scan` to populate the map under the new lens."},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",changelogFooterText:"Want the full changelog?",changelogFooterLinkLabel:"See it on GitHub \u2192",changelogFooterUrl:"https://github.com/crystian/skill-map/blob/main/src/CHANGELOG.md",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutDbValue:(e,n)=>e==="present"?n:`${e} \xB7 ${n}`,aboutLoading:"Loading\u2026",aboutUnknown:"-",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.ai/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterOptionA11y:(e,n)=>n?`Show only ${e} extensions`:"Show all kinds",pluginsSourceFilterOptionA11y:(e,n)=>n?`Show only ${e} plugins`:"Show all sources",pluginsFilterA11y:"Filter plugins by source and kind",pluginsFilterAllA11y:"Show every plugin (clear the source and kind filters)",pluginsProjectEmpty:"No project plugins yet. Drop one under .skill-map/plugins/ or create it with sm plugins create <id>.",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending plugin changes",applyA11y:"Apply pending plugin changes and refresh the map",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",stability:{experimental:"experimental",beta:"beta",deprecated:"deprecated",tooltip:"Lifecycle stage declared by the extension manifest."},runtimeErrors:{badge:e=>e===1?"1 runtime error":`${e} runtime errors`,badgeTooltip:"This plugin loaded fine, but some of its contributions were rejected during the last scan. Expand for details.",expandLabel:"Show runtime errors",collapseLabel:"Hide runtime errors",extensionPrefix:"Extension:",slotPrefix:"Slot:",contributionPrefix:"Contribution:",a11y:{toggle:(e,n)=>`Runtime errors for plugin ${e} (${n})`}},statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,n)=>n?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,n)=>n?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var y="#9ca3af",P="#6b7280",A=(()=>{class e{_entries=r([]);providers=this._entries.asReadonly();index=a(()=>{let t=new Map;for(let i of this._entries())t.set(i.id,i);return t});ingest(t){if(!t)return;let i=[];for(let[b,v]of Object.entries(t))i.push(c({id:b},v));k(this._entries(),i)||this._entries.set(i)}lookup(t){return this.index().get(t)}cardChip(t){if(!t)return null;let i=this.lookup(t);return i?i.hideChip?null:u(i):g(t)}lensChip(t){if(!t)return null;let i=this.lookup(t);return i?u(i):g(t)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function u(e){let n={label:e.label,color:e.color};return e.colorDark!==void 0&&(n.colorDark=e.colorDark),n}function g(e){return{label:e,color:y,colorDark:P}}function k(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(JSON.stringify(e[t])!==JSON.stringify(n[t]))return!1;return!0}var f={available:"Update available",copiedLabel:"Copied!",tooltip:e=>`v${e} is available. Click to copy the install command.`,copyCommand:"npm i -g @skill-map/cli@latest",copiedTooltip:"Copied! Paste it in your terminal.",npmLinkUrl:"https://www.npmjs.com/package/@skill-map/cli",npmLinkTooltip:"Open on npm",npmLinkA11y:"Open the @skill-map/cli package page on npm",a11yLabel:e=>`Update available: version ${e}, click to copy the install command`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var R=(()=>{class e{dataSource=s(l);status=r(null);isOutdated=a(()=>this.status()?.isOutdated===!0);latest=a(()=>this.status()?.latest??null);current=a(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let i=t instanceof Error?t.message:String(t);console.warn(f.fetchFailed(i))}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var m={scanFailed:e=>`scan-trigger failed: ${e}`};var M=(()=>{class e{dataSource=s(l);loader=s(p);scanning=r(!1);scanError=r(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let i=t instanceof d||t instanceof Error?t.message:String(t);this.scanError.set(i),console.warn(m.scanFailed(i))}finally{this.scanning.set(!1)}}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{A as a,f as b,R as c,S as d,M as e};
|
|
1
|
+
import{c as l,d,h as p}from"./chunk-4ITL7E6U.js";import{K as o,P as s,ga as r,sc as a}from"./chunk-Q2A6FWC7.js";import{a as c}from"./chunk-WCABR6TI.js";var S={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"Per-machine preferences.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."},telemetry:{label:"Send anonymous error & usage reports",description:"Report crashes and which features you use. No file contents or paths.",hint:"Restart sm for this to take effect."}},extraTheme:{label:"Theme",description:"Pick a specialty theme.",options:{none:{label:"None",description:"Use the topbar dark/light toggle."}}},storageHintLabel:"Settings are stored in:",storageHintPath:"~/.skill-map/settings.json"},project:{heading:"Project",introPrefix:"These settings apply only to this project and are saved in",introPath:".skill-map/settings.local.json",introSuffix:".",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",referencePathsLabel:"Folders for link validation",referencePathsDescription:"If your notes link to files outside this project, list those folders here. Skill-map checks them only to confirm the links work, nothing from these folders shows up in the map.",referencePathsPlaceholder:"~/Documents/research",referencePathsInputAriaLabel:"New folder path",commaForbidden:"Add one path at a time, without commas.",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel",ignorePatternsLabel:"Ignored patterns",ignorePatternsDescriptionPrefix:"Patterns that exclude files and folders from the scan, stored in",ignorePatternsDescriptionFile:".skillmapignore",ignorePatternsDescriptionMiddle:"at the project root. Same syntax as",ignorePatternsDescriptionGitignore:".gitignore",ignorePatternsDescriptionSuffix:"(one pattern per line).",ignorePatternsPlaceholder:"secrets.md",ignorePatternsInputAriaLabel:"New ignore pattern",ignorePatternEmpty:"Pattern cannot be empty or whitespace-only.",ignorePatternHasControlChar:"Pattern must be a single line without control characters.",ignorePatternDuplicate:"This pattern is already in the list.",addIgnorePatternLabel:"Add pattern",removeIgnorePatternLabel:"Remove",activeProviderLabel:"Active provider",activeProviderDescription:"Selects which provider sees this project. The map reflects how the chosen provider interprets your files.",activeProviderSourceAutodetect:"Auto-detected from your files (no value saved yet).",activeProviderSourceNone:"No provider detected. Install or enable a provider to start.",activeProviderDetectedPrefix:"Detected:",activeProviderEmptyOption:"(none)",activeProviderDisabledSuffix:"(disabled)",activeProviderConfirmHeader:"Switch the active provider?",activeProviderConfirmIntro:"Switching will clear the persisted scan (nodes, links, issues). Jobs and history are kept. You will need to run `sm scan` after the switch.",activeProviderConfirmAccept:"Switch and clear scan",activeProviderConfirmReject:"Cancel",activeProviderSwitchedPrefix:"Lens switched. Cleared",activeProviderSwitchedSuffix:"scan table(s). Run `sm scan` to repopulate.",activeProviderSwitchedNoDb:"Lens switched. Run `sm scan` to populate the map under the new lens."},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",changelogFooterText:"Want the full changelog?",changelogFooterLinkLabel:"See it on GitHub \u2192",changelogFooterUrl:"https://github.com/crystian/skill-map/blob/main/src/CHANGELOG.md",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutDbValue:(e,n)=>e==="present"?n:`${e} \xB7 ${n}`,aboutLoading:"Loading\u2026",aboutUnknown:"-",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.ai/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterOptionA11y:(e,n)=>n?`Show only ${e} extensions`:"Show all kinds",pluginsSourceFilterOptionA11y:(e,n)=>n?`Show only ${e} plugins`:"Show all sources",pluginsFilterA11y:"Filter plugins by source and kind",pluginsFilterAllA11y:"Show every plugin (clear the source and kind filters)",pluginsProjectEmpty:"No project plugins yet. Drop one under .skill-map/plugins/ or create it with sm plugins create <id>.",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending changes",applyA11y:"Apply pending changes and refresh the map",applyErrorPrefix:"Could not apply changes:",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",stability:{experimental:"experimental",beta:"beta",deprecated:"deprecated",tooltip:"Lifecycle stage declared by the extension manifest."},runtimeErrors:{badge:e=>e===1?"1 runtime error":`${e} runtime errors`,badgeTooltip:"This plugin loaded fine, but some of its contributions were rejected during the last scan. Expand for details.",expandLabel:"Show runtime errors",collapseLabel:"Hide runtime errors",extensionPrefix:"Extension:",slotPrefix:"Slot:",contributionPrefix:"Contribution:",a11y:{toggle:(e,n)=>`Runtime errors for plugin ${e} (${n})`}},pluginSection:{navLabel:e=>e,intro:"Configure this plugin's options. Changes apply when you click Apply.",formA11y:e=>`Settings for ${e}`,sectionA11y:e=>`Settings for plugin ${e}`},statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,n)=>n?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,n)=>n?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var y="#9ca3af",P="#6b7280",A=(()=>{class e{_entries=r([]);providers=this._entries.asReadonly();index=a(()=>{let t=new Map;for(let i of this._entries())t.set(i.id,i);return t});ingest(t){if(!t)return;let i=[];for(let[b,v]of Object.entries(t))i.push(c({id:b},v));k(this._entries(),i)||this._entries.set(i)}lookup(t){return this.index().get(t)}cardChip(t){if(!t)return null;let i=this.lookup(t);return i?i.hideChip?null:u(i):g(t)}lensChip(t){if(!t)return null;let i=this.lookup(t);return i?u(i):g(t)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function u(e){let n={label:e.label,color:e.color};return e.colorDark!==void 0&&(n.colorDark=e.colorDark),n}function g(e){return{label:e,color:y,colorDark:P}}function k(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(JSON.stringify(e[t])!==JSON.stringify(n[t]))return!1;return!0}var f={available:"Update available",copiedLabel:"Copied!",tooltip:e=>`v${e} is available. Click to copy the install command.`,copyCommand:"npm i -g @skill-map/cli@latest",copiedTooltip:"Copied! Paste it in your terminal.",npmLinkUrl:"https://www.npmjs.com/package/@skill-map/cli",npmLinkTooltip:"Open on npm",npmLinkA11y:"Open the @skill-map/cli package page on npm",a11yLabel:e=>`Update available: version ${e}, click to copy the install command`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var R=(()=>{class e{dataSource=s(l);status=r(null);isOutdated=a(()=>this.status()?.isOutdated===!0);latest=a(()=>this.status()?.latest??null);current=a(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let i=t instanceof Error?t.message:String(t);console.warn(f.fetchFailed(i))}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var m={scanFailed:e=>`scan-trigger failed: ${e}`};var M=(()=>{class e{dataSource=s(l);loader=s(p);scanning=r(!1);scanError=r(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let i=t instanceof d||t instanceof Error?t.message:String(t);this.scanError.set(i),console.warn(m.scanFailed(i))}finally{this.scanning.set(!1)}}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{A as a,f as b,R as c,S as d,M as e};
|