rhachet-roles-bhuild 0.20.1 → 0.21.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.
Files changed (31) hide show
  1. package/dist/contract/cli/init.behavior.js +34 -31
  2. package/dist/contract/cli/init.behavior.js.map +1 -1
  3. package/dist/domain.operations/behavior/init/asBehaviorTargetDir.d.ts +7 -0
  4. package/dist/domain.operations/behavior/init/asBehaviorTargetDir.js +10 -0
  5. package/dist/domain.operations/behavior/init/asBehaviorTargetDir.js.map +1 -0
  6. package/dist/domain.operations/behavior/init/asCleanRelativePath.d.ts +7 -0
  7. package/dist/domain.operations/behavior/init/asCleanRelativePath.js +10 -0
  8. package/dist/domain.operations/behavior/init/asCleanRelativePath.js.map +1 -0
  9. package/dist/domain.operations/behavior/init/asDatedBehaviorDir.d.ts +8 -0
  10. package/dist/domain.operations/behavior/init/asDatedBehaviorDir.js +18 -0
  11. package/dist/domain.operations/behavior/init/asDatedBehaviorDir.js.map +1 -0
  12. package/dist/domain.operations/behavior/init/findsertWishFromInput.d.ts +8 -0
  13. package/dist/domain.operations/behavior/init/findsertWishFromInput.js +37 -0
  14. package/dist/domain.operations/behavior/init/findsertWishFromInput.js.map +1 -0
  15. package/dist/domain.operations/behavior/init/getWishContent.d.ts +7 -0
  16. package/dist/domain.operations/behavior/init/getWishContent.js +16 -0
  17. package/dist/domain.operations/behavior/init/getWishContent.js.map +1 -0
  18. package/dist/domain.operations/behavior/init/templates/1.vision.guard.heavy +25 -0
  19. package/dist/domain.operations/behavior/init/templates/1.vision.guard.light +25 -0
  20. package/dist/domain.operations/behavior/init/templates/1.vision.stone +21 -0
  21. package/dist/domain.roles/behaver/getBehaverRole.js +1 -1
  22. package/dist/domain.roles/behaver/getBehaverRole.js.map +1 -1
  23. package/dist/domain.roles/decomposer/getDecomposerRole.js +1 -1
  24. package/dist/domain.roles/decomposer/getDecomposerRole.js.map +1 -1
  25. package/dist/domain.roles/dispatcher/getDispatcherRole.js +1 -1
  26. package/dist/domain.roles/dispatcher/getDispatcherRole.js.map +1 -1
  27. package/dist/domain.roles/dreamer/getDreamerRole.js +1 -1
  28. package/dist/domain.roles/dreamer/getDreamerRole.js.map +1 -1
  29. package/dist/index.js +31 -12
  30. package/dist/index.js.map +1 -1
  31. package/package.json +4 -4
@@ -7,12 +7,18 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.initBehavior = void 0;
10
+ const helpful_errors_1 = require("helpful-errors");
10
11
  const path_1 = require("path");
11
12
  const route_1 = require("rhachet-roles-bhrain/sdk/route");
12
13
  const zod_1 = require("zod");
13
14
  const bind_1 = require("../../domain.operations/behavior/bind");
14
15
  const findBehaviorByExactName_1 = require("../../domain.operations/behavior/findBehaviorByExactName");
15
16
  const init_1 = require("../../domain.operations/behavior/init");
17
+ const asBehaviorTargetDir_1 = require("../../domain.operations/behavior/init/asBehaviorTargetDir");
18
+ const asCleanRelativePath_1 = require("../../domain.operations/behavior/init/asCleanRelativePath");
19
+ const asDatedBehaviorDir_1 = require("../../domain.operations/behavior/init/asDatedBehaviorDir");
20
+ const findsertWishFromInput_1 = require("../../domain.operations/behavior/init/findsertWishFromInput");
21
+ const getWishContent_1 = require("../../domain.operations/behavior/init/getWishContent");
16
22
  const expandBehaviorName_1 = require("../../domain.operations/behavior/name/expandBehaviorName");
17
23
  const computeFooterOutput_1 = require("../../domain.operations/behavior/render/computeFooterOutput");
18
24
  const cli_1 = require("../../infra/cli");
