@soleri/cli 9.9.0 → 9.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,18 +13,35 @@ import * as p from '@clack/prompts';
13
13
  import { parse as parseYaml } from 'yaml';
14
14
  import { PackLockfile, checkNpmVersion, checkVersionCompat, SOLERI_HOME } from '@soleri/core';
15
15
  import { generateClaudeMdTemplate, generateInjectClaudeMd, generateSkills, } from '@soleri/forge/lib';
16
- import { composeClaudeMd, getEngineRulesContent } from '@soleri/forge/lib';
16
+ import { composeClaudeMd, getModularEngineRules, AgentYamlSchema } from '@soleri/forge/lib';
17
17
  import { detectAgent } from '../utils/agent-context.js';
18
18
  import { installClaude } from './install.js';
19
+ /**
20
+ * Read engine.features from agent.yaml at the given agent path.
21
+ * Returns undefined if not specified (= include all modules).
22
+ */
23
+ function readEngineFeatures(agentPath) {
24
+ try {
25
+ const yamlPath = join(agentPath, 'agent.yaml');
26
+ if (!existsSync(yamlPath))
27
+ return undefined;
28
+ const parsed = AgentYamlSchema.parse(parseYaml(readFileSync(yamlPath, 'utf-8')));
29
+ return parsed.engine?.features;
30
+ }
31
+ catch {
32
+ return undefined;
33
+ }
34
+ }
19
35
  export function registerAgent(program) {
20
36
  const agent = program.command('agent').description('Agent lifecycle management');
21
37
  // ─── status ─────────────────────────────────────────────────
22
38
  agent
23
39
  .command('status')
24
40
  .option('--json', 'Output as JSON')
41
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
25
42
  .description('Show agent health: version, packs, vault, and update availability')
26
43
  .action((opts) => {
27
- const ctx = detectAgent();
44
+ const ctx = detectAgent(opts.path);
28
45
  if (!ctx) {
29
46
  p.log.error('No agent project detected in current directory.');
30
47
  process.exit(1);
@@ -62,7 +79,7 @@ export function registerAgent(program) {
62
79
  console.log(JSON.stringify({
63
80
  agent: agentName,
64
81
  id: agentId,
65
- format: 'file-tree (v7)',
82
+ format: 'file-tree',
66
83
  engine: engineVersion,
67
84
  engineLatest: latestCore,
68
85
  domains,
@@ -73,7 +90,7 @@ export function registerAgent(program) {
73
90
  }
74
91
  console.log(`\n Agent: ${agentName}`);
75
92
  console.log(` ID: ${agentId}`);
76
- console.log(` Format: file-tree (v7)`);
93
+ console.log(` Format: file-tree`);
77
94
  console.log(` Engine: @soleri/core ${engineVersion}${latestCore && latestCore !== engineVersion ? ` (update available: ${latestCore})` : ''}`);
78
95
  console.log(` Domains: ${domains.length > 0 ? domains.join(', ') : 'none'}`);
79
96
  console.log(` Skills: ${skillsCount}`);
@@ -137,9 +154,10 @@ export function registerAgent(program) {
137
154
  .command('update')
138
155
  .option('--check', 'Show what would change without updating')
139
156
  .option('--dry-run', 'Preview migration steps')
157
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
140
158
  .description('Update agent engine to latest compatible version')
141
159
  .action((opts) => {
142
- const ctx = detectAgent();
160
+ const ctx = detectAgent(opts.path);
143
161
  if (!ctx) {
144
162
  p.log.error('No agent project detected in current directory.');
145
163
  process.exit(1);
@@ -202,7 +220,7 @@ export function registerAgent(program) {
202
220
  }
203
221
  // 2. Regenerate _engine.md
204
222
  mkdirSync(join(ctx.agentPath, 'instructions'), { recursive: true });
205
- writeFileSync(enginePath, getEngineRulesContent(), 'utf-8');
223
+ writeFileSync(enginePath, getModularEngineRules(readEngineFeatures(ctx.agentPath)), 'utf-8');
206
224
  p.log.success(`Regenerated ${enginePath}`);
207
225
  // 3. Recompose CLAUDE.md
208
226
  const result = composeClaudeMd(ctx.agentPath);
@@ -271,9 +289,10 @@ export function registerAgent(program) {
271
289
  .command('refresh')
272
290
  .option('--dry-run', 'Preview what would change without writing')
273
291
  .option('--skip-skills', 'Skip skill sync (only regenerate activation files)')
292
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
274
293
  .description('Regenerate activation files and sync skills from latest forge templates')
275
294
  .action((opts) => {
276
- const ctx = detectAgent();
295
+ const ctx = detectAgent(opts.path);
277
296
  if (!ctx) {
278
297
  p.log.error('No agent project detected in current directory.');
279
298
  process.exit(1);
@@ -320,7 +339,7 @@ export function registerAgent(program) {
320
339
  }
321
340
  // 2. Regenerate _engine.md from latest shared-rules
322
341
  mkdirSync(join(ctx.agentPath, 'instructions'), { recursive: true });
323
- writeFileSync(enginePath, getEngineRulesContent(), 'utf-8');
342
+ writeFileSync(enginePath, getModularEngineRules(readEngineFeatures(ctx.agentPath)), 'utf-8');
324
343
  p.log.success(`Regenerated ${enginePath}`);
325
344
  // 3. Recompose CLAUDE.md from agent.yaml + instructions + workflows + skills
326
345
  const result = composeClaudeMd(ctx.agentPath);
@@ -383,9 +402,10 @@ export function registerAgent(program) {
383
402
  // ─── diff ───────────────────────────────────────────────────
384
403
  agent
385
404
  .command('diff')
405
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
386
406
  .description('Show drift between agent templates and latest engine templates')
387
- .action(() => {
388
- const ctx = detectAgent();
407
+ .action((opts) => {
408
+ const ctx = detectAgent(opts.path);
389
409
  if (!ctx) {
390
410
  p.log.error('No agent project detected in current directory.');
391
411
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ # RTK Hook Pack
2
+
3
+ Reduces LLM token usage by 60-90% by routing shell commands through [RTK](https://github.com/rtk-ai/rtk), a Rust-based CLI proxy that compresses verbose command output.
4
+
5
+ ## How it works
6
+
7
+ A PreToolUse hook intercepts Bash commands and rewrites them through RTK:
8
+
9
+ ```
10
+ git status → rtk git status → "M 3 files" (instead of 15 lines)
11
+ npm test → rtk npm test → "2 failed" (instead of 200+ lines)
12
+ ```
13
+
14
+ RTK supports 70+ commands across git, JS/TS, Python, Go, Ruby, Docker, and file operations.
15
+
16
+ ## Prerequisites
17
+
18
+ - [RTK](https://github.com/rtk-ai/rtk) >= 0.23.0 (`brew install rtk-ai/tap/rtk` or `cargo install rtk`)
19
+ - `jq` (usually pre-installed on macOS/Linux)
20
+
21
+ ## Install
22
+
23
+ ```bash
24
+ soleri hooks add-pack rtk
25
+ ```
26
+
27
+ ## Uninstall
28
+
29
+ ```bash
30
+ soleri hooks remove-pack rtk
31
+ ```
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "rtk",
3
+ "version": "1.0.0",
4
+ "description": "RTK token compression — rewrites shell commands through RTK proxy to reduce LLM token usage by 60-90%",
5
+ "hooks": [],
6
+ "scripts": [
7
+ {
8
+ "name": "rtk-rewrite",
9
+ "file": "rtk-rewrite.sh",
10
+ "targetDir": "hooks"
11
+ }
12
+ ],
13
+ "lifecycleHooks": [
14
+ {
15
+ "event": "PreToolUse",
16
+ "matcher": "Bash",
17
+ "type": "command",
18
+ "command": "sh ~/.claude/hooks/rtk-rewrite.sh",
19
+ "timeout": 10,
20
+ "statusMessage": "RTK: compressing output..."
21
+ }
22
+ ],
23
+ "scaffoldDefault": false
24
+ }
@@ -0,0 +1,70 @@
1
+ #!/bin/sh
2
+ # RTK Rewrite — PreToolUse command rewriter (Soleri Hook Pack: rtk)
3
+ # Intercepts Bash commands and rewrites them through RTK proxy for token compression.
4
+ # RTK (https://github.com/rtk-ai/rtk) reduces LLM token usage by 60-90%.
5
+ # Dependencies: jq, rtk (>= 0.23.0)
6
+ # POSIX sh compatible.
7
+
8
+ set -eu
9
+
10
+ # ── Dependency checks ──────────────────────────────────────────────
11
+
12
+ WARN_FLAG="${HOME}/.soleri/.rtk-warned"
13
+
14
+ warn_once() {
15
+ # Warn at most once per day (86400 seconds)
16
+ if [ -f "$WARN_FLAG" ]; then
17
+ # Get file mtime — try macOS stat, then Linux stat, fallback to 0
18
+ FILE_MTIME=0
19
+ if stat -f %m "$WARN_FLAG" >/dev/null 2>&1; then
20
+ FILE_MTIME=$(stat -f %m "$WARN_FLAG")
21
+ elif stat -c %Y "$WARN_FLAG" >/dev/null 2>&1; then
22
+ FILE_MTIME=$(stat -c %Y "$WARN_FLAG")
23
+ fi
24
+ NOW=$(date +%s)
25
+ WARN_AGE=$(( NOW - FILE_MTIME ))
26
+ [ "$WARN_AGE" -lt 86400 ] && return
27
+ fi
28
+ mkdir -p "$(dirname "$WARN_FLAG")"
29
+ echo "$1" >&2
30
+ touch "$WARN_FLAG"
31
+ }
32
+
33
+ if ! command -v jq >/dev/null 2>&1; then
34
+ warn_once "[soleri:rtk] jq not found — RTK hook disabled. Install: https://stedolan.github.io/jq/"
35
+ exit 0
36
+ fi
37
+
38
+ if ! command -v rtk >/dev/null 2>&1; then
39
+ warn_once "[soleri:rtk] rtk not found — RTK hook disabled. Install: https://github.com/rtk-ai/rtk"
40
+ exit 0
41
+ fi
42
+
43
+ # ── Read stdin JSON ────────────────────────────────────────────────
44
+
45
+ INPUT=$(cat)
46
+
47
+ # Extract command from Claude Code PreToolUse JSON
48
+ CMD=$(printf '%s' "$INPUT" | jq -r '.tool_input.command // empty' 2>/dev/null)
49
+ if [ -z "$CMD" ]; then
50
+ exit 0
51
+ fi
52
+
53
+ # ── Rewrite via RTK ────────────────────────────────────────────────
54
+
55
+ # Ask RTK if it can compress this command.
56
+ # Exit codes: 0 = rewritten, 1 = no match (pass through), 2+ = error
57
+ REWRITTEN=$(rtk rewrite "$CMD" 2>/dev/null) || exit 0
58
+
59
+ # If RTK returned empty or same command, pass through
60
+ if [ -z "$REWRITTEN" ] || [ "$REWRITTEN" = "$CMD" ]; then
61
+ exit 0
62
+ fi
63
+
64
+ # ── Return rewritten command ───────────────────────────────────────
65
+
66
+ # Build updatedInput from original tool_input with rewritten command
67
+ UPDATED_INPUT=$(printf '%s' "$INPUT" | jq -c --arg cmd "$REWRITTEN" '.tool_input | .command = $cmd')
68
+
69
+ # Output Claude Code hookSpecificOutput contract
70
+ printf '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow","permissionDecisionReason":"RTK token compression","updatedInput":%s}}' "$UPDATED_INPUT"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/cli",
3
- "version": "9.9.0",
3
+ "version": "9.11.0",
4
4
  "description": "Developer CLI for creating and managing Soleri AI agents.",
5
5
  "keywords": [
6
6
  "agent",
@@ -23,9 +23,9 @@ describe('hook-packs', () => {
23
23
  });
24
24
 
25
25
  describe('registry', () => {
26
- it('should list all 9 built-in packs', () => {
26
+ it('should list all 10 built-in packs', () => {
27
27
  const packs = listPacks();
28
- expect(packs.length).toBe(9);
28
+ expect(packs.length).toBe(10);
29
29
  const names = packs.map((p) => p.name).sort();
30
30
  expect(names).toEqual([
31
31
  'a11y',
@@ -34,6 +34,7 @@ describe('hook-packs', () => {
34
34
  'flock-guard',
35
35
  'full',
36
36
  'marketing-research',
37
+ 'rtk',
37
38
  'safety',
38
39
  'typescript-safety',
39
40
  'yolo-safety',
@@ -263,4 +264,64 @@ describe('hook-packs', () => {
263
264
  expect(installed).toContain('yolo-safety');
264
265
  });
265
266
  });
267
+
268
+ describe('rtk pack', () => {
269
+ it('should get rtk pack with script and lifecycle hook', () => {
270
+ const pack = getPack('rtk');
271
+ expect(pack).not.toBeNull();
272
+ expect(pack!.manifest.name).toBe('rtk');
273
+ expect(pack!.manifest.hooks).toEqual([]);
274
+ expect(pack!.manifest.scripts).toHaveLength(1);
275
+ expect(pack!.manifest.scripts![0].name).toBe('rtk-rewrite');
276
+ expect(pack!.manifest.scripts![0].file).toBe('rtk-rewrite.sh');
277
+ expect(pack!.manifest.scripts![0].targetDir).toBe('hooks');
278
+ expect(pack!.manifest.lifecycleHooks).toHaveLength(1);
279
+ expect(pack!.manifest.lifecycleHooks![0].event).toBe('PreToolUse');
280
+ expect(pack!.manifest.lifecycleHooks![0].matcher).toBe('Bash');
281
+ expect(pack!.manifest.lifecycleHooks![0].command).toBe('sh ~/.claude/hooks/rtk-rewrite.sh');
282
+ });
283
+
284
+ it('should install rtk pack with script and lifecycle hook', () => {
285
+ const result = installPack('rtk');
286
+ expect(result.installed).toEqual([]);
287
+ expect(result.scripts).toHaveLength(1);
288
+ expect(result.scripts[0]).toBe('hooks/rtk-rewrite.sh');
289
+ expect(result.lifecycleHooks).toHaveLength(1);
290
+ expect(result.lifecycleHooks[0]).toBe('PreToolUse:Bash');
291
+ const claudeDir = join(tempHome, '.claude');
292
+ expect(existsSync(join(claudeDir, 'hooks', 'rtk-rewrite.sh'))).toBe(true);
293
+ const settings = JSON.parse(readFileSync(join(claudeDir, 'settings.json'), 'utf-8'));
294
+ expect(settings.hooks.PreToolUse).toHaveLength(1);
295
+ expect(settings.hooks.PreToolUse[0].matcher).toBe('Bash');
296
+ expect(settings.hooks.PreToolUse[0].hooks[0].command).toBe(
297
+ 'sh ~/.claude/hooks/rtk-rewrite.sh',
298
+ );
299
+ expect(settings.hooks.PreToolUse[0]._soleriPack).toBe('rtk');
300
+ });
301
+
302
+ it('should remove rtk pack including script and lifecycle hook', () => {
303
+ installPack('rtk');
304
+ const result = removePack('rtk');
305
+ expect(result.scripts).toHaveLength(1);
306
+ expect(result.lifecycleHooks).toHaveLength(1);
307
+ const claudeDir = join(tempHome, '.claude');
308
+ expect(existsSync(join(claudeDir, 'hooks', 'rtk-rewrite.sh'))).toBe(false);
309
+ const settings = JSON.parse(readFileSync(join(claudeDir, 'settings.json'), 'utf-8'));
310
+ expect(settings.hooks.PreToolUse).toBeUndefined();
311
+ });
312
+
313
+ it('should be idempotent for rtk lifecycle hooks', () => {
314
+ installPack('rtk');
315
+ const result2 = installPack('rtk');
316
+ expect(result2.lifecycleHooks).toEqual([]);
317
+ const claudeDir = join(tempHome, '.claude');
318
+ const settings = JSON.parse(readFileSync(join(claudeDir, 'settings.json'), 'utf-8'));
319
+ expect(settings.hooks.PreToolUse).toHaveLength(1);
320
+ });
321
+
322
+ it('should not be scaffoldDefault', () => {
323
+ const pack = getPack('rtk');
324
+ expect(pack!.manifest.scaffoldDefault).toBe(false);
325
+ });
326
+ });
266
327
  });
@@ -0,0 +1,223 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { execSync, spawnSync } from 'node:child_process';
3
+ import { join, dirname } from 'node:path';
4
+ import { mkdtempSync, rmSync, existsSync, symlinkSync, readdirSync, mkdirSync } from 'node:fs';
5
+ import { tmpdir } from 'node:os';
6
+
7
+ const SCRIPTS_DIR = join(__dirname, '..', 'hook-packs', 'rtk', 'scripts');
8
+ const SCRIPT = join(SCRIPTS_DIR, 'rtk-rewrite.sh').replace(/\\/g, '/');
9
+
10
+ function makePayload(command: string, extra?: Record<string, unknown>): string {
11
+ return JSON.stringify({
12
+ tool_name: 'Bash',
13
+ tool_input: { command, ...extra },
14
+ });
15
+ }
16
+
17
+ function runHook(
18
+ command: string,
19
+ extra?: Record<string, unknown>,
20
+ ): { stdout: string; stderr: string; exitCode: number } {
21
+ try {
22
+ const payload = makePayload(command, extra);
23
+ const result = execSync(`printf '%s' '${payload.replace(/'/g, "'\\''")}' | sh '${SCRIPT}'`, {
24
+ encoding: 'utf-8',
25
+ stdio: 'pipe',
26
+ });
27
+ return { stdout: result, stderr: '', exitCode: 0 };
28
+ } catch (err: any) {
29
+ return { stdout: err.stdout ?? '', stderr: err.stderr ?? '', exitCode: err.status ?? 1 };
30
+ }
31
+ }
32
+
33
+ // RTK and jq must be installed to run these tests.
34
+ const hasRtk = (() => {
35
+ try {
36
+ execSync('command -v rtk', { stdio: 'pipe' });
37
+ return true;
38
+ } catch {
39
+ return false;
40
+ }
41
+ })();
42
+
43
+ const hasJq = (() => {
44
+ try {
45
+ execSync('command -v jq', { stdio: 'pipe' });
46
+ return true;
47
+ } catch {
48
+ return false;
49
+ }
50
+ })();
51
+
52
+ const isWindows = process.platform === 'win32';
53
+
54
+ describe.skipIf(isWindows || !hasRtk || !hasJq)('rtk-rewrite hook script', () => {
55
+ it('rewrites git status to rtk git status', () => {
56
+ const { stdout, exitCode } = runHook('git status');
57
+ expect(exitCode).toBe(0);
58
+ expect(stdout.trim()).not.toBe('');
59
+
60
+ const output = JSON.parse(stdout.trim());
61
+ expect(output.hookSpecificOutput).toBeDefined();
62
+ expect(output.hookSpecificOutput.hookEventName).toBe('PreToolUse');
63
+ expect(output.hookSpecificOutput.permissionDecision).toBe('allow');
64
+ expect(output.hookSpecificOutput.updatedInput).toBeDefined();
65
+ expect(output.hookSpecificOutput.updatedInput.command).toBe('rtk git status');
66
+ });
67
+
68
+ it('preserves original tool_input fields in updatedInput', () => {
69
+ const { stdout } = runHook('git diff', { description: 'Show diff', timeout: 60000 });
70
+ const output = JSON.parse(stdout.trim());
71
+ expect(output.hookSpecificOutput.updatedInput.description).toBe('Show diff');
72
+ expect(output.hookSpecificOutput.updatedInput.timeout).toBe(60000);
73
+ expect(output.hookSpecificOutput.updatedInput.command).toBe('rtk git diff');
74
+ });
75
+
76
+ it('passes through non-rewritable commands (exit 0, no output)', () => {
77
+ const { stdout, exitCode } = runHook('echo hello');
78
+ expect(exitCode).toBe(0);
79
+ expect(stdout.trim()).toBe('');
80
+ });
81
+
82
+ it('passes through empty command', () => {
83
+ const { stdout, exitCode } = runHook('');
84
+ expect(exitCode).toBe(0);
85
+ expect(stdout.trim()).toBe('');
86
+ });
87
+
88
+ it('rewrites ls commands', () => {
89
+ const { stdout } = runHook('ls -la');
90
+ const output = JSON.parse(stdout.trim());
91
+ expect(output.hookSpecificOutput.updatedInput.command).toMatch(/^rtk (ls|read)/);
92
+ });
93
+
94
+ it('rewrites git log commands', () => {
95
+ const { stdout } = runHook('git log --oneline -5');
96
+ const output = JSON.parse(stdout.trim());
97
+ expect(output.hookSpecificOutput.updatedInput.command).toContain('rtk git log');
98
+ });
99
+ });
100
+
101
+ /**
102
+ * Build a PATH string that excludes specific commands by creating shadow
103
+ * directories with symlinks to everything except the hidden commands.
104
+ */
105
+ function buildPathWithout(hide: string[]): string {
106
+ const originalDirs = (process.env.PATH || '').split(':');
107
+ const resultDirs: string[] = [];
108
+
109
+ for (const dir of originalDirs) {
110
+ if (!existsSync(dir)) continue;
111
+
112
+ // Check if this dir contains any of the commands we want to hide
113
+ const hasHidden = hide.some((cmd) => existsSync(join(dir, cmd)));
114
+
115
+ if (!hasHidden) {
116
+ resultDirs.push(dir);
117
+ continue;
118
+ }
119
+
120
+ // Create a shadow dir with symlinks to everything except hidden commands
121
+ const shadowDir = mkdtempSync(join(tmpdir(), 'rtk-shadow-'));
122
+ shadowDirsToCleanup.push(shadowDir);
123
+
124
+ try {
125
+ const entries = readdirSync(dir);
126
+ for (const entry of entries) {
127
+ if (hide.includes(entry)) continue;
128
+ const src = join(dir, entry);
129
+ const dst = join(shadowDir, entry);
130
+ try {
131
+ symlinkSync(src, dst);
132
+ } catch {
133
+ // Skip entries that fail (broken symlinks, permission issues)
134
+ }
135
+ }
136
+ } catch {
137
+ // If we can't read the dir, skip it
138
+ continue;
139
+ }
140
+
141
+ resultDirs.push(shadowDir);
142
+ }
143
+
144
+ return resultDirs.join(':');
145
+ }
146
+
147
+ // Track shadow dirs for cleanup
148
+ let shadowDirsToCleanup: string[] = [];
149
+
150
+ describe.skipIf(isWindows)('rtk-rewrite dependency warnings', () => {
151
+ let tempHome: string;
152
+
153
+ beforeEach(() => {
154
+ tempHome = mkdtempSync(join(tmpdir(), 'rtk-warn-test-'));
155
+ shadowDirsToCleanup = [];
156
+ });
157
+
158
+ afterEach(() => {
159
+ rmSync(tempHome, { recursive: true, force: true });
160
+ for (const d of shadowDirsToCleanup) {
161
+ rmSync(d, { recursive: true, force: true });
162
+ }
163
+ shadowDirsToCleanup = [];
164
+ });
165
+
166
+ function runWithMissingDep(hide: string[]): {
167
+ stdout: string;
168
+ stderr: string;
169
+ exitCode: number;
170
+ } {
171
+ const payload = makePayload('git status');
172
+ const restrictedPath = buildPathWithout(hide);
173
+
174
+ const result = spawnSync(
175
+ 'sh',
176
+ ['-c', `printf '%s' '${payload.replace(/'/g, "'\\''")}' | sh '${SCRIPT}'`],
177
+ {
178
+ encoding: 'utf-8',
179
+ stdio: 'pipe',
180
+ env: {
181
+ PATH: restrictedPath,
182
+ HOME: tempHome,
183
+ TERM: process.env.TERM || 'xterm',
184
+ },
185
+ },
186
+ );
187
+
188
+ return {
189
+ stdout: result.stdout ?? '',
190
+ stderr: result.stderr ?? '',
191
+ exitCode: result.status ?? 1,
192
+ };
193
+ }
194
+
195
+ it('warns on stderr when jq is missing', () => {
196
+ const { stdout, stderr, exitCode } = runWithMissingDep(['jq']);
197
+ expect(exitCode).toBe(0);
198
+ expect(stdout.trim()).toBe('');
199
+ expect(stderr).toContain('[soleri:rtk] jq not found');
200
+ expect(stderr).toContain('RTK hook disabled');
201
+ });
202
+
203
+ it('warns on stderr when rtk is missing', () => {
204
+ if (!hasJq) return; // jq must be present for the rtk check to be reached
205
+ const { stdout, stderr, exitCode } = runWithMissingDep(['rtk']);
206
+ expect(exitCode).toBe(0);
207
+ expect(stdout.trim()).toBe('');
208
+ expect(stderr).toContain('[soleri:rtk] rtk not found');
209
+ expect(stderr).toContain('RTK hook disabled');
210
+ });
211
+
212
+ it('suppresses warning on second run within same day', () => {
213
+ // First run — should warn
214
+ const first = runWithMissingDep(['jq']);
215
+ expect(first.exitCode).toBe(0);
216
+ expect(first.stderr).toContain('[soleri:rtk] jq not found');
217
+
218
+ // Second run — flag file exists and is fresh, should suppress
219
+ const second = runWithMissingDep(['jq']);
220
+ expect(second.exitCode).toBe(0);
221
+ expect(second.stderr.trim()).toBe('');
222
+ });
223
+ });
@@ -28,11 +28,26 @@ import {
28
28
  generateInjectClaudeMd,
29
29
  generateSkills,
30
30
  } from '@soleri/forge/lib';
31
- import { composeClaudeMd, getEngineRulesContent } from '@soleri/forge/lib';
32
- import type { AgentConfig } from '@soleri/forge/lib';
31
+ import { composeClaudeMd, getModularEngineRules, AgentYamlSchema } from '@soleri/forge/lib';
32
+ import type { AgentConfig, EngineFeature } from '@soleri/forge/lib';
33
33
  import { detectAgent } from '../utils/agent-context.js';
34
34
  import { installClaude } from './install.js';
35
35
 
36
+ /**
37
+ * Read engine.features from agent.yaml at the given agent path.
38
+ * Returns undefined if not specified (= include all modules).
39
+ */
40
+ function readEngineFeatures(agentPath: string): EngineFeature[] | undefined {
41
+ try {
42
+ const yamlPath = join(agentPath, 'agent.yaml');
43
+ if (!existsSync(yamlPath)) return undefined;
44
+ const parsed = AgentYamlSchema.parse(parseYaml(readFileSync(yamlPath, 'utf-8')));
45
+ return parsed.engine?.features as EngineFeature[] | undefined;
46
+ } catch {
47
+ return undefined;
48
+ }
49
+ }
50
+
36
51
  export function registerAgent(program: Command): void {
37
52
  const agent = program.command('agent').description('Agent lifecycle management');
38
53
 
@@ -40,9 +55,10 @@ export function registerAgent(program: Command): void {
40
55
  agent
41
56
  .command('status')
42
57
  .option('--json', 'Output as JSON')
58
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
43
59
  .description('Show agent health: version, packs, vault, and update availability')
44
- .action((opts: { json?: boolean }) => {
45
- const ctx = detectAgent();
60
+ .action((opts: { json?: boolean; path?: string }) => {
61
+ const ctx = detectAgent(opts.path);
46
62
  if (!ctx) {
47
63
  p.log.error('No agent project detected in current directory.');
48
64
  process.exit(1);
@@ -89,7 +105,7 @@ export function registerAgent(program: Command): void {
89
105
  {
90
106
  agent: agentName,
91
107
  id: agentId,
92
- format: 'file-tree (v7)',
108
+ format: 'file-tree',
93
109
  engine: engineVersion,
94
110
  engineLatest: latestCore,
95
111
  domains,
@@ -105,7 +121,7 @@ export function registerAgent(program: Command): void {
105
121
 
106
122
  console.log(`\n Agent: ${agentName}`);
107
123
  console.log(` ID: ${agentId}`);
108
- console.log(` Format: file-tree (v7)`);
124
+ console.log(` Format: file-tree`);
109
125
  console.log(
110
126
  ` Engine: @soleri/core ${engineVersion}${latestCore && latestCore !== engineVersion ? ` (update available: ${latestCore})` : ''}`,
111
127
  );
@@ -190,9 +206,10 @@ export function registerAgent(program: Command): void {
190
206
  .command('update')
191
207
  .option('--check', 'Show what would change without updating')
192
208
  .option('--dry-run', 'Preview migration steps')
209
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
193
210
  .description('Update agent engine to latest compatible version')
194
- .action((opts: { check?: boolean; dryRun?: boolean }) => {
195
- const ctx = detectAgent();
211
+ .action((opts: { check?: boolean; dryRun?: boolean; path?: string }) => {
212
+ const ctx = detectAgent(opts.path);
196
213
  if (!ctx) {
197
214
  p.log.error('No agent project detected in current directory.');
198
215
  process.exit(1);
@@ -263,7 +280,11 @@ export function registerAgent(program: Command): void {
263
280
 
264
281
  // 2. Regenerate _engine.md
265
282
  mkdirSync(join(ctx.agentPath, 'instructions'), { recursive: true });
266
- writeFileSync(enginePath, getEngineRulesContent(), 'utf-8');
283
+ writeFileSync(
284
+ enginePath,
285
+ getModularEngineRules(readEngineFeatures(ctx.agentPath)),
286
+ 'utf-8',
287
+ );
267
288
  p.log.success(`Regenerated ${enginePath}`);
268
289
 
269
290
  // 3. Recompose CLAUDE.md
@@ -347,9 +368,10 @@ export function registerAgent(program: Command): void {
347
368
  .command('refresh')
348
369
  .option('--dry-run', 'Preview what would change without writing')
349
370
  .option('--skip-skills', 'Skip skill sync (only regenerate activation files)')
371
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
350
372
  .description('Regenerate activation files and sync skills from latest forge templates')
351
- .action((opts: { dryRun?: boolean; skipSkills?: boolean }) => {
352
- const ctx = detectAgent();
373
+ .action((opts: { dryRun?: boolean; skipSkills?: boolean; path?: string }) => {
374
+ const ctx = detectAgent(opts.path);
353
375
  if (!ctx) {
354
376
  p.log.error('No agent project detected in current directory.');
355
377
  process.exit(1);
@@ -407,7 +429,11 @@ export function registerAgent(program: Command): void {
407
429
 
408
430
  // 2. Regenerate _engine.md from latest shared-rules
409
431
  mkdirSync(join(ctx.agentPath, 'instructions'), { recursive: true });
410
- writeFileSync(enginePath, getEngineRulesContent(), 'utf-8');
432
+ writeFileSync(
433
+ enginePath,
434
+ getModularEngineRules(readEngineFeatures(ctx.agentPath)),
435
+ 'utf-8',
436
+ );
411
437
  p.log.success(`Regenerated ${enginePath}`);
412
438
 
413
439
  // 3. Recompose CLAUDE.md from agent.yaml + instructions + workflows + skills
@@ -487,9 +513,10 @@ export function registerAgent(program: Command): void {
487
513
  // ─── diff ───────────────────────────────────────────────────
488
514
  agent
489
515
  .command('diff')
516
+ .option('--path <dir>', 'Path to agent directory (default: cwd)')
490
517
  .description('Show drift between agent templates and latest engine templates')
491
- .action(() => {
492
- const ctx = detectAgent();
518
+ .action((opts: { path?: string }) => {
519
+ const ctx = detectAgent(opts.path);
493
520
  if (!ctx) {
494
521
  p.log.error('No agent project detected in current directory.');
495
522
  process.exit(1);
@@ -0,0 +1,31 @@
1
+ # RTK Hook Pack
2
+
3
+ Reduces LLM token usage by 60-90% by routing shell commands through [RTK](https://github.com/rtk-ai/rtk), a Rust-based CLI proxy that compresses verbose command output.
4
+
5
+ ## How it works
6
+
7
+ A PreToolUse hook intercepts Bash commands and rewrites them through RTK:
8
+
9
+ ```
10
+ git status → rtk git status → "M 3 files" (instead of 15 lines)
11
+ npm test → rtk npm test → "2 failed" (instead of 200+ lines)
12
+ ```
13
+
14
+ RTK supports 70+ commands across git, JS/TS, Python, Go, Ruby, Docker, and file operations.
15
+
16
+ ## Prerequisites
17
+
18
+ - [RTK](https://github.com/rtk-ai/rtk) >= 0.23.0 (`brew install rtk-ai/tap/rtk` or `cargo install rtk`)
19
+ - `jq` (usually pre-installed on macOS/Linux)
20
+
21
+ ## Install
22
+
23
+ ```bash
24
+ soleri hooks add-pack rtk
25
+ ```
26
+
27
+ ## Uninstall
28
+
29
+ ```bash
30
+ soleri hooks remove-pack rtk
31
+ ```
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "rtk",
3
+ "version": "1.0.0",
4
+ "description": "RTK token compression — rewrites shell commands through RTK proxy to reduce LLM token usage by 60-90%",
5
+ "hooks": [],
6
+ "scripts": [
7
+ {
8
+ "name": "rtk-rewrite",
9
+ "file": "rtk-rewrite.sh",
10
+ "targetDir": "hooks"
11
+ }
12
+ ],
13
+ "lifecycleHooks": [
14
+ {
15
+ "event": "PreToolUse",
16
+ "matcher": "Bash",
17
+ "type": "command",
18
+ "command": "sh ~/.claude/hooks/rtk-rewrite.sh",
19
+ "timeout": 10,
20
+ "statusMessage": "RTK: compressing output..."
21
+ }
22
+ ],
23
+ "scaffoldDefault": false
24
+ }
@@ -0,0 +1,70 @@
1
+ #!/bin/sh
2
+ # RTK Rewrite — PreToolUse command rewriter (Soleri Hook Pack: rtk)
3
+ # Intercepts Bash commands and rewrites them through RTK proxy for token compression.
4
+ # RTK (https://github.com/rtk-ai/rtk) reduces LLM token usage by 60-90%.
5
+ # Dependencies: jq, rtk (>= 0.23.0)
6
+ # POSIX sh compatible.
7
+
8
+ set -eu
9
+
10
+ # ── Dependency checks ──────────────────────────────────────────────
11
+
12
+ WARN_FLAG="${HOME}/.soleri/.rtk-warned"
13
+
14
+ warn_once() {
15
+ # Warn at most once per day (86400 seconds)
16
+ if [ -f "$WARN_FLAG" ]; then
17
+ # Get file mtime — try macOS stat, then Linux stat, fallback to 0
18
+ FILE_MTIME=0
19
+ if stat -f %m "$WARN_FLAG" >/dev/null 2>&1; then
20
+ FILE_MTIME=$(stat -f %m "$WARN_FLAG")
21
+ elif stat -c %Y "$WARN_FLAG" >/dev/null 2>&1; then
22
+ FILE_MTIME=$(stat -c %Y "$WARN_FLAG")
23
+ fi
24
+ NOW=$(date +%s)
25
+ WARN_AGE=$(( NOW - FILE_MTIME ))
26
+ [ "$WARN_AGE" -lt 86400 ] && return
27
+ fi
28
+ mkdir -p "$(dirname "$WARN_FLAG")"
29
+ echo "$1" >&2
30
+ touch "$WARN_FLAG"
31
+ }
32
+
33
+ if ! command -v jq >/dev/null 2>&1; then
34
+ warn_once "[soleri:rtk] jq not found — RTK hook disabled. Install: https://stedolan.github.io/jq/"
35
+ exit 0
36
+ fi
37
+
38
+ if ! command -v rtk >/dev/null 2>&1; then
39
+ warn_once "[soleri:rtk] rtk not found — RTK hook disabled. Install: https://github.com/rtk-ai/rtk"
40
+ exit 0
41
+ fi
42
+
43
+ # ── Read stdin JSON ────────────────────────────────────────────────
44
+
45
+ INPUT=$(cat)
46
+
47
+ # Extract command from Claude Code PreToolUse JSON
48
+ CMD=$(printf '%s' "$INPUT" | jq -r '.tool_input.command // empty' 2>/dev/null)
49
+ if [ -z "$CMD" ]; then
50
+ exit 0
51
+ fi
52
+
53
+ # ── Rewrite via RTK ────────────────────────────────────────────────
54
+
55
+ # Ask RTK if it can compress this command.
56
+ # Exit codes: 0 = rewritten, 1 = no match (pass through), 2+ = error
57
+ REWRITTEN=$(rtk rewrite "$CMD" 2>/dev/null) || exit 0
58
+
59
+ # If RTK returned empty or same command, pass through
60
+ if [ -z "$REWRITTEN" ] || [ "$REWRITTEN" = "$CMD" ]; then
61
+ exit 0
62
+ fi
63
+
64
+ # ── Return rewritten command ───────────────────────────────────────
65
+
66
+ # Build updatedInput from original tool_input with rewritten command
67
+ UPDATED_INPUT=$(printf '%s' "$INPUT" | jq -c --arg cmd "$REWRITTEN" '.tool_input | .command = $cmd')
68
+
69
+ # Output Claude Code hookSpecificOutput contract
70
+ printf '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow","permissionDecisionReason":"RTK token compression","updatedInput":%s}}' "$UPDATED_INPUT"