@lifeaitools/rdc-skills 0.24.33 → 0.24.35
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/.claude-plugin/plugin.json +1 -1
- package/git-sha.json +1 -1
- package/package.json +1 -1
- package/scripts/acceptance.mjs +28 -6
- package/skills/tests/MATRIX.md +1 -1
- package/skills/tests/rdc-help.test.json +1 -1
- package/skills/tests/rdc-self-test.test.json +1 -5
- package/tests/acceptance.test.mjs +14 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdc",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.35",
|
|
4
4
|
"description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight unattended builds with work-item tracking and TDD enforcement.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "LIFEAI",
|
package/git-sha.json
CHANGED
package/package.json
CHANGED
package/scripts/acceptance.mjs
CHANGED
|
@@ -234,13 +234,23 @@ function codexToolCalls(stdout) {
|
|
|
234
234
|
const calls = [];
|
|
235
235
|
for (const event of parseJsonLines(stdout)) {
|
|
236
236
|
const type = event.type || event.event || event.kind || '';
|
|
237
|
-
const
|
|
237
|
+
const item = event.item || {};
|
|
238
|
+
let name = findToolName(event) || findToolName(event.call) || findToolName(item);
|
|
239
|
+
let input = event.input || event.arguments || event.params || event.call?.arguments || null;
|
|
240
|
+
if (item.type === 'command_execution') {
|
|
241
|
+
const command = String(item.command || '');
|
|
242
|
+
if (/\brg(\.exe)?\b|ripgrep/i.test(command)) name = 'Grep';
|
|
243
|
+
else if (/Get-ChildItem|\bdir\b|\bls\b/i.test(command)) name = 'Glob';
|
|
244
|
+
else if (/Get-Content|\bcat\b|\btype\b/i.test(command)) name = 'Read';
|
|
245
|
+
else name = 'Shell';
|
|
246
|
+
input = { command };
|
|
247
|
+
}
|
|
238
248
|
if (/tool|function/i.test(type) || name) {
|
|
239
249
|
calls.push({
|
|
240
250
|
engine: 'codex',
|
|
241
251
|
id: event.id || event.call_id || event.item_id || null,
|
|
242
252
|
name,
|
|
243
|
-
input
|
|
253
|
+
input,
|
|
244
254
|
raw_type: type || null,
|
|
245
255
|
});
|
|
246
256
|
}
|
|
@@ -472,7 +482,19 @@ async function main() {
|
|
|
472
482
|
}
|
|
473
483
|
}
|
|
474
484
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
485
|
+
export { assistantText, codexToolCalls };
|
|
486
|
+
|
|
487
|
+
const isMain = (() => {
|
|
488
|
+
try {
|
|
489
|
+
return import.meta.url === new URL(`file://${process.argv[1].replace(/\\/g, '/')}`).href;
|
|
490
|
+
} catch {
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
493
|
+
})();
|
|
494
|
+
|
|
495
|
+
if (isMain) {
|
|
496
|
+
main().catch((error) => {
|
|
497
|
+
console.error(error);
|
|
498
|
+
process.exit(1);
|
|
499
|
+
});
|
|
500
|
+
}
|
package/skills/tests/MATRIX.md
CHANGED
|
@@ -32,7 +32,7 @@ The manifest layer verifies each skill can be started from a realistic caller pr
|
|
|
32
32
|
| `rdc:report` | `rdc-report.test.json` | Unattended report generation | `exit_code`, `stdout_contains` | Report status block, counts, next recommendation, and dump/push negative checks |
|
|
33
33
|
| `rdc:review` | `rdc-review.test.json` | Unattended review gate | `exit_code`, `stdout_contains` | Code-review, verify, fresh-evidence, tsc, and forbidden-build negative checks |
|
|
34
34
|
| `rdc:rpms-filemap` | `rdc-rpms-filemap.test.json` | Canonical location lookup | `commits_made`, `exit_code`, `stdout_contains` | Rule #1, context door, one-home rules, and no-hand-edit/second-home negative checks |
|
|
35
|
-
| `rdc:self-test` | `rdc-self-test.test.json` | Strict self-test prompt | `commits_made`, `exit_code`, `stdout_contains` |
|
|
35
|
+
| `rdc:self-test` | `rdc-self-test.test.json` | Strict self-test prompt | `commits_made`, `exit_code`, `stdout_contains` | Strict validation evidence, hook/guide checks, and no-relaxed-linter negative check |
|
|
36
36
|
| `rdc:status` | `rdc-status.test.json` | Read-only status snapshot | `commits_made`, `exit_code`, `stdout_contains` | Read-only status output and raw-MCP/write negative checks |
|
|
37
37
|
| `rdc:terminal-config` | `rdc-terminal-config.test.json` | Hidden-window launch policy audit | `commits_made`, `exit_code`, `stdout_contains` | Hidden-window output and focus/collapse API negative checks |
|
|
38
38
|
| `rdc:watch` | `rdc-watch.test.json` | Watcher initialization prompt | `exit_code`, `stdout_contains` | Test-mode no-open output, tool-call routing, and focus-event negative checks |
|
|
@@ -10,10 +10,24 @@ import { dirname } from 'node:path';
|
|
|
10
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
const REPO_ROOT = resolve(__dirname, '..');
|
|
12
12
|
const script = join(REPO_ROOT, 'scripts', 'acceptance.mjs');
|
|
13
|
+
const { codexToolCalls } = await import(`file://${script.replace(/\\/g, '/')}`);
|
|
13
14
|
|
|
14
15
|
const syntax = spawnSync(process.execPath, ['--check', script], { encoding: 'utf8' });
|
|
15
16
|
assert.equal(syntax.status, 0, syntax.stderr);
|
|
16
17
|
|
|
18
|
+
const codexEvents = [
|
|
19
|
+
{
|
|
20
|
+
type: 'item.started',
|
|
21
|
+
item: {
|
|
22
|
+
type: 'command_execution',
|
|
23
|
+
command: 'pwsh -Command "rg -n regenerative C:/Dev/local-corpus"',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
].map((event) => JSON.stringify(event)).join('\n');
|
|
27
|
+
const parsedCalls = codexToolCalls(codexEvents);
|
|
28
|
+
assert.equal(parsedCalls[0]?.name, 'Grep');
|
|
29
|
+
assert.match(parsedCalls[0]?.input?.command || '', /local-corpus/);
|
|
30
|
+
|
|
17
31
|
const missing = spawnSync(process.execPath, [script, '--skill', 'rdc:not-a-real-skill'], {
|
|
18
32
|
cwd: REPO_ROOT,
|
|
19
33
|
encoding: 'utf8',
|