skilld 0.15.1 → 0.15.2
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.mjs +30 -12
- package/dist/cli.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -3428,35 +3428,46 @@ const removeCommandDef = defineCommand({
|
|
|
3428
3428
|
});
|
|
3429
3429
|
var search_exports = /* @__PURE__ */ __exportAll({
|
|
3430
3430
|
findPackageDbs: () => findPackageDbs,
|
|
3431
|
+
listLockPackages: () => listLockPackages,
|
|
3431
3432
|
parseFilterPrefix: () => parseFilterPrefix,
|
|
3432
3433
|
searchCommand: () => searchCommand,
|
|
3433
3434
|
searchCommandDef: () => searchCommandDef
|
|
3434
3435
|
});
|
|
3435
3436
|
function findPackageDbs(packageFilter) {
|
|
3436
|
-
const
|
|
3437
|
+
const lock = readProjectLock(process.cwd());
|
|
3438
|
+
if (!lock) return [];
|
|
3439
|
+
return filterLockDbs(lock, packageFilter);
|
|
3440
|
+
}
|
|
3441
|
+
function readProjectLock(cwd) {
|
|
3437
3442
|
const shared = getSharedSkillsDir(cwd);
|
|
3438
3443
|
if (shared) {
|
|
3439
3444
|
const lock = readLock(shared);
|
|
3440
|
-
if (lock) return
|
|
3445
|
+
if (lock) return lock;
|
|
3441
3446
|
}
|
|
3442
3447
|
const agent = detectTargetAgent();
|
|
3443
|
-
if (!agent) return
|
|
3444
|
-
|
|
3448
|
+
if (!agent) return null;
|
|
3449
|
+
return readLock(`${cwd}/${targets[agent].skillsDir}`);
|
|
3450
|
+
}
|
|
3451
|
+
function listLockPackages(cwd = process.cwd()) {
|
|
3452
|
+
const lock = readProjectLock(cwd);
|
|
3445
3453
|
if (!lock) return [];
|
|
3446
|
-
return
|
|
3454
|
+
return [...new Set(Object.values(lock.skills).map((s) => s.packageName).filter(Boolean))];
|
|
3447
3455
|
}
|
|
3448
3456
|
function filterLockDbs(lock, packageFilter) {
|
|
3449
3457
|
if (!lock) return [];
|
|
3450
|
-
const
|
|
3458
|
+
const tokenize = (s) => s.toLowerCase().replace(/@/g, "").split(/[-_/]+/).filter(Boolean);
|
|
3451
3459
|
return Object.values(lock.skills).filter((info) => {
|
|
3452
3460
|
if (!info.packageName || !info.version) return false;
|
|
3453
3461
|
if (!packageFilter) return true;
|
|
3454
|
-
const
|
|
3455
|
-
|
|
3462
|
+
const filterTokens = tokenize(packageFilter);
|
|
3463
|
+
const nameTokens = tokenize(info.packageName);
|
|
3464
|
+
return filterTokens.every((ft) => nameTokens.some((nt) => nt.includes(ft) || ft.includes(nt)));
|
|
3456
3465
|
}).map((info) => {
|
|
3457
3466
|
const exact = getPackageDbPath(info.packageName, info.version);
|
|
3458
3467
|
if (existsSync(exact)) return exact;
|
|
3459
|
-
|
|
3468
|
+
const fallback = findAnyPackageDb(info.packageName);
|
|
3469
|
+
if (fallback) p.log.warn(`Using cached search index for ${info.packageName} (v${info.version} not indexed). Run \`skilld update ${info.packageName}\` to re-index.`);
|
|
3470
|
+
return fallback;
|
|
3460
3471
|
}).filter((db) => !!db);
|
|
3461
3472
|
}
|
|
3462
3473
|
function findAnyPackageDb(name) {
|
|
@@ -3500,8 +3511,11 @@ function parseFilterPrefix(rawQuery) {
|
|
|
3500
3511
|
async function searchCommand(rawQuery, packageFilter) {
|
|
3501
3512
|
const dbs = findPackageDbs(packageFilter);
|
|
3502
3513
|
if (dbs.length === 0) {
|
|
3503
|
-
if (packageFilter)
|
|
3504
|
-
|
|
3514
|
+
if (packageFilter) {
|
|
3515
|
+
const available = listLockPackages();
|
|
3516
|
+
if (available.length > 0) p.log.warn(`No docs indexed for "${packageFilter}". Available: ${available.join(", ")}`);
|
|
3517
|
+
else p.log.warn(`No docs indexed for "${packageFilter}". Run \`skilld add ${packageFilter}\` first.`);
|
|
3518
|
+
} else p.log.warn("No docs indexed yet. Run `skilld add <package>` first.");
|
|
3505
3519
|
return;
|
|
3506
3520
|
}
|
|
3507
3521
|
const { query, filter } = parseFilterPrefix(rawQuery);
|
|
@@ -3577,7 +3591,11 @@ const SPINNER_FRAMES = [
|
|
|
3577
3591
|
async function interactiveSearch(packageFilter) {
|
|
3578
3592
|
const dbs = findPackageDbs(packageFilter);
|
|
3579
3593
|
if (dbs.length === 0) {
|
|
3580
|
-
|
|
3594
|
+
let msg;
|
|
3595
|
+
if (packageFilter) {
|
|
3596
|
+
const available = listLockPackages();
|
|
3597
|
+
msg = available.length > 0 ? `No docs indexed for "${packageFilter}". Available: ${available.join(", ")}` : `No docs indexed for "${packageFilter}". Run \`skilld add ${packageFilter}\` first.`;
|
|
3598
|
+
} else msg = "No docs indexed yet. Run `skilld add <package>` first.";
|
|
3581
3599
|
process.stderr.write(`\x1B[33m${msg}\x1B[0m\n`);
|
|
3582
3600
|
return;
|
|
3583
3601
|
}
|