pactkit 2.4.0__tar.gz → 2.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (979) hide show
  1. {pactkit-2.4.0 → pactkit-2.5.0}/.github/workflows/pactkit.yml +1 -1
  2. pactkit-2.5.0/.github/workflows/publish.yml +61 -0
  3. {pactkit-2.4.0 → pactkit-2.5.0}/.opencode/pactkit.yaml +1 -1
  4. {pactkit-2.4.0 → pactkit-2.5.0}/CHANGELOG.md +34 -0
  5. {pactkit-2.4.0 → pactkit-2.5.0}/PKG-INFO +3 -3
  6. {pactkit-2.4.0 → pactkit-2.5.0}/pyproject.toml +3 -3
  7. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/__init__.py +1 -1
  8. pactkit-2.5.0/src/pactkit/__main__.py +4 -0
  9. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/config.py +9 -1
  10. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/generators/deployer.py +6 -5
  11. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/commands.py +5 -1
  12. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/workflows.py +11 -10
  13. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/skills/__init__.py +1 -0
  14. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/skills/board.py +137 -23
  15. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/skills/scaffold.py +27 -5
  16. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/skills/spec_linter.py +39 -12
  17. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/skills/visualize.py +251 -65
  18. pactkit-2.5.0/src/pactkit/utils.py +14 -0
  19. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug030_spec_lint_cli.py +8 -5
  20. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_sprint_command.py +77 -5
  21. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story038_call_graph_update.py +4 -2
  22. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story042_spec_linter.py +5 -5
  23. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story048_worktree_isolation.py +2 -1
  24. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story053_impact_regression.py +5 -5
  25. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story063_prompt_slimming.py +4 -2
  26. pactkit-2.5.0/tests/unit/test_story_slim049.py +200 -0
  27. pactkit-2.5.0/tests/unit/test_story_slim051.py +585 -0
  28. pactkit-2.5.0/tests/unit/test_story_slim052.py +604 -0
  29. pactkit-2.5.0/tests/unit/test_story_slim053.py +229 -0
  30. pactkit-2.5.0/tests/unit/test_story_slim054.py +138 -0
  31. pactkit-2.5.0/tests/unit/test_story_slim055.py +93 -0
  32. pactkit-2.5.0/tests/unit/test_story_slim056.py +495 -0
  33. pactkit-2.4.0/.opencode/.gitignore +0 -4
  34. pactkit-2.4.0/.opencode/bun.lock +0 -18
  35. pactkit-2.4.0/.opencode/memory/.gitignore +0 -1
  36. pactkit-2.4.0/.opencode/memory/project.md +0 -7
  37. pactkit-2.4.0/.opencode/node_modules/@opencode-ai/plugin/package.json +0 -34
  38. pactkit-2.4.0/.opencode/node_modules/@opencode-ai/sdk/package.json +0 -52
  39. pactkit-2.4.0/.opencode/node_modules/zod/LICENSE +0 -21
  40. pactkit-2.4.0/.opencode/node_modules/zod/README.md +0 -208
  41. pactkit-2.4.0/.opencode/node_modules/zod/index.cjs +0 -33
  42. pactkit-2.4.0/.opencode/node_modules/zod/index.d.cts +0 -4
  43. pactkit-2.4.0/.opencode/node_modules/zod/index.d.ts +0 -4
  44. pactkit-2.4.0/.opencode/node_modules/zod/index.js +0 -4
  45. pactkit-2.4.0/.opencode/node_modules/zod/locales/index.cjs +0 -17
  46. pactkit-2.4.0/.opencode/node_modules/zod/locales/index.d.cts +0 -1
  47. pactkit-2.4.0/.opencode/node_modules/zod/locales/index.d.ts +0 -1
  48. pactkit-2.4.0/.opencode/node_modules/zod/locales/index.js +0 -1
  49. pactkit-2.4.0/.opencode/node_modules/zod/locales/package.json +0 -6
  50. pactkit-2.4.0/.opencode/node_modules/zod/mini/index.cjs +0 -17
  51. pactkit-2.4.0/.opencode/node_modules/zod/mini/index.d.cts +0 -1
  52. pactkit-2.4.0/.opencode/node_modules/zod/mini/index.d.ts +0 -1
  53. pactkit-2.4.0/.opencode/node_modules/zod/mini/index.js +0 -1
  54. pactkit-2.4.0/.opencode/node_modules/zod/mini/package.json +0 -6
  55. pactkit-2.4.0/.opencode/node_modules/zod/package.json +0 -135
  56. pactkit-2.4.0/.opencode/node_modules/zod/src/index.ts +0 -4
  57. pactkit-2.4.0/.opencode/node_modules/zod/src/locales/index.ts +0 -1
  58. pactkit-2.4.0/.opencode/node_modules/zod/src/mini/index.ts +0 -1
  59. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/ZodError.ts +0 -330
  60. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  61. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  62. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  63. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  64. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  65. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  66. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  67. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  68. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  69. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/errors.ts +0 -13
  70. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/external.ts +0 -6
  71. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  72. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  73. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  74. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  75. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  76. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/helpers/util.ts +0 -224
  77. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/index.ts +0 -4
  78. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/locales/en.ts +0 -124
  79. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/standard-schema.ts +0 -113
  80. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  81. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  82. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  83. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  84. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  85. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  86. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  87. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  88. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  89. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  90. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  91. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/complex.test.ts +0 -56
  92. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  93. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  94. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  95. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  96. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  97. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  98. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  99. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  100. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  101. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  102. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/function.test.ts +0 -257
  103. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  104. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  105. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  106. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  107. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  108. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  109. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  110. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  111. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  112. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/nan.test.ts +0 -21
  113. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  114. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  115. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  116. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  117. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  118. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  119. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  120. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  121. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  122. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  123. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  124. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  125. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  126. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  127. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  128. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  129. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  130. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  131. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  132. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  133. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  134. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  135. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  136. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  137. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  138. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  139. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  140. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  141. pactkit-2.4.0/.opencode/node_modules/zod/src/v3/types.ts +0 -5138
  142. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/checks.ts +0 -31
  143. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  144. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/compat.ts +0 -70
  145. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/errors.ts +0 -82
  146. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/external.ts +0 -50
  147. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/index.ts +0 -5
  148. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/iso.ts +0 -90
  149. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/parse.ts +0 -82
  150. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/schemas.ts +0 -2205
  151. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  152. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  153. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -210
  154. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  155. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  156. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  157. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  158. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -63
  159. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -276
  160. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  161. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
  162. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -562
  163. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  164. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -352
  165. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  166. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -31
  167. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
  168. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -365
  169. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  170. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -661
  171. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  172. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -595
  173. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  174. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  175. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  176. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -308
  177. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  178. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
  179. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -844
  180. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -34
  181. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -171
  182. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -108
  183. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  184. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
  185. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -196
  186. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  187. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  188. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  189. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  190. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -270
  191. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -609
  192. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -136
  193. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -340
  194. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -127
  195. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  196. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
  197. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -282
  198. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  199. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  200. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  201. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  202. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -356
  203. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -539
  204. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -605
  205. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -204
  206. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
  207. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -57
  208. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  209. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1080
  210. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
  211. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -763
  212. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -2622
  213. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -361
  214. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -163
  215. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -181
  216. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  217. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  218. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/api.ts +0 -1621
  219. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/checks.ts +0 -1287
  220. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/config.ts +0 -15
  221. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/core.ts +0 -115
  222. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/doc.ts +0 -44
  223. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/errors.ts +0 -423
  224. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/index.ts +0 -14
  225. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/json-schema.ts +0 -147
  226. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/parse.ts +0 -195
  227. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/regexes.ts +0 -177
  228. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/registries.ts +0 -97
  229. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/schemas.ts +0 -4303
  230. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/standard-schema.ts +0 -64
  231. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -18
  232. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  233. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  234. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  235. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
  236. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  237. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  238. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/to-json-schema.ts +0 -1044
  239. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/util.ts +0 -910
  240. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/versions.ts +0 -5
  241. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/core/zsf.ts +0 -323
  242. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/index.ts +0 -4
  243. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ar.ts +0 -125
  244. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/az.ts +0 -121
  245. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/be.ts +0 -184
  246. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/bg.ts +0 -136
  247. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ca.ts +0 -127
  248. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/cs.ts +0 -142
  249. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/da.ts +0 -141
  250. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/de.ts +0 -124
  251. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/en.ts +0 -127
  252. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/eo.ts +0 -125
  253. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/es.ts +0 -159
  254. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/fa.ts +0 -134
  255. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/fi.ts +0 -131
  256. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/fr-CA.ts +0 -126
  257. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/fr.ts +0 -124
  258. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/he.ts +0 -125
  259. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/hu.ts +0 -126
  260. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/id.ts +0 -125
  261. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/index.ts +0 -46
  262. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/is.ts +0 -127
  263. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/it.ts +0 -125
  264. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ja.ts +0 -122
  265. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ka.ts +0 -138
  266. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/kh.ts +0 -7
  267. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/km.ts +0 -126
  268. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ko.ts +0 -131
  269. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/lt.ts +0 -265
  270. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/mk.ts +0 -127
  271. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ms.ts +0 -124
  272. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/nl.ts +0 -126
  273. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/no.ts +0 -124
  274. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ota.ts +0 -125
  275. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/pl.ts +0 -126
  276. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ps.ts +0 -133
  277. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/pt.ts +0 -123
  278. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ru.ts +0 -184
  279. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/sl.ts +0 -126
  280. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/sv.ts +0 -127
  281. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ta.ts +0 -125
  282. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/th.ts +0 -126
  283. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/tr.ts +0 -121
  284. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ua.ts +0 -7
  285. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/uk.ts +0 -126
  286. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/ur.ts +0 -126
  287. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/vi.ts +0 -125
  288. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/yo.ts +0 -131
  289. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/zh-CN.ts +0 -123
  290. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/locales/zh-TW.ts +0 -125
  291. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/checks.ts +0 -32
  292. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/coerce.ts +0 -22
  293. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/external.ts +0 -40
  294. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/index.ts +0 -3
  295. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/iso.ts +0 -62
  296. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/parse.ts +0 -14
  297. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/schemas.ts +0 -1739
  298. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  299. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -51
  300. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  301. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -529
  302. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  303. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  304. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -43
  305. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -899
  306. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  307. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -200
  308. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  309. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -275
  310. pactkit-2.4.0/.opencode/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -315
  311. pactkit-2.4.0/.opencode/node_modules/zod/src/v4-mini/index.ts +0 -1
  312. pactkit-2.4.0/.opencode/node_modules/zod/v3/ZodError.cjs +0 -138
  313. pactkit-2.4.0/.opencode/node_modules/zod/v3/ZodError.d.cts +0 -164
  314. pactkit-2.4.0/.opencode/node_modules/zod/v3/ZodError.d.ts +0 -164
  315. pactkit-2.4.0/.opencode/node_modules/zod/v3/ZodError.js +0 -133
  316. pactkit-2.4.0/.opencode/node_modules/zod/v3/errors.cjs +0 -17
  317. pactkit-2.4.0/.opencode/node_modules/zod/v3/errors.d.cts +0 -5
  318. pactkit-2.4.0/.opencode/node_modules/zod/v3/errors.d.ts +0 -5
  319. pactkit-2.4.0/.opencode/node_modules/zod/v3/errors.js +0 -9
  320. pactkit-2.4.0/.opencode/node_modules/zod/v3/external.cjs +0 -22
  321. pactkit-2.4.0/.opencode/node_modules/zod/v3/external.d.cts +0 -6
  322. pactkit-2.4.0/.opencode/node_modules/zod/v3/external.d.ts +0 -6
  323. pactkit-2.4.0/.opencode/node_modules/zod/v3/external.js +0 -6
  324. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  325. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  326. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  327. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  328. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  329. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  330. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  331. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  332. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  333. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  334. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  335. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  336. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  337. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  338. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  339. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  340. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  341. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  342. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  343. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  344. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/util.cjs +0 -137
  345. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/util.d.cts +0 -85
  346. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/util.d.ts +0 -85
  347. pactkit-2.4.0/.opencode/node_modules/zod/v3/helpers/util.js +0 -133
  348. pactkit-2.4.0/.opencode/node_modules/zod/v3/index.cjs +0 -33
  349. pactkit-2.4.0/.opencode/node_modules/zod/v3/index.d.cts +0 -4
  350. pactkit-2.4.0/.opencode/node_modules/zod/v3/index.d.ts +0 -4
  351. pactkit-2.4.0/.opencode/node_modules/zod/v3/index.js +0 -4
  352. pactkit-2.4.0/.opencode/node_modules/zod/v3/locales/en.cjs +0 -112
  353. pactkit-2.4.0/.opencode/node_modules/zod/v3/locales/en.d.cts +0 -3
  354. pactkit-2.4.0/.opencode/node_modules/zod/v3/locales/en.d.ts +0 -3
  355. pactkit-2.4.0/.opencode/node_modules/zod/v3/locales/en.js +0 -109
  356. pactkit-2.4.0/.opencode/node_modules/zod/v3/package.json +0 -6
  357. pactkit-2.4.0/.opencode/node_modules/zod/v3/standard-schema.cjs +0 -2
  358. pactkit-2.4.0/.opencode/node_modules/zod/v3/standard-schema.d.cts +0 -102
  359. pactkit-2.4.0/.opencode/node_modules/zod/v3/standard-schema.d.ts +0 -102
  360. pactkit-2.4.0/.opencode/node_modules/zod/v3/standard-schema.js +0 -1
  361. pactkit-2.4.0/.opencode/node_modules/zod/v3/types.cjs +0 -3777
  362. pactkit-2.4.0/.opencode/node_modules/zod/v3/types.d.cts +0 -1034
  363. pactkit-2.4.0/.opencode/node_modules/zod/v3/types.d.ts +0 -1034
  364. pactkit-2.4.0/.opencode/node_modules/zod/v3/types.js +0 -3695
  365. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/checks.cjs +0 -32
  366. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/checks.d.cts +0 -1
  367. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/checks.d.ts +0 -1
  368. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/checks.js +0 -1
  369. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/coerce.cjs +0 -47
  370. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  371. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  372. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/coerce.js +0 -17
  373. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/compat.cjs +0 -61
  374. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/compat.d.cts +0 -50
  375. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/compat.d.ts +0 -50
  376. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/compat.js +0 -31
  377. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/errors.cjs +0 -74
  378. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/errors.d.cts +0 -30
  379. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/errors.d.ts +0 -30
  380. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/errors.js +0 -48
  381. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/external.cjs +0 -70
  382. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/external.d.cts +0 -13
  383. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/external.d.ts +0 -13
  384. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/external.js +0 -18
  385. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/index.cjs +0 -33
  386. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/index.d.cts +0 -4
  387. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/index.d.ts +0 -4
  388. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/index.js +0 -4
  389. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/iso.cjs +0 -60
  390. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/iso.d.cts +0 -22
  391. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/iso.d.ts +0 -22
  392. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/iso.js +0 -30
  393. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/package.json +0 -6
  394. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/parse.cjs +0 -41
  395. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/parse.d.cts +0 -31
  396. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/parse.d.ts +0 -31
  397. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/parse.js +0 -15
  398. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/schemas.cjs +0 -1161
  399. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/schemas.d.cts +0 -673
  400. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/schemas.d.ts +0 -673
  401. pactkit-2.4.0/.opencode/node_modules/zod/v4/classic/schemas.js +0 -1050
  402. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/api.cjs +0 -1060
  403. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/api.d.cts +0 -295
  404. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/api.d.ts +0 -295
  405. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/api.js +0 -925
  406. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/checks.cjs +0 -595
  407. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/checks.d.cts +0 -278
  408. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/checks.d.ts +0 -278
  409. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/checks.js +0 -569
  410. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/core.cjs +0 -74
  411. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/core.d.cts +0 -52
  412. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/core.d.ts +0 -52
  413. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/core.js +0 -67
  414. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/doc.cjs +0 -39
  415. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/doc.d.cts +0 -14
  416. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/doc.d.ts +0 -14
  417. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/doc.js +0 -35
  418. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/errors.cjs +0 -221
  419. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/errors.d.cts +0 -210
  420. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/errors.d.ts +0 -210
  421. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/errors.js +0 -190
  422. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/index.cjs +0 -43
  423. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/index.d.cts +0 -14
  424. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/index.d.ts +0 -14
  425. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/index.js +0 -14
  426. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/json-schema.cjs +0 -2
  427. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/json-schema.d.cts +0 -88
  428. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/json-schema.d.ts +0 -88
  429. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/json-schema.js +0 -1
  430. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/package.json +0 -6
  431. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/parse.cjs +0 -131
  432. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/parse.d.cts +0 -49
  433. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/parse.d.ts +0 -49
  434. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/parse.js +0 -93
  435. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/regexes.cjs +0 -136
  436. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/regexes.d.cts +0 -78
  437. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/regexes.d.ts +0 -78
  438. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/regexes.js +0 -127
  439. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/registries.cjs +0 -57
  440. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/registries.d.cts +0 -35
  441. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/registries.d.ts +0 -35
  442. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/registries.js +0 -52
  443. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/schemas.cjs +0 -1972
  444. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/schemas.d.cts +0 -1113
  445. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/schemas.d.ts +0 -1113
  446. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/schemas.js +0 -1941
  447. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  448. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/standard-schema.d.cts +0 -55
  449. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/standard-schema.d.ts +0 -55
  450. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/standard-schema.js +0 -1
  451. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/to-json-schema.cjs +0 -920
  452. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/to-json-schema.d.cts +0 -90
  453. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/to-json-schema.d.ts +0 -90
  454. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/to-json-schema.js +0 -915
  455. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/util.cjs +0 -658
  456. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/util.d.cts +0 -197
  457. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/util.d.ts +0 -197
  458. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/util.js +0 -601
  459. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/versions.cjs +0 -8
  460. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/versions.d.cts +0 -5
  461. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/versions.d.ts +0 -5
  462. pactkit-2.4.0/.opencode/node_modules/zod/v4/core/versions.js +0 -5
  463. pactkit-2.4.0/.opencode/node_modules/zod/v4/index.cjs +0 -22
  464. pactkit-2.4.0/.opencode/node_modules/zod/v4/index.d.cts +0 -3
  465. pactkit-2.4.0/.opencode/node_modules/zod/v4/index.d.ts +0 -3
  466. pactkit-2.4.0/.opencode/node_modules/zod/v4/index.js +0 -3
  467. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ar.cjs +0 -143
  468. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ar.d.cts +0 -5
  469. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ar.d.ts +0 -4
  470. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ar.js +0 -116
  471. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/az.cjs +0 -142
  472. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/az.d.cts +0 -5
  473. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/az.d.ts +0 -4
  474. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/az.js +0 -115
  475. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/be.cjs +0 -191
  476. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/be.d.cts +0 -5
  477. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/be.d.ts +0 -4
  478. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/be.js +0 -164
  479. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/bg.cjs +0 -156
  480. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/bg.d.cts +0 -5
  481. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/bg.d.ts +0 -5
  482. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/bg.js +0 -128
  483. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ca.cjs +0 -145
  484. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ca.d.cts +0 -5
  485. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ca.d.ts +0 -4
  486. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ca.js +0 -118
  487. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/cs.cjs +0 -162
  488. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/cs.d.cts +0 -5
  489. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/cs.d.ts +0 -4
  490. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/cs.js +0 -135
  491. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/da.cjs +0 -158
  492. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/da.d.cts +0 -5
  493. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/da.d.ts +0 -4
  494. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/da.js +0 -131
  495. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/de.cjs +0 -143
  496. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/de.d.cts +0 -5
  497. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/de.d.ts +0 -4
  498. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/de.js +0 -116
  499. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/en.cjs +0 -145
  500. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/en.d.cts +0 -5
  501. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/en.d.ts +0 -5
  502. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/en.js +0 -117
  503. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/eo.cjs +0 -144
  504. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/eo.d.cts +0 -5
  505. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/eo.d.ts +0 -5
  506. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/eo.js +0 -116
  507. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/es.cjs +0 -176
  508. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/es.d.cts +0 -5
  509. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/es.d.ts +0 -4
  510. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/es.js +0 -149
  511. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fa.cjs +0 -149
  512. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fa.d.cts +0 -5
  513. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fa.d.ts +0 -4
  514. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fa.js +0 -122
  515. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fi.cjs +0 -149
  516. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fi.d.cts +0 -5
  517. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fi.d.ts +0 -4
  518. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fi.js +0 -122
  519. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr-CA.cjs +0 -144
  520. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
  521. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  522. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr-CA.js +0 -117
  523. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr.cjs +0 -143
  524. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr.d.cts +0 -5
  525. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr.d.ts +0 -4
  526. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/fr.js +0 -116
  527. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/he.cjs +0 -144
  528. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/he.d.cts +0 -5
  529. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/he.d.ts +0 -4
  530. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/he.js +0 -117
  531. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/hu.cjs +0 -144
  532. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/hu.d.cts +0 -5
  533. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/hu.d.ts +0 -4
  534. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/hu.js +0 -117
  535. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/id.cjs +0 -143
  536. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/id.d.cts +0 -5
  537. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/id.d.ts +0 -4
  538. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/id.js +0 -116
  539. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/index.cjs +0 -98
  540. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/index.d.cts +0 -46
  541. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/index.d.ts +0 -46
  542. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/index.js +0 -46
  543. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/is.cjs +0 -145
  544. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/is.d.cts +0 -5
  545. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/is.d.ts +0 -5
  546. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/is.js +0 -117
  547. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/it.cjs +0 -144
  548. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/it.d.cts +0 -5
  549. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/it.d.ts +0 -4
  550. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/it.js +0 -117
  551. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ja.cjs +0 -142
  552. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ja.d.cts +0 -5
  553. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ja.d.ts +0 -4
  554. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ja.js +0 -115
  555. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ka.cjs +0 -153
  556. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ka.d.cts +0 -5
  557. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ka.d.ts +0 -5
  558. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ka.js +0 -125
  559. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/kh.cjs +0 -12
  560. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/kh.d.cts +0 -5
  561. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/kh.d.ts +0 -5
  562. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/kh.js +0 -5
  563. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/km.cjs +0 -144
  564. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/km.d.cts +0 -5
  565. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/km.d.ts +0 -4
  566. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/km.js +0 -117
  567. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ko.cjs +0 -148
  568. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ko.d.cts +0 -5
  569. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ko.d.ts +0 -4
  570. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ko.js +0 -121
  571. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/lt.cjs +0 -258
  572. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/lt.d.cts +0 -5
  573. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/lt.d.ts +0 -5
  574. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/lt.js +0 -230
  575. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/mk.cjs +0 -145
  576. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/mk.d.cts +0 -5
  577. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/mk.d.ts +0 -4
  578. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/mk.js +0 -118
  579. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ms.cjs +0 -143
  580. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ms.d.cts +0 -5
  581. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ms.d.ts +0 -4
  582. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ms.js +0 -116
  583. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/nl.cjs +0 -144
  584. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/nl.d.cts +0 -5
  585. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/nl.d.ts +0 -4
  586. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/nl.js +0 -117
  587. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/no.cjs +0 -143
  588. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/no.d.cts +0 -5
  589. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/no.d.ts +0 -4
  590. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/no.js +0 -116
  591. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ota.cjs +0 -144
  592. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ota.d.cts +0 -5
  593. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ota.d.ts +0 -4
  594. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ota.js +0 -117
  595. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/package.json +0 -6
  596. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pl.cjs +0 -144
  597. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pl.d.cts +0 -5
  598. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pl.d.ts +0 -4
  599. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pl.js +0 -117
  600. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ps.cjs +0 -149
  601. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ps.d.cts +0 -5
  602. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ps.d.ts +0 -4
  603. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ps.js +0 -122
  604. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pt.cjs +0 -143
  605. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pt.d.cts +0 -5
  606. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pt.d.ts +0 -4
  607. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/pt.js +0 -116
  608. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ru.cjs +0 -191
  609. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ru.d.cts +0 -5
  610. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ru.d.ts +0 -4
  611. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ru.js +0 -164
  612. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sl.cjs +0 -144
  613. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sl.d.cts +0 -5
  614. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sl.d.ts +0 -4
  615. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sl.js +0 -117
  616. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sv.cjs +0 -145
  617. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sv.d.cts +0 -5
  618. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sv.d.ts +0 -4
  619. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/sv.js +0 -118
  620. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ta.cjs +0 -144
  621. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ta.d.cts +0 -5
  622. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ta.d.ts +0 -4
  623. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ta.js +0 -117
  624. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/th.cjs +0 -144
  625. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/th.d.cts +0 -5
  626. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/th.d.ts +0 -4
  627. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/th.js +0 -117
  628. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/tr.cjs +0 -143
  629. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/tr.d.cts +0 -5
  630. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/tr.d.ts +0 -5
  631. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/tr.js +0 -115
  632. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ua.cjs +0 -12
  633. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ua.d.cts +0 -5
  634. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ua.d.ts +0 -5
  635. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ua.js +0 -5
  636. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/uk.cjs +0 -144
  637. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/uk.d.cts +0 -5
  638. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/uk.d.ts +0 -4
  639. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/uk.js +0 -117
  640. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ur.cjs +0 -144
  641. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ur.d.cts +0 -5
  642. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ur.d.ts +0 -4
  643. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/ur.js +0 -117
  644. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/vi.cjs +0 -143
  645. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/vi.d.cts +0 -5
  646. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/vi.d.ts +0 -4
  647. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/vi.js +0 -116
  648. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/yo.cjs +0 -142
  649. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/yo.d.cts +0 -5
  650. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/yo.d.ts +0 -4
  651. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/yo.js +0 -115
  652. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-CN.cjs +0 -143
  653. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
  654. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  655. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-CN.js +0 -116
  656. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-TW.cjs +0 -144
  657. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
  658. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  659. pactkit-2.4.0/.opencode/node_modules/zod/v4/locales/zh-TW.js +0 -117
  660. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/checks.cjs +0 -34
  661. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/checks.d.cts +0 -1
  662. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/checks.d.ts +0 -1
  663. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/checks.js +0 -1
  664. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/coerce.cjs +0 -47
  665. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  666. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  667. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/coerce.js +0 -17
  668. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/external.cjs +0 -62
  669. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/external.d.cts +0 -11
  670. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/external.d.ts +0 -11
  671. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/external.js +0 -13
  672. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/index.cjs +0 -32
  673. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/index.d.cts +0 -3
  674. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/index.d.ts +0 -3
  675. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/index.js +0 -3
  676. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/iso.cjs +0 -60
  677. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/iso.d.cts +0 -22
  678. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/iso.d.ts +0 -22
  679. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/iso.js +0 -30
  680. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/package.json +0 -6
  681. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/parse.cjs +0 -16
  682. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/parse.d.cts +0 -1
  683. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/parse.d.ts +0 -1
  684. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/parse.js +0 -1
  685. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/schemas.cjs +0 -906
  686. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/schemas.d.cts +0 -407
  687. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/schemas.d.ts +0 -407
  688. pactkit-2.4.0/.opencode/node_modules/zod/v4/mini/schemas.js +0 -789
  689. pactkit-2.4.0/.opencode/node_modules/zod/v4/package.json +0 -6
  690. pactkit-2.4.0/.opencode/node_modules/zod/v4-mini/index.cjs +0 -17
  691. pactkit-2.4.0/.opencode/node_modules/zod/v4-mini/index.d.cts +0 -1
  692. pactkit-2.4.0/.opencode/node_modules/zod/v4-mini/index.d.ts +0 -1
  693. pactkit-2.4.0/.opencode/node_modules/zod/v4-mini/index.js +0 -1
  694. pactkit-2.4.0/.opencode/node_modules/zod/v4-mini/package.json +0 -6
  695. pactkit-2.4.0/.opencode/package.json +0 -5
  696. pactkit-2.4.0/src/pactkit/utils.py +0 -9
  697. {pactkit-2.4.0 → pactkit-2.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  698. {pactkit-2.4.0 → pactkit-2.5.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  699. {pactkit-2.4.0 → pactkit-2.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  700. {pactkit-2.4.0 → pactkit-2.5.0}/.github/dependabot.yml +0 -0
  701. {pactkit-2.4.0 → pactkit-2.5.0}/.github/workflows/ci.yml +0 -0
  702. {pactkit-2.4.0 → pactkit-2.5.0}/.gitignore +0 -0
  703. {pactkit-2.4.0 → pactkit-2.5.0}/AGENTS.md +0 -0
  704. {pactkit-2.4.0 → pactkit-2.5.0}/CODE_OF_CONDUCT.md +0 -0
  705. {pactkit-2.4.0 → pactkit-2.5.0}/CONTRIBUTING.md +0 -0
  706. {pactkit-2.4.0 → pactkit-2.5.0}/LICENSE +0 -0
  707. {pactkit-2.4.0 → pactkit-2.5.0}/README.md +0 -0
  708. {pactkit-2.4.0 → pactkit-2.5.0}/SECURITY.md +0 -0
  709. {pactkit-2.4.0 → pactkit-2.5.0}/docs/assets/logo.png +0 -0
  710. {pactkit-2.4.0 → pactkit-2.5.0}/docs/guides/codex-integration-preresearch.md +0 -0
  711. {pactkit-2.4.0 → pactkit-2.5.0}/docs/guides/tool-integration-checklist.md +0 -0
  712. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-001.md +0 -0
  713. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-002.md +0 -0
  714. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-003.md +0 -0
  715. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-004.md +0 -0
  716. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-005.md +0 -0
  717. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-006.md +0 -0
  718. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-007.md +0 -0
  719. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-008.md +0 -0
  720. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-009.md +0 -0
  721. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-010.md +0 -0
  722. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-011.md +0 -0
  723. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-012.md +0 -0
  724. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-013.md +0 -0
  725. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-014.md +0 -0
  726. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-015.md +0 -0
  727. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-016.md +0 -0
  728. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-017.md +0 -0
  729. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-018.md +0 -0
  730. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-019.md +0 -0
  731. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-020.md +0 -0
  732. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-021.md +0 -0
  733. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-022.md +0 -0
  734. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-023.md +0 -0
  735. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-024.md +0 -0
  736. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-025.md +0 -0
  737. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-026.md +0 -0
  738. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-027.md +0 -0
  739. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-028.md +0 -0
  740. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-029.md +0 -0
  741. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-030.md +0 -0
  742. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-031.md +0 -0
  743. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-032.md +0 -0
  744. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-033.md +0 -0
  745. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-034.md +0 -0
  746. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-035.md +0 -0
  747. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-001.md +0 -0
  748. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-002.md +0 -0
  749. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-003.md +0 -0
  750. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-004.md +0 -0
  751. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-005.md +0 -0
  752. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-006.md +0 -0
  753. {pactkit-2.4.0 → pactkit-2.5.0}/docs/specs/BUG-slim-007.md +0 -0
  754. {pactkit-2.4.0 → pactkit-2.5.0}/docs/test_cases/BUG-001_case.md +0 -0
  755. {pactkit-2.4.0 → pactkit-2.5.0}/docs/test_cases/BUG-002_case.md +0 -0
  756. {pactkit-2.4.0 → pactkit-2.5.0}/opencode.json +0 -0
  757. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/backfill.py +0 -0
  758. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/cleaners.py +0 -0
  759. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/cli.py +0 -0
  760. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/context_gen.py +0 -0
  761. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/coverage_gate.py +0 -0
  762. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/doctor.py +0 -0
  763. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/generators/__init__.py +0 -0
  764. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/generators/adapter.py +0 -0
  765. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/guards.py +0 -0
  766. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/id_generator.py +0 -0
  767. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/invariants.py +0 -0
  768. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/issue_sync.py +0 -0
  769. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/lazy_visualize.py +0 -0
  770. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/lessons.py +0 -0
  771. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/lint_runner.py +0 -0
  772. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/profiles.py +0 -0
  773. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/__init__.py +0 -0
  774. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/agents.py +0 -0
  775. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/references.py +0 -0
  776. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/rules.py +0 -0
  777. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/prompts/skills.py +0 -0
  778. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/regression.py +0 -0
  779. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/schemas.py +0 -0
  780. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/scripts.py +0 -0
  781. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/sec_scope.py +0 -0
  782. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/spec_status.py +0 -0
  783. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/test_mapper.py +0 -0
  784. {pactkit-2.4.0 → pactkit-2.5.0}/src/pactkit/validators.py +0 -0
  785. {pactkit-2.4.0 → pactkit-2.5.0}/tests/conftest.py +0 -0
  786. {pactkit-2.4.0 → pactkit-2.5.0}/tests/e2e/__init__.py +0 -0
  787. {pactkit-2.4.0 → pactkit-2.5.0}/tests/e2e/cli/__init__.py +0 -0
  788. {pactkit-2.4.0 → pactkit-2.5.0}/tests/e2e/cli/test_cli_e2e.py +0 -0
  789. {pactkit-2.4.0 → pactkit-2.5.0}/tests/integration/__init__.py +0 -0
  790. {pactkit-2.4.0 → pactkit-2.5.0}/tests/integration/test_deploy_classic.py +0 -0
  791. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_agent_features.py +0 -0
  792. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_agent_frontmatter.py +0 -0
  793. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_agents_enrichment.py +0 -0
  794. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_board_bug027.py +0 -0
  795. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_board_sections.py +0 -0
  796. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug001_skill_path.py +0 -0
  797. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug002_plugin_paths.py +0 -0
  798. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug003_multi_import.py +0 -0
  799. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug004_dead_set.py +0 -0
  800. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug005_archive_taskless.py +0 -0
  801. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug006_scan_excludes.py +0 -0
  802. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
  803. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug008_stale_command_refs.py +0 -0
  804. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug009_project_config_backfill.py +0 -0
  805. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
  806. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug011_stale_refs.py +0 -0
  807. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug012_call_graph_filter.py +0 -0
  808. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug013_config_single_source.py +0 -0
  809. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug014_version_hygiene.py +0 -0
  810. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug017_project_init_playbook.py +0 -0
  811. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
  812. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug019_venv_deployment.py +0 -0
  813. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug020_claude_md_backup.py +0 -0
  814. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug025_release_delegation.py +0 -0
  815. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug026_version_sync.py +0 -0
  816. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug028_ghost_refs.py +0 -0
  817. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
  818. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
  819. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
  820. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug035_opencode_dual_layer.py +0 -0
  821. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_021.py +0 -0
  822. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_022.py +0 -0
  823. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_023.py +0 -0
  824. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_024.py +0 -0
  825. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim001_env_detection.py +0 -0
  826. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
  827. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim003.py +0 -0
  828. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim004.py +0 -0
  829. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim005.py +0 -0
  830. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_bug_slim006.py +0 -0
  831. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_check_command.py +0 -0
  832. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_command_frontmatter.py +0 -0
  833. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_command_visualize_modes.py +0 -0
  834. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_config.py +0 -0
  835. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_config_auto_merge.py +0 -0
  836. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_constitution_sharpening.py +0 -0
  837. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_create_skill.py +0 -0
  838. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_cross_flow_matrix.py +0 -0
  839. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_deploy_opencode_parity.py +0 -0
  840. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_deployer_cleanup.py +0 -0
  841. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_deployer_plugin.py +0 -0
  842. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_design_command.py +0 -0
  843. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_done_gates.py +0 -0
  844. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_draw_prompt.py +0 -0
  845. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_draw_references.py +0 -0
  846. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_drawio_mcp.py +0 -0
  847. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_home_path_fix.py +0 -0
  848. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_hotfix_command.py +0 -0
  849. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_init_guard.py +0 -0
  850. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_lang_profiles.py +0 -0
  851. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_list_stories.py +0 -0
  852. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_mcp_integration.py +0 -0
  853. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_model_config.py +0 -0
  854. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_modular_constitution.py +0 -0
  855. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_multi_prefix.py +0 -0
  856. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_pdca_slim.py +0 -0
  857. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_profiles.py +0 -0
  858. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_project_visibility.py +0 -0
  859. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_prompt_cli_refs.py +0 -0
  860. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_prompt_structural_invariants.py +0 -0
  861. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_prompts_package.py +0 -0
  862. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_release.py +0 -0
  863. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_release_field.py +0 -0
  864. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_release_v110.py +0 -0
  865. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_render_prompt.py +0 -0
  866. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_review_command.py +0 -0
  867. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_rules_enrichment.py +0 -0
  868. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_scaffold.py +0 -0
  869. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_scaffold_developer_prefix.py +0 -0
  870. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_schemas.py +0 -0
  871. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_script_extraction.py +0 -0
  872. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_selective_deploy.py +0 -0
  873. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_session_context.py +0 -0
  874. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_skill_structure.py +0 -0
  875. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_skills_enrichment.py +0 -0
  876. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_smart_regression.py +0 -0
  877. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_stack_references.py +0 -0
  878. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_status_command.py +0 -0
  879. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_statusline.py +0 -0
  880. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story014_release.py +0 -0
  881. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story015_ci_lint_gate.py +0 -0
  882. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story016_claude_md.py +0 -0
  883. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story017_init_claude_md.py +0 -0
  884. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story018_arch_staleness.py +0 -0
  885. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story019_bailout.py +0 -0
  886. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story020_horizon.py +0 -0
  887. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story021_rfc.py +0 -0
  888. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story022_decision_tree.py +0 -0
  889. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story023_test_quality.py +0 -0
  890. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story024_native_agent.py +0 -0
  891. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story025_ci_pipeline.py +0 -0
  892. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story026_issue_tracker.py +0 -0
  893. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story027_hooks.py +0 -0
  894. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story028_rule_scoping.py +0 -0
  895. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story029_doctor.py +0 -0
  896. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story030_lint.py +0 -0
  897. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story031_git_init_guard.py +0 -0
  898. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story032_greenfield_redirect.py +0 -0
  899. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story033_config_backfill.py +0 -0
  900. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story034_plan_config_refresh.py +0 -0
  901. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story035_readme_docs.py +0 -0
  902. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story037_regression_fix.py +0 -0
  903. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story039_venv_config.py +0 -0
  904. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story040_layered_claude_md.py +0 -0
  905. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story043_active_clarify.py +0 -0
  906. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story044_consistency_check.py +0 -0
  907. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story045_auto_pr.py +0 -0
  908. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story046_agent_adapter.py +0 -0
  909. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story047_enterprise_flags.py +0 -0
  910. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story049_community_standards.py +0 -0
  911. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
  912. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story051_workflow_streamlining.py +0 -0
  913. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story052_conditional_github_release.py +0 -0
  914. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story055_commands.py +0 -0
  915. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story055_config.py +0 -0
  916. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story055_spec_linter.py +0 -0
  917. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story056_commands.py +0 -0
  918. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story056_config.py +0 -0
  919. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story057_implicit_cleanup.py +0 -0
  920. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story058_routing_fix.py +0 -0
  921. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story060_init_hang.py +0 -0
  922. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story061_remove_thinking.py +0 -0
  923. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story062_mcp_recommendations.py +0 -0
  924. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story064_venv_local_md.py +0 -0
  925. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story065_sprint_model.py +0 -0
  926. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story069_opencode_format.py +0 -0
  927. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story070_opencode_compliance.py +0 -0
  928. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story071_opencode_config_parity.py +0 -0
  929. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story072_developer_prefix.py +0 -0
  930. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story073_command_model_routing.py +0 -0
  931. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
  932. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
  933. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim011_command_rules.py +0 -0
  934. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim012_ci.py +0 -0
  935. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_clean.py +0 -0
  936. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_context.py +0 -0
  937. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_guard.py +0 -0
  938. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
  939. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_next_id.py +0 -0
  940. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_regression.py +0 -0
  941. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_sec_scope.py +0 -0
  942. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim014_validators.py +0 -0
  943. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim015_doctor.py +0 -0
  944. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
  945. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim017.py +0 -0
  946. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim018.py +0 -0
  947. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
  948. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
  949. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim021.py +0 -0
  950. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim022.py +0 -0
  951. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim023.py +0 -0
  952. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim024.py +0 -0
  953. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim025.py +0 -0
  954. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim026.py +0 -0
  955. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim027.py +0 -0
  956. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim028.py +0 -0
  957. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim029.py +0 -0
  958. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim030.py +0 -0
  959. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim031.py +0 -0
  960. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim032.py +0 -0
  961. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim033.py +0 -0
  962. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim034.py +0 -0
  963. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim035.py +0 -0
  964. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim036.py +0 -0
  965. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim037.py +0 -0
  966. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim038.py +0 -0
  967. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim039.py +0 -0
  968. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim040.py +0 -0
  969. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim041.py +0 -0
  970. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim042.py +0 -0
  971. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim043.py +0 -0
  972. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim044.py +0 -0
  973. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim045.py +0 -0
  974. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim046.py +0 -0
  975. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim047.py +0 -0
  976. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_story_slim048.py +0 -0
  977. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_tools.py +0 -0
  978. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_update_task.py +0 -0
  979. {pactkit-2.4.0 → pactkit-2.5.0}/tests/unit/test_visualize_modes.py +0 -0
@@ -20,7 +20,7 @@ jobs:
20
20
  - name: Install dependencies
21
21
  run: |
22
22
  python -m pip install --upgrade pip
23
- pip install -e ".[multilang]"
23
+ pip install -e ".[dev]" || pip install -e .
24
24
  pip install pytest ruff
25
25
  pactkit init
26
26
 
@@ -0,0 +1,61 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install -e ".[dev]" || pip install -e .
31
+ pip install pytest ruff
32
+
33
+ - name: Lint
34
+ run: ruff check src/ tests/
35
+
36
+ - name: Test
37
+ run: pytest tests/ -v --ignore=tests/unit/test_story_slim032.py --ignore=tests/unit/test_story_slim033.py --ignore=tests/unit/test_story_slim034.py
38
+
39
+ publish:
40
+ needs: test
41
+ runs-on: ubuntu-latest
42
+ environment: pypi
43
+ permissions:
44
+ contents: read
45
+ id-token: write
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+
49
+ - name: Set up Python
50
+ uses: actions/setup-python@v5
51
+ with:
52
+ python-version: "3.12"
53
+
54
+ - name: Install build tools
55
+ run: python -m pip install --upgrade pip build
56
+
57
+ - name: Build package
58
+ run: python -m build
59
+
60
+ - name: Publish to PyPI
61
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -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.4.0"
5
+ version: "2.5.0"
6
6
  stack: python
7
7
  root: .
8
8
  developer: "slim"
@@ -4,6 +4,40 @@ 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.5.0] - 2026-03-26
8
+
9
+ ### Added
10
+ - **E2E CLI Coverage 100%** (STORY-slim-056) — 60 subprocess-based E2E tests covering all 25 CLI subcommands, including parametrized `--help` consistency check, error path validation, and Unicode project path support.
11
+ - **`__main__.py`** — `python -m pactkit` now works as an alternative to the `pactkit` entry point.
12
+
13
+ ### Fixed
14
+ - **Mermaid Quote Injection** (STORY-slim-053 R1) — File/function names containing `"` no longer break `.mmd` graph rendering; escaped via `#quot;` HTML entity at 4 label sites.
15
+ - **O(N×E) Callee Resolution** (STORY-slim-053 R2) — `_resolve_callee()` now uses a pre-built `suffix_index` dict for O(1) lookup instead of linear scan.
16
+ - **Module Index Collision** (STORY-slim-053 R3) — `module_index` changed from `dict[str, Path]` to `dict[str, list[Path]]` with `_best_match()` same-package preference, fixing silent node loss for same-name files in different directories.
17
+ - **Focus Substring False Positives** (STORY-slim-053 R4) — `--focus auth.py` no longer matches `oauth.py`; changed to exact path-tail matching with `_extract_node_id()` set lookup.
18
+ - **BFS O(N²) Pop** (STORY-slim-053 R5) — All 4 BFS sites now use `collections.deque.popleft()` instead of `list.pop(0)`.
19
+ - **`_rewrite_yaml` Non-Atomic Write** (STORY-slim-054 R1) — `config.py` now uses tmp+rename pattern, preventing `pactkit.yaml` corruption on crash/disk-full.
20
+ - **`_deploy_ci` Dict Mutation** (STORY-slim-054 R2) — Changed `.pop("_ghe_override")` to `.get()`, preventing caller dict mutation across multi-call scenarios.
21
+ - **`atomic_write` .tmp Residual** (STORY-slim-054 R3) — Added try/except cleanup so `.tmp` files are removed on `os.replace()` failure.
22
+ - **Visualize Non-Atomic .mmd Writes** (STORY-slim-055 R1) — All 4 `.mmd` output sites now use `_atomic_mmd_write()` (tmp+rename).
23
+ - **Deployer Bare `read_text()`** (STORY-slim-055 R2) — 3 sites in `deployer.py` now specify `encoding='utf-8'` for Windows compatibility.
24
+ - **Large File OOM** (STORY-slim-055 R3) — Added `MAX_FILE_BYTES=1MB` guard to `PythonAnalyzer` and `_build_class_graph()`, skipping auto-generated mega-files.
25
+ - **Sprint Redundant Operations** (STORY-slim-050) — Eliminated duplicate visualize/clean/context runs in sprint orchestration.
26
+ - **Skill Script Robustness** (STORY-slim-051, 052) — Hardened board.py, scaffold.py, spec_linter.py, visualize.py with encoding, error handling, and call-chain fixes.
27
+
28
+ ## [2.4.1] - 2026-03-26
29
+
30
+ ### Fixed
31
+ - **CI Template Override** (HOTFIX-slim-051) — `_build_github_workflow()` now reads `ci.install_cmd` from `pactkit.yaml` before falling back to `CI_PROFILES` default, preventing `pactkit update` from reverting custom install commands.
32
+ - **Board ITEM_ID_RE** (HOTFIX-slim-052) — Regex now supports developer-prefixed IDs (`HOTFIX-slim-052`, `STORY-alice-001`), matching the pattern already used by `backfill.py` and `doctor.py`.
33
+
34
+ ### Added
35
+ - **Board `move_story` Command** (HOTFIX-slim-052) — New `board.py move_story <ID> <target>` CLI subcommand moves stories between Backlog/In Progress/Done sections regardless of checkbox state.
36
+ - **Automated PyPI Publish** — New `publish.yml` GitHub Actions workflow triggers on `v*` tags; runs full test matrix (Python 3.10-3.13) then publishes via PyPI trusted publisher (OIDC).
37
+
38
+ ### Changed
39
+ - **Closed-Source Migration** — Source repo moved to `pactkit/pactkit-src` (private); public entry point at `pactkit/pactkit-public` (README, issues, install guide). PyPI distribution unchanged.
40
+
7
41
  ## [2.4.0] - 2026-03-25
8
42
 
9
43
  ### Added
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pactkit
3
- Version: 2.4.0
3
+ Version: 2.5.0
4
4
  Summary: Spec-driven agentic DevOps toolkit for AI coding assistants
5
5
  Project-URL: Homepage, https://pactkit.dev
6
- Project-URL: Repository, https://github.com/pactkit/pactkit
6
+ Project-URL: Repository, https://github.com/pactkit/pactkit-public
7
7
  Project-URL: Documentation, https://pactkit.dev/docs
8
- Project-URL: Issues, https://github.com/pactkit/pactkit/issues
8
+ Project-URL: Issues, https://github.com/pactkit/pactkit-public/issues
9
9
  Author: Slim
10
10
  License-Expression: MIT
11
11
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pactkit"
7
- version = "2.4.0"
7
+ version = "2.5.0"
8
8
  description = "Spec-driven agentic DevOps toolkit for AI coding assistants"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -55,9 +55,9 @@ multilang = [
55
55
 
56
56
  [project.urls]
57
57
  Homepage = "https://pactkit.dev"
58
- Repository = "https://github.com/pactkit/pactkit"
58
+ Repository = "https://github.com/pactkit/pactkit-public"
59
59
  Documentation = "https://pactkit.dev/docs"
60
- Issues = "https://github.com/pactkit/pactkit/issues"
60
+ Issues = "https://github.com/pactkit/pactkit-public/issues"
61
61
 
62
62
  [project.scripts]
63
63
  pactkit = "pactkit.cli:main"
@@ -1,3 +1,3 @@
1
1
  """PactKit - Spec-driven agentic DevOps toolkit."""
2
2
 
3
- __version__ = "2.4.0"
3
+ __version__ = "2.5.0"
@@ -0,0 +1,4 @@
1
+ """Allow running pactkit as ``python -m pactkit``."""
2
+ from pactkit.cli import main
3
+
4
+ main()
@@ -1,5 +1,6 @@
1
1
  """PactKit configuration — load, validate, and generate pactkit.yaml."""
2
2
 
3
+ import os
3
4
  import re
4
5
  import warnings
5
6
  from dataclasses import dataclass, field
@@ -704,7 +705,14 @@ def _rewrite_yaml(path: Path, data: dict) -> None:
704
705
  lines.append(serialized.rstrip())
705
706
  lines.append("")
706
707
 
707
- path.write_text("\n".join(lines), encoding="utf-8")
708
+ tmp = path.with_suffix(".tmp")
709
+ try:
710
+ tmp.write_text("\n".join(lines), encoding="utf-8")
711
+ os.replace(tmp, path)
712
+ except Exception:
713
+ if tmp.exists():
714
+ tmp.unlink(missing_ok=True)
715
+ raise
708
716
 
709
717
 
710
718
  # ---------------------------------------------------------------------------
@@ -891,7 +891,7 @@ def _load_opencode_providers(opencode_root):
891
891
  json_path = opencode_root / "opencode.json"
892
892
  if json_path.is_file():
893
893
  try:
894
- data = json.loads(json_path.read_text())
894
+ data = json.loads(json_path.read_text(encoding='utf-8'))
895
895
  return data.get("provider", {})
896
896
  except (json.JSONDecodeError, OSError):
897
897
  pass
@@ -996,9 +996,10 @@ def _build_github_workflow(stack, ci_config, lang_profile, is_ghe=False):
996
996
  for key, val in ci_prof["extra_setup"].items():
997
997
  lines.append(f" {key}: {val}")
998
998
  lines.append("")
999
+ install_cmd = ci_config.get("install_cmd", ci_prof["install_cmd"])
999
1000
  lines.append(" - name: Install dependencies")
1000
1001
  lines.append(" run: |")
1001
- lines.append(f" {ci_prof['install_cmd']}")
1002
+ lines.append(f" {install_cmd}")
1002
1003
  lines.append("")
1003
1004
  lines.append(" - name: Lint")
1004
1005
  lines.append(f" run: {lint_command}")
@@ -1063,7 +1064,7 @@ def _deploy_ci(provider, project_root, config):
1063
1064
  ci_config = {}
1064
1065
 
1065
1066
  # GHE detection priority: _ghe_override (testing) > github_host (explicit) > auto-detect
1066
- is_ghe = ci_config.pop("_ghe_override", None)
1067
+ is_ghe = ci_config.get("_ghe_override")
1067
1068
  if is_ghe is None:
1068
1069
  github_host = ci_config.get("github_host", "")
1069
1070
  if github_host:
@@ -1312,7 +1313,7 @@ def _generate_project_claude_md(config):
1312
1313
  # STORY-040 R4: Migration heuristic
1313
1314
  # If CLAUDE.md exists but CLAUDE.local.md doesn't, check for user modifications
1314
1315
  if claude_md_path.exists() and not claude_local_path.exists():
1315
- existing_content = claude_md_path.read_text()
1316
+ existing_content = claude_md_path.read_text(encoding='utf-8')
1316
1317
  if _is_user_modified_claude_md(existing_content, project_name):
1317
1318
  # Migrate user content to CLAUDE.local.md
1318
1319
  atomic_write(claude_local_path, existing_content)
@@ -1635,7 +1636,7 @@ def _update_global_opencode_json(opencode_root, command_models=None, providers=N
1635
1636
  # Read existing config if present
1636
1637
  if json_path.is_file():
1637
1638
  try:
1638
- config = json.loads(json_path.read_text())
1639
+ config = json.loads(json_path.read_text(encoding='utf-8'))
1639
1640
  except (json.JSONDecodeError, OSError):
1640
1641
  config = {}
1641
1642
 
@@ -373,8 +373,12 @@ allowed-tools: [Read, Write, Edit, Bash, Glob]
373
373
  ## 🎬 Phase 2.5: Regression Gate (MANDATORY)
374
374
  > **CRITICAL**: Do NOT skip this step. This is the safety net before commit.
375
375
 
376
- ### Step 1: Impact Analysis
376
+ ### Step 0: Source Change Pre-Check
377
377
  - Run `git diff --name-only HEAD~1` (or vs. branch base) to list all changed files.
378
+ - Filter for source and test files only (exclude docs, configs, graphs).
379
+ - If **no source/test files changed** since the last commit (e.g., only docs, board, graphs, or config changed): log `"Regression: SKIP — no source/test changes since Act"` and proceed directly to Step 2.7 (Smart Lint Gate). This avoids re-running 3000+ tests when Act already verified the code.
380
+
381
+ ### Step 1: Impact Analysis
378
382
  - Check if `docs/architecture/graphs/code_graph.mmd` exists.
379
383
 
380
384
  ### Step 1.3: Classification Shortcut
@@ -322,7 +322,7 @@ description: "Automated PDCA Sprint orchestration via Subagent Team (Slim Team)"
322
322
  allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
323
323
  ---
324
324
 
325
- # Command: Sprint (v1.4.0 Protocol-Only Orchestrator)
325
+ # Command: Sprint (v1.5.0 Protocol-Only Orchestrator)
326
326
  - **Usage**: `/project-sprint "$ARGUMENTS"`
327
327
  - **Agent**: Team Lead (current session)
328
328
 
@@ -332,7 +332,7 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
332
332
  ## Phase 0: Setup
333
333
  1. Parse requirement from `$ARGUMENTS`. Run `pactkit next-id` to determine next STORY-ID.
334
334
  2. `TeamCreate("sprint-{STORY_ID}")`.
335
- 3. `TaskCreate` for each stage: Plan (no deps), Act (blockedBy: Plan), Check-QA (blockedBy: Act), Check-Security (blockedBy: Act), Close (blockedBy: both Checks).
335
+ 3. `TaskCreate` for each stage: Plan (no deps), Act (blockedBy: Plan), Check-QA (blockedBy: Act), Close (blockedBy: Check-QA).
336
336
  4. Verify worktree support (`git worktree list`). Use `isolation="worktree"` if supported.
337
337
  5. Read `pactkit.yaml` (check `{PACTKIT_YAML}`), extract `agent_models`: `plan_model=agent_models.get('system-architect','opus')`, `act_model=agent_models.get('senior-developer','sonnet')`. Default: fallback to `sonnet` if model unavailable.
338
338
 
@@ -340,18 +340,20 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
340
340
 
341
341
  ### Stage A: Build
342
342
 
343
- **A1** (`system-architect`, model: opus, isolation="worktree"): Execute `commands/project-plan.md`. Verify Spec. STOP on failure.
343
+ **A1** (`system-architect`, model: opus, isolation="worktree"): Execute `commands/project-plan.md`.
344
+ - **Sprint override**: Skip Phase 0.7 Clarify Gate. Use STORY-ID {STORY_ID} (already determined — skip `pactkit next-id`).
345
+ - Verify Spec. STOP on failure.
344
346
 
345
347
  **A2** (`senior-developer`, model: sonnet, isolation="worktree"): Execute `commands/project-act.md`. Merge worktree. STOP on failure.
346
348
 
347
- ### Stage B: Check (PARALLEL — launch both in ONE message)
348
- - Launch `qa-engineer` (model: sonnet, isolation="worktree"): Execute `commands/project-check.md`. Report "QA PASS/FAIL".
349
- - Launch `security-auditor` (model: sonnet, isolation="worktree"): OWASP audit for {STORY_ID}. Report "SECURITY PASS/FAIL".
350
- - Collect reports from worktrees. On any FAIL: STOP.
349
+ ### Stage B: Check
350
+ - Launch `qa-engineer` (model: sonnet, isolation="worktree"): Execute `commands/project-check.md` (includes SEC-1~8 in Phase 1). Report "QA PASS/FAIL".
351
+ - Collect reports from worktree. On FAIL: STOP.
351
352
 
352
353
  ### Stage C: Close
353
- - Launch `repo-maintainer` (model: sonnet, isolation="worktree"): Execute `commands/project-done.md`. Report "DONE PASS/FAIL".
354
- - Merge worktree branch on success.
354
+ - Launch `repo-maintainer` (model: sonnet, isolation="worktree"): Execute `commands/project-done.md`.
355
+ - **Sprint overrides**: Skip `pactkit update` in Phase 4. Skip `pactkit visualize --lazy` in Phase 2 (Act already ran it).
356
+ - Report "DONE PASS/FAIL". Merge worktree branch on success.
355
357
 
356
358
  ## Phase 2: Cleanup
357
359
  1. `SendMessage(type="shutdown_request")` to all teammates.
@@ -369,7 +371,6 @@ allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
369
371
  | Plan | system-architect | opus (agent_models) | project-plan.md |
370
372
  | Act | senior-developer | sonnet (agent_models) | project-act.md |
371
373
  | Check-QA | qa-engineer | sonnet | project-check.md |
372
- | Check-Security | security-auditor | sonnet | (inline OWASP audit) |
373
374
  | Close | repo-maintainer | sonnet | project-done.md |
374
375
  """
375
376
 
@@ -9,6 +9,7 @@ from pathlib import Path
9
9
  _SCRIPTS_DIR = Path(__file__).parent
10
10
 
11
11
  _SHARED_HEADER = r"""import abc, re, os, sys, json, datetime, argparse, subprocess, shutil, ast
12
+ from collections import deque
12
13
  from dataclasses import dataclass
13
14
  from pathlib import Path
14
15
 
@@ -16,7 +16,7 @@ def nl():
16
16
  # === SCRIPT BODY ===
17
17
 
18
18
  # Shared pattern for all recognized work item prefixes
19
- ITEM_ID_RE = r"(?:STORY|HOTFIX|BUG)-\d+"
19
+ ITEM_ID_RE = r"(?:STORY|HOTFIX|BUG)(?:-[a-z]+)?-\d+"
20
20
 
21
21
  # Flexible story title pattern: matches ### or #### (tolerant) with [ID] or ID: or ID formats
22
22
  # Group 1: story ID, Group 2: title text
@@ -38,6 +38,11 @@ def add_story(sid, title, tasks):
38
38
  if not p.exists():
39
39
  return "❌ No Board"
40
40
  content = p.read_text(encoding="utf-8")
41
+ # R6: Duplicate guard — check if story already exists on board
42
+ existing_blocks = _parse_story_blocks(content)
43
+ for block_sid, *_ in existing_blocks:
44
+ if block_sid == sid:
45
+ return f"❌ Story {sid} already on board"
41
46
  t_md = nl().join([f"- [ ] {t.strip()}" for t in tasks.split("|") if t.strip()])
42
47
  entry = f"{nl()}### [{sid}] {title}{nl()}> Spec: docs/specs/{sid}.md{nl()}{nl()}{t_md}{nl()}"
43
48
  # Insert before In Progress section
@@ -54,7 +59,10 @@ def add_story(sid, title, tasks):
54
59
 
55
60
 
56
61
  def _parse_story_blocks(content):
57
- """Extract all ### [ID] or ### ID: blocks with their full text."""
62
+ """Extract all ### [ID] or ### ID: blocks with their full text and positions.
63
+
64
+ Returns list of (sid, block_text, start_pos, end_pos) tuples.
65
+ """
58
66
  blocks = []
59
67
  story_pat = _TITLE_RE
60
68
  section_pat = r"^## "
@@ -71,7 +79,12 @@ def _parse_story_blocks(content):
71
79
  next_section = sp
72
80
  break
73
81
  end = min(next_story, next_section)
74
- blocks.append((m.group(1), content[start:end].rstrip()))
82
+ # R4 (STORY-slim-052): Trim trailing whitespace and adjust end to match,
83
+ # so that len(block_text) == end - start for all callers.
84
+ raw = content[start:end]
85
+ trimmed = raw.rstrip()
86
+ adjusted_end = start + len(trimmed)
87
+ blocks.append((m.group(1), trimmed, start, adjusted_end))
75
88
  return blocks
76
89
 
77
90
 
@@ -98,23 +111,27 @@ def fix_board():
98
111
  dp = content.find(_DONE)
99
112
  if bp == -1 or ip == -1 or dp == -1:
100
113
  return "❌ Board missing section headers"
101
- # Extract all story blocks
114
+ # Extract all story blocks (with positions)
102
115
  blocks = _parse_story_blocks(content)
103
116
  if not blocks:
104
117
  return "✅ No misplaced stories found."
105
- # Remove all story blocks from content
118
+ # Remove all story blocks from content using position-based removal (R5)
106
119
  clean = content
107
- for sid, block_text in reversed(blocks):
108
- idx = clean.find(block_text)
109
- if idx != -1:
110
- clean = clean[:idx] + clean[idx + len(block_text) :]
120
+ offset = 0
121
+ for _, block_text, start, end in blocks:
122
+ span = end - start
123
+ adj_start = start - offset
124
+ clean = clean[:adj_start] + clean[adj_start + span:]
125
+ offset += span
126
+ # R2 (STORY-slim-052): Clean up trailing whitespace on otherwise-empty lines
127
+ clean = nl().join(line.rstrip() for line in clean.split(nl()))
111
128
  # Clean up excessive blank lines
112
129
  clean = re.sub(r"\n{3,}", nl() + nl(), clean)
113
130
  # Classify stories into buckets
114
131
  backlog_items = []
115
132
  in_progress_items = []
116
133
  done_items = []
117
- for sid, block_text in blocks:
134
+ for _, block_text, _, _ in blocks:
118
135
  cat = _classify_story(block_text)
119
136
  if cat == "backlog":
120
137
  backlog_items.append(block_text)
@@ -149,6 +166,19 @@ def fix_board():
149
166
  return f"✅ Board fixed: {moved} stories relocated."
150
167
 
151
168
 
169
+ def _write_board(p, content):
170
+ """Atomic write to board file."""
171
+ tmp = p.with_suffix(".tmp")
172
+ tmp.write_text(content, encoding="utf-8")
173
+ os.replace(tmp, p)
174
+
175
+
176
+ def _mark_done(content, story_match, story_block, old_task):
177
+ """Replace one unchecked task with checked, return new content."""
178
+ new_block = story_block.replace(f"- [ ] {old_task}", f"- [x] {old_task}", 1)
179
+ return content[: story_match.start()] + new_block + content[story_match.end() :]
180
+
181
+
152
182
  def update_task(sid, tasks_list):
153
183
  task_name = " ".join(tasks_list)
154
184
  p = Path.cwd() / "docs/product/sprint_board.md"
@@ -161,20 +191,45 @@ def update_task(sid, tasks_list):
161
191
  if not story_match:
162
192
  return f"❌ Story {sid} not found"
163
193
  story_block = story_match.group(1)
164
- # Check if task exists as unchecked
194
+
195
+ def _update_and_fix(content, matched_task):
196
+ content = _mark_done(content, story_match, story_block, matched_task)
197
+ _write_board(p, content)
198
+ fix_board() # Explicit call for auto-move (R4: not in _write_board)
199
+ return f"✅ Task {sid} updated: {matched_task}"
200
+
201
+ # Strategy 1: Exact match
165
202
  task_pat = rf"(- \[ \] {re.escape(task_name)})"
166
203
  if re.search(task_pat, story_block):
167
- new_block = re.sub(task_pat, f"- [x] {task_name}", story_block, count=1)
168
- new_content = content[: story_match.start()] + new_block + content[story_match.end() :]
169
- tmp = p.with_suffix(".tmp")
170
- tmp.write_text(new_content, encoding="utf-8")
171
- os.replace(tmp, p)
172
- fix_board()
173
- return f"✅ Task {sid} updated: {task_name}"
174
- # Check if already done
204
+ return _update_and_fix(content, task_name)
205
+
206
+ # Check if already done (exact)
175
207
  if re.search(rf"- \[x\] {re.escape(task_name)}", story_block):
176
208
  return f"✅ Already done: {task_name}"
177
- return f"❌ Task not found in {sid}: {task_name}"
209
+
210
+ # Strategy 2: Fuzzy fallback — collect all unchecked tasks
211
+ unchecked = re.findall(r"- \[ \] (.+)", story_block)
212
+ if not unchecked:
213
+ return f"✅ All tasks in {sid} already done"
214
+
215
+ # 2a: Only one unchecked task — mark it done (most common case)
216
+ if len(unchecked) == 1:
217
+ return _update_and_fix(content, unchecked[0])
218
+
219
+ # 2b: Substring match
220
+ matches = [t for t in unchecked
221
+ if task_name.lower() in t.lower() or t.lower() in task_name.lower()]
222
+ if len(matches) == 1:
223
+ return _update_and_fix(content, matches[0])
224
+
225
+ # 2c: Numeric index (1-based)
226
+ if task_name.isdigit():
227
+ idx = int(task_name) - 1
228
+ if 0 <= idx < len(unchecked):
229
+ return _update_and_fix(content, unchecked[idx])
230
+
231
+ remaining = ", ".join(unchecked)
232
+ return f"❌ Task not found in {sid}: {task_name}. Unchecked: [{remaining}]"
178
233
 
179
234
 
180
235
  def update_version(version):
@@ -188,8 +243,12 @@ def update_version(version):
188
243
  if yaml_path is None:
189
244
  return "⚠️ No pactkit.yaml found, skipping version update"
190
245
  content = yaml_path.read_text(encoding="utf-8")
191
- content = re.sub(r"version:\s*\S+", f"version: {version}", content)
192
- yaml_path.write_text(content, encoding="utf-8")
246
+ # R8: Only replace the first/top-level version: key, not nested ones
247
+ content = re.sub(r"version:\s*\S+", f"version: {version}", content, count=1)
248
+ # R5 (STORY-slim-052): Atomic write via tmp+rename
249
+ tmp = yaml_path.with_suffix(".tmp")
250
+ tmp.write_text(content, encoding="utf-8")
251
+ os.replace(tmp, yaml_path)
193
252
  return f"✅ Version updated to {version}"
194
253
 
195
254
 
@@ -206,6 +265,55 @@ def snapshot_graph(version):
206
265
  return f"✅ Snapshot {version}: {count} graphs saved"
207
266
 
208
267
 
268
+ # --- MOVE ---
269
+ def move_story(sid, target):
270
+ """Move a story to the specified section regardless of checkbox state."""
271
+ valid_targets = {"backlog": _BACKLOG, "in_progress": _IN_PROGRESS, "done": _DONE}
272
+ if target not in valid_targets:
273
+ return f"❌ Invalid target: {target}. Use: backlog, in_progress, done"
274
+ p = Path.cwd() / "docs/product/sprint_board.md"
275
+ if not p.exists():
276
+ return "❌ No Board"
277
+ content = p.read_text(encoding="utf-8")
278
+ blocks = _parse_story_blocks(content)
279
+ # Find the target story (with position)
280
+ story_block = None
281
+ block_start = None
282
+ block_end = None
283
+ for block_sid, block_text, start, end in blocks:
284
+ if block_sid == sid:
285
+ story_block = block_text
286
+ block_start = start
287
+ block_end = end
288
+ break
289
+ if story_block is None:
290
+ return f"❌ Story {sid} not found on board"
291
+ # Remove the story block using its known position (R5)
292
+ content = content[:block_start] + content[block_end:]
293
+ content = re.sub(r"\n{3,}", nl() + nl(), content)
294
+ # Find target section and the next section after it
295
+ target_header = valid_targets[target]
296
+ section_order = [_BACKLOG, _IN_PROGRESS, _DONE]
297
+ target_idx = content.find(target_header)
298
+ if target_idx == -1:
299
+ return f"❌ Section '{target_header}' not found"
300
+ # Find the next section header after target
301
+ next_section_idx = len(content)
302
+ for sec in section_order:
303
+ sec_idx = content.find(sec)
304
+ if sec_idx > target_idx and sec_idx < next_section_idx:
305
+ next_section_idx = sec_idx
306
+ # Insert story block just before the next section (or at end)
307
+ insert_point = next_section_idx
308
+ entry = nl() + story_block + nl() + nl()
309
+ content = content[:insert_point].rstrip() + entry + content[insert_point:]
310
+ content = re.sub(r"\n{3,}", nl() + nl(), content)
311
+ tmp = p.with_suffix(".tmp")
312
+ tmp.write_text(content, encoding="utf-8")
313
+ os.replace(tmp, p)
314
+ return f"✅ Moved {sid} to {target}"
315
+
316
+
209
317
  # --- LIST ---
210
318
  def list_stories():
211
319
  p = Path.cwd() / "docs/product/sprint_board.md"
@@ -244,7 +352,8 @@ def archive_stories():
244
352
  return "❌ No Board"
245
353
  content = board_path.read_text(encoding="utf-8")
246
354
  # BUG-027: Support both ### and #### for backward compatibility
247
- parts = re.split(r"(?=^#{3,4} \[?(?:STORY|HOTFIX|BUG)-)", content, flags=re.MULTILINE)
355
+ # R7: Use ITEM_ID_RE instead of hardcoded prefix list
356
+ parts = re.split(rf"(?=^#{{3,4}} \[?(?:{ITEM_ID_RE})\]?)", content, flags=re.MULTILINE)
248
357
  active_parts = [parts[0]]
249
358
  archived_parts = []
250
359
  for part in parts[1:]:
@@ -289,6 +398,9 @@ if __name__ == "__main__":
289
398
  p_ver.add_argument("version")
290
399
  p_snap = sub.add_parser("snapshot")
291
400
  p_snap.add_argument("version")
401
+ p_move = sub.add_parser("move_story")
402
+ p_move.add_argument("story_id")
403
+ p_move.add_argument("target", choices=["backlog", "in_progress", "done"])
292
404
  sub.add_parser("archive")
293
405
  sub.add_parser("list_stories")
294
406
  sub.add_parser("fix_board")
@@ -306,5 +418,7 @@ if __name__ == "__main__":
306
418
  print(archive_stories())
307
419
  elif a.cmd == "list_stories":
308
420
  print(list_stories())
421
+ elif a.cmd == "move_story":
422
+ print(move_story(a.story_id, a.target))
309
423
  elif a.cmd == "fix_board":
310
424
  print(fix_board())
@@ -29,9 +29,13 @@ def git_start(story_id):
29
29
  branch_type = _BRANCH_PREFIX_MAP.get(prefix, "feature")
30
30
  b = f"{branch_type}/{clean_id}"
31
31
  try:
32
- subprocess.run(["git", "checkout", "-b", b], check=True)
33
- except:
34
- pass
32
+ subprocess.run(["git", "checkout", "-b", b], check=True,
33
+ capture_output=True, text=True)
34
+ except subprocess.CalledProcessError as e:
35
+ reason = (e.stderr or e.stdout or str(e)).strip()
36
+ return f"❌ Branch creation failed: {reason}"
37
+ except FileNotFoundError:
38
+ return "❌ Branch creation failed: git not found"
35
39
  return f"✅ Branch: {b}"
36
40
 
37
41
 
@@ -39,6 +43,8 @@ def git_start(story_id):
39
43
  def create_test_file(path):
40
44
  p = Path.cwd() / path
41
45
  t = Path.cwd() / "tests/unit" / f"test_{p.name}"
46
+ if t.exists():
47
+ return f"❌ Test file already exists: {t}"
42
48
  if not t.parent.exists():
43
49
  t.parent.mkdir(parents=True, exist_ok=True)
44
50
  c = ["import pytest", f"# Test {p.name}", "def test_basic(): assert True"]
@@ -50,6 +56,8 @@ def create_e2e(story, name):
50
56
  story = _inject_developer_prefix(story)
51
57
  safe = re.sub(r"[^a-zA-Z0-9]", "_", name.lower())
52
58
  p = Path.cwd() / f"tests/e2e/test_{story}_{safe}.py"
59
+ if p.exists():
60
+ return f"❌ E2E test file already exists: {p}"
53
61
  if not p.parent.exists():
54
62
  p.parent.mkdir(parents=True, exist_ok=True)
55
63
  c = ["import pytest", f"# E2E {story}", "def test_e2e(): assert True"]
@@ -104,7 +112,13 @@ def _inject_developer_prefix(item_id):
104
112
  # Check if developer prefix is already present
105
113
  if rest.startswith(f"{dev}-"):
106
114
  return item_id
107
- return f"{item_type}-{dev}-{rest}"
115
+ # R17: Only inject prefix if rest is pure numeric (e.g., "042")
116
+ # or matches a known developer-NNN pattern. Reject ambiguous inputs
117
+ # like "slim2-001" where a different prefix is embedded.
118
+ if re.match(r"^\d+$", rest):
119
+ return f"{item_type}-{dev}-{rest}"
120
+ # rest contains non-numeric chars (e.g., "slim2-001") — pass through unchanged
121
+ return item_id
108
122
 
109
123
 
110
124
  # --- SPEC ---
@@ -164,9 +178,14 @@ _SPEC_TEMPLATE = """\
164
178
  def create_spec(i, t):
165
179
  i = _inject_developer_prefix(i)
166
180
  p = Path.cwd() / f"docs/specs/{i}.md"
181
+ if p.exists():
182
+ return f"❌ Spec already exists: {p}"
167
183
  if not p.parent.exists():
168
184
  p.parent.mkdir(parents=True, exist_ok=True)
169
- c = _SPEC_TEMPLATE.format(id=i, title=t)
185
+ # R7 (STORY-slim-052): Use sequential str.replace() instead of .format()
186
+ # to avoid KeyError/ValueError when title contains { or } characters.
187
+ # Follows Architecture Principle 7 (template rendering safety).
188
+ c = _SPEC_TEMPLATE.replace("{id}", i).replace("{title}", t)
170
189
  p.write_text(c, encoding="utf-8")
171
190
  return "✅ Spec Created"
172
191
 
@@ -266,6 +285,9 @@ def create_board():
266
285
  # --- PRD ---
267
286
  def create_prd(product_name):
268
287
  p = Path.cwd() / "docs" / "product" / "prd.md"
288
+ # R9 (STORY-slim-052): Guard against overwriting existing PRD
289
+ if p.exists():
290
+ return f"⚠️ PRD already exists: {p}"
269
291
  if not p.parent.exists():
270
292
  p.parent.mkdir(parents=True, exist_ok=True)
271
293
  c = nl().join(