invar-tools 1.3.2__tar.gz → 1.4.0__tar.gz

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.
Files changed (235) hide show
  1. {invar_tools-1.3.2 → invar_tools-1.4.0}/.github/workflows/publish.yml +0 -27
  2. {invar_tools-1.3.2 → invar_tools-1.4.0}/PKG-INFO +14 -9
  3. {invar_tools-1.3.2 → invar_tools-1.4.0}/README.md +13 -8
  4. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/agents.md +1 -1
  5. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/design.md +4 -4
  6. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/index.html +2 -2
  7. {invar_tools-1.3.2 → invar_tools-1.4.0}/pyproject.toml +2 -1
  8. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/README.md +1 -1
  9. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/templates.py +2 -2
  10. invar_tools-1.4.0/tests/integration/__init__.py +0 -0
  11. {invar_tools-1.3.2 → invar_tools-1.4.0}/.aider.conf.yml +0 -0
  12. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/commands/audit.md +0 -0
  13. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/commands/guard.md +0 -0
  14. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/skills/develop/SKILL.md +0 -0
  15. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/skills/investigate/SKILL.md +0 -0
  16. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/skills/propose/SKILL.md +0 -0
  17. {invar_tools-1.3.2 → invar_tools-1.4.0}/.claude/skills/review/SKILL.md +0 -0
  18. {invar_tools-1.3.2 → invar_tools-1.4.0}/.cursorrules +0 -0
  19. {invar_tools-1.3.2 → invar_tools-1.4.0}/.github/workflows/ci.yml +0 -0
  20. {invar_tools-1.3.2 → invar_tools-1.4.0}/.gitignore +0 -0
  21. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/archive/sessions-2025-12.md +0 -0
  22. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/context.md +0 -0
  23. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/examples/README.md +0 -0
  24. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/examples/conftest.py +0 -0
  25. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/examples/contracts.py +0 -0
  26. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/examples/core_shell.py +0 -0
  27. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/examples/workflow.md +0 -0
  28. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/project-additions.md +0 -0
  29. {invar_tools-1.3.2 → invar_tools-1.4.0}/.invar/proposals/TEMPLATE.md +0 -0
  30. {invar_tools-1.3.2 → invar_tools-1.4.0}/.mcp.json +0 -0
  31. {invar_tools-1.3.2 → invar_tools-1.4.0}/.pre-commit-config.yaml +0 -0
  32. {invar_tools-1.3.2 → invar_tools-1.4.0}/.serena/.gitignore +0 -0
  33. {invar_tools-1.3.2 → invar_tools-1.4.0}/.serena/project.yml +0 -0
  34. {invar_tools-1.3.2 → invar_tools-1.4.0}/CLAUDE.md +0 -0
  35. {invar_tools-1.3.2 → invar_tools-1.4.0}/INVAR.md +0 -0
  36. {invar_tools-1.3.2 → invar_tools-1.4.0}/LICENSE +0 -0
  37. {invar_tools-1.3.2 → invar_tools-1.4.0}/LICENSE-GPL +0 -0
  38. {invar_tools-1.3.2 → invar_tools-1.4.0}/NOTICE +0 -0
  39. /invar_tools-1.3.2/src/invar/py.typed → /invar_tools-1.4.0/docs/.nojekyll +0 -0
  40. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/diagrams.md +0 -0
  41. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/guide.md +0 -0
  42. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/decisions-2024.md +0 -0
  43. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/feedback/compliance-analysis.md +0 -0
  44. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/feedback/feedback-memo.md +0 -0
  45. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/feedback/index.md +0 -0
  46. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/index.md +0 -0
  47. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/original-vision.md +0 -0
  48. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/protocol-evolution.md +0 -0
  49. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/history/research/cruxeval-quick-validation.md +0 -0
  50. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/logo.svg +0 -0
  51. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-23-entry-point-detection.md +0 -0
  52. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-25-functional-patterns.md +0 -0
  53. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-29-pure-content-detection.md +0 -0
  54. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-37-coverage-integration.md +0 -0
  55. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-38-contract-quality-rules.md +0 -0
  56. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-39-workflow-efficiency.md +0 -0
  57. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-40-smart-tool-redirect-hook.md +0 -0
  58. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-41-automatic-review-orchestration.md +0 -0
  59. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-42-workflow-auto-routing.md +0 -0
  60. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-43-cross-platform-distribution.md +0 -0
  61. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-46-documentation-audit.md +0 -0
  62. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-48-code-structure-reorganization.md +0 -0
  63. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-49-protocol-distribution-unification.md +0 -0
  64. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-50-workflow-enforcement.md +0 -0
  65. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-51-workflow-phase-visibility.md +0 -0
  66. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-52-venv-dependency-injection.md +0 -0
  67. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-53-review-loop-effectiveness.md +0 -0
  68. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-54-agent-native-context-management.md +0 -0
  69. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-55-claude-init-conflict-resolution.md +0 -0
  70. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-56-template-sync-unification.md +0 -0
  71. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-60-structured-rules-ssot.md +0 -0
  72. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/DX-61-functional-pattern-guidance.md +0 -0
  73. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/LX-01-multi-language-feasibility.md +0 -0
  74. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2024-12-21-guard-enhancements.md +0 -0
  75. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2024-12-21-language-inspired-enhancements.md +0 -0
  76. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2024-12-21-test-first-enhancement.md +0 -0
  77. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2025-12-21-dx-improvements.md +0 -0
  78. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2025-12-23-dx-20-property-testing-enhancements.md +0 -0
  79. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/2025-12-23-dx-21-package-and-init.md +0 -0
  80. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/AGENT-IMPROVEMENTS.md +0 -0
  81. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-11-documentation-restructure.md +0 -0
  82. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-12-hypothesis-fallback.md +0 -0
  83. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-13-incremental-prove.md +0 -0
  84. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-14-expanded-prove-usage.md +0 -0
  85. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-16-agent-tool-enforcement.md +0 -0
  86. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-17-workflow-enforcement.md +0 -0
  87. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-22-verification-strategy.md +0 -0
  88. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-24-mechanism-documentation.md +0 -0
  89. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-26-guard-simplification.md +0 -0
  90. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-27-system-prompt-protocol.md +0 -0
  91. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-28-semantic-verification.md +0 -0
  92. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-30-visible-workflow.md +0 -0
  93. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-31-adversarial-reviewer.md +0 -0
  94. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-32-workflow-iteration.md +0 -0
  95. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-33-verification-blind-spots.md +0 -0
  96. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-34-review-cycle.md +0 -0
  97. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-35-workflow-phase-separation.md +0 -0
  98. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-36-documentation-restructuring.md +0 -0
  99. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-45-template-consistency.md +0 -0
  100. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-47-command-skill-naming.md +0 -0
  101. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-57-claude-code-hooks.md +0 -0
  102. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/completed/DX-58-document-structure-optimization.md +0 -0
  103. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/proposals/index.md +0 -0
  104. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/architecture/index.md +0 -0
  105. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/contracts/advanced.md +0 -0
  106. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/contracts/completeness.md +0 -0
  107. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/contracts/doctests.md +0 -0
  108. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/contracts/index.md +0 -0
  109. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/contracts/pre-post.md +0 -0
  110. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/documentation.md +0 -0
  111. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/index.md +0 -0
  112. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/proposal-workflow.md +0 -0
  113. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/rules/index.md +0 -0
  114. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/rules/severity.md +0 -0
  115. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/verification/crosshair-vs-hypothesis.md +0 -0
  116. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/verification/index.md +0 -0
  117. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/verification/smart-routing.md +0 -0
  118. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/workflow/index.md +0 -0
  119. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/workflow/session-start.md +0 -0
  120. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/reference/workflow/usbv.md +0 -0
  121. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/terminal-gif-guide.md +0 -0
  122. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/test-reports/DX-55-test-report.md +0 -0
  123. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/test-reports/DX-56-test-report.md +0 -0
  124. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/test-reports/DX-58-test-scenario.md +0 -0
  125. {invar_tools-1.3.2 → invar_tools-1.4.0}/docs/vision.md +0 -0
  126. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/LICENSE +0 -0
  127. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/pyproject.toml +0 -0
  128. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/__init__.py +0 -0
  129. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/contracts.py +0 -0
  130. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/decorators.py +0 -0
  131. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/invariant.py +0 -0
  132. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/relations.py +0 -0
  133. {invar_tools-1.3.2 → invar_tools-1.4.0}/runtime/src/invar_runtime/resource.py +0 -0
  134. {invar_tools-1.3.2 → invar_tools-1.4.0}/scripts/smart-guard.sh +0 -0
  135. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/__init__.py +0 -0
  136. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/__init__.py +0 -0
  137. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/contracts.py +0 -0
  138. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/entry_points.py +0 -0
  139. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/extraction.py +0 -0
  140. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/format_specs.py +0 -0
  141. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/format_strategies.py +0 -0
  142. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/formatter.py +0 -0
  143. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/hypothesis_strategies.py +0 -0
  144. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/inspect.py +0 -0
  145. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/lambda_helpers.py +0 -0
  146. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/models.py +0 -0
  147. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/must_use.py +0 -0
  148. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/parser.py +0 -0
  149. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/postcondition_scope.py +0 -0
  150. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/property_gen.py +0 -0
  151. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/purity.py +0 -0
  152. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/purity_heuristics.py +0 -0
  153. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/references.py +0 -0
  154. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/review_trigger.py +0 -0
  155. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/rule_meta.py +0 -0
  156. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/rules.py +0 -0
  157. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/shell_analysis.py +0 -0
  158. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/shell_architecture.py +0 -0
  159. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/strategies.py +0 -0
  160. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/suggestions.py +0 -0
  161. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/sync_helpers.py +0 -0
  162. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/tautology.py +0 -0
  163. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/template_parser.py +0 -0
  164. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/timeout_inference.py +0 -0
  165. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/utils.py +0 -0
  166. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/core/verification_routing.py +0 -0
  167. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/mcp/__init__.py +0 -0
  168. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/mcp/__main__.py +0 -0
  169. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/mcp/server.py +0 -0
  170. /invar_tools-1.3.2/tests/integration/__init__.py → /invar_tools-1.4.0/src/invar/py.typed +0 -0
  171. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/__init__.py +0 -0
  172. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/claude_hooks.py +0 -0
  173. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/__init__.py +0 -0
  174. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/guard.py +0 -0
  175. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/hooks.py +0 -0
  176. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/init.py +0 -0
  177. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/merge.py +0 -0
  178. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/mutate.py +0 -0
  179. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/perception.py +0 -0
  180. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/sync_self.py +0 -0
  181. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/template_sync.py +0 -0
  182. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/test.py +0 -0
  183. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/commands/update.py +0 -0
  184. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/config.py +0 -0
  185. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/coverage.py +0 -0
  186. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/fs.py +0 -0
  187. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/git.py +0 -0
  188. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/guard_helpers.py +0 -0
  189. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/guard_output.py +0 -0
  190. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/mcp_config.py +0 -0
  191. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/mutation.py +0 -0
  192. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/property_tests.py +0 -0
  193. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/prove/__init__.py +0 -0
  194. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/prove/accept.py +0 -0
  195. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/prove/cache.py +0 -0
  196. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/prove/crosshair.py +0 -0
  197. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/prove/hypothesis.py +0 -0
  198. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/subprocess_env.py +0 -0
  199. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/template_engine.py +0 -0
  200. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/shell/testing.py +0 -0
  201. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/CLAUDE.md.template +0 -0
  202. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/__init__.py +0 -0
  203. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/aider.conf.yml.template +0 -0
  204. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/commands/audit.md +0 -0
  205. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/commands/guard.md +0 -0
  206. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/config/CLAUDE.md.jinja +0 -0
  207. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/config/context.md.jinja +0 -0
  208. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/config/pre-commit.yaml.jinja +0 -0
  209. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/context.md.template +0 -0
  210. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/cursorrules.template +0 -0
  211. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/examples/README.md +0 -0
  212. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/examples/conftest.py +0 -0
  213. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/examples/contracts.py +0 -0
  214. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/examples/core_shell.py +0 -0
  215. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/examples/workflow.md +0 -0
  216. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/hooks/PostToolUse.sh.jinja +0 -0
  217. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/hooks/PreToolUse.sh.jinja +0 -0
  218. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/hooks/Stop.sh.jinja +0 -0
  219. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/hooks/UserPromptSubmit.sh.jinja +0 -0
  220. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/hooks/__init__.py +0 -0
  221. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/manifest.toml +0 -0
  222. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/pre-commit-config.yaml.template +0 -0
  223. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/proposal.md.template +0 -0
  224. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/protocol/INVAR.md +0 -0
  225. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/skills/develop/SKILL.md.jinja +0 -0
  226. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/skills/investigate/SKILL.md.jinja +0 -0
  227. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/skills/propose/SKILL.md.jinja +0 -0
  228. {invar_tools-1.3.2 → invar_tools-1.4.0}/src/invar/templates/skills/review/SKILL.md.jinja +0 -0
  229. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/__init__.py +0 -0
  230. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/conftest.py +0 -0
  231. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/integration/test_cli_flags.py +0 -0
  232. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/integration/test_dx55_regression.py +0 -0
  233. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/integration/test_dx56_sync.py +0 -0
  234. {invar_tools-1.3.2 → invar_tools-1.4.0}/tests/test_subprocess_env.py +0 -0
  235. {invar_tools-1.3.2 → invar_tools-1.4.0}/uv.lock +0 -0
