invar-tools 1.17.17__py3-none-any.whl → 1.17.18__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/node_tools/eslint-plugin/cli.js +4 -0
- invar/shell/prove/guard_ts.py +16 -3
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/METADATA +1 -1
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/RECORD +9 -9
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/WHEEL +0 -0
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/entry_points.txt +0 -0
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/licenses/LICENSE +0 -0
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/licenses/LICENSE-GPL +0 -0
- {invar_tools-1.17.17.dist-info → invar_tools-1.17.18.dist-info}/licenses/NOTICE +0 -0
invar/shell/prove/guard_ts.py
CHANGED
|
@@ -374,6 +374,19 @@ def _check_tool_available(tool: str, check_args: list[str]) -> bool:
|
|
|
374
374
|
# =============================================================================
|
|
375
375
|
|
|
376
376
|
|
|
377
|
+
def _is_invar_package_dir(package_dir: Path, package_name: str) -> bool:
|
|
378
|
+
package_json = package_dir / "package.json"
|
|
379
|
+
if not package_json.exists():
|
|
380
|
+
return False
|
|
381
|
+
|
|
382
|
+
try:
|
|
383
|
+
data = json.loads(package_json.read_text(encoding="utf-8"))
|
|
384
|
+
except (OSError, json.JSONDecodeError):
|
|
385
|
+
return False
|
|
386
|
+
|
|
387
|
+
return data.get("name") == f"@invar/{package_name}"
|
|
388
|
+
|
|
389
|
+
|
|
377
390
|
# @shell_complexity: Path discovery with fallback logic
|
|
378
391
|
def _get_invar_package_cmd(package_name: str, project_path: Path) -> list[str]:
|
|
379
392
|
"""Get command to run an @invar/* package.
|
|
@@ -395,11 +408,11 @@ def _get_invar_package_cmd(package_name: str, project_path: Path) -> list[str]:
|
|
|
395
408
|
resolved_path = project_path.resolve()
|
|
396
409
|
|
|
397
410
|
local_cli = resolved_path / "typescript" / "packages" / package_name / "dist" / "cli.js"
|
|
398
|
-
if local_cli.exists():
|
|
411
|
+
if local_cli.exists() and _is_invar_package_dir(local_cli.parent.parent, package_name):
|
|
399
412
|
return ["node", str(local_cli)]
|
|
400
413
|
|
|
401
414
|
local_cli = resolved_path / "packages" / package_name / "dist" / "cli.js"
|
|
402
|
-
if local_cli.exists():
|
|
415
|
+
if local_cli.exists() and _is_invar_package_dir(local_cli.parent.parent, package_name):
|
|
403
416
|
return ["node", str(local_cli)]
|
|
404
417
|
|
|
405
418
|
# Priority 2: Embedded tools (from pip install)
|
|
@@ -417,7 +430,7 @@ def _get_invar_package_cmd(package_name: str, project_path: Path) -> list[str]:
|
|
|
417
430
|
check_path = resolved_path
|
|
418
431
|
for _ in range(5): # Max 5 levels up
|
|
419
432
|
candidate = check_path / f"typescript/packages/{package_name}/dist/cli.js"
|
|
420
|
-
if candidate.exists():
|
|
433
|
+
if candidate.exists() and _is_invar_package_dir(candidate.parent.parent, package_name):
|
|
421
434
|
return ["node", str(candidate)]
|
|
422
435
|
parent = check_path.parent
|
|
423
436
|
if parent == check_path:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invar-tools
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.18
|
|
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
|
|
@@ -56,7 +56,7 @@ invar/node_tools/.gitignore,sha256=M2kz8Iw7Kzmi44mKo1r7_HOZMh79a7dFDdRrqXyaEhI,5
|
|
|
56
56
|
invar/node_tools/MANIFEST,sha256=2Z2at-27MK8K7DSjOjjtR4faTbt6eCiKQuEfvP_lwH8,145
|
|
57
57
|
invar/node_tools/__init__.py,sha256=HzILh3jtP28Lm2jZwss1SY65ECxbtw2J2uFpXQA6Y94,1740
|
|
58
58
|
invar/node_tools/ts-query.js,sha256=fEc_f0JT_Mb18dEoA4_vJoazvd7Lqv_rsed4eHSAbCg,13303
|
|
59
|
-
invar/node_tools/eslint-plugin/cli.js,sha256=
|
|
59
|
+
invar/node_tools/eslint-plugin/cli.js,sha256=nnL-ZiuGON77c_iI5HzcOEOujQZqGHNjaoMWZzRFMhE,8204
|
|
60
60
|
invar/node_tools/eslint-plugin/cli.js.map,sha256=AZt_DYAD6NnHGjR6oxXfGYaOHc6-vfDs0ENvYsbw5Ro,4489
|
|
61
61
|
invar/node_tools/eslint-plugin/index.js,sha256=atrI37dn1yDznQrgKY-1xIhLnCdvJQTU53123ZI_9J4,5132
|
|
62
62
|
invar/node_tools/eslint-plugin/index.js.map,sha256=MlFuNso9sZ4v9ggGJLyMq4Pt_JdEzP1OyouyCCki1wA,2344
|
|
@@ -2697,7 +2697,7 @@ invar/shell/prove/__init__.py,sha256=ZqlbmyMFJf6yAle8634jFuPRv8wNvHps8loMlOJyf8A
|
|
|
2697
2697
|
invar/shell/prove/accept.py,sha256=cnY_6jzU1EBnpLF8-zWUWcXiSXtCwxPsXEYXsSVPG38,3717
|
|
2698
2698
|
invar/shell/prove/cache.py,sha256=jbNdrvfLjvK7S0iqugErqeabb4YIbQuwIlcSRyCKbcg,4105
|
|
2699
2699
|
invar/shell/prove/crosshair.py,sha256=XhJDsQWIriX9SuqeflUYvJgp9gJTDH7I7Uka6zjNzZ0,16734
|
|
2700
|
-
invar/shell/prove/guard_ts.py,sha256=
|
|
2700
|
+
invar/shell/prove/guard_ts.py,sha256=8InEWFd6oqFxBUEaAdlqOvPi43p0VZKxJIrAaF0eReU,37936
|
|
2701
2701
|
invar/shell/prove/hypothesis.py,sha256=QUclOOUg_VB6wbmHw8O2EPiL5qBOeBRqQeM04AVuLw0,9880
|
|
2702
2702
|
invar/templates/CLAUDE.md.template,sha256=eaGU3SyRO_NEifw5b26k3srgQH4jyeujjCJ-HbM36_w,4913
|
|
2703
2703
|
invar/templates/__init__.py,sha256=cb3ht8KPK5oBn5oG6HsTznujmo9WriJ_P--fVxJwycc,45
|
|
@@ -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.18.dist-info/METADATA,sha256=WbBqPPXAsiwB7rCjrpDjnYYBjGy-a1uEpjWoRdbkHO8,28596
|
|
2782
|
+
invar_tools-1.17.18.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
2783
|
+
invar_tools-1.17.18.dist-info/entry_points.txt,sha256=RwH_EhqgtFPsnO6RcrwrAb70Zyfb8Mh6uUtztWnUxGk,102
|
|
2784
|
+
invar_tools-1.17.18.dist-info/licenses/LICENSE,sha256=qeFksp4H4kfTgQxPCIu3OdagXyiZcgBlVfsQ6M5oFyk,10767
|
|
2785
|
+
invar_tools-1.17.18.dist-info/licenses/LICENSE-GPL,sha256=IvZfC6ZbP7CLjytoHVzvpDZpD-Z3R_qa1GdMdWlWQ6Q,35157
|
|
2786
|
+
invar_tools-1.17.18.dist-info/licenses/NOTICE,sha256=joEyMyFhFY8Vd8tTJ-a3SirI0m2Sd0WjzqYt3sdcglc,2561
|
|
2787
|
+
invar_tools-1.17.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|