rhachet 1.19.9 → 1.19.10
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/invokeReadme.js +8 -3
- package/dist/contract/cli/invokeReadme.js.map +1 -1
- package/dist/contract/cli/invokeRolesLink.js +19 -12
- package/dist/contract/cli/invokeRolesLink.js.map +1 -1
- package/dist/domain.objects/Role.d.ts +4 -2
- package/dist/domain.objects/RoleRegistry.d.ts +4 -2
- package/dist/domain.operations/invoke/link/symlinkReadme.d.ts +10 -0
- package/dist/domain.operations/invoke/link/symlinkReadme.js +41 -0
- package/dist/domain.operations/invoke/link/symlinkReadme.js.map +1 -0
- package/package.json +3 -3
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.indentLines = exports.invokeReadme = void 0;
|
|
4
4
|
const helpful_errors_1 = require("helpful-errors");
|
|
5
5
|
const assureFindRole_1 = require("../../domain.operations/invoke/assureFindRole");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
6
8
|
/**
|
|
7
9
|
* .what = main entrypoint for `readme` CLI command
|
|
8
10
|
* .why = allows devs to introspect registry, role, or skill documentation from the CLI
|
|
@@ -26,7 +28,8 @@ const invokeReadme = ({ program, registries, }) => {
|
|
|
26
28
|
if (!registry)
|
|
27
29
|
helpful_errors_1.BadRequestError.throw(`no repo matches given options`);
|
|
28
30
|
// repo level readme
|
|
29
|
-
|
|
31
|
+
const repoReadmeContent = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(process.cwd(), registry.readme.uri), 'utf-8');
|
|
32
|
+
return printReadme(`${registry.slug}`, repoReadmeContent);
|
|
30
33
|
}
|
|
31
34
|
// resolve role
|
|
32
35
|
const role = (0, assureFindRole_1.assureFindRole)({ registries, slug: opts.role });
|
|
@@ -35,8 +38,10 @@ const invokeReadme = ({ program, registries, }) => {
|
|
|
35
38
|
registries: registries.map((thisRegistry) => thisRegistry.slug),
|
|
36
39
|
});
|
|
37
40
|
// role-level readme
|
|
38
|
-
if (!opts.skill)
|
|
39
|
-
|
|
41
|
+
if (!opts.skill) {
|
|
42
|
+
const roleReadmeContent = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(process.cwd(), role.readme.uri), 'utf-8');
|
|
43
|
+
return printReadme(`${role.slug}`, roleReadmeContent);
|
|
44
|
+
}
|
|
40
45
|
// resolve skill
|
|
41
46
|
const skill = role.skills.refs.find((s) => s.slug === opts.skill);
|
|
42
47
|
if (!skill)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeReadme.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeReadme.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAGjD,iFAA8E;AAE9E;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SAClD,MAAM,CAAC,CAAC,IAAsD,EAAE,EAAE;QACjE,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1B,gCAAe,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEzD,gCAAgC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;YACxB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ;gBAAE,gCAAe,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEtE,oBAAoB;YACpB,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"invokeReadme.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeReadme.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const assureFindRole_1 = require("../../domain.operations/invoke/assureFindRole"
|
|
|
6
6
|
const getAgentReadmeTemplates_1 = require("../../domain.operations/invoke/getAgentReadmeTemplates");
|
|
7
7
|
const inferRepoByRole_1 = require("../../domain.operations/invoke/inferRepoByRole");
|
|
8
8
|
const findsertFile_1 = require("../../domain.operations/invoke/link/findsertFile");
|
|
9
|
+
const symlinkReadme_1 = require("../../domain.operations/invoke/link/symlinkReadme");
|
|
9
10
|
const symlinkResourceDirectories_1 = require("../../domain.operations/invoke/link/symlinkResourceDirectories");
|
|
10
11
|
const node_fs_1 = require("node:fs");
|
|
11
12
|
const node_path_1 = require("node:path");
|
|
@@ -51,19 +52,25 @@ const invokeRolesLink = ({ command, registries, }) => {
|
|
|
51
52
|
path: (0, node_path_1.resolve)(repoThisDir, 'readme.md'),
|
|
52
53
|
template: (0, getAgentReadmeTemplates_1.getAgentRepoThisReadmeTemplate)(),
|
|
53
54
|
});
|
|
54
|
-
//
|
|
55
|
-
if (repo.readme) {
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
(0,
|
|
59
|
-
|
|
55
|
+
// Symlink .agent/repo=$repo/readme.md
|
|
56
|
+
if (repo.readme?.uri) {
|
|
57
|
+
const targetPath = (0, node_path_1.resolve)(repoDir, 'readme.md');
|
|
58
|
+
const relativeTargetPath = (0, node_path_1.relative)(process.cwd(), targetPath);
|
|
59
|
+
const { status } = (0, symlinkReadme_1.symlinkReadme)({
|
|
60
|
+
sourcePath: repo.readme.uri,
|
|
61
|
+
targetPath,
|
|
62
|
+
});
|
|
63
|
+
console.log(` ${status === 'updated' ? '↻' : '+'} ${relativeTargetPath}${status === 'updated' ? ' (updated)' : ''}`);
|
|
60
64
|
}
|
|
61
|
-
//
|
|
62
|
-
if (role.readme) {
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
(0,
|
|
66
|
-
|
|
65
|
+
// Symlink .agent/repo=$repo/role=$role/readme.md
|
|
66
|
+
if (role.readme?.uri) {
|
|
67
|
+
const targetPath = (0, node_path_1.resolve)(repoRoleDir, 'readme.md');
|
|
68
|
+
const relativeTargetPath = (0, node_path_1.relative)(process.cwd(), targetPath);
|
|
69
|
+
const { status } = (0, symlinkReadme_1.symlinkReadme)({
|
|
70
|
+
sourcePath: role.readme.uri,
|
|
71
|
+
targetPath,
|
|
72
|
+
});
|
|
73
|
+
console.log(` ${status === 'updated' ? '↻' : '+'} ${relativeTargetPath}${status === 'updated' ? ' (updated)' : ''}`);
|
|
67
74
|
}
|
|
68
75
|
// Link briefs if configured
|
|
69
76
|
const briefsCount = (0, symlinkResourceDirectories_1.symlinkResourceDirectories)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeRolesLink.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesLink.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAGjD,iFAA8E;AAC9E,mGAG+D;AAC/D,mFAAgF;AAChF,kFAA+E;AAC/E,8GAA2G;AAE3G,
|
|
1
|
+
{"version":3,"file":"invokeRolesLink.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesLink.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,11 +46,13 @@ export interface Role<TSolid extends RoleSkillRegistry = RoleSkillRegistry, TRig
|
|
|
46
46
|
*/
|
|
47
47
|
purpose: string;
|
|
48
48
|
/**
|
|
49
|
-
* .what =
|
|
49
|
+
* .what = reference to markdown file that explains more about the role
|
|
50
50
|
* .why =
|
|
51
51
|
* - give detail about what it does and how it does it
|
|
52
52
|
*/
|
|
53
|
-
readme:
|
|
53
|
+
readme: {
|
|
54
|
+
uri: string;
|
|
55
|
+
};
|
|
54
56
|
/**
|
|
55
57
|
* .what = the traits inherent to the role
|
|
56
58
|
* .why = declares how the role goes about things
|
|
@@ -18,10 +18,12 @@ export interface RoleRegistry {
|
|
|
18
18
|
*/
|
|
19
19
|
slug: string;
|
|
20
20
|
/**
|
|
21
|
-
* .what = markdown
|
|
21
|
+
* .what = reference to markdown file with overview of what this registry contains
|
|
22
22
|
* .why = provides documentation, context, and intended use
|
|
23
23
|
*/
|
|
24
|
-
readme:
|
|
24
|
+
readme: {
|
|
25
|
+
uri: string;
|
|
26
|
+
};
|
|
25
27
|
/**
|
|
26
28
|
* .what = the roles that this registry has collected
|
|
27
29
|
*/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = creates or updates a symlink to a readme file
|
|
3
|
+
* .why = enables idempotent symlink creation for role and repo readme files
|
|
4
|
+
*/
|
|
5
|
+
export declare const symlinkReadme: (input: {
|
|
6
|
+
sourcePath: string;
|
|
7
|
+
targetPath: string;
|
|
8
|
+
}) => {
|
|
9
|
+
status: 'created' | 'updated';
|
|
10
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.symlinkReadme = void 0;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
/**
|
|
7
|
+
* .what = creates or updates a symlink to a readme file
|
|
8
|
+
* .why = enables idempotent symlink creation for role and repo readme files
|
|
9
|
+
*/
|
|
10
|
+
const symlinkReadme = (input) => {
|
|
11
|
+
const { sourcePath, targetPath } = input;
|
|
12
|
+
// resolve to absolute paths
|
|
13
|
+
const sourceAbsolute = (0, node_path_1.resolve)(process.cwd(), sourcePath);
|
|
14
|
+
const targetAbsolute = (0, node_path_1.resolve)(process.cwd(), targetPath);
|
|
15
|
+
// check if target already present (lstatSync detects broken symlinks, existsSync does not)
|
|
16
|
+
const hadTargetBefore = (() => {
|
|
17
|
+
try {
|
|
18
|
+
(0, node_fs_1.lstatSync)(targetAbsolute);
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
})();
|
|
25
|
+
// remove prior target if present (handles both files and broken symlinks)
|
|
26
|
+
if (hadTargetBefore) {
|
|
27
|
+
try {
|
|
28
|
+
(0, node_fs_1.unlinkSync)(targetAbsolute);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
(0, node_fs_1.rmSync)(targetAbsolute, { force: true });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// create relative symlink from target directory to source file
|
|
35
|
+
const targetDir = (0, node_path_1.resolve)(targetAbsolute, '..');
|
|
36
|
+
const relativeSource = (0, node_path_1.relative)(targetDir, sourceAbsolute);
|
|
37
|
+
(0, node_fs_1.symlinkSync)(relativeSource, targetAbsolute, 'file');
|
|
38
|
+
return { status: hadTargetBefore ? 'updated' : 'created' };
|
|
39
|
+
};
|
|
40
|
+
exports.symlinkReadme = symlinkReadme;
|
|
41
|
+
//# sourceMappingURL=symlinkReadme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symlinkReadme.js","sourceRoot":"","sources":["../../../../src/domain.operations/invoke/link/symlinkReadme.ts"],"names":[],"mappings":";;;AAAA,qCAAqE;AACrE,yCAA8C;AAE9C;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,KAG7B,EAAqC,EAAE;IACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAEzC,4BAA4B;IAC5B,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAE1D,2FAA2F;IAC3F,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC;YACH,IAAA,mBAAS,EAAC,cAAc,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,0EAA0E;IAC1E,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAA,oBAAU,EAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAA,gBAAM,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,IAAA,oBAAQ,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3D,IAAA,qBAAW,EAAC,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAEpD,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC7D,CAAC,CAAC;AAnCW,QAAA,aAAa,iBAmCxB"}
|
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.19.
|
|
5
|
+
"version": "1.19.10",
|
|
6
6
|
"repository": "ehmpathy/rhachet",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet",
|
|
8
8
|
"keywords": [
|
|
@@ -95,10 +95,10 @@
|
|
|
95
95
|
"esbuild-register": "3.6.0",
|
|
96
96
|
"husky": "8.0.3",
|
|
97
97
|
"jest": "30.2.0",
|
|
98
|
-
"rhachet": "1.
|
|
98
|
+
"rhachet": "1.19.9",
|
|
99
99
|
"rhachet-roles-bhrain": "0.5.5",
|
|
100
100
|
"rhachet-roles-bhuild": "0.4.2",
|
|
101
|
-
"rhachet-roles-ehmpathy": "1.
|
|
101
|
+
"rhachet-roles-ehmpathy": "1.17.6",
|
|
102
102
|
"test-fns": "1.7.0",
|
|
103
103
|
"tsc-alias": "1.8.10",
|
|
104
104
|
"tsx": "~4.20.6",
|