@bian-womp/spark-remote 0.1.13 → 0.1.14

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 (47) hide show
  1. package/lib/cjs/index.cjs +26 -3
  2. package/lib/cjs/index.cjs.map +1 -1
  3. package/lib/cjs/src/RemoteEngine.d.ts.map +1 -1
  4. package/lib/cjs/src/RemoteRunner.d.ts +2 -1
  5. package/lib/cjs/src/RemoteRunner.d.ts.map +1 -1
  6. package/lib/cjs/src/examples/shared.d.ts +1 -1
  7. package/lib/cjs/src/examples/shared.d.ts.map +1 -1
  8. package/lib/cjs/src/index.d.ts +0 -1
  9. package/lib/cjs/src/index.d.ts.map +1 -1
  10. package/lib/cjs/src/protocol.d.ts +1 -1
  11. package/lib/cjs/src/protocol.d.ts.map +1 -1
  12. package/lib/cjs/src/server/command.d.ts +1 -1
  13. package/lib/cjs/src/server/command.d.ts.map +1 -1
  14. package/lib/cjs/src/server/runtime.d.ts +2 -1
  15. package/lib/cjs/src/server/runtime.d.ts.map +1 -1
  16. package/lib/cjs/src/transport/HttpPollingTransport.d.ts +1 -1
  17. package/lib/cjs/src/transport/HttpPollingTransport.d.ts.map +1 -1
  18. package/lib/cjs/src/transport/Transport.d.ts +1 -1
  19. package/lib/cjs/src/transport/Transport.d.ts.map +1 -1
  20. package/lib/cjs/src/transport/UnixSocketTransport.d.ts +1 -1
  21. package/lib/cjs/src/transport/UnixSocketTransport.d.ts.map +1 -1
  22. package/lib/cjs/src/transport/WebSocketTransport.d.ts +1 -1
  23. package/lib/cjs/src/transport/WebSocketTransport.d.ts.map +1 -1
  24. package/lib/esm/index.js +26 -3
  25. package/lib/esm/index.js.map +1 -1
  26. package/lib/esm/src/RemoteEngine.d.ts.map +1 -1
  27. package/lib/esm/src/RemoteRunner.d.ts +2 -1
  28. package/lib/esm/src/RemoteRunner.d.ts.map +1 -1
  29. package/lib/esm/src/examples/shared.d.ts +1 -1
  30. package/lib/esm/src/examples/shared.d.ts.map +1 -1
  31. package/lib/esm/src/index.d.ts +0 -1
  32. package/lib/esm/src/index.d.ts.map +1 -1
  33. package/lib/esm/src/protocol.d.ts +1 -1
  34. package/lib/esm/src/protocol.d.ts.map +1 -1
  35. package/lib/esm/src/server/command.d.ts +1 -1
  36. package/lib/esm/src/server/command.d.ts.map +1 -1
  37. package/lib/esm/src/server/runtime.d.ts +2 -1
  38. package/lib/esm/src/server/runtime.d.ts.map +1 -1
  39. package/lib/esm/src/transport/HttpPollingTransport.d.ts +1 -1
  40. package/lib/esm/src/transport/HttpPollingTransport.d.ts.map +1 -1
  41. package/lib/esm/src/transport/Transport.d.ts +1 -1
  42. package/lib/esm/src/transport/Transport.d.ts.map +1 -1
  43. package/lib/esm/src/transport/UnixSocketTransport.d.ts +1 -1
  44. package/lib/esm/src/transport/UnixSocketTransport.d.ts.map +1 -1
  45. package/lib/esm/src/transport/WebSocketTransport.d.ts +1 -1
  46. package/lib/esm/src/transport/WebSocketTransport.d.ts.map +1 -1
  47. package/package.json +3 -3
package/lib/cjs/index.cjs CHANGED
@@ -226,6 +226,11 @@ class RemoteRunner {
226
226
  schemaVersion: 4,
227
227
  });
228
228
  }
229
+ async snapshot() {
230
+ const res = await this.transport.request({ message: { type: "Snapshot" } });
231
+ const payload = res?.message || {};
232
+ return payload.snapshot || { inputs: {}, outputs: {} };
233
+ }
229
234
  getEngine() {
230
235
  return this.engine;
231
236
  }
@@ -333,7 +338,8 @@ async function handleCommand(label, env, runtimeApi, ack) {
333
338
  }
334
339
  case "Snapshot": {
335
340
  console.debug(`[${label}] rx Snapshot seq=${env.seq}`);
336
- ack({ snapshot: { ok: true } });
341
+ const snap = runtimeApi.snapshot();
342
+ ack({ snapshot: snap });
337
343
  break;
338
344
  }
