specfact-cli 0.37.1__tar.gz → 0.37.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/PKG-INFO +3 -1
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/pyproject.toml +3 -1
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/__init__.py +1 -1
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/__init__.py +1 -1
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/analyze/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/auth/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/contract/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/drift/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/enforce/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/generate/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/import_cmd/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/init/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/migrate/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/module_registry/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/plan/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/project/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/repro/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sdd/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/spec/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sync/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/upgrade/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/validate/module-package.yaml +3 -3
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_installer.py +27 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/startup_checks.py +2 -2
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/.gitignore +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/LICENSE +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/README.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/keys/README.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/keys/module-signing-public.pem +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/mappings/node-async.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/mappings/python-async.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/mappings/speckit-default.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/shared/cli-enforcement.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.01-import.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.02-plan.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.03-review.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.04-sdd.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.05-enforce.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.06-sync.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.07-contracts.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.backlog-add.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.backlog-daily.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.backlog-refine.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.compare.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.sync-backlog.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/prompts/specfact.validate.md +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/schemas/deviation.schema.json +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/schemas/plan.schema.json +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/schemas/protocol.schema.json +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_agile.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_default.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_kanban.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_safe.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_scrum.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/frameworks/safe/safe_feature_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/personas/developer/developer_task_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/github-action.yml.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/persona/architect.md.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/persona/developer.md.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/persona/product-owner.md.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/plan.bundle.yaml.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/policies/kanban.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/policies/mixed.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/policies/safe.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/policies/scrum.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/pr-template.md.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/protocol.yaml.j2 +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/telemetry.yaml.example +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/__main__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/ado.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/backlog_base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/github.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/openspec.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/openspec_parser.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/adapters/speckit.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/analyze_agent.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/plan_agent.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/agents/sync_agent.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/adapters/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/adapters/local_yaml_adapter.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/ai_refiner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/converter.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/filters.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/format_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/formats/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/formats/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/formats/markdown_format.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/formats/structured_format.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/mappers/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/backlog/template_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/cli.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/analyze.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/auth.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/backlog_commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/contract_cmd.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/drift.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/enforce.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/generate.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/import_cmd.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/init.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/migrate.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/plan.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/project_cmd.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/repro.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/sdd.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/spec.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/sync.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/update.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/commands/validate.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/common/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/common/logger_setup.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/common/logging_utils.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/common/text_utils.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/common/utils.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/comparators/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/comparators/plan_comparator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/contracts/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/contracts/crosshair_props.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/contracts/module_interface.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/contract_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/openapi_extractor.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/persona_exporter.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/plan_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/protocol_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/report_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/task_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/test_to_openapi.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/generators/workflow_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/importers/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/importers/speckit_converter.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/importers/speckit_scanner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/integrations/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/integrations/specmatic.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/merge/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/merge/resolver.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/migrations/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/migrations/plan_migrator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/backlog_item.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/bridge.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/capabilities.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/change.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/contract.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/deviation.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/dor_config.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/enforcement.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/module_package.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/persona_template.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/plan.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/project.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/protocol.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/quality.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/sdd.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/source_tracking.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/task.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/models/validation.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modes/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modes/detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modes/router.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/analyze/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/analyze/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/analyze/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/auth/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/auth/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/auth/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/ado.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/github.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/jira.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/adapters/linear.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/contract/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/contract/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/contract/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/drift/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/drift/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/drift/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/enforce/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/enforce/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/enforce/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/generate/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/generate/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/generate/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/import_cmd/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/import_cmd/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/import_cmd/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/init/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/init/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/init/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/migrate/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/migrate/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/migrate/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/module_io_shim.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/module_registry/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/module_registry/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/module_registry/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/commands/apply.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/applier.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/src/patch_mode/pipeline/idempotency.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/plan/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/plan/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/plan/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/policy_config.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/config/templates.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/suggester.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/engine/validator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/main.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/models/policy_result.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/kanban.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/safe.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/policies/scrum.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/policy_engine/src/policy_engine/registry/policy_registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/project/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/project/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/project/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/repro/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/repro/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/repro/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sdd/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sdd/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sdd/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/spec/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/spec/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/spec/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sync/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sync/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sync/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/upgrade/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/upgrade/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/upgrade/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/validate/src/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/validate/src/app.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/validate/src/commands.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/parsers/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/parsers/persona_importer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/bootstrap.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/bridge_registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/crypto_validator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/extension_registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/help_cache.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/marketplace_client.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/metadata.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_discovery.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_lifecycle.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_packages.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_security.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/module_state.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/registry/registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/resources/semgrep/async.yml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/runtime.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/bridge_probe.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/bridge_sync.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/bridge_watch.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/change_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/code_to_spec.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/drift_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/repository_sync.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/spec_to_code.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/spec_to_tests.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/watcher.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/telemetry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/bridge_templates.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/registry.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/templates/specification_templates.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/auth_tokens.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/bundle_converters.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/bundle_loader.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/code_change_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/console.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/content_sanitizer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/context_detection.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/enrichment_context.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/enrichment_parser.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/env_manager.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/feature_keys.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/git.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/github_annotations.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/ide_setup.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/incremental_check.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/metadata.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/optional_deps.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/performance.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/persona_ownership.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/progress.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/prompts.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/sdd_discovery.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/source_scanner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/structure.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/structured_io.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/suggestions.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/terminal.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/utils/yaml_utils.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/agile_validation.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/cli_first_validator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/contract_validator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/fsm.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/repro_checker.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/schema.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/crosshair_summary.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/django.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/frameworks/flask.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/models.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/versioning/__init__.py +0 -0
- {specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/versioning/analyzer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specfact-cli
|
|
3
|
-
Version: 0.37.
|
|
3
|
+
Version: 0.37.2
|
|
4
4
|
Summary: The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases.
|
|
5
5
|
Project-URL: Homepage, https://github.com/nold-ai/specfact-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/nold-ai/specfact-cli.git
|
|
@@ -224,7 +224,9 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
224
224
|
Requires-Python: >=3.11
|
|
225
225
|
Requires-Dist: azure-identity>=1.17.1
|
|
226
226
|
Requires-Dist: beartype>=0.22.4
|
|
227
|
+
Requires-Dist: cffi>=1.17.1
|
|
227
228
|
Requires-Dist: crosshair-tool>=0.0.97
|
|
229
|
+
Requires-Dist: cryptography>=43.0.0
|
|
228
230
|
Requires-Dist: gitpython>=3.1.45
|
|
229
231
|
Requires-Dist: graphviz>=0.20.1
|
|
230
232
|
Requires-Dist: hypothesis>=6.142.4
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specfact-cli"
|
|
7
|
-
version = "0.37.
|
|
7
|
+
version = "0.37.2"
|
|
8
8
|
description = "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -56,6 +56,8 @@ dependencies = [
|
|
|
56
56
|
"PyYAML>=6.0.3",
|
|
57
57
|
"requests>=2.32.3",
|
|
58
58
|
"azure-identity>=1.17.1",
|
|
59
|
+
"cryptography>=43.0.0",
|
|
60
|
+
"cffi>=1.17.1",
|
|
59
61
|
|
|
60
62
|
# CLI framework
|
|
61
63
|
"typer>=0.20.0",
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/analyze/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: analyze
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- analyze
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Analyze codebase quality, contracts, and architecture signals.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:8f0919570eb25f9643f3f4557f40d8137c4754e4422ff71bdbb7ed2aa04e4bff
|
|
19
|
+
signature: 6sTJRGUeApach2vdwQJubd3bHaJm2bu7b46DnUFJGAZ95X6dLMCyuCWVdxTRA6kX3YHblYZD8SfFwAPPsl1KAg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/auth/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: auth
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- auth
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Authenticate SpecFact with supported DevOps providers.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:fd0c9ff643c73a25c229e5925b58446ff25af7ec5ab4412d3eff9704b4cc10c1
|
|
19
|
+
signature: 4KKwmf58+3boa+2jMF9m2NvjGcXB6Jdjfu0C6MV5Io+XjF6FUPyOmf7iz2xH9afgTTeVLVdc7X5EjJJGm5tMAQ==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/backlog/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: backlog
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- backlog
|
|
5
5
|
command_help:
|
|
@@ -28,5 +28,5 @@ publisher:
|
|
|
28
28
|
description: Manage backlog ceremonies, refinement, and dependency insights.
|
|
29
29
|
license: Apache-2.0
|
|
30
30
|
integrity:
|
|
31
|
-
checksum: sha256:
|
|
32
|
-
signature:
|
|
31
|
+
checksum: sha256:6d31c481c40241a744ffa255d29bcf834e5715de310f58f7ebc74e19f1e4fd8d
|
|
32
|
+
signature: 20mO8sayOcVV992iqYROkQL/Q7jxjJE3re1fWYbTLIW7HPskNg1CROpCnaeUv9dr629qPMs/YVlzadMl317VDw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/contract/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: contract
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- contract
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Validate and manage API contracts for project bundles.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:5cc204c3bab58765f19862a6fe2127ddb0b6f0b56422bfc078d69beb91398f0d
|
|
19
|
+
signature: URMN7NMTIsPqZmtcDW4onpaH1Up4kpZaE49iyb3jaqN4x2KuEGDyU4uudhzu/4Pu1DObWu20c+aVfwtj26LbCQ==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/drift/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: drift
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- drift
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Detect and report drift between code, plans, and specs.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:368d6beaf1b4356741c1dbdd8125800e466abb47d8a18e14e2c0f9c66c94397b
|
|
19
|
+
signature: +gU8OTtpxWqIKTk2xoL4Msed1alxTk4soy/HYG4wJuOcwQgaxG7tM/WEWTRMCXHTN4kCiN+3Wqp975FUtW0UDw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/enforce/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: enforce
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- enforce
|
|
5
5
|
command_help:
|
|
@@ -16,5 +16,5 @@ publisher:
|
|
|
16
16
|
description: Apply governance policies and quality gates to bundles.
|
|
17
17
|
license: Apache-2.0
|
|
18
18
|
integrity:
|
|
19
|
-
checksum: sha256:
|
|
20
|
-
signature:
|
|
19
|
+
checksum: sha256:e93b26c59b548af9cc3230b18eb37aff8c3dc85132fed7457f19bdaaaef1e8a0
|
|
20
|
+
signature: TcjUHtOLqZ3TNlUB8cq1gwUJY1qjzQ1z6mh8nokMLp+svvaGVJc6zlkcYTN8InmiCnrUoevfUutuDZvN2gGSDg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/generate/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: generate
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- generate
|
|
5
5
|
command_help:
|
|
@@ -16,5 +16,5 @@ publisher:
|
|
|
16
16
|
description: Generate implementation artifacts from plans and SDD.
|
|
17
17
|
license: Apache-2.0
|
|
18
18
|
integrity:
|
|
19
|
-
checksum: sha256:
|
|
20
|
-
signature:
|
|
19
|
+
checksum: sha256:16e7312d299e4c1c4ceedea2fdcead13ffd81e795e810fbd6ffabb5d0352d744
|
|
20
|
+
signature: mkgqkfF8n6gix2oAlV62FJEwIJfZ0ruiiMLcV5KmiH5v9OmuuHFK4NPZxC7nBbRXWoTz2jPD0uEnsU+DIakbCg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/import_cmd/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: import_cmd
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- import
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Import projects and requirements from code and external tools.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:ed7387b3bc4de4fc6e320b976f180befe49961669c337257851de7da385d9ca4
|
|
19
|
+
signature: j2HV/fWLN7nzmTzWseUIPNv+E0gw5Pif4+a8c6Qe8eHimUxnx6OAauLV9HgawdW9GG52YkDIwpTOkAZ6BBLCBg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/init/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: init
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- init
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Initialize SpecFact workspace and bootstrap local configuration.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:38a3261dd947f5827b1a67b34970c0ab81c13de6d2657d7cf5af694da6da8436
|
|
19
|
+
signature: khTbNy9iE3eXBNWo0+/Cb2B533U1PrLLNKtPnRiJPKNCQTrlfxhWvG+GEcnnFUinSTnfsjY9Of5GJYOuhJyACA==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/migrate/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: migrate
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- migrate
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Migrate project bundles across supported structure versions.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:365f469ff6b6fe9f80cb1cf078adf4da7acceed04c5d18b3a0b37b8c1e58547b
|
|
19
|
+
signature: APKTWd9UPlnBk4ypohLr3qernnOqIWO0sn7ABgozdD62tTqWnZe5lYRk1xJzXFRxCqO+aL+6/Xdcl8M72OfABw==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: module-registry
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- module
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: 'Manage modules: search, list, show, install, and upgrade.'
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:ce1d40c3c62dcd8d15181ff263811a6c28a88070dd672fba74e09eea64a830e6
|
|
19
|
+
signature: TIK6aQt7hyoxM11M8XYByKP7s9DlK7+F1h0mVxCRuQyznTV0Pq8c56XD7if+GhBFptqPB94NwQ36rPdjqOCSDw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/patch_mode/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: patch-mode
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- patch
|
|
5
5
|
command_help:
|
|
@@ -16,5 +16,5 @@ publisher:
|
|
|
16
16
|
description: Prepare, review, and apply structured repository patches safely.
|
|
17
17
|
license: Apache-2.0
|
|
18
18
|
integrity:
|
|
19
|
-
checksum: sha256:
|
|
20
|
-
signature:
|
|
19
|
+
checksum: sha256:afc1985b0a9385055acf7efdf20d314198429bfdbf33a68bfbe8f8add0476456
|
|
20
|
+
signature: qcy6s/cQQ2WKo1wGB+PmAKyTcuWl+JmfHs4afP06420raW9mKV5fuuSTABcYH8V9hblyeloHV+I9YuwieDZhBg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/plan/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: plan
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- plan
|
|
5
5
|
command_help:
|
|
@@ -16,5 +16,5 @@ publisher:
|
|
|
16
16
|
description: Create and manage implementation plans for project execution.
|
|
17
17
|
license: Apache-2.0
|
|
18
18
|
integrity:
|
|
19
|
-
checksum: sha256:
|
|
20
|
-
signature:
|
|
19
|
+
checksum: sha256:60f6ea69f2178bb8395ab19743318849b2caea1aad9a880d230da5c87236fd3e
|
|
20
|
+
signature: luy557R50WTq4gvm3Equ5SV1RMDJOs+szawTwEpgl8eGTuuDd24Nxakb9erW7qzbV5Cn0COsZffUfKvNzH4jBw==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: policy-engine
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- policy
|
|
5
5
|
command_help:
|
|
@@ -19,8 +19,8 @@ publisher:
|
|
|
19
19
|
url: https://github.com/nold-ai/specfact-cli-modules
|
|
20
20
|
email: oss@nold.ai
|
|
21
21
|
integrity:
|
|
22
|
-
checksum: sha256:
|
|
23
|
-
signature:
|
|
22
|
+
checksum: sha256:a239acb53ba59ca7d1f1063c90d60037a2501813d074aae0a4c4590b70a34648
|
|
23
|
+
signature: lG2M7QVkbaomLebkqLH3rRi64YCDGiABkaZfxl8082TSGfIcZ9K0gPXgNeEQZIKVZcVM9UnJe7NZ/fiQXr/JAw==
|
|
24
24
|
dependencies: []
|
|
25
25
|
description: Run policy evaluations with recommendation and compliance outputs.
|
|
26
26
|
license: Apache-2.0
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/project/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: project
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- project
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Manage project bundles, contexts, and lifecycle workflows.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:80789cfb916a67bbbcd2c9416ebae21fe79affb60596d0bc218777c6652cf5d7
|
|
19
|
+
signature: RI2XsxN5BBurAWYlAAYm4amcCWsJ/McnJUqSua/2mDGx/KW7WoXVaMD4xccCatjTDqL6Lr7ctkVh4iQ6wTqoDg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/repro/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: repro
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- repro
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Run reproducible validation and diagnostics workflows end-to-end.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:c319deb6f08acc010d14202ed0d643309b24aaa5399f1c235dd44a388df16ca1
|
|
19
|
+
signature: rk3tPivhE4DLpxNZ7pSodnehc9VwmDBoVp5+7RYcNFQ/vNXeTJ++fiXU1lI6rHHIEf2MZEPqMcZ2UpCkOKBwAg==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sdd/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: sdd
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- sdd
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Create and validate Spec-Driven Development manifests and mappings.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:13fba474517e8c1d74e4972b0d232b074a0b20a2f1860cb2b935f3cf000a682f
|
|
19
|
+
signature: NCuP7ytnX9XbWdlqFCaerqOsRzOiv7atY/w/ibIngAJGpFCelBwLnbf4qGHqMP10oJCAQh2oWV/13mAm6IYpCw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/spec/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: spec
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- spec
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Integrate and run API specification and contract checks.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:9f94350b959ab97fbb309ecdd0aaaf52137ae7cbae16b66078fde7d38406f39c
|
|
19
|
+
signature: +UoWzNOY5pHJzrff3Rt85xnXhae/Tbsxhv4e5oH+siIIcdTjp+8qK9ZESAsT44YgqufcjiRoTi/Ld6z8s675CQ==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/sync/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: sync
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- sync
|
|
5
5
|
command_help:
|
|
@@ -18,5 +18,5 @@ publisher:
|
|
|
18
18
|
description: Synchronize repository state with connected external systems.
|
|
19
19
|
license: Apache-2.0
|
|
20
20
|
integrity:
|
|
21
|
-
checksum: sha256:
|
|
22
|
-
signature:
|
|
21
|
+
checksum: sha256:6fcd7b3d1276c318b6ca94f61df056ebff42ec5d4c6770e5b5c7c396dccdf156
|
|
22
|
+
signature: 6/DQ1LgbzysUep7niPIK9iW/AYd0g4/152yEu0qksuLhPMtC88ghMTgcho1ooBQZjvYuA/T2wOVUcv5Y+UsLBw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/upgrade/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: upgrade
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- upgrade
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Check and apply SpecFact CLI version upgrades.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:c4dd29c7289f946a56e00a9dc408a0d56708fc39a89cd8fd5fddaadb1a56dec5
|
|
19
|
+
signature: 4aNspYwRcNWBnwn3p8tJUfG2BA4ZaXvRNczvjDQXTR/U/SChgMQ0e8B72ujYh0XCLFZLWCW+/kj/w2Y+N8vjCw==
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/src/specfact_cli/modules/validate/module-package.yaml
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: validate
|
|
2
|
-
version: 0.37.
|
|
2
|
+
version: 0.37.2
|
|
3
3
|
commands:
|
|
4
4
|
- validate
|
|
5
5
|
command_help:
|
|
@@ -15,5 +15,5 @@ publisher:
|
|
|
15
15
|
description: Run schema, contract, and workflow validation suites.
|
|
16
16
|
license: Apache-2.0
|
|
17
17
|
integrity:
|
|
18
|
-
checksum: sha256:
|
|
19
|
-
signature:
|
|
18
|
+
checksum: sha256:b1f954e5fef7f8b964299aec54f75b3b24ebc50c24b90db8598fc4b3d8532ee1
|
|
19
|
+
signature: +1azi81aZmGaQxiu4i9gcemRTPyBthDiwP+VWEeK9AGTcTPHjz/meuY3GsO8c33SBVsNltZ3PEggQpw7h8kDCw==
|
|
@@ -7,6 +7,7 @@ import os
|
|
|
7
7
|
import shutil
|
|
8
8
|
import tarfile
|
|
9
9
|
import tempfile
|
|
10
|
+
from functools import lru_cache
|
|
10
11
|
from pathlib import Path
|
|
11
12
|
|
|
12
13
|
import yaml
|
|
@@ -152,6 +153,26 @@ def _module_artifact_payload_stable(package_dir: Path) -> bytes:
|
|
|
152
153
|
return "\n".join(entries).encode("utf-8")
|
|
153
154
|
|
|
154
155
|
|
|
156
|
+
@beartype
|
|
157
|
+
def _is_signature_backend_unavailable(error: ValueError) -> bool:
|
|
158
|
+
"""Return True when signature verification backend is unavailable in runtime."""
|
|
159
|
+
message = str(error)
|
|
160
|
+
return (
|
|
161
|
+
"No module named '_cffi_backend'" in message
|
|
162
|
+
or "requires the 'cryptography' package" in message
|
|
163
|
+
or "Signature verification backend unavailable" in message
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
@lru_cache(maxsize=8)
|
|
168
|
+
def _warn_signature_backend_unavailable_once(error_message: str) -> None:
|
|
169
|
+
"""Emit signature-backend-unavailable warning at most once per distinct message."""
|
|
170
|
+
get_bridge_logger(__name__).warning(
|
|
171
|
+
"Module signature backend unavailable (%s). Falling back to checksum-only verification.",
|
|
172
|
+
error_message,
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
|
|
155
176
|
@beartype
|
|
156
177
|
def install_bundled_module(
|
|
157
178
|
module_name: str,
|
|
@@ -337,6 +358,12 @@ def verify_module_artifact(
|
|
|
337
358
|
try:
|
|
338
359
|
verify_signature(verification_payload, meta.integrity.signature, key_material)
|
|
339
360
|
except ValueError as exc:
|
|
361
|
+
if _is_signature_backend_unavailable(exc):
|
|
362
|
+
if require_signature and not allow_unsigned:
|
|
363
|
+
logger.warning("Module %s: signature is required but backend is unavailable", meta.name)
|
|
364
|
+
return False
|
|
365
|
+
_warn_signature_backend_unavailable_once(str(exc))
|
|
366
|
+
return True
|
|
340
367
|
logger.warning("Module %s: Signature check failed: %s", meta.name, exc)
|
|
341
368
|
return False
|
|
342
369
|
elif require_signature and not allow_unsigned:
|
|
@@ -21,7 +21,7 @@ from rich.panel import Panel
|
|
|
21
21
|
from rich.progress import Progress, SpinnerColumn, TextColumn
|
|
22
22
|
|
|
23
23
|
from specfact_cli import __version__
|
|
24
|
-
from specfact_cli.registry.module_installer import
|
|
24
|
+
from specfact_cli.registry.module_installer import get_outdated_or_missing_bundled_modules
|
|
25
25
|
from specfact_cli.utils.ide_setup import IDE_CONFIG, detect_ide, find_package_resources_path
|
|
26
26
|
from specfact_cli.utils.metadata import (
|
|
27
27
|
get_last_checked_version,
|
|
@@ -287,7 +287,7 @@ def check_module_freshness(repo_path: Path | None = None) -> ModuleFreshnessChec
|
|
|
287
287
|
repo_path = Path.cwd()
|
|
288
288
|
|
|
289
289
|
project_modules_root = repo_path / ".specfact" / "modules"
|
|
290
|
-
user_modules_root =
|
|
290
|
+
user_modules_root = Path.home() / ".specfact" / "modules"
|
|
291
291
|
|
|
292
292
|
project_outdated_modules = get_outdated_or_missing_bundled_modules(project_modules_root)
|
|
293
293
|
user_outdated_modules = get_outdated_or_missing_bundled_modules(user_modules_root)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/defect_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/enabler_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/spike_v1.yaml
RENAMED
|
File without changes
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/defaults/user_story_v1.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{specfact_cli-0.37.1 → specfact_cli-0.37.2}/resources/templates/backlog/field_mappings/ado_safe.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|