@claude-flow/plugin-gastown-bridge 0.1.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.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @claude-flow/plugin-gastown-bridge v0.1.0
3
+ *
4
+ * WASM-accelerated Gas Town orchestration for Claude Flow V3
5
+ * Bundle optimized: <100KB gzipped total
6
+ *
7
+ * @license MIT
8
+ * @copyright 2024 rUv
9
+ */
10
+ var o=null,t=null,r=null,s=null;function _(){return typeof process<"u"&&process.versions?.node?"node":typeof window<"u"?"browser":"edge"}async function b(e,n={}){let{basePath:a="./wasm",preferGzip:u=true,fetch:W=globalThis.fetch,signal:h}=n,k=_(),m=e.replace(/-/g,"_"),M=u?[`${a}/${e}/pkg/${m}_bg.wasm.gz`,`${a}/${e}/pkg/${m}_bg.wasm`]:[`${a}/${e}/pkg/${m}_bg.wasm`,`${a}/${e}/pkg/${m}_bg.wasm.gz`];for(let f of M)try{if(k==="node"){let l=await import('fs'),c=await import('path'),d=await import('zlib'),{promisify:y}=await import('util'),g=c.resolve(f);if(l.existsSync(g)){let i=l.readFileSync(g);if(f.endsWith(".gz")){let p=await y(d.gunzip)(i);return p.buffer.slice(p.byteOffset,p.byteOffset+p.byteLength)}return i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}}else {let l=await W(f,{signal:h});if(l.ok){let c=await l.arrayBuffer();if(f.endsWith(".gz")){if(typeof DecompressionStream<"u"){let d=new Response(c).body;if(d){let y=d.pipeThrough(new DecompressionStream("gzip"));return new Response(y).arrayBuffer()}}throw new Error("Gzip decompression not supported")}return c}}}catch{continue}throw new Error(`Failed to load WASM module: ${e}`)}async function w(e,n={}){let a=await WebAssembly.compile(e),u=await WebAssembly.instantiate(a,n);return {instance:u.exports,memory:u.exports.memory,ready:true}}async function x(e={}){return o?.ready?o:r||(r=(async()=>{try{let n=await b("gastown-formula-wasm",e);return o=await w(n),o}finally{r=null;}})(),r)}async function P(e={}){return t?.ready?t:s||(s=(async()=>{try{let n=await b("ruvector-gnn-wasm",e);return t=await w(n),t}finally{s=null;}})(),s)}async function z(e={}){await Promise.all([x(e),P(e)]);}function A(){return {formula:o?.ready??false,gnn:t?.ready??false,all:(o?.ready??false)&&(t?.ready??false)}}function L(){o=null,t=null,r=null,s=null;}function v(){let e=o?.memory?.buffer.byteLength??0,n=t?.memory?.buffer.byteLength??0;return {formula:o?{pages:e/65536,bytes:e}:null,gnn:t?{pages:n/65536,bytes:n}:null,total:e+n}}export{L as clearWasmCache,v as getWasmMemoryStats,A as isWasmLoaded,x as loadFormulaWasm,P as loadGnnWasm,z as preloadAllWasm};//# sourceMappingURL=wasm-loader.js.map
11
+ //# sourceMappingURL=wasm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/wasm/loader.ts"],"names":["formulaModule","gnnModule","formulaLoading","gnnLoading","detectEnvironment","loadWasmBytes","moduleName","options","basePath","preferGzip","customFetch","signal","env","wasmName","paths","path","fs","pathModule","zlib","promisify","absolutePath","buffer","decompressed","response","stream","instantiateWasm","bytes","imports","module","instance","loadFormulaWasm","loadGnnWasm","preloadAllWasm","isWasmLoaded","clearWasmCache","getWasmMemoryStats","formulaPages","gnnPages"],"mappings":"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","file":"wasm-loader.js","sourcesContent":["/**\n * WASM Lazy Loader for Gas Town Bridge\n *\n * Provides on-demand loading of WASM modules with:\n * - Lazy initialization (modules loaded only when needed)\n * - Gzip decompression support\n * - Caching to prevent re-initialization\n * - Graceful fallback to JS implementations\n *\n * Bundle impact: <5KB (loader only, WASM loaded separately)\n *\n * @module v3/plugins/gastown-bridge/wasm\n */\n\n// Types for WASM modules\nexport interface FormulaWasm {\n parse_toml: (input: string) => unknown;\n cook_formula: (formula: unknown, variables: Record<string, unknown>) => unknown;\n generate_molecule: (formula: unknown) => unknown;\n memory: WebAssembly.Memory;\n}\n\nexport interface GnnWasm {\n create_dag: () => unknown;\n add_node: (dag: unknown, id: string, data: unknown) => void;\n add_edge: (dag: unknown, from: string, to: string) => void;\n topological_sort: (dag: unknown) => string[];\n detect_cycles: (dag: unknown) => boolean;\n critical_path: (dag: unknown) => string[];\n memory: WebAssembly.Memory;\n}\n\nexport interface WasmModule<T> {\n instance: T;\n memory: WebAssembly.Memory;\n ready: boolean;\n}\n\n// Module cache\nlet formulaModule: WasmModule<FormulaWasm> | null = null;\nlet gnnModule: WasmModule<GnnWasm> | null = null;\n\n// Loading state\nlet formulaLoading: Promise<WasmModule<FormulaWasm>> | null = null;\nlet gnnLoading: Promise<WasmModule<GnnWasm>> | null = null;\n\n/**\n * WASM loading options\n */\nexport interface WasmLoadOptions {\n /**\n * Base path for WASM files\n * @default './wasm'\n */\n basePath?: string;\n\n /**\n * Prefer gzipped WASM files\n * @default true\n */\n preferGzip?: boolean;\n\n /**\n * Custom fetch function (for Node.js or custom loaders)\n */\n fetch?: typeof globalThis.fetch;\n\n /**\n * Abort signal for cancellation\n */\n signal?: AbortSignal;\n}\n\n/**\n * Detect runtime environment\n */\nfunction detectEnvironment(): 'node' | 'browser' | 'edge' {\n if (typeof process !== 'undefined' && process.versions?.node) {\n return 'node';\n }\n if (typeof window !== 'undefined') {\n return 'browser';\n }\n return 'edge';\n}\n\n/**\n * Load a WASM file with gzip support\n */\nasync function loadWasmBytes(\n moduleName: string,\n options: WasmLoadOptions = {}\n): Promise<ArrayBuffer> {\n const {\n basePath = './wasm',\n preferGzip = true,\n fetch: customFetch = globalThis.fetch,\n signal,\n } = options;\n\n const env = detectEnvironment();\n const wasmName = moduleName.replace(/-/g, '_');\n\n // Try gzipped first if preferred\n const paths = preferGzip\n ? [\n `${basePath}/${moduleName}/pkg/${wasmName}_bg.wasm.gz`,\n `${basePath}/${moduleName}/pkg/${wasmName}_bg.wasm`,\n ]\n : [\n `${basePath}/${moduleName}/pkg/${wasmName}_bg.wasm`,\n `${basePath}/${moduleName}/pkg/${wasmName}_bg.wasm.gz`,\n ];\n\n for (const path of paths) {\n try {\n if (env === 'node') {\n // Node.js: Use fs\n const fs = await import('fs');\n const pathModule = await import('path');\n const zlib = await import('zlib');\n const { promisify } = await import('util');\n\n const absolutePath = pathModule.resolve(path);\n if (fs.existsSync(absolutePath)) {\n const buffer = fs.readFileSync(absolutePath);\n\n if (path.endsWith('.gz')) {\n const gunzip = promisify(zlib.gunzip);\n const decompressed = await gunzip(buffer);\n return decompressed.buffer.slice(\n decompressed.byteOffset,\n decompressed.byteOffset + decompressed.byteLength\n );\n }\n\n return buffer.buffer.slice(\n buffer.byteOffset,\n buffer.byteOffset + buffer.byteLength\n );\n }\n } else {\n // Browser/Edge: Use fetch\n const response = await customFetch(path, { signal });\n if (response.ok) {\n const buffer = await response.arrayBuffer();\n\n if (path.endsWith('.gz')) {\n // Decompress in browser using DecompressionStream if available\n if (typeof DecompressionStream !== 'undefined') {\n const stream = new Response(buffer).body;\n if (stream) {\n const decompressed = stream.pipeThrough(\n new DecompressionStream('gzip')\n );\n return new Response(decompressed).arrayBuffer();\n }\n }\n // Fallback: assume server decompresses or use pako\n throw new Error('Gzip decompression not supported');\n }\n\n return buffer;\n }\n }\n } catch {\n // Try next path\n continue;\n }\n }\n\n throw new Error(`Failed to load WASM module: ${moduleName}`);\n}\n\n/**\n * Instantiate a WASM module\n */\nasync function instantiateWasm<T>(\n bytes: ArrayBuffer,\n imports: WebAssembly.Imports = {}\n): Promise<WasmModule<T>> {\n const module = await WebAssembly.compile(bytes);\n const instance = await WebAssembly.instantiate(module, imports);\n\n return {\n instance: instance.exports as T,\n memory: instance.exports.memory as WebAssembly.Memory,\n ready: true,\n };\n}\n\n/**\n * Load the Formula WASM module\n *\n * Features:\n * - TOML parsing (352x faster than JavaScript)\n * - Variable cooking/substitution\n * - Molecule generation\n *\n * @example\n * ```typescript\n * const formula = await loadFormulaWasm();\n * const parsed = formula.instance.parse_toml(tomlString);\n * ```\n */\nexport async function loadFormulaWasm(\n options: WasmLoadOptions = {}\n): Promise<WasmModule<FormulaWasm>> {\n // Return cached module\n if (formulaModule?.ready) {\n return formulaModule;\n }\n\n // Return in-progress loading\n if (formulaLoading) {\n return formulaLoading;\n }\n\n // Start loading\n formulaLoading = (async () => {\n try {\n const bytes = await loadWasmBytes('gastown-formula-wasm', options);\n formulaModule = await instantiateWasm<FormulaWasm>(bytes);\n return formulaModule;\n } finally {\n formulaLoading = null;\n }\n })();\n\n return formulaLoading;\n}\n\n/**\n * Load the GNN WASM module\n *\n * Features:\n * - DAG construction and traversal (150x faster)\n * - Topological sorting\n * - Cycle detection\n * - Critical path analysis\n *\n * @example\n * ```typescript\n * const gnn = await loadGnnWasm();\n * const dag = gnn.instance.create_dag();\n * gnn.instance.add_node(dag, 'task1', { name: 'Build' });\n * ```\n */\nexport async function loadGnnWasm(\n options: WasmLoadOptions = {}\n): Promise<WasmModule<GnnWasm>> {\n // Return cached module\n if (gnnModule?.ready) {\n return gnnModule;\n }\n\n // Return in-progress loading\n if (gnnLoading) {\n return gnnLoading;\n }\n\n // Start loading\n gnnLoading = (async () => {\n try {\n const bytes = await loadWasmBytes('ruvector-gnn-wasm', options);\n gnnModule = await instantiateWasm<GnnWasm>(bytes);\n return gnnModule;\n } finally {\n gnnLoading = null;\n }\n })();\n\n return gnnLoading;\n}\n\n/**\n * Preload all WASM modules\n *\n * Use this during application startup to avoid latency\n * on first use.\n */\nexport async function preloadAllWasm(\n options: WasmLoadOptions = {}\n): Promise<void> {\n await Promise.all([\n loadFormulaWasm(options),\n loadGnnWasm(options),\n ]);\n}\n\n/**\n * Check if WASM modules are loaded\n */\nexport function isWasmLoaded(): {\n formula: boolean;\n gnn: boolean;\n all: boolean;\n} {\n return {\n formula: formulaModule?.ready ?? false,\n gnn: gnnModule?.ready ?? false,\n all: (formulaModule?.ready ?? false) && (gnnModule?.ready ?? false),\n };\n}\n\n/**\n * Clear cached WASM modules\n *\n * Useful for testing or memory management\n */\nexport function clearWasmCache(): void {\n formulaModule = null;\n gnnModule = null;\n formulaLoading = null;\n gnnLoading = null;\n}\n\n/**\n * Get WASM memory statistics\n */\nexport function getWasmMemoryStats(): {\n formula: { pages: number; bytes: number } | null;\n gnn: { pages: number; bytes: number } | null;\n total: number;\n} {\n const formulaPages = formulaModule?.memory?.buffer.byteLength ?? 0;\n const gnnPages = gnnModule?.memory?.buffer.byteLength ?? 0;\n\n return {\n formula: formulaModule\n ? { pages: formulaPages / 65536, bytes: formulaPages }\n : null,\n gnn: gnnModule\n ? { pages: gnnPages / 65536, bytes: gnnPages }\n : null,\n total: formulaPages + gnnPages,\n };\n}\n\n// WasmLoadOptions is already exported above\n"]}
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "@claude-flow/plugin-gastown-bridge",
3
+ "version": "0.1.0",
4
+ "description": "Gas Town orchestrator integration for Claude Flow V3 with WASM-accelerated formula parsing and graph analysis",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "exports": {
11
+ ".": {
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.cjs",
14
+ "types": "./dist/index.d.ts"
15
+ },
16
+ "./bridges": {
17
+ "import": "./dist/bridges.mjs",
18
+ "require": "./dist/bridges.cjs",
19
+ "types": "./dist/bridges.d.ts"
20
+ },
21
+ "./formula": {
22
+ "import": "./dist/formula.mjs",
23
+ "require": "./dist/formula.cjs",
24
+ "types": "./dist/formula.d.ts"
25
+ },
26
+ "./convoy": {
27
+ "import": "./dist/convoy.mjs",
28
+ "require": "./dist/convoy.cjs",
29
+ "types": "./dist/convoy.d.ts"
30
+ },
31
+ "./wasm": {
32
+ "import": "./dist/wasm-loader.mjs",
33
+ "types": "./dist/wasm-loader.d.ts"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "wasm/*/pkg/*.wasm",
39
+ "wasm/*/pkg/*.wasm.gz",
40
+ "plugin.yaml"
41
+ ],
42
+ "scripts": {
43
+ "build": "tsup",
44
+ "build:wasm": "./scripts/build-wasm.sh --release --opt-level 3",
45
+ "build:all": "npm run build:wasm && npm run build",
46
+ "build:analyze": "tsup --metafile && npx esbuild-visualizer --metadata ./dist/metafile-*.json --filename bundle-analysis.html",
47
+ "clean": "rm -rf dist",
48
+ "typecheck": "tsc --noEmit",
49
+ "test": "vitest",
50
+ "test:wasm": "vitest --config vitest.wasm.config.ts",
51
+ "benchmark": "tsx scripts/benchmark.ts",
52
+ "size": "size-limit",
53
+ "size:why": "size-limit --why",
54
+ "prepublishOnly": "npm run build"
55
+ },
56
+ "keywords": [
57
+ "claude-flow",
58
+ "plugin",
59
+ "gastown",
60
+ "beads",
61
+ "orchestration",
62
+ "workflows",
63
+ "formulas",
64
+ "wasm",
65
+ "multi-agent"
66
+ ],
67
+ "author": "rUv",
68
+ "license": "MIT",
69
+ "repository": {
70
+ "type": "git",
71
+ "url": "https://github.com/ruvnet/claude-flow.git",
72
+ "directory": "v3/plugins/gastown-bridge"
73
+ },
74
+ "bugs": {
75
+ "url": "https://github.com/ruvnet/claude-flow/issues"
76
+ },
77
+ "homepage": "https://github.com/ruvnet/claude-flow/tree/main/v3/plugins/gastown-bridge#readme",
78
+ "engines": {
79
+ "node": ">=20.0.0"
80
+ },
81
+ "peerDependencies": {
82
+ "@claude-flow/memory": ">=3.0.0"
83
+ },
84
+ "peerDependenciesMeta": {
85
+ "@claude-flow/memory": {
86
+ "optional": true
87
+ }
88
+ },
89
+ "dependencies": {
90
+ "@iarna/toml": "^2.2.5",
91
+ "uuid": "^9.0.0",
92
+ "zod": "^3.22.0"
93
+ },
94
+ "devDependencies": {
95
+ "@size-limit/preset-small-lib": "^11.0.0",
96
+ "@types/node": "^20.0.0",
97
+ "@types/uuid": "^9.0.0",
98
+ "esbuild": "^0.20.0",
99
+ "size-limit": "^11.0.0",
100
+ "tsup": "^8.0.0",
101
+ "tsx": "^4.0.0",
102
+ "typescript": "^5.4.0",
103
+ "vitest": "^1.0.0"
104
+ },
105
+ "optionalDependencies": {
106
+ "gastown-formula-wasm": "^0.1.0",
107
+ "ruvector-gnn-wasm": "^0.1.0"
108
+ }
109
+ }