339
345
  case "DescribeRegistry": {
@@ -373,6 +379,23 @@ async function createRuntimeAdapter(createRegistry, send) {
373
379
  graphRuntime.on("error", (p) => send({ message: { type: "error", payload: p } }));
374
380
  graphRuntime.on("stats", (p) => send({ message: { type: "stats", payload: p } }));
375
381
  },
382
+ snapshot() {
383
+ const inputs = {};
384
+ const outputs = {};
385
+ if (!graphRuntime)
386
+ return { inputs, outputs };
387
+ const nodes = graphRuntime.getNodeIds();
388
+ for (const nodeId of nodes) {
389
+ const data = graphRuntime.getNodeData(nodeId);
390
+ if (data?.inputs && Object.keys(data.inputs).length > 0) {
391
+ inputs[nodeId] = { ...data.inputs };
392
+ }
393
+ if (data?.outputs && Object.keys(data.outputs).length > 0) {
394
+ outputs[nodeId] = { ...data.outputs };
395
+ }
396
+ }
397
+ return { inputs, outputs };
398
+ },
376
399
  describeRegistry() {
377
400
  // types (include enum options when available)
378
401
  const types = Array.from(registry.types.entries()).map(([id, d]) => {
@@ -409,9 +432,9 @@ async function createRuntimeAdapter(createRegistry, send) {
409
432
  if (!graphRuntime)
410
433
  return;
411
434
  if (opts?.merge) {
412
- const current = graphRuntime.__unsafe_getEnvironment();
435
+ const current = graphRuntime.getEnvironment();
413
436
  const next = { ...(current || {}), ...(env || {}) };
414
- graphRuntime.__unsafe_setEnvironment(next);
437
+ graphRuntime.setEnvironment(next);
415
438
  return;
416
439
  }
417
440
  graphRuntime.setEnvironment(env);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/transport/WebSocketTransport.ts","../../src/transport/HttpPollingTransport.ts","../../src/RemoteEngine.ts","../../src/RemoteRunner.ts","../../src/server/errors.ts","../../src/server/command.ts","../../src/server/runtime.ts"],"sourcesContent":["import { WebSocket } from \"ws\";\nimport type { Envelope } from \"../protocol\";\nimport type { Transport } from \"./Transport\";\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nexport class WebSocketTransport implements Transport {\n private ws?: WebSocket;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private url: string;\n\n constructor(url: string) {\n this.url = url;\n }\n\n async connect(): Promise<void> {\n if (this.ws && this.ws.readyState === OPEN) return;\n this.ws = window\n ? new (window as any).WebSocket(this.url)\n : new WebSocket(this.url);\n await new Promise<void>((resolve, reject) => {\n if (!this.ws) return reject(new Error(\"ws init failed\"));\n this.ws.onopen = () => resolve();\n this.ws.onerror = (e) => reject(e);\n this.ws.onmessage = (ev) => {\n try {\n const env = JSON.parse(String(ev.data)) as Envelope<any>;\n for (const l of Array.from(this.listeners)) l(env);\n } catch {}\n };\n });\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n // For now, just send and wait for the next message with matching seq (simple demo)\n const seq = Date.now();\n const env = { ...msg, seq };\n const p = new Promise<Envelope<TRes>>((resolve) => {\n const off = this.subscribe((incoming) => {\n if (incoming.seq === seq) {\n off();\n resolve(incoming);\n }\n });\n });\n this.send(env);\n return p;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n if (!this.ws || this.ws.readyState !== OPEN) return;\n this.ws.send(JSON.stringify(msg));\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (!this.ws) return;\n const ws = this.ws;\n this.ws = undefined;\n await new Promise<void>((resolve) => {\n ws.onclose = () => resolve();\n try {\n ws.close();\n } catch {\n resolve();\n }\n });\n }\n}\n","import type { Envelope } from \"../protocol\";\nimport type { Transport } from \"./Transport\";\n\nexport class HttpPollingTransport implements Transport {\n private baseUrl: string;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private polling?: NodeJS.Timeout;\n private cursor?: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n }\n\n async connect(): Promise<void> {\n // Start polling loop\n if (this.polling) return;\n const tick = async () => {\n try {\n const url = new URL(this.baseUrl + \"/events\");\n if (this.cursor) url.searchParams.set(\"cursor\", this.cursor);\n const res = await fetch(url.toString());\n if (!res.ok) return;\n const batch = (await res.json()) as Envelope<any>[];\n for (const env of batch) {\n this.cursor = String(env.seq ?? Date.now());\n for (const l of Array.from(this.listeners)) l(env);\n }\n } catch {}\n };\n this.polling = setInterval(tick, 200);\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n const res = await fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n const data = (await res.json()) as Envelope<TRes>;\n return data;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n void fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (this.polling) clearInterval(this.polling);\n this.polling = undefined;\n }\n}\n","import type {\n Engine,\n EngineEventListener,\n EngineEventName,\n EngineEventMap,\n RuntimeErrorEvent,\n InvalidateEvent,\n StatsEvent,\n ValueEvent,\n} from \"@bian-womp/spark-graph\";\nimport type { Transport } from \"./transport/Transport\";\nimport type { Envelope, RuntimeEvent } from \"./protocol\";\n\nexport class RemoteEngine implements Engine {\n private listeners = new Map<\n EngineEventName,\n Set<EngineEventListener<EngineEventName>>\n >();\n private cache = new Map<string, unknown>();\n\n constructor(private transport: Transport) {\n this.transport.subscribe((env) => this.onEnvelope(env));\n }\n\n private onEnvelope(env: Envelope<RuntimeEvent>): void {\n const msg = env.message;\n if (!msg) return;\n if (msg.type === \"value\") {\n const key = `${msg.payload.nodeId}.${msg.payload.handle}`;\n this.cache.set(key, msg.payload.value);\n this.emit(\"value\", msg.payload as ValueEvent);\n } else if (msg.type === \"error\") {\n this.emit(\"error\", msg.payload as RuntimeErrorEvent);\n } else if (msg.type === \"invalidate\") {\n this.emit(\"invalidate\", msg.payload as InvalidateEvent);\n } else if (msg.type === \"stats\") {\n this.emit(\"stats\", msg.payload as StatsEvent);\n }\n }\n\n launch(): void {\n this.transport.send({ message: { type: \"Launch\" } });\n }\n\n setInput(nodeId: string, handle: string, value: unknown): void {\n this.transport.send({\n message: { type: \"SetInput\", payload: { nodeId, handle, value } },\n });\n }\n\n // Batch inputs for a single network round-trip\n setInputs(nodeId: string, inputs: Record<string, unknown>): void {\n this.transport.send({\n message: { type: \"SetInputs\", payload: { nodeId, inputs } },\n });\n }\n\n triggerExternal(nodeId: string, event: unknown): void {\n this.transport.send({\n message: { type: \"TriggerExternal\", payload: { nodeId, event } },\n });\n }\n\n on<K extends EngineEventName>(\n event: K,\n handler: EngineEventListener<K>\n ): () => void {\n if (!this.listeners.has(event)) this.listeners.set(event, new Set());\n const set = this.listeners.get(event)! as Set<EngineEventListener<K>>;\n set.add(handler);\n return () => set.delete(handler);\n }\n\n private emit<K extends EngineEventName>(\n event: K,\n payload: EngineEventMap[K]\n ): void {\n const set = this.listeners.get(event);\n if (set) for (const h of Array.from(set)) h(payload);\n }\n\n getOutput(nodeId: string, output: string): unknown {\n return this.cache.get(`${nodeId}.${output}`);\n }\n\n async whenIdle(): Promise<void> {\n await this.transport.request({ message: { type: \"WhenIdle\" } });\n }\n\n dispose(): void {\n this.transport.send({ message: { type: \"Dispose\" } });\n }\n}\n","import type {\n RunnerControl,\n GraphDefinition,\n Engine,\n} from \"@bian-womp/spark-graph\";\nimport { RemoteEngine } from \"./RemoteEngine\";\nimport type { Transport } from \"./transport/Transport\";\nimport { RegisteryDescriptor } from \"./protocol\";\n\nexport class RemoteRunner implements RunnerControl {\n private engine: RemoteEngine;\n constructor(private transport: Transport) {\n this.engine = new RemoteEngine(transport);\n }\n\n async build(\n def: GraphDefinition,\n opts?: { environment?: Record<string, unknown> }\n ): Promise<void> {\n await this.transport.request({\n message: {\n type: \"Build\",\n payload: { def, environment: opts?.environment },\n },\n });\n }\n\n async update(def: GraphDefinition): Promise<void> {\n await this.transport.request({\n message: { type: \"Update\", payload: { def } },\n });\n }\n\n async describeRegistry(): Promise<RegisteryDescriptor> {\n const res = await this.transport.request({\n message: { type: \"DescribeRegistry\" },\n });\n const payload = (res?.message as any) || {};\n return (\n payload.registry || {\n types: [],\n categories: [],\n nodes: [],\n coercions: [],\n schemaVersion: 4,\n }\n );\n }\n\n getEngine(): Engine {\n return this.engine;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function summarize(value: unknown, maxLen = 120): string {\n try {\n const s = typeof value === \"string\" ? value : JSON.stringify(value);\n return s.length > maxLen ? s.slice(0, maxLen) + \"…\" : s;\n } catch {\n return String(value);\n }\n}\n\nexport function serializeError(err: unknown): any {\n try {\n if (!err) return { message: String(err) };\n const errAny = err as any;\n if (err instanceof Error) {\n const base: any = {\n name: err.name,\n message: err.message,\n stack: err.stack,\n };\n for (const k of Object.keys(errAny)) base[k] = errAny[k];\n return base;\n }\n if (typeof err === \"object\") {\n const maybeMsg = errAny?.message;\n const maybeName = errAny?.name;\n const maybeStack = errAny?.stack;\n const out = { ...errAny };\n if (maybeMsg && !out.message) out.message = String(maybeMsg);\n if (maybeName && !out.name) out.name = String(maybeName);\n if (maybeStack && !out.stack) out.stack = String(maybeStack);\n return out;\n }\n return { message: String(err) };\n } catch {\n return { message: String(err) };\n }\n}\n","import type { Envelope, Command } from \"../protocol\";\nimport type { Json, RuntimeApi } from \"./runtime\";\nimport { summarize } from \"./errors\";\n\nexport async function handleCommand(\n label: string,\n env: Envelope<Command>,\n runtimeApi: RuntimeApi,\n ack: (payload?: Json) => void\n): Promise<void> {\n const msg = env.message as Command;\n switch (msg.type) {\n case \"Build\": {\n console.debug(\n `[${label}] rx Build seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0} envKeys=${Object.keys(\n msg.payload.environment ?? {}\n ).join(\",\")}`\n );\n await runtimeApi.build(msg.payload.def, msg.payload.environment as Json);\n ack();\n break;\n }\n case \"Update\": {\n console.debug(\n `[${label}] rx Update seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0}`\n );\n await runtimeApi.update(msg.payload.def);\n ack();\n break;\n }\n case \"SetEnvironment\": {\n console.debug(`[${label}] rx SetEnvironment seq=${env.seq}`);\n runtimeApi.setEnvironment(msg.payload.environment, {\n merge: Boolean(msg.payload.merge),\n });\n ack();\n break;\n }\n case \"SetInput\": {\n console.debug(\n `[${label}] rx SetInput seq=${env.seq} ${msg.payload.nodeId}.${\n msg.payload.handle\n }=${summarize(msg.payload.value)}`\n );\n runtimeApi.setInput(\n msg.payload.nodeId,\n msg.payload.handle,\n msg.payload.value\n );\n ack();\n break;\n }\n case \"SetInputs\": {\n console.debug(\n `[${label}] rx SetInputs seq=${env.seq} ${\n msg.payload.nodeId\n } keys=${Object.keys(msg.payload.inputs || {}).join(\",\")}`\n );\n const nodeId = msg.payload.nodeId;\n const inputs = msg.payload.inputs;\n runtimeApi.setInputs(nodeId, inputs);\n ack();\n break;\n }\n case \"TriggerExternal\": {\n console.debug(\n `[${label}] rx TriggerExternal seq=${env.seq} ${\n msg.payload.nodeId\n } event=${summarize(msg.payload.event)}`\n );\n runtimeApi.triggerExternal(msg.payload.nodeId, msg.payload.event);\n ack();\n break;\n }\n case \"Launch\": {\n console.debug(`[${label}] rx Launch seq=${env.seq}`);\n runtimeApi.launch();\n ack();\n break;\n }\n case \"WhenIdle\": {\n console.debug(`[${label}] rx WhenIdle seq=${env.seq}`);\n await runtimeApi.whenIdle();\n ack();\n break;\n }\n case \"Snapshot\": {\n console.debug(`[${label}] rx Snapshot seq=${env.seq}`);\n ack({ snapshot: { ok: true } });\n break;\n }\n case \"DescribeRegistry\": {\n console.debug(`[${label}] rx DescribeRegistry seq=${env.seq}`);\n const desc = runtimeApi.describeRegistry();\n ack({ registry: desc });\n break;\n }\n case \"Dispose\": {\n console.debug(`[${label}] rx Dispose seq=${env.seq}`);\n runtimeApi.dispose();\n ack();\n break;\n }\n case \"Pause\":\n case \"Resume\": {\n console.debug(`[${label}] rx ${msg.type} seq=${env.seq} (not-impl)`);\n ack();\n break;\n }\n default: {\n console.debug(`[${label}] rx Unknown type seq=${env.seq}`);\n ack();\n }\n }\n}\n","import { GraphBuilder, Registry, GraphRuntime } from \"@bian-womp/spark-graph\";\nimport type {\n Envelope,\n RuntimeEvent,\n GraphDefinition,\n RegisteryDescriptor,\n} from \"../protocol\";\n\nexport type Json = Record<string, unknown>;\n\nexport interface RuntimeApi {\n build: (def: GraphDefinition, env?: Json) => Promise<void>;\n update: (def: GraphDefinition) => Promise<void>;\n setEnvironment: (env: Json, opts?: { merge?: boolean }) => void;\n setInput: (nodeId: string, handle: string, value: unknown) => void;\n setInputs: (nodeId: string, inputs: Record<string, unknown>) => void;\n triggerExternal: (nodeId: string, event: unknown) => void;\n launch: () => void;\n whenIdle: () => Promise<void>;\n dispose: () => void;\n describeRegistry: () => RegisteryDescriptor;\n}\n\nexport async function createRuntimeAdapter(\n createRegistry: () => Promise<Registry>,\n send: (e: Envelope<RuntimeEvent>) => void\n): Promise<RuntimeApi> {\n const registry = await createRegistry();\n const builder = new GraphBuilder(registry);\n let graphRuntime: GraphRuntime | undefined;\n return {\n async build(def, opts) {\n graphRuntime = builder.build(def, { environment: opts });\n graphRuntime.on(\"value\", (p) =>\n send({ message: { type: \"value\", payload: p } })\n );\n graphRuntime.on(\"invalidate\", (p) =>\n send({ message: { type: \"invalidate\", payload: p } })\n );\n graphRuntime.on(\"error\", (p) =>\n send({ message: { type: \"error\", payload: p } })\n );\n graphRuntime.on(\"stats\", (p) =>\n send({ message: { type: \"stats\", payload: p } })\n );\n },\n describeRegistry() {\n // types (include enum options when available)\n const types = Array.from(registry.types.entries()).map(([id, d]) => {\n const en = registry.enums.get(id);\n return {\n id,\n displayName: d.displayName,\n ...(en ? { options: en.options } : {}),\n };\n });\n // categories: not directly enumerable; derive from node descriptors\n const nodeDescs = Array.from(registry.nodes.values());\n const catIds = new Set(nodeDescs.map((n) => n.categoryId));\n const categories = Array.from(catIds).map((id) => {\n const cat = registry.categories.get?.(id);\n return { id, displayName: cat?.displayName };\n });\n const nodes = nodeDescs.map((n) => ({\n id: n.id,\n categoryId: n.categoryId,\n displayName: n.displayName,\n inputs: n.inputs || {},\n outputs: n.outputs || {},\n }));\n const coercions = registry.listCoercions();\n return { types, categories, nodes, coercions, schemaVersion: 4 };\n },\n async update(def) {\n if (!graphRuntime) return;\n graphRuntime.update(def, registry);\n },\n setEnvironment(env, opts) {\n if (!graphRuntime) return;\n if (opts?.merge) {\n const current = graphRuntime.__unsafe_getEnvironment();\n const next = { ...(current || {}), ...(env || {}) };\n graphRuntime.__unsafe_setEnvironment(next);\n return;\n }\n graphRuntime.setEnvironment(env);\n },\n setInput(nodeId, handle, value) {\n graphRuntime?.setInput(nodeId, handle, value);\n },\n setInputs(nodeId, inputs) {\n graphRuntime?.setInputs(nodeId, inputs);\n },\n triggerExternal(nodeId, event) {\n graphRuntime?.triggerExternal(nodeId, event);\n },\n launch() {\n graphRuntime?.launch();\n },\n whenIdle() {\n return graphRuntime?.whenIdle?.() ?? Promise.resolve();\n },\n dispose() {\n graphRuntime?.dispose?.();\n graphRuntime = undefined;\n },\n };\n}\n"],"names":["WebSocket","GraphBuilder"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/transport/WebSocketTransport.ts","../../src/transport/HttpPollingTransport.ts","../../src/RemoteEngine.ts","../../src/RemoteRunner.ts","../../src/server/errors.ts","../../src/server/command.ts","../../src/server/runtime.ts"],"sourcesContent":["import { WebSocket } from \"ws\";\nimport type { Envelope } from \"@bian-womp/spark-protocol\";\nimport type { Transport } from \"./Transport\";\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nexport class WebSocketTransport implements Transport {\n private ws?: WebSocket;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private url: string;\n\n constructor(url: string) {\n this.url = url;\n }\n\n async connect(): Promise<void> {\n if (this.ws && this.ws.readyState === OPEN) return;\n this.ws = window\n ? new (window as any).WebSocket(this.url)\n : new WebSocket(this.url);\n await new Promise<void>((resolve, reject) => {\n if (!this.ws) return reject(new Error(\"ws init failed\"));\n this.ws.onopen = () => resolve();\n this.ws.onerror = (e) => reject(e);\n this.ws.onmessage = (ev) => {\n try {\n const env = JSON.parse(String(ev.data)) as Envelope<any>;\n for (const l of Array.from(this.listeners)) l(env);\n } catch {}\n };\n });\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n // For now, just send and wait for the next message with matching seq (simple demo)\n const seq = Date.now();\n const env = { ...msg, seq };\n const p = new Promise<Envelope<TRes>>((resolve) => {\n const off = this.subscribe((incoming) => {\n if (incoming.seq === seq) {\n off();\n resolve(incoming);\n }\n });\n });\n this.send(env);\n return p;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n if (!this.ws || this.ws.readyState !== OPEN) return;\n this.ws.send(JSON.stringify(msg));\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (!this.ws) return;\n const ws = this.ws;\n this.ws = undefined;\n await new Promise<void>((resolve) => {\n ws.onclose = () => resolve();\n try {\n ws.close();\n } catch {\n resolve();\n }\n });\n }\n}\n","import type { Envelope } from \"@bian-womp/spark-protocol\";\nimport type { Transport } from \"./Transport\";\n\nexport class HttpPollingTransport implements Transport {\n private baseUrl: string;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private polling?: NodeJS.Timeout;\n private cursor?: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n }\n\n async connect(): Promise<void> {\n // Start polling loop\n if (this.polling) return;\n const tick = async () => {\n try {\n const url = new URL(this.baseUrl + \"/events\");\n if (this.cursor) url.searchParams.set(\"cursor\", this.cursor);\n const res = await fetch(url.toString());\n if (!res.ok) return;\n const batch = (await res.json()) as Envelope<any>[];\n for (const env of batch) {\n this.cursor = String(env.seq ?? Date.now());\n for (const l of Array.from(this.listeners)) l(env);\n }\n } catch {}\n };\n this.polling = setInterval(tick, 200);\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n const res = await fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n const data = (await res.json()) as Envelope<TRes>;\n return data;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n void fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (this.polling) clearInterval(this.polling);\n this.polling = undefined;\n }\n}\n","import type {\n Engine,\n EngineEventListener,\n EngineEventName,\n EngineEventMap,\n} from \"@bian-womp/spark-graph\";\nimport type { Transport } from \"./transport/Transport\";\nimport type { Envelope, RuntimeEvent } from \"@bian-womp/spark-protocol\";\n\nexport class RemoteEngine implements Engine {\n private listeners = new Map<\n EngineEventName,\n Set<EngineEventListener<EngineEventName>>\n >();\n private cache = new Map<string, unknown>();\n\n constructor(private transport: Transport) {\n this.transport.subscribe((env) => this.onEnvelope(env));\n }\n\n private onEnvelope(env: Envelope<RuntimeEvent>): void {\n const msg = env.message;\n if (!msg) return;\n if (msg.type === \"value\") {\n const key = `${msg.payload.nodeId}.${msg.payload.handle}`;\n this.cache.set(key, msg.payload.value);\n this.emit(\"value\", msg.payload);\n } else if (msg.type === \"error\") {\n this.emit(\"error\", msg.payload);\n } else if (msg.type === \"invalidate\") {\n this.emit(\"invalidate\", msg.payload);\n } else if (msg.type === \"stats\") {\n this.emit(\"stats\", msg.payload);\n }\n }\n\n launch(): void {\n this.transport.send({ message: { type: \"Launch\" } });\n }\n\n setInput(nodeId: string, handle: string, value: unknown): void {\n this.transport.send({\n message: { type: \"SetInput\", payload: { nodeId, handle, value } },\n });\n }\n\n // Batch inputs for a single network round-trip\n setInputs(nodeId: string, inputs: Record<string, unknown>): void {\n this.transport.send({\n message: { type: \"SetInputs\", payload: { nodeId, inputs } },\n });\n }\n\n triggerExternal(nodeId: string, event: unknown): void {\n this.transport.send({\n message: { type: \"TriggerExternal\", payload: { nodeId, event } },\n });\n }\n\n on<K extends EngineEventName>(\n event: K,\n handler: EngineEventListener<K>\n ): () => void {\n if (!this.listeners.has(event)) this.listeners.set(event, new Set());\n const set = this.listeners.get(event)! as Set<EngineEventListener<K>>;\n set.add(handler);\n return () => set.delete(handler);\n }\n\n private emit<K extends EngineEventName>(\n event: K,\n payload: EngineEventMap[K]\n ): void {\n const set = this.listeners.get(event);\n if (set) for (const h of Array.from(set)) h(payload);\n }\n\n getOutput(nodeId: string, output: string): unknown {\n return this.cache.get(`${nodeId}.${output}`);\n }\n\n async whenIdle(): Promise<void> {\n await this.transport.request({ message: { type: \"WhenIdle\" } });\n }\n\n dispose(): void {\n this.transport.send({ message: { type: \"Dispose\" } });\n }\n}\n","import type {\n RunnerControl,\n GraphDefinition,\n Engine,\n} from \"@bian-womp/spark-graph\";\nimport { RemoteEngine } from \"./RemoteEngine\";\nimport type { Transport } from \"./transport/Transport\";\nimport { RegisteryDescriptor, RuntimeSnapshot } from \"@bian-womp/spark-protocol\";\n\nexport class RemoteRunner implements RunnerControl {\n private engine: RemoteEngine;\n constructor(private transport: Transport) {\n this.engine = new RemoteEngine(transport);\n }\n\n async build(\n def: GraphDefinition,\n opts?: { environment?: Record<string, unknown> }\n ): Promise<void> {\n await this.transport.request({\n message: {\n type: \"Build\",\n payload: { def, environment: opts?.environment },\n },\n });\n }\n\n async update(def: GraphDefinition): Promise<void> {\n await this.transport.request({\n message: { type: \"Update\", payload: { def } },\n });\n }\n\n async describeRegistry(): Promise<RegisteryDescriptor> {\n const res = await this.transport.request({\n message: { type: \"DescribeRegistry\" },\n });\n const payload = (res?.message as { registry: RegisteryDescriptor }) || {};\n return (\n payload.registry || {\n types: [],\n categories: [],\n nodes: [],\n coercions: [],\n schemaVersion: 4,\n }\n );\n }\n\n async snapshot(): Promise<RuntimeSnapshot> {\n const res = await this.transport.request({ message: { type: \"Snapshot\" } });\n const payload = (res?.message as { snapshot: RuntimeSnapshot }) || {};\n return payload.snapshot || { inputs: {}, outputs: {} };\n }\n\n getEngine(): Engine {\n return this.engine;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function summarize(value: unknown, maxLen = 120): string {\n try {\n const s = typeof value === \"string\" ? value : JSON.stringify(value);\n return s.length > maxLen ? s.slice(0, maxLen) + \"…\" : s;\n } catch {\n return String(value);\n }\n}\n\nexport function serializeError(err: unknown): any {\n try {\n if (!err) return { message: String(err) };\n const errAny = err as any;\n if (err instanceof Error) {\n const base: any = {\n name: err.name,\n message: err.message,\n stack: err.stack,\n };\n for (const k of Object.keys(errAny)) base[k] = errAny[k];\n return base;\n }\n if (typeof err === \"object\") {\n const maybeMsg = errAny?.message;\n const maybeName = errAny?.name;\n const maybeStack = errAny?.stack;\n const out = { ...errAny };\n if (maybeMsg && !out.message) out.message = String(maybeMsg);\n if (maybeName && !out.name) out.name = String(maybeName);\n if (maybeStack && !out.stack) out.stack = String(maybeStack);\n return out;\n }\n return { message: String(err) };\n } catch {\n return { message: String(err) };\n }\n}\n","import type { Envelope, Command } from \"@bian-womp/spark-protocol\";\nimport type { Json, RuntimeApi } from \"./runtime\";\nimport { summarize } from \"./errors\";\n\nexport async function handleCommand(\n label: string,\n env: Envelope<Command>,\n runtimeApi: RuntimeApi,\n ack: (payload?: Json) => void\n): Promise<void> {\n const msg = env.message as Command;\n switch (msg.type) {\n case \"Build\": {\n console.debug(\n `[${label}] rx Build seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0} envKeys=${Object.keys(\n msg.payload.environment ?? {}\n ).join(\",\")}`\n );\n await runtimeApi.build(msg.payload.def, msg.payload.environment as Json);\n ack();\n break;\n }\n case \"Update\": {\n console.debug(\n `[${label}] rx Update seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0}`\n );\n await runtimeApi.update(msg.payload.def);\n ack();\n break;\n }\n case \"SetEnvironment\": {\n console.debug(`[${label}] rx SetEnvironment seq=${env.seq}`);\n runtimeApi.setEnvironment(msg.payload.environment, {\n merge: Boolean(msg.payload.merge),\n });\n ack();\n break;\n }\n case \"SetInput\": {\n console.debug(\n `[${label}] rx SetInput seq=${env.seq} ${msg.payload.nodeId}.${\n msg.payload.handle\n }=${summarize(msg.payload.value)}`\n );\n runtimeApi.setInput(\n msg.payload.nodeId,\n msg.payload.handle,\n msg.payload.value\n );\n ack();\n break;\n }\n case \"SetInputs\": {\n console.debug(\n `[${label}] rx SetInputs seq=${env.seq} ${\n msg.payload.nodeId\n } keys=${Object.keys(msg.payload.inputs || {}).join(\",\")}`\n );\n const nodeId = msg.payload.nodeId;\n const inputs = msg.payload.inputs;\n runtimeApi.setInputs(nodeId, inputs);\n ack();\n break;\n }\n case \"TriggerExternal\": {\n console.debug(\n `[${label}] rx TriggerExternal seq=${env.seq} ${\n msg.payload.nodeId\n } event=${summarize(msg.payload.event)}`\n );\n runtimeApi.triggerExternal(msg.payload.nodeId, msg.payload.event);\n ack();\n break;\n }\n case \"Launch\": {\n console.debug(`[${label}] rx Launch seq=${env.seq}`);\n runtimeApi.launch();\n ack();\n break;\n }\n case \"WhenIdle\": {\n console.debug(`[${label}] rx WhenIdle seq=${env.seq}`);\n await runtimeApi.whenIdle();\n ack();\n break;\n }\n case \"Snapshot\": {\n console.debug(`[${label}] rx Snapshot seq=${env.seq}`);\n const snap = runtimeApi.snapshot();\n ack({ snapshot: snap });\n break;\n }\n case \"DescribeRegistry\": {\n console.debug(`[${label}] rx DescribeRegistry seq=${env.seq}`);\n const desc = runtimeApi.describeRegistry();\n ack({ registry: desc });\n break;\n }\n case \"Dispose\": {\n console.debug(`[${label}] rx Dispose seq=${env.seq}`);\n runtimeApi.dispose();\n ack();\n break;\n }\n case \"Pause\":\n case \"Resume\": {\n console.debug(`[${label}] rx ${msg.type} seq=${env.seq} (not-impl)`);\n ack();\n break;\n }\n default: {\n console.debug(`[${label}] rx Unknown type seq=${env.seq}`);\n ack();\n }\n }\n}\n","import { GraphBuilder, Registry, GraphRuntime } from \"@bian-womp/spark-graph\";\nimport type {\n Envelope,\n RuntimeEvent,\n GraphDefinition,\n RegisteryDescriptor,\n RuntimeSnapshot,\n} from \"@bian-womp/spark-protocol\";\n\nexport type Json = Record<string, unknown>;\n\nexport interface RuntimeApi {\n build: (def: GraphDefinition, env?: Json) => Promise<void>;\n update: (def: GraphDefinition) => Promise<void>;\n setEnvironment: (env: Json, opts?: { merge?: boolean }) => void;\n setInput: (nodeId: string, handle: string, value: unknown) => void;\n setInputs: (nodeId: string, inputs: Record<string, unknown>) => void;\n triggerExternal: (nodeId: string, event: unknown) => void;\n launch: () => void;\n whenIdle: () => Promise<void>;\n dispose: () => void;\n describeRegistry: () => RegisteryDescriptor;\n snapshot: () => RuntimeSnapshot;\n}\n\nexport async function createRuntimeAdapter(\n createRegistry: () => Promise<Registry>,\n send: (e: Envelope<RuntimeEvent>) => void\n): Promise<RuntimeApi> {\n const registry = await createRegistry();\n const builder = new GraphBuilder(registry);\n let graphRuntime: GraphRuntime | undefined;\n return {\n async build(def, opts) {\n graphRuntime = builder.build(def, { environment: opts });\n graphRuntime.on(\"value\", (p) =>\n send({ message: { type: \"value\", payload: p } })\n );\n graphRuntime.on(\"invalidate\", (p) =>\n send({ message: { type: \"invalidate\", payload: p } })\n );\n graphRuntime.on(\"error\", (p) =>\n send({ message: { type: \"error\", payload: p } })\n );\n graphRuntime.on(\"stats\", (p) =>\n send({ message: { type: \"stats\", payload: p } })\n );\n },\n snapshot(): RuntimeSnapshot {\n const inputs: RuntimeSnapshot[\"inputs\"] = {};\n const outputs: RuntimeSnapshot[\"outputs\"] = {};\n if (!graphRuntime) return { inputs, outputs };\n const nodes = graphRuntime.getNodeIds();\n for (const nodeId of nodes) {\n const data = graphRuntime.getNodeData(nodeId);\n if (data?.inputs && Object.keys(data.inputs).length > 0) {\n inputs[nodeId] = { ...data.inputs };\n }\n if (data?.outputs && Object.keys(data.outputs).length > 0) {\n outputs[nodeId] = { ...data.outputs };\n }\n }\n return { inputs, outputs };\n },\n describeRegistry() {\n // types (include enum options when available)\n const types = Array.from(registry.types.entries()).map(([id, d]) => {\n const en = registry.enums.get(id);\n return {\n id,\n displayName: d.displayName,\n ...(en ? { options: en.options } : {}),\n };\n });\n // categories: not directly enumerable; derive from node descriptors\n const nodeDescs = Array.from(registry.nodes.values());\n const catIds = new Set(nodeDescs.map((n) => n.categoryId));\n const categories = Array.from(catIds).map((id) => {\n const cat = registry.categories.get?.(id);\n return { id, displayName: cat?.displayName };\n });\n const nodes = nodeDescs.map((n) => ({\n id: n.id,\n categoryId: n.categoryId,\n displayName: n.displayName,\n inputs: n.inputs || {},\n outputs: n.outputs || {},\n }));\n const coercions = registry.listCoercions();\n return { types, categories, nodes, coercions, schemaVersion: 4 };\n },\n async update(def) {\n if (!graphRuntime) return;\n graphRuntime.update(def, registry);\n },\n setEnvironment(env, opts) {\n if (!graphRuntime) return;\n if (opts?.merge) {\n const current = graphRuntime.getEnvironment();\n const next = { ...(current || {}), ...(env || {}) };\n graphRuntime.setEnvironment(next);\n return;\n }\n graphRuntime.setEnvironment(env);\n },\n setInput(nodeId, handle, value) {\n graphRuntime?.setInput(nodeId, handle, value);\n },\n setInputs(nodeId, inputs) {\n graphRuntime?.setInputs(nodeId, inputs);\n },\n triggerExternal(nodeId, event) {\n graphRuntime?.triggerExternal(nodeId, event);\n },\n launch() {\n graphRuntime?.launch();\n },\n whenIdle() {\n return graphRuntime?.whenIdle?.() ?? Promise.resolve();\n },\n dispose() {\n graphRuntime?.dispose?.();\n graphRuntime = undefined;\n },\n };\n}\n"],"names":["WebSocket","GraphBuilder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteEngine.d.ts","sourceRoot":"","sources":["../../../src/RemoteEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EAMhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,YAAa,YAAW,MAAM;IAO7B,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,KAAK,CAA8B;gBAEvB,SAAS,EAAE,SAAS;IAIxC,OAAO,CAAC,UAAU;IAgBlB,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMrD,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,MAAM,IAAI;IAOb,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"RemoteEngine.d.ts","sourceRoot":"","sources":["../../../src/RemoteEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,YAAa,YAAW,MAAM;IAO7B,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,KAAK,CAA8B;gBAEvB,SAAS,EAAE,SAAS;IAIxC,OAAO,CAAC,UAAU;IAgBlB,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMrD,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,MAAM,IAAI;IAOb,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,6 +1,6 @@
1
1
  import type { RunnerControl, GraphDefinition, Engine } from "@bian-womp/spark-graph";
2
2
  import type { Transport } from "./transport/Transport";
3
- import { RegisteryDescriptor } from "./protocol";
3
+ import { RegisteryDescriptor, RuntimeSnapshot } from "@bian-womp/spark-protocol";
4
4
  export declare class RemoteRunner implements RunnerControl {
5
5
  private transport;
6
6
  private engine;
@@ -10,6 +10,7 @@ export declare class RemoteRunner implements RunnerControl {
10
10
  }): Promise<void>;
11
11
  update(def: GraphDefinition): Promise<void>;
12
12
  describeRegistry(): Promise<RegisteryDescriptor>;
13
+ snapshot(): Promise<RuntimeSnapshot>;
13
14
  getEngine(): Engine;
14
15
  }
15
16
  //# sourceMappingURL=RemoteRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteRunner.d.ts","sourceRoot":"","sources":["../../../src/RemoteRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,MAAM,EACP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,YAAa,YAAW,aAAa;IAEpC,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,MAAM,CAAe;gBACT,SAAS,EAAE,SAAS;IAIlC,KAAK,CACT,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IASV,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgBtD,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"RemoteRunner.d.ts","sourceRoot":"","sources":["../../../src/RemoteRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,MAAM,EACP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjF,qBAAa,YAAa,YAAW,aAAa;IAEpC,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,MAAM,CAAe;gBACT,SAAS,EAAE,SAAS;IAIlC,KAAK,CACT,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IASV,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgBhD,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAM1C,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,5 +1,5 @@
1
1
  import { type Engine } from "@bian-womp/spark-graph";
2
- import type { GraphDefinition } from "../protocol";
2
+ import type { GraphDefinition } from "@bian-womp/spark-protocol";
3
3
  import type { RemoteRunner } from "../RemoteRunner";
4
4
  export type ExampleName = "simple" | "async" | "progress" | "validation";
5
5
  export declare function buildDef(example: ExampleName): GraphDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAKZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAM9D;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,iBAmD9C;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QA2B5C"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAKZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAM9D;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,iBAmD9C;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QA2B5C"}
@@ -1,4 +1,3 @@
1
- export * from "./protocol";
2
1
  export * from "./transport/Transport";
3
2
  export * from "./transport/WebSocketTransport";
4
3
  export * from "./transport/HttpPollingTransport";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,2 @@
1
- export type { Envelope, Command, RuntimeEvent, GraphDefinition, RegisteryDescriptor, } from "@bian-womp/spark-protocol";
1
+ export type { Envelope, Command, RuntimeEvent, GraphDefinition, RegisteryDescriptor, RuntimeSnapshot, } from "@bian-womp/spark-protocol";
2
2
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/protocol.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/protocol.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Envelope, Command } from "../protocol";
1
+ import type { Envelope, Command } from "@bian-womp/spark-protocol";
2
2
  import type { Json, RuntimeApi } from "./runtime";
3
3
  export declare function handleCommand(label: string, env: Envelope<Command>, runtimeApi: RuntimeApi, ack: (payload?: Json) => void): Promise<void>;
4
4
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/server/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Gf"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/server/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
@@ -1,5 +1,5 @@
1
1
  import { Registry } from "@bian-womp/spark-graph";
2
- import type { Envelope, RuntimeEvent, GraphDefinition, RegisteryDescriptor } from "../protocol";
2
+ import type { Envelope, RuntimeEvent, GraphDefinition, RegisteryDescriptor, RuntimeSnapshot } from "@bian-womp/spark-protocol";
3
3
  export type Json = Record<string, unknown>;
4
4
  export interface RuntimeApi {
5
5
  build: (def: GraphDefinition, env?: Json) => Promise<void>;
@@ -14,6 +14,7 @@ export interface RuntimeApi {
14
14
  whenIdle: () => Promise<void>;
15
15
  dispose: () => void;
16
16
  describeRegistry: () => RegisteryDescriptor;
17
+ snapshot: () => RuntimeSnapshot;
17
18
  }
18
19
  export declare function createRuntimeAdapter(createRegistry: () => Promise<Registry>, send: (e: Envelope<RuntimeEvent>) => void): Promise<RuntimeApi>;
19
20
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;CAC7C;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,GACxC,OAAO,CAAC,UAAU,CAAC,CAiFrB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;IAC5C,QAAQ,EAAE,MAAM,eAAe,CAAC;CACjC;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,GACxC,OAAO,CAAC,UAAU,CAAC,CAiGrB"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class HttpPollingTransport implements Transport {
4
4
  private baseUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpPollingTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/HttpPollingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAU1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
1
+ {"version":3,"file":"HttpPollingTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/HttpPollingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAU1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  export interface Transport {
3
3
  connect(sessionId?: string): Promise<void>;
4
4
  request<TReq = unknown, TRes = unknown>(msg: Envelope<TReq>): Promise<Envelope<TRes>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class UnixSocketTransport implements Transport {
4
4
  private socketPath;
@@ -1 +1 @@
1
- {"version":3,"file":"UnixSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/UnixSocketTransport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,mBAAoB,YAAW,SAAS;IAMvC,OAAO,CAAC,UAAU;IAL9B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAmD;gBAE9C,UAAU,EAAE,MAAM;IAEhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,OAAO,CAAC,MAAM;IAuBR,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAa1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAU/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
1
+ {"version":3,"file":"UnixSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/UnixSocketTransport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,mBAAoB,YAAW,SAAS;IAMvC,OAAO,CAAC,UAAU;IAL9B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAmD;gBAE9C,UAAU,EAAE,MAAM;IAEhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,OAAO,CAAC,MAAM;IAuBR,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAa1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAU/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class WebSocketTransport implements Transport {
4
4
  private ws?;
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/WebSocketTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAgB1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
1
+ {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/WebSocketTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAgB1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
package/lib/esm/index.js CHANGED
@@ -224,6 +224,11 @@ class RemoteRunner {
224
224
  schemaVersion: 4,
225
225
  });
226
226
  }
227
+ async snapshot() {
228
+ const res = await this.transport.request({ message: { type: "Snapshot" } });
229
+ const payload = res?.message || {};
230
+ return payload.snapshot || { inputs: {}, outputs: {} };
231
+ }
227
232
  getEngine() {
228
233
  return this.engine;
229
234
  }
@@ -331,7 +336,8 @@ async function handleCommand(label, env, runtimeApi, ack) {
331
336
  }
332
337
  case "Snapshot": {
333
338
  console.debug(`[${label}] rx Snapshot seq=${env.seq}`);
334
- ack({ snapshot: { ok: true } });
339
+ const snap = runtimeApi.snapshot();
340
+ ack({ snapshot: snap });
335
341
  break;
336
342
  }
337
343
  case "DescribeRegistry": {
@@ -371,6 +377,23 @@ async function createRuntimeAdapter(createRegistry, send) {
371
377
  graphRuntime.on("error", (p) => send({ message: { type: "error", payload: p } }));
372
378
  graphRuntime.on("stats", (p) => send({ message: { type: "stats", payload: p } }));
373
379
  },
380
+ snapshot() {
381
+ const inputs = {};
382
+ const outputs = {};
383
+ if (!graphRuntime)
384
+ return { inputs, outputs };
385
+ const nodes = graphRuntime.getNodeIds();
386
+ for (const nodeId of nodes) {
387
+ const data = graphRuntime.getNodeData(nodeId);
388
+ if (data?.inputs && Object.keys(data.inputs).length > 0) {
389
+ inputs[nodeId] = { ...data.inputs };
390
+ }
391
+ if (data?.outputs && Object.keys(data.outputs).length > 0) {
392
+ outputs[nodeId] = { ...data.outputs };
393
+ }
394
+ }
395
+ return { inputs, outputs };
396
+ },
374
397
  describeRegistry() {
375
398
  // types (include enum options when available)
376
399
  const types = Array.from(registry.types.entries()).map(([id, d]) => {
@@ -407,9 +430,9 @@ async function createRuntimeAdapter(createRegistry, send) {
407
430
  if (!graphRuntime)
408
431
  return;
409
432
  if (opts?.merge) {
410
- const current = graphRuntime.__unsafe_getEnvironment();
433
+ const current = graphRuntime.getEnvironment();
411
434
  const next = { ...(current || {}), ...(env || {}) };
412
- graphRuntime.__unsafe_setEnvironment(next);
435
+ graphRuntime.setEnvironment(next);
413
436
  return;
414
437
  }
415
438
  graphRuntime.setEnvironment(env);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/transport/WebSocketTransport.ts","../../src/transport/HttpPollingTransport.ts","../../src/RemoteEngine.ts","../../src/RemoteRunner.ts","../../src/server/errors.ts","../../src/server/command.ts","../../src/server/runtime.ts"],"sourcesContent":["import { WebSocket } from \"ws\";\nimport type { Envelope } from \"../protocol\";\nimport type { Transport } from \"./Transport\";\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nexport class WebSocketTransport implements Transport {\n private ws?: WebSocket;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private url: string;\n\n constructor(url: string) {\n this.url = url;\n }\n\n async connect(): Promise<void> {\n if (this.ws && this.ws.readyState === OPEN) return;\n this.ws = window\n ? new (window as any).WebSocket(this.url)\n : new WebSocket(this.url);\n await new Promise<void>((resolve, reject) => {\n if (!this.ws) return reject(new Error(\"ws init failed\"));\n this.ws.onopen = () => resolve();\n this.ws.onerror = (e) => reject(e);\n this.ws.onmessage = (ev) => {\n try {\n const env = JSON.parse(String(ev.data)) as Envelope<any>;\n for (const l of Array.from(this.listeners)) l(env);\n } catch {}\n };\n });\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n // For now, just send and wait for the next message with matching seq (simple demo)\n const seq = Date.now();\n const env = { ...msg, seq };\n const p = new Promise<Envelope<TRes>>((resolve) => {\n const off = this.subscribe((incoming) => {\n if (incoming.seq === seq) {\n off();\n resolve(incoming);\n }\n });\n });\n this.send(env);\n return p;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n if (!this.ws || this.ws.readyState !== OPEN) return;\n this.ws.send(JSON.stringify(msg));\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (!this.ws) return;\n const ws = this.ws;\n this.ws = undefined;\n await new Promise<void>((resolve) => {\n ws.onclose = () => resolve();\n try {\n ws.close();\n } catch {\n resolve();\n }\n });\n }\n}\n","import type { Envelope } from \"../protocol\";\nimport type { Transport } from \"./Transport\";\n\nexport class HttpPollingTransport implements Transport {\n private baseUrl: string;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private polling?: NodeJS.Timeout;\n private cursor?: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n }\n\n async connect(): Promise<void> {\n // Start polling loop\n if (this.polling) return;\n const tick = async () => {\n try {\n const url = new URL(this.baseUrl + \"/events\");\n if (this.cursor) url.searchParams.set(\"cursor\", this.cursor);\n const res = await fetch(url.toString());\n if (!res.ok) return;\n const batch = (await res.json()) as Envelope<any>[];\n for (const env of batch) {\n this.cursor = String(env.seq ?? Date.now());\n for (const l of Array.from(this.listeners)) l(env);\n }\n } catch {}\n };\n this.polling = setInterval(tick, 200);\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n const res = await fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n const data = (await res.json()) as Envelope<TRes>;\n return data;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n void fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (this.polling) clearInterval(this.polling);\n this.polling = undefined;\n }\n}\n","import type {\n Engine,\n EngineEventListener,\n EngineEventName,\n EngineEventMap,\n RuntimeErrorEvent,\n InvalidateEvent,\n StatsEvent,\n ValueEvent,\n} from \"@bian-womp/spark-graph\";\nimport type { Transport } from \"./transport/Transport\";\nimport type { Envelope, RuntimeEvent } from \"./protocol\";\n\nexport class RemoteEngine implements Engine {\n private listeners = new Map<\n EngineEventName,\n Set<EngineEventListener<EngineEventName>>\n >();\n private cache = new Map<string, unknown>();\n\n constructor(private transport: Transport) {\n this.transport.subscribe((env) => this.onEnvelope(env));\n }\n\n private onEnvelope(env: Envelope<RuntimeEvent>): void {\n const msg = env.message;\n if (!msg) return;\n if (msg.type === \"value\") {\n const key = `${msg.payload.nodeId}.${msg.payload.handle}`;\n this.cache.set(key, msg.payload.value);\n this.emit(\"value\", msg.payload as ValueEvent);\n } else if (msg.type === \"error\") {\n this.emit(\"error\", msg.payload as RuntimeErrorEvent);\n } else if (msg.type === \"invalidate\") {\n this.emit(\"invalidate\", msg.payload as InvalidateEvent);\n } else if (msg.type === \"stats\") {\n this.emit(\"stats\", msg.payload as StatsEvent);\n }\n }\n\n launch(): void {\n this.transport.send({ message: { type: \"Launch\" } });\n }\n\n setInput(nodeId: string, handle: string, value: unknown): void {\n this.transport.send({\n message: { type: \"SetInput\", payload: { nodeId, handle, value } },\n });\n }\n\n // Batch inputs for a single network round-trip\n setInputs(nodeId: string, inputs: Record<string, unknown>): void {\n this.transport.send({\n message: { type: \"SetInputs\", payload: { nodeId, inputs } },\n });\n }\n\n triggerExternal(nodeId: string, event: unknown): void {\n this.transport.send({\n message: { type: \"TriggerExternal\", payload: { nodeId, event } },\n });\n }\n\n on<K extends EngineEventName>(\n event: K,\n handler: EngineEventListener<K>\n ): () => void {\n if (!this.listeners.has(event)) this.listeners.set(event, new Set());\n const set = this.listeners.get(event)! as Set<EngineEventListener<K>>;\n set.add(handler);\n return () => set.delete(handler);\n }\n\n private emit<K extends EngineEventName>(\n event: K,\n payload: EngineEventMap[K]\n ): void {\n const set = this.listeners.get(event);\n if (set) for (const h of Array.from(set)) h(payload);\n }\n\n getOutput(nodeId: string, output: string): unknown {\n return this.cache.get(`${nodeId}.${output}`);\n }\n\n async whenIdle(): Promise<void> {\n await this.transport.request({ message: { type: \"WhenIdle\" } });\n }\n\n dispose(): void {\n this.transport.send({ message: { type: \"Dispose\" } });\n }\n}\n","import type {\n RunnerControl,\n GraphDefinition,\n Engine,\n} from \"@bian-womp/spark-graph\";\nimport { RemoteEngine } from \"./RemoteEngine\";\nimport type { Transport } from \"./transport/Transport\";\nimport { RegisteryDescriptor } from \"./protocol\";\n\nexport class RemoteRunner implements RunnerControl {\n private engine: RemoteEngine;\n constructor(private transport: Transport) {\n this.engine = new RemoteEngine(transport);\n }\n\n async build(\n def: GraphDefinition,\n opts?: { environment?: Record<string, unknown> }\n ): Promise<void> {\n await this.transport.request({\n message: {\n type: \"Build\",\n payload: { def, environment: opts?.environment },\n },\n });\n }\n\n async update(def: GraphDefinition): Promise<void> {\n await this.transport.request({\n message: { type: \"Update\", payload: { def } },\n });\n }\n\n async describeRegistry(): Promise<RegisteryDescriptor> {\n const res = await this.transport.request({\n message: { type: \"DescribeRegistry\" },\n });\n const payload = (res?.message as any) || {};\n return (\n payload.registry || {\n types: [],\n categories: [],\n nodes: [],\n coercions: [],\n schemaVersion: 4,\n }\n );\n }\n\n getEngine(): Engine {\n return this.engine;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function summarize(value: unknown, maxLen = 120): string {\n try {\n const s = typeof value === \"string\" ? value : JSON.stringify(value);\n return s.length > maxLen ? s.slice(0, maxLen) + \"…\" : s;\n } catch {\n return String(value);\n }\n}\n\nexport function serializeError(err: unknown): any {\n try {\n if (!err) return { message: String(err) };\n const errAny = err as any;\n if (err instanceof Error) {\n const base: any = {\n name: err.name,\n message: err.message,\n stack: err.stack,\n };\n for (const k of Object.keys(errAny)) base[k] = errAny[k];\n return base;\n }\n if (typeof err === \"object\") {\n const maybeMsg = errAny?.message;\n const maybeName = errAny?.name;\n const maybeStack = errAny?.stack;\n const out = { ...errAny };\n if (maybeMsg && !out.message) out.message = String(maybeMsg);\n if (maybeName && !out.name) out.name = String(maybeName);\n if (maybeStack && !out.stack) out.stack = String(maybeStack);\n return out;\n }\n return { message: String(err) };\n } catch {\n return { message: String(err) };\n }\n}\n","import type { Envelope, Command } from \"../protocol\";\nimport type { Json, RuntimeApi } from \"./runtime\";\nimport { summarize } from \"./errors\";\n\nexport async function handleCommand(\n label: string,\n env: Envelope<Command>,\n runtimeApi: RuntimeApi,\n ack: (payload?: Json) => void\n): Promise<void> {\n const msg = env.message as Command;\n switch (msg.type) {\n case \"Build\": {\n console.debug(\n `[${label}] rx Build seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0} envKeys=${Object.keys(\n msg.payload.environment ?? {}\n ).join(\",\")}`\n );\n await runtimeApi.build(msg.payload.def, msg.payload.environment as Json);\n ack();\n break;\n }\n case \"Update\": {\n console.debug(\n `[${label}] rx Update seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0}`\n );\n await runtimeApi.update(msg.payload.def);\n ack();\n break;\n }\n case \"SetEnvironment\": {\n console.debug(`[${label}] rx SetEnvironment seq=${env.seq}`);\n runtimeApi.setEnvironment(msg.payload.environment, {\n merge: Boolean(msg.payload.merge),\n });\n ack();\n break;\n }\n case \"SetInput\": {\n console.debug(\n `[${label}] rx SetInput seq=${env.seq} ${msg.payload.nodeId}.${\n msg.payload.handle\n }=${summarize(msg.payload.value)}`\n );\n runtimeApi.setInput(\n msg.payload.nodeId,\n msg.payload.handle,\n msg.payload.value\n );\n ack();\n break;\n }\n case \"SetInputs\": {\n console.debug(\n `[${label}] rx SetInputs seq=${env.seq} ${\n msg.payload.nodeId\n } keys=${Object.keys(msg.payload.inputs || {}).join(\",\")}`\n );\n const nodeId = msg.payload.nodeId;\n const inputs = msg.payload.inputs;\n runtimeApi.setInputs(nodeId, inputs);\n ack();\n break;\n }\n case \"TriggerExternal\": {\n console.debug(\n `[${label}] rx TriggerExternal seq=${env.seq} ${\n msg.payload.nodeId\n } event=${summarize(msg.payload.event)}`\n );\n runtimeApi.triggerExternal(msg.payload.nodeId, msg.payload.event);\n ack();\n break;\n }\n case \"Launch\": {\n console.debug(`[${label}] rx Launch seq=${env.seq}`);\n runtimeApi.launch();\n ack();\n break;\n }\n case \"WhenIdle\": {\n console.debug(`[${label}] rx WhenIdle seq=${env.seq}`);\n await runtimeApi.whenIdle();\n ack();\n break;\n }\n case \"Snapshot\": {\n console.debug(`[${label}] rx Snapshot seq=${env.seq}`);\n ack({ snapshot: { ok: true } });\n break;\n }\n case \"DescribeRegistry\": {\n console.debug(`[${label}] rx DescribeRegistry seq=${env.seq}`);\n const desc = runtimeApi.describeRegistry();\n ack({ registry: desc });\n break;\n }\n case \"Dispose\": {\n console.debug(`[${label}] rx Dispose seq=${env.seq}`);\n runtimeApi.dispose();\n ack();\n break;\n }\n case \"Pause\":\n case \"Resume\": {\n console.debug(`[${label}] rx ${msg.type} seq=${env.seq} (not-impl)`);\n ack();\n break;\n }\n default: {\n console.debug(`[${label}] rx Unknown type seq=${env.seq}`);\n ack();\n }\n }\n}\n","import { GraphBuilder, Registry, GraphRuntime } from \"@bian-womp/spark-graph\";\nimport type {\n Envelope,\n RuntimeEvent,\n GraphDefinition,\n RegisteryDescriptor,\n} from \"../protocol\";\n\nexport type Json = Record<string, unknown>;\n\nexport interface RuntimeApi {\n build: (def: GraphDefinition, env?: Json) => Promise<void>;\n update: (def: GraphDefinition) => Promise<void>;\n setEnvironment: (env: Json, opts?: { merge?: boolean }) => void;\n setInput: (nodeId: string, handle: string, value: unknown) => void;\n setInputs: (nodeId: string, inputs: Record<string, unknown>) => void;\n triggerExternal: (nodeId: string, event: unknown) => void;\n launch: () => void;\n whenIdle: () => Promise<void>;\n dispose: () => void;\n describeRegistry: () => RegisteryDescriptor;\n}\n\nexport async function createRuntimeAdapter(\n createRegistry: () => Promise<Registry>,\n send: (e: Envelope<RuntimeEvent>) => void\n): Promise<RuntimeApi> {\n const registry = await createRegistry();\n const builder = new GraphBuilder(registry);\n let graphRuntime: GraphRuntime | undefined;\n return {\n async build(def, opts) {\n graphRuntime = builder.build(def, { environment: opts });\n graphRuntime.on(\"value\", (p) =>\n send({ message: { type: \"value\", payload: p } })\n );\n graphRuntime.on(\"invalidate\", (p) =>\n send({ message: { type: \"invalidate\", payload: p } })\n );\n graphRuntime.on(\"error\", (p) =>\n send({ message: { type: \"error\", payload: p } })\n );\n graphRuntime.on(\"stats\", (p) =>\n send({ message: { type: \"stats\", payload: p } })\n );\n },\n describeRegistry() {\n // types (include enum options when available)\n const types = Array.from(registry.types.entries()).map(([id, d]) => {\n const en = registry.enums.get(id);\n return {\n id,\n displayName: d.displayName,\n ...(en ? { options: en.options } : {}),\n };\n });\n // categories: not directly enumerable; derive from node descriptors\n const nodeDescs = Array.from(registry.nodes.values());\n const catIds = new Set(nodeDescs.map((n) => n.categoryId));\n const categories = Array.from(catIds).map((id) => {\n const cat = registry.categories.get?.(id);\n return { id, displayName: cat?.displayName };\n });\n const nodes = nodeDescs.map((n) => ({\n id: n.id,\n categoryId: n.categoryId,\n displayName: n.displayName,\n inputs: n.inputs || {},\n outputs: n.outputs || {},\n }));\n const coercions = registry.listCoercions();\n return { types, categories, nodes, coercions, schemaVersion: 4 };\n },\n async update(def) {\n if (!graphRuntime) return;\n graphRuntime.update(def, registry);\n },\n setEnvironment(env, opts) {\n if (!graphRuntime) return;\n if (opts?.merge) {\n const current = graphRuntime.__unsafe_getEnvironment();\n const next = { ...(current || {}), ...(env || {}) };\n graphRuntime.__unsafe_setEnvironment(next);\n return;\n }\n graphRuntime.setEnvironment(env);\n },\n setInput(nodeId, handle, value) {\n graphRuntime?.setInput(nodeId, handle, value);\n },\n setInputs(nodeId, inputs) {\n graphRuntime?.setInputs(nodeId, inputs);\n },\n triggerExternal(nodeId, event) {\n graphRuntime?.triggerExternal(nodeId, event);\n },\n launch() {\n graphRuntime?.launch();\n },\n whenIdle() {\n return graphRuntime?.whenIdle?.() ?? Promise.resolve();\n },\n dispose() {\n graphRuntime?.dispose?.();\n graphRuntime = undefined;\n },\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/transport/WebSocketTransport.ts","../../src/transport/HttpPollingTransport.ts","../../src/RemoteEngine.ts","../../src/RemoteRunner.ts","../../src/server/errors.ts","../../src/server/command.ts","../../src/server/runtime.ts"],"sourcesContent":["import { WebSocket } from \"ws\";\nimport type { Envelope } from \"@bian-womp/spark-protocol\";\nimport type { Transport } from \"./Transport\";\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nexport class WebSocketTransport implements Transport {\n private ws?: WebSocket;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private url: string;\n\n constructor(url: string) {\n this.url = url;\n }\n\n async connect(): Promise<void> {\n if (this.ws && this.ws.readyState === OPEN) return;\n this.ws = window\n ? new (window as any).WebSocket(this.url)\n : new WebSocket(this.url);\n await new Promise<void>((resolve, reject) => {\n if (!this.ws) return reject(new Error(\"ws init failed\"));\n this.ws.onopen = () => resolve();\n this.ws.onerror = (e) => reject(e);\n this.ws.onmessage = (ev) => {\n try {\n const env = JSON.parse(String(ev.data)) as Envelope<any>;\n for (const l of Array.from(this.listeners)) l(env);\n } catch {}\n };\n });\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n // For now, just send and wait for the next message with matching seq (simple demo)\n const seq = Date.now();\n const env = { ...msg, seq };\n const p = new Promise<Envelope<TRes>>((resolve) => {\n const off = this.subscribe((incoming) => {\n if (incoming.seq === seq) {\n off();\n resolve(incoming);\n }\n });\n });\n this.send(env);\n return p;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n if (!this.ws || this.ws.readyState !== OPEN) return;\n this.ws.send(JSON.stringify(msg));\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (!this.ws) return;\n const ws = this.ws;\n this.ws = undefined;\n await new Promise<void>((resolve) => {\n ws.onclose = () => resolve();\n try {\n ws.close();\n } catch {\n resolve();\n }\n });\n }\n}\n","import type { Envelope } from \"@bian-womp/spark-protocol\";\nimport type { Transport } from \"./Transport\";\n\nexport class HttpPollingTransport implements Transport {\n private baseUrl: string;\n private listeners = new Set<(event: Envelope<any>) => void>();\n private polling?: NodeJS.Timeout;\n private cursor?: string;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.replace(/\\/$/, \"\");\n }\n\n async connect(): Promise<void> {\n // Start polling loop\n if (this.polling) return;\n const tick = async () => {\n try {\n const url = new URL(this.baseUrl + \"/events\");\n if (this.cursor) url.searchParams.set(\"cursor\", this.cursor);\n const res = await fetch(url.toString());\n if (!res.ok) return;\n const batch = (await res.json()) as Envelope<any>[];\n for (const env of batch) {\n this.cursor = String(env.seq ?? Date.now());\n for (const l of Array.from(this.listeners)) l(env);\n }\n } catch {}\n };\n this.polling = setInterval(tick, 200);\n }\n\n async request<TReq = unknown, TRes = unknown>(\n msg: Envelope<TReq>\n ): Promise<Envelope<TRes>> {\n const res = await fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n const data = (await res.json()) as Envelope<TRes>;\n return data;\n }\n\n send<TReq = unknown>(msg: Envelope<TReq>): void {\n void fetch(this.baseUrl + \"/command\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(msg),\n });\n }\n\n subscribe(cb: (event: Envelope<any>) => void): () => void {\n this.listeners.add(cb);\n return () => this.listeners.delete(cb);\n }\n\n async close(): Promise<void> {\n if (this.polling) clearInterval(this.polling);\n this.polling = undefined;\n }\n}\n","import type {\n Engine,\n EngineEventListener,\n EngineEventName,\n EngineEventMap,\n} from \"@bian-womp/spark-graph\";\nimport type { Transport } from \"./transport/Transport\";\nimport type { Envelope, RuntimeEvent } from \"@bian-womp/spark-protocol\";\n\nexport class RemoteEngine implements Engine {\n private listeners = new Map<\n EngineEventName,\n Set<EngineEventListener<EngineEventName>>\n >();\n private cache = new Map<string, unknown>();\n\n constructor(private transport: Transport) {\n this.transport.subscribe((env) => this.onEnvelope(env));\n }\n\n private onEnvelope(env: Envelope<RuntimeEvent>): void {\n const msg = env.message;\n if (!msg) return;\n if (msg.type === \"value\") {\n const key = `${msg.payload.nodeId}.${msg.payload.handle}`;\n this.cache.set(key, msg.payload.value);\n this.emit(\"value\", msg.payload);\n } else if (msg.type === \"error\") {\n this.emit(\"error\", msg.payload);\n } else if (msg.type === \"invalidate\") {\n this.emit(\"invalidate\", msg.payload);\n } else if (msg.type === \"stats\") {\n this.emit(\"stats\", msg.payload);\n }\n }\n\n launch(): void {\n this.transport.send({ message: { type: \"Launch\" } });\n }\n\n setInput(nodeId: string, handle: string, value: unknown): void {\n this.transport.send({\n message: { type: \"SetInput\", payload: { nodeId, handle, value } },\n });\n }\n\n // Batch inputs for a single network round-trip\n setInputs(nodeId: string, inputs: Record<string, unknown>): void {\n this.transport.send({\n message: { type: \"SetInputs\", payload: { nodeId, inputs } },\n });\n }\n\n triggerExternal(nodeId: string, event: unknown): void {\n this.transport.send({\n message: { type: \"TriggerExternal\", payload: { nodeId, event } },\n });\n }\n\n on<K extends EngineEventName>(\n event: K,\n handler: EngineEventListener<K>\n ): () => void {\n if (!this.listeners.has(event)) this.listeners.set(event, new Set());\n const set = this.listeners.get(event)! as Set<EngineEventListener<K>>;\n set.add(handler);\n return () => set.delete(handler);\n }\n\n private emit<K extends EngineEventName>(\n event: K,\n payload: EngineEventMap[K]\n ): void {\n const set = this.listeners.get(event);\n if (set) for (const h of Array.from(set)) h(payload);\n }\n\n getOutput(nodeId: string, output: string): unknown {\n return this.cache.get(`${nodeId}.${output}`);\n }\n\n async whenIdle(): Promise<void> {\n await this.transport.request({ message: { type: \"WhenIdle\" } });\n }\n\n dispose(): void {\n this.transport.send({ message: { type: \"Dispose\" } });\n }\n}\n","import type {\n RunnerControl,\n GraphDefinition,\n Engine,\n} from \"@bian-womp/spark-graph\";\nimport { RemoteEngine } from \"./RemoteEngine\";\nimport type { Transport } from \"./transport/Transport\";\nimport { RegisteryDescriptor, RuntimeSnapshot } from \"@bian-womp/spark-protocol\";\n\nexport class RemoteRunner implements RunnerControl {\n private engine: RemoteEngine;\n constructor(private transport: Transport) {\n this.engine = new RemoteEngine(transport);\n }\n\n async build(\n def: GraphDefinition,\n opts?: { environment?: Record<string, unknown> }\n ): Promise<void> {\n await this.transport.request({\n message: {\n type: \"Build\",\n payload: { def, environment: opts?.environment },\n },\n });\n }\n\n async update(def: GraphDefinition): Promise<void> {\n await this.transport.request({\n message: { type: \"Update\", payload: { def } },\n });\n }\n\n async describeRegistry(): Promise<RegisteryDescriptor> {\n const res = await this.transport.request({\n message: { type: \"DescribeRegistry\" },\n });\n const payload = (res?.message as { registry: RegisteryDescriptor }) || {};\n return (\n payload.registry || {\n types: [],\n categories: [],\n nodes: [],\n coercions: [],\n schemaVersion: 4,\n }\n );\n }\n\n async snapshot(): Promise<RuntimeSnapshot> {\n const res = await this.transport.request({ message: { type: \"Snapshot\" } });\n const payload = (res?.message as { snapshot: RuntimeSnapshot }) || {};\n return payload.snapshot || { inputs: {}, outputs: {} };\n }\n\n getEngine(): Engine {\n return this.engine;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function summarize(value: unknown, maxLen = 120): string {\n try {\n const s = typeof value === \"string\" ? value : JSON.stringify(value);\n return s.length > maxLen ? s.slice(0, maxLen) + \"…\" : s;\n } catch {\n return String(value);\n }\n}\n\nexport function serializeError(err: unknown): any {\n try {\n if (!err) return { message: String(err) };\n const errAny = err as any;\n if (err instanceof Error) {\n const base: any = {\n name: err.name,\n message: err.message,\n stack: err.stack,\n };\n for (const k of Object.keys(errAny)) base[k] = errAny[k];\n return base;\n }\n if (typeof err === \"object\") {\n const maybeMsg = errAny?.message;\n const maybeName = errAny?.name;\n const maybeStack = errAny?.stack;\n const out = { ...errAny };\n if (maybeMsg && !out.message) out.message = String(maybeMsg);\n if (maybeName && !out.name) out.name = String(maybeName);\n if (maybeStack && !out.stack) out.stack = String(maybeStack);\n return out;\n }\n return { message: String(err) };\n } catch {\n return { message: String(err) };\n }\n}\n","import type { Envelope, Command } from \"@bian-womp/spark-protocol\";\nimport type { Json, RuntimeApi } from \"./runtime\";\nimport { summarize } from \"./errors\";\n\nexport async function handleCommand(\n label: string,\n env: Envelope<Command>,\n runtimeApi: RuntimeApi,\n ack: (payload?: Json) => void\n): Promise<void> {\n const msg = env.message as Command;\n switch (msg.type) {\n case \"Build\": {\n console.debug(\n `[${label}] rx Build seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0} envKeys=${Object.keys(\n msg.payload.environment ?? {}\n ).join(\",\")}`\n );\n await runtimeApi.build(msg.payload.def, msg.payload.environment as Json);\n ack();\n break;\n }\n case \"Update\": {\n console.debug(\n `[${label}] rx Update seq=${env.seq} nodes=${\n msg.payload.def.nodes?.length ?? 0\n } edges=${msg.payload.def.edges?.length ?? 0}`\n );\n await runtimeApi.update(msg.payload.def);\n ack();\n break;\n }\n case \"SetEnvironment\": {\n console.debug(`[${label}] rx SetEnvironment seq=${env.seq}`);\n runtimeApi.setEnvironment(msg.payload.environment, {\n merge: Boolean(msg.payload.merge),\n });\n ack();\n break;\n }\n case \"SetInput\": {\n console.debug(\n `[${label}] rx SetInput seq=${env.seq} ${msg.payload.nodeId}.${\n msg.payload.handle\n }=${summarize(msg.payload.value)}`\n );\n runtimeApi.setInput(\n msg.payload.nodeId,\n msg.payload.handle,\n msg.payload.value\n );\n ack();\n break;\n }\n case \"SetInputs\": {\n console.debug(\n `[${label}] rx SetInputs seq=${env.seq} ${\n msg.payload.nodeId\n } keys=${Object.keys(msg.payload.inputs || {}).join(\",\")}`\n );\n const nodeId = msg.payload.nodeId;\n const inputs = msg.payload.inputs;\n runtimeApi.setInputs(nodeId, inputs);\n ack();\n break;\n }\n case \"TriggerExternal\": {\n console.debug(\n `[${label}] rx TriggerExternal seq=${env.seq} ${\n msg.payload.nodeId\n } event=${summarize(msg.payload.event)}`\n );\n runtimeApi.triggerExternal(msg.payload.nodeId, msg.payload.event);\n ack();\n break;\n }\n case \"Launch\": {\n console.debug(`[${label}] rx Launch seq=${env.seq}`);\n runtimeApi.launch();\n ack();\n break;\n }\n case \"WhenIdle\": {\n console.debug(`[${label}] rx WhenIdle seq=${env.seq}`);\n await runtimeApi.whenIdle();\n ack();\n break;\n }\n case \"Snapshot\": {\n console.debug(`[${label}] rx Snapshot seq=${env.seq}`);\n const snap = runtimeApi.snapshot();\n ack({ snapshot: snap });\n break;\n }\n case \"DescribeRegistry\": {\n console.debug(`[${label}] rx DescribeRegistry seq=${env.seq}`);\n const desc = runtimeApi.describeRegistry();\n ack({ registry: desc });\n break;\n }\n case \"Dispose\": {\n console.debug(`[${label}] rx Dispose seq=${env.seq}`);\n runtimeApi.dispose();\n ack();\n break;\n }\n case \"Pause\":\n case \"Resume\": {\n console.debug(`[${label}] rx ${msg.type} seq=${env.seq} (not-impl)`);\n ack();\n break;\n }\n default: {\n console.debug(`[${label}] rx Unknown type seq=${env.seq}`);\n ack();\n }\n }\n}\n","import { GraphBuilder, Registry, GraphRuntime } from \"@bian-womp/spark-graph\";\nimport type {\n Envelope,\n RuntimeEvent,\n GraphDefinition,\n RegisteryDescriptor,\n RuntimeSnapshot,\n} from \"@bian-womp/spark-protocol\";\n\nexport type Json = Record<string, unknown>;\n\nexport interface RuntimeApi {\n build: (def: GraphDefinition, env?: Json) => Promise<void>;\n update: (def: GraphDefinition) => Promise<void>;\n setEnvironment: (env: Json, opts?: { merge?: boolean }) => void;\n setInput: (nodeId: string, handle: string, value: unknown) => void;\n setInputs: (nodeId: string, inputs: Record<string, unknown>) => void;\n triggerExternal: (nodeId: string, event: unknown) => void;\n launch: () => void;\n whenIdle: () => Promise<void>;\n dispose: () => void;\n describeRegistry: () => RegisteryDescriptor;\n snapshot: () => RuntimeSnapshot;\n}\n\nexport async function createRuntimeAdapter(\n createRegistry: () => Promise<Registry>,\n send: (e: Envelope<RuntimeEvent>) => void\n): Promise<RuntimeApi> {\n const registry = await createRegistry();\n const builder = new GraphBuilder(registry);\n let graphRuntime: GraphRuntime | undefined;\n return {\n async build(def, opts) {\n graphRuntime = builder.build(def, { environment: opts });\n graphRuntime.on(\"value\", (p) =>\n send({ message: { type: \"value\", payload: p } })\n );\n graphRuntime.on(\"invalidate\", (p) =>\n send({ message: { type: \"invalidate\", payload: p } })\n );\n graphRuntime.on(\"error\", (p) =>\n send({ message: { type: \"error\", payload: p } })\n );\n graphRuntime.on(\"stats\", (p) =>\n send({ message: { type: \"stats\", payload: p } })\n );\n },\n snapshot(): RuntimeSnapshot {\n const inputs: RuntimeSnapshot[\"inputs\"] = {};\n const outputs: RuntimeSnapshot[\"outputs\"] = {};\n if (!graphRuntime) return { inputs, outputs };\n const nodes = graphRuntime.getNodeIds();\n for (const nodeId of nodes) {\n const data = graphRuntime.getNodeData(nodeId);\n if (data?.inputs && Object.keys(data.inputs).length > 0) {\n inputs[nodeId] = { ...data.inputs };\n }\n if (data?.outputs && Object.keys(data.outputs).length > 0) {\n outputs[nodeId] = { ...data.outputs };\n }\n }\n return { inputs, outputs };\n },\n describeRegistry() {\n // types (include enum options when available)\n const types = Array.from(registry.types.entries()).map(([id, d]) => {\n const en = registry.enums.get(id);\n return {\n id,\n displayName: d.displayName,\n ...(en ? { options: en.options } : {}),\n };\n });\n // categories: not directly enumerable; derive from node descriptors\n const nodeDescs = Array.from(registry.nodes.values());\n const catIds = new Set(nodeDescs.map((n) => n.categoryId));\n const categories = Array.from(catIds).map((id) => {\n const cat = registry.categories.get?.(id);\n return { id, displayName: cat?.displayName };\n });\n const nodes = nodeDescs.map((n) => ({\n id: n.id,\n categoryId: n.categoryId,\n displayName: n.displayName,\n inputs: n.inputs || {},\n outputs: n.outputs || {},\n }));\n const coercions = registry.listCoercions();\n return { types, categories, nodes, coercions, schemaVersion: 4 };\n },\n async update(def) {\n if (!graphRuntime) return;\n graphRuntime.update(def, registry);\n },\n setEnvironment(env, opts) {\n if (!graphRuntime) return;\n if (opts?.merge) {\n const current = graphRuntime.getEnvironment();\n const next = { ...(current || {}), ...(env || {}) };\n graphRuntime.setEnvironment(next);\n return;\n }\n graphRuntime.setEnvironment(env);\n },\n setInput(nodeId, handle, value) {\n graphRuntime?.setInput(nodeId, handle, value);\n },\n setInputs(nodeId, inputs) {\n graphRuntime?.setInputs(nodeId, inputs);\n },\n triggerExternal(nodeId, event) {\n graphRuntime?.triggerExternal(nodeId, event);\n },\n launch() {\n graphRuntime?.launch();\n },\n whenIdle() {\n return graphRuntime?.whenIdle?.() ?? Promise.resolve();\n },\n dispose() {\n graphRuntime?.dispose?.();\n graphRuntime = undefined;\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteEngine.d.ts","sourceRoot":"","sources":["../../../src/RemoteEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EAMhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,YAAa,YAAW,MAAM;IAO7B,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,KAAK,CAA8B;gBAEvB,SAAS,EAAE,SAAS;IAIxC,OAAO,CAAC,UAAU;IAgBlB,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMrD,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,MAAM,IAAI;IAOb,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"RemoteEngine.d.ts","sourceRoot":"","sources":["../../../src/RemoteEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,YAAa,YAAW,MAAM;IAO7B,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,KAAK,CAA8B;gBAEvB,SAAS,EAAE,SAAS;IAIxC,OAAO,CAAC,UAAU;IAgBlB,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMrD,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,MAAM,IAAI;IAOb,OAAO,CAAC,IAAI;IAQZ,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,6 +1,6 @@
1
1
  import type { RunnerControl, GraphDefinition, Engine } from "@bian-womp/spark-graph";
2
2
  import type { Transport } from "./transport/Transport";
3
- import { RegisteryDescriptor } from "./protocol";
3
+ import { RegisteryDescriptor, RuntimeSnapshot } from "@bian-womp/spark-protocol";
4
4
  export declare class RemoteRunner implements RunnerControl {
5
5
  private transport;
6
6
  private engine;
@@ -10,6 +10,7 @@ export declare class RemoteRunner implements RunnerControl {
10
10
  }): Promise<void>;
11
11
  update(def: GraphDefinition): Promise<void>;
12
12
  describeRegistry(): Promise<RegisteryDescriptor>;
13
+ snapshot(): Promise<RuntimeSnapshot>;
13
14
  getEngine(): Engine;
14
15
  }
15
16
  //# sourceMappingURL=RemoteRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteRunner.d.ts","sourceRoot":"","sources":["../../../src/RemoteRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,MAAM,EACP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,YAAa,YAAW,aAAa;IAEpC,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,MAAM,CAAe;gBACT,SAAS,EAAE,SAAS;IAIlC,KAAK,CACT,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IASV,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgBtD,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"RemoteRunner.d.ts","sourceRoot":"","sources":["../../../src/RemoteRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,MAAM,EACP,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjF,qBAAa,YAAa,YAAW,aAAa;IAEpC,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,MAAM,CAAe;gBACT,SAAS,EAAE,SAAS;IAIlC,KAAK,CACT,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IASV,MAAM,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgBhD,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAM1C,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,5 +1,5 @@
1
1
  import { type Engine } from "@bian-womp/spark-graph";
2
- import type { GraphDefinition } from "../protocol";
2
+ import type { GraphDefinition } from "@bian-womp/spark-protocol";
3
3
  import type { RemoteRunner } from "../RemoteRunner";
4
4
  export type ExampleName = "simple" | "async" | "progress" | "validation";
5
5
  export declare function buildDef(example: ExampleName): GraphDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAKZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAM9D;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,iBAmD9C;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QA2B5C"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/examples/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAKZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAM9D;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,iBAmD9C;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,QA2B5C"}
@@ -1,4 +1,3 @@
1
- export * from "./protocol";
2
1
  export * from "./transport/Transport";
3
2
  export * from "./transport/WebSocketTransport";
4
3
  export * from "./transport/HttpPollingTransport";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,2 @@
1
- export type { Envelope, Command, RuntimeEvent, GraphDefinition, RegisteryDescriptor, } from "@bian-womp/spark-protocol";
1
+ export type { Envelope, Command, RuntimeEvent, GraphDefinition, RegisteryDescriptor, RuntimeSnapshot, } from "@bian-womp/spark-protocol";
2
2
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/protocol.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/protocol.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Envelope, Command } from "../protocol";
1
+ import type { Envelope, Command } from "@bian-womp/spark-protocol";
2
2
  import type { Json, RuntimeApi } from "./runtime";
3
3
  export declare function handleCommand(label: string, env: Envelope<Command>, runtimeApi: RuntimeApi, ack: (payload?: Json) => void): Promise<void>;
4
4
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/server/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Gf"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/server/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
@@ -1,5 +1,5 @@
1
1
  import { Registry } from "@bian-womp/spark-graph";
2
- import type { Envelope, RuntimeEvent, GraphDefinition, RegisteryDescriptor } from "../protocol";
2
+ import type { Envelope, RuntimeEvent, GraphDefinition, RegisteryDescriptor, RuntimeSnapshot } from "@bian-womp/spark-protocol";
3
3
  export type Json = Record<string, unknown>;
4
4
  export interface RuntimeApi {
5
5
  build: (def: GraphDefinition, env?: Json) => Promise<void>;
@@ -14,6 +14,7 @@ export interface RuntimeApi {
14
14
  whenIdle: () => Promise<void>;
15
15
  dispose: () => void;
16
16
  describeRegistry: () => RegisteryDescriptor;
17
+ snapshot: () => RuntimeSnapshot;
17
18
  }
18
19
  export declare function createRuntimeAdapter(createRegistry: () => Promise<Registry>, send: (e: Envelope<RuntimeEvent>) => void): Promise<RuntimeApi>;
19
20
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;CAC7C;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,GACxC,OAAO,CAAC,UAAU,CAAC,CAiFrB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAgB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;IAC5C,QAAQ,EAAE,MAAM,eAAe,CAAC;CACjC;AAED,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,GACxC,OAAO,CAAC,UAAU,CAAC,CAiGrB"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class HttpPollingTransport implements Transport {
4
4
  private baseUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpPollingTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/HttpPollingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAU1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
1
+ {"version":3,"file":"HttpPollingTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/HttpPollingTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,OAAO,EAAE,MAAM;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAU1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  export interface Transport {
3
3
  connect(sessionId?: string): Promise<void>;
4
4
  request<TReq = unknown, TRes = unknown>(msg: Envelope<TReq>): Promise<Envelope<TRes>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EACpC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class UnixSocketTransport implements Transport {
4
4
  private socketPath;
@@ -1 +1 @@
1
- {"version":3,"file":"UnixSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/UnixSocketTransport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,mBAAoB,YAAW,SAAS;IAMvC,OAAO,CAAC,UAAU;IAL9B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAmD;gBAE9C,UAAU,EAAE,MAAM;IAEhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,OAAO,CAAC,MAAM;IAuBR,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAa1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAU/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
1
+ {"version":3,"file":"UnixSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/UnixSocketTransport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,mBAAoB,YAAW,SAAS;IAMvC,OAAO,CAAC,UAAU;IAL9B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAmD;gBAE9C,UAAU,EAAE,MAAM;IAEhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,OAAO,CAAC,MAAM;IAuBR,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAa1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAU/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -1,4 +1,4 @@
1
- import type { Envelope } from "../protocol";
1
+ import type { Envelope } from "@bian-womp/spark-protocol";
2
2
  import type { Transport } from "./Transport";
3
3
  export declare class WebSocketTransport implements Transport {
4
4
  private ws?;
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/WebSocketTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAgB1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
1
+ {"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../../../src/transport/WebSocketTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC1C,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAgB1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IAK/C,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bian-womp/spark-remote",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Spark Remote - Remote execution engine for distributed graph processing",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -48,8 +48,8 @@
48
48
  "typescript": "5.6.3"
49
49
  },
50
50
  "dependencies": {
51
- "@bian-womp/spark-graph": "^0.1.13",
52
- "@bian-womp/spark-protocol": "^0.1.13",
51
+ "@bian-womp/spark-graph": "^0.1.14",
52
+ "@bian-womp/spark-protocol": "^0.1.14",
53
53
  "ws": "^8.18.3"
54
54
  }
55
55
  }