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.
@@ -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
- return printReadme(`${registry.slug}`, registry.readme);
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
- return printReadme(`${role.slug}`, role.readme);
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":"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"}
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
- // Upsert .agent/repo=$repo/readme.md
55
- if (repo.readme) {
56
- const repoReadmePath = (0, node_path_1.resolve)(repoDir, 'readme.md');
57
- const relativeRepoReadmePath = (0, node_path_1.relative)(process.cwd(), repoReadmePath);
58
- (0, node_fs_1.writeFileSync)(repoReadmePath, repo.readme, 'utf8');
59
- console.log(` + ${relativeRepoReadmePath} (upserted)`);
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
- // Upsert .agent/repo=$repo/role=$role/readme.md
62
- if (role.readme) {
63
- const roleReadmePath = (0, node_path_1.resolve)(repoRoleDir, 'readme.md');
64
- const relativeRoleReadmePath = (0, node_path_1.relative)(process.cwd(), roleReadmePath);
65
- (0, node_fs_1.writeFileSync)(roleReadmePath, role.readme, 'utf8');
66
- console.log(` + ${relativeRoleReadmePath} (upserted)`);
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":"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"}
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 = a readme that explains more about the role
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: string;
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-formatted overview of what this registry contains
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: string;
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.9",
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.15.2",
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.15.21",
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",