@orderful/droid 0.35.0 → 0.35.1
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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +14 -0
- package/dist/bin/droid.js +22 -20
- package/dist/index.js +22 -20
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/tools/codex/.claude-plugin/plugin.json +1 -1
- package/dist/tools/codex/TOOL.yaml +1 -1
- package/package.json +1 -1
- package/src/lib/skills.ts +37 -20
- package/src/tools/codex/.claude-plugin/plugin.json +1 -1
- package/src/tools/codex/TOOL.yaml +1 -1
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
{
|
|
62
62
|
"name": "droid-codex",
|
|
63
63
|
"description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
|
|
64
|
-
"version": "0.2.
|
|
64
|
+
"version": "0.2.1",
|
|
65
65
|
"source": {
|
|
66
66
|
"source": "github",
|
|
67
67
|
"repo": "orderful/droid",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @orderful/droid
|
|
2
2
|
|
|
3
|
+
## 0.35.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#211](https://github.com/Orderful/droid/pull/211) [`6df8a25`](https://github.com/Orderful/droid/commit/6df8a2511a1680bec65618d0f5e6e684811cd922) Thanks [@frytyler](https://github.com/frytyler)! - Bump codex tool version to force reinstall with fixed subdirectory copying
|
|
8
|
+
|
|
9
|
+
Users who installed codex 0.2.0 before the fix would be missing references/review/ subdirectory. Bumping to 0.2.1 ensures they get the complete installation with all reference files.
|
|
10
|
+
|
|
11
|
+
- [#211](https://github.com/Orderful/droid/pull/211) [`6df8a25`](https://github.com/Orderful/droid/commit/6df8a2511a1680bec65618d0f5e6e684811cd922) Thanks [@frytyler](https://github.com/frytyler)! - Fix skill installation not copying reference and script subdirectories
|
|
12
|
+
|
|
13
|
+
The installSkill() function was only copying top-level files from references/ and scripts/ directories, causing subdirectories to be skipped. This blocked the /codex review feature which relies on references/review/workflow.md.
|
|
14
|
+
|
|
15
|
+
Added a generic copyDirectoryRecursive() helper that preserves directory structure while maintaining the existing file type filters (.md for references, .ts/.js/.py for scripts). Applied to both references/ and scripts/ copying.
|
|
16
|
+
|
|
3
17
|
## 0.35.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/dist/bin/droid.js
CHANGED
|
@@ -1305,6 +1305,22 @@ function updateAllSkills() {
|
|
|
1305
1305
|
}
|
|
1306
1306
|
return result;
|
|
1307
1307
|
}
|
|
1308
|
+
function copyDirectoryRecursive(source, target, fileFilter) {
|
|
1309
|
+
if (!existsSync6(target)) {
|
|
1310
|
+
mkdirSync4(target, { recursive: true });
|
|
1311
|
+
}
|
|
1312
|
+
const entries = readdirSync5(source, { withFileTypes: true });
|
|
1313
|
+
for (const entry of entries) {
|
|
1314
|
+
const sourcePath = join7(source, entry.name);
|
|
1315
|
+
const targetPath = join7(target, entry.name);
|
|
1316
|
+
if (entry.isDirectory()) {
|
|
1317
|
+
copyDirectoryRecursive(sourcePath, targetPath, fileFilter);
|
|
1318
|
+
} else if (entry.isFile() && fileFilter(entry.name)) {
|
|
1319
|
+
const content = readFileSync6(sourcePath, "utf-8");
|
|
1320
|
+
writeFileSync4(targetPath, content);
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1308
1324
|
function installSkill(skillName) {
|
|
1309
1325
|
const config = loadConfig();
|
|
1310
1326
|
const skillPath = findSkillPath(skillName);
|
|
@@ -1418,34 +1434,20 @@ function installSkill(skillName) {
|
|
|
1418
1434
|
const referencesSource = join7(skillDir, "references");
|
|
1419
1435
|
if (existsSync6(referencesSource)) {
|
|
1420
1436
|
const targetReferencesDir = join7(targetSkillDir, "references");
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
const referenceFiles = readdirSync5(referencesSource).filter(
|
|
1437
|
+
copyDirectoryRecursive(
|
|
1438
|
+
referencesSource,
|
|
1439
|
+
targetReferencesDir,
|
|
1425
1440
|
(f) => f.endsWith(".md")
|
|
1426
1441
|
);
|
|
1427
|
-
for (const file of referenceFiles) {
|
|
1428
|
-
const sourcePath = join7(referencesSource, file);
|
|
1429
|
-
const targetPath = join7(targetReferencesDir, file);
|
|
1430
|
-
const content = readFileSync6(sourcePath, "utf-8");
|
|
1431
|
-
writeFileSync4(targetPath, content);
|
|
1432
|
-
}
|
|
1433
1442
|
}
|
|
1434
1443
|
const scriptsSource = join7(skillDir, "scripts");
|
|
1435
1444
|
if (existsSync6(scriptsSource)) {
|
|
1436
1445
|
const targetScriptsDir = join7(targetSkillDir, "scripts");
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
const scriptFiles = readdirSync5(scriptsSource).filter(
|
|
1446
|
+
copyDirectoryRecursive(
|
|
1447
|
+
scriptsSource,
|
|
1448
|
+
targetScriptsDir,
|
|
1441
1449
|
(f) => f.endsWith(".ts") || f.endsWith(".js") || f.endsWith(".py")
|
|
1442
1450
|
);
|
|
1443
|
-
for (const file of scriptFiles) {
|
|
1444
|
-
const sourcePath = join7(scriptsSource, file);
|
|
1445
|
-
const targetPath = join7(targetScriptsDir, file);
|
|
1446
|
-
const content = readFileSync6(sourcePath, "utf-8");
|
|
1447
|
-
writeFileSync4(targetPath, content);
|
|
1448
|
-
}
|
|
1449
1451
|
}
|
|
1450
1452
|
const activePlatforms = getActivePlatforms(config);
|
|
1451
1453
|
const targetPlatforms = activePlatforms.length > 0 ? activePlatforms : [config.platform];
|
package/dist/index.js
CHANGED
|
@@ -1262,6 +1262,22 @@ function updateAllSkills() {
|
|
|
1262
1262
|
}
|
|
1263
1263
|
return result;
|
|
1264
1264
|
}
|
|
1265
|
+
function copyDirectoryRecursive(source, target, fileFilter) {
|
|
1266
|
+
if (!existsSync6(target)) {
|
|
1267
|
+
mkdirSync4(target, { recursive: true });
|
|
1268
|
+
}
|
|
1269
|
+
const entries = readdirSync5(source, { withFileTypes: true });
|
|
1270
|
+
for (const entry of entries) {
|
|
1271
|
+
const sourcePath = join7(source, entry.name);
|
|
1272
|
+
const targetPath = join7(target, entry.name);
|
|
1273
|
+
if (entry.isDirectory()) {
|
|
1274
|
+
copyDirectoryRecursive(sourcePath, targetPath, fileFilter);
|
|
1275
|
+
} else if (entry.isFile() && fileFilter(entry.name)) {
|
|
1276
|
+
const content = readFileSync6(sourcePath, "utf-8");
|
|
1277
|
+
writeFileSync4(targetPath, content);
|
|
1278
|
+
}
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1265
1281
|
function installSkill(skillName) {
|
|
1266
1282
|
const config = loadConfig();
|
|
1267
1283
|
const skillPath = findSkillPath(skillName);
|
|
@@ -1375,34 +1391,20 @@ function installSkill(skillName) {
|
|
|
1375
1391
|
const referencesSource = join7(skillDir, "references");
|
|
1376
1392
|
if (existsSync6(referencesSource)) {
|
|
1377
1393
|
const targetReferencesDir = join7(targetSkillDir, "references");
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
const referenceFiles = readdirSync5(referencesSource).filter(
|
|
1394
|
+
copyDirectoryRecursive(
|
|
1395
|
+
referencesSource,
|
|
1396
|
+
targetReferencesDir,
|
|
1382
1397
|
(f) => f.endsWith(".md")
|
|
1383
1398
|
);
|
|
1384
|
-
for (const file of referenceFiles) {
|
|
1385
|
-
const sourcePath = join7(referencesSource, file);
|
|
1386
|
-
const targetPath = join7(targetReferencesDir, file);
|
|
1387
|
-
const content = readFileSync6(sourcePath, "utf-8");
|
|
1388
|
-
writeFileSync4(targetPath, content);
|
|
1389
|
-
}
|
|
1390
1399
|
}
|
|
1391
1400
|
const scriptsSource = join7(skillDir, "scripts");
|
|
1392
1401
|
if (existsSync6(scriptsSource)) {
|
|
1393
1402
|
const targetScriptsDir = join7(targetSkillDir, "scripts");
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
const scriptFiles = readdirSync5(scriptsSource).filter(
|
|
1403
|
+
copyDirectoryRecursive(
|
|
1404
|
+
scriptsSource,
|
|
1405
|
+
targetScriptsDir,
|
|
1398
1406
|
(f) => f.endsWith(".ts") || f.endsWith(".js") || f.endsWith(".py")
|
|
1399
1407
|
);
|
|
1400
|
-
for (const file of scriptFiles) {
|
|
1401
|
-
const sourcePath = join7(scriptsSource, file);
|
|
1402
|
-
const targetPath = join7(targetScriptsDir, file);
|
|
1403
|
-
const content = readFileSync6(sourcePath, "utf-8");
|
|
1404
|
-
writeFileSync4(targetPath, content);
|
|
1405
|
-
}
|
|
1406
1408
|
}
|
|
1407
1409
|
const activePlatforms = getActivePlatforms(config);
|
|
1408
1410
|
const targetPlatforms = activePlatforms.length > 0 ? activePlatforms : [config.platform];
|
package/dist/lib/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EAGpB,MAAM,SAAS,CAAC;AAuBjB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,MAAM,EAAE,GACxB,IAAI,CAyCN;AAwBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwB9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CA4BlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAI1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAkBA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAqBD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CA+BA;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IACjC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAiCA;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "droid-codex",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Orderful",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: codex
|
|
2
2
|
description: "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries."
|
|
3
|
-
version: 0.2.
|
|
3
|
+
version: 0.2.1
|
|
4
4
|
status: beta
|
|
5
5
|
|
|
6
6
|
includes:
|
package/package.json
CHANGED
package/src/lib/skills.ts
CHANGED
|
@@ -393,6 +393,39 @@ export function updateAllSkills(): {
|
|
|
393
393
|
return result;
|
|
394
394
|
}
|
|
395
395
|
|
|
396
|
+
/**
|
|
397
|
+
* Recursively copy a directory and all its contents
|
|
398
|
+
* @param source Source directory path
|
|
399
|
+
* @param target Target directory path
|
|
400
|
+
* @param fileFilter Function that returns true if the file should be copied
|
|
401
|
+
*/
|
|
402
|
+
function copyDirectoryRecursive(
|
|
403
|
+
source: string,
|
|
404
|
+
target: string,
|
|
405
|
+
fileFilter: (filename: string) => boolean,
|
|
406
|
+
): void {
|
|
407
|
+
if (!existsSync(target)) {
|
|
408
|
+
mkdirSync(target, { recursive: true });
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
const entries = readdirSync(source, { withFileTypes: true });
|
|
412
|
+
|
|
413
|
+
for (const entry of entries) {
|
|
414
|
+
const sourcePath = join(source, entry.name);
|
|
415
|
+
const targetPath = join(target, entry.name);
|
|
416
|
+
|
|
417
|
+
if (entry.isDirectory()) {
|
|
418
|
+
// Recursively copy subdirectory
|
|
419
|
+
copyDirectoryRecursive(sourcePath, targetPath, fileFilter);
|
|
420
|
+
} else if (entry.isFile() && fileFilter(entry.name)) {
|
|
421
|
+
// Copy file if it passes the filter
|
|
422
|
+
const content = readFileSync(sourcePath, 'utf-8');
|
|
423
|
+
writeFileSync(targetPath, content);
|
|
424
|
+
}
|
|
425
|
+
// Ignore files that don't pass the filter
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
396
429
|
/**
|
|
397
430
|
* Install a skill
|
|
398
431
|
*/
|
|
@@ -553,36 +586,20 @@ export function installSkill(skillName: string): {
|
|
|
553
586
|
const referencesSource = join(skillDir, 'references');
|
|
554
587
|
if (existsSync(referencesSource)) {
|
|
555
588
|
const targetReferencesDir = join(targetSkillDir, 'references');
|
|
556
|
-
|
|
557
|
-
mkdirSync(targetReferencesDir, { recursive: true });
|
|
558
|
-
}
|
|
559
|
-
const referenceFiles = readdirSync(referencesSource).filter((f) =>
|
|
589
|
+
copyDirectoryRecursive(referencesSource, targetReferencesDir, (f) =>
|
|
560
590
|
f.endsWith('.md'),
|
|
561
591
|
);
|
|
562
|
-
for (const file of referenceFiles) {
|
|
563
|
-
const sourcePath = join(referencesSource, file);
|
|
564
|
-
const targetPath = join(targetReferencesDir, file);
|
|
565
|
-
const content = readFileSync(sourcePath, 'utf-8');
|
|
566
|
-
writeFileSync(targetPath, content);
|
|
567
|
-
}
|
|
568
592
|
}
|
|
569
593
|
|
|
570
594
|
// Copy scripts if present (deterministic CLI scripts for the skill)
|
|
571
595
|
const scriptsSource = join(skillDir, 'scripts');
|
|
572
596
|
if (existsSync(scriptsSource)) {
|
|
573
597
|
const targetScriptsDir = join(targetSkillDir, 'scripts');
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
const scriptFiles = readdirSync(scriptsSource).filter(
|
|
598
|
+
copyDirectoryRecursive(
|
|
599
|
+
scriptsSource,
|
|
600
|
+
targetScriptsDir,
|
|
578
601
|
(f) => f.endsWith('.ts') || f.endsWith('.js') || f.endsWith('.py'),
|
|
579
602
|
);
|
|
580
|
-
for (const file of scriptFiles) {
|
|
581
|
-
const sourcePath = join(scriptsSource, file);
|
|
582
|
-
const targetPath = join(targetScriptsDir, file);
|
|
583
|
-
const content = readFileSync(sourcePath, 'utf-8');
|
|
584
|
-
writeFileSync(targetPath, content);
|
|
585
|
-
}
|
|
586
603
|
}
|
|
587
604
|
|
|
588
605
|
// Get active platforms for multi-platform install
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "droid-codex",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Orderful",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
name: codex
|
|
2
2
|
description: "Shared organizational knowledge - PRDs, tech designs, domains, proposals, patterns, and explored topics. Use when loading project context, searching codex, capturing decisions, or creating new entries."
|
|
3
|
-
version: 0.2.
|
|
3
|
+
version: 0.2.1
|
|
4
4
|
status: beta
|
|
5
5
|
|
|
6
6
|
includes:
|