langflower 0.1.3 → 0.2.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/README.md +567 -129
- package/dist/{chunk-WV2YWHOC.js → chunk-26UB55E5.js} +44 -4
- package/dist/{chunk-AO33IM2J.js → chunk-2LE3E2QP.js} +24 -23
- package/dist/{chunk-NIRPHJLO.js → chunk-3Z7Q6SQ5.js} +501 -242
- package/dist/{chunk-CVTPGIZE.js → chunk-RZUZX6PW.js} +2 -4
- package/dist/index.js +43935 -44199
- package/docs/public/extending.md +21 -3
- package/docs/public/getting-started.md +2 -1
- package/docs/public/how-it-works.md +2 -2
- package/docs/public/launcher.md +13 -12
- package/package.json +1 -1
- package/ui-dist/{chunk-EZTB7Q33.js → chunk-HEF6F5HN.js} +3 -3
- package/ui-dist/{chunk-BKIP5WRK.js → chunk-IASSR2ON.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/main-NBS6BFBP.js +323 -0
- package/ui-dist/styles-M2URERWI.css +1 -0
- package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.js +1 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.d.ts +9 -21
- package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.js +9 -3
- package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.d.ts +0 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.js +0 -9
- package/vendor/node-sdk/dist/node-factory/define-node/define-node.d.ts +5 -1
- package/vendor/node-sdk/dist/node-factory/define-node/define-node.js +6 -3
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/capabilities.d.ts +128 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/capabilities.js +25 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.d.ts +29 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.js +14 -6
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.d.ts +19 -5
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.js +4 -3
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.d.ts +6 -1
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.d.ts +40 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.js +2 -0
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.d.ts +1 -1
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.d.ts +13 -25
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.js +9 -8
- package/vendor/node-sdk/dist/testing/create-node-harness.d.ts +9 -2
- package/vendor/node-sdk/dist/testing/create-node-harness.js +6 -2
- package/vendor/node-sdk/package.json +5 -0
- package/vendor/runtime/dist/bypass-ports.d.ts +0 -6
- package/vendor/runtime/dist/bypass-ports.js +0 -7
- package/vendor/runtime/dist/runtime-editor.d.ts +1 -1
- package/vendor/runtime/dist/runtime-editor.js +1 -1
- package/vendor/runtime/dist/runtime-helpers.d.ts +0 -1
- package/vendor/runtime/dist/runtime-helpers.js +0 -33
- package/vendor/runtime/dist/runtime-runner.d.ts +4 -0
- package/vendor/runtime/dist/runtime-runner.js +60 -36
- package/vendor/runtime/dist/runtime.d.ts +0 -1
- package/vendor/runtime/dist/runtime.js +0 -1
- package/vendor/runtime/dist/types.d.ts +27 -17
- package/vendor/server/skeleton/instructions.md +6 -0
- package/vendor/server/skeleton/nodes/my-nodes/README.md +19 -1
- package/vendor/server/skeleton/schemas/langflower-config.schema.json +1 -1
- package/vendor/server/skeleton/skills/langflower-helper/SKILL.md +35 -12
- package/vendor/server/skeleton/skills/langflower-helper/layout.md +6 -4
- package/vendor/server/skeleton/skills/langflower-node-writer/SKILL.md +47 -3
- package/vendor/server/skeleton/skills/langflower-workflow-writer/SKILL.md +29 -17
- package/vendor/server/skeleton/workflows/advanced-coder.json +24 -2
- package/vendor/server/skeleton/workflows/kb-create.json +24 -16
- package/vendor/server/skeleton/workflows/kb-manual-search.json +1 -1
- package/vendor/server/skeleton/workflows/kb-navigate.json +24 -2
- package/vendor/server/skeleton/workflows/kb-rag.json +1 -0
- package/vendor/server/skeleton/workflows/simple-coder.json +3 -0
- package/vendor/server/skeleton/workflows/starter.json +2 -0
- package/ui-dist/main-JJURZFKA.js +0 -318
- package/ui-dist/styles-VA3HMZK7.css +0 -1
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.d.ts +0 -5
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.js +0 -5
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.d.ts +0 -3
- package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.d.ts +0 -50
- package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.js +0 -60
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.d.ts +0 -15
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.d.ts +0 -20
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.d.ts +0 -3
- package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.d.ts +0 -20
- package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.js +0 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.d.ts +0 -50
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.d.ts +0 -22
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.d.ts +0 -6
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.d.ts +0 -52
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.js +0 -52
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.d.ts +0 -111
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.d.ts +0 -12
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.d.ts +0 -10
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.d.ts +0 -56
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.js +0 -60
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.js +0 -26
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.js +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.js +0 -27
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.js +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.d.ts +0 -21
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.js +0 -43
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.d.ts +0 -29
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.js +0 -31
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.d.ts +0 -17
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.js +0 -19
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.d.ts +0 -18
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.js +0 -12
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.d.ts +0 -36
- package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.js +0 -2
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.d.ts +0 -46
- package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.js +0 -2
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/** One chunk row persisted under `.langflower/kb/collections/{id}/chunks.jsonl`. */
|
|
2
|
-
export type KbChunkRecord = {
|
|
3
|
-
readonly id: string;
|
|
4
|
-
readonly text: string;
|
|
5
|
-
readonly meta: Readonly<Record<string, unknown>>;
|
|
6
|
-
};
|
|
7
|
-
export type KbSearchHit = {
|
|
8
|
-
readonly id: string;
|
|
9
|
-
readonly text: string;
|
|
10
|
-
readonly score: number;
|
|
11
|
-
readonly meta: Readonly<Record<string, unknown>>;
|
|
12
|
-
};
|
|
13
|
-
export type KbListItem = {
|
|
14
|
-
readonly kind: 'collection' | 'document' | 'chunk';
|
|
15
|
-
readonly id: string;
|
|
16
|
-
readonly detail?: string;
|
|
17
|
-
};
|
|
18
|
-
export type KbDuplicateHit = {
|
|
19
|
-
readonly candidateId: string;
|
|
20
|
-
readonly candidateText: string;
|
|
21
|
-
readonly existingId: string;
|
|
22
|
-
readonly existingText: string;
|
|
23
|
-
readonly score: number;
|
|
24
|
-
readonly kind: 'duplicate' | 'near-duplicate';
|
|
25
|
-
};
|
|
26
|
-
export type KbDedupePacket = {
|
|
27
|
-
readonly kind: 'kb-dedupe';
|
|
28
|
-
readonly collectionId: string;
|
|
29
|
-
readonly duplicates: readonly KbDuplicateHit[];
|
|
30
|
-
};
|
|
31
|
-
export type KbConflictHit = {
|
|
32
|
-
readonly candidateId: string;
|
|
33
|
-
readonly candidateText: string;
|
|
34
|
-
readonly existingId: string;
|
|
35
|
-
readonly existingText: string;
|
|
36
|
-
readonly score: number;
|
|
37
|
-
readonly reason: string;
|
|
38
|
-
};
|
|
39
|
-
export type KbCurationProposedAction = {
|
|
40
|
-
readonly action: 'write' | 'edit' | 'delete';
|
|
41
|
-
readonly collectionId: string;
|
|
42
|
-
readonly documentId?: string;
|
|
43
|
-
readonly text?: string;
|
|
44
|
-
readonly chunkIds?: readonly string[];
|
|
45
|
-
readonly note?: string;
|
|
46
|
-
};
|
|
47
|
-
export type KbContradictionMergePacket = {
|
|
48
|
-
readonly kind: 'kb-contradiction-merge';
|
|
49
|
-
readonly collectionId: string;
|
|
50
|
-
readonly disputed: readonly KbConflictHit[];
|
|
51
|
-
readonly duplicates: readonly KbDuplicateHit[];
|
|
52
|
-
readonly proposed: readonly KbCurationProposedAction[];
|
|
53
|
-
};
|
|
54
|
-
export type KbApplyCurationResult = {
|
|
55
|
-
readonly applied: readonly {
|
|
56
|
-
readonly action: 'write' | 'edit' | 'delete';
|
|
57
|
-
readonly detail: string;
|
|
58
|
-
}[];
|
|
59
|
-
readonly skipped: number;
|
|
60
|
-
};
|
|
61
|
-
/** Batch embedder used by KB Embed / Search (local or API). */
|
|
62
|
-
export type KbEmbedTexts = (texts: readonly string[]) => Promise<readonly Float32Array[]>;
|
|
63
|
-
/**
|
|
64
|
-
* Server-injected project KB under `.langflower/kb/`.
|
|
65
|
-
* Common-nodes call this only — they must not import Node `fs`.
|
|
66
|
-
*/
|
|
67
|
-
export type KbContext = {
|
|
68
|
-
readonly ingest: (args: {
|
|
69
|
-
readonly collectionId: string;
|
|
70
|
-
readonly text: string;
|
|
71
|
-
readonly documentId?: string;
|
|
72
|
-
readonly source?: string;
|
|
73
|
-
}) => Promise<readonly string[]>;
|
|
74
|
-
readonly embed: (args: {
|
|
75
|
-
readonly collectionId: string;
|
|
76
|
-
readonly embedTexts?: KbEmbedTexts;
|
|
77
|
-
}) => Promise<number>;
|
|
78
|
-
readonly search: (args: {
|
|
79
|
-
readonly collectionId: string;
|
|
80
|
-
readonly query: string;
|
|
81
|
-
readonly topK?: number;
|
|
82
|
-
readonly embedTexts?: KbEmbedTexts;
|
|
83
|
-
}) => Promise<readonly KbSearchHit[]>;
|
|
84
|
-
readonly list: (args: {
|
|
85
|
-
readonly collectionId?: string;
|
|
86
|
-
}) => Promise<readonly KbListItem[]>;
|
|
87
|
-
readonly delete: (args: {
|
|
88
|
-
readonly collectionId: string;
|
|
89
|
-
readonly documentId?: string;
|
|
90
|
-
readonly chunkIds?: readonly string[];
|
|
91
|
-
}) => Promise<number>;
|
|
92
|
-
readonly dedupe: (args: {
|
|
93
|
-
readonly collectionId: string;
|
|
94
|
-
readonly candidates: unknown;
|
|
95
|
-
readonly threshold?: number;
|
|
96
|
-
readonly topK?: number;
|
|
97
|
-
readonly embedTexts?: KbEmbedTexts;
|
|
98
|
-
}) => Promise<KbDedupePacket>;
|
|
99
|
-
readonly contradict: (args: {
|
|
100
|
-
readonly collectionId: string;
|
|
101
|
-
readonly candidates: unknown;
|
|
102
|
-
readonly duplicates?: unknown;
|
|
103
|
-
readonly threshold?: number;
|
|
104
|
-
readonly topK?: number;
|
|
105
|
-
readonly embedTexts?: KbEmbedTexts;
|
|
106
|
-
}) => Promise<KbContradictionMergePacket>;
|
|
107
|
-
readonly applyCuration: (args: {
|
|
108
|
-
readonly packet: unknown;
|
|
109
|
-
}) => Promise<KbApplyCurationResult>;
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=kb-context.d.ts.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Run-scoped key/value memory under `.langflower/runs/{runId}/memory/`.
|
|
3
|
-
* Injected beside crawl/kb; agents prefer `common-memory-tools` → `tools`.
|
|
4
|
-
*/
|
|
5
|
-
export type MemoryContext = {
|
|
6
|
-
readonly runId: string;
|
|
7
|
-
readonly get: (key: string) => Promise<string | undefined>;
|
|
8
|
-
readonly set: (key: string, value: string) => Promise<void>;
|
|
9
|
-
readonly list: () => Promise<readonly string[]>;
|
|
10
|
-
readonly delete: (key: string) => Promise<boolean>;
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=memory-context.d.ts.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Permission-free project file I/O for palette Text Read/Write/Append nodes.
|
|
3
|
-
* Injected by the server; absolute paths are rejected at the tools boundary.
|
|
4
|
-
*/
|
|
5
|
-
export type ProjectFilesContext = {
|
|
6
|
-
readonly read: (relativePath: string) => Promise<string>;
|
|
7
|
-
readonly write: (relativePath: string, content: string) => Promise<void>;
|
|
8
|
-
readonly append: (relativePath: string, content: string, delimiter: string) => Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=project-files-context.d.ts.map
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/** Result of one harness tool invocation (LLM-shaped text). */
|
|
2
|
-
export type ToolInvokeResult = {
|
|
3
|
-
readonly ok: true;
|
|
4
|
-
readonly text: string;
|
|
5
|
-
} | {
|
|
6
|
-
readonly ok: false;
|
|
7
|
-
readonly text: string;
|
|
8
|
-
};
|
|
9
|
-
export type ToolInvokeCall = {
|
|
10
|
-
readonly toolId: string;
|
|
11
|
-
readonly args: Readonly<Record<string, unknown>>;
|
|
12
|
-
};
|
|
13
|
-
/** Inventory row for builtin (or mapped) tools exposed to the LLM node. */
|
|
14
|
-
export type BuiltinToolRegistration = {
|
|
15
|
-
readonly toolId: string;
|
|
16
|
-
readonly name: string;
|
|
17
|
-
readonly description: string;
|
|
18
|
-
readonly inputSchema: object;
|
|
19
|
-
};
|
|
20
|
-
/** Options for {@link ProjectHarness.webFetch} (SSRF-guarded HTTP GET). */
|
|
21
|
-
export type WebFetchRequest = {
|
|
22
|
-
readonly url: string;
|
|
23
|
-
readonly timeoutMs?: number;
|
|
24
|
-
readonly maxBytes?: number;
|
|
25
|
-
};
|
|
26
|
-
/** Result of one {@link ProjectHarness.webFetch} call. */
|
|
27
|
-
export type WebFetchResult = {
|
|
28
|
-
readonly ok: boolean;
|
|
29
|
-
readonly status: number;
|
|
30
|
-
readonly url: string;
|
|
31
|
-
readonly headers: Readonly<Record<string, string>>;
|
|
32
|
-
readonly body: string;
|
|
33
|
-
readonly error?: string;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Server-injected project harness. LLM nodes must not import
|
|
37
|
-
* `@langflower/tools` directly.
|
|
38
|
-
*
|
|
39
|
-
* Crawl / Fetch URL nodes use optional {@link webFetch}. Builtin inventory is
|
|
40
|
-
* seeded as `ExecutionContext.toolHandles` (not via catalog list on the agent).
|
|
41
|
-
* {@link invoke} / {@link listBuiltinRegistrations} remain for the server wrap
|
|
42
|
-
* path and non-agent callers (e.g. eval).
|
|
43
|
-
*/
|
|
44
|
-
export type ProjectHarness = {
|
|
45
|
-
readonly invoke: (call: ToolInvokeCall) => Promise<ToolInvokeResult>;
|
|
46
|
-
readonly listBuiltinRegistrations: () => readonly BuiltinToolRegistration[];
|
|
47
|
-
/**
|
|
48
|
-
* Permission gate for any tool id (builtins + domain packs + MCP).
|
|
49
|
-
* Used before `ToolHandle.invoke` so ask/deny defaults are not decorative.
|
|
50
|
-
* Missing → fail open is forbidden; callers must deny.
|
|
51
|
-
*/
|
|
52
|
-
readonly authorize?: (call: ToolInvokeCall) => Promise<'allow' | 'deny'>;
|
|
53
|
-
/** SSRF-safe HTTP GET for crawl / Fetch URL nodes. */
|
|
54
|
-
readonly webFetch?: (request: WebFetchRequest) => Promise<WebFetchResult>;
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=project-harness.d.ts.map
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Agent stand-in: `prompt` (+ optional `feedback`) → streaming `draft` + `response`. */
|
|
2
|
-
export declare const agentSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [{
|
|
7
|
-
readonly field: "responsePrefix";
|
|
8
|
-
readonly type: "string";
|
|
9
|
-
readonly default: "Final";
|
|
10
|
-
}];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [{
|
|
13
|
-
readonly field: "responsePrefix";
|
|
14
|
-
readonly type: "string";
|
|
15
|
-
readonly default: "Final";
|
|
16
|
-
}], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
17
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
18
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [{
|
|
19
|
-
readonly field: "responsePrefix";
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly default: "Final";
|
|
22
|
-
}], Record<string, never>>;
|
|
23
|
-
readonly paletteSecondary?: true;
|
|
24
|
-
readonly description?: string;
|
|
25
|
-
readonly type: string;
|
|
26
|
-
readonly displayName: string;
|
|
27
|
-
readonly category: string | undefined;
|
|
28
|
-
readonly icon: string | undefined;
|
|
29
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { statefulObservable } from '@rx-evo/stateful-observable';
|
|
2
|
-
import { concatMap, delay, of, Observable } from 'rxjs';
|
|
3
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
4
|
-
const ASYNC_OUTPUT_DELAY_MS = 1;
|
|
5
|
-
const DEFAULT_DRAFT_DELTAS = ['The', ' quick', ' brown', ' fox'];
|
|
6
|
-
const emitDraftDeltas = (deltas) => new Observable((subscriber) => {
|
|
7
|
-
for (const delta of deltas) {
|
|
8
|
-
subscriber.next(delta);
|
|
9
|
-
}
|
|
10
|
-
subscriber.complete();
|
|
11
|
-
});
|
|
12
|
-
/** Agent stand-in: `prompt` (+ optional `feedback`) → streaming `draft` + `response`. */
|
|
13
|
-
export const agentSampleNode = defineReactiveNode({
|
|
14
|
-
type: 'sample-agent',
|
|
15
|
-
displayName: 'Agent',
|
|
16
|
-
category: 'Samples',
|
|
17
|
-
uiSchema: [
|
|
18
|
-
{ field: 'responsePrefix', type: 'string', default: 'Final' },
|
|
19
|
-
],
|
|
20
|
-
bind(ctx, { makeInput, configureOutput, combineInputs }) {
|
|
21
|
-
const prompt = makeInput('prompt', {
|
|
22
|
-
name: 'prompt',
|
|
23
|
-
wireType: 'string',
|
|
24
|
-
required: true,
|
|
25
|
-
});
|
|
26
|
-
const feedback = makeInput('feedback', {
|
|
27
|
-
name: 'feedback',
|
|
28
|
-
wireType: 'string',
|
|
29
|
-
defaultValue: '',
|
|
30
|
-
});
|
|
31
|
-
const prefixFallback = 'Final';
|
|
32
|
-
const draft$ = statefulObservable({
|
|
33
|
-
input: prompt.value$,
|
|
34
|
-
mapOperator: concatMap,
|
|
35
|
-
refCount: false,
|
|
36
|
-
loader: () => emitDraftDeltas(DEFAULT_DRAFT_DELTAS),
|
|
37
|
-
});
|
|
38
|
-
const response$ = combineInputs([prompt, feedback, ctx], ([promptValue, feedbackValue, ec]) => {
|
|
39
|
-
const panel = ec.params;
|
|
40
|
-
const prefix = panel?.responsePrefix !== undefined
|
|
41
|
-
? String(panel.responsePrefix)
|
|
42
|
-
: prefixFallback;
|
|
43
|
-
const text = feedbackValue !== undefined && feedbackValue !== ''
|
|
44
|
-
? String(feedbackValue)
|
|
45
|
-
: String(promptValue ?? '');
|
|
46
|
-
return `${prefix}: ${text}`;
|
|
47
|
-
}).pipeValue(concatMap((text) => of(text).pipe(delay(ASYNC_OUTPUT_DELAY_MS))));
|
|
48
|
-
return {
|
|
49
|
-
inputs: [prompt, feedback],
|
|
50
|
-
outputs: [
|
|
51
|
-
configureOutput('draft', draft$, {
|
|
52
|
-
wireType: 'string',
|
|
53
|
-
}),
|
|
54
|
-
configureOutput('response', response$, {
|
|
55
|
-
wireType: 'string',
|
|
56
|
-
}),
|
|
57
|
-
],
|
|
58
|
-
};
|
|
59
|
-
},
|
|
60
|
-
});
|
package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Two inputs (`a`, `b`) merged → `combined` output. */
|
|
2
|
-
export declare const combineSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [{
|
|
7
|
-
readonly field: "separator";
|
|
8
|
-
readonly type: "string";
|
|
9
|
-
readonly default: "|";
|
|
10
|
-
}];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [{
|
|
13
|
-
readonly field: "separator";
|
|
14
|
-
readonly type: "string";
|
|
15
|
-
readonly default: "|";
|
|
16
|
-
}], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
17
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
18
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [{
|
|
19
|
-
readonly field: "separator";
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly default: "|";
|
|
22
|
-
}], Record<string, never>>;
|
|
23
|
-
readonly paletteSecondary?: true;
|
|
24
|
-
readonly description?: string;
|
|
25
|
-
readonly type: string;
|
|
26
|
-
readonly displayName: string;
|
|
27
|
-
readonly category: string | undefined;
|
|
28
|
-
readonly icon: string | undefined;
|
|
29
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
2
|
-
/** Two inputs (`a`, `b`) merged → `combined` output. */
|
|
3
|
-
export const combineSampleNode = defineReactiveNode({
|
|
4
|
-
type: 'sample-combine',
|
|
5
|
-
displayName: 'Combine',
|
|
6
|
-
category: 'Samples',
|
|
7
|
-
uiSchema: [{ field: 'separator', type: 'string', default: '|' }],
|
|
8
|
-
bind(ctx, { makeInput, configureOutput, combineInputs }) {
|
|
9
|
-
const a = makeInput('a', { name: 'a' });
|
|
10
|
-
const b = makeInput('b', { name: 'b' });
|
|
11
|
-
const fallback = '|';
|
|
12
|
-
const combined$ = combineInputs([a, b, ctx], ([aVal, bVal, ec]) => ({
|
|
13
|
-
a: aVal,
|
|
14
|
-
b: bVal,
|
|
15
|
-
combined: `${String(aVal ?? '')}${String(ec.params?.separator ?? fallback)}${String(bVal ?? '')}`,
|
|
16
|
-
}));
|
|
17
|
-
return {
|
|
18
|
-
inputs: [a, b],
|
|
19
|
-
outputs: [
|
|
20
|
-
configureOutput('combined', combined$, {
|
|
21
|
-
wireType: 'string',
|
|
22
|
-
}),
|
|
23
|
-
],
|
|
24
|
-
};
|
|
25
|
-
},
|
|
26
|
-
});
|
package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Source node — emits panel `value` on output (no inputs). */
|
|
2
|
-
export declare const constantSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [{
|
|
7
|
-
readonly field: "value";
|
|
8
|
-
readonly type: "string";
|
|
9
|
-
readonly default: "";
|
|
10
|
-
}];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [{
|
|
13
|
-
readonly field: "value";
|
|
14
|
-
readonly type: "string";
|
|
15
|
-
readonly default: "";
|
|
16
|
-
}], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
17
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
18
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [{
|
|
19
|
-
readonly field: "value";
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly default: "";
|
|
22
|
-
}], Record<string, never>>;
|
|
23
|
-
readonly paletteSecondary?: true;
|
|
24
|
-
readonly description?: string;
|
|
25
|
-
readonly type: string;
|
|
26
|
-
readonly displayName: string;
|
|
27
|
-
readonly category: string | undefined;
|
|
28
|
-
readonly icon: string | undefined;
|
|
29
|
-
};
|
package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { map } from 'rxjs';
|
|
2
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
3
|
-
/** Source node — emits panel `value` on output (no inputs). */
|
|
4
|
-
export const constantSampleNode = defineReactiveNode({
|
|
5
|
-
type: 'sample-constant',
|
|
6
|
-
displayName: 'Constant',
|
|
7
|
-
category: 'Samples',
|
|
8
|
-
emitOncePerActivation: true,
|
|
9
|
-
uiSchema: [{ field: 'value', type: 'string', default: '' }],
|
|
10
|
-
bind(ctx, { configureOutput }) {
|
|
11
|
-
const text$ = ctx.pipeValue(map((ec) => String(ec.params?.value ?? '')));
|
|
12
|
-
return {
|
|
13
|
-
inputs: [],
|
|
14
|
-
outputs: [
|
|
15
|
-
configureOutput('value', text$, {
|
|
16
|
-
wireType: 'string',
|
|
17
|
-
}),
|
|
18
|
-
],
|
|
19
|
-
};
|
|
20
|
-
},
|
|
21
|
-
});
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Pass-through with async delay on `value` input. */
|
|
2
|
-
export declare const delaySampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [{
|
|
7
|
-
readonly field: "delayMs";
|
|
8
|
-
readonly type: "number";
|
|
9
|
-
readonly default: 50;
|
|
10
|
-
}];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [{
|
|
13
|
-
readonly field: "delayMs";
|
|
14
|
-
readonly type: "number";
|
|
15
|
-
readonly default: 50;
|
|
16
|
-
}], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
17
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
18
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [{
|
|
19
|
-
readonly field: "delayMs";
|
|
20
|
-
readonly type: "number";
|
|
21
|
-
readonly default: 50;
|
|
22
|
-
}], Record<string, never>>;
|
|
23
|
-
readonly paletteSecondary?: true;
|
|
24
|
-
readonly description?: string;
|
|
25
|
-
readonly type: string;
|
|
26
|
-
readonly displayName: string;
|
|
27
|
-
readonly category: string | undefined;
|
|
28
|
-
readonly icon: string | undefined;
|
|
29
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { concatMap, delay, of } from 'rxjs';
|
|
2
|
-
import { defineReactiveNode, withLoading } from '../../define-reactive-node.js';
|
|
3
|
-
/** Pass-through with async delay on `value` input. */
|
|
4
|
-
export const delaySampleNode = defineReactiveNode({
|
|
5
|
-
type: 'sample-delay',
|
|
6
|
-
displayName: 'Delay',
|
|
7
|
-
category: 'Samples',
|
|
8
|
-
emitOncePerActivation: true,
|
|
9
|
-
uiSchema: [{ field: 'delayMs', type: 'number', default: 50 }],
|
|
10
|
-
bind(ctx, { makeInput, configureOutput, combineInputs }) {
|
|
11
|
-
const value = makeInput('value', { name: 'value' });
|
|
12
|
-
const output$ = combineInputs([value, ctx], ([inputValue, ec]) => {
|
|
13
|
-
const delayMs = Math.max(0, Number(ec.params?.delayMs ?? 50));
|
|
14
|
-
return { inputValue, delayMs };
|
|
15
|
-
})
|
|
16
|
-
.pipe(withLoading())
|
|
17
|
-
.pipeValue(concatMap(({ inputValue, delayMs }) => of(inputValue).pipe(delay(delayMs))));
|
|
18
|
-
return {
|
|
19
|
-
inputs: [value],
|
|
20
|
-
outputs: [
|
|
21
|
-
configureOutput('value', output$, {
|
|
22
|
-
wireType: 'any',
|
|
23
|
-
}),
|
|
24
|
-
],
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
});
|
package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Passthrough that ends the run on first output emission. */
|
|
2
|
-
export declare const finishSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [];
|
|
7
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
8
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
9
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
10
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [], Record<string, never>>;
|
|
11
|
-
readonly paletteSecondary?: true;
|
|
12
|
-
readonly description?: string;
|
|
13
|
-
readonly type: string;
|
|
14
|
-
readonly displayName: string;
|
|
15
|
-
readonly category: string | undefined;
|
|
16
|
-
readonly icon: string | undefined;
|
|
17
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
2
|
-
/** Passthrough that ends the run on first output emission. */
|
|
3
|
-
export const finishSampleNode = defineReactiveNode({
|
|
4
|
-
type: 'sample-finish',
|
|
5
|
-
displayName: 'Finish',
|
|
6
|
-
category: 'Samples',
|
|
7
|
-
stopsRun: true,
|
|
8
|
-
emitOncePerActivation: true,
|
|
9
|
-
uiSchema: [],
|
|
10
|
-
bind(_ctx, { makeInput, configureOutput }) {
|
|
11
|
-
const value = makeInput('value', { name: 'value' });
|
|
12
|
-
return {
|
|
13
|
-
inputs: [value],
|
|
14
|
-
outputs: [
|
|
15
|
-
configureOutput('value', value, {
|
|
16
|
-
inferTypeFrom: value,
|
|
17
|
-
}),
|
|
18
|
-
],
|
|
19
|
-
};
|
|
20
|
-
},
|
|
21
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HITL stand-in: `question` in → `prompt` out; user answer via marked
|
|
3
|
-
* `reply` input — server injects via `runner.hitl.event` /
|
|
4
|
-
* `RuntimeRunner.pushIntoInput`.
|
|
5
|
-
*/
|
|
6
|
-
export declare const hitlSampleNode: {
|
|
7
|
-
readonly emitOncePerActivation: boolean;
|
|
8
|
-
readonly stopsRun: boolean;
|
|
9
|
-
readonly chatEntry: boolean;
|
|
10
|
-
readonly uiSchema: readonly [];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
13
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
14
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [], Record<string, never>>;
|
|
15
|
-
readonly paletteSecondary?: true;
|
|
16
|
-
readonly description?: string;
|
|
17
|
-
readonly type: string;
|
|
18
|
-
readonly displayName: string;
|
|
19
|
-
readonly category: string | undefined;
|
|
20
|
-
readonly icon: string | undefined;
|
|
21
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
2
|
-
import { map } from 'rxjs';
|
|
3
|
-
/**
|
|
4
|
-
* HITL stand-in: `question` in → `prompt` out; user answer via marked
|
|
5
|
-
* `reply` input — server injects via `runner.hitl.event` /
|
|
6
|
-
* `RuntimeRunner.pushIntoInput`.
|
|
7
|
-
*/
|
|
8
|
-
export const hitlSampleNode = defineReactiveNode({
|
|
9
|
-
type: 'sample-hitl',
|
|
10
|
-
displayName: 'HITL',
|
|
11
|
-
category: 'Samples',
|
|
12
|
-
uiSchema: [],
|
|
13
|
-
bind(_ctx, { makeInput, configureOutput }) {
|
|
14
|
-
const question = makeInput('question', {
|
|
15
|
-
name: 'question',
|
|
16
|
-
wireType: 'string',
|
|
17
|
-
required: true,
|
|
18
|
-
});
|
|
19
|
-
const reply = makeInput('reply', {
|
|
20
|
-
name: 'reply',
|
|
21
|
-
wireType: 'string',
|
|
22
|
-
required: true,
|
|
23
|
-
hitl: {
|
|
24
|
-
title: 'Your reply',
|
|
25
|
-
promptFrom: 'prompt',
|
|
26
|
-
kind: 'textarea',
|
|
27
|
-
submitLabel: 'Send',
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const replyOut$ = reply.pipeValue(map((text) => text ?? ''));
|
|
31
|
-
return {
|
|
32
|
-
inputs: [question, reply],
|
|
33
|
-
outputs: [
|
|
34
|
-
configureOutput('prompt', question, {
|
|
35
|
-
inferTypeFrom: question,
|
|
36
|
-
}),
|
|
37
|
-
configureOutput('reply', replyOut$, {
|
|
38
|
-
wireType: 'string',
|
|
39
|
-
}),
|
|
40
|
-
],
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
});
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Multi `lines` input array → joined `text` output. */
|
|
2
|
-
export declare const joinSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [{
|
|
7
|
-
readonly field: "separator";
|
|
8
|
-
readonly type: "string";
|
|
9
|
-
readonly default: "\n";
|
|
10
|
-
}];
|
|
11
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
12
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [{
|
|
13
|
-
readonly field: "separator";
|
|
14
|
-
readonly type: "string";
|
|
15
|
-
readonly default: "\n";
|
|
16
|
-
}], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
17
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
18
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [{
|
|
19
|
-
readonly field: "separator";
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly default: "\n";
|
|
22
|
-
}], Record<string, never>>;
|
|
23
|
-
readonly paletteSecondary?: true;
|
|
24
|
-
readonly description?: string;
|
|
25
|
-
readonly type: string;
|
|
26
|
-
readonly displayName: string;
|
|
27
|
-
readonly category: string | undefined;
|
|
28
|
-
readonly icon: string | undefined;
|
|
29
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { defineReactiveNode } from '../../define-reactive-node.js';
|
|
2
|
-
/** Multi `lines` input array → joined `text` output. */
|
|
3
|
-
export const joinSampleNode = defineReactiveNode({
|
|
4
|
-
type: 'sample-join',
|
|
5
|
-
displayName: 'Join',
|
|
6
|
-
category: 'Samples',
|
|
7
|
-
uiSchema: [{ field: 'separator', type: 'string', default: '\n' }],
|
|
8
|
-
bind(ctx, { makeInput, configureOutput, combineInputs }) {
|
|
9
|
-
const lines = makeInput('lines', {
|
|
10
|
-
name: 'lines',
|
|
11
|
-
wireType: 'string',
|
|
12
|
-
multi: 'combine',
|
|
13
|
-
required: true,
|
|
14
|
-
});
|
|
15
|
-
const fallback = '\n';
|
|
16
|
-
const text$ = combineInputs([lines, ctx], ([values, ec]) => {
|
|
17
|
-
const separator = ec.params?.separator;
|
|
18
|
-
return values
|
|
19
|
-
.map((value) => String(value ?? ''))
|
|
20
|
-
.join(String(separator ?? fallback));
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
inputs: [lines],
|
|
24
|
-
outputs: [
|
|
25
|
-
configureOutput('text', text$, {
|
|
26
|
-
wireType: 'string',
|
|
27
|
-
}),
|
|
28
|
-
],
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
});
|
package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Preview stand-in — `text` in → formatted `text` out. */
|
|
2
|
-
export declare const previewSampleNode: {
|
|
3
|
-
readonly emitOncePerActivation: boolean;
|
|
4
|
-
readonly stopsRun: boolean;
|
|
5
|
-
readonly chatEntry: boolean;
|
|
6
|
-
readonly uiSchema: readonly [];
|
|
7
|
-
readonly bypassPorts: Record<string, import("../../port-meta.js").WireType>;
|
|
8
|
-
readonly inputsConfigs: readonly [import("../../io-helpers.js").InputPortMeta<import("../../types.js").ExecutionContext<readonly [], Record<string, never>>>, ...import("../../io-helpers.js").InputPortMeta<unknown>[]];
|
|
9
|
-
readonly outputsConfigs: (import("../../io-helpers.js").OutputParams & import("../../port-meta.js").PortMeta)[];
|
|
10
|
-
readonly getInstance: () => import("../../types.js").ReactiveNodeInstance<readonly [], Record<string, never>>;
|
|
11
|
-
readonly paletteSecondary?: true;
|
|
12
|
-
readonly description?: string;
|
|
13
|
-
readonly type: string;
|
|
14
|
-
readonly displayName: string;
|
|
15
|
-
readonly category: string | undefined;
|
|
16
|
-
readonly icon: string | undefined;
|
|
17
|
-
};
|