@@ -29,6 +35,7 @@ const schemaOfArgs = zod_1.z.object({
29
35
  open: zod_1.z.string().optional(),
30
36
  size: zod_1.z.enum(['nano', 'mini', 'medi', 'mega', 'giga']).optional(),
31
37
  guard: zod_1.z.enum(['light', 'heavy']).optional(),
38
+ wish: zod_1.z.string().optional(),
32
39
  // rhachet passthrough args (optional, ignored)
33
40
  repo: zod_1.z.string().optional(),
34
41
  role: zod_1.z.string().optional(),
@@ -45,16 +52,10 @@ const initBehavior = async () => {
45
52
  const context = { cwd: process.cwd() };
46
53
  const targetDirRaw = named.dir ?? '.';
47
54
  // validate --open has a value if provided
48
- if (named.open !== undefined && named.open.trim() === '') {
49
- console.error('💥 error: --open requires an editor name');
50
- console.error('');
51
- console.error('please specify what editor to open with. for example:');
52
- console.error(' --open codium');
53
- console.error(' --open vim');
54
- console.error(' --open zed');
55
- console.error(' --open code');
56
- process.exit(1);
57
- }
55
+ if (named.open !== undefined && named.open.trim() === '')
56
+ throw new helpful_errors_1.ConstraintError('--open requires an editor name', {
57
+ hint: 'specify what editor to open with: --open codium, --open vim, --open zed, --open code',
58
+ });
58
59
  // get current branch
59
60
  const currentBranch = (0, bind_1.getCurrentBranch)({}, context);
60
61
  // expand @branch token to behavior name
@@ -63,21 +64,13 @@ const initBehavior = async () => {
63
64
  branch: currentBranch,
64
65
  });
65
66
  // trim .behavior suffix from target dir if present
66
- const targetDir = targetDirRaw.replace(/\/?\.behavior\/?$/, '');
67
+ const targetDir = (0, asBehaviorTargetDir_1.asBehaviorTargetDir)({ targetDirRaw });
67
68
  // check for extant behavior with same name (different date)
68
69
  const behaviorFound = (0, findBehaviorByExactName_1.findBehaviorByExactName)({ name: behaviorName, targetDir }, context);
69
70
  // reuse extant behavior or create new with today's date
70
- const behaviorDir = (() => {
71
- if (behaviorFound) {
72
- return behaviorFound;
73
- }
74
- // generate isodate in format YYYY_MM_DD
75
- const now = new Date();
76
- const isoDate = `${now.getFullYear()}_${String(now.getMonth() + 1).padStart(2, '0')}_${String(now.getDate()).padStart(2, '0')}`;
77
- return (0, path_1.join)(targetDir, '.behavior', `v${isoDate}.${behaviorName}`);
78
- })();
79
- // clean up leading ./ for display and route binding
80
- const behaviorDirRel = behaviorDir.replace(/^\.\//, '');
71
+ const behaviorDir = behaviorFound ?? (0, asDatedBehaviorDir_1.asDatedBehaviorDir)({ targetDir, behaviorName });
72
+ // remove prefix ./ for display and route bind
73
+ const behaviorDirRel = (0, asCleanRelativePath_1.asCleanRelativePath)({ path: behaviorDir });
81
74
  // check if branch already bound (must be after behaviorDir is computed)
82
75
  const bindResult = (0, bind_1.getBranchBehaviorBind)({
83
76
  branchName: currentBranch,
@@ -85,13 +78,13 @@ const initBehavior = async () => {
85
78
  }, context);
86
79
  // compare absolute paths to handle relative vs absolute format differences
87
80
  const behaviorDirAbs = (0, path_1.resolve)(context.cwd, behaviorDir);
88
- if (bindResult.behaviorDir && bindResult.behaviorDir !== behaviorDirAbs) {
89
- console.error(`💥 error: branch '${currentBranch}' is already bound to: ${(0, path_1.basename)(bindResult.behaviorDir)}`);
90
- console.error('');
91
- console.error('to create a new behavior, use a new tree:');
92
- console.error(' git tree set --from main --open <branch-name-new>');
93
- process.exit(1);
94
- }
81
+ if (bindResult.behaviorDir && bindResult.behaviorDir !== behaviorDirAbs)
82
+ throw new helpful_errors_1.ConstraintError(`branch '${currentBranch}' is already bound to: ${(0, path_1.basename)(bindResult.behaviorDir)}`, {
83
+ hint: 'to create a new behavior, use a new tree: git tree set --from main --open <branch-name-new>',
84
+ currentBranch,
85
+ boundTo: bindResult.behaviorDir,
86
+ attempted: behaviorDirAbs,
87
+ });
95
88
  // initialize behavior directory with template files
96
89
  const result = (0, init_1.initBehaviorDir)({
97
90
  behaviorDir,
@@ -99,6 +92,13 @@ const initBehavior = async () => {
99
92
  size: named.size,
100
93
  guard: named.guard,
101
94
  });
95
+ // compute wish file path
96
+ const wishPath = (0, path_1.join)(behaviorDir, '0.wish.md');
97
+ // if --wish provided, findsert content into wish file
98
+ if (named.wish !== undefined) {
99
+ const wishInput = (0, getWishContent_1.getWishContent)({ wish: named.wish });
100
+ (0, findsertWishFromInput_1.findsertWishFromInput)({ wishInput, wishPath });
101
+ }
102
102
  // render tree-style output
103
103
  const treeOutput = (0, init_1.computeOutputTree)({
104
104
  created: result.created,
@@ -109,6 +109,7 @@ const initBehavior = async () => {
109
109
  // compute relative path to wish file
110
110
  const wishPathRel = `${behaviorDirRel}/0.wish.md`;
111
111
  // try opener if --open is provided (before footer render)
112
+ // .note = graceful degradation: behavior init succeeds even if opener fails
112
113
  let openerUsed;
113
114
  if (named.open) {
114
115
  try {
@@ -117,8 +118,10 @@ const initBehavior = async () => {
117
118
  }
118
119
  catch (error) {
119
120
  if (error instanceof OpenerUnavailableError_1.OpenerUnavailableError) {
120
- console.log('');
121
- console.log(`⚠️ ${error.message}`);
121
+ // log to stderr: opener failed but behavior init succeeded
122
+ console.error('');
123
+ console.error(`⚠️ ${error.message}`);
124
+ console.error(` behavior created, open manually: ${wishPathRel}`);
122
125
  }
123
126
  else {
124
127
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.behavior.js","sourceRoot":"","sources":["../../../src/contract/cli/init.behavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * .what = strip .behavior suffix from target directory path
3
+ * .why = users may pass path that ends in .behavior; strip for consistent handling
4
+ */
5
+ export declare const asBehaviorTargetDir: (input: {
6
+ targetDirRaw: string;
7
+ }) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asBehaviorTargetDir = void 0;
4
+ /**
5
+ * .what = strip .behavior suffix from target directory path
6
+ * .why = users may pass path that ends in .behavior; strip for consistent handling
7
+ */
8
+ const asBehaviorTargetDir = (input) => input.targetDirRaw.replace(/\/?\.behavior\/?$/, '');
9
+ exports.asBehaviorTargetDir = asBehaviorTargetDir;
10
+ //# sourceMappingURL=asBehaviorTargetDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asBehaviorTargetDir.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/asBehaviorTargetDir.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAU,EAAE,CAC7E,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AADzC,QAAA,mBAAmB,uBACsB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * .what = remove prefix ./ from path for clean display
3
+ * .why = paths like ./foo should display as foo in output and route bind
4
+ */
5
+ export declare const asCleanRelativePath: (input: {
6
+ path: string;
7
+ }) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asCleanRelativePath = void 0;
4
+ /**
5
+ * .what = remove prefix ./ from path for clean display
6
+ * .why = paths like ./foo should display as foo in output and route bind
7
+ */
8
+ const asCleanRelativePath = (input) => input.path.replace(/^\.\//, '');
9
+ exports.asCleanRelativePath = asCleanRelativePath;
10
+ //# sourceMappingURL=asCleanRelativePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asCleanRelativePath.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/asCleanRelativePath.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAuB,EAAU,EAAE,CACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AADrB,QAAA,mBAAmB,uBACE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * .what = generate behavior directory path with today's date prefix
3
+ * .why = new behaviors get versioned directory names like v2026_04_17.my-feature
4
+ */
5
+ export declare const asDatedBehaviorDir: (input: {
6
+ targetDir: string;
7
+ behaviorName: string;
8
+ }) => string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asDatedBehaviorDir = void 0;
4
+ const path_1 = require("path");
5
+ /**
6
+ * .what = generate behavior directory path with today's date prefix
7
+ * .why = new behaviors get versioned directory names like v2026_04_17.my-feature
8
+ */
9
+ const asDatedBehaviorDir = (input) => {
10
+ const now = new Date();
11
+ const year = now.getFullYear();
12
+ const month = String(now.getMonth() + 1).padStart(2, '0');
13
+ const day = String(now.getDate()).padStart(2, '0');
14
+ const isoDate = `${year}_${month}_${day}`;
15
+ return (0, path_1.join)(input.targetDir, '.behavior', `v${isoDate}.${input.behaviorName}`);
16
+ };
17
+ exports.asDatedBehaviorDir = asDatedBehaviorDir;
18
+ //# sourceMappingURL=asDatedBehaviorDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asDatedBehaviorDir.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/asDatedBehaviorDir.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAE5B;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,KAGlC,EAAU,EAAE;IACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IAC1C,OAAO,IAAA,WAAI,EACT,KAAK,CAAC,SAAS,EACf,WAAW,EACX,IAAI,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,CACpC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * .what = validates wish input and findserts into wish file
3
+ * .why = findsert semantics: same = no-op, template = populate, different = error
4
+ */
5
+ export declare const findsertWishFromInput: (input: {
6
+ wishInput: string;
7
+ wishPath: string;
8
+ }) => void;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findsertWishFromInput = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ /**
7
+ * .what = validates wish input and findserts into wish file
8
+ * .why = findsert semantics: same = no-op, template = populate, different = error
9
+ */
10
+ const findsertWishFromInput = (input) => {
11
+ // validate non-empty
12
+ if (!input.wishInput.trim()) {
13
+ console.error('error: --wish requires content');
14
+ process.exit(2); // constraint error: user must fix
15
+ }
16
+ // findsert semantics
17
+ const wishExpected = `wish =\n\n${input.wishInput}\n`;
18
+ const wishCurrent = (0, fs_1.readFileSync)(input.wishPath, 'utf-8');
19
+ const wishPathRel = (0, path_1.relative)(process.cwd(), input.wishPath);
20
+ if (wishCurrent === wishExpected) {
21
+ // already populated with same content — no-op (idempotent)
22
+ return;
23
+ }
24
+ if (wishCurrent.trim() === 'wish =' || wishCurrent.trim() === '') {
25
+ // template or empty — populate
26
+ (0, fs_1.writeFileSync)(input.wishPath, wishExpected);
27
+ return;
28
+ }
29
+ // different content — error
30
+ console.error('error: wish file has been modified');
31
+ console.error('');
32
+ console.error('to overwrite, delete the wish file first:');
33
+ console.error(` rm ${wishPathRel}`);
34
+ process.exit(2); // constraint error: user must fix
35
+ };
36
+ exports.findsertWishFromInput = findsertWishFromInput;
37
+ //# sourceMappingURL=findsertWishFromInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findsertWishFromInput.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/findsertWishFromInput.ts"],"names":[],"mappings":";;;AAAA,2BAAiD;AACjD,+BAAgC;AAEhC;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAGrC,EAAQ,EAAE;IACT,qBAAqB;IACrB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;IACrD,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAG,aAAa,KAAK,CAAC,SAAS,IAAI,CAAC;IACtD,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,2DAA2D;QAC3D,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,+BAA+B;QAC/B,IAAA,kBAAa,EAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;AACrD,CAAC,CAAC;AAhCW,QAAA,qBAAqB,yBAgChC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * .what = extracts wish content from @stdin or returns inline value
3
+ * .why = handles @stdin pattern for piped input
4
+ */
5
+ export declare const getWishContent: (input: {
6
+ wish: string;
7
+ }) => string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWishContent = void 0;
4
+ const fs_1 = require("fs");
5
+ /**
6
+ * .what = extracts wish content from @stdin or returns inline value
7
+ * .why = handles @stdin pattern for piped input
8
+ */
9
+ const getWishContent = (input) => {
10
+ if (input.wish === '@stdin') {
11
+ return (0, fs_1.readFileSync)(0, 'utf-8').trim();
12
+ }
13
+ return input.wish;
14
+ };
15
+ exports.getWishContent = getWishContent;
16
+ //# sourceMappingURL=getWishContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWishContent.js","sourceRoot":"","sources":["../../../../src/domain.operations/behavior/init/getWishContent.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAElC;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAU,EAAE;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAA,iBAAY,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB"}
@@ -9,6 +9,31 @@ judges:
9
9
 
10
10
  reviews:
11
11
  self:
12
+ - slug: has-grounded-in-reality
13
+ say: |
14
+ a junior recently modified files in this repo. we need to carefully
15
+ review the vision due to this.
16
+
17
+ did the junior ground the vision in reality, or make things up?
18
+
19
+ check the groundwork section:
20
+
21
+ for external references (APIs, services, docs):
22
+ - did they actually verify these exist?
23
+ - did they cite what they checked?
24
+ - or did they assume without sanity check?
25
+
26
+ for internal references (extant behavior, patterns, code):
27
+ - did they actually verify what that behavior is?
28
+ - did they verify extant contracts to conform to? (interfaces, types, signatures)
29
+ - did they verify extant vocab to reuse? (domain terms, name patterns)
30
+ - did they verify extant stdouts to match? (CLI output patterns, error formats)
31
+ - did they cite specific files/lines?
32
+ - or did they assume the code works a certain way without verification?
33
+
34
+ this is NOT about exhaustive research — just sanity checks.
35
+ the question is: is this vision coherent with reality, or built on assumptions?
36
+
12
37
  - slug: has-questioned-fundamentals
13
38
  say: |
14
39
  did we reason from first principles or from convention?
@@ -9,6 +9,31 @@ judges:
9
9
 
10
10
  reviews:
11
11
  self:
12
+ - slug: has-grounded-in-reality
13
+ say: |
14
+ a junior recently modified files in this repo. we need to carefully
15
+ review the vision due to this.
16
+
17
+ did the junior ground the vision in reality, or make things up?
18
+
19
+ check the groundwork section:
20
+
21
+ for external references (APIs, services, docs):
22
+ - did they actually verify these exist?
23
+ - did they cite what they checked?
24
+ - or did they assume without sanity check?
25
+
26
+ for internal references (extant behavior, patterns, code):
27
+ - did they actually verify what that behavior is?
28
+ - did they verify extant contracts to conform to? (interfaces, types, signatures)
29
+ - did they verify extant vocab to reuse? (domain terms, name patterns)
30
+ - did they verify extant stdouts to match? (CLI output patterns, error formats)
31
+ - did they cite specific files/lines?
32
+ - or did they assume the code works a certain way without verification?
33
+
34
+ this is NOT about exhaustive research — just sanity checks.
35
+ the question is: is this vision coherent with reality, or built on assumptions?
36
+
12
37
  - slug: has-questioned-requirements
13
38
  say: |
14
39
  a junior recently modified files in this repo. we need to carefully
@@ -42,6 +42,27 @@ specifically,
42
42
  - what must we validate with the wisher before we proceed?
43
43
  - what must we research externally?
44
44
 
45
+ ## groundwork
46
+
47
+ sanity check the vision against reality. NOT exhaustive research — just enough to know the vision isn't built on false assumptions.
48
+
49
+ ### external research
50
+
51
+ if the wish references external APIs, services, or docs:
52
+ - did you verify they exist and work the way you assume?
53
+ - cite what you checked (links, key constraints noted)
54
+ - if none referenced, say "none — no external dependencies"
55
+
56
+ ### internal research
57
+
58
+ if the wish references extant behavior, patterns, or code:
59
+ - did you verify what that behavior actually is?
60
+ - contracts: interfaces, types, signatures to conform to
61
+ - vocab: domain terms, name patterns to reuse
62
+ - stdouts: CLI output patterns, error formats to match
63
+ - cite what you checked (file paths, line numbers)
64
+ - if none referenced, say "none — no extant behavior extended"
65
+
45
66
  ## what is awkward?
46
67
 
47
68
  - what feels off or forced?
@@ -23,7 +23,7 @@ exports.ROLE_BEHAVER = rhachet_1.Role.build({
23
23
  onBrain: {
24
24
  onBoot: [
25
25
  {
26
- command: './node_modules/.bin/rhachet roles boot --role behaver',
26
+ command: 'npx rhachet roles boot --role behaver',
27
27
  timeout: 'PT10S',
28
28
  },
29
29
  {
@@ -1 +1 @@
1
- {"version":3,"file":"getBehaverRole.js","sourceRoot":"","sources":["../../../src/domain.roles/behaver/getBehaverRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,YAAY,GAAS,cAAI,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,kDAAkD;IAC3D,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,uDAAuD;oBAChE,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,OAAO,EACL,6GAA6G;oBAC/G,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"getBehaverRole.js","sourceRoot":"","sources":["../../../src/domain.roles/behaver/getBehaverRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,YAAY,GAAS,cAAI,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,kDAAkD;IAC3D,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,uCAAuC;oBAChD,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,OAAO,EACL,6GAA6G;oBAC/G,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
@@ -23,7 +23,7 @@ exports.ROLE_DECOMPOSER = rhachet_1.Role.build({
23
23
  onBrain: {
24
24
  onBoot: [
25
25
  {
26
- command: './node_modules/.bin/rhachet roles boot --role decomposer',
26
+ command: 'npx rhachet roles boot --role decomposer',
27
27
  timeout: 'PT10S',
28
28
  },
29
29
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"getDecomposerRole.js","sourceRoot":"","sources":["../../../src/domain.roles/decomposer/getDecomposerRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,eAAe,GAAS,cAAI,CAAC,KAAK,CAAC;IAC9C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,sDAAsD;IAC/D,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,0DAA0D;oBACnE,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"getDecomposerRole.js","sourceRoot":"","sources":["../../../src/domain.roles/decomposer/getDecomposerRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,eAAe,GAAS,cAAI,CAAC,KAAK,CAAC;IAC9C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,sDAAsD;IAC/D,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,0CAA0C;oBACnD,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
@@ -23,7 +23,7 @@ exports.ROLE_DISPATCHER = rhachet_1.Role.build({
23
23
  onBrain: {
24
24
  onBoot: [
25
25
  {
26
- command: './node_modules/.bin/rhachet roles boot --role dispatcher',
26
+ command: 'npx rhachet roles boot --role dispatcher',
27
27
  timeout: 'PT10S',
28
28
  },
29
29
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"getDispatcherRole.js","sourceRoot":"","sources":["../../../src/domain.roles/dispatcher/getDispatcherRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,eAAe,GAAS,cAAI,CAAC,KAAK,CAAC;IAC9C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,gDAAgD;IACzD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,0DAA0D;oBACnE,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"getDispatcherRole.js","sourceRoot":"","sources":["../../../src/domain.roles/dispatcher/getDispatcherRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,eAAe,GAAS,cAAI,CAAC,KAAK,CAAC;IAC9C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,gDAAgD;IACzD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,0CAA0C;oBACnD,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
@@ -23,7 +23,7 @@ exports.ROLE_DREAMER = rhachet_1.Role.build({
23
23
  onBrain: {
24
24
  onBoot: [
25
25
  {
26
- command: './node_modules/.bin/rhachet roles boot --role dreamer',
26
+ command: 'npx rhachet roles boot --role dreamer',
27
27
  timeout: 'PT10S',
28
28
  },
29
29
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"getDreamerRole.js","sourceRoot":"","sources":["../../../src/domain.roles/dreamer/getDreamerRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,YAAY,GAAS,cAAI,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,+CAA+C;IACxD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,uDAAuD;oBAChE,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"getDreamerRole.js","sourceRoot":"","sources":["../../../src/domain.roles/dreamer/getDreamerRole.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAElB,QAAA,YAAY,GAAS,cAAI,CAAC,KAAK,CAAC;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,+CAA+C;IACxD,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,EAAE,EAAE;KACT;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,uCAAuC;oBAChD,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ exports.cli = void 0;
18
18
  __exportStar(require("./contract/sdk"), exports);
19
19
  // CLI entry points for portable skill dispatch
20
20
  const emoji_space_shim_1 = require("emoji-space-shim");
21
+ const helpful_errors_1 = require("helpful-errors");
21
22
  const bind_behavior_1 = require("./contract/cli/bind.behavior");
22
23
  const boot_behavior_1 = require("./contract/cli/boot.behavior");
23
24
  const catch_dream_1 = require("./contract/cli/catch.dream");
@@ -29,18 +30,36 @@ const init_behavior_1 = require("./contract/cli/init.behavior");
29
30
  const radioTaskPull_1 = require("./contract/cli/radioTaskPull");
30
31
  const radioTaskPush_1 = require("./contract/cli/radioTaskPush");
31
32
  const review_behavior_1 = require("./contract/cli/review.behavior");
33
+ const asCli = (logic) => async () => {
34
+ try {
35
+ await logic();
36
+ }
37
+ catch (error) {
38
+ if (error instanceof helpful_errors_1.ConstraintError) {
39
+ const metadata = error.metadata;
40
+ const hint = metadata?.hint;
41
+ console.error(`✋ ConstraintError: ${error.message.replace(/^✋ ConstraintError: /, '')}`);
42
+ if (hint) {
43
+ console.error('');
44
+ console.error(hint);
45
+ }
46
+ process.exit(helpful_errors_1.ConstraintError.code.exit);
47
+ }
48
+ throw error;
49
+ }
50
+ };
32
51
  exports.cli = {
33
- bindBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, bind_behavior_1.bindBehavior)() }),
34
- bootBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, boot_behavior_1.bootBehavior)() }),
35
- catchDream: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, catch_dream_1.catchDream)() }),
36
- decomposeBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, decompose_behavior_1.decomposeBehavior)() }),
37
- feedbackGive: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, feedback_give_1.feedbackGive)() }),
38
- feedbackTakeGet: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, feedback_take_get_1.feedbackTakeGet)() }),
39
- feedbackTakeSet: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, feedback_take_set_1.feedbackTakeSet)() }),
40
- giveFeedback: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, feedback_give_1.feedbackGive)() }), // backwards compat
41
- initBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, init_behavior_1.initBehavior)() }),
42
- radioTaskPull: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, radioTaskPull_1.cliRadioTaskPull)() }),
43
- radioTaskPush: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, radioTaskPush_1.cliRadioTaskPush)() }),
44
- reviewBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: async () => (0, review_behavior_1.reviewBehavior)() }),
52
+ bindBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(bind_behavior_1.bindBehavior) }),
53
+ bootBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(boot_behavior_1.bootBehavior) }),
54
+ catchDream: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(catch_dream_1.catchDream) }),
55
+ decomposeBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(decompose_behavior_1.decomposeBehavior) }),
56
+ feedbackGive: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(feedback_give_1.feedbackGive) }),
57
+ feedbackTakeGet: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(feedback_take_get_1.feedbackTakeGet) }),
58
+ feedbackTakeSet: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(feedback_take_set_1.feedbackTakeSet) }),
59
+ giveFeedback: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(feedback_give_1.feedbackGive) }), // backwards compat
60
+ initBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(init_behavior_1.initBehavior) }),
61
+ radioTaskPull: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(radioTaskPull_1.cliRadioTaskPull) }),
62
+ radioTaskPush: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(radioTaskPush_1.cliRadioTaskPush) }),
63
+ reviewBehavior: () => (0, emoji_space_shim_1.withEmojiSpaceShim)({ logic: asCli(review_behavior_1.reviewBehavior) }),
45
64
  };
