soturail 0.2.2 → 0.3.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.
Files changed (76) hide show
  1. package/README.md +55 -10
  2. package/dist/cli.js +11 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/bench.d.ts +1 -1
  5. package/dist/commands/bench.js +126 -2
  6. package/dist/commands/bench.js.map +1 -1
  7. package/dist/commands/context.d.ts +2 -0
  8. package/dist/commands/context.js +27 -0
  9. package/dist/commands/context.js.map +1 -0
  10. package/dist/commands/hooks.d.ts +3 -0
  11. package/dist/commands/hooks.js +32 -8
  12. package/dist/commands/hooks.js.map +1 -1
  13. package/dist/commands/mcp.d.ts +2 -0
  14. package/dist/commands/mcp.js +21 -0
  15. package/dist/commands/mcp.js.map +1 -0
  16. package/dist/commands/memory.d.ts +1 -0
  17. package/dist/commands/memory.js +2 -1
  18. package/dist/commands/memory.js.map +1 -1
  19. package/dist/commands/release.d.ts +3 -0
  20. package/dist/commands/release.js +227 -0
  21. package/dist/commands/release.js.map +1 -0
  22. package/dist/commands/skills.d.ts +2 -0
  23. package/dist/commands/skills.js +43 -0
  24. package/dist/commands/skills.js.map +1 -0
  25. package/dist/core/config.d.ts +5 -0
  26. package/dist/core/config.js +12 -2
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/context-pack.d.ts +13 -0
  29. package/dist/core/context-pack.js +102 -0
  30. package/dist/core/context-pack.js.map +1 -0
  31. package/dist/core/mcp-resources.d.ts +13 -0
  32. package/dist/core/mcp-resources.js +46 -0
  33. package/dist/core/mcp-resources.js.map +1 -0
  34. package/dist/core/mcp-server.d.ts +14 -0
  35. package/dist/core/mcp-server.js +81 -0
  36. package/dist/core/mcp-server.js.map +1 -0
  37. package/dist/core/mcp-tools.d.ts +7 -0
  38. package/dist/core/mcp-tools.js +73 -0
  39. package/dist/core/mcp-tools.js.map +1 -0
  40. package/dist/core/release-preflight.d.ts +22 -0
  41. package/dist/core/release-preflight.js +201 -0
  42. package/dist/core/release-preflight.js.map +1 -0
  43. package/dist/core/skill-exporter.d.ts +3 -0
  44. package/dist/core/skill-exporter.js +72 -0
  45. package/dist/core/skill-exporter.js.map +1 -0
  46. package/dist/core/skill-schema.d.ts +55 -0
  47. package/dist/core/skill-schema.js +84 -0
  48. package/dist/core/skill-schema.js.map +1 -0
  49. package/dist/core/skill-store.d.ts +4 -0
  50. package/dist/core/skill-store.js +92 -0
  51. package/dist/core/skill-store.js.map +1 -0
  52. package/dist/core/skill-validator.d.ts +12 -0
  53. package/dist/core/skill-validator.js +94 -0
  54. package/dist/core/skill-validator.js.map +1 -0
  55. package/dist/core/version.d.ts +1 -0
  56. package/dist/core/version.js +3 -0
  57. package/dist/core/version.js.map +1 -0
  58. package/docs/benchmarking.md +6 -1
  59. package/docs/comparisons.md +35 -0
  60. package/docs/context-packs.md +29 -0
  61. package/docs/examples/skills/README.md +11 -0
  62. package/docs/hooks/claude.md +6 -4
  63. package/docs/hooks/codex.md +4 -3
  64. package/docs/hooks/cursor.md +4 -3
  65. package/docs/hooks/gemini.md +4 -3
  66. package/docs/hooks/mcp.md +10 -0
  67. package/docs/hooks.md +12 -16
  68. package/docs/mcp.md +18 -0
  69. package/docs/release-checklist.md +44 -1
  70. package/docs/release-workflow.md +41 -18
  71. package/docs/security-model.md +6 -0
  72. package/docs/skill-rail.md +14 -20
  73. package/docs/usage.md +15 -0
  74. package/docs/windows.md +22 -1
  75. package/docs/workflow-rail.md +1 -1
  76. package/package.json +8 -6
package/README.md CHANGED
@@ -24,7 +24,7 @@ It wraps a repository and terminal session with reversible evidence rails: heuri
24
24
 
