invar-tools 1.15.0__tar.gz → 1.15.2__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 (514) hide show
  1. {invar_tools-1.15.0 → invar_tools-1.15.2}/CHANGELOG.md +71 -1
  2. {invar_tools-1.15.0 → invar_tools-1.15.2}/PKG-INFO +1 -1
  3. {invar_tools-1.15.0 → invar_tools-1.15.2}/pyproject.toml +1 -1
  4. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/pi_tools.py +7 -0
  5. invar_tools-1.15.2/src/invar/templates/pi-tools/invar/index.ts +594 -0
  6. invar_tools-1.15.0/src/invar/templates/pi-tools/invar/index.ts +0 -207
  7. {invar_tools-1.15.0 → invar_tools-1.15.2}/.aider.conf.yml +0 -0
  8. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/commands/audit.md +0 -0
  9. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/commands/guard.md +0 -0
  10. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/PostToolUse.sh +0 -0
  11. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/PreToolUse.sh +0 -0
  12. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/Stop.sh +0 -0
  13. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/UserPromptSubmit.sh +0 -0
  14. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/invar.PostToolUse.sh +0 -0
  15. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/invar.PreToolUse.sh +0 -0
  16. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/invar.Stop.sh +0 -0
  17. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/hooks/invar.UserPromptSubmit.sh +0 -0
  18. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/acceptance/SKILL.md +0 -0
  19. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/develop/SKILL.md +0 -0
  20. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-onboard/SKILL.md +0 -0
  21. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-onboard/patterns/python.md +0 -0
  22. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-onboard/patterns/typescript.md +0 -0
  23. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-onboard/templates/assessment.md.jinja +0 -0
  24. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-onboard/templates/roadmap.md.jinja +0 -0
  25. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-reflect/CONFIG.md +0 -0
  26. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-reflect/SKILL.md +0 -0
  27. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/invar-reflect/template.md +0 -0
  28. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/investigate/SKILL.md +0 -0
  29. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/propose/SKILL.md +0 -0
  30. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/review/SKILL.md +0 -0
  31. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/security/SKILL.md +0 -0
  32. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/security/patterns/_common.yaml +0 -0
  33. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/security/patterns/python.yaml +0 -0
  34. {invar_tools-1.15.0 → invar_tools-1.15.2}/.claude/skills/security/patterns/typescript.yaml +0 -0
  35. {invar_tools-1.15.0 → invar_tools-1.15.2}/.cursorrules +0 -0
  36. {invar_tools-1.15.0 → invar_tools-1.15.2}/.github/workflows/ci.yml +0 -0
  37. {invar_tools-1.15.0 → invar_tools-1.15.2}/.github/workflows/publish.yml +0 -0
  38. {invar_tools-1.15.0 → invar_tools-1.15.2}/.gitignore +0 -0
  39. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/archive/sessions-2025-12.md +0 -0
  40. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/context.md +0 -0
  41. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/README.md +0 -0
  42. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/conftest.py +0 -0
  43. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/contracts.py +0 -0
  44. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/core_shell.py +0 -0
  45. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/functional.py +0 -0
  46. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/examples/workflow.md +0 -0
  47. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/feedback/feedback-2026-01-03.md +0 -0
  48. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/mcp-setup.md +0 -0
  49. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/project-additions.md +0 -0
  50. {invar_tools-1.15.0 → invar_tools-1.15.2}/.invar/proposals/TEMPLATE.md +0 -0
  51. {invar_tools-1.15.0 → invar_tools-1.15.2}/.mcp.json +0 -0
  52. {invar_tools-1.15.0 → invar_tools-1.15.2}/.pre-commit-config.yaml +0 -0
  53. {invar_tools-1.15.0 → invar_tools-1.15.2}/.serena/.gitignore +0 -0
  54. {invar_tools-1.15.0 → invar_tools-1.15.2}/.serena/cache/python/document_symbols.pkl +0 -0
  55. {invar_tools-1.15.0 → invar_tools-1.15.2}/.serena/cache/python/raw_document_symbols.pkl +0 -0
  56. {invar_tools-1.15.0 → invar_tools-1.15.2}/.serena/project.yml +0 -0
  57. {invar_tools-1.15.0 → invar_tools-1.15.2}/CLAUDE.md +0 -0
  58. {invar_tools-1.15.0 → invar_tools-1.15.2}/INVAR.md +0 -0
  59. {invar_tools-1.15.0 → invar_tools-1.15.2}/LICENSE +0 -0
  60. {invar_tools-1.15.0 → invar_tools-1.15.2}/LICENSE-GPL +0 -0
  61. {invar_tools-1.15.0 → invar_tools-1.15.2}/NOTICE +0 -0
  62. {invar_tools-1.15.0 → invar_tools-1.15.2}/README.md +0 -0
  63. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/.nojekyll +0 -0
  64. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/agents.md +0 -0
  65. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/design.md +0 -0
  66. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/diagrams.md +0 -0
  67. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guide.md +0 -0
  68. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/aider.md +0 -0
  69. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/cline.md +0 -0
  70. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/continue.md +0 -0
  71. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/cursor.md +0 -0
  72. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/multi-agent.md +0 -0
  73. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/guides/pi.md +0 -0
  74. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/decisions-2024.md +0 -0
  75. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/feedback/compliance-analysis.md +0 -0
  76. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/feedback/feedback-memo.md +0 -0
  77. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/feedback/index.md +0 -0
  78. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/index.md +0 -0
  79. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/original-vision.md +0 -0
  80. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/protocol-evolution.md +0 -0
  81. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/history/research/cruxeval-quick-validation.md +0 -0
  82. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/index.html +0 -0
  83. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/logo.svg +0 -0
  84. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-23-entry-point-detection.md +0 -0
  85. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-25-functional-patterns.md +0 -0
  86. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-29-pure-content-detection.md +0 -0
  87. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-38-contract-quality-rules.md +0 -0
  88. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-60-structured-rules-ssot.md +0 -0
  89. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-61-functional-pattern-guidance.md +0 -0
  90. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-61-implementation-design.md +0 -0
  91. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-62-proactive-reference-reading.md +0 -0
  92. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-68-agent-behavior-optimization.md +0 -0
  93. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-74-experiment-report.md +0 -0
  94. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-75-attention-aware-framework.md +0 -0
  95. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-78-mcp-protocol-sync.md +0 -0
  96. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-79-invar-usage-feedback.md +0 -0
  97. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-80-guard-cli-mcp-alignment.md +0 -0
  98. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/DX-81-multi-agent-init.md +0 -0
  99. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/LX-01-multi-language-feasibility.md +0 -0
  100. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/LX-04-pi-agent-support.md +0 -0
  101. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/LX-07-extension-skills.md +0 -0
  102. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/LX-08-extension-skills-future.md +0 -0
  103. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/LX-09-legacy-onboarding.md +0 -0
  104. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2024-12-21-guard-enhancements.md +0 -0
  105. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2024-12-21-language-inspired-enhancements.md +0 -0
  106. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2024-12-21-test-first-enhancement.md +0 -0
  107. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2025-12-21-dx-improvements.md +0 -0
  108. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2025-12-23-dx-20-property-testing-enhancements.md +0 -0
  109. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/2025-12-23-dx-21-package-and-init.md +0 -0
  110. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/AGENT-IMPROVEMENTS.md +0 -0
  111. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-11-documentation-restructure.md +0 -0
  112. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-12-hypothesis-fallback.md +0 -0
  113. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-13-incremental-prove.md +0 -0
  114. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-14-expanded-prove-usage.md +0 -0
  115. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-16-agent-tool-enforcement.md +0 -0
  116. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-17-workflow-enforcement.md +0 -0
  117. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-22-verification-strategy.md +0 -0
  118. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-24-mechanism-documentation.md +0 -0
  119. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-26-guard-simplification.md +0 -0
  120. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-27-system-prompt-protocol.md +0 -0
  121. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-28-semantic-verification.md +0 -0
  122. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-30-visible-workflow.md +0 -0
  123. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-31-adversarial-reviewer.md +0 -0
  124. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-32-workflow-iteration.md +0 -0
  125. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-33-verification-blind-spots.md +0 -0
  126. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-34-review-cycle.md +0 -0
  127. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-35-workflow-phase-separation.md +0 -0
  128. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-36-documentation-restructuring.md +0 -0
  129. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-37-coverage-integration.md +0 -0
  130. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-39-workflow-efficiency.md +0 -0
  131. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-40-smart-tool-redirect-hook.md +0 -0
  132. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-41-automatic-review-orchestration.md +0 -0
  133. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-42-workflow-auto-routing.md +0 -0
  134. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-43-cross-platform-distribution.md +0 -0
  135. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-45-template-consistency.md +0 -0
  136. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-46-documentation-audit.md +0 -0
  137. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-47-command-skill-naming.md +0 -0
  138. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-48-code-structure-reorganization.md +0 -0
  139. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-49-protocol-distribution-unification.md +0 -0
  140. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-50-workflow-enforcement.md +0 -0
  141. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-51-workflow-phase-visibility.md +0 -0
  142. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-52-venv-dependency-injection.md +0 -0
  143. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-53-review-loop-effectiveness.md +0 -0
  144. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-54-agent-native-context-management.md +0 -0
  145. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-55-claude-init-conflict-resolution.md +0 -0
  146. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-56-template-sync-unification.md +0 -0
  147. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-57-claude-code-hooks.md +0 -0
  148. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-58-document-structure-optimization.md +0 -0
  149. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-63-contracts-first-enforcement.md +0 -0
  150. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-64-version-display-unification.md +0 -0
  151. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-65-single-file-guard.md +0 -0
  152. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-66-escape-hatch-visibility.md +0 -0
  153. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-67-explicit-skill-invocation.md +0 -0
  154. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-69-project-uninstall.md +0 -0
  155. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-70-init-simplification.md +0 -0
  156. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-70-review-isolation.md +0 -0
  157. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-71-skill-command-simplification.md +0 -0
  158. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-72-mandatory-self-review-detection.md +0 -0
  159. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-74-tiered-attention-defense.md +0 -0
  160. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-76-structured-document-query.md +0 -0
  161. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/DX-77-mcp-doc-tools-enhancements.md +0 -0
  162. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-02-agent-portability-analysis.md +0 -0
  163. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-03-multi-agent-support.md +0 -0
  164. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-05-language-agnostic-protocol.md +0 -0
  165. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-06-appendix-guard-comparison.md +0 -0
  166. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-06-typescript-tooling.md +0 -0
  167. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-09-legacy-onboarding.md +0 -0
  168. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/completed/LX-10-typescript-size-limits.md +0 -0
  169. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/proposals/index.md +0 -0
  170. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/agent-information-hierarchy.md +0 -0
  171. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/architecture/index.md +0 -0
  172. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/contracts/advanced.md +0 -0
  173. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/contracts/completeness.md +0 -0
  174. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/contracts/doctests.md +0 -0
  175. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/contracts/index.md +0 -0
  176. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/contracts/pre-post.md +0 -0
  177. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/documentation.md +0 -0
  178. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/index.md +0 -0
  179. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/proposal-workflow.md +0 -0
  180. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/rules/index.md +0 -0
  181. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/rules/severity.md +0 -0
  182. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/verification/crosshair-vs-hypothesis.md +0 -0
  183. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/verification/index.md +0 -0
  184. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/verification/smart-routing.md +0 -0
  185. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/workflow/index.md +0 -0
  186. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/workflow/session-start.md +0 -0
  187. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/reference/workflow/usbv.md +0 -0
  188. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/terminal-gif-guide.md +0 -0
  189. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/test-reports/DX-55-test-report.md +0 -0
  190. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/test-reports/DX-56-test-report.md +0 -0
  191. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/test-reports/DX-58-test-scenario.md +0 -0
  192. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/testing/v1.5.0-stress-test.md +0 -0
  193. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/testing/v1.5.0-test-report.md +0 -0
  194. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/testing/v1.5.0-workflow-compliance.md +0 -0
  195. {invar_tools-1.15.0 → invar_tools-1.15.2}/docs/vision.md +0 -0
  196. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/LICENSE +0 -0
  197. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/README.md +0 -0
  198. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/pyproject.toml +0 -0
  199. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/__init__.py +0 -0
  200. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/contracts.py +0 -0
  201. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/decorators.py +0 -0
  202. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/invariant.py +0 -0
  203. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/relations.py +0 -0
  204. {invar_tools-1.15.0 → invar_tools-1.15.2}/runtime/src/invar_runtime/resource.py +0 -0
  205. {invar_tools-1.15.0 → invar_tools-1.15.2}/scripts/embed_node_tools.py +0 -0
  206. {invar_tools-1.15.0 → invar_tools-1.15.2}/scripts/smart-guard.sh +0 -0
  207. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/core/__init__.py +0 -0
  208. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/__init__.py +0 -0
  209. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/__init__.py +0 -0
  210. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/contracts.py +0 -0
  211. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/doc_edit.py +0 -0
  212. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/doc_parser.py +0 -0
  213. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/entry_points.py +0 -0
  214. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/extraction.py +0 -0
  215. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/feedback.py +0 -0
  216. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/format_specs.py +0 -0
  217. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/format_strategies.py +0 -0
  218. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/formatter.py +0 -0
  219. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/hypothesis_strategies.py +0 -0
  220. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/inspect.py +0 -0
  221. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/lambda_helpers.py +0 -0
  222. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/language.py +0 -0
  223. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/models.py +0 -0
  224. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/must_use.py +0 -0
  225. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/parser.py +0 -0
  226. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/__init__.py +0 -0
  227. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/detector.py +0 -0
  228. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/p0_exhaustive.py +0 -0
  229. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/p0_literal.py +0 -0
  230. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/p0_newtype.py +0 -0
  231. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/p0_nonempty.py +0 -0
  232. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/p0_validation.py +0 -0
  233. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/registry.py +0 -0
  234. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/patterns/types.py +0 -0
  235. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/postcondition_scope.py +0 -0
  236. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/property_gen.py +0 -0
  237. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/purity.py +0 -0
  238. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/purity_heuristics.py +0 -0
  239. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/references.py +0 -0
  240. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/review_trigger.py +0 -0
  241. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/rule_meta.py +0 -0
  242. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/rules.py +0 -0
  243. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/shell_analysis.py +0 -0
  244. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/shell_architecture.py +0 -0
  245. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/strategies.py +0 -0
  246. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/suggestions.py +0 -0
  247. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/sync_helpers.py +0 -0
  248. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/tautology.py +0 -0
  249. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/template_helpers.py +0 -0
  250. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/template_parser.py +0 -0
  251. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/timeout_inference.py +0 -0
  252. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/trivial_detection.py +0 -0
  253. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/ts_parsers.py +0 -0
  254. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/ts_sig_parser.py +0 -0
  255. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/utils.py +0 -0
  256. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/core/verification_routing.py +0 -0
  257. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/mcp/__init__.py +0 -0
  258. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/mcp/__main__.py +0 -0
  259. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/mcp/handlers.py +0 -0
  260. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/mcp/server.py +0 -0
  261. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/MANIFEST +0 -0
  262. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/__init__.py +0 -0
  263. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/fc-runner/cli.js +0 -0
  264. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/quick-check/cli.js +0 -0
  265. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/ts-analyzer/cli.js +0 -0
  266. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/node_tools/ts-query.js +0 -0
  267. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/py.typed +0 -0
  268. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/__init__.py +0 -0
  269. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/claude_hooks.py +0 -0
  270. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/__init__.py +0 -0
  271. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/doc.py +0 -0
  272. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/feedback.py +0 -0
  273. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/guard.py +0 -0
  274. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/hooks.py +0 -0
  275. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/init.py +0 -0
  276. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/merge.py +0 -0
  277. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/mutate.py +0 -0
  278. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/perception.py +0 -0
  279. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/skill.py +0 -0
  280. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/sync_self.py +0 -0
  281. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/template_sync.py +0 -0
  282. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/test.py +0 -0
  283. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/uninstall.py +0 -0
  284. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/commands/update.py +0 -0
  285. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/config.py +0 -0
  286. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/contract_coverage.py +0 -0
  287. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/coverage.py +0 -0
  288. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/doc_tools.py +0 -0
  289. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/fs.py +0 -0
  290. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/git.py +0 -0
  291. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/guard_helpers.py +0 -0
  292. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/guard_output.py +0 -0
  293. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/mcp_config.py +0 -0
  294. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/mutation.py +0 -0
  295. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/pattern_integration.py +0 -0
  296. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/pi_hooks.py +0 -0
  297. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/property_tests.py +0 -0
  298. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/__init__.py +0 -0
  299. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/accept.py +0 -0
  300. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/cache.py +0 -0
  301. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/crosshair.py +0 -0
  302. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/guard_ts.py +0 -0
  303. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/prove/hypothesis.py +0 -0
  304. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/py_refs.py +0 -0
  305. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/skill_manager.py +0 -0
  306. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/subprocess_env.py +0 -0
  307. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/template_engine.py +0 -0
  308. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/templates.py +0 -0
  309. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/testing.py +0 -0
  310. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/shell/ts_compiler.py +0 -0
  311. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/CLAUDE.md.template +0 -0
  312. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/__init__.py +0 -0
  313. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/python/critical-rules.md +0 -0
  314. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/python/quick-reference.md +0 -0
  315. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/typescript/critical-rules.md +0 -0
  316. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/typescript/quick-reference.md +0 -0
  317. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/universal/check-in.md +0 -0
  318. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/universal/skills.md +0 -0
  319. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/universal/tool-selection.md +0 -0
  320. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/claude-md/universal/workflow.md +0 -0
  321. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/commands/audit.md.jinja +0 -0
  322. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/commands/guard.md +0 -0
  323. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/config/AGENT.md.jinja +0 -0
  324. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/config/CLAUDE.md.jinja +0 -0
  325. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/config/context.md.jinja +0 -0
  326. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/config/pre-commit.yaml.jinja +0 -0
  327. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/context.md.template +0 -0
  328. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/README.md +0 -0
  329. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/conftest.py +0 -0
  330. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/contracts.py +0 -0
  331. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/core_shell.py +0 -0
  332. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/functional.py +0 -0
  333. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/python/workflow.md +0 -0
  334. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/README.md +0 -0
  335. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/contracts.ts +0 -0
  336. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/core_shell.ts +0 -0
  337. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/functional.ts +0 -0
  338. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/patterns.md +0 -0
  339. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/examples/typescript/workflow.md +0 -0
  340. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/PostToolUse.sh.jinja +0 -0
  341. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/PreToolUse.sh.jinja +0 -0
  342. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/Stop.sh.jinja +0 -0
  343. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/UserPromptSubmit.sh.jinja +0 -0
  344. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/__init__.py +0 -0
  345. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/hooks/pi/invar.ts.jinja +0 -0
  346. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/manifest.toml +0 -0
  347. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/onboard/assessment.md.jinja +0 -0
  348. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/onboard/patterns/python.md +0 -0
  349. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/onboard/patterns/typescript.md +0 -0
  350. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/onboard/roadmap.md.jinja +0 -0
  351. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/proposal.md.template +0 -0
  352. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/INVAR.md.jinja +0 -0
  353. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/python/architecture-examples.md +0 -0
  354. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/python/contracts-syntax.md +0 -0
  355. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/python/markers.md +0 -0
  356. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/python/tools.md +0 -0
  357. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/python/troubleshooting.md +0 -0
  358. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/typescript/architecture-examples.md +0 -0
  359. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/typescript/contracts-syntax.md +0 -0
  360. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/typescript/markers.md +0 -0
  361. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/typescript/tools.md +0 -0
  362. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/typescript/troubleshooting.md +0 -0
  363. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/architecture.md +0 -0
  364. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/completion.md +0 -0
  365. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/contracts-concept.md +0 -0
  366. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/header.md +0 -0
  367. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/session.md +0 -0
  368. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/six-laws.md +0 -0
  369. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/usbv.md +0 -0
  370. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/protocol/universal/visible-workflow.md +0 -0
  371. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/develop/SKILL.md.jinja +0 -0
  372. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/_registry.yaml +0 -0
  373. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/acceptance/SKILL.md +0 -0
  374. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/invar-onboard/SKILL.md +0 -0
  375. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/invar-onboard/patterns/python.md +0 -0
  376. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/invar-onboard/patterns/typescript.md +0 -0
  377. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/invar-onboard/templates/assessment.md.jinja +0 -0
  378. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/invar-onboard/templates/roadmap.md.jinja +0 -0
  379. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/security/SKILL.md +0 -0
  380. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/security/patterns/_common.yaml +0 -0
  381. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/security/patterns/python.yaml +0 -0
  382. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/extensions/security/patterns/typescript.yaml +0 -0
  383. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/invar-reflect/CONFIG.md +0 -0
  384. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/invar-reflect/SKILL.md +0 -0
  385. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/invar-reflect/template.md +0 -0
  386. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/investigate/SKILL.md.jinja +0 -0
  387. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/propose/SKILL.md.jinja +0 -0
  388. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/invar/templates/skills/review/SKILL.md.jinja +0 -0
  389. {invar_tools-1.15.0 → invar_tools-1.15.2}/src/shell/__init__.py +0 -0
  390. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/__init__.py +0 -0
  391. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/conftest.py +0 -0
  392. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/conftest.py +0 -0
  393. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/README.md +0 -0
  394. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/RESULTS.md +0 -0
  395. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/RESULTS_V2.md +0 -0
  396. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/RESULTS_V4.md +0 -0
  397. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/ground_truth.yaml +0 -0
  398. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/prompts.yaml +0 -0
  399. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/api_client.py +0 -0
  400. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/auth_service.py +0 -0
  401. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/config_manager.py +0 -0
  402. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/data_processor.py +0 -0
  403. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/file_handler.py +0 -0
  404. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario/utils.py +0 -0
  405. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/analytics_engine.py +0 -0
  406. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/ground_truth.yaml +0 -0
  407. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/inventory_manager.py +0 -0
  408. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/notification_service.py +0 -0
  409. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/order_processor.py +0 -0
  410. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/payment_gateway.py +0 -0
  411. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v2/user_service.py +0 -0
  412. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/README.md +0 -0
  413. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/cache_service.py +0 -0
  414. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/calculator.py +0 -0
  415. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/data_processor.py +0 -0
  416. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/ground_truth.yaml +0 -0
  417. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/user_manager.py +0 -0
  418. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v3/validator.py +0 -0
  419. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/.gitignore +0 -0
  420. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/cache/python/document_symbols.pkl +0 -0
  421. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/cache/python/raw_document_symbols.pkl +0 -0
  422. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/.serena/project.yml +0 -0
  423. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/README.md +0 -0
  424. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/config_manager.py +0 -0
  425. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/data_service.py +0 -0
  426. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/ground_truth.yaml +0 -0
  427. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/math_utils.py +0 -0
  428. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/report_generator.py +0 -0
  429. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v4/user_auth.py +0 -0
  430. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/api_gateway.py +0 -0
  431. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/auth_service.py +0 -0
  432. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/cache_handler.py +0 -0
  433. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/config_loader.py +0 -0
  434. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/data_validator.py +0 -0
  435. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/ground_truth.yaml +0 -0
  436. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/metrics_collector.py +0 -0
  437. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/notification_service.py +0 -0
  438. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/payment_processor.py +0 -0
  439. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/report_builder.py +0 -0
  440. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/task_scheduler.py +0 -0
  441. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/user_manager.py +0 -0
  442. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v5/utils.py +0 -0
  443. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/api_gateway.py +0 -0
  444. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/auth_service.py +0 -0
  445. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/cache_handler.py +0 -0
  446. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/config_loader.py +0 -0
  447. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/data_validator.py +0 -0
  448. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/ground_truth.yaml +0 -0
  449. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/metrics_collector.py +0 -0
  450. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/notification_service.py +0 -0
  451. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/payment_processor.py +0 -0
  452. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/report_builder.py +0 -0
  453. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/task_scheduler.py +0 -0
  454. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/user_manager.py +0 -0
  455. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v6/utils.py +0 -0
  456. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/api_service.py +0 -0
  457. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/auth_manager.py +0 -0
  458. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/data_processor.py +0 -0
  459. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/ground_truth.yaml +0 -0
  460. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/report_engine.py +0 -0
  461. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/storage_handler.py +0 -0
  462. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/experiments/dx74_attention_drift/scenario_v7/utils.py +0 -0
  463. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/__init__.py +0 -0
  464. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_cli_flags.py +0 -0
  465. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_dx55_regression.py +0 -0
  466. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_dx56_sync.py +0 -0
  467. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_dx78_ts_compiler.py +0 -0
  468. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_lx05_detection.py +0 -0
  469. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_lx05_integration.py +0 -0
  470. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_lx05_templates.py +0 -0
  471. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_lx06_typescript.py +0 -0
  472. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_lx07_skills.py +0 -0
  473. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/integration/test_mcp_doc_tools.py +0 -0
  474. {invar_tools-1.15.0 → invar_tools-1.15.2}/tests/test_subprocess_env.py +0 -0
  475. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/.gitignore +0 -0
  476. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/README.md +0 -0
  477. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/package.json +0 -0
  478. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/node_modules/.bin/acorn +0 -0
  479. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/node_modules/.bin/eslint +0 -0
  480. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/node_modules/.bin/tsc +0 -0
  481. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/node_modules/.bin/tsserver +0 -0
  482. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/package.json +0 -0
  483. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/index.ts +0 -0
  484. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/rules/no-any-in-schema.ts +0 -0
  485. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/rules/no-io-in-core.ts +0 -0
  486. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/rules/require-jsdoc-example.ts +0 -0
  487. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/rules/require-schema-validation.ts +0 -0
  488. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/src/rules/shell-result-type.ts +0 -0
  489. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/eslint-plugin/tsconfig.json +0 -0
  490. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/node_modules/.bin/tsc +0 -0
  491. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/node_modules/.bin/tsserver +0 -0
  492. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/package.json +0 -0
  493. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/src/cli.ts +0 -0
  494. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/src/index.ts +0 -0
  495. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/fc-runner/tsconfig.json +0 -0
  496. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/node_modules/.bin/acorn +0 -0
  497. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/node_modules/.bin/eslint +0 -0
  498. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/node_modules/.bin/tsc +0 -0
  499. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/node_modules/.bin/tsserver +0 -0
  500. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/package.json +0 -0
  501. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/src/cli.ts +0 -0
  502. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/src/index.ts +0 -0
  503. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/quick-check/tsconfig.json +0 -0
  504. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/node_modules/.bin/tsc +0 -0
  505. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/node_modules/.bin/tsserver +0 -0
  506. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/package.json +0 -0
  507. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/src/cli.ts +0 -0
  508. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/src/index.ts +0 -0
  509. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/packages/ts-analyzer/tsconfig.json +0 -0
  510. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/pnpm-workspace.yaml +0 -0
  511. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/scripts/bundle.mjs +0 -0
  512. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/tsconfig.base.json +0 -0
  513. {invar_tools-1.15.0 → invar_tools-1.15.2}/typescript/vitest.config.ts +0 -0
  514. {invar_tools-1.15.0 → invar_tools-1.15.2}/uv.lock +0 -0
