invar-tools 1.17.10__py3-none-any.whl → 1.17.13__py3-none-any.whl
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.
- invar/shell/commands/guard.py +23 -8
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/METADATA +1 -1
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/RECORD +8 -8
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/WHEEL +0 -0
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/entry_points.txt +0 -0
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/licenses/LICENSE +0 -0
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/licenses/LICENSE-GPL +0 -0
- {invar_tools-1.17.10.dist-info → invar_tools-1.17.13.dist-info}/licenses/NOTICE +0 -0
invar/shell/commands/guard.py
CHANGED
|
@@ -190,12 +190,28 @@ def guard(
|
|
|
190
190
|
ts_result = run_typescript_guard(path if path.is_dir() else find_project_root(path))
|
|
191
191
|
match ts_result:
|
|
192
192
|
case Success(result):
|
|
193
|
-
|
|
193
|
+
if human:
|
|
194
|
+
# Human-readable Rich output
|
|
195
|
+
from invar.shell.prove.guard_ts import format_typescript_guard_v2
|
|
196
|
+
|
|
197
|
+
output = format_typescript_guard_v2(result)
|
|
198
|
+
console.print(f"[bold]TypeScript Guard[/bold] ({project_language})")
|
|
199
|
+
if result.status == "passed":
|
|
200
|
+
console.print("[green]✓ PASSED[/green]")
|
|
201
|
+
elif result.status == "skipped":
|
|
202
|
+
console.print("[yellow]⚠ SKIPPED[/yellow] (no TypeScript tools available)")
|
|
203
|
+
else:
|
|
204
|
+
console.print(f"[red]✗ FAILED[/red] ({result.error_count} errors)")
|
|
205
|
+
for v in result.violations[:10]: # Show first 10
|
|
206
|
+
console.print(f" {v.file}:{v.line}: [{v.severity}] {v.message}")
|
|
207
|
+
else:
|
|
208
|
+
# JSON output for agents
|
|
209
|
+
import json as json_mod
|
|
194
210
|
|
|
195
|
-
|
|
211
|
+
from invar.shell.prove.guard_ts import format_typescript_guard_v2
|
|
196
212
|
|
|
197
|
-
|
|
198
|
-
|
|
213
|
+
output = format_typescript_guard_v2(result)
|
|
214
|
+
console.print(json_mod.dumps(output, indent=2))
|
|
199
215
|
raise typer.Exit(0 if result.status == "passed" else 1)
|
|
200
216
|
case Failure(err):
|
|
201
217
|
console.print(f"[red]Error:[/red] {err}")
|
|
@@ -241,7 +257,7 @@ def guard(
|
|
|
241
257
|
raise typer.Exit(1)
|
|
242
258
|
|
|
243
259
|
report_data = coverage_result.unwrap()
|
|
244
|
-
use_agent_output =
|
|
260
|
+
use_agent_output = not human
|
|
245
261
|
|
|
246
262
|
if use_agent_output:
|
|
247
263
|
console.print(json.dumps(format_contract_coverage_agent(report_data)))
|
|
@@ -261,7 +277,7 @@ def guard(
|
|
|
261
277
|
changed_result = handle_changed_mode(path)
|
|
262
278
|
if isinstance(changed_result, Failure):
|
|
263
279
|
if changed_result.failure() == "NO_CHANGES":
|
|
264
|
-
use_agent_output =
|
|
280
|
+
use_agent_output = not human
|
|
265
281
|
if use_agent_output:
|
|
266
282
|
import json
|
|
267
283
|
|
|
@@ -322,8 +338,7 @@ def guard(
|
|
|
322
338
|
report.add_violation(violation)
|
|
323
339
|
|
|
324
340
|
# DX-26: Simplified output mode (TTY auto-detect + --human override)
|
|
325
|
-
use_agent_output =
|
|
326
|
-
|
|
341
|
+
use_agent_output = not human
|
|
327
342
|
# DX-19: Simplified to 2 levels (STATIC or STANDARD)
|
|
328
343
|
verification_level = VerificationLevel.STATIC if static else VerificationLevel.STANDARD
|
|
329
344
|
level_name = "STATIC" if static else "STANDARD"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invar-tools
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.13
|
|
4
4
|
Summary: AI-native software engineering tools with design-by-contract verification
|
|
5
5
|
Project-URL: Homepage, https://github.com/tefx/invar
|
|
6
6
|
Project-URL: Documentation, https://github.com/tefx/invar#readme
|
|
@@ -2681,7 +2681,7 @@ invar/shell/ts_compiler.py,sha256=nA8brnOhThj9J_J3vAEGjDsM4NjbWQ_eX8Yf4pHPOgk,66
|
|
|
2681
2681
|
invar/shell/commands/__init__.py,sha256=MEkKwVyjI9DmkvBpJcuumXo2Pg_FFkfEr-Rr3nrAt7A,284
|
|
2682
2682
|
invar/shell/commands/doc.py,sha256=SOLDoCXXGxx_JU0PKXlAIGEF36PzconHmmAtL-rM6D4,13819
|
|
2683
2683
|
invar/shell/commands/feedback.py,sha256=lLxEeWW_71US_vlmorFrGXS8IARB9nbV6D0zruLs660,7640
|
|
2684
|
-
invar/shell/commands/guard.py,sha256=
|
|
2684
|
+
invar/shell/commands/guard.py,sha256=I1BDqthsAVmz8FnUgwkbhvy2cozmOfjs3rxQwwqFemo,25391
|
|
2685
2685
|
invar/shell/commands/hooks.py,sha256=W-SOnT4VQyUvXwipozkJwgEYfiOJGz7wksrbcdWegUg,2356
|
|
2686
2686
|
invar/shell/commands/init.py,sha256=rtoPFsfq7xRZ6lfTipWT1OejNK5wfzqu1ncXi1kizU0,23634
|
|
2687
2687
|
invar/shell/commands/merge.py,sha256=nuvKo8m32-OL-SCQlS4SLKmOZxQ3qj-1nGCx1Pgzifw,8183
|
|
@@ -2778,10 +2778,10 @@ invar/templates/skills/invar-reflect/template.md,sha256=Rr5hvbllvmd8jSLf_0ZjyKt6
|
|
|
2778
2778
|
invar/templates/skills/investigate/SKILL.md.jinja,sha256=cp6TBEixBYh1rLeeHOR1yqEnFqv1NZYePORMnavLkQI,3231
|
|
2779
2779
|
invar/templates/skills/propose/SKILL.md.jinja,sha256=6BuKiCqO1AEu3VtzMHy1QWGqr_xqG9eJlhbsKT4jev4,3463
|
|
2780
2780
|
invar/templates/skills/review/SKILL.md.jinja,sha256=ET5mbdSe_eKgJbi2LbgFC-z1aviKcHOBw7J5Q28fr4U,14105
|
|
2781
|
-
invar_tools-1.17.
|
|
2782
|
-
invar_tools-1.17.
|
|
2783
|
-
invar_tools-1.17.
|
|
2784
|
-
invar_tools-1.17.
|
|
2785
|
-
invar_tools-1.17.
|
|
2786
|
-
invar_tools-1.17.
|
|
2787
|
-
invar_tools-1.17.
|
|
2781
|
+
invar_tools-1.17.13.dist-info/METADATA,sha256=o7GKebTKZWJJJj3bYPMllH1YTrqhDqlbY5JUdngK6XA,28596
|
|
2782
|
+
invar_tools-1.17.13.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
2783
|
+
invar_tools-1.17.13.dist-info/entry_points.txt,sha256=RwH_EhqgtFPsnO6RcrwrAb70Zyfb8Mh6uUtztWnUxGk,102
|
|
2784
|
+
invar_tools-1.17.13.dist-info/licenses/LICENSE,sha256=qeFksp4H4kfTgQxPCIu3OdagXyiZcgBlVfsQ6M5oFyk,10767
|
|
2785
|
+
invar_tools-1.17.13.dist-info/licenses/LICENSE-GPL,sha256=IvZfC6ZbP7CLjytoHVzvpDZpD-Z3R_qa1GdMdWlWQ6Q,35157
|
|
2786
|
+
invar_tools-1.17.13.dist-info/licenses/NOTICE,sha256=joEyMyFhFY8Vd8tTJ-a3SirI0m2Sd0WjzqYt3sdcglc,2561
|
|
2787
|
+
invar_tools-1.17.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|