25
25
  ## Project Status
26
26
 
27
- v0.2.x is early but functional. TypeScript mode is stable for local usage. Native Rust mode is optional and focused on hot paths. Benchmarks are local and reproducible. External comparisons are optional and user-provided.
27
+ v0.3.x is early but functional. TypeScript mode is stable for local usage. Native Rust mode is optional and focused on hot paths. Skill Rail, MCP and context packs are local-first and benchmarkable. External comparisons are optional and user-provided.
28
28
 
29
29
  ## Built With SotuRail
30
30
 
@@ -50,12 +50,23 @@ Release automation is local-first and conservative:
50
50
 
51
51
  ```bash
52
52
  npm run release:check
53
- npm run release:prepare -- --version X.Y.Z
54
- npm run release:publish -- --version X.Y.Z
55
- npm run release:full -- --version X.Y.Z
53
+ npm run release:publish -- X.Y.Z
54
+ npm run release:github -- X.Y.Z
55
+ npm run release:full -- X.Y.Z --publish-npm --github-release
56
56
  ```
57
57
 
58
- The release script never runs `npm audit fix --force`, never publishes when build/tests/runtime audit fail and never creates a GitHub release before npm publish succeeds. See [docs/release-workflow.md](docs/release-workflow.md).
58
+ The release commands accept a positional version, `--target-version X.Y.Z`, or the backward-compatible `--version X.Y.Z` option. The release script never runs `npm audit fix --force`, never publishes when build/tests/runtime audit fail and never creates a GitHub release before npm publish succeeds. See [docs/release-workflow.md](docs/release-workflow.md).
59
+
60
+ ## Release Reliability
61
+
62
+ SotuRail includes a release preflight check to prevent stale package metadata, broken npm CLI binaries, missing release notes, and changelog/version mismatches.
63
+
64
+ ```bash
65
+ npm run build
66
+ npm test
67
+ npm run release:check
68
+ npm pack --dry-run
69
+ ```
59
70
 
60
71
  ## 2. Why SotuRail Exists
61
72
 
@@ -88,7 +99,7 @@ Use directly with npx:
88
99
 
89
100
  ```bash
90
101
  npx soturail --help
91
- npx soturail@0.2.2 --help
102
+ npx soturail@0.3.0 --help
92
103
  ```
93
104
 
94
105
  Install globally:
@@ -96,6 +107,7 @@ Install globally:
96
107
  ```bash
97
108
  npm install -g soturail
98
109
  soturail --help
110
+ soturail --version
99
111
  ```
100
112
 
101
113
  For local development from source:
@@ -152,6 +164,11 @@ soturail hooks list
152
164
  soturail format README.md --mode concise
153
165
  soturail ingest README.md --type docs
154
166
  soturail rules check
167
+ soturail skills init demo-skill
168
+ soturail skills validate
169
+ soturail skills export --target claude
170
+ soturail context pack --target generic
171
+ soturail mcp doctor
155
172
  soturail spec status
156
173
  soturail memory propose "decision"
157
174
  soturail doctor cache
@@ -202,6 +219,34 @@ Host APIs vary, so SotuRail never writes guessed config without showing the targ
202
219
 
203
220
  Review generated hooks before enabling them. SotuRail should never auto-install unreviewed third-party skills, hooks or scripts.
204
221
 
222
+ ## Skill Rail
223
+
224
+ Skill Rail creates, validates, exports and packs safe local agent skills without depending on external skill ecosystems.
225
+
226
+ ```bash
227
+ soturail skills init demo-skill
228
+ soturail skills list
229
+ soturail skills validate
230
+ soturail skills export --target claude
231
+ soturail skills pack --format markdown
232
+ ```
233
+
234
+ Exports are written under `.soturail/exports/skills/` and should be reviewed before enabling in an agent host.
235
+
236
+ ## MCP And Context Packs
237
+
238
+ SotuRail exposes local context through a minimal MCP-compatible stdio server and cache-friendly context packs.
239
+
240
+ ```bash
241
+ soturail mcp doctor
242
+ soturail mcp manifest
243
+ soturail mcp serve --transport stdio
244
+ soturail context pack --target generic
245
+ soturail context explain
246
+ ```
247
+
248
+ MCP does not expose arbitrary shell execution in v0.3.0. Raw log expansion redacts probable secrets unless raw output is explicitly requested.
249
+
205
250
  ## 10. Agent Response Compression
