oh-my-codex 0.21.39 → 0.21.41
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/Cargo.lock +6 -6
- package/Cargo.toml +1 -1
- package/dist/agents/native-config.d.ts +12 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +12 -0
- package/dist/agents/native-config.js.map +1 -1
- package/dist/bin/__tests__/quality-gates-cli.test.d.ts +2 -0
- package/dist/bin/__tests__/quality-gates-cli.test.d.ts.map +1 -0
- package/dist/bin/__tests__/quality-gates-cli.test.js +110 -0
- package/dist/bin/__tests__/quality-gates-cli.test.js.map +1 -0
- package/dist/bin/quality-gates-cli.d.ts +18 -0
- package/dist/bin/quality-gates-cli.d.ts.map +1 -0
- package/dist/bin/quality-gates-cli.js +107 -0
- package/dist/bin/quality-gates-cli.js.map +1 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.js +18 -1
- package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +11 -3
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +17 -4
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +21 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/session-search.js +1 -1
- package/dist/config/__tests__/quality-gates.test.d.ts +2 -0
- package/dist/config/__tests__/quality-gates.test.d.ts.map +1 -0
- package/dist/config/__tests__/quality-gates.test.js +369 -0
- package/dist/config/__tests__/quality-gates.test.js.map +1 -0
- package/dist/config/models.d.ts +4 -1
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +4 -1
- package/dist/config/models.js.map +1 -1
- package/dist/config/quality-gates.d.ts +97 -0
- package/dist/config/quality-gates.d.ts.map +1 -0
- package/dist/config/quality-gates.js +232 -0
- package/dist/config/quality-gates.js.map +1 -0
- package/dist/hooks/__tests__/code-review-skill-contract.test.js +2 -2
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/session.test.js +311 -1
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/session.d.ts +9 -8
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +125 -32
- package/dist/hooks/session.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +47 -0
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +2 -2
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +4 -3
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/quality-gates/index.d.ts +7 -0
- package/dist/quality-gates/index.d.ts.map +1 -0
- package/dist/quality-gates/index.js +8 -0
- package/dist/quality-gates/index.js.map +1 -0
- package/dist/ralplan/__tests__/runtime.test.js +43 -1
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/runtime-contract.d.ts +22 -0
- package/dist/ralplan/runtime-contract.d.ts.map +1 -1
- package/dist/ralplan/runtime.d.ts +10 -1
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +83 -5
- package/dist/ralplan/runtime.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +12 -2
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +11 -0
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +27 -7
- package/plugins/oh-my-codex/templates/AGENTS.md +17 -1
- package/skills/code-review/SKILL.md +12 -2
- package/skills/deep-interview/SKILL.md +11 -0
- package/skills/ralplan/SKILL.md +27 -7
- package/templates/AGENTS.md +17 -1
|
@@ -40,7 +40,7 @@ Options for lock:
|
|
|
40
40
|
-h, --help Show this help
|
|
41
41
|
|
|
42
42
|
Options for pointer:
|
|
43
|
-
--cwd <path> Recover
|
|
43
|
+
--cwd <path> Recover a verified-dead or managed-daemon selected pointer
|
|
44
44
|
--json Emit structured JSON
|
|
45
45
|
-h, --help Show this help
|
|
46
46
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/quality-gates.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
2
|
+
import * as assert from 'node:assert';
|
|
3
|
+
import { mkdtemp, rmSync } from 'node:fs';
|
|
4
|
+
import { writeFileSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { tmpdir } from 'node:os';
|
|
7
|
+
import { promisify } from 'node:util';
|
|
8
|
+
import { validateSkillName, readQualityGatesConfig, getGatesForStage, validateAllQualityGates, normalizeGateEntry, } from '../quality-gates.js';
|
|
9
|
+
const mkdtempAsync = promisify(mkdtemp);
|
|
10
|
+
describe('quality gates config', () => {
|
|
11
|
+
let testDir;
|
|
12
|
+
beforeEach(async () => {
|
|
13
|
+
testDir = await mkdtempAsync(join(tmpdir(), 'omx-quality-gates-'));
|
|
14
|
+
});
|
|
15
|
+
afterEach(async () => {
|
|
16
|
+
if (testDir) {
|
|
17
|
+
rmSync(testDir, { recursive: true, force: true });
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
describe('validateSkillName', () => {
|
|
21
|
+
it('accepts valid kebab-case skill names', () => {
|
|
22
|
+
const validSkills = ['my-custom-gate', 'foo-bar-baz', 'test123', 'analysis-check', 'my-review-v2'];
|
|
23
|
+
for (const skill of validSkills) {
|
|
24
|
+
const result = validateSkillName(skill);
|
|
25
|
+
assert.strictEqual(result.valid, true, `Expected "${skill}" to be valid`);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
it('accepts skill names with $ prefix', () => {
|
|
29
|
+
const validSkills = ['$my-custom-skill', '$analyze', '$ask'];
|
|
30
|
+
for (const skill of validSkills) {
|
|
31
|
+
const result = validateSkillName(skill);
|
|
32
|
+
assert.strictEqual(result.valid, true, `Expected "${skill}" to be valid`);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
it('rejects non-kebab-case skill names', () => {
|
|
36
|
+
const invalidSkills = ['MySkill', 'my_skill', 'my skill', 'my.skill', '-my-skill', 'my-skill-'];
|
|
37
|
+
for (const skill of invalidSkills) {
|
|
38
|
+
const result = validateSkillName(skill);
|
|
39
|
+
assert.strictEqual(result.valid, false, `Expected "${skill}" to be invalid`);
|
|
40
|
+
assert.ok(result.error, `Expected error message for "${skill}"`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
it('rejects reserved skill names', () => {
|
|
44
|
+
const reserved = ['deep-interview', 'code-review', 'verification', 'ai-slop-cleaner'];
|
|
45
|
+
for (const skill of reserved) {
|
|
46
|
+
const result = validateSkillName(skill);
|
|
47
|
+
assert.strictEqual(result.valid, false, `Expected "${skill}" to be reserved`);
|
|
48
|
+
assert.match(result.error, /reserved/i);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
it('rejects sunset skill names from sunset-stub', () => {
|
|
52
|
+
// These are from REMOVED_SKILLS in sunset-stub.ts
|
|
53
|
+
const sunsetSkills = ['ask-claude', 'deepsearch', 'ecomode', 'ralph'];
|
|
54
|
+
for (const skill of sunsetSkills) {
|
|
55
|
+
const result = validateSkillName(skill);
|
|
56
|
+
assert.strictEqual(result.valid, false, `Expected "${skill}" to be sunset`);
|
|
57
|
+
assert.match(result.error, /deprecated|sunset/i);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
it('rejects empty or non-string skill names', () => {
|
|
61
|
+
const result1 = validateSkillName('');
|
|
62
|
+
assert.strictEqual(result1.valid, false);
|
|
63
|
+
const result2 = validateSkillName(null);
|
|
64
|
+
assert.strictEqual(result2.valid, false);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('normalizeGateEntry', () => {
|
|
68
|
+
it('normalizes string gate entries', () => {
|
|
69
|
+
const result = normalizeGateEntry('my-gate');
|
|
70
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'blocking' });
|
|
71
|
+
});
|
|
72
|
+
it('normalizes object gate entries with defaults', () => {
|
|
73
|
+
const result = normalizeGateEntry({ skill: 'my-gate' });
|
|
74
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'blocking' });
|
|
75
|
+
});
|
|
76
|
+
it('normalizes object gate entries with explicit blocking mode', () => {
|
|
77
|
+
const result = normalizeGateEntry({ skill: 'my-gate', mode: 'blocking' });
|
|
78
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'blocking' });
|
|
79
|
+
});
|
|
80
|
+
it('normalizes object gate entries with advisory mode', () => {
|
|
81
|
+
const result = normalizeGateEntry({ skill: 'my-gate', mode: 'advisory' });
|
|
82
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'advisory' });
|
|
83
|
+
});
|
|
84
|
+
it('preserves optional model in object entries', () => {
|
|
85
|
+
const result = normalizeGateEntry({ skill: 'my-gate', model: 'claude-opus' });
|
|
86
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'blocking', model: 'claude-opus' });
|
|
87
|
+
});
|
|
88
|
+
it('preserves mode and model together', () => {
|
|
89
|
+
const result = normalizeGateEntry({ skill: 'my-gate', mode: 'advisory', model: 'claude-opus' });
|
|
90
|
+
assert.deepStrictEqual(result, { skill: 'my-gate', mode: 'advisory', model: 'claude-opus' });
|
|
91
|
+
});
|
|
92
|
+
it('rejects invalid mode', () => {
|
|
93
|
+
const result = normalizeGateEntry({ skill: 'my-gate', mode: 'invalid' });
|
|
94
|
+
assert.strictEqual(result, null);
|
|
95
|
+
});
|
|
96
|
+
it('rejects invalid skill names', () => {
|
|
97
|
+
const result = normalizeGateEntry('MyInvalidGate');
|
|
98
|
+
assert.strictEqual(result, null);
|
|
99
|
+
});
|
|
100
|
+
it('rejects reserved skill names', () => {
|
|
101
|
+
const result = normalizeGateEntry('deep-interview');
|
|
102
|
+
assert.strictEqual(result, null);
|
|
103
|
+
});
|
|
104
|
+
it('rejects non-string, non-object entries', () => {
|
|
105
|
+
assert.strictEqual(normalizeGateEntry(123), null);
|
|
106
|
+
assert.strictEqual(normalizeGateEntry(null), null);
|
|
107
|
+
assert.strictEqual(normalizeGateEntry([]), null);
|
|
108
|
+
});
|
|
109
|
+
it('rejects object without skill property', () => {
|
|
110
|
+
const result = normalizeGateEntry({ mode: 'blocking' });
|
|
111
|
+
assert.strictEqual(result, null);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe('readQualityGatesConfig', () => {
|
|
115
|
+
it('returns null for missing config file', () => {
|
|
116
|
+
const result = readQualityGatesConfig(testDir);
|
|
117
|
+
assert.strictEqual(result, null);
|
|
118
|
+
});
|
|
119
|
+
it('reads valid config file with string entries', () => {
|
|
120
|
+
const config = {
|
|
121
|
+
'deep-interview': ['my-interview-gate'],
|
|
122
|
+
'ralplan': ['my-plan-gate'],
|
|
123
|
+
'code-review': ['my-review-gate'],
|
|
124
|
+
};
|
|
125
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
126
|
+
const result = readQualityGatesConfig(testDir);
|
|
127
|
+
assert.deepStrictEqual(result, config);
|
|
128
|
+
});
|
|
129
|
+
it('reads valid config file with object entries', () => {
|
|
130
|
+
const config = {
|
|
131
|
+
'ralplan': [
|
|
132
|
+
'simple-gate',
|
|
133
|
+
{ skill: 'my-gate', mode: 'advisory' },
|
|
134
|
+
{ skill: 'another-gate', model: 'claude-opus' },
|
|
135
|
+
],
|
|
136
|
+
};
|
|
137
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
138
|
+
const result = readQualityGatesConfig(testDir);
|
|
139
|
+
assert.deepStrictEqual(result, config);
|
|
140
|
+
});
|
|
141
|
+
it('returns null for invalid config file', () => {
|
|
142
|
+
writeFileSync(join(testDir, '.omx-config.json'), 'invalid json');
|
|
143
|
+
const result = readQualityGatesConfig(testDir);
|
|
144
|
+
assert.strictEqual(result, null);
|
|
145
|
+
});
|
|
146
|
+
it('returns null when qualityGates is missing', () => {
|
|
147
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ otherConfig: {} }, null, 2));
|
|
148
|
+
const result = readQualityGatesConfig(testDir);
|
|
149
|
+
assert.strictEqual(result, null);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe('getGatesForStage', () => {
|
|
153
|
+
it('returns normalized gates for string entries', () => {
|
|
154
|
+
const config = {
|
|
155
|
+
'deep-interview': ['interview-gate'],
|
|
156
|
+
'ralplan': ['plan-gate'],
|
|
157
|
+
'code-review': ['review-gate'],
|
|
158
|
+
};
|
|
159
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
160
|
+
const interviewGates = getGatesForStage('deep-interview', testDir);
|
|
161
|
+
assert.deepStrictEqual(interviewGates, [{ skill: 'interview-gate', mode: 'blocking' }]);
|
|
162
|
+
const planGates = getGatesForStage('ralplan', testDir);
|
|
163
|
+
assert.deepStrictEqual(planGates, [{ skill: 'plan-gate', mode: 'blocking' }]);
|
|
164
|
+
const reviewGates = getGatesForStage('code-review', testDir);
|
|
165
|
+
assert.deepStrictEqual(reviewGates, [{ skill: 'review-gate', mode: 'blocking' }]);
|
|
166
|
+
});
|
|
167
|
+
it('returns normalized gates for object entries', () => {
|
|
168
|
+
const config = {
|
|
169
|
+
'ralplan': [
|
|
170
|
+
{ skill: 'blocking-gate', mode: 'blocking' },
|
|
171
|
+
{ skill: 'advisory-gate', mode: 'advisory' },
|
|
172
|
+
{ skill: 'model-gate', model: 'claude-opus' },
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
176
|
+
const gates = getGatesForStage('ralplan', testDir);
|
|
177
|
+
assert.strictEqual(gates.length, 3);
|
|
178
|
+
assert.deepStrictEqual(gates[0], { skill: 'blocking-gate', mode: 'blocking' });
|
|
179
|
+
assert.deepStrictEqual(gates[1], { skill: 'advisory-gate', mode: 'advisory' });
|
|
180
|
+
assert.deepStrictEqual(gates[2], { skill: 'model-gate', mode: 'blocking', model: 'claude-opus' });
|
|
181
|
+
});
|
|
182
|
+
it('returns empty array for missing stage', () => {
|
|
183
|
+
const config = {
|
|
184
|
+
'deep-interview': ['interview-gate'],
|
|
185
|
+
};
|
|
186
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
187
|
+
const planGates = getGatesForStage('ralplan', testDir);
|
|
188
|
+
assert.deepStrictEqual(planGates, []);
|
|
189
|
+
});
|
|
190
|
+
it('filters out invalid skill names', () => {
|
|
191
|
+
const config = {
|
|
192
|
+
'ralplan': ['valid-gate', 'MyInvalidGate', 'deep-interview'],
|
|
193
|
+
};
|
|
194
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
195
|
+
const gates = getGatesForStage('ralplan', testDir);
|
|
196
|
+
// Only valid-gate should be returned; MyInvalidGate is not kebab-case; deep-interview is reserved
|
|
197
|
+
assert.deepStrictEqual(gates, [{ skill: 'valid-gate', mode: 'blocking' }]);
|
|
198
|
+
});
|
|
199
|
+
it('filters out invalid object entries', () => {
|
|
200
|
+
const config = {
|
|
201
|
+
'ralplan': [
|
|
202
|
+
'valid-gate',
|
|
203
|
+
{ skill: 'MyInvalidGate' },
|
|
204
|
+
{ skill: 'valid-advisory', mode: 'advisory' },
|
|
205
|
+
{ mode: 'blocking' }, // Missing skill
|
|
206
|
+
],
|
|
207
|
+
};
|
|
208
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
209
|
+
const gates = getGatesForStage('ralplan', testDir);
|
|
210
|
+
// Should include only valid entries
|
|
211
|
+
assert.strictEqual(gates.length, 2);
|
|
212
|
+
assert.deepStrictEqual(gates[0], { skill: 'valid-gate', mode: 'blocking' });
|
|
213
|
+
assert.deepStrictEqual(gates[1], { skill: 'valid-advisory', mode: 'advisory' });
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('validateAllQualityGates', () => {
|
|
217
|
+
it('validates string and object gates across all stages', () => {
|
|
218
|
+
const config = {
|
|
219
|
+
'deep-interview': ['interview-gate'],
|
|
220
|
+
'ralplan': [
|
|
221
|
+
'plan-gate',
|
|
222
|
+
{ skill: 'advisory-plan', mode: 'advisory' },
|
|
223
|
+
],
|
|
224
|
+
'code-review': ['review-gate'],
|
|
225
|
+
};
|
|
226
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
227
|
+
const result = validateAllQualityGates(testDir);
|
|
228
|
+
assert.strictEqual(result.gates.length, 4);
|
|
229
|
+
assert.strictEqual(result.errors.length, 0);
|
|
230
|
+
assert.deepStrictEqual(result.gates[0], { skill: 'interview-gate', mode: 'blocking' });
|
|
231
|
+
assert.deepStrictEqual(result.gates[1], { skill: 'plan-gate', mode: 'blocking' });
|
|
232
|
+
assert.deepStrictEqual(result.gates[2], { skill: 'advisory-plan', mode: 'advisory' });
|
|
233
|
+
assert.deepStrictEqual(result.gates[3], { skill: 'review-gate', mode: 'blocking' });
|
|
234
|
+
});
|
|
235
|
+
it('collects validation errors across stages', () => {
|
|
236
|
+
const config = {
|
|
237
|
+
'deep-interview': ['valid-gate'],
|
|
238
|
+
'ralplan': ['MyInvalidGate', 'deep-interview', { skill: 'valid-obj' }],
|
|
239
|
+
'code-review': ['another-valid-gate'],
|
|
240
|
+
};
|
|
241
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
242
|
+
const result = validateAllQualityGates(testDir);
|
|
243
|
+
assert.strictEqual(result.gates.length, 3);
|
|
244
|
+
assert.strictEqual(result.errors.length, 2);
|
|
245
|
+
assert.ok(result.errors.some(e => e.entry === 'MyInvalidGate'));
|
|
246
|
+
assert.ok(result.errors.some(e => e.entry === 'deep-interview'));
|
|
247
|
+
});
|
|
248
|
+
it('validates object mode property', () => {
|
|
249
|
+
const config = {
|
|
250
|
+
'ralplan': [
|
|
251
|
+
{ skill: 'valid-gate', mode: 'blocking' },
|
|
252
|
+
{ skill: 'another-gate', mode: 'invalid' },
|
|
253
|
+
],
|
|
254
|
+
};
|
|
255
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
256
|
+
const result = validateAllQualityGates(testDir);
|
|
257
|
+
assert.strictEqual(result.gates.length, 1);
|
|
258
|
+
assert.strictEqual(result.errors.length, 1);
|
|
259
|
+
assert.match(result.errors[0].error, /Invalid mode/);
|
|
260
|
+
});
|
|
261
|
+
it('handles non-string and non-object gate entries', () => {
|
|
262
|
+
const config = {
|
|
263
|
+
'ralplan': ['valid-gate', 123, null, { skill: 'valid-obj' }],
|
|
264
|
+
};
|
|
265
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
266
|
+
const result = validateAllQualityGates(testDir);
|
|
267
|
+
assert.strictEqual(result.gates.length, 2);
|
|
268
|
+
assert.deepStrictEqual(result.gates[0], { skill: 'valid-gate', mode: 'blocking' });
|
|
269
|
+
assert.deepStrictEqual(result.gates[1], { skill: 'valid-obj', mode: 'blocking' });
|
|
270
|
+
assert.strictEqual(result.errors.length, 2);
|
|
271
|
+
});
|
|
272
|
+
it('handles object without skill property', () => {
|
|
273
|
+
const config = {
|
|
274
|
+
'ralplan': [
|
|
275
|
+
'valid-gate',
|
|
276
|
+
{ mode: 'blocking' },
|
|
277
|
+
],
|
|
278
|
+
};
|
|
279
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
280
|
+
const result = validateAllQualityGates(testDir);
|
|
281
|
+
assert.strictEqual(result.gates.length, 1);
|
|
282
|
+
assert.strictEqual(result.errors.length, 1);
|
|
283
|
+
assert.match(result.errors[0].error, /must have a "skill" property/);
|
|
284
|
+
});
|
|
285
|
+
it('preserves model in validated gates', () => {
|
|
286
|
+
const config = {
|
|
287
|
+
'ralplan': [
|
|
288
|
+
{ skill: 'model-gate', model: 'claude-opus', mode: 'advisory' },
|
|
289
|
+
],
|
|
290
|
+
};
|
|
291
|
+
writeFileSync(join(testDir, '.omx-config.json'), JSON.stringify({ qualityGates: config }, null, 2));
|
|
292
|
+
const result = validateAllQualityGates(testDir);
|
|
293
|
+
assert.strictEqual(result.gates.length, 1);
|
|
294
|
+
assert.deepStrictEqual(result.gates[0], {
|
|
295
|
+
skill: 'model-gate',
|
|
296
|
+
mode: 'advisory',
|
|
297
|
+
model: 'claude-opus',
|
|
298
|
+
});
|
|
299
|
+
assert.strictEqual(result.errors.length, 0);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
describe('config resolution: project vs CODEX_HOME precedence', () => {
|
|
303
|
+
let projectDir;
|
|
304
|
+
let codexHomeDir;
|
|
305
|
+
beforeEach(async () => {
|
|
306
|
+
projectDir = await mkdtempAsync(join(tmpdir(), 'omx-project-'));
|
|
307
|
+
codexHomeDir = await mkdtempAsync(join(tmpdir(), 'omx-codex-home-'));
|
|
308
|
+
});
|
|
309
|
+
afterEach(() => {
|
|
310
|
+
rmSync(projectDir, { recursive: true, force: true });
|
|
311
|
+
rmSync(codexHomeDir, { recursive: true, force: true });
|
|
312
|
+
});
|
|
313
|
+
it('reads only project config when CODEX_HOME has no config', () => {
|
|
314
|
+
const projectConfig = {
|
|
315
|
+
'ralplan': ['project-gate'],
|
|
316
|
+
};
|
|
317
|
+
writeFileSync(join(projectDir, '.omx-config.json'), JSON.stringify({ qualityGates: projectConfig }, null, 2));
|
|
318
|
+
// codexHomeDir is empty, so no config there
|
|
319
|
+
const gates = getGatesForStage('ralplan', codexHomeDir, projectDir);
|
|
320
|
+
assert.deepStrictEqual(gates, [{ skill: 'project-gate', mode: 'blocking' }]);
|
|
321
|
+
});
|
|
322
|
+
it('reads only CODEX_HOME config when project has no config', () => {
|
|
323
|
+
const codexHomeConfig = {
|
|
324
|
+
'ralplan': ['codex-gate'],
|
|
325
|
+
};
|
|
326
|
+
writeFileSync(join(codexHomeDir, '.omx-config.json'), JSON.stringify({ qualityGates: codexHomeConfig }, null, 2));
|
|
327
|
+
// projectDir is empty, so no config there
|
|
328
|
+
const gates = getGatesForStage('ralplan', codexHomeDir, projectDir);
|
|
329
|
+
assert.deepStrictEqual(gates, [{ skill: 'codex-gate', mode: 'blocking' }]);
|
|
330
|
+
});
|
|
331
|
+
it('merges project and CODEX_HOME configs with project taking precedence for same stage', () => {
|
|
332
|
+
const projectConfig = {
|
|
333
|
+
'ralplan': ['project-gate'],
|
|
334
|
+
'deep-interview': ['project-interview-gate'],
|
|
335
|
+
};
|
|
336
|
+
const codexHomeConfig = {
|
|
337
|
+
'ralplan': ['codex-gate'],
|
|
338
|
+
'code-review': ['codex-review-gate'],
|
|
339
|
+
};
|
|
340
|
+
writeFileSync(join(projectDir, '.omx-config.json'), JSON.stringify({ qualityGates: projectConfig }, null, 2));
|
|
341
|
+
writeFileSync(join(codexHomeDir, '.omx-config.json'), JSON.stringify({ qualityGates: codexHomeConfig }, null, 2));
|
|
342
|
+
// Project ralplan should override CODEX_HOME ralplan
|
|
343
|
+
const ralplanGates = getGatesForStage('ralplan', codexHomeDir, projectDir);
|
|
344
|
+
assert.deepStrictEqual(ralplanGates, [{ skill: 'project-gate', mode: 'blocking' }]);
|
|
345
|
+
// Project deep-interview (from project only)
|
|
346
|
+
const interviewGates = getGatesForStage('deep-interview', codexHomeDir, projectDir);
|
|
347
|
+
assert.deepStrictEqual(interviewGates, [{ skill: 'project-interview-gate', mode: 'blocking' }]);
|
|
348
|
+
// Code-review (from CODEX_HOME only)
|
|
349
|
+
const reviewGates = getGatesForStage('code-review', codexHomeDir, projectDir);
|
|
350
|
+
assert.deepStrictEqual(reviewGates, [{ skill: 'codex-review-gate', mode: 'blocking' }]);
|
|
351
|
+
});
|
|
352
|
+
it('handles readQualityGatesConfig with both sources', () => {
|
|
353
|
+
const projectConfig = {
|
|
354
|
+
'ralplan': ['project-gate', { skill: 'project-model-gate', model: 'claude-opus' }],
|
|
355
|
+
};
|
|
356
|
+
const codexHomeConfig = {
|
|
357
|
+
'ralplan': ['codex-gate'],
|
|
358
|
+
'code-review': ['codex-review-gate'],
|
|
359
|
+
};
|
|
360
|
+
writeFileSync(join(projectDir, '.omx-config.json'), JSON.stringify({ qualityGates: projectConfig }, null, 2));
|
|
361
|
+
writeFileSync(join(codexHomeDir, '.omx-config.json'), JSON.stringify({ qualityGates: codexHomeConfig }, null, 2));
|
|
362
|
+
const config = readQualityGatesConfig(codexHomeDir, projectDir);
|
|
363
|
+
assert.ok(config, 'Config should not be null');
|
|
364
|
+
assert.deepStrictEqual(config?.ralplan, ['project-gate', { skill: 'project-model-gate', model: 'claude-opus' }], 'Project ralplan should override CODEX_HOME');
|
|
365
|
+
assert.deepStrictEqual(config?.['code-review'], ['codex-review-gate'], 'Code-review should come from CODEX_HOME');
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
//# sourceMappingURL=quality-gates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/quality-gates.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config/models.d.ts
CHANGED
|
@@ -22,7 +22,10 @@
|
|
|
22
22
|
* }
|
|
23
23
|
* }
|
|
24
24
|
*
|
|
25
|
-
* Resolution:
|
|
25
|
+
* Resolution:
|
|
26
|
+
* - getModelForMode: models[mode] > models.default > main default (shell env > .omx-config.json env > config.toml root model > built-in default)
|
|
27
|
+
* - Native TOML model: agentModels override > built-in-provider exactModel pin; otherwise no model field (inherit at runtime)
|
|
28
|
+
* - Team role fallback: agentModels > `*-low` spark path > exactModel pin (provider-independent) > executor/main > modelClass defaults
|
|
26
29
|
*/
|
|
27
30
|
export interface ModelsConfig {
|
|
28
31
|
[mode: string]: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"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"}
|
package/dist/config/models.js
CHANGED
|
@@ -22,7 +22,10 @@
|
|
|
22
22
|
* }
|
|
23
23
|
* }
|
|
24
24
|
*
|
|
25
|
-
* Resolution:
|
|
25
|
+
* Resolution:
|
|
26
|
+
* - getModelForMode: models[mode] > models.default > main default (shell env > .omx-config.json env > config.toml root model > built-in default)
|
|
27
|
+
* - Native TOML model: agentModels override > built-in-provider exactModel pin; otherwise no model field (inherit at runtime)
|
|
28
|
+
* - Team role fallback: agentModels > `*-low` spark path > exactModel pin (provider-independent) > executor/main > modelClass defaults
|
|
26
29
|
*/
|
|
27
30
|
import { parse as parseToml } from '@iarna/toml';
|
|
28
31
|
import { readFileSync, existsSync } from 'fs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAU/D,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAGvF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC;AAGjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAG9F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAGlF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC;AAoB5E,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,SAAS,iBAAiB,CAAC,iBAA0B;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvE,OAAO,GAAoB,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,iBAA0B;IACrD,MAAM,UAAU,GAAG,iBAAiB;QAClC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QACxC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvE,OAAO,GAAsB,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,iBAA0B;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxF,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,QAAQ,EAAS,gEAAgE;IACjF,gBAAgB,EAAE,uDAAuD;CAC1E,CAAwB,CAAC;AAC1B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,aAAa,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAU,CAAC;AAGvJ,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAQ,yBAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAa;IACjE,OAAQ,uCAA6D,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAa;IAC5D,OAAQ,kCAAwD,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,KAAa;IAEb,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAQ,kCAAwD,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnF,CAAC,CAAC,UAA4C;QAC9C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAClE,IAAI,UAAU,IAAK,2BAAiD,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1F,OAAO,UAAqC,CAAC;IAC/C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAClE,OAAO,UAAU,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,iBAA0B;IACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,6BAA6B,CAAC,iBAA0B;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,mCAAmC,CAAC,iBAA0B;IAC5E,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,iBAA0B;IACnE,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,UAAU;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,iBAA0B;IAE1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,EAAE,cAAc,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAErE,MAAM,QAAQ,GAA4C,EAAE,CAAC;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,SAA6B,EAC7B,iBAA0B;IAE1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,iBAA0B;IAE1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,EAAE,WAAW,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAErE,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,IAAI,IAAI,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAA6B,EAC7B,iBAA0B;IAE1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,iBAA0B,EAC1B,sBAA+B;IAE/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,cAAc,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,IAAI,wBAAwB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3H,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;IACzC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAE,cAA0C,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,iBAA0B;IAE1B,OAAO,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;WAC/D,kBAAkB,CAAC,8BAA8B,EAAE,iBAAiB,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAAC,iBAA0B;IACzD,OAAO,wBAAwB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,iBAA0B;IAChE,OAAO,CAAC,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,iBAA0B;IACrE,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxF,MAAM,YAAY,GAAG,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACnE,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,YAAY,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,iBAA0B;IAC1D,OAAO,CAAC,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,iBAA0B;IAC7D,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvF,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtG,OAAO,CAAC,CAAC,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,iBAA0B;IACxE,OAAO,wBAAwB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC,CAAC;AAC1F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAAC,iBAA0B;IAC7E,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxF,MAAM,eAAe,GAAG,wBAAwB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC/E,IAAI,eAAe,EAAE,CAAC;oBACpB,OAAO,eAAe,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACrE,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,iBAA0B;IAE1B,OAAO,wBAAwB,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;WAC/D,kBAAkB,CAAC,8BAA8B,EAAE,iBAAiB,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,iBAA0B;IAE1B,OAAO,wBAAwB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;WAC5D,wBAAwB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;WAClD,kBAAkB,CAAC,2BAA2B,EAAE,iBAAiB,CAAC;WAClE,kBAAkB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAAC,iBAA0B;IAC1D,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;WACjE,kBAAkB,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;WAC/D,wBAAwB,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,iBAA0B;IAC5D,OAAO,gCAAgC,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;WAClE,uBAAuB,CAAC,iBAAiB,CAAC;WAC1C,sBAAsB,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,iBAA0B;IAChE,OAAO,oCAAoC,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;WACtE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,iBAA0B;IACtE,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,8BAA8B,GAAG;IACrC,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,iBAA0B;IAC7D,OAAO,iCAAiC,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC;WACnE,6BAA6B,CAAC,iBAAiB,CAAC;WAChD,mBAAmB,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,iBAA0B;IAClE,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,IAAI,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Quality Gates Configuration (Minimal)
|
|
3
|
+
*
|
|
4
|
+
* Supports configurable custom quality gates for workflow stages via .omx-config.json qualityGates property.
|
|
5
|
+
*
|
|
6
|
+
* Schema:
|
|
7
|
+
* {
|
|
8
|
+
* "qualityGates": {
|
|
9
|
+
* "deep-interview": ["skill-name" | {skill, mode?, model?}, ...],
|
|
10
|
+
* "ralplan": ["skill-name" | {skill, mode?, model?}, ...],
|
|
11
|
+
* "code-review": ["skill-name" | {skill, mode?, model?}, ...]
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* Gates are native subagents that run alongside standard reviewers.
|
|
16
|
+
* Missing skills produce visible warnings and are skipped.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Workflow stage where quality gates apply
|
|
20
|
+
* - 'deep-interview': deep-interview final-spec stage
|
|
21
|
+
* - 'ralplan': ralplan Architect→Critic review (consensus mode, also used by $plan)
|
|
22
|
+
* - 'code-review': code-review stage
|
|
23
|
+
*/
|
|
24
|
+
export type QualityGateStage = 'deep-interview' | 'ralplan' | 'code-review';
|
|
25
|
+
/**
|
|
26
|
+
* Gate entry: either a skill name string or a gate configuration object
|
|
27
|
+
*/
|
|
28
|
+
export type QualityGateEntry = string | QualityGateObject;
|
|
29
|
+
/**
|
|
30
|
+
* Gate configuration object
|
|
31
|
+
*/
|
|
32
|
+
export interface QualityGateObject {
|
|
33
|
+
/** Skill name (kebab-case) */
|
|
34
|
+
skill: string;
|
|
35
|
+
/** Gate mode: 'blocking' (default) or 'advisory' */
|
|
36
|
+
mode?: 'blocking' | 'advisory';
|
|
37
|
+
/** Optional subagent model override */
|
|
38
|
+
model?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Normalized gate entry (internal representation)
|
|
42
|
+
*/
|
|
43
|
+
export type NormalizedGate = {
|
|
44
|
+
skill: string;
|
|
45
|
+
mode: 'blocking' | 'advisory';
|
|
46
|
+
model?: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Quality gates configuration from .omx-config.json
|
|
50
|
+
* Maps stage names to arrays of gate entries (strings or objects)
|
|
51
|
+
*/
|
|
52
|
+
export interface QualityGatesConfig {
|
|
53
|
+
/** Quality gates for the deep-interview final-spec stage */
|
|
54
|
+
'deep-interview'?: QualityGateEntry[];
|
|
55
|
+
/** Quality gates for the ralplan Architect→Critic review stage */
|
|
56
|
+
'ralplan'?: QualityGateEntry[];
|
|
57
|
+
/** Quality gates for the code-review stage */
|
|
58
|
+
'code-review'?: QualityGateEntry[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate skill name: must be kebab-case, not reserved, not sunset
|
|
62
|
+
*/
|
|
63
|
+
export declare function validateSkillName(skill: string): {
|
|
64
|
+
valid: boolean;
|
|
65
|
+
error?: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Normalize a gate entry (string or object) to the standard internal representation
|
|
69
|
+
*/
|
|
70
|
+
export declare function normalizeGateEntry(entry: unknown): NormalizedGate | null;
|
|
71
|
+
/**
|
|
72
|
+
* Read quality gates configuration from .omx-config.json
|
|
73
|
+
* Reads from both project ./.omx-config.json (if cwd provided) and $CODEX_HOME/.omx-config.json
|
|
74
|
+
* Project config takes precedence over CODEX_HOME config for the same stage
|
|
75
|
+
*/
|
|
76
|
+
export declare function readQualityGatesConfig(codexHomeOverride?: string, cwd?: string): QualityGatesConfig | null;
|
|
77
|
+
/**
|
|
78
|
+
* Get normalized quality gates for a specific stage
|
|
79
|
+
* Returns array of validated and normalized gate entries
|
|
80
|
+
* Reads from both project and CODEX_HOME config with project taking precedence
|
|
81
|
+
*/
|
|
82
|
+
export declare function getGatesForStage(stage: QualityGateStage, codexHomeOverride?: string, cwd?: string): NormalizedGate[];
|
|
83
|
+
/**
|
|
84
|
+
* Validate all gates in the configuration file
|
|
85
|
+
* Returns validated gates and list of validation errors
|
|
86
|
+
* Reads from both project and CODEX_HOME config with project taking precedence
|
|
87
|
+
*/
|
|
88
|
+
export declare function validateAllQualityGates(codexHomeOverride?: string, cwd?: string): {
|
|
89
|
+
gates: NormalizedGate[];
|
|
90
|
+
errors: Array<{
|
|
91
|
+
stage: QualityGateStage;
|
|
92
|
+
skillIndex: number;
|
|
93
|
+
entry: string;
|
|
94
|
+
error: string;
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=quality-gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../src/config/quality-gates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC,kEAAkE;IAClE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,8CAA8C;IAC9C,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAoBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAsCxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAmD1G;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAYpH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG;IACjF,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9F,CAoDA"}
|