@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.
@@ -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"}