pactkit 2.3.0__tar.gz → 2.3.3__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 (943) hide show
  1. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/pactkit.yaml +9 -1
  2. {pactkit-2.3.0 → pactkit-2.3.3}/CHANGELOG.md +24 -0
  3. {pactkit-2.3.0 → pactkit-2.3.3}/PKG-INFO +26 -13
  4. {pactkit-2.3.0 → pactkit-2.3.3}/README.md +25 -12
  5. {pactkit-2.3.0 → pactkit-2.3.3}/pyproject.toml +1 -1
  6. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/__init__.py +1 -1
  7. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/cli.py +45 -12
  8. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/config.py +44 -0
  9. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/guards.py +19 -1
  10. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/lazy_visualize.py +14 -0
  11. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/agents.py +1 -1
  12. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/commands.py +60 -50
  13. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/rules.py +40 -8
  14. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/workflows.py +10 -3
  15. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/skills/board.py +4 -0
  16. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_agent_features.py +2 -2
  17. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_agents_enrichment.py +1 -1
  18. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim006.py +0 -1
  19. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_config.py +2 -2
  20. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_prompt_structural_invariants.py +2 -2
  21. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_selective_deploy.py +1 -1
  22. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story020_horizon.py +1 -1
  23. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story023_test_quality.py +1 -1
  24. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim011_command_rules.py +5 -5
  25. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_context.py +0 -1
  26. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_lazy_viz.py +3 -3
  27. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_validators.py +1 -2
  28. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim015_doctor.py +4 -3
  29. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim016_testmap_lint.py +3 -2
  30. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim017.py +0 -1
  31. pactkit-2.3.3/tests/unit/test_story_slim019_plan_subphases.py +101 -0
  32. pactkit-2.3.3/tests/unit/test_story_slim020_explore_stall_fix.py +91 -0
  33. pactkit-2.3.3/tests/unit/test_story_slim021.py +199 -0
  34. pactkit-2.3.3/tests/unit/test_story_slim022.py +335 -0
  35. pactkit-2.3.3/tests/unit/test_story_slim023.py +132 -0
  36. {pactkit-2.3.0 → pactkit-2.3.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  37. {pactkit-2.3.0 → pactkit-2.3.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  38. {pactkit-2.3.0 → pactkit-2.3.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  39. {pactkit-2.3.0 → pactkit-2.3.3}/.github/dependabot.yml +0 -0
  40. {pactkit-2.3.0 → pactkit-2.3.3}/.github/workflows/ci.yml +0 -0
  41. {pactkit-2.3.0 → pactkit-2.3.3}/.github/workflows/pactkit.yml +0 -0
  42. {pactkit-2.3.0 → pactkit-2.3.3}/.gitignore +0 -0
  43. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/.gitignore +0 -0
  44. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/bun.lock +0 -0
  45. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/memory/.gitignore +0 -0
  46. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/memory/project.md +0 -0
  47. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/@opencode-ai/plugin/package.json +0 -0
  48. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/@opencode-ai/sdk/package.json +0 -0
  49. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/LICENSE +0 -0
  50. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/README.md +0 -0
  51. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/index.cjs +0 -0
  52. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/index.d.cts +0 -0
  53. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/index.d.ts +0 -0
  54. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/index.js +0 -0
  55. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/locales/index.cjs +0 -0
  56. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/locales/index.d.cts +0 -0
  57. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/locales/index.d.ts +0 -0
  58. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/locales/index.js +0 -0
  59. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/locales/package.json +0 -0
  60. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/mini/index.cjs +0 -0
  61. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/mini/index.d.cts +0 -0
  62. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/mini/index.d.ts +0 -0
  63. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/mini/index.js +0 -0
  64. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/mini/package.json +0 -0
  65. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/package.json +0 -0
  66. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/index.ts +0 -0
  67. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/locales/index.ts +0 -0
  68. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/mini/index.ts +0 -0
  69. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/ZodError.ts +0 -0
  70. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -0
  71. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -0
  72. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/index.ts +0 -0
  73. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -0
  74. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/object.ts +0 -0
  75. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -0
  76. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -0
  77. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/string.ts +0 -0
  78. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/benchmarks/union.ts +0 -0
  79. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/errors.ts +0 -0
  80. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/external.ts +0 -0
  81. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -0
  82. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -0
  83. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -0
  84. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -0
  85. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -0
  86. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/helpers/util.ts +0 -0
  87. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/index.ts +0 -0
  88. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/locales/en.ts +0 -0
  89. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/standard-schema.ts +0 -0
  90. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/Mocker.ts +0 -0
  91. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -0
  92. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -0
  93. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/array.test.ts +0 -0
  94. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -0
  95. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -0
  96. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/base.test.ts +0 -0
  97. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/bigint.test.ts +0 -0
  98. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/branded.test.ts +0 -0
  99. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/catch.test.ts +0 -0
  100. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/coerce.test.ts +0 -0
  101. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/complex.test.ts +0 -0
  102. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/custom.test.ts +0 -0
  103. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/date.test.ts +0 -0
  104. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -0
  105. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/default.test.ts +0 -0
  106. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/description.test.ts +0 -0
  107. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -0
  108. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/enum.test.ts +0 -0
  109. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/error.test.ts +0 -0
  110. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -0
  111. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -0
  112. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/function.test.ts +0 -0
  113. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/generics.test.ts +0 -0
  114. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -0
  115. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/intersection.test.ts +0 -0
  116. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/language-server.source.ts +0 -0
  117. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/language-server.test.ts +0 -0
  118. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/literal.test.ts +0 -0
  119. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/map.test.ts +0 -0
  120. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/masking.test.ts +0 -0
  121. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/mocker.test.ts +0 -0
  122. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/nan.test.ts +0 -0
  123. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -0
  124. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/nullable.test.ts +0 -0
  125. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/number.test.ts +0 -0
  126. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -0
  127. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -0
  128. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/object.test.ts +0 -0
  129. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/optional.test.ts +0 -0
  130. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -0
  131. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/parser.test.ts +0 -0
  132. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/partials.test.ts +0 -0
  133. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -0
  134. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -0
  135. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -0
  136. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/primitive.test.ts +0 -0
  137. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/promise.test.ts +0 -0
  138. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/readonly.test.ts +0 -0
  139. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/record.test.ts +0 -0
  140. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/recursive.test.ts +0 -0
  141. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/refine.test.ts +0 -0
  142. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -0
  143. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/set.test.ts +0 -0
  144. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -0
  145. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/string.test.ts +0 -0
  146. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/transformer.test.ts +0 -0
  147. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/tuple.test.ts +0 -0
  148. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/unions.test.ts +0 -0
  149. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/validations.test.ts +0 -0
  150. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/tests/void.test.ts +0 -0
  151. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v3/types.ts +0 -0
  152. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/checks.ts +0 -0
  153. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/coerce.ts +0 -0
  154. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/compat.ts +0 -0
  155. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/errors.ts +0 -0
  156. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/external.ts +0 -0
  157. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/index.ts +0 -0
  158. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/iso.ts +0 -0
  159. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/parse.ts +0 -0
  160. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/schemas.ts +0 -0
  161. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -0
  162. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -0
  163. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -0
  164. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -0
  165. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -0
  166. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -0
  167. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -0
  168. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -0
  169. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -0
  170. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -0
  171. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -0
  172. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -0
  173. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -0
  174. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -0
  175. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -0
  176. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -0
  177. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -0
  178. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -0
  179. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -0
  180. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -0
  181. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -0
  182. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -0
  183. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -0
  184. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -0
  185. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -0
  186. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -0
  187. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -0
  188. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -0
  189. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -0
  190. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -0
  191. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -0
  192. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -0
  193. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -0
  194. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -0
  195. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -0
  196. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -0
  197. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -0
  198. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -0
  199. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -0
  200. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -0
  201. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -0
  202. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -0
  203. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -0
  204. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -0
  205. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -0
  206. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -0
  207. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -0
  208. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -0
  209. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -0
  210. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -0
  211. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -0
  212. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -0
  213. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -0
  214. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -0
  215. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -0
  216. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -0
  217. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -0
  218. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -0
  219. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -0
  220. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -0
  221. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -0
  222. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -0
  223. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -0
  224. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -0
  225. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -0
  226. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -0
  227. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -0
  228. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/api.ts +0 -0
  229. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/checks.ts +0 -0
  230. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/config.ts +0 -0
  231. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/core.ts +0 -0
  232. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/doc.ts +0 -0
  233. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/errors.ts +0 -0
  234. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/index.ts +0 -0
  235. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/json-schema.ts +0 -0
  236. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/parse.ts +0 -0
  237. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/regexes.ts +0 -0
  238. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/registries.ts +0 -0
  239. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/schemas.ts +0 -0
  240. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/standard-schema.ts +0 -0
  241. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -0
  242. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/index.test.ts +0 -0
  243. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -0
  244. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -0
  245. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -0
  246. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -0
  247. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -0
  248. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/to-json-schema.ts +0 -0
  249. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/util.ts +0 -0
  250. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/versions.ts +0 -0
  251. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/core/zsf.ts +0 -0
  252. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/index.ts +0 -0
  253. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ar.ts +0 -0
  254. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/az.ts +0 -0
  255. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/be.ts +0 -0
  256. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/bg.ts +0 -0
  257. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ca.ts +0 -0
  258. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/cs.ts +0 -0
  259. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/da.ts +0 -0
  260. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/de.ts +0 -0
  261. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/en.ts +0 -0
  262. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/eo.ts +0 -0
  263. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/es.ts +0 -0
  264. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/fa.ts +0 -0
  265. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/fi.ts +0 -0
  266. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/fr-CA.ts +0 -0
  267. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/fr.ts +0 -0
  268. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/he.ts +0 -0
  269. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/hu.ts +0 -0
  270. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/id.ts +0 -0
  271. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/index.ts +0 -0
  272. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/is.ts +0 -0
  273. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/it.ts +0 -0
  274. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ja.ts +0 -0
  275. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ka.ts +0 -0
  276. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/kh.ts +0 -0
  277. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/km.ts +0 -0
  278. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ko.ts +0 -0
  279. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/lt.ts +0 -0
  280. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/mk.ts +0 -0
  281. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ms.ts +0 -0
  282. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/nl.ts +0 -0
  283. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/no.ts +0 -0
  284. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ota.ts +0 -0
  285. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/pl.ts +0 -0
  286. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ps.ts +0 -0
  287. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/pt.ts +0 -0
  288. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ru.ts +0 -0
  289. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/sl.ts +0 -0
  290. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/sv.ts +0 -0
  291. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ta.ts +0 -0
  292. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/th.ts +0 -0
  293. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/tr.ts +0 -0
  294. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ua.ts +0 -0
  295. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/uk.ts +0 -0
  296. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/ur.ts +0 -0
  297. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/vi.ts +0 -0
  298. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/yo.ts +0 -0
  299. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/zh-CN.ts +0 -0
  300. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/locales/zh-TW.ts +0 -0
  301. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/checks.ts +0 -0
  302. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/coerce.ts +0 -0
  303. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/external.ts +0 -0
  304. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/index.ts +0 -0
  305. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/iso.ts +0 -0
  306. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/parse.ts +0 -0
  307. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/schemas.ts +0 -0
  308. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -0
  309. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -0
  310. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -0
  311. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -0
  312. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -0
  313. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -0
  314. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -0
  315. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -0
  316. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -0
  317. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -0
  318. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -0
  319. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -0
  320. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -0
  321. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/src/v4-mini/index.ts +0 -0
  322. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/ZodError.cjs +0 -0
  323. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/ZodError.d.cts +0 -0
  324. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/ZodError.d.ts +0 -0
  325. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/ZodError.js +0 -0
  326. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/errors.cjs +0 -0
  327. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/errors.d.cts +0 -0
  328. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/errors.d.ts +0 -0
  329. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/errors.js +0 -0
  330. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/external.cjs +0 -0
  331. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/external.d.cts +0 -0
  332. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/external.d.ts +0 -0
  333. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/external.js +0 -0
  334. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/enumUtil.cjs +0 -0
  335. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -0
  336. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -0
  337. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/enumUtil.js +0 -0
  338. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/errorUtil.cjs +0 -0
  339. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -0
  340. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -0
  341. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/errorUtil.js +0 -0
  342. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/parseUtil.cjs +0 -0
  343. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -0
  344. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -0
  345. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/parseUtil.js +0 -0
  346. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/partialUtil.cjs +0 -0
  347. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -0
  348. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -0
  349. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/partialUtil.js +0 -0
  350. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/typeAliases.cjs +0 -0
  351. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -0
  352. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -0
  353. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/typeAliases.js +0 -0
  354. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/util.cjs +0 -0
  355. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/util.d.cts +0 -0
  356. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/util.d.ts +0 -0
  357. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/helpers/util.js +0 -0
  358. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/index.cjs +0 -0
  359. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/index.d.cts +0 -0
  360. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/index.d.ts +0 -0
  361. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/index.js +0 -0
  362. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/locales/en.cjs +0 -0
  363. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/locales/en.d.cts +0 -0
  364. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/locales/en.d.ts +0 -0
  365. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/locales/en.js +0 -0
  366. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/package.json +0 -0
  367. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/standard-schema.cjs +0 -0
  368. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/standard-schema.d.cts +0 -0
  369. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/standard-schema.d.ts +0 -0
  370. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/standard-schema.js +0 -0
  371. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/types.cjs +0 -0
  372. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/types.d.cts +0 -0
  373. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/types.d.ts +0 -0
  374. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v3/types.js +0 -0
  375. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/checks.cjs +0 -0
  376. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/checks.d.cts +0 -0
  377. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/checks.d.ts +0 -0
  378. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/checks.js +0 -0
  379. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/coerce.cjs +0 -0
  380. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/coerce.d.cts +0 -0
  381. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/coerce.d.ts +0 -0
  382. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/coerce.js +0 -0
  383. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/compat.cjs +0 -0
  384. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/compat.d.cts +0 -0
  385. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/compat.d.ts +0 -0
  386. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/compat.js +0 -0
  387. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/errors.cjs +0 -0
  388. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/errors.d.cts +0 -0
  389. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/errors.d.ts +0 -0
  390. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/errors.js +0 -0
  391. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/external.cjs +0 -0
  392. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/external.d.cts +0 -0
  393. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/external.d.ts +0 -0
  394. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/external.js +0 -0
  395. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/index.cjs +0 -0
  396. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/index.d.cts +0 -0
  397. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/index.d.ts +0 -0
  398. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/index.js +0 -0
  399. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/iso.cjs +0 -0
  400. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/iso.d.cts +0 -0
  401. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/iso.d.ts +0 -0
  402. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/iso.js +0 -0
  403. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/package.json +0 -0
  404. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/parse.cjs +0 -0
  405. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/parse.d.cts +0 -0
  406. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/parse.d.ts +0 -0
  407. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/parse.js +0 -0
  408. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/schemas.cjs +0 -0
  409. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/schemas.d.cts +0 -0
  410. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/schemas.d.ts +0 -0
  411. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/classic/schemas.js +0 -0
  412. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/api.cjs +0 -0
  413. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/api.d.cts +0 -0
  414. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/api.d.ts +0 -0
  415. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/api.js +0 -0
  416. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/checks.cjs +0 -0
  417. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/checks.d.cts +0 -0
  418. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/checks.d.ts +0 -0
  419. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/checks.js +0 -0
  420. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/core.cjs +0 -0
  421. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/core.d.cts +0 -0
  422. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/core.d.ts +0 -0
  423. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/core.js +0 -0
  424. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/doc.cjs +0 -0
  425. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/doc.d.cts +0 -0
  426. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/doc.d.ts +0 -0
  427. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/doc.js +0 -0
  428. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/errors.cjs +0 -0
  429. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/errors.d.cts +0 -0
  430. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/errors.d.ts +0 -0
  431. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/errors.js +0 -0
  432. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/index.cjs +0 -0
  433. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/index.d.cts +0 -0
  434. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/index.d.ts +0 -0
  435. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/index.js +0 -0
  436. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/json-schema.cjs +0 -0
  437. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/json-schema.d.cts +0 -0
  438. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/json-schema.d.ts +0 -0
  439. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/json-schema.js +0 -0
  440. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/package.json +0 -0
  441. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/parse.cjs +0 -0
  442. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/parse.d.cts +0 -0
  443. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/parse.d.ts +0 -0
  444. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/parse.js +0 -0
  445. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/regexes.cjs +0 -0
  446. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/regexes.d.cts +0 -0
  447. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/regexes.d.ts +0 -0
  448. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/regexes.js +0 -0
  449. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/registries.cjs +0 -0
  450. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/registries.d.cts +0 -0
  451. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/registries.d.ts +0 -0
  452. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/registries.js +0 -0
  453. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/schemas.cjs +0 -0
  454. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/schemas.d.cts +0 -0
  455. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/schemas.d.ts +0 -0
  456. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/schemas.js +0 -0
  457. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/standard-schema.cjs +0 -0
  458. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/standard-schema.d.cts +0 -0
  459. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/standard-schema.d.ts +0 -0
  460. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/standard-schema.js +0 -0
  461. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/to-json-schema.cjs +0 -0
  462. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/to-json-schema.d.cts +0 -0
  463. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/to-json-schema.d.ts +0 -0
  464. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/to-json-schema.js +0 -0
  465. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/util.cjs +0 -0
  466. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/util.d.cts +0 -0
  467. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/util.d.ts +0 -0
  468. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/util.js +0 -0
  469. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/versions.cjs +0 -0
  470. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/versions.d.cts +0 -0
  471. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/versions.d.ts +0 -0
  472. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/core/versions.js +0 -0
  473. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/index.cjs +0 -0
  474. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/index.d.cts +0 -0
  475. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/index.d.ts +0 -0
  476. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/index.js +0 -0
  477. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ar.cjs +0 -0
  478. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ar.d.cts +0 -0
  479. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ar.d.ts +0 -0
  480. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ar.js +0 -0
  481. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/az.cjs +0 -0
  482. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/az.d.cts +0 -0
  483. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/az.d.ts +0 -0
  484. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/az.js +0 -0
  485. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/be.cjs +0 -0
  486. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/be.d.cts +0 -0
  487. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/be.d.ts +0 -0
  488. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/be.js +0 -0
  489. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/bg.cjs +0 -0
  490. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/bg.d.cts +0 -0
  491. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/bg.d.ts +0 -0
  492. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/bg.js +0 -0
  493. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ca.cjs +0 -0
  494. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ca.d.cts +0 -0
  495. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ca.d.ts +0 -0
  496. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ca.js +0 -0
  497. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/cs.cjs +0 -0
  498. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/cs.d.cts +0 -0
  499. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/cs.d.ts +0 -0
  500. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/cs.js +0 -0
  501. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/da.cjs +0 -0
  502. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/da.d.cts +0 -0
  503. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/da.d.ts +0 -0
  504. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/da.js +0 -0
  505. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/de.cjs +0 -0
  506. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/de.d.cts +0 -0
  507. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/de.d.ts +0 -0
  508. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/de.js +0 -0
  509. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/en.cjs +0 -0
  510. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/en.d.cts +0 -0
  511. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/en.d.ts +0 -0
  512. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/en.js +0 -0
  513. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/eo.cjs +0 -0
  514. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/eo.d.cts +0 -0
  515. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/eo.d.ts +0 -0
  516. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/eo.js +0 -0
  517. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/es.cjs +0 -0
  518. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/es.d.cts +0 -0
  519. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/es.d.ts +0 -0
  520. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/es.js +0 -0
  521. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fa.cjs +0 -0
  522. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fa.d.cts +0 -0
  523. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fa.d.ts +0 -0
  524. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fa.js +0 -0
  525. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fi.cjs +0 -0
  526. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fi.d.cts +0 -0
  527. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fi.d.ts +0 -0
  528. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fi.js +0 -0
  529. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr-CA.cjs +0 -0
  530. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr-CA.d.cts +0 -0
  531. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr-CA.d.ts +0 -0
  532. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr-CA.js +0 -0
  533. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr.cjs +0 -0
  534. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr.d.cts +0 -0
  535. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr.d.ts +0 -0
  536. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/fr.js +0 -0
  537. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/he.cjs +0 -0
  538. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/he.d.cts +0 -0
  539. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/he.d.ts +0 -0
  540. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/he.js +0 -0
  541. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/hu.cjs +0 -0
  542. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/hu.d.cts +0 -0
  543. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/hu.d.ts +0 -0
  544. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/hu.js +0 -0
  545. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/id.cjs +0 -0
  546. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/id.d.cts +0 -0
  547. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/id.d.ts +0 -0
  548. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/id.js +0 -0
  549. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/index.cjs +0 -0
  550. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/index.d.cts +0 -0
  551. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/index.d.ts +0 -0
  552. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/index.js +0 -0
  553. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/is.cjs +0 -0
  554. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/is.d.cts +0 -0
  555. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/is.d.ts +0 -0
  556. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/is.js +0 -0
  557. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/it.cjs +0 -0
  558. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/it.d.cts +0 -0
  559. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/it.d.ts +0 -0
  560. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/it.js +0 -0
  561. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ja.cjs +0 -0
  562. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ja.d.cts +0 -0
  563. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ja.d.ts +0 -0
  564. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ja.js +0 -0
  565. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ka.cjs +0 -0
  566. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ka.d.cts +0 -0
  567. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ka.d.ts +0 -0
  568. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ka.js +0 -0
  569. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/kh.cjs +0 -0
  570. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/kh.d.cts +0 -0
  571. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/kh.d.ts +0 -0
  572. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/kh.js +0 -0
  573. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/km.cjs +0 -0
  574. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/km.d.cts +0 -0
  575. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/km.d.ts +0 -0
  576. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/km.js +0 -0
  577. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ko.cjs +0 -0
  578. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ko.d.cts +0 -0
  579. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ko.d.ts +0 -0
  580. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ko.js +0 -0
  581. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/lt.cjs +0 -0
  582. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/lt.d.cts +0 -0
  583. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/lt.d.ts +0 -0
  584. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/lt.js +0 -0
  585. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/mk.cjs +0 -0
  586. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/mk.d.cts +0 -0
  587. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/mk.d.ts +0 -0
  588. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/mk.js +0 -0
  589. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ms.cjs +0 -0
  590. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ms.d.cts +0 -0
  591. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ms.d.ts +0 -0
  592. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ms.js +0 -0
  593. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/nl.cjs +0 -0
  594. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/nl.d.cts +0 -0
  595. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/nl.d.ts +0 -0
  596. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/nl.js +0 -0
  597. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/no.cjs +0 -0
  598. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/no.d.cts +0 -0
  599. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/no.d.ts +0 -0
  600. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/no.js +0 -0
  601. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ota.cjs +0 -0
  602. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ota.d.cts +0 -0
  603. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ota.d.ts +0 -0
  604. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ota.js +0 -0
  605. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/package.json +0 -0
  606. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pl.cjs +0 -0
  607. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pl.d.cts +0 -0
  608. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pl.d.ts +0 -0
  609. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pl.js +0 -0
  610. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ps.cjs +0 -0
  611. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ps.d.cts +0 -0
  612. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ps.d.ts +0 -0
  613. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ps.js +0 -0
  614. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pt.cjs +0 -0
  615. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pt.d.cts +0 -0
  616. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pt.d.ts +0 -0
  617. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/pt.js +0 -0
  618. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ru.cjs +0 -0
  619. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ru.d.cts +0 -0
  620. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ru.d.ts +0 -0
  621. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ru.js +0 -0
  622. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sl.cjs +0 -0
  623. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sl.d.cts +0 -0
  624. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sl.d.ts +0 -0
  625. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sl.js +0 -0
  626. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sv.cjs +0 -0
  627. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sv.d.cts +0 -0
  628. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sv.d.ts +0 -0
  629. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/sv.js +0 -0
  630. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ta.cjs +0 -0
  631. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ta.d.cts +0 -0
  632. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ta.d.ts +0 -0
  633. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ta.js +0 -0
  634. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/th.cjs +0 -0
  635. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/th.d.cts +0 -0
  636. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/th.d.ts +0 -0
  637. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/th.js +0 -0
  638. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/tr.cjs +0 -0
  639. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/tr.d.cts +0 -0
  640. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/tr.d.ts +0 -0
  641. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/tr.js +0 -0
  642. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ua.cjs +0 -0
  643. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ua.d.cts +0 -0
  644. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ua.d.ts +0 -0
  645. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ua.js +0 -0
  646. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/uk.cjs +0 -0
  647. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/uk.d.cts +0 -0
  648. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/uk.d.ts +0 -0
  649. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/uk.js +0 -0
  650. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ur.cjs +0 -0
  651. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ur.d.cts +0 -0
  652. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ur.d.ts +0 -0
  653. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/ur.js +0 -0
  654. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/vi.cjs +0 -0
  655. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/vi.d.cts +0 -0
  656. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/vi.d.ts +0 -0
  657. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/vi.js +0 -0
  658. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/yo.cjs +0 -0
  659. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/yo.d.cts +0 -0
  660. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/yo.d.ts +0 -0
  661. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/yo.js +0 -0
  662. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-CN.cjs +0 -0
  663. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-CN.d.cts +0 -0
  664. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-CN.d.ts +0 -0
  665. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-CN.js +0 -0
  666. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-TW.cjs +0 -0
  667. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-TW.d.cts +0 -0
  668. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-TW.d.ts +0 -0
  669. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/locales/zh-TW.js +0 -0
  670. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/checks.cjs +0 -0
  671. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/checks.d.cts +0 -0
  672. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/checks.d.ts +0 -0
  673. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/checks.js +0 -0
  674. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/coerce.cjs +0 -0
  675. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/coerce.d.cts +0 -0
  676. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/coerce.d.ts +0 -0
  677. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/coerce.js +0 -0
  678. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/external.cjs +0 -0
  679. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/external.d.cts +0 -0
  680. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/external.d.ts +0 -0
  681. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/external.js +0 -0
  682. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/index.cjs +0 -0
  683. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/index.d.cts +0 -0
  684. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/index.d.ts +0 -0
  685. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/index.js +0 -0
  686. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/iso.cjs +0 -0
  687. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/iso.d.cts +0 -0
  688. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/iso.d.ts +0 -0
  689. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/iso.js +0 -0
  690. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/package.json +0 -0
  691. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/parse.cjs +0 -0
  692. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/parse.d.cts +0 -0
  693. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/parse.d.ts +0 -0
  694. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/parse.js +0 -0
  695. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/schemas.cjs +0 -0
  696. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/schemas.d.cts +0 -0
  697. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/schemas.d.ts +0 -0
  698. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/mini/schemas.js +0 -0
  699. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4/package.json +0 -0
  700. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4-mini/index.cjs +0 -0
  701. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4-mini/index.d.cts +0 -0
  702. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4-mini/index.d.ts +0 -0
  703. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4-mini/index.js +0 -0
  704. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/node_modules/zod/v4-mini/package.json +0 -0
  705. {pactkit-2.3.0 → pactkit-2.3.3}/.opencode/package.json +0 -0
  706. {pactkit-2.3.0 → pactkit-2.3.3}/AGENTS.md +0 -0
  707. {pactkit-2.3.0 → pactkit-2.3.3}/CODE_OF_CONDUCT.md +0 -0
  708. {pactkit-2.3.0 → pactkit-2.3.3}/CONTRIBUTING.md +0 -0
  709. {pactkit-2.3.0 → pactkit-2.3.3}/LICENSE +0 -0
  710. {pactkit-2.3.0 → pactkit-2.3.3}/SECURITY.md +0 -0
  711. {pactkit-2.3.0 → pactkit-2.3.3}/docs/assets/logo.png +0 -0
  712. {pactkit-2.3.0 → pactkit-2.3.3}/docs/guides/codex-integration-preresearch.md +0 -0
  713. {pactkit-2.3.0 → pactkit-2.3.3}/docs/guides/tool-integration-checklist.md +0 -0
  714. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-001.md +0 -0
  715. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-002.md +0 -0
  716. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-003.md +0 -0
  717. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-004.md +0 -0
  718. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-005.md +0 -0
  719. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-006.md +0 -0
  720. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-007.md +0 -0
  721. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-008.md +0 -0
  722. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-009.md +0 -0
  723. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-010.md +0 -0
  724. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-011.md +0 -0
  725. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-012.md +0 -0
  726. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-013.md +0 -0
  727. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-014.md +0 -0
  728. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-015.md +0 -0
  729. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-016.md +0 -0
  730. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-017.md +0 -0
  731. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-018.md +0 -0
  732. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-019.md +0 -0
  733. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-020.md +0 -0
  734. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-021.md +0 -0
  735. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-022.md +0 -0
  736. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-023.md +0 -0
  737. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-024.md +0 -0
  738. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-025.md +0 -0
  739. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-026.md +0 -0
  740. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-027.md +0 -0
  741. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-028.md +0 -0
  742. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-029.md +0 -0
  743. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-030.md +0 -0
  744. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-031.md +0 -0
  745. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-032.md +0 -0
  746. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-033.md +0 -0
  747. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-034.md +0 -0
  748. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-035.md +0 -0
  749. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-001.md +0 -0
  750. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-002.md +0 -0
  751. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-003.md +0 -0
  752. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-004.md +0 -0
  753. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-005.md +0 -0
  754. {pactkit-2.3.0 → pactkit-2.3.3}/docs/specs/BUG-slim-006.md +0 -0
  755. {pactkit-2.3.0 → pactkit-2.3.3}/docs/test_cases/BUG-001_case.md +0 -0
  756. {pactkit-2.3.0 → pactkit-2.3.3}/docs/test_cases/BUG-002_case.md +0 -0
  757. {pactkit-2.3.0 → pactkit-2.3.3}/opencode.json +0 -0
  758. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/backfill.py +0 -0
  759. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/cleaners.py +0 -0
  760. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/context_gen.py +0 -0
  761. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/coverage_gate.py +0 -0
  762. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/doctor.py +0 -0
  763. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/generators/__init__.py +0 -0
  764. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/generators/adapter.py +0 -0
  765. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/generators/deployer.py +0 -0
  766. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/id_generator.py +0 -0
  767. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/invariants.py +0 -0
  768. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/issue_sync.py +0 -0
  769. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/lessons.py +0 -0
  770. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/lint_runner.py +0 -0
  771. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/profiles.py +0 -0
  772. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/__init__.py +0 -0
  773. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/references.py +0 -0
  774. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/prompts/skills.py +0 -0
  775. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/regression.py +0 -0
  776. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/schemas.py +0 -0
  777. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/scripts.py +0 -0
  778. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/sec_scope.py +0 -0
  779. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/skills/__init__.py +0 -0
  780. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/skills/scaffold.py +0 -0
  781. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/skills/spec_linter.py +0 -0
  782. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/skills/visualize.py +0 -0
  783. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/spec_status.py +0 -0
  784. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/test_mapper.py +0 -0
  785. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/utils.py +0 -0
  786. {pactkit-2.3.0 → pactkit-2.3.3}/src/pactkit/validators.py +0 -0
  787. {pactkit-2.3.0 → pactkit-2.3.3}/tests/conftest.py +0 -0
  788. {pactkit-2.3.0 → pactkit-2.3.3}/tests/e2e/__init__.py +0 -0
  789. {pactkit-2.3.0 → pactkit-2.3.3}/tests/e2e/cli/__init__.py +0 -0
  790. {pactkit-2.3.0 → pactkit-2.3.3}/tests/e2e/cli/test_cli_e2e.py +0 -0
  791. {pactkit-2.3.0 → pactkit-2.3.3}/tests/integration/__init__.py +0 -0
  792. {pactkit-2.3.0 → pactkit-2.3.3}/tests/integration/test_deploy_classic.py +0 -0
  793. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_agent_frontmatter.py +0 -0
  794. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_board_bug027.py +0 -0
  795. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_board_sections.py +0 -0
  796. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug001_skill_path.py +0 -0
  797. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug002_plugin_paths.py +0 -0
  798. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug003_multi_import.py +0 -0
  799. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug004_dead_set.py +0 -0
  800. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug005_archive_taskless.py +0 -0
  801. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug006_scan_excludes.py +0 -0
  802. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  803. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  804. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  805. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  806. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug011_stale_refs.py +0 -0
  807. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  808. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug013_config_single_source.py +0 -0
  809. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug014_version_hygiene.py +0 -0
  810. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  811. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  812. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug019_venv_deployment.py +0 -0
  813. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  814. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug025_release_delegation.py +0 -0
  815. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug026_version_sync.py +0 -0
  816. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug028_ghost_refs.py +0 -0
  817. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  818. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
  819. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  820. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  821. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug035_opencode_dual_layer.py +0 -0
  822. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_021.py +0 -0
  823. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_022.py +0 -0
  824. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_023.py +0 -0
  825. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_024.py +0 -0
  826. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  827. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  828. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim003.py +0 -0
  829. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim004.py +0 -0
  830. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_bug_slim005.py +0 -0
  831. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_check_command.py +0 -0
  832. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_command_frontmatter.py +0 -0
  833. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_command_visualize_modes.py +0 -0
  834. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_config_auto_merge.py +0 -0
  835. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_constitution_sharpening.py +0 -0
  836. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_create_skill.py +0 -0
  837. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_cross_flow_matrix.py +0 -0
  838. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_deploy_opencode_parity.py +0 -0
  839. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_deployer_cleanup.py +0 -0
  840. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_deployer_plugin.py +0 -0
  841. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_design_command.py +0 -0
  842. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_done_gates.py +0 -0
  843. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_draw_prompt.py +0 -0
  844. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_draw_references.py +0 -0
  845. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_drawio_mcp.py +0 -0
  846. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_home_path_fix.py +0 -0
  847. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_hotfix_command.py +0 -0
  848. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_init_guard.py +0 -0
  849. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_lang_profiles.py +0 -0
  850. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_list_stories.py +0 -0
  851. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_mcp_integration.py +0 -0
  852. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_model_config.py +0 -0
  853. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_modular_constitution.py +0 -0
  854. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_multi_prefix.py +0 -0
  855. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_pdca_slim.py +0 -0
  856. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_profiles.py +0 -0
  857. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_project_visibility.py +0 -0
  858. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_prompt_cli_refs.py +0 -0
  859. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_prompts_package.py +0 -0
  860. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_release.py +0 -0
  861. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_release_field.py +0 -0
  862. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_release_v110.py +0 -0
  863. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_render_prompt.py +0 -0
  864. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_review_command.py +0 -0
  865. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_rules_enrichment.py +0 -0
  866. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_scaffold.py +0 -0
  867. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  868. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_schemas.py +0 -0
  869. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_script_extraction.py +0 -0
  870. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_session_context.py +0 -0
  871. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_skill_structure.py +0 -0
  872. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_skills_enrichment.py +0 -0
  873. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_smart_regression.py +0 -0
  874. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_sprint_command.py +0 -0
  875. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_stack_references.py +0 -0
  876. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_status_command.py +0 -0
  877. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_statusline.py +0 -0
  878. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story014_release.py +0 -0
  879. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  880. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story016_claude_md.py +0 -0
  881. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story017_init_claude_md.py +0 -0
  882. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story018_arch_staleness.py +0 -0
  883. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story019_bailout.py +0 -0
  884. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story021_rfc.py +0 -0
  885. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story022_decision_tree.py +0 -0
  886. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story024_native_agent.py +0 -0
  887. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story025_ci_pipeline.py +0 -0
  888. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story026_issue_tracker.py +0 -0
  889. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story027_hooks.py +0 -0
  890. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story028_rule_scoping.py +0 -0
  891. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story029_doctor.py +0 -0
  892. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story030_lint.py +0 -0
  893. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story031_git_init_guard.py +0 -0
  894. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  895. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story033_config_backfill.py +0 -0
  896. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  897. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story035_readme_docs.py +0 -0
  898. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story037_regression_fix.py +0 -0
  899. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story038_call_graph_update.py +0 -0
  900. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story039_venv_config.py +0 -0
  901. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story040_layered_claude_md.py +0 -0
  902. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story042_spec_linter.py +0 -0
  903. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story043_active_clarify.py +0 -0
  904. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story044_consistency_check.py +0 -0
  905. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story045_auto_pr.py +0 -0
  906. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story046_agent_adapter.py +0 -0
  907. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story047_enterprise_flags.py +0 -0
  908. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story048_worktree_isolation.py +0 -0
  909. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story049_community_standards.py +0 -0
  910. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  911. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  912. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story052_conditional_github_release.py +0 -0
  913. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story053_impact_regression.py +0 -0
  914. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story055_commands.py +0 -0
  915. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story055_config.py +0 -0
  916. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story055_spec_linter.py +0 -0
  917. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story056_commands.py +0 -0
  918. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story056_config.py +0 -0
  919. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  920. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story058_routing_fix.py +0 -0
  921. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story060_init_hang.py +0 -0
  922. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story061_remove_thinking.py +0 -0
  923. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story062_mcp_recommendations.py +0 -0
  924. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story063_prompt_slimming.py +0 -0
  925. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story064_venv_local_md.py +0 -0
  926. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story065_sprint_model.py +0 -0
  927. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story069_opencode_format.py +0 -0
  928. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story070_opencode_compliance.py +0 -0
  929. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story071_opencode_config_parity.py +0 -0
  930. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story072_developer_prefix.py +0 -0
  931. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story073_command_model_routing.py +0 -0
  932. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  933. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  934. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim012_ci.py +0 -0
  935. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_clean.py +0 -0
  936. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_guard.py +0 -0
  937. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_next_id.py +0 -0
  938. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_regression.py +0 -0
  939. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim014_sec_scope.py +1 -1
  940. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_story_slim018.py +0 -0
  941. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_tools.py +0 -0
  942. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_update_task.py +0 -0
  943. {pactkit-2.3.0 → pactkit-2.3.3}/tests/unit/test_visualize_modes.py +0 -0
@@ -2,7 +2,7 @@
2
2
  # Edit this file to customize which components are deployed.
3
3
  # Remove items from a list to disable them. Default: all enabled.
4
4
 
5
- version: "2.2.0"
5
+ version: "2.3.3"
6
6
  stack: python
7
7
  root: .
8
8
  developer: "slim"
@@ -56,6 +56,7 @@ rules:
56
56
  - 06-mcp-integration
57
57
  - 07-shared-protocols
58
58
  - 08-architecture-principles
59
+ - 09-sectional-write
59
60
 
60
61
  # CI/CD — set provider to github or gitlab to generate pipeline config
61
62
  ci:
@@ -112,3 +113,10 @@ agent_models:
112
113
  system-architect: opus
113
114
  system-medic: haiku
114
115
  visual-architect: sonnet
116
+
117
+ # Custom — user-defined keys (preserved by PactKit)
118
+ e2e:
119
+ blocking: false
120
+ env_file: .env.test
121
+ test_dir: tests/e2e
122
+ type: none
@@ -4,6 +4,30 @@ All notable changes to PactKit will be documented in this file.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+ ## [2.3.3] - 2026-03-23
8
+
9
+ ### Added
10
+ - **Auto Version Sync** (STORY-slim-023) — `pactkit update --if-needed` compares `pactkit.yaml` version vs installed `__version__`. If match, skips redeploy; if mismatch, proceeds with full deploy. Core Protocol prompt updated to run this at session start for zero-friction upgrades.
11
+
12
+ ### Fixed
13
+ - **Guard Version Mismatch Detection** (HOTFIX-slim-024) — `pactkit guard` now checks version mismatch and prints warning with suggestion to run `pactkit update`. Also adds `e2e` to `_BACKFILL_KEYS` so new config section is auto-added during update.
14
+
15
+ ## [2.3.2] - 2026-03-23
16
+
17
+ ### Added
18
+ - **E2E Testing Framework** (STORY-slim-022) — Config-driven E2E strategy in `pactkit.yaml` (`e2e.type`: none/cli/frontend/backend/fullstack). `/project-check` Phase 4 rewritten from hardcoded Strategy A/B to config-driven table. `env_file` field (default `.env.test`) for test credential isolation. Non-blocking by default (`e2e.blocking: false`).
19
+
20
+ ### Fixed
21
+ - **Visualize CLI --mode** (HOTFIX-slim-023) — `pactkit visualize --mode class/call` previously failed with "unrecognized arguments". Added `--mode` parameter and wired non-lazy mode to execute graphs directly.
22
+ - **Board Archive Section Headers** (HOTFIX-slim-021) — `archive_stories()` now preserves `## 🔄 In Progress` and `## ✅ Done` section headers when archiving removes all stories from a section.
23
+
24
+ ## [2.3.1] - 2026-03-23
25
+
26
+ ### Fixed
27
+ - **Plan Phase 3.2 Stall** (STORY-slim-019) — Split monolithic Spec-writing phase into 4 sub-steps (3.2a Skeleton, 3.2b Acceptance Criteria, 3.2c Security Scope, 3.2d Spec Lint) with output checkpoints between each, eliminating AI buffering stall on large Spec generation.
28
+ - **Explore Subagent Stall** (STORY-slim-020) — Added Bounded Delegation template to Plan Phase 1 (target/scope/limit/output constraints for Explore subagents), reduced `code-explorer` maxTurns from 50 to 15, and added scope-limiting instructions to prevent unbounded codebase exploration.
29
+ - **CI Workflow** — Reverted `actions/checkout` and `actions/setup-python` from v6 back to v4/v5 for CI stability after Dependabot upgrades caused failures.
30
+
7
31
  ## [2.3.0] - 2026-03-22
8
32
 
9
33
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pactkit
3
- Version: 2.3.0
3
+ Version: 2.3.3
4
4
  Summary: Spec-driven agentic DevOps toolkit for AI coding assistants
5
5
  Project-URL: Homepage, https://pactkit.dev
6
6
  Project-URL: Repository, https://github.com/pactkit/pactkit
@@ -158,21 +158,34 @@ Or run the full cycle in one command:
158
158
  | **Init** | `/project-init` | System Architect | Bootstrap project structure and governance |
159
159
  | **Design** | `/project-design` | Product Designer | PRD generation -> Story decomposition -> Board setup |
160
160
 
161
- ### Role-Based Command Guide
161
+ ### When to Use What
162
162
 
163
- Choose commands based on your role:
163
+ The core loop is **Plan → Act → Done**. Other commands plug in as needed:
164
164
 
165
- | Role | Commands | What You Do |
166
- |------|----------|-------------|
167
- | **BA** | `/project-clarify` | Surface ambiguities, produce Clarified Brief |
168
- | **PM** | `/project-design` | Generate PRD, decompose into Stories |
169
- | **Architect** | `/project-plan`, `/project-init` | Create Specs, initialize project governance |
170
- | **Developer** | `/project-act`, `/project-hotfix` | TDD implementation, emergency fixes |
171
- | **QA** | `/project-check` | Security + quality audit, spec alignment |
172
- | **DevOps** | `/project-done`, `/project-release`, `/project-pr` | Commit, release, pull request |
173
- | **Team Lead** | `/project-sprint` | One-command PDCA orchestration (**Claude Code only**) |
165
+ ```
166
+ You have a task
167
+
168
+ ├─ Vague idea, multiple features? ──→ /project-design
169
+
170
+ ├─ Unclear requirement? ──→ /project-clarify → /project-plan
171
+
172
+ ├─ Clear feature or bug?
173
+ │ │
174
+ │ ├─ Small fix (1 file, obvious)? ──→ /project-hotfix
175
+ │ │
176
+ │ └─ Needs design? ──→ /project-plan → /project-act
177
+ │ │
178
+ │ ├─ Security-sensitive? ──→ /project-check (QA audit)
179
+ │ │
180
+ │ └─ /project-done
181
+ │ │
182
+ │ ├─ On feature branch? ──→ /project-pr
183
+ │ └─ Ready to release? ──→ /project-release
184
+
185
+ └─ Fully automated? ──→ /project-sprint (runs all phases)
186
+ ```
174
187
 
175
- > **Solo developer?** Focus on `/project-plan` → `/project-act` → `/project-done`. Other commands become valuable when you have team collaboration or external stakeholders.
188
+ **Solo developer?** Start with `/project-plan` → `/project-act` → `/project-done`. Add `/project-hotfix` for small fixes and `/project-check` when security matters.
176
189
 
177
190
  ### Embedded Skills (auto-invoked by commands)
178
191
 
@@ -132,21 +132,34 @@ Or run the full cycle in one command:
132
132
  | **Init** | `/project-init` | System Architect | Bootstrap project structure and governance |
133
133
  | **Design** | `/project-design` | Product Designer | PRD generation -> Story decomposition -> Board setup |
134
134
 
135
- ### Role-Based Command Guide
135
+ ### When to Use What
136
136
 
137
- Choose commands based on your role:
137
+ The core loop is **Plan → Act → Done**. Other commands plug in as needed:
138
138
 
139
- | Role | Commands | What You Do |
140
- |------|----------|-------------|
141
- | **BA** | `/project-clarify` | Surface ambiguities, produce Clarified Brief |
142
- | **PM** | `/project-design` | Generate PRD, decompose into Stories |
143
- | **Architect** | `/project-plan`, `/project-init` | Create Specs, initialize project governance |
144
- | **Developer** | `/project-act`, `/project-hotfix` | TDD implementation, emergency fixes |
145
- | **QA** | `/project-check` | Security + quality audit, spec alignment |
146
- | **DevOps** | `/project-done`, `/project-release`, `/project-pr` | Commit, release, pull request |
147
- | **Team Lead** | `/project-sprint` | One-command PDCA orchestration (**Claude Code only**) |
139
+ ```
140
+ You have a task
141
+
142
+ ├─ Vague idea, multiple features? ──→ /project-design
143
+
144
+ ├─ Unclear requirement? ──→ /project-clarify → /project-plan
145
+
146
+ ├─ Clear feature or bug?
147
+ │ │
148
+ │ ├─ Small fix (1 file, obvious)? ──→ /project-hotfix
149
+ │ │
150
+ │ └─ Needs design? ──→ /project-plan → /project-act
151
+ │ │
152
+ │ ├─ Security-sensitive? ──→ /project-check (QA audit)
153
+ │ │
154
+ │ └─ /project-done
155
+ │ │
156
+ │ ├─ On feature branch? ──→ /project-pr
157
+ │ └─ Ready to release? ──→ /project-release
158
+
159
+ └─ Fully automated? ──→ /project-sprint (runs all phases)
160
+ ```
148
161
 
149
- > **Solo developer?** Focus on `/project-plan` → `/project-act` → `/project-done`. Other commands become valuable when you have team collaboration or external stakeholders.
162
+ **Solo developer?** Start with `/project-plan` → `/project-act` → `/project-done`. Add `/project-hotfix` for small fixes and `/project-check` when security matters.
150
163
 
151
164
  ### Embedded Skills (auto-invoked by commands)
152
165
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pactkit"
7
- version = "2.3.0"
7
+ version = "2.3.3"
8
8
  description = "Spec-driven agentic DevOps toolkit for AI coding assistants"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -1,3 +1,3 @@
1
1
  """PactKit - Spec-driven agentic DevOps toolkit."""
2
2
 
3
- __version__ = "2.3.0"
3
+ __version__ = "2.3.3"
@@ -137,6 +137,13 @@ def main():
137
137
  default=False,
138
138
  help="Non-interactive mode: auto-accept defaults (CI/CD environments)",
139
139
  )
140
+ # STORY-slim-023: Auto version sync
141
+ update_parser.add_argument(
142
+ "--if-needed",
143
+ action="store_true",
144
+ default=False,
145
+ help="Only redeploy if installed version differs from pactkit.yaml version",
146
+ )
140
147
 
141
148
  # pactkit upgrade (alias for init, migrates legacy scafpy files)
142
149
  upgrade_parser = subparsers.add_parser("upgrade", help="Upgrade PactKit (migrate legacy scafpy config)")
@@ -237,10 +244,14 @@ def main():
237
244
  lint_tc_parser = subparsers.add_parser("lint-testcase", help="Validate test case file structure")
238
245
  lint_tc_parser.add_argument("path", help="Path to test case file")
239
246
 
240
- # pactkit visualize --lazy (STORY-slim-014 R7)
247
+ # pactkit visualize --lazy --mode (STORY-slim-014 R7, HOTFIX-slim-023)
241
248
  viz_parser = subparsers.add_parser("visualize", help="Visualize code dependency graph")
242
249
  viz_parser.add_argument("--lazy", action="store_true", help="Skip if no source changes")
243
250
  viz_parser.add_argument("--stack", default="auto", help="Language stack (default: auto)")
251
+ viz_parser.add_argument(
252
+ "--mode", choices=["file", "class", "call"], default=None,
253
+ help="Graph mode (default: all three)",
254
+ )
244
255
 
245
256
  # pactkit doctor (STORY-slim-015 R1-R3)
246
257
  subparsers.add_parser("doctor", help="Diagnose project health")
@@ -286,6 +297,23 @@ def main():
286
297
  args = parser.parse_args()
287
298
 
288
299
  if args.command in ("init", "update", "upgrade"):
300
+ # STORY-slim-023: --if-needed skips deploy when versions match
301
+ if args.command == "update" and getattr(args, "if_needed", False):
302
+ from pathlib import Path
303
+
304
+ from pactkit.config import load_config
305
+
306
+ yaml_path = Path.cwd() / ".claude" / "pactkit.yaml"
307
+ if yaml_path.exists():
308
+ cfg = load_config(yaml_path)
309
+ yaml_version = cfg.get("version", "")
310
+ if yaml_version == __version__:
311
+ print(f"PactKit {__version__} up-to-date — skipping redeploy")
312
+ raise SystemExit(0)
313
+ print(f"PactKit version mismatch: {yaml_version} → {__version__}. Updating...")
314
+ else:
315
+ print("No pactkit.yaml found. Running first-time setup...")
316
+
289
317
  from pactkit.generators.deployer import deploy
290
318
 
291
319
  deploy(
@@ -316,11 +344,17 @@ def main():
316
344
  elif args.command == "guard":
317
345
  from pathlib import Path
318
346
 
319
- from pactkit.guards import check_init_markers
347
+ from pactkit.guards import check_init_markers, check_version_mismatch
320
348
 
321
- ok, missing = check_init_markers(Path.cwd())
349
+ project_root = Path.cwd()
350
+ ok, missing = check_init_markers(project_root)
322
351
  if ok:
323
352
  print("Guard: PASS — all init markers present")
353
+ # HOTFIX-slim-024: check version mismatch
354
+ version_warn = check_version_mismatch(project_root)
355
+ if version_warn:
356
+ print(f" ⚠️ {version_warn}")
357
+ print(" Run `pactkit update` to sync")
324
358
  else:
325
359
  for m in missing:
326
360
  print(f" ✗ {m}")
@@ -429,23 +463,22 @@ def main():
429
463
  print(f"{args.path}\n Result: PASS")
430
464
 
431
465
  elif args.command == "visualize":
432
- if args.lazy:
433
- from pathlib import Path
466
+ from pathlib import Path
434
467
 
435
- from pactkit.lazy_visualize import should_visualize
468
+ from pactkit.lazy_visualize import run_visualize_graphs, run_visualize_single, should_visualize
436
469
 
437
- project_root = Path.cwd()
470
+ project_root = Path.cwd()
471
+ if args.lazy:
438
472
  should_run, reason = should_visualize(project_root, stack=args.stack)
439
473
  if not should_run:
440
474
  print(reason)
441
475
  raise SystemExit(0)
442
476
  print(f"Visualize needed: {reason}")
443
- # Execute graph generation end-to-end (BUG-slim-006 R3)
444
- from pactkit.lazy_visualize import run_visualize_graphs
477
+ # HOTFIX-slim-023: support --mode for single or all modes
478
+ if args.mode:
479
+ run_visualize_single(project_root, args.mode)
480
+ else:
445
481
  run_visualize_graphs(project_root)
446
- raise SystemExit(0)
447
- # Non-lazy: print guidance for manual run
448
- print("Run visualize skill for full graph generation")
449
482
 
450
483
  elif args.command == "doctor":
451
484
  from pathlib import Path
@@ -69,6 +69,7 @@ VALID_RULES = frozenset(
69
69
  "06-mcp-integration",
70
70
  "07-shared-protocols",
71
71
  "08-architecture-principles",
72
+ "09-sectional-write",
72
73
  }
73
74
  )
74
75
 
@@ -82,6 +83,8 @@ VALID_ISSUE_PROVIDERS = frozenset({"github", "none"})
82
83
 
83
84
  VALID_HOOK_TEMPLATES = frozenset({"pre_commit_lint", "post_test_coverage", "pre_push_check"})
84
85
 
86
+ VALID_E2E_TYPES = frozenset({"none", "cli", "frontend", "backend", "fullstack"})
87
+
85
88
  # Commands deprecated in v1.2.0 — converted to skills (STORY-011)
86
89
  DEPRECATED_COMMANDS = frozenset(
87
90
  {
@@ -164,6 +167,12 @@ def get_default_config() -> dict:
164
167
  "security_checklist": True,
165
168
  "security_scope_override": "none",
166
169
  },
170
+ "e2e": {
171
+ "type": "none",
172
+ "blocking": False,
173
+ "test_dir": "tests/e2e",
174
+ "env_file": ".env.test",
175
+ },
167
176
  "done": {
168
177
  "lesson_quality_threshold": 15,
169
178
  },
@@ -352,6 +361,7 @@ def load_config(path: Path | str | None = None) -> dict:
352
361
  "regression",
353
362
  "check",
354
363
  "done",
364
+ "e2e",
355
365
  "command_models",
356
366
  }
357
367
 
@@ -447,6 +457,7 @@ def auto_merge_config_file(path: Union[Path, str]) -> list[str]:
447
457
  "regression",
448
458
  "check",
449
459
  "done",
460
+ "e2e", # STORY-slim-022
450
461
  )
451
462
  for key in _BACKFILL_KEYS:
452
463
  if key not in user_data:
@@ -796,6 +807,30 @@ def validate_config(config: dict) -> None:
796
807
  if not isinstance(threshold, int) or threshold < 0 or threshold > 25:
797
808
  warnings.warn(f"done.lesson_quality_threshold should be an integer 0-25, got {threshold!r}")
798
809
 
810
+ # Validate e2e section (STORY-slim-022)
811
+ e2e = config.get("e2e", {})
812
+ if isinstance(e2e, dict):
813
+ e2e_type = e2e.get("type", "none")
814
+ if e2e_type not in VALID_E2E_TYPES:
815
+ warnings.warn(
816
+ f"e2e.type should be one of {', '.join(sorted(VALID_E2E_TYPES))}, got '{e2e_type}'"
817
+ )
818
+ e2e_blocking = e2e.get("blocking", False)
819
+ if not isinstance(e2e_blocking, bool):
820
+ warnings.warn(
821
+ f"e2e.blocking should be a boolean (true/false), got {type(e2e_blocking).__name__}"
822
+ )
823
+ e2e_test_dir = e2e.get("test_dir")
824
+ if e2e_test_dir is not None and not isinstance(e2e_test_dir, str):
825
+ warnings.warn(
826
+ f"e2e.test_dir should be a string, got {type(e2e_test_dir).__name__}"
827
+ )
828
+ e2e_env_file = e2e.get("env_file")
829
+ if e2e_env_file is not None and not isinstance(e2e_env_file, str):
830
+ warnings.warn(
831
+ f"e2e.env_file should be a string, got {type(e2e_env_file).__name__}"
832
+ )
833
+
799
834
  # enterprise section (STORY-047) — accepted without warnings
800
835
  # multi_agent field (STORY-046) — accepted without warnings
801
836
 
@@ -902,6 +937,15 @@ def generate_default_yaml() -> str:
902
937
  lines.append("done:")
903
938
  lines.append(f" lesson_quality_threshold: {done_cfg.get('lesson_quality_threshold', 15)}")
904
939
 
940
+ # Write e2e section (STORY-slim-022)
941
+ e2e = cfg.get("e2e", {})
942
+ lines.extend(["", "# E2E Testing — configure end-to-end test strategy (none|cli|frontend|backend|fullstack)"])
943
+ lines.append("e2e:")
944
+ lines.append(f" type: {e2e.get('type', 'none')}")
945
+ lines.append(f" blocking: {'true' if e2e.get('blocking') else 'false'}")
946
+ lines.append(f" test_dir: {e2e.get('test_dir', 'tests/e2e')}")
947
+ lines.append(f" env_file: {e2e.get('env_file', '.env.test')}")
948
+
905
949
  # Write command_models section (STORY-073)
906
950
  cmd_models = cfg.get("command_models", {})
907
951
  if cmd_models:
@@ -6,7 +6,8 @@ from __future__ import annotations
6
6
 
7
7
  from pathlib import Path
8
8
 
9
- from pactkit.config import find_pactkit_yaml
9
+ from pactkit import __version__
10
+ from pactkit.config import find_pactkit_yaml, load_config
10
11
 
11
12
 
12
13
  def check_init_markers(project_root: Path) -> tuple[bool, list[str]]:
@@ -65,3 +66,20 @@ def check_config_completeness(project_root: Path) -> list[str]:
65
66
  if key not in data:
66
67
  warnings.append(f"Missing config section: '{key}' in {yaml_path.name}")
67
68
  return warnings
69
+
70
+
71
+ def check_version_mismatch(project_root: Path) -> str | None:
72
+ """Check if pactkit.yaml version differs from installed __version__.
73
+
74
+ Returns:
75
+ Warning message if mismatch, None if versions match or yaml not found.
76
+ """
77
+ yaml_path = find_pactkit_yaml(project_root)
78
+ if yaml_path is None:
79
+ return None
80
+
81
+ cfg = load_config(yaml_path)
82
+ yaml_version = cfg.get("version", "")
83
+ if yaml_version and yaml_version != __version__:
84
+ return f"Version mismatch: pactkit.yaml {yaml_version} vs installed {__version__}"
85
+ return None
@@ -80,6 +80,20 @@ def should_visualize(
80
80
  return (False, "Graph up-to-date — no source changes")
81
81
 
82
82
 
83
+ def run_visualize_single(project_root: Path, mode: str) -> None:
84
+ """Execute visualize.py for a single graph mode (HOTFIX-slim-023)."""
85
+ import sys
86
+
87
+ viz_script = Path(__file__).resolve().parent / "skills" / "visualize.py"
88
+ if not viz_script.exists():
89
+ print(f"visualize.py not found: {viz_script}")
90
+ return
91
+ subprocess.run(
92
+ [sys.executable, str(viz_script), "visualize", "--mode", mode],
93
+ cwd=str(project_root),
94
+ )
95
+
96
+
83
97
  def run_visualize_graphs(project_root: Path) -> None:
84
98
  """Execute visualize.py to regenerate all graph files.
85
99
 
@@ -248,7 +248,7 @@ Generate system architecture diagrams using Draw.io XML. Supports three diagram
248
248
  "code-explorer": {
249
249
  "desc": "Deep code analysis and execution tracing.",
250
250
  "tools": "Read, Bash, Grep, Glob, Find",
251
- "maxTurns": 50,
251
+ "maxTurns": 15, # STORY-slim-020: reduced from 50 to prevent unbounded exploration stalls
252
252
  "memory": "user",
253
253
  "prompt": """You are the **Code Explorer** (aka System Archaeologist).
254
254
  **Motto**: "Read little, understand much."
@@ -64,11 +64,18 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
64
64
  6. **Output**: The enriched_input (original + answers) is used as context for Phase 1 onwards.
65
65
 
66
66
  ## 🎬 Phase 1: Archaeology (The "Know Before You Change" Step)
67
- 1. **Visual Scan**: Run `visualize` to see the module dependency graph. Use `--mode class` for structure, `--mode call` for logic.
68
- - For large codebases (50+ files), use `--focus <module> --depth 2` to limit scope.
67
+ > **Subagent Scope Rule**: When delegating research to an Explore subagent, always provide a **bounded** prompt: target function/class, directory scope, file limit, and expected output. Never delegate open-ended "trace the whole codebase" tasks.
68
+
69
+ 1. **Visual Scan**: Run `visualize --focus <module> --depth 2` to see the targeted dependency graph. Only expand to `--mode class` or `--mode call` if the focused scan is insufficient.
69
70
  2. **Logic Trace (CRITICAL)** — use pactkit-trace skill:
70
71
  - If modifying existing logic, trace the current implementation.
71
72
  - *Goal*: Identify the exact function/class responsible for the logic.
73
+ - **Delegation Template**: When using an Explore subagent for trace, formulate the prompt with:
74
+ - **Target**: specific function or class name to trace
75
+ - **Scope**: specific directory (e.g., `src/pactkit/generators/`)
76
+ - **Limit**: read at most 8-10 files
77
+ - **Output**: what to return (entry file, call chain, key data transformations)
78
+ - Example: `Agent(subagent_type="Explore", prompt="Find the deploy() entry point in src/pactkit/generators/deployer.py. Trace the call chain to file writes. Read at most 8 files. Return: entry function, call chain list, key data transformations.")`
72
79
 
73
80
  ## 🎬 Phase 2: Design & Impact
74
81
  1. **Diff**: Compare User Request vs Current Reality (from Phase 1).
@@ -79,9 +86,9 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
79
86
  1. Run `pactkit next-id` to get the next Story ID (reads developer prefix from pactkit.yaml, scans `docs/specs/`).
80
87
  2. **Output checkpoint**: Print "Story ID determined: {ID}. Writing Spec now."
81
88
 
82
- ## 🎬 Phase 3.2: Write Spec
83
- 1. **Spec**: Create `docs/specs/{ID}.md` detailing the *Change*.
84
- - **MUST — Metadata Table**: Include a metadata table at the top of the Spec using this EXACT format:
89
+ ## 🎬 Phase 3.2a: Spec Skeleton (Metadata + Requirements)
90
+ 1. **Create file**: Create `docs/specs/{ID}.md` with the following sections:
91
+ - **MUST — Metadata Table**: Include a metadata table at the top using this EXACT format:
85
92
  ```markdown
86
93
  | Field | Value |
87
94
  |-------|-------|
@@ -91,41 +98,41 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
91
98
  | Release | {version} |
92
99
  ```
93
100
  Field names MUST be exact case (ID, Status, Priority, Release) — not bold, not different names.
94
- - *Requirement*: Include a "Target Call Chain" section in the Spec based on your Trace findings.
101
+ - **MUST**: Fill in the `Release` metadata field by reading the `version` field from `{PACTKIT_YAML}` or `pyproject.toml`. Use that EXACT value — do NOT increment or predict a future version. If the file cannot be read, use `TBD`.
102
+ - **MUST**: Include `## Background` and `## Target Call Chain` sections based on your Trace findings.
95
103
  - **MUST**: Fill in the `## Requirements` section using RFC 2119 keywords (MUST/SHOULD/MAY).
96
- - **MUST**: Fill in the `## Acceptance Criteria` section with Given/When/Then scenarios.
104
+ 2. **Output checkpoint**: Print "Spec skeleton written. Adding acceptance criteria."
105
+
106
+ ## 🎬 Phase 3.2b: Acceptance Criteria & Implementation Steps
107
+ 1. **MUST**: Add `## Acceptance Criteria` section with Given/When/Then scenarios.
97
108
  - Each Scenario SHOULD map to a verifiable test case in `docs/test_cases/`.
98
- - **MUST**: Fill in the `Release` metadata field by reading the `version` field from `{PACTKIT_YAML}` or `pyproject.toml`. Use that EXACT value — do NOT increment or predict a future version. If the file cannot be read, use `TBD`.
99
- - **OPTIONAL — Implementation Steps**: If Phase 1 Trace identifies 2+ files to modify, add `## Implementation Steps` section with table format:
100
- ```
101
- | Step | File | Action | Dependencies | Risk |
102
- |------|------|--------|--------------|------|
103
- | 1 | `src/foo.py` | Description | None | Low |
104
- ```
105
- The `Dependencies` column accepts `None`, `Step N`, or comma-separated step references. The `Risk` column accepts `Low`, `Medium`, `High`. This section is optional but RECOMMENDED for multi-file changes.
106
- - **MUST — Security Scope**: Run `pactkit sec-scope <changed-files>` to auto-detect SEC-1~SEC-8 applicability. Paste the output Markdown table into the `## Security Scope` section of the Spec. If `pactkit sec-scope` is unavailable, apply these detection rules manually:
107
- | Check | Applicable When |
108
- |-------|-----------------|
109
- | SEC-1 | Any source code file modified (`.py`, `.js`, `.ts`, `.go`, `.java`, etc.) |
110
- | SEC-2 | Code contains `request.`, `form.`, `input`, `argv`, `sys.stdin`, `process.argv` |
111
- | SEC-3 | Files in `models/`, `dao/`, `repository/`; or code contains SQL/ORM patterns |
112
- | SEC-4 | Frontend files (`.tsx`, `.vue`, `.svelte`, `.html`); or code contains `innerHTML`, `dangerouslySetInnerHTML` |
113
- | SEC-5 | Files in `auth/`, `session/`, `login/`; or code contains `token`, `jwt`, `cookie`, `session` |
114
- | SEC-6 | Files in `api/`, `routes/`, `endpoints/`, `controllers/` |
115
- | SEC-7 | Files in `api/`, `routes/`; or code contains exception handling patterns |
116
- | SEC-8 | Dependency files modified (`package.json`, `requirements.txt`, `pyproject.toml`, `go.mod`, `Cargo.toml`) |
117
-
118
- **Docs/tests-only shortcut**: If ONLY `docs/**`, `tests/**`, `*.md`, `README*` files changed, mark ALL checks N/A with Reason "docs/tests only".
119
-
120
- Output format (the table must include a Reason column):
121
- ```markdown
122
- ## Security Scope
123
- | Check | Applicable | Reason |
124
- |-------|------------|--------|
125
- | SEC-1 | Yes | Source code modified |
126
- | SEC-2 | N/A | No user input handling |
127
- ```
128
- - **Spec Lint Self-Check**: After writing the Spec, run `pactkit spec-lint docs/specs/{ID}.md`. If ERROR rules fail, self-correct the Spec immediately (you wrote it — you have authority to fix it). Re-run until clean. This prevents the Spec from being rejected at Act Phase 0.5.
109
+ 2. **OPTIONAL Implementation Steps**: If Phase 1 Trace identifies 2+ files to modify, add `## Implementation Steps` section with table format:
110
+ ```
111
+ | Step | File | Action | Dependencies | Risk |
112
+ |------|------|--------|--------------|------|
113
+ | 1 | `src/foo.py` | Description | None | Low |
114
+ ```
115
+ The `Dependencies` column accepts `None`, `Step N`, or comma-separated step references. The `Risk` column accepts `Low`, `Medium`, `High`.
116
+ 3. **Output checkpoint**: Print "Acceptance criteria written. Running security scope."
117
+
118
+ ## 🎬 Phase 3.2c: Security Scope
119
+ 1. **MUST**: Run `pactkit sec-scope <changed-files>` to auto-detect SEC-1~SEC-8 applicability. Append the output to `## Security Scope` in the Spec.
120
+ 2. **Fallback**: If `pactkit sec-scope` is unavailable, manually assess each SEC-1 through SEC-8 check based on changed file paths and code patterns. Apply docs/tests-only shortcut if applicable (mark ALL N/A with Reason "docs/tests only").
121
+ 3. **Output format** (the table must include a Reason column):
122
+ ```markdown
123
+ ## Security Scope
124
+ | Check | Applicable | Reason |
125
+ |-------|------------|--------|
126
+ | SEC-1 | Yes | Source code modified |
127
+ | SEC-2 | N/A | No user input handling |
128
+ ```
129
+ 4. **Output checkpoint**: Print "Security scope appended. Running lint."
130
+
131
+ ## 🎬 Phase 3.2d: Spec Lint Self-Check
132
+ 1. Run `pactkit spec-lint docs/specs/{ID}.md`.
133
+ 2. If ERROR rules fail, self-correct the Spec immediately (you wrote it — you have authority to fix it). Re-run until clean.
134
+ 3. This prevents the Spec from being rejected at Act Phase 0.5.
135
+ 4. **Output checkpoint**: Print "Spec lint passed."
129
136
 
130
137
  ## 🎬 Phase 3.3: Board, Memory & Handover
131
138
  1. **Board**: Add Story using `add_story`.
@@ -300,22 +307,25 @@ For each finding, assign a severity (P0-P3). Flag issues that may cause silent f
300
307
  3. **Report**: For each finding, assign the severity above and include it in the Phase 5 verdict.
301
308
  4. **Gate**: If any P1 test quality issue is found, flag it as a required fix (same as a code quality P1).
302
309
 
303
- ## Phase 4: Layered Execution
304
- Choose the strategy identified in Phase 0:
310
+ ## Phase 4: E2E Execution (Config-Driven)
311
+ > Read `pactkit.yaml` field `e2e.type` to select strategy. Default: `none` (skip).
305
312
 
306
- ### Strategy A: API Level (Fast & Stable)
307
- * **Context**: Backend logic, calculations.
308
- * **Action**: Create/Run `tests/e2e/api/test_{STORY_ID}.py` using `pytest` + `requests`.
313
+ | e2e.type | Test Path | Tools | Cleanup |
314
+ |----------|-----------|-------|---------|
315
+ | `none` | Skip log "E2E skipped" | — | — |
316
+ | `cli` | `{e2e.test_dir}/cli/test_{STORY_ID}_cli.py` | pytest + subprocess | pytest `tmp_path` fixture (auto) |
317
+ | `frontend` | `{e2e.test_dir}/browser/test_{STORY_ID}_browser.py` | Playwright + MSW mock from `e2e.api_spec` | MSW in-memory interceptors (auto) |
318
+ | `backend` | `{e2e.test_dir}/api/test_{STORY_ID}_api.py` | pytest + httpx, contract via `e2e.api_spec` | transaction rollback via fixtures |
319
+ | `fullstack` | `{e2e.test_dir}/browser/test_{STORY_ID}_full.py` | docker-compose up + Playwright | `docker-compose down -v` |
309
320
 
310
- ### Strategy B: Browser Level (Visual & Real)
311
- * **Context**: UI, DOM, User Flows.
312
- * **Action**: Create/Run `tests/e2e/browser/test_{STORY_ID}_browser.py`.
313
- * **Playwright MCP (Conditional)**: IF Playwright MCP is available, use it for browser-level verification (navigation, snapshots, interactions).
314
- * **Chrome DevTools MCP (Conditional)**: IF Chrome DevTools MCP is available, use it for performance tracing and runtime diagnostics.
321
+ * **Playwright MCP**: IF available, use for browser verification (frontend/fullstack).
322
+ * **Chrome DevTools MCP**: IF available, use for performance tracing.
323
+ * **`e2e.env_file`** (default `.env.test`): Load test credentials (API tokens, DB strings) from this file before running E2E. If file missing, WARN but continue.
324
+ * **`e2e.blocking`** (default `false`): If `false`, E2E failures WARN. If `true`, E2E failures → FAIL (blocks `/project-done`).
315
325
 
316
326
  ## Phase 5: The Verdict
317
- 1. **Run Suite**: Execute the specific test file created above (Story E2E test).
318
- 2. **Run Unit (Incremental)**: Run `pactkit test-map <changed-files>` to map source files to test files. Run only mapped tests. Fallback to full suite if no mapping.
327
+ 1. **Run Unit (Incremental)**: Run `pactkit test-map <changed-files>` to map source files to test files. Run only mapped tests. Fallback to full suite if no mapping.
328
+ 2. **Run E2E**: If `e2e.type` is not `none`, execute the E2E test file created in Phase 4.
319
329
  3. **Report**: Output structured verdict:
320
330
 
321
331
  ```