pactkit 2.3.3__tar.gz → 2.3.5__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.
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/pactkit.yaml +1 -1
- {pactkit-2.3.3 → pactkit-2.3.5}/CHANGELOG.md +14 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/PKG-INFO +1 -1
- {pactkit-2.3.3 → pactkit-2.3.5}/pyproject.toml +1 -1
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/__init__.py +1 -1
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/config.py +15 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/skills/spec_linter.py +51 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_config.py +4 -4
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_config_auto_merge.py +4 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story033_config_backfill.py +3 -2
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story042_spec_linter.py +13 -13
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim022.py +2 -0
- pactkit-2.3.5/tests/unit/test_story_slim024.py +283 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/dependabot.yml +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/workflows/ci.yml +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.github/workflows/pactkit.yml +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.gitignore +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/.gitignore +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/bun.lock +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/memory/.gitignore +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/memory/project.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/@opencode-ai/plugin/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/@opencode-ai/sdk/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/LICENSE +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/README.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/locales/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/locales/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/locales/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/locales/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/locales/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/mini/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/mini/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/mini/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/mini/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/mini/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/locales/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/mini/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/ZodError.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/object.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/string.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/benchmarks/union.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/errors.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/external.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/helpers/util.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/locales/en.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/standard-schema.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/Mocker.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/array.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/base.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/bigint.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/branded.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/catch.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/coerce.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/complex.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/custom.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/date.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/default.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/description.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/enum.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/error.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/function.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/generics.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/intersection.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/language-server.source.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/language-server.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/literal.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/map.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/masking.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/mocker.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/nan.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/nullable.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/number.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/object.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/optional.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/parser.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/partials.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/primitive.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/promise.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/readonly.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/record.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/recursive.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/refine.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/set.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/string.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/transformer.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/tuple.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/unions.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/validations.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/tests/void.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v3/types.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/checks.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/coerce.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/compat.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/errors.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/external.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/iso.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/parse.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/schemas.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/api.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/checks.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/config.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/core.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/doc.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/errors.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/json-schema.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/parse.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/regexes.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/registries.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/schemas.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/standard-schema.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/index.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/to-json-schema.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/util.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/versions.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/core/zsf.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ar.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/az.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/be.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/bg.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ca.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/cs.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/da.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/de.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/en.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/eo.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/es.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/fa.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/fi.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/fr-CA.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/fr.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/he.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/hu.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/id.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/is.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/it.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ja.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ka.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/kh.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/km.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ko.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/lt.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/mk.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ms.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/nl.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/no.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ota.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/pl.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ps.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/pt.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ru.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/sl.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/sv.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ta.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/th.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/tr.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ua.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/uk.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/ur.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/vi.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/yo.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/zh-CN.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/locales/zh-TW.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/checks.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/coerce.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/external.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/iso.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/parse.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/schemas.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/src/v4-mini/index.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/ZodError.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/ZodError.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/ZodError.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/ZodError.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/errors.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/errors.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/errors.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/errors.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/external.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/external.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/external.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/external.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/enumUtil.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/enumUtil.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/errorUtil.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/errorUtil.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/parseUtil.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/parseUtil.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/partialUtil.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/partialUtil.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/typeAliases.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/typeAliases.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/util.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/util.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/util.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/helpers/util.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/locales/en.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/locales/en.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/locales/en.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/locales/en.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/standard-schema.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/standard-schema.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/standard-schema.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/standard-schema.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/types.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/types.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/types.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v3/types.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/checks.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/checks.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/checks.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/checks.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/coerce.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/coerce.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/coerce.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/coerce.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/compat.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/compat.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/compat.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/compat.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/errors.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/errors.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/errors.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/errors.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/external.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/external.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/external.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/external.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/iso.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/iso.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/iso.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/iso.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/parse.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/parse.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/parse.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/parse.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/schemas.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/schemas.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/schemas.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/classic/schemas.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/api.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/api.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/api.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/api.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/checks.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/checks.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/checks.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/checks.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/core.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/core.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/core.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/core.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/doc.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/doc.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/doc.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/doc.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/errors.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/errors.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/errors.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/errors.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/json-schema.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/json-schema.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/json-schema.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/json-schema.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/parse.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/parse.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/parse.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/parse.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/regexes.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/regexes.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/regexes.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/regexes.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/registries.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/registries.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/registries.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/registries.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/schemas.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/schemas.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/schemas.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/schemas.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/standard-schema.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/standard-schema.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/standard-schema.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/standard-schema.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/to-json-schema.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/to-json-schema.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/to-json-schema.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/to-json-schema.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/util.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/util.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/util.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/util.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/versions.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/versions.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/versions.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/core/versions.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ar.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ar.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ar.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ar.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/az.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/az.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/az.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/az.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/be.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/be.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/be.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/be.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/bg.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/bg.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/bg.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/bg.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ca.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ca.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ca.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ca.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/cs.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/cs.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/cs.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/cs.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/da.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/da.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/da.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/da.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/de.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/de.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/de.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/de.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/en.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/en.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/en.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/en.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/eo.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/eo.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/eo.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/eo.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/es.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/es.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/es.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/es.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fa.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fa.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fa.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fa.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fi.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fi.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fi.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fi.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr-CA.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr-CA.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr-CA.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr-CA.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/fr.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/he.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/he.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/he.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/he.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/hu.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/hu.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/hu.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/hu.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/id.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/id.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/id.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/id.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/is.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/is.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/is.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/is.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/it.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/it.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/it.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/it.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ja.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ja.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ja.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ja.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ka.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ka.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ka.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ka.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/kh.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/kh.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/kh.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/kh.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/km.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/km.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/km.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/km.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ko.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ko.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ko.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ko.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/lt.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/lt.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/lt.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/lt.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/mk.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/mk.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/mk.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/mk.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ms.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ms.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ms.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ms.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/nl.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/nl.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/nl.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/nl.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/no.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/no.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/no.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/no.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ota.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ota.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ota.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ota.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pl.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pl.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pl.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pl.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ps.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ps.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ps.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ps.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pt.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pt.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pt.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/pt.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ru.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ru.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ru.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ru.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sl.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sl.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sl.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sl.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sv.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sv.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sv.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/sv.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ta.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ta.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ta.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ta.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/th.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/th.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/th.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/th.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/tr.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/tr.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/tr.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/tr.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ua.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ua.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ua.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ua.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/uk.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/uk.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/uk.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/uk.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ur.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ur.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ur.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/ur.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/vi.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/vi.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/vi.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/vi.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/yo.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/yo.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/yo.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/yo.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-CN.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-CN.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-CN.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-CN.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-TW.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-TW.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-TW.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/locales/zh-TW.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/checks.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/checks.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/checks.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/checks.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/coerce.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/coerce.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/coerce.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/coerce.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/external.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/external.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/external.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/external.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/iso.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/iso.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/iso.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/iso.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/parse.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/parse.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/parse.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/parse.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/schemas.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/schemas.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/schemas.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/mini/schemas.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4-mini/index.cjs +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4-mini/index.d.cts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4-mini/index.d.ts +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4-mini/index.js +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/node_modules/zod/v4-mini/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/.opencode/package.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/AGENTS.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/CODE_OF_CONDUCT.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/CONTRIBUTING.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/LICENSE +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/README.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/SECURITY.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/assets/logo.png +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/guides/codex-integration-preresearch.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/guides/tool-integration-checklist.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-001.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-002.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-003.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-004.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-005.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-006.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-007.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-008.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-009.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-010.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-011.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-012.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-013.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-014.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-015.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-016.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-017.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-018.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-019.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-020.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-021.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-022.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-023.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-024.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-025.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-026.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-027.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-028.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-029.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-030.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-031.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-032.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-033.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-034.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-035.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-001.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-002.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-003.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-004.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-005.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/specs/BUG-slim-006.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/test_cases/BUG-001_case.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/docs/test_cases/BUG-002_case.md +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/opencode.json +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/backfill.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/cleaners.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/cli.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/context_gen.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/coverage_gate.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/doctor.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/generators/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/generators/adapter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/generators/deployer.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/guards.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/id_generator.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/invariants.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/issue_sync.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/lazy_visualize.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/lessons.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/lint_runner.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/profiles.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/agents.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/commands.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/references.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/rules.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/skills.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/prompts/workflows.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/regression.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/schemas.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/scripts.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/sec_scope.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/skills/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/skills/board.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/skills/scaffold.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/skills/visualize.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/spec_status.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/test_mapper.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/utils.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/src/pactkit/validators.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/conftest.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/e2e/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/e2e/cli/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/e2e/cli/test_cli_e2e.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/integration/__init__.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/integration/test_deploy_classic.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_agent_features.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_agent_frontmatter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_agents_enrichment.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_board_bug027.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_board_sections.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug001_skill_path.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug002_plugin_paths.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug003_multi_import.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug004_dead_set.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug005_archive_taskless.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug006_scan_excludes.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug007_stale_trace_refs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug008_stale_command_refs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug009_project_config_backfill.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug010_rewrite_yaml.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug011_stale_refs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug012_call_graph_filter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug013_config_single_source.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug014_version_hygiene.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug017_project_init_playbook.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug018_issue_tracker_verification.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug019_venv_deployment.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug020_claude_md_backup.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug025_release_delegation.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug026_version_sync.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug028_ghost_refs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug029_stack_detection_fallback.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug030_spec_lint_cli.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug031_docstring_accuracy.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug034_plan_metadata_template.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug035_opencode_dual_layer.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_021.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_022.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_023.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_024.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim001_env_detection.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim002_instruction_collision.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim003.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim004.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim005.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_bug_slim006.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_check_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_command_frontmatter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_command_visualize_modes.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_constitution_sharpening.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_create_skill.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_cross_flow_matrix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_deploy_opencode_parity.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_deployer_cleanup.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_deployer_plugin.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_design_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_done_gates.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_draw_prompt.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_draw_references.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_drawio_mcp.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_home_path_fix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_hotfix_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_init_guard.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_lang_profiles.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_list_stories.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_mcp_integration.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_model_config.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_modular_constitution.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_multi_prefix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_pdca_slim.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_profiles.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_project_visibility.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_prompt_cli_refs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_prompt_structural_invariants.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_prompts_package.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_release.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_release_field.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_release_v110.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_render_prompt.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_review_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_rules_enrichment.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_scaffold.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_scaffold_developer_prefix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_schemas.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_script_extraction.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_selective_deploy.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_session_context.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_skill_structure.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_skills_enrichment.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_smart_regression.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_sprint_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_stack_references.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_status_command.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_statusline.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story014_release.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story015_ci_lint_gate.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story016_claude_md.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story017_init_claude_md.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story018_arch_staleness.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story019_bailout.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story020_horizon.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story021_rfc.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story022_decision_tree.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story023_test_quality.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story024_native_agent.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story025_ci_pipeline.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story026_issue_tracker.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story027_hooks.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story028_rule_scoping.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story029_doctor.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story030_lint.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story031_git_init_guard.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story032_greenfield_redirect.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story034_plan_config_refresh.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story035_readme_docs.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story037_regression_fix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story038_call_graph_update.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story039_venv_config.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story040_layered_claude_md.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story043_active_clarify.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story044_consistency_check.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story045_auto_pr.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story046_agent_adapter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story047_enterprise_flags.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story048_worktree_isolation.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story049_community_standards.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story050_doc_only_shortcut.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story051_workflow_streamlining.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story052_conditional_github_release.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story053_impact_regression.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story055_commands.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story055_config.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story055_spec_linter.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story056_commands.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story056_config.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story057_implicit_cleanup.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story058_routing_fix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story060_init_hang.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story061_remove_thinking.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story062_mcp_recommendations.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story063_prompt_slimming.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story064_venv_local_md.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story065_sprint_model.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story069_opencode_format.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story070_opencode_compliance.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story071_opencode_config_parity.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story072_developer_prefix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story073_command_model_routing.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim009_lazy_rules.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim010_dry_refactor.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim011_command_rules.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim012_ci.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_clean.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_context.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_guard.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_lazy_viz.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_next_id.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_regression.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_sec_scope.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim014_validators.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim015_doctor.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim016_testmap_lint.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim017.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim018.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim019_plan_subphases.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim020_explore_stall_fix.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim021.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_story_slim023.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_tools.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_update_task.py +0 -0
- {pactkit-2.3.3 → pactkit-2.3.5}/tests/unit/test_visualize_modes.py +0 -0
|
@@ -4,6 +4,20 @@ All notable changes to PactKit will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
6
6
|
|
|
7
|
+
## [2.3.5] - 2026-03-23
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- **W007 RFC 2119 Detection** — W007 now detects all RFC 2119 keywords (MUST, SHOULD, MAY, SHALL, REQUIRED, RECOMMENDED, OPTIONAL) using canonical `SPEC_RFC_KEYWORDS` from schemas.py, instead of hardcoding only SHOULD.
|
|
11
|
+
|
|
12
|
+
## [2.3.4] - 2026-03-23
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **Spec Lint W007 — Req-AC Coverage** (STORY-slim-024) — New warning rule fires when `### R{N}:` requirements are not referenced by any `### AC{M}:` body. Helps catch SHOULD requirements that get overlooked. Message includes `(SHOULD)` indicator for unreferenced SHOULD requirements.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **E2E Config Fields** — `api_spec` and `compose_file` now included in `generate_default_yaml()` output (were commented out, breaking roundtrip tests).
|
|
19
|
+
- **Test Fixtures** — Updated test fixtures to include `e2e` section after HOTFIX-slim-025 added new fields.
|
|
20
|
+
|
|
7
21
|
## [2.3.3] - 2026-03-23
|
|
8
22
|
|
|
9
23
|
### Added
|
|
@@ -172,6 +172,8 @@ def get_default_config() -> dict:
|
|
|
172
172
|
"blocking": False,
|
|
173
173
|
"test_dir": "tests/e2e",
|
|
174
174
|
"env_file": ".env.test",
|
|
175
|
+
"api_spec": "", # HOTFIX-slim-025: OpenAPI spec for frontend/backend E2E
|
|
176
|
+
"compose_file": "docker-compose.test.yml", # HOTFIX-slim-025: for fullstack E2E
|
|
175
177
|
},
|
|
176
178
|
"done": {
|
|
177
179
|
"lesson_quality_threshold": 15,
|
|
@@ -830,6 +832,17 @@ def validate_config(config: dict) -> None:
|
|
|
830
832
|
warnings.warn(
|
|
831
833
|
f"e2e.env_file should be a string, got {type(e2e_env_file).__name__}"
|
|
832
834
|
)
|
|
835
|
+
# HOTFIX-slim-025: validate api_spec and compose_file
|
|
836
|
+
e2e_api_spec = e2e.get("api_spec")
|
|
837
|
+
if e2e_api_spec is not None and not isinstance(e2e_api_spec, str):
|
|
838
|
+
warnings.warn(
|
|
839
|
+
f"e2e.api_spec should be a string, got {type(e2e_api_spec).__name__}"
|
|
840
|
+
)
|
|
841
|
+
e2e_compose_file = e2e.get("compose_file")
|
|
842
|
+
if e2e_compose_file is not None and not isinstance(e2e_compose_file, str):
|
|
843
|
+
warnings.warn(
|
|
844
|
+
f"e2e.compose_file should be a string, got {type(e2e_compose_file).__name__}"
|
|
845
|
+
)
|
|
833
846
|
|
|
834
847
|
# enterprise section (STORY-047) — accepted without warnings
|
|
835
848
|
# multi_agent field (STORY-046) — accepted without warnings
|
|
@@ -945,6 +958,8 @@ def generate_default_yaml() -> str:
|
|
|
945
958
|
lines.append(f" blocking: {'true' if e2e.get('blocking') else 'false'}")
|
|
946
959
|
lines.append(f" test_dir: {e2e.get('test_dir', 'tests/e2e')}")
|
|
947
960
|
lines.append(f" env_file: {e2e.get('env_file', '.env.test')}")
|
|
961
|
+
lines.append(f" api_spec: \"{e2e.get('api_spec', '')}\" # OpenAPI spec path for frontend/backend")
|
|
962
|
+
lines.append(f" compose_file: {e2e.get('compose_file', 'docker-compose.test.yml')} # for fullstack")
|
|
948
963
|
|
|
949
964
|
# Write command_models section (STORY-073)
|
|
950
965
|
cmd_models = cfg.get("command_models", {})
|
|
@@ -23,6 +23,7 @@ try:
|
|
|
23
23
|
SPEC_REQUIRED_METADATA_FIELDS,
|
|
24
24
|
SPEC_REQUIRED_SECTIONS,
|
|
25
25
|
SPEC_REQUIREMENT_PATTERN,
|
|
26
|
+
SPEC_RFC_KEYWORDS,
|
|
26
27
|
SPEC_RFC_PATTERN,
|
|
27
28
|
SPEC_VALID_STATUSES,
|
|
28
29
|
)
|
|
@@ -34,6 +35,7 @@ except ImportError:
|
|
|
34
35
|
SPEC_REQUIREMENT_PATTERN = r"### R\d+[:\s]"
|
|
35
36
|
SPEC_AC_PATTERN = r"### AC\d+[:\s]|### Scenario\s+\d+[:\s]"
|
|
36
37
|
SPEC_GIVEN_WHEN_THEN = ("Given", "When", "Then")
|
|
38
|
+
SPEC_RFC_KEYWORDS = ("MUST", "SHOULD", "MAY", "SHALL", "REQUIRED", "RECOMMENDED", "OPTIONAL")
|
|
37
39
|
SPEC_RFC_PATTERN = re.compile(r"\b(MUST|SHOULD|MAY|SHALL|REQUIRED|RECOMMENDED|OPTIONAL)\b")
|
|
38
40
|
SPEC_VALID_STATUSES = ("Draft", "In Progress", "Done")
|
|
39
41
|
|
|
@@ -197,6 +199,54 @@ def _check_acceptance_criteria(text: str, result: LintResult) -> None:
|
|
|
197
199
|
|
|
198
200
|
_PIPE_TABLE_ROW = re.compile(r"^\|.+\|.+\|", re.MULTILINE)
|
|
199
201
|
|
|
202
|
+
# STORY-slim-024: R{N} ID extraction pattern
|
|
203
|
+
_REQ_ID_PATTERN = re.compile(r"###\s+(R\d+)[:\s]", re.MULTILINE)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def _extract_requirement_ids(req_section: str) -> dict[str, str]:
|
|
207
|
+
"""Extract R{N} IDs and their body text from Requirements section.
|
|
208
|
+
|
|
209
|
+
Returns dict mapping R{N} (e.g., "R1") to the requirement body text.
|
|
210
|
+
"""
|
|
211
|
+
result: dict[str, str] = {}
|
|
212
|
+
# Find all ### R{N}: headers
|
|
213
|
+
matches = list(_REQ_ID_PATTERN.finditer(req_section))
|
|
214
|
+
for i, m in enumerate(matches):
|
|
215
|
+
req_id = m.group(1).upper() # Normalize to uppercase (R1, R2, etc.)
|
|
216
|
+
# Body is from end of this header to start of next (or end of section)
|
|
217
|
+
start = m.end()
|
|
218
|
+
end = matches[i + 1].start() if i + 1 < len(matches) else len(req_section)
|
|
219
|
+
body = req_section[start:end].strip()
|
|
220
|
+
result[req_id] = body
|
|
221
|
+
return result
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def _check_req_ac_coverage(text: str, result: LintResult) -> None:
|
|
225
|
+
"""W007 — Check that all R{N} are referenced by at least one AC."""
|
|
226
|
+
req_section = _section_text(text, "Requirements")
|
|
227
|
+
ac_section = _section_text(text, "Acceptance Criteria")
|
|
228
|
+
|
|
229
|
+
if req_section is None or ac_section is None:
|
|
230
|
+
return # Missing sections are handled by E003/E005
|
|
231
|
+
|
|
232
|
+
# Extract all R{N} IDs and their bodies
|
|
233
|
+
req_map = _extract_requirement_ids(req_section)
|
|
234
|
+
if not req_map:
|
|
235
|
+
return # No requirements found (handled by E004)
|
|
236
|
+
|
|
237
|
+
# Check each R{N} for coverage in AC section
|
|
238
|
+
ac_lower = ac_section.lower()
|
|
239
|
+
for req_id, req_body in req_map.items():
|
|
240
|
+
# Case-insensitive search for R{N} as word boundary
|
|
241
|
+
if req_id.lower() not in ac_lower:
|
|
242
|
+
# Detect RFC 2119 keyword in requirement body (use canonical list from schemas)
|
|
243
|
+
req_upper = req_body.upper()
|
|
244
|
+
found_keyword = next((kw for kw in SPEC_RFC_KEYWORDS if kw in req_upper), None)
|
|
245
|
+
emphasis = f" ({found_keyword})" if found_keyword else ""
|
|
246
|
+
result.warnings.append(
|
|
247
|
+
LintIssue("W007", f"Requirement {req_id} has no corresponding AC reference{emphasis}")
|
|
248
|
+
)
|
|
249
|
+
|
|
200
250
|
|
|
201
251
|
def _check_implementation_steps(text: str, result: LintResult) -> None:
|
|
202
252
|
"""W005 — Implementation Steps table format validation (STORY-055)."""
|
|
@@ -254,6 +304,7 @@ def validate_spec(spec_path: str) -> LintResult:
|
|
|
254
304
|
_check_acceptance_criteria(text, result)
|
|
255
305
|
_check_optional_sections(text, result)
|
|
256
306
|
_check_implementation_steps(text, result)
|
|
307
|
+
_check_req_ac_coverage(text, result) # STORY-slim-024: W007
|
|
257
308
|
return result
|
|
258
309
|
|
|
259
310
|
|
|
@@ -247,16 +247,16 @@ class TestCommonModeRemoved:
|
|
|
247
247
|
test_dir = Path(__file__).resolve().parent
|
|
248
248
|
assert not (test_dir / "test_common_user.py").exists()
|
|
249
249
|
|
|
250
|
-
def
|
|
251
|
-
|
|
252
|
-
#
|
|
250
|
+
def test_cli_no_common_mode_flag(self):
|
|
251
|
+
# Verify common_user mode is not in the CLI
|
|
252
|
+
# Note: --mode exists for visualize (HOTFIX-slim-023), but common_user is removed
|
|
253
253
|
import inspect
|
|
254
254
|
|
|
255
255
|
from pactkit.cli import main
|
|
256
256
|
|
|
257
257
|
source = inspect.getsource(main)
|
|
258
|
-
assert "--mode" not in source
|
|
259
258
|
assert "common_user" not in source
|
|
259
|
+
assert "common-user" not in source
|
|
260
260
|
|
|
261
261
|
|
|
262
262
|
# ===========================================================================
|
|
@@ -281,6 +281,8 @@ class TestBackwardCompatibility:
|
|
|
281
281
|
'hooks': {'pre_commit_lint': False, 'post_test_coverage': False, 'pre_push_check': False},
|
|
282
282
|
'lint_blocking': False,
|
|
283
283
|
'auto_fix': False,
|
|
284
|
+
'e2e': {'type': 'none', 'blocking': False, 'test_dir': 'tests/e2e', 'env_file': '.env.test',
|
|
285
|
+
'api_spec': '', 'compose_file': 'docker-compose.test.yml'},
|
|
284
286
|
'venv': {'auto_detect': True},
|
|
285
287
|
'release': {'github_release': False},
|
|
286
288
|
'regression': {'strategy': 'impact', 'max_impact_tests': 50},
|
|
@@ -402,6 +404,8 @@ class TestDeployerIntegration:
|
|
|
402
404
|
'hooks': {'pre_commit_lint': False, 'post_test_coverage': False, 'pre_push_check': False},
|
|
403
405
|
'lint_blocking': False,
|
|
404
406
|
'auto_fix': False,
|
|
407
|
+
'e2e': {'type': 'none', 'blocking': False, 'test_dir': 'tests/e2e', 'env_file': '.env.test',
|
|
408
|
+
'api_spec': '', 'compose_file': 'docker-compose.test.yml'},
|
|
405
409
|
'venv': {'auto_detect': True},
|
|
406
410
|
'release': {'github_release': False},
|
|
407
411
|
'regression': {'strategy': 'impact', 'max_impact_tests': 50},
|
|
@@ -220,6 +220,7 @@ class TestAC4BackfillReport:
|
|
|
220
220
|
'issue_tracker:\n provider: none\n'
|
|
221
221
|
'lint_blocking: false\n'
|
|
222
222
|
'auto_fix: false\n'
|
|
223
|
+
'e2e:\n type: none\n'
|
|
223
224
|
'venv:\n auto_detect: true\n'
|
|
224
225
|
'release:\n github_release: false\n'
|
|
225
226
|
'regression:\n strategy: impact\n max_impact_tests: 50\n'
|
|
@@ -236,8 +237,8 @@ class TestAC4BackfillReport:
|
|
|
236
237
|
yaml_path.write_text('stack: python\nversion: "1.2.0"\nroot: .\n')
|
|
237
238
|
result = auto_merge_config_file(yaml_path)
|
|
238
239
|
section_reports = [r for r in result if r.startswith('section:')]
|
|
239
|
-
# 4 list-type (agents, commands, skills, rules) +
|
|
240
|
-
assert len(section_reports) ==
|
|
240
|
+
# 4 list-type (agents, commands, skills, rules) + 11 non-list (ci, issue_tracker, hooks, lint_blocking, auto_fix, e2e, venv, release, regression, check, done)
|
|
241
|
+
assert len(section_reports) == 15
|
|
241
242
|
|
|
242
243
|
|
|
243
244
|
# ===========================================================================
|
|
@@ -35,9 +35,9 @@ This requirement MUST be satisfied.
|
|
|
35
35
|
|
|
36
36
|
## Acceptance Criteria
|
|
37
37
|
|
|
38
|
-
### AC1: Happy Path
|
|
38
|
+
### AC1: Happy Path (R1)
|
|
39
39
|
**Given** a valid input
|
|
40
|
-
**When**
|
|
40
|
+
**When** R1 action is taken
|
|
41
41
|
**Then** the result is correct
|
|
42
42
|
|
|
43
43
|
## Out of Scope
|
|
@@ -184,7 +184,7 @@ class TestE005AcceptanceCriteria:
|
|
|
184
184
|
class TestE006ACSubsections:
|
|
185
185
|
def test_no_AC_subsection_raises_E006(self, tmp_path):
|
|
186
186
|
content = MINIMAL_VALID_SPEC.replace(
|
|
187
|
-
"### AC1: Happy Path\n**Given** a valid input\n**When**
|
|
187
|
+
"### AC1: Happy Path (R1)\n**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
188
188
|
"Just some text.\n"
|
|
189
189
|
)
|
|
190
190
|
spec = write_spec(tmp_path, content)
|
|
@@ -194,8 +194,8 @@ class TestE006ACSubsections:
|
|
|
194
194
|
|
|
195
195
|
def test_scenario_prefix_accepted_no_E006(self, tmp_path):
|
|
196
196
|
content = MINIMAL_VALID_SPEC.replace(
|
|
197
|
-
"### AC1: Happy Path\n**Given** a valid input\n**When**
|
|
198
|
-
"### Scenario 1: Happy Path\n**Given** a valid input\n**When**
|
|
197
|
+
"### AC1: Happy Path (R1)\n**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
198
|
+
"### Scenario 1: Happy Path (R1)\n**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n"
|
|
199
199
|
)
|
|
200
200
|
spec = write_spec(tmp_path, content)
|
|
201
201
|
result = validate_spec(str(spec))
|
|
@@ -216,8 +216,8 @@ class TestE006ACSubsections:
|
|
|
216
216
|
class TestE007GivenWhenThen:
|
|
217
217
|
def test_missing_given_raises_E007(self, tmp_path):
|
|
218
218
|
content = MINIMAL_VALID_SPEC.replace(
|
|
219
|
-
"**Given** a valid input\n**When**
|
|
220
|
-
"**When**
|
|
219
|
+
"**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
220
|
+
"**When** R1 action is taken\n**Then** the result is correct\n"
|
|
221
221
|
)
|
|
222
222
|
spec = write_spec(tmp_path, content)
|
|
223
223
|
result = validate_spec(str(spec))
|
|
@@ -226,8 +226,8 @@ class TestE007GivenWhenThen:
|
|
|
226
226
|
|
|
227
227
|
def test_missing_when_raises_E007(self, tmp_path):
|
|
228
228
|
content = MINIMAL_VALID_SPEC.replace(
|
|
229
|
-
"**Given** a valid input\n**When**
|
|
230
|
-
"**Given** a valid input\n**Then**
|
|
229
|
+
"**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
230
|
+
"**Given** a valid input\n**Then** R1 result is correct\n"
|
|
231
231
|
)
|
|
232
232
|
spec = write_spec(tmp_path, content)
|
|
233
233
|
result = validate_spec(str(spec))
|
|
@@ -236,8 +236,8 @@ class TestE007GivenWhenThen:
|
|
|
236
236
|
|
|
237
237
|
def test_missing_then_raises_E007(self, tmp_path):
|
|
238
238
|
content = MINIMAL_VALID_SPEC.replace(
|
|
239
|
-
"**Given** a valid input\n**When**
|
|
240
|
-
"**Given** a valid input\n**When**
|
|
239
|
+
"**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
240
|
+
"**Given** a valid input\n**When** R1 action is taken\n"
|
|
241
241
|
)
|
|
242
242
|
spec = write_spec(tmp_path, content)
|
|
243
243
|
result = validate_spec(str(spec))
|
|
@@ -246,8 +246,8 @@ class TestE007GivenWhenThen:
|
|
|
246
246
|
|
|
247
247
|
def test_case_insensitive_keywords_no_E007(self, tmp_path):
|
|
248
248
|
content = MINIMAL_VALID_SPEC.replace(
|
|
249
|
-
"**Given** a valid input\n**When**
|
|
250
|
-
"given a valid input\nwhen
|
|
249
|
+
"**Given** a valid input\n**When** R1 action is taken\n**Then** the result is correct\n",
|
|
250
|
+
"given a valid input\nwhen R1 action is taken\nthen the result is correct\n"
|
|
251
251
|
)
|
|
252
252
|
spec = write_spec(tmp_path, content)
|
|
253
253
|
result = validate_spec(str(spec))
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"""Tests for STORY-slim-024: Spec Lint W007 — Requirement-AC Coverage Check."""
|
|
2
|
+
|
|
3
|
+
import tempfile
|
|
4
|
+
|
|
5
|
+
from pactkit.skills.spec_linter import validate_spec
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class TestAC1W007FiresOnUnreferencedRN:
|
|
9
|
+
"""AC1: W007 fires when R{N} is not referenced by any AC."""
|
|
10
|
+
|
|
11
|
+
def test_unreferenced_r3_triggers_w007(self):
|
|
12
|
+
"""R3 not referenced in any AC should trigger W007."""
|
|
13
|
+
spec = """\
|
|
14
|
+
| Field | Value |
|
|
15
|
+
|-------|-------|
|
|
16
|
+
| ID | TEST-001 |
|
|
17
|
+
| Status | Draft |
|
|
18
|
+
| Priority | P2 |
|
|
19
|
+
| Release | 1.0.0 |
|
|
20
|
+
|
|
21
|
+
## Background
|
|
22
|
+
Test background.
|
|
23
|
+
|
|
24
|
+
## Requirements
|
|
25
|
+
|
|
26
|
+
### R1: First requirement
|
|
27
|
+
Something MUST happen.
|
|
28
|
+
|
|
29
|
+
### R2: Second requirement
|
|
30
|
+
Something SHOULD happen.
|
|
31
|
+
|
|
32
|
+
### R3: Third requirement
|
|
33
|
+
Something MAY happen.
|
|
34
|
+
|
|
35
|
+
## Acceptance Criteria
|
|
36
|
+
|
|
37
|
+
### AC1: Test R1
|
|
38
|
+
Given a condition
|
|
39
|
+
When R1 is tested
|
|
40
|
+
Then it passes
|
|
41
|
+
|
|
42
|
+
### AC2: Test R2
|
|
43
|
+
Given another condition
|
|
44
|
+
When R2 is verified
|
|
45
|
+
Then it works
|
|
46
|
+
"""
|
|
47
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
48
|
+
f.write(spec)
|
|
49
|
+
f.flush()
|
|
50
|
+
result = validate_spec(f.name)
|
|
51
|
+
|
|
52
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
53
|
+
assert len(w007_warnings) == 1
|
|
54
|
+
assert "R3" in w007_warnings[0].message
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class TestAC2NoW007WhenAllCovered:
|
|
58
|
+
"""AC2: No W007 when all R{N} are covered by AC."""
|
|
59
|
+
|
|
60
|
+
def test_all_covered_no_w007(self):
|
|
61
|
+
"""When every R{N} is referenced, no W007 should be emitted."""
|
|
62
|
+
spec = """\
|
|
63
|
+
| Field | Value |
|
|
64
|
+
|-------|-------|
|
|
65
|
+
| ID | TEST-002 |
|
|
66
|
+
| Status | Draft |
|
|
67
|
+
| Priority | P2 |
|
|
68
|
+
| Release | 1.0.0 |
|
|
69
|
+
|
|
70
|
+
## Background
|
|
71
|
+
Test background.
|
|
72
|
+
|
|
73
|
+
## Requirements
|
|
74
|
+
|
|
75
|
+
### R1: First requirement
|
|
76
|
+
Something MUST happen.
|
|
77
|
+
|
|
78
|
+
### R2: Second requirement
|
|
79
|
+
Something SHOULD happen.
|
|
80
|
+
|
|
81
|
+
## Acceptance Criteria
|
|
82
|
+
|
|
83
|
+
### AC1: Test R1 and R2
|
|
84
|
+
Given a condition
|
|
85
|
+
When R1 is tested and R2 is verified
|
|
86
|
+
Then both pass
|
|
87
|
+
"""
|
|
88
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
89
|
+
f.write(spec)
|
|
90
|
+
f.flush()
|
|
91
|
+
result = validate_spec(f.name)
|
|
92
|
+
|
|
93
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
94
|
+
assert len(w007_warnings) == 0
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class TestAC3CaseInsensitiveMatching:
|
|
98
|
+
"""AC3: R{N} matching should be case insensitive."""
|
|
99
|
+
|
|
100
|
+
def test_lowercase_r1_is_covered(self):
|
|
101
|
+
"""'r1' in AC body should count as coverage for R1."""
|
|
102
|
+
spec = """\
|
|
103
|
+
| Field | Value |
|
|
104
|
+
|-------|-------|
|
|
105
|
+
| ID | TEST-003 |
|
|
106
|
+
| Status | Draft |
|
|
107
|
+
| Priority | P2 |
|
|
108
|
+
| Release | 1.0.0 |
|
|
109
|
+
|
|
110
|
+
## Background
|
|
111
|
+
Test background.
|
|
112
|
+
|
|
113
|
+
## Requirements
|
|
114
|
+
|
|
115
|
+
### R1: First requirement
|
|
116
|
+
Something MUST happen.
|
|
117
|
+
|
|
118
|
+
## Acceptance Criteria
|
|
119
|
+
|
|
120
|
+
### AC1: Test lowercase reference
|
|
121
|
+
Given a condition
|
|
122
|
+
When r1 is tested (lowercase)
|
|
123
|
+
Then it passes
|
|
124
|
+
"""
|
|
125
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
126
|
+
f.write(spec)
|
|
127
|
+
f.flush()
|
|
128
|
+
result = validate_spec(f.name)
|
|
129
|
+
|
|
130
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
131
|
+
assert len(w007_warnings) == 0
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class TestAC4W007DoesNotBlock:
|
|
135
|
+
"""AC4: W007 is a warning, does not cause lint failure."""
|
|
136
|
+
|
|
137
|
+
def test_w007_does_not_fail(self):
|
|
138
|
+
"""Spec with only W007 should still pass (warnings don't block)."""
|
|
139
|
+
spec = """\
|
|
140
|
+
| Field | Value |
|
|
141
|
+
|-------|-------|
|
|
142
|
+
| ID | TEST-004 |
|
|
143
|
+
| Status | Draft |
|
|
144
|
+
| Priority | P2 |
|
|
145
|
+
| Release | 1.0.0 |
|
|
146
|
+
|
|
147
|
+
## Background
|
|
148
|
+
Test background.
|
|
149
|
+
|
|
150
|
+
## Requirements
|
|
151
|
+
|
|
152
|
+
### R1: First requirement
|
|
153
|
+
Something MUST happen.
|
|
154
|
+
|
|
155
|
+
## Acceptance Criteria
|
|
156
|
+
|
|
157
|
+
### AC1: Test something else
|
|
158
|
+
Given a condition
|
|
159
|
+
When something is tested
|
|
160
|
+
Then it passes
|
|
161
|
+
"""
|
|
162
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
163
|
+
f.write(spec)
|
|
164
|
+
f.flush()
|
|
165
|
+
result = validate_spec(f.name)
|
|
166
|
+
|
|
167
|
+
# W007 should be emitted (R1 not referenced)
|
|
168
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
169
|
+
assert len(w007_warnings) == 1
|
|
170
|
+
# But result should still pass (warnings don't block)
|
|
171
|
+
assert result.passed is True
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class TestAC5RFC2119Emphasis:
|
|
175
|
+
"""AC5: W007 message should indicate RFC 2119 keyword in unreferenced req."""
|
|
176
|
+
|
|
177
|
+
def test_should_indicator_in_message(self):
|
|
178
|
+
"""Uncovered SHOULD requirement should have (SHOULD) in warning message."""
|
|
179
|
+
spec = """\
|
|
180
|
+
| Field | Value |
|
|
181
|
+
|-------|-------|
|
|
182
|
+
| ID | TEST-005 |
|
|
183
|
+
| Status | Draft |
|
|
184
|
+
| Priority | P2 |
|
|
185
|
+
| Release | 1.0.0 |
|
|
186
|
+
|
|
187
|
+
## Background
|
|
188
|
+
Test background.
|
|
189
|
+
|
|
190
|
+
## Requirements
|
|
191
|
+
|
|
192
|
+
### R1: First requirement
|
|
193
|
+
Something MUST happen.
|
|
194
|
+
|
|
195
|
+
### R2: Second requirement
|
|
196
|
+
Something SHOULD happen but might be forgotten.
|
|
197
|
+
|
|
198
|
+
## Acceptance Criteria
|
|
199
|
+
|
|
200
|
+
### AC1: Test R1 only
|
|
201
|
+
Given a condition
|
|
202
|
+
When R1 is tested
|
|
203
|
+
Then it passes
|
|
204
|
+
"""
|
|
205
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
206
|
+
f.write(spec)
|
|
207
|
+
f.flush()
|
|
208
|
+
result = validate_spec(f.name)
|
|
209
|
+
|
|
210
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
211
|
+
assert len(w007_warnings) == 1
|
|
212
|
+
assert "R2" in w007_warnings[0].message
|
|
213
|
+
assert "(SHOULD)" in w007_warnings[0].message
|
|
214
|
+
|
|
215
|
+
def test_must_indicator_in_message(self):
|
|
216
|
+
"""Uncovered MUST requirement should have (MUST) in warning message."""
|
|
217
|
+
spec = """\
|
|
218
|
+
| Field | Value |
|
|
219
|
+
|-------|-------|
|
|
220
|
+
| ID | TEST-006 |
|
|
221
|
+
| Status | Draft |
|
|
222
|
+
| Priority | P2 |
|
|
223
|
+
| Release | 1.0.0 |
|
|
224
|
+
|
|
225
|
+
## Background
|
|
226
|
+
Test background.
|
|
227
|
+
|
|
228
|
+
## Requirements
|
|
229
|
+
|
|
230
|
+
### R1: First requirement
|
|
231
|
+
Something MUST be implemented.
|
|
232
|
+
|
|
233
|
+
## Acceptance Criteria
|
|
234
|
+
|
|
235
|
+
### AC1: Test something else
|
|
236
|
+
Given a condition
|
|
237
|
+
When something unrelated is tested
|
|
238
|
+
Then it passes
|
|
239
|
+
"""
|
|
240
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
241
|
+
f.write(spec)
|
|
242
|
+
f.flush()
|
|
243
|
+
result = validate_spec(f.name)
|
|
244
|
+
|
|
245
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
246
|
+
assert len(w007_warnings) == 1
|
|
247
|
+
assert "R1" in w007_warnings[0].message
|
|
248
|
+
assert "(MUST)" in w007_warnings[0].message
|
|
249
|
+
|
|
250
|
+
def test_may_indicator_in_message(self):
|
|
251
|
+
"""Uncovered MAY requirement should have (MAY) in warning message."""
|
|
252
|
+
spec = """\
|
|
253
|
+
| Field | Value |
|
|
254
|
+
|-------|-------|
|
|
255
|
+
| ID | TEST-007 |
|
|
256
|
+
| Status | Draft |
|
|
257
|
+
| Priority | P2 |
|
|
258
|
+
| Release | 1.0.0 |
|
|
259
|
+
|
|
260
|
+
## Background
|
|
261
|
+
Test background.
|
|
262
|
+
|
|
263
|
+
## Requirements
|
|
264
|
+
|
|
265
|
+
### R1: Optional feature
|
|
266
|
+
Something MAY be implemented optionally.
|
|
267
|
+
|
|
268
|
+
## Acceptance Criteria
|
|
269
|
+
|
|
270
|
+
### AC1: Test something else
|
|
271
|
+
Given a condition
|
|
272
|
+
When something unrelated is tested
|
|
273
|
+
Then it passes
|
|
274
|
+
"""
|
|
275
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".md", delete=False) as f:
|
|
276
|
+
f.write(spec)
|
|
277
|
+
f.flush()
|
|
278
|
+
result = validate_spec(f.name)
|
|
279
|
+
|
|
280
|
+
w007_warnings = [w for w in result.warnings if w.rule_id == "W007"]
|
|
281
|
+
assert len(w007_warnings) == 1
|
|
282
|
+
assert "R1" in w007_warnings[0].message
|
|
283
|
+
assert "(MAY)" in w007_warnings[0].message
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|