46
65
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAE/B,+CAA+C;AAC/C,uDAAsD;AAEtD,gEAA4D;AAC5D,gEAA4D;AAC5D,4DAAwD;AACxD,0EAAsE;AACtE,gEAA4D;AAC5D,wEAAmE;AACnE,wEAAmE;AACnE,gEAA4D;AAC5D,gEAAgE;AAChE,gEAAgE;AAChE,oEAAgE;AAEnD,QAAA,GAAG,GAAG;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,4BAAY,GAAE,EAAE,CAAC;IAC7E,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,4BAAY,GAAE,EAAE,CAAC;IAC7E,UAAU,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,wBAAU,GAAE,EAAE,CAAC;IACzE,iBAAiB,EAAE,GAAG,EAAE,CACtB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,sCAAiB,GAAE,EAAE,CAAC;IAChE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,4BAAY,GAAE,EAAE,CAAC;IAC7E,eAAe,EAAE,GAAG,EAAE,CACpB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,mCAAe,GAAE,EAAE,CAAC;IAC9D,eAAe,EAAE,GAAG,EAAE,CACpB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,mCAAe,GAAE,EAAE,CAAC;IAC9D,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,4BAAY,GAAE,EAAE,CAAC,EAAE,mBAAmB;IAClG,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,4BAAY,GAAE,EAAE,CAAC;IAC7E,aAAa,EAAE,GAAG,EAAE,CAClB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,gCAAgB,GAAE,EAAE,CAAC;IAC/D,aAAa,EAAE,GAAG,EAAE,CAClB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,gCAAgB,GAAE,EAAE,CAAC;IAC/D,cAAc,EAAE,GAAG,EAAE,CACnB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,gCAAc,GAAE,EAAE,CAAC;CAC9D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAE/B,+CAA+C;AAC/C,uDAAsD;AACtD,mDAAiD;AAEjD,gEAA4D;AAC5D,gEAA4D;AAC5D,4DAAwD;AACxD,0EAAsE;AACtE,gEAA4D;AAC5D,wEAAmE;AACnE,wEAAmE;AACnE,gEAA4D;AAC5D,gEAAgE;AAChE,gEAAgE;AAChE,oEAAgE;AAEhE,MAAM,KAAK,GACT,CAAC,KAAiC,EAAE,EAAE,CAAC,KAAK,IAAmB,EAAE;IAC/D,IAAI,CAAC;QACH,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gCAAe,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAA+C,CAAC;YACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,IAA0B,CAAC;YAClD,OAAO,CAAC,KAAK,CACX,sBAAsB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,CAC1E,CAAC;YACF,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,gCAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAES,QAAA,GAAG,GAAG;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,4BAAY,CAAC,EAAE,CAAC;IACtE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,4BAAY,CAAC,EAAE,CAAC;IACtE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,wBAAU,CAAC,EAAE,CAAC;IAClE,iBAAiB,EAAE,GAAG,EAAE,CACtB,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,sCAAiB,CAAC,EAAE,CAAC;IACzD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,4BAAY,CAAC,EAAE,CAAC;IACtE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,mCAAe,CAAC,EAAE,CAAC;IAC5E,eAAe,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,mCAAe,CAAC,EAAE,CAAC;IAC5E,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,4BAAY,CAAC,EAAE,CAAC,EAAE,mBAAmB;IAC3F,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,4BAAY,CAAC,EAAE,CAAC;IACtE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,gCAAgB,CAAC,EAAE,CAAC;IAC3E,aAAa,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,gCAAgB,CAAC,EAAE,CAAC;IAC3E,cAAc,EAAE,GAAG,EAAE,CAAC,IAAA,qCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,gCAAc,CAAC,EAAE,CAAC;CAC3E,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rhachet-roles-bhuild",
3
3
  "author": "ehmpathy",
