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":"manager_setters.d.ts","sourceRoot":"","sources":["../../../src/core/task_context/manager_setters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manager_setters.d.ts","sourceRoot":"","sources":["../../../src/core/task_context/manager_setters.ts"],"names":[],"mappings":"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"}
|
|
@@ -206,6 +206,16 @@ export function createSetterMethods(load, save, withLock) {
|
|
|
206
206
|
return ctx;
|
|
207
207
|
});
|
|
208
208
|
},
|
|
209
|
+
async setArchitectureDecisionWorkshop(taskId, contract) {
|
|
210
|
+
return withLock(taskId, async () => {
|
|
211
|
+
const ctx = await load(taskId);
|
|
212
|
+
if (!ctx)
|
|
213
|
+
return null;
|
|
214
|
+
ctx.architecture_decision_workshop = contract;
|
|
215
|
+
await save(ctx);
|
|
216
|
+
return ctx;
|
|
217
|
+
});
|
|
218
|
+
},
|
|
209
219
|
// R-地基 2:reset-to-stage / rollback / 核弹reset 共用根因能力(清阶段归属字段+全局运行时态,保留基础设施)
|
|
210
220
|
async resetConfirmationsFromStage(taskId, targetStage) {
|
|
211
221
|
return withLock(taskId, async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager_setters.js","sourceRoot":"","sources":["../../../src/core/task_context/manager_setters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAG1F,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAM/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,GAAgB;IAChE,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,IAAI,GAAG,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,oBAAoB;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"manager_setters.js","sourceRoot":"","sources":["../../../src/core/task_context/manager_setters.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export const GLOBAL_RUNTIME_FACTS = [
|
|
|
58
58
|
"rework_history", "phase_directive",
|
|
59
59
|
"code_quality_result", "omission_scan_result", "degradation_event",
|
|
60
60
|
"review_knowledge_hints", "local_acceptance_evidence", "core_experience_evaluation",
|
|
61
|
-
"
|
|
61
|
+
"repair_reverify_directive",
|
|
62
62
|
];
|
|
63
63
|
/**
|
|
64
64
|
* 保留字段(基础设施 / 需求分析前产出 / 全流程审计证据)— reset 不动。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage_fact_ownership.js","sourceRoot":"","sources":["../../../src/core/task_context/stage_fact_ownership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAGpE;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,0CAA0C;IAC1C,wBAAwB,EAAE,QAAQ;IAClC,wBAAwB,EAAE,QAAQ;IAClC,iBAAiB,EAAE,QAAQ;IAC3B,8BAA8B,EAAE,QAAQ;IACxC,kBAAkB,EAAE,QAAQ;IAC5B,sBAAsB,EAAE,QAAQ;IAChC,4BAA4B,EAAE,QAAQ;IACtC,0BAA0B,EAAE,QAAQ;IACpC,0BAA0B,EAAE,QAAQ;IACpC,gBAAgB,EAAE,QAAQ;IAC1B,oBAAoB,EAAE,QAAQ;IAC9B,kBAAkB,EAAE,QAAQ;IAC5B,sBAAsB,EAAE,QAAQ;IAChC,QAAQ,EAAE,QAAQ;IAClB,kCAAkC;IAClC,iBAAiB,EAAE,OAAO;IAC1B,kBAAkB,EAAE,OAAO;IAC3B,mCAAmC,EAAE,OAAO;IAC5C,+BAA+B,EAAE,OAAO;IACxC,+BAA+B,EAAE,OAAO;IACxC,2BAA2B,EAAE,OAAO;IACpC,oBAAoB,EAAE,OAAO;IAC7B,yBAAyB,EAAE,OAAO;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,WAAW,EAAE,cAAc,EAAE,qBAAqB;IAClD,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,gBAAgB;IACjE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB;IACxD,gBAAgB,EAAE,iBAAiB;IACnC,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB;IAClE,wBAAwB,EAAE,2BAA2B,EAAE,4BAA4B;IACnF,
|
|
1
|
+
{"version":3,"file":"stage_fact_ownership.js","sourceRoot":"","sources":["../../../src/core/task_context/stage_fact_ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,11 +51,11 @@ export function validateAndUpdateStatus(ctx, targetStatus, _templatesDir, _syste
|
|
|
51
51
|
throw new Error(`事实缺失: executing → verifying 需要 execution evidence (changed_files / failure_history / no_change_artifact)`);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
// ── 已移除的 verifying → done/learning 自陈门禁(确定性边界原则修复) ──
|
|
55
|
+
// 原: 要求 ctx.skip_verification_reason 非空才能推进。但该字段是 AI 自陈(写任意
|
|
56
|
+
// 字符串即过),是假守卫。真守卫交给交付门 delivery_readiness(确定性,查
|
|
57
|
+
// latestVerify.passed)。状态层不靠自陈,符合确定性边界原则。
|
|
58
|
+
// 如未来需恢复,须改用确定性产物校验(如 GateRecord passed),不得再用自陈字段。
|
|
59
59
|
if (ctx.status === "failed" && targetStatus === "expanding") {
|
|
60
60
|
if (!ctx.classification) {
|
|
61
61
|
throw new Error(`事实缺失: failed → expanding 需要 classification`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status_transitions.js","sourceRoot":"","sources":["../../../src/core/task_context/status_transitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,iEAAiE;AACjE,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAgB,EAChB,YAAmC,EACnC,aAAsB,EACtB,WAA8C;IAE9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CACtB,WAAW,GAAG,CAAC,MAAM,MAAM,YAAY,EAAE,EACzC,2BAA2B,EAC3B,OAAO,EACP,gCAAgC,CACjC,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,0EAA0E;IAC1E,gFAAgF;IAChF,0DAA0D;IAC1D,yEAAyE;IACzE,+EAA+E;IAE/E,oBAAoB;IACpB,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACpF,MAAM,mBAAmB,GAAG,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;QACvE,IAAI,CAAC,eAAe,IAAI,CAAC,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"status_transitions.js","sourceRoot":"","sources":["../../../src/core/task_context/status_transitions.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -53,6 +53,12 @@ export interface GateFinding {
|
|
|
53
53
|
severity: "error" | "warning" | "info";
|
|
54
54
|
/** 检查结果描述 */
|
|
55
55
|
message: string;
|
|
56
|
+
/** 是否已被豁免(waiver 标记):保留 passed=false 真相供 Reflexion,但不阻断 gate(不进 blockingErrors) */
|
|
57
|
+
waived?: boolean;
|
|
58
|
+
/** 豁免该 finding 的 waiver_id(审计追溯) */
|
|
59
|
+
waiver_id?: string;
|
|
60
|
+
/** 豁免理由(审计追溯) */
|
|
61
|
+
waiver_reason?: string;
|
|
56
62
|
}
|
|
57
63
|
/** 门禁记录 — 每个门禁的执行结果,持久化到 .soloforge/gates/ */
|
|
58
64
|
export interface GateRecord {
|
|
@@ -78,6 +84,12 @@ export interface GateRecord {
|
|
|
78
84
|
recovery_guidance?: string;
|
|
79
85
|
/** 评估时间戳 */
|
|
80
86
|
evaluated_at: number;
|
|
87
|
+
/** 验证时的门禁规则集指纹(该域全部 enforced check 的 hash;规则变 → doctor 标 rules_stale 需重验) */
|
|
88
|
+
ruleset_hash?: string;
|
|
89
|
+
/** 被豁免的 finding 子集(waived=true 的 finding,审计便于 doctor 统计;仍保留在 findings 里供 Reflexion 看真相) */
|
|
90
|
+
waived_findings?: GateFinding[];
|
|
91
|
+
/** 本次评估应用的 waiver_id 列表(审计) */
|
|
92
|
+
waiver_ids?: string[];
|
|
81
93
|
}
|
|
82
94
|
/** 产物声明 — 描述一个域可以产出的产物 */
|
|
83
95
|
export interface ArtifactDeclaration {
|
|
@@ -93,6 +105,12 @@ export interface ArtifactDeclaration {
|
|
|
93
105
|
template: string;
|
|
94
106
|
/** 仅特定技术栈时需要(不设 = 所有技术栈都需要) */
|
|
95
107
|
tech_stack_filter?: string[];
|
|
108
|
+
/** 同域前置依赖(kind 列表)。依赖已产出但未 verified → 该产物阻塞;依赖未产出(按需)→ 放行 */
|
|
109
|
+
depends_on?: string[];
|
|
110
|
+
/** 附件文件(机器读等,与主产物同生命周期;scope 写入 + verify 完整性校验自动覆盖,防附件遗漏)。如 api_specification 的 openapi.yaml */
|
|
111
|
+
companion_files?: string[];
|
|
112
|
+
/** 引用文件(主产物引用的支撑文档;verify 完整性校验查存在,防引用悬空)。如 design_doc 的 ADR */
|
|
113
|
+
references?: string[];
|
|
96
114
|
}
|
|
97
115
|
/** 上游依赖要求 */
|
|
98
116
|
export interface UpstreamRequirement {
|
|
@@ -132,5 +150,16 @@ export interface DerivedState {
|
|
|
132
150
|
stale_gates: GateRecord[];
|
|
133
151
|
/** 补产后要回到的恢复点 */
|
|
134
152
|
pending_return?: PendingReturn;
|
|
153
|
+
/** 被同域未验证依赖阻塞的产物(如 slice_plan 等 database_design/api_specification 验证) */
|
|
154
|
+
blocked_artifacts?: Array<{
|
|
155
|
+
artifact: ArtifactDeclaration;
|
|
156
|
+
blocked_by: string[];
|
|
157
|
+
}>;
|
|
158
|
+
/** 有序推进计划(verify→act→wait 拓扑序:先补完欠验证不跳步、再 act 新产物、wait 阻塞最后,客户端 AI 照此推进保证两窗口一致) */
|
|
159
|
+
ordered_plan?: Array<{
|
|
160
|
+
kind: string;
|
|
161
|
+
action: "act" | "verify" | "wait";
|
|
162
|
+
reason?: string;
|
|
163
|
+
}>;
|
|
135
164
|
}
|
|
136
165
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,iBAAiB;AACjB,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnE,sBAAsB;AACtB,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EAAsD,CAAC;AAEpG,2BAA2B;AAC3B,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAgB,CAAC;AAE/D,eAAe;AACf,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,UAAU,CAA4C,CAAC;AAE1G,eAAe;AACf,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,CAKvF,CAAC;AAMF,eAAe;AACf,MAAM,WAAW,aAAa;IAC5B,cAAc;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,aAAa;AACb,MAAM,WAAW,UAAU;IACzB,UAAU;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,iBAAiB;AACjB,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnE,sBAAsB;AACtB,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EAAsD,CAAC;AAEpG,2BAA2B;AAC3B,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAgB,CAAC;AAE/D,eAAe;AACf,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,UAAU,CAA4C,CAAC;AAE1G,eAAe;AACf,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,CAKvF,CAAC;AAMF,eAAe;AACf,MAAM,WAAW,aAAa;IAC5B,cAAc;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,aAAa;AACb,MAAM,WAAW,UAAU;IACzB,UAAU;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,MAAM,WAAW,UAAU;IACzB,UAAU;IACV,MAAM,EAAE,UAAU,CAAC;IACnB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qBAAqB;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD,0BAA0B;AAC1B,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gGAAgG;IAChG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,aAAa;AACb,MAAM,WAAW,mBAAmB;IAClC,UAAU;IACV,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;CACrC;AAED,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,UAAU;IACV,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,cAAc;IACd,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,qBAAqB;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,UAAU;IACV,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc;IACd,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;IACxC,cAAc;IACd,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,kBAAkB;IAClB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,eAAe;IACf,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IAC1C,0CAA0C;IAC1C,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,iBAAiB;IACjB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,mBAAmB,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACnF,mFAAmF;IACnF,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 豁免记录存储 — WaiverRecord 的文件 CRUD + 审计 append。
|
|
3
|
+
*
|
|
4
|
+
* 职责边界:
|
|
5
|
+
* - 负责:WaiverRecord 的读写、按域查询、撤销、审计日志追加
|
|
6
|
+
* - 不负责:豁免校验逻辑(NON_WAIVABLE/block_check 判断在 sf_waiver 工具层)、gate 注入决策(在 gate_engine)
|
|
7
|
+
*
|
|
8
|
+
* 被谁调用:sf_waiver(waive/list/remove)、gate_engine evaluateGate(listActive+matchWaiver 注入)、sf_doctor(统计展示)
|
|
9
|
+
* 调用谁:Node.js fs(文件读写/追加)
|
|
10
|
+
*
|
|
11
|
+
* 数据流:WaiverRecord JSON ↔ .soloforge/waivers/{waiver_id}.json;审计 ↔ .soloforge/waiver_audit.jsonl
|
|
12
|
+
* 持久化:.soloforge/waivers/{waiver_id}.json(每条豁免独立文件,UUID 隔离并发)+ .soloforge/waiver_audit.jsonl(追加审计)
|
|
13
|
+
*
|
|
14
|
+
* 设计参考:GateRecordStore(CRUD 模式)、NavigationOverride(审计 jsonl + NON_OVERRIDABLE 防护)。
|
|
15
|
+
* 防后门:NON_WAIVABLE_CHECK_IDS 挡合成结构检查;block_check 检查在 sf_waiver 工具层(查 gate 定义);
|
|
16
|
+
* 强制 confirm=true + reason≥10字符 + scope=check_id 每域≤3(均在 sf_waiver)。
|
|
17
|
+
*/
|
|
18
|
+
import type { DomainName } from "./types.js";
|
|
19
|
+
/** 不可豁免的 check_id 清单(sf_work 内联合成的结构性检查,从不是误报,且不在 gate 定义里)。
|
|
20
|
+
* sf_waiver waive 时命中则拒绝 —— 防止用户豁免"产物不存在/完整性/引擎异常"这类硬性结构要求。
|
|
21
|
+
* 这三类在 sf_work.ts 内联生成(artifact_exists/bundle_integrity/gate_engine),不进 evaluateGate,
|
|
22
|
+
* 但 sf_waiver 仍要挡,避免创建无意义且误导的豁免。 */
|
|
23
|
+
export declare const NON_WAIVABLE_CHECK_IDS: ReadonlySet<string>;
|
|
24
|
+
/** 豁免记录 — 标记某条 gate finding 为已知误报/接受,留审计后放行 */
|
|
25
|
+
export interface WaiverRecord {
|
|
26
|
+
/** 唯一豁免 ID(UUID) */
|
|
27
|
+
waiver_id: string;
|
|
28
|
+
/** 所属域 */
|
|
29
|
+
domain: DomainName;
|
|
30
|
+
/** 门禁名称(过滤用,可选) */
|
|
31
|
+
gate_name?: string;
|
|
32
|
+
/** 产物路径(scope=exact 时必填;scope=check_id 时为空,表示该 check 在该域所有产物生效) */
|
|
33
|
+
artifact_path?: string;
|
|
34
|
+
/** 被豁免的 check id */
|
|
35
|
+
check_id: string;
|
|
36
|
+
/** check 名称快照(防 check 改名/删除后不可读) */
|
|
37
|
+
check_name?: string;
|
|
38
|
+
/** 豁免范围:exact=某产物某check / check_id=该check在该域所有产物 */
|
|
39
|
+
scope: "exact" | "check_id";
|
|
40
|
+
/** 豁免理由(必填,≥10字符,防敷衍;审计可追溯) */
|
|
41
|
+
reason: string;
|
|
42
|
+
/** 创建时间戳 */
|
|
43
|
+
created_at: number;
|
|
44
|
+
/** 创建者(恒为 user:waiver 需人工 confirm,引擎/AI 不得自行创建) */
|
|
45
|
+
created_by: "user";
|
|
46
|
+
/** 创建时的规则集指纹(漂移检测:规则变了 doctor 报 stale 需复核) */
|
|
47
|
+
ruleset_hash_at_creation?: string;
|
|
48
|
+
/** 撤销时间戳(未撤销则 undefined,listActive 据此过滤) */
|
|
49
|
+
removed_at?: number;
|
|
50
|
+
/** 撤销理由(审计) */
|
|
51
|
+
removed_reason?: string;
|
|
52
|
+
}
|
|
53
|
+
/** 豁免审计条目(追加到 waiver_audit.jsonl) */
|
|
54
|
+
export interface WaiverAuditEntry {
|
|
55
|
+
action: "created" | "removed";
|
|
56
|
+
waiver_id: string;
|
|
57
|
+
check_id: string;
|
|
58
|
+
domain: DomainName;
|
|
59
|
+
artifact_path?: string;
|
|
60
|
+
scope: "exact" | "check_id";
|
|
61
|
+
reason: string;
|
|
62
|
+
timestamp: number;
|
|
63
|
+
}
|
|
64
|
+
/** 生成 waiver_id(UUID) */
|
|
65
|
+
export declare function generateWaiverId(): string;
|
|
66
|
+
/**
|
|
67
|
+
* 匹配豁免:exact(check_id+artifact_path) 优先,其次 check_id-wide。
|
|
68
|
+
* evaluateGate 注入时调用,判断某 failed check 是否被豁免。
|
|
69
|
+
*
|
|
70
|
+
* @param checkId - 失败的 check id
|
|
71
|
+
* @param artifactPath - 当前产物路径(ODA 路径可能为 undefined → 只匹配 check_id-wide)
|
|
72
|
+
* @param waivers - 当前域的 active 豁免列表
|
|
73
|
+
* @returns 命中的豁免(exact 优先);无匹配返回 undefined
|
|
74
|
+
*/
|
|
75
|
+
export declare function matchWaiver(checkId: string, artifactPath: string | undefined, waivers: WaiverRecord[]): WaiverRecord | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* 豁免记录存储 — 纯文件 CRUD + 审计,无业务校验逻辑。
|
|
78
|
+
* 通过构造函数注入 projectRoot,方便测试时使用临时目录。
|
|
79
|
+
*/
|
|
80
|
+
export declare class WaiverStore {
|
|
81
|
+
private readonly projectRoot;
|
|
82
|
+
constructor(projectRoot: string);
|
|
83
|
+
/** 豁免记录文件路径 */
|
|
84
|
+
private filePath;
|
|
85
|
+
/** 审计日志路径 */
|
|
86
|
+
private auditPath;
|
|
87
|
+
/** 追加审计条目(失败不阻断主流程:豁免主记录已持久化,审计缺失由 doctor 检测) */
|
|
88
|
+
private appendAudit;
|
|
89
|
+
/** 创建豁免(原子写主记录 + 审计 append) */
|
|
90
|
+
create(record: WaiverRecord): Promise<WaiverRecord>;
|
|
91
|
+
/** 读取单条豁免(不存在/损坏返回 null) */
|
|
92
|
+
read(waiverId: string): Promise<WaiverRecord | null>;
|
|
93
|
+
/** 列出 active 豁免(未 removed)。可选按域过滤。损坏文件 skip。 */
|
|
94
|
+
listActive(domain?: DomainName): Promise<WaiverRecord[]>;
|
|
95
|
+
/** 统计某域 scope=check_id 的 active 豁免数(sf_waiver 校验防滥用,每域≤3) */
|
|
96
|
+
countCheckIdWide(domain: DomainName): Promise<number>;
|
|
97
|
+
/** 撤销豁免(标 removed_at 重写主记录 + 审计)。幂等:已撤销返回 true,不存在返回 false。 */
|
|
98
|
+
remove(waiverId: string, reason?: string): Promise<boolean>;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=waiver_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiver_store.d.ts","sourceRoot":"","sources":["../../src/core/waiver_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C;;;qCAGqC;AACrC,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAIrD,CAAC;AAMH,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,MAAM,EAAE,UAAU,CAAC;IACnB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AA2BD,yBAAyB;AACzB,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,YAAY,EAAE,GACtB,YAAY,GAAG,SAAS,CAQ1B;AAMD;;;GAGG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEhD,eAAe;IACf,OAAO,CAAC,QAAQ;IAIhB,aAAa;IACb,OAAO,CAAC,SAAS;IAIjB,iDAAiD;YACnC,WAAW;IAWzB,+BAA+B;IACzB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAezD,4BAA4B;IACtB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI1D,gDAAgD;IAC1C,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkB9D,6DAA6D;IACvD,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3D,+DAA+D;IACzD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAuBlE"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 豁免记录存储 — WaiverRecord 的文件 CRUD + 审计 append。
|
|
3
|
+
*
|
|
4
|
+
* 职责边界:
|
|
5
|
+
* - 负责:WaiverRecord 的读写、按域查询、撤销、审计日志追加
|
|
6
|
+
* - 不负责:豁免校验逻辑(NON_WAIVABLE/block_check 判断在 sf_waiver 工具层)、gate 注入决策(在 gate_engine)
|
|
7
|
+
*
|
|
8
|
+
* 被谁调用:sf_waiver(waive/list/remove)、gate_engine evaluateGate(listActive+matchWaiver 注入)、sf_doctor(统计展示)
|
|
9
|
+
* 调用谁:Node.js fs(文件读写/追加)
|
|
10
|
+
*
|
|
11
|
+
* 数据流:WaiverRecord JSON ↔ .soloforge/waivers/{waiver_id}.json;审计 ↔ .soloforge/waiver_audit.jsonl
|
|
12
|
+
* 持久化:.soloforge/waivers/{waiver_id}.json(每条豁免独立文件,UUID 隔离并发)+ .soloforge/waiver_audit.jsonl(追加审计)
|
|
13
|
+
*
|
|
14
|
+
* 设计参考:GateRecordStore(CRUD 模式)、NavigationOverride(审计 jsonl + NON_OVERRIDABLE 防护)。
|
|
15
|
+
* 防后门:NON_WAIVABLE_CHECK_IDS 挡合成结构检查;block_check 检查在 sf_waiver 工具层(查 gate 定义);
|
|
16
|
+
* 强制 confirm=true + reason≥10字符 + scope=check_id 每域≤3(均在 sf_waiver)。
|
|
17
|
+
*/
|
|
18
|
+
import { readFile, writeFile, mkdir, readdir, appendFile, rename } from "node:fs/promises";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { randomUUID } from "node:crypto";
|
|
21
|
+
import { debug } from "../shared/logger.js";
|
|
22
|
+
// ═══════════════════════════════════════════
|
|
23
|
+
// 路径常量
|
|
24
|
+
// ═══════════════════════════════════════════
|
|
25
|
+
/** 豁免记录目录(相对于项目根) */
|
|
26
|
+
const WAIVERS_DIR = ".soloforge/waivers";
|
|
27
|
+
/** 豁免审计日志(追加,记录 created/removed 事件) */
|
|
28
|
+
const WAIVER_AUDIT_LOG = ".soloforge/waiver_audit.jsonl";
|
|
29
|
+
/** 不可豁免的 check_id 清单(sf_work 内联合成的结构性检查,从不是误报,且不在 gate 定义里)。
|
|
30
|
+
* sf_waiver waive 时命中则拒绝 —— 防止用户豁免"产物不存在/完整性/引擎异常"这类硬性结构要求。
|
|
31
|
+
* 这三类在 sf_work.ts 内联生成(artifact_exists/bundle_integrity/gate_engine),不进 evaluateGate,
|
|
32
|
+
* 但 sf_waiver 仍要挡,避免创建无意义且误导的豁免。 */
|
|
33
|
+
export const NON_WAIVABLE_CHECK_IDS = new Set([
|
|
34
|
+
"artifact_exists",
|
|
35
|
+
"bundle_integrity",
|
|
36
|
+
"gate_engine",
|
|
37
|
+
]);
|
|
38
|
+
// ═══════════════════════════════════════════
|
|
39
|
+
// 工具函数
|
|
40
|
+
// ═══════════════════════════════════════════
|
|
41
|
+
/** 安全读取 JSON 文件,不存在/损坏返回 null */
|
|
42
|
+
async function readJsonFile(filePath) {
|
|
43
|
+
try {
|
|
44
|
+
const content = await readFile(filePath, "utf-8");
|
|
45
|
+
return JSON.parse(content);
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
debug("waiver_store", `readJsonFile failed for ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** 安全写入 JSON 文件(原子写 tmp+rename:进程崩溃不写半个 JSON,与 TaskContextManager/AdversarialReviewStore 一致——
|
|
53
|
+
* 修复 S-12/C-03:原直接 writeFile 在崩溃/并发时可损坏 waiver) */
|
|
54
|
+
async function writeJsonFile(filePath, data) {
|
|
55
|
+
const dir = join(filePath, "..");
|
|
56
|
+
await mkdir(dir, { recursive: true });
|
|
57
|
+
const tmp = `${filePath}.tmp`;
|
|
58
|
+
await writeFile(tmp, JSON.stringify(data, null, 2), "utf-8");
|
|
59
|
+
await rename(tmp, filePath);
|
|
60
|
+
}
|
|
61
|
+
/** 生成 waiver_id(UUID) */
|
|
62
|
+
export function generateWaiverId() {
|
|
63
|
+
return randomUUID();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 匹配豁免:exact(check_id+artifact_path) 优先,其次 check_id-wide。
|
|
67
|
+
* evaluateGate 注入时调用,判断某 failed check 是否被豁免。
|
|
68
|
+
*
|
|
69
|
+
* @param checkId - 失败的 check id
|
|
70
|
+
* @param artifactPath - 当前产物路径(ODA 路径可能为 undefined → 只匹配 check_id-wide)
|
|
71
|
+
* @param waivers - 当前域的 active 豁免列表
|
|
72
|
+
* @returns 命中的豁免(exact 优先);无匹配返回 undefined
|
|
73
|
+
*/
|
|
74
|
+
export function matchWaiver(checkId, artifactPath, waivers) {
|
|
75
|
+
// exact 优先:精确到产物
|
|
76
|
+
const exact = waivers.find((w) => w.scope === "exact" && w.check_id === checkId && w.artifact_path === artifactPath);
|
|
77
|
+
if (exact)
|
|
78
|
+
return exact;
|
|
79
|
+
// check_id-wide:该域所有产物
|
|
80
|
+
return waivers.find((w) => w.scope === "check_id" && w.check_id === checkId);
|
|
81
|
+
}
|
|
82
|
+
// ═══════════════════════════════════════════
|
|
83
|
+
// WaiverStore 实现
|
|
84
|
+
// ═══════════════════════════════════════════
|
|
85
|
+
/**
|
|
86
|
+
* 豁免记录存储 — 纯文件 CRUD + 审计,无业务校验逻辑。
|
|
87
|
+
* 通过构造函数注入 projectRoot,方便测试时使用临时目录。
|
|
88
|
+
*/
|
|
89
|
+
export class WaiverStore {
|
|
90
|
+
projectRoot;
|
|
91
|
+
constructor(projectRoot) {
|
|
92
|
+
this.projectRoot = projectRoot;
|
|
93
|
+
}
|
|
94
|
+
/** 豁免记录文件路径 */
|
|
95
|
+
filePath(waiverId) {
|
|
96
|
+
return join(this.projectRoot, WAIVERS_DIR, `${waiverId}.json`);
|
|
97
|
+
}
|
|
98
|
+
/** 审计日志路径 */
|
|
99
|
+
auditPath() {
|
|
100
|
+
return join(this.projectRoot, WAIVER_AUDIT_LOG);
|
|
101
|
+
}
|
|
102
|
+
/** 追加审计条目(失败不阻断主流程:豁免主记录已持久化,审计缺失由 doctor 检测) */
|
|
103
|
+
async appendAudit(entry) {
|
|
104
|
+
try {
|
|
105
|
+
const dir = join(this.projectRoot, WAIVERS_DIR);
|
|
106
|
+
await mkdir(dir, { recursive: true });
|
|
107
|
+
await appendFile(this.auditPath(), JSON.stringify(entry) + "\n", "utf-8");
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
// 审计写入失败不回滚豁免(主记录已写);留痕,doctor 可后续校验审计完整性
|
|
111
|
+
debug("waiver_store", `appendAudit failed for ${this.auditPath()}: ${e instanceof Error ? e.message : e}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** 创建豁免(原子写主记录 + 审计 append) */
|
|
115
|
+
async create(record) {
|
|
116
|
+
await writeJsonFile(this.filePath(record.waiver_id), record);
|
|
117
|
+
await this.appendAudit({
|
|
118
|
+
action: "created",
|
|
119
|
+
waiver_id: record.waiver_id,
|
|
120
|
+
check_id: record.check_id,
|
|
121
|
+
domain: record.domain,
|
|
122
|
+
artifact_path: record.artifact_path,
|
|
123
|
+
scope: record.scope,
|
|
124
|
+
reason: record.reason,
|
|
125
|
+
timestamp: record.created_at,
|
|
126
|
+
});
|
|
127
|
+
return record;
|
|
128
|
+
}
|
|
129
|
+
/** 读取单条豁免(不存在/损坏返回 null) */
|
|
130
|
+
async read(waiverId) {
|
|
131
|
+
return readJsonFile(this.filePath(waiverId));
|
|
132
|
+
}
|
|
133
|
+
/** 列出 active 豁免(未 removed)。可选按域过滤。损坏文件 skip。 */
|
|
134
|
+
async listActive(domain) {
|
|
135
|
+
const dir = join(this.projectRoot, WAIVERS_DIR);
|
|
136
|
+
try {
|
|
137
|
+
const files = await readdir(dir);
|
|
138
|
+
const records = [];
|
|
139
|
+
for (const file of files) {
|
|
140
|
+
if (!file.endsWith(".json"))
|
|
141
|
+
continue;
|
|
142
|
+
const r = await readJsonFile(join(dir, file));
|
|
143
|
+
if (r && !r.removed_at && (!domain || r.domain === domain)) {
|
|
144
|
+
records.push(r);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return records;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/** 统计某域 scope=check_id 的 active 豁免数(sf_waiver 校验防滥用,每域≤3) */
|
|
154
|
+
async countCheckIdWide(domain) {
|
|
155
|
+
const active = await this.listActive(domain);
|
|
156
|
+
return active.filter((w) => w.scope === "check_id").length;
|
|
157
|
+
}
|
|
158
|
+
/** 撤销豁免(标 removed_at 重写主记录 + 审计)。幂等:已撤销返回 true,不存在返回 false。 */
|
|
159
|
+
async remove(waiverId, reason) {
|
|
160
|
+
const record = await this.read(waiverId);
|
|
161
|
+
if (!record)
|
|
162
|
+
return false;
|
|
163
|
+
if (record.removed_at)
|
|
164
|
+
return true; // 已撤销,幂等
|
|
165
|
+
const removedAt = Date.now();
|
|
166
|
+
const removed = {
|
|
167
|
+
...record,
|
|
168
|
+
removed_at: removedAt,
|
|
169
|
+
removed_reason: reason,
|
|
170
|
+
};
|
|
171
|
+
await writeJsonFile(this.filePath(waiverId), removed);
|
|
172
|
+
await this.appendAudit({
|
|
173
|
+
action: "removed",
|
|
174
|
+
waiver_id: waiverId,
|
|
175
|
+
check_id: record.check_id,
|
|
176
|
+
domain: record.domain,
|
|
177
|
+
artifact_path: record.artifact_path,
|
|
178
|
+
scope: record.scope,
|
|
179
|
+
reason: reason ?? "(未提供撤销理由)",
|
|
180
|
+
timestamp: removedAt,
|
|
181
|
+
});
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=waiver_store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiver_store.js","sourceRoot":"","sources":["../../src/core/waiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
* 资产系统的唯一真相源是文件本身;本模块派生注册表(缓存/索引),
|
|
5
5
|
* 取代现有 4 个手写资产注册表(asset_manifest / explicit / consumable / contract)。
|
|
6
6
|
* 见 docs/资产系统架构蓝图.md ②。
|
|
7
|
+
*
|
|
8
|
+
* 职责边界:
|
|
9
|
+
* - 负责:扫描 templates/ 目录 frontmatter,生成六索引注册表(byId/byKind/byStage/byStatus/byGate/byPath)
|
|
10
|
+
* - 不负责:gate 聚合调度(gate_registry_bridge.ts)、资产生命周期治理(checkAssetAntiBloat.ts)
|
|
11
|
+
*
|
|
12
|
+
* 被谁调用:gate_registry_bridge.ts(buildGateFromRegistry/getRegistry)、template_asset_contract_registry、sf_doctor、checkAssetAntiBloat
|
|
13
|
+
* 调用谁:gray-matter(frontmatter 解析)、node:fs(文件扫描)、derived_types(类型)
|
|
14
|
+
*
|
|
15
|
+
* 数据流:templates/ 目录 → 逐文件读 frontmatter → DerivedAsset 六索引 → ScanResult
|
|
16
|
+
* 持久化:无(内存态,按需扫描;调用方如 getRegistry 做进程内缓存)
|
|
7
17
|
*/
|
|
8
18
|
import type { AssetStage, SyncPolicy, AssetStatus, DerivedAsset, DerivedRegistry, ScanResult, ScanWarning } from "./derived_types.js";
|
|
9
19
|
/** 归零重构:只读新字段,stage 从目录推导,旧字段全部进 extra */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived_registry.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"derived_registry.d.ts","sourceRoot":"","sources":["../../../src/domain/asset_registry/derived_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EACC,UAAU,EAAE,UAAU,EAAE,WAAW,EAC9C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EACvD,MAAM,oBAAoB,CAAC;AAkC5B,0CAA0C;AAC1C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,GACtB,YAAY,GAAG,IAAI,CAyErB;AAuBD,yCAAyC;AACzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAgC/D;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAElF;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGvF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,uDAAuD;AACvD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,EAAE,CAEjG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,CAElF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAEjF;AAED,iCAAiC;AACjC,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,EAAE,CAE9D;AAOD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,eAAe,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqBtC;AAED,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CAsB/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAWxF;AAED,qCAAqC;AACrC,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAiD,CAAC;AAC5G,0BAA0B;AAC1B,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,EAAE,IAAI,MAAM,KAAG,OAAgD,CAAC;AAI7G,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAA+B,GAAG,QAAQ,EAAE,CAOjF"}
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
* 资产系统的唯一真相源是文件本身;本模块派生注册表(缓存/索引),
|
|
5
5
|
* 取代现有 4 个手写资产注册表(asset_manifest / explicit / consumable / contract)。
|
|
6
6
|
* 见 docs/资产系统架构蓝图.md ②。
|
|
7
|
+
*
|
|
8
|
+
* 职责边界:
|
|
9
|
+
* - 负责:扫描 templates/ 目录 frontmatter,生成六索引注册表(byId/byKind/byStage/byStatus/byGate/byPath)
|
|
10
|
+
* - 不负责:gate 聚合调度(gate_registry_bridge.ts)、资产生命周期治理(checkAssetAntiBloat.ts)
|
|
11
|
+
*
|
|
12
|
+
* 被谁调用:gate_registry_bridge.ts(buildGateFromRegistry/getRegistry)、template_asset_contract_registry、sf_doctor、checkAssetAntiBloat
|
|
13
|
+
* 调用谁:gray-matter(frontmatter 解析)、node:fs(文件扫描)、derived_types(类型)
|
|
14
|
+
*
|
|
15
|
+
* 数据流:templates/ 目录 → 逐文件读 frontmatter → DerivedAsset 六索引 → ScanResult
|
|
16
|
+
* 持久化:无(内存态,按需扫描;调用方如 getRegistry 做进程内缓存)
|
|
7
17
|
*/
|
|
8
18
|
import matter from "gray-matter";
|
|
9
19
|
import { readFileSync, readdirSync, writeFileSync, existsSync } from "node:fs";
|