@@ -7,6 +7,74 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+
11
+
12
+
13
+ ## [1.15.2] - 2026-01-03
14
+
15
+ ### Fixed
16
+ - **Pi Custom Tools: ESLint Compatibility** - Removed CommonJS require() calls
17
+ - Moved `fs` and `path` imports to top-level ES module imports
18
+ - Removed internal `require("fs")` and `require("path")` calls in doc tools
19
+ - Fixed in `doc_replace` and `doc_insert` execute methods
20
+ - **Resolves critical bug** where custom tools failed to load:
21
+ - `invar_map()`: "Failed to generate map"
22
+ - `invar_sig()`: "Failed to get signatures"
23
+ - `invar_guard()`: Tool calls hanging without response
24
+ - Root cause: ESLint prohibited CommonJS require() in ES modules
25
+ - Pi custom tools now load and execute correctly
26
+
27
+ ## [1.15.1] - 2026-01-03
28
+
29
+ ### Added
30
+ - **Pi Custom Tools: Document Tools** - Added 6 doc tools for structured markdown editing
31
+ - `invar_doc_toc`: Extract document structure (Table of Contents)
32
+ - `invar_doc_read`: Read specific section from a document
33
+ - `invar_doc_find`: Find sections matching a pattern
34
+ - `invar_doc_replace`: Replace section content
35
+ - `invar_doc_insert`: Insert content relative to a section
36
+ - `invar_doc_delete`: Delete a section
37
+ - All tools follow the same security patterns as core tools (path validation, temp file handling)
38
+ - Brings Pi custom tools to parity with MCP server capabilities (9 tools total)
39
+
40
+ ### Fixed
41
+ - **Pi Custom Tools: uvx Fallback Support** - Automatic fallback to `uvx invar-tools`
42
+ - Added `resolveInvarCommand()` helper to replace `checkInvarInstalled()`
43
+ - Try `invar` command first (if installed in PATH)
44
+ - Fallback to `uvx invar-tools` if `invar` not found
45
+ - No installation required - uvx downloads and runs invar-tools on-demand
46
+ - Matches the 3-tier calling method documented in CLAUDE.md
47
+ - All 9 tools updated to use the command resolver
48
+
49
+ ### Added
50
+ - **Pi Custom Tools: Document Tools** - Added 6 doc tools for structured markdown editing
51
+ - `invar_doc_toc`: Extract document structure (Table of Contents)
52
+ - `invar_doc_read`: Read specific section from a document
53
+ - `invar_doc_find`: Find sections matching a pattern
54
+ - `invar_doc_replace`: Replace section content
55
+ - `invar_doc_insert`: Insert content relative to a section
56
+ - `invar_doc_delete`: Delete a section
57
+ - All tools follow the same security patterns as core tools (path validation, temp file handling)
58
+ - Brings Pi custom tools to parity with MCP server capabilities
59
+
60
+ ### Changed
61
+ - **Pi Custom Tools: uvx Fallback Support** - Automatic fallback to `uvx invar-tools`
62
+ - Try `invar` command first (if installed in PATH)
63
+ - Fallback to `uvx invar-tools` if `invar` not found
64
+ - No installation required - uvx downloads and runs invar-tools on-demand
65
+ - Matches the 3-tier calling method documented in CLAUDE.md
66
+
67
+ ### Added
68
+ - **Pi Custom Tools: Document Tools** - Added 6 doc tools for structured markdown editing
69
+ - `invar_doc_toc`: Extract document structure (Table of Contents)
70
+ - `invar_doc_read`: Read specific section from a document
71
+ - `invar_doc_find`: Find sections matching a pattern
72
+ - `invar_doc_replace`: Replace section content
73
+ - `invar_doc_insert`: Insert content relative to a section
74
+ - `invar_doc_delete`: Delete a section
75
+ - All tools follow the same security patterns as core tools (path validation, temp file handling)
76
+ - Brings Pi custom tools to parity with MCP server capabilities
77
+
10
78
  ## [1.15.0] - 2026-01-03