@@ -59,30 +59,3 @@ jobs:
59
59
  skip-existing: true
60
60
  # Uses trusted publishing - configure at pypi.org/manage/project/invar-tools/settings/publishing/
61
61
 
62
- publish-deprecated:
63
- name: Publish python-invar (deprecated)
64
- runs-on: ubuntu-latest
65
- needs: publish-tools # Deprecated package depends on invar-tools
66
- permissions:
67
- id-token: write # Required for trusted publishing
68
-
69
- steps:
70
- - uses: actions/checkout@v4
71
-
72
- - name: Set up Python
73
- uses: actions/setup-python@v5
74
- with:
75
- python-version: "3.11"
76
-
77
- - name: Install build tools
78
- run: pip install build
79
-
80
- - name: Build python-invar package
81
- run: python -m build deprecated/python-invar/
82
-
83
- - name: Publish python-invar to PyPI
84
- uses: pypa/gh-action-pypi-publish@release/v1
85
- with:
86
- packages-dir: deprecated/python-invar/dist/
87
- skip-existing: true
88
- # Uses trusted publishing - configure at pypi.org/manage/project/python-invar/settings/publishing/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invar-tools
3
- Version: 1.3.2
3
+ Version: 1.4.0
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
@@ -114,38 +114,43 @@ Guard passed.
114
114
  │ │ └── dependencies = ["invar-runtime"] ← Ships with code │
