soloforge 1.1.47 → 1.1.49
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 +11 -7
- package/dist/cli/adapter_writers.d.ts +5 -0
- package/dist/cli/adapter_writers.d.ts.map +1 -1
- package/dist/cli/adapter_writers.js +25 -0
- package/dist/cli/adapter_writers.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +3 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/scope_check.d.ts +4 -0
- package/dist/cli/scope_check.d.ts.map +1 -0
- package/dist/cli/scope_check.js +51 -0
- package/dist/cli/scope_check.js.map +1 -0
- package/dist/context/adapters/claude_code/hooks.d.ts +5 -7
- package/dist/context/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/context/adapters/claude_code/hooks.js +11 -9
- package/dist/context/adapters/claude_code/hooks.js.map +1 -1
- package/dist/context/adapters/shared/integration_guide.d.ts +3 -3
- package/dist/context/adapters/shared/integration_guide.js +18 -8
- package/dist/context/adapters/shared/integration_guide.js.map +1 -1
- package/dist/context/adapters/shared/workflow_template.js +1 -1
- package/dist/context/config/intent_schema.d.ts +793 -6
- package/dist/context/config/intent_schema.d.ts.map +1 -1
- package/dist/context/config/intent_schema.js +9 -0
- package/dist/context/config/intent_schema.js.map +1 -1
- package/dist/context/config/resolver.d.ts +9 -0
- package/dist/context/config/resolver.d.ts.map +1 -1
- package/dist/context/config/resolver.js +5 -0
- package/dist/context/config/resolver.js.map +1 -1
- package/dist/core/adversarial_review_store.d.ts +133 -0
- package/dist/core/adversarial_review_store.d.ts.map +1 -0
- package/dist/core/adversarial_review_store.js +161 -0
- package/dist/core/adversarial_review_store.js.map +1 -0
- package/dist/core/domain_transition.d.ts.map +1 -1
- package/dist/core/domain_transition.js +3 -0
- package/dist/core/domain_transition.js.map +1 -1
- package/dist/core/gate_record_store.d.ts +2 -0
- package/dist/core/gate_record_store.d.ts.map +1 -1
- package/dist/core/gate_record_store.js +17 -4
- package/dist/core/gate_record_store.js.map +1 -1
- package/dist/core/git_utils.d.ts +1 -1
- package/dist/core/git_utils.d.ts.map +1 -1
- package/dist/core/git_utils.js +8 -4
- package/dist/core/git_utils.js.map +1 -1
- package/dist/core/observer.d.ts.map +1 -1
- package/dist/core/observer.js +26 -2
- package/dist/core/observer.js.map +1 -1
- package/dist/core/task_context/constants.d.ts.map +1 -1
- package/dist/core/task_context/constants.js +4 -2
- package/dist/core/task_context/constants.js.map +1 -1
- package/dist/core/task_context/manager.d.ts +4 -4
- package/dist/core/task_context/manager.d.ts.map +1 -1
- package/dist/core/task_context/manager.js +69 -62
- package/dist/core/task_context/manager.js.map +1 -1
- package/dist/core/task_context/manager_setters.d.ts +2 -0
- package/dist/core/task_context/manager_setters.d.ts.map +1 -1
- package/dist/core/task_context/manager_setters.js +10 -0
- package/dist/core/task_context/manager_setters.js.map +1 -1
- package/dist/core/task_context/stage_fact_ownership.js +1 -1
- package/dist/core/task_context/stage_fact_ownership.js.map +1 -1
- package/dist/core/task_context/status_transitions.js +5 -5
- package/dist/core/task_context/status_transitions.js.map +1 -1
- package/dist/core/types.d.ts +29 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/waiver_store.d.ts +100 -0
- package/dist/core/waiver_store.d.ts.map +1 -0
- package/dist/core/waiver_store.js +185 -0
- package/dist/core/waiver_store.js.map +1 -0
- package/dist/domain/asset_registry/derived_registry.d.ts +10 -0
- package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
- package/dist/domain/asset_registry/derived_registry.js +10 -0
- package/dist/domain/asset_registry/derived_registry.js.map +1 -1
- package/dist/domain/asset_registry/derived_types.d.ts +27 -0
- package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
- package/dist/domain/asset_registry/derived_types.js +10 -0
- package/dist/domain/asset_registry/derived_types.js.map +1 -1
- package/dist/domain/build/engine.d.ts +1 -0
- package/dist/domain/build/engine.d.ts.map +1 -1
- package/dist/domain/build/engine.js +34 -4
- package/dist/domain/build/engine.js.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
- package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
- package/dist/domain/design/contract.d.ts.map +1 -1
- package/dist/domain/design/contract.js +11 -0
- package/dist/domain/design/contract.js.map +1 -1
- package/dist/domain/design/engine.d.ts +1 -0
- package/dist/domain/design/engine.d.ts.map +1 -1
- package/dist/domain/design/engine.js +35 -3
- package/dist/domain/design/engine.js.map +1 -1
- package/dist/domain/engine_helpers.d.ts +37 -0
- package/dist/domain/engine_helpers.d.ts.map +1 -1
- package/dist/domain/engine_helpers.js +86 -0
- package/dist/domain/engine_helpers.js.map +1 -1
- package/dist/domain/operate/engine.d.ts +1 -0
- package/dist/domain/operate/engine.d.ts.map +1 -1
- package/dist/domain/operate/engine.js +19 -2
- package/dist/domain/operate/engine.js.map +1 -1
- package/dist/domain/types.d.ts +6 -0
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js.map +1 -1
- package/dist/domain/verify/engine.d.ts +1 -0
- package/dist/domain/verify/engine.d.ts.map +1 -1
- package/dist/domain/verify/engine.js +18 -1
- package/dist/domain/verify/engine.js.map +1 -1
- package/dist/gate/certainty_gate.d.ts +10 -0
- package/dist/gate/certainty_gate.d.ts.map +1 -1
- package/dist/gate/certainty_gate.js.map +1 -1
- package/dist/gate/contracts/tool_actions.d.ts +11 -2
- package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
- package/dist/gate/contracts/tool_actions.js +12 -2
- package/dist/gate/contracts/tool_actions.js.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js +11 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
- package/dist/gate/executors/executors_annotation.d.ts +33 -10
- package/dist/gate/executors/executors_annotation.d.ts.map +1 -1
- package/dist/gate/executors/executors_annotation.js +119 -64
- package/dist/gate/executors/executors_annotation.js.map +1 -1
- package/dist/gate/executors/executors_artifact.d.ts +20 -1
- package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
- package/dist/gate/executors/executors_artifact.js +83 -123
- package/dist/gate/executors/executors_artifact.js.map +1 -1
- package/dist/gate/executors/executors_build.d.ts +2 -2
- package/dist/gate/executors/executors_build.d.ts.map +1 -1
- package/dist/gate/executors/executors_build.js +28 -126
- package/dist/gate/executors/executors_build.js.map +1 -1
- package/dist/gate/executors/executors_deploy.d.ts.map +1 -1
- package/dist/gate/executors/executors_deploy.js +35 -7
- package/dist/gate/executors/executors_deploy.js.map +1 -1
- package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
- package/dist/gate/executors/executors_external_command.js +54 -2
- package/dist/gate/executors/executors_external_command.js.map +1 -1
- package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
- package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
- package/dist/gate/executors/executors_field_mapping.js +191 -0
- package/dist/gate/executors/executors_field_mapping.js.map +1 -0
- package/dist/gate/executors/executors_jacoco.d.ts +3 -0
- package/dist/gate/executors/executors_jacoco.d.ts.map +1 -0
- package/dist/gate/executors/executors_jacoco.js +70 -0
- package/dist/gate/executors/executors_jacoco.js.map +1 -0
- package/dist/gate/executors/executors_prerequisite.d.ts +1 -1
- package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
- package/dist/gate/executors/executors_prerequisite.js +2 -62
- package/dist/gate/executors/executors_prerequisite.js.map +1 -1
- package/dist/gate/executors/executors_probe.d.ts +1 -0
- package/dist/gate/executors/executors_probe.d.ts.map +1 -1
- package/dist/gate/executors/executors_probe.js +1 -0
- package/dist/gate/executors/executors_probe.js.map +1 -1
- package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
- package/dist/gate/executors/executors_regex_scan.js +34 -13
- package/dist/gate/executors/executors_regex_scan.js.map +1 -1
- package/dist/gate/executors/executors_scope.d.ts +7 -3
- package/dist/gate/executors/executors_scope.d.ts.map +1 -1
- package/dist/gate/executors/executors_scope.js +20 -173
- package/dist/gate/executors/executors_scope.js.map +1 -1
- package/dist/gate/executors/executors_trace.d.ts +5 -0
- package/dist/gate/executors/executors_trace.d.ts.map +1 -1
- package/dist/gate/executors/executors_trace.js +295 -4
- package/dist/gate/executors/executors_trace.js.map +1 -1
- package/dist/gate/executors/index.d.ts.map +1 -1
- package/dist/gate/executors/index.js +4 -2
- package/dist/gate/executors/index.js.map +1 -1
- package/dist/gate/gate_engine.d.ts +20 -0
- package/dist/gate/gate_engine.d.ts.map +1 -1
- package/dist/gate/gate_engine.js +58 -6
- package/dist/gate/gate_engine.js.map +1 -1
- package/dist/gate/gate_registry_bridge.d.ts +12 -2
- package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
- package/dist/gate/gate_registry_bridge.js +7 -5
- package/dist/gate/gate_registry_bridge.js.map +1 -1
- package/dist/gate/middleware_gates.js +1 -1
- package/dist/gate/middleware_gates.js.map +1 -1
- package/dist/gate/release/gate_checks/checkAssetAntiBloat.d.ts.map +1 -1
- package/dist/gate/release/gate_checks/checkAssetAntiBloat.js +3 -0
- package/dist/gate/release/gate_checks/checkAssetAntiBloat.js.map +1 -1
- package/dist/gate/scope_resolver.d.ts +7 -0
- package/dist/gate/scope_resolver.d.ts.map +1 -1
- package/dist/gate/scope_resolver.js +1 -1
- package/dist/gate/scope_resolver.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/server/tools/index.d.ts.map +1 -1
- package/dist/server/tools/index.js +4 -2
- package/dist/server/tools/index.js.map +1 -1
- package/dist/server/tools/middleware.d.ts.map +1 -1
- package/dist/server/tools/middleware.js +1 -0
- package/dist/server/tools/middleware.js.map +1 -1
- package/dist/server/tools/schemas.d.ts +10 -0
- package/dist/server/tools/schemas.d.ts.map +1 -1
- package/dist/server/tools/schemas.js +10 -0
- package/dist/server/tools/schemas.js.map +1 -1
- package/dist/server/tools/sf_doctor.d.ts +8 -0
- package/dist/server/tools/sf_doctor.d.ts.map +1 -1
- package/dist/server/tools/sf_doctor.js +58 -2
- package/dist/server/tools/sf_doctor.js.map +1 -1
- package/dist/server/tools/sf_task.d.ts +83 -0
- package/dist/server/tools/sf_task.d.ts.map +1 -1
- package/dist/server/tools/sf_task.js +121 -4
- package/dist/server/tools/sf_task.js.map +1 -1
- package/dist/server/tools/sf_waiver.d.ts +31 -0
- package/dist/server/tools/sf_waiver.d.ts.map +1 -0
- package/dist/server/tools/sf_waiver.js +139 -0
- package/dist/server/tools/sf_waiver.js.map +1 -0
- package/dist/server/tools/sf_work.d.ts +194 -0
- package/dist/server/tools/sf_work.d.ts.map +1 -1
- package/dist/server/tools/sf_work.js +603 -40
- package/dist/server/tools/sf_work.js.map +1 -1
- package/dist/shared/paths.d.ts +4 -0
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +6 -0
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/traceability_id_utils.js +3 -3
- package/dist/shared/traceability_id_utils.js.map +1 -1
- package/dist/types/pipeline_types.d.ts +4 -1
- package/dist/types/pipeline_types.d.ts.map +1 -1
- package/dist/verify/audit/probe_executor.d.ts +4 -1
- package/dist/verify/audit/probe_executor.d.ts.map +1 -1
- package/dist/verify/audit/probe_executor.js +4 -1
- package/dist/verify/audit/probe_executor.js.map +1 -1
- package/dist/verify/audit/probe_rule.d.ts +3 -0
- package/dist/verify/audit/probe_rule.d.ts.map +1 -1
- package/dist/verify/audit/probe_rule.js +3 -0
- package/dist/verify/audit/probe_rule.js.map +1 -1
- package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
- package/dist/verify/contracts/decision_workshop.js +4 -3
- package/dist/verify/contracts/decision_workshop.js.map +1 -1
- package/dist/verify/contracts/runtime_state_recovery_registry.d.ts.map +1 -1
- package/dist/verify/contracts/runtime_state_recovery_registry.js +0 -1
- package/dist/verify/contracts/runtime_state_recovery_registry.js.map +1 -1
- package/package.json +1 -1
- package/templates/build/enforced.md +263 -68
- package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
- package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +1 -0
- package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +9 -4
- package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +28 -1
- package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +7 -0
- package/templates/design/enforced.md +204 -14
- package/templates/design//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +9 -7
- package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +4 -0
- package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +76 -0
- package/templates/design//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243.md +2 -0
- package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +24 -0
- package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
- package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
- package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +24 -0
- package/templates/operate/UI/350/247/206/350/247/211/351/252/214/346/224/266/347/272/252/345/276/213.md +85 -0
- package/templates/operate/enforced.md +42 -6
- package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +19 -1
- package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +10 -0
- package/templates/shared/enforced.md +37 -0
- package/templates/shared//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246.md +1 -1
- package/templates/shared//345/267/245/344/275/234/346/265/201/347/241/254/350/247/204/345/210/231/345/245/221/347/272/246.md +2 -2
- package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
- package/templates/verify/enforced.md +92 -262
- package/templates/verify//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245.md +1 -0
- package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +12 -2
- package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +3 -1
- package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
- package/dist/core/scope_checker.d.ts +0 -29
- package/dist/core/scope_checker.d.ts.map +0 -1
- package/dist/core/scope_checker.js +0 -53
- package/dist/core/scope_checker.js.map +0 -1
- package/dist/gate/executors/executors_openapi_sync.d.ts +0 -23
- package/dist/gate/executors/executors_openapi_sync.d.ts.map +0 -1
- package/dist/gate/executors/executors_openapi_sync.js +0 -145
- package/dist/gate/executors/executors_openapi_sync.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_probe.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_probe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"executors_probe.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,gDAAgD;AAChD,wBAAgB,qBAAqB,IAAI,IAAI,CA4C5C"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* - 加载错误(无 verification_layer 等)由 probe-load-error 恒 fail 暴露,不静默。
|
|
14
14
|
*
|
|
15
15
|
* 数据流:GateCheck(executor="probe", probe_rule=ProbeRule) → 跑探针 → CheckResult(executed_by="code")
|
|
16
|
+
* 持久化:无
|
|
16
17
|
*/
|
|
17
18
|
import { gateExecutors } from "../gate_executors.js";
|
|
18
19
|
import { PROBE_EXECUTORS, getChangedFiles } from "../../verify/audit/probe_executor.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_probe.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_probe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"executors_probe.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAExF,gDAAgD;AAChD,MAAM,UAAU,qBAAqB;IACnC,gDAAgD;IAChD,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAgB,EAAE,GAAsB,EAAwB,EAAE;QACvG,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACvG,CAAC;QACD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAClH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;YAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;gBAC/D,OAAO;oBACL,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK;iBACvE,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,OAAO,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC1I,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6CAA6C;YAC7C,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAC1E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAgB,EAAwB,EAAE,CAAC,CAAC;QAC5F,QAAQ,EAAE,KAAK,CAAC,EAAE;QAClB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,cAAc,KAAK,CAAC,IAAI,EAAE;KAClC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_regex_scan.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_regex_scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"executors_regex_scan.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_regex_scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAqGjD;AA8CD,kBAAkB;AAClB,wBAAgB,QAAQ,CACtB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BxD;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAC1C,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,cA2GrC,CAAC"}
|
|
@@ -16,6 +16,8 @@ import path from "node:path";
|
|
|
16
16
|
import { execSync } from "node:child_process";
|
|
17
17
|
import { debug } from "../../shared/logger.js";
|
|
18
18
|
import matter from "gray-matter";
|
|
19
|
+
import { resolveArtifactPath } from "./executors_artifact.js";
|
|
20
|
+
import { checkPrerequisite } from "./shared.js";
|
|
19
21
|
/**
|
|
20
22
|
* 从规则文件中解析指定 check ID 的 pattern 字段。
|
|
21
23
|
*
|
|
@@ -276,20 +278,39 @@ export const executeRegexPatternScan = async (check, ctx) => {
|
|
|
276
278
|
};
|
|
277
279
|
}
|
|
278
280
|
// 3. 获取扫描目标
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
281
|
+
// 带 required_artifact 时只扫该产物(含 .md 文档,支持文档级正则如 REQ-ID-FMT 查 REQ-ID 格式);
|
|
282
|
+
// 否则扫 git diff 变更源码(跳过 .md/.json/.yaml 非代码文件,避免文档噪音)。
|
|
283
|
+
let targetFiles;
|
|
284
|
+
if (check.required_artifact) {
|
|
285
|
+
const resolved = resolveArtifactPath(check.required_artifact, projectRoot);
|
|
286
|
+
if (!resolved || !fs.existsSync(resolved)) {
|
|
287
|
+
const prereq = checkPrerequisite(check, true, "regex_pattern_scan", `未找到产物 ${check.required_artifact}(required_artifact 指定)`);
|
|
288
|
+
if (prereq)
|
|
289
|
+
return prereq;
|
|
290
|
+
return {
|
|
291
|
+
check_id: checkId,
|
|
292
|
+
executed_by: "code",
|
|
293
|
+
passed: false,
|
|
294
|
+
error: `未找到产物 ${check.required_artifact}(required_artifact 指定),无法扫描`,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
targetFiles = [path.relative(projectRoot, resolved)];
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
targetFiles = getGitDiffFiles(projectRoot);
|
|
301
|
+
if (targetFiles.length === 0) {
|
|
302
|
+
return {
|
|
303
|
+
check_id: checkId,
|
|
304
|
+
executed_by: "code",
|
|
305
|
+
passed: true,
|
|
306
|
+
evidence: "无变更文件,跳过扫描",
|
|
307
|
+
};
|
|
308
|
+
}
|
|
287
309
|
}
|
|
288
|
-
// 4.
|
|
310
|
+
// 4. 扫描(required_artifact 模式不跳过 .md;git diff 模式跳过非代码文件)
|
|
289
311
|
const allMatches = [];
|
|
290
|
-
for (const file of
|
|
291
|
-
|
|
292
|
-
if (file.endsWith(".md") || file.endsWith(".json") || file.endsWith(".yaml")) {
|
|
312
|
+
for (const file of targetFiles) {
|
|
313
|
+
if (!check.required_artifact && (file.endsWith(".md") || file.endsWith(".json") || file.endsWith(".yaml"))) {
|
|
293
314
|
continue;
|
|
294
315
|
}
|
|
295
316
|
allMatches.push(...scanFile(projectRoot, file, pattern));
|
|
@@ -300,7 +321,7 @@ export const executeRegexPatternScan = async (check, ctx) => {
|
|
|
300
321
|
check_id: checkId,
|
|
301
322
|
executed_by: "code",
|
|
302
323
|
passed: true,
|
|
303
|
-
evidence: `扫描 ${
|
|
324
|
+
evidence: `扫描 ${targetFiles.length} 个文件,未发现违规`,
|
|
304
325
|
};
|
|
305
326
|
}
|
|
306
327
|
const evidenceLines = allMatches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_regex_scan.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_regex_scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"executors_regex_scan.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_regex_scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 范围类执行器 —
|
|
2
|
+
* 范围类执行器 — 偷懒模式检测。
|
|
3
3
|
*
|
|
4
4
|
* 职责边界:
|
|
5
|
-
* - 负责:
|
|
5
|
+
* - 负责:lazy_pattern_check
|
|
6
6
|
* - 不负责:不涉及部署/产物/构建/追踪/前置条件类 executor
|
|
7
7
|
*
|
|
8
8
|
* 被谁调用:index.ts(registerAllExecutors)
|
|
9
|
-
* 调用谁:shared.ts(
|
|
9
|
+
* 调用谁:shared.ts(gateExecutors 等)、verify/contracts/lazy_pattern_detector
|
|
10
10
|
*
|
|
11
11
|
* 数据流:GateCheck + EvaluationContext → git diff 文件列表 → 范围比对/偷懒扫描 → CheckResult
|
|
12
12
|
* 持久化:无直接持久化(通过 execa 调用 git,动态导入 lazy_pattern_detector)
|
|
13
13
|
*/
|
|
14
14
|
/** 注册范围类执行器 */
|
|
15
15
|
export declare function registerScopeExecutors(): void;
|
|
16
|
+
/**
|
|
17
|
+
* 从切片计划加载当前切片的涉及文件列表。
|
|
18
|
+
* 唯一数据源:docs/architecture/02-开发切片计划.md(.soloforge/output/*.yaml 为无生成器死链路,已清除)。
|
|
19
|
+
*/
|
|
16
20
|
//# sourceMappingURL=executors_scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_scope.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,eAAe;AACf,wBAAgB,sBAAsB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"executors_scope.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,eAAe;AACf,wBAAgB,sBAAsB,IAAI,IAAI,CAoG7C;AAID;;;GAGG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 范围类执行器 —
|
|
2
|
+
* 范围类执行器 — 偷懒模式检测。
|
|
3
3
|
*
|
|
4
4
|
* 职责边界:
|
|
5
|
-
* - 负责:
|
|
5
|
+
* - 负责:lazy_pattern_check
|
|
6
6
|
* - 不负责:不涉及部署/产物/构建/追踪/前置条件类 executor
|
|
7
7
|
*
|
|
8
8
|
* 被谁调用:index.ts(registerAllExecutors)
|
|
9
|
-
* 调用谁:shared.ts(
|
|
9
|
+
* 调用谁:shared.ts(gateExecutors 等)、verify/contracts/lazy_pattern_detector
|
|
10
10
|
*
|
|
11
11
|
* 数据流:GateCheck + EvaluationContext → git diff 文件列表 → 范围比对/偷懒扫描 → CheckResult
|
|
12
12
|
* 持久化:无直接持久化(通过 execa 调用 git,动态导入 lazy_pattern_detector)
|
|
@@ -14,111 +14,10 @@
|
|
|
14
14
|
import { execa } from "execa";
|
|
15
15
|
import { existsSync, readFileSync } from "node:fs";
|
|
16
16
|
import { join } from "node:path";
|
|
17
|
-
import {
|
|
17
|
+
import { debug } from "../../shared/logger.js";
|
|
18
18
|
import { gateExecutors } from "../gate_executors.js";
|
|
19
19
|
/** 注册范围类执行器 */
|
|
20
20
|
export function registerScopeExecutors() {
|
|
21
|
-
// ═══════════════════════════════════════════
|
|
22
|
-
// 14. 文件范围检查 — 比对 git diff 与切片计划文件列表
|
|
23
|
-
// 替代 git_diff 在 CODE-S02 / CODE-I01 / SLICE-E03 上的不足
|
|
24
|
-
// ═══════════════════════════════════════════
|
|
25
|
-
gateExecutors.register("file_scope_check", async (check, ctx) => {
|
|
26
|
-
const cwd = ctx.projectRoot;
|
|
27
|
-
// 确认是 git 仓库
|
|
28
|
-
try {
|
|
29
|
-
await execa("git", ["rev-parse", "--is-inside-work-tree"], { cwd, timeout: 5_000 });
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return {
|
|
33
|
-
check_id: check.id,
|
|
34
|
-
executed_by: "code",
|
|
35
|
-
passed: true,
|
|
36
|
-
evidence: degradeLog("file_scope_check", "非 git 仓库,降级放行"),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
// 获取实际变更文件列表
|
|
41
|
-
const { stdout: diffOutput } = await execa("git", ["diff", "HEAD", "--name-only"], { cwd, timeout: 15_000 });
|
|
42
|
-
const changedFiles = diffOutput.split("\n").filter(Boolean);
|
|
43
|
-
if (changedFiles.length === 0) {
|
|
44
|
-
return {
|
|
45
|
-
check_id: check.id,
|
|
46
|
-
executed_by: "code",
|
|
47
|
-
passed: false,
|
|
48
|
-
error: "无文件变更(git diff --name-only 为空)",
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// 从切片计划加载当前切片的文件列表
|
|
52
|
-
const slicePlanFiles = loadSlicePlanFiles(ctx);
|
|
53
|
-
// 无切片计划文件列表时,退化为基础变更检查
|
|
54
|
-
if (slicePlanFiles.length === 0) {
|
|
55
|
-
return {
|
|
56
|
-
check_id: check.id,
|
|
57
|
-
executed_by: "code",
|
|
58
|
-
passed: true,
|
|
59
|
-
evidence: `有 ${changedFiles.length} 个文件变更(无切片计划文件列表,跳过范围比对)`,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
// 计算偏差:变更文件中不在切片计划内的
|
|
63
|
-
const outOfScope = changedFiles.filter((f) => !slicePlanFiles.includes(f));
|
|
64
|
-
// 从 rule 提取容忍度(默认 1,避免掩盖蔓延)
|
|
65
|
-
// rule 格式: "偏差≤2 文件" / "无计划外变更"
|
|
66
|
-
// FLAW-EXEC-05 说明:默认 tolerance=1 而非 0,原因:
|
|
67
|
-
// 实际项目中存在合理的计划外变更(如:配置文件、锁文件、IDE 生成文件等),
|
|
68
|
-
// tolerance=0 会导致这些微小变更全部失败,产生大量误报。
|
|
69
|
-
// 如果需要零容忍,在 gate YAML 中使用"无计划外变更"关键字可强制 tolerance=0。
|
|
70
|
-
const toleranceMatch = check.rule.match(/偏差[≤<=]+\s*(\d+)/);
|
|
71
|
-
const tolerance = toleranceMatch ? parseInt(toleranceMatch[1], 10) : 1;
|
|
72
|
-
const strictMatch = /无计划外变更/.test(check.rule);
|
|
73
|
-
const effectiveTolerance = strictMatch ? 0 : tolerance;
|
|
74
|
-
// 超出容忍度时报告,范围外文件数等于容忍度时给出 warning
|
|
75
|
-
if (outOfScope.length > effectiveTolerance) {
|
|
76
|
-
return {
|
|
77
|
-
check_id: check.id,
|
|
78
|
-
executed_by: "code",
|
|
79
|
-
passed: false,
|
|
80
|
-
error: `变更文件 ${outOfScope.length} 个超出切片范围(容忍度: ${effectiveTolerance}): ${outOfScope.join(", ")}`,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
// 切片隔离检查:是否有变更落在已通过切片的文件范围内
|
|
84
|
-
const isolationCheck = check.rule.includes("已通过切片") || check.rule.includes("交集为空");
|
|
85
|
-
if (isolationCheck) {
|
|
86
|
-
// 从 pipelineState 获取已通过切片的产出文件
|
|
87
|
-
const protectedFiles = getProtectedFiles(ctx);
|
|
88
|
-
const collision = changedFiles.filter((f) => protectedFiles.includes(f));
|
|
89
|
-
if (collision.length > 0) {
|
|
90
|
-
return {
|
|
91
|
-
check_id: check.id,
|
|
92
|
-
executed_by: "code",
|
|
93
|
-
passed: false,
|
|
94
|
-
error: `当前切片修改了已通过切片的文件(违反隔离): ${collision.join(", ")}`,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const scopeWarning = outOfScope.length > 0
|
|
99
|
-
? ` [警告] ${outOfScope.length} 个计划外变更: ${outOfScope.join(", ")}`
|
|
100
|
-
: "";
|
|
101
|
-
return {
|
|
102
|
-
check_id: check.id,
|
|
103
|
-
executed_by: "code",
|
|
104
|
-
passed: true,
|
|
105
|
-
evidence: `变更 ${changedFiles.length} 个文件,范围外 ${outOfScope.length} 个(≤${effectiveTolerance}),切片隔离通过${scopeWarning}`,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
return {
|
|
110
|
-
check_id: check.id,
|
|
111
|
-
executed_by: "code",
|
|
112
|
-
passed: true,
|
|
113
|
-
evidence: degradeLog("file_scope_check", `异常: ${err instanceof Error ? err.message : String(err)}`),
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
// ═══════════════════════════════════════════
|
|
118
|
-
// 15. 偷懒模式检测 — 扫描 git diff 变更文件
|
|
119
|
-
// 复用 detectLazyPatterns 纯函数(check-write.ts 同源)
|
|
120
|
-
// 方案 A: 先干后验 — AI 写完后 sf_gate 调此执行器检查
|
|
121
|
-
// ═══════════════════════════════════════════
|
|
122
21
|
gateExecutors.register("lazy_pattern_check", async (check, ctx) => {
|
|
123
22
|
const cwd = ctx.projectRoot;
|
|
124
23
|
// 确认是 git 仓库
|
|
@@ -151,6 +50,7 @@ export function registerScopeExecutors() {
|
|
|
151
50
|
let totalWarnings = 0;
|
|
152
51
|
const details = [];
|
|
153
52
|
let scannedCount = 0;
|
|
53
|
+
let skippedUnreadable = 0;
|
|
154
54
|
for (const file of changedFiles) {
|
|
155
55
|
const fullPath = join(cwd, file);
|
|
156
56
|
if (!existsSync(fullPath))
|
|
@@ -169,10 +69,21 @@ export function registerScopeExecutors() {
|
|
|
169
69
|
details.push(` ${file}:L${hf.line_number} [${hf.pattern}] ${hf.message}`);
|
|
170
70
|
}
|
|
171
71
|
}
|
|
172
|
-
catch {
|
|
173
|
-
//
|
|
72
|
+
catch (readErr) {
|
|
73
|
+
// F-02 修复:单文件读取失败不静默——计数 + log(原空 catch 在全部不可读时 0 hard fail 假通过)
|
|
74
|
+
skippedUnreadable++;
|
|
75
|
+
debug("lazy_pattern", `文件读取失败跳过 ${file}: ${readErr instanceof Error ? readErr.message : String(readErr)}`);
|
|
174
76
|
}
|
|
175
77
|
}
|
|
78
|
+
// F-02 根治:全部变更文件都读取失败 → 无法验证,fail-closed(非"全跳过=通过")
|
|
79
|
+
if (scannedCount === 0 && skippedUnreadable > 0 && skippedUnreadable >= changedFiles.length) {
|
|
80
|
+
return {
|
|
81
|
+
check_id: check.id,
|
|
82
|
+
executed_by: "code",
|
|
83
|
+
passed: false,
|
|
84
|
+
error: `全部 ${changedFiles.length} 个变更文件读取失败,无法执行偷懒模式扫描(fail-closed)`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
176
87
|
if (totalHardFails > 0) {
|
|
177
88
|
return {
|
|
178
89
|
check_id: check.id,
|
|
@@ -193,8 +104,8 @@ export function registerScopeExecutors() {
|
|
|
193
104
|
return {
|
|
194
105
|
check_id: check.id,
|
|
195
106
|
executed_by: "code",
|
|
196
|
-
passed:
|
|
197
|
-
|
|
107
|
+
passed: false,
|
|
108
|
+
error: `lazy_pattern_check 执行异常(fail-closed 不放行):${err instanceof Error ? err.message : String(err)}`,
|
|
198
109
|
};
|
|
199
110
|
}
|
|
200
111
|
});
|
|
@@ -204,68 +115,4 @@ export function registerScopeExecutors() {
|
|
|
204
115
|
* 从切片计划加载当前切片的涉及文件列表。
|
|
205
116
|
* 唯一数据源:docs/architecture/02-开发切片计划.md(.soloforge/output/*.yaml 为无生成器死链路,已清除)。
|
|
206
117
|
*/
|
|
207
|
-
function loadSlicePlanFiles(ctx) {
|
|
208
|
-
if (!ctx.sliceId)
|
|
209
|
-
return [];
|
|
210
|
-
const normalizedId = ctx.sliceId.toUpperCase().replace(/[-_]/g, "-");
|
|
211
|
-
const slicePlanPath = join(ctx.projectRoot, "docs", "architecture", "02-开发切片计划.md");
|
|
212
|
-
if (!existsSync(slicePlanPath))
|
|
213
|
-
return [];
|
|
214
|
-
try {
|
|
215
|
-
const content = readFileSync(slicePlanPath, "utf-8");
|
|
216
|
-
return extractSliceFilesFromMarkdown(content, normalizedId);
|
|
217
|
-
}
|
|
218
|
-
catch {
|
|
219
|
-
return [];
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* 从切片计划 markdown 提取当前切片的涉及文件列表。
|
|
224
|
-
* 解析「文件汇总」表:| 文件路径 | 涉及切片 | 变更类型 | 上下文边界 |,
|
|
225
|
-
* 取「涉及切片」列含目标切片 ID 的行的「文件路径」列;解析不到则返回空(file_scope_check 降级)。
|
|
226
|
-
*/
|
|
227
|
-
function extractSliceFilesFromMarkdown(content, normalizedId) {
|
|
228
|
-
const files = new Set();
|
|
229
|
-
const lines = content.split("\n");
|
|
230
|
-
let inFileTable = false;
|
|
231
|
-
let pathCol = -1;
|
|
232
|
-
let sliceCol = -1;
|
|
233
|
-
for (const line of lines) {
|
|
234
|
-
const trimmed = line.trim();
|
|
235
|
-
if (!trimmed.startsWith("|")) {
|
|
236
|
-
inFileTable = false;
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
const raw = trimmed.split("|");
|
|
240
|
-
if (raw[0] === "")
|
|
241
|
-
raw.shift();
|
|
242
|
-
if (raw[raw.length - 1] === "")
|
|
243
|
-
raw.pop();
|
|
244
|
-
const cols = raw.map((c) => c.trim());
|
|
245
|
-
if (cols.some((c) => c.includes("文件路径")) || cols.some((c) => c.includes("涉及切片"))) {
|
|
246
|
-
inFileTable = true;
|
|
247
|
-
pathCol = cols.findIndex((c) => c.includes("文件路径"));
|
|
248
|
-
sliceCol = cols.findIndex((c) => c.includes("涉及切片"));
|
|
249
|
-
continue;
|
|
250
|
-
}
|
|
251
|
-
if (!inFileTable || pathCol < 0 || sliceCol < 0 || sliceCol >= cols.length)
|
|
252
|
-
continue;
|
|
253
|
-
const sliceCell = (cols[sliceCol] ?? "").toUpperCase().replace(/[-_]/g, "-");
|
|
254
|
-
if (sliceCell.includes(normalizedId)) {
|
|
255
|
-
const filePath = cols[pathCol] ?? "";
|
|
256
|
-
if (filePath && !filePath.includes("<!--") && filePath !== "文件路径" && filePath.length > 2) {
|
|
257
|
-
files.add(filePath);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return [...files];
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* 获取已通过切片的受保护文件列表(用于切片隔离检查)。
|
|
265
|
-
* 域架构:从 GateRecord 派生(暂未传入 EvaluationContext),返回空列表。
|
|
266
|
-
*/
|
|
267
|
-
function getProtectedFiles(_ctx) {
|
|
268
|
-
// 域架构模式:受保护文件列表由 GateRecordStore 产出文件追踪保障
|
|
269
|
-
return [];
|
|
270
|
-
}
|
|
271
118
|
//# sourceMappingURL=executors_scope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_scope.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"executors_scope.js","sourceRoot":"","sources":["../../../src/gate/executors/executors_scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
* 归属:architecture/(决策/架构/切片) · design/(DB/API/详细设计) · audits/(审查) · context/(需求) · analyze/*(原型多端) · api/(openapi)
|
|
16
16
|
* 导出供 document_structure 复用(executors_artifact.ts),避免路径映射双源。 */
|
|
17
17
|
export declare const CROSS_VALIDATION_ARTIFACT_PATHS: Record<string, string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* 解析产物名/路径到真实文件路径。
|
|
20
|
+
* 候选 1:模版名映射;候选 2:直接作为 docs/ 下路径;候选 3:作为项目根相对路径。
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveCrossValidationArtifact(artifact: string | undefined, projectRoot: string): string[];
|
|
18
23
|
/** 注册交叉校验执行器 */
|
|
19
24
|
export declare function registerTraceExecutors(): void;
|
|
20
25
|
//# sourceMappingURL=executors_trace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executors_trace.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"executors_trace.d.ts","sourceRoot":"","sources":["../../../src/gate/executors/executors_trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH;;iEAEiE;AACjE,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAqBpE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CA0BV;AA4ED,gBAAgB;AAChB,wBAAgB,sBAAsB,IAAI,IAAI,CA+U7C"}
|