soturail 0.4.1 → 0.7.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.
- package/LICENSE +15 -21
- package/README.md +292 -157
- package/dist/cli.js +12 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.js +39 -5
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/context.js +66 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/diagram.d.ts +2 -0
- package/dist/commands/diagram.js +24 -0
- package/dist/commands/diagram.js.map +1 -0
- package/dist/commands/eval.d.ts +2 -0
- package/dist/commands/eval.js +25 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/format.js +14 -4
- package/dist/commands/format.js.map +1 -1
- package/dist/commands/fs.d.ts +2 -0
- package/dist/commands/fs.js +19 -0
- package/dist/commands/fs.js.map +1 -0
- package/dist/commands/harness.d.ts +2 -0
- package/dist/commands/harness.js +35 -0
- package/dist/commands/harness.js.map +1 -0
- package/dist/commands/mcp.js +5 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/memory.js +40 -0
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/native.js +4 -0
- package/dist/commands/native.js.map +1 -1
- package/dist/commands/policy.d.ts +2 -0
- package/dist/commands/policy.js +25 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/release.js +9 -2
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/run.js +15 -3
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills.js +15 -0
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.js +13 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/workflow.js +35 -5
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/agent-docs-hygiene.d.ts +3 -0
- package/dist/core/agent-docs-hygiene.js +83 -0
- package/dist/core/agent-docs-hygiene.js.map +1 -0
- package/dist/core/agent-exporter.d.ts +3 -1
- package/dist/core/agent-exporter.js +136 -12
- package/dist/core/agent-exporter.js.map +1 -1
- package/dist/core/agent-profile.d.ts +1 -1
- package/dist/core/agent-registry.js +60 -0
- package/dist/core/agent-registry.js.map +1 -1
- package/dist/core/agent-runtime.d.ts +57 -0
- package/dist/core/agent-runtime.js +371 -0
- package/dist/core/agent-runtime.js.map +1 -0
- package/dist/core/config.d.ts +20 -0
- package/dist/core/config.js +39 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/context-intelligence.d.ts +47 -0
- package/dist/core/context-intelligence.js +283 -0
- package/dist/core/context-intelligence.js.map +1 -0
- package/dist/core/diagram-rail.d.ts +31 -0
- package/dist/core/diagram-rail.js +235 -0
- package/dist/core/diagram-rail.js.map +1 -0
- package/dist/core/diagram-validator.d.ts +10 -0
- package/dist/core/diagram-validator.js +53 -0
- package/dist/core/diagram-validator.js.map +1 -0
- package/dist/core/evaluation-suite.d.ts +28 -0
- package/dist/core/evaluation-suite.js +333 -0
- package/dist/core/evaluation-suite.js.map +1 -0
- package/dist/core/evidence-pack.d.ts +4 -0
- package/dist/core/evidence-pack.js +139 -0
- package/dist/core/evidence-pack.js.map +1 -0
- package/dist/core/format-compare.d.ts +12 -0
- package/dist/core/format-compare.js +68 -0
- package/dist/core/format-compare.js.map +1 -0
- package/dist/core/fs-evidence.d.ts +25 -0
- package/dist/core/fs-evidence.js +96 -0
- package/dist/core/fs-evidence.js.map +1 -0
- package/dist/core/harness-rail.d.ts +34 -0
- package/dist/core/harness-rail.js +158 -0
- package/dist/core/harness-rail.js.map +1 -0
- package/dist/core/json-validator.d.ts +24 -0
- package/dist/core/json-validator.js +138 -0
- package/dist/core/json-validator.js.map +1 -0
- package/dist/core/mcp-exposure.d.ts +20 -0
- package/dist/core/mcp-exposure.js +48 -0
- package/dist/core/mcp-exposure.js.map +1 -0
- package/dist/core/memory-rail.d.ts +37 -0
- package/dist/core/memory-rail.js +142 -0
- package/dist/core/memory-rail.js.map +1 -0
- package/dist/core/policy-rail.d.ts +27 -0
- package/dist/core/policy-rail.js +102 -0
- package/dist/core/policy-rail.js.map +1 -0
- package/dist/core/rail-utils.d.ts +10 -0
- package/dist/core/rail-utils.js +58 -0
- package/dist/core/rail-utils.js.map +1 -0
- package/dist/core/release-preflight.js +1 -1
- package/dist/core/release-preflight.js.map +1 -1
- package/dist/core/run-workspace.d.ts +38 -0
- package/dist/core/run-workspace.js +108 -0
- package/dist/core/run-workspace.js.map +1 -0
- package/dist/core/skill-routing.d.ts +2 -0
- package/dist/core/skill-routing.js +51 -0
- package/dist/core/skill-routing.js.map +1 -0
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/core/workflow-store.d.ts +68 -0
- package/dist/core/workflow-store.js +360 -6
- package/dist/core/workflow-store.js.map +1 -1
- package/docs/agent-docs-hygiene.md +175 -0
- package/docs/agents.md +190 -2
- package/docs/benchmarking.md +213 -2
- package/docs/comparisons.md +195 -11
- package/docs/context-intelligence.md +127 -0
- package/docs/context-packs.md +237 -1
- package/docs/deep-agents-patterns.md +188 -0
- package/docs/diagram-rail.md +125 -0
- package/docs/ecosystem-influences.md +435 -0
- package/docs/evaluation-suite.md +196 -0
- package/docs/filesystem-evidence-rail.md +119 -0
- package/docs/future-rails-index.md +209 -0
- package/docs/harness-rail.md +117 -0
- package/docs/licensing-strategy.md +135 -0
- package/docs/mcp.md +96 -0
- package/docs/memory-rail.md +189 -0
- package/docs/metrics.md +136 -1
- package/docs/migration-v0.5.md +89 -0
- package/docs/policy-rail.md +184 -0
- package/docs/release-checklist.md +14 -0
- package/docs/release-workflow.md +34 -1
- package/docs/releases/README.md +27 -0
- package/docs/releases/RELEASE_NOTES_v0.2.1.md +19 -0
- package/docs/releases/RELEASE_NOTES_v0.2.2.md +48 -0
- package/docs/releases/RELEASE_NOTES_v0.2.3.md +36 -0
- package/docs/releases/RELEASE_NOTES_v0.3.0.md +42 -0
- package/docs/releases/RELEASE_NOTES_v0.3.1.md +37 -0
- package/docs/releases/RELEASE_NOTES_v0.3.2.md +33 -0
- package/docs/releases/RELEASE_NOTES_v0.3.3.md +31 -0
- package/docs/releases/RELEASE_NOTES_v0.4.0.md +35 -0
- package/docs/releases/RELEASE_NOTES_v0.4.1.md +37 -0
- package/docs/releases/RELEASE_NOTES_v0.5.0.md +21 -0
- package/docs/releases/RELEASE_NOTES_v0.5.1.md +19 -0
- package/docs/releases/RELEASE_NOTES_v0.5.2.md +27 -0
- package/docs/releases/RELEASE_NOTES_v0.6.0.md +33 -0
- package/docs/releases/RELEASE_NOTES_v0.6.1.md +37 -0
- package/docs/releases/RELEASE_NOTES_v0.7.0.md +33 -0
- package/docs/roadmap-agent-runtime-addendum.md +304 -0
- package/docs/roadmap-harness-diagram-payload-addendum.md +300 -0
- package/docs/rules.md +56 -0
- package/docs/security-model.md +56 -0
- package/docs/skill-rail.md +57 -0
- package/docs/spec-driven-workflow.md +49 -9
- package/docs/structured-payload-rail.md +251 -0
- package/docs/tutorial-antigravity.md +20 -0
- package/docs/tutorial-claude-code.md +23 -0
- package/docs/tutorial-codex.md +22 -0
- package/docs/tutorial-context-formats.md +28 -0
- package/docs/tutorial-cursor.md +23 -0
- package/docs/tutorial-deep-agents-role-packs.md +24 -0
- package/docs/tutorial-diagram-spec.md +26 -0
- package/docs/tutorial-gemini-cli.md +21 -0
- package/docs/tutorial-harness-workflow.md +25 -0
- package/docs/workflow-rail.md +98 -14
- package/examples/agents/README.md +13 -0
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -6,9 +6,13 @@ import { Command } from "commander";
|
|
|
6
6
|
import { registerBenchCommand } from "./commands/bench.js";
|
|
7
7
|
import { registerAgentsCommand } from "./commands/agents.js";
|
|
8
8
|
import { registerDedupeCommand } from "./commands/dedupe.js";
|
|
9
|
+
import { registerDiagramCommand } from "./commands/diagram.js";
|
|
9
10
|
import { registerDoctorCommand } from "./commands/doctor.js";
|
|
11
|
+
import { registerEvalCommand } from "./commands/eval.js";
|
|
10
12
|
import { registerExpandCommand } from "./commands/expand.js";
|
|
13
|
+
import { registerFsCommand } from "./commands/fs.js";
|
|
11
14
|
import { registerFormatCommand } from "./commands/format.js";
|
|
15
|
+
import { registerHarnessCommand } from "./commands/harness.js";
|
|
12
16
|
import { registerHooksCommand } from "./commands/hooks.js";
|
|
13
17
|
import { registerIngestCommand } from "./commands/ingest.js";
|
|
14
18
|
import { registerIndexCommand } from "./commands/index.js";
|
|
@@ -18,6 +22,7 @@ import { registerMcpCommand } from "./commands/mcp.js";
|
|
|
18
22
|
import { registerNativeCommand } from "./commands/native.js";
|
|
19
23
|
import { registerContextCommand } from "./commands/context.js";
|
|
20
24
|
import { registerReadCommand } from "./commands/read.js";
|
|
25
|
+
import { registerPolicyCommand } from "./commands/policy.js";
|
|
21
26
|
import { registerRunCommand } from "./commands/run.js";
|
|
22
27
|
import { registerRulesCommand } from "./commands/rules.js";
|
|
23
28
|
import { registerSelfCommand } from "./commands/self.js";
|
|
@@ -25,6 +30,7 @@ import { registerSkillsCommand } from "./commands/skills.js";
|
|
|
25
30
|
import { registerSpecCommand } from "./commands/spec.js";
|
|
26
31
|
import { registerStatsCommand } from "./commands/stats.js";
|
|
27
32
|
import { registerReleaseCommand } from "./commands/release.js";
|
|
33
|
+
import { registerValidateCommand } from "./commands/validate.js";
|
|
28
34
|
import { registerWorkflowCommand } from "./commands/workflow.js";
|
|
29
35
|
import { SOTURAIL_VERSION } from "./core/version.js";
|
|
30
36
|
export function buildProgram() {
|
|
@@ -43,20 +49,26 @@ export function buildProgram() {
|
|
|
43
49
|
registerBenchCommand(program);
|
|
44
50
|
registerContextCommand(program);
|
|
45
51
|
registerDedupeCommand(program);
|
|
52
|
+
registerDiagramCommand(program);
|
|
53
|
+
registerEvalCommand(program);
|
|
46
54
|
registerExpandCommand(program);
|
|
55
|
+
registerFsCommand(program);
|
|
47
56
|
registerFormatCommand(program);
|
|
57
|
+
registerHarnessCommand(program);
|
|
48
58
|
registerHooksCommand(program);
|
|
49
59
|
registerIngestCommand(program);
|
|
50
60
|
registerSpecCommand(program);
|
|
51
61
|
registerMemoryCommand(program);
|
|
52
62
|
registerMcpCommand(program);
|
|
53
63
|
registerNativeCommand(program);
|
|
64
|
+
registerPolicyCommand(program);
|
|
54
65
|
registerRulesCommand(program);
|
|
55
66
|
registerReleaseCommand(program);
|
|
56
67
|
registerSelfCommand(program);
|
|
57
68
|
registerSkillsCommand(program);
|
|
58
69
|
registerDoctorCommand(program);
|
|
59
70
|
registerStatsCommand(program);
|
|
71
|
+
registerValidateCommand(program);
|
|
60
72
|
registerWorkflowCommand(program);
|
|
61
73
|
return program;
|
|
62
74
|
}
|
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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"}
|
package/dist/commands/agents.js
CHANGED
|
@@ -1,17 +1,51 @@
|
|
|
1
|
+
import { explainAgents, lintAgentDocs, splitContextPlan } from "../core/agent-docs-hygiene.js";
|
|
1
2
|
import { agentDoctor, exportAgents, installAgent, uninstallAgent } from "../core/agent-exporter.js";
|
|
2
3
|
import { formatAgentList } from "../core/agent-registry.js";
|
|
4
|
+
import { agentStatus, listAgentCapabilities, renderAgentCapabilities, renderAgentStatus } from "../core/agent-runtime.js";
|
|
3
5
|
export function registerAgentsCommand(program) {
|
|
4
6
|
const agents = program.command("agents").description("Export and install safe agent integration profiles.");
|
|
5
7
|
agents.command("list").description("List supported agent integration profiles.").action(() => {
|
|
6
8
|
process.stdout.write(formatAgentList());
|
|
7
9
|
});
|
|
8
|
-
agents
|
|
9
|
-
|
|
10
|
+
agents
|
|
11
|
+
.command("capabilities")
|
|
12
|
+
.description("Show the host capability matrix for supported and experimental agent targets.")
|
|
13
|
+
.option("--json", "Print machine-readable JSON")
|
|
14
|
+
.action((options) => {
|
|
15
|
+
if (options.json) {
|
|
16
|
+
process.stdout.write(`${JSON.stringify({ schemaVersion: "soturail.agent-capabilities.v1", agents: listAgentCapabilities() }, null, 2)}\n`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
process.stdout.write(renderAgentCapabilities());
|
|
20
|
+
});
|
|
21
|
+
agents
|
|
22
|
+
.command("status")
|
|
23
|
+
.description("Inspect local agent files, exports, context packs, policy and run state.")
|
|
24
|
+
.option("--json", "Print machine-readable JSON")
|
|
25
|
+
.action(async (options) => {
|
|
26
|
+
const status = await agentStatus();
|
|
27
|
+
process.stdout.write(options.json ? `${JSON.stringify(status, null, 2)}\n` : renderAgentStatus(status));
|
|
28
|
+
});
|
|
29
|
+
agents.command("doctor").description("Check agent integration readiness.").option("--verbose", "Include host matrix, policy and dry-run guidance").action(async (options) => {
|
|
30
|
+
process.stdout.write(await agentDoctor(process.cwd(), { verbose: options.verbose === true }));
|
|
31
|
+
});
|
|
32
|
+
agents.command("lint").description("Lint root agent docs for size, freshness and safety notes.").action(async () => {
|
|
33
|
+
process.stdout.write(await lintAgentDocs());
|
|
34
|
+
});
|
|
35
|
+
agents.command("split-context").description("Suggest moving large agent context into referenced files.").option("--dry-run", "Preview only", true).action(async (options) => {
|
|
36
|
+
process.stdout.write(await splitContextPlan(options.dryRun !== false));
|
|
37
|
+
});
|
|
38
|
+
agents
|
|
39
|
+
.command("explain")
|
|
40
|
+
.description("Explain what each agent export receives and what stays local.")
|
|
41
|
+
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, opencode, amp, kiro, deepagents, deepagents-js, or all")
|
|
42
|
+
.action((options) => {
|
|
43
|
+
process.stdout.write(explainAgents(options.agent));
|
|
10
44
|
});
|
|
11
45
|
agents
|
|
12
46
|
.command("export")
|
|
13
47
|
.description("Export prompt/context integration files for review.")
|
|
14
|
-
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, or all")
|
|
48
|
+
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, opencode, amp, kiro, deepagents, deepagents-js, or all")
|
|
15
49
|
.action(async (options) => {
|
|
16
50
|
const result = await exportAgents(options.agent ?? "all");
|
|
17
51
|
process.stdout.write(`Agent exports written:\n${result.written.join("\n")}\n`);
|
|
@@ -19,7 +53,7 @@ export function registerAgentsCommand(program) {
|
|
|
19
53
|
agents
|
|
20
54
|
.command("install")
|
|
21
55
|
.description("Install reviewed project-local agent integration files.")
|
|
22
|
-
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, or all")
|
|
56
|
+
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, opencode, amp, kiro, deepagents, deepagents-js, or all")
|
|
23
57
|
.option("--mode <mode>", "prompt-only, mcp, safe-hooks, or rules")
|
|
24
58
|
.option("--dry-run", "Print planned changes without writing")
|
|
25
59
|
.option("--yes", "Acknowledge reviewed project-local install")
|
|
@@ -32,7 +66,7 @@ export function registerAgentsCommand(program) {
|
|
|
32
66
|
agents
|
|
33
67
|
.command("uninstall")
|
|
34
68
|
.description("Restore backups for project-local agent integration files when available.")
|
|
35
|
-
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, or all")
|
|
69
|
+
.requiredOption("--agent <agent>", "claude, codex, gemini, cursor, antigravity, generic, opencode, amp, kiro, deepagents, deepagents-js, or all")
|
|
36
70
|
.option("--dry-run", "Print planned rollback without writing")
|
|
37
71
|
.action(async (options) => {
|
|
38
72
|
process.stdout.write(await uninstallAgent(options.agent ?? "all", options.dryRun === undefined ? {} : { dryRun: options.dryRun }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/context.js
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { buildAllContextPacks, buildContextPack, contextDoctor, explainContextPacks } from "../core/context-pack.js";
|
|
3
|
+
import { buildRolePack, contextBudget, offloadContext, parseRolePack, pruneContext, renderSelection, restoreOffload, routeContext, selectContext } from "../core/context-intelligence.js";
|
|
3
4
|
const targets = ["claude", "codex", "gemini", "cursor", "antigravity", "generic", "all"];
|
|
4
5
|
export function registerContextCommand(program) {
|
|
5
6
|
const context = program.command("context").description("Build cache-friendly prompt/context packs.");
|
|
6
7
|
context
|
|
7
8
|
.command("pack")
|
|
8
|
-
.description("Generate
|
|
9
|
-
.
|
|
9
|
+
.description("Generate an agent target pack or role-specific context pack.")
|
|
10
|
+
.option("--target <target>", "claude, codex, gemini, cursor, antigravity, generic, or all")
|
|
11
|
+
.option("--role <role>", "planner, executor, reviewer, release-manager, or researcher")
|
|
10
12
|
.action(async (options) => {
|
|
13
|
+
if (options.role) {
|
|
14
|
+
const result = await buildRolePack(parseRolePack(options.role));
|
|
15
|
+
process.stdout.write(`Role context pack written: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (!options.target) {
|
|
19
|
+
throw new Error("Use context pack --target <target> or context pack --role <role>.");
|
|
20
|
+
}
|
|
11
21
|
const target = parseTarget(options.target);
|
|
12
22
|
if (target === "all") {
|
|
13
23
|
const results = await buildAllContextPacks();
|
|
@@ -18,6 +28,60 @@ export function registerContextCommand(program) {
|
|
|
18
28
|
process.stdout.write(`Context pack written: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
|
|
19
29
|
}
|
|
20
30
|
});
|
|
31
|
+
context
|
|
32
|
+
.command("select")
|
|
33
|
+
.description("Select task-relevant local files and memory with reasons.")
|
|
34
|
+
.requiredOption("--query <query>", "Task description")
|
|
35
|
+
.option("--limit <count>", "Maximum selected items", "10")
|
|
36
|
+
.action(async (options) => {
|
|
37
|
+
process.stdout.write(renderSelection(await selectContext(options.query, Number.parseInt(options.limit, 10) || 10)));
|
|
38
|
+
});
|
|
39
|
+
context
|
|
40
|
+
.command("prune")
|
|
41
|
+
.description("Select compact task context under a local token budget.")
|
|
42
|
+
.requiredOption("--query <query>", "Task description")
|
|
43
|
+
.option("--budget <tokens>", "Estimated token budget", "8000")
|
|
44
|
+
.action(async (options) => {
|
|
45
|
+
process.stdout.write(await pruneContext(options.query, Number.parseInt(options.budget, 10) || 8000));
|
|
46
|
+
});
|
|
47
|
+
context.command("offload").description("Offload a long file or raw_id into local context storage.").argument("<input>", "raw_id or local file").action(async (input) => {
|
|
48
|
+
const record = await offloadContext(input);
|
|
49
|
+
process.stdout.write([
|
|
50
|
+
"SotuRail context offload",
|
|
51
|
+
`offload_id: ${record.id}`,
|
|
52
|
+
`path: ${path.normalize(path.relative(process.cwd(), record.path))}`,
|
|
53
|
+
`estimated_tokens: ${record.estimatedTokens}`,
|
|
54
|
+
`summary: ${record.summary}`,
|
|
55
|
+
`recovery: soturail context restore ${record.id}`
|
|
56
|
+
].join("\n") + "\n");
|
|
57
|
+
});
|
|
58
|
+
context.command("restore").description("Restore an offloaded context artifact.").argument("<offload-id>", "Offload id").action(async (id) => {
|
|
59
|
+
process.stdout.write(await restoreOffload(id));
|
|
60
|
+
});
|
|
61
|
+
context
|
|
62
|
+
.command("budget")
|
|
63
|
+
.description("Estimate context cost drivers before agent handoff.")
|
|
64
|
+
.option("--target <target>", "agent target", "generic")
|
|
65
|
+
.option("--explain", "Include recommendations")
|
|
66
|
+
.action(async (options) => {
|
|
67
|
+
process.stdout.write(await contextBudget(options.target, options.explain === true));
|
|
68
|
+
});
|
|
69
|
+
context
|
|
70
|
+
.command("route")
|
|
71
|
+
.description("Route a task to a deterministic local context expert.")
|
|
72
|
+
.requiredOption("--query <query>", "Task description")
|
|
73
|
+
.option("--role <role>", "Optional role override for handoff display")
|
|
74
|
+
.action((options) => {
|
|
75
|
+
const result = routeContext(options.query);
|
|
76
|
+
process.stdout.write([
|
|
77
|
+
"SotuRail context route",
|
|
78
|
+
`query: ${options.query}`,
|
|
79
|
+
`expert: ${result.expert}`,
|
|
80
|
+
`role: ${options.role ?? result.role}`,
|
|
81
|
+
`reason: ${result.reason}`,
|
|
82
|
+
"next: soturail context select --query \"<task>\""
|
|
83
|
+
].join("\n") + "\n");
|
|
84
|
+
});
|
|
21
85
|
context.command("explain").description("Explain context pack cache ordering.").action(() => {
|
|
22
86
|
process.stdout.write(explainContextPacks());
|
|
23
87
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAsB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { auditDiagram, createDiagram, diagramFromWorkflow, initDiagramRail, validateDiagrams } from "../core/diagram-rail.js";
|
|
2
|
+
export function registerDiagramCommand(program) {
|
|
3
|
+
const diagram = program.command("diagram").description("Manage local Diagram Rail visual contracts.");
|
|
4
|
+
diagram.command("init").description("Create Diagram Rail folders and index files.").action(async () => {
|
|
5
|
+
process.stdout.write(await initDiagramRail());
|
|
6
|
+
});
|
|
7
|
+
diagram.command("new").description("Create a Mermaid diagram and .spec.md visual contract.").argument("<feature>", "Feature name").action(async (feature) => {
|
|
8
|
+
const result = await createDiagram(feature);
|
|
9
|
+
process.stdout.write(result.output);
|
|
10
|
+
});
|
|
11
|
+
diagram.command("audit").description("Audit one diagram file for Mermaid/spec hygiene.").argument("<file>", "Diagram file").action(async (file) => {
|
|
12
|
+
const result = await auditDiagram(file);
|
|
13
|
+
process.stdout.write(result.output);
|
|
14
|
+
});
|
|
15
|
+
diagram.command("validate").description("Validate all local docs/diagrams/*.md diagrams.").action(async () => {
|
|
16
|
+
const result = await validateDiagrams();
|
|
17
|
+
process.stdout.write(result.output);
|
|
18
|
+
});
|
|
19
|
+
diagram.command("from-workflow").description("Generate a workflow state diagram and visual contract.").argument("<id>", "Workflow id").action(async (id) => {
|
|
20
|
+
const result = await diagramFromWorkflow(id);
|
|
21
|
+
process.stdout.write(result.output);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=diagram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../src/commands/diagram.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE9H,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAEtG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,8CAA8C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,wDAAwD,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAClK,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,kDAAkD,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACxJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC3G,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,wDAAwD,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QACjK,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { listEvaluationCases, readEvaluationReport, runEvaluationSuite } from "../core/evaluation-suite.js";
|
|
3
|
+
export function registerEvalCommand(program) {
|
|
4
|
+
const evalCommand = program.command("eval").description("Run deterministic local SotuRail evaluation fixtures.");
|
|
5
|
+
evalCommand.command("list").description("List local evaluation cases.").action(() => {
|
|
6
|
+
process.stdout.write(listEvaluationCases());
|
|
7
|
+
});
|
|
8
|
+
evalCommand.command("run").description("Run the v0.6.1 local evaluation suite and write JSON/Markdown reports.").action(async () => {
|
|
9
|
+
const result = await runEvaluationSuite();
|
|
10
|
+
process.stdout.write([
|
|
11
|
+
"SotuRail eval run",
|
|
12
|
+
`suite: ${result.suite}`,
|
|
13
|
+
`cases_count: ${result.cases.length}`,
|
|
14
|
+
`passed: ${result.summary.passed}`,
|
|
15
|
+
`failed: ${result.summary.failed}`,
|
|
16
|
+
`warnings: ${result.summary.warnings}`,
|
|
17
|
+
`json: ${path.normalize(path.relative(process.cwd(), result.reports.json))}`,
|
|
18
|
+
`markdown: ${path.normalize(path.relative(process.cwd(), result.reports.markdown))}`
|
|
19
|
+
].join("\n") + "\n");
|
|
20
|
+
});
|
|
21
|
+
evalCommand.command("report").description("Print the latest local evaluation report.").action(async () => {
|
|
22
|
+
process.stdout.write(await readEvaluationReport());
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAE5G,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC;IAEjH,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,wEAAwE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,mBAAmB;YACnB,UAAU,MAAM,CAAC,KAAK,EAAE;YACxB,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACrC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,aAAa,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YACtC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;YAC5E,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;SACrF,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACvG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/format.js
CHANGED
|
@@ -4,6 +4,7 @@ import { ensureWorkspace, loadConfig } from "../core/config.js";
|
|
|
4
4
|
import { MetricsStore } from "../core/metrics-store.js";
|
|
5
5
|
import { isResponseMode } from "../core/response-policy.js";
|
|
6
6
|
import { reduceAgentResponse } from "../compressors/agent-response-reducer.js";
|
|
7
|
+
import { compareFormats, renderFormatCompare } from "../core/format-compare.js";
|
|
7
8
|
export async function formatFile(file, options = {}, root = process.cwd()) {
|
|
8
9
|
await ensureWorkspace(root);
|
|
9
10
|
const config = await loadConfig(root);
|
|
@@ -36,12 +37,21 @@ export async function formatFile(file, options = {}, root = process.cwd()) {
|
|
|
36
37
|
].join("\n");
|
|
37
38
|
}
|
|
38
39
|
export function registerFormatCommand(program) {
|
|
39
|
-
program
|
|
40
|
+
const format = program
|
|
40
41
|
.command("format")
|
|
41
42
|
.description("Compress verbose AI or documentation output into task-oriented modes.")
|
|
42
|
-
.argument("
|
|
43
|
-
.option("--mode <mode>", "normal, concise, ultra, review, commit, debug, or docs", "normal")
|
|
44
|
-
|
|
43
|
+
.argument("[input-file]", "Input text file")
|
|
44
|
+
.option("--mode <mode>", "normal, concise, ultra, review, commit, debug, or docs", "normal");
|
|
45
|
+
format
|
|
46
|
+
.command("compare")
|
|
47
|
+
.description("Compare local format size/safety hints for a file.")
|
|
48
|
+
.argument("<input-file>", "Input file")
|
|
49
|
+
.action(async (file) => {
|
|
50
|
+
process.stdout.write(renderFormatCompare(await compareFormats(file)));
|
|
51
|
+
});
|
|
52
|
+
format.action(async (file, options) => {
|
|
53
|
+
if (!file)
|
|
54
|
+
throw new Error("Missing input file. Example: soturail format README.md --mode concise");
|
|
45
55
|
process.stdout.write(await formatFile(file, options));
|
|
46
56
|
});
|
|
47
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/commands/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/commands/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { createFsSnapshot, fsDiff, planEdit, renderSnapshot, touchedFiles } from "../core/fs-evidence.js";
|
|
3
|
+
export function registerFsCommand(program) {
|
|
4
|
+
const fsCommand = program.command("fs").description("Record filesystem evidence for local workflows.");
|
|
5
|
+
fsCommand.command("snapshot").description("Store a lightweight file manifest.").action(async () => {
|
|
6
|
+
process.stdout.write(renderSnapshot(process.cwd(), await createFsSnapshot()));
|
|
7
|
+
});
|
|
8
|
+
fsCommand.command("touched").description("List files changed since the latest snapshot.").action(async () => {
|
|
9
|
+
process.stdout.write(await touchedFiles());
|
|
10
|
+
});
|
|
11
|
+
fsCommand.command("diff").description("Summarize git diff evidence when available.").action(async () => {
|
|
12
|
+
process.stdout.write(await fsDiff());
|
|
13
|
+
});
|
|
14
|
+
fsCommand.command("plan-edit").description("Write an intended-edit note without changing files.").argument("<description>", "Edit intent").action(async (description) => {
|
|
15
|
+
const result = await planEdit(description);
|
|
16
|
+
process.stdout.write(`Planned edit recorded: ${result.id}\npath: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/commands/fs.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1G,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAEvG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAChG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC1G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACrG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;QAC9K,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACpI,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { checkHarnessContract, explainHarnessFailure, harnessDoctor, initHarnessContract, listHarnessFailures, noteHarnessFailure, renderHarnessFailures } from "../core/harness-rail.js";
|
|
3
|
+
export function registerHarnessCommand(program) {
|
|
4
|
+
const harness = program.command("harness").description("Record local harness failures and acceptance contracts.");
|
|
5
|
+
harness
|
|
6
|
+
.command("note")
|
|
7
|
+
.description("Record an agent mistake, repeated failure, or missed check.")
|
|
8
|
+
.argument("<text>", "Failure note")
|
|
9
|
+
.option("--workflow <id>", "Workflow id")
|
|
10
|
+
.option("--cause <text>", "Suspected root cause")
|
|
11
|
+
.option("--prevention <candidate>", "rule, doc, hook, memory, workflow check, or diagram/spec update")
|
|
12
|
+
.option("--evidence <path-or-raw-id>", "Evidence path or raw id")
|
|
13
|
+
.action(async (text, options) => {
|
|
14
|
+
const record = await noteHarnessFailure(text, options);
|
|
15
|
+
process.stdout.write(`Harness failure recorded: ${record.id}\nprevention_candidate: ${record.preventionCandidate}\n`);
|
|
16
|
+
});
|
|
17
|
+
harness.command("list").description("List recorded harness failures.").action(async () => {
|
|
18
|
+
process.stdout.write(renderHarnessFailures(await listHarnessFailures()));
|
|
19
|
+
});
|
|
20
|
+
harness.command("explain").description("Explain a harness failure record.").argument("<id>", "Failure id").action(async (id) => {
|
|
21
|
+
process.stdout.write(await explainHarnessFailure(id));
|
|
22
|
+
});
|
|
23
|
+
harness.command("doctor").description("Check local harness readiness.").action(async () => {
|
|
24
|
+
process.stdout.write(await harnessDoctor());
|
|
25
|
+
});
|
|
26
|
+
const contract = harness.command("contract").description("Manage local acceptance harness contracts.");
|
|
27
|
+
contract.command("init").description("Create the default local harness contract.").action(async () => {
|
|
28
|
+
const result = await initHarnessContract();
|
|
29
|
+
process.stdout.write(`${result.created ? "Harness contract created" : "Harness contract already exists"}: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
|
|
30
|
+
});
|
|
31
|
+
contract.command("check").description("Validate the local harness contract without running commands.").action(async () => {
|
|
32
|
+
process.stdout.write(await checkHarnessContract());
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,yDAAyD,CAAC,CAAC;IAElH,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6DAA6D,CAAC;SAC1E,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;SAClC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;SACxC,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,0BAA0B,EAAE,iEAAiE,CAAC;SACrG,MAAM,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAsF,EAAE,EAAE;QACrH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,EAAE,2BAA2B,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACvF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QACrI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;IACvG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACnG,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,iCAAiC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7K,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,+DAA+D,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACvH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -2,6 +2,7 @@ import { promises as fs } from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { ensureWorkspace, getWorkspacePaths, relativeToRoot } from "../core/config.js";
|
|
4
4
|
import { mcpConfig } from "../core/agent-exporter.js";
|
|
5
|
+
import { mcpExposureReport, renderMcpExposure } from "../core/mcp-exposure.js";
|
|
5
6
|
import { mcpDoctor, mcpManifest, mcpSmoke, serveMcpStdio } from "../core/mcp-server.js";
|
|
6
7
|
import { SOTURAIL_VERSION } from "../core/version.js";
|
|
7
8
|
export function registerMcpCommand(program) {
|
|
@@ -12,6 +13,10 @@ export function registerMcpCommand(program) {
|
|
|
12
13
|
mcp.command("manifest").description("Print MCP resources and tools manifest.").action(async () => {
|
|
13
14
|
process.stdout.write(`${JSON.stringify(await mcpManifest(SOTURAIL_VERSION), null, 2)}\n`);
|
|
14
15
|
});
|
|
16
|
+
mcp.command("exposure").description("Report MCP tools/resources/prompts and risk notes.").option("--json", "Print machine-readable JSON").action(async (options) => {
|
|
17
|
+
const report = await mcpExposureReport();
|
|
18
|
+
process.stdout.write(options.json ? `${JSON.stringify(report, null, 2)}\n` : renderMcpExposure(report));
|
|
19
|
+
});
|
|
15
20
|
mcp
|
|
16
21
|
.command("config")
|
|
17
22
|
.description("Export a safe MCP host configuration snippet.")
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/memory.js
CHANGED
|
@@ -2,6 +2,7 @@ import { promises as fs } from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { appendJsonl, ensureWorkspace, getWorkspacePaths, readJsonl } from "../core/config.js";
|
|
4
4
|
import { getCurrentGitCommit, hashFile } from "../core/git.js";
|
|
5
|
+
import { captureMemoryFromFile, consolidateMemory, memoryRailDoctor, recallMemory, rememberMemory, renderRecall } from "../core/memory-rail.js";
|
|
5
6
|
export async function addMemory(content, options = {}, root = process.cwd()) {
|
|
6
7
|
await ensureWorkspace(root);
|
|
7
8
|
const paths = getWorkspacePaths(root);
|
|
@@ -147,6 +148,41 @@ export async function searchMemory(term, root = process.cwd()) {
|
|
|
147
148
|
}
|
|
148
149
|
export function registerMemoryCommand(program) {
|
|
149
150
|
const memory = program.command("memory").description("Manage local Git-linked memory records.");
|
|
151
|
+
memory
|
|
152
|
+
.command("remember")
|
|
153
|
+
.description("Remember an approved local fact or decision.")
|
|
154
|
+
.argument("<text>", "Decision or fact")
|
|
155
|
+
.option("--tag <tag>", "Repeatable memory tag", collectValues, [])
|
|
156
|
+
.option("--source <source>", "manual, agent, import, or local note", "manual")
|
|
157
|
+
.action(async (text, options) => {
|
|
158
|
+
const record = await rememberMemory(text, { tags: options.tag, source: options.source });
|
|
159
|
+
process.stdout.write(`Memory remembered: ${record.id}\nsource: ${record.source}\ntags: ${record.tags.join(", ") || "none"}\nprivacy: ${record.privacy}\n`);
|
|
160
|
+
});
|
|
161
|
+
memory
|
|
162
|
+
.command("recall")
|
|
163
|
+
.description("Recall local memory using deterministic keyword scoring.")
|
|
164
|
+
.argument("<query>", "Recall query")
|
|
165
|
+
.option("--limit <count>", "Maximum matches", "5")
|
|
166
|
+
.action(async (query, options) => {
|
|
167
|
+
process.stdout.write(renderRecall(await recallMemory(query, Number.parseInt(options.limit, 10) || 5)));
|
|
168
|
+
});
|
|
169
|
+
memory
|
|
170
|
+
.command("capture")
|
|
171
|
+
.description("Capture a small local text/markdown file into memory without inventing facts.")
|
|
172
|
+
.requiredOption("--from-file <file>", "Local file to summarize into memory")
|
|
173
|
+
.option("--tag <tag>", "Repeatable memory tag", collectValues, [])
|
|
174
|
+
.option("--source <source>", "memory source label", "import")
|
|
175
|
+
.action(async (options) => {
|
|
176
|
+
const record = await captureMemoryFromFile(options.fromFile, { tags: options.tag, source: options.source });
|
|
177
|
+
process.stdout.write(`Memory captured: ${record.id}\nfile: ${record.filePath ?? options.fromFile}\nprivacy: ${record.privacy}\n`);
|
|
178
|
+
});
|
|
179
|
+
memory.command("consolidate").description("Deduplicate local memory records into consolidated.jsonl.").action(async () => {
|
|
180
|
+
const result = await consolidateMemory();
|
|
181
|
+
process.stdout.write(`Memory consolidated\nbefore: ${result.before}\nafter: ${result.after}\nduplicates_removed: ${result.duplicatesRemoved}\npath: ${path.normalize(path.relative(process.cwd(), result.path))}\n`);
|
|
182
|
+
});
|
|
183
|
+
memory.command("doctor").description("Check local Memory Rail storage and export safety.").action(async () => {
|
|
184
|
+
process.stdout.write(await memoryRailDoctor());
|
|
185
|
+
});
|
|
150
186
|
memory
|
|
151
187
|
.command("add")
|
|
152
188
|
.description("Append a local memory JSONL record.")
|
|
@@ -182,4 +218,8 @@ export function registerMemoryCommand(program) {
|
|
|
182
218
|
process.stdout.write(await pruneStaleMemory());
|
|
183
219
|
});
|
|
184
220
|
}
|
|
221
|
+
function collectValues(value, previous) {
|
|
222
|
+
previous.push(value);
|
|
223
|
+
return previous;
|
|
224
|
+
}
|
|
185
225
|
//# sourceMappingURL=memory.js.map
|