115
115
  │ │ │
116
116
  │ └── Development (never enters production) │
117
- │ └── uvx --from invar-tools invar guard ← Guides agents │
117
+ │ └── uvx invar-tools guard ← Guides agents │
118
118
  └───────────────────────────────────────────────────────────────────┘
119
119
  ```
120
120
 
121
121
  | Package | Purpose | Install |
122
122
  |---------|---------|---------|
123
123
  | **invar-runtime** | Runtime contracts. Add to your project dependencies. | `pip install invar-runtime` |
124
- | **invar-tools** | Development tools. Guides agents during development. | `uvx --from invar-tools invar <cmd>` |
124
+ | **invar-tools** | Development tools. Guides agents during development. | `uvx invar-tools <cmd>` |
125
125
 
126
126
  **Why uvx?** Always uses latest version, doesn't pollute project dependencies, auto-detects your project's venv.
127
127
 
128
128
  ### 🆕 New Project
129
129
 
130
130
  ```bash
131
- # 1. Initialize with Claude Code (full experience)
132
- uvx --from invar-tools invar init --claude
131
+ # 1. Enter your project directory
132
+ cd your-project
133
133
 
134
- # 2. Add runtime contracts to your project
134
+ # 2. Initialize with Claude Code (full experience)
135
+ uvx invar-tools init --claude
136
+
137
+ # 3. Add runtime contracts to your project
135
138
  pip install invar-runtime
