xtrm-tools 2.2.0 → 2.4.0
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.
- package/README.md +127 -104
- package/cli/dist/index.cjs +1078 -970
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +1 -1
- package/config/pi/extensions/beads.ts +33 -5
- package/config/pi/extensions/service-skills.ts +17 -9
- package/config/pi/install-schema.json +2 -1
- package/hooks/beads-gate-core.mjs +6 -4
- package/hooks/beads-memory-gate.mjs +12 -5
- package/hooks/hooks.json +126 -0
- package/package.json +3 -1
- package/skills/test-planning/SKILL.md +208 -0
- package/skills/test-planning/evals/evals.json +23 -0
- package/skills/using-xtrm/SKILL.md +5 -27
- package/project-skills/tdd-guard/.claude/hooks/tdd-guard-pretool-bridge.cjs +0 -103
- package/project-skills/tdd-guard/.claude/settings.json +0 -38
- package/project-skills/tdd-guard/.claude/skills/using-tdd-guard/SKILL.md +0 -79
- package/project-skills/tdd-guard/CLAUDE.md +0 -98
- package/project-skills/tdd-guard/CONTRIBUTING.md +0 -38
- package/project-skills/tdd-guard/DEVELOPMENT.md +0 -127
- package/project-skills/tdd-guard/LICENSE +0 -21
- package/project-skills/tdd-guard/README.md +0 -398
- package/project-skills/tdd-guard/docs/adr/001-claude-session-subdirectory.md +0 -52
- package/project-skills/tdd-guard/docs/adr/002-secure-claude-binary-path.md +0 -56
- package/project-skills/tdd-guard/docs/adr/003-remove-configurable-data-directory.md +0 -56
- package/project-skills/tdd-guard/docs/adr/004-monorepo-architecture.md +0 -64
- package/project-skills/tdd-guard/docs/adr/005-claude-project-dir-support.md +0 -55
- package/project-skills/tdd-guard/docs/adr/006-phpunit-separate-repository.md +0 -93
- package/project-skills/tdd-guard/docs/adr/007-golangci-lint-path-support.md +0 -83
- package/project-skills/tdd-guard/docs/adr/008-storybook-reporter-design.md +0 -182
- package/project-skills/tdd-guard/docs/assets/tdd-guard-demo-screenshot.gif +0 -0
- package/project-skills/tdd-guard/docs/config-migration.md +0 -143
- package/project-skills/tdd-guard/docs/configuration.md +0 -137
- package/project-skills/tdd-guard/docs/custom-instructions.md +0 -43
- package/project-skills/tdd-guard/docs/enforcement.md +0 -46
- package/project-skills/tdd-guard/docs/ignore-patterns.md +0 -81
- package/project-skills/tdd-guard/docs/linting.md +0 -109
- package/project-skills/tdd-guard/docs/quick-commands.md +0 -52
- package/project-skills/tdd-guard/docs/session-management.md +0 -75
- package/project-skills/tdd-guard/docs/storybook-vitest-addon.md +0 -120
- package/project-skills/tdd-guard/docs/validation-model.md +0 -63
- package/project-skills/tdd-guard/eslint.config.mjs +0 -140
- package/project-skills/tdd-guard/package-lock.json +0 -16937
- package/project-skills/tdd-guard/package.json +0 -102
- package/project-skills/tdd-guard/reporters/go/README.md +0 -67
- package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main.go +0 -127
- package/project-skills/tdd-guard/reporters/go/cmd/tdd-guard-go/main_test.go +0 -280
- package/project-skills/tdd-guard/reporters/go/go.mod +0 -3
- package/project-skills/tdd-guard/reporters/go/go.sum +0 -0
- package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter.go +0 -126
- package/project-skills/tdd-guard/reporters/go/internal/formatter/formatter_test.go +0 -264
- package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader.go +0 -26
- package/project-skills/tdd-guard/reporters/go/internal/io/tee_reader_test.go +0 -37
- package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader.go +0 -94
- package/project-skills/tdd-guard/reporters/go/internal/parser/mixed_reader_test.go +0 -198
- package/project-skills/tdd-guard/reporters/go/internal/parser/parser.go +0 -245
- package/project-skills/tdd-guard/reporters/go/internal/parser/parser_test.go +0 -547
- package/project-skills/tdd-guard/reporters/go/internal/storage/storage.go +0 -35
- package/project-skills/tdd-guard/reporters/go/internal/storage/storage_test.go +0 -113
- package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer.go +0 -103
- package/project-skills/tdd-guard/reporters/go/internal/transformer/transformer_test.go +0 -303
- package/project-skills/tdd-guard/reporters/jest/README.md +0 -102
- package/project-skills/tdd-guard/reporters/jest/package.json +0 -38
- package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test-data.ts +0 -199
- package/project-skills/tdd-guard/reporters/jest/src/JestReporter.test.ts +0 -302
- package/project-skills/tdd-guard/reporters/jest/src/JestReporter.ts +0 -201
- package/project-skills/tdd-guard/reporters/jest/src/index.ts +0 -4
- package/project-skills/tdd-guard/reporters/jest/src/types.ts +0 -42
- package/project-skills/tdd-guard/reporters/jest/tsconfig.json +0 -11
- package/project-skills/tdd-guard/reporters/phpunit/.php-cs-fixer.php +0 -28
- package/project-skills/tdd-guard/reporters/phpunit/README.md +0 -97
- package/project-skills/tdd-guard/reporters/phpunit/SYNC_README.md +0 -29
- package/project-skills/tdd-guard/reporters/phpunit/composer.json +0 -55
- package/project-skills/tdd-guard/reporters/phpunit/phpunit.xml.dist +0 -19
- package/project-skills/tdd-guard/reporters/phpunit/psalm.xml +0 -44
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/ErroredTestSubscriber.php +0 -28
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/FailedTestSubscriber.php +0 -28
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/IncompleteTestSubscriber.php +0 -28
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/PassedTestSubscriber.php +0 -27
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/SkippedTestSubscriber.php +0 -28
- package/project-skills/tdd-guard/reporters/phpunit/src/Event/TestRunnerFinishedSubscriber.php +0 -24
- package/project-skills/tdd-guard/reporters/phpunit/src/PathValidator.php +0 -88
- package/project-skills/tdd-guard/reporters/phpunit/src/Storage.php +0 -26
- package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardExtension.php +0 -33
- package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardListener.php +0 -158
- package/project-skills/tdd-guard/reporters/phpunit/src/TddGuardSubscriber.php +0 -35
- package/project-skills/tdd-guard/reporters/phpunit/src/TestResultCollector.php +0 -105
- package/project-skills/tdd-guard/reporters/phpunit/tests/PathValidatorTest.php +0 -74
- package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionFailedTest.php +0 -241
- package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardExtensionTest.php +0 -84
- package/project-skills/tdd-guard/reporters/phpunit/tests/TddGuardStorageLocationTest.php +0 -71
- package/project-skills/tdd-guard/reporters/pytest/README.md +0 -77
- package/project-skills/tdd-guard/reporters/pytest/pyproject.toml +0 -43
- package/project-skills/tdd-guard/reporters/pytest/pytest.ini.example +0 -7
- package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/__init__.py +0 -1
- package/project-skills/tdd-guard/reporters/pytest/tdd_guard_pytest/pytest_reporter.py +0 -134
- package/project-skills/tdd-guard/reporters/pytest/tests/__init__.py +0 -1
- package/project-skills/tdd-guard/reporters/pytest/tests/conftest.py +0 -3
- package/project-skills/tdd-guard/reporters/pytest/tests/helpers.py +0 -293
- package/project-skills/tdd-guard/reporters/pytest/tests/test_config_option.py +0 -38
- package/project-skills/tdd-guard/reporters/pytest/tests/test_path_validation.py +0 -59
- package/project-skills/tdd-guard/reporters/pytest/tests/test_plugin_config.py +0 -32
- package/project-skills/tdd-guard/reporters/pytest/tests/test_project_root.py +0 -296
- package/project-skills/tdd-guard/reporters/pytest/tests/test_pytest_reporter.py +0 -137
- package/project-skills/tdd-guard/reporters/rspec/Gemfile +0 -3
- package/project-skills/tdd-guard/reporters/rust/Cargo.lock +0 -458
- package/project-skills/tdd-guard/reporters/rust/Cargo.toml +0 -33
- package/project-skills/tdd-guard/reporters/rust/Makefile.example +0 -95
- package/project-skills/tdd-guard/reporters/rust/README.md +0 -88
- package/project-skills/tdd-guard/reporters/rust/src/error_parser.rs +0 -309
- package/project-skills/tdd-guard/reporters/rust/src/main.rs +0 -464
- package/project-skills/tdd-guard/reporters/rust/src/parser.rs +0 -225
- package/project-skills/tdd-guard/reporters/rust/src/transformer.rs +0 -409
- package/project-skills/tdd-guard/reporters/storybook/README.md +0 -108
- package/project-skills/tdd-guard/reporters/storybook/package-lock.json +0 -9482
- package/project-skills/tdd-guard/reporters/storybook/package.json +0 -43
- package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test-data.ts +0 -22
- package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.test.ts +0 -190
- package/project-skills/tdd-guard/reporters/storybook/src/StorybookReporter.ts +0 -88
- package/project-skills/tdd-guard/reporters/storybook/src/index.ts +0 -12
- package/project-skills/tdd-guard/reporters/storybook/src/types.ts +0 -37
- package/project-skills/tdd-guard/reporters/storybook/tsconfig.json +0 -11
- package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/go.mod +0 -3
- package/project-skills/tdd-guard/reporters/test/artifacts/go/failing/single_failing_test.go +0 -13
- package/project-skills/tdd-guard/reporters/test/artifacts/go/import/go.mod +0 -3
- package/project-skills/tdd-guard/reporters/test/artifacts/go/import/single_import_error_test.go +0 -17
- package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/go.mod +0 -3
- package/project-skills/tdd-guard/reporters/test/artifacts/go/passing/single_passing_test.go +0 -13
- package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-failing.test.js +0 -5
- package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-import-error.test.js +0 -8
- package/project-skills/tdd-guard/reporters/test/artifacts/jest/single-passing.test.js +0 -5
- package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleFailingTest.php +0 -11
- package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SingleImportErrorTest.php +0 -14
- package/project-skills/tdd-guard/reporters/test/artifacts/phpunit/SinglePassingTest.php +0 -11
- package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_failing.py +0 -3
- package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_import_error.py +0 -6
- package/project-skills/tdd-guard/reporters/test/artifacts/pytest/test_single_passing.py +0 -3
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.lock +0 -7
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/Cargo.toml +0 -4
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/failing/src/lib.rs +0 -14
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.lock +0 -7
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/Cargo.toml +0 -4
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/import/src/lib.rs +0 -13
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.lock +0 -7
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/Cargo.toml +0 -4
- package/project-skills/tdd-guard/reporters/test/artifacts/rust/passing/src/lib.rs +0 -14
- package/project-skills/tdd-guard/reporters/test/artifacts/storybook/Calculator.js +0 -4
- package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-failing.stories.js +0 -15
- package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-import-error.stories.js +0 -14
- package/project-skills/tdd-guard/reporters/test/artifacts/storybook/single-passing.stories.js +0 -15
- package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-failing.test.js +0 -7
- package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-import-error.test.js +0 -9
- package/project-skills/tdd-guard/reporters/test/artifacts/vitest/single-passing.test.js +0 -7
- package/project-skills/tdd-guard/reporters/test/factories/go.ts +0 -59
- package/project-skills/tdd-guard/reporters/test/factories/helpers.ts +0 -48
- package/project-skills/tdd-guard/reporters/test/factories/index.ts +0 -7
- package/project-skills/tdd-guard/reporters/test/factories/jest.ts +0 -51
- package/project-skills/tdd-guard/reporters/test/factories/phpunit.ts +0 -63
- package/project-skills/tdd-guard/reporters/test/factories/pytest.ts +0 -41
- package/project-skills/tdd-guard/reporters/test/factories/rust.ts +0 -158
- package/project-skills/tdd-guard/reporters/test/factories/storybook.ts +0 -198
- package/project-skills/tdd-guard/reporters/test/factories/vitest.ts +0 -51
- package/project-skills/tdd-guard/reporters/test/reporters.integration.test.ts +0 -735
- package/project-skills/tdd-guard/reporters/test/types.ts +0 -28
- package/project-skills/tdd-guard/reporters/vitest/README.md +0 -64
- package/project-skills/tdd-guard/reporters/vitest/package.json +0 -35
- package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test-data.ts +0 -85
- package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.test.ts +0 -446
- package/project-skills/tdd-guard/reporters/vitest/src/VitestReporter.ts +0 -110
- package/project-skills/tdd-guard/reporters/vitest/src/index.ts +0 -4
- package/project-skills/tdd-guard/reporters/vitest/src/types.ts +0 -39
- package/project-skills/tdd-guard/reporters/vitest/tsconfig.json +0 -11
- package/project-skills/tdd-guard/src/cli/buildContext.test.ts +0 -200
- package/project-skills/tdd-guard/src/cli/buildContext.ts +0 -48
- package/project-skills/tdd-guard/src/cli/tdd-guard.test.ts +0 -159
- package/project-skills/tdd-guard/src/cli/tdd-guard.ts +0 -48
- package/project-skills/tdd-guard/src/config/Config.test.ts +0 -538
- package/project-skills/tdd-guard/src/config/Config.ts +0 -172
- package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.test.ts +0 -58
- package/project-skills/tdd-guard/src/contracts/schemas/guardSchemas.ts +0 -8
- package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.test.ts +0 -347
- package/project-skills/tdd-guard/src/contracts/schemas/lintSchemas.ts +0 -61
- package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.test.ts +0 -24
- package/project-skills/tdd-guard/src/contracts/schemas/pytestSchemas.ts +0 -7
- package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.test.ts +0 -377
- package/project-skills/tdd-guard/src/contracts/schemas/reporterSchemas.ts +0 -75
- package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.test.ts +0 -563
- package/project-skills/tdd-guard/src/contracts/schemas/toolSchemas.ts +0 -140
- package/project-skills/tdd-guard/src/contracts/types/ClientType.ts +0 -1
- package/project-skills/tdd-guard/src/contracts/types/ConfigOptions.ts +0 -12
- package/project-skills/tdd-guard/src/contracts/types/Context.ts +0 -16
- package/project-skills/tdd-guard/src/contracts/types/ModelClient.ts +0 -3
- package/project-skills/tdd-guard/src/contracts/types/ValidationResult.ts +0 -6
- package/project-skills/tdd-guard/src/guard/GuardManager.test.ts +0 -336
- package/project-skills/tdd-guard/src/guard/GuardManager.ts +0 -83
- package/project-skills/tdd-guard/src/hooks/HookEvents.test.ts +0 -107
- package/project-skills/tdd-guard/src/hooks/HookEvents.ts +0 -39
- package/project-skills/tdd-guard/src/hooks/fileTypeDetection.ts +0 -16
- package/project-skills/tdd-guard/src/hooks/postToolLint.test.ts +0 -327
- package/project-skills/tdd-guard/src/hooks/postToolLint.ts +0 -165
- package/project-skills/tdd-guard/src/hooks/processHookData.test.ts +0 -465
- package/project-skills/tdd-guard/src/hooks/processHookData.ts +0 -203
- package/project-skills/tdd-guard/src/hooks/sessionHandler.test.ts +0 -136
- package/project-skills/tdd-guard/src/hooks/sessionHandler.ts +0 -31
- package/project-skills/tdd-guard/src/hooks/userPromptHandler.test.ts +0 -131
- package/project-skills/tdd-guard/src/hooks/userPromptHandler.ts +0 -55
- package/project-skills/tdd-guard/src/index.ts +0 -19
- package/project-skills/tdd-guard/src/linters/Linter.ts +0 -5
- package/project-skills/tdd-guard/src/linters/eslint/ESLint.test.ts +0 -183
- package/project-skills/tdd-guard/src/linters/eslint/ESLint.ts +0 -82
- package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.test.ts +0 -170
- package/project-skills/tdd-guard/src/linters/golangci/GolangciLint.ts +0 -148
- package/project-skills/tdd-guard/src/processors/index.ts +0 -1
- package/project-skills/tdd-guard/src/processors/lintProcessor.ts +0 -77
- package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.test.ts +0 -303
- package/project-skills/tdd-guard/src/processors/testResults/TestResultsProcessor.ts +0 -255
- package/project-skills/tdd-guard/src/providers/LinterProvider.test.ts +0 -43
- package/project-skills/tdd-guard/src/providers/LinterProvider.ts +0 -20
- package/project-skills/tdd-guard/src/providers/ModelClientProvider.test.ts +0 -68
- package/project-skills/tdd-guard/src/providers/ModelClientProvider.ts +0 -22
- package/project-skills/tdd-guard/src/storage/FileStorage.test.ts +0 -76
- package/project-skills/tdd-guard/src/storage/FileStorage.ts +0 -108
- package/project-skills/tdd-guard/src/storage/MemoryStorage.ts +0 -57
- package/project-skills/tdd-guard/src/storage/Storage.test.ts +0 -227
- package/project-skills/tdd-guard/src/storage/Storage.ts +0 -17
- package/project-skills/tdd-guard/src/validation/context/context.test.ts +0 -364
- package/project-skills/tdd-guard/src/validation/context/context.ts +0 -155
- package/project-skills/tdd-guard/src/validation/models/AnthropicApi.test.ts +0 -171
- package/project-skills/tdd-guard/src/validation/models/AnthropicApi.ts +0 -49
- package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.test.ts +0 -167
- package/project-skills/tdd-guard/src/validation/models/ClaudeAgentSdk.ts +0 -54
- package/project-skills/tdd-guard/src/validation/models/ClaudeCli.test.ts +0 -239
- package/project-skills/tdd-guard/src/validation/models/ClaudeCli.ts +0 -57
- package/project-skills/tdd-guard/src/validation/prompts/file-types.ts +0 -52
- package/project-skills/tdd-guard/src/validation/prompts/operations/edit.ts +0 -58
- package/project-skills/tdd-guard/src/validation/prompts/operations/multi-edit.ts +0 -54
- package/project-skills/tdd-guard/src/validation/prompts/operations/write.ts +0 -54
- package/project-skills/tdd-guard/src/validation/prompts/response.ts +0 -40
- package/project-skills/tdd-guard/src/validation/prompts/rules.ts +0 -51
- package/project-skills/tdd-guard/src/validation/prompts/system-prompt.ts +0 -10
- package/project-skills/tdd-guard/src/validation/prompts/tools/lint-results.ts +0 -15
- package/project-skills/tdd-guard/src/validation/prompts/tools/test-output.ts +0 -14
- package/project-skills/tdd-guard/src/validation/prompts/tools/todos.ts +0 -9
- package/project-skills/tdd-guard/src/validation/validator.test.ts +0 -268
- package/project-skills/tdd-guard/src/validation/validator.ts +0 -159
- package/project-skills/tdd-guard/test/artifacts/go/.golangci.yml +0 -6
- package/project-skills/tdd-guard/test/artifacts/go/with-issues/file-with-issues.go +0 -12
- package/project-skills/tdd-guard/test/artifacts/go/with-issues/go.mod +0 -3
- package/project-skills/tdd-guard/test/artifacts/go/without-issues/file-without-issues.go +0 -7
- package/project-skills/tdd-guard/test/artifacts/go/without-issues/go.mod +0 -3
- package/project-skills/tdd-guard/test/artifacts/javascript/eslint.config.js +0 -20
- package/project-skills/tdd-guard/test/artifacts/javascript/file-with-issues.js +0 -12
- package/project-skills/tdd-guard/test/artifacts/javascript/file-without-issues.js +0 -10
- package/project-skills/tdd-guard/test/hooks/fileTypeDetection.test.ts +0 -26
- package/project-skills/tdd-guard/test/hooks/processHookData.fileType.test.ts +0 -46
- package/project-skills/tdd-guard/test/hooks/processHookData.python.test.ts +0 -68
- package/project-skills/tdd-guard/test/integration/test-context.test.ts +0 -66
- package/project-skills/tdd-guard/test/integration/validator.core.test.ts +0 -96
- package/project-skills/tdd-guard/test/integration/validator.scenarios.test.ts +0 -497
- package/project-skills/tdd-guard/test/utils/assertions.ts +0 -29
- package/project-skills/tdd-guard/test/utils/factories/contextFactory.ts +0 -30
- package/project-skills/tdd-guard/test/utils/factories/editFactory.ts +0 -82
- package/project-skills/tdd-guard/test/utils/factories/helpers.test.ts +0 -46
- package/project-skills/tdd-guard/test/utils/factories/helpers.ts +0 -46
- package/project-skills/tdd-guard/test/utils/factories/lintFactory.ts +0 -352
- package/project-skills/tdd-guard/test/utils/factories/modelClientProviderFactory.ts +0 -21
- package/project-skills/tdd-guard/test/utils/factories/multiEditFactory.ts +0 -79
- package/project-skills/tdd-guard/test/utils/factories/operations.ts +0 -57
- package/project-skills/tdd-guard/test/utils/factories/reporterFactory.ts +0 -55
- package/project-skills/tdd-guard/test/utils/factories/scenarios/index.ts +0 -22
- package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/python.ts +0 -745
- package/project-skills/tdd-guard/test/utils/factories/scenarios/languages/typescript.ts +0 -767
- package/project-skills/tdd-guard/test/utils/factories/scenarios/types.ts +0 -77
- package/project-skills/tdd-guard/test/utils/factories/scenarios/utils.ts +0 -15
- package/project-skills/tdd-guard/test/utils/factories/sessionStartFactory.ts +0 -36
- package/project-skills/tdd-guard/test/utils/factories/testDefaults.ts +0 -90
- package/project-skills/tdd-guard/test/utils/factories/testResultsFactory.ts +0 -234
- package/project-skills/tdd-guard/test/utils/factories/todoFactory.ts +0 -99
- package/project-skills/tdd-guard/test/utils/factories/userPromptSubmitFactory.ts +0 -39
- package/project-skills/tdd-guard/test/utils/factories/writeFactory.ts +0 -70
- package/project-skills/tdd-guard/test/utils/index.ts +0 -131
- package/project-skills/tdd-guard/tsconfig.build.json +0 -16
- package/project-skills/tdd-guard/tsconfig.eslint.json +0 -17
- package/project-skills/tdd-guard/tsconfig.json +0 -32
- package/project-skills/tdd-guard/tsconfig.node.json +0 -10
- package/project-skills/tdd-guard/vitest.config.ts +0 -85
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// Shared types for scenario data structures
|
|
2
|
-
import type { Todo } from '../../../../src/contracts/schemas/toolSchemas'
|
|
3
|
-
|
|
4
|
-
export interface TestData<T = string> {
|
|
5
|
-
description: string
|
|
6
|
-
content: T
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// Test result types
|
|
10
|
-
export interface TestResults {
|
|
11
|
-
notDefined: TestData
|
|
12
|
-
notAConstructor: TestData
|
|
13
|
-
notAFunction: TestData
|
|
14
|
-
assertionError: TestData
|
|
15
|
-
passing: TestData
|
|
16
|
-
irrelevant: TestData
|
|
17
|
-
empty: TestData
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Test modification types
|
|
21
|
-
export interface TestModifications {
|
|
22
|
-
singleTest: TestData
|
|
23
|
-
multipleTests: TestData
|
|
24
|
-
multipleTestsWithImports: TestData
|
|
25
|
-
singleTestWithContainer: TestData
|
|
26
|
-
singleTestComplete: TestData
|
|
27
|
-
emptyTestContainer: TestData
|
|
28
|
-
emptyTestContainerWithImports: TestData
|
|
29
|
-
refactoredTests: TestData
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Implementation modification types
|
|
33
|
-
export interface ImplementationModifications {
|
|
34
|
-
empty: TestData
|
|
35
|
-
classStub: TestData
|
|
36
|
-
methodStub: TestData
|
|
37
|
-
methodStubReturning0: TestData
|
|
38
|
-
methodImplementation: TestData
|
|
39
|
-
overEngineered: TestData
|
|
40
|
-
completeClass: TestData
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Todo state types
|
|
44
|
-
export interface TodoStates {
|
|
45
|
-
empty: TestData<Todo[]>
|
|
46
|
-
irrelevantCompleted: TestData<Todo[]>
|
|
47
|
-
irrelevantInProgress: TestData<Todo[]>
|
|
48
|
-
classInProgress: TestData<Todo[]>
|
|
49
|
-
methodInProgress: TestData<Todo[]>
|
|
50
|
-
allCompleted: TestData<Todo[]>
|
|
51
|
-
refactoring: TestData<Todo[]>
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Refactoring types
|
|
55
|
-
export interface RefactoringScenarios {
|
|
56
|
-
beforeRefactor: TestData
|
|
57
|
-
afterRefactor: TestData
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface RefactoringTestResults {
|
|
61
|
-
failing: TestData
|
|
62
|
-
passing: TestData
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Language scenario interface
|
|
66
|
-
export interface LanguageScenario {
|
|
67
|
-
language: 'typescript' | 'python'
|
|
68
|
-
testFile: string
|
|
69
|
-
implementationFile: string
|
|
70
|
-
testResults: TestResults
|
|
71
|
-
testModifications: TestModifications
|
|
72
|
-
implementationModifications: ImplementationModifications
|
|
73
|
-
todos: TodoStates
|
|
74
|
-
refactoringImplementation: RefactoringScenarios
|
|
75
|
-
refactoringTests: RefactoringScenarios
|
|
76
|
-
refactoringTestResults: RefactoringTestResults
|
|
77
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ValidationResult } from '../../../../src/contracts/types/ValidationResult'
|
|
2
|
-
import { expect } from 'vitest'
|
|
3
|
-
|
|
4
|
-
export function expectDecision(
|
|
5
|
-
result: ValidationResult,
|
|
6
|
-
expectedDecision: ValidationResult['decision']
|
|
7
|
-
): void {
|
|
8
|
-
if (result.decision !== expectedDecision) {
|
|
9
|
-
console.error(
|
|
10
|
-
`\nTest failed - expected decision: ${expectedDecision}, but got: ${result.decision}`
|
|
11
|
-
)
|
|
12
|
-
console.error(`Reason: ${result.reason}\n`)
|
|
13
|
-
}
|
|
14
|
-
expect(result.decision).toBe(expectedDecision)
|
|
15
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Factory functions for creating SessionStart test data
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { SessionStart } from '../../../src/contracts/schemas/toolSchemas'
|
|
6
|
-
import { omit } from './helpers'
|
|
7
|
-
import { TEST_DEFAULTS } from './testDefaults'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Creates a SessionStart object
|
|
11
|
-
* @param params - Optional parameters for the SessionStart
|
|
12
|
-
*/
|
|
13
|
-
export const sessionStart = (params?: Partial<SessionStart>): SessionStart => {
|
|
14
|
-
const defaults = TEST_DEFAULTS.sessionStart
|
|
15
|
-
const base = params ?? {}
|
|
16
|
-
|
|
17
|
-
return {
|
|
18
|
-
session_id: base.session_id ?? defaults.session_id,
|
|
19
|
-
transcript_path: base.transcript_path ?? defaults.transcript_path,
|
|
20
|
-
hook_event_name: base.hook_event_name ?? defaults.hook_event_name,
|
|
21
|
-
source: base.source ?? defaults.source,
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Creates a SessionStart object with specified properties omitted
|
|
27
|
-
* @param keys - Array of property keys to omit
|
|
28
|
-
* @param params - Optional parameters for the SessionStart
|
|
29
|
-
*/
|
|
30
|
-
export const sessionStartWithout = <K extends keyof SessionStart>(
|
|
31
|
-
keys: K[],
|
|
32
|
-
params?: Partial<SessionStart>
|
|
33
|
-
): Omit<SessionStart, K> => {
|
|
34
|
-
const fullSessionStart = sessionStart(params)
|
|
35
|
-
return omit(fullSessionStart, keys)
|
|
36
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default values for test data used across factories
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
const session_id = 'test-session-id'
|
|
6
|
-
const transcript_path = '/path/to/transcript.jsonl'
|
|
7
|
-
const hook_event_name = 'PreToolUse'
|
|
8
|
-
|
|
9
|
-
const todo = {
|
|
10
|
-
content: 'Implement feature',
|
|
11
|
-
status: 'pending' as const,
|
|
12
|
-
priority: 'high' as const,
|
|
13
|
-
id: '123',
|
|
14
|
-
}
|
|
15
|
-
const write = {
|
|
16
|
-
file_path: '/test/file.ts',
|
|
17
|
-
content: 'file content to write',
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const edit = {
|
|
21
|
-
file_path: '/test/file.ts',
|
|
22
|
-
old_string: 'old content;',
|
|
23
|
-
new_string: 'old content; new content',
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const multiEdit = {
|
|
27
|
-
file_path: '/test/file.ts',
|
|
28
|
-
edits: [
|
|
29
|
-
{
|
|
30
|
-
old_string: 'first old content',
|
|
31
|
-
new_string: 'first new content',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
old_string: 'second old content',
|
|
35
|
-
new_string: 'second new content',
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const TEST_DEFAULTS = {
|
|
41
|
-
hookData: {
|
|
42
|
-
session_id,
|
|
43
|
-
transcript_path,
|
|
44
|
-
hook_event_name,
|
|
45
|
-
},
|
|
46
|
-
todo,
|
|
47
|
-
todoWriteOperation: {
|
|
48
|
-
tool_name: 'TodoWrite',
|
|
49
|
-
tool_input: {
|
|
50
|
-
todos: [todo],
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
write,
|
|
54
|
-
writeOperation: {
|
|
55
|
-
tool_name: 'Write',
|
|
56
|
-
tool_input: {
|
|
57
|
-
...write,
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
edit,
|
|
61
|
-
editOperation: {
|
|
62
|
-
tool_name: 'Edit',
|
|
63
|
-
tool_input: {
|
|
64
|
-
...edit,
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
multiEdit,
|
|
68
|
-
multiEditOperation: {
|
|
69
|
-
tool_name: 'MultiEdit',
|
|
70
|
-
tool_input: {
|
|
71
|
-
...multiEdit,
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
userPromptSubmit: {
|
|
75
|
-
session_id,
|
|
76
|
-
transcript_path,
|
|
77
|
-
hook_event_name: 'UserPromptSubmit',
|
|
78
|
-
prompt: 'tdd-guard on',
|
|
79
|
-
cwd: '/current/working/directory',
|
|
80
|
-
},
|
|
81
|
-
sessionStart: {
|
|
82
|
-
session_id,
|
|
83
|
-
transcript_path,
|
|
84
|
-
hook_event_name: 'SessionStart',
|
|
85
|
-
source: 'startup' as const,
|
|
86
|
-
},
|
|
87
|
-
// Context defaults
|
|
88
|
-
modifications: 'Test modifications',
|
|
89
|
-
test: 'Test results',
|
|
90
|
-
} as const
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
TestError,
|
|
3
|
-
Test,
|
|
4
|
-
TestModule,
|
|
5
|
-
TestResult,
|
|
6
|
-
UnhandledError,
|
|
7
|
-
} from '../../../src/contracts/schemas/reporterSchemas'
|
|
8
|
-
import { omit } from './helpers'
|
|
9
|
-
|
|
10
|
-
// Base builders
|
|
11
|
-
export function createTestError(overrides: Partial<TestError> = {}): TestError {
|
|
12
|
-
return {
|
|
13
|
-
message: 'expected value to be different',
|
|
14
|
-
stack: 'Error: expected value to be different\n at test.ts:10:5',
|
|
15
|
-
...overrides,
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function createUnhandledError(
|
|
20
|
-
overrides: Partial<UnhandledError> = {}
|
|
21
|
-
): UnhandledError {
|
|
22
|
-
return {
|
|
23
|
-
name: 'Error',
|
|
24
|
-
message: 'Cannot find module "./helpers"',
|
|
25
|
-
stack:
|
|
26
|
-
"Error: Cannot find module './helpers' imported from '/src/example.test.ts'",
|
|
27
|
-
...overrides,
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Creates an unhandled error object with specified properties omitted
|
|
33
|
-
* @param keys - Array of property keys to omit
|
|
34
|
-
* @param params - Optional parameters for the unhandled error
|
|
35
|
-
*/
|
|
36
|
-
export const createUnhandledErrorWithout = <K extends keyof UnhandledError>(
|
|
37
|
-
keys: K[],
|
|
38
|
-
params: Partial<UnhandledError> = {}
|
|
39
|
-
): Omit<UnhandledError, K> => {
|
|
40
|
-
const fullError = createUnhandledError(params)
|
|
41
|
-
return omit(fullError, keys)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function createTest(overrides: Partial<Test> = {}): Test {
|
|
45
|
-
return {
|
|
46
|
-
name: 'should work',
|
|
47
|
-
fullName: 'Suite > should work',
|
|
48
|
-
state: 'passed',
|
|
49
|
-
...overrides,
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function createTestModule(
|
|
54
|
-
overrides: Partial<TestModule> = {}
|
|
55
|
-
): TestModule {
|
|
56
|
-
return {
|
|
57
|
-
moduleId: '/src/example.test.ts',
|
|
58
|
-
tests: [],
|
|
59
|
-
...overrides,
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export function createTestResults(
|
|
64
|
-
overrides: Partial<TestResult> = {}
|
|
65
|
-
): TestResult {
|
|
66
|
-
return {
|
|
67
|
-
testModules: [],
|
|
68
|
-
...overrides,
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Specific test data factories
|
|
73
|
-
export function emptyTestResults(): TestResult {
|
|
74
|
-
return createTestResults()
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export function failedTestResults(): TestResult {
|
|
78
|
-
return createTestResults({
|
|
79
|
-
testModules: [
|
|
80
|
-
createTestModule({
|
|
81
|
-
tests: [
|
|
82
|
-
createTest({
|
|
83
|
-
name: 'should calculate sum',
|
|
84
|
-
fullName: 'Calculator > should calculate sum',
|
|
85
|
-
state: 'failed',
|
|
86
|
-
errors: [
|
|
87
|
-
createTestError({
|
|
88
|
-
message: 'expected 5 to be 6',
|
|
89
|
-
stack: 'Error: expected 5 to be 6\n at example.test.ts:10:5',
|
|
90
|
-
}),
|
|
91
|
-
],
|
|
92
|
-
}),
|
|
93
|
-
],
|
|
94
|
-
}),
|
|
95
|
-
],
|
|
96
|
-
})
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export function passingTestResults(): TestResult {
|
|
100
|
-
return createTestResults({
|
|
101
|
-
testModules: [
|
|
102
|
-
createTestModule({
|
|
103
|
-
tests: [
|
|
104
|
-
createTest({
|
|
105
|
-
name: 'should add numbers',
|
|
106
|
-
fullName: 'Calculator > should add numbers',
|
|
107
|
-
state: 'passed',
|
|
108
|
-
}),
|
|
109
|
-
createTest({
|
|
110
|
-
name: 'should subtract numbers',
|
|
111
|
-
fullName: 'Calculator > should subtract numbers',
|
|
112
|
-
state: 'passed',
|
|
113
|
-
}),
|
|
114
|
-
],
|
|
115
|
-
}),
|
|
116
|
-
],
|
|
117
|
-
})
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export function multipleFailedTestResults(): TestResult {
|
|
121
|
-
return createTestResults({
|
|
122
|
-
testModules: [
|
|
123
|
-
createTestModule({
|
|
124
|
-
moduleId: '/src/calculator.test.ts',
|
|
125
|
-
tests: [
|
|
126
|
-
createTest({
|
|
127
|
-
name: 'should add two numbers',
|
|
128
|
-
fullName: 'Calculator > should add two numbers',
|
|
129
|
-
state: 'failed',
|
|
130
|
-
errors: [
|
|
131
|
-
createTestError({
|
|
132
|
-
message: 'expected 5 to be 6',
|
|
133
|
-
stack:
|
|
134
|
-
'Error: expected 5 to be 6\n at calculator.test.ts:10:5',
|
|
135
|
-
}),
|
|
136
|
-
],
|
|
137
|
-
}),
|
|
138
|
-
createTest({
|
|
139
|
-
name: 'should multiply two numbers',
|
|
140
|
-
fullName: 'Calculator > should multiply two numbers',
|
|
141
|
-
state: 'failed',
|
|
142
|
-
errors: [
|
|
143
|
-
createTestError({
|
|
144
|
-
message: 'expected 12 to be 15',
|
|
145
|
-
stack:
|
|
146
|
-
'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
|
|
147
|
-
}),
|
|
148
|
-
],
|
|
149
|
-
}),
|
|
150
|
-
],
|
|
151
|
-
}),
|
|
152
|
-
],
|
|
153
|
-
})
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export function mixedTestResults(): TestResult {
|
|
157
|
-
return createTestResults({
|
|
158
|
-
testModules: [
|
|
159
|
-
createTestModule({
|
|
160
|
-
moduleId: '/src/calculator.test.ts',
|
|
161
|
-
tests: [
|
|
162
|
-
createTest({
|
|
163
|
-
name: 'should add two numbers',
|
|
164
|
-
fullName: 'Calculator > should add two numbers',
|
|
165
|
-
state: 'passed',
|
|
166
|
-
}),
|
|
167
|
-
createTest({
|
|
168
|
-
name: 'should multiply two numbers',
|
|
169
|
-
fullName: 'Calculator > should multiply two numbers',
|
|
170
|
-
state: 'failed',
|
|
171
|
-
errors: [
|
|
172
|
-
createTestError({
|
|
173
|
-
message: 'expected 12 to be 15',
|
|
174
|
-
stack:
|
|
175
|
-
'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
|
|
176
|
-
}),
|
|
177
|
-
],
|
|
178
|
-
}),
|
|
179
|
-
],
|
|
180
|
-
}),
|
|
181
|
-
],
|
|
182
|
-
})
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export function multipleModulesTestResults(): TestResult {
|
|
186
|
-
return createTestResults({
|
|
187
|
-
testModules: [
|
|
188
|
-
createTestModule({
|
|
189
|
-
moduleId: '/src/calculator.test.ts',
|
|
190
|
-
tests: [
|
|
191
|
-
createTest({
|
|
192
|
-
name: 'should add two numbers',
|
|
193
|
-
fullName: 'Calculator > should add two numbers',
|
|
194
|
-
state: 'passed',
|
|
195
|
-
}),
|
|
196
|
-
createTest({
|
|
197
|
-
name: 'should multiply two numbers',
|
|
198
|
-
fullName: 'Calculator > should multiply two numbers',
|
|
199
|
-
state: 'failed',
|
|
200
|
-
errors: [
|
|
201
|
-
createTestError({
|
|
202
|
-
message: 'expected 12 to be 15',
|
|
203
|
-
stack:
|
|
204
|
-
'Error: expected 12 to be 15\n at calculator.test.ts:15:5',
|
|
205
|
-
}),
|
|
206
|
-
],
|
|
207
|
-
}),
|
|
208
|
-
],
|
|
209
|
-
}),
|
|
210
|
-
createTestModule({
|
|
211
|
-
moduleId: '/src/utils/formatter.test.ts',
|
|
212
|
-
tests: [
|
|
213
|
-
createTest({
|
|
214
|
-
name: 'should format currency',
|
|
215
|
-
fullName: 'Formatter > should format currency',
|
|
216
|
-
state: 'passed',
|
|
217
|
-
}),
|
|
218
|
-
createTest({
|
|
219
|
-
name: 'should format date',
|
|
220
|
-
fullName: 'Formatter > should format date',
|
|
221
|
-
state: 'failed',
|
|
222
|
-
errors: [
|
|
223
|
-
createTestError({
|
|
224
|
-
message: 'expected "2024-01-01" to be "01/01/2024"',
|
|
225
|
-
stack:
|
|
226
|
-
'Error: expected "2024-01-01" to be "01/01/2024"\n at formatter.test.ts:20:5',
|
|
227
|
-
}),
|
|
228
|
-
],
|
|
229
|
-
}),
|
|
230
|
-
],
|
|
231
|
-
}),
|
|
232
|
-
],
|
|
233
|
-
})
|
|
234
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Factory functions for creating Todo, TodoWrite, and TodoWriteOperation test data
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type {
|
|
6
|
-
Todo,
|
|
7
|
-
TodoWrite,
|
|
8
|
-
TodoWriteOperation,
|
|
9
|
-
} from '../../../src/contracts/schemas/toolSchemas'
|
|
10
|
-
import { hookDataDefaults, omit } from './helpers'
|
|
11
|
-
import { TEST_DEFAULTS } from './testDefaults'
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Creates a single todo object
|
|
15
|
-
* @param params - Optional parameters for the todo
|
|
16
|
-
*/
|
|
17
|
-
export const todo = (params?: Partial<Todo>): Todo => {
|
|
18
|
-
const defaults = TEST_DEFAULTS.todo
|
|
19
|
-
const base = params ?? {}
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
content: base.content ?? defaults.content,
|
|
23
|
-
status: base.status ?? defaults.status,
|
|
24
|
-
priority: base.priority ?? defaults.priority,
|
|
25
|
-
id: base.id ?? defaults.id,
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Creates a todo object with specified properties omitted
|
|
31
|
-
* @param keys - Array of property keys to omit
|
|
32
|
-
* @param params - Optional parameters for the todo
|
|
33
|
-
*/
|
|
34
|
-
export const todoWithout = <K extends keyof Todo>(
|
|
35
|
-
keys: K[],
|
|
36
|
-
params?: Partial<Todo>
|
|
37
|
-
): Omit<Todo, K> => {
|
|
38
|
-
const fullTodo = todo(params)
|
|
39
|
-
return omit(fullTodo, keys)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Creates a single todo write object
|
|
44
|
-
* @param params - Optional parameters for the todo write
|
|
45
|
-
*/
|
|
46
|
-
export const todoWrite = (params?: { todos?: Todo[] }): TodoWrite => ({
|
|
47
|
-
todos: params?.todos ?? [todo()],
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Creates a todo write object with specified properties omitted
|
|
52
|
-
* @param keys - Array of property keys to omit
|
|
53
|
-
* @param params - Optional parameters for the todo write
|
|
54
|
-
*/
|
|
55
|
-
export const todoWriteWithout = <K extends keyof TodoWrite>(
|
|
56
|
-
keys: K[],
|
|
57
|
-
params?: { todos?: Todo[] }
|
|
58
|
-
): Omit<TodoWrite, K> => {
|
|
59
|
-
const fullTodoWrite = todoWrite(params)
|
|
60
|
-
return omit(fullTodoWrite, keys)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Creates a single todo write operation object
|
|
65
|
-
* @param params - Optional parameters for the todo write operation
|
|
66
|
-
*/
|
|
67
|
-
export const todoWriteOperation = (
|
|
68
|
-
params?: Partial<TodoWriteOperation>
|
|
69
|
-
): TodoWriteOperation => ({
|
|
70
|
-
...hookDataDefaults(),
|
|
71
|
-
tool_name: 'TodoWrite',
|
|
72
|
-
tool_input: params?.tool_input ?? todoWrite(),
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Creates a todo write operation object with specified properties omitted
|
|
77
|
-
* @param keys - Array of property keys to omit
|
|
78
|
-
* @param params - Optional parameters for the todo write operation
|
|
79
|
-
*/
|
|
80
|
-
export const todoWriteOperationWithout = <K extends keyof TodoWriteOperation>(
|
|
81
|
-
keys: K[],
|
|
82
|
-
params?: Partial<TodoWriteOperation>
|
|
83
|
-
): Omit<TodoWriteOperation, K> => {
|
|
84
|
-
const fullTodoWriteOperation = todoWriteOperation(params)
|
|
85
|
-
return omit(fullTodoWriteOperation, keys)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Creates an invalid todo write operation object for testing
|
|
90
|
-
* @param params - Parameters including invalid values
|
|
91
|
-
*/
|
|
92
|
-
export const invalidTodoWriteOperation = (params: {
|
|
93
|
-
tool_name?: string
|
|
94
|
-
tool_input?: unknown
|
|
95
|
-
}): Record<string, unknown> => ({
|
|
96
|
-
...hookDataDefaults(),
|
|
97
|
-
tool_name: params.tool_name ?? 'TodoWrite',
|
|
98
|
-
tool_input: params.tool_input ?? todoWrite(),
|
|
99
|
-
})
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Factory functions for creating UserPromptSubmit test data
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { UserPromptSubmit } from '../../../src/contracts/schemas/toolSchemas'
|
|
6
|
-
import { omit } from './helpers'
|
|
7
|
-
import { TEST_DEFAULTS } from './testDefaults'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Creates a UserPromptSubmit object
|
|
11
|
-
* @param params - Optional parameters for the UserPromptSubmit
|
|
12
|
-
*/
|
|
13
|
-
export const userPromptSubmit = (
|
|
14
|
-
params?: Partial<UserPromptSubmit>
|
|
15
|
-
): UserPromptSubmit => {
|
|
16
|
-
const defaults = TEST_DEFAULTS.userPromptSubmit
|
|
17
|
-
const base = params ?? {}
|
|
18
|
-
|
|
19
|
-
return {
|
|
20
|
-
session_id: base.session_id ?? defaults.session_id,
|
|
21
|
-
transcript_path: base.transcript_path ?? defaults.transcript_path,
|
|
22
|
-
hook_event_name: base.hook_event_name ?? defaults.hook_event_name,
|
|
23
|
-
prompt: base.prompt ?? defaults.prompt,
|
|
24
|
-
cwd: base.cwd ?? defaults.cwd,
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Creates a UserPromptSubmit object with specified properties omitted
|
|
30
|
-
* @param keys - Array of property keys to omit
|
|
31
|
-
* @param params - Optional parameters for the UserPromptSubmit
|
|
32
|
-
*/
|
|
33
|
-
export const userPromptSubmitWithout = <K extends keyof UserPromptSubmit>(
|
|
34
|
-
keys: K[],
|
|
35
|
-
params?: Partial<UserPromptSubmit>
|
|
36
|
-
): Omit<UserPromptSubmit, K> => {
|
|
37
|
-
const fullUserPromptSubmit = userPromptSubmit(params)
|
|
38
|
-
return omit(fullUserPromptSubmit, keys)
|
|
39
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Factory functions for creating Write and WriteOperation test data
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type {
|
|
6
|
-
Write,
|
|
7
|
-
WriteOperation,
|
|
8
|
-
} from '../../../src/contracts/schemas/toolSchemas'
|
|
9
|
-
import { hookDataDefaults, omit } from './helpers'
|
|
10
|
-
import { TEST_DEFAULTS } from './testDefaults'
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Creates a single write object
|
|
14
|
-
* @param params - Optional parameters for the write
|
|
15
|
-
*/
|
|
16
|
-
export const write = (params?: Partial<Write>): Write => ({
|
|
17
|
-
file_path: params?.file_path ?? TEST_DEFAULTS.write.file_path,
|
|
18
|
-
content: params?.content ?? TEST_DEFAULTS.write.content,
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Creates a write object with specified properties omitted
|
|
23
|
-
* @param keys - Array of property keys to omit
|
|
24
|
-
* @param params - Optional parameters for the write
|
|
25
|
-
*/
|
|
26
|
-
export const writeWithout = <K extends keyof Write>(
|
|
27
|
-
keys: K[],
|
|
28
|
-
params?: Partial<Write>
|
|
29
|
-
): Omit<Write, K> => {
|
|
30
|
-
const fullWrite = write(params)
|
|
31
|
-
return omit(fullWrite, keys)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Creates a single write operation object
|
|
36
|
-
* @param params - Optional parameters for the write operation
|
|
37
|
-
*/
|
|
38
|
-
export const writeOperation = (
|
|
39
|
-
params?: Partial<WriteOperation>
|
|
40
|
-
): WriteOperation => ({
|
|
41
|
-
...hookDataDefaults(),
|
|
42
|
-
tool_name: 'Write',
|
|
43
|
-
tool_input: params?.tool_input ?? write(),
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Creates a write operation object with specified properties omitted
|
|
48
|
-
* @param keys - Array of property keys to omit
|
|
49
|
-
* @param params - Optional parameters for the write operation
|
|
50
|
-
*/
|
|
51
|
-
export const writeOperationWithout = <K extends keyof WriteOperation>(
|
|
52
|
-
keys: K[],
|
|
53
|
-
params?: Partial<WriteOperation>
|
|
54
|
-
): Omit<WriteOperation, K> => {
|
|
55
|
-
const fullWriteOperation = writeOperation(params)
|
|
56
|
-
return omit(fullWriteOperation, keys)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Creates an invalid write operation object for testing
|
|
61
|
-
* @param params - Parameters including invalid values
|
|
62
|
-
*/
|
|
63
|
-
export const invalidWriteOperation = (params: {
|
|
64
|
-
tool_name?: string
|
|
65
|
-
tool_input?: unknown
|
|
66
|
-
}): Record<string, unknown> => ({
|
|
67
|
-
...hookDataDefaults(),
|
|
68
|
-
tool_name: params.tool_name ?? 'Write',
|
|
69
|
-
tool_input: params.tool_input ?? write(),
|
|
70
|
-
})
|