11
79
 
12
80
  ### Added
@@ -297,7 +365,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
297
365
 
298
366
  ---
299
367
 
300
- [Unreleased]: https://github.com/yourusername/invar/compare/v1.15.0...HEAD
368
+ [Unreleased]: https://github.com/yourusername/invar/compare/v1.15.2...HEAD
369
+ [1.15.2]: https://github.com/yourusername/invar/compare/v1.15.1...v1.15.2
370
+ [1.15.1]: https://github.com/yourusername/invar/compare/v1.15.0...v1.15.1
301
371
  [1.15.0]: https://github.com/yourusername/invar/compare/v1.14.0...v1.15.0
302
372
  [1.14.0]: https://github.com/yourusername/invar/compare/v1.13.0...v1.14.0
303
373
  [1.13.0]: https://github.com/yourusername/invar/compare/v1.12.0...v1.13.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invar-tools
3
- Version: 1.15.0
3
+ Version: 1.15.2
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
@@ -14,7 +14,7 @@ artifacts = ["src/invar/node_tools/**/*.js", "src/invar/node_tools/**/MANIFEST"]
14
14
 
15
15
  [project]
16
16
  name = "invar-tools"
17
- version = "1.15.0"
17
+ version = "1.15.2"
18
18
  description = "AI-native software engineering tools with design-by-contract verification"
