soloforge 1.2.19 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -3
- package/dist/adapters/claude_code/claude_md.d.ts +1 -2
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +47 -4
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/adapters/claude_code/hooks.js +2 -1
- package/dist/adapters/claude_code/hooks.js.map +1 -1
- package/dist/adapters/claude_code/server.js +4 -3
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +255 -1
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +981 -7
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts.map +1 -1
- package/dist/adapters/codex/codex_config.js +3 -2
- package/dist/adapters/codex/codex_config.js.map +1 -1
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
- package/dist/adapters/codex/codex_rules.js +2 -1
- package/dist/adapters/codex/codex_rules.js.map +1 -1
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +2 -1
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/adapters/trae/trae_config.d.ts +1 -6
- package/dist/adapters/trae/trae_config.d.ts.map +1 -1
- package/dist/adapters/trae/trae_config.js +3 -2
- package/dist/adapters/trae/trae_config.js.map +1 -1
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +2 -1
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/config_commands.d.ts.map +1 -1
- package/dist/bin/config_commands.js +34 -33
- package/dist/bin/config_commands.js.map +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +1110 -157
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/adapter_prompt_contract.d.ts +60 -0
- package/dist/engine/adapter_prompt_contract.d.ts.map +1 -0
- package/dist/engine/adapter_prompt_contract.js +163 -0
- package/dist/engine/adapter_prompt_contract.js.map +1 -0
- package/dist/engine/architecture_design_contract.d.ts +49 -0
- package/dist/engine/architecture_design_contract.d.ts.map +1 -0
- package/dist/engine/architecture_design_contract.js +169 -0
- package/dist/engine/architecture_design_contract.js.map +1 -0
- package/dist/engine/artifact_contract_registry.d.ts.map +1 -1
- package/dist/engine/artifact_contract_registry.js +7 -14
- package/dist/engine/artifact_contract_registry.js.map +1 -1
- package/dist/engine/{batch1_manifest.d.ts → asset_manifest.d.ts} +8 -8
- package/dist/engine/asset_manifest.d.ts.map +1 -0
- package/dist/engine/{batch1_manifest.js → asset_manifest.js} +52 -9
- package/dist/engine/asset_manifest.js.map +1 -0
- package/dist/engine/audit_pool.d.ts.map +1 -1
- package/dist/engine/audit_pool.js +6 -4
- package/dist/engine/audit_pool.js.map +1 -1
- package/dist/engine/audit_sampler.d.ts.map +1 -1
- package/dist/engine/audit_sampler.js +2 -1
- package/dist/engine/audit_sampler.js.map +1 -1
- package/dist/engine/audit_verifier.d.ts.map +1 -1
- package/dist/engine/audit_verifier.js +5 -4
- package/dist/engine/audit_verifier.js.map +1 -1
- package/dist/engine/brainstorm_contract.d.ts +46 -0
- package/dist/engine/brainstorm_contract.d.ts.map +1 -0
- package/dist/engine/brainstorm_contract.js +136 -0
- package/dist/engine/brainstorm_contract.js.map +1 -0
- package/dist/engine/capability_action_advisor.d.ts.map +1 -1
- package/dist/engine/capability_action_advisor.js +8 -7
- package/dist/engine/capability_action_advisor.js.map +1 -1
- package/dist/engine/capability_registry.d.ts.map +1 -1
- package/dist/engine/capability_registry.js +0 -7
- package/dist/engine/capability_registry.js.map +1 -1
- package/dist/engine/capability_state_store.d.ts.map +1 -1
- package/dist/engine/capability_state_store.js +7 -6
- package/dist/engine/capability_state_store.js.map +1 -1
- package/dist/engine/change_coordinator.d.ts.map +1 -1
- package/dist/engine/change_coordinator.js +4 -3
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/chinese_semantic_priority.d.ts +62 -0
- package/dist/engine/chinese_semantic_priority.d.ts.map +1 -0
- package/dist/engine/chinese_semantic_priority.js +153 -0
- package/dist/engine/chinese_semantic_priority.js.map +1 -0
- package/dist/engine/coding_readiness_gate.d.ts +46 -0
- package/dist/engine/coding_readiness_gate.d.ts.map +1 -0
- package/dist/engine/coding_readiness_gate.js +175 -0
- package/dist/engine/coding_readiness_gate.js.map +1 -0
- package/dist/engine/cognitive_anchor.d.ts.map +1 -1
- package/dist/engine/cognitive_anchor.js +7 -6
- package/dist/engine/cognitive_anchor.js.map +1 -1
- package/dist/engine/command_execution_contract.d.ts.map +1 -1
- package/dist/engine/command_execution_contract.js +13 -12
- package/dist/engine/command_execution_contract.js.map +1 -1
- package/dist/engine/confidence_scorer.d.ts.map +1 -1
- package/dist/engine/confidence_scorer.js +2 -1
- package/dist/engine/confidence_scorer.js.map +1 -1
- package/dist/engine/config_precedence_contract.d.ts.map +1 -1
- package/dist/engine/config_precedence_contract.js +9 -8
- package/dist/engine/config_precedence_contract.js.map +1 -1
- package/dist/engine/conflict_gate.d.ts.map +1 -1
- package/dist/engine/conflict_gate.js +4 -3
- package/dist/engine/conflict_gate.js.map +1 -1
- package/dist/engine/consumable_asset_registry.d.ts +4 -0
- package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
- package/dist/engine/consumable_asset_registry.js +307 -0
- package/dist/engine/consumable_asset_registry.js.map +1 -1
- package/dist/engine/consumption_trace_store.d.ts +50 -0
- package/dist/engine/consumption_trace_store.d.ts.map +1 -0
- package/dist/engine/consumption_trace_store.js +84 -0
- package/dist/engine/consumption_trace_store.js.map +1 -0
- package/dist/engine/contract_guard.d.ts.map +1 -1
- package/dist/engine/contract_guard.js +7 -6
- package/dist/engine/contract_guard.js.map +1 -1
- package/dist/engine/contract_registry.d.ts +113 -0
- package/dist/engine/contract_registry.d.ts.map +1 -0
- package/dist/engine/contract_registry.js +1632 -0
- package/dist/engine/contract_registry.js.map +1 -0
- package/dist/engine/contract_state_store.d.ts +67 -0
- package/dist/engine/contract_state_store.d.ts.map +1 -0
- package/dist/engine/contract_state_store.js +167 -0
- package/dist/engine/contract_state_store.js.map +1 -0
- package/dist/engine/convention_detector.d.ts.map +1 -1
- package/dist/engine/convention_detector.js +4 -3
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/core_engineering_principles.d.ts.map +1 -1
- package/dist/engine/core_engineering_principles.js +4 -14
- package/dist/engine/core_engineering_principles.js.map +1 -1
- package/dist/engine/core_experience_principle.d.ts +194 -0
- package/dist/engine/core_experience_principle.d.ts.map +1 -0
- package/dist/engine/core_experience_principle.js +349 -0
- package/dist/engine/core_experience_principle.js.map +1 -0
- package/dist/engine/debt_reporter.d.ts.map +1 -1
- package/dist/engine/debt_reporter.js +3 -2
- package/dist/engine/debt_reporter.js.map +1 -1
- package/dist/engine/debt_tracker.d.ts.map +1 -1
- package/dist/engine/debt_tracker.js +8 -7
- package/dist/engine/debt_tracker.js.map +1 -1
- package/dist/engine/debug_log.d.ts +4 -1
- package/dist/engine/debug_log.d.ts.map +1 -1
- package/dist/engine/debug_log.js +4 -6
- package/dist/engine/debug_log.js.map +1 -1
- package/dist/engine/debugger.d.ts.map +1 -1
- package/dist/engine/debugger.js +33 -3
- package/dist/engine/debugger.js.map +1 -1
- package/dist/engine/decision_contract.d.ts.map +1 -1
- package/dist/engine/decision_contract.js +4 -3
- package/dist/engine/decision_contract.js.map +1 -1
- package/dist/engine/degradation.d.ts +58 -0
- package/dist/engine/degradation.d.ts.map +1 -0
- package/dist/engine/degradation.js +74 -0
- package/dist/engine/degradation.js.map +1 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +16 -15
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/delivery_readiness.d.ts +70 -0
- package/dist/engine/delivery_readiness.d.ts.map +1 -0
- package/dist/engine/delivery_readiness.js +198 -0
- package/dist/engine/delivery_readiness.js.map +1 -0
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +6 -5
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/deprecated_contract.d.ts +21 -0
- package/dist/engine/deprecated_contract.d.ts.map +1 -0
- package/dist/engine/deprecated_contract.js +14 -0
- package/dist/engine/deprecated_contract.js.map +1 -0
- package/dist/engine/detail_discipline.d.ts +40 -0
- package/dist/engine/detail_discipline.d.ts.map +1 -0
- package/dist/engine/detail_discipline.js +107 -0
- package/dist/engine/detail_discipline.js.map +1 -0
- package/dist/engine/developer_sovereignty.d.ts.map +1 -1
- package/dist/engine/developer_sovereignty.js +6 -5
- package/dist/engine/developer_sovereignty.js.map +1 -1
- package/dist/engine/diagnostic_registry.d.ts +64 -0
- package/dist/engine/diagnostic_registry.d.ts.map +1 -0
- package/dist/engine/diagnostic_registry.js +176 -0
- package/dist/engine/diagnostic_registry.js.map +1 -0
- package/dist/engine/diff_ownership.d.ts.map +1 -1
- package/dist/engine/diff_ownership.js +9 -8
- package/dist/engine/diff_ownership.js.map +1 -1
- package/dist/engine/diff_ownership_store.d.ts.map +1 -1
- package/dist/engine/diff_ownership_store.js +8 -7
- package/dist/engine/diff_ownership_store.js.map +1 -1
- package/dist/engine/documentation_governance.d.ts +55 -0
- package/dist/engine/documentation_governance.d.ts.map +1 -0
- package/dist/engine/documentation_governance.js +249 -0
- package/dist/engine/documentation_governance.js.map +1 -0
- package/dist/engine/dual_layer_mechanism_registry.d.ts +6 -4
- package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js +731 -11
- package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
- package/dist/engine/enforcement_guard.d.ts +84 -0
- package/dist/engine/enforcement_guard.d.ts.map +1 -0
- package/dist/engine/enforcement_guard.js +319 -0
- package/dist/engine/enforcement_guard.js.map +1 -0
- package/dist/engine/escape_report.d.ts.map +1 -1
- package/dist/engine/escape_report.js +4 -3
- package/dist/engine/escape_report.js.map +1 -1
- package/dist/engine/evolution_regression_gate.d.ts +42 -0
- package/dist/engine/evolution_regression_gate.d.ts.map +1 -0
- package/dist/engine/evolution_regression_gate.js +159 -0
- package/dist/engine/evolution_regression_gate.js.map +1 -0
- package/dist/engine/existing_system_analysis.d.ts +37 -0
- package/dist/engine/existing_system_analysis.d.ts.map +1 -0
- package/dist/engine/existing_system_analysis.js +151 -0
- package/dist/engine/existing_system_analysis.js.map +1 -0
- package/dist/engine/exploration.d.ts.map +1 -1
- package/dist/engine/exploration.js +7 -6
- package/dist/engine/exploration.js.map +1 -1
- package/dist/engine/extension_contract.d.ts +50 -0
- package/dist/engine/extension_contract.d.ts.map +1 -0
- package/dist/engine/extension_contract.js +158 -0
- package/dist/engine/extension_contract.js.map +1 -0
- package/dist/engine/extension_platform_contracts.d.ts +712 -0
- package/dist/engine/extension_platform_contracts.d.ts.map +1 -0
- package/dist/engine/extension_platform_contracts.js +42 -0
- package/dist/engine/extension_platform_contracts.js.map +1 -0
- package/dist/engine/extension_scenario_registry.d.ts +30 -0
- package/dist/engine/extension_scenario_registry.d.ts.map +1 -0
- package/dist/engine/extension_scenario_registry.js +976 -0
- package/dist/engine/extension_scenario_registry.js.map +1 -0
- package/dist/engine/failure_classifier.d.ts.map +1 -1
- package/dist/engine/failure_classifier.js +9 -8
- package/dist/engine/failure_classifier.js.map +1 -1
- package/dist/engine/failure_report.d.ts +74 -0
- package/dist/engine/failure_report.d.ts.map +1 -0
- package/dist/engine/failure_report.js +143 -0
- package/dist/engine/failure_report.js.map +1 -0
- package/dist/engine/feasibility_checker.d.ts.map +1 -1
- package/dist/engine/feasibility_checker.js +5 -4
- package/dist/engine/feasibility_checker.js.map +1 -1
- package/dist/engine/first_principles.d.ts +35 -0
- package/dist/engine/first_principles.d.ts.map +1 -0
- package/dist/engine/first_principles.js +128 -0
- package/dist/engine/first_principles.js.map +1 -0
- package/dist/engine/{batch1_scenario_registry.d.ts → foundation_scenario_registry.d.ts} +15 -15
- package/dist/engine/foundation_scenario_registry.d.ts.map +1 -0
- package/dist/engine/{batch1_scenario_registry.js → foundation_scenario_registry.js} +22 -25
- package/dist/engine/foundation_scenario_registry.js.map +1 -0
- package/dist/engine/{batch1_scenario_runners.d.ts → foundation_scenario_runners.d.ts} +1 -1
- package/dist/engine/foundation_scenario_runners.d.ts.map +1 -0
- package/dist/engine/{batch1_scenario_runners.js → foundation_scenario_runners.js} +8 -7
- package/dist/engine/foundation_scenario_runners.js.map +1 -0
- package/dist/engine/git_deps.d.ts.map +1 -1
- package/dist/engine/git_deps.js +2 -1
- package/dist/engine/git_deps.js.map +1 -1
- package/dist/engine/governance_report.d.ts +9 -1
- package/dist/engine/governance_report.d.ts.map +1 -1
- package/dist/engine/governance_report.js +25 -10
- package/dist/engine/governance_report.js.map +1 -1
- package/dist/engine/impact_analyzer.d.ts.map +1 -1
- package/dist/engine/impact_analyzer.js +5 -4
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/implementation_roadmap_registry.d.ts +1 -1
- package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
- package/dist/engine/implementation_roadmap_registry.js +237 -92
- package/dist/engine/implementation_roadmap_registry.js.map +1 -1
- package/dist/engine/input_material_contract_registry.d.ts.map +1 -1
- package/dist/engine/input_material_contract_registry.js +4 -3
- package/dist/engine/input_material_contract_registry.js.map +1 -1
- package/dist/engine/instruction_contract.d.ts +68 -0
- package/dist/engine/instruction_contract.d.ts.map +1 -0
- package/dist/engine/instruction_contract.js +123 -0
- package/dist/engine/instruction_contract.js.map +1 -0
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +339 -1
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/intent_router.d.ts +11 -2
- package/dist/engine/intent_router.d.ts.map +1 -1
- package/dist/engine/intent_router.js +121 -1
- package/dist/engine/intent_router.js.map +1 -1
- package/dist/engine/intent_signal_extractor.d.ts +3 -0
- package/dist/engine/intent_signal_extractor.d.ts.map +1 -1
- package/dist/engine/intent_signal_extractor.js +49 -0
- package/dist/engine/intent_signal_extractor.js.map +1 -1
- package/dist/engine/io_controller.d.ts.map +1 -1
- package/dist/engine/io_controller.js +8 -7
- package/dist/engine/io_controller.js.map +1 -1
- package/dist/engine/java_quality_guard.d.ts.map +1 -1
- package/dist/engine/java_quality_guard.js +5 -18
- package/dist/engine/java_quality_guard.js.map +1 -1
- package/dist/engine/job_manager.d.ts.map +1 -1
- package/dist/engine/job_manager.js +8 -7
- package/dist/engine/job_manager.js.map +1 -1
- package/dist/engine/knowledge_acceptance_registry.d.ts +35 -0
- package/dist/engine/knowledge_acceptance_registry.d.ts.map +1 -0
- package/dist/engine/knowledge_acceptance_registry.js +271 -0
- package/dist/engine/knowledge_acceptance_registry.js.map +1 -0
- package/dist/engine/knowledge_asset_audit.d.ts +65 -0
- package/dist/engine/knowledge_asset_audit.d.ts.map +1 -0
- package/dist/engine/knowledge_asset_audit.js +230 -0
- package/dist/engine/knowledge_asset_audit.js.map +1 -0
- package/dist/engine/knowledge_asset_consumer.d.ts +150 -0
- package/dist/engine/knowledge_asset_consumer.d.ts.map +1 -0
- package/dist/engine/knowledge_asset_consumer.js +279 -0
- package/dist/engine/knowledge_asset_consumer.js.map +1 -0
- package/dist/engine/knowledge_asset_generation_gate.d.ts +38 -0
- package/dist/engine/knowledge_asset_generation_gate.d.ts.map +1 -0
- package/dist/engine/knowledge_asset_generation_gate.js +131 -0
- package/dist/engine/knowledge_asset_generation_gate.js.map +1 -0
- package/dist/engine/knowledge_asset_migration.d.ts +117 -0
- package/dist/engine/knowledge_asset_migration.d.ts.map +1 -0
- package/dist/engine/knowledge_asset_migration.js +204 -0
- package/dist/engine/knowledge_asset_migration.js.map +1 -0
- package/dist/engine/knowledge_asset_schema.d.ts +97 -0
- package/dist/engine/knowledge_asset_schema.d.ts.map +1 -0
- package/dist/engine/knowledge_asset_schema.js +413 -0
- package/dist/engine/knowledge_asset_schema.js.map +1 -0
- package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
- package/dist/engine/knowledge_config_loader.js +5 -4
- package/dist/engine/knowledge_config_loader.js.map +1 -1
- package/dist/engine/knowledge_consumption_snapshot.d.ts +91 -0
- package/dist/engine/knowledge_consumption_snapshot.d.ts.map +1 -0
- package/dist/engine/knowledge_consumption_snapshot.js +113 -0
- package/dist/engine/knowledge_consumption_snapshot.js.map +1 -0
- package/dist/engine/knowledge_evolution.d.ts +82 -0
- package/dist/engine/knowledge_evolution.d.ts.map +1 -0
- package/dist/engine/knowledge_evolution.js +272 -0
- package/dist/engine/knowledge_evolution.js.map +1 -0
- package/dist/engine/knowledge_lifecycle.d.ts +83 -0
- package/dist/engine/knowledge_lifecycle.d.ts.map +1 -0
- package/dist/engine/knowledge_lifecycle.js +247 -0
- package/dist/engine/knowledge_lifecycle.js.map +1 -0
- package/dist/engine/knowledge_manager.d.ts.map +1 -1
- package/dist/engine/knowledge_manager.js +9 -8
- package/dist/engine/knowledge_manager.js.map +1 -1
- package/dist/engine/knowledge_scenario_registry.d.ts +21 -0
- package/dist/engine/knowledge_scenario_registry.d.ts.map +1 -0
- package/dist/engine/knowledge_scenario_registry.js +337 -0
- package/dist/engine/knowledge_scenario_registry.js.map +1 -0
- package/dist/engine/knowledge_sovereignty.d.ts.map +1 -1
- package/dist/engine/knowledge_sovereignty.js +5 -4
- package/dist/engine/knowledge_sovereignty.js.map +1 -1
- package/dist/engine/knowledge_template_contracts.d.ts +244 -0
- package/dist/engine/knowledge_template_contracts.d.ts.map +1 -0
- package/dist/engine/knowledge_template_contracts.js +26 -0
- package/dist/engine/knowledge_template_contracts.js.map +1 -0
- package/dist/engine/language_policy.d.ts +78 -0
- package/dist/engine/language_policy.d.ts.map +1 -0
- package/dist/engine/language_policy.js +139 -0
- package/dist/engine/language_policy.js.map +1 -0
- package/dist/engine/language_policy_contract.d.ts +52 -0
- package/dist/engine/language_policy_contract.d.ts.map +1 -0
- package/dist/engine/language_policy_contract.js +78 -0
- package/dist/engine/language_policy_contract.js.map +1 -0
- package/dist/engine/llm_gateway.d.ts.map +1 -1
- package/dist/engine/llm_gateway.js +10 -9
- package/dist/engine/llm_gateway.js.map +1 -1
- package/dist/engine/local_docker_acceptance.d.ts +94 -0
- package/dist/engine/local_docker_acceptance.d.ts.map +1 -0
- package/dist/engine/local_docker_acceptance.js +312 -0
- package/dist/engine/local_docker_acceptance.js.map +1 -0
- package/dist/engine/logger.d.ts +64 -0
- package/dist/engine/logger.d.ts.map +1 -0
- package/dist/engine/logger.js +115 -0
- package/dist/engine/logger.js.map +1 -0
- package/dist/engine/main_path_integration_contract.d.ts.map +1 -1
- package/dist/engine/main_path_integration_contract.js +43 -42
- package/dist/engine/main_path_integration_contract.js.map +1 -1
- package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
- package/dist/engine/mechanism_contract_registry.js +448 -17
- package/dist/engine/mechanism_contract_registry.js.map +1 -1
- package/dist/engine/mechanism_family_registry.d.ts +48 -0
- package/dist/engine/mechanism_family_registry.d.ts.map +1 -0
- package/dist/engine/mechanism_family_registry.js +197 -0
- package/dist/engine/mechanism_family_registry.js.map +1 -0
- package/dist/engine/metric_governance.d.ts +51 -0
- package/dist/engine/metric_governance.d.ts.map +1 -0
- package/dist/engine/metric_governance.js +138 -0
- package/dist/engine/metric_governance.js.map +1 -0
- package/dist/engine/migration_guard.d.ts.map +1 -1
- package/dist/engine/migration_guard.js +6 -5
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/mutation_audit.d.ts.map +1 -1
- package/dist/engine/mutation_audit.js +6 -5
- package/dist/engine/mutation_audit.js.map +1 -1
- package/dist/engine/observability.d.ts +11 -0
- package/dist/engine/observability.d.ts.map +1 -1
- package/dist/engine/observability.js +60 -8
- package/dist/engine/observability.js.map +1 -1
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +17 -16
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/plan_proposal_gate.d.ts +131 -0
- package/dist/engine/plan_proposal_gate.d.ts.map +1 -0
- package/dist/engine/plan_proposal_gate.js +340 -0
- package/dist/engine/plan_proposal_gate.js.map +1 -0
- package/dist/engine/platform_context.d.ts +44 -0
- package/dist/engine/platform_context.d.ts.map +1 -0
- package/dist/engine/platform_context.js +165 -0
- package/dist/engine/platform_context.js.map +1 -0
- package/dist/engine/policy_drift_detector.d.ts +20 -0
- package/dist/engine/policy_drift_detector.d.ts.map +1 -1
- package/dist/engine/policy_drift_detector.js +85 -5
- package/dist/engine/policy_drift_detector.js.map +1 -1
- package/dist/engine/regression_matrix.d.ts.map +1 -1
- package/dist/engine/regression_matrix.js +15 -14
- package/dist/engine/regression_matrix.js.map +1 -1
- package/dist/engine/release_compatibility.d.ts +62 -0
- package/dist/engine/release_compatibility.d.ts.map +1 -0
- package/dist/engine/release_compatibility.js +145 -0
- package/dist/engine/release_compatibility.js.map +1 -0
- package/dist/engine/release_gate.d.ts +29 -0
- package/dist/engine/release_gate.d.ts.map +1 -0
- package/dist/engine/release_gate.js +675 -0
- package/dist/engine/release_gate.js.map +1 -0
- package/dist/engine/release_gate_scenario_registry.d.ts +50 -0
- package/dist/engine/release_gate_scenario_registry.d.ts.map +1 -0
- package/dist/engine/release_gate_scenario_registry.js +514 -0
- package/dist/engine/release_gate_scenario_registry.js.map +1 -0
- package/dist/engine/release_readiness_gate.d.ts +36 -0
- package/dist/engine/release_readiness_gate.d.ts.map +1 -0
- package/dist/engine/release_readiness_gate.js +1050 -0
- package/dist/engine/release_readiness_gate.js.map +1 -0
- package/dist/engine/retention_policy.d.ts +46 -0
- package/dist/engine/retention_policy.d.ts.map +1 -0
- package/dist/engine/retention_policy.js +124 -0
- package/dist/engine/retention_policy.js.map +1 -0
- package/dist/engine/risk_sampler.d.ts.map +1 -1
- package/dist/engine/risk_sampler.js +4 -3
- package/dist/engine/risk_sampler.js.map +1 -1
- package/dist/engine/runtime_safety.d.ts.map +1 -1
- package/dist/engine/runtime_safety.js +18 -17
- package/dist/engine/runtime_safety.js.map +1 -1
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +4 -3
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/scope_lease.d.ts.map +1 -1
- package/dist/engine/scope_lease.js +4 -3
- package/dist/engine/scope_lease.js.map +1 -1
- package/dist/engine/semantic_evidence.d.ts.map +1 -1
- package/dist/engine/semantic_evidence.js +4 -3
- package/dist/engine/semantic_evidence.js.map +1 -1
- package/dist/engine/state_fact_classifier.d.ts +47 -0
- package/dist/engine/state_fact_classifier.d.ts.map +1 -0
- package/dist/engine/state_fact_classifier.js +158 -0
- package/dist/engine/state_fact_classifier.js.map +1 -0
- package/dist/engine/state_update_bypass.d.ts +19 -0
- package/dist/engine/state_update_bypass.d.ts.map +1 -0
- package/dist/engine/state_update_bypass.js +17 -0
- package/dist/engine/state_update_bypass.js.map +1 -0
- package/dist/engine/task_context.d.ts +25 -3
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +132 -35
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/task_planner.d.ts.map +1 -1
- package/dist/engine/task_planner.js +6 -5
- package/dist/engine/task_planner.js.map +1 -1
- package/dist/engine/team_awareness.d.ts.map +1 -1
- package/dist/engine/team_awareness.js +2 -1
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/technology_decision.d.ts +38 -0
- package/dist/engine/technology_decision.d.ts.map +1 -0
- package/dist/engine/technology_decision.js +120 -0
- package/dist/engine/technology_decision.js.map +1 -0
- package/dist/engine/template_manifest_io.d.ts +47 -0
- package/dist/engine/template_manifest_io.d.ts.map +1 -0
- package/dist/engine/template_manifest_io.js +151 -0
- package/dist/engine/template_manifest_io.js.map +1 -0
- package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
- package/dist/engine/template_mechanism_auditor.js +5 -4
- package/dist/engine/template_mechanism_auditor.js.map +1 -1
- package/dist/engine/template_sync.d.ts +98 -0
- package/dist/engine/template_sync.d.ts.map +1 -0
- package/dist/engine/template_sync.js +355 -0
- package/dist/engine/template_sync.js.map +1 -0
- package/dist/engine/test_generator.d.ts.map +1 -1
- package/dist/engine/test_generator.js +5 -4
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/test_quality.d.ts.map +1 -1
- package/dist/engine/test_quality.js +5 -4
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/test_strategy.d.ts +58 -0
- package/dist/engine/test_strategy.d.ts.map +1 -0
- package/dist/engine/test_strategy.js +93 -0
- package/dist/engine/test_strategy.js.map +1 -0
- package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.js +43 -32
- package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
- package/dist/engine/traceability.d.ts.map +1 -1
- package/dist/engine/traceability.js +6 -5
- package/dist/engine/traceability.js.map +1 -1
- package/dist/engine/user_feedback_contract.d.ts.map +1 -1
- package/dist/engine/user_feedback_contract.js +81 -19
- package/dist/engine/user_feedback_contract.js.map +1 -1
- package/dist/engine/user_promise.d.ts +67 -0
- package/dist/engine/user_promise.d.ts.map +1 -0
- package/dist/engine/user_promise.js +436 -0
- package/dist/engine/user_promise.js.map +1 -0
- package/dist/engine/verification_contract.d.ts +132 -0
- package/dist/engine/verification_contract.d.ts.map +1 -0
- package/dist/engine/verification_contract.js +296 -0
- package/dist/engine/verification_contract.js.map +1 -0
- package/dist/engine/verifier.d.ts +6 -10
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +149 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
- package/dist/engine/workflow_contract_registry.js +127 -10
- package/dist/engine/workflow_contract_registry.js.map +1 -1
- package/dist/engine/workflow_template_pack.d.ts +71 -0
- package/dist/engine/workflow_template_pack.d.ts.map +1 -0
- package/dist/engine/workflow_template_pack.js +246 -0
- package/dist/engine/workflow_template_pack.js.map +1 -0
- package/dist/engine/workspace_lease.d.ts +69 -0
- package/dist/engine/workspace_lease.d.ts.map +1 -0
- package/dist/engine/workspace_lease.js +153 -0
- package/dist/engine/workspace_lease.js.map +1 -0
- package/dist/engine/workspace_resumer.d.ts.map +1 -1
- package/dist/engine/workspace_resumer.js +9 -8
- package/dist/engine/workspace_resumer.js.map +1 -1
- package/dist/engine/zero_config_init.d.ts.map +1 -1
- package/dist/engine/zero_config_init.js +16 -15
- package/dist/engine/zero_config_init.js.map +1 -1
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +18 -17
- package/dist/git/operations.js.map +1 -1
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/knowledge/conflict_detector.d.ts.map +1 -1
- package/dist/knowledge/conflict_detector.js +2 -1
- package/dist/knowledge/conflict_detector.js.map +1 -1
- package/dist/knowledge/health_checker.d.ts.map +1 -1
- package/dist/knowledge/health_checker.js +5 -4
- package/dist/knowledge/health_checker.js.map +1 -1
- package/dist/knowledge/index_manager.js +4 -4
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +20 -14
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/knowledge/writer.d.ts.map +1 -1
- package/dist/knowledge/writer.js +7 -6
- package/dist/knowledge/writer.js.map +1 -1
- package/dist/types.d.ts +34 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -4
- package/templates/knowledge/acceptance_templates/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -3
- package/templates/knowledge/acceptance_templates//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +31 -3
- package/templates/knowledge/acceptance_templates//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -3
- package/templates/knowledge/acceptance_templates//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -3
- package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +26 -3
- package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +28 -3
- package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +26 -3
- package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +31 -3
- package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +26 -3
- package/templates/knowledge/acceptance_templates//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -3
- package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
- package/templates/knowledge/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -0
- package/templates/knowledge/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +30 -8
- package/templates/knowledge/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -0
- package/templates/knowledge/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -0
- package/templates/knowledge/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -0
- package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +29 -0
- package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -0
- package/templates/knowledge/domain//345/244/232/347/247/237/346/210/267.md +28 -3
- package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +27 -3
- package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +30 -3
- package/templates/knowledge/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +32 -3
- package/templates/knowledge/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +31 -3
- package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +31 -3
- package/templates/knowledge/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +28 -3
- package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +30 -3
- package/templates/knowledge/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +31 -3
- package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +24 -7
- package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +25 -7
- package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +24 -7
- package/templates/knowledge/patterns/core//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +24 -7
- package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +25 -7
- package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +24 -7
- package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +25 -7
- package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +24 -7
- package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +26 -7
- package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +25 -7
- package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +24 -7
- package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +24 -7
- package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +24 -7
- package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +26 -7
- package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +26 -7
- package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +24 -7
- package/templates/knowledge/patterns/core//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +25 -7
- package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +25 -7
- package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +25 -7
- package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +24 -7
- package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +25 -7
- package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +24 -7
- package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +24 -7
- package/templates/knowledge/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +29 -3
- package/templates/knowledge/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +33 -0
- package/templates/knowledge/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +34 -0
- package/templates/knowledge/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +29 -3
- package/templates/knowledge/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +99 -0
- package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +95 -0
- package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +91 -0
- package/templates/knowledge/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +97 -0
- package/templates/knowledge/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +33 -0
- package/templates/knowledge/procedures//347/274/272/351/231/267/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +30 -3
- package/templates/knowledge/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +30 -3
- package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +30 -3
- package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
- package/templates/knowledge/review_rules//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
- package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +23 -3
- package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
- package/templates/knowledge/review_rules//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +23 -3
- package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
- package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
- package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +65 -0
- package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md +38 -0
- package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +38 -0
- package/templates/knowledge/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +64 -0
- package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +49 -0
- package/templates/knowledge/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +50 -0
- package/templates/knowledge/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +35 -0
- package/templates/knowledge/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/350/247/204/345/210/231.md +51 -0
- package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +74 -0
- package/templates/knowledge/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +35 -0
- package/templates/knowledge/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +61 -0
- package/templates/knowledge/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +73 -0
- package/templates/knowledge/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +67 -0
- package/templates/knowledge/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +66 -0
- package/templates/knowledge/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +59 -0
- package/templates/knowledge/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +38 -0
- package/templates/knowledge/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +35 -0
- package/templates/knowledge/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
- package/templates/knowledge/templates//345/256/241/346/237/245/346/221/230/350/246/201.md +26 -7
- package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +30 -3
- package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +29 -3
- package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +33 -3
- package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +31 -3
- package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +30 -3
- package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +31 -3
- package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +31 -3
- package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +30 -3
- package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +30 -3
- package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +31 -3
- package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +30 -3
- package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
- package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +33 -3
- package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +28 -3
- package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +32 -3
- package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +30 -3
- package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +34 -3
- package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +32 -3
- package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +30 -3
- package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +28 -3
- package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +32 -3
- package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +30 -3
- package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +34 -3
- package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +29 -3
- package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +33 -3
- package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +34 -3
- package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +30 -3
- package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +30 -3
- package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +34 -3
- package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +28 -3
- package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
- package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +32 -3
- package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +29 -3
- package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +32 -3
- package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
- package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
- package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +30 -3
- package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +31 -3
- package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +33 -3
- package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +30 -3
- package/dist/engine/batch1_manifest.d.ts.map +0 -1
- package/dist/engine/batch1_manifest.js.map +0 -1
- package/dist/engine/batch1_scenario_registry.d.ts.map +0 -1
- package/dist/engine/batch1_scenario_registry.js.map +0 -1
- package/dist/engine/batch1_scenario_runners.d.ts.map +0 -1
- package/dist/engine/batch1_scenario_runners.js.map +0 -1
|
@@ -2,6 +2,7 @@ import fs from "node:fs/promises";
|
|
|
2
2
|
import fss from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import crypto from "node:crypto";
|
|
5
|
+
import { debug } from "./logger.js";
|
|
5
6
|
/**
|
|
6
7
|
* 技术债务追踪模块 — 持久化存储、查询、统计和清理技术债务条目。
|
|
7
8
|
* 基于文件系统实现(JSON 单文件存储),零外部依赖。
|
|
@@ -61,7 +62,7 @@ export class DebtTracker {
|
|
|
61
62
|
// 原子写入:先写入临时文件,再重命名为目标文件,防止写入中断导致数据损坏
|
|
62
63
|
await fs.writeFile(tmpPath, JSON.stringify(item, null, 2));
|
|
63
64
|
await fs.rename(tmpPath, filePath);
|
|
64
|
-
|
|
65
|
+
debug("债务追踪", `记录新债务 ${id} [${item.category}] ${item.title}`);
|
|
65
66
|
return id;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
@@ -82,7 +83,7 @@ export class DebtTracker {
|
|
|
82
83
|
items.push(item);
|
|
83
84
|
}
|
|
84
85
|
catch (e) {
|
|
85
|
-
|
|
86
|
+
debug("债务追踪", "读取文件错误 —", e);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
// 按发现时间升序排列,最早的债务排在前面
|
|
@@ -93,14 +94,14 @@ export class DebtTracker {
|
|
|
93
94
|
*/
|
|
94
95
|
async acknowledge(debtId) {
|
|
95
96
|
await this.updateStatus(debtId, "acknowledged");
|
|
96
|
-
|
|
97
|
+
debug("债务追踪", `债务 ${debtId} 已标记为「已确认」`);
|
|
97
98
|
}
|
|
98
99
|
/** 将指定债务标记为「已解决」(resolved),同时记录解决时间。
|
|
99
100
|
* @param debtId - 债务条目 ID
|
|
100
101
|
*/
|
|
101
102
|
async resolve(debtId) {
|
|
102
103
|
await this.updateStatus(debtId, "resolved", new Date().toISOString());
|
|
103
|
-
|
|
104
|
+
debug("债务追踪", `债务 ${debtId} 已标记为「已解决」`);
|
|
104
105
|
}
|
|
105
106
|
/**
|
|
106
107
|
* 按债务类别统计未解决的条目数量。
|
|
@@ -141,7 +142,7 @@ export class DebtTracker {
|
|
|
141
142
|
resolved++;
|
|
142
143
|
}
|
|
143
144
|
catch (e) {
|
|
144
|
-
|
|
145
|
+
debug("债务追踪", "读取文件错误 —", e);
|
|
145
146
|
}
|
|
146
147
|
}
|
|
147
148
|
// 净增量 = 新增 - 已解决;正值表示债务在增长
|
|
@@ -191,11 +192,11 @@ export class DebtTracker {
|
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
catch (e) {
|
|
194
|
-
|
|
195
|
+
debug("债务追踪", "读取文件错误 —", e);
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
if (removed > 0) {
|
|
198
|
-
|
|
199
|
+
debug("债务追踪", `清理完成,删除 ${removed} 条过期已解决债务`);
|
|
199
200
|
}
|
|
200
201
|
return removed;
|
|
201
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debt_tracker.js","sourceRoot":"","sources":["../../src/engine/debt_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"debt_tracker.js","sourceRoot":"","sources":["../../src/engine/debt_tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug_log.d.ts","sourceRoot":"","sources":["../../src/engine/debug_log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug_log.d.ts","sourceRoot":"","sources":["../../src/engine/debug_log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/engine/debug_log.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
console.error("[soloForge]", ...args);
|
|
6
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated 使用 logger.ts 中的 debug() 或 debugLog()
|
|
3
|
+
*/
|
|
4
|
+
export { debugLog } from "./logger.js";
|
|
7
5
|
//# sourceMappingURL=debug_log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug_log.js","sourceRoot":"","sources":["../../src/engine/debug_log.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"debug_log.js","sourceRoot":"","sources":["../../src/engine/debug_log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../src/engine/debugger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"debugger.d.ts","sourceRoot":"","sources":["../../src/engine/debugger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,aAAa,CAAC;AAgcrB;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,YAAY,CAwBd"}
|
package/dist/engine/debugger.js
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { debug } from "./logger.js";
|
|
3
|
+
// 敏感内容模式 — 与 failure_report.ts 保持一致
|
|
4
|
+
const SENSITIVE_PATTERNS = [
|
|
5
|
+
/sk-[a-zA-Z0-9]{20,}/g,
|
|
6
|
+
/\b\d{11}\b/g,
|
|
7
|
+
/password\s*[:=]\s*\S+/gi,
|
|
8
|
+
/secret\s*[:=]\s*\S+/gi,
|
|
9
|
+
/api_key\s*[:=]\s*\S+/gi,
|
|
10
|
+
/token\s*[:=]\s*\S+/gi,
|
|
11
|
+
/raw_stdout/gi,
|
|
12
|
+
/raw_stderr/gi,
|
|
13
|
+
];
|
|
14
|
+
function redactErrorOutputForDebug(raw) {
|
|
15
|
+
let result = raw;
|
|
16
|
+
for (const pattern of SENSITIVE_PATTERNS) {
|
|
17
|
+
result = result.replace(pattern, "[REDACTED]");
|
|
18
|
+
}
|
|
19
|
+
if (result.length > 500) {
|
|
20
|
+
result = result.substring(0, 500) + "...[truncated]";
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
function stableHashForDebug(content) {
|
|
25
|
+
return createHash("sha256").update(content).digest("hex").substring(0, 16);
|
|
26
|
+
}
|
|
1
27
|
/**
|
|
2
28
|
* 调试器 — 对错误输出执行六步调试流水线分析。
|
|
3
29
|
*
|
|
@@ -365,16 +391,20 @@ function suggestTests(errorType) {
|
|
|
365
391
|
* @returns 完整的调试会话对象
|
|
366
392
|
*/
|
|
367
393
|
export function debugError(errorOutput, taskId, projectScope) {
|
|
368
|
-
|
|
394
|
+
debug("调试器", `开始分析任务 ${taskId} 的错误`);
|
|
369
395
|
const parsed_error = parseError(errorOutput);
|
|
370
396
|
const call_chain = extractCallChain(errorOutput, projectScope);
|
|
371
397
|
const root_cause = analyzeRootCause(errorOutput, parsed_error);
|
|
372
398
|
const fix_proposal = proposeFix(parsed_error, call_chain, root_cause);
|
|
373
399
|
const test_supplement = suggestTests(parsed_error.error_type);
|
|
374
|
-
|
|
400
|
+
debug("调试器", `任务 ${taskId} 分析完成 — 错误类型: ${parsed_error.error_type},根因: ${root_cause.failure_type},置信度: ${root_cause.confidence}`);
|
|
401
|
+
// 脱敏 — 不保留 raw error_output,只存脱敏摘要 + hash
|
|
402
|
+
const redacted = redactErrorOutputForDebug(errorOutput);
|
|
403
|
+
const hash = stableHashForDebug(errorOutput);
|
|
375
404
|
return {
|
|
376
405
|
task_id: taskId,
|
|
377
|
-
error_output:
|
|
406
|
+
error_output: redacted,
|
|
407
|
+
error_output_hash: hash,
|
|
378
408
|
parsed_error,
|
|
379
409
|
call_chain,
|
|
380
410
|
root_cause,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/engine/debugger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/engine/debugger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision_contract.d.ts","sourceRoot":"","sources":["../../src/engine/decision_contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decision_contract.d.ts","sourceRoot":"","sources":["../../src/engine/decision_contract.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH;;;;GAIG;AACH,eAAO,MAAM,eAAe,qOAWlB,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa;IACb,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,CA0B9F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { debug } from "./logger.js";
|
|
1
2
|
/**
|
|
2
3
|
* 默认决策输出契约 — advisory 状态。
|
|
3
4
|
* 校验 sf_expand / sf_review / sf_analyze / sf_explore 的输出是否包含
|
|
@@ -29,7 +30,7 @@ export const DECISION_FIELDS = [
|
|
|
29
30
|
* @returns 校验结果,包含是否通过、缺失字段、覆盖率和各字段存在状态
|
|
30
31
|
*/
|
|
31
32
|
export function validateDecisionOutput(output) {
|
|
32
|
-
|
|
33
|
+
debug("决策契约", "开始校验决策输出");
|
|
33
34
|
const fieldStatus = DECISION_FIELDS.map((field) => ({
|
|
34
35
|
field,
|
|
35
36
|
present: field in output && output[field] != null && output[field] !== "",
|
|
@@ -38,10 +39,10 @@ export function validateDecisionOutput(output) {
|
|
|
38
39
|
const missing = fieldStatus.filter((f) => !f.present).map((f) => f.field);
|
|
39
40
|
const coverage = presentCount / DECISION_FIELDS.length;
|
|
40
41
|
if (missing.length > 0) {
|
|
41
|
-
|
|
42
|
+
debug("决策契约", `缺少 ${missing.length} 个字段 (${missing.join(", ")})`);
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
|
-
|
|
45
|
+
debug("决策契约", `校验通过 (${presentCount}/${DECISION_FIELDS.length})`);
|
|
45
46
|
}
|
|
46
47
|
return {
|
|
47
48
|
passed: missing.length === 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision_contract.js","sourceRoot":"","sources":["../../src/engine/decision_contract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,UAAU;IACV,kBAAkB;IAClB,uBAAuB;IACvB,2BAA2B;IAC3B,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;IACf,6BAA6B;CACrB,CAAC;AAkBX;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA+B;IACpE,
|
|
1
|
+
{"version":3,"file":"decision_contract.js","sourceRoot":"","sources":["../../src/engine/decision_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC;;;;GAIG;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,UAAU;IACV,kBAAkB;IAClB,uBAAuB;IACvB,2BAA2B;IAC3B,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;IACf,6BAA6B;CACrB,CAAC;AAkBX;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA+B;IACpE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK;QACL,OAAO,EAAE,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;KAC1E,CAAC,CAAC,CAAC;IAEJ,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;IAEvD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,MAAM,EAAE,SAAS,YAAY,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC5B,cAAc,EAAE,OAAO;QACvB,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC5B,CAAC,CAAC,aAAa,YAAY,IAAI,eAAe,CAAC,MAAM,GAAG;YACxD,CAAC,CAAC,oBAAoB,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACpE,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 降级契约 — 问题十八 (Degradation Contract)。
|
|
3
|
+
*
|
|
4
|
+
* 核心规则:
|
|
5
|
+
* - DegradationEvent 必须用户可见
|
|
6
|
+
* - degraded 不得标记 completed
|
|
7
|
+
* - 恢复 full mode 必须经过 RecoveryGate
|
|
8
|
+
* - safety/enforcement 类组件不可降级为允许写入
|
|
9
|
+
*/
|
|
10
|
+
import { type DiagnosticEvent } from "./diagnostic_registry.js";
|
|
11
|
+
export type DegradedComponent = "verifier" | "reviewer" | "knowledge_injector" | "scope_controller" | "audit_logger" | "enforcement_guard";
|
|
12
|
+
export interface DegradationEvent {
|
|
13
|
+
event_id: string;
|
|
14
|
+
task_id: string;
|
|
15
|
+
component: DegradedComponent;
|
|
16
|
+
previous_mode: "full" | "degraded" | "unavailable";
|
|
17
|
+
current_mode: "full" | "degraded" | "unavailable";
|
|
18
|
+
reason: string;
|
|
19
|
+
user_visible_message: string;
|
|
20
|
+
missing_capabilities: string[];
|
|
21
|
+
risk_description: string;
|
|
22
|
+
next_action: string;
|
|
23
|
+
diagnostic_event: DiagnosticEvent | null;
|
|
24
|
+
occurred_at: string;
|
|
25
|
+
}
|
|
26
|
+
export interface RecoveryGate {
|
|
27
|
+
gate_id: string;
|
|
28
|
+
task_id: string;
|
|
29
|
+
component: DegradedComponent;
|
|
30
|
+
checks: Array<{
|
|
31
|
+
check_id: string;
|
|
32
|
+
description: string;
|
|
33
|
+
passed: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
all_passed: boolean;
|
|
36
|
+
evaluated_at: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 创建降级事件。
|
|
40
|
+
*/
|
|
41
|
+
export declare function createDegradationEvent(taskId: string, component: DegradedComponent, previousMode: "full" | "degraded" | "unavailable", reason: string, missingCapabilities: string[]): DegradationEvent | null;
|
|
42
|
+
/**
|
|
43
|
+
* 评估恢复门。
|
|
44
|
+
* 从降级恢复到 full mode 必须通过所有检查。
|
|
45
|
+
*/
|
|
46
|
+
export declare function evaluateRecoveryGate(taskId: string, component: DegradedComponent, checks: Array<{
|
|
47
|
+
check_id: string;
|
|
48
|
+
description: string;
|
|
49
|
+
passed: boolean;
|
|
50
|
+
}>): RecoveryGate;
|
|
51
|
+
/**
|
|
52
|
+
* 验证降级规则。
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateDegradation(event: DegradationEvent): Array<{
|
|
55
|
+
error: string;
|
|
56
|
+
severity: "hard_fail" | "warning";
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=degradation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"degradation.d.ts","sourceRoot":"","sources":["../../src/engine/degradation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,UAAU,GACV,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IACnD,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,EACjD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAAE,GAC5B,gBAAgB,GAAG,IAAI,CAuBzB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GACxE,YAAY,CAUd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CAmBxH"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 降级契约 — 问题十八 (Degradation Contract)。
|
|
3
|
+
*
|
|
4
|
+
* 核心规则:
|
|
5
|
+
* - DegradationEvent 必须用户可见
|
|
6
|
+
* - degraded 不得标记 completed
|
|
7
|
+
* - 恢复 full mode 必须经过 RecoveryGate
|
|
8
|
+
* - safety/enforcement 类组件不可降级为允许写入
|
|
9
|
+
*/
|
|
10
|
+
import { createDiagnosticEvent } from "./diagnostic_registry.js";
|
|
11
|
+
// 不可降级的组件(safety/enforcement 类)
|
|
12
|
+
const NON_DEGRADABLE_COMPONENTS = ["enforcement_guard"];
|
|
13
|
+
/**
|
|
14
|
+
* 创建降级事件。
|
|
15
|
+
*/
|
|
16
|
+
export function createDegradationEvent(taskId, component, previousMode, reason, missingCapabilities) {
|
|
17
|
+
// safety/enforcement 类组件不可降级
|
|
18
|
+
if (NON_DEGRADABLE_COMPONENTS.includes(component)) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const diagEvent = createDiagnosticEvent("SF-DEGRADE-0001", { component, reason });
|
|
22
|
+
const currentMode = previousMode === "full" ? "degraded" : "unavailable";
|
|
23
|
+
return {
|
|
24
|
+
event_id: `de-${taskId}-${Date.now()}`,
|
|
25
|
+
task_id: taskId,
|
|
26
|
+
component,
|
|
27
|
+
previous_mode: previousMode,
|
|
28
|
+
current_mode: currentMode,
|
|
29
|
+
reason,
|
|
30
|
+
user_visible_message: `${component} 不可用,当前为降级模式。${reason}`,
|
|
31
|
+
missing_capabilities: missingCapabilities,
|
|
32
|
+
risk_description: `降级后 ${missingCapabilities.join("、")} 不可用`,
|
|
33
|
+
next_action: "等待恢复后重新验证,或人工确认",
|
|
34
|
+
diagnostic_event: diagEvent,
|
|
35
|
+
occurred_at: new Date().toISOString(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 评估恢复门。
|
|
40
|
+
* 从降级恢复到 full mode 必须通过所有检查。
|
|
41
|
+
*/
|
|
42
|
+
export function evaluateRecoveryGate(taskId, component, checks) {
|
|
43
|
+
const allPassed = checks.every((c) => c.passed);
|
|
44
|
+
return {
|
|
45
|
+
gate_id: `rg-${taskId}-${Date.now()}`,
|
|
46
|
+
task_id: taskId,
|
|
47
|
+
component,
|
|
48
|
+
checks,
|
|
49
|
+
all_passed: allPassed,
|
|
50
|
+
evaluated_at: new Date().toISOString(),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 验证降级规则。
|
|
55
|
+
*/
|
|
56
|
+
export function validateDegradation(event) {
|
|
57
|
+
const errors = [];
|
|
58
|
+
if (event.current_mode === "degraded" || event.current_mode === "unavailable") {
|
|
59
|
+
if (!event.user_visible_message || event.user_visible_message.trim() === "") {
|
|
60
|
+
errors.push({
|
|
61
|
+
error: "降级事件必须有用户可见消息",
|
|
62
|
+
severity: "hard_fail",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (event.missing_capabilities.length === 0) {
|
|
66
|
+
errors.push({
|
|
67
|
+
error: "降级事件必须列出缺失能力",
|
|
68
|
+
severity: "warning",
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return errors;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=degradation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"degradation.js","sourceRoot":"","sources":["../../src/engine/degradation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAwB,MAAM,0BAA0B,CAAC;AAsCvF,gCAAgC;AAChC,MAAM,yBAAyB,GAAwB,CAAC,mBAAmB,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,SAA4B,EAC5B,YAAiD,EACjD,MAAc,EACd,mBAA6B;IAE7B,6BAA6B;IAC7B,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IAEzE,OAAO;QACL,QAAQ,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,EAAE,MAAM;QACf,SAAS;QACT,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;QACzB,MAAM;QACN,oBAAoB,EAAE,GAAG,SAAS,gBAAgB,MAAM,EAAE;QAC1D,oBAAoB,EAAE,mBAAmB;QACzC,gBAAgB,EAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;QAC5D,WAAW,EAAE,iBAAiB;QAC9B,gBAAgB,EAAE,SAAS;QAC3B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,SAA4B,EAC5B,MAAyE;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACrC,OAAO,EAAE,MAAM;QACf,SAAS;QACT,MAAM;QACN,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IACzD,MAAM,MAAM,GAAgE,EAAE,CAAC;IAE/E,IAAI,KAAK,CAAC,YAAY,KAAK,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/engine/delivery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EAEb,cAAc,EAEd,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/engine/delivery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EAEb,cAAc,EAEd,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD;;;;GAIG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqS3E;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,CAmB/E"}
|
package/dist/engine/delivery.js
CHANGED
|
@@ -3,6 +3,7 @@ import { buildDeliveryEvidenceChain } from "./semantic_evidence.js";
|
|
|
3
3
|
import { classifyCommand, checkSupplyChain } from "./runtime_safety.js";
|
|
4
4
|
import { scanTextSensitivity, redactSensitiveText } from "./privacy_secret_contract.js";
|
|
5
5
|
import { preDeliveryReview } from "./developer_sovereignty.js";
|
|
6
|
+
import { debug } from "./logger.js";
|
|
6
7
|
/**
|
|
7
8
|
* 执行完整的交付流程:提交代码、推送到远程、生成 PR 命令和变更日志。
|
|
8
9
|
* 流程按顺序执行,每一步失败后记录错误并继续后续步骤。
|
|
@@ -11,7 +12,7 @@ import { preDeliveryReview } from "./developer_sovereignty.js";
|
|
|
11
12
|
*/
|
|
12
13
|
export async function deliver(input) {
|
|
13
14
|
const { taskContext, config, knowledgeIndex, projectPath, gitOps, skipPush, skipPr, } = input;
|
|
14
|
-
|
|
15
|
+
debug("交付", `开始执行任务 ${taskContext.task_id} 的交付流程`);
|
|
15
16
|
const result = {
|
|
16
17
|
task_id: taskContext.task_id,
|
|
17
18
|
actions_performed: [],
|
|
@@ -29,7 +30,7 @@ export async function deliver(input) {
|
|
|
29
30
|
catch (e) {
|
|
30
31
|
const errMsg = `无法获取当前分支: ${e instanceof Error ? e.message : String(e)}`;
|
|
31
32
|
result.errors.push(errMsg);
|
|
32
|
-
|
|
33
|
+
debug("交付", `${errMsg}`);
|
|
33
34
|
return result;
|
|
34
35
|
}
|
|
35
36
|
// 3. 根据任务信息构建所有候选 payload(commit_message, changelog, PR command)
|
|
@@ -63,13 +64,13 @@ export async function deliver(input) {
|
|
|
63
64
|
for (const cmd of verifyCommands) {
|
|
64
65
|
const classified = classifyCommand(cmd.command);
|
|
65
66
|
if (classified.risk === "destructive") {
|
|
66
|
-
safetyAdvisories.push(
|
|
67
|
+
safetyAdvisories.push(`安全建议: 检测到破坏性验证命令: ${cmd.command} — ${classified.advisory}`);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
// 检查推送命令风险
|
|
70
71
|
const pushClassified = classifyCommand(`git push origin ${result.branch}`);
|
|
71
72
|
if (pushClassified.risk !== "read_only") {
|
|
72
|
-
safetyAdvisories.push(
|
|
73
|
+
safetyAdvisories.push(`安全建议: push 命令风险级别为 ${pushClassified.risk} — ${pushClassified.advisory}`);
|
|
73
74
|
}
|
|
74
75
|
// 供应链检查: 依赖变更时调用 checkSupplyChain 检查 lockfile/integrity
|
|
75
76
|
const changedFiles = taskContext.execution?.changed_files ?? [];
|
|
@@ -101,21 +102,21 @@ export async function deliver(input) {
|
|
|
101
102
|
const scReport = checkSupplyChain(rootFiles, deps);
|
|
102
103
|
for (const check of scReport.checks) {
|
|
103
104
|
if (!check.has_lockfile) {
|
|
104
|
-
safetyAdvisories.push(
|
|
105
|
+
safetyAdvisories.push(`安全建议: ${check.package_name}@${check.version} — 缺少 lockfile 或完整性哈希`);
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
else {
|
|
109
|
-
safetyAdvisories.push("
|
|
110
|
+
safetyAdvisories.push("安全建议: 依赖文件发生变更 — 建议运行供应链检查 (sf_dependency_scan)");
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
catch {
|
|
113
|
-
safetyAdvisories.push("
|
|
114
|
+
safetyAdvisories.push("安全建议: 依赖文件发生变更 — 供应链检查执行失败");
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
117
|
if (safetyAdvisories.length > 0) {
|
|
117
118
|
result.safety_advisories = safetyAdvisories;
|
|
118
|
-
|
|
119
|
+
debug("交付", `检测到 ${safetyAdvisories.length} 项安全建议`);
|
|
119
120
|
}
|
|
120
121
|
// 3.6. Developer Sovereignty — 交付前审查(advisory, 不 hard block)
|
|
121
122
|
try {
|
|
@@ -134,7 +135,7 @@ export async function deliver(input) {
|
|
|
134
135
|
if (deliverySecrets.length > 0) {
|
|
135
136
|
const errMsg = `隐私门禁阻断: 交付内容包含禁止级别的敏感信息 (${deliverySecrets.map((l) => l.source_ref + ":" + l.label).join(", ")}), 不允许提交`;
|
|
136
137
|
result.errors.push(errMsg);
|
|
137
|
-
|
|
138
|
+
debug("交付", `${errMsg}`);
|
|
138
139
|
// 秘密级别硬阻断: 不提交,不设置 pr_url
|
|
139
140
|
return result;
|
|
140
141
|
}
|
|
@@ -180,7 +181,7 @@ export async function deliver(input) {
|
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
result.actions_performed.push("commit");
|
|
183
|
-
|
|
184
|
+
debug("交付", `提交成功 ${result.commit_hash}`);
|
|
184
185
|
// 更新 pre_delivery_review 中的回滚命令,指向当前 commit
|
|
185
186
|
if (result.pre_delivery_review && result.commit_hash) {
|
|
186
187
|
result.pre_delivery_review.rollback_command =
|
|
@@ -190,7 +191,7 @@ export async function deliver(input) {
|
|
|
190
191
|
catch (e) {
|
|
191
192
|
const errMsg = `提交失败: ${e instanceof Error ? e.message : String(e)}`;
|
|
192
193
|
result.errors.push(errMsg);
|
|
193
|
-
|
|
194
|
+
debug("交付", `${errMsg}`);
|
|
194
195
|
result.skipped_actions.push({
|
|
195
196
|
action: "commit",
|
|
196
197
|
reason: "git commit 失败",
|
|
@@ -211,7 +212,7 @@ export async function deliver(input) {
|
|
|
211
212
|
if (remoteUrl) {
|
|
212
213
|
await gitOps.push(projectPath, "origin", result.branch);
|
|
213
214
|
result.actions_performed.push("push");
|
|
214
|
-
|
|
215
|
+
debug("交付", `推送成功 ${result.branch}`);
|
|
215
216
|
}
|
|
216
217
|
else {
|
|
217
218
|
result.skipped_actions.push({
|
|
@@ -223,7 +224,7 @@ export async function deliver(input) {
|
|
|
223
224
|
catch (e) {
|
|
224
225
|
const errMsg = `推送失败: ${e instanceof Error ? e.message : String(e)}`;
|
|
225
226
|
result.errors.push(errMsg);
|
|
226
|
-
|
|
227
|
+
debug("交付", `${errMsg}`);
|
|
227
228
|
result.skipped_actions.push({
|
|
228
229
|
action: "push",
|
|
229
230
|
reason: "git push 失败",
|
|
@@ -246,7 +247,7 @@ export async function deliver(input) {
|
|
|
246
247
|
if (prCandidate) {
|
|
247
248
|
result.pr_url = prCandidate;
|
|
248
249
|
result.actions_performed.push("pr");
|
|
249
|
-
|
|
250
|
+
debug("交付", "PR 命令已生成");
|
|
250
251
|
}
|
|
251
252
|
else if (deliveryConfig.auto_pr && !skipPr && !prHasRemote) {
|
|
252
253
|
result.skipped_actions.push({
|
|
@@ -264,7 +265,7 @@ export async function deliver(input) {
|
|
|
264
265
|
result.actions_performed.push("changelog");
|
|
265
266
|
// 8. 构建语义交付证据链(advisory, 不 hard block)
|
|
266
267
|
result.evidence_chain = buildDeliveryEvidenceChain(taskContext) ?? undefined;
|
|
267
|
-
|
|
268
|
+
debug("交付", `完成,已执行操作: ${result.actions_performed.join(", ")}, 错误: ${result.errors.length}`);
|
|
268
269
|
return result;
|
|
269
270
|
}
|
|
270
271
|
// ── Shell 转义辅助函数 ──
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/engine/delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/engine/delivery.ts"],"names":[],"mappings":"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"}
|