soloforge 1.4.11 → 1.4.13

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 (60) hide show
  1. package/dist/adapters/claude_code/tools.d.ts +3 -0
  2. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  3. package/dist/adapters/claude_code/tools.js +321 -374
  4. package/dist/adapters/claude_code/tools.js.map +1 -1
  5. package/dist/engine/brainstorm_contract.d.ts +2 -0
  6. package/dist/engine/brainstorm_contract.d.ts.map +1 -1
  7. package/dist/engine/brainstorm_contract.js +11 -1
  8. package/dist/engine/brainstorm_contract.js.map +1 -1
  9. package/dist/engine/expand_pipeline.d.ts +121 -0
  10. package/dist/engine/expand_pipeline.d.ts.map +1 -0
  11. package/dist/engine/expand_pipeline.js +141 -0
  12. package/dist/engine/expand_pipeline.js.map +1 -0
  13. package/dist/engine/first_principles.d.ts +2 -0
  14. package/dist/engine/first_principles.d.ts.map +1 -1
  15. package/dist/engine/first_principles.js +14 -1
  16. package/dist/engine/first_principles.js.map +1 -1
  17. package/dist/engine/intent_expander.d.ts +3 -0
  18. package/dist/engine/intent_expander.d.ts.map +1 -1
  19. package/dist/engine/intent_expander.js +252 -306
  20. package/dist/engine/intent_expander.js.map +1 -1
  21. package/dist/engine/intent_route_scorer.d.ts +1 -1
  22. package/dist/engine/intent_route_scorer.d.ts.map +1 -1
  23. package/dist/engine/intent_route_scorer.js +18 -3
  24. package/dist/engine/intent_route_scorer.js.map +1 -1
  25. package/dist/engine/intent_router.d.ts +2 -2
  26. package/dist/engine/intent_router.d.ts.map +1 -1
  27. package/dist/engine/intent_router.js +28 -6
  28. package/dist/engine/intent_router.js.map +1 -1
  29. package/dist/engine/intent_signal_extractor.d.ts +1 -1
  30. package/dist/engine/intent_signal_extractor.d.ts.map +1 -1
  31. package/dist/engine/intent_signal_extractor.js +12 -0
  32. package/dist/engine/intent_signal_extractor.js.map +1 -1
  33. package/dist/engine/release_readiness_gate.d.ts.map +1 -1
  34. package/dist/engine/release_readiness_gate.js +38 -37
  35. package/dist/engine/release_readiness_gate.js.map +1 -1
  36. package/dist/engine/source_code_matcher.d.ts +53 -0
  37. package/dist/engine/source_code_matcher.d.ts.map +1 -0
  38. package/dist/engine/source_code_matcher.js +165 -0
  39. package/dist/engine/source_code_matcher.js.map +1 -0
  40. package/dist/engine/task_context.d.ts +5 -0
  41. package/dist/engine/task_context.d.ts.map +1 -1
  42. package/dist/engine/task_context.js +37 -5
  43. package/dist/engine/task_context.js.map +1 -1
  44. package/dist/engine/technology_decision.d.ts +2 -0
  45. package/dist/engine/technology_decision.d.ts.map +1 -1
  46. package/dist/engine/technology_decision.js +18 -1
  47. package/dist/engine/technology_decision.js.map +1 -1
  48. package/dist/engine/traceability.d.ts.map +1 -1
  49. package/dist/engine/traceability.js +4 -0
  50. package/dist/engine/traceability.js.map +1 -1
  51. package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
  52. package/dist/engine/workflow_contract_registry.js +24 -0
  53. package/dist/engine/workflow_contract_registry.js.map +1 -1
  54. package/dist/knowledge/index_manager.d.ts +1 -0
  55. package/dist/knowledge/index_manager.d.ts.map +1 -1
  56. package/dist/knowledge/index_manager.js +15 -0
  57. package/dist/knowledge/index_manager.js.map +1 -1
  58. package/dist/types.d.ts +2 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/package.json +1 -1
@@ -10,6 +10,8 @@ export interface BrainstormValidationResult {
10
10
  valid: boolean;
11
11
  violations: string[];
12
12
  completeness_score: number;
13
+ /** 期望的 JSON 结构,供 AI 修正输入时参考 */
14
+ expected_schema?: Record<string, unknown>;
13
15
  }
