@claude-flow/plugin-quantum-optimizer 3.0.0-alpha.1
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 +300 -0
- package/dist/bridges/dag-bridge.d.ts +95 -0
- package/dist/bridges/dag-bridge.d.ts.map +1 -0
- package/dist/bridges/dag-bridge.js +461 -0
- package/dist/bridges/dag-bridge.js.map +1 -0
- package/dist/bridges/exotic-bridge.d.ts +64 -0
- package/dist/bridges/exotic-bridge.d.ts.map +1 -0
- package/dist/bridges/exotic-bridge.js +434 -0
- package/dist/bridges/exotic-bridge.js.map +1 -0
- package/dist/bridges/index.d.ts +10 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +8 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +100 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-tools.d.ts +34 -0
- package/dist/mcp-tools.d.ts.map +1 -0
- package/dist/mcp-tools.js +525 -0
- package/dist/mcp-tools.js.map +1 -0
- package/dist/types.d.ts +789 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +154 -0
- package/dist/types.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG Bridge - Directed Acyclic Graph Operations
|
|
3
|
+
*
|
|
4
|
+
* Bridge to @ruvector/dag-wasm for dependency graph analysis,
|
|
5
|
+
* topological sorting, and cycle detection.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* DAG Bridge for dependency graph operations
|
|
9
|
+
*/
|
|
10
|
+
export class DagBridge {
|
|
11
|
+
name = 'quantum-dag-bridge';
|
|
12
|
+
version = '0.1.0';
|
|
13
|
+
_status = 'unloaded';
|
|
14
|
+
_module = null;
|
|
15
|
+
get status() {
|
|
16
|
+
return this._status;
|
|
17
|
+
}
|
|
18
|
+
get initialized() {
|
|
19
|
+
return this._status === 'ready';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the WASM module
|
|
23
|
+
*/
|
|
24
|
+
async initialize() {
|
|
25
|
+
if (this._status === 'ready')
|
|
26
|
+
return;
|
|
27
|
+
if (this._status === 'loading')
|
|
28
|
+
return;
|
|
29
|
+
this._status = 'loading';
|
|
30
|
+
try {
|
|
31
|
+
// Dynamic import - module may not be installed
|
|
32
|
+
const wasmModule = await import(/* webpackIgnore: true */ '@ruvector/dag-wasm').catch(() => null);
|
|
33
|
+
if (wasmModule) {
|
|
34
|
+
this._module = wasmModule;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this._module = this.createMockModule();
|
|
38
|
+
}
|
|
39
|
+
this._status = 'ready';
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this._status = 'error';
|
|
43
|
+
throw new Error(`Failed to initialize DagBridge: ${error instanceof Error ? error.message : String(error)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Dispose of resources
|
|
48
|
+
*/
|
|
49
|
+
async dispose() {
|
|
50
|
+
this._module = null;
|
|
51
|
+
this._status = 'unloaded';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Perform topological sort on a DAG
|
|
55
|
+
*/
|
|
56
|
+
topologicalSort(dag) {
|
|
57
|
+
const nodeIndex = new Map();
|
|
58
|
+
dag.nodes.forEach((node, idx) => nodeIndex.set(node.id, idx));
|
|
59
|
+
// Build adjacency list
|
|
60
|
+
const adjList = new Map();
|
|
61
|
+
const inDegree = new Array(dag.nodes.length).fill(0);
|
|
62
|
+
for (const edge of dag.edges) {
|
|
63
|
+
const from = nodeIndex.get(edge.from);
|
|
64
|
+
const to = nodeIndex.get(edge.to);
|
|
65
|
+
if (from === undefined || to === undefined)
|
|
66
|
+
continue;
|
|
67
|
+
if (!adjList.has(from)) {
|
|
68
|
+
adjList.set(from, []);
|
|
69
|
+
}
|
|
70
|
+
adjList.get(from).push(to);
|
|
71
|
+
inDegree[to]++;
|
|
72
|
+
}
|
|
73
|
+
// Kahn's algorithm
|
|
74
|
+
const queue = [];
|
|
75
|
+
for (let i = 0; i < dag.nodes.length; i++) {
|
|
76
|
+
if (inDegree[i] === 0) {
|
|
77
|
+
queue.push(i);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const order = [];
|
|
81
|
+
while (queue.length > 0) {
|
|
82
|
+
const node = queue.shift();
|
|
83
|
+
order.push(dag.nodes[node].id);
|
|
84
|
+
for (const neighbor of adjList.get(node) ?? []) {
|
|
85
|
+
inDegree[neighbor]--;
|
|
86
|
+
if (inDegree[neighbor] === 0) {
|
|
87
|
+
queue.push(neighbor);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Check for cycle
|
|
92
|
+
if (order.length !== dag.nodes.length) {
|
|
93
|
+
const cycleNodes = dag.nodes
|
|
94
|
+
.filter((_, idx) => inDegree[idx] > 0)
|
|
95
|
+
.map(n => n.id);
|
|
96
|
+
return {
|
|
97
|
+
order: [],
|
|
98
|
+
hasCycle: true,
|
|
99
|
+
cycleNodes,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
order,
|
|
104
|
+
hasCycle: false,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Find critical path in a DAG with durations
|
|
109
|
+
*/
|
|
110
|
+
criticalPath(dag, durations) {
|
|
111
|
+
const sortResult = this.topologicalSort(dag);
|
|
112
|
+
if (sortResult.hasCycle) {
|
|
113
|
+
throw new Error('Cannot compute critical path for cyclic graph');
|
|
114
|
+
}
|
|
115
|
+
const nodeIndex = new Map();
|
|
116
|
+
dag.nodes.forEach((node, idx) => nodeIndex.set(node.id, idx));
|
|
117
|
+
// Forward pass: compute earliest start times
|
|
118
|
+
const earliest = new Map();
|
|
119
|
+
for (const nodeId of sortResult.order) {
|
|
120
|
+
let maxPredecessor = 0;
|
|
121
|
+
for (const edge of dag.edges) {
|
|
122
|
+
if (edge.to === nodeId) {
|
|
123
|
+
const predEnd = (earliest.get(edge.from) ?? 0) + (durations.get(edge.from) ?? 0);
|
|
124
|
+
maxPredecessor = Math.max(maxPredecessor, predEnd);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
earliest.set(nodeId, maxPredecessor);
|
|
128
|
+
}
|
|
129
|
+
// Find total project duration
|
|
130
|
+
let maxEnd = 0;
|
|
131
|
+
let lastNode = sortResult.order[0];
|
|
132
|
+
for (const nodeId of sortResult.order) {
|
|
133
|
+
const end = (earliest.get(nodeId) ?? 0) + (durations.get(nodeId) ?? 0);
|
|
134
|
+
if (end > maxEnd) {
|
|
135
|
+
maxEnd = end;
|
|
136
|
+
lastNode = nodeId;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Backward pass: compute latest start times
|
|
140
|
+
const latest = new Map();
|
|
141
|
+
const reversedOrder = [...sortResult.order].reverse();
|
|
142
|
+
for (const nodeId of reversedOrder) {
|
|
143
|
+
let minSuccessor = maxEnd;
|
|
144
|
+
for (const edge of dag.edges) {
|
|
145
|
+
if (edge.from === nodeId) {
|
|
146
|
+
const succStart = latest.get(edge.to) ?? maxEnd;
|
|
147
|
+
minSuccessor = Math.min(minSuccessor, succStart);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
latest.set(nodeId, minSuccessor - (durations.get(nodeId) ?? 0));
|
|
151
|
+
}
|
|
152
|
+
// Compute slack and find critical path
|
|
153
|
+
const slack = new Map();
|
|
154
|
+
const criticalNodes = [];
|
|
155
|
+
for (const nodeId of sortResult.order) {
|
|
156
|
+
const nodeSlack = (latest.get(nodeId) ?? 0) - (earliest.get(nodeId) ?? 0);
|
|
157
|
+
slack.set(nodeId, nodeSlack);
|
|
158
|
+
if (nodeSlack === 0) {
|
|
159
|
+
criticalNodes.push(nodeId);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
path: criticalNodes,
|
|
164
|
+
length: maxEnd,
|
|
165
|
+
slack,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Resolve package dependencies using quantum-inspired optimization
|
|
170
|
+
*/
|
|
171
|
+
async resolveDependencies(packages, constraints) {
|
|
172
|
+
const startTime = performance.now();
|
|
173
|
+
const timeout = constraints.timeout;
|
|
174
|
+
// Build dependency graph
|
|
175
|
+
const packageMap = new Map();
|
|
176
|
+
packages.forEach(pkg => packageMap.set(`${pkg.name}@${pkg.version}`, pkg));
|
|
177
|
+
// Create version lookup
|
|
178
|
+
const versionsByName = new Map();
|
|
179
|
+
for (const pkg of packages) {
|
|
180
|
+
if (!versionsByName.has(pkg.name)) {
|
|
181
|
+
versionsByName.set(pkg.name, []);
|
|
182
|
+
}
|
|
183
|
+
versionsByName.get(pkg.name).push(pkg);
|
|
184
|
+
}
|
|
185
|
+
// Build constraint graph
|
|
186
|
+
const resolved = new Map();
|
|
187
|
+
const resolvedConflicts = [];
|
|
188
|
+
// Initialize with lockfile if present
|
|
189
|
+
if (constraints.lockfile) {
|
|
190
|
+
for (const [name, version] of Object.entries(constraints.lockfile)) {
|
|
191
|
+
resolved.set(name, version);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Greedy resolution with backtracking
|
|
195
|
+
const visited = new Set();
|
|
196
|
+
const stack = [];
|
|
197
|
+
const resolvePackage = (name, requiredVersion) => {
|
|
198
|
+
if (resolved.has(name)) {
|
|
199
|
+
return this.versionSatisfies(resolved.get(name), requiredVersion);
|
|
200
|
+
}
|
|
201
|
+
if (visited.has(name)) {
|
|
202
|
+
// Cycle detected
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
visited.add(name);
|
|
206
|
+
// Find compatible versions
|
|
207
|
+
const candidates = versionsByName.get(name) ?? [];
|
|
208
|
+
const compatible = candidates
|
|
209
|
+
.filter(pkg => this.versionSatisfies(pkg.version, requiredVersion))
|
|
210
|
+
.sort((a, b) => {
|
|
211
|
+
// Sort by objective
|
|
212
|
+
switch (constraints.minimize) {
|
|
213
|
+
case 'size':
|
|
214
|
+
return (a.size ?? 0) - (b.size ?? 0);
|
|
215
|
+
case 'vulnerabilities':
|
|
216
|
+
return (a.vulnerabilities?.length ?? 0) - (b.vulnerabilities?.length ?? 0);
|
|
217
|
+
case 'depth':
|
|
218
|
+
return Object.keys(a.dependencies).length - Object.keys(b.dependencies).length;
|
|
219
|
+
default:
|
|
220
|
+
return this.compareVersions(b.version, a.version); // Prefer newer
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
for (const pkg of compatible) {
|
|
224
|
+
// Check conflicts
|
|
225
|
+
let hasConflict = false;
|
|
226
|
+
for (const conflict of pkg.conflicts) {
|
|
227
|
+
if (resolved.has(conflict.split('@')[0])) {
|
|
228
|
+
hasConflict = true;
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (hasConflict)
|
|
233
|
+
continue;
|
|
234
|
+
// Try this version
|
|
235
|
+
resolved.set(name, pkg.version);
|
|
236
|
+
stack.push(name);
|
|
237
|
+
// Resolve dependencies
|
|
238
|
+
let allDepsResolved = true;
|
|
239
|
+
for (const [depName, depVersion] of Object.entries(pkg.dependencies)) {
|
|
240
|
+
if (!resolvePackage(depName, depVersion)) {
|
|
241
|
+
allDepsResolved = false;
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
if (performance.now() - startTime > timeout) {
|
|
245
|
+
throw new Error('Dependency resolution timeout');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (allDepsResolved) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
// Backtrack
|
|
252
|
+
resolved.delete(name);
|
|
253
|
+
stack.pop();
|
|
254
|
+
}
|
|
255
|
+
visited.delete(name);
|
|
256
|
+
return false;
|
|
257
|
+
};
|
|
258
|
+
// Resolve all root packages
|
|
259
|
+
for (const pkg of packages) {
|
|
260
|
+
if (!resolved.has(pkg.name)) {
|
|
261
|
+
resolvePackage(pkg.name, pkg.version);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Build installation order
|
|
265
|
+
const dag = {
|
|
266
|
+
nodes: Array.from(resolved.keys()).map(name => ({ id: name })),
|
|
267
|
+
edges: [],
|
|
268
|
+
};
|
|
269
|
+
const edges = [];
|
|
270
|
+
for (const [name, version] of resolved) {
|
|
271
|
+
const pkg = packages.find(p => p.name === name && p.version === version);
|
|
272
|
+
if (pkg) {
|
|
273
|
+
for (const depName of Object.keys(pkg.dependencies)) {
|
|
274
|
+
if (resolved.has(depName)) {
|
|
275
|
+
edges.push({ from: depName, to: name });
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const sortedDag = { nodes: dag.nodes, edges };
|
|
281
|
+
const sortResult = this.topologicalSort(sortedDag);
|
|
282
|
+
// Calculate totals
|
|
283
|
+
let totalSize = 0;
|
|
284
|
+
const allVulns = [];
|
|
285
|
+
for (const [name, version] of resolved) {
|
|
286
|
+
const pkg = packages.find(p => p.name === name && p.version === version);
|
|
287
|
+
if (pkg) {
|
|
288
|
+
totalSize += pkg.size ?? 0;
|
|
289
|
+
allVulns.push(...(pkg.vulnerabilities ?? []));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
resolved: Object.fromEntries(resolved),
|
|
294
|
+
order: sortResult.order,
|
|
295
|
+
resolvedConflicts,
|
|
296
|
+
totalSize,
|
|
297
|
+
vulnerabilities: [...new Set(allVulns)],
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Optimize task schedule using DAG analysis
|
|
302
|
+
*/
|
|
303
|
+
async optimizeSchedule(tasks, resources, objective) {
|
|
304
|
+
// Build task DAG
|
|
305
|
+
const dag = {
|
|
306
|
+
nodes: tasks.map(t => ({ id: t.id })),
|
|
307
|
+
edges: tasks.flatMap(t => t.dependencies.map(dep => ({ from: dep, to: t.id }))),
|
|
308
|
+
};
|
|
309
|
+
// Check for cycles
|
|
310
|
+
const sortResult = this.topologicalSort(dag);
|
|
311
|
+
if (sortResult.hasCycle) {
|
|
312
|
+
throw new Error(`Cycle detected in task dependencies: ${sortResult.cycleNodes?.join(', ')}`);
|
|
313
|
+
}
|
|
314
|
+
// Build duration map
|
|
315
|
+
const durations = new Map();
|
|
316
|
+
tasks.forEach(t => durations.set(t.id, t.duration));
|
|
317
|
+
// Find critical path
|
|
318
|
+
const critPath = this.criticalPath(dag, durations);
|
|
319
|
+
// Schedule tasks
|
|
320
|
+
const schedule = [];
|
|
321
|
+
const resourceUsage = new Map();
|
|
322
|
+
resources.forEach(r => resourceUsage.set(r.id, []));
|
|
323
|
+
const taskEndTimes = new Map();
|
|
324
|
+
for (const taskId of sortResult.order) {
|
|
325
|
+
const task = tasks.find(t => t.id === taskId);
|
|
326
|
+
if (!task)
|
|
327
|
+
continue;
|
|
328
|
+
// Find earliest start (after all dependencies)
|
|
329
|
+
let earliestStart = 0;
|
|
330
|
+
for (const depId of task.dependencies) {
|
|
331
|
+
const depEnd = taskEndTimes.get(depId) ?? 0;
|
|
332
|
+
earliestStart = Math.max(earliestStart, depEnd);
|
|
333
|
+
}
|
|
334
|
+
// Find resource availability
|
|
335
|
+
for (const resourceId of task.resources) {
|
|
336
|
+
const usage = resourceUsage.get(resourceId) ?? [];
|
|
337
|
+
const resource = resources.find(r => r.id === resourceId);
|
|
338
|
+
if (resource) {
|
|
339
|
+
// Find next available slot
|
|
340
|
+
for (const slot of usage) {
|
|
341
|
+
if (slot.end > earliestStart && slot.start < earliestStart + task.duration) {
|
|
342
|
+
earliestStart = slot.end;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
const start = earliestStart;
|
|
348
|
+
const end = start + task.duration;
|
|
349
|
+
schedule.push({
|
|
350
|
+
taskId,
|
|
351
|
+
start,
|
|
352
|
+
end,
|
|
353
|
+
resources: [...task.resources],
|
|
354
|
+
});
|
|
355
|
+
taskEndTimes.set(taskId, end);
|
|
356
|
+
// Update resource usage
|
|
357
|
+
for (const resourceId of task.resources) {
|
|
358
|
+
resourceUsage.get(resourceId)?.push({ start, end });
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Calculate metrics
|
|
362
|
+
const makespan = Math.max(...schedule.map(s => s.end));
|
|
363
|
+
let totalCost = 0;
|
|
364
|
+
const utilization = {};
|
|
365
|
+
for (const resource of resources) {
|
|
366
|
+
const usage = resourceUsage.get(resource.id) ?? [];
|
|
367
|
+
const totalUsed = usage.reduce((s, u) => s + (u.end - u.start), 0);
|
|
368
|
+
utilization[resource.id] = totalUsed / makespan;
|
|
369
|
+
totalCost += totalUsed * resource.cost;
|
|
370
|
+
}
|
|
371
|
+
// Calculate objective score
|
|
372
|
+
let score;
|
|
373
|
+
switch (objective) {
|
|
374
|
+
case 'cost':
|
|
375
|
+
score = 1 / (1 + totalCost);
|
|
376
|
+
break;
|
|
377
|
+
case 'utilization':
|
|
378
|
+
score = Object.values(utilization).reduce((s, u) => s + u, 0) / resources.length;
|
|
379
|
+
break;
|
|
380
|
+
case 'weighted':
|
|
381
|
+
score = (1 / (1 + makespan)) * 0.4 + (1 / (1 + totalCost)) * 0.3 +
|
|
382
|
+
Object.values(utilization).reduce((s, u) => s + u, 0) / resources.length * 0.3;
|
|
383
|
+
break;
|
|
384
|
+
case 'makespan':
|
|
385
|
+
default:
|
|
386
|
+
score = 1 / (1 + makespan);
|
|
387
|
+
}
|
|
388
|
+
return {
|
|
389
|
+
schedule,
|
|
390
|
+
makespan,
|
|
391
|
+
cost: totalCost,
|
|
392
|
+
utilization,
|
|
393
|
+
criticalPath: critPath.path,
|
|
394
|
+
score,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
// ============================================================================
|
|
398
|
+
// Private Helper Methods
|
|
399
|
+
// ============================================================================
|
|
400
|
+
versionSatisfies(version, constraint) {
|
|
401
|
+
// Simple version matching - in production use semver library
|
|
402
|
+
if (constraint === '*' || constraint === '')
|
|
403
|
+
return true;
|
|
404
|
+
if (constraint.startsWith('^')) {
|
|
405
|
+
const major = version.split('.')[0];
|
|
406
|
+
const reqMajor = constraint.slice(1).split('.')[0];
|
|
407
|
+
return major === reqMajor;
|
|
408
|
+
}
|
|
409
|
+
if (constraint.startsWith('~')) {
|
|
410
|
+
const [major, minor] = version.split('.');
|
|
411
|
+
const [reqMajor, reqMinor] = constraint.slice(1).split('.');
|
|
412
|
+
return major === reqMajor && minor === reqMinor;
|
|
413
|
+
}
|
|
414
|
+
if (constraint.startsWith('>=')) {
|
|
415
|
+
return this.compareVersions(version, constraint.slice(2)) >= 0;
|
|
416
|
+
}
|
|
417
|
+
if (constraint.startsWith('>')) {
|
|
418
|
+
return this.compareVersions(version, constraint.slice(1)) > 0;
|
|
419
|
+
}
|
|
420
|
+
if (constraint.startsWith('<=')) {
|
|
421
|
+
return this.compareVersions(version, constraint.slice(2)) <= 0;
|
|
422
|
+
}
|
|
423
|
+
if (constraint.startsWith('<')) {
|
|
424
|
+
return this.compareVersions(version, constraint.slice(1)) < 0;
|
|
425
|
+
}
|
|
426
|
+
return version === constraint;
|
|
427
|
+
}
|
|
428
|
+
compareVersions(a, b) {
|
|
429
|
+
const partsA = a.split('.').map(Number);
|
|
430
|
+
const partsB = b.split('.').map(Number);
|
|
431
|
+
for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
|
|
432
|
+
const pA = partsA[i] ?? 0;
|
|
433
|
+
const pB = partsB[i] ?? 0;
|
|
434
|
+
if (pA > pB)
|
|
435
|
+
return 1;
|
|
436
|
+
if (pA < pB)
|
|
437
|
+
return -1;
|
|
438
|
+
}
|
|
439
|
+
return 0;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Create mock module for development
|
|
443
|
+
*/
|
|
444
|
+
createMockModule() {
|
|
445
|
+
return {
|
|
446
|
+
topological_sort: () => new Uint32Array(0),
|
|
447
|
+
detect_cycle: () => new Uint32Array(0),
|
|
448
|
+
critical_path: () => new Float32Array(0),
|
|
449
|
+
alloc: () => 0,
|
|
450
|
+
dealloc: () => undefined,
|
|
451
|
+
memory: new WebAssembly.Memory({ initial: 1 }),
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Create a new DagBridge instance
|
|
457
|
+
*/
|
|
458
|
+
export function createDagBridge() {
|
|
459
|
+
return new DagBridge();
|
|
460
|
+
}
|
|
461
|
+
//# sourceMappingURL=dag-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-bridge.js","sourceRoot":"","sources":["../../src/bridges/dag-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exotic Bridge - Quantum-Inspired Optimization Algorithms
|
|
3
|
+
*
|
|
4
|
+
* Bridge to @ruvector/exotic-wasm for quantum-inspired optimization
|
|
5
|
+
* including simulated quantum annealing, QAOA emulation, and Grover search.
|
|
6
|
+
*/
|
|
7
|
+
import type { QUBOProblem, AnnealingConfig, AnnealingResult, ProblemGraph, QAOACircuit, QAOAResult, SearchSpace, AmplificationConfig, GroverResult } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* WASM module status
|
|
10
|
+
*/
|
|
11
|
+
export type WasmModuleStatus = 'unloaded' | 'loading' | 'ready' | 'error';
|
|
12
|
+
/**
|
|
13
|
+
* Quantum-Inspired Exotic Bridge
|
|
14
|
+
*/
|
|
15
|
+
export declare class ExoticBridge {
|
|
16
|
+
readonly name = "quantum-exotic-bridge";
|
|
17
|
+
readonly version = "0.1.0";
|
|
18
|
+
private _status;
|
|
19
|
+
private _module;
|
|
20
|
+
get status(): WasmModuleStatus;
|
|
21
|
+
get initialized(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize the WASM module
|
|
24
|
+
*/
|
|
25
|
+
initialize(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Dispose of resources
|
|
28
|
+
*/
|
|
29
|
+
dispose(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Solve a QUBO problem using simulated quantum annealing
|
|
32
|
+
*/
|
|
33
|
+
solveQubo(problem: QUBOProblem, config?: Partial<AnnealingConfig>): Promise<AnnealingResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Run QAOA optimization
|
|
36
|
+
*/
|
|
37
|
+
runQaoa(graph: ProblemGraph, circuit?: Partial<QAOACircuit>): Promise<QAOAResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Grover-inspired search
|
|
40
|
+
*/
|
|
41
|
+
groverSearch(space: SearchSpace, config?: Partial<AmplificationConfig>): Promise<GroverResult>;
|
|
42
|
+
private validateQuboProblem;
|
|
43
|
+
private validateProblemGraph;
|
|
44
|
+
private simulatedAnnealing;
|
|
45
|
+
private computeEnergy;
|
|
46
|
+
private updateTemperature;
|
|
47
|
+
private evaluateQaoaCircuit;
|
|
48
|
+
private computeCutValue;
|
|
49
|
+
private estimateGradient;
|
|
50
|
+
private estimateOptimalCut;
|
|
51
|
+
private parseOracle;
|
|
52
|
+
private weightedSample;
|
|
53
|
+
private indexToBits;
|
|
54
|
+
private arraysEqual;
|
|
55
|
+
/**
|
|
56
|
+
* Create mock module for development
|
|
57
|
+
*/
|
|
58
|
+
private createMockModule;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a new ExoticBridge instance
|
|
62
|
+
*/
|
|
63
|
+
export declare function createExoticBridge(): ExoticBridge;
|
|
64
|
+
//# sourceMappingURL=exotic-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exotic-bridge.d.ts","sourceRoot":"","sources":["../../src/bridges/exotic-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAsD1E;;GAEG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,OAAO,CAAiC;IAEhD,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;OAEG;IACG,SAAS,CACb,OAAO,EAAE,WAAW,EACpB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,eAAe,CAAC;IAwC3B;;OAEG;IACG,OAAO,CACX,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GACjC,OAAO,CAAC,UAAU,CAAC;IAuEtB;;OAEG;IACG,YAAY,CAChB,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACxC,OAAO,CAAC,YAAY,CAAC;IAqExB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,kBAAkB;IAqD1B,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAUzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
|