rhachet 1.13.12 → 1.14.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/dist/contract/cli/invokeRoles.d.ts +2 -2
- package/dist/contract/cli/invokeRoles.js +5 -3
- package/dist/contract/cli/invokeRoles.js.map +1 -1
- package/dist/contract/cli/invokeRolesInit.d.ts +11 -0
- package/dist/contract/cli/invokeRolesInit.js +54 -0
- package/dist/contract/cli/invokeRolesInit.js.map +1 -0
- package/dist/contract/cli/invokeRolesLink.js +10 -0
- package/dist/contract/cli/invokeRolesLink.js.map +1 -1
- package/dist/domain.objects/Role.d.ts +29 -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 +47 -29
- package/dist/domain.operations/invoke/link/symlinkResourceDirectories.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,8 +2,8 @@ import type { Command } from 'commander';
|
|
|
2
2
|
import type { RoleRegistry } from '../../contract/sdk';
|
|
3
3
|
/**
|
|
4
4
|
* .what = adds the "roles" command to the CLI with subcommands
|
|
5
|
-
* .why = manages role resources (briefs
|
|
6
|
-
* .how = registers "link", "boot", and "cost" subcommands under "roles"
|
|
5
|
+
* .why = manages role resources (briefs, skills, inits) in .agent/ directory structure
|
|
6
|
+
* .how = registers "link", "init", "boot", and "cost" subcommands under "roles"
|
|
7
7
|
*/
|
|
8
8
|
export declare const invokeRoles: ({ program, registries, }: {
|
|
9
9
|
program: Command;
|
|
@@ -3,17 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.invokeRoles = void 0;
|
|
4
4
|
const invokeRolesBoot_1 = require("./invokeRolesBoot");
|
|
5
5
|
const invokeRolesCost_1 = require("./invokeRolesCost");
|
|
6
|
+
const invokeRolesInit_1 = require("./invokeRolesInit");
|
|
6
7
|
const invokeRolesLink_1 = require("./invokeRolesLink");
|
|
7
8
|
/**
|
|
8
9
|
* .what = adds the "roles" command to the CLI with subcommands
|
|
9
|
-
* .why = manages role resources (briefs
|
|
10
|
-
* .how = registers "link", "boot", and "cost" subcommands under "roles"
|
|
10
|
+
* .why = manages role resources (briefs, skills, inits) in .agent/ directory structure
|
|
11
|
+
* .how = registers "link", "init", "boot", and "cost" subcommands under "roles"
|
|
11
12
|
*/
|
|
12
13
|
const invokeRoles = ({ program, registries, }) => {
|
|
13
14
|
const rolesCommand = program
|
|
14
15
|
.command('roles')
|
|
15
|
-
.description('manage role resources (link, boot, cost)');
|
|
16
|
+
.description('manage role resources (link, init, boot, cost)');
|
|
16
17
|
(0, invokeRolesLink_1.invokeRolesLink)({ command: rolesCommand, registries });
|
|
18
|
+
(0, invokeRolesInit_1.invokeRolesInit)({ command: rolesCommand, registries });
|
|
17
19
|
(0, invokeRolesBoot_1.invokeRolesBoot)({ command: rolesCommand, registries });
|
|
18
20
|
(0, invokeRolesCost_1.invokeRolesCost)({ command: rolesCommand, registries });
|
|
19
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeRoles.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRoles.ts"],"names":[],"mappings":";;;AAIA,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AAEpD;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"invokeRoles.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRoles.ts"],"names":[],"mappings":";;;AAIA,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AAEpD;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gDAAgD,CAAC,CAAC;IAEjE,IAAA,iCAAe,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,IAAA,iCAAe,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,IAAA,iCAAe,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACvD,IAAA,iCAAe,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { RoleRegistry } from '../../contract/sdk';
|
|
3
|
+
/**
|
|
4
|
+
* .what = adds the "roles init" subcommand to the CLI
|
|
5
|
+
* .why = executes role initialization commands after linking
|
|
6
|
+
* .how = runs Role.inits.exec commands sequentially from cwd
|
|
7
|
+
*/
|
|
8
|
+
export declare const invokeRolesInit: ({ command, registries, }: {
|
|
9
|
+
command: Command;
|
|
10
|
+
registries: RoleRegistry[];
|
|
11
|
+
}) => void;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.invokeRolesInit = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
const assureFindRole_1 = require("../../domain.operations/invoke/assureFindRole");
|
|
6
|
+
const inferRepoByRole_1 = require("../../domain.operations/invoke/inferRepoByRole");
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
/**
|
|
9
|
+
* .what = adds the "roles init" subcommand to the CLI
|
|
10
|
+
* .why = executes role initialization commands after linking
|
|
11
|
+
* .how = runs Role.inits.exec commands sequentially from cwd
|
|
12
|
+
*/
|
|
13
|
+
const invokeRolesInit = ({ command, registries, }) => {
|
|
14
|
+
command
|
|
15
|
+
.command('init')
|
|
16
|
+
.description('execute role initialization commands')
|
|
17
|
+
.option('--repo <slug>', 'the repository slug for the role')
|
|
18
|
+
.option('--role <slug>', 'the role to initialize')
|
|
19
|
+
.action((opts) => {
|
|
20
|
+
if (!opts.role)
|
|
21
|
+
helpful_errors_1.BadRequestError.throw('--role is required (e.g., --role mechanic)');
|
|
22
|
+
const role = (0, assureFindRole_1.assureFindRole)({ registries, slug: opts.role });
|
|
23
|
+
const repo = opts.repo
|
|
24
|
+
? registries.find((r) => r.slug === opts.repo)
|
|
25
|
+
: (0, inferRepoByRole_1.inferRepoByRole)({ registries, roleSlug: opts.role });
|
|
26
|
+
if (!repo)
|
|
27
|
+
helpful_errors_1.BadRequestError.throw(`No repo found with slug "${opts.repo}"`);
|
|
28
|
+
// check if role has init commands
|
|
29
|
+
const execCmds = role.inits?.exec ?? [];
|
|
30
|
+
if (execCmds.length === 0) {
|
|
31
|
+
console.log(``);
|
|
32
|
+
console.log(`⚠️ Role "${role.slug}" has no initialization commands.`);
|
|
33
|
+
console.log(``);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log(``);
|
|
37
|
+
console.log(`🔧 Init role "${role.slug}" from repo "${repo.slug}"`);
|
|
38
|
+
console.log(``);
|
|
39
|
+
// execute each command sequentially
|
|
40
|
+
for (const { cmd } of execCmds) {
|
|
41
|
+
console.log(` ▸ ${cmd}`);
|
|
42
|
+
(0, node_child_process_1.execSync)(cmd, {
|
|
43
|
+
cwd: process.cwd(),
|
|
44
|
+
stdio: 'inherit',
|
|
45
|
+
shell: '/bin/bash',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
console.log(``);
|
|
49
|
+
console.log(`✨ Role "${role.slug}" initialized successfully.`);
|
|
50
|
+
console.log(``);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
exports.invokeRolesInit = invokeRolesInit;
|
|
54
|
+
//# sourceMappingURL=invokeRolesInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invokeRolesInit.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesInit.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAGjD,iFAA8E;AAC9E,mFAAgF;AAEhF,2DAA8C;AAE9C;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,kCAAkC,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,CAAC,IAAsC,EAAE,EAAE;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI;YACZ,gCAAe,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;YACpB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,IAAA,iCAAe,EAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YACP,gCAAe,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAElE,kCAAkC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,mCAAmC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,oCAAoC;QACpC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC1B,IAAA,6BAAQ,EAAC,GAAG,EAAE;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAlDW,QAAA,eAAe,mBAkD1B"}
|
|
@@ -68,12 +68,22 @@ const invokeRolesLink = ({ command, registries, }) => {
|
|
|
68
68
|
targetDir: (0, node_path_1.resolve)(repoRoleDir, 'skills'),
|
|
69
69
|
resourceName: 'skills',
|
|
70
70
|
});
|
|
71
|
+
// Link inits if configured
|
|
72
|
+
const initsCount = role.inits?.dirs
|
|
73
|
+
? (0, symlinkResourceDirectories_1.symlinkResourceDirectories)({
|
|
74
|
+
sourceDirs: role.inits.dirs,
|
|
75
|
+
targetDir: (0, node_path_1.resolve)(repoRoleDir, 'inits'),
|
|
76
|
+
resourceName: 'inits',
|
|
77
|
+
})
|
|
78
|
+
: 0;
|
|
71
79
|
console.log(``);
|
|
72
80
|
console.log(`🔗 Linked role "${role.slug}" from repo "${repo.slug}"`);
|
|
73
81
|
if (briefsCount > 0)
|
|
74
82
|
console.log(` - ${briefsCount} brief(s) linked`);
|
|
75
83
|
if (skillsCount > 0)
|
|
76
84
|
console.log(` - ${skillsCount} skill(s) linked`);
|
|
85
|
+
if (initsCount > 0)
|
|
86
|
+
console.log(` - ${initsCount} init(s) linked`);
|
|
77
87
|
console.log(``);
|
|
78
88
|
});
|
|
79
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeRolesLink.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesLink.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"invokeRolesLink.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesLink.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,35 @@ 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;
|
|
70
|
+
}[];
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* .what = initialization resources and commands for this role
|
|
74
|
+
* .why = declares setup actions that should run once when instantiating a role
|
|
75
|
+
* .how =
|
|
76
|
+
* - dirs: directory-based init scripts for linking (same pattern as briefs/skills)
|
|
77
|
+
* - single { uri: string }: symlinks this dir as the full inits dir
|
|
78
|
+
* - array { uri: string }[]: symlinks each dir within the inits dir
|
|
79
|
+
* - exec: commands to execute when `npx rhachet roles init` is run
|
|
80
|
+
*/
|
|
81
|
+
inits?: {
|
|
82
|
+
dirs?: {
|
|
83
|
+
uri: string;
|
|
84
|
+
} | {
|
|
85
|
+
uri: string;
|
|
86
|
+
}[];
|
|
87
|
+
exec?: {
|
|
88
|
+
cmd: string;
|
|
60
89
|
}[];
|
|
61
90
|
};
|
|
62
91
|
}
|
|
@@ -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;AAoF9C,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,13 +51,46 @@ 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
|
-
//
|
|
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);
|
|
89
|
+
}
|
|
90
|
+
// handle array-dir mode: symlink each dir within target dir
|
|
91
|
+
// calculate expected symlink names based on source directories
|
|
59
92
|
const expectedNames = new Set(sourceDirs.map((dir) => (0, node_path_1.basename)(dir.uri)));
|
|
60
|
-
//
|
|
93
|
+
// remove deprecated symlinks (ones that exist but are no longer in the config)
|
|
61
94
|
if ((0, node_fs_1.existsSync)(targetDir)) {
|
|
62
95
|
const existingEntries = (0, node_fs_1.readdirSync)(targetDir);
|
|
63
96
|
for (const entry of existingEntries) {
|
|
@@ -74,21 +107,18 @@ const symlinkResourceDirectories = (options) => {
|
|
|
74
107
|
}
|
|
75
108
|
}
|
|
76
109
|
}
|
|
77
|
-
if (sourceDirs.length === 0)
|
|
110
|
+
if (sourceDirs.length === 0)
|
|
78
111
|
return 0;
|
|
79
|
-
}
|
|
80
112
|
let totalFileCount = 0;
|
|
81
113
|
for (const sourceDir of sourceDirs) {
|
|
82
114
|
const sourcePath = (0, node_path_1.resolve)(process.cwd(), sourceDir.uri);
|
|
83
|
-
if (!(0, node_fs_1.existsSync)(sourcePath))
|
|
84
|
-
continue;
|
|
85
|
-
|
|
86
|
-
// Create target directory parent if needed
|
|
115
|
+
if (!(0, node_fs_1.existsSync)(sourcePath))
|
|
116
|
+
continue;
|
|
117
|
+
// create target directory parent if needed
|
|
87
118
|
(0, node_fs_1.mkdirSync)(targetDir, { recursive: true });
|
|
88
|
-
//
|
|
89
|
-
// Use the basename of the source directory to avoid conflicts
|
|
119
|
+
// create a unique target path for this source directory
|
|
90
120
|
const targetPath = (0, node_path_1.resolve)(targetDir, (0, node_path_1.basename)(sourcePath));
|
|
91
|
-
//
|
|
121
|
+
// remove existing symlink/file if it exists
|
|
92
122
|
const relativeTargetPath = (0, node_path_1.relative)(process.cwd(), targetPath);
|
|
93
123
|
if ((0, node_fs_1.existsSync)(targetPath)) {
|
|
94
124
|
try {
|
|
@@ -103,24 +133,12 @@ const symlinkResourceDirectories = (options) => {
|
|
|
103
133
|
else {
|
|
104
134
|
console.log(` + ${relativeTargetPath}`);
|
|
105
135
|
}
|
|
106
|
-
//
|
|
136
|
+
// create relative symlink from target directory to source directory
|
|
107
137
|
const relativeSource = (0, node_path_1.relative)(targetDir, sourcePath);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// count the files in the source directory
|
|
113
|
-
const fileCount = countFilesInDirectory(sourcePath);
|
|
114
|
-
totalFileCount += fileCount;
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
if (error.code === 'EEXIST') {
|
|
118
|
-
console.log(` ⚠️ ${relativeTargetPath} already exists (skipped)`);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
throw error;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
138
|
+
(0, node_fs_1.symlinkSync)(relativeSource, targetPath, 'dir');
|
|
139
|
+
setDirectoryReadonlyExecutable(sourcePath);
|
|
140
|
+
const fileCount = countFilesInDirectory(sourcePath);
|
|
141
|
+
totalFileCount += fileCount;
|
|
124
142
|
}
|
|
125
143
|
return totalFileCount;
|
|
126
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.
|
|
5
|
+
"version": "1.14.0",
|
|
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",
|