rhachet-roles-bhrain 0.9.2 → 0.9.3

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 (27) hide show
  1. package/dist/contract/cli/review.js +14 -12
  2. package/dist/contract/cli/review.js.map +1 -1
  3. package/dist/domain.operations/review/compileReviewPrompt.d.ts +5 -2
  4. package/dist/domain.operations/review/compileReviewPrompt.js +20 -10
  5. package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -1
  6. package/dist/domain.operations/review/enumFilesFromDiffs.js +33 -1
  7. package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -1
  8. package/dist/domain.operations/review/enumFilesFromGlob.d.ts +1 -1
  9. package/dist/domain.operations/review/enumFilesFromGlob.js +73 -4
  10. package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -1
  11. package/dist/domain.operations/review/genDefaultReviewOutputPath.d.ts +7 -0
  12. package/dist/domain.operations/review/genDefaultReviewOutputPath.js +39 -0
  13. package/dist/domain.operations/review/genDefaultReviewOutputPath.js.map +1 -0
  14. package/dist/domain.operations/review/genReviewInputStdout.d.ts +10 -1
  15. package/dist/domain.operations/review/genReviewInputStdout.js +14 -3
  16. package/dist/domain.operations/review/genReviewInputStdout.js.map +1 -1
  17. package/dist/domain.operations/review/genReviewOutputStdout.js +10 -2
  18. package/dist/domain.operations/review/genReviewOutputStdout.js.map +1 -1
  19. package/dist/domain.operations/review/sanitizeBranchName.d.ts +7 -0
  20. package/dist/domain.operations/review/sanitizeBranchName.js +16 -0
  21. package/dist/domain.operations/review/sanitizeBranchName.js.map +1 -0
  22. package/dist/domain.operations/review/stepReview.d.ts +4 -3
  23. package/dist/domain.operations/review/stepReview.js +40 -25
  24. package/dist/domain.operations/review/stepReview.js.map +1 -1
  25. package/dist/domain.operations/review/writeInputArtifacts.d.ts +3 -2
  26. package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -1
  27. package/package.json +1 -1
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.review = void 0;
4
4
  const brains_1 = require("rhachet/brains");
5
+ const genDefaultReviewOutputPath_1 = require("../../domain.operations/review/genDefaultReviewOutputPath");
5
6
  const stepReview_1 = require("../../domain.operations/review/stepReview");
