@world-engines/project-host 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +46 -0
- package/assets/gui/WELogo-title.svg +11 -0
- package/assets/gui/app.js +1326 -0
- package/assets/gui/index.html +118 -0
- package/assets/gui/local-preview-asset-urls.js +61 -0
- package/assets/gui/local-preview-bridge.js +393 -0
- package/assets/gui/spatial-template-panel.js +233 -0
- package/assets/gui/styles.css +115 -0
- package/assets/gui/terrain-render.js +120 -0
- package/assets/gui/workspace-status.css +17 -0
- package/assets/gui/workspace-status.js +255 -0
- package/assets/gui/world-map-globe.js +187 -0
- package/assets/gui/world-map-worker.js +62 -0
- package/assets/gui/world-map.css +30 -0
- package/assets/gui/world-map.js +2466 -0
- package/dist/account-model-proxy.d.ts +21 -0
- package/dist/account-model-proxy.js +470 -0
- package/dist/authoring-browser-runtime.d.ts +7 -0
- package/dist/authoring-browser-runtime.js +110 -0
- package/dist/authoring-ingestion.d.ts +38 -0
- package/dist/authoring-ingestion.js +410 -0
- package/dist/authoring-model-connection.d.ts +166 -0
- package/dist/authoring-model-connection.js +757 -0
- package/dist/chinese-lexical.d.ts +152 -0
- package/dist/chinese-lexical.js +555 -0
- package/dist/chromium-preview-browser-driver.d.ts +43 -0
- package/dist/chromium-preview-browser-driver.js +575 -0
- package/dist/cli/download.d.ts +12 -0
- package/dist/cli/download.js +50 -0
- package/dist/cli/dump.d.ts +32 -0
- package/dist/cli/dump.js +91 -0
- package/dist/cli/ingest.d.ts +49 -0
- package/dist/cli/ingest.js +225 -0
- package/dist/cli/review.d.ts +10 -0
- package/dist/cli/review.js +44 -0
- package/dist/cli/upload.d.ts +57 -0
- package/dist/cli/upload.js +112 -0
- package/dist/cli-command.d.ts +60 -0
- package/dist/cli-command.js +613 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +182 -0
- package/dist/desktop-authoring-runtime.d.ts +88 -0
- package/dist/desktop-authoring-runtime.js +1602 -0
- package/dist/desktop-sidecar.d.ts +11 -0
- package/dist/desktop-sidecar.js +143 -0
- package/dist/document-dump.d.ts +113 -0
- package/dist/document-dump.js +431 -0
- package/dist/document-graph-extractor.d.ts +125 -0
- package/dist/document-graph-extractor.js +588 -0
- package/dist/document-ingestion-journal.d.ts +68 -0
- package/dist/document-ingestion-journal.js +471 -0
- package/dist/document-ingestion.d.ts +183 -0
- package/dist/document-ingestion.js +976 -0
- package/dist/document-query-path-proof.d.ts +30 -0
- package/dist/document-query-path-proof.js +34 -0
- package/dist/document-query-path-renderer.d.ts +50 -0
- package/dist/document-query-path-renderer.js +75 -0
- package/dist/document-query-proof-paths.d.ts +22 -0
- package/dist/document-query-proof-paths.js +71 -0
- package/dist/document-query.d.ts +97 -0
- package/dist/document-query.js +1106 -0
- package/dist/document-relation-role.d.ts +14 -0
- package/dist/document-relation-role.js +86 -0
- package/dist/document-source.d.ts +107 -0
- package/dist/document-source.js +255 -0
- package/dist/embedding-cache.d.ts +35 -0
- package/dist/embedding-cache.js +317 -0
- package/dist/frozen-review-local-pipeline.d.ts +88 -0
- package/dist/frozen-review-local-pipeline.js +609 -0
- package/dist/frozen-review-source-capture.d.ts +15 -0
- package/dist/frozen-review-source-capture.js +551 -0
- package/dist/frozen-review-wasm-encryptor.d.ts +16 -0
- package/dist/frozen-review-wasm-encryptor.js +72 -0
- package/dist/frozen-review.d.ts +131 -0
- package/dist/frozen-review.js +802 -0
- package/dist/graph-traversal.d.ts +23 -0
- package/dist/graph-traversal.js +100 -0
- package/dist/gui/graph-layout-worker.js +1 -0
- package/dist/gui/graph-layout.wasm +0 -0
- package/dist/gui/graph.css +1 -0
- package/dist/gui/graph.js +76 -0
- package/dist/gui/plane-generation.js +112 -0
- package/dist/gui/plane-generator.js +310 -0
- package/dist/gui/plane-generator_bg.wasm +0 -0
- package/dist/gui/procedural-city.js +595 -0
- package/dist/gui/road-generation.js +129 -0
- package/dist/gui/road-parcels.js +1584 -0
- package/dist/gui/score.css +1 -0
- package/dist/gui/score.js +54 -0
- package/dist/gui/spatial-runtime.js +1231 -0
- package/dist/gui/spatial-templates.js +200 -0
- package/dist/gui/trigger.css +1 -0
- package/dist/gui/trigger.js +142 -0
- package/dist/harness-callback-transport.d.ts +17 -0
- package/dist/harness-callback-transport.js +128 -0
- package/dist/harness-document-ingestion.d.ts +77 -0
- package/dist/harness-document-ingestion.js +343 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +43 -0
- package/dist/ingestion-source-reconciliation.d.ts +88 -0
- package/dist/ingestion-source-reconciliation.js +253 -0
- package/dist/ladybug-runtime.d.ts +117 -0
- package/dist/ladybug-runtime.js +886 -0
- package/dist/local-account-embedding.d.ts +34 -0
- package/dist/local-account-embedding.js +294 -0
- package/dist/local-gallery.d.ts +35 -0
- package/dist/local-gallery.js +227 -0
- package/dist/local-gui-auth.d.ts +96 -0
- package/dist/local-gui-auth.js +703 -0
- package/dist/local-gui-contract.d.ts +53 -0
- package/dist/local-gui-contract.js +5 -0
- package/dist/local-gui-image-assets.d.ts +17 -0
- package/dist/local-gui-image-assets.js +96 -0
- package/dist/local-gui-preview-client.d.ts +3 -0
- package/dist/local-gui-preview-client.js +111 -0
- package/dist/local-gui-score.d.ts +72 -0
- package/dist/local-gui-score.js +184 -0
- package/dist/local-gui-server.d.ts +10 -0
- package/dist/local-gui-server.js +987 -0
- package/dist/local-gui-version.d.ts +17 -0
- package/dist/local-gui-version.js +147 -0
- package/dist/local-gui-workspace.d.ts +14 -0
- package/dist/local-gui-workspace.js +171 -0
- package/dist/local-model-settings.d.ts +28 -0
- package/dist/local-model-settings.js +124 -0
- package/dist/local-preview-assets.d.ts +28 -0
- package/dist/local-preview-assets.js +124 -0
- package/dist/local-preview-bound-resources.d.ts +12 -0
- package/dist/local-preview-bound-resources.js +80 -0
- package/dist/local-preview-message-store.d.ts +63 -0
- package/dist/local-preview-message-store.js +214 -0
- package/dist/local-preview-player-read-models.d.ts +47 -0
- package/dist/local-preview-player-read-models.js +90 -0
- package/dist/local-preview-projections.d.ts +61 -0
- package/dist/local-preview-projections.js +117 -0
- package/dist/local-preview-runtime.d.ts +105 -0
- package/dist/local-preview-runtime.js +553 -0
- package/dist/local-preview-session.d.ts +73 -0
- package/dist/local-preview-session.js +395 -0
- package/dist/local-preview-source.d.ts +40 -0
- package/dist/local-preview-source.js +192 -0
- package/dist/local-preview-view-events.d.ts +101 -0
- package/dist/local-preview-view-events.js +179 -0
- package/dist/local-preview-view-state-sqlite.d.ts +24 -0
- package/dist/local-preview-view-state-sqlite.js +263 -0
- package/dist/local-preview-view-state.d.ts +93 -0
- package/dist/local-preview-view-state.js +108 -0
- package/dist/local-preview-vite-config.d.ts +6 -0
- package/dist/local-preview-vite-config.js +122 -0
- package/dist/local-preview-world-effects.d.ts +9 -0
- package/dist/local-preview-world-effects.js +55 -0
- package/dist/local-preview-worldline-store.d.ts +47 -0
- package/dist/local-preview-worldline-store.js +282 -0
- package/dist/local-preview-worldlines.d.ts +95 -0
- package/dist/local-preview-worldlines.js +136 -0
- package/dist/mcp-async-dispatcher.d.ts +3 -0
- package/dist/mcp-async-dispatcher.js +129 -0
- package/dist/mcp-line-queue.d.ts +14 -0
- package/dist/mcp-line-queue.js +184 -0
- package/dist/mcp-pipe-internal.d.ts +6 -0
- package/dist/mcp-pipe-internal.js +151 -0
- package/dist/mcp-pipe-response.d.ts +14 -0
- package/dist/mcp-pipe-response.js +50 -0
- package/dist/mcp-stdio-response.d.ts +12 -0
- package/dist/mcp-stdio-response.js +27 -0
- package/dist/mcp.d.ts +27 -0
- package/dist/mcp.js +194 -0
- package/dist/prepared-embedding-cache.d.ts +38 -0
- package/dist/prepared-embedding-cache.js +238 -0
- package/dist/preview-browser-adapter.d.ts +53 -0
- package/dist/preview-browser-adapter.js +171 -0
- package/dist/preview-runtime.d.ts +67 -0
- package/dist/preview-runtime.js +460 -0
- package/dist/project-auth-transport.d.ts +27 -0
- package/dist/project-auth-transport.js +121 -0
- package/dist/project-auth.d.ts +51 -0
- package/dist/project-auth.js +108 -0
- package/dist/project-git-capture-recovery.d.ts +16 -0
- package/dist/project-git-capture-recovery.js +347 -0
- package/dist/project-git-cli.d.ts +5 -0
- package/dist/project-git-cli.js +40 -0
- package/dist/project-git-scenario-source.d.ts +10 -0
- package/dist/project-git-scenario-source.js +240 -0
- package/dist/project-git-view-source.d.ts +13 -0
- package/dist/project-git-view-source.js +134 -0
- package/dist/project-git.d.ts +97 -0
- package/dist/project-git.js +656 -0
- package/dist/project-host.d.ts +59 -0
- package/dist/project-host.js +471 -0
- package/dist/project-writer-lease.d.ts +18 -0
- package/dist/project-writer-lease.js +430 -0
- package/dist/public-error.d.ts +7 -0
- package/dist/public-error.js +61 -0
- package/dist/retrieval-benchmark.d.ts +46 -0
- package/dist/retrieval-benchmark.js +58 -0
- package/dist/safe-project-path.d.ts +8 -0
- package/dist/safe-project-path.js +93 -0
- package/dist/scenario-writer.d.ts +32 -0
- package/dist/scenario-writer.js +191 -0
- package/dist/transfer/download.d.ts +159 -0
- package/dist/transfer/download.js +598 -0
- package/dist/transfer/transport.d.ts +26 -0
- package/dist/transfer/transport.js +1 -0
- package/dist/transfer/upload.d.ts +162 -0
- package/dist/transfer/upload.js +354 -0
- package/dist/transfer-types.d.ts +95 -0
- package/dist/transfer-types.js +1 -0
- package/dist/transfer.d.ts +18 -0
- package/dist/transfer.js +273 -0
- package/dist/trigger-runtime.d.ts +121 -0
- package/dist/trigger-runtime.js +153 -0
- package/dist/vendor/wasm-core/asset-hashes.json +5 -0
- package/dist/vendor/wasm-core/wasm_core.d.ts +490 -0
- package/dist/vendor/wasm-core/wasm_core.js +1 -0
- package/dist/vendor/wasm-core/wasm_core_bg.wasm +0 -0
- package/dist/view-watcher.d.ts +9 -0
- package/dist/view-watcher.js +34 -0
- package/package.json +110 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface GraphTraversalEdge {
|
|
2
|
+
readonly src: string;
|
|
3
|
+
readonly dst: string;
|
|
4
|
+
readonly kind: string;
|
|
5
|
+
}
|
|
6
|
+
export interface GraphTraversalPath<Edge extends GraphTraversalEdge = GraphTraversalEdge> {
|
|
7
|
+
readonly nodeIds: readonly string[];
|
|
8
|
+
readonly edges: readonly Edge[];
|
|
9
|
+
}
|
|
10
|
+
export interface GraphTraversalResult<Edge extends GraphTraversalEdge = GraphTraversalEdge> {
|
|
11
|
+
readonly paths: readonly GraphTraversalPath<Edge>[];
|
|
12
|
+
readonly truncated: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 从任意命中锚点向路径两端扩展;逐层保留覆盖不同 seed/node/physical edge 的候选,
|
|
16
|
+
* 防止高出度节点的一跳旁支耗尽多跳桥接预算。函数不解释 predicate 或 qualifiers。
|
|
17
|
+
*/
|
|
18
|
+
export declare function enumerateDiverseGraphPaths<Edge extends GraphTraversalEdge>(options: Readonly<{
|
|
19
|
+
edges: readonly Edge[];
|
|
20
|
+
seeds: ReadonlySet<string>;
|
|
21
|
+
maximumDepth: number;
|
|
22
|
+
limit: number;
|
|
23
|
+
}>): GraphTraversalResult<Edge>;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function physicalEdgeKey(edge) {
|
|
2
|
+
return JSON.stringify([edge.src, edge.dst, edge.kind]);
|
|
3
|
+
}
|
|
4
|
+
function canonicalPathKey(path) {
|
|
5
|
+
const forward = JSON.stringify([path.nodeIds, path.edges.map(physicalEdgeKey)]);
|
|
6
|
+
const reverse = JSON.stringify([[...path.nodeIds].reverse(), [...path.edges].reverse().map(physicalEdgeKey)]);
|
|
7
|
+
return forward < reverse ? forward : reverse;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 从任意命中锚点向路径两端扩展;逐层保留覆盖不同 seed/node/physical edge 的候选,
|
|
11
|
+
* 防止高出度节点的一跳旁支耗尽多跳桥接预算。函数不解释 predicate 或 qualifiers。
|
|
12
|
+
*/
|
|
13
|
+
export function enumerateDiverseGraphPaths(options) {
|
|
14
|
+
const adjacency = new Map();
|
|
15
|
+
for (const edge of options.edges)
|
|
16
|
+
for (const id of new Set([edge.src, edge.dst])) {
|
|
17
|
+
adjacency.set(id, [...(adjacency.get(id) ?? []), edge]);
|
|
18
|
+
}
|
|
19
|
+
const diverse = (paths) => {
|
|
20
|
+
const selected = [];
|
|
21
|
+
const coveredSeeds = new Set();
|
|
22
|
+
const coveredNodes = new Set();
|
|
23
|
+
const coveredEdges = new Set();
|
|
24
|
+
const remaining = new Set(paths);
|
|
25
|
+
while (selected.length < options.limit && remaining.size > 0) {
|
|
26
|
+
let best;
|
|
27
|
+
let bestScore = [];
|
|
28
|
+
for (const path of remaining) {
|
|
29
|
+
const score = [
|
|
30
|
+
path.nodeIds.filter((id) => options.seeds.has(id) && !coveredSeeds.has(id)).length,
|
|
31
|
+
path.nodeIds.filter((id) => !coveredNodes.has(id)).length,
|
|
32
|
+
path.edges.filter((edge) => !coveredEdges.has(physicalEdgeKey(edge))).length,
|
|
33
|
+
path.edges.length,
|
|
34
|
+
];
|
|
35
|
+
const difference = score.findIndex((value, index) => value !== bestScore[index]);
|
|
36
|
+
if (best === undefined || (difference >= 0 && score[difference] > bestScore[difference])) {
|
|
37
|
+
best = path;
|
|
38
|
+
bestScore = score;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (best === undefined)
|
|
42
|
+
break;
|
|
43
|
+
remaining.delete(best);
|
|
44
|
+
selected.push(best);
|
|
45
|
+
for (const id of best.nodeIds) {
|
|
46
|
+
coveredNodes.add(id);
|
|
47
|
+
if (options.seeds.has(id))
|
|
48
|
+
coveredSeeds.add(id);
|
|
49
|
+
}
|
|
50
|
+
for (const edge of best.edges)
|
|
51
|
+
coveredEdges.add(physicalEdgeKey(edge));
|
|
52
|
+
}
|
|
53
|
+
return selected;
|
|
54
|
+
};
|
|
55
|
+
let frontier = [...options.seeds].map((id) => ({ nodeIds: [id], edges: [] }));
|
|
56
|
+
const levels = [];
|
|
57
|
+
let truncated = false;
|
|
58
|
+
for (let depth = 1; depth <= options.maximumDepth && frontier.length > 0; depth += 1) {
|
|
59
|
+
const expanded = new Map();
|
|
60
|
+
for (const path of frontier)
|
|
61
|
+
for (const prepend of [false, true]) {
|
|
62
|
+
const end = prepend ? path.nodeIds[0] : path.nodeIds.at(-1);
|
|
63
|
+
for (const edge of adjacency.get(end) ?? []) {
|
|
64
|
+
const next = edge.src === end ? edge.dst : edge.src;
|
|
65
|
+
if (path.nodeIds.includes(next))
|
|
66
|
+
continue;
|
|
67
|
+
const candidate = prepend
|
|
68
|
+
? { nodeIds: [next, ...path.nodeIds], edges: [edge, ...path.edges] }
|
|
69
|
+
: { nodeIds: [...path.nodeIds, next], edges: [...path.edges, edge] };
|
|
70
|
+
const key = canonicalPathKey(candidate);
|
|
71
|
+
if (!expanded.has(key))
|
|
72
|
+
expanded.set(key, candidate);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (expanded.size > options.limit)
|
|
76
|
+
truncated = true;
|
|
77
|
+
frontier = diverse([...expanded.values()]);
|
|
78
|
+
levels.push(frontier);
|
|
79
|
+
}
|
|
80
|
+
const paths = [];
|
|
81
|
+
for (let index = 0; paths.length < options.limit; index += 1) {
|
|
82
|
+
let added = false;
|
|
83
|
+
for (const level of levels) {
|
|
84
|
+
const path = level[index];
|
|
85
|
+
if (path === undefined)
|
|
86
|
+
continue;
|
|
87
|
+
if (paths.length >= options.limit) {
|
|
88
|
+
truncated = true;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
paths.push(path);
|
|
92
|
+
added = true;
|
|
93
|
+
}
|
|
94
|
+
if (!added)
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
if (levels.reduce((sum, level) => sum + level.length, 0) > paths.length)
|
|
98
|
+
truncated = true;
|
|
99
|
+
return Object.freeze({ paths: Object.freeze(paths), truncated });
|
|
100
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var I=n=>{let e=[],o=new Map,s=new Float64Array(n.nodes.length*3);n.nodes.forEach((t,c)=>{if(t.id.length===0||o.has(t.id))throw new TypeError(`\u56FE\u5E03\u5C40\u8282\u70B9 id \u5FC5\u987B\u975E\u7A7A\u4E14\u552F\u4E00: ${t.id}`);if(!Number.isFinite(t.x)||!Number.isFinite(t.y))throw new TypeError(`\u56FE\u5E03\u5C40\u8282\u70B9\u5750\u6807\u5FC5\u987B\u662F\u6709\u9650\u6570: ${t.id}`);if(!Number.isFinite(t.radius)||t.radius<=0)throw new TypeError(`\u56FE\u5E03\u5C40\u8282\u70B9\u534A\u5F84\u5FC5\u987B\u662F\u6B63\u6709\u9650\u6570: ${t.id}`);e.push(t.id),o.set(t.id,c);let f=c*3;s[f]=t.x,s[f+1]=t.y,s[f+2]=t.radius});let i=new Uint32Array(n.edges.length*2);n.edges.forEach((t,c)=>{let f=o.get(t.from),u=o.get(t.to);if(f===void 0||u===void 0)throw new TypeError(`\u56FE\u5E03\u5C40\u5173\u7CFB\u5F15\u7528\u4E86\u672A\u77E5\u8282\u70B9: ${t.from} -> ${t.to}`);i[c*2]=f,i[c*2+1]=u});let a=-1;if(n.fixedNodeId!==void 0&&(a=o.get(n.fixedNodeId)??-1,a<0))throw new TypeError(`\u56FE\u5E03\u5C40 fixedNodeId \u5F15\u7528\u4E86\u672A\u77E5\u8282\u70B9: ${n.fixedNodeId}`);return{nodeIds:e,nodes:s,edges:i,fixedIndex:a}},_=(n,e)=>{if(e.length!==n.length*2)throw new Error("WASM \u56FE\u5E03\u5C40\u8FD4\u56DE\u7684 position \u957F\u5EA6\u4E0D\u5339\u914D");let o={};return n.forEach((s,i)=>{let a=e[i*2],t=e[i*2+1];if(a===void 0||t===void 0||!Number.isFinite(a)||!Number.isFinite(t))throw new Error(`WASM \u56FE\u5E03\u5C40\u8FD4\u56DE\u4E86\u975E\u6CD5\u5750\u6807: ${s}`);o[s]={x:a,y:t}}),o};var F=1464158028,k=1,p=24,h=24,S=8,M=4294967295,W=n=>{let e=n;if(!(e.memory instanceof WebAssembly.Memory)||typeof e.graph_layout_alloc!="function"||typeof e.graph_layout_dealloc!="function"||typeof e.graph_layout_solve!="function")throw new Error("\u56FE\u5E03\u5C40 WASM \u5BFC\u51FA\u4E0D\u5B8C\u6574");return e},m=class{#e;constructor(e){this.#e=W(e)}solvePacked(e){let o=e.nodes.length/3,s=e.edges.length/2;if(!Number.isInteger(o)||!Number.isInteger(s))throw new TypeError("\u56FE\u5E03\u5C40 packed request \u957F\u5EA6\u975E\u6CD5");if(o===0)return new Float64Array;let i=p+o*h+s*S,a=this.#e.graph_layout_alloc(i);if(a===0)throw new Error("\u56FE\u5E03\u5C40 WASM \u5185\u5B58\u5206\u914D\u5931\u8D25");try{let t=new DataView(this.#e.memory.buffer,a,i);t.setUint32(0,F,!0),t.setUint32(4,k,!0),t.setUint32(8,o,!0),t.setUint32(12,s,!0),t.setUint32(16,e.fixedIndex<0?M:e.fixedIndex,!0),t.setUint32(20,0,!0);for(let r=0;r<o;r+=1){let d=r*3,g=p+r*h;t.setFloat64(g,e.nodes[d],!0),t.setFloat64(g+8,e.nodes[d+1],!0),t.setFloat64(g+16,e.nodes[d+2],!0)}let c=p+o*h;for(let r=0;r<e.edges.length;r+=1)t.setUint32(c+r*4,e.edges[r],!0);let f=this.#e.graph_layout_solve(a,i);if(f!==0)throw new Error(`\u56FE\u5E03\u5C40 WASM \u6C42\u89E3\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${f}`);let u=new DataView(this.#e.memory.buffer,a,i),y=new Float64Array(o*2);for(let r=0;r<o;r+=1){let d=p+r*h;y[r*2]=u.getFloat64(d,!0),y[r*2+1]=u.getFloat64(d+8,!0)}return y}finally{this.#e.graph_layout_dealloc(a,i)}}solve(e){let o=I(e);return _(o.nodeIds,this.solvePacked(o))}},v=async n=>{let e=await WebAssembly.instantiate(n,{}),o=e instanceof WebAssembly.Instance?e:e.instance;return new m(o.exports)},A=async()=>{let n=new URL("./graph-layout.wasm",import.meta.url),e=await fetch(n);if(!e.ok)throw new Error(`\u65E0\u6CD5\u52A0\u8F7D\u56FE\u5E03\u5C40 WASM (${e.status})`);return v(await e.arrayBuffer())};var x=self,N,l=0,w,E=!1,b=()=>{E||(E=!0,setTimeout(()=>{L()},0))},L=async()=>{E=!1;let n=w;if(w=void 0,n!==void 0)try{N??=A();let e=await N;if(n.generation!==l){b();return}let o={nodeIds:[],nodes:new Float64Array(n.nodes),edges:new Uint32Array(n.edges),fixedIndex:n.fixedIndex},s=e.solvePacked(o);if(n.generation===l){let i={kind:"result",generation:n.generation,positions:s.buffer};x.postMessage(i,[s.buffer])}}catch(e){if(n.generation===l){let o={kind:"error",generation:n.generation,message:e instanceof Error?e.message:String(e)};x.postMessage(o)}}finally{w!==void 0&&b()}};x.onmessage=n=>{let e=n.data;e.kind!=="solve"||!Number.isSafeInteger(e.generation)||(l=Math.max(l,e.generation),w=e,b())};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--we-graph-bg: #161516;--we-graph-accent: #32d551;--we-graph-text: #e7e7e7;--we-graph-muted: #8c8c8c;--we-graph-line: #707070;--we-graph-line-soft: #454545;--we-graph-panel: #202020;--we-graph-danger: #ff453a;--we-graph-pending: #64d2ff;--we-graph-search: #ffd60a}.shared-graph-canvas{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:28rem;overflow:hidden;color:var(--we-graph-text);background:var(--we-graph-bg)}.shared-graph-canvas__toolbar{position:absolute;inset-block-start:.75rem;inset-inline:.75rem;z-index:5;display:flex;justify-content:space-between;gap:.75rem;pointer-events:none;color:var(--we-graph-muted);font:500 .6875rem/1.25 system-ui,sans-serif}.shared-graph-canvas__error{position:absolute;inset-block-start:2.25rem;inset-inline-start:50%;z-index:8;max-width:min(32rem,calc(100% - 2rem));padding:.4rem .65rem;border:1px solid var(--we-graph-danger);border-radius:.4rem;background:var(--we-graph-bg);color:var(--we-graph-danger);font:500 .75rem/1.3 system-ui,sans-serif;transform:translate(-50%);pointer-events:none}.shared-graph-context-menu{position:fixed;z-index:40;display:grid;width:11.5rem;padding:.35rem;border:1px solid var(--we-graph-line-soft);border-radius:.45rem;background:var(--we-graph-panel);box-shadow:0 .5rem 1.4rem #00000061}.shared-graph-context-menu button{min-height:2.125rem;padding:.35rem .6rem;border:0;border-radius:.3rem;background:transparent;color:var(--we-graph-text);font:500 .75rem/1.25 system-ui,sans-serif;text-align:start;cursor:pointer}.shared-graph-context-menu button:hover,.shared-graph-context-menu button:focus-visible{outline:0;background:color-mix(in srgb,var(--we-graph-accent) 16%,transparent);color:var(--we-graph-accent)}.shared-graph-context-menu button.is-danger{color:var(--we-graph-danger)}.shared-graph-canvas__flow,.shared-graph-canvas__flow .react-flow{width:100%;height:100%;min-height:inherit;background:var(--we-graph-bg)}.shared-graph-canvas__flow .react-flow__background-pattern.dots{fill:var(--we-graph-line-soft)}.shared-graph-mask-defs{position:absolute;width:0;height:0;pointer-events:none}.shared-graph-defs{position:absolute;width:0;height:0}.shared-graph-defs marker path{stroke:var(--we-graph-line);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.shared-graph-group{position:relative;width:100%;height:100%;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-line)) 66%,transparent);border-radius:.35rem;background:color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-line)) 14%,transparent);color:color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-text)) 60%,var(--we-graph-text));cursor:grab;transition:background-color .1s ease,border-color .12s ease,box-shadow .12s ease}.shared-graph-group:hover{background:color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-line)) 20%,transparent)}.shared-graph-group.is-selected{border-color:var(--we-graph-accent);background:color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-line)) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--we-graph-accent) 38%,transparent)}.shared-graph-group.is-drop-target{border-color:var(--we-graph-group-color, var(--we-graph-accent));background:color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-accent)) 38%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--we-graph-group-color, var(--we-graph-accent)) 62%,transparent)}.shared-graph-group.is-draft{border-style:dashed;pointer-events:none}.shared-graph-group.is-blocked{border-color:var(--we-graph-danger);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--we-graph-danger) 38%,transparent)}.shared-graph-group__label{position:absolute;inset-block-start:.3rem;inset-inline-start:.4rem;max-width:calc(100% - .8rem);overflow:hidden;font:600 calc(11px * var(--we-graph-inverse-zoom, 1))/1.2 system-ui,sans-serif;text-overflow:ellipsis;white-space:nowrap;cursor:text;pointer-events:auto}.shared-graph-group__name-input{position:absolute;inset-block-start:.2rem;inset-inline-start:.3rem;z-index:3;width:calc(100% - .6rem);min-width:0;box-sizing:border-box;padding:.1rem .2rem;border:1px solid var(--we-graph-accent);border-radius:.2rem;outline:0;background:var(--we-graph-bg);color:var(--we-graph-text);font:600 calc(11px * var(--we-graph-inverse-zoom, 1))/1.2 system-ui,sans-serif}.shared-graph-group__resize{position:absolute;z-index:2;display:block}.shared-graph-group__resize--top,.shared-graph-group__resize--bottom{inset-inline:.75rem;height:10px;cursor:ns-resize}.shared-graph-group__resize--top{inset-block-start:-5px}.shared-graph-group__resize--bottom{inset-block-end:-5px}.shared-graph-group__resize--left,.shared-graph-group__resize--right{inset-block:.75rem;width:10px;cursor:ew-resize}.shared-graph-group__resize--left{inset-inline-start:-5px}.shared-graph-group__resize--right{inset-inline-end:-5px}.shared-graph-node{position:relative;display:flex;align-items:center;justify-content:center;width:var(--we-graph-node-size, 48px);height:var(--we-graph-node-size, 48px);padding:0;border:0;outline:0;background:transparent;cursor:grab}.shared-graph-node:active{cursor:grabbing}.shared-graph-node:focus-visible .shared-graph-node__circle{outline:1px solid var(--we-graph-accent);outline-offset:4px}.shared-graph-node__circle{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--we-graph-accent) 68%,var(--we-graph-line));border-radius:50%;background:transparent;color:var(--we-graph-accent);transition:border-color .14s ease,color .14s ease,opacity .14s ease}.shared-graph-node:hover .shared-graph-node__circle,.shared-graph-node.is-adjacent .shared-graph-node__circle{border-color:color-mix(in srgb,var(--we-graph-accent) 72%,var(--we-graph-line));color:var(--we-graph-accent)}.shared-graph-node.is-selected .shared-graph-node__circle{border-color:var(--we-graph-accent);background:var(--we-graph-accent);color:var(--we-graph-bg)}.shared-graph-node.is-search-match:not(.is-selected) .shared-graph-node__circle,.shared-graph-node.is-highlighted:not(.is-selected) .shared-graph-node__circle{border-color:var(--we-graph-accent);background:transparent;color:var(--we-graph-accent)}.shared-graph-node.is-muted:not(.is-search-match):not(.is-highlighted):not(.is-pending){opacity:.74}.shared-graph-node.is-pending:not(.is-selected) .shared-graph-node__circle{border-color:var(--we-graph-pending);border-style:dashed;color:var(--we-graph-pending)}.shared-graph-node.is-disabled{opacity:.38;cursor:not-allowed}.shared-graph-node.is-remote-highlighted{opacity:1}.shared-graph-node.is-remote-highlighted .shared-graph-node__circle{border-color:#0a84ff;background:#0a84ffdb;color:var(--we-graph-bg);box-shadow:0 0 0 2px #0a84ff73;animation:we-graph-remote-pulse 1.35s ease-in-out infinite}@keyframes we-graph-remote-pulse{0%,to{background:#0a84ff94;box-shadow:0 0 0 2px #0a84ff66}50%{background:#0a84fff0;box-shadow:0 0 0 5px #0a84ff24}}@media (prefers-reduced-motion: reduce){.shared-graph-node.is-remote-highlighted .shared-graph-node__circle{animation:none;background:#0a84ff;box-shadow:0 0 0 3px #0a84ff6b}}.shared-graph-node--vec-ready:not(.is-selected):not(.is-remote-highlighted) .shared-graph-node__circle{border-color:var(--we-graph-accent);color:var(--we-graph-accent)}.shared-graph-node__glyph{width:clamp(29px,calc(var(--we-graph-node-size, 48px) * .6),43px);height:clamp(29px,calc(var(--we-graph-node-size, 48px) * .6),43px);overflow:visible;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.shared-graph-node__label{position:absolute;inset-block-start:calc(100% + 5px);inset-inline-start:50%;max-width:calc(10rem * var(--we-graph-inverse-zoom, 1));overflow:hidden;color:var(--we-graph-text);font-family:system-ui,sans-serif;font-size:clamp(calc(12px * var(--we-graph-inverse-zoom, 1)),calc(var(--we-graph-node-size, 48px) * .22),calc(16px * var(--we-graph-inverse-zoom, 1)));font-weight:500;line-height:1.2;text-align:center;text-overflow:ellipsis;white-space:nowrap;opacity:1;transition:opacity .12s ease;transform:translate(-50%);pointer-events:none;user-select:none}.shared-graph-canvas[data-we-graph-distant=true] .shared-graph-node:not(.is-selected):not(.is-remote-highlighted):not(.is-search-match):not(.is-highlighted) .shared-graph-node__label{opacity:0}.shared-graph-node__handle{position:absolute;inset:calc(50% + .5px) auto auto 50%;width:1px;height:1px;min-width:0;min-height:0;box-sizing:border-box;border:0;border-radius:50%;background:var(--we-graph-bg);opacity:0;pointer-events:none;transform:translate(-50%,-50%);transition:opacity .12s ease}.shared-graph-edge{stroke:var(--we-graph-line);stroke-width:1.5;opacity:.58;cursor:pointer;pointer-events:visibleStroke;transition:opacity .14s ease,stroke .14s ease,stroke-width .14s ease}.shared-graph-edge:hover,.shared-graph-edge.is-emphasized{stroke:var(--we-graph-accent);stroke-width:2.25;opacity:.96}.shared-graph-edge.is-muted{opacity:.52}.shared-graph-edge--pending{stroke:var(--we-graph-pending);stroke-dasharray:4 4}.shared-graph-edge--search{stroke:var(--we-graph-search)}.shared-graph-edge--disabled{stroke:var(--we-graph-danger);stroke-dasharray:3 3;opacity:.3}.shared-graph-edge__label{display:inline-flex;align-items:center;justify-content:center;min-width:calc(18px * var(--we-graph-inverse-zoom, 1));min-height:calc(18px * var(--we-graph-inverse-zoom, 1));max-width:calc(6rem * var(--we-graph-inverse-zoom, 1));padding:calc(1px * var(--we-graph-inverse-zoom, 1)) calc(5px * var(--we-graph-inverse-zoom, 1));border:1px solid var(--we-graph-line-soft);border-radius:999px;background:var(--we-graph-bg);color:var(--we-graph-muted);font-family:system-ui,sans-serif;font-size:clamp(calc(12px * var(--we-graph-inverse-zoom, 1)),.75rem,calc(16px * var(--we-graph-inverse-zoom, 1)));font-weight:600;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.shared-graph-edge__label:hover:not(:disabled),.shared-graph-edge__label:focus-visible{border-color:var(--we-graph-accent);color:var(--we-graph-accent)}.shared-graph-edge__label:disabled{pointer-events:none}.shared-graph-edge__label.is-emphasized{z-index:1002;border-color:var(--we-graph-accent);color:var(--we-graph-text)}.shared-graph-relation-drag{position:fixed;inset:0;z-index:20;width:100vw;height:100vh;overflow:visible;pointer-events:none}.shared-graph-relation-drag path{stroke:var(--we-graph-accent);stroke-width:1.75;stroke-linecap:round;stroke-dasharray:4 4}.shared-graph-controls{position:absolute;inset-inline-start:.75rem;inset-block-end:.75rem;z-index:6;display:grid;grid-template-columns:repeat(5,2rem);border:1px solid var(--we-graph-line-soft);border-radius:.5rem;overflow:hidden;background:var(--we-graph-panel)}.shared-graph-controls button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-inline-end:1px solid var(--we-graph-line-soft);background:transparent;color:var(--we-graph-muted);cursor:pointer}.shared-graph-controls button:last-child{border-inline-end:0}.shared-graph-controls button:hover:not(:disabled),.shared-graph-controls button:focus-visible{color:var(--we-graph-accent)}.shared-graph-controls button:disabled{opacity:.28;cursor:not-allowed}.shared-graph-controls svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
|