@skillsmith/core 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/config/device-identity.d.ts +113 -0
- package/dist/src/config/device-identity.d.ts.map +1 -0
- package/dist/src/config/device-identity.js +171 -0
- package/dist/src/config/device-identity.js.map +1 -0
- package/dist/src/config/device-identity.test.d.ts +10 -0
- package/dist/src/config/device-identity.test.d.ts.map +1 -0
- package/dist/src/config/device-identity.test.js +213 -0
- package/dist/src/config/device-identity.test.js.map +1 -0
- package/dist/src/config/index.d.ts +9 -0
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/exports/services.d.ts +1 -1
- package/dist/src/exports/services.d.ts.map +1 -1
- package/dist/src/exports/services.js +5 -1
- package/dist/src/exports/services.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/install/index.d.ts +1 -1
- package/dist/src/install/index.d.ts.map +1 -1
- package/dist/src/install/index.js +1 -1
- package/dist/src/install/index.js.map +1 -1
- package/dist/src/install/paths.d.ts +16 -0
- package/dist/src/install/paths.d.ts.map +1 -1
- package/dist/src/install/paths.js +22 -0
- package/dist/src/install/paths.js.map +1 -1
- package/dist/src/install/paths.test.d.ts +2 -0
- package/dist/src/install/paths.test.d.ts.map +1 -0
- package/dist/src/install/paths.test.js +61 -0
- package/dist/src/install/paths.test.js.map +1 -0
- package/dist/src/provenance/SourceRecoveryService.d.ts +17 -4
- package/dist/src/provenance/SourceRecoveryService.d.ts.map +1 -1
- package/dist/src/provenance/SourceRecoveryService.js +37 -10
- package/dist/src/provenance/SourceRecoveryService.js.map +1 -1
- package/dist/src/provenance/index.d.ts +1 -0
- package/dist/src/provenance/index.d.ts.map +1 -1
- package/dist/src/provenance/index.js +1 -0
- package/dist/src/provenance/index.js.map +1 -1
- package/dist/src/provenance/name-variants.d.ts +32 -0
- package/dist/src/provenance/name-variants.d.ts.map +1 -0
- package/dist/src/provenance/name-variants.js +59 -0
- package/dist/src/provenance/name-variants.js.map +1 -0
- package/dist/src/provenance/types.d.ts +12 -0
- package/dist/src/provenance/types.d.ts.map +1 -1
- package/dist/src/provenance/types.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.scanners.d.ts +10 -0
- package/dist/src/security/scanner/SecurityScanner.scanners.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.scanners.js +68 -1
- package/dist/src/security/scanner/SecurityScanner.scanners.js.map +1 -1
- package/dist/src/sync/index.d.ts +6 -0
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/index.js +8 -0
- package/dist/src/sync/index.js.map +1 -1
- package/dist/src/sync/inventory-builder.d.ts +21 -0
- package/dist/src/sync/inventory-builder.d.ts.map +1 -0
- package/dist/src/sync/inventory-builder.js +26 -0
- package/dist/src/sync/inventory-builder.js.map +1 -0
- package/dist/src/sync/inventory-client.d.ts +64 -0
- package/dist/src/sync/inventory-client.d.ts.map +1 -0
- package/dist/src/sync/inventory-client.js +150 -0
- package/dist/src/sync/inventory-client.js.map +1 -0
- package/dist/src/sync/inventory-client.test.d.ts +14 -0
- package/dist/src/sync/inventory-client.test.d.ts.map +1 -0
- package/dist/src/sync/inventory-client.test.js +146 -0
- package/dist/src/sync/inventory-client.test.js.map +1 -0
- package/dist/src/sync/inventory-collector.d.ts +35 -0
- package/dist/src/sync/inventory-collector.d.ts.map +1 -0
- package/dist/src/sync/inventory-collector.js +149 -0
- package/dist/src/sync/inventory-collector.js.map +1 -0
- package/dist/src/sync/inventory-collector.test.d.ts +14 -0
- package/dist/src/sync/inventory-collector.test.d.ts.map +1 -0
- package/dist/src/sync/inventory-collector.test.js +107 -0
- package/dist/src/sync/inventory-collector.test.js.map +1 -0
- package/dist/src/sync/inventory-device.d.ts +36 -0
- package/dist/src/sync/inventory-device.d.ts.map +1 -0
- package/dist/src/sync/inventory-device.js +58 -0
- package/dist/src/sync/inventory-device.js.map +1 -0
- package/dist/src/sync/inventory-push.d.ts +45 -0
- package/dist/src/sync/inventory-push.d.ts.map +1 -0
- package/dist/src/sync/inventory-push.js +62 -0
- package/dist/src/sync/inventory-push.js.map +1 -0
- package/dist/src/sync/inventory-push.test.d.ts +16 -0
- package/dist/src/sync/inventory-push.test.d.ts.map +1 -0
- package/dist/src/sync/inventory-push.test.js +104 -0
- package/dist/src/sync/inventory-push.test.js.map +1 -0
- package/dist/src/sync/inventory-types.d.ts +101 -0
- package/dist/src/sync/inventory-types.d.ts.map +1 -0
- package/dist/src/sync/inventory-types.js +42 -0
- package/dist/src/sync/inventory-types.js.map +1 -0
- package/dist/tests/provenance/SourceRecoveryService.test.js +73 -0
- package/dist/tests/provenance/SourceRecoveryService.test.js.map +1 -1
- package/dist/tests/provenance/backfill.test.js +18 -0
- package/dist/tests/provenance/backfill.test.js.map +1 -1
- package/dist/tests/provenance/name-variants.test.d.ts +2 -0
- package/dist/tests/provenance/name-variants.test.d.ts.map +1 -0
- package/dist/tests/provenance/name-variants.test.js +51 -0
- package/dist/tests/provenance/name-variants.test.js.map +1 -0
- package/dist/tests/security/pii-detection.test.js +107 -0
- package/dist/tests/security/pii-detection.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/exports/services.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,+EAA+E;AAC/E,qEAAqE;AACrE,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,GAQlB,MAAM,iCAAiC,CAAA;AAExC,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E,OAAO,EACL,YAAY,EACZ,mBAAmB,GAMpB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,cAAc,EACd,oBAAoB,GAMrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GAId,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,qBAAqB,EACrB,cAAc,GAIf,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GAKxB,MAAM,2BAA2B,CAAA;AAElC,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAc5B,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAYhE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AA2B7B,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAE5B,yEAAyE;AACzE,oEAAoE;AACpE,4EAA4E;AAE5E,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAQpF,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAWjG,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,GAQjB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,OAAO,EACL,YAAY,EACZ,eAAe,GAQhB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAWzB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAOpB,MAAM,wBAAwB,CAAA;AAE/B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/exports/services.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAE5D,+EAA+E;AAC/E,qEAAqE;AACrE,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,GAQlB,MAAM,iCAAiC,CAAA;AAExC,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E,OAAO,EACL,YAAY,EACZ,mBAAmB,GAMpB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,cAAc,EACd,oBAAoB,GAMrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GAId,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,qBAAqB,EACrB,cAAc,GAIf,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GAKxB,MAAM,2BAA2B,CAAA;AAElC,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAc5B,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAYhE,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AA2B7B,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAE5B,yEAAyE;AACzE,oEAAoE;AACpE,4EAA4E;AAE5E,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAQpF,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAWjG,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EACL,gBAAgB,GAQjB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,OAAO,EACL,YAAY,EACZ,eAAe,GAQhB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GAWzB,MAAM,sBAAsB,CAAA;AAE7B,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAOpB,MAAM,wBAAwB,CAAA;AAE/B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB;AAYnB,sDAAsD;AACtD,gBAAgB,EAChB,yBAAyB;AAMzB,kEAAkE;AAClE,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GAIrB,MAAM,kBAAkB,CAAA;AAEzB,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E,OAAO,EACL,oBAAoB,GAGrB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iCAAiC,CAAA;AAE1F,+EAA+E;AAC/E,sEAAsE;AACtE,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,4DAA4D;AAC5D,EAAE;AACF,8EAA8E;AAC9E,oFAAoF;AACpF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAE3E,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E,OAAO,EACL,wBAAwB,GAEzB,MAAM,2CAA2C,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EACL,0BAA0B,IAAI,kCAAkC,GAgBjE,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,4CAA4C,CAAA"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @skillsmith/core - Core functionality for skill discovery
|
|
3
3
|
*/
|
|
4
|
-
export declare const VERSION = "0.
|
|
4
|
+
export declare const VERSION = "0.9.0";
|
|
5
5
|
export * from './exports/services.js';
|
|
6
6
|
export * from './exports/repositories.js';
|
|
7
7
|
export { createDatabaseSync, createDatabaseAsync } from './db/createDatabase.js';
|
|
@@ -34,6 +34,7 @@ export type { ISourceAdapter, SourceType, SourceConfig, RateLimitConfig as Sourc
|
|
|
34
34
|
export { loadConfig, saveConfig, getApiKey, getApiBaseUrl, getConfigDir, getConfigPath, ensureConfigDir, isDebugEnabled, isTelemetryEnabled, isValidApiKeyFormat, storeApiKey, clearApiKey, getAuthStatus, type SkillsmithConfig, } from './config/index.js';
|
|
35
35
|
export { storeCredentials, loadCredentials, refreshAccessToken, type TokenCredentials, } from './config/token-credentials.js';
|
|
36
36
|
export { tryRefreshToken, loadStoredAccessToken } from './api/client.token-refresh.js';
|
|
37
|
+
export { getDeviceId, getOrCreateDeviceId, setDeviceLabel, forgetDevice, isInventorySyncDisabledLocally, getLastInventoryPushAt, recordInventoryPush, shouldAutoPush, } from './config/device-identity.js';
|
|
37
38
|
export { checkForUpdates, formatUpdateNotification, type VersionCheckResult, } from './utils/version-check.js';
|
|
38
39
|
export { parseRepoUrl, isGitHubUrl, type ParsedRepoUrl } from './utils/github-url.js';
|
|
39
40
|
export { safeWriteFile, SymlinkError, HardlinkError } from './utils/safe-fs.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAA;AAO9B,cAAc,uBAAuB,CAAA;AAGrC,cAAc,2BAA2B,CAAA;AAMzC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAGnF,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG7D,cAAc,oBAAoB,CAAA;AAOlC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,eAAe,IAAI,iBAAiB,EACpC,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,aAAa,EAEb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAEf,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EAEvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EAEnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,GACb,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAG/F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGtF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,YAAY,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,IAAI,qBAAqB,EACxC,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,mBAAmB,IAAI,yBAAyB,EAChD,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAGtF,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAG/E,cAAc,uBAAuB,CAAA;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAGzE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,KAAK,SAAS,EACd,KAAK,IAAI,IAAI,aAAa,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @skillsmith/core - Core functionality for skill discovery
|
|
3
3
|
*/
|
|
4
4
|
// Version
|
|
5
|
-
export const VERSION = '0.
|
|
5
|
+
export const VERSION = '0.9.0';
|
|
6
6
|
// ============================================================================
|
|
7
7
|
// Grouped Exports from Barrel Files
|
|
8
8
|
// ============================================================================
|
|
@@ -72,6 +72,8 @@ export { loadConfig, saveConfig, getApiKey, getApiBaseUrl, getConfigDir, getConf
|
|
|
72
72
|
// SMI-4402: JWT token credentials (device-code OAuth flow)
|
|
73
73
|
export { storeCredentials, loadCredentials, refreshAccessToken, } from './config/token-credentials.js';
|
|
74
74
|
export { tryRefreshToken, loadStoredAccessToken } from './api/client.token-refresh.js';
|
|
75
|
+
// SMI-5391: Cross-harness inventory device identity + local consent/throttle gate
|
|
76
|
+
export { getDeviceId, getOrCreateDeviceId, setDeviceLabel, forgetDevice, isInventorySyncDisabledLocally, getLastInventoryPushAt, recordInventoryPush, shouldAutoPush, } from './config/device-identity.js';
|
|
75
77
|
// Version Check (SMI-1952)
|
|
76
78
|
export { checkForUpdates, formatUpdateNotification, } from './utils/version-check.js';
|
|
77
79
|
// GitHub URL Parsing (SMI-2171)
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @skillsmith/core/install
|
|
11
11
|
*/
|
|
12
|
-
export { CANONICAL_CLIENT, CLIENT_IDS, CLIENT_NATIVE_PATHS, assertClientId, getCanonicalInstallPath, getInstallPath, resolveClientId, resolveClientPath, } from './paths.js';
|
|
12
|
+
export { CANONICAL_CLIENT, CLIENT_IDS, CLIENT_NATIVE_PATHS, assertClientId, enumerateHarnessPresence, getCanonicalInstallPath, getInstallPath, resolveClientId, resolveClientPath, } from './paths.js';
|
|
13
13
|
export type { ClientId } from './paths.js';
|
|
14
14
|
export { addLink, getDefaultFromClient, getLinkManifestPath, listLinks, loadManifest, removeLinks, saveManifest, } from './fan-out.js';
|
|
15
15
|
export type { AddLinkOptions, AddLinkResult, LinkKind, LinkManifest, LinkRecord, } from './fan-out.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/install/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/install/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAA"}
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @skillsmith/core/install
|
|
11
11
|
*/
|
|
12
|
-
export { CANONICAL_CLIENT, CLIENT_IDS, CLIENT_NATIVE_PATHS, assertClientId, getCanonicalInstallPath, getInstallPath, resolveClientId, resolveClientPath, } from './paths.js';
|
|
12
|
+
export { CANONICAL_CLIENT, CLIENT_IDS, CLIENT_NATIVE_PATHS, assertClientId, enumerateHarnessPresence, getCanonicalInstallPath, getInstallPath, resolveClientId, resolveClientPath, } from './paths.js';
|
|
13
13
|
export { addLink, getDefaultFromClient, getLinkManifestPath, listLinks, loadManifest, removeLinks, saveManifest, } from './fan-out.js';
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAA"}
|
|
@@ -13,4 +13,20 @@ export declare function resolveClientId(raw: string | undefined): ClientId;
|
|
|
13
13
|
* value — used by the MCP server to pick `~/.cursor/skills/` etc.
|
|
14
14
|
*/
|
|
15
15
|
export declare function resolveClientPath(override?: string | undefined): string;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the filesystem presence status of every known harness.
|
|
18
|
+
*
|
|
19
|
+
* A harness is considered "present" when its skill directory exists on disk.
|
|
20
|
+
* This lets the cross-harness inventory (SMI-5390) report a harness as
|
|
21
|
+
* "installed but zero skills" rather than omitting it entirely.
|
|
22
|
+
*
|
|
23
|
+
* Synchronous and O(CLIENT_IDS.length) — safe to call on the startup path.
|
|
24
|
+
*
|
|
25
|
+
* @see SMI-5390
|
|
26
|
+
*/
|
|
27
|
+
export declare function enumerateHarnessPresence(): Array<{
|
|
28
|
+
harness: ClientId;
|
|
29
|
+
present: boolean;
|
|
30
|
+
path: string;
|
|
31
|
+
}>;
|
|
16
32
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/install/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/install/paths.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEnF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAMxD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,QAAwB,CAAA;AAEvD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,QAAQ,CAM7C,CAAA;AAEF,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,cAAc,CAAC,MAAM,GAAE,QAA2B,GAAG,MAAM,CAE1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAOxE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,IAAI,KAAK,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CASD"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module @skillsmith/core/install/paths
|
|
10
10
|
*/
|
|
11
|
+
import { existsSync } from 'node:fs';
|
|
11
12
|
import { homedir } from 'node:os';
|
|
12
13
|
import { join } from 'node:path';
|
|
13
14
|
export const CLIENT_NATIVE_PATHS = {
|
|
@@ -53,4 +54,25 @@ export function resolveClientPath(override) {
|
|
|
53
54
|
const raw = override !== undefined ? override : process.env['SKILLSMITH_CLIENT'];
|
|
54
55
|
return getInstallPath(resolveClientId(raw));
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Returns the filesystem presence status of every known harness.
|
|
59
|
+
*
|
|
60
|
+
* A harness is considered "present" when its skill directory exists on disk.
|
|
61
|
+
* This lets the cross-harness inventory (SMI-5390) report a harness as
|
|
62
|
+
* "installed but zero skills" rather than omitting it entirely.
|
|
63
|
+
*
|
|
64
|
+
* Synchronous and O(CLIENT_IDS.length) — safe to call on the startup path.
|
|
65
|
+
*
|
|
66
|
+
* @see SMI-5390
|
|
67
|
+
*/
|
|
68
|
+
export function enumerateHarnessPresence() {
|
|
69
|
+
return CLIENT_IDS.map((harness) => {
|
|
70
|
+
const harnessPath = CLIENT_NATIVE_PATHS[harness];
|
|
71
|
+
return {
|
|
72
|
+
harness,
|
|
73
|
+
present: existsSync(harnessPath),
|
|
74
|
+
path: harnessPath,
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
}
|
|
56
78
|
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/install/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAUhC,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;IACnD,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC3D,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa,aAAa,CAAA;AAEvD,MAAM,CAAC,MAAM,UAAU,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC/D,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;IACV,QAAQ;CACT,CAAC,CAAA;AAEF,MAAM,UAAU,uBAAuB;IACrC,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAmB,gBAAgB;IAChE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAiB,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpE,oGAAoG,CACvG,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAuB;IACrD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,gBAAgB,CAAA;IAC5D,cAAc,CAAC,GAAG,CAAC,CAAA;IACnB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA6B;IAC7D,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAChF,OAAO,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/install/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAUhC,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;IACnD,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC3D,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa,aAAa,CAAA;AAEvD,MAAM,CAAC,MAAM,UAAU,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC/D,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;IACV,QAAQ;CACT,CAAC,CAAA;AAEF,MAAM,UAAU,uBAAuB;IACrC,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAmB,gBAAgB;IAChE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAiB,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpE,oGAAoG,CACvG,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAuB;IACrD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,gBAAgB,CAAA;IAC5D,cAAc,CAAC,GAAG,CAAC,CAAA;IACnB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA6B;IAC7D,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAChF,OAAO,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB;IAKtC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAChC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO;YACL,OAAO;YACP,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;YAChC,IAAI,EAAE,WAAW;SAClB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.test.d.ts","sourceRoot":"","sources":["../../../src/install/paths.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-5390: Tests for `enumerateHarnessPresence`.
|
|
3
|
+
*
|
|
4
|
+
* `existsSync` is mocked via vi.mock('node:fs') so the tests never touch
|
|
5
|
+
* the real filesystem. The hoisted spy is shared between the mock factory
|
|
6
|
+
* and the test bodies via the vi.hoisted closure — same pattern as
|
|
7
|
+
* pythonIncremental.hardening.test.ts (SMI-4315/4316).
|
|
8
|
+
*/
|
|
9
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
10
|
+
// vi.hoisted runs before vi.mock factories so we can share the spy instance.
|
|
11
|
+
const { existsSyncSpy } = vi.hoisted(() => ({
|
|
12
|
+
existsSyncSpy: vi.fn(() => false),
|
|
13
|
+
}));
|
|
14
|
+
vi.mock('node:fs', async () => {
|
|
15
|
+
const actual = await vi.importActual('node:fs');
|
|
16
|
+
return { ...actual, existsSync: (p) => existsSyncSpy(p) };
|
|
17
|
+
});
|
|
18
|
+
import { CLIENT_IDS, CLIENT_NATIVE_PATHS, enumerateHarnessPresence } from './paths.js';
|
|
19
|
+
describe('enumerateHarnessPresence (SMI-5390)', () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
existsSyncSpy.mockReset();
|
|
22
|
+
existsSyncSpy.mockReturnValue(false);
|
|
23
|
+
});
|
|
24
|
+
it('returns one entry for every ClientId in CLIENT_IDS', () => {
|
|
25
|
+
const result = enumerateHarnessPresence();
|
|
26
|
+
expect(result).toHaveLength(CLIENT_IDS.length);
|
|
27
|
+
const returnedHarnesses = result.map((r) => r.harness);
|
|
28
|
+
expect(returnedHarnesses).toEqual(expect.arrayContaining([...CLIENT_IDS]));
|
|
29
|
+
});
|
|
30
|
+
it('reports present: true for harnesses whose directory exists', () => {
|
|
31
|
+
// Make only claude-code and cursor appear on disk.
|
|
32
|
+
existsSyncSpy.mockImplementation((p) => p === CLIENT_NATIVE_PATHS['claude-code'] || p === CLIENT_NATIVE_PATHS['cursor']);
|
|
33
|
+
const result = enumerateHarnessPresence();
|
|
34
|
+
expect(result.find((r) => r.harness === 'claude-code')?.present).toBe(true);
|
|
35
|
+
expect(result.find((r) => r.harness === 'cursor')?.present).toBe(true);
|
|
36
|
+
expect(result.find((r) => r.harness === 'copilot')?.present).toBe(false);
|
|
37
|
+
expect(result.find((r) => r.harness === 'windsurf')?.present).toBe(false);
|
|
38
|
+
expect(result.find((r) => r.harness === 'agents')?.present).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
it('reports all harnesses absent when existsSync returns false for every path', () => {
|
|
41
|
+
existsSyncSpy.mockReturnValue(false);
|
|
42
|
+
const result = enumerateHarnessPresence();
|
|
43
|
+
expect(result.every((r) => r.present === false)).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
it('reports all harnesses present when existsSync returns true for every path', () => {
|
|
46
|
+
existsSyncSpy.mockReturnValue(true);
|
|
47
|
+
const result = enumerateHarnessPresence();
|
|
48
|
+
expect(result.every((r) => r.present === true)).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it('returns the canonical CLIENT_NATIVE_PATHS path for each harness', () => {
|
|
51
|
+
const result = enumerateHarnessPresence();
|
|
52
|
+
for (const entry of result) {
|
|
53
|
+
expect(entry.path).toBe(CLIENT_NATIVE_PATHS[entry.harness]);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
it('calls existsSync exactly once per harness', () => {
|
|
57
|
+
enumerateHarnessPresence();
|
|
58
|
+
expect(existsSyncSpy).toHaveBeenCalledTimes(CLIENT_IDS.length);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=paths.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/install/paths.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
* git remote (exact) -> plugin manifest (high) -> registry name
|
|
9
9
|
* (medium/low, review-only) -> embedding (opt-in) -> hints (opt-in) -> unknown.
|
|
10
10
|
*
|
|
11
|
-
* The git and plugin tiers are local file reads
|
|
12
|
-
* dependency is invoked
|
|
11
|
+
* The git and plugin tiers are local file reads: they resolve the SOURCE
|
|
12
|
+
* before any injected dependency is invoked. They then make a best-effort,
|
|
13
|
+
* OFFLINE call to the optional `findRegistryIdByRepoUrl` (local catalog lookup)
|
|
14
|
+
* to enrich the manifest id with a registry UUID (SMI-5411) -- never network,
|
|
15
|
+
* never throws. An offline run never touches the network.
|
|
13
16
|
*/
|
|
14
17
|
import type { RecoveryDeps, RecoveryReport, SkillRecoveryResult } from './types.js';
|
|
15
18
|
/** Options for a full recovery run. */
|
|
@@ -33,11 +36,21 @@ export declare function defaultSkillsRoot(): string;
|
|
|
33
36
|
export declare class SourceRecoveryService {
|
|
34
37
|
private readonly deps;
|
|
35
38
|
constructor(deps: RecoveryDeps);
|
|
39
|
+
/**
|
|
40
|
+
* Best-effort OFFLINE registry-UUID enrichment for a git/plugin source URL.
|
|
41
|
+
* Returns the catalog UUID for `url`'s repo when the optional dep is wired and
|
|
42
|
+
* a match exists; null otherwise. NEVER throws -- a missing dep, a no-match, or
|
|
43
|
+
* a dep failure all degrade to null so the already-resolved (exact/high) source
|
|
44
|
+
* is never lost. SMI-5411.
|
|
45
|
+
*/
|
|
46
|
+
private enrichRegistryId;
|
|
36
47
|
/** Scan `skillsRoot` and resolve every (non-filtered) skill's source. */
|
|
37
48
|
recoverSources(opts?: RecoverSourcesOptions): Promise<RecoveryReport>;
|
|
38
49
|
/**
|
|
39
|
-
* Resolve a single skill directory. Tiers short-circuit on the first hit;
|
|
40
|
-
*
|
|
50
|
+
* Resolve a single skill directory. Tiers short-circuit on the first hit; the
|
|
51
|
+
* git and plugin tiers resolve the source before any dependency call, then
|
|
52
|
+
* best-effort enrich the manifest id with a registry UUID via the optional,
|
|
53
|
+
* OFFLINE `findRegistryIdByRepoUrl`.
|
|
41
54
|
*/
|
|
42
55
|
recoverOne(dir: string, skillName: string, skillMd: string | null, opts?: RecoverOneOptions): Promise<SkillRecoveryResult>;
|
|
43
56
|
/** Tier 4: embedding tiebreak over an ambiguous candidate set (opt-in). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecoveryService.d.ts","sourceRoot":"","sources":["../../../src/provenance/SourceRecoveryService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SourceRecoveryService.d.ts","sourceRoot":"","sources":["../../../src/provenance/SourceRecoveryService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,KAAK,EAGV,YAAY,EACZ,cAAc,EAEd,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAEnB,uCAAuC;AACvC,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAID,yDAAyD;AACzD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAwED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;;;;;OAMG;YACW,gBAAgB;IAS9B,yEAAyE;IACnE,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB/E;;;;;OAKG;IACG,UAAU,CACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IA2C/B,2EAA2E;YAC7D,gBAAgB;IAmC9B,6EAA6E;YAC/D,WAAW;CA4B1B"}
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
* git remote (exact) -> plugin manifest (high) -> registry name
|
|
9
9
|
* (medium/low, review-only) -> embedding (opt-in) -> hints (opt-in) -> unknown.
|
|
10
10
|
*
|
|
11
|
-
* The git and plugin tiers are local file reads
|
|
12
|
-
* dependency is invoked
|
|
11
|
+
* The git and plugin tiers are local file reads: they resolve the SOURCE
|
|
12
|
+
* before any injected dependency is invoked. They then make a best-effort,
|
|
13
|
+
* OFFLINE call to the optional `findRegistryIdByRepoUrl` (local catalog lookup)
|
|
14
|
+
* to enrich the manifest id with a registry UUID (SMI-5411) -- never network,
|
|
15
|
+
* never throws. An offline run never touches the network.
|
|
13
16
|
*/
|
|
14
17
|
import * as os from 'os';
|
|
15
18
|
import * as path from 'path';
|
|
@@ -83,6 +86,23 @@ export class SourceRecoveryService {
|
|
|
83
86
|
constructor(deps) {
|
|
84
87
|
this.deps = deps;
|
|
85
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Best-effort OFFLINE registry-UUID enrichment for a git/plugin source URL.
|
|
91
|
+
* Returns the catalog UUID for `url`'s repo when the optional dep is wired and
|
|
92
|
+
* a match exists; null otherwise. NEVER throws -- a missing dep, a no-match, or
|
|
93
|
+
* a dep failure all degrade to null so the already-resolved (exact/high) source
|
|
94
|
+
* is never lost. SMI-5411.
|
|
95
|
+
*/
|
|
96
|
+
async enrichRegistryId(url) {
|
|
97
|
+
if (!this.deps.findRegistryIdByRepoUrl)
|
|
98
|
+
return null;
|
|
99
|
+
try {
|
|
100
|
+
return await this.deps.findRegistryIdByRepoUrl(url);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
86
106
|
/** Scan `skillsRoot` and resolve every (non-filtered) skill's source. */
|
|
87
107
|
async recoverSources(opts = {}) {
|
|
88
108
|
const skillsRoot = opts.skillsRoot ?? defaultSkillsRoot();
|
|
@@ -103,18 +123,25 @@ export class SourceRecoveryService {
|
|
|
103
123
|
return { skills, summary: computeSummary(skills) };
|
|
104
124
|
}
|
|
105
125
|
/**
|
|
106
|
-
* Resolve a single skill directory. Tiers short-circuit on the first hit;
|
|
107
|
-
*
|
|
126
|
+
* Resolve a single skill directory. Tiers short-circuit on the first hit; the
|
|
127
|
+
* git and plugin tiers resolve the source before any dependency call, then
|
|
128
|
+
* best-effort enrich the manifest id with a registry UUID via the optional,
|
|
129
|
+
* OFFLINE `findRegistryIdByRepoUrl`.
|
|
108
130
|
*/
|
|
109
131
|
async recoverOne(dir, skillName, skillMd, opts = {}) {
|
|
110
|
-
// Tier 1: git remote (exact) -- offline
|
|
132
|
+
// Tier 1: git remote (exact) -- source is offline; the id enrichment is a
|
|
133
|
+
// best-effort offline catalog lookup (SMI-5411).
|
|
111
134
|
const git = parseGitConfigRemote(dir);
|
|
112
|
-
if (git)
|
|
113
|
-
|
|
114
|
-
|
|
135
|
+
if (git) {
|
|
136
|
+
const registryId = await this.enrichRegistryId(git.url);
|
|
137
|
+
return resolvedResult(skillName, dir, git, 'git-remote', 'exact', registryId);
|
|
138
|
+
}
|
|
139
|
+
// Tier 2: plugin manifest (high) -- same offline id enrichment.
|
|
115
140
|
const plugin = parsePluginManifestRepository(dir);
|
|
116
|
-
if (plugin)
|
|
117
|
-
|
|
141
|
+
if (plugin) {
|
|
142
|
+
const registryId = await this.enrichRegistryId(plugin.url);
|
|
143
|
+
return resolvedResult(skillName, dir, plugin, 'plugin-json', 'high', registryId);
|
|
144
|
+
}
|
|
118
145
|
// Tier 3: registry name match (medium/low) -- REVIEW ONLY.
|
|
119
146
|
const candidates = await this.deps.findCandidatesByName(skillName);
|
|
120
147
|
if (candidates.length === 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecoveryService.js","sourceRoot":"","sources":["../../../src/provenance/SourceRecoveryService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SourceRecoveryService.js","sourceRoot":"","sources":["../../../src/provenance/SourceRecoveryService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AA4BvD,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;AAEjE,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,SAA4B;IACnD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAA;AAC7E,CAAC;AAED,SAAS,cAAc,CACrB,SAAiB,EACjB,WAAmB,EACnB,MAAuB,EACvB,MAAqC,EACrC,UAA6C,EAC7C,UAAyB,EACzB,aAAkC,EAAE;IAEpC,OAAO;QACL,SAAS;QACT,WAAW;QACX,eAAe,EAAE,MAAM;QACvB,UAAU;QACV,MAAM;QACN,UAAU;QACV,UAAU;QACV,MAAM,EAAE,WAAW;KACpB,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,WAAmB;IAC3D,OAAO;QACL,SAAS;QACT,WAAW;QACX,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,SAAS;KAClB,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,WAAmB;IAC1D,OAAO;QACL,SAAS;QACT,WAAW;QACX,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,gBAAgB;KACzB,CAAA;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,iDAAiD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,cAAc,CAAC,MAA6B;IACnD,MAAM,OAAO,GAAoB;QAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;QACV,cAAc,EAAE,CAAC;KAClB,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;;OAMG;IACK,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO,IAAI,CAAA;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,cAAc,CAAC,OAA8B,EAAE;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,iBAAiB,EAAE,CAAA;QACzD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,QAAQ,GACZ,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAEvF,MAAM,MAAM,GAA0B,EAAE,CAAA;QACxC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;gBACrD,SAAQ;YACV,CAAC;YACD,MAAM,CAAC,IAAI,CACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC/D,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CACH,CAAA;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,GAAW,EACX,SAAiB,EACjB,OAAsB,EACtB,OAA0B,EAAE;QAE5B,0EAA0E;QAC1E,iDAAiD;QACjD,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvD,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAC/E,CAAC;QAED,gEAAgE;QAChE,MAAM,MAAM,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAA;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC1D,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAClF,CAAC;QAED,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC/B,OAAO,cAAc,CACnB,SAAS,EACT,GAAG,EACH,eAAe,CAAC,SAAS,CAAC,EAC1B,eAAe,EACf,QAAQ,EACR,SAAS,CAAC,EAAE,CACb,CAAA;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QACzE,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YAC5D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;QACvB,CAAC;QAED,mBAAmB;QACnB,OAAO,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,2EAA2E;IACnE,KAAK,CAAC,gBAAgB,CAC5B,GAAW,EACX,SAAiB,EACjB,OAAsB,EACtB,UAA+B,EAC/B,IAAuB;QAEvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;YAC9E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACrB,OAAO,cAAc,CACnB,SAAS,EACT,GAAG,EACH,eAAe,CAAC,GAAG,CAAC,EACpB,oBAAoB,EACpB,KAAK,EACL,GAAG,CAAC,EAAE,EACN,MAAM,CACP,CAAA;YACH,CAAC;QACH,CAAC;QACD,+DAA+D;QAC/D,OAAO;YACL,SAAS;YACT,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,KAAK;YACjB,UAAU;YACV,MAAM,EAAE,SAAS;SAClB,CAAA;IACH,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,SAAiB,EACjB,OAAsB;QAEtB,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC3D,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;gBACzC,IAAI,MAAM;oBAAE,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACrE,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAoB;oBAC9B,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,sBAAsB,MAAM,IAAI,SAAS,EAAE;iBACjD,CAAA;gBACD,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -8,5 +8,6 @@ export { parsePluginManifestRepository } from './plugin-manifest.js';
|
|
|
8
8
|
export { scanLocalSkills, type LocalSkillEntry } from './local-skill-scan.js';
|
|
9
9
|
export { SourceRecoveryService, defaultSkillsRoot, type RecoverSourcesOptions, type RecoverOneOptions, } from './SourceRecoveryService.js';
|
|
10
10
|
export { backfillManifest, type BackfillOptions, type BackfillOutcome } from './backfill.js';
|
|
11
|
+
export { normalizeSkillName, skillNameVariants } from './name-variants.js';
|
|
11
12
|
export { METHOD_LABELS, type RecoveryMethod, type RecoveryConfidence, type RecoveredSource, type RecoveryCandidate, type SkillRecoveryStatus, type SkillRecoveryResult, type RecoverySummary, type RecoveryReport, type RecoveryDeps, } from './types.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/provenance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/provenance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA"}
|
|
@@ -8,5 +8,6 @@ export { parsePluginManifestRepository } from './plugin-manifest.js';
|
|
|
8
8
|
export { scanLocalSkills } from './local-skill-scan.js';
|
|
9
9
|
export { SourceRecoveryService, defaultSkillsRoot, } from './SourceRecoveryService.js';
|
|
10
10
|
export { backfillManifest } from './backfill.js';
|
|
11
|
+
export { normalizeSkillName, skillNameVariants } from './name-variants.js';
|
|
11
12
|
export { METHOD_LABELS, } from './types.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/provenance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAGlB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAA8C,MAAM,eAAe,CAAA;AAC5F,OAAO,EACL,aAAa,GAUd,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/provenance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAGlB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAA8C,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,aAAa,GAUd,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Affix-tolerant skill-name matching for registry recovery.
|
|
3
|
+
* @module @skillsmith/core/provenance/name-variants
|
|
4
|
+
* @see SMI-5413
|
|
5
|
+
*
|
|
6
|
+
* Skills are commonly installed under a short local directory name (e.g.
|
|
7
|
+
* `ci-doctor`) while their published registry name carries a convention affix
|
|
8
|
+
* (`wrsmith108/claude-skill-ci-doctor`, `vercel-react-best-practices`). The
|
|
9
|
+
* recovery's registry-name tier originally matched on the EXACT name, so it
|
|
10
|
+
* missed these. {@link skillNameVariants} expands a name into the small,
|
|
11
|
+
* bounded set of convention variants to query the registry by; callers keep the
|
|
12
|
+
* existing review-only confidence gating (a single match is `medium`, multiple
|
|
13
|
+
* are `low` + candidates) and a PREFER-EXACT rule (see callers) so a genuine
|
|
14
|
+
* exact match is never downgraded to ambiguous by the broadened query.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Strip a single known convention affix (prefix and/or suffix) to the bare
|
|
18
|
+
* skill name. Lower-cased + trimmed. Never reduces the name to empty.
|
|
19
|
+
*/
|
|
20
|
+
export declare function normalizeSkillName(name: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Expand a skill name into the bounded set of convention variants to query the
|
|
23
|
+
* registry by — the original name, its affix-stripped bare form, and the bare
|
|
24
|
+
* form re-wrapped in each known prefix/suffix. Deduplicated; empties removed.
|
|
25
|
+
*
|
|
26
|
+
* Order is irrelevant: callers prefer an exact-name match over any variant,
|
|
27
|
+
* and multi-candidate results stay review-only, so the broadened query only
|
|
28
|
+
* ever SURFACES more candidates for review — it never auto-binds a generic
|
|
29
|
+
* short name (e.g. `docker`) to an unrelated `docker-*` repo.
|
|
30
|
+
*/
|
|
31
|
+
export declare function skillNameVariants(name: string): string[];
|
|
32
|
+
//# sourceMappingURL=name-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-variants.d.ts","sourceRoot":"","sources":["../../../src/provenance/name-variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMxD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Affix-tolerant skill-name matching for registry recovery.
|
|
3
|
+
* @module @skillsmith/core/provenance/name-variants
|
|
4
|
+
* @see SMI-5413
|
|
5
|
+
*
|
|
6
|
+
* Skills are commonly installed under a short local directory name (e.g.
|
|
7
|
+
* `ci-doctor`) while their published registry name carries a convention affix
|
|
8
|
+
* (`wrsmith108/claude-skill-ci-doctor`, `vercel-react-best-practices`). The
|
|
9
|
+
* recovery's registry-name tier originally matched on the EXACT name, so it
|
|
10
|
+
* missed these. {@link skillNameVariants} expands a name into the small,
|
|
11
|
+
* bounded set of convention variants to query the registry by; callers keep the
|
|
12
|
+
* existing review-only confidence gating (a single match is `medium`, multiple
|
|
13
|
+
* are `low` + candidates) and a PREFER-EXACT rule (see callers) so a genuine
|
|
14
|
+
* exact match is never downgraded to ambiguous by the broadened query.
|
|
15
|
+
*/
|
|
16
|
+
/** Convention prefixes stripped/added when normalizing a skill name. */
|
|
17
|
+
const PREFIXES = ['claude-skill-', 'claude-'];
|
|
18
|
+
/** Convention suffixes stripped/added when normalizing a skill name (longest first). */
|
|
19
|
+
const SUFFIXES = ['-claude-skill', '-skills', '-skill'];
|
|
20
|
+
/**
|
|
21
|
+
* Strip a single known convention affix (prefix and/or suffix) to the bare
|
|
22
|
+
* skill name. Lower-cased + trimmed. Never reduces the name to empty.
|
|
23
|
+
*/
|
|
24
|
+
export function normalizeSkillName(name) {
|
|
25
|
+
let n = name.toLowerCase().trim();
|
|
26
|
+
for (const p of PREFIXES) {
|
|
27
|
+
if (n.startsWith(p) && n.length > p.length) {
|
|
28
|
+
n = n.slice(p.length);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
for (const s of SUFFIXES) {
|
|
33
|
+
if (n.endsWith(s) && n.length > s.length) {
|
|
34
|
+
n = n.slice(0, -s.length);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return n;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Expand a skill name into the bounded set of convention variants to query the
|
|
42
|
+
* registry by — the original name, its affix-stripped bare form, and the bare
|
|
43
|
+
* form re-wrapped in each known prefix/suffix. Deduplicated; empties removed.
|
|
44
|
+
*
|
|
45
|
+
* Order is irrelevant: callers prefer an exact-name match over any variant,
|
|
46
|
+
* and multi-candidate results stay review-only, so the broadened query only
|
|
47
|
+
* ever SURFACES more candidates for review — it never auto-binds a generic
|
|
48
|
+
* short name (e.g. `docker`) to an unrelated `docker-*` repo.
|
|
49
|
+
*/
|
|
50
|
+
export function skillNameVariants(name) {
|
|
51
|
+
const bare = normalizeSkillName(name);
|
|
52
|
+
const out = new Set([name, name.toLowerCase().trim(), bare]);
|
|
53
|
+
for (const p of PREFIXES)
|
|
54
|
+
out.add(p + bare);
|
|
55
|
+
for (const s of SUFFIXES)
|
|
56
|
+
out.add(bare + s);
|
|
57
|
+
return [...out].filter((v) => v.length > 0);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=name-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-variants.js","sourceRoot":"","sources":["../../../src/provenance/name-variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wEAAwE;AACxE,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,SAAS,CAAU,CAAA;AACtD,wFAAwF;AACxF,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAEhE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3C,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACrB,MAAK;QACP,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACzC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACzB,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IACpE,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAC3C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC"}
|
|
@@ -80,6 +80,18 @@ export interface RecoveryDeps {
|
|
|
80
80
|
rankByEmbedding?: (skillName: string, skillMd: string, candidates: RecoveryCandidate[]) => Promise<RecoveryCandidate[]>;
|
|
81
81
|
/** Opt-in local catalog hint; returns a GitHub repo_url or null. */
|
|
82
82
|
lookupCatalogRepoUrl?: (name: string) => Promise<string | null>;
|
|
83
|
+
/**
|
|
84
|
+
* Opt-in OFFLINE registry-UUID enrichment for a git/plugin-recovered source
|
|
85
|
+
* (SMI-5411). Given the canonical recovered URL (`https://github.com/<owner>/
|
|
86
|
+
* <repo>`), return the local catalog's registry UUID for that `repo_url`, else
|
|
87
|
+
* null. Lets `skill_outdated` resolve git/plugin-recovered skills that ARE
|
|
88
|
+
* registry-published, WITHOUT changing the (exact/high) SOURCE resolution:
|
|
89
|
+
* the source stays the https URL (View-Changes already works); only the
|
|
90
|
+
* manifest `id` is upgraded from `owner/skill-name` to the UUID when the repo
|
|
91
|
+
* is catalog-known. Best-effort and graceful — an absent dep, no match, or a
|
|
92
|
+
* throw all degrade to null (the source is never lost).
|
|
93
|
+
*/
|
|
94
|
+
findRegistryIdByRepoUrl?: (repoUrl: string) => Promise<string | null>;
|
|
83
95
|
}
|
|
84
96
|
/** Human-readable label per recovery method (CLI rendering). */
|
|
85
97
|
export declare const METHOD_LABELS: Record<RecoveryMethod, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAA;AAEpB;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAEnG,gGAAgG;AAChG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,SAAS,GAAG,gBAAgB,CAAA;AAEhG,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;IACvC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,uEAAuE;IACvE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAC7B,UAAU,EAAE,kBAAkB,CAAA;IAC9B,qEAAqE;IACrE,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,OAAO,EAAE,eAAe,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IACxC,4EAA4E;IAC5E,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACpE,yEAAyE;IACzE,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,iBAAiB,EAAE,KAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjC,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAA;AAEpB;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAEnG,gGAAgG;AAChG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,SAAS,GAAG,gBAAgB,CAAA;AAEhG,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;IACvC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,uEAAuE;IACvE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAC7B,UAAU,EAAE,kBAAkB,CAAA;IAC9B,qEAAqE;IACrE,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,OAAO,EAAE,eAAe,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IACxC,4EAA4E;IAC5E,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACpE,yEAAyE;IACzE,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,iBAAiB,EAAE,KAC5B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjC,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC/D;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACtE;AAED,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQxD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2GH,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,YAAY,EAAE,YAAY;IAC1B,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,qBAAqB;IACtC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,yBAAyB;IACxC,YAAY,EAAE,kBAAkB;IAChC,gBAAgB,EAAE,gBAAgB;CACnC,CAAA"}
|