@skill-map/cli 0.55.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.js +1075 -501
- package/dist/index.js +24 -4
- package/dist/kernel/index.d.ts +42 -3
- package/dist/kernel/index.js +24 -4
- package/dist/ui/chunk-4ITL7E6U.js +1 -0
- package/dist/ui/chunk-DWBJCNC7.js +2 -0
- package/dist/ui/{chunk-LREXXX7T.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-7YXBWYHE.js → main-PL3BEVQI.js} +3 -3
- package/dist/ui/{styles-HRJG67XW.css → styles-RHEEXRHQ.css} +1 -1
- package/package.json +2 -2
- package/dist/ui/chunk-CN6IOM67.js +0 -2
- package/dist/ui/chunk-HPKRDGLH.js +0 -123
- package/dist/ui/chunk-JXRIGHET.js +0 -552
- package/dist/ui/chunk-RGB5FBZL.js +0 -2205
- package/dist/ui/chunk-WFLPMCK4.js +0 -392
- package/dist/ui/chunk-XAM6VKXM.js +0 -1
package/dist/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]="2dc805c3-48a5-5cde-8fdd-5ba75f99be02")}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,
|
|
@@ -1266,7 +1270,7 @@ function runActionProjections(actions, nodes, links, emitter) {
|
|
|
1266
1270
|
}
|
|
1267
1271
|
|
|
1268
1272
|
// kernel/orchestrator/analyzers.ts
|
|
1269
|
-
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 = []) {
|
|
1270
1274
|
const issues = [...seedIssues];
|
|
1271
1275
|
const contributions = [];
|
|
1272
1276
|
const contributionErrors = [];
|
|
@@ -1343,6 +1347,10 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1343
1347
|
const emitted = await analyzer.evaluate({
|
|
1344
1348
|
nodes,
|
|
1345
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 ?? {},
|
|
1346
1354
|
orphanSidecars: analyzerOrphans,
|
|
1347
1355
|
sidecarRoots,
|
|
1348
1356
|
annotationContributions,
|
|
@@ -1356,6 +1364,7 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1356
1364
|
...referenceablePaths ? { referenceablePaths } : {},
|
|
1357
1365
|
...cwd ? { cwd } : {},
|
|
1358
1366
|
...reservedNodePaths ? { reservedNodePaths } : {},
|
|
1367
|
+
...brokenLinks ? { brokenLinks } : {},
|
|
1359
1368
|
...signals && signals.length > 0 ? { signals } : {},
|
|
1360
1369
|
emitContribution
|
|
1361
1370
|
});
|
|
@@ -1643,6 +1652,15 @@ function liftResolvedLinkConfidence(links, nodes, ctx) {
|
|
|
1643
1652
|
if (link.confidence < 1) applyResolution(link, indexes, ctx);
|
|
1644
1653
|
}
|
|
1645
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);
|
|
1661
|
+
}
|
|
1662
|
+
return broken;
|
|
1663
|
+
}
|
|
1646
1664
|
function applyResolution(link, indexes, ctx) {
|
|
1647
1665
|
const resolution = resolve5(link, indexes, ctx);
|
|
1648
1666
|
if (resolution === "none") {
|
|
@@ -3124,6 +3142,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3124
3142
|
walked.signals = resolved.resolvedSignals;
|
|
3125
3143
|
const postWalkCtx = buildPostWalkTransformCtx(exts.providers, walked.nodes, activeProviderId);
|
|
3126
3144
|
walked.internalLinks = applyPostWalkTransforms(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3145
|
+
const brokenLinks = collectBrokenLinks(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3127
3146
|
recomputeLinkCounts(walked.nodes, walked.internalLinks);
|
|
3128
3147
|
recomputeExternalRefsCount(walked.nodes, walked.externalLinks, walked.cachedPaths);
|
|
3129
3148
|
await dispatchExtractorCompleted(exts.extractors, emitter, hookDispatcher);
|
|
@@ -3145,6 +3164,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3145
3164
|
emitter,
|
|
3146
3165
|
hookDispatcher,
|
|
3147
3166
|
postWalkCtx.reservedNodePaths,
|
|
3167
|
+
brokenLinks,
|
|
3148
3168
|
walked.signals,
|
|
3149
3169
|
// Seed the accumulator with orchestrator-emitted frontmatter
|
|
3150
3170
|
// issues so the aggregate phase (`core/issue-counter`) counts
|
|
@@ -3746,4 +3766,4 @@ export {
|
|
|
3746
3766
|
runScanWithRenames
|
|
3747
3767
|
};
|
|
3748
3768
|
//# sourceMappingURL=index.js.map
|
|
3749
|
-
//# debugId=
|
|
3769
|
+
//# debugId=2dc805c3-48a5-5cde-8fdd-5ba75f99be02
|
package/dist/kernel/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type TSlotName = 'card.title.right' | 'card.subtitle.left' | 'card.footer.left'
|
|
|
7
7
|
* Closed enum of input-type names for plugin settings. Mirror of
|
|
8
8
|
* `spec/schemas/input-types.schema.json#/$defs/InputTypeName`.
|
|
9
9
|
*/
|
|
10
|
-
type TInputTypeName = 'string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list';
|
|
10
|
+
type TInputTypeName = 'string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'number' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list';
|
|
11
11
|
/**
|
|
12
12
|
* Closed severity palette aligned with PrimeNG `<p-tag>` / `<p-message>` severities. Used by counter, tag, alert, and icon slots for color/contrast hints. The UI maps each severity to a theme-aware tint; plugins do not pick raw colors.
|
|
13
13
|
*/
|
|
@@ -115,7 +115,7 @@ interface ActionPrompt {
|
|
|
115
115
|
/**
|
|
116
116
|
* Input-type id from the closed catalog. The UI renders the matching control before dispatch (`single-string`, `enum-pick` and `string-list` today; other types degrade to a graceful 'unsupported' notice).
|
|
117
117
|
*/
|
|
118
|
-
inputType: ('string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list') & string;
|
|
118
|
+
inputType: ('string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'number' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list') & string;
|
|
119
119
|
/**
|
|
120
120
|
* Key under which the collected value is placed in the dispatch `input` body.
|
|
121
121
|
*/
|
|
@@ -390,6 +390,13 @@ interface ISetting_Integer extends ISettingCommon {
|
|
|
390
390
|
max?: number;
|
|
391
391
|
step?: number;
|
|
392
392
|
}
|
|
393
|
+
interface ISetting_Number extends ISettingCommon {
|
|
394
|
+
type: 'number';
|
|
395
|
+
default?: number;
|
|
396
|
+
min?: number;
|
|
397
|
+
max?: number;
|
|
398
|
+
step?: number;
|
|
399
|
+
}
|
|
393
400
|
interface ISetting_EnumOption {
|
|
394
401
|
value: string;
|
|
395
402
|
label: string;
|
|
@@ -446,7 +453,7 @@ interface ISetting_KeyValueList extends ISettingCommon {
|
|
|
446
453
|
*
|
|
447
454
|
* Mirror of `input-types.schema.json#/$defs/ISettingDeclaration`.
|
|
448
455
|
*/
|
|
449
|
-
type TSettingDeclaration = ISetting_StringList | ISetting_SingleString | ISetting_BooleanFlag | ISetting_Integer | ISetting_EnumPick | ISetting_EnumMultipick | ISetting_PathGlob | ISetting_Regex | ISetting_Secret | ISetting_KeyValueList;
|
|
456
|
+
type TSettingDeclaration = ISetting_StringList | ISetting_SingleString | ISetting_BooleanFlag | ISetting_Integer | ISetting_Number | ISetting_EnumPick | ISetting_EnumMultipick | ISetting_PathGlob | ISetting_Regex | ISetting_Secret | ISetting_KeyValueList;
|
|
450
457
|
/**
|
|
451
458
|
* Runtime value type for a setting, derived from its declaration. The
|
|
452
459
|
* kernel exposes settings to extractors as `Record<string, TSettingValue>`
|
|
@@ -2933,6 +2940,12 @@ interface IAnalyzerOrphanSidecar {
|
|
|
2933
2940
|
interface IAnalyzerContext {
|
|
2934
2941
|
nodes: Node[];
|
|
2935
2942
|
links: Link[];
|
|
2943
|
+
/**
|
|
2944
|
+
* Resolved values of the analyzer's declared `settings`, populated
|
|
2945
|
+
* from project config + user overrides. Empty object when no settings
|
|
2946
|
+
* are declared.
|
|
2947
|
+
*/
|
|
2948
|
+
settings: Record<string, unknown>;
|
|
2936
2949
|
/**
|
|
2937
2950
|
* Step 9.6.2, orphaned sidecars discovered during the scan walk.
|
|
2938
2951
|
* Empty when sidecar discovery did not run (legacy callers) or
|
|
@@ -3024,6 +3037,20 @@ interface IAnalyzerContext {
|
|
|
3024
3037
|
* `runScan` sites that never wired the field through).
|
|
3025
3038
|
*/
|
|
3026
3039
|
reservedNodePaths?: ReadonlySet<string>;
|
|
3040
|
+
/**
|
|
3041
|
+
* Links the post-walk lift judged genuinely broken: target matches no
|
|
3042
|
+
* node `path` AND the stripped trigger matches no entry in the cross-
|
|
3043
|
+
* kind name index (`spec/architecture.md` §Provider · resolution
|
|
3044
|
+
* rules). Computed once per scan by the orchestrator from the same
|
|
3045
|
+
* `deriveNodeIdentifiers`-backed index the confidence-lift transform
|
|
3046
|
+
* uses, so a link that resolves only via a filename / dirname
|
|
3047
|
+
* identifier is NOT in the set. Membership is by object identity (the
|
|
3048
|
+
* orchestrator threads the SAME link objects). The single consumer is
|
|
3049
|
+
* `core/reference-broken`, which projects one issue per member (after
|
|
3050
|
+
* its `referenceablePaths` escape hatch). Absent for legacy callers
|
|
3051
|
+
* that never wired the field through, the rule then emits nothing.
|
|
3052
|
+
*/
|
|
3053
|
+
brokenLinks?: ReadonlySet<Link>;
|
|
3027
3054
|
/**
|
|
3028
3055
|
* Absolute path of the scan's project root (cwd of the invocation).
|
|
3029
3056
|
* Threaded into the analyzer pass so an analyzer that needs to
|
|
@@ -3285,6 +3312,12 @@ interface IFormatterContext {
|
|
|
3285
3312
|
nodes: Node[];
|
|
3286
3313
|
links: Link[];
|
|
3287
3314
|
issues: Issue[];
|
|
3315
|
+
/**
|
|
3316
|
+
* Resolved values of the formatter's declared `settings`, populated
|
|
3317
|
+
* from project config + user overrides. Empty object when no settings
|
|
3318
|
+
* are declared.
|
|
3319
|
+
*/
|
|
3320
|
+
settings: Record<string, unknown>;
|
|
3288
3321
|
/**
|
|
3289
3322
|
* Full persisted scan, when the caller has it on hand. Optional so
|
|
3290
3323
|
* formatters that only consume (nodes, links, issues) keep working
|
|
@@ -3388,6 +3421,12 @@ declare const HOOK_TRIGGERS: readonly THookTrigger[];
|
|
|
3388
3421
|
* Deterministic hooks SHOULD ignore the field.
|
|
3389
3422
|
*/
|
|
3390
3423
|
interface IHookContext {
|
|
3424
|
+
/**
|
|
3425
|
+
* Resolved values of the hook's declared `settings`, populated from
|
|
3426
|
+
* project config + user overrides. Empty object when no settings are
|
|
3427
|
+
* declared.
|
|
3428
|
+
*/
|
|
3429
|
+
settings: Record<string, unknown>;
|
|
3391
3430
|
/** The raw event the dispatcher matched. */
|
|
3392
3431
|
event: {
|
|
3393
3432
|
type: THookTrigger;
|
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,
|
|
@@ -1266,7 +1270,7 @@ function runActionProjections(actions, nodes, links, emitter) {
|
|
|
1266
1270
|
}
|
|
1267
1271
|
|
|
1268
1272
|
// kernel/orchestrator/analyzers.ts
|
|
1269
|
-
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 = []) {
|
|
1270
1274
|
const issues = [...seedIssues];
|
|
1271
1275
|
const contributions = [];
|
|
1272
1276
|
const contributionErrors = [];
|
|
@@ -1343,6 +1347,10 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1343
1347
|
const emitted = await analyzer.evaluate({
|
|
1344
1348
|
nodes,
|
|
1345
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 ?? {},
|
|
1346
1354
|
orphanSidecars: analyzerOrphans,
|
|
1347
1355
|
sidecarRoots,
|
|
1348
1356
|
annotationContributions,
|
|
@@ -1356,6 +1364,7 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
|
|
|
1356
1364
|
...referenceablePaths ? { referenceablePaths } : {},
|
|
1357
1365
|
...cwd ? { cwd } : {},
|
|
1358
1366
|
...reservedNodePaths ? { reservedNodePaths } : {},
|
|
1367
|
+
...brokenLinks ? { brokenLinks } : {},
|
|
1359
1368
|
...signals && signals.length > 0 ? { signals } : {},
|
|
1360
1369
|
emitContribution
|
|
1361
1370
|
});
|
|
@@ -1643,6 +1652,15 @@ function liftResolvedLinkConfidence(links, nodes, ctx) {
|
|
|
1643
1652
|
if (link.confidence < 1) applyResolution(link, indexes, ctx);
|
|
1644
1653
|
}
|
|
1645
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);
|
|
1661
|
+
}
|
|
1662
|
+
return broken;
|
|
1663
|
+
}
|
|
1646
1664
|
function applyResolution(link, indexes, ctx) {
|
|
1647
1665
|
const resolution = resolve5(link, indexes, ctx);
|
|
1648
1666
|
if (resolution === "none") {
|
|
@@ -3124,6 +3142,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3124
3142
|
walked.signals = resolved.resolvedSignals;
|
|
3125
3143
|
const postWalkCtx = buildPostWalkTransformCtx(exts.providers, walked.nodes, activeProviderId);
|
|
3126
3144
|
walked.internalLinks = applyPostWalkTransforms(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3145
|
+
const brokenLinks = collectBrokenLinks(walked.internalLinks, walked.nodes, postWalkCtx);
|
|
3127
3146
|
recomputeLinkCounts(walked.nodes, walked.internalLinks);
|
|
3128
3147
|
recomputeExternalRefsCount(walked.nodes, walked.externalLinks, walked.cachedPaths);
|
|
3129
3148
|
await dispatchExtractorCompleted(exts.extractors, emitter, hookDispatcher);
|
|
@@ -3145,6 +3164,7 @@ async function runScanInternal(_kernel, options) {
|
|
|
3145
3164
|
emitter,
|
|
3146
3165
|
hookDispatcher,
|
|
3147
3166
|
postWalkCtx.reservedNodePaths,
|
|
3167
|
+
brokenLinks,
|
|
3148
3168
|
walked.signals,
|
|
3149
3169
|
// Seed the accumulator with orchestrator-emitted frontmatter
|
|
3150
3170
|
// issues so the aggregate phase (`core/issue-counter`) counts
|
|
@@ -3746,4 +3766,4 @@ export {
|
|
|
3746
3766
|
runScanWithRenames
|
|
3747
3767
|
};
|
|
3748
3768
|
//# sourceMappingURL=index.js.map
|
|
3749
|
-
//# debugId=
|
|
3769
|
+
//# debugId=bed984e8-cc93-51f3-94cd-c0789fe21577
|
|
@@ -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-XAM6VKXM.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};
|