invar-tools 1.17.15__py3-none-any.whl → 1.17.16__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 +15 -4
- invar/shell/prove/guard_ts.py +10 -3
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/METADATA +1 -1
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/RECORD +9 -9
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/WHEEL +0 -0
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/entry_points.txt +0 -0
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/licenses/LICENSE +0 -0
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/licenses/LICENSE-GPL +0 -0
- {invar_tools-1.17.15.dist-info → invar_tools-1.17.16.dist-info}/licenses/NOTICE +0 -0
|
@@ -98,8 +98,9 @@ async function main() {
|
|
|
98
98
|
// This allows ESLint to find embedded node_modules in site-packages
|
|
99
99
|
const eslint = new ESLint({
|
|
100
100
|
useEslintrc: false, // Don't load .eslintrc files
|
|
101
|
-
cwd:
|
|
101
|
+
cwd: projectPath, // Use project directory as working directory (fix for timeout issue)
|
|
102
102
|
resolvePluginsRelativeTo: __dirname, // Resolve plugins from embedded location
|
|
103
|
+
errorOnUnmatchedPattern: false, // Don't fail if no .tsx files found
|
|
103
104
|
baseConfig: {
|
|
104
105
|
parser: '@typescript-eslint/parser', // Will resolve from __dirname/node_modules
|
|
105
106
|
parserOptions: {
|
|
@@ -108,6 +109,15 @@ async function main() {
|
|
|
108
109
|
},
|
|
109
110
|
plugins: ['@invar'],
|
|
110
111
|
rules: selectedConfig.rules,
|
|
112
|
+
ignorePatterns: [
|
|
113
|
+
// Explicit ignores to prevent scanning generated/cached directories
|
|
114
|
+
'**/node_modules/**',
|
|
115
|
+
'**/.next/**',
|
|
116
|
+
'**/dist/**',
|
|
117
|
+
'**/build/**',
|
|
118
|
+
'**/.cache/**',
|
|
119
|
+
'**/coverage/**',
|
|
120
|
+
],
|
|
111
121
|
},
|
|
112
122
|
plugins: {
|
|
113
123
|
'@invar': plugin, // Register plugin directly
|
|
@@ -125,11 +135,12 @@ async function main() {
|
|
|
125
135
|
filesToLint = [projectPath];
|
|
126
136
|
}
|
|
127
137
|
else if (stats.isDirectory()) {
|
|
128
|
-
// Directory - use glob patterns for TypeScript files
|
|
138
|
+
// Directory - use relative glob patterns for TypeScript files
|
|
129
139
|
// Note: Focus on TypeScript files as this is a TypeScript Guard tool
|
|
140
|
+
// Use relative patterns (no projectPath prefix) since cwd is set to projectPath
|
|
130
141
|
filesToLint = [
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
"**/*.ts",
|
|
143
|
+
"**/*.tsx",
|
|
133
144
|
];
|
|
134
145
|
}
|
|
135
146
|
else {
|
invar/shell/prove/guard_ts.py
CHANGED
|
@@ -402,7 +402,13 @@ def _get_invar_package_cmd(package_name: str, project_path: Path) -> list[str]:
|
|
|
402
402
|
# Resolve to absolute path to avoid path doubling issues
|
|
403
403
|
resolved_path = project_path.resolve()
|
|
404
404
|
|
|
405
|
-
# Priority
|
|
405
|
+
# Priority 1: Project-local override (for custom/modified tools)
|
|
406
|
+
# Allows projects to override embedded tools with local builds
|
|
407
|
+
local_cli = resolved_path / "typescript" / "packages" / package_name / "dist" / "cli.js"
|
|
408
|
+
if local_cli.exists():
|
|
409
|
+
return ["node", str(local_cli)]
|
|
410
|
+
|
|
411
|
+
# Priority 2: Embedded tools (from pip install)
|
|
406
412
|
# Check both possible locations:
|
|
407
413
|
# - resolved_path / "typescript" / "packages" / package_name / "dist" / "cli.js"
|
|
408
414
|
# - resolved_path / "packages" / package_name / "dist" / "cli.js"
|
|
@@ -414,7 +420,9 @@ def _get_invar_package_cmd(package_name: str, project_path: Path) -> list[str]:
|
|
|
414
420
|
if local_cli.exists():
|
|
415
421
|
return ["node", str(local_cli)]
|
|
416
422
|
|
|
417
|
-
# Priority
|
|
423
|
+
# Priority 3b: Walk up to find the Invar root (monorepo setup)
|
|
424
|
+
# This is intentional for monorepo development - allows running from subdirectories
|
|
425
|
+
# Only searches up to 5 levels to limit exposure
|
|
418
426
|
check_path = resolved_path
|
|
419
427
|
for _ in range(5): # Max 5 levels up
|
|
420
428
|
candidate = check_path / f"typescript/packages/{package_name}/dist/cli.js"
|
|
@@ -816,7 +824,6 @@ def run_eslint(project_path: Path) -> Result[list[TypeScriptViolation], str]:
|
|
|
816
824
|
if result.returncode != 0 and result.stderr:
|
|
817
825
|
return Failure(f"ESLint error: {result.stderr[:200]}")
|
|
818
826
|
return Failure("ESLint output parsing failed: JSON decode error")
|
|
819
|
-
return Failure("ESLint output parsing failed: JSON decode error")
|
|
820
827
|
|
|
821
828
|
return Success(violations)
|
|
822
829
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invar-tools
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.16
|
|
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
|
|
@@ -60,7 +60,7 @@ invar/node_tools/ts-query.js,sha256=fEc_f0JT_Mb18dEoA4_vJoazvd7Lqv_rsed4eHSAbCg,
|
|
|
60
60
|
invar/node_tools/eslint-plugin/bundle.js,sha256=tLtiwps3DtugRPxtp6RQoxEOkMxOQsessh6aCxcdEEA,56144
|
|
61
61
|
invar/node_tools/eslint-plugin/cli.d.ts,sha256=mWidsJzkCvGtSHF_lykPNP3-w_Kolur7rEbdAI2772k,515
|
|
62
62
|
invar/node_tools/eslint-plugin/cli.d.ts.map,sha256=DTUMceS-L2533vlJQT_y3p8TsQWPmbmQzqlcdjwnaFc,122
|
|
63
|
-
invar/node_tools/eslint-plugin/cli.js,sha256=
|
|
63
|
+
invar/node_tools/eslint-plugin/cli.js,sha256=R-Ny11nkTyGuPD72rcjy23qvkdzaHcCFt-B3jxN2-_k,7467
|
|
64
64
|
invar/node_tools/eslint-plugin/cli.js.map,sha256=AZt_DYAD6NnHGjR6oxXfGYaOHc6-vfDs0ENvYsbw5Ro,4489
|
|
65
65
|
invar/node_tools/eslint-plugin/index.d.ts,sha256=Z9XMvdXtx8ajI19283CHQr8XppNHQuvVB73mndSreTc,3250
|
|
66
66
|
invar/node_tools/eslint-plugin/index.d.ts.map,sha256=rAPcxrQWC5hytkMg1TnIKk99CTMJix3D3PG9OmMTJxQ,443
|
|
@@ -5969,7 +5969,7 @@ invar/shell/prove/__init__.py,sha256=ZqlbmyMFJf6yAle8634jFuPRv8wNvHps8loMlOJyf8A
|
|
|
5969
5969
|
invar/shell/prove/accept.py,sha256=cnY_6jzU1EBnpLF8-zWUWcXiSXtCwxPsXEYXsSVPG38,3717
|
|
5970
5970
|
invar/shell/prove/cache.py,sha256=jbNdrvfLjvK7S0iqugErqeabb4YIbQuwIlcSRyCKbcg,4105
|
|
5971
5971
|
invar/shell/prove/crosshair.py,sha256=XhJDsQWIriX9SuqeflUYvJgp9gJTDH7I7Uka6zjNzZ0,16734
|
|
5972
|
-
invar/shell/prove/guard_ts.py,sha256=
|
|
5972
|
+
invar/shell/prove/guard_ts.py,sha256=Ssbkc4h7zVHhg2q3e1yAaE4N7hgT-aRWMPmnwjuoRa0,37866
|
|
5973
5973
|
invar/shell/prove/hypothesis.py,sha256=QUclOOUg_VB6wbmHw8O2EPiL5qBOeBRqQeM04AVuLw0,9880
|
|
5974
5974
|
invar/templates/CLAUDE.md.template,sha256=eaGU3SyRO_NEifw5b26k3srgQH4jyeujjCJ-HbM36_w,4913
|
|
5975
5975
|
invar/templates/__init__.py,sha256=cb3ht8KPK5oBn5oG6HsTznujmo9WriJ_P--fVxJwycc,45
|
|
@@ -6050,10 +6050,10 @@ invar/templates/skills/invar-reflect/template.md,sha256=Rr5hvbllvmd8jSLf_0ZjyKt6
|
|
|
6050
6050
|
invar/templates/skills/investigate/SKILL.md.jinja,sha256=cp6TBEixBYh1rLeeHOR1yqEnFqv1NZYePORMnavLkQI,3231
|
|
6051
6051
|
invar/templates/skills/propose/SKILL.md.jinja,sha256=6BuKiCqO1AEu3VtzMHy1QWGqr_xqG9eJlhbsKT4jev4,3463
|
|
6052
6052
|
invar/templates/skills/review/SKILL.md.jinja,sha256=ET5mbdSe_eKgJbi2LbgFC-z1aviKcHOBw7J5Q28fr4U,14105
|
|
6053
|
-
invar_tools-1.17.
|
|
6054
|
-
invar_tools-1.17.
|
|
6055
|
-
invar_tools-1.17.
|
|
6056
|
-
invar_tools-1.17.
|
|
6057
|
-
invar_tools-1.17.
|
|
6058
|
-
invar_tools-1.17.
|
|
6059
|
-
invar_tools-1.17.
|
|
6053
|
+
invar_tools-1.17.16.dist-info/METADATA,sha256=nclVxT-j5bTQ38-NXiyMmuNLnwOIwzuFqLF5aESJzbU,28596
|
|
6054
|
+
invar_tools-1.17.16.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
6055
|
+
invar_tools-1.17.16.dist-info/entry_points.txt,sha256=RwH_EhqgtFPsnO6RcrwrAb70Zyfb8Mh6uUtztWnUxGk,102
|
|
6056
|
+
invar_tools-1.17.16.dist-info/licenses/LICENSE,sha256=qeFksp4H4kfTgQxPCIu3OdagXyiZcgBlVfsQ6M5oFyk,10767
|
|
6057
|
+
invar_tools-1.17.16.dist-info/licenses/LICENSE-GPL,sha256=IvZfC6ZbP7CLjytoHVzvpDZpD-Z3R_qa1GdMdWlWQ6Q,35157
|
|
6058
|
+
invar_tools-1.17.16.dist-info/licenses/NOTICE,sha256=joEyMyFhFY8Vd8tTJ-a3SirI0m2Sd0WjzqYt3sdcglc,2561
|
|
6059
|
+
invar_tools-1.17.16.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|