19
19
  readme = "README.md"
20
20
  license = "GPL-3.0-or-later"
@@ -35,6 +35,12 @@ def install_pi_tools(
35
35
  - invar_guard: Wrapper for invar guard command
36
36
  - invar_sig: Wrapper for invar sig command
37
37
  - invar_map: Wrapper for invar map command
38
+ - invar_doc_toc: Extract document structure
39
+ - invar_doc_read: Read specific section
40
+ - invar_doc_find: Find sections by pattern
41
+ - invar_doc_replace: Replace section content
42
+ - invar_doc_insert: Insert content relative to section
43
+ - invar_doc_delete: Delete section
38
44
  """
39
45
  tools_dir = project_path / PI_TOOLS_DIR
40
46
  tools_dir.mkdir(parents=True, exist_ok=True)
@@ -44,6 +50,7 @@ def install_pi_tools(
44
50
  console.print(" ✓ invar_guard - Smart verification (static + doctests + symbolic)")
45
51
  console.print(" ✓ invar_sig - Show function signatures and contracts")
46
52
  console.print(" ✓ invar_map - Symbol map with reference counts")
53
+ console.print(" ✓ 6 doc tools - Structured markdown editing (toc, read, find, replace, insert, delete)")
47
54
  console.print("")
48
55
 
49
56
  template_path = get_pi_tools_template_path()