@nahisaho/musubix-core 2.1.0 → 2.2.0
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/AGENTS.md +158 -53
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +5 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/synthesis.d.ts +62 -0
- package/dist/cli/commands/synthesis.d.ts.map +1 -0
- package/dist/cli/commands/synthesis.js +323 -0
- package/dist/cli/commands/synthesis.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/PipelineConfig.d.ts +200 -0
- package/dist/pipeline/PipelineConfig.d.ts.map +1 -0
- package/dist/pipeline/PipelineConfig.js +310 -0
- package/dist/pipeline/PipelineConfig.js.map +1 -0
- package/dist/pipeline/index.d.ts +9 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +8 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/synthesis/SynthesisOrchestrator.d.ts +181 -0
- package/dist/synthesis/SynthesisOrchestrator.d.ts.map +1 -0
- package/dist/synthesis/SynthesisOrchestrator.js +328 -0
- package/dist/synthesis/SynthesisOrchestrator.js.map +1 -0
- package/dist/synthesis/index.d.ts +7 -0
- package/dist/synthesis/index.d.ts.map +1 -0
- package/dist/synthesis/index.js +6 -0
- package/dist/synthesis/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PipelineConfig - Integrated Synthesis Pipeline Configuration
|
|
3
|
+
*
|
|
4
|
+
* Configures and executes a 7-stage synthesis pipeline with support for
|
|
5
|
+
* parallel execution of independent stages.
|
|
6
|
+
*
|
|
7
|
+
* @module @nahisaho/musubix-core
|
|
8
|
+
* @see TSK-INT-102
|
|
9
|
+
* @see DES-INT-102
|
|
10
|
+
* @see REQ-INT-102
|
|
11
|
+
*
|
|
12
|
+
* Pipeline Stages:
|
|
13
|
+
* 1. Parse - Source code parsing
|
|
14
|
+
* 2. Analyze - Type and semantic analysis
|
|
15
|
+
* 3. Extract - Pattern extraction
|
|
16
|
+
* 4. Prune - Search space pruning
|
|
17
|
+
* 5. Synthesize - Code synthesis
|
|
18
|
+
* 6. Optimize - E-Graph optimization
|
|
19
|
+
* 7. Generate - Code generation
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { createPipelineConfig } from './PipelineConfig.js';
|
|
24
|
+
*
|
|
25
|
+
* const config = createPipelineConfig({ enableParallel: true });
|
|
26
|
+
* const result = await config.execute({ source: 'input code' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Default Stages
|
|
31
|
+
// =============================================================================
|
|
32
|
+
function createDefaultStages() {
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
name: 'parse',
|
|
36
|
+
description: 'Parse source code into AST',
|
|
37
|
+
order: 1,
|
|
38
|
+
enabled: true,
|
|
39
|
+
execute: async (input) => {
|
|
40
|
+
const pipelineInput = input;
|
|
41
|
+
// Simple mock parsing
|
|
42
|
+
return {
|
|
43
|
+
source: pipelineInput.source,
|
|
44
|
+
targetType: pipelineInput.targetType,
|
|
45
|
+
context: pipelineInput.context,
|
|
46
|
+
ast: { type: 'Program', body: [], source: pipelineInput.source },
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'analyze',
|
|
52
|
+
description: 'Type and semantic analysis',
|
|
53
|
+
order: 2,
|
|
54
|
+
enabled: true,
|
|
55
|
+
dependencies: ['parse'],
|
|
56
|
+
execute: async (input) => {
|
|
57
|
+
// Add type information
|
|
58
|
+
const data = input;
|
|
59
|
+
return {
|
|
60
|
+
...data,
|
|
61
|
+
types: { inferred: true },
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'extract',
|
|
67
|
+
description: 'Extract patterns from code',
|
|
68
|
+
order: 3,
|
|
69
|
+
enabled: true,
|
|
70
|
+
dependencies: ['parse'],
|
|
71
|
+
execute: async (input) => {
|
|
72
|
+
// Extract patterns
|
|
73
|
+
const data = input;
|
|
74
|
+
return {
|
|
75
|
+
...data,
|
|
76
|
+
patterns: [],
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'prune',
|
|
82
|
+
description: 'Prune search space using type information',
|
|
83
|
+
order: 4,
|
|
84
|
+
enabled: true,
|
|
85
|
+
dependencies: ['analyze', 'extract'],
|
|
86
|
+
execute: async (input) => {
|
|
87
|
+
// Prune candidates
|
|
88
|
+
const data = input;
|
|
89
|
+
return {
|
|
90
|
+
...data,
|
|
91
|
+
prunedCandidates: [],
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'synthesize',
|
|
97
|
+
description: 'Synthesize code candidates',
|
|
98
|
+
order: 5,
|
|
99
|
+
enabled: true,
|
|
100
|
+
dependencies: ['prune'],
|
|
101
|
+
execute: async (input) => {
|
|
102
|
+
// Synthesize
|
|
103
|
+
const data = input;
|
|
104
|
+
return {
|
|
105
|
+
...data,
|
|
106
|
+
candidates: [],
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'optimize',
|
|
112
|
+
description: 'Optimize using E-Graph',
|
|
113
|
+
order: 6,
|
|
114
|
+
enabled: true,
|
|
115
|
+
dependencies: ['synthesize'],
|
|
116
|
+
execute: async (input) => {
|
|
117
|
+
// Optimize
|
|
118
|
+
const data = input;
|
|
119
|
+
return {
|
|
120
|
+
...data,
|
|
121
|
+
optimized: true,
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'generate',
|
|
127
|
+
description: 'Generate final code',
|
|
128
|
+
order: 7,
|
|
129
|
+
enabled: true,
|
|
130
|
+
dependencies: ['optimize'],
|
|
131
|
+
execute: async (input) => {
|
|
132
|
+
const data = input;
|
|
133
|
+
// Generate output
|
|
134
|
+
return {
|
|
135
|
+
code: '// Generated code',
|
|
136
|
+
ast: data.ast,
|
|
137
|
+
patterns: data.patterns,
|
|
138
|
+
intermediates: data,
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
// =============================================================================
|
|
145
|
+
// Default Implementation
|
|
146
|
+
// =============================================================================
|
|
147
|
+
/**
|
|
148
|
+
* Default PipelineConfig implementation
|
|
149
|
+
*/
|
|
150
|
+
export class DefaultPipelineConfig {
|
|
151
|
+
stages = new Map();
|
|
152
|
+
options;
|
|
153
|
+
constructor(options = {}) {
|
|
154
|
+
this.options = {
|
|
155
|
+
enableParallel: options.enableParallel ?? false,
|
|
156
|
+
maxParallelStages: options.maxParallelStages ?? 2,
|
|
157
|
+
parallelGroups: options.parallelGroups ?? [],
|
|
158
|
+
stageTimeout: options.stageTimeout ?? 30000,
|
|
159
|
+
};
|
|
160
|
+
// Initialize default stages
|
|
161
|
+
createDefaultStages().forEach((stage) => {
|
|
162
|
+
this.stages.set(stage.name, stage);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get all configured stages
|
|
167
|
+
*/
|
|
168
|
+
getStages() {
|
|
169
|
+
return Array.from(this.stages.values()).sort((a, b) => a.order - b.order);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get a specific stage by name
|
|
173
|
+
*/
|
|
174
|
+
getStage(name) {
|
|
175
|
+
return this.stages.get(name);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Enable a stage
|
|
179
|
+
*/
|
|
180
|
+
enableStage(name) {
|
|
181
|
+
const stage = this.stages.get(name);
|
|
182
|
+
if (stage) {
|
|
183
|
+
stage.enabled = true;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Disable a stage
|
|
188
|
+
*/
|
|
189
|
+
disableStage(name) {
|
|
190
|
+
const stage = this.stages.get(name);
|
|
191
|
+
if (stage) {
|
|
192
|
+
stage.enabled = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Check if a stage is enabled
|
|
197
|
+
*/
|
|
198
|
+
isStageEnabled(name) {
|
|
199
|
+
const stage = this.stages.get(name);
|
|
200
|
+
return stage?.enabled ?? false;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Add a custom stage
|
|
204
|
+
*/
|
|
205
|
+
addStage(stage) {
|
|
206
|
+
if (stage.enabled === undefined) {
|
|
207
|
+
stage.enabled = true;
|
|
208
|
+
}
|
|
209
|
+
this.stages.set(stage.name, stage);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Remove a stage
|
|
213
|
+
*/
|
|
214
|
+
removeStage(name) {
|
|
215
|
+
this.stages.delete(name);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Execute the pipeline
|
|
219
|
+
*/
|
|
220
|
+
async execute(input) {
|
|
221
|
+
const startTime = Date.now();
|
|
222
|
+
const stageTimes = {};
|
|
223
|
+
let stagesExecuted = 0;
|
|
224
|
+
let currentData = input;
|
|
225
|
+
try {
|
|
226
|
+
const stages = this.getStages().filter((s) => s.enabled);
|
|
227
|
+
for (const stage of stages) {
|
|
228
|
+
const stageStart = Date.now();
|
|
229
|
+
try {
|
|
230
|
+
currentData = await stage.execute(currentData);
|
|
231
|
+
stagesExecuted++;
|
|
232
|
+
stageTimes[stage.name] = Date.now() - stageStart;
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
return {
|
|
236
|
+
success: false,
|
|
237
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
238
|
+
stagesExecuted,
|
|
239
|
+
totalTimeMs: Date.now() - startTime,
|
|
240
|
+
stageTimes,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
success: true,
|
|
246
|
+
output: currentData,
|
|
247
|
+
stagesExecuted,
|
|
248
|
+
totalTimeMs: Date.now() - startTime,
|
|
249
|
+
stageTimes,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
return {
|
|
254
|
+
success: false,
|
|
255
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
256
|
+
stagesExecuted,
|
|
257
|
+
totalTimeMs: Date.now() - startTime,
|
|
258
|
+
stageTimes,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Check if parallel execution is enabled
|
|
264
|
+
*/
|
|
265
|
+
isParallelEnabled() {
|
|
266
|
+
return this.options.enableParallel;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Serialize to JSON
|
|
270
|
+
*/
|
|
271
|
+
toJSON() {
|
|
272
|
+
return {
|
|
273
|
+
stages: this.getStages().map((s) => ({
|
|
274
|
+
name: s.name,
|
|
275
|
+
description: s.description,
|
|
276
|
+
order: s.order,
|
|
277
|
+
enabled: s.enabled ?? true,
|
|
278
|
+
dependencies: s.dependencies,
|
|
279
|
+
})),
|
|
280
|
+
options: { ...this.options },
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Deserialize from JSON
|
|
285
|
+
*/
|
|
286
|
+
fromJSON(json) {
|
|
287
|
+
// Update options
|
|
288
|
+
this.options = {
|
|
289
|
+
...this.options,
|
|
290
|
+
...json.options,
|
|
291
|
+
};
|
|
292
|
+
// Update stage enabled states
|
|
293
|
+
for (const stageConfig of json.stages) {
|
|
294
|
+
const stage = this.stages.get(stageConfig.name);
|
|
295
|
+
if (stage) {
|
|
296
|
+
stage.enabled = stageConfig.enabled;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// =============================================================================
|
|
302
|
+
// Factory Function
|
|
303
|
+
// =============================================================================
|
|
304
|
+
/**
|
|
305
|
+
* Create a new PipelineConfig instance
|
|
306
|
+
*/
|
|
307
|
+
export function createPipelineConfig(options = {}) {
|
|
308
|
+
return new DefaultPipelineConfig(options);
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=PipelineConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineConfig.js","sourceRoot":"","sources":["../../src/pipeline/PipelineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA2IH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,SAAS,mBAAmB;IAC1B,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,MAAM,aAAa,GAAG,KAAsB,CAAC;gBAC7C,sBAAsB;gBACtB,OAAO;oBACL,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE;iBACjE,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,OAAO,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,uBAAuB;gBACvB,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1B,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,OAAO,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,mBAAmB;gBACnB,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,QAAQ,EAAE,EAAE;iBACb,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,2CAA2C;YACxD,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,mBAAmB;gBACnB,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,gBAAgB,EAAE,EAAE;iBACrB,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,OAAO,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,aAAa;gBACb,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,UAAU,EAAE,EAAE;iBACf,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,WAAW;gBACX,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,OAAO;oBACL,GAAG,IAAI;oBACP,SAAS,EAAE,IAAI;iBAChB,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB;YAClC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,CAAC,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,KAAgC,CAAC;gBAC9C,kBAAkB;gBAClB,OAAO;oBACL,IAAI,EAAE,mBAAmB;oBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,aAAa,EAAE,IAAI;iBACF,CAAC;YACtB,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC/C,OAAO,CAAkC;IAEjD,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,OAAO,GAAG;YACb,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;YAC/C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,CAAC;YACjD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;YAC5C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;SAC5C,CAAC;QAEF,4BAA4B;QAC5B,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAY;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAoB;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAoB;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,WAAW,GAAY,KAAK,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAEzD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE9B,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAC/C,cAAc,EAAE,CAAC;oBACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;gBACnD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChE,cAAc;wBACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBACnC,UAAU;qBACX,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAA6B;gBACrC,cAAc;gBACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACnC,UAAU;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,cAAc;gBACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACnC,UAAU;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;gBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;aAC7B,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAwB;QAC/B,iBAAiB;QACjB,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,OAAO;SAChB,CAAC;QAEF,8BAA8B;QAC9B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Module - Synthesis Pipeline Configuration
|
|
3
|
+
*
|
|
4
|
+
* @module @nahisaho/musubix-core/pipeline
|
|
5
|
+
* @see TSK-INT-102
|
|
6
|
+
*/
|
|
7
|
+
export type { PipelineConfig, PipelineStage, PipelineInput, PipelineOutput, PipelineExecutionResult, PipelineConfigOptions, PipelineConfigJSON, ParallelGroup, } from './PipelineConfig.js';
|
|
8
|
+
export { createPipelineConfig, DefaultPipelineConfig } from './PipelineConfig.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SynthesisOrchestrator - E2E Synthesis Pipeline Integration
|
|
3
|
+
* @module @nahisaho/musubix-core
|
|
4
|
+
* @see TSK-INT-101
|
|
5
|
+
* @see DES-INT-101
|
|
6
|
+
* @see REQ-INT-101
|
|
7
|
+
*
|
|
8
|
+
* 3パッケージ(library-learner, neural-search, synthesis)を統合した
|
|
9
|
+
* エンドツーエンドのプログラム合成パイプラインを提供
|
|
10
|
+
*
|
|
11
|
+
* Flow: NL仕様 → 構造化仕様 → ライブラリ検索 → ニューラル探索 → 合成
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Pipeline preset configuration
|
|
15
|
+
*/
|
|
16
|
+
export type PipelinePreset = 'fast' | 'balanced' | 'accurate';
|
|
17
|
+
/**
|
|
18
|
+
* Orchestrator configuration
|
|
19
|
+
*/
|
|
20
|
+
export interface OrchestratorConfig {
|
|
21
|
+
/** Pipeline preset (default: 'balanced') */
|
|
22
|
+
pipelinePreset?: PipelinePreset;
|
|
23
|
+
/** Synthesis timeout in ms (default: 30000) */
|
|
24
|
+
timeout?: number;
|
|
25
|
+
/** Maximum iterations (default: 1000) */
|
|
26
|
+
maxIterations?: number;
|
|
27
|
+
/** Enable library learning integration (default: true) */
|
|
28
|
+
enableLibraryLearning?: boolean;
|
|
29
|
+
/** Enable neural search integration (default: true) */
|
|
30
|
+
enableNeuralSearch?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Input/Output example for synthesis
|
|
34
|
+
*/
|
|
35
|
+
export interface IOExample {
|
|
36
|
+
input: unknown;
|
|
37
|
+
output: unknown;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Synthesis request
|
|
41
|
+
*/
|
|
42
|
+
export interface SynthesisRequest {
|
|
43
|
+
/** Natural language or structured specification */
|
|
44
|
+
specification: string;
|
|
45
|
+
/** Input/output examples */
|
|
46
|
+
examples: IOExample[];
|
|
47
|
+
/** Additional constraints */
|
|
48
|
+
constraints: string[];
|
|
49
|
+
/** Optional hints for synthesis */
|
|
50
|
+
hints: string[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Timing information for synthesis
|
|
54
|
+
*/
|
|
55
|
+
export interface SynthesisTiming {
|
|
56
|
+
/** Total synthesis time in ms */
|
|
57
|
+
totalMs: number;
|
|
58
|
+
/** Parse stage time */
|
|
59
|
+
parseMs: number;
|
|
60
|
+
/** Analysis stage time */
|
|
61
|
+
analyzeMs: number;
|
|
62
|
+
/** Search stage time */
|
|
63
|
+
searchMs: number;
|
|
64
|
+
/** Synthesis stage time */
|
|
65
|
+
synthesisMs: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Synthesis status
|
|
69
|
+
*/
|
|
70
|
+
export type SynthesisStatus = 'success' | 'partial' | 'failure' | 'timeout';
|
|
71
|
+
/**
|
|
72
|
+
* Synthesis response
|
|
73
|
+
*/
|
|
74
|
+
export interface SynthesisResponse {
|
|
75
|
+
/** Synthesis status */
|
|
76
|
+
status: SynthesisStatus;
|
|
77
|
+
/** Synthesized program (if successful) */
|
|
78
|
+
program?: string;
|
|
79
|
+
/** Confidence score (0-1) */
|
|
80
|
+
confidence: number;
|
|
81
|
+
/** Timing information */
|
|
82
|
+
timing: SynthesisTiming;
|
|
83
|
+
/** Stages executed */
|
|
84
|
+
stagesExecuted: string[];
|
|
85
|
+
/** Number of library patterns used */
|
|
86
|
+
libraryPatternsUsed: number;
|
|
87
|
+
/** Error message (if failed) */
|
|
88
|
+
error?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Orchestrator statistics
|
|
92
|
+
*/
|
|
93
|
+
export interface OrchestratorStatistics {
|
|
94
|
+
/** Total synthesis requests */
|
|
95
|
+
totalRequests: number;
|
|
96
|
+
/** Successful syntheses */
|
|
97
|
+
successCount: number;
|
|
98
|
+
/** Failed syntheses */
|
|
99
|
+
failureCount: number;
|
|
100
|
+
/** Timeout count */
|
|
101
|
+
timeoutCount: number;
|
|
102
|
+
/** Average synthesis time in ms */
|
|
103
|
+
averageSynthesisTimeMs: number;
|
|
104
|
+
/** Total library patterns used */
|
|
105
|
+
totalLibraryPatternsUsed: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Library pattern for synthesis
|
|
109
|
+
*/
|
|
110
|
+
export interface LibraryPattern {
|
|
111
|
+
id: string;
|
|
112
|
+
name: string;
|
|
113
|
+
code?: string;
|
|
114
|
+
confidence?: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* SynthesisOrchestrator interface
|
|
118
|
+
*/
|
|
119
|
+
export interface SynthesisOrchestrator {
|
|
120
|
+
/**
|
|
121
|
+
* Synthesize program from request
|
|
122
|
+
*/
|
|
123
|
+
synthesize(request: SynthesisRequest): Promise<SynthesisResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Synthesize from natural language specification
|
|
126
|
+
*/
|
|
127
|
+
synthesizeFromNL(spec: string, examples?: unknown[]): Promise<SynthesisResponse>;
|
|
128
|
+
/**
|
|
129
|
+
* Synthesize with library pattern assistance
|
|
130
|
+
*/
|
|
131
|
+
synthesizeWithLibrary(request: SynthesisRequest, libraryPatterns: LibraryPattern[]): Promise<SynthesisResponse>;
|
|
132
|
+
/**
|
|
133
|
+
* Get orchestrator statistics
|
|
134
|
+
*/
|
|
135
|
+
getStatistics(): OrchestratorStatistics;
|
|
136
|
+
/**
|
|
137
|
+
* Reset statistics and state
|
|
138
|
+
*/
|
|
139
|
+
reset(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Serialize orchestrator state
|
|
142
|
+
*/
|
|
143
|
+
toJSON(): string;
|
|
144
|
+
/**
|
|
145
|
+
* Restore orchestrator state
|
|
146
|
+
*/
|
|
147
|
+
fromJSON(json: string): void;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Default implementation of SynthesisOrchestrator
|
|
151
|
+
*/
|
|
152
|
+
declare class DefaultSynthesisOrchestrator implements SynthesisOrchestrator {
|
|
153
|
+
private config;
|
|
154
|
+
private statistics;
|
|
155
|
+
constructor(config?: OrchestratorConfig);
|
|
156
|
+
synthesize(request: SynthesisRequest): Promise<SynthesisResponse>;
|
|
157
|
+
synthesizeFromNL(spec: string, examples?: unknown[]): Promise<SynthesisResponse>;
|
|
158
|
+
synthesizeWithLibrary(request: SynthesisRequest, libraryPatterns: LibraryPattern[]): Promise<SynthesisResponse>;
|
|
159
|
+
getStatistics(): OrchestratorStatistics;
|
|
160
|
+
reset(): void;
|
|
161
|
+
toJSON(): string;
|
|
162
|
+
fromJSON(json: string): void;
|
|
163
|
+
private createInitialStatistics;
|
|
164
|
+
private updateStatistics;
|
|
165
|
+
private isTimedOut;
|
|
166
|
+
private createTimeoutResponse;
|
|
167
|
+
private parseSpecification;
|
|
168
|
+
private analyzeSpecification;
|
|
169
|
+
private searchCandidates;
|
|
170
|
+
private synthesizeProgram;
|
|
171
|
+
private matchLibraryPatterns;
|
|
172
|
+
private synthesizeWithPatterns;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create a SynthesisOrchestrator instance
|
|
176
|
+
* @param config - Optional configuration
|
|
177
|
+
* @returns SynthesisOrchestrator instance
|
|
178
|
+
*/
|
|
179
|
+
export declare function createSynthesisOrchestrator(config?: OrchestratorConfig): SynthesisOrchestrator;
|
|
180
|
+
export { DefaultSynthesisOrchestrator };
|
|
181
|
+
//# sourceMappingURL=SynthesisOrchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SynthesisOrchestrator.d.ts","sourceRoot":"","sources":["../../src/synthesis/SynthesisOrchestrator.ts"],"names":[],"mappings":"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"}
|