136
139
  # Or add to pyproject.toml: dependencies = ["invar-runtime"]
137
140
 
138
- # 3. Start coding with AI
141
+ # 4. Start coding with AI
139
142
  ```
140
143
 
141
144
  ### 📁 Existing Project
142
145
 
143
146
  ```bash
147
+ cd your-project
148
+
144
149
  # Update managed files, preserve your customizations
145
- uvx --from invar-tools invar init --claude
150
+ uvx invar-tools init --claude
146
151
 
147
152
  # Or without Claude Code integration
148
- uvx --from invar-tools invar init
153
+ uvx invar-tools init
149
154
  ```
150
155
 
151
156
  Invar's init is idempotent—safe to run multiple times. It detects existing configuration and updates only managed regions.
@@ -73,38 +73,43 @@ Guard passed.
73
73
  │ │ └── dependencies = ["invar-runtime"] ← Ships with code │
74
74
  │ │ │
75
75
  │ └── Development (never enters production) │
76
- │ └── uvx --from invar-tools invar guard ← Guides agents │
76
+ │ └── uvx invar-tools guard ← Guides agents │
77
77
  └───────────────────────────────────────────────────────────────────┘
78
78
  ```
79
79
 
80
80
  | Package | Purpose | Install |
81
81
  |---------|---------|---------|