14
16
  /**
15
17
  * 创建脑暴会话。
@@ -1 +1 @@
1
- {"version":3,"file":"brainstorm_contract.d.ts","sourceRoot":"","sources":["../../src/engine/brainstorm_contract.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAaD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,mBAAmB,CAAC,GAClG,iBAAiB,CAWnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,OAAO,CAAC,GACjG,uBAAuB,CAczB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,0BAA0B,CA0ChG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,oBAAoB,CAAC,EACtH,OAAO,EAAE,uBAAuB,EAAE,GACjC,oBAAoB,CAWtB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAI5E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,gBAAgB,GAC7B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAetC"}
1
+ {"version":3,"file":"brainstorm_contract.d.ts","sourceRoot":"","sources":["../../src/engine/brainstorm_contract.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAaD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,mBAAmB,CAAC,GAClG,iBAAiB,CAWnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,OAAO,CAAC,GACjG,uBAAuB,CAczB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,0BAA0B,CAoDhG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,oBAAoB,CAAC,EACtH,OAAO,EAAE,uBAAuB,EAAE,GACjC,oBAAoB,CAWtB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAI5E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,gBAAgB,GAC7B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAetC"}
@@ -85,11 +85,21 @@ export function validateBrainstormSession(session) {
85
85
  }
86
86
  const maxScore = 5;
87
87
  const score = Math.max(0, maxScore - violations.length);
88
- return {
88
+ const result = {
89
89
  valid: violations.length === 0,
90
90
  violations,
91
91
  completeness_score: score / maxScore,
92
92
  };
93
+ if (!result.valid) {
94
+ result.expected_schema = {
95
+ trigger: "uncertainty | high_impact | detail_intensive",
96
+ options: [{ option_id: "string", title: "string", description: "string", pros: ["string"], cons: ["string"] }],
97
+ recommended_option_id: "string — 必须匹配 options[].option_id",
98
+ rejected_option_ids: ["string — 必须在 options 列表中"],
99
+ failure_conditions: ["string — 每个方案的失败条件"],
100
+ };
101
+ }
102
+ return result;
93
103
  }
94
104
  /**
95
105
  * 创建取舍矩阵。
@@ -1 +1 @@
1
- {"version":3,"file":"brainstorm_contract.js","sourceRoot":"","sources":["../../src/engine/brainstorm_contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brainstorm_contract.js","sourceRoot":"","sources":["../../src/engine/brainstorm_contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import type { ClassifyResult, ExpandResult, ProjectConfig } from "../types.js";
2
+ import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
3
+ import type { IntentRouteDecision } from "./intent_router.js";
4
+ import type { InputMaterial, IngestionEvidence, PromptInjectionPlan } from "./input_material_contract_registry.js";
5
+ import type { OutputArtifact } from "./artifact_contract_registry.js";
6
+ import type { DataSensitivityLabel, RedactionRecord, PrivacyGovernanceFinding } from "./privacy_secret_contract.js";
7
+ /**
8
+ * sf_expand pipeline — 将上帝函数拆分为可独立测试的阶段。
9
+ *
10
+ * 每个阶段接收共享上下文,返回可能修改后的上下文 + 可选的 early-stop。
11
+ * expand() 仍然是编排入口,但逐步迁出逻辑到独立 stage 函数中。
12
+ */
13
+ export interface ExpandPipelineContext {
14
+ intent: string;
15
+ classification: ClassifyResult;
16
+ projectPath: string;
17
+ config: ProjectConfig;
18
+ knowledgeIndex: KnowledgeIndexManager;
19
+ routeDecision?: IntentRouteDecision;
20
+ task_id?: string;
21
+ safeIntent?: string;
22
+ safeGoal?: string;
23
+ phasePolicy?: ExpandRoutePhasePolicy;
24
+ outputArtifactRecord?: OutputArtifact;
25
+ inputMaterials?: InputMaterial[];
26
+ ingestionEvidences?: IngestionEvidence[];
27
+ promptInjectionPlan?: PromptInjectionPlan;
28
+ privacyLabels?: DataSensitivityLabel[];
29
+ privacyRedactions?: RedactionRecord[];
30
+ privacyFindings?: PrivacyGovernanceFinding[];
31
+ workflowContract?: any;
32
+ workflowGovernanceFindings?: Array<{
33
+ severity: string;
34
+ rule: string;
35
+ message: string;
36
+ }>;
37
+ }
38
+ export interface ExpandPipelineStageResult {
39
+ context: ExpandPipelineContext;
40
+ stop?: ExpandResult;
41
+ }
42
+ export interface ExpandPipelineStage {
43
+ name: string;
44
+ run(context: ExpandPipelineContext): Promise<ExpandPipelineStageResult> | ExpandPipelineStageResult;
45
+ }
46
+ export interface ExpandPipelineResult {
47
+ context: ExpandPipelineContext;
48
+ stopped_by?: string;
49
+ stop?: ExpandResult;
50
+ }
51
+ export interface ExpandRoutePhasePolicy {
52
+ route?: string;
53
+ execution_shape?: string;
54
+ mutation_allowed: boolean;
55
+ lightweight: boolean;
56
+ read_only_verification: boolean;
57
+ skip_workflow_contract_strict: boolean;
58
+ skip_input_material_hard_block: boolean;
59
+ skip_project_knowledge_hard_block: boolean;
60
+ skip_heavy_contract_gates: boolean;
61
+ skip_pre_implementation_gates: boolean;
62
+ }
63
+ export declare function createExpandPipeline(stages: ExpandPipelineStage[]): ExpandPipelineStage;
64
+ export declare function runExpandPipeline(context: ExpandPipelineContext, stages: ExpandPipelineStage[]): Promise<ExpandPipelineResult>;
65
+ export declare function createExpandRoutePhasePolicy(routeDecision: IntentRouteDecision | undefined): ExpandRoutePhasePolicy;
66
+ export interface PrivacyGateOutput {
67
+ safeIntent: string;
68
+ safeGoal: string;
69
+ privacyLabels: DataSensitivityLabel[];
70
+ privacyRedactions: RedactionRecord[];
71
+ privacyFindings: PrivacyGovernanceFinding[];
72
+ hardFail: boolean;
73
+ blockedSources: string[];
74
+ }
75
+ export declare function computePrivacyGate(deps: {
76
+ intent: string;
77
+ routeDecision?: IntentRouteDecision;
78
+ inputMaterials?: Array<{
79
+ path?: string;
80
+ }>;
81
+ phasePolicy: ExpandRoutePhasePolicy;
82
+ evaluatePrivacyGate: (input: {
83
+ intent: string;
84
+ input_materials: Array<{
85
+ path_or_ref: string;
86
+ }>;
87
+ }) => {
88
+ labels: DataSensitivityLabel[];
89
+ redaction_records: RedactionRecord[];
90
+ findings: PrivacyGovernanceFinding[];
91
+ blocked_sources: string[];
92
+ hard_fail: boolean;
93
+ redacted_text?: string;
94
+ };
95
+ redactSensitiveText: (text: string, label: string) => {
96
+ redacted: string;
97
+ };
98
+ }): PrivacyGateOutput;
99
+ export interface InputMaterialValidationResult {
100
+ blocked: boolean;
101
+ blockReason?: string;
102
+ forbiddenPaths?: string[];
103
+ confirmationNeeded?: string[];
104
+ inputMaterials: InputMaterial[];
105
+ ingestionEvidences: IngestionEvidence[];
106
+ promptInjectionPlan?: PromptInjectionPlan;
107
+ contractNotes: string[];
108
+ }
109
+ export declare function validateInputMaterials(deps: {
110
+ routeDecision?: IntentRouteDecision;
111
+ skipInputMaterialHardBlock: boolean;
112
+ confirmations?: string[];
113
+ createInputMaterial: (input: {
114
+ path_or_ref: string;
115
+ }) => InputMaterial;
116
+ createIngestionEvidence: (m: InputMaterial) => IngestionEvidence;
117
+ buildPromptInjectionPlan: (materials: InputMaterial[], evidences: IngestionEvidence[]) => PromptInjectionPlan;
118
+ normalizePathCandidate: (p: string) => string;
119
+ classifyIngestionStatus: (path: string) => string;
120
+ }): InputMaterialValidationResult;
121
+ //# sourceMappingURL=expand_pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand_pipeline.d.ts","sourceRoot":"","sources":["../../src/engine/expand_pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ // ── Pipeline 编排器 ──
2
+ export function createExpandPipeline(stages) {
3
+ return {
4
+ name: "sf_expand_pipeline",
5
+ async run(initialContext) {
6
+ let context = initialContext;
7
+ for (const stage of stages) {
8
+ const result = await stage.run(context);
9
+ context = result.context;
10
+ if (result.stop) {
11
+ return { context, stop: result.stop };
12
+ }
13
+ }
14
+ return { context };
15
+ },
16
+ };
17
+ }
18
+ export function runExpandPipeline(context, stages) {
19
+ return (async () => {
20
+ let current = context;
21
+ for (const stage of stages) {
22
+ const result = await stage.run(current);
23
+ current = result.context;
24
+ if (result.stop) {
25
+ return { context: current, stopped_by: stage.name, stop: result.stop };
26
+ }
27
+ }
28
+ return { context: current };
29
+ })();
30
+ }
31
+ // ── 路由策略计算(纯函数,可独立测试)──
32
+ export function createExpandRoutePhasePolicy(routeDecision) {
33
+ const route = routeDecision?.route;
34
+ const executionShape = routeDecision?.execution_shape;
35
+ const mutationAllowed = routeDecision?.mutation_allowed === true;
36
+ const readOnlyVerification = route === "acceptance"
37
+ || route === "review"
38
+ || (route === "analysis" && executionShape === "read_only_analysis")
39
+ || (route === "operation" && (executionShape === "verification_only" || executionShape === "read_only_analysis"));
40
+ const lightweight = !mutationAllowed
41
+ && (readOnlyVerification
42
+ || executionShape === "read_only_analysis"
43
+ || executionShape === "verification_only"
44
+ || route === "direct_answer");
45
+ return {
46
+ route,
47
+ execution_shape: executionShape,
48
+ mutation_allowed: mutationAllowed,
49
+ lightweight,
50
+ read_only_verification: readOnlyVerification,
51
+ skip_workflow_contract_strict: lightweight,
52
+ skip_input_material_hard_block: lightweight,
53
+ skip_project_knowledge_hard_block: lightweight,
54
+ skip_heavy_contract_gates: lightweight,
55
+ skip_pre_implementation_gates: lightweight,
56
+ };
57
+ }
58
+ export function computePrivacyGate(deps) {
59
+ if (deps.phasePolicy.lightweight) {
60
+ return {
61
+ safeIntent: deps.redactSensitiveText(deps.intent, "intent").redacted,
62
+ safeGoal: deps.redactSensitiveText(deps.intent.slice(0, 200), "intent_goal").redacted,
63
+ privacyLabels: [],
64
+ privacyRedactions: [],
65
+ privacyFindings: [],
66
+ hardFail: false,
67
+ blockedSources: [],
68
+ };
69
+ }
70
+ const gate = deps.evaluatePrivacyGate({
71
+ intent: deps.intent,
72
+ input_materials: deps.routeDecision?.input_materials?.map((m) => ({ path_or_ref: m.path ?? "" })) ?? [],
73
+ });
74
+ return {
75
+ safeIntent: gate.redacted_text ?? deps.redactSensitiveText(deps.intent, "intent").redacted,
76
+ safeGoal: deps.redactSensitiveText(deps.intent.slice(0, 200), "intent_goal").redacted,
77
+ privacyLabels: gate.labels,
78
+ privacyRedactions: gate.redaction_records,
79
+ privacyFindings: gate.findings,
80
+ hardFail: gate.hard_fail,
81
+ blockedSources: gate.blocked_sources,
82
+ };
83
+ }
84
+ export function validateInputMaterials(deps) {
85
+ const { routeDecision, skipInputMaterialHardBlock, confirmations = [] } = deps;
86
+ const contractNotes = [];
87
+ if (!routeDecision || routeDecision.input_materials.length === 0) {
88
+ return { blocked: false, inputMaterials: [], ingestionEvidences: [], contractNotes };
89
+ }
90
+ const pathMaterials = routeDecision.input_materials.filter((m) => m.path);
91
+ if (pathMaterials.length === 0) {
92
+ return { blocked: false, inputMaterials: [], ingestionEvidences: [], contractNotes };
93
+ }
94
+ const materials = pathMaterials.map((m) => deps.createInputMaterial({ path_or_ref: deps.normalizePathCandidate(m.path) }));
95
+ const evidences = materials.map((m) => deps.createIngestionEvidence(m));
96
+ for (const m of materials) {
97
+ if (m.access_mode === "forbidden") {
98
+ contractNotes.push(`[FORBIDDEN] ${m.path_or_ref}: 禁止读取`);
99
+ }
100
+ else if (m.trust_level === "external_unverified" || m.trust_level === "derived" || m.trust_level === "ai_generated") {
101
+ contractNotes.push(`[Manual Confirm] ${m.path_or_ref}: 信任等级=${m.trust_level}`);
102
+ }
103
+ }
104
+ const injectionPlan = deps.buildPromptInjectionPlan(materials, evidences);
105
+ // 禁止路径检查
106
+ const forbiddenMaterials = materials.filter((m) => m.access_mode === "forbidden");
107
+ if (!skipInputMaterialHardBlock && forbiddenMaterials.length > 0) {
108
+ return {
109
+ blocked: true,
110
+ blockReason: "输入材料包含禁止路径",
111
+ forbiddenPaths: forbiddenMaterials.map((m) => m.path_or_ref),
112
+ inputMaterials: materials,
113
+ ingestionEvidences: evidences,
114
+ promptInjectionPlan: injectionPlan,
115
+ contractNotes,
116
+ };
117
+ }
118
+ // 需确认路径检查
119
+ const needsConfirmation = materials.filter((m) => m.access_mode !== "forbidden"
120
+ && deps.classifyIngestionStatus(m.path_or_ref) === "requires_confirmation"
121
+ && !confirmations.includes(m.path_or_ref));
122
+ if (needsConfirmation.length > 0) {
123
+ return {
124
+ blocked: true,
125
+ blockReason: "输入材料需要确认",
126
+ confirmationNeeded: needsConfirmation.map((m) => m.path_or_ref),
127
+ inputMaterials: materials,
128
+ ingestionEvidences: evidences,
129
+ promptInjectionPlan: injectionPlan,
130
+ contractNotes,
131
+ };
132
+ }
133
+ return {
134
+ blocked: false,
135
+ inputMaterials: materials,
136
+ ingestionEvidences: evidences,
137
+ promptInjectionPlan: injectionPlan,
138
+ contractNotes,
139
+ };
140
+ }
141
+ //# sourceMappingURL=expand_pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand_pipeline.js","sourceRoot":"","sources":["../../src/engine/expand_pipeline.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export interface FirstPrinciplesValidationResult {
10
10
  valid: boolean;
