soloforge 1.2.2 → 1.2.3

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.
Files changed (156) hide show
  1. package/README.md +78 -18
  2. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  3. package/dist/adapters/claude_code/tools.js +319 -5
  4. package/dist/adapters/claude_code/tools.js.map +1 -1
  5. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  6. package/dist/adapters/shared/workflow_template.js +25 -0
  7. package/dist/adapters/shared/workflow_template.js.map +1 -1
  8. package/dist/bin/soloforge.js +169 -13
  9. package/dist/bin/soloforge.js.map +1 -1
  10. package/dist/engine/audit_pool.d.ts +36 -0
  11. package/dist/engine/audit_pool.d.ts.map +1 -0
  12. package/dist/engine/audit_pool.js +83 -0
  13. package/dist/engine/audit_pool.js.map +1 -0
  14. package/dist/engine/audit_sampler.d.ts +15 -0
  15. package/dist/engine/audit_sampler.d.ts.map +1 -0
  16. package/dist/engine/audit_sampler.js +26 -0
  17. package/dist/engine/audit_sampler.js.map +1 -0
  18. package/dist/engine/capability_action_advisor.d.ts +24 -0
  19. package/dist/engine/capability_action_advisor.d.ts.map +1 -0
  20. package/dist/engine/capability_action_advisor.js +147 -0
  21. package/dist/engine/capability_action_advisor.js.map +1 -0
  22. package/dist/engine/capability_registry.d.ts +23 -1
  23. package/dist/engine/capability_registry.d.ts.map +1 -1
  24. package/dist/engine/capability_registry.js +511 -19
  25. package/dist/engine/capability_registry.js.map +1 -1
  26. package/dist/engine/capability_state_store.d.ts +50 -0
  27. package/dist/engine/capability_state_store.d.ts.map +1 -0
  28. package/dist/engine/capability_state_store.js +123 -0
  29. package/dist/engine/capability_state_store.js.map +1 -0
  30. package/dist/engine/cognitive_anchor.d.ts +59 -0
  31. package/dist/engine/cognitive_anchor.d.ts.map +1 -0
  32. package/dist/engine/cognitive_anchor.js +68 -0
  33. package/dist/engine/cognitive_anchor.js.map +1 -0
  34. package/dist/engine/conflict_gate.d.ts +36 -0
  35. package/dist/engine/conflict_gate.d.ts.map +1 -0
  36. package/dist/engine/conflict_gate.js +73 -0
  37. package/dist/engine/conflict_gate.js.map +1 -0
  38. package/dist/engine/decision_contract.d.ts +29 -0
  39. package/dist/engine/decision_contract.d.ts.map +1 -0
  40. package/dist/engine/decision_contract.js +41 -0
  41. package/dist/engine/decision_contract.js.map +1 -0
  42. package/dist/engine/delivery.d.ts.map +1 -1
  43. package/dist/engine/delivery.js +83 -0
  44. package/dist/engine/delivery.js.map +1 -1
  45. package/dist/engine/developer_sovereignty.d.ts +62 -0
  46. package/dist/engine/developer_sovereignty.d.ts.map +1 -0
  47. package/dist/engine/developer_sovereignty.js +134 -0
  48. package/dist/engine/developer_sovereignty.js.map +1 -0
  49. package/dist/engine/diff_ownership.d.ts +74 -0
  50. package/dist/engine/diff_ownership.d.ts.map +1 -0
  51. package/dist/engine/diff_ownership.js +143 -0
  52. package/dist/engine/diff_ownership.js.map +1 -0
  53. package/dist/engine/diff_ownership_store.d.ts +76 -0
  54. package/dist/engine/diff_ownership_store.d.ts.map +1 -0
  55. package/dist/engine/diff_ownership_store.js +264 -0
  56. package/dist/engine/diff_ownership_store.js.map +1 -0
  57. package/dist/engine/escape_report.d.ts +45 -0
  58. package/dist/engine/escape_report.d.ts.map +1 -0
  59. package/dist/engine/escape_report.js +97 -0
  60. package/dist/engine/escape_report.js.map +1 -0
  61. package/dist/engine/exploration.d.ts +54 -0
  62. package/dist/engine/exploration.d.ts.map +1 -1
  63. package/dist/engine/exploration.js +138 -0
  64. package/dist/engine/exploration.js.map +1 -1
  65. package/dist/engine/governance_report.d.ts +36 -0
  66. package/dist/engine/governance_report.d.ts.map +1 -0
  67. package/dist/engine/governance_report.js +79 -0
  68. package/dist/engine/governance_report.js.map +1 -0
  69. package/dist/engine/java_quality_guard.d.ts +52 -0
  70. package/dist/engine/java_quality_guard.d.ts.map +1 -0
  71. package/dist/engine/java_quality_guard.js +237 -0
  72. package/dist/engine/java_quality_guard.js.map +1 -0
  73. package/dist/engine/job_manager.d.ts +76 -0
  74. package/dist/engine/job_manager.d.ts.map +1 -0
  75. package/dist/engine/job_manager.js +225 -0
  76. package/dist/engine/job_manager.js.map +1 -0
  77. package/dist/engine/knowledge_sovereignty.d.ts +61 -0
  78. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -0
  79. package/dist/engine/knowledge_sovereignty.js +190 -0
  80. package/dist/engine/knowledge_sovereignty.js.map +1 -0
  81. package/dist/engine/mutation_audit.d.ts +43 -0
  82. package/dist/engine/mutation_audit.d.ts.map +1 -0
  83. package/dist/engine/mutation_audit.js +118 -0
  84. package/dist/engine/mutation_audit.js.map +1 -0
  85. package/dist/engine/policy_drift_detector.d.ts +46 -0
  86. package/dist/engine/policy_drift_detector.d.ts.map +1 -0
  87. package/dist/engine/policy_drift_detector.js +181 -0
  88. package/dist/engine/policy_drift_detector.js.map +1 -0
  89. package/dist/engine/regression_matrix.d.ts +102 -0
  90. package/dist/engine/regression_matrix.d.ts.map +1 -0
  91. package/dist/engine/regression_matrix.js +380 -0
  92. package/dist/engine/regression_matrix.js.map +1 -0
  93. package/dist/engine/risk_sampler.d.ts +37 -0
  94. package/dist/engine/risk_sampler.d.ts.map +1 -0
  95. package/dist/engine/risk_sampler.js +69 -0
  96. package/dist/engine/risk_sampler.js.map +1 -0
  97. package/dist/engine/runtime_safety.d.ts +80 -0
  98. package/dist/engine/runtime_safety.d.ts.map +1 -0
  99. package/dist/engine/runtime_safety.js +195 -0
  100. package/dist/engine/runtime_safety.js.map +1 -0
  101. package/dist/engine/scope_lease.d.ts +45 -0
  102. package/dist/engine/scope_lease.d.ts.map +1 -0
  103. package/dist/engine/scope_lease.js +122 -0
  104. package/dist/engine/scope_lease.js.map +1 -0
  105. package/dist/engine/semantic_evidence.d.ts +23 -0
  106. package/dist/engine/semantic_evidence.d.ts.map +1 -0
  107. package/dist/engine/semantic_evidence.js +81 -0
  108. package/dist/engine/semantic_evidence.js.map +1 -0
  109. package/dist/engine/task_context.d.ts +16 -0
  110. package/dist/engine/task_context.d.ts.map +1 -1
  111. package/dist/engine/task_context.js +58 -0
  112. package/dist/engine/task_context.js.map +1 -1
  113. package/dist/engine/verifier.d.ts.map +1 -1
  114. package/dist/engine/verifier.js +22 -1
  115. package/dist/engine/verifier.js.map +1 -1
  116. package/dist/engine/workspace_resumer.d.ts +43 -0
  117. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  118. package/dist/engine/workspace_resumer.js +119 -4
  119. package/dist/engine/workspace_resumer.js.map +1 -1
  120. package/dist/engine/zero_config_init.d.ts +87 -0
  121. package/dist/engine/zero_config_init.d.ts.map +1 -0
  122. package/dist/engine/zero_config_init.js +427 -0
  123. package/dist/engine/zero_config_init.js.map +1 -0
  124. package/dist/knowledge/index_manager.d.ts +19 -0
  125. package/dist/knowledge/index_manager.d.ts.map +1 -1
  126. package/dist/knowledge/index_manager.js +31 -0
  127. package/dist/knowledge/index_manager.js.map +1 -1
  128. package/dist/knowledge/writer.d.ts.map +1 -1
  129. package/dist/knowledge/writer.js +1 -0
  130. package/dist/knowledge/writer.js.map +1 -1
  131. package/dist/types.d.ts +61 -1
  132. package/dist/types.d.ts.map +1 -1
  133. package/package.json +2 -2
  134. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +47 -0
  135. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +46 -0
  136. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +46 -0
  137. package/templates/knowledge/patterns/core//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +47 -0
  138. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +47 -0
  139. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +46 -0
  140. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +47 -0
  141. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +47 -0
  142. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +30 -11
  143. package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +20 -0
  144. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +46 -0
  145. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +44 -0
  146. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +46 -0
  147. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +29 -16
  148. package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +20 -0
  149. package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +45 -0
  150. package/templates/knowledge/patterns/core//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +48 -0
  151. package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +20 -0
  152. package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +20 -0
  153. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +47 -0
  154. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +50 -0
  155. package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +47 -0
  156. package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation_audit.js","sourceRoot":"","sources":["../../src/engine/mutation_audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Policy ID 漂移检测 — 检查 policy_id 在代码、测试、知识、Prompt 间的交叉引用一致性。