6
7
  /**
7
8
  * .what = default brain for review skill
@@ -28,10 +29,11 @@ usage:
28
29
  options:
29
30
  --rules <globs> glob pattern(s) for rule files (required)
30
31
  --paths <globs> glob pattern(s) for target files
31
- --diffs <range> diff range: uptil-main, uptil-commit, uptil-staged
32
+ --diffs <range> diff range: uptil-main, uptil-commit, uptil-staged (default: uptil-main)
33
+ --join <mode> how to join --paths and --diffs: union or intersect (default: union)
32
34
  --refs <globs> glob pattern(s) for reference files (can repeat)
33
- --output <path> output file path for the review (required)
34
- --mode <mode> review mode: push or pull (default: push)
35
+ --output <path> output file path (default: .review/$branch/$isotime.output.md)
36
+ --focus <mode> review focus: push or pull (default: push)
35
37
  --goal <goal> review goal: exhaustive or representative (default: representative)
36
38
  --brain <slug> brain to use for review (default: ${DEFAULT_BRAIN})
37
39
  --help show this help message
@@ -96,9 +98,10 @@ const parseArgs = (argv) => {
96
98
  rules: options.rules,
97
99
  diffs: options.diffs,
98
100
  paths: options.paths,
101
+ join: options.join ?? 'union',
99
102
  refs: options.refs,
100
103
  output: options.output,
101
- mode: options.mode ?? 'push',
104
+ focus: options.focus ?? 'push',
102
105
  goal: options.goal ?? 'representative',
103
106
  brain: options.brain ?? DEFAULT_BRAIN,
104
107
  };
@@ -126,21 +129,20 @@ const review = async () => {
126
129
  console.error('run with --help for usage');
127
130
  process.exit(1);
128
131
  }
129
- if (!options.output) {
130
- console.error('error: --output is required');
131
- console.error('run with --help for usage');
132
- process.exit(1);
133
- }
132
+ // resolve output path (generate default if not specified)
133
+ const cwd = process.cwd();
134
+ const outputResolved = options.output ?? (0, genDefaultReviewOutputPath_1.genDefaultReviewOutputPath)({ cwd });
134
135
  // create brain context via discovery (expensive)
135
136
  const brain = await (0, brains_1.genContextBrain)({ choice: options.brain });
136
137
  // invoke stepReview
137
138
  await (0, stepReview_1.stepReview)({
138
139
  rules: options.rules,
139
- diffs: options.diffs,
140
+ diffs: options.diffs ?? (!hasPaths ? 'uptil-main' : undefined),
140
141
  paths: options.paths,
142
+ join: options.join,
141
143
  refs: options.refs,
142
- output: options.output,
143
- mode: options.mode,
144
+ output: outputResolved,
145
+ focus: options.focus,
144
146
  goal: options.goal,
145
147
  }, { brain });
146
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/contract/cli/review.ts"],"names":[],"mappings":";;;AAAA,2CAIwB;AAExB,yEAAsE;AAEtE;;;GAGG;AACH,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C;;;GAGG;AACH,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;IAC1C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,2BAAkB,GAAE,CAAC;IACpD,MAAM,aAAa,GAAG,IAAA,kCAAyB,EAAC;QAC9C,KAAK;QACL,KAAK;QACL,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT;;;;;;;;;;;;;;0DAcsD,aAAa;;;EAGrE,aAAa;CACd,CAAC,IAAI,EAAE,CACL,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,IAAc,EAAW,EAAE;IAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CAAC,IAAc,EAAW,EAAE;IACjD,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,uBAAuB,GAC3B,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,uBAAuB,CAAC;AAClC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,SAAS,GAAG,CAChB,IAAc,EAUd,EAAE;IACF,8EAA8E;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACjE,MAAM,OAAO,GAAsC,EAAE,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1B,sDAAsD;YACtD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI;oBAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvC,CAAC,EAAE,CAAC;gBACN,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAe;QAC9B,KAAK,EAAE,OAAO,CAAC,KAA2B;QAC1C,KAAK,EAAE,OAAO,CAAC,KAA2B;QAC1C,IAAI,EAAE,OAAO,CAAC,IAA4B;QAC1C,MAAM,EAAE,OAAO,CAAC,MAAgB;QAChC,IAAI,EAAG,OAAO,CAAC,IAAwB,IAAI,MAAM;QACjD,IAAI,EAAG,OAAO,CAAC,IAAwC,IAAI,gBAAgB;QAC3E,KAAK,EAAG,OAAO,CAAC,KAAgB,IAAI,aAAa;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;IAC9C,uCAAuC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,qBAAqB;IACrB,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,0DAA0D;IAC1D,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK;QACb,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK;QACb,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CACX,kEAAkE,CACnE,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAe,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,oBAAoB;IACpB,MAAM,IAAA,uBAAU,EACd;QACE,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,EACD,EAAE,KAAK,EAAE,CACV,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,MAAM,UA+CjB"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/contract/cli/review.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type IsoPriceHuman } from 'iso-price';
2
+ import { type BrainSpec } from 'rhachet/brains';
1
3
  /**
2
4
  * .what = compiles the review prompt from rules and target files
3
5
  * .why = prepares the prompt for brain invocation with token safeguards
@@ -15,13 +17,14 @@ export declare const compileReviewPrompt: (input: {
15
17
  path: string;
16
18
  content: string;
17
19
  }>;
18
- mode: 'pull' | 'push';
20
+ focus: 'pull' | 'push';
19
21
  goal: 'exhaustive' | 'representative';
20
22
  contextWindowSize: number;
23
+ costSpec: BrainSpec['cost']['cash'];
21
24
  }) => {
22
25
  prompt: string;
23
26
  tokenEstimate: number;
24
27
  contextWindowPercent: number;
25
- costEstimate: number;
28
+ costEstimate: IsoPriceHuman;
26
29
  warnings: string[];
27
30
  };
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.compileReviewPrompt = void 0;
4
4
  const helpful_errors_1 = require("helpful-errors");
5
+ const iso_price_1 = require("iso-price");
6
+ const brains_1 = require("rhachet/brains");
5
7
  const estimateTokenCount_1 = require("./estimateTokenCount");
6
8
  /**
7
9
  * .what = compiles the review prompt from rules and target files
@@ -22,12 +24,12 @@ const compileReviewPrompt = (input) => {
22
24
  : null;
23
25
  // build target section based on mode
24
26
  const targetSection = (() => {
25
- if (input.mode === 'pull') {
26
- // pull mode: paths only, instruct brain to open files
27
+ if (input.focus === 'pull') {
28
+ // pull focus: paths only, instruct brain to open files
27
29
  const pathList = input.targets.map((t) => `- ${t.path}`).join('\n');
28
30
  return `the following files are in scope for review. please open and read them as needed:\n\n${pathList}`;
29
31
  }
30
- // push mode: inject contents
32
+ // push focus: inject contents
31
33
  return input.targets
32
34
  .map((target) => `### ${target.path}\n\n\`\`\`\n${target.content}\n\`\`\``)
33
35
  .join('\n\n---\n\n');
@@ -112,22 +114,30 @@ if no issues found, output: \`{"done": true, "blockers": [], "nitpicks": []}\`
112
114
  const tokenEstimate = (0, estimateTokenCount_1.estimateTokenCount)({ content: prompt });
113
115
  const contextWindowPercent = (tokenEstimate / contextWindow) * 100;
114
116
  // check thresholds (only in push mode - pull mode is inherently lighter)
115
- if (input.mode === 'push') {
117
+ if (input.focus === 'push') {
116
118
  // failfast if >75%
117
119
  if (contextWindowPercent > 75) {
118
120
  throw new helpful_errors_1.BadRequestError(`prompt exceeds 75% of context window (${contextWindowPercent.toFixed(1)}% of ${contextWindow} tokens). ` +
119
- `reduce scope or use --pull mode to avoid quality degradation.`, { tokenEstimate, contextWindowPercent, contextWindow });
121
+ `reduce scope or use --focus pull to avoid quality degradation.`, { tokenEstimate, contextWindowPercent, contextWindow });
120
122
  }
121
123
  // warn if >60%
122
124
  if (contextWindowPercent > 60) {
123
125
  warnings.push(`potential quality degradation: prompt uses ${contextWindowPercent.toFixed(1)}% of context window`);
124
126
  }
125
127
  }
126
- // estimate cost (claude: ~$3/1M input tokens, ~$15/1M output tokens)
127
- // assume output is ~10% of input for reviews
128
- const inputCost = (tokenEstimate / 1000000) * 3;
129
- const outputCost = ((tokenEstimate * 0.1) / 1000000) * 15;
130
- const costEstimate = Math.round((inputCost + outputCost) * 1000) / 1000;
128
+ // estimate cost via brain spec rates (assume output is ~10% of input for reviews)
129
+ const estimatedOutputTokens = Math.round(tokenEstimate * 0.1);
130
+ const costResult = (0, brains_1.calcBrainOutputCost)({
131
+ for: {
132
+ tokens: {
133
+ input: tokenEstimate,
134
+ output: estimatedOutputTokens,
135
+ cache: { get: 0, set: 0 },
136
+ },
137
+ },
138
+ with: { cost: { cash: input.costSpec } },
139
+ });
140
+ const costEstimate = (0, iso_price_1.asIsoPriceHuman)(costResult.cash.total);
131
141
  return {
132
142
  prompt,
133
143
  tokenEstimate,
@@ -1 +1 @@
1
- {"version":3,"file":"compileReviewPrompt.js","sourceRoot":"","sources":["../../../src/domain.operations/review/compileReviewPrompt.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAEjD,6DAA0D;AAE1D;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAOnC,EAMC,EAAE;IACF,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,yDAAyD;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;SACpD,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvB,uDAAuD;IACvD,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,KAAK,CAAC,IAAI;aACP,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;aACjD,IAAI,CAAC,aAAa,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC;IAEX,qCAAqC;IACrC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,sDAAsD;YACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,wFAAwF,QAAQ,EAAE,CAAC;QAC5G,CAAC;QAED,6BAA6B;QAC7B,OAAO,KAAK,CAAC,OAAO;aACjB,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,OAAO,UAAU,CACtE;aACA,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO;;gPAEmO,CAAC;QAC7O,CAAC;QACD,OAAO;;mOAEwN,CAAC;IAClO,CAAC,CAAC,EAAE,CAAC;IAEL,oBAAoB;IACpB,MAAM,MAAM,GAAG;;;;;;;;;;mEAUkD,WAAW,CAAC,CAAC,CAAC,iIAAiI,CAAC,CAAC,CAAC,EAAE;;EAErN,gBAAgB;;;;;EAKhB,YAAY;;EAGZ,WAAW;QACT,CAAC,CAAC;;;;EAIJ,WAAW;;CAEZ;QACG,CAAC,CAAC,EACN;;;;EAIE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCd,CAAC;IAEA,kBAAkB;IAClB,MAAM,aAAa,GAAG,IAAA,uCAAkB,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;IAEnE,yEAAyE;IACzE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,mBAAmB;QACnB,IAAI,oBAAoB,GAAG,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,gCAAe,CACvB,yCAAyC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,aAAa,YAAY;gBACvG,+DAA+D,EACjE,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,eAAe;QACf,IAAI,oBAAoB,GAAG,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CACX,8CAA8C,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,6CAA6C;IAC7C,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,OAAS,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAExE,OAAO;QACL,MAAM;QACN,aAAa;QACb,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAG,EAAE;QAChE,YAAY;QACZ,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAlKW,QAAA,mBAAmB,uBAkK9B"}
1
+ {"version":3,"file":"compileReviewPrompt.js","sourceRoot":"","sources":["../../../src/domain.operations/review/compileReviewPrompt.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,37 @@ const child_process_1 = require("child_process");
28
28
  const fs = __importStar(require("fs/promises"));
29
29
  const helpful_errors_1 = require("helpful-errors");
30
30
  const path = __importStar(require("path"));
31
+ /**
32
+ * .what = detects whether a git branch exists
33
+ * .why = enables fallback from main to master for uptil-main range
34
+ */
35
+ const branchExists = (input) => {
36
+ try {
37
+ (0, child_process_1.execSync)(`git rev-parse --verify ${input.branch}`, {
38
+ cwd: input.cwd,
39
+ encoding: 'utf-8',
40
+ stdio: 'pipe',
41
+ });
42
+ return true;
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ };
48
+ /**
49
+ * .what = resolves the main branch name (main or master)
50
+ * .why = different git configs use different default branch names
51
+ */
52
+ const resolveMainBranch = (input) => {
53
+ // try main first (newer convention)
54
+ if (branchExists({ branch: 'main', cwd: input.cwd }))
55
+ return 'main';
56
+ // fall back to master (older convention)
57
+ if (branchExists({ branch: 'master', cwd: input.cwd }))
58
+ return 'master';
59
+ // neither exists - user needs to create a main branch
60
+ throw new helpful_errors_1.BadRequestError('uptil-main requires a main or master branch to exist. create an initial commit on main first.', { cwd: input.cwd });
61
+ };
31
62
  /**
32
63
  * .what = enumerates files changed in a git diff range
33
64
  * .why = supports --diffs input for reviewing changed files
@@ -37,7 +68,8 @@ const enumFilesFromDiffs = async (input) => {
37
68
  // build git command based on range
38
69
  const gitCommand = (() => {
39
70
  if (input.range === 'uptil-main') {
40
- return 'git diff main --name-only';
71
+ const mainBranch = resolveMainBranch({ cwd });
72
+ return `git diff ${mainBranch} --name-only`;
41
73
  }
42
74
  if (input.range === 'uptil-commit') {
43
75
  return 'git diff HEAD --name-only';
@@ -1 +1 @@
1
- {"version":3,"file":"enumFilesFromDiffs.js","sourceRoot":"","sources":["../../../src/domain.operations/review/enumFilesFromDiffs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAyC;AACzC,gDAAkC;AAClC,mDAAyD;AACzD,2CAA6B;AAE7B;;;GAGG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAGxC,EAAqB,EAAE;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvC,mCAAmC;IACnC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;QACvB,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACjC,OAAO,2BAA2B,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO,2BAA2B,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO,+BAA+B,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,wCAAuB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,EAAE,CAAC;IAEL,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,UAAU,EAAE;QAClC,GAAG;QACH,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,iFAAiF;IACjF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,yCAAyC;IACzC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3E,CAAC,CAAC;AA9CW,QAAA,kBAAkB,sBA8C7B"}
1
+ {"version":3,"file":"enumFilesFromDiffs.js","sourceRoot":"","sources":["../../../src/domain.operations/review/enumFilesFromDiffs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * .what = enumerates files matching a glob pattern
2
+ * .what = enumerates files that match a glob pattern
3
3
  * .why = supports --rules and --paths inputs for file discovery
4
4
  */
5
5
  export declare const enumFilesFromGlob: (input: {
@@ -1,25 +1,94 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.enumFilesFromGlob = void 0;
7
30
  const fast_glob_1 = __importDefault(require("fast-glob"));
31
+ const fs = __importStar(require("fs/promises"));
32
+ const path = __importStar(require("path"));
33
+ /**
34
+ * .what = checks if a path is a directory
35
+ * .why = enables auto-inference of glob patterns from directory paths
36
+ */
37
+ const isDirectory = async (input) => {
38
+ try {
39
+ const fullPath = path.isAbsolute(input.pattern)
40
+ ? input.pattern
41
+ : path.join(input.cwd, input.pattern);
42
+ const stat = await fs.stat(fullPath);
43
+ return stat.isDirectory();
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ };
49
+ /**
50
+ * .what = converts directory paths to recursive glob patterns
51
+ * .why = improves devexp via inferred recursive glob when user passes a directory
52
+ *
53
+ * .example
54
+ * - "src/rules" (directory) -> appends recursive glob pattern
55
+ * - "src/rules/file.md" (glob with wildcards) -> unchanged
56
+ */
57
+ const inferGlobFromDirectory = async (input) => {
58
+ // skip negative patterns
59
+ if (input.pattern.startsWith('!'))
60
+ return input.pattern;
61
+ // skip patterns that already contain glob chars
62
+ if (/[*?[\]{}]/.test(input.pattern))
63
+ return input.pattern;
64
+ // check if pattern is a directory
65
+ const patternIsDirectory = await isDirectory({
66
+ pattern: input.pattern,
67
+ cwd: input.cwd,
68
+ });
69
+ if (!patternIsDirectory)
70
+ return input.pattern;
71
+ // append recursive glob
72
+ return `${input.pattern.replace(/\/$/, '')}/**/*`;
73
+ };
8
74
  /**
9
- * .what = enumerates files matching a glob pattern
75
+ * .what = enumerates files that match a glob pattern
10
76
  * .why = supports --rules and --paths inputs for file discovery
11
77
  */
12
78
  const enumFilesFromGlob = async (input) => {
79
+ const cwd = input.cwd ?? process.cwd();
13
80
  // normalize to array
14
81
  const patterns = Array.isArray(input.glob) ? input.glob : [input.glob];
82
+ // infer globs from directory paths
83
+ const patternsResolved = await Promise.all(patterns.map((pattern) => inferGlobFromDirectory({ pattern, cwd })));
15
84
  // separate positive and negative patterns
16
- const positivePatterns = patterns.filter((p) => !p.startsWith('!'));
17
- const negativePatterns = patterns
85
+ const positivePatterns = patternsResolved.filter((p) => !p.startsWith('!'));
86
+ const negativePatterns = patternsResolved
18
87
  .filter((p) => p.startsWith('!'))
19
88
  .map((p) => p.slice(1)); // remove ! prefix for ignore
20
89
  // enumerate files
21
90
  const files = await (0, fast_glob_1.default)(positivePatterns, {
22
- cwd: input.cwd,
91
+ cwd,
23
92
  ignore: negativePatterns,
24
93
  onlyFiles: true,
25
94
  dot: true, // include dotfiles
@@ -1 +1 @@
1
- {"version":3,"file":"enumFilesFromGlob.js","sourceRoot":"","sources":["../../../src/domain.operations/review/enumFilesFromGlob.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA2B;AAE3B;;;GAGG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAGvC,EAAqB,EAAE;IACtB,qBAAqB;IACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvE,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,QAAQ;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;IAExD,kBAAkB;IAClB,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAE,EAAC,gBAAgB,EAAE;QACvC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,IAAI,EAAE,mBAAmB;KAC/B,CAAC,CAAC;IAEH,oCAAoC;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B"}
1
+ {"version":3,"file":"enumFilesFromGlob.js","sourceRoot":"","sources":["../../../src/domain.operations/review/enumFilesFromGlob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * .what = generates default review output path from git branch and timestamp
3
+ * .why = enables --output omission with organized default location
4
+ */
5
+ export declare const genDefaultReviewOutputPath: (input: {
6
+ cwd: string;
7
+ }) => string;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genDefaultReviewOutputPath = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const sanitizeBranchName_1 = require("./sanitizeBranchName");
6
+ /**
7
+ * .what = gets the current git branch name
8
+ * .why = needed to organize review outputs by branch
9
+ */
10
+ const getCurrentGitBranch = (input) => {
11
+ return (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', {
12
+ cwd: input.cwd,
13
+ encoding: 'utf-8',
14
+ stdio: 'pipe',
15
+ }).trim();
16
+ };
17
+ /**
18
+ * .what = generates filesystem-safe ISO timestamp
19
+ * .why = colons and dots in ISO strings are problematic on some filesystems
20
+ */
21
+ const genFilesafeIsoTimestamp = () => {
22
+ return new Date().toISOString().replace(/[:.]/g, '-');
23
+ };
24
+ /**
25
+ * .what = generates default review output path from git branch and timestamp
26
+ * .why = enables --output omission with organized default location
27
+ */
28
+ const genDefaultReviewOutputPath = (input) => {
29
+ // get current git branch
30
+ const branch = getCurrentGitBranch({ cwd: input.cwd });
31
+ // sanitize branch for filesystem
32
+ const branchSafe = (0, sanitizeBranchName_1.sanitizeBranchName)({ branch });
33
+ // generate filesystem-safe ISO timestamp
34
+ const isotime = genFilesafeIsoTimestamp();
35
+ // compose path
36
+ return `.review/${branchSafe}/${isotime}.output.md`;
37
+ };
38
+ exports.genDefaultReviewOutputPath = genDefaultReviewOutputPath;
39
+ //# sourceMappingURL=genDefaultReviewOutputPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genDefaultReviewOutputPath.js","sourceRoot":"","sources":["../../../src/domain.operations/review/genDefaultReviewOutputPath.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAEzC,6DAA0D;AAE1D;;;GAGG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC7D,OAAO,IAAA,wBAAQ,EAAC,iCAAiC,EAAE;QACjD,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,GAAW,EAAE;IAC3C,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,0BAA0B,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC3E,yBAAyB;IACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvD,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAA,uCAAkB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,yCAAyC;IACzC,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAE1C,eAAe;IACf,OAAO,WAAW,UAAU,IAAI,OAAO,YAAY,CAAC;AACtD,CAAC,CAAC;AAZW,QAAA,0BAA0B,8BAYrC"}
@@ -1,3 +1,12 @@
1
+ /**
2
+ * .what = generates the header stdout (brain info and config)
3
+ * .why = displays review configuration at the top before metrics
4
+ */
5
+ export declare const genReviewHeaderStdout: (input: {
6
+ brain: string;
7
+ focus: 'push' | 'pull';
8
+ output: string;
9
+ }) => string;
1
10
  /**
2
11
  * .what = generates the input metrics stdout (before brain invocation)
3
12
  * .why = displays expected metrics to user before review begins
@@ -13,7 +22,7 @@ export declare const genReviewInputStdout: (input: {
13
22
  contextWindowPercent: number;
14
23
  };
15
24
  cost: {
16
- estimate: number;
25
+ estimate: string;
17
26
  };
18
27
  logDirRelative: string;
19
28
  }) => string;
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.genReviewInputStdout = void 0;
3
+ exports.genReviewInputStdout = exports.genReviewHeaderStdout = void 0;
4
+ /**
5
+ * .what = generates the header stdout (brain info and config)
6
+ * .why = displays review configuration at the top before metrics
7
+ */
8
+ const genReviewHeaderStdout = (input) => {
9
+ return `🦉 let's review
10
+ ├─ brain: ${input.brain}
11
+ ├─ focus: ${input.focus}
12
+ └─ output: ${input.output}`;
13
+ };
14
+ exports.genReviewHeaderStdout = genReviewHeaderStdout;
4
15
  /**
5
16
  * .what = generates the input metrics stdout (before brain invocation)
6
17
  * .why = displays expected metrics to user before review begins
@@ -18,10 +29,10 @@ const genReviewInputStdout = (input) => {
18
29
  ├─ files
19
30
  ${filesTree}
20
31
  ├─ tokens
21
- │ ├─ estimate: ${input.tokens.estimate}
32
+ │ ├─ estimate: ${input.tokens.estimate.toLocaleString()}
22
33
  │ └─ context: ${input.tokens.contextWindowPercent.toFixed(1)}%
23
34
  └─ cost
24
- └─ estimate: $${input.cost.estimate.toFixed(4)}
35
+ └─ estimate: ${input.cost.estimate}
25
36
 
26
37
  🪵 logs
27
38
  ├─ scope: ${input.logDirRelative}/input.scope.json
@@ -1 +1 @@
1
- {"version":3,"file":"genReviewInputStdout.js","sourceRoot":"","sources":["../../../src/domain.operations/review/genReviewInputStdout.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAcpC,EAAU,EAAE;IACX,wDAAwD;IACxD,MAAM,SAAS,GACb,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;QACvB,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,UAAU;iBAChC,KAAK,CAAC,KAAK,CAAC,SAAS;oBAClB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE;QACxC,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,UAAU;oBAC7B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAE7C,OAAO;;;EAGP,SAAS;;qBAEU,KAAK,CAAC,MAAM,CAAC,QAAQ;oBACtB,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;;sBAE1C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;;;eAGrC,KAAK,CAAC,cAAc;iBAClB,KAAK,CAAC,cAAc;gBACrB,KAAK,CAAC,cAAc,qBAAqB,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC,CAAC;AAtCW,QAAA,oBAAoB,wBAsC/B"}
1
+ {"version":3,"file":"genReviewInputStdout.js","sourceRoot":"","sources":["../../../src/domain.operations/review/genReviewInputStdout.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAIrC,EAAU,EAAE;IACX,OAAO;eACM,KAAK,CAAC,KAAK;eACX,KAAK,CAAC,KAAK;gBACV,KAAK,CAAC,MAAM,EAAE,CAAC;AAC/B,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,KAcpC,EAAU,EAAE;IACX,wDAAwD;IACxD,MAAM,SAAS,GACb,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;QACvB,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,UAAU;iBAChC,KAAK,CAAC,KAAK,CAAC,SAAS;oBAClB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE;QACxC,CAAC,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,UAAU;oBAC7B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAE7C,OAAO;;;EAGP,SAAS;;qBAEU,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;oBACvC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;;qBAE3C,KAAK,CAAC,IAAI,CAAC,QAAQ;;;eAGzB,KAAK,CAAC,cAAc;iBAClB,KAAK,CAAC,cAAc;gBACrB,KAAK,CAAC,cAAc,qBAAqB,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC,CAAC;AAtCW,QAAA,oBAAoB,wBAsC/B"}
@@ -12,8 +12,16 @@ const genReviewOutputStdout = (input) => {
12
12
  // format nitpick line
13
13
  const nitpickLabel = input.summary.nitpicksCount === 1 ? 'nitpick' : 'nitpicks';
14
14
  const nitpickEmoji = input.summary.nitpicksCount > 0 ? ' 🟠' : '';
15
- // determine if all good (no issues)
15
+ // determine outcome category
16
+ const hasBlockers = input.summary.blockersCount > 0;
17
+ const hasOnlyNitpicks = input.summary.blockersCount === 0 && input.summary.nitpicksCount > 0;
16
18
  const isAllGood = input.summary.blockersCount === 0 && input.summary.nitpicksCount === 0;
19
+ // owl pun header based on outcome
20
+ const owlHeader = hasBlockers
21
+ ? '🦉 needs your talons'
22
+ : hasOnlyNitpicks
23
+ ? '🦉 just a few hoots'
24
+ : '🦉 not even a vole';
17
25
  // build summary section based on whether there are issues
18
26
  const summarySection = isAllGood
19
27
  ? ` └─ summary
@@ -36,7 +44,7 @@ const genReviewOutputStdout = (input) => {
36
44
  └─ time
37
45
  └─ total: ${input.time.total}
38
46
 
39
- 🌊 output
47
+ ${owlHeader}
40
48
  ├─ logs: ${input.paths.logsRelative}
41
49
  ├─ review: ${input.paths.reviewRelative}
42
50
  ${summarySection}`.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"genReviewOutputStdout.js","sourceRoot":"","sources":["../../../src/domain.operations/review/genReviewOutputStdout.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAsBrC,EAAU,EAAE;IACX,sBAAsB;IACtB,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,sBAAsB;IACtB,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,oCAAoC;IACpC,MAAM,SAAS,GACb,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC;IAEzE,0DAA0D;IAC1D,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC;WACK,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY;WAC3C,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY;qBACjC;QACjB,CAAC,CAAC;WACK,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,GAAG,YAAY;WAC1D,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,GAAG,YAAY,EAAE,CAAC;IAEtE,OAAO;;;kBAGS,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;sBAC/B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;sBACtC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;mBACzC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;kBACrC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;;kBAEnC,KAAK,CAAC,IAAI,CAAC,KAAK;;kBAEhB,KAAK,CAAC,IAAI,CAAC,KAAK;;;cAGpB,KAAK,CAAC,KAAK,CAAC,YAAY;gBACtB,KAAK,CAAC,KAAK,CAAC,cAAc;EACxC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC,CAAC;AAhEW,QAAA,qBAAqB,yBAgEhC"}
1
+ {"version":3,"file":"genReviewOutputStdout.js","sourceRoot":"","sources":["../../../src/domain.operations/review/genReviewOutputStdout.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,qBAAqB,GAAG,CAAC,KAsBrC,EAAU,EAAE;IACX,sBAAsB;IACtB,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,sBAAsB;IACtB,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,6BAA6B;IAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IACpD,MAAM,eAAe,GACnB,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IACvE,MAAM,SAAS,GACb,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC;IAEzE,kCAAkC;IAClC,MAAM,SAAS,GAAG,WAAW;QAC3B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,eAAe;YACf,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,oBAAoB,CAAC;IAE3B,0DAA0D;IAC1D,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC;WACK,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY;WAC3C,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY;qBACjC;QACjB,CAAC,CAAC;WACK,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,GAAG,YAAY;WAC1D,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,GAAG,YAAY,EAAE,CAAC;IAEtE,OAAO;;;kBAGS,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;sBAC/B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;sBACtC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;mBACzC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;kBACrC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE;;kBAEnC,KAAK,CAAC,IAAI,CAAC,KAAK;;kBAEhB,KAAK,CAAC,IAAI,CAAC,KAAK;;EAEhC,SAAS;cACG,KAAK,CAAC,KAAK,CAAC,YAAY;gBACtB,KAAK,CAAC,KAAK,CAAC,cAAc;EACxC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC,CAAC;AA1EW,QAAA,qBAAqB,yBA0EhC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * .what = converts branch name to filesystem-safe string
3
+ * .why = branches with slashes like "feat/my-feature" would create subdirs
4
+ */
5
+ export declare const sanitizeBranchName: (input: {
6
+ branch: string;
7
+ }) => string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeBranchName = void 0;
4
+ /**
5
+ * .what = converts branch name to filesystem-safe string
6
+ * .why = branches with slashes like "feat/my-feature" would create subdirs
7
+ */
8
+ const sanitizeBranchName = (input) => {
9
+ return input.branch
10
+ .replace(/\//g, '.') // slashes to dots (preserves hierarchy readability)
11
+ .replace(/[^a-zA-Z0-9-_.]/g, '-') // other unsafe chars to dashes
12
+ .replace(/[-_.]{2,}/g, (m) => m[0]) // collapse consecutive special chars
13
+ .replace(/^[-_.]|[-_.]$/g, ''); // trim start/end special chars
14
+ };
15
+ exports.sanitizeBranchName = sanitizeBranchName;
16
+ //# sourceMappingURL=sanitizeBranchName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeBranchName.js","sourceRoot":"","sources":["../../../src/domain.operations/review/sanitizeBranchName.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,KAAyB,EAAU,EAAE;IACtE,OAAO,KAAK,CAAC,MAAM;SAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,oDAAoD;SACxE,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,+BAA+B;SAChE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,qCAAqC;SACzE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,+BAA+B;AACnE,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B"}
@@ -1,5 +1,5 @@
1
1
  import { type IsoPriceHuman } from 'iso-price';
2
- import type { IsoDuration } from 'iso-time';
2
+ import { type IsoDuration } from 'iso-time';
3
3
  import { type BrainChoice, type ContextBrain } from 'rhachet';
4
4
  /**
5
5
  * .what = result of stepReview execution
@@ -27,7 +27,7 @@ export type StepReviewResult = {
27
27
  contextWindowPercent: number;
28
28
  };
29
29
  cost: {
30
- estimate: number;
30
+ estimate: IsoPriceHuman;
31
31
  };
32
32
  };
33
33
  realized: {
@@ -56,9 +56,10 @@ export declare const stepReview: (input: {
56
56
  rules: string | string[];
57
57
  diffs?: string;
58
58
  paths?: string | string[];
59
+ join?: 'union' | 'intersect';
59
60
  refs?: string | string[];
60
61
  output: string;
61
- mode: 'pull' | 'push';
62
+ focus: 'pull' | 'push';
62
63
  goal: 'exhaustive' | 'representative';
63
64
  cwd?: string;
64
65
  }, context: {
@@ -27,6 +27,7 @@ exports.stepReview = void 0;
27
27
  const fs = __importStar(require("fs/promises"));
28
28
  const helpful_errors_1 = require("helpful-errors");
29
29
  const iso_price_1 = require("iso-price");
30
+ const iso_time_1 = require("iso-time");
30
31
  const path = __importStar(require("path"));
31
32
  const rhachet_1 = require("rhachet");
32
33
  const zod_1 = require("zod");
@@ -106,31 +107,24 @@ const withSpinner = async (input) => {
106
107
  */
107
108
  const stepReview = async (input, context) => {
108
109
  const cwd = input.cwd ?? process.cwd();
109
- // validate that pull mode is only used with brains that have tool use
110
+ // validate that pull focus is only used with brains that have tool use
110
111
  const choiceIsRepl = (0, rhachet_1.isBrainRepl)(context.brain.brain.choice);
111
- if (input.mode === 'pull' && !choiceIsRepl)
112
- throw new helpful_errors_1.BadRequestError(`mode 'pull' requires a brain with tool use (BrainRepl). ` +
112
+ if (input.focus === 'pull' && !choiceIsRepl)
113
+ throw new helpful_errors_1.BadRequestError(`focus 'pull' requires a brain with tool use (BrainRepl). ` +
113
114
  `brain '${context.brain.brain.choice.slug}' is a BrainAtom without tool use. ` +
114
- `use mode 'push' instead, or choose a BrainRepl.`, { brain: context.brain.brain.choice.slug, mode: input.mode });
115
+ `use focus 'push' instead, or choose a BrainRepl.`, { brain: context.brain.brain.choice.slug, focus: input.focus });
115
116
  // validate that at least one of rules, diffs, or paths is specified
116
117
  const hasRules = input.rules && (Array.isArray(input.rules) ? input.rules.length > 0 : true);
117
118
  const hasDiffs = !!input.diffs;
118
119
  const hasPaths = input.paths && (Array.isArray(input.paths) ? input.paths.length > 0 : true);
119
120
  if (!hasRules && !hasDiffs && !hasPaths)
120
121
  throw new helpful_errors_1.BadRequestError('must specify at least one of --rules, --diffs, or --paths');
121
- // validate output parent directory exists
122
+ // ensure output parent directory exists (create if absent)
122
123
  const outputParent = path.dirname(input.output);
123
124
  const outputParentAbsolute = path.isAbsolute(outputParent)
124
125
  ? outputParent
125
126
  : path.join(cwd, outputParent);
126
- try {
127
- await fs.access(outputParentAbsolute);
128
- }
129
- catch {
130
- throw new helpful_errors_1.BadRequestError('output path parent directory does not exist', {
131
- outputParent: outputParentAbsolute,
132
- });
133
- }
127
+ await fs.mkdir(outputParentAbsolute, { recursive: true });
134
128
  // enumerate rule files
135
129
  const ruleGlobs = Array.isArray(input.rules)
136
130
  ? input.rules
@@ -161,11 +155,22 @@ const stepReview = async (input, context) => {
161
155
  glob: positivePathGlobs,
162
156
  cwd,
163
157
  });
164
- // union target files from diffs and paths, then apply global exclusions
165
- const targetFilesUnion = [
166
- ...new Set([...targetFilesFromDiffs, ...targetFilesFromPaths]),
167
- ];
168
- const targetFiles = targetFilesUnion
158
+ // join target files from diffs and paths (union or intersect), then apply exclusions
159
+ const joinMode = input.join ?? 'union';
160
+ const targetFilesJoined = (() => {
161
+ // if only one source has files, use that source
162
+ if (targetFilesFromDiffs.length === 0)
163
+ return targetFilesFromPaths;
164
+ if (targetFilesFromPaths.length === 0)
165
+ return targetFilesFromDiffs;
166
+ // both sources have files; apply join mode
167
+ if (joinMode === 'intersect') {
168
+ const pathsSet = new Set(targetFilesFromPaths);
169
+ return targetFilesFromDiffs.filter((file) => pathsSet.has(file));
170
+ }
171
+ return [...new Set([...targetFilesFromDiffs, ...targetFilesFromPaths])];
172
+ })();
173
+ const targetFiles = targetFilesJoined
169
174
  .filter((file) => {
170
175
  for (const pattern of negativePathGlobs) {
171
176
  if (file === pattern || file.endsWith(`/${pattern}`))
@@ -251,15 +256,16 @@ const stepReview = async (input, context) => {
251
256
  rules: rulesBreakdown,
252
257
  targets: targetsBreakdown,
253
258
  }), 'utf-8');
254
- // compile review prompt with brain's context window
255
- const contextWindowSize = context.brain.brain.choice.spec.gain.size.context.tokens;
259
+ // compile review prompt with brain's context window and cost spec
260
+ const brainSpec = context.brain.brain.choice.spec;
256
261
  const promptResult = (0, compileReviewPrompt_1.compileReviewPrompt)({
257
262
  rules: ruleContents,
258
263
  refs: refContents,
259
264
  targets: targetContents,
260
- mode: input.mode,
265
+ focus: input.focus,
261
266
  goal: input.goal,
262
- contextWindowSize,
267
+ contextWindowSize: brainSpec.gain.size.context.tokens,
268
+ costSpec: brainSpec.cost.cash,
263
269
  });
264
270
  // write metrics.expected immediately after files are read
265
271
  await fs.writeFile(path.join(logDir, 'metrics.expected.json'), JSON.stringify({
@@ -283,9 +289,10 @@ const stepReview = async (input, context) => {
283
289
  rules: input.rules,
284
290
  diffs: input.diffs,
285
291
  paths: input.paths,
292
+ join: joinMode,
286
293
  refs: input.refs,
287
294
  output: input.output,
288
- mode: input.mode,
295
+ focus: input.focus,
289
296
  goal: input.goal,
290
297
  },
291
298
  scope: {
@@ -300,7 +307,15 @@ const stepReview = async (input, context) => {
300
307
  },
301
308
  prompt: promptResult.prompt,
302
309
  });
310
+ // emit header with brain info
311
+ const outputRelative = path.relative(cwd, input.output);
312
+ console.log((0, genReviewInputStdout_1.genReviewHeaderStdout)({
313
+ brain: context.brain.brain.choice.slug,
314
+ focus: input.focus,
315
+ output: outputRelative.startsWith('..') ? input.output : outputRelative,
316
+ }));
303
317
  // emit metrics.expected before invocation
318
+ console.log('');
304
319
  const logDirRelative = path.relative(cwd, logDir);
305
320
  console.log((0, genReviewInputStdout_1.genReviewInputStdout)({
306
321
  files: {
@@ -320,7 +335,7 @@ const stepReview = async (input, context) => {
320
335
  // invoke brain with spinner
321
336
  console.log('');
322
337
  const reviewIssues = await withSpinner({
323
- message: "🦉 let's review!",
338
+ message: '🔍 what do we have here then?',
324
339
  operation: async () => await context.brain.brain.choice.ask({
325
340
  role: { briefs: [] },
326
341
  prompt: promptResult.prompt,
@@ -387,7 +402,7 @@ const stepReview = async (input, context) => {
387
402
  total: (0, iso_price_1.asIsoPriceHuman)(realizedCosts.total),
388
403
  },
389
404
  time: {
390
- total: String(metrics.cost.time),
405
+ total: (0, iso_time_1.asDurationInWords)(metrics.cost.time),
391
406
  },
392
407
  paths: {
393
408
  logsRelative: logDirRelative,
@@ -1 +1 @@
1
- {"version":3,"file":"stepReview.js","sourceRoot":"","sources":["../../../src/domain.operations/review/stepReview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepReview.js","sourceRoot":"","sources":["../../../src/domain.operations/review/stepReview.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,10 @@ export declare const writeInputArtifacts: (input: {
8
8
  rules: string | string[];
9
9
  diffs?: string;
10
10
  paths?: string | string[];
11
+ join?: 'union' | 'intersect';
11
12
  refs?: string | string[];
12
13
  output: string;
13
- mode: 'pull' | 'push';
14
+ focus: 'pull' | 'push';
14
15
  goal: 'exhaustive' | 'representative';
15
16
  };
16
17
  scope: {
@@ -21,7 +22,7 @@ export declare const writeInputArtifacts: (input: {
21
22
  metrics: {
22
23
  tokenEstimate: number;
23
24
  contextWindowPercent: number;
24
- costEstimate: number;
25
+ costEstimate: string;
25
26
  };
26
27
  prompt: string;
27
28
  }) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"writeInputArtifacts.js","sourceRoot":"","sources":["../../../src/domain.operations/review/writeInputArtifacts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAE7B;;;GAGG;AACI,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAsBzC,EAAqD,EAAE;IACtD,8BAA8B;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC;QACE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnD,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC,CAAC;AA5CW,QAAA,mBAAmB,uBA4C9B"}
1
+ {"version":3,"file":"writeInputArtifacts.js","sourceRoot":"","sources":["../../../src/domain.operations/review/writeInputArtifacts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAE7B;;;GAGG;AACI,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAuBzC,EAAqD,EAAE;IACtD,8BAA8B;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC;QACE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnD,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC,CAAC;AA7CW,QAAA,mBAAmB,uBA6C9B"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rhachet-roles-bhrain",
3
3
  "author": "ehmpathy",
4
4
  "description": "reliable thought concept navigation roles, briefs, and skills, via rhachet",
5
- "version": "0.9.2",
5
+ "version": "0.9.3",
6
6
  "repository": "ehmpathy/rhachet-roles-bhrain",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet-roles-bhrain",
8
8
  "keywords": [