rhachet 1.13.11 → 1.13.13
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/domain.objects/Role.d.ts +10 -0
- package/dist/domain.objects/Role.js.map +1 -1
- package/dist/domain.operations/invoke/link/symlinkResourceDirectories.d.ts +7 -2
- package/dist/domain.operations/invoke/link/symlinkResourceDirectories.js +64 -27
- package/dist/domain.operations/invoke/link/symlinkResourceDirectories.js.map +1 -1
- package/package.json +4 -4
|
@@ -41,11 +41,15 @@ export interface Role {
|
|
|
41
41
|
* .why = declares what the role can do
|
|
42
42
|
* .how =
|
|
43
43
|
* - dirs: directory-based skills (e.g., .sh scripts) for linking/booting
|
|
44
|
+
* - single { uri: string }: symlinks this dir as the full skills dir
|
|
45
|
+
* - array { uri: string }[]: symlinks each dir within the skills dir
|
|
44
46
|
* - refs: programmatic RoleSkill references for execution
|
|
45
47
|
*/
|
|
46
48
|
skills: {
|
|
47
49
|
dirs: {
|
|
48
50
|
uri: string;
|
|
51
|
+
} | {
|
|
52
|
+
uri: string;
|
|
49
53
|
}[];
|
|
50
54
|
refs: RoleSkill<any>[];
|
|
51
55
|
};
|
|
@@ -53,10 +57,16 @@ export interface Role {
|
|
|
53
57
|
* .what = the briefs curated for this role
|
|
54
58
|
* .why = declares the library of knowledge this role can and should leverage
|
|
55
59
|
* - enables reuse of the briefs, independent from the skills
|
|
60
|
+
* .how =
|
|
61
|
+
* - dirs: directory-based briefs for linking/booting
|
|
62
|
+
* - single { uri: string }: symlinks this dir as the full briefs dir
|
|
63
|
+
* - array { uri: string }[]: symlinks each dir within the briefs dir
|
|
56
64
|
*/
|
|
57
65
|
briefs: {
|
|
58
66
|
dirs: {
|
|
59
67
|
uri: string;
|
|
68
|
+
} | {
|
|
69
|
+
uri: string;
|
|
60
70
|
}[];
|
|
61
71
|
};
|
|
62
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../src/domain.objects/Role.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;
|
|
1
|
+
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../src/domain.objects/Role.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAsE9C,MAAa,IAAK,SAAQ,6BAAkB;;AAA5C,oBAEC;AADe,WAAM,GAAG,CAAC,MAAM,CAAU,CAAC"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = creates symlinks for resource directories to a target directory
|
|
3
3
|
* .why = enables role resources (briefs, skills, etc.) to be linked from node_modules or other sources
|
|
4
|
-
* .how =
|
|
4
|
+
* .how =
|
|
5
|
+
* - single { uri: string }: symlinks the source dir directly as the target dir
|
|
6
|
+
* - array { uri: string }[]: removes deprecated symlinks, then symlinks each dir within target
|
|
7
|
+
* - returns count of leaf files
|
|
5
8
|
*/
|
|
6
9
|
export declare const symlinkResourceDirectories: (options: {
|
|
7
|
-
sourceDirs:
|
|
10
|
+
sourceDirs: {
|
|
11
|
+
uri: string;
|
|
12
|
+
} | Array<{
|
|
8
13
|
uri: string;
|
|
9
14
|
}>;
|
|
10
15
|
targetDir: string;
|
|
@@ -51,25 +51,74 @@ const setDirectoryReadonlyExecutable = (dirPath) => {
|
|
|
51
51
|
/**
|
|
52
52
|
* .what = creates symlinks for resource directories to a target directory
|
|
53
53
|
* .why = enables role resources (briefs, skills, etc.) to be linked from node_modules or other sources
|
|
54
|
-
* .how =
|
|
54
|
+
* .how =
|
|
55
|
+
* - single { uri: string }: symlinks the source dir directly as the target dir
|
|
56
|
+
* - array { uri: string }[]: removes deprecated symlinks, then symlinks each dir within target
|
|
57
|
+
* - returns count of leaf files
|
|
55
58
|
*/
|
|
56
59
|
const symlinkResourceDirectories = (options) => {
|
|
57
60
|
const { sourceDirs, targetDir, resourceName } = options;
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
// handle single-dir mode: symlink source dir directly as target dir
|
|
62
|
+
if (!Array.isArray(sourceDirs)) {
|
|
63
|
+
const sourcePath = (0, node_path_1.resolve)(process.cwd(), sourceDirs.uri);
|
|
64
|
+
if (!(0, node_fs_1.existsSync)(sourcePath))
|
|
65
|
+
return 0;
|
|
66
|
+
// remove existing target if present (symlink or directory)
|
|
67
|
+
const relativeTargetPath = (0, node_path_1.relative)(process.cwd(), targetDir);
|
|
68
|
+
if ((0, node_fs_1.existsSync)(targetDir)) {
|
|
69
|
+
try {
|
|
70
|
+
(0, node_fs_1.unlinkSync)(targetDir);
|
|
71
|
+
console.log(` ↻ ${relativeTargetPath} (updated)`);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
(0, node_fs_1.rmSync)(targetDir, { recursive: true, force: true });
|
|
75
|
+
console.log(` ↻ ${relativeTargetPath} (updated)`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(` + ${relativeTargetPath}`);
|
|
80
|
+
}
|
|
81
|
+
// create parent directory if needed
|
|
82
|
+
const targetParent = (0, node_path_1.resolve)(targetDir, '..');
|
|
83
|
+
(0, node_fs_1.mkdirSync)(targetParent, { recursive: true });
|
|
84
|
+
// create relative symlink: targetDir -> sourcePath
|
|
85
|
+
const relativeSource = (0, node_path_1.relative)(targetParent, sourcePath);
|
|
86
|
+
(0, node_fs_1.symlinkSync)(relativeSource, targetDir, 'dir');
|
|
87
|
+
setDirectoryReadonlyExecutable(sourcePath);
|
|
88
|
+
return countFilesInDirectory(sourcePath);
|
|
60
89
|
}
|
|
90
|
+
// handle array-dir mode: symlink each dir within target dir
|
|
91
|
+
// calculate expected symlink names based on source directories
|
|
92
|
+
const expectedNames = new Set(sourceDirs.map((dir) => (0, node_path_1.basename)(dir.uri)));
|
|
93
|
+
// remove deprecated symlinks (ones that exist but are no longer in the config)
|
|
94
|
+
if ((0, node_fs_1.existsSync)(targetDir)) {
|
|
95
|
+
const existingEntries = (0, node_fs_1.readdirSync)(targetDir);
|
|
96
|
+
for (const entry of existingEntries) {
|
|
97
|
+
if (!expectedNames.has(entry)) {
|
|
98
|
+
const entryPath = (0, node_path_1.resolve)(targetDir, entry);
|
|
99
|
+
const relativeEntryPath = (0, node_path_1.relative)(process.cwd(), entryPath);
|
|
100
|
+
try {
|
|
101
|
+
(0, node_fs_1.unlinkSync)(entryPath);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
(0, node_fs_1.rmSync)(entryPath, { recursive: true, force: true });
|
|
105
|
+
}
|
|
106
|
+
console.log(` - ${relativeEntryPath} (removed, no longer in role)`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (sourceDirs.length === 0)
|
|
111
|
+
return 0;
|
|
61
112
|
let totalFileCount = 0;
|
|
62
113
|
for (const sourceDir of sourceDirs) {
|
|
63
114
|
const sourcePath = (0, node_path_1.resolve)(process.cwd(), sourceDir.uri);
|
|
64
|
-
if (!(0, node_fs_1.existsSync)(sourcePath))
|
|
65
|
-
continue;
|
|
66
|
-
|
|
67
|
-
// Create target directory parent if needed
|
|
115
|
+
if (!(0, node_fs_1.existsSync)(sourcePath))
|
|
116
|
+
continue;
|
|
117
|
+
// create target directory parent if needed
|
|
68
118
|
(0, node_fs_1.mkdirSync)(targetDir, { recursive: true });
|
|
69
|
-
//
|
|
70
|
-
// Use the basename of the source directory to avoid conflicts
|
|
119
|
+
// create a unique target path for this source directory
|
|
71
120
|
const targetPath = (0, node_path_1.resolve)(targetDir, (0, node_path_1.basename)(sourcePath));
|
|
72
|
-
//
|
|
121
|
+
// remove existing symlink/file if it exists
|
|
73
122
|
const relativeTargetPath = (0, node_path_1.relative)(process.cwd(), targetPath);
|
|
74
123
|
if ((0, node_fs_1.existsSync)(targetPath)) {
|
|
75
124
|
try {
|
|
@@ -84,24 +133,12 @@ const symlinkResourceDirectories = (options) => {
|
|
|
84
133
|
else {
|
|
85
134
|
console.log(` + ${relativeTargetPath}`);
|
|
86
135
|
}
|
|
87
|
-
//
|
|
136
|
+
// create relative symlink from target directory to source directory
|
|
88
137
|
const relativeSource = (0, node_path_1.relative)(targetDir, sourcePath);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
// count the files in the source directory
|
|
94
|
-
const fileCount = countFilesInDirectory(sourcePath);
|
|
95
|
-
totalFileCount += fileCount;
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
if (error.code === 'EEXIST') {
|
|
99
|
-
console.log(` ⚠️ ${relativeTargetPath} already exists (skipped)`);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
throw error;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
138
|
+
(0, node_fs_1.symlinkSync)(relativeSource, targetPath, 'dir');
|
|
139
|
+
setDirectoryReadonlyExecutable(sourcePath);
|
|
140
|
+
const fileCount = countFilesInDirectory(sourcePath);
|
|
141
|
+
totalFileCount += fileCount;
|
|
105
142
|
}
|
|
106
143
|
return totalFileCount;
|
|
107
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symlinkResourceDirectories.js","sourceRoot":"","sources":["../../../../src/domain.operations/invoke/link/symlinkResourceDirectories.ts"],"names":[],"mappings":";;;AAAA,qCAUiB;AACjB,yCAAwD;AAExD;;;GAGG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;IAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,8BAA8B,GAAG,CAAC,OAAe,EAAQ,EAAE;IAC/D,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;IAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;QAEnC,+CAA+C;QAC/C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,SAAS;QAEtC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,gDAAgD;YAChD,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YACzC,iDAAiD;YACjD,IAAA,mBAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3B,mDAAmD;YACnD,IAAA,mBAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,IAAA,mBAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"symlinkResourceDirectories.js","sourceRoot":"","sources":["../../../../src/domain.operations/invoke/link/symlinkResourceDirectories.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "rhachet",
|
|
3
3
|
"author": "ehmpathy",
|
|
4
4
|
"description": "A framework for reliable, thorough thought. Weave threads of thought via stitches.",
|
|
5
|
-
"version": "1.13.
|
|
5
|
+
"version": "1.13.13",
|
|
6
6
|
"repository": "ehmpathy/rhachet",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet",
|
|
8
8
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"postversion": "git push origin HEAD --tags --no-verify",
|
|
52
52
|
"prepare:husky": "husky install && chmod ug+x .husky/*",
|
|
53
53
|
"prepare": "if [ -e .git ] && [ -z $CI ]; then npm run prepare:husky && npm run prepare:rhachet; fi",
|
|
54
|
-
"prepare:rhachet": "rhachet init
|
|
54
|
+
"prepare:rhachet": "rhachet init && rhachet roles link --role mechanic && .agent/repo=ehmpathy/role=mechanic/skills/.skills/init.claude.sh"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@ehmpathy/uni-time": "1.9.0",
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
"esbuild-register": "3.6.0",
|
|
90
90
|
"husky": "8.0.3",
|
|
91
91
|
"jest": "30.2.0",
|
|
92
|
-
"rhachet": "1.13.
|
|
93
|
-
"rhachet-roles-ehmpathy": "1.15.
|
|
92
|
+
"rhachet": "1.13.11",
|
|
93
|
+
"rhachet-roles-ehmpathy": "1.15.12",
|
|
94
94
|
"test-fns": "1.7.0",
|
|
95
95
|
"tsc-alias": "1.8.10",
|
|
96
96
|
"tsx": "~4.20.6",
|