82
82
  | **invar-runtime** | Runtime contracts. Add to your project dependencies. | `pip install invar-runtime` |
83
- | **invar-tools** | Development tools. Guides agents during development. | `uvx --from invar-tools invar <cmd>` |
83
+ | **invar-tools** | Development tools. Guides agents during development. | `uvx invar-tools <cmd>` |
84
84
 
85
85
  **Why uvx?** Always uses latest version, doesn't pollute project dependencies, auto-detects your project's venv.
86
86
 
87
87
  ### 🆕 New Project
88
88
 
89
89
  ```bash
90
- # 1. Initialize with Claude Code (full experience)
91
- uvx --from invar-tools invar init --claude
90
+ # 1. Enter your project directory
91
+ cd your-project
92
92
 
93
- # 2. Add runtime contracts to your project
93
+ # 2. Initialize with Claude Code (full experience)
94
+ uvx invar-tools init --claude
95
+
96
+ # 3. Add runtime contracts to your project
94
97
  pip install invar-runtime
95
98
  # Or add to pyproject.toml: dependencies = ["invar-runtime"]
96
99
 
97
- # 3. Start coding with AI
100
+ # 4. Start coding with AI
98
101
  ```
99
102
 
100
103
  ### 📁 Existing Project
101
104
 
102
105
  ```bash
106
+ cd your-project
107
+
103
108
  # Update managed files, preserve your customizations
104
- uvx --from invar-tools invar init --claude
109
+ uvx invar-tools init --claude
105
110
 
106
111
  # Or without Claude Code integration
107
- uvx --from invar-tools invar init
112
+ uvx invar-tools init
108
113
  ```
109
114
 
110
115
  Invar's init is idempotent—safe to run multiple times. It detects existing configuration and updates only managed regions.
@@ -345,7 +345,7 @@ Invar provides MCP (Model Context Protocol) tools for deeper integration with Cl
345
345
  ### Setup