3
+ * P1-5 范围: 检测 + 只读报告摘要,不做自动修复,不改能力状态。
4
+ */
5
+ export type DriftType = "code_without_policy" | "policy_without_code" | "policy_without_tests" | "tests_without_policy" | "prompt_without_policy" | "enforced_without_lifecycle_tests" | "removed_but_documented";
6
+ export { type PolicyRef } from "./capability_registry.js";
7
+ import type { PolicyRef as PolicyRefType } from "./capability_registry.js";
8
+ type PolicyRef = PolicyRefType;
9
+ export interface DriftEntry {
10
+ type: DriftType;
11
+ policy_id?: string;
12
+ path?: string;
13
+ detail: string;
14
+ }
15
+ export interface DriftReport {
16
+ total_policies: number;
17
+ drift_count: number;
18
+ drifts: DriftEntry[];
19
+ by_type: Record<DriftType, number>;
20
+ }
21
+ export interface DriftScanInput {
22
+ policies: PolicyRef[];
23
+ existingFiles: Set<string>;
24
+ knownCodeFiles: string[];
25
+ knownTestFiles: string[];
26
+ knownPromptFiles: string[];
27
+ }
28
+ export declare function detectPolicyDrift(input: DriftScanInput): DriftReport;
29
+ export type PolicyStatus = "missing" | "stale" | "ok";
30
+ export interface PolicyDriftSummary {
31
+ policy_id: string;
32
+ capability_id: string;
33
+ state: PolicyRefType["state"];
34
+ status: PolicyStatus;
35
+ drifts: DriftEntry[];
36
+ }
37
+ export interface DriftSummaryReport {
38
+ total: number;
39
+ missing: number;
40
+ stale: number;
41
+ ok: number;
42
+ unassigned_drifts: DriftEntry[];
43
+ policies: PolicyDriftSummary[];
44
+ }
45
+ export declare function generateDriftSummary(policies: PolicyRefType[], report: DriftReport): DriftSummaryReport;
46
+ //# sourceMappingURL=policy_drift_detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy_drift_detector.d.ts","sourceRoot":"","sources":["../../src/engine/policy_drift_detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GACjB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,GACvB,kCAAkC,GAClC,wBAAwB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,KAAK,SAAS,GAAG,aAAa,CAAC;AAE/B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACpC;AAgBD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAiIpE;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,WAAW,GAClB,kBAAkB,CAuCpB"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Policy ID 漂移检测 — 检查 policy_id 在代码、测试、知识、Prompt 间的交叉引用一致性。
3
+ * P1-5 范围: 检测 + 只读报告摘要,不做自动修复,不改能力状态。
4
+ */
5
+ const ALL_DRIFT_TYPES = [
6
+ "code_without_policy",
7
+ "policy_without_code",
8
+ "policy_without_tests",
9
+ "tests_without_policy",
10
+ "prompt_without_policy",
11
+ "enforced_without_lifecycle_tests",
12
+ "removed_but_documented",
13
+ ];
14
+ function emptyByType() {
15
+ return Object.fromEntries(ALL_DRIFT_TYPES.map((t) => [t, 0]));
16
+ }
17
+ export function detectPolicyDrift(input) {
18
+ const { policies, existingFiles, knownCodeFiles, knownTestFiles, knownPromptFiles } = input;
19
+ const drifts = [];
20
+ const claimedCode = new Set(policies.flatMap((p) => p.code_files));
21
+ const claimedTest = new Set(policies.flatMap((p) => p.test_files));
22
+ const claimedPrompt = new Set(policies.flatMap((p) => p.prompt_files));
23
+ for (const f of knownCodeFiles) {
24
+ if (!claimedCode.has(f)) {
25
+ drifts.push({
26
+ type: "code_without_policy",
27
+ path: f,
28
+ detail: `code file ${f} not covered by any policy_id`,
29
+ });
30
+ }
31
+ }
32
+ for (const p of policies) {
33
+ if (p.code_files.length === 0) {
34
+ drifts.push({
35
+ type: "policy_without_code",
36
+ policy_id: p.policy_id,
37
+ detail: `policy ${p.policy_id} has no code file references`,
38
+ });
39
+ }
40
+ else {
41
+ for (const f of p.code_files) {
42
+ if (!existingFiles.has(f)) {
43
+ drifts.push({
44
+ type: "policy_without_code",
45
+ policy_id: p.policy_id,
46
+ path: f,
47
+ detail: `policy ${p.policy_id} claims code file ${f} which does not exist`,
48
+ });
49
+ }
50
+ }
51
+ }
52
+ }
53
+ for (const p of policies) {
54
+ if (p.test_files.length === 0) {
55
+ drifts.push({
56
+ type: "policy_without_tests",
57
+ policy_id: p.policy_id,
58
+ detail: `policy ${p.policy_id} has no test references`,
59
+ });
60
+ }
61
+ else {
62
+ for (const f of p.test_files) {
63
+ if (!existingFiles.has(f)) {
64
+ drifts.push({
65
+ type: "policy_without_tests",
66
+ policy_id: p.policy_id,
67
+ path: f,
68
+ detail: `policy ${p.policy_id} claims test file ${f} which does not exist`,
69
+ });
70
+ }
71
+ }
72
+ }
73
+ }
74
+ for (const f of knownTestFiles) {
75
+ if (!claimedTest.has(f)) {
76
+ drifts.push({
77
+ type: "tests_without_policy",
78
+ path: f,
79
+ detail: `test file ${f} not covered by any policy_id`,
80
+ });
81
+ }
82
+ }
83
+ for (const f of knownPromptFiles) {
84
+ if (!claimedPrompt.has(f)) {
85
+ drifts.push({
86
+ type: "prompt_without_policy",
87
+ path: f,
88
+ detail: `prompt file ${f} not covered by any policy_id`,
89
+ });
90
+ }
91
+ }
92
+ for (const p of policies) {
93
+ if (p.state === "enforced") {
94
+ if (p.lifecycle_test_files.length === 0) {
95
+ drifts.push({
96
+ type: "enforced_without_lifecycle_tests",
97
+ policy_id: p.policy_id,
98
+ detail: `enforced policy ${p.policy_id} has no lifecycle/handler tests`,
99
+ });
100
+ }
101
+ else {
102
+ for (const f of p.lifecycle_test_files) {
103
+ if (!existingFiles.has(f)) {
104
+ drifts.push({
105
+ type: "enforced_without_lifecycle_tests",
106
+ policy_id: p.policy_id,
107
+ path: f,
108
+ detail: `enforced policy ${p.policy_id} claims lifecycle test file ${f} which does not exist`,
109
+ });
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+ for (const p of policies) {
116
+ if (p.state === "removed") {
117
+ for (const doc of p.knowledge_docs) {
118
+ if (existingFiles.has(doc)) {
119
+ drifts.push({
120
+ type: "removed_but_documented",
121
+ policy_id: p.policy_id,
122
+ path: doc,
123
+ detail: `removed policy ${p.policy_id} still has documented knowledge at ${doc}`,
124
+ });
125
+ }
126
+ }
127
+ }
128
+ }
129
+ const by_type = emptyByType();
130
+ for (const d of drifts) {
131
+ by_type[d.type]++;
132
+ }
133
+ return {
134
+ total_policies: policies.length,
135
+ drift_count: drifts.length,
136
+ drifts,
137
+ by_type,
138
+ };
139
+ }
140
+ export function generateDriftSummary(policies, report) {
141
+ const driftsByPolicy = new Map();
142
+ const unassigned = [];
143
+ for (const d of report.drifts) {
144
+ if (d.policy_id) {
145
+ if (!driftsByPolicy.has(d.policy_id))
146
+ driftsByPolicy.set(d.policy_id, []);
147
+ driftsByPolicy.get(d.policy_id).push(d);
148
+ }
149
+ else {
150
+ unassigned.push(d);
151
+ }
152
+ }
153
+ let missing = 0;
154
+ let stale = 0;
155
+ let ok = 0;
156
+ const summaries = policies.map((p) => {
157
+ const drifts = driftsByPolicy.get(p.policy_id) ?? [];
158
+ let status;
159
+ if (drifts.length === 0) {
160
+ status = "ok";
161
+ ok++;
162
+ }
163
+ else if (drifts.some((d) => d.path === undefined)) {
164
+ status = "missing";
165
+ missing++;
166
+ }
167
+ else {
168
+ status = "stale";
169
+ stale++;
170
+ }
171
+ return {
172
+ policy_id: p.policy_id,
173
+ capability_id: p.capability_id,
174
+ state: p.state,
175
+ status,
176
+ drifts,
177
+ };
178
+ });
179
+ return { total: summaries.length, missing, stale, ok, unassigned_drifts: unassigned, policies: summaries };
180
+ }
181
+ //# sourceMappingURL=policy_drift_detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy_drift_detector.js","sourceRoot":"","sources":["../../src/engine/policy_drift_detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,MAAM,eAAe,GAAgB;IACnC,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,kCAAkC;IAClC,wBAAwB;CACzB,CAAC;AAEF,SAAS,WAAW;IAClB,OAAO,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAA8B,CAAC;AAC7F,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAC5F,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEvE,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,aAAa,CAAC,+BAA+B;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,8BAA8B;aAC5D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,qBAAqB;wBAC3B,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,uBAAuB;qBAC3E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,yBAAyB;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,sBAAsB;wBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,uBAAuB;qBAC3E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,aAAa,CAAC,+BAA+B;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,eAAe,CAAC,+BAA+B;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,kCAAkC;oBACxC,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,MAAM,EAAE,mBAAmB,CAAC,CAAC,SAAS,iCAAiC;iBACxE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1B,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,kCAAkC;4BACxC,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,IAAI,EAAE,CAAC;4BACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,SAAS,+BAA+B,CAAC,uBAAuB;yBAC9F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,wBAAwB;wBAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,IAAI,EAAE,GAAG;wBACT,MAAM,EAAE,kBAAkB,CAAC,CAAC,SAAS,sCAAsC,GAAG,EAAE;qBACjF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAqBD,MAAM,UAAU,oBAAoB,CAClC,QAAyB,EACzB,MAAmB;IAEnB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IACvD,MAAM,UAAU,GAAiB,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1E,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,SAAS,GAAyB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,MAAoB,CAAC;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,EAAE,EAAE,CAAC;QACP,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,SAAS,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,OAAO,CAAC;YACjB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO;YACL,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM;YACN,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * 回归矩阵 + 复杂度预算 — fixture 项目回归测试 + capability 代码量预算。
3
+ *
4
+ * 职责:
5
+ * - fixture 项目模板: Spring Boot, React, Go 的标准结构
6
+ * - 回归矩阵: 对 fixture 验证 classify/expand/verify 兼容性
7
+ * - 复杂度预算: 每个能力模块的代码行数预算,超出 advisory 告警
8
+ */
9
+ export interface FixtureRepo {
10
+ name: string;
11
+ tech_stack: string;
12
+ files: Record<string, string>;
13
+ }
14
+ export declare const FIXTURE_SPRING_BOOT: FixtureRepo;
15
+ export declare const FIXTURE_REACT: FixtureRepo;
16
+ export declare const FIXTURE_GO: FixtureRepo;
17
+ export declare const FIXTURE_NODE_TS: FixtureRepo;
18
+ export declare const FIXTURE_MONOREPO: FixtureRepo;
19
+ export declare const FIXTURE_DOCS: FixtureRepo;
20
+ export interface RegressionCheck {
21
+ fixture: string;
22
+ check: string;
23
+ passed: boolean;
24
+ detail: string;
25
+ }
26
+ export interface RegressionReport {
27
+ fixture: string;
28
+ checks: RegressionCheck[];
29
+ passed: boolean;
30
+ summary: string;
31
+ }
32
+ /**
33
+ * 对 fixture 项目运行回归检查矩阵。
34
+ * 纯确定性检查,不依赖 LLM。
35
+ */
36
+ export declare function runRegressionMatrix(fixture: FixtureRepo, fingerprintFn: (files: Record<string, string>) => {
37
+ backend: {
38
+ framework: string;
39
+ } | null;
40
+ frontend: {
41
+ framework: string;
42
+ } | null;
43
+ test_frameworks: string[];
44
+ }): RegressionReport;
45
+ export interface RealFingerprintCheck {
46
+ fixture: string;
47
+ expected_backend: string | null;
48
+ detected_backend: string | null;
49
+ expected_frontend: string | null;
50
+ detected_frontend: string | null;
51
+ backend_match: boolean;
52
+ frontend_match: boolean;
53
+ passed: boolean;
54
+ advisory: string;
55
+ }
56
+ export interface RealFingerprintReport {
57
+ checks: RealFingerprintCheck[];
58
+ all_passed: boolean;
59
+ summary: string;
60
+ }
61
+ /**
62
+ * Write fixture files to a temp directory and run real detectFingerprint.
63
+ * Cleanup is automatic via temp dir removal.
64
+ */
65
+ export declare function runRealFingerprintRegression(fixtures?: FixtureRepo[]): Promise<RealFingerprintReport>;
66
+ export interface E2EPipelineStep {
67
+ step: string;
68
+ passed: boolean;
69
+ detail: string;
70
+ }
71
+ export interface E2EPipelineReport {
72
+ fixture: string;
73
+ steps: E2EPipelineStep[];
74
+ passed: boolean;
75
+ summary: string;
76
+ }
77
+ /**
78
+ * Run minimal classify → expand → verify → learn (evolve) → governance report
79
+ * on a fixture written to a temp directory.
80
+ */
81
+ export declare function runE2EPipeline(fixture: FixtureRepo): Promise<E2EPipelineReport>;
82
+ export interface ModuleBudget {
83
+ module: string;
84
+ budget_lines: number;
85
+ actual_lines: number;
86
+ exceeded: boolean;
87
+ advisory: string;
88
+ }
89
+ export interface ComplexityBudgetReport {
90
+ modules: ModuleBudget[];
91
+ total_budget: number;
92
+ total_actual: number;
93
+ exceeded_modules: number;
94
+ summary: string;
95
+ }
96
+ /**
97
+ * 检查能力模块的复杂度预算。
98
+ * @param fileLineCounts - 模块名到行数的映射
99
+ * @returns 复杂度预算报告
100
+ */
101
+ export declare function checkComplexityBudget(fileLineCounts: Record<string, number>): ComplexityBudgetReport;
102
+ //# sourceMappingURL=regression_matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression_matrix.d.ts","sourceRoot":"","sources":["../../src/engine/regression_matrix.ts"],"names":[],"mappings":"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"}