@planu/cli 0.89.0 → 0.90.1
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/dist/cli/commands/activate.d.ts +14 -0
- package/dist/cli/commands/activate.d.ts.map +1 -0
- package/dist/cli/commands/activate.js +174 -0
- package/dist/cli/commands/activate.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +16 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +162 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/install.d.ts +48 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +348 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +10 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +133 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +9 -1
- package/dist/cli/router.js.map +1 -1
- package/dist/config/license-plans.json +2 -1
- package/dist/engine/agent-generator.test.d.ts +2 -0
- package/dist/engine/agent-generator.test.d.ts.map +1 -0
- package/dist/engine/agent-generator.test.js +556 -0
- package/dist/engine/agent-generator.test.js.map +1 -0
- package/dist/engine/analyzer.test.d.ts +2 -0
- package/dist/engine/analyzer.test.d.ts.map +1 -0
- package/dist/engine/analyzer.test.js +1461 -0
- package/dist/engine/analyzer.test.js.map +1 -0
- package/dist/engine/auditor.test.d.ts +2 -0
- package/dist/engine/auditor.test.d.ts.map +1 -0
- package/dist/engine/auditor.test.js +2075 -0
- package/dist/engine/auditor.test.js.map +1 -0
- package/dist/engine/doc-generator.test.d.ts +2 -0
- package/dist/engine/doc-generator.test.d.ts.map +1 -0
- package/dist/engine/doc-generator.test.js +961 -0
- package/dist/engine/doc-generator.test.js.map +1 -0
- package/dist/engine/estimator.test.d.ts +2 -0
- package/dist/engine/estimator.test.d.ts.map +1 -0
- package/dist/engine/estimator.test.js +334 -0
- package/dist/engine/estimator.test.js.map +1 -0
- package/dist/engine/skill-generator.test.d.ts +2 -0
- package/dist/engine/skill-generator.test.d.ts.map +1 -0
- package/dist/engine/skill-generator.test.js +742 -0
- package/dist/engine/skill-generator.test.js.map +1 -0
- package/dist/engine/spec-migrator/filesystem-import.d.ts +14 -0
- package/dist/engine/spec-migrator/filesystem-import.d.ts.map +1 -0
- package/dist/engine/spec-migrator/filesystem-import.js +96 -0
- package/dist/engine/spec-migrator/filesystem-import.js.map +1 -0
- package/dist/engine/spec-migrator/flatten-specs.d.ts +12 -0
- package/dist/engine/spec-migrator/flatten-specs.d.ts.map +1 -0
- package/dist/engine/spec-migrator/flatten-specs.js +111 -0
- package/dist/engine/spec-migrator/flatten-specs.js.map +1 -0
- package/dist/engine/spec-migrator/folder-operations.d.ts +9 -0
- package/dist/engine/spec-migrator/folder-operations.d.ts.map +1 -0
- package/dist/engine/spec-migrator/folder-operations.js +109 -0
- package/dist/engine/spec-migrator/folder-operations.js.map +1 -0
- package/dist/engine/spec-migrator/frontmatter-parser.d.ts +11 -0
- package/dist/engine/spec-migrator/frontmatter-parser.d.ts.map +1 -0
- package/dist/engine/spec-migrator/frontmatter-parser.js +92 -0
- package/dist/engine/spec-migrator/frontmatter-parser.js.map +1 -0
- package/dist/engine/spec-migrator/index.d.ts +9 -0
- package/dist/engine/spec-migrator/index.d.ts.map +1 -0
- package/dist/engine/spec-migrator/index.js +18 -0
- package/dist/engine/spec-migrator/index.js.map +1 -0
- package/dist/engine/spec-migrator/legacy-migration.d.ts +13 -0
- package/dist/engine/spec-migrator/legacy-migration.d.ts.map +1 -0
- package/dist/engine/spec-migrator/legacy-migration.js +75 -0
- package/dist/engine/spec-migrator/legacy-migration.js.map +1 -0
- package/dist/engine/spec-migrator/migration-validator.d.ts +20 -0
- package/dist/engine/spec-migrator/migration-validator.d.ts.map +1 -0
- package/dist/engine/spec-migrator/migration-validator.js +35 -0
- package/dist/engine/spec-migrator/migration-validator.js.map +1 -0
- package/dist/engine/spec-migrator/path-utils.d.ts +13 -0
- package/dist/engine/spec-migrator/path-utils.d.ts.map +1 -0
- package/dist/engine/spec-migrator/path-utils.js +40 -0
- package/dist/engine/spec-migrator/path-utils.js.map +1 -0
- package/dist/engine/spec-migrator/prefix-migration.d.ts +11 -0
- package/dist/engine/spec-migrator/prefix-migration.d.ts.map +1 -0
- package/dist/engine/spec-migrator/prefix-migration.js +73 -0
- package/dist/engine/spec-migrator/prefix-migration.js.map +1 -0
- package/dist/engine/spec-migrator/reconcile-paths.d.ts +12 -0
- package/dist/engine/spec-migrator/reconcile-paths.d.ts.map +1 -0
- package/dist/engine/spec-migrator/reconcile-paths.js +77 -0
- package/dist/engine/spec-migrator/reconcile-paths.js.map +1 -0
- package/dist/engine/spec-migrator/version-detection.d.ts +5 -0
- package/dist/engine/spec-migrator/version-detection.d.ts.map +1 -0
- package/dist/engine/spec-migrator/version-detection.js +19 -0
- package/dist/engine/spec-migrator/version-detection.js.map +1 -0
- package/dist/engine/spec-migrator.d.ts +1 -58
- package/dist/engine/spec-migrator.d.ts.map +1 -1
- package/dist/engine/spec-migrator.js +2 -658
- package/dist/engine/spec-migrator.js.map +1 -1
- package/dist/engine/spec-summary-html/dashboard-renderer.d.ts +6 -0
- package/dist/engine/spec-summary-html/dashboard-renderer.d.ts.map +1 -0
- package/dist/engine/spec-summary-html/dashboard-renderer.js +333 -0
- package/dist/engine/spec-summary-html/dashboard-renderer.js.map +1 -0
- package/dist/engine/spec-summary-html/hash-utils.d.ts +11 -0
- package/dist/engine/spec-summary-html/hash-utils.d.ts.map +1 -0
- package/dist/engine/spec-summary-html/hash-utils.js +39 -0
- package/dist/engine/spec-summary-html/hash-utils.js.map +1 -0
- package/dist/engine/spec-summary-html/index.d.ts +4 -0
- package/dist/engine/spec-summary-html/index.d.ts.map +1 -0
- package/dist/engine/spec-summary-html/index.js +6 -0
- package/dist/engine/spec-summary-html/index.js.map +1 -0
- package/dist/engine/spec-summary-html/report-renderer.d.ts +9 -0
- package/dist/engine/spec-summary-html/report-renderer.d.ts.map +1 -0
- package/dist/engine/spec-summary-html/report-renderer.js +139 -0
- package/dist/engine/spec-summary-html/report-renderer.js.map +1 -0
- package/dist/engine/spec-summary-html.d.ts +1 -0
- package/dist/engine/spec-summary-html.d.ts.map +1 -1
- package/dist/engine/spec-summary-html.js +19 -473
- package/dist/engine/spec-summary-html.js.map +1 -1
- package/dist/engine/update-notifier.d.ts +8 -0
- package/dist/engine/update-notifier.d.ts.map +1 -0
- package/dist/engine/update-notifier.js +130 -0
- package/dist/engine/update-notifier.js.map +1 -0
- package/dist/engine/validator/dor-dod.d.ts.map +1 -1
- package/dist/engine/validator/dor-dod.js +8 -5
- package/dist/engine/validator/dor-dod.js.map +1 -1
- package/dist/engine/validator.d.ts.map +1 -1
- package/dist/engine/validator.js +4 -3
- package/dist/engine/validator.js.map +1 -1
- package/dist/engine/validator.test.d.ts +2 -0
- package/dist/engine/validator.test.d.ts.map +1 -0
- package/dist/engine/validator.test.js +2371 -0
- package/dist/engine/validator.test.js.map +1 -0
- package/dist/engine/web-fetcher.test.d.ts +2 -0
- package/dist/engine/web-fetcher.test.d.ts.map +1 -0
- package/dist/engine/web-fetcher.test.js +360 -0
- package/dist/engine/web-fetcher.test.js.map +1 -0
- package/dist/i18n/index.test.d.ts +2 -0
- package/dist/i18n/index.test.d.ts.map +1 -0
- package/dist/i18n/index.test.js +375 -0
- package/dist/i18n/index.test.js.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +124 -0
- package/dist/index.test.js.map +1 -0
- package/dist/resources/patterns.test.d.ts +2 -0
- package/dist/resources/patterns.test.d.ts.map +1 -0
- package/dist/resources/patterns.test.js +142 -0
- package/dist/resources/patterns.test.js.map +1 -0
- package/dist/resources/process.test.d.ts +2 -0
- package/dist/resources/process.test.d.ts.map +1 -0
- package/dist/resources/process.test.js +48 -0
- package/dist/resources/process.test.js.map +1 -0
- package/dist/resources/registry.test.d.ts +2 -0
- package/dist/resources/registry.test.d.ts.map +1 -0
- package/dist/resources/registry.test.js +138 -0
- package/dist/resources/registry.test.js.map +1 -0
- package/dist/resources/specs.test.d.ts +2 -0
- package/dist/resources/specs.test.d.ts.map +1 -0
- package/dist/resources/specs.test.js +130 -0
- package/dist/resources/specs.test.js.map +1 -0
- package/dist/resources/templates.test.d.ts +2 -0
- package/dist/resources/templates.test.d.ts.map +1 -0
- package/dist/resources/templates.test.js +119 -0
- package/dist/resources/templates.test.js.map +1 -0
- package/dist/smoke.test.d.ts +2 -0
- package/dist/smoke.test.d.ts.map +1 -0
- package/dist/smoke.test.js +229 -0
- package/dist/smoke.test.js.map +1 -0
- package/dist/storage/base-store.test.d.ts +2 -0
- package/dist/storage/base-store.test.d.ts.map +1 -0
- package/dist/storage/base-store.test.js +180 -0
- package/dist/storage/base-store.test.js.map +1 -0
- package/dist/storage/global-store.test.d.ts +2 -0
- package/dist/storage/global-store.test.d.ts.map +1 -0
- package/dist/storage/global-store.test.js +327 -0
- package/dist/storage/global-store.test.js.map +1 -0
- package/dist/storage/index.test.d.ts +2 -0
- package/dist/storage/index.test.d.ts.map +1 -0
- package/dist/storage/index.test.js +56 -0
- package/dist/storage/index.test.js.map +1 -0
- package/dist/storage/knowledge-store.test.d.ts +2 -0
- package/dist/storage/knowledge-store.test.d.ts.map +1 -0
- package/dist/storage/knowledge-store.test.js +368 -0
- package/dist/storage/knowledge-store.test.js.map +1 -0
- package/dist/storage/metrics-store.test.d.ts +2 -0
- package/dist/storage/metrics-store.test.d.ts.map +1 -0
- package/dist/storage/metrics-store.test.js +212 -0
- package/dist/storage/metrics-store.test.js.map +1 -0
- package/dist/storage/pattern-store.test.d.ts +2 -0
- package/dist/storage/pattern-store.test.d.ts.map +1 -0
- package/dist/storage/pattern-store.test.js +224 -0
- package/dist/storage/pattern-store.test.js.map +1 -0
- package/dist/storage/spec-store.test.d.ts +2 -0
- package/dist/storage/spec-store.test.d.ts.map +1 -0
- package/dist/storage/spec-store.test.js +227 -0
- package/dist/storage/spec-store.test.js.map +1 -0
- package/dist/tools/audit.test.d.ts +2 -0
- package/dist/tools/audit.test.d.ts.map +1 -0
- package/dist/tools/audit.test.js +169 -0
- package/dist/tools/audit.test.js.map +1 -0
- package/dist/tools/challenge-spec.test.d.ts +2 -0
- package/dist/tools/challenge-spec.test.d.ts.map +1 -0
- package/dist/tools/challenge-spec.test.js +782 -0
- package/dist/tools/challenge-spec.test.js.map +1 -0
- package/dist/tools/check-versions.test.d.ts +2 -0
- package/dist/tools/check-versions.test.d.ts.map +1 -0
- package/dist/tools/check-versions.test.js +214 -0
- package/dist/tools/check-versions.test.js.map +1 -0
- package/dist/tools/clarify-requirements.test.d.ts +2 -0
- package/dist/tools/clarify-requirements.test.d.ts.map +1 -0
- package/dist/tools/clarify-requirements.test.js +161 -0
- package/dist/tools/clarify-requirements.test.js.map +1 -0
- package/dist/tools/consult-docs.test.d.ts +2 -0
- package/dist/tools/consult-docs.test.d.ts.map +1 -0
- package/dist/tools/consult-docs.test.js +140 -0
- package/dist/tools/consult-docs.test.js.map +1 -0
- package/dist/tools/create-spec.test.d.ts +2 -0
- package/dist/tools/create-spec.test.d.ts.map +1 -0
- package/dist/tools/create-spec.test.js +233 -0
- package/dist/tools/create-spec.test.js.map +1 -0
- package/dist/tools/define-ui-contract.test.d.ts +2 -0
- package/dist/tools/define-ui-contract.test.d.ts.map +1 -0
- package/dist/tools/define-ui-contract.test.js +479 -0
- package/dist/tools/define-ui-contract.test.js.map +1 -0
- package/dist/tools/design-schema.test.d.ts +2 -0
- package/dist/tools/design-schema.test.d.ts.map +1 -0
- package/dist/tools/design-schema.test.js +301 -0
- package/dist/tools/design-schema.test.js.map +1 -0
- package/dist/tools/detect-agent.test.d.ts +2 -0
- package/dist/tools/detect-agent.test.d.ts.map +1 -0
- package/dist/tools/detect-agent.test.js +133 -0
- package/dist/tools/detect-agent.test.js.map +1 -0
- package/dist/tools/detect-drift.test.d.ts +2 -0
- package/dist/tools/detect-drift.test.d.ts.map +1 -0
- package/dist/tools/detect-drift.test.js +312 -0
- package/dist/tools/detect-drift.test.js.map +1 -0
- package/dist/tools/discover-mcps.test.d.ts +2 -0
- package/dist/tools/discover-mcps.test.d.ts.map +1 -0
- package/dist/tools/discover-mcps.test.js +345 -0
- package/dist/tools/discover-mcps.test.js.map +1 -0
- package/dist/tools/estimate.test.d.ts +2 -0
- package/dist/tools/estimate.test.d.ts.map +1 -0
- package/dist/tools/estimate.test.js +137 -0
- package/dist/tools/estimate.test.js.map +1 -0
- package/dist/tools/generate-adr.test.d.ts +2 -0
- package/dist/tools/generate-adr.test.d.ts.map +1 -0
- package/dist/tools/generate-adr.test.js +206 -0
- package/dist/tools/generate-adr.test.js.map +1 -0
- package/dist/tools/generate-checklist.test.d.ts +2 -0
- package/dist/tools/generate-checklist.test.d.ts.map +1 -0
- package/dist/tools/generate-checklist.test.js +201 -0
- package/dist/tools/generate-checklist.test.js.map +1 -0
- package/dist/tools/generate-docs.test.d.ts +2 -0
- package/dist/tools/generate-docs.test.d.ts.map +1 -0
- package/dist/tools/generate-docs.test.js +183 -0
- package/dist/tools/generate-docs.test.js.map +1 -0
- package/dist/tools/generate-execution-plan.test.d.ts +2 -0
- package/dist/tools/generate-execution-plan.test.d.ts.map +1 -0
- package/dist/tools/generate-execution-plan.test.js +643 -0
- package/dist/tools/generate-execution-plan.test.js.map +1 -0
- package/dist/tools/generate-rules.test.d.ts +2 -0
- package/dist/tools/generate-rules.test.d.ts.map +1 -0
- package/dist/tools/generate-rules.test.js +148 -0
- package/dist/tools/generate-rules.test.js.map +1 -0
- package/dist/tools/generate-skill.test.d.ts +2 -0
- package/dist/tools/generate-skill.test.d.ts.map +1 -0
- package/dist/tools/generate-skill.test.js +138 -0
- package/dist/tools/generate-skill.test.js.map +1 -0
- package/dist/tools/generate-sub-agent.test.d.ts +2 -0
- package/dist/tools/generate-sub-agent.test.d.ts.map +1 -0
- package/dist/tools/generate-sub-agent.test.js +162 -0
- package/dist/tools/generate-sub-agent.test.js.map +1 -0
- package/dist/tools/generate-tests.test.d.ts +2 -0
- package/dist/tools/generate-tests.test.d.ts.map +1 -0
- package/dist/tools/generate-tests.test.js +222 -0
- package/dist/tools/generate-tests.test.js.map +1 -0
- package/dist/tools/init-constitution.test.d.ts +2 -0
- package/dist/tools/init-constitution.test.d.ts.map +1 -0
- package/dist/tools/init-constitution.test.js +398 -0
- package/dist/tools/init-constitution.test.js.map +1 -0
- package/dist/tools/init-project/config-builder.d.ts +12 -0
- package/dist/tools/init-project/config-builder.d.ts.map +1 -0
- package/dist/tools/init-project/config-builder.js +31 -0
- package/dist/tools/init-project/config-builder.js.map +1 -0
- package/dist/tools/init-project/git-setup.d.ts +8 -0
- package/dist/tools/init-project/git-setup.d.ts.map +1 -0
- package/dist/tools/init-project/git-setup.js +70 -0
- package/dist/tools/init-project/git-setup.js.map +1 -0
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +25 -371
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/lifecycle-helpers.d.ts +32 -0
- package/dist/tools/init-project/lifecycle-helpers.d.ts.map +1 -0
- package/dist/tools/init-project/lifecycle-helpers.js +153 -0
- package/dist/tools/init-project/lifecycle-helpers.js.map +1 -0
- package/dist/tools/init-project/migration-runner.d.ts +28 -0
- package/dist/tools/init-project/migration-runner.d.ts.map +1 -0
- package/dist/tools/init-project/migration-runner.js +57 -0
- package/dist/tools/init-project/migration-runner.js.map +1 -0
- package/dist/tools/init-project/rules-writer.d.ts +14 -0
- package/dist/tools/init-project/rules-writer.d.ts.map +1 -0
- package/dist/tools/init-project/rules-writer.js +43 -0
- package/dist/tools/init-project/rules-writer.js.map +1 -0
- package/dist/tools/init-project/scaffold-writer.d.ts +29 -0
- package/dist/tools/init-project/scaffold-writer.d.ts.map +1 -0
- package/dist/tools/init-project/scaffold-writer.js +76 -0
- package/dist/tools/init-project/scaffold-writer.js.map +1 -0
- package/dist/tools/init-project/stack-detector.d.ts +16 -0
- package/dist/tools/init-project/stack-detector.d.ts.map +1 -0
- package/dist/tools/init-project/stack-detector.js +19 -0
- package/dist/tools/init-project/stack-detector.js.map +1 -0
- package/dist/tools/init-project.test.d.ts +2 -0
- package/dist/tools/init-project.test.d.ts.map +1 -0
- package/dist/tools/init-project.test.js +158 -0
- package/dist/tools/init-project.test.js.map +1 -0
- package/dist/tools/integrate-pm.test.d.ts +2 -0
- package/dist/tools/integrate-pm.test.d.ts.map +1 -0
- package/dist/tools/integrate-pm.test.js +558 -0
- package/dist/tools/integrate-pm.test.js.map +1 -0
- package/dist/tools/learn.test.d.ts +2 -0
- package/dist/tools/learn.test.d.ts.map +1 -0
- package/dist/tools/learn.test.js +123 -0
- package/dist/tools/learn.test.js.map +1 -0
- package/dist/tools/list-specs.js +1 -1
- package/dist/tools/list-specs.js.map +1 -1
- package/dist/tools/list-specs.test.d.ts +2 -0
- package/dist/tools/list-specs.test.d.ts.map +1 -0
- package/dist/tools/list-specs.test.js +110 -0
- package/dist/tools/list-specs.test.js.map +1 -0
- package/dist/tools/manage-context.test.d.ts +2 -0
- package/dist/tools/manage-context.test.d.ts.map +1 -0
- package/dist/tools/manage-context.test.js +359 -0
- package/dist/tools/manage-context.test.js.map +1 -0
- package/dist/tools/manage-git.test.d.ts +2 -0
- package/dist/tools/manage-git.test.d.ts.map +1 -0
- package/dist/tools/manage-git.test.js +882 -0
- package/dist/tools/manage-git.test.js.map +1 -0
- package/dist/tools/orchestrate.test.d.ts +2 -0
- package/dist/tools/orchestrate.test.d.ts.map +1 -0
- package/dist/tools/orchestrate.test.js +1117 -0
- package/dist/tools/orchestrate.test.js.map +1 -0
- package/dist/tools/reconcile-spec.test.d.ts +2 -0
- package/dist/tools/reconcile-spec.test.d.ts.map +1 -0
- package/dist/tools/reconcile-spec.test.js +259 -0
- package/dist/tools/reconcile-spec.test.js.map +1 -0
- package/dist/tools/red-team.d.ts +3 -0
- package/dist/tools/red-team.d.ts.map +1 -0
- package/dist/tools/red-team.js +302 -0
- package/dist/tools/red-team.js.map +1 -0
- package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -1
- package/dist/tools/register-platform-tools/design-stack-tools.js +14 -0
- package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -1
- package/dist/tools/register-platform-tools.test.d.ts +2 -0
- package/dist/tools/register-platform-tools.test.d.ts.map +1 -0
- package/dist/tools/register-platform-tools.test.js +404 -0
- package/dist/tools/register-platform-tools.test.js.map +1 -0
- package/dist/tools/register-spec-tools.test.d.ts +2 -0
- package/dist/tools/register-spec-tools.test.d.ts.map +1 -0
- package/dist/tools/register-spec-tools.test.js +407 -0
- package/dist/tools/register-spec-tools.test.js.map +1 -0
- package/dist/tools/reverse-engineer.test.d.ts +2 -0
- package/dist/tools/reverse-engineer.test.d.ts.map +1 -0
- package/dist/tools/reverse-engineer.test.js +206 -0
- package/dist/tools/reverse-engineer.test.js.map +1 -0
- package/dist/tools/schemas.d.ts +20 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +133 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/schemas.test.d.ts +2 -0
- package/dist/tools/schemas.test.d.ts.map +1 -0
- package/dist/tools/schemas.test.js +245 -0
- package/dist/tools/schemas.test.js.map +1 -0
- package/dist/tools/set-locale.test.d.ts +2 -0
- package/dist/tools/set-locale.test.d.ts.map +1 -0
- package/dist/tools/set-locale.test.js +74 -0
- package/dist/tools/set-locale.test.js.map +1 -0
- package/dist/tools/suggest-mcps.test.d.ts +2 -0
- package/dist/tools/suggest-mcps.test.d.ts.map +1 -0
- package/dist/tools/suggest-mcps.test.js +198 -0
- package/dist/tools/suggest-mcps.test.js.map +1 -0
- package/dist/tools/suggest-stack.test.d.ts +2 -0
- package/dist/tools/suggest-stack.test.d.ts.map +1 -0
- package/dist/tools/suggest-stack.test.js +181 -0
- package/dist/tools/suggest-stack.test.js.map +1 -0
- package/dist/tools/suggest-tooling.test.d.ts +2 -0
- package/dist/tools/suggest-tooling.test.d.ts.map +1 -0
- package/dist/tools/suggest-tooling.test.js +213 -0
- package/dist/tools/suggest-tooling.test.js.map +1 -0
- package/dist/tools/summarize-spec.test.d.ts +2 -0
- package/dist/tools/summarize-spec.test.d.ts.map +1 -0
- package/dist/tools/summarize-spec.test.js +180 -0
- package/dist/tools/summarize-spec.test.js.map +1 -0
- package/dist/tools/update-status/dod-gates.d.ts +16 -0
- package/dist/tools/update-status/dod-gates.d.ts.map +1 -0
- package/dist/tools/update-status/dod-gates.js +117 -0
- package/dist/tools/update-status/dod-gates.js.map +1 -0
- package/dist/tools/update-status/file-sync.d.ts +6 -0
- package/dist/tools/update-status/file-sync.d.ts.map +1 -0
- package/dist/tools/update-status/file-sync.js +112 -0
- package/dist/tools/update-status/file-sync.js.map +1 -0
- package/dist/tools/update-status/index.d.ts +3 -0
- package/dist/tools/update-status/index.d.ts.map +1 -0
- package/dist/tools/update-status/index.js +181 -0
- package/dist/tools/update-status/index.js.map +1 -0
- package/dist/tools/update-status/response-builder.d.ts +4 -0
- package/dist/tools/update-status/response-builder.d.ts.map +1 -0
- package/dist/tools/update-status/response-builder.js +69 -0
- package/dist/tools/update-status/response-builder.js.map +1 -0
- package/dist/tools/update-status/side-effects.d.ts +15 -0
- package/dist/tools/update-status/side-effects.d.ts.map +1 -0
- package/dist/tools/update-status/side-effects.js +64 -0
- package/dist/tools/update-status/side-effects.js.map +1 -0
- package/dist/tools/update-status/transition-guard.d.ts +20 -0
- package/dist/tools/update-status/transition-guard.d.ts.map +1 -0
- package/dist/tools/update-status/transition-guard.js +75 -0
- package/dist/tools/update-status/transition-guard.js.map +1 -0
- package/dist/tools/update-status.d.ts +1 -2
- package/dist/tools/update-status.d.ts.map +1 -1
- package/dist/tools/update-status.js +2 -481
- package/dist/tools/update-status.js.map +1 -1
- package/dist/tools/update-status.test.d.ts +2 -0
- package/dist/tools/update-status.test.d.ts.map +1 -0
- package/dist/tools/update-status.test.js +142 -0
- package/dist/tools/update-status.test.js.map +1 -0
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +6 -4
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/validate.test.d.ts +2 -0
- package/dist/tools/validate.test.d.ts.map +1 -0
- package/dist/tools/validate.test.js +137 -0
- package/dist/tools/validate.test.js.map +1 -0
- package/dist/types/analysis.d.ts +2 -1
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/red-team.d.ts +29 -0
- package/dist/types/red-team.d.ts.map +1 -0
- package/dist/types/red-team.js +3 -0
- package/dist/types/red-team.js.map +1 -0
- package/dist/types/update-notifier.d.ts +5 -0
- package/dist/types/update-notifier.d.ts.map +1 -0
- package/dist/types/update-notifier.js +3 -0
- package/dist/types/update-notifier.js.map +1 -0
- package/package.json +9 -2
- package/src/config/license-plans.json +2 -1
- package/src/i18n/messages/en.json +5 -0
- package/src/i18n/messages/es.json +5 -0
- package/src/i18n/messages/pt.json +5 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
+
vi.mock('../i18n/index.js', () => ({
|
|
3
|
+
ti: vi.fn((_key, params) => `translated:${JSON.stringify(params)}`),
|
|
4
|
+
}));
|
|
5
|
+
vi.mock('../storage/index.js', () => ({
|
|
6
|
+
specStore: {
|
|
7
|
+
createSpec: vi.fn(),
|
|
8
|
+
},
|
|
9
|
+
knowledgeStore: {
|
|
10
|
+
getKnowledge: vi.fn(),
|
|
11
|
+
},
|
|
12
|
+
}));
|
|
13
|
+
vi.mock('../engine/estimator.js', () => ({
|
|
14
|
+
inferDifficulty: vi.fn(() => 2),
|
|
15
|
+
}));
|
|
16
|
+
vi.mock('node:fs/promises', () => ({
|
|
17
|
+
readFile: vi.fn(),
|
|
18
|
+
stat: vi.fn(),
|
|
19
|
+
}));
|
|
20
|
+
vi.mock('glob', () => ({
|
|
21
|
+
glob: vi.fn(),
|
|
22
|
+
}));
|
|
23
|
+
import { handleReverseEngineer } from './reverse-engineer.js';
|
|
24
|
+
import { specStore, knowledgeStore } from '../storage/index.js';
|
|
25
|
+
import { stat, readFile } from 'node:fs/promises';
|
|
26
|
+
import { glob } from 'glob';
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
vi.clearAllMocks();
|
|
29
|
+
});
|
|
30
|
+
describe('handleReverseEngineer', () => {
|
|
31
|
+
it('should return error when path not found', async () => {
|
|
32
|
+
vi.mocked(stat).mockRejectedValue(new Error('ENOENT'));
|
|
33
|
+
const result = await handleReverseEngineer({
|
|
34
|
+
path: '/nonexistent',
|
|
35
|
+
projectId: 'proj-123',
|
|
36
|
+
});
|
|
37
|
+
expect(result.isError).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
it('should analyze a directory successfully', async () => {
|
|
40
|
+
vi.mocked(stat)
|
|
41
|
+
.mockResolvedValueOnce(undefined) // first call: validate path exists
|
|
42
|
+
.mockResolvedValueOnce({ isDirectory: () => true }); // second call: check if dir
|
|
43
|
+
vi.mocked(glob).mockResolvedValue(['src/index.ts', 'src/utils.ts']);
|
|
44
|
+
vi.mocked(readFile).mockResolvedValue('import express from "express";\nexport async function handleRequest() { await fetch(); }');
|
|
45
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue({ projectPath: '/test' });
|
|
46
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
47
|
+
const result = await handleReverseEngineer({
|
|
48
|
+
path: '/test/src',
|
|
49
|
+
projectId: 'proj-123',
|
|
50
|
+
});
|
|
51
|
+
expect(result.isError).toBeUndefined();
|
|
52
|
+
expect(result.content).toHaveLength(2);
|
|
53
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
54
|
+
expect(parsed.specId).toBeDefined();
|
|
55
|
+
expect(parsed.analysis.filesAnalyzed).toBe(2);
|
|
56
|
+
expect(specStore.createSpec).toHaveBeenCalled();
|
|
57
|
+
});
|
|
58
|
+
it('should analyze a single file', async () => {
|
|
59
|
+
vi.mocked(stat)
|
|
60
|
+
.mockResolvedValueOnce(undefined) // first call: validate path
|
|
61
|
+
.mockResolvedValueOnce({ isDirectory: () => false }); // second call: check type
|
|
62
|
+
vi.mocked(readFile).mockResolvedValue('export class UserService { }\nexport function getUser() {}');
|
|
63
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue(null);
|
|
64
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
65
|
+
const result = await handleReverseEngineer({
|
|
66
|
+
path: '/test/src/user-service.ts',
|
|
67
|
+
projectId: 'proj-123',
|
|
68
|
+
});
|
|
69
|
+
expect(result.isError).toBeUndefined();
|
|
70
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
71
|
+
expect(parsed.analysis.filesAnalyzed).toBe(1);
|
|
72
|
+
});
|
|
73
|
+
it('should return error for too many files in shallow mode', async () => {
|
|
74
|
+
vi.mocked(stat)
|
|
75
|
+
.mockResolvedValueOnce(undefined)
|
|
76
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
77
|
+
const manyFiles = Array.from({ length: 201 }, (_, i) => `file${i}.ts`);
|
|
78
|
+
vi.mocked(glob).mockResolvedValue(manyFiles);
|
|
79
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue(null);
|
|
80
|
+
const result = await handleReverseEngineer({
|
|
81
|
+
path: '/test/src',
|
|
82
|
+
projectId: 'proj-123',
|
|
83
|
+
depth: 'shallow',
|
|
84
|
+
});
|
|
85
|
+
expect(result.isError).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
it('should handle deep mode', async () => {
|
|
88
|
+
vi.mocked(stat)
|
|
89
|
+
.mockResolvedValueOnce(undefined)
|
|
90
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
91
|
+
vi.mocked(glob).mockResolvedValue(['src/index.ts']);
|
|
92
|
+
vi.mocked(readFile).mockResolvedValue('const x = 1;');
|
|
93
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue(null);
|
|
94
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
95
|
+
const result = await handleReverseEngineer({
|
|
96
|
+
path: '/test/src',
|
|
97
|
+
projectId: 'proj-123',
|
|
98
|
+
depth: 'deep',
|
|
99
|
+
});
|
|
100
|
+
expect(result.isError).toBeUndefined();
|
|
101
|
+
});
|
|
102
|
+
it('should detect patterns like React hooks', async () => {
|
|
103
|
+
vi.mocked(stat)
|
|
104
|
+
.mockResolvedValueOnce(undefined)
|
|
105
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
106
|
+
vi.mocked(glob).mockResolvedValue(['component/App.tsx']);
|
|
107
|
+
vi.mocked(readFile).mockResolvedValue('import React from "react";\nconst [state, setState] = useState(0);\nuseEffect(() => {}, []);');
|
|
108
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue({ projectPath: '/test' });
|
|
109
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
110
|
+
const result = await handleReverseEngineer({
|
|
111
|
+
path: '/test/src',
|
|
112
|
+
projectId: 'proj-123',
|
|
113
|
+
});
|
|
114
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
115
|
+
expect(parsed.analysis.patternsDetected).toContain('React hooks');
|
|
116
|
+
});
|
|
117
|
+
it('should skip unreadable files', async () => {
|
|
118
|
+
vi.mocked(stat)
|
|
119
|
+
.mockResolvedValueOnce(undefined)
|
|
120
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
121
|
+
vi.mocked(glob).mockResolvedValue(['readable.ts', 'unreadable.ts']);
|
|
122
|
+
vi.mocked(readFile).mockImplementation(((path) => {
|
|
123
|
+
if (String(path).includes('unreadable')) {
|
|
124
|
+
return Promise.reject(new Error('Permission denied'));
|
|
125
|
+
}
|
|
126
|
+
return Promise.resolve('export const x = 1;');
|
|
127
|
+
}));
|
|
128
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue(null);
|
|
129
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
130
|
+
const result = await handleReverseEngineer({
|
|
131
|
+
path: '/test/src',
|
|
132
|
+
projectId: 'proj-123',
|
|
133
|
+
});
|
|
134
|
+
expect(result.isError).toBeUndefined();
|
|
135
|
+
});
|
|
136
|
+
it('should skip undefined entries in files array', async () => {
|
|
137
|
+
vi.mocked(stat)
|
|
138
|
+
.mockResolvedValueOnce(undefined)
|
|
139
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
140
|
+
// Create an array with gaps (sparse array) to trigger the `if (!file) continue`
|
|
141
|
+
const sparseFiles = [];
|
|
142
|
+
sparseFiles[0] = 'src/index.ts';
|
|
143
|
+
sparseFiles[2] = 'src/utils.ts'; // index 1 is empty/undefined
|
|
144
|
+
vi.mocked(glob).mockResolvedValue(sparseFiles);
|
|
145
|
+
vi.mocked(readFile).mockResolvedValue('export const x = 1;');
|
|
146
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue(null);
|
|
147
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
148
|
+
const result = await handleReverseEngineer({
|
|
149
|
+
path: '/test/src',
|
|
150
|
+
projectId: 'proj-123',
|
|
151
|
+
});
|
|
152
|
+
expect(result.isError).toBeUndefined();
|
|
153
|
+
});
|
|
154
|
+
it('should detect application layer from file paths', async () => {
|
|
155
|
+
vi.mocked(stat)
|
|
156
|
+
.mockResolvedValueOnce(undefined)
|
|
157
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
158
|
+
vi.mocked(glob).mockResolvedValue([
|
|
159
|
+
'service/user-service.ts',
|
|
160
|
+
]);
|
|
161
|
+
vi.mocked(readFile).mockResolvedValue('export class UserService { }');
|
|
162
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue({ projectPath: '/test' });
|
|
163
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
164
|
+
const result = await handleReverseEngineer({
|
|
165
|
+
path: '/test/src',
|
|
166
|
+
projectId: 'proj-123',
|
|
167
|
+
});
|
|
168
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
169
|
+
expect(parsed.analysis.layersIdentified).toContain('application');
|
|
170
|
+
});
|
|
171
|
+
it('should detect domain layer from file paths', async () => {
|
|
172
|
+
vi.mocked(stat)
|
|
173
|
+
.mockResolvedValueOnce(undefined)
|
|
174
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
175
|
+
vi.mocked(glob).mockResolvedValue([
|
|
176
|
+
'domain/user-entity.ts',
|
|
177
|
+
]);
|
|
178
|
+
vi.mocked(readFile).mockResolvedValue('export class User { }');
|
|
179
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue({ projectPath: '/test' });
|
|
180
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
181
|
+
const result = await handleReverseEngineer({
|
|
182
|
+
path: '/test/src',
|
|
183
|
+
projectId: 'proj-123',
|
|
184
|
+
});
|
|
185
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
186
|
+
expect(parsed.analysis.layersIdentified).toContain('domain');
|
|
187
|
+
});
|
|
188
|
+
it('should detect infrastructure layer from file paths', async () => {
|
|
189
|
+
vi.mocked(stat)
|
|
190
|
+
.mockResolvedValueOnce(undefined)
|
|
191
|
+
.mockResolvedValueOnce({ isDirectory: () => true });
|
|
192
|
+
vi.mocked(glob).mockResolvedValue([
|
|
193
|
+
'repository/user-repo.ts',
|
|
194
|
+
]);
|
|
195
|
+
vi.mocked(readFile).mockResolvedValue('export class UserRepository { }');
|
|
196
|
+
vi.mocked(knowledgeStore.getKnowledge).mockResolvedValue({ projectPath: '/test' });
|
|
197
|
+
vi.mocked(specStore.createSpec).mockResolvedValue(undefined);
|
|
198
|
+
const result = await handleReverseEngineer({
|
|
199
|
+
path: '/test/src',
|
|
200
|
+
projectId: 'proj-123',
|
|
201
|
+
});
|
|
202
|
+
const parsed = JSON.parse(result.content[1].text);
|
|
203
|
+
expect(parsed.analysis.layersIdentified).toContain('infrastructure');
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=reverse-engineer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-engineer.test.js","sourceRoot":"","sources":["../../src/tools/reverse-engineer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SupportedLocaleEnum: z.ZodEnum<["en", "es", "pt"]>;
|
|
3
|
+
export declare const SpecStatusEnum: z.ZodEnum<["draft", "review", "approved", "implementing", "done"]>;
|
|
4
|
+
export declare const SpecTypeEnum: z.ZodEnum<["feature", "refactor", "bugfix", "infra", "docs", "project"]>;
|
|
5
|
+
export declare const SpecScopeEnum: z.ZodEnum<["trivial", "feature", "cross-module", "architectural"]>;
|
|
6
|
+
export declare const SpecTargetEnum: z.ZodEnum<["frontend", "backend", "shared", "fullstack", "infrastructure", "database"]>;
|
|
7
|
+
export declare const ExperienceLevelEnum: z.ZodEnum<["beginner", "intermediate", "expert"]>;
|
|
8
|
+
export declare const AgentPlatformEnum: z.ZodEnum<["claude-code", "cursor", "windsurf", "aider", "copilot", "cline", "continue", "custom"]>;
|
|
9
|
+
export declare const SubAgentFrameworkEnum: z.ZodEnum<["claude-agent-sdk", "crewai", "langgraph", "autogen", "mastra", "vercel-ai-sdk", "custom"]>;
|
|
10
|
+
export declare const AuditCategoryEnum: z.ZodEnum<["solid", "clean-code", "architecture", "security", "performance", "error-handling", "testing", "dry", "project-rules"]>;
|
|
11
|
+
export declare const DocumentationTypeEnum: z.ZodEnum<["user-guide", "api-reference", "readme", "setup-guide", "changelog", "onboarding", "faq", "architecture-doc", "deployment-guide", "database-doc", "help-articles", "release-notes", "runbook", "security-doc"]>;
|
|
12
|
+
export declare const GitActionEnum: z.ZodEnum<["create-branch", "generate-pr", "link-commits", "generate-changelog", "setup-hooks", "check-branch", "status"]>;
|
|
13
|
+
export declare const DevLifecycleCategoryEnum: z.ZodEnum<["project_management", "version_control", "ci_cd", "caching", "message_queues", "search", "file_storage", "realtime", "feature_flags", "observability", "analytics", "testing", "security", "api_documentation", "design_prototyping", "email_sms_notifications", "payments_billing", "ai_ml", "cdn_edge", "containerization", "scheduled_jobs", "cms", "i18n", "rate_limiting", "linting_formatting"]>;
|
|
14
|
+
export declare const PMPlatformEnum: z.ZodEnum<["jira", "linear", "github", "trello", "notion", "asana", "clickup"]>;
|
|
15
|
+
export declare const PMActionEnum: z.ZodEnum<["sync-spec", "create-issue", "link-spec", "update-status"]>;
|
|
16
|
+
export declare const OrchestrateActionEnum: z.ZodEnum<["register", "heartbeat", "lock", "unlock", "distribute", "status", "resolve-conflict"]>;
|
|
17
|
+
export declare const ManageContextActionEnum: z.ZodEnum<["save", "load", "list", "delete", "cleanup"]>;
|
|
18
|
+
export declare const ChecklistFocusEnum: z.ZodEnum<["completeness", "consistency", "feasibility", "security", "edge-cases", "ux"]>;
|
|
19
|
+
export declare const ChallengeSpecFocusEnum: z.ZodEnum<["failures", "concurrency", "scale", "security", "data-consistency"]>;
|
|
20
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB,+BAA6B,CAAC;AAC9D,eAAO,MAAM,cAAc,oEAAkE,CAAC;AAC9F,eAAO,MAAM,YAAY,0EAAwE,CAAC;AAClG,eAAO,MAAM,aAAa,oEAAkE,CAAC;AAC7F,eAAO,MAAM,cAAc,yFAOzB,CAAC;AACH,eAAO,MAAM,mBAAmB,mDAAiD,CAAC;AAElF,eAAO,MAAM,iBAAiB,qGAS5B,CAAC;AACH,eAAO,MAAM,qBAAqB,wGAQhC,CAAC;AACH,eAAO,MAAM,iBAAiB,oIAU5B,CAAC;AACH,eAAO,MAAM,qBAAqB,4NAehC,CAAC;AACH,eAAO,MAAM,aAAa,4HAQxB,CAAC;AACH,eAAO,MAAM,wBAAwB,mZA0BnC,CAAC;AACH,eAAO,MAAM,cAAc,iFAQzB,CAAC;AACH,eAAO,MAAM,YAAY,wEAAsE,CAAC;AAChG,eAAO,MAAM,qBAAqB,oGAQhC,CAAC;AACH,eAAO,MAAM,uBAAuB,0DAAwD,CAAC;AAC7F,eAAO,MAAM,kBAAkB,2FAO7B,CAAC;AACH,eAAO,MAAM,sBAAsB,iFAMjC,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// tools/schemas.ts — Shared Zod enum schemas used across tool registrations.
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export const SupportedLocaleEnum = z.enum(['en', 'es', 'pt']);
|
|
4
|
+
export const SpecStatusEnum = z.enum(['draft', 'review', 'approved', 'implementing', 'done']);
|
|
5
|
+
export const SpecTypeEnum = z.enum(['feature', 'refactor', 'bugfix', 'infra', 'docs', 'project']);
|
|
6
|
+
export const SpecScopeEnum = z.enum(['trivial', 'feature', 'cross-module', 'architectural']);
|
|
7
|
+
export const SpecTargetEnum = z.enum([
|
|
8
|
+
'frontend',
|
|
9
|
+
'backend',
|
|
10
|
+
'shared',
|
|
11
|
+
'fullstack',
|
|
12
|
+
'infrastructure',
|
|
13
|
+
'database',
|
|
14
|
+
]);
|
|
15
|
+
export const ExperienceLevelEnum = z.enum(['beginner', 'intermediate', 'expert']);
|
|
16
|
+
export const AgentPlatformEnum = z.enum([
|
|
17
|
+
'claude-code',
|
|
18
|
+
'cursor',
|
|
19
|
+
'windsurf',
|
|
20
|
+
'aider',
|
|
21
|
+
'copilot',
|
|
22
|
+
'cline',
|
|
23
|
+
'continue',
|
|
24
|
+
'custom',
|
|
25
|
+
]);
|
|
26
|
+
export const SubAgentFrameworkEnum = z.enum([
|
|
27
|
+
'claude-agent-sdk',
|
|
28
|
+
'crewai',
|
|
29
|
+
'langgraph',
|
|
30
|
+
'autogen',
|
|
31
|
+
'mastra',
|
|
32
|
+
'vercel-ai-sdk',
|
|
33
|
+
'custom',
|
|
34
|
+
]);
|
|
35
|
+
export const AuditCategoryEnum = z.enum([
|
|
36
|
+
'solid',
|
|
37
|
+
'clean-code',
|
|
38
|
+
'architecture',
|
|
39
|
+
'security',
|
|
40
|
+
'performance',
|
|
41
|
+
'error-handling',
|
|
42
|
+
'testing',
|
|
43
|
+
'dry',
|
|
44
|
+
'project-rules',
|
|
45
|
+
]);
|
|
46
|
+
export const DocumentationTypeEnum = z.enum([
|
|
47
|
+
'user-guide',
|
|
48
|
+
'api-reference',
|
|
49
|
+
'readme',
|
|
50
|
+
'setup-guide',
|
|
51
|
+
'changelog',
|
|
52
|
+
'onboarding',
|
|
53
|
+
'faq',
|
|
54
|
+
'architecture-doc',
|
|
55
|
+
'deployment-guide',
|
|
56
|
+
'database-doc',
|
|
57
|
+
'help-articles',
|
|
58
|
+
'release-notes',
|
|
59
|
+
'runbook',
|
|
60
|
+
'security-doc',
|
|
61
|
+
]);
|
|
62
|
+
export const GitActionEnum = z.enum([
|
|
63
|
+
'create-branch',
|
|
64
|
+
'generate-pr',
|
|
65
|
+
'link-commits',
|
|
66
|
+
'generate-changelog',
|
|
67
|
+
'setup-hooks',
|
|
68
|
+
'check-branch',
|
|
69
|
+
'status',
|
|
70
|
+
]);
|
|
71
|
+
export const DevLifecycleCategoryEnum = z.enum([
|
|
72
|
+
'project_management',
|
|
73
|
+
'version_control',
|
|
74
|
+
'ci_cd',
|
|
75
|
+
'caching',
|
|
76
|
+
'message_queues',
|
|
77
|
+
'search',
|
|
78
|
+
'file_storage',
|
|
79
|
+
'realtime',
|
|
80
|
+
'feature_flags',
|
|
81
|
+
'observability',
|
|
82
|
+
'analytics',
|
|
83
|
+
'testing',
|
|
84
|
+
'security',
|
|
85
|
+
'api_documentation',
|
|
86
|
+
'design_prototyping',
|
|
87
|
+
'email_sms_notifications',
|
|
88
|
+
'payments_billing',
|
|
89
|
+
'ai_ml',
|
|
90
|
+
'cdn_edge',
|
|
91
|
+
'containerization',
|
|
92
|
+
'scheduled_jobs',
|
|
93
|
+
'cms',
|
|
94
|
+
'i18n',
|
|
95
|
+
'rate_limiting',
|
|
96
|
+
'linting_formatting',
|
|
97
|
+
]);
|
|
98
|
+
export const PMPlatformEnum = z.enum([
|
|
99
|
+
'jira',
|
|
100
|
+
'linear',
|
|
101
|
+
'github',
|
|
102
|
+
'trello',
|
|
103
|
+
'notion',
|
|
104
|
+
'asana',
|
|
105
|
+
'clickup',
|
|
106
|
+
]);
|
|
107
|
+
export const PMActionEnum = z.enum(['sync-spec', 'create-issue', 'link-spec', 'update-status']);
|
|
108
|
+
export const OrchestrateActionEnum = z.enum([
|
|
109
|
+
'register',
|
|
110
|
+
'heartbeat',
|
|
111
|
+
'lock',
|
|
112
|
+
'unlock',
|
|
113
|
+
'distribute',
|
|
114
|
+
'status',
|
|
115
|
+
'resolve-conflict',
|
|
116
|
+
]);
|
|
117
|
+
export const ManageContextActionEnum = z.enum(['save', 'load', 'list', 'delete', 'cleanup']);
|
|
118
|
+
export const ChecklistFocusEnum = z.enum([
|
|
119
|
+
'completeness',
|
|
120
|
+
'consistency',
|
|
121
|
+
'feasibility',
|
|
122
|
+
'security',
|
|
123
|
+
'edge-cases',
|
|
124
|
+
'ux',
|
|
125
|
+
]);
|
|
126
|
+
export const ChallengeSpecFocusEnum = z.enum([
|
|
127
|
+
'failures',
|
|
128
|
+
'concurrency',
|
|
129
|
+
'scale',
|
|
130
|
+
'security',
|
|
131
|
+
'data-consistency',
|
|
132
|
+
]);
|
|
133
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// Tests for Zod enum schemas
|
|
2
|
+
import { describe, it, expect } from 'vitest';
|
|
3
|
+
import { SupportedLocaleEnum, SpecStatusEnum, SpecTypeEnum, SpecScopeEnum, SpecTargetEnum, ExperienceLevelEnum, AgentPlatformEnum, SubAgentFrameworkEnum, AuditCategoryEnum, DocumentationTypeEnum, GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum, PMActionEnum, OrchestrateActionEnum, ManageContextActionEnum, ChecklistFocusEnum, ChallengeSpecFocusEnum, } from './schemas.js';
|
|
4
|
+
describe('SupportedLocaleEnum', () => {
|
|
5
|
+
it('should accept valid locales', () => {
|
|
6
|
+
expect(SupportedLocaleEnum.parse('en')).toBe('en');
|
|
7
|
+
expect(SupportedLocaleEnum.parse('es')).toBe('es');
|
|
8
|
+
expect(SupportedLocaleEnum.parse('pt')).toBe('pt');
|
|
9
|
+
});
|
|
10
|
+
it('should reject invalid locale', () => {
|
|
11
|
+
expect(() => SupportedLocaleEnum.parse('fr')).toThrow();
|
|
12
|
+
expect(() => SupportedLocaleEnum.parse('')).toThrow();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe('SpecStatusEnum', () => {
|
|
16
|
+
it('should accept all valid statuses', () => {
|
|
17
|
+
const statuses = ['draft', 'review', 'approved', 'implementing', 'done'];
|
|
18
|
+
for (const s of statuses) {
|
|
19
|
+
expect(SpecStatusEnum.parse(s)).toBe(s);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
it('should reject invalid status', () => {
|
|
23
|
+
expect(() => SpecStatusEnum.parse('pending')).toThrow();
|
|
24
|
+
expect(() => SpecStatusEnum.parse('cancelled')).toThrow();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('SpecTypeEnum', () => {
|
|
28
|
+
it('should accept all valid types', () => {
|
|
29
|
+
const types = ['feature', 'refactor', 'bugfix', 'infra', 'docs', 'project'];
|
|
30
|
+
for (const t of types) {
|
|
31
|
+
expect(SpecTypeEnum.parse(t)).toBe(t);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it('should reject invalid type', () => {
|
|
35
|
+
expect(() => SpecTypeEnum.parse('hotfix')).toThrow();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('SpecScopeEnum', () => {
|
|
39
|
+
it('should accept all valid scopes', () => {
|
|
40
|
+
const scopes = ['trivial', 'feature', 'cross-module', 'architectural'];
|
|
41
|
+
for (const s of scopes) {
|
|
42
|
+
expect(SpecScopeEnum.parse(s)).toBe(s);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
it('should reject invalid scope', () => {
|
|
46
|
+
expect(() => SpecScopeEnum.parse('global')).toThrow();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('SpecTargetEnum', () => {
|
|
50
|
+
it('should accept all valid targets', () => {
|
|
51
|
+
const targets = ['frontend', 'backend', 'shared', 'fullstack', 'infrastructure', 'database'];
|
|
52
|
+
for (const t of targets) {
|
|
53
|
+
expect(SpecTargetEnum.parse(t)).toBe(t);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
it('should reject invalid target', () => {
|
|
57
|
+
expect(() => SpecTargetEnum.parse('mobile')).toThrow();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('ExperienceLevelEnum', () => {
|
|
61
|
+
it('should accept all valid levels', () => {
|
|
62
|
+
expect(ExperienceLevelEnum.parse('beginner')).toBe('beginner');
|
|
63
|
+
expect(ExperienceLevelEnum.parse('intermediate')).toBe('intermediate');
|
|
64
|
+
expect(ExperienceLevelEnum.parse('expert')).toBe('expert');
|
|
65
|
+
});
|
|
66
|
+
it('should reject invalid level', () => {
|
|
67
|
+
expect(() => ExperienceLevelEnum.parse('advanced')).toThrow();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('AgentPlatformEnum', () => {
|
|
71
|
+
it('should accept all valid platforms', () => {
|
|
72
|
+
const platforms = ['claude-code', 'cursor', 'windsurf', 'aider', 'copilot', 'cline', 'continue', 'custom'];
|
|
73
|
+
for (const p of platforms) {
|
|
74
|
+
expect(AgentPlatformEnum.parse(p)).toBe(p);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
it('should reject invalid platform', () => {
|
|
78
|
+
expect(() => AgentPlatformEnum.parse('vscode')).toThrow();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('SubAgentFrameworkEnum', () => {
|
|
82
|
+
it('should accept all valid frameworks', () => {
|
|
83
|
+
const frameworks = ['claude-agent-sdk', 'crewai', 'langgraph', 'autogen', 'mastra', 'vercel-ai-sdk', 'custom'];
|
|
84
|
+
for (const f of frameworks) {
|
|
85
|
+
expect(SubAgentFrameworkEnum.parse(f)).toBe(f);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
it('should reject invalid framework', () => {
|
|
89
|
+
expect(() => SubAgentFrameworkEnum.parse('langchain')).toThrow();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
describe('AuditCategoryEnum', () => {
|
|
93
|
+
it('should accept all valid categories', () => {
|
|
94
|
+
const cats = ['solid', 'clean-code', 'architecture', 'security', 'performance', 'error-handling', 'testing', 'dry', 'project-rules'];
|
|
95
|
+
for (const c of cats) {
|
|
96
|
+
expect(AuditCategoryEnum.parse(c)).toBe(c);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
it('should reject invalid category', () => {
|
|
100
|
+
expect(() => AuditCategoryEnum.parse('readability')).toThrow();
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('DocumentationTypeEnum', () => {
|
|
104
|
+
it('should accept all valid documentation types', () => {
|
|
105
|
+
const docTypes = [
|
|
106
|
+
'user-guide', 'api-reference', 'readme', 'setup-guide', 'changelog',
|
|
107
|
+
'onboarding', 'faq', 'architecture-doc', 'deployment-guide', 'database-doc',
|
|
108
|
+
'help-articles', 'release-notes', 'runbook', 'security-doc',
|
|
109
|
+
];
|
|
110
|
+
for (const d of docTypes) {
|
|
111
|
+
expect(DocumentationTypeEnum.parse(d)).toBe(d);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
it('should reject invalid documentation type', () => {
|
|
115
|
+
expect(() => DocumentationTypeEnum.parse('wiki')).toThrow();
|
|
116
|
+
});
|
|
117
|
+
it('should have exactly 14 valid values', () => {
|
|
118
|
+
expect(DocumentationTypeEnum.options).toHaveLength(14);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('GitActionEnum', () => {
|
|
122
|
+
it('should accept all valid git actions', () => {
|
|
123
|
+
const actions = ['create-branch', 'generate-pr', 'link-commits', 'generate-changelog', 'setup-hooks', 'check-branch', 'status'];
|
|
124
|
+
for (const a of actions) {
|
|
125
|
+
expect(GitActionEnum.parse(a)).toBe(a);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
it('should reject invalid git action', () => {
|
|
129
|
+
expect(() => GitActionEnum.parse('merge')).toThrow();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('DevLifecycleCategoryEnum', () => {
|
|
133
|
+
it('should accept all valid lifecycle categories', () => {
|
|
134
|
+
const cats = [
|
|
135
|
+
'project_management', 'version_control', 'ci_cd', 'caching',
|
|
136
|
+
'message_queues', 'search', 'file_storage', 'realtime',
|
|
137
|
+
'feature_flags', 'observability', 'analytics', 'testing',
|
|
138
|
+
'security', 'api_documentation', 'design_prototyping',
|
|
139
|
+
'email_sms_notifications', 'payments_billing', 'ai_ml',
|
|
140
|
+
'cdn_edge', 'containerization', 'scheduled_jobs', 'cms',
|
|
141
|
+
'i18n', 'rate_limiting', 'linting_formatting',
|
|
142
|
+
];
|
|
143
|
+
for (const c of cats) {
|
|
144
|
+
expect(DevLifecycleCategoryEnum.parse(c)).toBe(c);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
it('should reject invalid lifecycle category', () => {
|
|
148
|
+
expect(() => DevLifecycleCategoryEnum.parse('deployment')).toThrow();
|
|
149
|
+
});
|
|
150
|
+
it('should have exactly 25 valid values', () => {
|
|
151
|
+
expect(DevLifecycleCategoryEnum.options).toHaveLength(25);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('PMPlatformEnum', () => {
|
|
155
|
+
it('should accept all valid PM platforms', () => {
|
|
156
|
+
const platforms = ['jira', 'linear', 'github', 'trello', 'notion', 'asana', 'clickup'];
|
|
157
|
+
for (const p of platforms) {
|
|
158
|
+
expect(PMPlatformEnum.parse(p)).toBe(p);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
it('should reject invalid PM platform', () => {
|
|
162
|
+
expect(() => PMPlatformEnum.parse('monday')).toThrow();
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
describe('PMActionEnum', () => {
|
|
166
|
+
it('should accept all valid PM actions', () => {
|
|
167
|
+
const actions = ['sync-spec', 'create-issue', 'link-spec', 'update-status'];
|
|
168
|
+
for (const a of actions) {
|
|
169
|
+
expect(PMActionEnum.parse(a)).toBe(a);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
it('should reject invalid PM action', () => {
|
|
173
|
+
expect(() => PMActionEnum.parse('delete-issue')).toThrow();
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
describe('OrchestrateActionEnum', () => {
|
|
177
|
+
it('should accept all valid orchestrate actions', () => {
|
|
178
|
+
const actions = ['register', 'heartbeat', 'lock', 'unlock', 'distribute', 'status', 'resolve-conflict'];
|
|
179
|
+
for (const a of actions) {
|
|
180
|
+
expect(OrchestrateActionEnum.parse(a)).toBe(a);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
it('should reject invalid orchestrate action', () => {
|
|
184
|
+
expect(() => OrchestrateActionEnum.parse('restart')).toThrow();
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('ManageContextActionEnum', () => {
|
|
188
|
+
it('should accept all valid context actions', () => {
|
|
189
|
+
const actions = ['save', 'load', 'list', 'delete', 'cleanup'];
|
|
190
|
+
for (const a of actions) {
|
|
191
|
+
expect(ManageContextActionEnum.parse(a)).toBe(a);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
it('should reject invalid context action', () => {
|
|
195
|
+
expect(() => ManageContextActionEnum.parse('archive')).toThrow();
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('ChecklistFocusEnum', () => {
|
|
199
|
+
it('should accept all valid checklist focus areas', () => {
|
|
200
|
+
const areas = ['completeness', 'consistency', 'feasibility', 'security', 'edge-cases', 'ux'];
|
|
201
|
+
for (const a of areas) {
|
|
202
|
+
expect(ChecklistFocusEnum.parse(a)).toBe(a);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
it('should reject invalid checklist focus', () => {
|
|
206
|
+
expect(() => ChecklistFocusEnum.parse('performance')).toThrow();
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
describe('ChallengeSpecFocusEnum', () => {
|
|
210
|
+
it('should accept all valid challenge focus areas', () => {
|
|
211
|
+
const areas = ['failures', 'concurrency', 'scale', 'security', 'data-consistency'];
|
|
212
|
+
for (const a of areas) {
|
|
213
|
+
expect(ChallengeSpecFocusEnum.parse(a)).toBe(a);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
it('should reject invalid challenge focus', () => {
|
|
217
|
+
expect(() => ChallengeSpecFocusEnum.parse('usability')).toThrow();
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
describe('Zod enums general behavior', () => {
|
|
221
|
+
it('should reject null and undefined for all enums', () => {
|
|
222
|
+
const enums = [
|
|
223
|
+
SupportedLocaleEnum, SpecStatusEnum, SpecTypeEnum, SpecScopeEnum,
|
|
224
|
+
SpecTargetEnum, ExperienceLevelEnum, AgentPlatformEnum,
|
|
225
|
+
SubAgentFrameworkEnum, AuditCategoryEnum, DocumentationTypeEnum,
|
|
226
|
+
GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum,
|
|
227
|
+
PMActionEnum, OrchestrateActionEnum, ManageContextActionEnum,
|
|
228
|
+
ChecklistFocusEnum, ChallengeSpecFocusEnum,
|
|
229
|
+
];
|
|
230
|
+
for (const e of enums) {
|
|
231
|
+
expect(() => e.parse(null)).toThrow();
|
|
232
|
+
expect(() => e.parse(undefined)).toThrow();
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
it('should reject numeric values for all enums', () => {
|
|
236
|
+
const enums = [
|
|
237
|
+
SupportedLocaleEnum, SpecStatusEnum, SpecTypeEnum, SpecScopeEnum,
|
|
238
|
+
SpecTargetEnum, ExperienceLevelEnum, AgentPlatformEnum,
|
|
239
|
+
];
|
|
240
|
+
for (const e of enums) {
|
|
241
|
+
expect(() => e.parse(123)).toThrow();
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
//# sourceMappingURL=schemas.test.js.map
|