rhachet-roles-bhrain 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contract/cli/reflect.d.ts +8 -0
- package/dist/contract/cli/reflect.js +148 -0
- package/dist/contract/cli/reflect.js.map +1 -0
- package/dist/{domain.roles/reviewer/skills/review.cli.d.ts → contract/cli/review.d.ts} +1 -1
- package/dist/{domain.roles/reviewer/skills/review.cli.js → contract/cli/review.js} +4 -4
- package/dist/contract/cli/review.js.map +1 -0
- package/dist/domain.roles/reviewer/skills/reflect.sh +1 -1
- package/dist/domain.roles/reviewer/skills/review.sh +1 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/domain.roles/reviewer/skills/review.cli.js.map +0 -1
- package/dist/domain.roles/reviewer/skills/review.cli.ts +0 -197
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = cli entrypoint for reflect skill
|
|
3
|
+
* .why = enables shell invocation via package-level import
|
|
4
|
+
*
|
|
5
|
+
* .note = this is a SKILL entrypoint, not a public api
|
|
6
|
+
* brain packages are imported here because skill users have them installed
|
|
7
|
+
*/
|
|
8
|
+
export declare const reflect: () => Promise<void>;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reflect = void 0;
|
|
4
|
+
const rhachet_1 = require("rhachet");
|
|
5
|
+
const rhachet_brains_anthropic_1 = require("rhachet-brains-anthropic");
|
|
6
|
+
const rhachet_brains_openai_1 = require("rhachet-brains-openai");
|
|
7
|
+
const rhachet_brains_xai_1 = require("rhachet-brains-xai");
|
|
8
|
+
const stepReflect_1 = require("../../domain.operations/reflect/stepReflect");
|
|
9
|
+
/**
|
|
10
|
+
* .what = default brain for reflect skill
|
|
11
|
+
* .why = anthropic/claude/sonnet-4 is effective for rule extraction and synthesis
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_BRAIN = 'anthropic/claude/sonnet-4';
|
|
14
|
+
/**
|
|
15
|
+
* .what = loads all available brain atoms from installed packages
|
|
16
|
+
* .why = enables enumeration of available brains for lookup
|
|
17
|
+
*/
|
|
18
|
+
const loadAllAtoms = () => {
|
|
19
|
+
return [
|
|
20
|
+
...(0, rhachet_brains_xai_1.getBrainAtomsByXAI)(),
|
|
21
|
+
...(0, rhachet_brains_anthropic_1.getBrainAtomsByAnthropic)(),
|
|
22
|
+
...(0, rhachet_brains_openai_1.getBrainAtomsByOpenAI)(),
|
|
23
|
+
];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* .what = loads all available brain repls from installed packages
|
|
27
|
+
* .why = enables enumeration of available brains for lookup
|
|
28
|
+
*/
|
|
29
|
+
const loadAllRepls = () => {
|
|
30
|
+
return [...(0, rhachet_brains_anthropic_1.getBrainReplsByAnthropic)(), ...(0, rhachet_brains_openai_1.getBrainReplsByOpenAI)()];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* .what = prints help message with available brains
|
|
34
|
+
* .why = enables users to discover available brain options
|
|
35
|
+
*/
|
|
36
|
+
const printHelp = (input) => {
|
|
37
|
+
const brainsInWords = (0, rhachet_1.getAvailableBrainsInWords)({
|
|
38
|
+
atoms: input.atoms,
|
|
39
|
+
repls: input.repls,
|
|
40
|
+
choice: '',
|
|
41
|
+
});
|
|
42
|
+
console.log(`
|
|
43
|
+
reflect - extract rules from feedback and propose to target
|
|
44
|
+
|
|
45
|
+
usage:
|
|
46
|
+
reflect.sh [options]
|
|
47
|
+
|
|
48
|
+
options:
|
|
49
|
+
--source <path> source directory with feedback files (required)
|
|
50
|
+
--target <path> target directory for rules (required)
|
|
51
|
+
--mode <mode> reflect mode: push or pull (default: pull)
|
|
52
|
+
--force create target directory if it does not exist
|
|
53
|
+
--brain <slug> brain to use for reflection (default: ${DEFAULT_BRAIN})
|
|
54
|
+
--help show this help message
|
|
55
|
+
|
|
56
|
+
${brainsInWords}
|
|
57
|
+
`.trim());
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* .what = checks if help flag is present in args
|
|
61
|
+
* .why = enables early exit for help display
|
|
62
|
+
*/
|
|
63
|
+
const hasHelpFlag = (argv) => {
|
|
64
|
+
return argv.includes('--help') || argv.includes('-h');
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* .what = detects if node was invoked via `node -e "code"` (eval mode)
|
|
68
|
+
* .why = in eval mode, argv has no entrypoint path: [node, firstArg, ...]
|
|
69
|
+
* in normal mode, argv has entrypoint path: [node, file.js, firstArg, ...]
|
|
70
|
+
* we skip different counts to slice argv correctly
|
|
71
|
+
*/
|
|
72
|
+
const isNodeEvalMode = (argv) => {
|
|
73
|
+
// in eval mode, argv[1] is the first user arg (e.g., --source), not an entrypoint path
|
|
74
|
+
// entrypoint paths end with .js, .ts, .mjs, etc. and don't start with --
|
|
75
|
+
const secondArg = argv[1];
|
|
76
|
+
if (!secondArg)
|
|
77
|
+
return false;
|
|
78
|
+
const looksLikeEntrypointPath = /\.(js|ts|mjs|cjs)$/.test(secondArg) || !secondArg.startsWith('--');
|
|
79
|
+
return !looksLikeEntrypointPath;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* .what = parses cli args into options object
|
|
83
|
+
* .why = simple arg parser without external dependencies
|
|
84
|
+
*/
|
|
85
|
+
const parseArgs = (argv) => {
|
|
86
|
+
// skip node binary (always argv[0]) and entrypoint path (only in normal mode)
|
|
87
|
+
const skipCount = isNodeEvalMode(argv) ? 1 : 2;
|
|
88
|
+
const args = argv.slice(skipCount).filter((arg) => arg !== '--');
|
|
89
|
+
const options = {};
|
|
90
|
+
for (let i = 0; i < args.length; i++) {
|
|
91
|
+
const arg = args[i];
|
|
92
|
+
if (!arg)
|
|
93
|
+
continue;
|
|
94
|
+
if (arg.startsWith('--')) {
|
|
95
|
+
const key = arg.slice(2);
|
|
96
|
+
// handle boolean flags
|
|
97
|
+
if (key === 'force') {
|
|
98
|
+
options[key] = true;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const value = args[i + 1];
|
|
102
|
+
if (value && !value.startsWith('--')) {
|
|
103
|
+
options[key] = value;
|
|
104
|
+
i++;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
source: options.source,
|
|
110
|
+
target: options.target,
|
|
111
|
+
mode: options.mode ?? 'pull',
|
|
112
|
+
force: options.force ?? false,
|
|
113
|
+
brain: options.brain ?? DEFAULT_BRAIN,
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* .what = cli entrypoint for reflect skill
|
|
118
|
+
* .why = enables shell invocation via package-level import
|
|
119
|
+
*
|
|
120
|
+
* .note = this is a SKILL entrypoint, not a public api
|
|
121
|
+
* brain packages are imported here because skill users have them installed
|
|
122
|
+
*/
|
|
123
|
+
const reflect = async () => {
|
|
124
|
+
// load brains early for help display
|
|
125
|
+
const atoms = loadAllAtoms();
|
|
126
|
+
const repls = loadAllRepls();
|
|
127
|
+
// handle --help flag
|
|
128
|
+
if (hasHelpFlag(process.argv)) {
|
|
129
|
+
printHelp({ atoms, repls });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// parse args and create brain context
|
|
133
|
+
const options = parseArgs(process.argv);
|
|
134
|
+
const brain = (0, rhachet_1.genContextBrain)({
|
|
135
|
+
atoms,
|
|
136
|
+
repls,
|
|
137
|
+
choice: options.brain,
|
|
138
|
+
});
|
|
139
|
+
// invoke stepReflect
|
|
140
|
+
await (0, stepReflect_1.stepReflect)({
|
|
141
|
+
source: options.source,
|
|
142
|
+
target: options.target,
|
|
143
|
+
mode: options.mode,
|
|
144
|
+
force: options.force,
|
|
145
|
+
}, { brain });
|
|
146
|
+
};
|
|
147
|
+
exports.reflect = reflect;
|
|
148
|
+
//# sourceMappingURL=reflect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/contract/cli/reflect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* .what = cli entrypoint for review skill
|
|
3
|
-
* .why = enables shell invocation via
|
|
3
|
+
* .why = enables shell invocation via package-level import
|
|
4
4
|
*
|
|
5
5
|
* .note = this is a SKILL entrypoint, not a public api
|
|
6
6
|
* brain packages are imported here because skill users have them installed
|
|
@@ -5,7 +5,7 @@ const rhachet_1 = require("rhachet");
|
|
|
5
5
|
const rhachet_brains_anthropic_1 = require("rhachet-brains-anthropic");
|
|
6
6
|
const rhachet_brains_openai_1 = require("rhachet-brains-openai");
|
|
7
7
|
const rhachet_brains_xai_1 = require("rhachet-brains-xai");
|
|
8
|
-
const stepReview_1 = require("
|
|
8
|
+
const stepReview_1 = require("../../domain.operations/review/stepReview");
|
|
9
9
|
/**
|
|
10
10
|
* .what = default brain for review skill
|
|
11
11
|
* .why = xai/grok/code-fast-1 is fast, cheap, and effective for code review
|
|
@@ -83,7 +83,7 @@ const isNodeEvalMode = (argv) => {
|
|
|
83
83
|
};
|
|
84
84
|
/**
|
|
85
85
|
* .what = parses cli args into options object
|
|
86
|
-
* .why = simple arg
|
|
86
|
+
* .why = simple arg parser without external dependencies
|
|
87
87
|
*/
|
|
88
88
|
const parseArgs = (argv) => {
|
|
89
89
|
// skip node binary (always argv[0]) and script path (only in normal mode)
|
|
@@ -125,7 +125,7 @@ const parseArgs = (argv) => {
|
|
|
125
125
|
};
|
|
126
126
|
/**
|
|
127
127
|
* .what = cli entrypoint for review skill
|
|
128
|
-
* .why = enables shell invocation via
|
|
128
|
+
* .why = enables shell invocation via package-level import
|
|
129
129
|
*
|
|
130
130
|
* .note = this is a SKILL entrypoint, not a public api
|
|
131
131
|
* brain packages are imported here because skill users have them installed
|
|
@@ -158,4 +158,4 @@ const review = async () => {
|
|
|
158
158
|
}, { brain });
|
|
159
159
|
};
|
|
160
160
|
exports.review = review;
|
|
161
|
-
//# sourceMappingURL=review.
|
|
161
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/contract/cli/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,5 +17,4 @@
|
|
|
17
17
|
######################################################################
|
|
18
18
|
set -euo pipefail
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
exec node -e "import('$SCRIPT_DIR/review.cli.js').then(m => m.review())" -- "$@"
|
|
20
|
+
exec node -e "import('rhachet-roles-bhrain').then(m => m.cli.review())" -- "$@"
|
package/dist/index.d.ts
CHANGED
|
@@ -3,3 +3,7 @@ export type { StepReflectResult } from './domain.operations/reflect/stepReflect'
|
|
|
3
3
|
export { stepReflect } from './domain.operations/reflect/stepReflect';
|
|
4
4
|
export type { StepReviewResult } from './domain.operations/review/stepReview';
|
|
5
5
|
export { stepReview } from './domain.operations/review/stepReview';
|
|
6
|
+
export declare const cli: {
|
|
7
|
+
review: () => Promise<void>;
|
|
8
|
+
reflect: () => Promise<void>;
|
|
9
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.stepReview = exports.stepReflect = void 0;
|
|
17
|
+
exports.cli = exports.stepReview = exports.stepReflect = void 0;
|
|
18
18
|
__exportStar(require("./contract/sdk"), exports);
|
|
19
19
|
// domain operations for consumers who provide their own brain context
|
|
20
20
|
var stepReflect_1 = require("./domain.operations/reflect/stepReflect");
|
|
21
21
|
Object.defineProperty(exports, "stepReflect", { enumerable: true, get: function () { return stepReflect_1.stepReflect; } });
|
|
22
22
|
var stepReview_1 = require("./domain.operations/review/stepReview");
|
|
23
23
|
Object.defineProperty(exports, "stepReview", { enumerable: true, get: function () { return stepReview_1.stepReview; } });
|
|
24
|
+
const reflect_1 = require("./contract/cli/reflect");
|
|
25
|
+
// cli entry points for portable skill dispatch
|
|
26
|
+
const review_1 = require("./contract/cli/review");
|
|
27
|
+
exports.cli = {
|
|
28
|
+
review: review_1.review,
|
|
29
|
+
reflect: reflect_1.reflect,
|
|
30
|
+
};
|
|
24
31
|
//# 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,oDAAkC;AAElC,sEAAsE;AACtE,0EAAyE;AAAhE,0GAAA,WAAW,OAAA;AAEpB,uEAAsE;AAA7D,wGAAA,UAAU,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAElC,sEAAsE;AACtE,0EAAyE;AAAhE,0GAAA,WAAW,OAAA;AAEpB,uEAAsE;AAA7D,wGAAA,UAAU,OAAA;AAEnB,uDAAoD;AACpD,+CAA+C;AAC/C,qDAAkD;AAErC,QAAA,GAAG,GAAG;IACjB,MAAM,EAAN,eAAM;IACN,OAAO,EAAP,iBAAO;CACR,CAAC"}
|
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.7.
|
|
5
|
+
"version": "0.7.5",
|
|
6
6
|
"repository": "ehmpathy/rhachet-roles-bhrain",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet-roles-bhrain",
|
|
8
8
|
"keywords": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"review.cli.js","sourceRoot":"","sources":["../../../../src/domain.roles/reviewer/skills/review.cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type BrainAtom,
|
|
3
|
-
type BrainRepl,
|
|
4
|
-
genContextBrain,
|
|
5
|
-
getAvailableBrainsInWords,
|
|
6
|
-
} from 'rhachet';
|
|
7
|
-
import {
|
|
8
|
-
getBrainAtomsByAnthropic,
|
|
9
|
-
getBrainReplsByAnthropic,
|
|
10
|
-
} from 'rhachet-brains-anthropic';
|
|
11
|
-
import {
|
|
12
|
-
getBrainAtomsByOpenAI,
|
|
13
|
-
getBrainReplsByOpenAI,
|
|
14
|
-
} from 'rhachet-brains-openai';
|
|
15
|
-
import { getBrainAtomsByXAI } from 'rhachet-brains-xai';
|
|
16
|
-
|
|
17
|
-
import { stepReview } from '@src/domain.operations/review/stepReview';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* .what = default brain for review skill
|
|
21
|
-
* .why = xai/grok/code-fast-1 is fast, cheap, and effective for code review
|
|
22
|
-
*/
|
|
23
|
-
const DEFAULT_BRAIN = 'xai/grok/code-fast-1';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* .what = loads all available brain atoms from installed packages
|
|
27
|
-
* .why = enables enumeration of available brains for lookup
|
|
28
|
-
*/
|
|
29
|
-
const loadAllAtoms = (): BrainAtom[] => {
|
|
30
|
-
return [
|
|
31
|
-
...getBrainAtomsByXAI(),
|
|
32
|
-
...getBrainAtomsByAnthropic(),
|
|
33
|
-
...getBrainAtomsByOpenAI(),
|
|
34
|
-
];
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* .what = loads all available brain repls from installed packages
|
|
39
|
-
* .why = enables enumeration of available brains for lookup
|
|
40
|
-
*/
|
|
41
|
-
const loadAllRepls = (): BrainRepl[] => {
|
|
42
|
-
return [...getBrainReplsByAnthropic(), ...getBrainReplsByOpenAI()];
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* .what = prints help message with available brains
|
|
47
|
-
* .why = enables users to discover available brain options
|
|
48
|
-
*/
|
|
49
|
-
const printHelp = (input: { atoms: BrainAtom[]; repls: BrainRepl[] }): void => {
|
|
50
|
-
const brainsInWords = getAvailableBrainsInWords({
|
|
51
|
-
atoms: input.atoms,
|
|
52
|
-
repls: input.repls,
|
|
53
|
-
choice: '',
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
console.log(
|
|
57
|
-
`
|
|
58
|
-
review - code review against rules
|
|
59
|
-
|
|
60
|
-
usage:
|
|
61
|
-
review.sh [options]
|
|
62
|
-
|
|
63
|
-
options:
|
|
64
|
-
--rules <globs> glob pattern(s) for rule files (required)
|
|
65
|
-
--paths <globs> glob pattern(s) for target files
|
|
66
|
-
--diffs <range> diff range: uptil-main, uptil-commit, uptil-staged
|
|
67
|
-
--refs <globs> glob pattern(s) for reference files (can repeat)
|
|
68
|
-
--output <path> output file path for the review (required)
|
|
69
|
-
--mode <mode> review mode: push or pull (default: push)
|
|
70
|
-
--goal <goal> review goal: exhaustive or representative (default: representative)
|
|
71
|
-
--brain <slug> brain to use for review (default: ${DEFAULT_BRAIN})
|
|
72
|
-
--help show this help message
|
|
73
|
-
|
|
74
|
-
${brainsInWords}
|
|
75
|
-
`.trim(),
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* .what = checks if help flag is present in args
|
|
81
|
-
* .why = enables early exit for help display
|
|
82
|
-
*/
|
|
83
|
-
const hasHelpFlag = (argv: string[]): boolean => {
|
|
84
|
-
return argv.includes('--help') || argv.includes('-h');
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* .what = detects if node was invoked via `node -e "code"` (eval mode)
|
|
89
|
-
* .why = in eval mode, argv has no script path: [node, firstArg, ...]
|
|
90
|
-
* in normal mode, argv has script path: [node, script.js, firstArg, ...]
|
|
91
|
-
* we need to skip different counts when slicing argv
|
|
92
|
-
*/
|
|
93
|
-
const isNodeEvalMode = (argv: string[]): boolean => {
|
|
94
|
-
// in eval mode, argv[1] is the first user arg (e.g., --rules), not a script path
|
|
95
|
-
// script paths end with .js, .ts, .mjs, etc. and don't start with --
|
|
96
|
-
const secondArg = argv[1];
|
|
97
|
-
if (!secondArg) return false;
|
|
98
|
-
const looksLikeScriptPath =
|
|
99
|
-
/\.(js|ts|mjs|cjs)$/.test(secondArg) || !secondArg.startsWith('--');
|
|
100
|
-
return !looksLikeScriptPath;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* .what = parses cli args into options object
|
|
105
|
-
* .why = simple arg parse without external dependencies
|
|
106
|
-
*/
|
|
107
|
-
const parseArgs = (
|
|
108
|
-
argv: string[],
|
|
109
|
-
): {
|
|
110
|
-
rules: string;
|
|
111
|
-
diffs: string | undefined;
|
|
112
|
-
paths: string | undefined;
|
|
113
|
-
refs: string[] | undefined;
|
|
114
|
-
output: string;
|
|
115
|
-
mode: 'push' | 'pull';
|
|
116
|
-
goal: 'exhaustive' | 'representative';
|
|
117
|
-
brain: string;
|
|
118
|
-
} => {
|
|
119
|
-
// skip node binary (always argv[0]) and script path (only in normal mode)
|
|
120
|
-
const skipCount = isNodeEvalMode(argv) ? 1 : 2;
|
|
121
|
-
const args = argv.slice(skipCount).filter((arg) => arg !== '--');
|
|
122
|
-
const options: Record<string, string | string[]> = {};
|
|
123
|
-
|
|
124
|
-
for (let i = 0; i < args.length; i++) {
|
|
125
|
-
const arg = args[i];
|
|
126
|
-
if (!arg) continue;
|
|
127
|
-
|
|
128
|
-
if (arg.startsWith('--')) {
|
|
129
|
-
const key = arg.slice(2);
|
|
130
|
-
const value = args[i + 1];
|
|
131
|
-
|
|
132
|
-
// handle --refs which can be specified multiple times
|
|
133
|
-
if (key === 'refs') {
|
|
134
|
-
if (!options.refs) options.refs = [];
|
|
135
|
-
if (value && !value.startsWith('--')) {
|
|
136
|
-
(options.refs as string[]).push(value);
|
|
137
|
-
i++;
|
|
138
|
-
}
|
|
139
|
-
} else if (value && !value.startsWith('--')) {
|
|
140
|
-
options[key] = value;
|
|
141
|
-
i++;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return {
|
|
147
|
-
rules: options.rules as string,
|
|
148
|
-
diffs: options.diffs as string | undefined,
|
|
149
|
-
paths: options.paths as string | undefined,
|
|
150
|
-
refs: options.refs as string[] | undefined,
|
|
151
|
-
output: options.output as string,
|
|
152
|
-
mode: (options.mode as 'push' | 'pull') ?? 'push',
|
|
153
|
-
goal: (options.goal as 'exhaustive' | 'representative') ?? 'representative',
|
|
154
|
-
brain: (options.brain as string) ?? DEFAULT_BRAIN,
|
|
155
|
-
};
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* .what = cli entrypoint for review skill
|
|
160
|
-
* .why = enables shell invocation via review.sh
|
|
161
|
-
*
|
|
162
|
-
* .note = this is a SKILL entrypoint, not a public api
|
|
163
|
-
* brain packages are imported here because skill users have them installed
|
|
164
|
-
*/
|
|
165
|
-
export const review = async (): Promise<void> => {
|
|
166
|
-
// load brains early for help display
|
|
167
|
-
const atoms = loadAllAtoms();
|
|
168
|
-
const repls = loadAllRepls();
|
|
169
|
-
|
|
170
|
-
// handle --help flag
|
|
171
|
-
if (hasHelpFlag(process.argv)) {
|
|
172
|
-
printHelp({ atoms, repls });
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// parse args and create brain context
|
|
177
|
-
const options = parseArgs(process.argv);
|
|
178
|
-
const brain = genContextBrain({
|
|
179
|
-
atoms,
|
|
180
|
-
repls,
|
|
181
|
-
choice: options.brain,
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
// invoke stepReview
|
|
185
|
-
await stepReview(
|
|
186
|
-
{
|
|
187
|
-
rules: options.rules,
|
|
188
|
-
diffs: options.diffs,
|
|
189
|
-
paths: options.paths,
|
|
190
|
-
refs: options.refs,
|
|
191
|
-
output: options.output,
|
|
192
|
-
mode: options.mode,
|
|
193
|
-
goal: options.goal,
|
|
194
|
-
},
|
|
195
|
-
{ brain },
|
|
196
|
-
);
|
|
197
|
-
};
|