xgauntlet 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -27
- package/bin/xgauntlet.js +2 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="https://www.npmjs.com/package/xgauntlet"><img src="https://img.shields.io/npm/v/xgauntlet.svg?color=blue" alt="NPM Version" /></a>
|
|
23
|
-
<a href="https://github.com/rolfmadsen/
|
|
23
|
+
<a href="https://github.com/rolfmadsen/xgauntlet/actions/workflows/ci.yml"><img src="https://github.com/rolfmadsen/xgauntlet/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
|
|
24
24
|
<a href="docs/adr/0005-two-tier-verification-and-attestation-model.md"><img src="https://img.shields.io/badge/evidence-Two--Tier%20Trust%20Model-blue.svg" alt="Evidence Model" /></a>
|
|
25
25
|
<a href="wit/gauntlet_policy.wit"><img src="https://img.shields.io/badge/WASM-Zero%20Ambient%20Authority-purple.svg" alt="WASM Policy" /></a>
|
|
26
26
|
<a href="Cargo.toml"><img src="https://img.shields.io/badge/rust-2021%20edition-orange.svg" alt="Rust Version" /></a>
|
|
@@ -31,68 +31,113 @@
|
|
|
31
31
|
|
|
32
32
|
**Dokumentation**: [Makro-Spec](spec.md) • [Domæne-Glossary](CONTEXT.md) • [Kodestandarder](CODING_STANDARDS.md) • [Arkitektur (ADRs)](docs/adr/)
|
|
33
33
|
|
|
34
|
-
**Kildekode & Pakker**: [GitHub](https://github.com/rolfmadsen/
|
|
34
|
+
**Kildekode & Pakker**: [GitHub](https://github.com/rolfmadsen/xgauntlet) • [NPM Pakke](packages/cli)
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
38
|
**xGauntlet** omgiver AI-genereret kode med et kompromisløst verifikations-gauntlet (Linters, Type-checkere, Unit tests, Invariant-tests og Mutationsafprøvning), håndhæver en deterministisk **Zero Ambient Authority WebAssembly policy-kerne** (`wit/gauntlet_policy.wit`) og oversætter rå fejludskrifter til **Actionable Diagnostics** i et feedback-loop, som AI-agenter kan handle direkte på.
|
|
39
39
|
|
|
40
|
-
Bygget i **Rust** for lynhurtig sub-3ms koldstart uden baggrundsdæmoner, og distribueret via **
|
|
40
|
+
Bygget i **Rust** for lynhurtig sub-3ms koldstart uden baggrundsdæmoner, og distribueret via **NPM** og **Cargo** for øjeblikkelig brug på tværs af **Linux**, **macOS** og **Windows 11**.
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
44
|
## 🚀 Hurtig Start & Installation
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
xGauntlet følger samme enkle model som `git`: Værktøjet installeres én gang globalt på maskinen, hvorefter du initialiserer det lokalt i de repositories, du ønsker at sætte under governance.
|
|
47
47
|
|
|
48
|
-
### 1.
|
|
49
|
-
|
|
48
|
+
### 1. Installer xGauntlet (én gang på din maskine)
|
|
49
|
+
|
|
50
|
+
Kør én enkelt kommando for at installere værktøjet globalt på tværs af alle programmeringssprog og platforme:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g xgauntlet
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
> [!TIP]
|
|
57
|
+
> **⚡ Hvorfor global installation frem for blot `npx`?**
|
|
58
|
+
> Når `xgauntlet` er installeret globalt i dit `$PATH`, kører gatekeeper-hooks (`xgauntlet hook ...`) direkte som maskinkode på **under 3 millisekunder** ved hvert eneste værktøjskald fra din AI-agent – helt uden Node.js koldstarts-overhead.
|
|
59
|
+
> *(Du kan dog stadig køre `npx xgauntlet init`, hvis du blot vil afprøve værktøjet flygtigt uden installation).*
|
|
60
|
+
|
|
61
|
+
### 2. Initialiser dit projekt (In-Repo Governance)
|
|
62
|
+
|
|
63
|
+
Gå ind i dit projekt – uanset om det er skrevet i Python, Rust, Go eller TypeScript:
|
|
50
64
|
|
|
51
65
|
```bash
|
|
52
66
|
# Åbn dit projektkatalog
|
|
53
67
|
cd ~/sti/til/dit-projekt
|
|
54
68
|
|
|
55
|
-
# Scaffold
|
|
56
|
-
|
|
69
|
+
# Scaffold in-repo styringsfiler:
|
|
70
|
+
xgauntlet init
|
|
57
71
|
```
|
|
58
72
|
|
|
73
|
+
`xgauntlet init` detekterer automatisk projektets programmeringssprog (via `package.json`, `Cargo.toml`, `pyproject.toml`, `go.mod` osv.) og opretter de deklarative styringsfiler.
|
|
74
|
+
|
|
59
75
|
#### 📦 Hvad `xgauntlet init` opretter lokalt i projektet (In-Repo Single Source of Truth):
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
| [`
|
|
64
|
-
| [`
|
|
65
|
-
| [`
|
|
66
|
-
| [`
|
|
67
|
-
| [`
|
|
68
|
-
| [
|
|
69
|
-
| [`.agents/
|
|
70
|
-
| [
|
|
76
|
+
|
|
77
|
+
| Fil / Mappe | Type | Formål |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| [`gauntlet.toml`](gauntlet.toml) | **Fælles** | Deklarativ konfiguration af lintere, typer, tests og verifikationslag |
|
|
80
|
+
| [`CONTEXT.md`](CONTEXT.md) | **Fælles** | Domæne-glossary for projektet (Aristoteles' *definitio per genus et differentiam*) |
|
|
81
|
+
| [`CODING_STANDARDS.md`](CODING_STANDARDS.md) | **Fælles** | Multi-stack kodestandarder og arkitekturinvarianter |
|
|
82
|
+
| [`spec.md`](spec.md) | **Fælles** | Makro-specifikation og system-invarianter |
|
|
83
|
+
| [`tasks/001-bootstrap.md`](tasks/) | **Fælles** | Opgavemappe til håndhævelse af task-kontrakter & acceptkriterier |
|
|
84
|
+
| [`docs/adr/`](docs/adr/) | **Fælles** | Architecture Decision Records (ADR) til projekt-specifikke beslutninger |
|
|
85
|
+
| [`.agents/AGENTS.md`](.agents/AGENTS.md) | **Antigravity / Gemini** | Retningslinjer for AI-agenter, Response HUD og task-management |
|
|
86
|
+
| [`.agents/hooks.json`](.agents/hooks.json) | **Antigravity / Gemini** | PreToolUse gatekeeper hook konfiguration |
|
|
87
|
+
| [`CLAUDE.md`](CLAUDE.md) | **Claude Code** | Retningslinjer og sikkerhedsinvarianter for Anthropic Claude Code |
|
|
88
|
+
|
|
89
|
+
> [!NOTE]
|
|
90
|
+
> **🤝 Poly-Harness Sameksistens:**
|
|
91
|
+
> De 7 øverste filer er helt universelle og styrer projektet for både mennesker og alle typer AI-agenter. De to harness-specifikke sæt (`CLAUDE.md` og `.agents/`) sameksisterer fredeligt uden konflikter, så du eller dit team frit kan skifte mellem f.eks. Google Antigravity IDE og Claude Code på det samme projekt. Hvis du udelukkende benytter én agent, kan det overskydende sæt frit slettes.
|
|
71
92
|
|
|
72
93
|
> [!TIP]
|
|
73
94
|
> **🛡️ Ikke-destruktiv Garanti (Safety First):**
|
|
74
95
|
> `xgauntlet init` overskriver **aldrig** eksisterende filer i dit projekt, medmindre du udtrykkeligt angiver `--force`.
|
|
75
96
|
|
|
76
|
-
###
|
|
97
|
+
### 3. Kør Verifikation & Tjek Evidens
|
|
98
|
+
|
|
77
99
|
Når du eller agenten arbejder på en opgave i projektet, afvikles gauntlettet direkte:
|
|
78
100
|
|
|
79
101
|
```bash
|
|
80
102
|
# Kør gauntlet og forseg evidens for en opgave:
|
|
81
|
-
|
|
103
|
+
xgauntlet verify --task-id 001-bootstrap
|
|
82
104
|
|
|
83
105
|
# Valider kildetræets integritet mod rapporten (drift-kontrol):
|
|
84
|
-
|
|
106
|
+
xgauntlet check-evidence
|
|
85
107
|
|
|
86
108
|
# Valider opgavespecifikation og CONTEXT.md definitionsformat:
|
|
87
|
-
|
|
109
|
+
xgauntlet check-spec
|
|
88
110
|
|
|
89
111
|
# Kør miljø- og toolchain-diagnostik:
|
|
90
|
-
|
|
112
|
+
xgauntlet doctor
|
|
91
113
|
```
|
|
92
114
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### 🧹 Afinstallation & Oprydning
|
|
118
|
+
|
|
119
|
+
xGauntlet kører efter **Zero Lock-in** princippet. Der er ingen baggrundsdæmoner, ingen systemd services og ingen skjulte registre:
|
|
120
|
+
|
|
121
|
+
#### 1. Afkobl et projekt (Kirurgisk In-Repo Oprydning)
|
|
122
|
+
For at fjerne xGauntlet fra et projekt, fjerner du blot de specifikke styringsfiler. Dine egne kodefiler, egne tasks og egne ADR'er berøres ikke:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Fjern xGauntlets kontrolfiler i projektet:
|
|
126
|
+
rm -f gauntlet.toml .agents/hooks.json verification-report.json evidence.md
|
|
127
|
+
|
|
128
|
+
# (Valgfrit) Fjern de oprindeligt scaffoldede skabeloner, hvis du ikke ønsker at bevare dem:
|
|
129
|
+
rm -f tasks/001-bootstrap.md docs/adr/0001-package-by-feature-architecture.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
#### 2. Afinstaller værktøjet fra maskinen (Global Cleanup)
|
|
133
|
+
Hvis du ønsker at fjerne selve `xgauntlet`-programmet fra dit styresystem:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
npm uninstall -g xgauntlet
|
|
137
|
+
|
|
138
|
+
# Hvis du tidligere har afviklet flygtigt via npx, slettes den lokale cache-binær:
|
|
139
|
+
rm -rf ~/.cache/xgauntlet
|
|
140
|
+
```
|
|
96
141
|
|
|
97
142
|
---
|
|
98
143
|
|
|
@@ -102,6 +147,9 @@ npx xgauntlet doctor
|
|
|
102
147
|
1. **Metodiske retningslinjer (Agent Skills)**: Proceskrav (såsom sokratisk grilling, TDD-disciplin og arkitektur-review), som agenten instrueres i at følge (`grill-me`, `old-coder`, `code-review`).
|
|
103
148
|
2. **Håndhævede software-gates (CLI & In-Memory WASM)**: Deterministiske kontrolpunkter i Rust-koden (`check-spec`, pre-invocation WASM hook, `verify`, `check-evidence` og `check-release`), der fysisk blokerer uautoriserede handlinger med exit-koder og multi-digest integritetskontrol.
|
|
104
149
|
|
|
150
|
+
> [!NOTE]
|
|
151
|
+
> **Bemærk om tilstande og Zero-Daemon:** Systemet styres ikke af en global database eller baggrundsdæmon, men af diskrete, uafhængige CLI-kald (`sub-3ms` koldstart). Opgavestatus (`DRAFT`, `ACTIVE`, `PASSED`, `DONE`) er forankret direkte i de enkelte task-filers OKF YAML-frontmatter (`tasks/*.md`), som evalueres on-demand af de respektive gates uden behov for en tilstandsmaskine-service.
|
|
152
|
+
|
|
105
153
|
### Oversigt over udviklingsflowet
|
|
106
154
|
|
|
107
155
|
```text
|
|
@@ -127,6 +175,83 @@ npx xgauntlet doctor
|
|
|
127
175
|
(Versionssynkronisering, CHANGELOG.md og ADR-krydsreferencer)
|
|
128
176
|
```
|
|
129
177
|
|
|
178
|
+
### Pipelinen trin for trin
|
|
179
|
+
|
|
180
|
+
#### 1. Idé- og kontekstafklaring
|
|
181
|
+
* **Type**: Metodisk proces (Agent Skill)
|
|
182
|
+
* **Hvad der sker**: Før der skrives specifikationer eller kode, aktiveres grilling-skills (`grill-me` eller `grill-with-docs`). Agenten udfordrer antagelser, identificerer risici og afstemmer planer mod eksisterende arkitektur og ADR'er.
|
|
183
|
+
* **Kontrolpunkt**:
|
|
184
|
+
* *Hvem godkender*: Udvikleren i direkte dialog.
|
|
185
|
+
* *Hvordan*: Dialogen udmønter sig i, at agenten opdaterer `CONTEXT.md` og eventuelt udarbejder en ny ADR i `docs/adr/`.
|
|
186
|
+
* *Håndhævelse i koden*: Dette er et instruktionskrav til agenten. Der findes ingen automatisk kodelås, der forhindrer oprettelse af tasks uden forudgående grilling; disciplinen bæres af udviklerens sparring med agenten. WASM-policykernen tillader udtrykkeligt skrivning til styringsdokumenter (`tasks/`, `spec.md`, `CONTEXT.md`, `CODING_STANDARDS.md`, `docs/`) uanset opgavestatus.
|
|
187
|
+
|
|
188
|
+
#### 2. Specifikation & Opgavebinding
|
|
189
|
+
* **Type**: Hård software-gate
|
|
190
|
+
* **Hvad der sker**: Opgaven defineres formelt i en markdown-fil under `tasks/` (f.eks. `tasks/001-bootstrap.md`) med eksplicit OKF v0.2 frontmatter samt eksekverbare acceptkriterier.
|
|
191
|
+
* **Kontrolpunkt**: Spec Gate (`xgauntlet check-spec`)
|
|
192
|
+
* *Hvem godkender*: Shift-left valideringsmotoren i Rust (`crates/xgauntlet-core/src/features/tasks/validator.rs`).
|
|
193
|
+
* *Hvordan*: CLI-værktøjet parser task-filerne og validerer:
|
|
194
|
+
1. Valid OKF v0.2 YAML-frontmatter (`type: Task Package`, `status`, `title`, `generated`).
|
|
195
|
+
2. Eksistensen af sektionen `## 🎯 Formål` (eller `## Purpose`).
|
|
196
|
+
3. Eksistensen af eksekverbare acceptkriterier (`- [ ]`).
|
|
197
|
+
4. Eksistensen af negative forretningsregler under `## 🚫 Must NOT`.
|
|
198
|
+
5. At definitionerne i `CONTEXT.md` følger Aristoteles' formel (`**Term**:\n<Definition>\n_Avoid_: <synonymer>`).
|
|
199
|
+
* *Håndhævelse i koden*: Returnerer exit-kode 1, hvis en task-fil mangler, er fejlbehæftet eller overtræder formateringskravene.
|
|
200
|
+
|
|
201
|
+
#### 3. Implementering under Zero-Ambient-Authority Policy (Værkstedet)
|
|
202
|
+
* **Type**: Metodisk TDD + Hård runtime-beskyttelse
|
|
203
|
+
* **Hvad der sker**: Koden skrives efter Red/Green TDD-princippet (først en fejlende test, derefter den minimale kode, der løser den, og til sidst refaktorisering).
|
|
204
|
+
* **Kontrolpunkt**: Pre-Invocation WASM Hook & Anti-Tamper Guard
|
|
205
|
+
* *Hvem godkender*: Indlejret Wasmtime policy-motor (`gauntlet_policy.wasm` bygget fra `wit/gauntlet_policy.wit`) og harness-adaptere (`crates/xgauntlet-core/src/features/adapters/`).
|
|
206
|
+
* *Hvordan*: Agentens værktøjskald (tool calls) overvåges deterministisk ved hvert kald via `xgauntlet hook <harness>`.
|
|
207
|
+
* *Håndhævelse i koden*:
|
|
208
|
+
* **Zero Ambient Authority**: WebAssembly-modulet har absolut nul adgang til værtsfilsystem, netværk, systemur eller tilfældighedskilder.
|
|
209
|
+
* Beskyttede produktions- og kildestier (`src/`, `tests/`, `crates/`, `packages/`, `.agents/`) kan **ikke** modificeres, medmindre der findes en aktiv task (`tasks/*.md`) med status `ACTIVE`.
|
|
210
|
+
* Destruktive kommandoer som `git push`, `git reset --hard`, `git clean -f`, `git branch -D` og `rm -rf /` blokeres hårdt (`reason_code: 4039`).
|
|
211
|
+
* Linux Bubblewrap (`bwrap`) er erstattet til fordel for WebAssembly + matematisk invariantkontrol (pre/post manifest-digests i verifikationspipelinen), hvilket sikrer fuld 100% krydsplatform understøttelse på tværs af Linux, macOS og Windows 11 uden kerne-afhængigheder eller root-rettigheder.
|
|
212
|
+
* *Bemærk om TDD*: Selve rækkefølgen (Red før Green) registreres ikke historisk af test-runneren; det er en metodisk adfærd instrueret via agent-skills.
|
|
213
|
+
|
|
214
|
+
#### 4. Flerlags Verifikation
|
|
215
|
+
* **Type**: Hård software-gate
|
|
216
|
+
* **Hvad der sker**: Fuld automatisk eksekvering af projektets test- og analysesuiter med matematisk beskyttelse mod selvmutation og generering af forseglede rapporter.
|
|
217
|
+
* **Kontrolpunkt**: Diagnostic & Execution Engine (`xgauntlet verify`)
|
|
218
|
+
* *Hvem godkender*: Verifikationspipelinen i Rust (`crates/xgauntlet-core/src/features/gauntlet/pipeline.rs`).
|
|
219
|
+
* *Hvordan*: Runneren eksekverer de lag, der er defineret i `gauntlet.toml` (f.eks. Typer, Linters, Tests, Invarianter & Mutationer) med fail-closed semantik og timeouts:
|
|
220
|
+
1. **Pre-manifest beregning**: Beregner kildetræets Git-blob OID digests forud for testkørsel.
|
|
221
|
+
2. **Lag-eksekvering**: Kører lagene sekventielt; ved fejl parses output til Actionable Diagnostics (`DiagnosticParser`).
|
|
222
|
+
3. **Post-manifest & Anti-Tamper**: Genberegner manifest efter kørsel; hvis kildekode eller testassertions muteres undervejs, afvises kørslen øjeblikkeligt (`verify_self_mutation`).
|
|
223
|
+
* *Håndhævelse i koden*: Alle obligatoriske diagnostiske lag skal bestå (`exit_code == 0`). Ved succes genereres atomart `verification-report.json` (Schema v2) og `evidence.md` med deterministiske SHA-256 digests over kildetræ (`source_manifest_digest`), konfiguration, opgave og politikker.
|
|
224
|
+
|
|
225
|
+
#### 5. Review mod Kodestandarder
|
|
226
|
+
* **Type**: Hybrid gate (Agent Skill + Udvikleraccept)
|
|
227
|
+
* **Hvad der sker**: Den implementerede løsning auditeres mod arkitekturretningslinjer og regler i `CODING_STANDARDS.md`.
|
|
228
|
+
* **Kontrolpunkt**: Standards Review (`code-review` skill)
|
|
229
|
+
* *Hvem godkender*: Udvikleren assisteret af agentens review-skill.
|
|
230
|
+
* *Hvordan*: Agenten gennemgår diff'en op mod kodestandarderne og fremhæver eventuelle arkitekturbrud, manglende fejlhåndtering eller navngivningsfejl.
|
|
231
|
+
* *Håndhævelse i koden*: Gaten er procesmæssig og beror på agentens review-rapport kombineret med udviklerens godkendelse.
|
|
232
|
+
|
|
233
|
+
#### 6. Drift- og Integritetskontrol (Two-Tier Model)
|
|
234
|
+
* **Type**: Hård software-gate
|
|
235
|
+
* **Hvad der sker**: Verificering af, at kildekoden og arbejdstræet ikke er blevet manipuleret eller er driftet efter testkørslen.
|
|
236
|
+
* **Kontrolpunkt**: Drift Verification (`xgauntlet check-evidence`)
|
|
237
|
+
* *Hvem godkender*: Drift-detektionsmotoren (`crates/xgauntlet-core/src/features/evidence/drift.rs`).
|
|
238
|
+
* *Hvordan*: Værktøjet genberegner det aktuelle kildetræs workspace-manifest og sammenligner det direkte med værdierne i `verification-report.json`.
|
|
239
|
+
* *Håndhævelse i koden*:
|
|
240
|
+
* **Tier 1 (Lokal drift-kontrol)**: Er blot én byte ændret i kildetræ, opgave, config eller politik efter `verify`, afvises tjekket med en specifik `DriftViolation`. Beregningen benytter Git-tree/blob OID-hashes, hvilket gør driftkontrollen fuldstændig immun over for linjeskift-forskelle (LF vs. CRLF) på tværs af styresystemer.
|
|
241
|
+
* **Tier 2 (Attestation i CI)**: Jf. [ADR 0005](docs/adr/0005-two-tier-verification-and-attestation-model.md) adskilles lokal verifikation fra uafviselig CI-attestering. I beskyttede CI-miljøer genereres en kryptografisk in-toto/DSSE-attest (Sigstore/OIDC), som forsegler kildens herkomst forud for release.
|
|
242
|
+
|
|
243
|
+
#### 7. Release Readiness
|
|
244
|
+
* **Type**: Hård software-gate
|
|
245
|
+
* **Hvad der sker**: Koden klargøres til release og merge ved at kontrollere synkronisering mellem versioner, ændringslog og dokumentation.
|
|
246
|
+
* **Kontrolpunkt**: Release Gate (`xgauntlet check-release`)
|
|
247
|
+
* *Hvem godkender*: Release-orkestratoren (`crates/xgauntlet-core/src/features/release/engine.rs`).
|
|
248
|
+
* *Hvordan*: Værktøjet udfører tre specifikke tjek:
|
|
249
|
+
1. **Versionskonsistens**: Versionsnumre skal matche på tværs af projektets manifests (`Cargo.toml`, `package.json`, `pyproject.toml`).
|
|
250
|
+
2. **Changelog-synkronisering**: `CHANGELOG.md` skal indeholde en sektion for den pågældende version.
|
|
251
|
+
3. **ADR-referencer**: Samtlige ADR-dokumenter i `docs/adr/` skal være eksplicit refereret eller linket i enten `README.md` eller `spec.md`.
|
|
252
|
+
* *Håndhævelse i koden*: Returnerer exit-kode 1, hvis der er uoverensstemmelse i versionsnumre, manglende changelog-sektion eller forældreløse ADR-dokumenter.
|
|
253
|
+
* *Praktisk udviklerflag*: Med flaget `--allow-unreleased` tillader værktøjet sektionen `[Unreleased]` i `CHANGELOG.md` under løbende udvikling forud for den endelige versions-tagging.
|
|
254
|
+
|
|
130
255
|
### 👥 De 4 AI-roller & Session Handoff
|
|
131
256
|
|
|
132
257
|
For at undgå uendelige review-loops (*bikeshedding*) og bevare et skarpt kontekstvindue, udleder `xGauntlet` automatisk den næste ingeniør-rolle:
|
package/bin/xgauntlet.js
CHANGED
|
@@ -15,7 +15,7 @@ const __dirname = path.dirname(__filename);
|
|
|
15
15
|
const pkgJsonPath = path.resolve(__dirname, '../package.json');
|
|
16
16
|
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
17
17
|
const VERSION = pkg.version;
|
|
18
|
-
const REPO = 'rolfmadsen/
|
|
18
|
+
const REPO = 'rolfmadsen/xgauntlet';
|
|
19
19
|
|
|
20
20
|
function getPlatformInfo() {
|
|
21
21
|
const platform = os.platform();
|
|
@@ -166,7 +166,7 @@ async function main() {
|
|
|
166
166
|
console.log(` Platform: ${platform} (${arch})`);
|
|
167
167
|
console.log(` Version: v${VERSION}`);
|
|
168
168
|
console.log(` Engine: NOT_FOUND (${err.message})`);
|
|
169
|
-
console.log(
|
|
169
|
+
console.log(` Notice: Run \`cargo build --release\` in xGauntlet repo or download v${VERSION} release.`);
|
|
170
170
|
process.exit(0);
|
|
171
171
|
}
|
|
172
172
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xgauntlet",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Universal cross-platform verification gauntlet & tamper-proof policy sidecar for AI coding agents",
|
|
5
5
|
"bin": {
|
|
6
6
|
"xgauntlet": "bin/xgauntlet.js",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
},
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
|
-
"url": "git+https://github.com/rolfmadsen/
|
|
22
|
+
"url": "git+https://github.com/rolfmadsen/xgauntlet.git",
|
|
23
23
|
"directory": "packages/cli"
|
|
24
24
|
},
|
|
25
25
|
"bugs": {
|
|
26
|
-
"url": "https://github.com/rolfmadsen/
|
|
26
|
+
"url": "https://github.com/rolfmadsen/xgauntlet/issues"
|
|
27
27
|
},
|
|
28
|
-
"homepage": "https://github.com/rolfmadsen/
|
|
28
|
+
"homepage": "https://github.com/rolfmadsen/xgauntlet#readme",
|
|
29
29
|
"keywords": [
|
|
30
30
|
"ai-agent",
|
|
31
31
|
"verification",
|