@skill-map/cli 0.62.1 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/tutorial/sm-tutorial/SKILL.md +1 -1
- package/dist/cli/tutorial/sm-tutorial/references/_core.md +8 -8
- package/dist/cli/tutorial/sm-tutorial/references/part-authoring.md +22 -11
- package/dist/cli/tutorial/sm-tutorial/references/part-project-kickoff.md +2 -2
- package/dist/cli/tutorial/sm-tutorial/references/part-settings.md +2 -2
- package/dist/cli.js +184 -204
- package/dist/index.js +20 -13
- package/dist/kernel/index.d.ts +14 -19
- package/dist/kernel/index.js +20 -13
- package/dist/ui/{chunk-ECKRC6XD.js → chunk-JEWVC3KW.js} +1 -1
- package/dist/ui/chunk-PEBQMYAG.js +1 -0
- package/dist/ui/chunk-PNEFOABG.js +3 -0
- package/dist/ui/{chunk-CM4YB7L4.js → chunk-SR2EXRNN.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-CBZBFVUW.js → main-BCFZVCQW.js} +3 -3
- package/package.json +2 -2
- package/dist/ui/chunk-HLHEDNSJ.js +0 -3
- package/dist/ui/chunk-NC3HOVDG.js +0 -1
- /package/dist/ui/{chunk-IYC5ZW4L.js → chunk-WDCUTF3U.js} +0 -0
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]="33aa5dcf-6bc0-53c8-8982-afd24237bdae")}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.63.0",
|
|
106
106
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
type: "module",
|
|
@@ -787,6 +787,17 @@ var ORCHESTRATOR_TEXTS = {
|
|
|
787
787
|
// kernel/scan/detect-providers.ts
|
|
788
788
|
import { existsSync as existsSync3 } from "fs";
|
|
789
789
|
import { join as join3 } from "path";
|
|
790
|
+
|
|
791
|
+
// kernel/config/plugin-resolver.ts
|
|
792
|
+
var SHIPS_DISABLED = /* @__PURE__ */ new Set([
|
|
793
|
+
"experimental",
|
|
794
|
+
"deprecated"
|
|
795
|
+
]);
|
|
796
|
+
function installedDefaultEnabled(stability) {
|
|
797
|
+
return stability === void 0 || !SHIPS_DISABLED.has(stability);
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
// kernel/scan/detect-providers.ts
|
|
790
801
|
function detectProvidersFromFilesystem(cwd, providers) {
|
|
791
802
|
const seen = /* @__PURE__ */ new Set();
|
|
792
803
|
const out = [];
|
|
@@ -799,7 +810,7 @@ function detectProvidersFromFilesystem(cwd, providers) {
|
|
|
799
810
|
return out;
|
|
800
811
|
}
|
|
801
812
|
function isDetectableUnderCwd(cwd, provider) {
|
|
802
|
-
if (provider.
|
|
813
|
+
if (!installedDefaultEnabled(provider.stability)) return false;
|
|
803
814
|
const markers = provider.detect?.markers;
|
|
804
815
|
if (!markers || markers.length === 0) return false;
|
|
805
816
|
return markers.some((marker) => existsSync3(join3(cwd, marker)));
|
|
@@ -1548,8 +1559,7 @@ function matchesKindPrecondition(ex, kind) {
|
|
|
1548
1559
|
function matchesProviderPrecondition(ex, activeProvider) {
|
|
1549
1560
|
const providers = ex.precondition?.provider;
|
|
1550
1561
|
if (!providers || providers.length === 0) return true;
|
|
1551
|
-
|
|
1552
|
-
return providers.includes(activeProvider);
|
|
1562
|
+
return activeProvider !== null && providers.includes(activeProvider);
|
|
1553
1563
|
}
|
|
1554
1564
|
function splitLegacy(applicableExtractors, applicableQualifiedIds, nodeHashCacheEligible) {
|
|
1555
1565
|
const cachedQualifiedIds = /* @__PURE__ */ new Set();
|
|
@@ -3127,7 +3137,6 @@ function buildPriorMtimes(opts) {
|
|
|
3127
3137
|
}
|
|
3128
3138
|
function providerParticipates(provider, activeProvider) {
|
|
3129
3139
|
if (!provider.gatedByActiveLens) return true;
|
|
3130
|
-
if (activeProvider === null) return true;
|
|
3131
3140
|
return provider.id === activeProvider;
|
|
3132
3141
|
}
|
|
3133
3142
|
function createWalkAccumulators() {
|
|
@@ -3549,8 +3558,7 @@ function buildPostWalkTransformCtx(providers, nodes, activeProvider) {
|
|
|
3549
3558
|
const reservedNodePaths = buildReservedNodePaths(
|
|
3550
3559
|
nodes,
|
|
3551
3560
|
kindRegistry,
|
|
3552
|
-
reservedNamesByProviderKind
|
|
3553
|
-
activeProvider
|
|
3561
|
+
reservedNamesByProviderKind
|
|
3554
3562
|
);
|
|
3555
3563
|
return { kindRegistry, providerResolution, activeProvider, reservedNodePaths };
|
|
3556
3564
|
}
|
|
@@ -3581,15 +3589,14 @@ function indexReservedNames(provider, out) {
|
|
|
3581
3589
|
}
|
|
3582
3590
|
}
|
|
3583
3591
|
}
|
|
3584
|
-
function buildReservedNodePaths(nodes, kindRegistry, reservedNamesByProviderKind
|
|
3592
|
+
function buildReservedNodePaths(nodes, kindRegistry, reservedNamesByProviderKind) {
|
|
3585
3593
|
const out = /* @__PURE__ */ new Set();
|
|
3586
3594
|
for (const node of nodes) {
|
|
3587
3595
|
const selfKey = `${node.provider}/${node.kind}`;
|
|
3588
3596
|
const selfReserved = reservedNamesByProviderKind.get(selfKey);
|
|
3589
|
-
|
|
3590
|
-
if (!hasEntries(selfReserved) && !hasEntries(lensReserved)) continue;
|
|
3597
|
+
if (!hasEntries(selfReserved)) continue;
|
|
3591
3598
|
const ids = deriveNodeIdentifiers(node, kindRegistry.get(selfKey));
|
|
3592
|
-
if (ids.some((id) => selfReserved?.has(id) === true
|
|
3599
|
+
if (ids.some((id) => selfReserved?.has(id) === true)) {
|
|
3593
3600
|
out.add(node.path);
|
|
3594
3601
|
}
|
|
3595
3602
|
}
|
|
@@ -4123,4 +4130,4 @@ export {
|
|
|
4123
4130
|
runScanWithRenames
|
|
4124
4131
|
};
|
|
4125
4132
|
//# sourceMappingURL=index.js.map
|
|
4126
|
-
//# debugId=
|
|
4133
|
+
//# debugId=33aa5dcf-6bc0-53c8-8982-afd24237bdae
|
package/dist/kernel/index.d.ts
CHANGED
|
@@ -1833,7 +1833,10 @@ interface IIssueIncidenceCount {
|
|
|
1833
1833
|
* graph projection the BFF `/api/branch` endpoint returns. `nodes` is
|
|
1834
1834
|
* the first `LIMIT` nodes of the union (every requested prefix's
|
|
1835
1835
|
* subtree) in stable path order (`ORDER BY path`); `links` carries only
|
|
1836
|
-
* edges whose source AND target
|
|
1836
|
+
* edges whose source AND RESOLVED target (`resolvedTarget`, else the raw
|
|
1837
|
+
* `target` for path-style links) are both in that node set, so a
|
|
1838
|
+
* trigger-style `invokes` / `mentions` edge that resolves to a rendered
|
|
1839
|
+
* node is kept and a genuinely-broken link is dropped; `issues`
|
|
1837
1840
|
* carries only those whose `nodeIds` intersect it. `total` is the count
|
|
1838
1841
|
* of nodes in the union BEFORE the cap (so the route can compute
|
|
1839
1842
|
* `truncated`). `paths` echoes the (de-duped) requested prefixes; the
|
|
@@ -2558,17 +2561,6 @@ interface IProviderUi {
|
|
|
2558
2561
|
* topbar lens chip; only the per-card badge is suppressed.
|
|
2559
2562
|
*/
|
|
2560
2563
|
hideChip?: boolean;
|
|
2561
|
-
/**
|
|
2562
|
-
* When `true`, this Provider is registered but NOT yet selectable as
|
|
2563
|
-
* the active lens. Auto-detect skips it (`detectProvidersFromFilesystem`),
|
|
2564
|
-
* the BFF drops it from the `selectable` set, and the UI greys it with
|
|
2565
|
-
* a `(coming soon)` suffix. It still ships in `providerRegistry` so
|
|
2566
|
-
* node chips render. Mirrors
|
|
2567
|
-
* `spec/schemas/extensions/provider.schema.json#/properties/presentation/properties/comingSoon`.
|
|
2568
|
-
* Distinct from `hideChip` and from the operator toggle
|
|
2569
|
-
* `plugins[<id>].enabled = false`. Defaults to `false` (selectable).
|
|
2570
|
-
*/
|
|
2571
|
-
comingSoon?: boolean;
|
|
2572
2564
|
}
|
|
2573
2565
|
/**
|
|
2574
2566
|
* Auto-detection markers for the active-provider lens. The lens resolver
|
|
@@ -2791,10 +2783,10 @@ interface IProvider extends IExtensionBase {
|
|
|
2791
2783
|
* this `false`: their territory is consumed by every vendor and they
|
|
2792
2784
|
* MUST run on every scan, regardless of the active lens.
|
|
2793
2785
|
*
|
|
2794
|
-
*
|
|
2795
|
-
*
|
|
2796
|
-
*
|
|
2797
|
-
*
|
|
2786
|
+
* There is no unlensed state: a project with no provider markers
|
|
2787
|
+
* resolves to the universal `core/markdown` lens (id `markdown`),
|
|
2788
|
+
* under which every gated Provider stays off (only the universal
|
|
2789
|
+
* Providers run). The resolver never yields a null lens.
|
|
2798
2790
|
*
|
|
2799
2791
|
* Default `undefined` ≡ `false` ≡ universal. The field affects
|
|
2800
2792
|
* classification ONLY; extractors continue to filter via their own
|
|
@@ -4181,14 +4173,17 @@ interface RunScanOptions {
|
|
|
4181
4173
|
* - `string`: explicit lens. Provider-specific extractors run only
|
|
4182
4174
|
* when their declared `precondition.provider` includes BOTH this
|
|
4183
4175
|
* value AND the node's provider.
|
|
4184
|
-
* - `null`:
|
|
4185
|
-
* unconditionally skipped
|
|
4176
|
+
* - `null`: "no lens" for bare callers. Provider-specific extractors
|
|
4177
|
+
* are unconditionally skipped, the same shape as the universal
|
|
4178
|
+
* markdown lens. Production never reaches this: the resolver in
|
|
4179
|
+
* `core/runtime` always yields a concrete lens (a vendor id, or
|
|
4180
|
+
* the markdown id when no marker is present).
|
|
4186
4181
|
* - `undefined`: kernel auto-detects from `options.roots[0]` using
|
|
4187
4182
|
* filesystem markers (`.claude/`, `.codex/`, `AGENTS.md`).
|
|
4188
4183
|
* Convenient default for out-of-band callers
|
|
4189
4184
|
* (integration tests, embedders) that don't thread a settings
|
|
4190
4185
|
* reader. Production callers (scan-runner) resolve upstream and
|
|
4191
|
-
* pass
|
|
4186
|
+
* pass a concrete lens string explicitly, never `undefined`.
|
|
4192
4187
|
*/
|
|
4193
4188
|
activeProvider?: string | null;
|
|
4194
4189
|
/**
|
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]="1cbc1ad0-b202-5d2a-a4b2-7498564c5261")}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.63.0",
|
|
106
106
|
description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
type: "module",
|
|
@@ -787,6 +787,17 @@ var ORCHESTRATOR_TEXTS = {
|
|
|
787
787
|
// kernel/scan/detect-providers.ts
|
|
788
788
|
import { existsSync as existsSync3 } from "fs";
|
|
789
789
|
import { join as join3 } from "path";
|
|
790
|
+
|
|
791
|
+
// kernel/config/plugin-resolver.ts
|
|
792
|
+
var SHIPS_DISABLED = /* @__PURE__ */ new Set([
|
|
793
|
+
"experimental",
|
|
794
|
+
"deprecated"
|
|
795
|
+
]);
|
|
796
|
+
function installedDefaultEnabled(stability) {
|
|
797
|
+
return stability === void 0 || !SHIPS_DISABLED.has(stability);
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
// kernel/scan/detect-providers.ts
|
|
790
801
|
function detectProvidersFromFilesystem(cwd, providers) {
|
|
791
802
|
const seen = /* @__PURE__ */ new Set();
|
|
792
803
|
const out = [];
|
|
@@ -799,7 +810,7 @@ function detectProvidersFromFilesystem(cwd, providers) {
|
|
|
799
810
|
return out;
|
|
800
811
|
}
|
|
801
812
|
function isDetectableUnderCwd(cwd, provider) {
|
|
802
|
-
if (provider.
|
|
813
|
+
if (!installedDefaultEnabled(provider.stability)) return false;
|
|
803
814
|
const markers = provider.detect?.markers;
|
|
804
815
|
if (!markers || markers.length === 0) return false;
|
|
805
816
|
return markers.some((marker) => existsSync3(join3(cwd, marker)));
|
|
@@ -1548,8 +1559,7 @@ function matchesKindPrecondition(ex, kind) {
|
|
|
1548
1559
|
function matchesProviderPrecondition(ex, activeProvider) {
|
|
1549
1560
|
const providers = ex.precondition?.provider;
|
|
1550
1561
|
if (!providers || providers.length === 0) return true;
|
|
1551
|
-
|
|
1552
|
-
return providers.includes(activeProvider);
|
|
1562
|
+
return activeProvider !== null && providers.includes(activeProvider);
|
|
1553
1563
|
}
|
|
1554
1564
|
function splitLegacy(applicableExtractors, applicableQualifiedIds, nodeHashCacheEligible) {
|
|
1555
1565
|
const cachedQualifiedIds = /* @__PURE__ */ new Set();
|
|
@@ -3127,7 +3137,6 @@ function buildPriorMtimes(opts) {
|
|
|
3127
3137
|
}
|
|
3128
3138
|
function providerParticipates(provider, activeProvider) {
|
|
3129
3139
|
if (!provider.gatedByActiveLens) return true;
|
|
3130
|
-
if (activeProvider === null) return true;
|
|
3131
3140
|
return provider.id === activeProvider;
|
|
3132
3141
|
}
|
|
3133
3142
|
function createWalkAccumulators() {
|
|
@@ -3549,8 +3558,7 @@ function buildPostWalkTransformCtx(providers, nodes, activeProvider) {
|
|
|
3549
3558
|
const reservedNodePaths = buildReservedNodePaths(
|
|
3550
3559
|
nodes,
|
|
3551
3560
|
kindRegistry,
|
|
3552
|
-
reservedNamesByProviderKind
|
|
3553
|
-
activeProvider
|
|
3561
|
+
reservedNamesByProviderKind
|
|
3554
3562
|
);
|
|
3555
3563
|
return { kindRegistry, providerResolution, activeProvider, reservedNodePaths };
|
|
3556
3564
|
}
|
|
@@ -3581,15 +3589,14 @@ function indexReservedNames(provider, out) {
|
|
|
3581
3589
|
}
|
|
3582
3590
|
}
|
|
3583
3591
|
}
|
|
3584
|
-
function buildReservedNodePaths(nodes, kindRegistry, reservedNamesByProviderKind
|
|
3592
|
+
function buildReservedNodePaths(nodes, kindRegistry, reservedNamesByProviderKind) {
|
|
3585
3593
|
const out = /* @__PURE__ */ new Set();
|
|
3586
3594
|
for (const node of nodes) {
|
|
3587
3595
|
const selfKey = `${node.provider}/${node.kind}`;
|
|
3588
3596
|
const selfReserved = reservedNamesByProviderKind.get(selfKey);
|
|
3589
|
-
|
|
3590
|
-
if (!hasEntries(selfReserved) && !hasEntries(lensReserved)) continue;
|
|
3597
|
+
if (!hasEntries(selfReserved)) continue;
|
|
3591
3598
|
const ids = deriveNodeIdentifiers(node, kindRegistry.get(selfKey));
|
|
3592
|
-
if (ids.some((id) => selfReserved?.has(id) === true
|
|
3599
|
+
if (ids.some((id) => selfReserved?.has(id) === true)) {
|
|
3593
3600
|
out.add(node.path);
|
|
3594
3601
|
}
|
|
3595
3602
|
}
|
|
@@ -4123,4 +4130,4 @@ export {
|
|
|
4123
4130
|
runScanWithRenames
|
|
4124
4131
|
};
|
|
4125
4132
|
//# sourceMappingURL=index.js.map
|
|
4126
|
-
//# debugId=
|
|
4133
|
+
//# debugId=1cbc1ad0-b202-5d2a-a4b2-7498564c5261
|