reskill 0.13.1 → 0.15.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/README.md +39 -31
- package/README.zh-CN.md +39 -31
- package/dist/cli/index.js +207 -134
- package/dist/core/git-resolver.d.ts +1 -0
- package/dist/core/git-resolver.d.ts.map +1 -1
- package/dist/core/lock-manager.d.ts +1 -0
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/skill-manager.d.ts.map +1 -1
- package/dist/index.js +74 -39
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/git.d.ts +3 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/update-notifier.d.ts +49 -0
- package/dist/utils/update-notifier.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAcnF,OAAO,EACL,KAAK,SAAS,EAIf,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAa,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAU;gBAEd,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAY/D;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;;OAKG;IACH,aAAa,IAAI,MAAM;IAOvB;;;;;;OAMG;IACH,qBAAqB,IAAI,MAAM;IAM/B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAiBlC;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/core/skill-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -722,6 +722,22 @@ class GitResolver {
|
|
|
722
722
|
let gitUrl = ref;
|
|
723
723
|
let version;
|
|
724
724
|
let subPath;
|
|
725
|
+
const webUrlMatch = ref.match(/^(https?:\/\/[^/]+)\/([^/]+)\/([^/]+)\/(tree|blob|raw)\/([^/]+)(?:\/(.+))?$/);
|
|
726
|
+
if (webUrlMatch) {
|
|
727
|
+
const [, baseUrl, owner, repo, , branch, path] = webUrlMatch;
|
|
728
|
+
gitUrl = `${baseUrl}/${owner}/${repo}.git`;
|
|
729
|
+
version = `branch:${branch}`;
|
|
730
|
+
subPath = path;
|
|
731
|
+
return {
|
|
732
|
+
registry: new URL(baseUrl).hostname,
|
|
733
|
+
owner,
|
|
734
|
+
repo,
|
|
735
|
+
subPath,
|
|
736
|
+
version,
|
|
737
|
+
raw,
|
|
738
|
+
gitUrl
|
|
739
|
+
};
|
|
740
|
+
}
|
|
725
741
|
const gitSuffixIndex = ref.indexOf('.git');
|
|
726
742
|
if (-1 !== gitSuffixIndex) {
|
|
727
743
|
const afterGit = ref.slice(gitSuffixIndex + 4);
|
|
@@ -1111,6 +1127,7 @@ class LockManager {
|
|
|
1111
1127
|
const lockedSkill = {
|
|
1112
1128
|
source: options.source,
|
|
1113
1129
|
version: options.version,
|
|
1130
|
+
ref: options.ref,
|
|
1114
1131
|
resolved: options.resolved,
|
|
1115
1132
|
commit: options.commit,
|
|
1116
1133
|
installedAt: new Date().toISOString()
|
|
@@ -1148,7 +1165,7 @@ class LockManager {
|
|
|
1148
1165
|
this.lockData = null;
|
|
1149
1166
|
}
|
|
1150
1167
|
}
|
|
1151
|
-
const
|
|
1168
|
+
const logger_logger = {
|
|
1152
1169
|
info (message) {
|
|
1153
1170
|
console.log(__WEBPACK_EXTERNAL_MODULE_chalk__["default"].blue('ℹ'), message);
|
|
1154
1171
|
},
|
|
@@ -1231,35 +1248,43 @@ class SkillManager {
|
|
|
1231
1248
|
const { force = false, save = true } = options;
|
|
1232
1249
|
const resolved = await this.resolver.resolve(ref);
|
|
1233
1250
|
const { parsed, repoUrl } = resolved;
|
|
1234
|
-
const
|
|
1251
|
+
const gitRef = resolved.ref;
|
|
1235
1252
|
const skillName = parsed.subPath ? __WEBPACK_EXTERNAL_MODULE_node_path__.basename(parsed.subPath) : parsed.repo;
|
|
1236
1253
|
const skillPath = this.getSkillPath(skillName);
|
|
1237
1254
|
if (exists(skillPath) && !force) {
|
|
1238
1255
|
const locked = this.lockManager.get(skillName);
|
|
1239
|
-
|
|
1240
|
-
|
|
1256
|
+
const lockedRef = locked?.ref || locked?.version;
|
|
1257
|
+
if (locked && lockedRef === gitRef) {
|
|
1258
|
+
logger_logger.info(`${skillName}@${gitRef} is already installed`);
|
|
1241
1259
|
const installed = this.getInstalledSkill(skillName);
|
|
1242
1260
|
if (installed) return installed;
|
|
1243
1261
|
}
|
|
1244
1262
|
if (!force) {
|
|
1245
|
-
|
|
1263
|
+
logger_logger.warn(`${skillName} is already installed. Use --force to reinstall.`);
|
|
1246
1264
|
const installed = this.getInstalledSkill(skillName);
|
|
1247
1265
|
if (installed) return installed;
|
|
1248
1266
|
}
|
|
1249
1267
|
}
|
|
1250
|
-
|
|
1251
|
-
let cacheResult = await this.cache.get(parsed,
|
|
1252
|
-
if (cacheResult)
|
|
1268
|
+
logger_logger["package"](`Installing ${skillName}@${gitRef}...`);
|
|
1269
|
+
let cacheResult = await this.cache.get(parsed, gitRef);
|
|
1270
|
+
if (cacheResult) logger_logger.debug(`Using cached ${skillName}@${gitRef}`);
|
|
1253
1271
|
else {
|
|
1254
|
-
|
|
1255
|
-
cacheResult = await this.cache.cache(repoUrl, parsed,
|
|
1272
|
+
logger_logger.debug(`Caching ${skillName}@${gitRef} from ${repoUrl}`);
|
|
1273
|
+
cacheResult = await this.cache.cache(repoUrl, parsed, gitRef, gitRef);
|
|
1256
1274
|
}
|
|
1257
1275
|
ensureDir(this.getInstallDir());
|
|
1258
1276
|
if (exists(skillPath)) remove(skillPath);
|
|
1259
|
-
await this.cache.copyTo(parsed,
|
|
1277
|
+
await this.cache.copyTo(parsed, gitRef, skillPath);
|
|
1278
|
+
let semanticVersion = gitRef;
|
|
1279
|
+
const skillJsonPath = __WEBPACK_EXTERNAL_MODULE_node_path__.join(skillPath, 'skill.json');
|
|
1280
|
+
if (exists(skillJsonPath)) try {
|
|
1281
|
+
const skillJson = readJson(skillJsonPath);
|
|
1282
|
+
if (skillJson.version) semanticVersion = skillJson.version;
|
|
1283
|
+
} catch {}
|
|
1260
1284
|
if (!this.isGlobal) this.lockManager.lockSkill(skillName, {
|
|
1261
1285
|
source: `${parsed.registry}:${parsed.owner}/${parsed.repo}${parsed.subPath ? `/${parsed.subPath}` : ''}`,
|
|
1262
|
-
version,
|
|
1286
|
+
version: semanticVersion,
|
|
1287
|
+
ref: gitRef,
|
|
1263
1288
|
resolved: repoUrl,
|
|
1264
1289
|
commit: cacheResult.commit
|
|
1265
1290
|
});
|
|
@@ -1267,8 +1292,9 @@ class SkillManager {
|
|
|
1267
1292
|
this.config.ensureExists();
|
|
1268
1293
|
this.config.addSkill(skillName, ref);
|
|
1269
1294
|
}
|
|
1295
|
+
const displayVersion = semanticVersion !== gitRef ? `${semanticVersion} (${gitRef})` : gitRef;
|
|
1270
1296
|
const locationHint = this.isGlobal ? '(global)' : '';
|
|
1271
|
-
|
|
1297
|
+
logger_logger.success(`Installed ${skillName}@${displayVersion} to ${skillPath} ${locationHint}`.trim());
|
|
1272
1298
|
const installed = this.getInstalledSkill(skillName);
|
|
1273
1299
|
if (!installed) throw new Error(`Failed to get installed skill info for ${skillName}`);
|
|
1274
1300
|
return installed;
|
|
@@ -1283,7 +1309,7 @@ class SkillManager {
|
|
|
1283
1309
|
});
|
|
1284
1310
|
installed.push(skill);
|
|
1285
1311
|
} catch (error) {
|
|
1286
|
-
|
|
1312
|
+
logger_logger.error(`Failed to install ${name}: ${error.message}`);
|
|
1287
1313
|
}
|
|
1288
1314
|
return installed;
|
|
1289
1315
|
}
|
|
@@ -1291,14 +1317,14 @@ class SkillManager {
|
|
|
1291
1317
|
const skillPath = this.getSkillPath(name);
|
|
1292
1318
|
if (!exists(skillPath)) {
|
|
1293
1319
|
const location = this.isGlobal ? '(global)' : '';
|
|
1294
|
-
|
|
1320
|
+
logger_logger.warn(`Skill ${name} is not installed ${location}`.trim());
|
|
1295
1321
|
return false;
|
|
1296
1322
|
}
|
|
1297
1323
|
remove(skillPath);
|
|
1298
1324
|
if (!this.isGlobal) this.lockManager.remove(name);
|
|
1299
1325
|
if (!this.isGlobal && this.config.exists()) this.config.removeSkill(name);
|
|
1300
1326
|
const locationHint = this.isGlobal ? '(global)' : '';
|
|
1301
|
-
|
|
1327
|
+
logger_logger.success(`Uninstalled ${name} ${locationHint}`.trim());
|
|
1302
1328
|
return true;
|
|
1303
1329
|
}
|
|
1304
1330
|
async update(name) {
|
|
@@ -1306,7 +1332,7 @@ class SkillManager {
|
|
|
1306
1332
|
if (name) {
|
|
1307
1333
|
const ref = this.config.getSkillRef(name);
|
|
1308
1334
|
if (!ref) {
|
|
1309
|
-
|
|
1335
|
+
logger_logger.error(`Skill ${name} not found in skills.json`);
|
|
1310
1336
|
return [];
|
|
1311
1337
|
}
|
|
1312
1338
|
const skill = await this.install(ref, {
|
|
@@ -1323,7 +1349,7 @@ class SkillManager {
|
|
|
1323
1349
|
});
|
|
1324
1350
|
updated.push(skill);
|
|
1325
1351
|
} catch (error) {
|
|
1326
|
-
|
|
1352
|
+
logger_logger.error(`Failed to update ${skillName}: ${error.message}`);
|
|
1327
1353
|
}
|
|
1328
1354
|
}
|
|
1329
1355
|
return updated;
|
|
@@ -1340,7 +1366,7 @@ class SkillManager {
|
|
|
1340
1366
|
const linkPath = this.getSkillPath(skillName);
|
|
1341
1367
|
ensureDir(__WEBPACK_EXTERNAL_MODULE_node_path__.dirname(linkPath));
|
|
1342
1368
|
createSymlink(absolutePath, linkPath);
|
|
1343
|
-
|
|
1369
|
+
logger_logger.success(`Linked ${skillName} → ${absolutePath}`);
|
|
1344
1370
|
return {
|
|
1345
1371
|
name: skillName,
|
|
1346
1372
|
path: linkPath,
|
|
@@ -1352,15 +1378,15 @@ class SkillManager {
|
|
|
1352
1378
|
unlink(name) {
|
|
1353
1379
|
const skillPath = this.getSkillPath(name);
|
|
1354
1380
|
if (!exists(skillPath)) {
|
|
1355
|
-
|
|
1381
|
+
logger_logger.warn(`Skill ${name} is not installed`);
|
|
1356
1382
|
return false;
|
|
1357
1383
|
}
|
|
1358
1384
|
if (!isSymlink(skillPath)) {
|
|
1359
|
-
|
|
1385
|
+
logger_logger.warn(`Skill ${name} is not a linked skill`);
|
|
1360
1386
|
return false;
|
|
1361
1387
|
}
|
|
1362
1388
|
remove(skillPath);
|
|
1363
|
-
|
|
1389
|
+
logger_logger.success(`Unlinked ${name}`);
|
|
1364
1390
|
return true;
|
|
1365
1391
|
}
|
|
1366
1392
|
list() {
|
|
@@ -1430,7 +1456,8 @@ class SkillManager {
|
|
|
1430
1456
|
const skills = this.config.getSkills();
|
|
1431
1457
|
for (const [name, ref] of Object.entries(skills))try {
|
|
1432
1458
|
const locked = this.lockManager.get(name);
|
|
1433
|
-
const
|
|
1459
|
+
const currentRef = locked?.ref || locked?.version || 'unknown';
|
|
1460
|
+
const currentVersion = locked?.version || 'unknown';
|
|
1434
1461
|
const parsed = this.resolver.parseRef(ref);
|
|
1435
1462
|
const repoUrl = this.resolver.buildRepoUrl(parsed);
|
|
1436
1463
|
const latestResolved = await this.resolver.resolveVersion(repoUrl, {
|
|
@@ -1439,15 +1466,15 @@ class SkillManager {
|
|
|
1439
1466
|
raw: 'latest'
|
|
1440
1467
|
});
|
|
1441
1468
|
const latest = latestResolved.ref;
|
|
1442
|
-
const updateAvailable =
|
|
1469
|
+
const updateAvailable = currentRef !== latest && 'unknown' !== currentRef;
|
|
1443
1470
|
results.push({
|
|
1444
1471
|
name,
|
|
1445
|
-
current,
|
|
1472
|
+
current: currentVersion !== currentRef ? `${currentVersion} (${currentRef})` : currentRef,
|
|
1446
1473
|
latest,
|
|
1447
1474
|
updateAvailable
|
|
1448
1475
|
});
|
|
1449
1476
|
} catch (error) {
|
|
1450
|
-
|
|
1477
|
+
logger_logger.debug(`Failed to check ${name}: ${error.message}`);
|
|
1451
1478
|
results.push({
|
|
1452
1479
|
name,
|
|
1453
1480
|
current: 'unknown',
|
|
@@ -1461,16 +1488,22 @@ class SkillManager {
|
|
|
1461
1488
|
const { save = true, mode = 'symlink' } = options;
|
|
1462
1489
|
const resolved = await this.resolver.resolve(ref);
|
|
1463
1490
|
const { parsed, repoUrl } = resolved;
|
|
1464
|
-
const
|
|
1491
|
+
const gitRef = resolved.ref;
|
|
1465
1492
|
const skillName = parsed.subPath ? __WEBPACK_EXTERNAL_MODULE_node_path__.basename(parsed.subPath) : parsed.repo;
|
|
1466
|
-
|
|
1467
|
-
let cacheResult = await this.cache.get(parsed,
|
|
1468
|
-
if (cacheResult)
|
|
1493
|
+
logger_logger["package"](`Installing ${skillName}@${gitRef} to ${targetAgents.length} agent(s)...`);
|
|
1494
|
+
let cacheResult = await this.cache.get(parsed, gitRef);
|
|
1495
|
+
if (cacheResult) logger_logger.debug(`Using cached ${skillName}@${gitRef}`);
|
|
1469
1496
|
else {
|
|
1470
|
-
|
|
1471
|
-
cacheResult = await this.cache.cache(repoUrl, parsed,
|
|
1497
|
+
logger_logger.debug(`Caching ${skillName}@${gitRef} from ${repoUrl}`);
|
|
1498
|
+
cacheResult = await this.cache.cache(repoUrl, parsed, gitRef, gitRef);
|
|
1472
1499
|
}
|
|
1473
|
-
const sourcePath = this.cache.getCachePath(parsed,
|
|
1500
|
+
const sourcePath = this.cache.getCachePath(parsed, gitRef);
|
|
1501
|
+
let semanticVersion = gitRef;
|
|
1502
|
+
const skillJsonPath = __WEBPACK_EXTERNAL_MODULE_node_path__.join(sourcePath, 'skill.json');
|
|
1503
|
+
if (exists(skillJsonPath)) try {
|
|
1504
|
+
const skillJson = readJson(skillJsonPath);
|
|
1505
|
+
if (skillJson.version) semanticVersion = skillJson.version;
|
|
1506
|
+
} catch {}
|
|
1474
1507
|
const installer = new Installer({
|
|
1475
1508
|
cwd: this.projectRoot,
|
|
1476
1509
|
global: this.isGlobal
|
|
@@ -1480,7 +1513,8 @@ class SkillManager {
|
|
|
1480
1513
|
});
|
|
1481
1514
|
if (!this.isGlobal) this.lockManager.lockSkill(skillName, {
|
|
1482
1515
|
source: `${parsed.registry}:${parsed.owner}/${parsed.repo}${parsed.subPath ? `/${parsed.subPath}` : ''}`,
|
|
1483
|
-
version,
|
|
1516
|
+
version: semanticVersion,
|
|
1517
|
+
ref: gitRef,
|
|
1484
1518
|
resolved: repoUrl,
|
|
1485
1519
|
commit: cacheResult.commit
|
|
1486
1520
|
});
|
|
@@ -1490,12 +1524,13 @@ class SkillManager {
|
|
|
1490
1524
|
}
|
|
1491
1525
|
const successCount = Array.from(results.values()).filter((r)=>r.success).length;
|
|
1492
1526
|
const failCount = results.size - successCount;
|
|
1493
|
-
|
|
1494
|
-
|
|
1527
|
+
const displayVersion = semanticVersion !== gitRef ? `${semanticVersion} (${gitRef})` : gitRef;
|
|
1528
|
+
if (0 === failCount) logger_logger.success(`Installed ${skillName}@${displayVersion} to ${successCount} agent(s)`);
|
|
1529
|
+
else logger_logger.warn(`Installed ${skillName}@${displayVersion} to ${successCount} agent(s), ${failCount} failed`);
|
|
1495
1530
|
const skill = {
|
|
1496
1531
|
name: skillName,
|
|
1497
1532
|
path: sourcePath,
|
|
1498
|
-
version,
|
|
1533
|
+
version: semanticVersion,
|
|
1499
1534
|
source: `${parsed.registry}:${parsed.owner}/${parsed.repo}${parsed.subPath ? `/${parsed.subPath}` : ''}`
|
|
1500
1535
|
};
|
|
1501
1536
|
return {
|
|
@@ -1535,7 +1570,7 @@ class SkillManager {
|
|
|
1535
1570
|
if (!this.isGlobal) this.lockManager.remove(name);
|
|
1536
1571
|
if (!this.isGlobal && this.config.exists()) this.config.removeSkill(name);
|
|
1537
1572
|
const successCount = Array.from(results.values()).filter((r)=>r).length;
|
|
1538
|
-
|
|
1573
|
+
logger_logger.success(`Uninstalled ${name} from ${successCount} agent(s)`);
|
|
1539
1574
|
return results;
|
|
1540
1575
|
}
|
|
1541
1576
|
}
|
|
@@ -1682,4 +1717,4 @@ function generateSkillMd(skill) {
|
|
|
1682
1717
|
frontmatter.push('');
|
|
1683
1718
|
return frontmatter.join('\n') + skill.content;
|
|
1684
1719
|
}
|
|
1685
|
-
export { CacheManager, ConfigLoader, DEFAULT_REGISTRIES, GitResolver, Installer, LockManager, SkillManager, SkillValidationError, agents, detectInstalledAgents, generateSkillMd, getAgentConfig, getAgentSkillsDir, getAllAgentTypes, getCanonicalSkillPath, getCanonicalSkillsDir, hasValidSkillMd, isPathSafe, isValidAgentType, logger, parseSkillFromDir, parseSkillMd, parseSkillMdFile, sanitizeName, shortenPath, validateSkillDescription, validateSkillName };
|
|
1720
|
+
export { CacheManager, ConfigLoader, DEFAULT_REGISTRIES, GitResolver, Installer, LockManager, SkillManager, SkillValidationError, agents, detectInstalledAgents, generateSkillMd, getAgentConfig, getAgentSkillsDir, getAllAgentTypes, getCanonicalSkillPath, getCanonicalSkillsDir, hasValidSkillMd, isPathSafe, isValidAgentType, logger_logger as logger, parseSkillFromDir, parseSkillMd, parseSkillMdFile, sanitizeName, shortenPath, validateSkillDescription, validateSkillName };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -85,8 +85,10 @@ export interface SkillsJson {
|
|
|
85
85
|
export interface LockedSkill {
|
|
86
86
|
/** Source, e.g., github:user/repo */
|
|
87
87
|
source: string;
|
|
88
|
-
/**
|
|
88
|
+
/** Semantic version from skill.json */
|
|
89
89
|
version: string;
|
|
90
|
+
/** Git reference (tag, branch, commit) used for installation */
|
|
91
|
+
ref: string;
|
|
90
92
|
/** Resolved full URL */
|
|
91
93
|
resolved: string;
|
|
92
94
|
/** Exact commit hash */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,YAAY,EACV,WAAW,EACX,SAAS,GACV,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;GAEG;AACH,YAAY,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAMjC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC3C;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/git.d.ts
CHANGED
|
@@ -106,6 +106,9 @@ export declare function isGitUrl(source: string): boolean;
|
|
|
106
106
|
* - HTTPS: https://github.com/user/repo.git
|
|
107
107
|
* - Git protocol: git://github.com/user/repo.git
|
|
108
108
|
*
|
|
109
|
+
* Note: GitHub/GitLab web URLs (with /tree/, /blob/, etc.) are handled
|
|
110
|
+
* at a higher level in GitResolver.parseGitUrlRef() before calling this function.
|
|
111
|
+
*
|
|
109
112
|
* @param url The Git URL to parse
|
|
110
113
|
* @returns Parsed URL information or null if parsing fails
|
|
111
114
|
*/
|
package/dist/utils/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,aAAa,EAAE,KAAK,CAAC;IACrC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;gBAEzC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;IAyBjD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS;IAU9D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAevD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwBtE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAe1E;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9E;AAsBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASxE;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQhD;AAED
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update Notifier - Check for CLI updates from npm registry
|
|
3
|
+
*
|
|
4
|
+
* Provides non-blocking update notifications to users when a newer version is available.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Update check result
|
|
8
|
+
*/
|
|
9
|
+
export interface UpdateCheckResult {
|
|
10
|
+
/** Current installed version */
|
|
11
|
+
current: string;
|
|
12
|
+
/** Latest version on npm */
|
|
13
|
+
latest: string;
|
|
14
|
+
/** Whether an update is available */
|
|
15
|
+
hasUpdate: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for update check
|
|
19
|
+
*/
|
|
20
|
+
export interface CheckOptions {
|
|
21
|
+
/** Timeout in milliseconds (default: 3000) */
|
|
22
|
+
timeout?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check for updates from npm registry
|
|
26
|
+
*
|
|
27
|
+
* @param packageName - Name of the package to check
|
|
28
|
+
* @param currentVersion - Current installed version
|
|
29
|
+
* @param options - Check options
|
|
30
|
+
* @returns Update check result, or null if check failed
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkForUpdate(packageName: string, currentVersion: string, options?: CheckOptions): Promise<UpdateCheckResult | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Format update message for display
|
|
35
|
+
*
|
|
36
|
+
* @param result - Update check result
|
|
37
|
+
* @returns Formatted message string, or empty string if no update
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatUpdateMessage(result: UpdateCheckResult): string;
|
|
40
|
+
/**
|
|
41
|
+
* Check for updates and notify user if available
|
|
42
|
+
*
|
|
43
|
+
* This function is designed to be non-blocking and silent on errors.
|
|
44
|
+
*
|
|
45
|
+
* @param packageName - Name of the package to check
|
|
46
|
+
* @param currentVersion - Current installed version
|
|
47
|
+
*/
|
|
48
|
+
export declare function notifyUpdate(packageName: string, currentVersion: string): Promise<void>;
|
|
49
|
+
//# sourceMappingURL=update-notifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-notifier.d.ts","sourceRoot":"","sources":["../../src/utils/update-notifier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmCnC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAarE;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7F"}
|