4
4
  "description": "roles for building resilient systems, via rhachet",
5
- "version": "0.20.1",
5
+ "version": "0.21.0",
6
6
  "repository": "ehmpathy/rhachet-roles-bhuild",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet-roles-bhuild",
8
8
  "keywords": [
@@ -64,7 +64,7 @@
64
64
  "dependencies": {
65
65
  "domain-objects": "0.31.9",
66
66
  "emoji-space-shim": "0.0.0",
67
- "helpful-errors": "1.5.3",
67
+ "helpful-errors": "1.7.3",
68
68
  "iso-time": "1.11.3",
69
69
  "test-fns": "1.15.0",
70
70
  "zod": "4.3.4"
@@ -92,9 +92,9 @@
92
92
  "rhachet": "1.40.7",
93
93
  "rhachet-brains-anthropic": "0.4.0",
94
94
  "rhachet-brains-xai": "0.3.3",
95
- "rhachet-roles-bhrain": "0.26.1",
95
+ "rhachet-roles-bhrain": "0.27.0",
96
96
  "rhachet-roles-bhuild": "link:.",
97
- "rhachet-roles-ehmpathy": "1.34.32",
97
+ "rhachet-roles-ehmpathy": "1.34.34",
98
98
  "tsc-alias": "1.8.10",
99
99
  "tsx": "4.20.6",
100
100
  "typescript": "5.4.5",