soturail 1.4.0 → 1.6.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 +1 -1
- package/README.md +38 -76
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts +4 -0
- package/dist/commands/agents.js +9 -0
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/candidates.d.ts +2 -0
- package/dist/commands/candidates.js +22 -0
- package/dist/commands/candidates.js.map +1 -0
- package/dist/commands/capabilities.d.ts +2 -0
- package/dist/commands/capabilities.js +40 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/context.js +5 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/contract.d.ts +2 -0
- package/dist/commands/contract.js +111 -0
- package/dist/commands/contract.js.map +1 -0
- package/dist/commands/doctor.js +4 -12
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/governance.d.ts +2 -0
- package/dist/commands/governance.js +31 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/hooks.js +4 -3
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/mcp.js +2 -2
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/memory.js +19 -10
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/raw.d.ts +2 -0
- package/dist/commands/raw.js +27 -0
- package/dist/commands/raw.js.map +1 -0
- package/dist/commands/read.js +2 -2
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/report.js +5 -13
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/run.js +12 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills.js +52 -4
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/spec.js +2 -6
- package/dist/commands/spec.js.map +1 -1
- package/dist/compressors/json-toon.d.ts +0 -1
- package/dist/compressors/json-toon.js +0 -3
- package/dist/compressors/json-toon.js.map +1 -1
- package/dist/core/agent-docs-hygiene.js +2 -5
- package/dist/core/agent-docs-hygiene.js.map +1 -1
- package/dist/core/agent-exporter.js +13 -35
- package/dist/core/agent-exporter.js.map +1 -1
- package/dist/core/agent-qa.js +3 -5
- package/dist/core/agent-qa.js.map +1 -1
- package/dist/core/agent-runtime.js +15 -63
- package/dist/core/agent-runtime.js.map +1 -1
- package/dist/core/approved-memory.d.ts +29 -0
- package/dist/core/approved-memory.js +82 -0
- package/dist/core/approved-memory.js.map +1 -0
- package/dist/core/artifact-envelope.d.ts +63 -0
- package/dist/core/artifact-envelope.js +46 -0
- package/dist/core/artifact-envelope.js.map +1 -0
- package/dist/core/artifact-registry.d.ts +10 -0
- package/dist/core/artifact-registry.js +35 -0
- package/dist/core/artifact-registry.js.map +1 -0
- package/dist/core/artifact-store.d.ts +14 -0
- package/dist/core/artifact-store.js +169 -0
- package/dist/core/artifact-store.js.map +1 -0
- package/dist/core/cache-normalizer.js +2 -7
- package/dist/core/cache-normalizer.js.map +1 -1
- package/dist/core/candidate-store.d.ts +30 -0
- package/dist/core/candidate-store.js +106 -0
- package/dist/core/candidate-store.js.map +1 -0
- package/dist/core/capability-descriptor.d.ts +194 -0
- package/dist/core/capability-descriptor.js +347 -0
- package/dist/core/capability-descriptor.js.map +1 -0
- package/dist/core/capability-registry.d.ts +50 -0
- package/dist/core/capability-registry.js +72 -0
- package/dist/core/capability-registry.js.map +1 -0
- package/dist/core/change-contract.d.ts +100 -0
- package/dist/core/change-contract.js +138 -0
- package/dist/core/change-contract.js.map +1 -0
- package/dist/core/code-health.js +53 -0
- package/dist/core/code-health.js.map +1 -1
- package/dist/core/config.d.ts +33 -78
- package/dist/core/config.js +34 -22
- package/dist/core/config.js.map +1 -1
- package/dist/core/context-artifact.d.ts +37 -0
- package/dist/core/context-artifact.js +56 -0
- package/dist/core/context-artifact.js.map +1 -0
- package/dist/core/context-intelligence.d.ts +17 -1
- package/dist/core/context-intelligence.js +20 -3
- package/dist/core/context-intelligence.js.map +1 -1
- package/dist/core/context-pack.d.ts +4 -0
- package/dist/core/context-pack.js +28 -15
- package/dist/core/context-pack.js.map +1 -1
- package/dist/core/contract-lifecycle.d.ts +101 -0
- package/dist/core/contract-lifecycle.js +262 -0
- package/dist/core/contract-lifecycle.js.map +1 -0
- package/dist/core/diagram-rail.js +6 -8
- package/dist/core/diagram-rail.js.map +1 -1
- package/dist/core/evidence-pack.js +21 -24
- package/dist/core/evidence-pack.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +12 -1
- package/dist/core/evidence-provenance.js +63 -16
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/execution-envelope.d.ts +60 -0
- package/dist/core/execution-envelope.js +52 -0
- package/dist/core/execution-envelope.js.map +1 -0
- package/dist/core/file-scanner.js +4 -4
- package/dist/core/file-scanner.js.map +1 -1
- package/dist/core/governance.d.ts +50 -0
- package/dist/core/governance.js +69 -0
- package/dist/core/governance.js.map +1 -0
- package/dist/core/harness-lifecycle.js +2 -11
- package/dist/core/harness-lifecycle.js.map +1 -1
- package/dist/core/harness-rail.js +5 -14
- package/dist/core/harness-rail.js.map +1 -1
- package/dist/core/host-adapters.d.ts +64 -0
- package/dist/core/host-adapters.js +135 -0
- package/dist/core/host-adapters.js.map +1 -0
- package/dist/core/knowledge-rail.d.ts +1 -0
- package/dist/core/knowledge-rail.js +46 -30
- package/dist/core/knowledge-rail.js.map +1 -1
- package/dist/core/mcp-resources.js +5 -10
- package/dist/core/mcp-resources.js.map +1 -1
- package/dist/core/mcp-server.d.ts +11 -2
- package/dist/core/mcp-server.js +56 -35
- package/dist/core/mcp-server.js.map +1 -1
- package/dist/core/mcp-tools.d.ts +9 -0
- package/dist/core/mcp-tools.js +98 -39
- package/dist/core/mcp-tools.js.map +1 -1
- package/dist/core/memory-rail.js +2 -11
- package/dist/core/memory-rail.js.map +1 -1
- package/dist/core/native-candidates.js +3 -5
- package/dist/core/native-candidates.js.map +1 -1
- package/dist/core/policy-rail.js +2 -12
- package/dist/core/policy-rail.js.map +1 -1
- package/dist/core/project-brain.d.ts +0 -1
- package/dist/core/project-brain.js +24 -37
- package/dist/core/project-brain.js.map +1 -1
- package/dist/core/rail-utils.d.ts +20 -1
- package/dist/core/rail-utils.js +27 -9
- package/dist/core/rail-utils.js.map +1 -1
- package/dist/core/raw-lifecycle.d.ts +21 -0
- package/dist/core/raw-lifecycle.js +94 -0
- package/dist/core/raw-lifecycle.js.map +1 -0
- package/dist/core/raw-store.d.ts +6 -0
- package/dist/core/raw-store.js +4 -1
- package/dist/core/raw-store.js.map +1 -1
- package/dist/core/release-preflight.js +1 -1
- package/dist/core/release-preflight.js.map +1 -1
- package/dist/core/report-rail.d.ts +2 -1
- package/dist/core/report-rail.js +4 -27
- package/dist/core/report-rail.js.map +1 -1
- package/dist/core/reverse-specification.js +3 -6
- package/dist/core/reverse-specification.js.map +1 -1
- package/dist/core/rule-extractor.js +2 -2
- package/dist/core/rule-extractor.js.map +1 -1
- package/dist/core/run-manifest.d.ts +80 -0
- package/dist/core/run-manifest.js +43 -0
- package/dist/core/run-manifest.js.map +1 -0
- package/dist/core/run-workspace.js +10 -15
- package/dist/core/run-workspace.js.map +1 -1
- package/dist/core/semantic-candidate.d.ts +416 -0
- package/dist/core/semantic-candidate.js +124 -0
- package/dist/core/semantic-candidate.js.map +1 -0
- package/dist/core/skill-exporter.d.ts +50 -0
- package/dist/core/skill-exporter.js +130 -0
- package/dist/core/skill-exporter.js.map +1 -1
- package/dist/core/skill-model.d.ts +88 -0
- package/dist/core/skill-model.js +239 -0
- package/dist/core/skill-model.js.map +1 -0
- package/dist/core/skill-rail-v2.js +5 -10
- package/dist/core/skill-rail-v2.js.map +1 -1
- package/dist/core/skill-routing.d.ts +8 -0
- package/dist/core/skill-routing.js +29 -25
- package/dist/core/skill-routing.js.map +1 -1
- package/dist/core/skill-schema.d.ts +23 -33
- package/dist/core/skill-schema.js +2 -6
- package/dist/core/skill-schema.js.map +1 -1
- package/dist/core/skill-validator.d.ts +6 -0
- package/dist/core/skill-validator.js +21 -14
- package/dist/core/skill-validator.js.map +1 -1
- package/dist/core/tasklet-rail.js +3 -5
- package/dist/core/tasklet-rail.js.map +1 -1
- package/dist/core/trust-decision.d.ts +9 -0
- package/dist/core/trust-decision.js +30 -0
- package/dist/core/trust-decision.js.map +1 -0
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/core/workflow-store.js +11 -13
- package/dist/core/workflow-store.js.map +1 -1
- package/dist/core/workspace-fingerprint.d.ts +20 -0
- package/dist/core/workspace-fingerprint.js +91 -0
- package/dist/core/workspace-fingerprint.js.map +1 -0
- package/dist/core/workspace-guard.d.ts +37 -0
- package/dist/core/workspace-guard.js +156 -0
- package/dist/core/workspace-guard.js.map +1 -0
- package/docs/README.md +24 -0
- package/docs/architecture/agent-native-semantic-architecture.md +403 -0
- package/docs/architecture/architecture.md +46 -35
- package/docs/architecture/artifact-model-and-lineage.md +30 -0
- package/docs/architecture/context-architecture.md +31 -0
- package/docs/architecture/contracts-and-verification.md +65 -0
- package/docs/architecture/governance-model.md +27 -0
- package/docs/architecture/provider-architecture.md +63 -0
- package/docs/architecture/verified-control-plane.md +108 -0
- package/docs/audits/v1.5.0-preimplementation-audit.md +64 -0
- package/docs/audits/v1.6.0-legacy-removal-report.md +75 -0
- package/docs/audits/v1.6.0-refactor-map.md +119 -0
- package/docs/audits/v1.6.0-semantic-migration-baseline.md +185 -0
- package/docs/ecosystem/2026-external-research-master-index.md +221 -0
- package/docs/ecosystem/external-projects-audit.md +2 -0
- package/docs/getting-started/migration-v1.5.md +40 -0
- package/docs/getting-started/migration-v1.6.md +77 -0
- package/docs/rails/evaluation/benchmarking.md +28 -329
- package/docs/rails/governance/governance-cost-rail.md +4 -4
- package/docs/rails/hosts/host-compatibility-rail.md +24 -0
- package/docs/rails/hosts/mcp.md +13 -9
- package/docs/rails/skills/skill-rail-2.md +46 -8
- package/docs/rails/skills/skill-rail.md +162 -49
- package/docs/reference/commands/v1.5-commands.md +46 -0
- package/docs/reference/commands/v1.6-commands.md +74 -0
- package/docs/reference/schemas/schema-contracts.md +17 -0
- package/docs/releases/README.md +2 -0
- package/docs/releases/RELEASE_NOTES_v1.0.1.md +1 -1
- package/docs/releases/RELEASE_NOTES_v1.5.0.md +72 -0
- package/docs/releases/RELEASE_NOTES_v1.6.0.md +55 -0
- package/docs/roadmap/future-rails-index.md +17 -11
- package/docs/roadmap/v1.6.0-agent-native-semantic-control-plane-master-prompt.md +1682 -0
- package/docs/roadmap/verified-control-plane-implementation-tracker.md +123 -0
- package/docs/security/security-model.md +21 -89
- package/docs/security/threat-model.md +47 -0
- package/package.json +10 -5
- package/skills/soturail-change/SKILL.md +32 -0
- package/skills/soturail-core/SKILL.md +44 -0
- package/skills/soturail-core/references/candidate-artifacts.md +37 -0
- package/skills/soturail-core/references/trust-states.md +21 -0
- package/skills/soturail-debug/SKILL.md +30 -0
- package/skills/soturail-knowledge/SKILL.md +29 -0
- package/skills/soturail-release/SKILL.md +31 -0
- package/skills/soturail-research/SKILL.md +31 -0
- package/skills/soturail-review/SKILL.md +31 -0
- package/skills/soturail-security/SKILL.md +31 -0
package/LICENSE
CHANGED
|
@@ -14,4 +14,4 @@ Unless required by applicable law or agreed to in writing, software
|
|
|
14
14
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
15
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
|
-
limitations under the License.
|
|
17
|
+
limitations under the License.
|
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
[](https://github.com/Soturine/soturail/actions/workflows/ci.yml)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
SotuRail is a local-first
|
|
7
|
+
SotuRail is a local-first engineering control plane for AI-assisted software work. It supplies workspace-bound context, contracts, readiness decisions, evidence, provenance, and reproducible release artifacts without becoming an autonomous agent or mandatory server.
|
|
8
|
+
|
|
9
|
+
> SotuRail governs engineering readiness and verified context; it does not replace the coding model/runtime.
|
|
8
10
|
|
|
9
11
|
## Install
|
|
10
12
|
|
|
@@ -14,114 +16,74 @@ soturail --version
|
|
|
14
16
|
npx soturail --help
|
|
15
17
|
```
|
|
16
18
|
|
|
17
|
-
SotuRail requires Node.js
|
|
19
|
+
SotuRail v1.6 requires Node.js 22 or newer. TypeScript is the portable default; Rust acceleration remains optional.
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## Five-minute workflow
|
|
20
22
|
|
|
21
23
|
```bash
|
|
22
|
-
soturail
|
|
23
|
-
soturail
|
|
24
|
+
soturail index
|
|
25
|
+
soturail read README.md --query "product boundary"
|
|
26
|
+
soturail contract create docs-refresh --title "Refresh docs" --intent "Keep contracts current" --criterion "docs check passes" --check "npm run docs:check"
|
|
24
27
|
soturail evidence collect
|
|
25
|
-
soturail report build
|
|
26
|
-
soturail dashboard build
|
|
27
28
|
soturail self readiness --v1 --strict
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
## Stable Rails
|
|
31
|
+
Generated state stays local under `.soturail/`. Use `soturail run -- <command...>` for recoverable logs and `soturail expand <raw_id>` for redacted recovery.
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
| --- | --- |
|
|
36
|
-
| Context and Project Brain | Progressive repo reading, memory, verified claims and agent briefs |
|
|
37
|
-
| Knowledge and Evidence | Source-backed knowledge packs, provenance and honest verification status |
|
|
38
|
-
| Workflow and Harness | Local workflow evidence, lifecycle state, handoffs and safe task coordination |
|
|
39
|
-
| Evaluation and Skills | Deterministic datasets, golden checks and source-mapped Skill Rail 2.0 packs |
|
|
40
|
-
| Reports and Dashboard | Local status, static dashboard, observability and redacted agent reports |
|
|
41
|
-
| Release and Contracts | Schema checks, readiness gates, baselines and release evidence |
|
|
33
|
+
## For AI agents
|
|
42
34
|
|
|
43
|
-
|
|
35
|
+
SotuRail ships portable [Agent Skills](skills/) and self-describing capabilities, so a coding agent does not need to memorize CLI commands:
|
|
44
36
|
|
|
45
37
|
```bash
|
|
46
|
-
soturail
|
|
47
|
-
soturail knowledge compile project-guide README.md docs
|
|
48
|
-
soturail knowledge verify project-guide
|
|
49
|
-
soturail evidence collect
|
|
50
|
-
soturail evidence verify
|
|
51
|
-
soturail eval dataset init
|
|
52
|
-
soturail eval golden
|
|
53
|
-
soturail eval regression
|
|
54
|
-
soturail skills build project-guide README.md docs
|
|
55
|
-
soturail skills lint
|
|
56
|
-
soturail tasklet create review-docs
|
|
57
|
-
soturail tasklet run review-docs --dry-run
|
|
58
|
-
soturail report build
|
|
59
|
-
soturail release check --strict
|
|
38
|
+
soturail skills export --target claude --layout portable --install # or codex, cursor, gemini, generic
|
|
60
39
|
```
|
|
61
40
|
|
|
62
|
-
See
|
|
41
|
+
Agents load `soturail-core`, discover capabilities through MCP `soturail.capabilities` / `soturail.skills.list`, record findings as candidates, and finish only with recorded evidence. The agent understands; SotuRail organizes, constrains and proves. See [Skills](docs/rails/skills/skill-rail.md) and [Agent-Native Semantic Architecture](docs/architecture/agent-native-semantic-architecture.md).
|
|
63
42
|
|
|
64
|
-
##
|
|
43
|
+
## Core architecture
|
|
65
44
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
45
|
+
| Layer | Responsibility |
|
|
46
|
+
|---|---|
|
|
47
|
+
| Integrity | WorkspaceGuard, Artifact Registry/Store/Envelope, fingerprints, atomic recovery |
|
|
48
|
+
| Context | progressive reads, source-backed knowledge, hard-budget context artifacts |
|
|
49
|
+
| Contracts | Change Contract, evidence policy, readiness and fidelity inputs |
|
|
50
|
+
| Governance | capability registry/epochs, NativeMinimal provider, Authority + Readiness Dual Gate |
|
|
51
|
+
| Execution evidence | exact-digest Execution Envelope, Run Manifest, freshness and provenance |
|
|
52
|
+
| Adapters | typed MCP and replaceable governance/structural/docs/runtime provider boundaries |
|
|
72
53
|
|
|
73
|
-
|
|
54
|
+
The official MCP SDK serves a typed, small, capability-mapped surface. It exposes neither arbitrary shell execution nor caller-controlled raw-log authorization.
|
|
74
55
|
|
|
75
|
-
##
|
|
56
|
+
## Maturity and safety
|
|
76
57
|
|
|
77
|
-
|
|
58
|
+
The v1.5 deterministic foundation and the v1.6 agent-native surface (portable Skills, capability discovery, candidate artifacts, evidence-backed contract readiness) are implemented and tested. AGT/ACS integration, general schema migrations, structural graph providers, Evidence Receipts, SQLite/FTS, vectors, and Conductor remain explicitly deferred.
|
|
78
59
|
|
|
79
|
-
|
|
80
|
-
soturail agents matrix
|
|
81
|
-
soturail agents export --host codex
|
|
82
|
-
soturail report agent --agent codex
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Compatibility is described conservatively in [Agent Hosts](docs/rails/hosts/agent-hosts.md).
|
|
60
|
+
SotuRail is a guardrail—not a sandbox. It cannot replace OS permissions, credential controls, provider security, physical/runtime QA, or human approval. Evidence distinguishes verified, unverified, blocked, inferred, and stale states.
|
|
86
61
|
|
|
87
62
|
## Documentation
|
|
88
63
|
|
|
89
64
|
- [Quickstart](docs/getting-started/quickstart.md)
|
|
90
|
-
- [
|
|
91
|
-
- [
|
|
92
|
-
- [
|
|
93
|
-
- [
|
|
94
|
-
- [
|
|
95
|
-
- [Agent QA Rail](docs/rails/evaluation/agent-qa-rail.md)
|
|
96
|
-
- [Skill Rail 2.0](docs/rails/skills/skill-rail-2.md)
|
|
97
|
-
- [Tasklet Rail](docs/rails/tasklets/tasklet-rail.md)
|
|
65
|
+
- [v1.5 commands](docs/reference/commands/v1.5-commands.md) · [v1.6 commands](docs/reference/commands/v1.6-commands.md)
|
|
66
|
+
- [Verified control plane](docs/architecture/verified-control-plane.md)
|
|
67
|
+
- [Threat model](docs/security/threat-model.md)
|
|
68
|
+
- [Migration to v1.5](docs/getting-started/migration-v1.5.md) · [Migration to v1.6](docs/getting-started/migration-v1.6.md)
|
|
69
|
+
- [Implementation tracker](docs/roadmap/verified-control-plane-implementation-tracker.md)
|
|
98
70
|
- [Roadmap](ROADMAP.md)
|
|
99
71
|
|
|
100
|
-
##
|
|
101
|
-
|
|
102
|
-
v1.4.0 combines Knowledge, Evidence, Evaluation, Skills and Tasklets into one coherent local pipeline. The former v1.3.0 scope is absorbed into v1.4.0 so source-backed knowledge and provenance ship with their evaluation and reusable-work contracts.
|
|
103
|
-
|
|
104
|
-
Next directions:
|
|
105
|
-
|
|
106
|
-
- v1.5.0: Governance and Cost Rail
|
|
107
|
-
- v1.6.0: Optional Conductor experiments behind explicit approval gates
|
|
108
|
-
|
|
109
|
-
See [Future Rails](docs/roadmap/future-rails-index.md).
|
|
110
|
-
|
|
111
|
-
## Development
|
|
72
|
+
## Development and release gates
|
|
112
73
|
|
|
113
74
|
```bash
|
|
114
|
-
npm
|
|
115
|
-
npm run typecheck
|
|
75
|
+
npm ci
|
|
116
76
|
npm run build
|
|
77
|
+
npm run typecheck
|
|
117
78
|
npm test
|
|
118
79
|
npm run docs:check
|
|
119
|
-
npm audit
|
|
80
|
+
npm audit
|
|
81
|
+
node dist/cli.js mcp smoke
|
|
82
|
+
node dist/cli.js self architecture --check
|
|
83
|
+
cargo test --manifest-path native/soturail-native/Cargo.toml
|
|
120
84
|
npm run release:check
|
|
121
85
|
```
|
|
122
86
|
|
|
123
|
-
Tests are local and deterministic. No network is required for normal commands or test suites.
|
|
124
|
-
|
|
125
87
|
## License
|
|
126
88
|
|
|
127
89
|
Apache-2.0. See [LICENSE](LICENSE).
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,9 @@ import { Command } from "commander";
|
|
|
6
6
|
import { registerBenchCommand } from "./commands/bench.js";
|
|
7
7
|
import { registerBrainCommand } from "./commands/brain.js";
|
|
8
8
|
import { registerAgentsCommand } from "./commands/agents.js";
|
|
9
|
+
import { registerCapabilitiesCommand } from "./commands/capabilities.js";
|
|
10
|
+
import { registerCandidatesCommand } from "./commands/candidates.js";
|
|
11
|
+
import { registerContractCommand } from "./commands/contract.js";
|
|
9
12
|
import { registerDedupeCommand } from "./commands/dedupe.js";
|
|
10
13
|
import { registerDiagramCommand } from "./commands/diagram.js";
|
|
11
14
|
import { registerDoctorCommand } from "./commands/doctor.js";
|
|
@@ -18,6 +21,7 @@ import { registerFeatureCommand } from "./commands/feature.js";
|
|
|
18
21
|
import { registerHarnessCommand } from "./commands/harness.js";
|
|
19
22
|
import { registerHandoffCommand } from "./commands/handoff.js";
|
|
20
23
|
import { registerHooksCommand } from "./commands/hooks.js";
|
|
24
|
+
import { registerGovernanceCommand } from "./commands/governance.js";
|
|
21
25
|
import { registerIngestCommand } from "./commands/ingest.js";
|
|
22
26
|
import { registerIndexCommand } from "./commands/index.js";
|
|
23
27
|
import { registerKnowledgeCommand } from "./commands/knowledge.js";
|
|
@@ -30,6 +34,7 @@ import { registerContextCommand } from "./commands/context.js";
|
|
|
30
34
|
import { registerDashboardCommand } from "./commands/dashboard.js";
|
|
31
35
|
import { registerReadCommand } from "./commands/read.js";
|
|
32
36
|
import { registerPolicyCommand } from "./commands/policy.js";
|
|
37
|
+
import { registerRawCommand } from "./commands/raw.js";
|
|
33
38
|
import { registerRunCommand } from "./commands/run.js";
|
|
34
39
|
import { registerReportCommand } from "./commands/report.js";
|
|
35
40
|
import { registerReverseCommand } from "./commands/reverse.js";
|
|
@@ -56,6 +61,9 @@ export function buildProgram() {
|
|
|
56
61
|
registerInitCommand(program);
|
|
57
62
|
registerAgentsCommand(program);
|
|
58
63
|
registerBrainCommand(program);
|
|
64
|
+
registerCapabilitiesCommand(program);
|
|
65
|
+
registerCandidatesCommand(program);
|
|
66
|
+
registerContractCommand(program);
|
|
59
67
|
registerIndexCommand(program);
|
|
60
68
|
registerReadCommand(program);
|
|
61
69
|
registerRunCommand(program);
|
|
@@ -73,6 +81,7 @@ export function buildProgram() {
|
|
|
73
81
|
registerHarnessCommand(program);
|
|
74
82
|
registerHandoffCommand(program);
|
|
75
83
|
registerHooksCommand(program);
|
|
84
|
+
registerGovernanceCommand(program);
|
|
76
85
|
registerIngestCommand(program);
|
|
77
86
|
registerKnowledgeCommand(program);
|
|
78
87
|
registerSpecCommand(program);
|
|
@@ -81,6 +90,7 @@ export function buildProgram() {
|
|
|
81
90
|
registerNativeCommand(program);
|
|
82
91
|
registerObsCommand(program);
|
|
83
92
|
registerPolicyCommand(program);
|
|
93
|
+
registerRawCommand(program);
|
|
84
94
|
registerReportCommand(program);
|
|
85
95
|
registerRulesCommand(program);
|
|
86
96
|
registerReverseCommand(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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"}
|
package/dist/commands/agents.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hostDeprecationNotice } from "../core/host-adapters.js";
|
|
1
2
|
import { explainAgents, lintAgentDocs, splitContextPlan } from "../core/agent-docs-hygiene.js";
|
|
2
3
|
import { agentDoctor, agentHostDoctor, agentHostDoctorAll, exportAgents, installAgent, renderAgentHostDoctor, renderAgentHostDoctorSummary, uninstallAgent } from "../core/agent-exporter.js";
|
|
3
4
|
import { formatAgentList } from "../core/agent-registry.js";
|
|
@@ -5,6 +6,7 @@ import { agentStatus, buildAgentHostMatrix, listAgentCapabilities, renderAgentCa
|
|
|
5
6
|
import { SOTURAIL_VERSION } from "../core/version.js";
|
|
6
7
|
export function registerAgentsCommand(program) {
|
|
7
8
|
const agents = program.command("agents").description("Export and install safe agent integration profiles.");
|
|
9
|
+
agents.hook("preAction", (_command, action) => warnDeprecatedHost(action.opts()));
|
|
8
10
|
agents.command("list").description("List supported agent integration profiles.").action(() => {
|
|
9
11
|
process.stdout.write(formatAgentList());
|
|
10
12
|
});
|
|
@@ -119,4 +121,11 @@ export function registerAgentsCommand(program) {
|
|
|
119
121
|
process.stdout.write(await uninstallAgent(options.agent ?? "all", options.dryRun === undefined ? {} : { dryRun: options.dryRun }));
|
|
120
122
|
});
|
|
121
123
|
}
|
|
124
|
+
export function warnDeprecatedHost(options) {
|
|
125
|
+
for (const value of [options.agent, options.host]) {
|
|
126
|
+
const notice = typeof value === "string" ? hostDeprecationNotice(value) : null;
|
|
127
|
+
if (notice)
|
|
128
|
+
process.stderr.write(`${notice}\n`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
122
131
|
//# sourceMappingURL=agents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EACL,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACvK,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkBtD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import { listCandidates, recordCandidate } from "../core/candidate-store.js";
|
|
3
|
+
import { WorkspaceGuard } from "../core/workspace-guard.js";
|
|
4
|
+
export function registerCandidatesCommand(program) {
|
|
5
|
+
const candidates = program.command("candidates").description("Record and list Semantic Worker candidate artifacts (never verified by recording).");
|
|
6
|
+
candidates.command("record").description("Record one candidate draft from a JSON file.").requiredOption("--file <path>", "Project-relative JSON file with the candidate draft").option("--json", "Print JSON").action(async (options) => {
|
|
7
|
+
const file = await new WorkspaceGuard(process.cwd()).assertAllowedRead(options.file);
|
|
8
|
+
const stored = await recordCandidate(JSON.parse(await fs.readFile(file, "utf8")), process.cwd());
|
|
9
|
+
if (options.json)
|
|
10
|
+
process.stdout.write(`${JSON.stringify(stored, null, 2)}\n`);
|
|
11
|
+
else
|
|
12
|
+
process.stdout.write(`Recorded ${stored.candidate.kind} ${stored.candidate.id} [${stored.candidate.verificationState}] at ${stored.path}\n`);
|
|
13
|
+
});
|
|
14
|
+
candidates.command("list").description("List recorded candidates with workspace freshness.").option("--kind <kind>", "claim, impact, decision, question or interpretation").option("--json", "Print JSON").action(async (options) => {
|
|
15
|
+
const views = await listCandidates(process.cwd(), options.kind ? { kind: options.kind } : {});
|
|
16
|
+
if (options.json)
|
|
17
|
+
process.stdout.write(`${JSON.stringify({ schemaVersion: "soturail.candidate.list.v1", candidates: views }, null, 2)}\n`);
|
|
18
|
+
else
|
|
19
|
+
process.stdout.write(["SotuRail candidates", `count: ${views.length}`, ...views.map((view) => `- ${view.candidate.id} ${view.candidate.kind} [${view.candidate.verificationState}, ${view.freshness}] ${view.path}`), ""].join("\n"));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=candidates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/commands/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,oFAAoF,CAAC,CAAC;IAEnJ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,8CAA8C,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QACxQ,MAAM,IAAI,GAAG,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjG,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,iBAAiB,QAAQ,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACpJ,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,oDAAoD,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QACrQ,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,4BAA4B,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YACtI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,UAAU,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7O,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { CAPABILITY_REGISTRY, capabilityRegistryDigest, inspectToolCapabilities } from "../core/capability-registry.js";
|
|
2
|
+
import { capabilityCatalog, describeCapability } from "../core/capability-descriptor.js";
|
|
3
|
+
export function registerCapabilitiesCommand(program) {
|
|
4
|
+
const capabilities = program.command("capabilities").description("Inspect the canonical capability and tool registry.");
|
|
5
|
+
capabilities.command("list").option("--json", "Print JSON").option("--locale <locale>", "Presentation locale for titles", "en").action(async (options) => {
|
|
6
|
+
const catalog = capabilityCatalog(options.locale);
|
|
7
|
+
// v1 fields are kept unchanged; the v2 catalog is additive.
|
|
8
|
+
if (options.json)
|
|
9
|
+
process.stdout.write(`${JSON.stringify({ registryDigest: capabilityRegistryDigest(), capabilities: CAPABILITY_REGISTRY, catalog }, null, 2)}\n`);
|
|
10
|
+
else
|
|
11
|
+
process.stdout.write(["SotuRail capabilities", `registry_digest: ${capabilityRegistryDigest()}`, `descriptor_digest: ${catalog.descriptorDigest}`, ...catalog.capabilities.map((item) => `- ${item.id} [${item.maturity}, ${item.availability}] ${item.title} cli=${item.cli ?? "none"} mcp=${item.mcp ?? "no"}`), ""].join("\n"));
|
|
12
|
+
});
|
|
13
|
+
capabilities.command("describe").argument("<id>", "Capability ID").option("--json", "Print JSON").option("--locale <locale>", "Presentation locale", "en").action(async (id, options) => {
|
|
14
|
+
const descriptor = describeCapability(id, options.locale);
|
|
15
|
+
if (options.json) {
|
|
16
|
+
process.stdout.write(`${JSON.stringify(descriptor, null, 2)}\n`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
process.stdout.write([
|
|
20
|
+
`${descriptor.id} — ${descriptor.presentation.title}`,
|
|
21
|
+
descriptor.presentation.summary,
|
|
22
|
+
`maturity: ${descriptor.maturity}`,
|
|
23
|
+
`availability: ${descriptor.availability}`,
|
|
24
|
+
`surfaces: skill=${descriptor.surfaces.skill} mcp=${descriptor.surfaces.mcp?.tool ?? "none"} cli=${descriptor.surfaces.cli?.command ?? "none"}`,
|
|
25
|
+
`side_effects: ${descriptor.sideEffects.scope} approval_required=${descriptor.approvalRequired}`,
|
|
26
|
+
`trust: provenance=${descriptor.trust.provenanceRequired} freshness=${descriptor.trust.freshnessRequired} evidence=${descriptor.trust.evidenceRequired} agent_result_state=${descriptor.trust.agentResultState}`,
|
|
27
|
+
`providers: ${descriptor.providers.class} [${descriptor.providers.candidates.map((item) => `${item.id}:${item.status}`).join(", ") || "none"}] fallback=${descriptor.providers.fallback}`,
|
|
28
|
+
...descriptor.localization.limitations.map((item) => `limitation: ${item}`),
|
|
29
|
+
""
|
|
30
|
+
].join("\n"));
|
|
31
|
+
});
|
|
32
|
+
capabilities.command("tools").option("--json", "Print JSON").action(async (options) => {
|
|
33
|
+
const tools = await inspectToolCapabilities();
|
|
34
|
+
if (options.json)
|
|
35
|
+
process.stdout.write(`${JSON.stringify(tools, null, 2)}\n`);
|
|
36
|
+
else
|
|
37
|
+
process.stdout.write(["SotuRail capability tools", ...tools.map((item) => `- ${item.tool} version=${item.version} ready=${item.ready} path=${item.path} provider=${item.provider} verification=${item.verification} risk=${item.risk}`), ""].join("\n"));
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/commands/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEzF,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC;IACxH,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2C,EAAE,EAAE;QAC3L,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,4DAA4D;QAC5D,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,wBAAwB,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YAC9J,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,uBAAuB,EAAE,oBAAoB,wBAAwB,EAAE,EAAE,EAAE,sBAAsB,OAAO,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,IAAI,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1U,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAA2C,EAAE,EAAE;QAClO,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,GAAG,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE;YACrD,UAAU,CAAC,YAAY,CAAC,OAAO;YAC/B,aAAa,UAAU,CAAC,QAAQ,EAAE;YAClC,iBAAiB,UAAU,CAAC,YAAY,EAAE;YAC1C,mBAAmB,UAAU,CAAC,QAAQ,CAAC,KAAK,QAAQ,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,MAAM,QAAQ,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,MAAM,EAAE;YAC/I,iBAAiB,UAAU,CAAC,WAAW,CAAC,KAAK,sBAAsB,UAAU,CAAC,gBAAgB,EAAE;YAChG,qBAAqB,UAAU,CAAC,KAAK,CAAC,kBAAkB,cAAc,UAAU,CAAC,KAAK,CAAC,iBAAiB,aAAa,UAAU,CAAC,KAAK,CAAC,gBAAgB,uBAAuB,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAChN,cAAc,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,cAAc,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE;YACzL,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC;YAC3E,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QACxG,MAAM,KAAK,GAAG,MAAM,uBAAuB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,YAAY,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChQ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/context.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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
|
+
import { buildRolePack, contextBudget, offloadContext, parseContextExpert, parseRolePack, pruneContext, renderSelection, restoreOffload, routeContext, selectContext } from "../core/context-intelligence.js";
|
|
4
4
|
const targets = ["claude", "codex", "gemini", "cursor", "antigravity", "generic", "all"];
|
|
5
5
|
export function registerContextCommand(program) {
|
|
6
6
|
const context = program.command("context").description("Build cache-friendly prompt/context packs.");
|
|
@@ -33,8 +33,11 @@ export function registerContextCommand(program) {
|
|
|
33
33
|
.description("Select task-relevant local files and memory with reasons.")
|
|
34
34
|
.requiredOption("--query <query>", "Task description")
|
|
35
35
|
.option("--limit <count>", "Maximum selected items", "10")
|
|
36
|
+
.option("--expert <expert>", "Agent-declared context expert (code, docs, release, security, workflow, memory, research)")
|
|
37
|
+
.option("--role <role>", "Agent-declared role pack (planner, executor, reviewer, release-manager, researcher)")
|
|
36
38
|
.action(async (options) => {
|
|
37
|
-
|
|
39
|
+
const declared = { ...(options.expert ? { expert: parseContextExpert(options.expert) } : {}), ...(options.role ? { role: parseRolePack(options.role) } : {}) };
|
|
40
|
+
process.stdout.write(renderSelection(await selectContext(options.query, Number.parseInt(options.limit, 10) || 10, process.cwd(), declared)));
|
|
38
41
|
});
|
|
39
42
|
context
|
|
40
43
|
.command("prune")
|
|
@@ -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;AACzI,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAElG,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,8DAA8D,CAAC;SAC3E,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,OAA2C,EAAE,EAAE;QAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9C,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;QAC/G,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,
|
|
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;AACzI,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAElG,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,8DAA8D,CAAC;SAC3E,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,OAA2C,EAAE,EAAE;QAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9C,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;QAC/G,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2DAA2D,CAAC;SACxE,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,2FAA2F,CAAC;SACxH,MAAM,CAAC,eAAe,EAAE,qFAAqF,CAAC;SAC9G,MAAM,CAAC,KAAK,EAAE,OAAyE,EAAE,EAAE;QAC1F,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/J,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/I,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,yDAAyD,CAAC;SACtE,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SACrD,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,2DAA2D,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC7K,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,0BAA0B;YAC1B,eAAe,MAAM,CAAC,EAAE,EAAE;YAC1B,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YACpE,qBAAqB,MAAM,CAAC,eAAe,EAAE;YAC7C,YAAY,MAAM,CAAC,OAAO,EAAE;YAC5B,sCAAsC,MAAM,CAAC,EAAE,EAAE;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAClJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,SAAS,CAAC;SACtD,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAA8C,EAAE,EAAE;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uDAAuD,CAAC;SACpE,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,CAAC,OAAyC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,wBAAwB;YACxB,UAAU,OAAO,CAAC,KAAK,EAAE;YACzB,WAAW,MAAM,CAAC,MAAM,EAAE;YAC1B,SAAS,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;YACtC,WAAW,MAAM,CAAC,MAAM,EAAE;YAC1B,kDAAkD;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,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,KAA8B,CAAC;IAC1F,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { createInterface } from "node:readline/promises";
|
|
3
|
+
import { ArtifactRegistry } from "../core/artifact-registry.js";
|
|
4
|
+
import { artifactStore } from "../core/artifact-store.js";
|
|
5
|
+
import { ChangeContractSchema, createChangeContract, evaluateReadiness } from "../core/change-contract.js";
|
|
6
|
+
import { buildReadinessSnapshot, readContractFile, recordContractAttestation, reviseChangeContract } from "../core/contract-lifecycle.js";
|
|
7
|
+
const RISKS = ["low", "medium", "high", "critical"];
|
|
8
|
+
export function registerContractCommand(program) {
|
|
9
|
+
const contract = program.command("contract").description("Create, revise, attest and verify change contracts.");
|
|
10
|
+
contract.command("create")
|
|
11
|
+
.argument("<id>", "Stable contract id")
|
|
12
|
+
.requiredOption("--title <title>", "Contract title")
|
|
13
|
+
.requiredOption("--intent <intent>", "Requested outcome")
|
|
14
|
+
.requiredOption("--criterion <criterion>", "Acceptance criterion")
|
|
15
|
+
.option("--risk <risk>", "low, medium, high or critical", "medium")
|
|
16
|
+
.option("--check <command>", "Required verification command")
|
|
17
|
+
.option("--criterion-check <command>", "Command whose current passing run proves the criterion (objective criteria)")
|
|
18
|
+
.option("--runtime-check <command...>", "Commands that provide runtime evidence")
|
|
19
|
+
.option("--scope <paths...>", "Project-relative path prefixes the change may touch")
|
|
20
|
+
.option("--source <paths...>", "Requirement/source files the contract is based on (bound by digest)")
|
|
21
|
+
.option("--human-approval", "Require human approval")
|
|
22
|
+
.action(async (id, options) => {
|
|
23
|
+
if (!/^[a-zA-Z0-9._-]+$/.test(id))
|
|
24
|
+
throw new Error("Contract id may contain only letters, digits, dot, underscore and dash.");
|
|
25
|
+
if (!RISKS.includes(options.risk))
|
|
26
|
+
throw new Error(`Risk must be one of: ${RISKS.join(", ")}.`);
|
|
27
|
+
const created = await createChangeContract({
|
|
28
|
+
id,
|
|
29
|
+
title: options.title,
|
|
30
|
+
intent: options.intent,
|
|
31
|
+
risk: options.risk,
|
|
32
|
+
decisions: [],
|
|
33
|
+
acceptanceCriteria: [options.criterion],
|
|
34
|
+
requiredChecks: options.check ? [options.check] : [],
|
|
35
|
+
evidencePolicy: { runtimeEvidenceRequired: options.risk === "critical", independentReviewRequired: options.risk === "high" || options.risk === "critical", humanApprovalRequired: options.humanApproval === true },
|
|
36
|
+
...(options.criterionCheck ? { criteriaEvidence: { [options.criterion]: [options.criterionCheck] } } : {}),
|
|
37
|
+
...(options.runtimeCheck?.length ? { runtimeChecks: options.runtimeCheck } : {}),
|
|
38
|
+
...(options.scope?.length ? { scope: options.scope } : {}),
|
|
39
|
+
...(options.source?.length ? { sources: options.source } : {})
|
|
40
|
+
});
|
|
41
|
+
const target = new ArtifactRegistry().resolve("contracts", `${id}.json`);
|
|
42
|
+
await artifactStore.writeJson(target, created, ChangeContractSchema);
|
|
43
|
+
process.stdout.write(`Change contract created: ${path.relative(process.cwd(), target)}\nbaseline: ${created.workspaceFingerprint}\n`);
|
|
44
|
+
});
|
|
45
|
+
contract.command("revise")
|
|
46
|
+
.description("Create a new contract revision with lineage; the previous revision is never modified.")
|
|
47
|
+
.argument("<file>", "Project-relative contract JSON to supersede")
|
|
48
|
+
.requiredOption("--reason <reason>", "Why the foundation changed")
|
|
49
|
+
.option("--intent <intent>", "New intent")
|
|
50
|
+
.option("--criterion <criterion...>", "Replacement acceptance criteria")
|
|
51
|
+
.option("--check <command...>", "Replacement required checks")
|
|
52
|
+
.option("--risk <risk>", "New risk")
|
|
53
|
+
.option("--scope <paths...>", "Replacement scope")
|
|
54
|
+
.option("--source <paths...>", "Replacement source files")
|
|
55
|
+
.action(async (file, options) => {
|
|
56
|
+
if (options.risk && !RISKS.includes(options.risk))
|
|
57
|
+
throw new Error(`Risk must be one of: ${RISKS.join(", ")}.`);
|
|
58
|
+
const { contract: previous } = await readContractFile(file);
|
|
59
|
+
const revised = await reviseChangeContract(previous, {
|
|
60
|
+
...(options.intent ? { intent: options.intent } : {}),
|
|
61
|
+
...(options.criterion ? { acceptanceCriteria: options.criterion } : {}),
|
|
62
|
+
...(options.check ? { requiredChecks: options.check } : {}),
|
|
63
|
+
...(options.risk ? { risk: options.risk } : {}),
|
|
64
|
+
...(options.scope ? { scope: options.scope } : {}),
|
|
65
|
+
...(options.source ? { sources: options.source } : {})
|
|
66
|
+
}, options.reason);
|
|
67
|
+
process.stdout.write(`Contract revision ${revised.contract.revision} written: ${revised.path}\nsupersedes: ${revised.contract.supersedes?.path}\nbaseline: ${revised.contract.workspaceFingerprint}\n`);
|
|
68
|
+
});
|
|
69
|
+
contract.command("attest")
|
|
70
|
+
.description("Record a human attestation receipt (interactive terminal only).")
|
|
71
|
+
.argument("<file>", "Project-relative contract JSON")
|
|
72
|
+
.requiredOption("--kind <kind>", "human-approval, independent-review or criterion")
|
|
73
|
+
.requiredOption("--by <name>", "Name of the human attesting")
|
|
74
|
+
.option("--criterion <criterion>", "Acceptance criterion being attested (with --kind criterion)")
|
|
75
|
+
.action(async (file, options) => {
|
|
76
|
+
if (!["human-approval", "independent-review", "criterion"].includes(options.kind))
|
|
77
|
+
throw new Error("Attestation kind must be human-approval, independent-review or criterion.");
|
|
78
|
+
const { contract: parsed } = await readContractFile(file);
|
|
79
|
+
const interactive = process.stdin.isTTY === true && process.stdout.isTTY === true;
|
|
80
|
+
let confirmed;
|
|
81
|
+
if (interactive) {
|
|
82
|
+
const prompt = createInterface({ input: process.stdin, output: process.stdout });
|
|
83
|
+
confirmed = (await prompt.question(`Attest ${options.kind} for contract "${parsed.id}" revision ${parsed.revision ?? 1} as ${options.by}. Type the contract id to confirm: `)).trim();
|
|
84
|
+
prompt.close();
|
|
85
|
+
}
|
|
86
|
+
const result = await recordContractAttestation(parsed, { kind: options.kind, by: options.by, ...(options.criterion ? { criterion: options.criterion } : {}) }, process.cwd(), { interactive, ...(confirmed !== undefined ? { confirmedContractId: confirmed } : {}) });
|
|
87
|
+
process.stdout.write(`Attestation recorded: ${result.path}\nbound to workspace: ${result.receipt.workspaceFingerprint}\n`);
|
|
88
|
+
});
|
|
89
|
+
contract.command("verify")
|
|
90
|
+
.argument("<file>", "Project-relative contract JSON")
|
|
91
|
+
.option("--criterion-passed <criterion>", "Assertion only: must be backed by recorded evidence or a human attestation")
|
|
92
|
+
.option("--check-passed <check>", "Assertion only: must be backed by a current recorded passing run")
|
|
93
|
+
.option("--runtime-evidence", "Assertion only: must be backed by declared runtime checks")
|
|
94
|
+
.option("--independent-review", "Assertion only: must be backed by an attestation receipt")
|
|
95
|
+
.option("--human-approved", "Assertion only: must be backed by an attestation receipt")
|
|
96
|
+
.action(async (file, options) => {
|
|
97
|
+
const { contract: parsed } = await readContractFile(file);
|
|
98
|
+
const snapshot = await buildReadinessSnapshot(parsed, process.cwd(), {
|
|
99
|
+
criteria: options.criterionPassed ? [options.criterionPassed] : [],
|
|
100
|
+
checks: options.checkPassed ? [options.checkPassed] : [],
|
|
101
|
+
runtimeEvidence: options.runtimeEvidence === true,
|
|
102
|
+
independentReview: options.independentReview === true,
|
|
103
|
+
humanApproval: options.humanApproved === true
|
|
104
|
+
});
|
|
105
|
+
const verdict = evaluateReadiness(parsed, snapshot);
|
|
106
|
+
process.stdout.write(`${JSON.stringify({ ...verdict, integrity: snapshot.integrity, checkEvidence: snapshot.checkEvidence, satisfiedBy: snapshot.satisfiedBy, assertions: snapshot.assertions }, null, 2)}\n`);
|
|
107
|
+
if (verdict.verdict !== "ready")
|
|
108
|
+
process.exitCode = 1;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"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"}
|