@bian-womp/spark-workbench 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.cjs +235 -11
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/index.d.ts +1 -0
- package/lib/cjs/src/index.d.ts.map +1 -1
- package/lib/cjs/src/misc/DebugEvents.d.ts.map +1 -1
- package/lib/cjs/src/misc/DefaultNode.d.ts.map +1 -1
- package/lib/cjs/src/misc/Inspector.d.ts.map +1 -1
- package/lib/cjs/src/misc/WorkbenchStudio.d.ts +3 -3
- package/lib/cjs/src/misc/WorkbenchStudio.d.ts.map +1 -1
- package/lib/cjs/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
- package/lib/cjs/src/misc/mapping.d.ts +1 -0
- package/lib/cjs/src/misc/mapping.d.ts.map +1 -1
- package/lib/cjs/src/misc/value.d.ts +9 -0
- package/lib/cjs/src/misc/value.d.ts.map +1 -0
- package/lib/cjs/src/runtime/GraphRunner.d.ts +2 -0
- package/lib/cjs/src/runtime/GraphRunner.d.ts.map +1 -1
- package/lib/esm/index.js +233 -13
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/index.d.ts +1 -0
- package/lib/esm/src/index.d.ts.map +1 -1
- package/lib/esm/src/misc/DebugEvents.d.ts.map +1 -1
- package/lib/esm/src/misc/DefaultNode.d.ts.map +1 -1
- package/lib/esm/src/misc/Inspector.d.ts.map +1 -1
- package/lib/esm/src/misc/WorkbenchStudio.d.ts +3 -3
- package/lib/esm/src/misc/WorkbenchStudio.d.ts.map +1 -1
- package/lib/esm/src/misc/context/WorkbenchContext.provider.d.ts.map +1 -1
- package/lib/esm/src/misc/mapping.d.ts +1 -0
- package/lib/esm/src/misc/mapping.d.ts.map +1 -1
- package/lib/esm/src/misc/value.d.ts +9 -0
- package/lib/esm/src/misc/value.d.ts.map +1 -0
- package/lib/esm/src/runtime/GraphRunner.d.ts +2 -0
- package/lib/esm/src/runtime/GraphRunner.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/cjs/src/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugEvents.d.ts","sourceRoot":"","sources":["../../../../src/misc/DebugEvents.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DebugEvents.d.ts","sourceRoot":"","sources":["../../../../src/misc/DebugEvents.tsx"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C,2CAiFA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNode.d.ts","sourceRoot":"","sources":["../../../../src/misc/DefaultNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultNode.d.ts","sourceRoot":"","sources":["../../../../src/misc/DefaultNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAO7D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA8M3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../../../src/misc/Inspector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../../../src/misc/Inspector.tsx"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACxE,2CAqWA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Registry, GraphDefinition } from "@bian-womp/spark-graph";
|
|
2
2
|
import { AbstractWorkbench } from "../core/AbstractWorkbench";
|
|
3
|
-
import { EngineKind, GraphRunner } from "../runtime/GraphRunner";
|
|
3
|
+
import { EngineKind, ExecutionBackendKind, GraphRunner } from "../runtime/GraphRunner";
|
|
4
4
|
type ExampleDescriptor = {
|
|
5
5
|
id: string;
|
|
6
6
|
label: string;
|
|
@@ -32,8 +32,8 @@ export declare function WorkbenchStudio({ engine, onEngineChange, example, onExa
|
|
|
32
32
|
onEngineChange?: (v: string | undefined) => void;
|
|
33
33
|
example?: string;
|
|
34
34
|
onExampleChange?: (v: string | undefined) => void;
|
|
35
|
-
backendKind:
|
|
36
|
-
onBackendKindChange: (v:
|
|
35
|
+
backendKind: ExecutionBackendKind;
|
|
36
|
+
onBackendKindChange: (v: ExecutionBackendKind) => void;
|
|
37
37
|
httpBaseUrl: string;
|
|
38
38
|
onHttpBaseUrlChange: (v: string) => void;
|
|
39
39
|
wsUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,QAAQ,EACR,eAAe,
|
|
1
|
+
{"version":3,"file":"WorkbenchStudio.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchStudio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkbenchContext.provider.d.ts","sourceRoot":"","sources":["../../../../../src/misc/context/WorkbenchContext.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkbenchContext.provider.d.ts","sourceRoot":"","sources":["../../../../../src/misc/context/WorkbenchContext.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAmB,MAAM,2BAA2B,CAAC;AAgBzE,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAkeA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../../../src/misc/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../../../src/misc/mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Registry } from "@bian-womp/spark-graph";
|
|
2
|
+
export declare function resolveOutputDisplay(raw: unknown, declared: string | string[] | undefined): {
|
|
3
|
+
typeId?: string;
|
|
4
|
+
value: unknown;
|
|
5
|
+
};
|
|
6
|
+
export declare function formatDeclaredTypeSignature(declared: string | string[] | undefined): string;
|
|
7
|
+
export declare function preformatValueForDisplay(typeId: string | undefined, value: unknown, registry?: Registry): string | undefined;
|
|
8
|
+
export declare function summarizeDeep(value: unknown, registry?: Registry): unknown;
|
|
9
|
+
//# sourceMappingURL=value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../../src/misc/value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEtE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACtC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAWrC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GACtC,MAAM,CAGR;AAGD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,GAAG,SAAS,CA8BpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAqD1E"}
|
|
@@ -30,6 +30,8 @@ export type ExecutionBackend = {
|
|
|
30
30
|
kind: "remote-ws";
|
|
31
31
|
url: string;
|
|
32
32
|
};
|
|
33
|
+
export type ExecutionBackendKind = ExecutionBackend["kind"];
|
|
34
|
+
export type RemoteExecutionBackendKind = Exclude<ExecutionBackendKind, "local">;
|
|
33
35
|
export declare class GraphRunner {
|
|
34
36
|
private registry;
|
|
35
37
|
private runtime?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,eAAe,EACf,QAAQ,EAQR,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EAGpB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,KAAK,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CACpD,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"GraphRunner.d.ts","sourceRoot":"","sources":["../../../../src/runtime/GraphRunner.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GraphBuilder, StepEngine, HybridEngine, PullEngine, BatchedEngine, PushEngine, createSimpleGraphRegistry, createSimpleGraphDef, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, Registry } from '@bian-womp/spark-graph';
|
|
1
|
+
import { GraphBuilder, StepEngine, HybridEngine, PullEngine, BatchedEngine, PushEngine, isTypedOutput, createSimpleGraphRegistry, createSimpleGraphDef, createAsyncGraphDef, createAsyncGraphRegistry, createProgressGraphDef, createProgressGraphRegistry, createValidationGraphDef, createValidationGraphRegistry, Registry } from '@bian-womp/spark-graph';
|
|
2
2
|
import { RemoteEngine, HttpPollingTransport, WebSocketTransport, RemoteRunner } from '@bian-womp/spark-remote';
|
|
3
3
|
import React, { useCallback, useState, useEffect, useMemo, createContext, useContext, useRef } from 'react';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -437,6 +437,7 @@ class GraphRunner {
|
|
|
437
437
|
rc.valueCache.set(`${e.nodeId}.${e.handle}`, {
|
|
438
438
|
io: e.io,
|
|
439
439
|
value: e.value,
|
|
440
|
+
runtimeTypeId: e.runtimeTypeId,
|
|
440
441
|
});
|
|
441
442
|
this.emit("value", e);
|
|
442
443
|
});
|
|
@@ -806,12 +807,115 @@ function useQueryParamString(key, defaultValue) {
|
|
|
806
807
|
return [val, set];
|
|
807
808
|
}
|
|
808
809
|
|
|
810
|
+
function resolveOutputDisplay(raw, declared) {
|
|
811
|
+
if (isTypedOutput(raw)) {
|
|
812
|
+
return { typeId: String(raw.__spark_type), value: raw.__spark_value };
|
|
813
|
+
}
|
|
814
|
+
let typeId = undefined;
|
|
815
|
+
if (Array.isArray(declared)) {
|
|
816
|
+
typeId = declared.length === 1 ? declared[0] : undefined;
|
|
817
|
+
}
|
|
818
|
+
else if (typeof declared === "string") {
|
|
819
|
+
typeId = declared.includes("|") ? undefined : declared;
|
|
820
|
+
}
|
|
821
|
+
return { typeId, value: raw };
|
|
822
|
+
}
|
|
823
|
+
function formatDeclaredTypeSignature(declared) {
|
|
824
|
+
if (Array.isArray(declared))
|
|
825
|
+
return declared.join(" | ");
|
|
826
|
+
return declared ?? "";
|
|
827
|
+
}
|
|
828
|
+
// Pre-format common structures for display; return undefined to defer to caller
|
|
829
|
+
function preformatValueForDisplay(typeId, value, registry) {
|
|
830
|
+
if (value === undefined || value === null)
|
|
831
|
+
return "";
|
|
832
|
+
// Unwrap typed outputs
|
|
833
|
+
if (isTypedOutput(value)) {
|
|
834
|
+
return preformatValueForDisplay(String(value.__spark_type), value.__spark_value, registry);
|
|
835
|
+
}
|
|
836
|
+
// Enums
|
|
837
|
+
if (typeId && typeId.includes("enum:") && registry) {
|
|
838
|
+
const n = Number(value);
|
|
839
|
+
const label = registry.enums.get(typeId)?.valueToLabel.get(n);
|
|
840
|
+
if (label)
|
|
841
|
+
return label;
|
|
842
|
+
}
|
|
843
|
+
// Use deep summarization for strings, arrays and nested objects to avoid huge HTML payloads
|
|
844
|
+
const summarized = summarizeDeep(value);
|
|
845
|
+
if (typeof summarized === "string")
|
|
846
|
+
return summarized;
|
|
847
|
+
// Resource-like objects with url/title (after summarization)
|
|
848
|
+
if (summarized && typeof summarized === "object") {
|
|
849
|
+
const urlMaybe = summarized.url;
|
|
850
|
+
if (typeof urlMaybe === "string") {
|
|
851
|
+
const title = summarized.title || "";
|
|
852
|
+
const shortUrl = urlMaybe.length > 32 ? urlMaybe.slice(0, 32) + "…" : urlMaybe;
|
|
853
|
+
return title ? `${title} (${shortUrl})` : shortUrl;
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
return undefined;
|
|
857
|
+
}
|
|
858
|
+
function summarizeDeep(value, registry) {
|
|
859
|
+
// Strings: summarize data URLs and trim extremely long strings
|
|
860
|
+
if (typeof value === "string") {
|
|
861
|
+
if (value.startsWith("data:")) {
|
|
862
|
+
try {
|
|
863
|
+
const semi = value.indexOf(";");
|
|
864
|
+
const comma = value.indexOf(",");
|
|
865
|
+
const mime = value.slice(5, semi > 0 ? semi : undefined).toUpperCase();
|
|
866
|
+
const b64 = comma >= 0 ? value.slice(comma + 1) : "";
|
|
867
|
+
const bytes = Math.floor((b64.length * 3) / 4);
|
|
868
|
+
return `${mime} Data (${bytes} bytes)`;
|
|
869
|
+
}
|
|
870
|
+
catch {
|
|
871
|
+
return value.length > 64 ? value.slice(0, 64) + "…" : value;
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
return value.length > 512 ? value.slice(0, 512) + "…" : value;
|
|
875
|
+
}
|
|
876
|
+
// Typed output wrapper
|
|
877
|
+
if (isTypedOutput(value)) {
|
|
878
|
+
return summarizeDeep(value.__spark_value);
|
|
879
|
+
}
|
|
880
|
+
// Arrays
|
|
881
|
+
if (Array.isArray(value)) {
|
|
882
|
+
return value.map((v) => summarizeDeep(v));
|
|
883
|
+
}
|
|
884
|
+
// Objects
|
|
885
|
+
if (value && typeof value === "object") {
|
|
886
|
+
const obj = value;
|
|
887
|
+
const out = {};
|
|
888
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
889
|
+
// Special-case any 'url' field
|
|
890
|
+
if (typeof v === "string" &&
|
|
891
|
+
k.toLowerCase() === "url" &&
|
|
892
|
+
v.startsWith("data:")) {
|
|
893
|
+
try {
|
|
894
|
+
const semi = v.indexOf(";");
|
|
895
|
+
const comma = v.indexOf(",");
|
|
896
|
+
const mime = v.slice(5, semi > 0 ? semi : undefined).toUpperCase();
|
|
897
|
+
const b64 = comma >= 0 ? v.slice(comma + 1) : "";
|
|
898
|
+
const bytes = Math.floor((b64.length * 3) / 4);
|
|
899
|
+
out[k] = `${mime} Data (${bytes} bytes)`;
|
|
900
|
+
continue;
|
|
901
|
+
}
|
|
902
|
+
catch {
|
|
903
|
+
// fallthrough
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
out[k] = summarizeDeep(v);
|
|
907
|
+
}
|
|
908
|
+
return out;
|
|
909
|
+
}
|
|
910
|
+
return value;
|
|
911
|
+
}
|
|
912
|
+
|
|
809
913
|
function toReactFlow(def, positions, registry, opts) {
|
|
810
914
|
const nodeHandleMap = {};
|
|
811
915
|
const nodes = def.nodes.map((n) => {
|
|
812
916
|
const desc = registry.nodes.get(n.typeId);
|
|
813
917
|
const inputHandles = Object.entries(desc?.inputs ?? {}).map(([id, typeId]) => ({ id, typeId }));
|
|
814
|
-
const outputHandles = Object.entries(desc?.outputs ?? {}).map(([id, typeId]) => ({ id, typeId }));
|
|
918
|
+
const outputHandles = Object.entries(desc?.outputs ?? {}).map(([id, typeId]) => ({ id, typeId: formatDeclaredTypeSignature(typeId) }));
|
|
815
919
|
nodeHandleMap[n.nodeId] = {
|
|
816
920
|
inputs: new Set(inputHandles.map((h) => h.id)),
|
|
817
921
|
outputs: new Set(outputHandles.map((h) => h.id)),
|
|
@@ -871,6 +975,7 @@ function toReactFlow(def, positions, registry, opts) {
|
|
|
871
975
|
: undefined,
|
|
872
976
|
animated: isRunning,
|
|
873
977
|
style,
|
|
978
|
+
label: e.typeId || undefined,
|
|
874
979
|
};
|
|
875
980
|
});
|
|
876
981
|
return { nodes, edges };
|
|
@@ -911,6 +1016,41 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
|
|
|
911
1016
|
const [edgeStatus, setEdgeStatus] = useState({});
|
|
912
1017
|
const [events, setEvents] = useState([]);
|
|
913
1018
|
const clearEvents = useCallback(() => setEvents([]), []);
|
|
1019
|
+
// Fallback progress animation: drive progress to 100% over ~2 minutes
|
|
1020
|
+
const FALLBACK_TOTAL_MS = 2 * 60 * 1000;
|
|
1021
|
+
const [fallbackStarts, setFallbackStarts] = useState({});
|
|
1022
|
+
// Track runs that emitted an error so we can keep progress on completion
|
|
1023
|
+
const [errorRuns, setErrorRuns] = useState({});
|
|
1024
|
+
// Periodically advance fallback progress for running nodes without explicit progress
|
|
1025
|
+
useEffect(() => {
|
|
1026
|
+
const interval = setInterval(() => {
|
|
1027
|
+
setNodeStatus((prev) => {
|
|
1028
|
+
let changed = false;
|
|
1029
|
+
const next = { ...prev };
|
|
1030
|
+
const now = Date.now();
|
|
1031
|
+
for (const id of Object.keys(prev)) {
|
|
1032
|
+
const st = prev[id];
|
|
1033
|
+
if (!st)
|
|
1034
|
+
continue;
|
|
1035
|
+
const runs = st.activeRuns ?? 0;
|
|
1036
|
+
const startAt = fallbackStarts[id];
|
|
1037
|
+
if (runs > 0 && startAt) {
|
|
1038
|
+
const cur = Math.max(0, Math.min(1, Number(st.progress) || 0));
|
|
1039
|
+
const elapsed = Math.max(0, now - startAt);
|
|
1040
|
+
// Approach 100% over the target window, but cap below 1 until done
|
|
1041
|
+
const target = Math.max(0, Math.min(0.99, elapsed / FALLBACK_TOTAL_MS));
|
|
1042
|
+
const merged = Math.max(cur, target);
|
|
1043
|
+
if (merged > cur + 0.005 && merged <= 1) {
|
|
1044
|
+
next[id] = { ...st, progress: merged };
|
|
1045
|
+
changed = true;
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
return changed ? next : prev;
|
|
1050
|
+
});
|
|
1051
|
+
}, 200);
|
|
1052
|
+
return () => clearInterval(interval);
|
|
1053
|
+
}, [fallbackStarts]);
|
|
914
1054
|
// Validation
|
|
915
1055
|
const [validation, setValidation] = useState(undefined);
|
|
916
1056
|
// Selection (mirror workbench selectionChanged)
|
|
@@ -968,8 +1108,8 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
|
|
|
968
1108
|
layers.push(layer);
|
|
969
1109
|
q.splice(0, q.length, ...next);
|
|
970
1110
|
}
|
|
971
|
-
const X =
|
|
972
|
-
const Y =
|
|
1111
|
+
const X = 480;
|
|
1112
|
+
const Y = 240;
|
|
973
1113
|
const pos = {};
|
|
974
1114
|
layers.forEach((layer, layerIndex) => {
|
|
975
1115
|
layer.forEach((id, itemIndex) => {
|
|
@@ -1023,6 +1163,13 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
|
|
|
1023
1163
|
lastError: nodeError.err,
|
|
1024
1164
|
},
|
|
1025
1165
|
}));
|
|
1166
|
+
// Mark this runId as errored
|
|
1167
|
+
if (nodeError.runId) {
|
|
1168
|
+
setErrorRuns((prev) => ({
|
|
1169
|
+
...prev,
|
|
1170
|
+
[nodeId]: { ...(prev[nodeId] || {}), [nodeError.runId]: true },
|
|
1171
|
+
}));
|
|
1172
|
+
}
|
|
1026
1173
|
}
|
|
1027
1174
|
return add("runner", "error")(e);
|
|
1028
1175
|
});
|
|
@@ -1055,6 +1202,8 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
|
|
|
1055
1202
|
},
|
|
1056
1203
|
};
|
|
1057
1204
|
});
|
|
1205
|
+
// Start fallback animation window
|
|
1206
|
+
setFallbackStarts((prev) => ({ ...prev, [id]: Date.now() }));
|
|
1058
1207
|
}
|
|
1059
1208
|
else if (s.kind === "node-progress") {
|
|
1060
1209
|
const id = s.nodeId;
|
|
@@ -1068,16 +1217,42 @@ function WorkbenchProvider({ wb, runner, registry, setRegistry, children, }) {
|
|
|
1068
1217
|
}
|
|
1069
1218
|
else if (s.kind === "node-done") {
|
|
1070
1219
|
const id = s.nodeId;
|
|
1220
|
+
const runId = s.runId;
|
|
1071
1221
|
setNodeStatus((prev) => {
|
|
1072
1222
|
const current = prev[id]?.activeRuns ?? 0;
|
|
1223
|
+
const nextActive = current - 1;
|
|
1224
|
+
const hadError = !!(runId && errorRuns[id]?.[runId]);
|
|
1225
|
+
const keepProgress = hadError || nextActive > 0;
|
|
1073
1226
|
return {
|
|
1074
1227
|
...prev,
|
|
1075
1228
|
[id]: {
|
|
1076
1229
|
...prev[id],
|
|
1077
|
-
activeRuns:
|
|
1230
|
+
activeRuns: nextActive,
|
|
1231
|
+
progress: keepProgress ? prev[id]?.progress : 0,
|
|
1078
1232
|
},
|
|
1079
1233
|
};
|
|
1080
1234
|
});
|
|
1235
|
+
// Clear fallback start timestamp if no more active runs
|
|
1236
|
+
setFallbackStarts((prev) => {
|
|
1237
|
+
prev[id];
|
|
1238
|
+
const nextPrev = { ...prev };
|
|
1239
|
+
// If we don't know nextActive here, conservatively clear to stop animation
|
|
1240
|
+
delete nextPrev[id];
|
|
1241
|
+
return nextPrev;
|
|
1242
|
+
});
|
|
1243
|
+
// Clear error flag for this runId
|
|
1244
|
+
if (runId) {
|
|
1245
|
+
setErrorRuns((prev) => {
|
|
1246
|
+
const nodeMap = { ...(prev[id] || {}) };
|
|
1247
|
+
delete nodeMap[runId];
|
|
1248
|
+
const next = { ...prev };
|
|
1249
|
+
if (Object.keys(nodeMap).length === 0)
|
|
1250
|
+
delete next[id];
|
|
1251
|
+
else
|
|
1252
|
+
next[id] = nodeMap;
|
|
1253
|
+
return next;
|
|
1254
|
+
});
|
|
1255
|
+
}
|
|
1081
1256
|
}
|
|
1082
1257
|
else if (s.kind === "edge-start") {
|
|
1083
1258
|
const id = s.edgeId;
|
|
@@ -1304,7 +1479,8 @@ function DebugEvents({ autoScroll, onAutoScrollChange, hideWorkbench, onHideWork
|
|
|
1304
1479
|
}, [rows, autoScroll]);
|
|
1305
1480
|
const renderPayload = (v) => {
|
|
1306
1481
|
try {
|
|
1307
|
-
|
|
1482
|
+
const summarized = summarizeDeep(v);
|
|
1483
|
+
return JSON.stringify(summarized, null, 0);
|
|
1308
1484
|
}
|
|
1309
1485
|
catch {
|
|
1310
1486
|
return String(v);
|
|
@@ -1316,9 +1492,18 @@ function DebugEvents({ autoScroll, onAutoScrollChange, hideWorkbench, onHideWork
|
|
|
1316
1492
|
function Inspector({ debug, autoScroll, hideWorkbench, onAutoScrollChange, onHideWorkbenchChange, toString, toElement, setInput, }) {
|
|
1317
1493
|
const safeToString = (typeId, value) => {
|
|
1318
1494
|
try {
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1495
|
+
if (typeof toString === "function") {
|
|
1496
|
+
// Special-case data URLs for readability
|
|
1497
|
+
if (typeof value === "string" && value.startsWith("data:image/")) {
|
|
1498
|
+
const comma = value.indexOf(",");
|
|
1499
|
+
const b64 = comma >= 0 ? value.slice(comma + 1) : "";
|
|
1500
|
+
const bytes = Math.floor((b64.length * 3) / 4);
|
|
1501
|
+
const fmt = value.slice(5, value.indexOf(";")) || "image";
|
|
1502
|
+
return `${fmt.toUpperCase()} Data (${bytes} bytes)`;
|
|
1503
|
+
}
|
|
1504
|
+
return toString(typeId, value);
|
|
1505
|
+
}
|
|
1506
|
+
return String(value ?? "");
|
|
1322
1507
|
}
|
|
1323
1508
|
catch {
|
|
1324
1509
|
return String(value ?? "");
|
|
@@ -1429,7 +1614,7 @@ function Inspector({ debug, autoScroll, hideWorkbench, onAutoScrollChange, onHid
|
|
|
1429
1614
|
const title = inIssues
|
|
1430
1615
|
.map((v) => `${v.code}: ${v.message}`)
|
|
1431
1616
|
.join("; ");
|
|
1432
|
-
return (jsxs("div", { className: "flex items-center gap-2 mb-1", children: [jsxs("label", { className: "w-
|
|
1617
|
+
return (jsxs("div", { className: "flex items-center gap-2 mb-1", children: [jsxs("label", { className: "w-32", children: [h, jsx("span", { className: "text-gray-500 ml-1 text-[11px]", children: selectedDesc?.inputs?.[h] })] }), hasValidation && (jsx(IssueBadge, { level: hasErr ? "error" : "warning", size: 24, className: "ml-1 w-6 h-6", title: title })), isEnum ? (jsxs("select", { className: "border border-gray-300 rounded px-2 py-1 focus:outline-none focus:ring-2 focus:ring-blue-500 w-full", value: current !== undefined && current !== null
|
|
1433
1618
|
? String(current)
|
|
1434
1619
|
: "", onChange: (e) => {
|
|
1435
1620
|
const val = e.target.value;
|
|
@@ -1445,7 +1630,10 @@ function Inspector({ debug, autoScroll, hideWorkbench, onAutoScrollChange, onHid
|
|
|
1445
1630
|
if (e.key === "Escape")
|
|
1446
1631
|
revert();
|
|
1447
1632
|
}, ...commonProps }))] }, h));
|
|
1448
|
-
}))] }), jsxs("div", { children: [jsx("div", { className: "font-semibold mb-1", children: "Outputs" }), outputHandles.length === 0 ? (jsx("div", { className: "text-gray-500", children: "No outputs" })) : (outputHandles.map((h) => (jsxs("div", { className: "flex items-center gap-2 mb-1", children: [jsx("label", { className: "w-20", children: h }), jsx("div", { className: "flex-1", children:
|
|
1633
|
+
}))] }), jsxs("div", { children: [jsx("div", { className: "font-semibold mb-1", children: "Outputs" }), outputHandles.length === 0 ? (jsx("div", { className: "text-gray-500", children: "No outputs" })) : (outputHandles.map((h) => (jsxs("div", { className: "flex items-center gap-2 mb-1", children: [jsx("label", { className: "w-20", children: h }), jsx("div", { className: "flex-1", children: (() => {
|
|
1634
|
+
const { typeId, value } = resolveOutputDisplay(nodeOutputs[h], selectedDesc?.outputs?.[h]);
|
|
1635
|
+
return toElement(typeId, value);
|
|
1636
|
+
})() }), (() => {
|
|
1449
1637
|
const outIssues = selectedNodeHandleValidation.outputs.filter((m) => m.handle === h);
|
|
1450
1638
|
if (outIssues.length === 0)
|
|
1451
1639
|
return null;
|
|
@@ -1512,7 +1700,8 @@ const DefaultNode = React.memo(function DefaultNode({ id, data, selected, isConn
|
|
|
1512
1700
|
const title = vIssues
|
|
1513
1701
|
.map((v) => `${v.code}: ${v.message}`)
|
|
1514
1702
|
.join("; ");
|
|
1515
|
-
|
|
1703
|
+
const resolved = resolveOutputDisplay(outputValues?.[entry.id], entry.typeId);
|
|
1704
|
+
return (jsxs(React.Fragment, { children: [jsx(Handle, { id: entry.id, type: "source", position: Position.Right, isConnectable: isConnectable, className: cx("!w-3 !h-3 !bg-white !dark:bg-stone-900 !border-gray-500 dark:!border-gray-400 !rounded-none", hasAny && (hasErr ? "!border-red-500" : "!border-amber-500")), style: { right: -5, top: topFor(i) } }), jsxs("div", { className: "absolute right-2 text-[11px] text-gray-700 dark:text-gray-300 pointer-events-none", style: { top: topFor(i) - 8, textAlign: "right" }, title: `${entry.id}: ${entry.typeId}`, children: [entry.id, resolved.typeId && (jsxs("span", { className: "ml-1 opacity-60", children: ["(", resolved.typeId, ")"] })), hasAny && (jsx(IssueBadge, { level: hasErr ? "error" : "warning", size: 12, className: "ml-1", title: title })), showValues && (jsx("span", { className: "ml-1 opacity-60", children: toString(resolved.typeId, resolved.value) }))] })] }, `out-${entry.id}`));
|
|
1516
1705
|
})] }));
|
|
1517
1706
|
});
|
|
1518
1707
|
DefaultNode.displayName = "DefaultNode";
|
|
@@ -2008,6 +2197,37 @@ function WorkbenchStudioCanvas({ setRegistry, autoScroll, onAutoScrollChange, ex
|
|
|
2008
2197
|
const baseToString = useCallback((typeId, value) => {
|
|
2009
2198
|
if (value === undefined || value === null)
|
|
2010
2199
|
return "";
|
|
2200
|
+
// Normalize typed wrapper
|
|
2201
|
+
if (isTypedOutput(value)) {
|
|
2202
|
+
return baseToString(String(value.__spark_type), value.__spark_value);
|
|
2203
|
+
}
|
|
2204
|
+
const pre = preformatValueForDisplay(typeId, value, registry);
|
|
2205
|
+
if (pre !== undefined)
|
|
2206
|
+
return pre;
|
|
2207
|
+
if (typeof value === "object" &&
|
|
2208
|
+
value !== null &&
|
|
2209
|
+
typeof value.url === "string") {
|
|
2210
|
+
const title = value.title || "";
|
|
2211
|
+
const url = String(value.url || "");
|
|
2212
|
+
if (url.startsWith("data:image/")) {
|
|
2213
|
+
try {
|
|
2214
|
+
const semi = url.indexOf(";");
|
|
2215
|
+
const comma = url.indexOf(",");
|
|
2216
|
+
const mime = url
|
|
2217
|
+
.slice(5, semi > 0 ? semi : undefined)
|
|
2218
|
+
.toUpperCase();
|
|
2219
|
+
const b64 = comma >= 0 ? url.slice(comma + 1) : "";
|
|
2220
|
+
const bytes = Math.floor((b64.length * 3) / 4);
|
|
2221
|
+
return title
|
|
2222
|
+
? `${title} (${mime} ${bytes} bytes)`
|
|
2223
|
+
: `${mime} Data (${bytes} bytes)`;
|
|
2224
|
+
}
|
|
2225
|
+
catch {
|
|
2226
|
+
return title || url.slice(0, 32) + (url.length > 32 ? "…" : "");
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
return title || url.slice(0, 32) + (url.length > 32 ? "…" : "");
|
|
2230
|
+
}
|
|
2011
2231
|
if (typeId && typeId.includes("enum:")) {
|
|
2012
2232
|
const n = Number(value);
|
|
2013
2233
|
const label = registry.enums.get(typeId)?.valueToLabel.get(n);
|
|
@@ -2095,5 +2315,5 @@ function WorkbenchStudio({ engine, onEngineChange, example, onExampleChange, bac
|
|
|
2095
2315
|
}, httpBaseUrl: httpBaseUrl, onHttpBaseUrlChange: onHttpBaseUrlChange, wsUrl: wsUrl, onWsUrlChange: onWsUrlChange, debug: debug, onDebugChange: onDebugChange, showValues: showValues, onShowValuesChange: onShowValuesChange, hideWorkbench: hideWorkbench, onHideWorkbenchChange: onHideWorkbenchChange, overrides: overrides }) }));
|
|
2096
2316
|
}
|
|
2097
2317
|
|
|
2098
|
-
export { AbstractWorkbench, CLIWorkbench, DefaultUIExtensionRegistry, GraphRunner, InMemoryWorkbench, Inspector, WorkbenchCanvas, WorkbenchContext, WorkbenchProvider, WorkbenchStudio, getNodeBorderClassNames, toReactFlow, useQueryParamBoolean, useQueryParamString, useWorkbenchBridge, useWorkbenchContext, useWorkbenchGraphTick, useWorkbenchGraphUiTick, useWorkbenchVersionTick };
|
|
2318
|
+
export { AbstractWorkbench, CLIWorkbench, DefaultUIExtensionRegistry, GraphRunner, InMemoryWorkbench, Inspector, WorkbenchCanvas, WorkbenchContext, WorkbenchProvider, WorkbenchStudio, formatDeclaredTypeSignature, getNodeBorderClassNames, preformatValueForDisplay, resolveOutputDisplay, summarizeDeep, toReactFlow, useQueryParamBoolean, useQueryParamString, useWorkbenchBridge, useWorkbenchContext, useWorkbenchGraphTick, useWorkbenchGraphUiTick, useWorkbenchVersionTick };
|
|
2099
2319
|
//# sourceMappingURL=index.js.map
|