rhachet 1.19.12 → 1.19.14

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.
@@ -5,6 +5,7 @@ const rhachet_artifact_git_1 = require("rhachet-artifact-git");
5
5
  const discoverRolePackages_1 = require("../../domain.operations/init/discoverRolePackages");
6
6
  const generateRhachetConfig_1 = require("../../domain.operations/init/generateRhachetConfig");
7
7
  const findsertFile_1 = require("../../infra/findsertFile");
8
+ const upsertFile_1 = require("../../infra/upsertFile");
8
9
  const node_fs_1 = require("node:fs");
9
10
  const node_path_1 = require("node:path");
10
11
  /**
@@ -16,7 +17,8 @@ const invokeInit = ({ program }) => {
16
17
  program
17
18
  .command('init')
18
19
  .description('initialize rhachet.use.ts config from discovered role packages')
19
- .action(async () => {
20
+ .option('--mode <mode>', 'findsert (default) preserves existing, upsert overwrites', 'findsert')
21
+ .action(async (options) => {
20
22
  const cwd = process.cwd();
21
23
  const root = await (0, rhachet_artifact_git_1.getGitRepoRoot)({ from: cwd });
22
24
  console.log(``);
@@ -34,14 +36,17 @@ const invokeInit = ({ program }) => {
34
36
  for (const pkg of packages) {
35
37
  console.log(` - [found] ${pkg}`);
36
38
  }
39
+ // select persist function based on mode
40
+ const persistFile = options.mode === 'upsert' ? upsertFile_1.upsertFile : findsertFile_1.findsertFile;
37
41
  console.log(``);
38
- console.log(`✨ findsert rhachet resources...`);
39
- // findsert rhachet.use.ts
42
+ console.log(`✨ ${options.mode} rhachet resources...`);
43
+ // persist rhachet.use.ts (upsert or findsert based on mode)
40
44
  const configPath = (0, node_path_1.resolve)(root, 'rhachet.use.ts');
41
45
  const configContent = (0, generateRhachetConfig_1.generateRhachetConfig)({ packages });
42
- (0, findsertFile_1.findsertFile)({ cwd, path: configPath, content: configContent });
46
+ persistFile({ cwd, path: configPath, content: configContent });
43
47
  // fix legacy import syntax: `import { InvokeHook` -> `import type { InvokeHook`
44
- if ((0, node_fs_1.existsSync)(configPath)) {
48
+ // (only needed for findsert mode when existing file may have old syntax)
49
+ if (options.mode === 'findsert' && (0, node_fs_1.existsSync)(configPath)) {
45
50
  const content = (0, node_fs_1.readFileSync)(configPath, 'utf8');
46
51
  if (content.includes('import { InvokeHook')) {
47
52
  const fixed = content.replace(/import \{ InvokeHook/g, 'import type { InvokeHook');
@@ -49,11 +54,11 @@ const invokeInit = ({ program }) => {
49
54
  console.log(` ↻ [fixed] ${(0, node_path_1.relative)(cwd, configPath)} (import type)`);
50
55
  }
51
56
  }
52
- // findsert .agent/repo=.this/role=any directories and readme
57
+ // persist .agent/repo=.this/role=any directories and readme
53
58
  const roleAnyDir = (0, node_path_1.resolve)(root, '.agent', 'repo=.this', 'role=any');
54
- (0, findsertFile_1.findsertFile)({ cwd, path: (0, node_path_1.resolve)(roleAnyDir, 'briefs') });
55
- (0, findsertFile_1.findsertFile)({ cwd, path: (0, node_path_1.resolve)(roleAnyDir, 'skills') });
56
- (0, findsertFile_1.findsertFile)({
59
+ persistFile({ cwd, path: (0, node_path_1.resolve)(roleAnyDir, 'briefs') });
60
+ persistFile({ cwd, path: (0, node_path_1.resolve)(roleAnyDir, 'skills') });
61
+ persistFile({
57
62
  cwd,
58
63
  path: (0, node_path_1.resolve)(roleAnyDir, 'readme.md'),
59
64
  content: 'this role applies to any agent that works within this repo\n',
@@ -1 +1 @@
1
- {"version":3,"file":"invokeInit.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeInit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invokeInit.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeInit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * .what = upsert a file or directory (update or insert)
3
+ * .why = explicit overwrite - reports [updated] if exists, [created] if not
4
+ */
5
+ export declare const upsertFile: (input: {
6
+ cwd: string;
7
+ path: string;
8
+ content?: string;
9
+ }) => {
10
+ effect: 'UPDATED' | 'CREATED';
11
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertFile = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ /**
7
+ * .what = upsert a file or directory (update or insert)
8
+ * .why = explicit overwrite - reports [updated] if exists, [created] if not
9
+ */
10
+ const upsertFile = (input) => {
11
+ const existed = (0, node_fs_1.existsSync)(input.path);
12
+ // create file or directory
13
+ if (input.content !== undefined)
14
+ (0, node_fs_1.writeFileSync)(input.path, input.content, 'utf8');
15
+ else
16
+ (0, node_fs_1.mkdirSync)(input.path, { recursive: true });
17
+ if (existed) {
18
+ console.log(` ↻ [updated] ${(0, node_path_1.relative)(input.cwd, input.path)}`);
19
+ return { effect: 'UPDATED' };
20
+ }
21
+ console.log(` + [created] ${(0, node_path_1.relative)(input.cwd, input.path)}`);
22
+ return { effect: 'CREATED' };
23
+ };
24
+ exports.upsertFile = upsertFile;
25
+ //# sourceMappingURL=upsertFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertFile.js","sourceRoot":"","sources":["../../src/infra/upsertFile.ts"],"names":[],"mappings":";;;AAAA,qCAA+D;AAC/D,yCAAqC;AAErC;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,KAI1B,EAAqC,EAAE;IACtC,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAC7B,IAAA,uBAAa,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;;QAC9C,IAAA,mBAAS,EAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAA,oBAAQ,EAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAA,oBAAQ,EAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAnBW,QAAA,UAAU,cAmBrB"}
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.12",
5
+ "version": "1.19.14",
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.19.9",
98
+ "rhachet": "1.19.11",
99
99
  "rhachet-roles-bhrain": "0.5.5",
100
- "rhachet-roles-bhuild": "0.4.2",
101
- "rhachet-roles-ehmpathy": "1.17.7",
100
+ "rhachet-roles-bhuild": "0.5.1",
101
+ "rhachet-roles-ehmpathy": "1.17.8",
102
102
  "test-fns": "1.7.0",
103
103
  "tsc-alias": "1.8.10",
104
104
  "tsx": "~4.20.6",