11
11
  violations: string[];
12
12
  passed: boolean;
13
+ /** 期望的 JSON 结构,供 AI 修正输入时参考 */
14
+ expected_schema?: Record<string, unknown>;
13
15
  }
14
16
  /**
15
17
  * 创建第一性原理框架。
@@ -1 +1 @@
1
- {"version":3,"file":"first_principles.d.ts","sourceRoot":"","sources":["../../src/engine/first_principles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,WAAW,CAAC,GAChG,oBAAoB,CActB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,oBAAoB,CAwDtB;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,oBAAoB,GAC1B,+BAA+B,CAuBjC;AAoBD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,oBAAoB,GAC1B,qBAAqB,CAIvB"}
1
+ {"version":3,"file":"first_principles.d.ts","sourceRoot":"","sources":["../../src/engine/first_principles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,WAAW,CAAC,GAChG,oBAAoB,CActB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,oBAAoB,GAC1B,oBAAoB,CAwDtB;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,oBAAoB,GAC1B,+BAA+B,CAoCjC;AAoBD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,oBAAoB,GAC1B,qBAAqB,CAIvB"}
@@ -94,11 +94,24 @@ export function validateFirstPrinciplesForHighImpact(frame) {
94
94
  }
95
95
  const check = performFirstPrinciplesCheck(frame);
96
96
  violations.push(...check.failures);
97
- return {
97
+ const result = {
98
98
  valid: violations.length === 0,
99
99
  violations,
100
100
  passed: violations.length === 0,
101
101
  };
102
+ if (!result.valid) {
103
+ result.expected_schema = {
104
+ fundamental_need: "string — 问题的本质需求",
105
+ known_facts: ["string — 已确认的事实"],
106
+ assumptions: ["string — 未经验证的假设"],
107
+ candidate_solutions: [{ solution_id: "string", description: "string", complexity: "string" }],
108
+ simplest_viable_solution: "string — 最简可行方案",
109
+ chosen_solution: "string — 最终选择的方案(应与 simplest_viable_solution 一致或说明差异)",
110
+ falsification_questions: ["string — 可证伪的问题"],
111
+ why_not_legacy_path: "string — 为什么不走传统路径",
112
+ };
113
+ }
114
+ return result;
102
115
  }
103
116
  /**
104
117
  * 检测已知事实与假设之间的矛盾。
@@ -1 +1 @@
1
- {"version":3,"file":"first_principles.js","sourceRoot":"","sources":["../../src/engine/first_principles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"first_principles.js","sourceRoot":"","sources":["../../src/engine/first_principles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAiG;IAEjG,OAAO;QACL,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,0BAA0B,EAAE,EAAE;QAC9B,mBAAmB,EAAE,EAAE;QACvB,wBAAwB,EAAE,EAAE;QAC5B,uBAAuB,EAAE,EAAE;QAC3B,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE,EAAE;QACvB,uBAAuB,EAAE,sBAAsB;QAC/C,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAA2B;IAE3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uBAAuB;IACvB,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;IACV,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACnD,CAAC;IAED,yBAAyB;IACzB,oBAAoB;IAEpB,UAAU;IACV,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;IAED,YAAY;IACZ,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU;IACV,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;IAED,cAAc;IACd,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,wBAAwB;QACvD,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAC7D,uBAAuB;QACvB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAChF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,KAAK;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC7B,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,KAA2B;IAE3B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,uBAAuB,KAAK,sBAAsB,EAAE,CAAC;QAC7D,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,CAAC,uBAAuB,KAAK,cAAc,EAAE,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAoC;QAC9C,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU;QACV,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;KAChC,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,eAAe,GAAG;YACvB,gBAAgB,EAAE,kBAAkB;YACpC,WAAW,EAAE,CAAC,iBAAiB,CAAC;YAChC,WAAW,EAAE,CAAC,kBAAkB,CAAC;YACjC,mBAAmB,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAC7F,wBAAwB,EAAE,iBAAiB;YAC3C,eAAe,EAAE,uDAAuD;YACxE,uBAAuB,EAAE,CAAC,iBAAiB,CAAC;YAC5C,mBAAmB,EAAE,oBAAoB;SAC1C,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAe,EAAE,WAAqB;IAChE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,YAAY;IACZ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrE,cAAc,CAAC,IAAI,CAAC,aAAa,IAAI,UAAU,UAAU,MAAM,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA8B,EAC9B,KAA2B;IAE3B,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ProjectConfig, ClassifyResult, ExpandResult, SubTask } from "../types.js";
2
2
  import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
3
3
  import { type IntentRouteDecision } from "./intent_router.js";
4
+ import type { BrainstormSession } from "./extension_platform_contracts.js";
4
5
  /** 计划阶段上下文 */
