soloforge 1.2.8 → 1.2.10
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 +105 -321
- package/dist/adapters/claude_code/claude_md.d.ts +5 -0
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +6 -0
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/hooks.d.ts +4 -0
- package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/adapters/claude_code/hooks.js +5 -0
- package/dist/adapters/claude_code/hooks.js.map +1 -1
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +9 -21
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +5 -0
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +619 -205
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts +9 -0
- package/dist/adapters/codex/codex_config.d.ts.map +1 -1
- package/dist/adapters/codex/codex_config.js +11 -3
- package/dist/adapters/codex/codex_config.js.map +1 -1
- package/dist/adapters/codex/codex_rules.d.ts +5 -0
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
- package/dist/adapters/codex/codex_rules.js +8 -1
- package/dist/adapters/codex/codex_rules.js.map +1 -1
- package/dist/adapters/shared/workflow_template.d.ts +5 -0
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +32 -79
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/adapters/trae/trae_config.d.ts +4 -0
- package/dist/adapters/trae/trae_config.d.ts.map +1 -1
- package/dist/adapters/trae/trae_config.js +5 -7
- package/dist/adapters/trae/trae_config.js.map +1 -1
- package/dist/adapters/trae/trae_rules.d.ts +5 -0
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +7 -1
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/config_commands.d.ts +33 -0
- package/dist/bin/config_commands.d.ts.map +1 -0
- package/dist/bin/config_commands.js +222 -0
- package/dist/bin/config_commands.js.map +1 -0
- package/dist/bin/soloforge.js +609 -119
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/artifact_contract_registry.d.ts +138 -0
- package/dist/engine/artifact_contract_registry.d.ts.map +1 -0
- package/dist/engine/artifact_contract_registry.js +427 -0
- package/dist/engine/artifact_contract_registry.js.map +1 -0
- package/dist/engine/audit_pool.d.ts +40 -0
- package/dist/engine/audit_pool.d.ts.map +1 -1
- package/dist/engine/audit_pool.js +37 -1
- package/dist/engine/audit_pool.js.map +1 -1
- package/dist/engine/audit_sampler.d.ts +5 -0
- package/dist/engine/audit_sampler.d.ts.map +1 -1
- package/dist/engine/audit_sampler.js +6 -0
- 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 -1
- package/dist/engine/audit_verifier.js.map +1 -1
- package/dist/engine/batch1_manifest.d.ts +61 -0
- package/dist/engine/batch1_manifest.d.ts.map +1 -0
- package/dist/engine/batch1_manifest.js +220 -0
- package/dist/engine/batch1_manifest.js.map +1 -0
- package/dist/engine/batch1_reality_gate.d.ts +40 -0
- package/dist/engine/batch1_reality_gate.d.ts.map +1 -0
- package/dist/engine/batch1_reality_gate.js +290 -0
- package/dist/engine/batch1_reality_gate.js.map +1 -0
- package/dist/engine/batch1_scenario_registry.d.ts +62 -0
- package/dist/engine/batch1_scenario_registry.d.ts.map +1 -0
- package/dist/engine/batch1_scenario_registry.js +392 -0
- package/dist/engine/batch1_scenario_registry.js.map +1 -0
- package/dist/engine/batch1_scenario_runners.d.ts +42 -0
- package/dist/engine/batch1_scenario_runners.d.ts.map +1 -0
- package/dist/engine/batch1_scenario_runners.js +292 -0
- package/dist/engine/batch1_scenario_runners.js.map +1 -0
- package/dist/engine/capability_action_advisor.d.ts +3 -0
- package/dist/engine/capability_action_advisor.d.ts.map +1 -1
- package/dist/engine/capability_action_advisor.js +10 -0
- package/dist/engine/capability_action_advisor.js.map +1 -1
- package/dist/engine/capability_registry.d.ts +21 -0
- package/dist/engine/capability_registry.d.ts.map +1 -1
- package/dist/engine/capability_registry.js +113 -0
- package/dist/engine/capability_registry.js.map +1 -1
- package/dist/engine/capability_state_store.d.ts +63 -0
- package/dist/engine/capability_state_store.d.ts.map +1 -1
- package/dist/engine/capability_state_store.js +49 -1
- 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 +5 -4
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/classifier.d.ts +15 -5
- package/dist/engine/classifier.d.ts.map +1 -1
- package/dist/engine/classifier.js +70 -69
- package/dist/engine/classifier.js.map +1 -1
- package/dist/engine/code_reviewer.d.ts +14 -0
- package/dist/engine/code_reviewer.d.ts.map +1 -1
- package/dist/engine/code_reviewer.js +109 -10
- package/dist/engine/code_reviewer.js.map +1 -1
- package/dist/engine/cognitive_anchor.d.ts +14 -0
- package/dist/engine/cognitive_anchor.d.ts.map +1 -1
- package/dist/engine/cognitive_anchor.js +26 -2
- package/dist/engine/cognitive_anchor.js.map +1 -1
- package/dist/engine/command_execution_contract.d.ts +226 -0
- package/dist/engine/command_execution_contract.d.ts.map +1 -0
- package/dist/engine/command_execution_contract.js +571 -0
- package/dist/engine/command_execution_contract.js.map +1 -0
- package/dist/engine/confidence_scorer.d.ts.map +1 -1
- package/dist/engine/confidence_scorer.js +1 -0
- package/dist/engine/confidence_scorer.js.map +1 -1
- package/dist/engine/config_precedence_contract.d.ts +269 -0
- package/dist/engine/config_precedence_contract.d.ts.map +1 -0
- package/dist/engine/config_precedence_contract.js +948 -0
- package/dist/engine/config_precedence_contract.js.map +1 -0
- package/dist/engine/conflict_gate.d.ts +13 -0
- package/dist/engine/conflict_gate.d.ts.map +1 -1
- package/dist/engine/conflict_gate.js +20 -2
- package/dist/engine/conflict_gate.js.map +1 -1
- package/dist/engine/consumable_asset_registry.d.ts +46 -0
- package/dist/engine/consumable_asset_registry.d.ts.map +1 -0
- package/dist/engine/consumable_asset_registry.js +758 -0
- package/dist/engine/consumable_asset_registry.js.map +1 -0
- package/dist/engine/contract_guard.d.ts +4 -0
- package/dist/engine/contract_guard.d.ts.map +1 -1
- package/dist/engine/contract_guard.js +15 -7
- package/dist/engine/contract_guard.js.map +1 -1
- package/dist/engine/convention_detector.d.ts.map +1 -1
- package/dist/engine/convention_detector.js +5 -2
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/core_engineering_principles.d.ts +155 -0
- package/dist/engine/core_engineering_principles.d.ts.map +1 -0
- package/dist/engine/core_engineering_principles.js +426 -0
- package/dist/engine/core_engineering_principles.js.map +1 -0
- package/dist/engine/debt_reporter.d.ts.map +1 -1
- package/dist/engine/debt_reporter.js +3 -1
- 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 +9 -3
- package/dist/engine/debt_tracker.js.map +1 -1
- package/dist/engine/debugger.d.ts.map +1 -1
- package/dist/engine/debugger.js +2 -0
- package/dist/engine/debugger.js.map +1 -1
- package/dist/engine/decision_contract.d.ts +11 -2
- package/dist/engine/decision_contract.d.ts.map +1 -1
- package/dist/engine/decision_contract.js +17 -2
- package/dist/engine/decision_contract.js.map +1 -1
- package/dist/engine/delivery.d.ts +7 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +89 -36
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +14 -9
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/developer_sovereignty.d.ts.map +1 -1
- package/dist/engine/developer_sovereignty.js +8 -2
- package/dist/engine/developer_sovereignty.js.map +1 -1
- package/dist/engine/diff_ownership.d.ts.map +1 -1
- package/dist/engine/diff_ownership.js +8 -0
- package/dist/engine/diff_ownership.js.map +1 -1
- package/dist/engine/diff_ownership_store.d.ts +26 -10
- package/dist/engine/diff_ownership_store.d.ts.map +1 -1
- package/dist/engine/diff_ownership_store.js +47 -20
- package/dist/engine/diff_ownership_store.js.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.d.ts +66 -0
- package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -0
- package/dist/engine/dual_layer_mechanism_registry.js +1077 -0
- package/dist/engine/dual_layer_mechanism_registry.js.map +1 -0
- package/dist/engine/escape_report.d.ts +50 -0
- package/dist/engine/escape_report.d.ts.map +1 -1
- package/dist/engine/escape_report.js +38 -0
- package/dist/engine/escape_report.js.map +1 -1
- package/dist/engine/evolver.d.ts.map +1 -1
- package/dist/engine/evolver.js +12 -2
- package/dist/engine/evolver.js.map +1 -1
- package/dist/engine/exploration.d.ts.map +1 -1
- package/dist/engine/exploration.js +87 -0
- package/dist/engine/exploration.js.map +1 -1
- package/dist/engine/failure_classifier.d.ts.map +1 -1
- package/dist/engine/failure_classifier.js +8 -0
- package/dist/engine/failure_classifier.js.map +1 -1
- package/dist/engine/feasibility_checker.d.ts +8 -0
- package/dist/engine/feasibility_checker.d.ts.map +1 -1
- package/dist/engine/feasibility_checker.js +12 -0
- package/dist/engine/feasibility_checker.js.map +1 -1
- package/dist/engine/git_deps.d.ts +4 -1
- package/dist/engine/git_deps.d.ts.map +1 -1
- package/dist/engine/git_deps.js +5 -1
- package/dist/engine/git_deps.js.map +1 -1
- package/dist/engine/governance_report.d.ts +57 -1
- package/dist/engine/governance_report.d.ts.map +1 -1
- package/dist/engine/governance_report.js +91 -1
- 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 -1
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/implementation_roadmap_registry.d.ts +105 -0
- package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -0
- package/dist/engine/implementation_roadmap_registry.js +813 -0
- package/dist/engine/implementation_roadmap_registry.js.map +1 -0
- package/dist/engine/input_material_contract_registry.d.ts +185 -0
- package/dist/engine/input_material_contract_registry.d.ts.map +1 -0
- package/dist/engine/input_material_contract_registry.js +563 -0
- package/dist/engine/input_material_contract_registry.js.map +1 -0
- package/dist/engine/intent_expander.d.ts +8 -27
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +1170 -139
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/intent_router.d.ts +82 -0
- package/dist/engine/intent_router.d.ts.map +1 -0
- package/dist/engine/intent_router.js +458 -0
- package/dist/engine/intent_router.js.map +1 -0
- package/dist/engine/io_controller.d.ts.map +1 -1
- package/dist/engine/io_controller.js +25 -13
- 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 +8 -4
- package/dist/engine/java_quality_guard.js.map +1 -1
- package/dist/engine/job_manager.d.ts +35 -0
- package/dist/engine/job_manager.d.ts.map +1 -1
- package/dist/engine/job_manager.js +53 -9
- package/dist/engine/job_manager.js.map +1 -1
- package/dist/engine/knowledge_config_loader.d.ts +12 -1
- package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
- package/dist/engine/knowledge_config_loader.js +50 -10
- package/dist/engine/knowledge_config_loader.js.map +1 -1
- package/dist/engine/knowledge_injection_boundary.d.ts +56 -0
- package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -0
- package/dist/engine/knowledge_injection_boundary.js +561 -0
- package/dist/engine/knowledge_injection_boundary.js.map +1 -0
- package/dist/engine/knowledge_manager.d.ts +73 -0
- package/dist/engine/knowledge_manager.d.ts.map +1 -1
- package/dist/engine/knowledge_manager.js +163 -21
- package/dist/engine/knowledge_manager.js.map +1 -1
- package/dist/engine/knowledge_sovereignty.d.ts +1 -0
- package/dist/engine/knowledge_sovereignty.d.ts.map +1 -1
- package/dist/engine/knowledge_sovereignty.js +8 -3
- package/dist/engine/knowledge_sovereignty.js.map +1 -1
- package/dist/engine/llm_gateway.d.ts +74 -3
- package/dist/engine/llm_gateway.d.ts.map +1 -1
- package/dist/engine/llm_gateway.js +75 -4
- package/dist/engine/llm_gateway.js.map +1 -1
- package/dist/engine/main_path_integration_contract.d.ts +383 -0
- package/dist/engine/main_path_integration_contract.d.ts.map +1 -0
- package/dist/engine/main_path_integration_contract.js +1581 -0
- package/dist/engine/main_path_integration_contract.js.map +1 -0
- package/dist/engine/mechanism_contract_registry.d.ts +59 -0
- package/dist/engine/mechanism_contract_registry.d.ts.map +1 -0
- package/dist/engine/mechanism_contract_registry.js +484 -0
- package/dist/engine/mechanism_contract_registry.js.map +1 -0
- package/dist/engine/migration_guard.d.ts.map +1 -1
- package/dist/engine/migration_guard.js +24 -15
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/mutation_audit.d.ts +10 -0
- package/dist/engine/mutation_audit.d.ts.map +1 -1
- package/dist/engine/mutation_audit.js +19 -2
- package/dist/engine/mutation_audit.js.map +1 -1
- package/dist/engine/observability.d.ts.map +1 -1
- package/dist/engine/observability.js +17 -6
- package/dist/engine/observability.js.map +1 -1
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +20 -4
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/policy_drift_detector.d.ts +6 -0
- package/dist/engine/policy_drift_detector.d.ts.map +1 -1
- package/dist/engine/policy_drift_detector.js +16 -0
- package/dist/engine/policy_drift_detector.js.map +1 -1
- package/dist/engine/privacy_secret_contract.d.ts +320 -0
- package/dist/engine/privacy_secret_contract.d.ts.map +1 -0
- package/dist/engine/privacy_secret_contract.js +874 -0
- package/dist/engine/privacy_secret_contract.js.map +1 -0
- package/dist/engine/regression_matrix.d.ts +21 -8
- package/dist/engine/regression_matrix.d.ts.map +1 -1
- package/dist/engine/regression_matrix.js +37 -8
- package/dist/engine/regression_matrix.js.map +1 -1
- package/dist/engine/risk_sampler.d.ts +6 -0
- package/dist/engine/risk_sampler.d.ts.map +1 -1
- package/dist/engine/risk_sampler.js +9 -0
- 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 +7 -3
- package/dist/engine/runtime_safety.js.map +1 -1
- package/dist/engine/scaffolder.d.ts.map +1 -1
- package/dist/engine/scaffolder.js +7 -1
- package/dist/engine/scaffolder.js.map +1 -1
- package/dist/engine/scope_controller.d.ts.map +1 -1
- package/dist/engine/scope_controller.js +12 -1
- package/dist/engine/scope_controller.js.map +1 -1
- package/dist/engine/scope_lease.d.ts +43 -0
- package/dist/engine/scope_lease.d.ts.map +1 -1
- package/dist/engine/scope_lease.js +44 -0
- package/dist/engine/scope_lease.js.map +1 -1
- package/dist/engine/semantic_evidence.d.ts +6 -0
- package/dist/engine/semantic_evidence.d.ts.map +1 -1
- package/dist/engine/semantic_evidence.js +9 -0
- package/dist/engine/semantic_evidence.js.map +1 -1
- package/dist/engine/task_context.d.ts +36 -1
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +252 -13
- 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 +13 -3
- 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 +8 -7
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/template_mechanism_auditor.d.ts +93 -0
- package/dist/engine/template_mechanism_auditor.d.ts.map +1 -0
- package/dist/engine/template_mechanism_auditor.js +622 -0
- package/dist/engine/template_mechanism_auditor.js.map +1 -0
- package/dist/engine/test_generator.d.ts.map +1 -1
- package/dist/engine/test_generator.js +6 -0
- package/dist/engine/test_generator.js.map +1 -1
- package/dist/engine/test_quality.d.ts +6 -0
- package/dist/engine/test_quality.d.ts.map +1 -1
- package/dist/engine/test_quality.js +26 -10
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.d.ts +136 -0
- package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -0
- package/dist/engine/tool_invocation_contract_registry.js +731 -0
- package/dist/engine/tool_invocation_contract_registry.js.map +1 -0
- package/dist/engine/traceability.d.ts +3 -0
- package/dist/engine/traceability.d.ts.map +1 -1
- package/dist/engine/traceability.js +12 -4
- package/dist/engine/traceability.js.map +1 -1
- package/dist/engine/user_feedback_contract.d.ts +162 -0
- package/dist/engine/user_feedback_contract.d.ts.map +1 -0
- package/dist/engine/user_feedback_contract.js +356 -0
- package/dist/engine/user_feedback_contract.js.map +1 -0
- package/dist/engine/verifier.d.ts +6 -1
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +114 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/workflow_contract_registry.d.ts +70 -0
- package/dist/engine/workflow_contract_registry.d.ts.map +1 -0
- package/dist/engine/workflow_contract_registry.js +501 -0
- package/dist/engine/workflow_contract_registry.js.map +1 -0
- package/dist/engine/workspace_resumer.d.ts.map +1 -1
- package/dist/engine/workspace_resumer.js +8 -0
- package/dist/engine/workspace_resumer.js.map +1 -1
- package/dist/engine/zero_config_init.d.ts +67 -2
- package/dist/engine/zero_config_init.d.ts.map +1 -1
- package/dist/engine/zero_config_init.js +410 -28
- package/dist/engine/zero_config_init.js.map +1 -1
- package/dist/git/operations.d.ts +101 -0
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +125 -9
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/knowledge/conflict_detector.d.ts +6 -0
- package/dist/knowledge/conflict_detector.d.ts.map +1 -1
- package/dist/knowledge/conflict_detector.js +7 -0
- package/dist/knowledge/conflict_detector.js.map +1 -1
- package/dist/knowledge/health_checker.d.ts +16 -0
- package/dist/knowledge/health_checker.d.ts.map +1 -1
- package/dist/knowledge/health_checker.js +24 -1
- package/dist/knowledge/health_checker.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +140 -2
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +186 -26
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts +8 -1
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +56 -2
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/knowledge/writer.d.ts +49 -1
- package/dist/knowledge/writer.d.ts.map +1 -1
- package/dist/knowledge/writer.js +55 -1
- package/dist/knowledge/writer.js.map +1 -1
- package/dist/types.d.ts +255 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +29 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +7 -7
- 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 +16 -0
- 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 +17 -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 +43 -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 +17 -0
- package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +15 -0
- package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +16 -0
- package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +1 -0
- 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 +23 -0
- package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +19 -0
- package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +15 -0
- package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +15 -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 +1 -1
- 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 +53 -0
- package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +21 -0
- package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +25 -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 +20 -0
- package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +25 -0
- package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +26 -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 +24 -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 +20 -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 +125 -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 +26 -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 +22 -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 +25 -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 +27 -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 +22 -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 +24 -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 +28 -0
- package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +25 -0
- package/templates/knowledge/templates/{review_summary.md → /345/256/241/346/237/245/346/221/230/350/246/201.md} +1 -1
- package/templates/config.yaml +0 -53
|
@@ -1,15 +1,13 @@
|
|
|
1
|
+
import { routeIntent, shouldEnterSoloForge } from "./intent_router.js";
|
|
2
|
+
console.error("[soloForge] classifier: 任务分类器模块已加载");
|
|
1
3
|
/**
|
|
2
4
|
* 任务分类器 — 根据用户意图文本分类任务类型、风险等级和执行策略。
|
|
3
5
|
* 零 AI 依赖,纯关键词 + 规则匹配。
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - 评估歧义度(low / medium / high),高歧义时生成澄清问题
|
|
8
|
-
* - 评估风险等级(low / medium / high)
|
|
9
|
-
* - 推断复杂度和执行策略(skip_soloForge / quick_fix / full_pipeline)
|
|
10
|
-
* - 猜测涉及的仓库(backend / frontend)
|
|
7
|
+
* 入口裁决权已移至 Intent Router (intent_router.ts)。
|
|
8
|
+
* task_type 保留为辅助描述,不再单独决定是否进入 SoloForge。
|
|
11
9
|
*/
|
|
12
|
-
// ──
|
|
10
|
+
// ── 分类规则表 ──
|
|
13
11
|
const TYPE_RULES = [
|
|
14
12
|
{ keywords: ["新建", "新建模块", "初始化", "脚手架", "scaffold"], type: "scaffold" },
|
|
15
13
|
{ keywords: ["紧急修复", "线上问题", "生产环境", "hotfix"], type: "hotfix" },
|
|
@@ -23,31 +21,36 @@ const TYPE_RULES = [
|
|
|
23
21
|
{ keywords: ["重构", "优化结构", "提取", "抽象", "拆分"], type: "refactor" },
|
|
24
22
|
{ keywords: ["加功能", "新增", "新功能", "创建", "实现", "开发", "添加", "加一个", "加个", "加上", "增加", "做一个", "写一个", "写个", "做个"], type: "feature" },
|
|
25
23
|
];
|
|
26
|
-
// 高歧义动词: 缺乏明确操作目标的模糊动作词
|
|
27
24
|
const HIGH_AMBIGUITY_VERBS = ["优化", "重构", "改进", "提升", "调整", "完善", "梳理"];
|
|
28
|
-
// 明确动词: 指向具体操作的可执行动作词
|
|
29
25
|
const CLEAR_VERBS = ["加", "修", "删", "改", "新建", "创建", "实现"];
|
|
30
|
-
// 明确对象模式: 匹配类名、文件路径、API 路径等具体技术实体
|
|
31
26
|
const CLEAR_OBJECTS_PATTERNS = [
|
|
32
27
|
/^[A-Z]\w*(Service|Controller|Mapper|Repository|Component|Module)/,
|
|
33
28
|
/\.(ts|tsx|java|py|yaml|json)$/,
|
|
34
29
|
/api\/|\/v\d\//,
|
|
35
30
|
];
|
|
36
31
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
32
|
+
* 对用户意图进行分类。
|
|
33
|
+
* 先调用 Intent Router 获取 route_decision,
|
|
34
|
+
* 再用旧规则填充 task_type / risk / complexity / ambiguity。
|
|
35
|
+
* strategy 和 mode 从 route_decision 派生。
|
|
36
|
+
*
|
|
37
|
+
* @param input - 分类输入参数,包含用户意图文本和可选的项目路径/任务 ID
|
|
38
|
+
* @returns 分类结果,包含任务类型、风险等级、复杂度、歧义度和路由决策
|
|
40
39
|
*/
|
|
41
40
|
export function classify(input) {
|
|
42
41
|
const { intent } = input;
|
|
43
42
|
const normalized = intent.toLowerCase();
|
|
43
|
+
console.error("[soloForge] classifier: 开始意图分类");
|
|
44
|
+
// 1. 调用 Intent Router(新入口裁决)
|
|
45
|
+
const routeDecision = routeIntent(input);
|
|
46
|
+
// 2. 旧规则填充辅助字段
|
|
44
47
|
const taskType = matchType(normalized);
|
|
45
48
|
const ambiguity = assessAmbiguity(intent, normalized);
|
|
46
49
|
const risk = assessRisk(taskType, normalized);
|
|
47
50
|
const complexity = assessComplexity(normalized);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const mode =
|
|
51
|
+
// 3. strategy 从 route_decision 派生(不再由 task_type 直接决定)
|
|
52
|
+
const strategy = deriveStrategy(routeDecision);
|
|
53
|
+
const mode = deriveMode(routeDecision, risk);
|
|
51
54
|
const result = {
|
|
52
55
|
task_type: taskType,
|
|
53
56
|
risk,
|
|
@@ -56,6 +59,7 @@ export function classify(input) {
|
|
|
56
59
|
affected_repos: guessRepos(normalized),
|
|
57
60
|
mode,
|
|
58
61
|
strategy,
|
|
62
|
+
route_decision: routeDecision,
|
|
59
63
|
};
|
|
60
64
|
if (ambiguity === "medium") {
|
|
61
65
|
result.clarification = {
|
|
@@ -68,20 +72,55 @@ export function classify(input) {
|
|
|
68
72
|
questions: generateQuestions(intent, taskType),
|
|
69
73
|
};
|
|
70
74
|
}
|
|
75
|
+
console.error(`[soloForge] classifier: 分类完成 — 类型=${taskType},路由=${routeDecision.route},风险=${risk}`);
|
|
71
76
|
return result;
|
|
72
77
|
}
|
|
73
78
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
79
|
+
* 从 route_decision 派生 strategy。
|
|
80
|
+
* 只有 skip_chat 和 direct_answer 映射为 skip_soloForge。
|
|
81
|
+
* review 路由为 review 策略(不强塞 sf_expand)。
|
|
82
|
+
*
|
|
83
|
+
* @param decision - 意图路由决策
|
|
84
|
+
* @returns 执行策略
|
|
85
|
+
*/
|
|
86
|
+
function deriveStrategy(decision) {
|
|
87
|
+
if (!shouldEnterSoloForge(decision))
|
|
88
|
+
return "skip_soloForge";
|
|
89
|
+
// review 路由走 quick_fix(由 sf_review 处理,不强塞 sf_expand)
|
|
90
|
+
if (decision.route === "review")
|
|
91
|
+
return "quick_fix";
|
|
92
|
+
// operation 路由走 quick_fix(sf_verify 直接处理)
|
|
93
|
+
if (decision.route === "operation")
|
|
94
|
+
return "quick_fix";
|
|
95
|
+
// multi_stage_plan 走 full_pipeline
|
|
96
|
+
if (decision.execution_shape === "multi_stage_plan")
|
|
97
|
+
return "full_pipeline";
|
|
98
|
+
// code_execution 走 full_pipeline 或 quick_fix
|
|
99
|
+
if (decision.execution_shape === "code_execution") {
|
|
100
|
+
// 保留旧逻辑兼容: bugfix/hotfix/test → quick_fix
|
|
101
|
+
return "full_pipeline";
|
|
102
|
+
}
|
|
103
|
+
// 其他(single_artifact, read_only_analysis, verification_only)走 full_pipeline
|
|
104
|
+
return "full_pipeline";
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 从 route_decision 和 risk 派生 mode。
|
|
108
|
+
* @param decision - 意图路由决策
|
|
109
|
+
* @param risk - 风险等级
|
|
110
|
+
* @returns 执行模式(passthrough / supervised / autonomous)
|
|
77
111
|
*/
|
|
112
|
+
function deriveMode(decision, risk) {
|
|
113
|
+
if (!shouldEnterSoloForge(decision))
|
|
114
|
+
return "passthrough";
|
|
115
|
+
if (risk === "high")
|
|
116
|
+
return "supervised";
|
|
117
|
+
return "autonomous";
|
|
118
|
+
}
|
|
119
|
+
// ── 旧规则函数(保留作为辅助描述) ──
|
|
120
|
+
/** 根据关键词匹配任务类型 */
|
|
78
121
|
function matchType(normalized) {
|
|
79
|
-
// "加 + 名词短语"模式:加批量删除、加权限、加字段 等(排除加快/加密/加载/加剧等非功能词汇)
|
|
80
|
-
// 负向前瞻 (?!快|密|载|...) 排除动词前缀,后跟 1-8 个字符的对象名 + 功能后缀词
|
|
81
122
|
if (/加(?!快|密|载|剧|速|深|重)[^\s]{1,8}(接口|功能|模块|页面|字段|按钮|服务|权限|配置|能力|校验|逻辑|规则|支持|特性)/.test(normalized))
|
|
82
123
|
return "feature";
|
|
83
|
-
// 优先检查需要区分的组合关键词(如"优化结构" → refactor,而非 optimize)
|
|
84
|
-
// 必须在 TYPE_RULES 遍历之前,否则"优化"会被错误匹配为 optimize
|
|
85
124
|
if (/优化.*(结构|架构|代码|组织|设计)/i.test(normalized))
|
|
86
125
|
return "refactor";
|
|
87
126
|
if (normalized.includes("新建模块") || normalized.includes("脚手架") || normalized.includes("scaffold"))
|
|
@@ -95,12 +134,7 @@ function matchType(normalized) {
|
|
|
95
134
|
}
|
|
96
135
|
return "passthrough";
|
|
97
136
|
}
|
|
98
|
-
/**
|
|
99
|
-
* 评估意图歧义度,基于动词明确性和对象具体性综合判断。
|
|
100
|
-
* @param intent - 原始意图文本(保留大小写用于模式匹配)
|
|
101
|
-
* @param normalized - 小写化后的意图文本
|
|
102
|
-
* @returns 歧义等级: "low" / "medium" / "high"
|
|
103
|
-
*/
|
|
137
|
+
/** 评估意图歧义度 — 根据动词清晰度和对象明确度判断 */
|
|
104
138
|
function assessAmbiguity(intent, normalized) {
|
|
105
139
|
const hasClearVerb = CLEAR_VERBS.some((v) => normalized.includes(v));
|
|
106
140
|
const hasClearObject = CLEAR_OBJECTS_PATTERNS.some((p) => p.test(intent));
|
|
@@ -113,12 +147,7 @@ function assessAmbiguity(intent, normalized) {
|
|
|
113
147
|
return "low";
|
|
114
148
|
return "medium";
|
|
115
149
|
}
|
|
116
|
-
/**
|
|
117
|
-
* 评估任务风险等级,hotfix 和涉及数据库变更的 bugfix/refactor 为高风险。
|
|
118
|
-
* @param type - 已识别的任务类型
|
|
119
|
-
* @param normalized - 小写化后的意图文本,用于检测数据库相关关键词
|
|
120
|
-
* @returns 风险等级: "low" / "medium" / "high"
|
|
121
|
-
*/
|
|
150
|
+
/** 评估风险等级 — 根据任务类型和涉及领域判断 */
|
|
122
151
|
function assessRisk(type, normalized) {
|
|
123
152
|
if (type === "hotfix")
|
|
124
153
|
return "high";
|
|
@@ -130,11 +159,7 @@ function assessRisk(type, normalized) {
|
|
|
130
159
|
return "low";
|
|
131
160
|
return "medium";
|
|
132
161
|
}
|
|
133
|
-
/**
|
|
134
|
-
* 评估任务复杂度,基于意图中的范围关键词(多个、批量、跨等)和操作粒度判断。
|
|
135
|
-
* @param normalized - 小写化后的意图文本
|
|
136
|
-
* @returns 复杂度: "low" / "medium" / "high"
|
|
137
|
-
*/
|
|
162
|
+
/** 评估复杂度 — 根据关键词推断任务复杂程度 */
|
|
138
163
|
function assessComplexity(normalized) {
|
|
139
164
|
const complexHints = ["多个", "批量", "跨", "联调", "前后端", "多仓库", "全链路"];
|
|
140
165
|
if (complexHints.some((h) => normalized.includes(h)))
|
|
@@ -143,26 +168,7 @@ function assessComplexity(normalized) {
|
|
|
143
168
|
return "low";
|
|
144
169
|
return "medium";
|
|
145
170
|
}
|
|
146
|
-
/**
|
|
147
|
-
* 根据任务类型选择执行策略。
|
|
148
|
-
* review/explain/document 等只读类型跳过 SoloForge 流程,
|
|
149
|
-
* bugfix/hotfix/test 走快速修复路径,其余走完整流水线。
|
|
150
|
-
* @param type - 已识别的任务类型
|
|
151
|
-
* @returns 执行策略: "skip_soloForge" / "quick_fix" / "full_pipeline"
|
|
152
|
-
*/
|
|
153
|
-
function selectStrategy(type) {
|
|
154
|
-
if (["review", "explain", "document", "passthrough"].includes(type))
|
|
155
|
-
return "skip_soloForge";
|
|
156
|
-
if (["bugfix", "hotfix", "test"].includes(type))
|
|
157
|
-
return "quick_fix";
|
|
158
|
-
return "full_pipeline";
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* 根据意图文本中的技术关键词推测涉及的仓库。
|
|
162
|
-
* 无法判断时默认同时涉及 backend 和 frontend。
|
|
163
|
-
* @param normalized - 小写化后的意图文本
|
|
164
|
-
* @returns 仓库名称数组,如 ["backend"] 或 ["backend", "frontend"]
|
|
165
|
-
*/
|
|
171
|
+
/** 根据关键词猜测涉及的仓库 */
|
|
166
172
|
function guessRepos(normalized) {
|
|
167
173
|
const repos = [];
|
|
168
174
|
if (/后端|backend|java|spring|service|controller|mapper|api/i.test(normalized))
|
|
@@ -173,20 +179,15 @@ function guessRepos(normalized) {
|
|
|
173
179
|
repos.push("backend", "frontend");
|
|
174
180
|
return repos;
|
|
175
181
|
}
|
|
176
|
-
/**
|
|
177
|
-
* 构建分类摘要文本。
|
|
178
|
-
* @param intent - 原始意图
|
|
179
|
-
* @param type - 识别到的任务类型
|
|
180
|
-
* @returns 摘要字符串
|
|
181
|
-
*/
|
|
182
|
+
/** 构建分类摘要文本 */
|
|
182
183
|
function buildSummary(intent, type) {
|
|
183
184
|
return `意图分析: ${type} 类型 — "${intent}"`;
|
|
184
185
|
}
|
|
185
186
|
/**
|
|
186
|
-
*
|
|
187
|
-
* @param intent -
|
|
187
|
+
* 生成澄清问题 — 高歧义意图时向用户追问细节。
|
|
188
|
+
* @param intent - 用户意图文本
|
|
188
189
|
* @param _type - 任务类型(预留参数,当前未使用)
|
|
189
|
-
* @returns
|
|
190
|
+
* @returns 澄清问题列表
|
|
190
191
|
*/
|
|
191
192
|
function generateQuestions(intent, _type) {
|
|
192
193
|
const questions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/engine/classifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/engine/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,19 +33,33 @@ export interface TrustClassificationSummary {
|
|
|
33
33
|
/**
|
|
34
34
|
* 回溯渲染: 当抽检哨兵升级白盒为灰盒时,渲染前置折叠任务的摘要流。
|
|
35
35
|
* 返回所有已缓存的白盒摘要,供人类快速回溯。
|
|
36
|
+
*
|
|
37
|
+
* @param taskId - 任务 ID
|
|
38
|
+
* @returns 白盒摘要列表,无缓存时返回空数组
|
|
36
39
|
*/
|
|
37
40
|
export declare function renderSummaryBacktrace(taskId: string): string[];
|
|
38
41
|
/** 代码审查输入参数 */
|
|
39
42
|
export interface ReviewInput {
|
|
43
|
+
/** 变更文件列表 */
|
|
40
44
|
changedFiles: string[];
|
|
45
|
+
/** 项目路径 */
|
|
41
46
|
projectPath: string;
|
|
47
|
+
/** 项目配置 */
|
|
42
48
|
config: ProjectConfig;
|
|
49
|
+
/** 可选的分类结果 */
|
|
43
50
|
classification?: ClassifyResult;
|
|
51
|
+
/** 可选的文件内容映射 */
|
|
44
52
|
fileContents?: Record<string, string>;
|
|
53
|
+
/** 可选的知识库索引管理器 */
|
|
45
54
|
knowledgeIndex?: KnowledgeIndexManager;
|
|
55
|
+
/** 审查角色,默认为自审 */
|
|
46
56
|
review_role?: ReviewRole;
|
|
57
|
+
/** 不确定性触发条件列表 */
|
|
47
58
|
uncertainty_triggers?: UncertaintyTrigger[];
|
|
59
|
+
/** 任务 ID */
|
|
48
60
|
task_id?: string;
|
|
61
|
+
/** 声明的 scope 路径,用于 Surgical Changes 检查() */
|
|
62
|
+
declared_scope?: string[];
|
|
49
63
|
}
|
|
50
64
|
/**
|
|
51
65
|
* 执行代码审查 — 对变更文件逐一进行质量、安全、性能、技术债务和知识规则检查。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code_reviewer.d.ts","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAmC,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnK,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"code_reviewer.d.ts","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAmC,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnK,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAO3E;;;;;;;;GAQG;AAEH,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtE,aAAa;AACb,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,WAAW;IACX,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,cAAc,EAAE,MAAM,CAAC;CACxB;AA2DD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS/D;AAqID,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc;IACd,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kBAAkB;IAClB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,iBAAiB;IACjB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,iBAAiB;IACjB,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAiJ3B"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { checkSimplicityFirst, checkSurgicalChanges } from "./core_engineering_principles.js";
|
|
4
|
+
console.error("[soloForge] code_reviewer: 代码审查引擎模块已加载");
|
|
3
5
|
/** 摘要缓存实例(模块级别,跨任务持久) */
|
|
4
6
|
const summaryCache = new Map();
|
|
5
7
|
const MAX_CACHE_ENTRIES = 500;
|
|
6
8
|
/**
|
|
7
9
|
* 为白盒审查项生成压缩摘要并缓存。
|
|
8
10
|
* 摘要提取: 文件名 + 维度 + 规则描述,压缩为一句话。
|
|
11
|
+
*
|
|
12
|
+
* @param taskId - 任务 ID
|
|
13
|
+
* @param findings - 审查发现列表
|
|
14
|
+
* @param classified - 信任分级后的发现列表
|
|
9
15
|
*/
|
|
10
16
|
function cacheWhiteBoxSummary(taskId, findings, classified) {
|
|
11
17
|
const entries = [];
|
|
@@ -35,16 +41,30 @@ function cacheWhiteBoxSummary(taskId, findings, classified) {
|
|
|
35
41
|
/**
|
|
36
42
|
* 回溯渲染: 当抽检哨兵升级白盒为灰盒时,渲染前置折叠任务的摘要流。
|
|
37
43
|
* 返回所有已缓存的白盒摘要,供人类快速回溯。
|
|
44
|
+
*
|
|
45
|
+
* @param taskId - 任务 ID
|
|
46
|
+
* @returns 白盒摘要列表,无缓存时返回空数组
|
|
38
47
|
*/
|
|
39
48
|
export function renderSummaryBacktrace(taskId) {
|
|
49
|
+
console.error(`[soloForge] 代码审查: 回溯渲染白盒摘要 — taskId: ${taskId}`);
|
|
40
50
|
const entries = summaryCache.get(taskId);
|
|
41
|
-
if (!entries || entries.length === 0)
|
|
51
|
+
if (!entries || entries.length === 0) {
|
|
52
|
+
console.error("[soloForge] 代码审查: 白盒摘要缓存未命中");
|
|
42
53
|
return [];
|
|
54
|
+
}
|
|
55
|
+
console.error(`[soloForge] 代码审查: 白盒摘要回溯完成 — ${entries.length} 条`);
|
|
43
56
|
return entries.map((e) => e.compressed_summary);
|
|
44
57
|
}
|
|
45
58
|
/**
|
|
46
59
|
* 机制 3: 对审查发现进行信任分级路由。
|
|
47
|
-
* 白盒
|
|
60
|
+
* 白盒 -> 建议跳过(CRUD/符合模式),灰盒 -> 建议审查(核心算法/安全),黑盒 -> 强制审查(非标逻辑)
|
|
61
|
+
*
|
|
62
|
+
* @param findings - 审查发现列表
|
|
63
|
+
* @param knowledgeIndex - 可选的知识库索引管理器
|
|
64
|
+
* @param changedFiles - 可选的变更文件列表
|
|
65
|
+
* @param fileContents - 可选的文件内容映射
|
|
66
|
+
* @param taskId - 可选的任务 ID,用于摘要缓存
|
|
67
|
+
* @returns 分级后的发现列表、汇总摘要和抽检回溯
|
|
48
68
|
*/
|
|
49
69
|
function classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileContents, taskId) {
|
|
50
70
|
// 获取知识库中的 review_rule 条目用于匹配
|
|
@@ -72,7 +92,7 @@ function classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileCon
|
|
|
72
92
|
.map((f, i) => f.trust_level === "white_box" ? i : -1)
|
|
73
93
|
.filter((i) => i >= 0);
|
|
74
94
|
if (whiteIndices.length > 0) {
|
|
75
|
-
const spotIdx = whiteIndices[(
|
|
95
|
+
const spotIdx = whiteIndices[Math.floor(Math.random() * whiteIndices.length)];
|
|
76
96
|
classified[spotIdx] = {
|
|
77
97
|
...classified[spotIdx],
|
|
78
98
|
trust_level: "gray_box",
|
|
@@ -107,7 +127,13 @@ function classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileCon
|
|
|
107
127
|
spot_check_backtrace: spotCheckBacktrace,
|
|
108
128
|
};
|
|
109
129
|
}
|
|
110
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* 判断单条发现的信任级别。
|
|
132
|
+
* @param finding - 审查发现
|
|
133
|
+
* @param knowledgeRules - 知识库中的审查规则
|
|
134
|
+
* @param _fileContents - 文件内容映射(预留参数)
|
|
135
|
+
* @returns 信任级别和理由
|
|
136
|
+
*/
|
|
111
137
|
function determineTrustLevel(finding, knowledgeRules, _fileContents) {
|
|
112
138
|
// 黑盒判定: 无知识库支撑的 critical 发现
|
|
113
139
|
if (finding.severity === "critical") {
|
|
@@ -147,6 +173,7 @@ function determineTrustLevel(finding, knowledgeRules, _fileContents) {
|
|
|
147
173
|
*/
|
|
148
174
|
export async function reviewCode(input, tracker) {
|
|
149
175
|
const { changedFiles, projectPath, config, classification, fileContents, knowledgeIndex, review_role, uncertainty_triggers } = input;
|
|
176
|
+
console.error(`[soloForge] code_reviewer: 开始代码审查,${changedFiles.length} 个变更文件`);
|
|
150
177
|
// 能力 5: 角色检测 — 默认自审,自审模式下置信度降低 0.2
|
|
151
178
|
const role = review_role ?? "self_review";
|
|
152
179
|
const selfReviewConfidencePenalty = role === "self_review" ? -0.2 : 0;
|
|
@@ -154,6 +181,7 @@ export async function reviewCode(input, tracker) {
|
|
|
154
181
|
const riskAdjusted = classification?.risk === "high" || classification?.risk === "medium";
|
|
155
182
|
// 跳过逻辑: hotfix 类型自动跳过审查以加速修复
|
|
156
183
|
if (classification?.task_type === "hotfix") {
|
|
184
|
+
console.error("[soloForge] code_reviewer: hotfix 类型,跳过代码审查");
|
|
157
185
|
return {
|
|
158
186
|
task_id: "",
|
|
159
187
|
findings: [],
|
|
@@ -163,6 +191,7 @@ export async function reviewCode(input, tracker) {
|
|
|
163
191
|
};
|
|
164
192
|
}
|
|
165
193
|
if (changedFiles.length === 0) {
|
|
194
|
+
console.error("[soloForge] code_reviewer: 无变更文件,跳过审查");
|
|
166
195
|
return {
|
|
167
196
|
task_id: "",
|
|
168
197
|
findings: [],
|
|
@@ -198,6 +227,23 @@ export async function reviewCode(input, tracker) {
|
|
|
198
227
|
findingIdx += allFindings.length;
|
|
199
228
|
}
|
|
200
229
|
}
|
|
230
|
+
// : Simplicity/Surgical 原则检查 — 发现过度工程和 scope 外修改
|
|
231
|
+
const principleCtx = {
|
|
232
|
+
changed_files: changedFiles,
|
|
233
|
+
declared_scope: input.declared_scope ?? [],
|
|
234
|
+
};
|
|
235
|
+
const simplicityResult = checkSimplicityFirst(principleCtx);
|
|
236
|
+
if (simplicityResult.status === "failed") {
|
|
237
|
+
for (const finding of simplicityResult.findings) {
|
|
238
|
+
allFindings.push(makeFinding(findingIdx++, "all", undefined, "architecture", "warning", "[Simplicity First] 过度工程", finding, "减少不必要的复杂度引入"));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
const surgicalResult = checkSurgicalChanges(principleCtx);
|
|
242
|
+
if (surgicalResult.status === "failed") {
|
|
243
|
+
for (const finding of surgicalResult.findings) {
|
|
244
|
+
allFindings.push(makeFinding(findingIdx++, "all", undefined, "quality", "warning", "[Surgical Changes] Scope 外修改", finding, "只修改目标范围内的文件"));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
201
247
|
// 重新编号
|
|
202
248
|
const findings = allFindings.map((f, i) => ({ ...f, id: `R-${String(i + 1).padStart(3, "0")}` }));
|
|
203
249
|
// 记录技术债务
|
|
@@ -227,6 +273,7 @@ export async function reviewCode(input, tracker) {
|
|
|
227
273
|
}
|
|
228
274
|
// 机制 3: 认知减负路由 — 按信任分级过滤审查发现
|
|
229
275
|
const { classified: trustClassified, summary: trustSummary, spot_check_backtrace } = classifyFindingsByTrust(findings, knowledgeIndex, changedFiles, fileContents, input.task_id);
|
|
276
|
+
console.error(`[soloForge] code_reviewer: 审查完成 — 共 ${findings.length} 项发现(白盒 ${trustSummary.white_box_count},灰盒 ${trustSummary.gray_box_count},黑盒 ${trustSummary.black_box_count})`);
|
|
230
277
|
return {
|
|
231
278
|
task_id: "",
|
|
232
279
|
findings: trustClassified,
|
|
@@ -240,7 +287,15 @@ export async function reviewCode(input, tracker) {
|
|
|
240
287
|
trust_classification: trustSummary,
|
|
241
288
|
};
|
|
242
289
|
}
|
|
243
|
-
/**
|
|
290
|
+
/**
|
|
291
|
+
* 质量维度检查 — 检测 console.log 和 TypeScript any 类型使用。
|
|
292
|
+
* @param filePath - 文件路径
|
|
293
|
+
* @param content - 文件内容
|
|
294
|
+
* @param lines - 文件行数组
|
|
295
|
+
* @param ext - 文件扩展名
|
|
296
|
+
* @param startIdx - 发现编号起始值
|
|
297
|
+
* @returns 质量发现列表
|
|
298
|
+
*/
|
|
244
299
|
function checkQuality(filePath, content, lines, ext, startIdx) {
|
|
245
300
|
const findings = [];
|
|
246
301
|
let idx = startIdx;
|
|
@@ -262,7 +317,15 @@ function checkQuality(filePath, content, lines, ext, startIdx) {
|
|
|
262
317
|
}
|
|
263
318
|
return findings;
|
|
264
319
|
}
|
|
265
|
-
/**
|
|
320
|
+
/**
|
|
321
|
+
* 安全维度检查 — 检测 SQL 拼接、eval/Function 构造器和 innerHTML 赋值。
|
|
322
|
+
* @param filePath - 文件路径
|
|
323
|
+
* @param content - 文件内容
|
|
324
|
+
* @param lines - 文件行数组
|
|
325
|
+
* @param ext - 文件扩展名
|
|
326
|
+
* @param startIdx - 发现编号起始值
|
|
327
|
+
* @returns 安全发现列表
|
|
328
|
+
*/
|
|
266
329
|
function checkSecurity(filePath, content, lines, ext, startIdx) {
|
|
267
330
|
const findings = [];
|
|
268
331
|
let idx = startIdx;
|
|
@@ -290,7 +353,15 @@ function checkSecurity(filePath, content, lines, ext, startIdx) {
|
|
|
290
353
|
}
|
|
291
354
|
return findings;
|
|
292
355
|
}
|
|
293
|
-
/**
|
|
356
|
+
/**
|
|
357
|
+
* 性能维度检查 — 检测循环内数据库调用(N+1 问题)和 SELECT * 语句。
|
|
358
|
+
* @param filePath - 文件路径
|
|
359
|
+
* @param content - 文件内容
|
|
360
|
+
* @param lines - 文件行数组
|
|
361
|
+
* @param ext - 文件扩展名
|
|
362
|
+
* @param startIdx - 发现编号起始值
|
|
363
|
+
* @returns 性能发现列表
|
|
364
|
+
*/
|
|
294
365
|
function checkPerformance(filePath, content, lines, ext, startIdx) {
|
|
295
366
|
const findings = [];
|
|
296
367
|
let idx = startIdx;
|
|
@@ -330,7 +401,14 @@ function checkPerformance(filePath, content, lines, ext, startIdx) {
|
|
|
330
401
|
});
|
|
331
402
|
return findings;
|
|
332
403
|
}
|
|
333
|
-
/**
|
|
404
|
+
/**
|
|
405
|
+
* 技术债务维度检查 — 检测 TODO/FIXME/HACK/XXX 标记和过长文件(>500行)。
|
|
406
|
+
* @param filePath - 文件路径
|
|
407
|
+
* @param content - 文件内容
|
|
408
|
+
* @param lines - 文件行数组
|
|
409
|
+
* @param startIdx - 发现编号起始值
|
|
410
|
+
* @returns 技术债务发现列表
|
|
411
|
+
*/
|
|
334
412
|
function checkDebt(filePath, content, lines, startIdx) {
|
|
335
413
|
const findings = [];
|
|
336
414
|
let idx = startIdx;
|
|
@@ -414,6 +492,16 @@ function parseRulesFromEntry(body, fileName) {
|
|
|
414
492
|
}
|
|
415
493
|
return rules;
|
|
416
494
|
}
|
|
495
|
+
/**
|
|
496
|
+
* 从知识库加载审查规则并对代码进行匹配检查。
|
|
497
|
+
* @param filePath - 文件路径
|
|
498
|
+
* @param content - 文件内容
|
|
499
|
+
* @param lines - 文件行数组
|
|
500
|
+
* @param ext - 文件扩展名
|
|
501
|
+
* @param knowledgeIndex - 知识库索引管理器
|
|
502
|
+
* @param startIdx - 发现编号起始值
|
|
503
|
+
* @returns 知识规则发现列表(已去重)
|
|
504
|
+
*/
|
|
417
505
|
function checkKnowledgeRules(filePath, content, lines, ext, knowledgeIndex, startIdx) {
|
|
418
506
|
const findings = [];
|
|
419
507
|
let idx = startIdx;
|
|
@@ -483,7 +571,18 @@ function deduplicateFindings(findings) {
|
|
|
483
571
|
}
|
|
484
572
|
return [...seen.values()];
|
|
485
573
|
}
|
|
486
|
-
/**
|
|
574
|
+
/**
|
|
575
|
+
* 构造审查发现对象 — 生成统一格式的 ReviewFinding。
|
|
576
|
+
* @param idx - 发现编号
|
|
577
|
+
* @param file - 文件路径
|
|
578
|
+
* @param line - 行号
|
|
579
|
+
* @param dimension - 审查维度
|
|
580
|
+
* @param severity - 严重度
|
|
581
|
+
* @param title - 发现标题
|
|
582
|
+
* @param description - 详细描述
|
|
583
|
+
* @param suggestion - 可选的修复建议
|
|
584
|
+
* @returns 审查发现对象
|
|
585
|
+
*/
|
|
487
586
|
function makeFinding(idx, file, line, dimension, severity, title, description, suggestion) {
|
|
488
587
|
return { id: `R-${String(idx).padStart(3, "0")}`, file, line, dimension, severity, title, description, suggestion, is_debt: false };
|
|
489
588
|
}
|
|
@@ -535,7 +634,7 @@ async function readFiles(files, basePath) {
|
|
|
535
634
|
contents[file] = await fs.readFile(path.join(basePath, file), "utf-8");
|
|
536
635
|
}
|
|
537
636
|
catch {
|
|
538
|
-
|
|
637
|
+
console.error(`[soloForge] 代码审查: 文件读取失败,跳过 — ${path.join(basePath, file)}`);
|
|
539
638
|
}
|
|
540
639
|
}));
|
|
541
640
|
return contents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code_reviewer.js","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code_reviewer.js","sourceRoot":"","sources":["../../src/engine/code_reviewer.ts"],"names":[],"mappings":"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"}
|