206
251
 
207
252
  SotuRail includes Caveman-like output compression as inspiration, implemented independently with professional modes:
@@ -253,17 +298,17 @@ Raw logs may contain secrets because they preserve real terminal output. Treat `
253
298
 
254
299
  Windows users should see [docs/windows.md](docs/windows.md) for CMD vs PowerShell quoting, global install, `npx`, local tarball testing and common paste mistakes such as copying Markdown code-fence labels into CMD.
255
300
 
256
- ## Road To Skill Rail
301
+ ## Road To Workflow Rail
257
302
 
258
- Skill Rail and Workflow Rail are planned, not implemented in v0.2.2. See [docs/skill-rail.md](docs/skill-rail.md) and [docs/workflow-rail.md](docs/workflow-rail.md) for the security-first roadmap.
303
+ Skill Rail ships in v0.3.0. Workflow Rail remains planned; see [docs/workflow-rail.md](docs/workflow-rail.md) for the security-first roadmap.
259
304
 
260
305
  ## Comparison Philosophy
261
306
 
262
- SotuRail is inspired by the broader context-engineering ecosystem, including terminal reducers, agent response compression, spec-driven workflows, local memory, rules extraction, hooks, benchmarks and skill registries. SotuRail does not vendor or depend on those projects. It aims to unify similar ideas into one local-first workflow while keeping benchmarks honest.
307
+ SotuRail is inspired by the broader context-engineering ecosystem, including terminal reducers, agent response compression, spec-driven workflows, local memory, rules extraction, hooks, benchmarks and skill registries. SotuRail does not vendor or depend on those projects. It aims to unify similar ideas into one local-first workflow while keeping benchmarks honest. See [docs/comparisons.md](docs/comparisons.md).
263
308
 
264
309
  ## 14. Roadmap
265
310
 
266
- See [ROADMAP.md](ROADMAP.md). v0.3.0 focuses on deeper native paths, MCP, hardened PDF extraction, semantic memory approval, Tree-sitter repo maps and optional local embeddings.
311
+ See [ROADMAP.md](ROADMAP.md). v0.4.0 focuses on Workflow Rail and Git worktrees; later releases target hardened PDF ingestion, semantic memory, deeper native integration and a stable API.
267
312
 
268
313
  ## 15. Contributing
269
314
 
package/dist/cli.js CHANGED
@@ -12,25 +12,32 @@ import { registerIngestCommand } from "./commands/ingest.js";
12
12
  import { registerIndexCommand } from "./commands/index.js";
13
13
  import { registerInitCommand } from "./commands/init.js";
14
14
  import { registerMemoryCommand } from "./commands/memory.js";
15
+ import { registerMcpCommand } from "./commands/mcp.js";
15
16
  import { registerNativeCommand } from "./commands/native.js";
17
+ import { registerContextCommand } from "./commands/context.js";
16
18
  import { registerReadCommand } from "./commands/read.js";
17
19
  import { registerRunCommand } from "./commands/run.js";
18
20
  import { registerRulesCommand } from "./commands/rules.js";
19
21
  import { registerSelfCommand } from "./commands/self.js";
22
+ import { registerSkillsCommand } from "./commands/skills.js";
20
23
  import { registerSpecCommand } from "./commands/spec.js";
21
24
  import { registerStatsCommand } from "./commands/stats.js";
25
+ import { registerReleaseCommand } from "./commands/release.js";
26
+ import { SOTURAIL_VERSION } from "./core/version.js";
22
27
  export function buildProgram() {
23
28
  const program = new Command();
29
+ program.enablePositionalOptions();
24
30
  program
25
31
  .name("soturail")
26
32
  .description("Local-first Context OS rails for AI coding agents.")
27
- .version("0.2.2")
33
+ .version(SOTURAIL_VERSION)
28
34
  .showHelpAfterError();
29
35
  registerInitCommand(program);
30
36
  registerIndexCommand(program);
31
37
  registerReadCommand(program);
32
38
  registerRunCommand(program);
33
39
  registerBenchCommand(program);
40
+ registerContextCommand(program);
34
41
  registerDedupeCommand(program);
35
42
  registerExpandCommand(program);
36
43
  registerFormatCommand(program);
@@ -38,9 +45,12 @@ export function buildProgram() {
38
45
  registerIngestCommand(program);
39
46
  registerSpecCommand(program);
40
47
  registerMemoryCommand(program);
48
+ registerMcpCommand(program);
41
49
  registerNativeCommand(program);
42
50
  registerRulesCommand(program);
51
+ registerReleaseCommand(program);
43
52
  registerSelfCommand(program);
53
+ registerSkillsCommand(program);
44
54
  registerDoctorCommand(program);
45
55
  registerStatsCommand(program);
46
56
  return program;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ interface BenchOptions {
4
4
  engine?: ReducerEngine;
5
5
  tool?: string;
6
6
  }
7
- export type BenchmarkCategory = "terminal_compression" | "agent_response_compression" | "knowledge_structuring" | "cache_stability" | "native_engine";
7
+ export type BenchmarkCategory = "terminal_compression" | "agent_response_compression" | "knowledge_structuring" | "cache_stability" | "native_engine" | "skill_rail" | "mcp" | "context_pack" | "agent_integration" | "memory_workflow";
8
8
  export interface BenchResult {
9
9
  case_id: string;
10
10
  name: string;
@@ -7,13 +7,22 @@ import { promisify } from "node:util";
7
7
  import { reduceAgentResponse } from "../compressors/agent-response-reducer.js";
8
8
  import { compressOutputWithEngine } from "../compressors/index.js";
9
9
  import { buildCachePayload } from "../core/cache-normalizer.js";
10
+ import { buildContextPack } from "../core/context-pack.js";
10
11
  import { ensureWorkspace, writeJson } from "../core/config.js";
11
12
  import { ingestDocument } from "../core/document-ingest.js";
13
+ import { exportHook } from "./hooks.js";
14
+ import { approveMemory, listMemory, proposeMemory } from "./memory.js";
12
15
  import { MetricsStore } from "../core/metrics-store.js";
16
+ import { mcpManifest } from "../core/mcp-server.js";
17
+ import { readMcpResource } from "../core/mcp-resources.js";
13
18
  import { detectNativeEngine } from "../core/native-engine.js";
14
19
  import { extractRules } from "../core/rule-extractor.js";
15
20
  import { estimateTokens } from "../core/token-estimator.js";
16
21
  import { validateRules } from "../core/rule-validator.js";
22
+ import { createSkill } from "../core/skill-store.js";
23
+ import { exportSkills } from "../core/skill-exporter.js";
24
+ import { validateSkills } from "../core/skill-validator.js";
25
+ import { SOTURAIL_VERSION } from "../core/version.js";
17
26
  const execFileAsync = promisify(execFile);
18
27
  function sha256(text) {
19
28
  return createHash("sha256").update(text).digest("hex");
@@ -255,6 +264,111 @@ async function nativeEngineResult(root) {
255
264
  details: { available: native.available, path: native.path ?? null, version: native.version ?? null }
256
265
  });
257
266
  }
267
+ async function skillRailResult(root, mode) {
268
+ const start = performance.now();
269
+ const skill = await createSkill(`benchmark ${mode}`, root);
270
+ const raw = `${skill.metadata.id}\n${skill.markdown}`;
271
+ const output = mode === "validation"
272
+ ? JSON.stringify(await validateSkills(root), null, 2)
273
+ : await exportSkills("claude", root);
274
+ const runtime = performance.now() - start;
275
+ return makeResult({
276
+ case_id: mode === "validation" ? "skill-validation" : "skill-export-claude",
277
+ category: "skill_rail",
278
+ engine: "ts",
279
+ raw,
280
+ reduced: output,
281
+ rawTokens: estimateTokens(raw),
282
+ reducedTokens: estimateTokens(output),
283
+ reduction: null,
284
+ runtime,
285
+ quality: output.includes(mode === "validation" ? "skills_count" : "Exported"),
286
+ notes: "Skill Rail benchmark validates safe schema/export behavior.",
287
+ details: { mode }
288
+ });
289
+ }
290
+ async function mcpResult(root, mode) {
291
+ const start = performance.now();
292
+ const raw = mode;
293
+ const output = mode === "manifest"
294
+ ? JSON.stringify(await mcpManifest(SOTURAIL_VERSION), null, 2)
295
+ : JSON.stringify(await readMcpResource("soturail://roadmap", root), null, 2);
296
+ const runtime = performance.now() - start;
297
+ return makeResult({
298
+ case_id: mode === "manifest" ? "mcp-resource-list" : "mcp-resource-read",
299
+ category: "mcp",
300
+ engine: "ts",
301
+ raw,
302
+ reduced: output,
303
+ rawTokens: estimateTokens(raw),
304
+ reducedTokens: estimateTokens(output),
305
+ reduction: null,
306
+ runtime,
307
+ quality: output.includes(mode === "manifest" ? "soturail://repo-map" : "roadmap"),
308
+ notes: "MCP benchmark uses local resources without arbitrary shell execution.",
309
+ details: { mode }
310
+ });
311
+ }
312
+ async function contextPackResult(root) {
313
+ const start = performance.now();
314
+ const pack = await buildContextPack("generic", root, { now: "2026-05-21T00:00:00.000Z" });
315
+ const runtime = performance.now() - start;
316
+ return makeResult({
317
+ case_id: "context-pack-generic",
318
+ category: "context_pack",
319
+ engine: "ts",
320
+ raw: pack.stablePrefix,
321
+ reduced: pack.payload,
322
+ rawTokens: estimateTokens(pack.stablePrefix),
323
+ reducedTokens: estimateTokens(pack.payload),
324
+ reduction: null,
325
+ runtime,
326
+ quality: pack.payload.includes("Dynamic Footer"),
327
+ notes: "Context pack benchmark preserves stable-before-dynamic ordering.",
328
+ details: { target: "generic" }
329
+ });
330
+ }
331
+ async function hookExportResult(root) {
332
+ const start = performance.now();
333
+ const output = await exportHook("claude", root);
334
+ const runtime = performance.now() - start;
335
+ return makeResult({
336
+ case_id: "hook-export-claude",
337
+ category: "agent_integration",
338
+ engine: "ts",
339
+ raw: "claude hook export",
340
+ reduced: output,
341
+ rawTokens: estimateTokens("claude hook export"),
342
+ reducedTokens: estimateTokens(output),
343
+ reduction: null,
344
+ runtime,
345
+ quality: output.includes(".soturail"),
346
+ notes: "Hook export benchmark creates reviewable local files.",
347
+ details: { agent: "claude" }
348
+ });
349
+ }
350
+ async function memoryWorkflowResult(root) {
351
+ const start = performance.now();
352
+ const pending = await proposeMemory("Benchmark memory approval workflow.", {}, root);
353
+ const approved = await approveMemory(pending.id, root);
354
+ const list = await listMemory("approved", root);
355
+ const runtime = performance.now() - start;
356
+ const output = JSON.stringify({ pending, approved, list }, null, 2);
357
+ return makeResult({
358
+ case_id: "memory-approval-workflow",
359
+ category: "memory_workflow",
360
+ engine: "ts",
361
+ raw: pending.text,
362
+ reduced: output,
363
+ rawTokens: estimateTokens(pending.text),
364
+ reducedTokens: estimateTokens(output),
365
+ reduction: null,
366
+ runtime,
367
+ quality: approved.status === "approved" && list.includes(pending.id),
368
+ notes: "Memory workflow benchmark proposes, approves and lists local memory.",
369
+ details: { memory_id: pending.id }
370
+ });
371
+ }
258
372
  function qualityCheck(caseId, text) {
259
373
  if (caseId.includes("vitest") && (!text.includes("AssertionError") || !text.includes("tests/app.test.ts"))) {
260
374
  return { ok: false, reason: "Vitest assertion or path missing" };
@@ -329,7 +443,14 @@ export async function runBenchmarks(options = {}, root = process.cwd()) {
329
443
  await responseResult(root, "readme-doc.md", "docs"),
330
444
  await rulesResult(root),
331
445
  await cacheStabilityResult(root),
332
- await nativeEngineResult(root)
446
+ await nativeEngineResult(root),
447
+ await skillRailResult(root, "validation"),
448
+ await skillRailResult(root, "export"),
449
+ await mcpResult(root, "manifest"),
450
+ await mcpResult(root, "read"),
451
+ await contextPackResult(root),
452
+ await hookExportResult(root),
453
+ await memoryWorkflowResult(root)
333
454
  ];
334
455
  await writeBenchmarkFiles(root, engine, results);
335
456
  await new MetricsStore(root).append({ type: "bench_run", details: { engine, results_count: results.length } });
@@ -423,7 +544,10 @@ export async function compareOptional(tool, root = process.cwd()) {
423
544
  }
424
545
  }
425
546
  export function registerBenchCommand(program) {
426
- const bench = program.command("bench").description("Run reproducible local SotuRail benchmarks.");
547
+ const bench = program.command("bench").description("Run reproducible local SotuRail benchmarks.").action(async () => {
548
+ const results = await runBenchmarks({ engine: "ts" });
549
+ process.stdout.write(`Benchmark results written: ${results.length} cases\nbenchmarks/results/latest.json\nbenchmarks/reports/latest.md\n`);
550
+ });
427
551
  bench.command("prepare").description("Generate deterministic benchmark fixtures.").action(async () => {
428
552
  process.stdout.write(await prepareBenchmarks());
429
553
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bench.js","sourceRoot":"","sources":["../../src/commands/bench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bench.js","sourceRoot":"","sources":["../../src/commands/bench.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerContextCommand(program: Command): void;
@@ -0,0 +1,27 @@
1
+ import path from "node:path";
2
+ import { buildContextPack, contextDoctor, explainContextPacks } from "../core/context-pack.js";
3
+ const targets = ["claude", "codex", "gemini", "cursor", "generic"];
4
+ export function registerContextCommand(program) {
5
+ const context = program.command("context").description("Build cache-friendly prompt/context packs.");
6
+ context
7
+ .command("pack")
8
+ .description("Generate a context pack for an agent target.")
9
+ .requiredOption("--target <target>", "claude, codex, gemini, cursor, or generic")
10
+ .action(async (options) => {
11
+ const target = parseTarget(options.target);
12
+ const result = await buildContextPack(target);
13
+ process.stdout.write(`Context pack written: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
14
+ });
15
+ context.command("explain").description("Explain context pack cache ordering.").action(() => {
16
+ process.stdout.write(explainContextPacks());
17
+ });
18
+ context.command("doctor").description("Check context pack workspace state.").action(async () => {
19
+ process.stdout.write(await contextDoctor());
20
+ });
21
+ }
22
+ function parseTarget(value) {
23
+ if (targets.includes(value))
24
+ return value;
25
+ throw new Error(`Unknown context target "${value}".`);
26
+ }
27
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;AAEnH,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAE5E,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;IAErG,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8CAA8C,CAAC;SAC3D,cAAc,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC7F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAsB,CAAC;IAClF,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC"}
@@ -2,10 +2,13 @@ import type { Command } from "commander";
2
2
  export type HookHost = "claude" | "codex" | "gemini" | "cursor";
3
3
  export interface HookInstallOptions {
4
4
  dryRun?: boolean;
5
+ agent?: string;
6
+ mode?: "safe-hooks" | "mcp" | "prompt-only";
5
7
  }
6
8
  export declare function listHooks(): Promise<string>;
7
9
  export declare function hooksDoctor(root?: string): Promise<string>;
8
10
  export declare function installHooks(hostValue: string, options?: HookInstallOptions, root?: string): Promise<string>;
9
11
  export declare function uninstallHooks(hostValue: string, root?: string): Promise<string>;
10
12
  export declare function promptOnly(hostValue: string): Promise<string>;
13
+ export declare function exportHook(hostValue: string, root?: string): Promise<string>;
11
14
  export declare function registerHooksCommand(program: Command): void;
@@ -184,17 +184,21 @@ export async function installHooks(hostValue, options = {}, root = process.cwd()
184
184
  const parsed = parseHost(hostValue);
185
185
  const selected = parsed === "all" ? hosts : [parsed];
186
186
  const dryRun = options.dryRun === true;
187
- const lines = [`SotuRail hooks install ${hostValue}${dryRun ? " --dry-run" : ""}`];
187
+ const mode = options.mode ?? (hostValue === "claude" ? "safe-hooks" : "prompt-only");
188
+ const lines = [`SotuRail hooks install ${hostValue} --mode ${mode}${dryRun ? " --dry-run" : ""}`];
188
189
  const installed = [];
189
190
  for (const host of selected) {
190
- if (host === "claude") {
191
+ if (host === "claude" && mode !== "prompt-only") {
191
192
  lines.push(...(await installClaude(root, dryRun)));
192
- installed.push({ host, target: ".claude/settings.json", mode: "adapter-template", installed_at: new Date().toISOString() });
193
+ installed.push({ host, target: ".claude/settings.json", mode, installed_at: new Date().toISOString() });
194
+ if (mode === "mcp") {
195
+ lines.push("Claude MCP mode: add soturail mcp serve --transport stdio in the host's reviewed MCP server configuration.");
196
+ }
193
197
  }
194
198
  else {
195
199
  const target = targetFor(host);
196
200
  lines.push(...(await installTarget(target, root, dryRun)));
197
- installed.push({ host, target: target.file, mode: target.mode, installed_at: new Date().toISOString() });
201
+ installed.push({ host, target: target.file, mode: "prompt-only", installed_at: new Date().toISOString() });
198
202
  }
199
203
  }
200
204
  if (!dryRun) {
@@ -227,6 +231,23 @@ export async function promptOnly(hostValue) {
227
231
  const selected = parsed === "all" ? hosts : [parsed];
228
232
  return selected.map((host) => targetFor(host).content).join("\n---\n") + "\n";
229
233
  }
234
+ export async function exportHook(hostValue, root = process.cwd()) {
235
+ await ensureWorkspace(root);
236
+ const parsed = parseHost(hostValue);
237
+ const selected = parsed === "all" ? hosts : [parsed];
238
+ const paths = getWorkspacePaths(root);
239
+ await fs.mkdir(paths.hookExportsDir, { recursive: true });
240
+ const written = [];
241
+ for (const host of selected) {
242
+ const content = host === "claude"
243
+ ? `# SotuRail Claude Hook Export\n\nReview before enabling.\n\n## Prompt Rules\n\n${rules(host)}\n## Pre Tool Hook\n\n\`\`\`js\n${claudePreToolHook}\n\`\`\`\n`
244
+ : `# SotuRail ${host} Prompt-Only Export\n\n${rules(host)}\n`;
245
+ const filePath = path.join(paths.hookExportsDir, `${host}.md`);
246
+ await fs.writeFile(filePath, content, "utf8");
247
+ written.push(path.normalize(path.relative(root, filePath)).replace(/\\/g, "/"));
248
+ }
249
+ return `Hook export written:\n${written.join("\n")}\n`;
250
+ }
230
251
  export function registerHooksCommand(program) {
231
252
  const hooks = program.command("hooks").description("Install or inspect agent hook and prompt-only integrations.");
232
253
  hooks.command("list").description("List supported hook hosts.").action(async () => {
@@ -235,14 +256,17 @@ export function registerHooksCommand(program) {
235
256
  hooks.command("doctor").description("Check hook registry state.").action(async () => {
236
257
  process.stdout.write(await hooksDoctor());
237
258
  });
238
- hooks.command("install").description("Install hook rules for a host.").argument("<host>", "claude, codex, gemini, cursor, or all").option("--dry-run", "Print changes without writing").action(async (host, options) => {
239
- process.stdout.write(await installHooks(host, options));
259
+ hooks.command("install").description("Install hook rules for a host.").argument("[host]", "claude, codex, gemini, cursor, or all").option("--agent <agent>", "Agent host").option("--mode <mode>", "safe-hooks, mcp, or prompt-only").option("--dry-run", "Print changes without writing").action(async (host, options) => {
260
+ process.stdout.write(await installHooks(host ?? options.agent ?? "all", options));
240
261
  });
241
- hooks.command("uninstall").description("Restore backed up host files when available.").argument("<host>", "claude, codex, gemini, cursor, or all").action(async (host) => {
242
- process.stdout.write(await uninstallHooks(host));
262
+ hooks.command("uninstall").description("Restore backed up host files when available.").argument("[host]", "claude, codex, gemini, cursor, or all").option("--agent <agent>", "Agent host").action(async (host, options) => {
263
+ process.stdout.write(await uninstallHooks(host ?? options.agent ?? "all"));
243
264
  });
244
265
  hooks.command("prompt-only").description("Print prompt-only fallback rules.").argument("<host>", "claude, codex, gemini, cursor, or all").action(async (host) => {
245
266
  process.stdout.write(await promptOnly(host));
246
267
  });
268
+ hooks.command("export").description("Export hook or prompt-only guidance for review.").option("--agent <agent>", "claude, codex, gemini, cursor, or all", "all").action(async (options) => {
269
+ process.stdout.write(await exportHook(options.agent));
270
+ });
247
271
  }
248
272
  //# sourceMappingURL=hooks.js.map