5
6
  export interface PlanContext {
6
7
  current_step: SubTask;
@@ -18,6 +19,8 @@ export interface ExpandInput {
18
19
  route_decision?: IntentRouteDecision;
19
20
  input_material_confirmations?: string[];
20
21
  task_id?: string;
22
+ /** 用户提供的脑暴会话 — 优先于自动生成的方案 */
23
+ brainstorm_session?: BrainstormSession;
21
24
  }
22
25
  /**
23
26
  * 将分类结果扩展为完整的 AI 执行 prompt 和配套元数据。
@@ -1 +1 @@
1
- {"version":3,"file":"intent_expander.d.ts","sourceRoot":"","sources":["../../src/engine/intent_expander.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAsE,OAAO,EAAkB,MAAM,aAAa,CAAC;AAC5K,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAwB,KAAK,mBAAmB,EAAmD,MAAM,oBAAoB,CAAC;AA0gBrI,cAAc;AACd,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,qBAAqB,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6FD;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA64BtE;AAmxBD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,oBAAoB,CAsCvB"}
1
+ {"version":3,"file":"intent_expander.d.ts","sourceRoot":"","sources":["../../src/engine/intent_expander.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAsE,OAAO,EAAkB,MAAM,aAAa,CAAC;AAC5K,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAwB,KAAK,mBAAmB,EAAmD,MAAM,oBAAoB,CAAC;AAuCrI,OAAO,KAAK,EAA8B,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAwgBvG,cAAc;AACd,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,eAAe;AACf,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,EAAE,qBAAqB,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAkJD;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAwzBtE;AAwxBD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,oBAAoB,CAsCvB"}