346
346
 
347
347
  ```bash
348
- uvx --from invar-tools invar init # Auto-creates .mcp.json at project root
348
+ uvx invar-tools init # Auto-creates .mcp.json at project root
349
349
  # or: invar init (if installed globally)
350
350
  ```
351
351
 
@@ -351,7 +351,7 @@ jobs:
351
351
  # --strict: treat warnings as errors
352
352
  ```
353
353
 
354
- > **Tip:** Use `uvx --from invar-tools invar guard` locally to run without installing.
354
+ > **Tip:** Use `uvx invar-tools guard` locally to run without installing.
355
355
 
356
356
  ---
357
357
 
@@ -1012,8 +1012,8 @@ invar-tools (PyPI)
1012
1012
 
1013
1013
  ```bash
1014
1014
  # Recommended: use without installing (always latest)
1015
- uvx --from invar-tools invar guard
1016
- uvx --from invar-tools invar init --claude
1015
+ uvx invar-tools guard
1016
+ uvx invar-tools init --claude
1017
1017
 
1018
1018
  # Or install globally
1019
1019
  pip install invar-tools
@@ -1025,7 +1025,7 @@ pip install invar-runtime
1025
1025
  ### `invar init` Behavior
1026
1026
 
1027
1027
  ```bash
1028
- $ uvx --from invar-tools invar init --claude
1028
+ $ uvx invar-tools init --claude
1029
1029
 
1030
1030
  ✓ Added [tool.invar.guard] to pyproject.toml
1031
1031
  ✓ Created INVAR.md (Invar Protocol)
@@ -664,11 +664,11 @@
664
664
  <p class="subtitle">One command to set up your project</p>
665
665
 
666
666
  <div class="install-command">
667
- <code>uvx --from invar-tools invar init --claude</code>
667
+ <code>cd your-project && uvx invar-tools init --claude</code>
668
668
  </div>
669
669
 
670
670
  <p class="install-note">
671
- No install required. <code>uvx</code> runs tools in an isolated environment.
671
+ Enter your project directory first. <code>uvx</code> runs tools in an isolated environment.
672
672
  Add <code>pip install invar-runtime</code> for runtime contracts.
673
673
  </p>
674
674
 
@@ -10,7 +10,7 @@ packages = ["src/invar"]
10
10
 
11
11
  [project]
12
12
  name = "invar-tools"
13
- version = "1.3.2"
13
+ version = "1.4.0"
14
14
  description = "AI-native software engineering tools with design-by-contract verification"
15
15
  readme = "README.md"
16
16
  license = "GPL-3.0-or-later"
@@ -60,6 +60,7 @@ dev = [
60
60
 
61
61
  [project.scripts]
62
62
  invar = "invar.shell.commands.guard:app"
63
+ invar-tools = "invar.shell.commands.guard:app"
63
64
 
64
65
  [project.urls]
65
66
  Homepage = "https://github.com/tefx/invar"
@@ -100,7 +100,7 @@ For static analysis and verification tools, install `invar-tools`:
100
100
  ```bash
101
101
  pip install invar-tools
102
102
  # or use without installing:
103
- uvx --from invar-tools invar guard
103
+ uvx invar-tools guard
104
104
  ```
105
105
 
106
106
  ## License
@@ -434,7 +434,7 @@ Find your Python path: `python -c "import sys; print(sys.executable)"`
434
434
 
435
435
  ```bash
436
436
  # Recommended: use uvx (no installation needed)
437
- uvx --from invar-tools invar guard
437
+ uvx invar-tools guard
438
438
 
439
439
  # Or install globally
440
440
  pip install invar-tools
@@ -449,7 +449,7 @@ Run the MCP server directly:
449
449
 
450
450
  ```bash
451
451
  # Using uvx
452
- uvx --from invar-tools invar mcp
452
+ uvx invar-tools mcp
453
453
 
454
454
  # Or if installed
455
455
  invar mcp
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes