@codemation/core-nodes 0.10.1 → 0.12.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/CHANGELOG.md +125 -0
- package/dist/index.cjs +273 -108
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +212 -71
- package/dist/index.d.ts +213 -72
- package/dist/index.js +273 -105
- package/dist/index.js.map +1 -1
- package/dist/metadata.json +1 -1
- package/package.json +3 -2
- package/src/chatModels/CodemationChatModelConfig.ts +9 -21
- package/src/chatModels/CodemationChatModelFactory.ts +12 -9
- package/src/chatModels/OpenAIChatModelFactory.ts +3 -2
- package/src/http/HttpBodyBuilder.ts +9 -0
- package/src/http/httpRequest.types.ts +10 -1
- package/src/index.ts +1 -1
- package/src/nodes/AIAgentConfig.ts +28 -0
- package/src/nodes/AIAgentNode.ts +84 -17
- package/src/nodes/AgentBinaryContentFactory.ts +74 -0
- package/src/nodes/CallbackNodeFactory.ts +9 -6
- package/src/nodes/CronTriggerFactory.ts +6 -2
- package/src/nodes/DeferredMetaToolStrategy.ts +8 -2
- package/src/nodes/ManualTriggerFactory.ts +15 -11
- package/src/nodes/WebhookTriggerFactory.ts +9 -2
- package/src/nodes/aggregate.ts +9 -2
- package/src/nodes/assertion.ts +3 -0
- package/src/nodes/filter.ts +9 -2
- package/src/nodes/httpRequest.ts +7 -2
- package/src/nodes/if.ts +9 -2
- package/src/nodes/isTestRun.ts +6 -2
- package/src/nodes/mapData.ts +4 -2
- package/src/nodes/merge.ts +9 -2
- package/src/nodes/noOp.ts +9 -2
- package/src/nodes/nodeOptions.types.ts +12 -0
- package/src/nodes/split.ts +9 -2
- package/src/nodes/subWorkflow.ts +9 -2
- package/src/nodes/switch.ts +7 -1
- package/src/nodes/wait.ts +9 -2
- package/src/workflowAuthoring/WorkflowChatModelFactory.types.ts +8 -2
- package/src/chatModels/ManagedModelFetcher.ts +0 -23
package/dist/index.d.cts
CHANGED
|
@@ -274,7 +274,6 @@ interface AssertionResult {
|
|
|
274
274
|
}
|
|
275
275
|
//#endregion
|
|
276
276
|
//#region ../core/src/contracts/itemExpr.d.ts
|
|
277
|
-
declare const ITEM_EXPR_BRAND: unique symbol;
|
|
278
277
|
type ItemExprResolvedContext = Readonly<{
|
|
279
278
|
runId: RunId;
|
|
280
279
|
workflowId: WorkflowId;
|
|
@@ -294,7 +293,7 @@ type ItemExprArgs<TItemJson = unknown> = Readonly<{
|
|
|
294
293
|
}>;
|
|
295
294
|
type ItemExprCallback<T, TItemJson = unknown> = (args: ItemExprArgs<TItemJson>) => T | Promise<T>;
|
|
296
295
|
type ItemExpr<T, TItemJson = unknown> = Readonly<{
|
|
297
|
-
readonly
|
|
296
|
+
readonly __codemationItemExpr: "codemation.itemExpr";
|
|
298
297
|
readonly fn: ItemExprCallback<T, TItemJson>;
|
|
299
298
|
}>;
|
|
300
299
|
//#endregion
|
|
@@ -628,6 +627,26 @@ type PortsEmission = Readonly<{
|
|
|
628
627
|
readonly ports: Readonly<Partial<Record<OutputPortKey, Items | ReadonlyArray<JsonNonArray>>>>;
|
|
629
628
|
}>;
|
|
630
629
|
//#endregion
|
|
630
|
+
//#region ../core/src/authoring/nodeBaseOptions.types.d.ts
|
|
631
|
+
/**
|
|
632
|
+
* Core-local copy of the per-instance authoring options every `define*` factory's `create(...)`
|
|
633
|
+
* accepts in its trailing argument: a stable `id` plus a plain-language `description` (the
|
|
634
|
+
* non-technical "what does this step do" line surfaced in the node sidebar).
|
|
635
|
+
*
|
|
636
|
+
* `description` is a first-class option — passed inline exactly like `id` — and is threaded onto
|
|
637
|
+
* the config instance as an OWN ENUMERABLE field so it flows into the persisted workflow snapshot
|
|
638
|
+
* (`WorkflowSnapshotCodec` serializes via `JSON.parse(JSON.stringify(config))`, which only captures
|
|
639
|
+
* own enumerable properties — never a getter).
|
|
640
|
+
*
|
|
641
|
+
* `@codemation/core-nodes` declares an identical `NodeBaseOptions` for its bare-id built-in nodes;
|
|
642
|
+
* core keeps its own copy because core must not depend on `@codemation/core-nodes` (dependency
|
|
643
|
+
* direction). The two types are structurally identical by design.
|
|
644
|
+
*/
|
|
645
|
+
interface NodeBaseOptions$1 {
|
|
646
|
+
readonly id?: string;
|
|
647
|
+
readonly description?: string;
|
|
648
|
+
}
|
|
649
|
+
//#endregion
|
|
631
650
|
//#region ../core/src/authoring/defineNode.types.d.ts
|
|
632
651
|
type ResolvableCredentialType = AnyCredentialType | CredentialTypeId;
|
|
633
652
|
type DefinedNodeCredentialBinding = ResolvableCredentialType | Readonly<{
|
|
@@ -644,7 +663,7 @@ interface DefinedNode<TKey$1 extends string, TConfig extends CredentialJsonRecor
|
|
|
644
663
|
readonly key: TKey$1;
|
|
645
664
|
readonly title: string;
|
|
646
665
|
readonly description?: string;
|
|
647
|
-
create<TConfigItemJson = TInputJson$1>(config: DefinedNodeConfigInput<TConfig, TConfigItemJson>, name?: string,
|
|
666
|
+
create<TConfigItemJson = TInputJson$1>(config: DefinedNodeConfigInput<TConfig, TConfigItemJson>, name?: string, idOrOptions?: string | NodeBaseOptions$1): RunnableNodeConfig<TInputJson$1, TOutputJson$1>;
|
|
648
667
|
register(context: {
|
|
649
668
|
registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
|
|
650
669
|
}): void;
|
|
@@ -712,14 +731,44 @@ type BooleanWhenOverloads<TCurrentJson, TReturn> = {
|
|
|
712
731
|
};
|
|
713
732
|
//#endregion
|
|
714
733
|
//#region ../core/src/workflow/dsl/WhenBuilder.d.ts
|
|
734
|
+
/** Structurally identical to ChainCursorResolver's (unexported) ChainCursorEndpoint. */
|
|
735
|
+
type WhenEndpoint = Readonly<{
|
|
736
|
+
node: NodeRef;
|
|
737
|
+
output: OutputPortKey;
|
|
738
|
+
inputPortHint?: InputPortKey;
|
|
739
|
+
}>;
|
|
715
740
|
declare class WhenBuilder<TCurrentJson> {
|
|
716
741
|
private readonly wf;
|
|
717
742
|
private readonly from;
|
|
718
743
|
private readonly branchPort;
|
|
719
|
-
|
|
744
|
+
/** Tails of arms added by earlier `.when(...)` calls in this chain. */
|
|
745
|
+
private readonly priorEndpoints;
|
|
746
|
+
/** Tail endpoint of the arm this builder added (set by addBranch). */
|
|
747
|
+
private armEndpoint;
|
|
748
|
+
constructor(wf: WorkflowBuilder, from: NodeRef, branchPort: OutputPortKey, /** Tails of arms added by earlier `.when(...)` calls in this chain. */
|
|
749
|
+
priorEndpoints?: ReadonlyArray<WhenEndpoint>);
|
|
720
750
|
addBranch<TSteps extends ReadonlyArray<AnyRunnableNodeConfig>>(steps: TSteps & ValidStepSequence<TCurrentJson, TSteps>): this;
|
|
721
751
|
readonly when: BooleanWhenOverloads<TCurrentJson, WhenBuilder<TCurrentJson>>;
|
|
752
|
+
/**
|
|
753
|
+
* Continue the trunk after a boolean `.when(...)` branch chain, auto-merging EVERY branch
|
|
754
|
+
* tail accumulated across the chain into the next node — the same fan-in the object form
|
|
755
|
+
* produces. Typed as `ChainCursor<TCurrentJson>` (the pre-branch item type): boolean arms
|
|
756
|
+
* carry no output guard so the merged item type is underdetermined — use the object form
|
|
757
|
+
* `.when({ true: [...], false: [...] })` when you need a precise merged type inline.
|
|
758
|
+
*/
|
|
759
|
+
then<TOutputJson$1, TConfig extends RunnableNodeConfig<TCurrentJson, TOutputJson$1>>(config: TConfig): ChainCursor<RunnableNodeOutputJson<TConfig>>;
|
|
760
|
+
/**
|
|
761
|
+
* Chainable human-approval step after a boolean `.when(...)` branch chain — merges every
|
|
762
|
+
* branch tail into the approval node. Mirrors `ChainCursor.humanApproval`.
|
|
763
|
+
*/
|
|
764
|
+
humanApproval<TKey$1 extends string, TConfig extends Record<string, unknown>, TBindings extends DefinedNodeCredentialBindings | undefined = undefined>(node: DefinedHumanApprovalNode<TKey$1, TConfig, TCurrentJson & Record<string, unknown>, TBindings>, config: TConfig, metadata?: {
|
|
765
|
+
name?: string;
|
|
766
|
+
nodeId?: string;
|
|
767
|
+
}): ChainCursor<HumanApprovalOutputJson<TCurrentJson & Record<string, unknown>>>;
|
|
722
768
|
build(): WorkflowDefinition;
|
|
769
|
+
/** Endpoints of every arm added so far in this chain (prior arms + this one). */
|
|
770
|
+
private get accumulatedEndpoints();
|
|
771
|
+
private toCursor;
|
|
723
772
|
}
|
|
724
773
|
//#endregion
|
|
725
774
|
//#region ../core/src/workflow/dsl/ChainCursorResolver.d.ts
|
|
@@ -739,6 +788,12 @@ declare class ChainCursor<TCurrentJson> {
|
|
|
739
788
|
private readonly endpoints;
|
|
740
789
|
constructor(wf: WorkflowBuilder, endpoints: ReadonlyArray<ChainCursorEndpoint>);
|
|
741
790
|
then<TOutputJson$1, TConfig extends RunnableNodeConfig<TCurrentJson, TOutputJson$1>>(config: TConfig): ChainCursor<RunnableNodeOutputJson<TConfig>>;
|
|
791
|
+
/**
|
|
792
|
+
* Append a step whose output is MERGED onto `item.json` (shallow, output-wins) instead of
|
|
793
|
+
* replacing it — so earlier fields (e.g. trigger metadata) survive a transform/OCR/extraction
|
|
794
|
+
* node. Use for any node in a pipeline where you need data from before it.
|
|
795
|
+
*/
|
|
796
|
+
thenMerge<TOutputJson$1, TConfig extends RunnableNodeConfig<TCurrentJson, TOutputJson$1>>(config: TConfig): ChainCursor<TCurrentJson & RunnableNodeOutputJson<TConfig>>;
|
|
742
797
|
thenIntoInputHints<TOutputJson$1, TConfig extends RunnableNodeConfig<any, TOutputJson$1>>(config: TConfig): ChainCursor<RunnableNodeOutputJson<TConfig>>;
|
|
743
798
|
readonly when: ChainCursorWhenOverloads<TCurrentJson>;
|
|
744
799
|
route<TNextJson$1>(branches: Readonly<Record<OutputPortKey, (branch: ChainCursor<TCurrentJson>) => ChainCursor<TNextJson$1> | undefined>>): ChainCursor<TNextJson$1>;
|
|
@@ -929,6 +984,13 @@ interface NodeConfigBase {
|
|
|
929
984
|
readonly name?: string;
|
|
930
985
|
readonly id?: NodeId;
|
|
931
986
|
readonly icon?: string;
|
|
987
|
+
/**
|
|
988
|
+
* Plain-language, non-technical explanation of what this node does, surfaced in the workflow
|
|
989
|
+
* inspector / node properties sidebar. A first-class config option every authorable node accepts
|
|
990
|
+
* directly (alongside `id`), so it flows into the persisted config the mappers read. Distinct from
|
|
991
|
+
* {@link inspectorSummary} (config-derived label/value rows).
|
|
992
|
+
*/
|
|
993
|
+
readonly description?: string;
|
|
932
994
|
readonly execution?: Readonly<{
|
|
933
995
|
hint?: "local" | "worker";
|
|
934
996
|
queue?: string;
|
|
@@ -1428,6 +1490,7 @@ declare class NodeBackedToolConfig<TNodeConfig extends RunnableNodeConfig<any, a
|
|
|
1428
1490
|
readonly toolKind: "nodeBacked";
|
|
1429
1491
|
readonly description?: string;
|
|
1430
1492
|
readonly presentation?: AgentCanvasPresentation;
|
|
1493
|
+
readonly onRejected?: "halt" | "return";
|
|
1431
1494
|
private readonly inputSchemaValue;
|
|
1432
1495
|
private readonly outputSchemaValue;
|
|
1433
1496
|
private readonly mapInputValue?;
|
|
@@ -1589,6 +1652,13 @@ type NodeBackedToolConfigOptions<TNodeConfig extends RunnableNodeConfig<any, any
|
|
|
1589
1652
|
outputSchema: TOutputSchema;
|
|
1590
1653
|
mapInput?: NodeBackedToolInputMapper<TNodeConfig, input<TInputSchema>>;
|
|
1591
1654
|
mapOutput?: NodeBackedToolOutputMapper<TNodeConfig, input<TInputSchema>, output<TOutputSchema>>;
|
|
1655
|
+
/**
|
|
1656
|
+
* Marks THIS tool binding as human-in-the-loop and sets the behavior when a human rejects the
|
|
1657
|
+
* approval: `"return"` feeds the rejection back to the agent as a tool result, `"halt"` stops the
|
|
1658
|
+
* run. Set per binding, so two tools backed by the same node can reject differently. When set, it
|
|
1659
|
+
* takes precedence over any `humanApprovalToolBehavior` marker carried by the backing node.
|
|
1660
|
+
*/
|
|
1661
|
+
onRejected?: "halt" | "return";
|
|
1592
1662
|
}>;
|
|
1593
1663
|
interface AgentNodeConfig<TInputJson$1 = unknown, TOutputJson$1 = unknown> extends RunnableNodeConfig<TInputJson$1, TOutputJson$1> {
|
|
1594
1664
|
readonly messages: AgentMessageConfig<TInputJson$1>;
|
|
@@ -1638,10 +1708,12 @@ declare class ItemExprResolver {
|
|
|
1638
1708
|
//#region ../core/src/execution/RunnableOutputBehaviorResolver.d.ts
|
|
1639
1709
|
type RunnableOutputBehavior = Readonly<{
|
|
1640
1710
|
keepBinaries: boolean;
|
|
1711
|
+
mergeJson: boolean;
|
|
1641
1712
|
}>;
|
|
1642
1713
|
declare class RunnableOutputBehaviorResolver {
|
|
1643
1714
|
resolve(config: RunnableNodeConfig): RunnableOutputBehavior;
|
|
1644
1715
|
private isKeepBinariesEnabled;
|
|
1716
|
+
private isMergeJsonEnabled;
|
|
1645
1717
|
}
|
|
1646
1718
|
//#endregion
|
|
1647
1719
|
//#region ../core/src/execution/NodeOutputNormalizer.d.ts
|
|
@@ -1655,6 +1727,7 @@ declare class NodeOutputNormalizer {
|
|
|
1655
1727
|
private emitPortsToOutputs;
|
|
1656
1728
|
private normalizePortPayload;
|
|
1657
1729
|
private isItemLike;
|
|
1730
|
+
private isPlainJsonObject;
|
|
1658
1731
|
private applyOutput;
|
|
1659
1732
|
}
|
|
1660
1733
|
//#endregion
|
|
@@ -1670,7 +1743,13 @@ type HttpBodySpec = Readonly<{
|
|
|
1670
1743
|
kind: "none";
|
|
1671
1744
|
}> | Readonly<{
|
|
1672
1745
|
kind: "json";
|
|
1673
|
-
|
|
1746
|
+
/**
|
|
1747
|
+
* Serializable object/array to encode as the JSON body. Encoded exactly once via
|
|
1748
|
+
* `JSON.stringify`, so pass the value directly (e.g. `{ a: 1 }`) — never a
|
|
1749
|
+
* pre-stringified string (`JSON.stringify(...)`), which would double-encode it.
|
|
1750
|
+
* Typed as `object` so a bare string/primitive is a compile-time error.
|
|
1751
|
+
*/
|
|
1752
|
+
data: object;
|
|
1674
1753
|
}> | Readonly<{
|
|
1675
1754
|
kind: "form";
|
|
1676
1755
|
data: Readonly<Record<string, string>>;
|
|
@@ -2207,37 +2286,25 @@ declare const openAiChatModelPresets: OpenAiChatModelPresets;
|
|
|
2207
2286
|
//#endregion
|
|
2208
2287
|
//#region src/chatModels/CodemationChatModelConfig.d.ts
|
|
2209
2288
|
/**
|
|
2210
|
-
*
|
|
2289
|
+
* Complexity token sent to the managed LLM broker.
|
|
2290
|
+
* The broker maps this to a concrete provider model and thinking effort.
|
|
2291
|
+
* low = cheapest/fastest (short classification, simple extraction)
|
|
2292
|
+
* medium = default for most extraction/agent work
|
|
2293
|
+
* high = complex multi-step reasoning
|
|
2294
|
+
* xhigh = hardest problems, most capable model
|
|
2211
2295
|
*/
|
|
2212
|
-
|
|
2213
|
-
id: string;
|
|
2214
|
-
modelId: string;
|
|
2215
|
-
displayName: string;
|
|
2216
|
-
providerKey: string;
|
|
2217
|
-
inputCostPerMTok: number;
|
|
2218
|
-
outputCostPerMTok: number;
|
|
2219
|
-
contextWindow: number;
|
|
2220
|
-
tier: string;
|
|
2221
|
-
}
|
|
2222
|
-
/**
|
|
2223
|
-
* Bifrost-namespaced model ID. Kept as `string` so runtime-fetched model IDs
|
|
2224
|
-
* (from the CP allowlist) work without compile-time enumeration.
|
|
2225
|
-
* Story C replaced the prior hardcoded union with this open type.
|
|
2226
|
-
*/
|
|
2227
|
-
type CodemationManagedModel = string;
|
|
2296
|
+
type ManagedComplexity = "low" | "medium" | "high" | "xhigh";
|
|
2228
2297
|
declare class CodemationChatModelConfig implements ChatModelConfig {
|
|
2229
2298
|
readonly name: string;
|
|
2230
|
-
readonly
|
|
2299
|
+
readonly complexity: ManagedComplexity;
|
|
2231
2300
|
readonly options?: Readonly<{
|
|
2232
|
-
temperature?: number;
|
|
2233
2301
|
maxTokens?: number;
|
|
2234
2302
|
}> | undefined;
|
|
2235
2303
|
readonly type: typeof CodemationChatModelFactory;
|
|
2236
2304
|
readonly presentation: AgentCanvasPresentation<CanvasIconName>;
|
|
2237
2305
|
readonly provider = "codemation-managed";
|
|
2238
2306
|
readonly modelName: string;
|
|
2239
|
-
constructor(name: string,
|
|
2240
|
-
temperature?: number;
|
|
2307
|
+
constructor(name: string, complexity: ManagedComplexity, presentationIn?: AgentCanvasPresentation<CanvasIconName>, options?: Readonly<{
|
|
2241
2308
|
maxTokens?: number;
|
|
2242
2309
|
}> | undefined);
|
|
2243
2310
|
}
|
|
@@ -2250,17 +2317,6 @@ declare class CodemationChatModelFactory implements ChatModelFactory<CodemationC
|
|
|
2250
2317
|
}>): Promise<ChatLanguageModel>;
|
|
2251
2318
|
}
|
|
2252
2319
|
//#endregion
|
|
2253
|
-
//#region src/chatModels/ManagedModelFetcher.d.ts
|
|
2254
|
-
/**
|
|
2255
|
-
* Fetches the active platform-managed model allowlist from the CP.
|
|
2256
|
-
* Reads CONTROL_PLANE_URL from the workspace process env.
|
|
2257
|
-
* Returns an empty array if the env var is absent or the fetch fails.
|
|
2258
|
-
* Cache the result per session — the allowlist changes infrequently.
|
|
2259
|
-
*/
|
|
2260
|
-
declare class ManagedModelFetcher {
|
|
2261
|
-
fetch(): Promise<ManagedModelDto[]>;
|
|
2262
|
-
}
|
|
2263
|
-
//#endregion
|
|
2264
2320
|
//#region src/nodes/aiAgentSupport.types.d.ts
|
|
2265
2321
|
declare class AgentItemPortMap {
|
|
2266
2322
|
static fromItem(item: Item): NodeInputsByPort;
|
|
@@ -2455,6 +2511,7 @@ interface AIAgentOptions<TInputJson$1 = unknown, _TOutputJson = unknown> {
|
|
|
2455
2511
|
readonly chatModel: ChatModelConfig;
|
|
2456
2512
|
readonly tools?: ReadonlyArray<ToolConfig>;
|
|
2457
2513
|
readonly id?: string;
|
|
2514
|
+
readonly description?: string;
|
|
2458
2515
|
readonly retryPolicy?: RetryPolicySpec;
|
|
2459
2516
|
readonly guardrails?: AgentGuardrailConfig;
|
|
2460
2517
|
/** Engine applies with {@link RunnableNodeConfig.inputSchema} before {@link AIAgentNode.execute}. */
|
|
@@ -2484,6 +2541,21 @@ interface AIAgentOptions<TInputJson$1 = unknown, _TOutputJson = unknown> {
|
|
|
2484
2541
|
* Defaults to `["gmail", "ocr", "webhook"]` when unset.
|
|
2485
2542
|
*/
|
|
2486
2543
|
readonly untrustedSources?: ReadonlyArray<string>;
|
|
2544
|
+
/**
|
|
2545
|
+
* Whether file binaries are automatically passed to the chat model as native inline
|
|
2546
|
+
* multimodal blocks. Defaults to `true`. Set to `false` to skip the binary-passdown step
|
|
2547
|
+
* entirely (the node then behaves as if no binaries were present).
|
|
2548
|
+
*/
|
|
2549
|
+
readonly passBinariesToModel?: boolean;
|
|
2550
|
+
/**
|
|
2551
|
+
* Explicit binaries to pass to the chat model, instead of the ones on the current item.
|
|
2552
|
+
* Either a static array or a function resolved per item (so an author can forward binaries
|
|
2553
|
+
* produced by an earlier node further back in the workflow). When provided, these replace
|
|
2554
|
+
* `item.binary` as the passdown source. Ignored when {@link passBinariesToModel} is `false`.
|
|
2555
|
+
* Every binary is passed (images as image blocks, all other types as file blocks); the
|
|
2556
|
+
* provider surfaces an error at runtime if it doesn't support a given file type.
|
|
2557
|
+
*/
|
|
2558
|
+
readonly binaries?: ReadonlyArray<BinaryAttachment> | ((args: AgentMessageBuildArgs<TInputJson$1>) => ReadonlyArray<BinaryAttachment>);
|
|
2487
2559
|
}
|
|
2488
2560
|
/**
|
|
2489
2561
|
* AI agent: credential bindings are keyed to connection-owned LLM/tool node ids (ConnectionNodeIdFactory),
|
|
@@ -2501,6 +2573,7 @@ declare class AIAgent<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
2501
2573
|
readonly chatModel: ChatModelConfig;
|
|
2502
2574
|
readonly tools: ReadonlyArray<ToolConfig>;
|
|
2503
2575
|
readonly id?: string;
|
|
2576
|
+
readonly description?: string;
|
|
2504
2577
|
readonly retryPolicy: RetryPolicySpec;
|
|
2505
2578
|
readonly guardrails?: AgentGuardrailConfig;
|
|
2506
2579
|
readonly inputSchema?: ZodType<TInputJson$1>;
|
|
@@ -2508,6 +2581,8 @@ declare class AIAgent<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
2508
2581
|
readonly mcpServers?: ReadonlyArray<string>;
|
|
2509
2582
|
readonly pinnedMcpTools?: readonly string[];
|
|
2510
2583
|
readonly untrustedSources?: ReadonlyArray<string>;
|
|
2584
|
+
readonly passBinariesToModel?: boolean;
|
|
2585
|
+
readonly binaries?: ReadonlyArray<BinaryAttachment> | ((args: AgentMessageBuildArgs<TInputJson$1>) => ReadonlyArray<BinaryAttachment>);
|
|
2511
2586
|
constructor(options: AIAgentOptions<TInputJson$1, TOutputJson$1>);
|
|
2512
2587
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
2513
2588
|
}
|
|
@@ -2644,8 +2719,17 @@ declare class AIAgentNode implements RunnableNode<AIAgent<any, any>> {
|
|
|
2644
2719
|
readonly inputSchema: z.ZodUnknown;
|
|
2645
2720
|
private readonly connectionCredentialExecutionContextFactory;
|
|
2646
2721
|
private readonly preparedByExecutionContext;
|
|
2722
|
+
/**
|
|
2723
|
+
* The `ai` SDK, loaded lazily in {@link execute} so the SDK (~28MB RSS) stays
|
|
2724
|
+
* off the boot path — non-AI workflows never load it. Every path runs through
|
|
2725
|
+
* `execute` → `ensureAiSdk` before any sync helper touches `this.aiSdk`.
|
|
2726
|
+
*/
|
|
2727
|
+
private aiSdk;
|
|
2728
|
+
private aiSdkPromise;
|
|
2647
2729
|
constructor(nodeResolver: NodeResolver, credentialSessions: CredentialSessionService, nodeBackedToolRuntime: NodeBackedToolRuntime, executionHelpers: AIAgentExecutionHelpersFactory, structuredOutputRunner: AgentStructuredOutputRunner, toolExecutionCoordinator: AgentToolExecutionCoordinator, toolLoadingStrategyFactory: DeferredMetaToolStrategyFactory, agentMcpIntegration: AgentMcpIntegration);
|
|
2648
2730
|
execute(args: RunnableNodeExecuteArgs<AIAgent<any, any>>): Promise<unknown>;
|
|
2731
|
+
/** Load the `ai` SDK once per node instance (cached promise guards concurrent items). */
|
|
2732
|
+
private ensureAiSdk;
|
|
2649
2733
|
/**
|
|
2650
2734
|
* Resume path: re-enters the agent loop after a HITL suspension.
|
|
2651
2735
|
* Reconstructs the conversation from the checkpoint, injects the human decision
|
|
@@ -2680,8 +2764,10 @@ declare class AIAgentNode implements RunnableNode<AIAgent<any, any>> {
|
|
|
2680
2764
|
private resolveTools;
|
|
2681
2765
|
private createItemScopedTools;
|
|
2682
2766
|
/**
|
|
2683
|
-
*
|
|
2684
|
-
*
|
|
2767
|
+
* Resolves the HITL behavior for a tool binding, or `undefined` when it is not a HITL tool.
|
|
2768
|
+
* A binding is HITL if either the backing node carries a `defineHumanApprovalNode` marker or the
|
|
2769
|
+
* binding sets a per-binding `onRejected` via `asTool(..., { onRejected })`. The per-binding value
|
|
2770
|
+
* wins over the node marker, so two tools backed by the same node can reject differently.
|
|
2685
2771
|
*/
|
|
2686
2772
|
private resolveHumanApprovalBehavior;
|
|
2687
2773
|
/**
|
|
@@ -2752,6 +2838,22 @@ declare class AIAgentNode implements RunnableNode<AIAgent<any, any>> {
|
|
|
2752
2838
|
private summarizeLlmMessages;
|
|
2753
2839
|
private resultToJsonValue;
|
|
2754
2840
|
private createPromptMessages;
|
|
2841
|
+
/**
|
|
2842
|
+
* Picks which attachments feed the passdown. When the author supplies `config.binaries`
|
|
2843
|
+
* (a static array or a per-item function — e.g. to forward binaries from an earlier node),
|
|
2844
|
+
* those replace the current item's attachments; otherwise the current item's `item.binary`
|
|
2845
|
+
* is used.
|
|
2846
|
+
*/
|
|
2847
|
+
private selectBinaryAttachments;
|
|
2848
|
+
/**
|
|
2849
|
+
* Reads every attachment through `ctx.binary` (storage-backed, by reference — never base64 on
|
|
2850
|
+
* `item.json`) and resolves it to inline base64 so the agent can pass it to the chat model as a
|
|
2851
|
+
* native multimodal block. Images become image blocks; every other type (PDF, office docs, CSV,
|
|
2852
|
+
* JSON, …) becomes a file block — we don't filter by media type, so any binary can be fed to the
|
|
2853
|
+
* model. If the provider rejects an unsupported type the error surfaces at runtime, and the
|
|
2854
|
+
* workflow can filter the binary upstream.
|
|
2855
|
+
*/
|
|
2856
|
+
private resolveInlineBinaries;
|
|
2755
2857
|
/**
|
|
2756
2858
|
* When `item.json.__source` matches an entry in `config.untrustedSources`
|
|
2757
2859
|
* (default: `["gmail", "ocr", "webhook"]`), wraps every user-role message
|
|
@@ -2812,6 +2914,12 @@ declare class DeferredMetaToolStrategy implements ToolLoadingStrategy {
|
|
|
2812
2914
|
private mcpEntries;
|
|
2813
2915
|
private toolsByServerId;
|
|
2814
2916
|
private foundToolIds;
|
|
2917
|
+
/**
|
|
2918
|
+
* `jsonSchema` from the `ai` SDK, loaded lazily in {@link initialize} so the SDK
|
|
2919
|
+
* (~28MB RSS) stays off the boot path. `initialize` always runs before the sync
|
|
2920
|
+
* `getToolsForTurn` → `buildFindToolsDefinition` path, so this is set before use.
|
|
2921
|
+
*/
|
|
2922
|
+
private jsonSchema;
|
|
2815
2923
|
constructor(bm25: BM25Index, warnFn: (message: string) => void);
|
|
2816
2924
|
initialize(input: ToolLoadingStrategyInitInput): Promise<void>;
|
|
2817
2925
|
getToolsForTurn(context: ToolLoadingStrategyTurnContext): ToolSet;
|
|
@@ -2845,6 +2953,7 @@ interface AssertionOptions<TInputJson$1> {
|
|
|
2845
2953
|
readonly name?: string;
|
|
2846
2954
|
readonly id?: string;
|
|
2847
2955
|
readonly icon?: string;
|
|
2956
|
+
readonly description?: string;
|
|
2848
2957
|
/**
|
|
2849
2958
|
* Author callback. Returns one or more {@link AssertionResult}s per input item. Each becomes
|
|
2850
2959
|
* one emitted output item — useful for per-row reporting in the Tests tab. Return `[]` to
|
|
@@ -2863,12 +2972,27 @@ declare class Assertion<TInputJson$1 = unknown> implements RunnableNodeConfig<TI
|
|
|
2863
2972
|
readonly icon: string;
|
|
2864
2973
|
readonly name: string;
|
|
2865
2974
|
readonly id?: string;
|
|
2975
|
+
readonly description?: string;
|
|
2866
2976
|
readonly emitsAssertions: true;
|
|
2867
2977
|
readonly assertions: AssertionOptions<TInputJson$1>["assertions"];
|
|
2868
2978
|
constructor(options: AssertionOptions<TInputJson$1>);
|
|
2869
2979
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
2870
2980
|
}
|
|
2871
2981
|
//#endregion
|
|
2982
|
+
//#region src/nodes/nodeOptions.types.d.ts
|
|
2983
|
+
/**
|
|
2984
|
+
* Options shared by every authorable built-in node: a stable `id` and a plain-language
|
|
2985
|
+
* `description` (the non-technical "what does this node do" line surfaced in the node sidebar).
|
|
2986
|
+
*
|
|
2987
|
+
* `description` is a first-class config option — passed inline in the node's options, exactly like
|
|
2988
|
+
* `id` — and is threaded onto the config instance so it flows into the persisted workflow snapshot
|
|
2989
|
+
* the host / canvas mappers read. Node-specific option types extend this.
|
|
2990
|
+
*/
|
|
2991
|
+
interface NodeBaseOptions {
|
|
2992
|
+
readonly id?: string;
|
|
2993
|
+
readonly description?: string;
|
|
2994
|
+
}
|
|
2995
|
+
//#endregion
|
|
2872
2996
|
//#region src/nodes/CallbackNode.d.ts
|
|
2873
2997
|
declare class CallbackNode implements RunnableNode<Callback<any, any>> {
|
|
2874
2998
|
kind: "node";
|
|
@@ -2883,8 +3007,7 @@ declare class CallbackResultNormalizer {
|
|
|
2883
3007
|
//#endregion
|
|
2884
3008
|
//#region src/nodes/CallbackNodeFactory.d.ts
|
|
2885
3009
|
type CallbackHandler<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1, TConfig extends Callback<TInputJson$1, TOutputJson$1> = Callback<TInputJson$1, TOutputJson$1>> = (items: Items<TInputJson$1>, ctx: NodeExecutionContext<TConfig>) => Promise<Items<TOutputJson$1> | PortsEmission | void> | Items<TOutputJson$1> | PortsEmission | void;
|
|
2886
|
-
type CallbackOptions = Readonly<{
|
|
2887
|
-
id?: string;
|
|
3010
|
+
type CallbackOptions = NodeBaseOptions & Readonly<{
|
|
2888
3011
|
retryPolicy?: RetryPolicySpec;
|
|
2889
3012
|
nodeErrorHandler?: NodeErrorHandlerSpec;
|
|
2890
3013
|
declaredOutputPorts?: ReadonlyArray<string>;
|
|
@@ -2900,6 +3023,7 @@ declare class Callback<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> imp
|
|
|
2900
3023
|
readonly icon: "lucide:braces";
|
|
2901
3024
|
readonly emptyBatchExecution: "runOnce";
|
|
2902
3025
|
readonly id?: string;
|
|
3026
|
+
readonly description?: string;
|
|
2903
3027
|
readonly retryPolicy?: RetryPolicySpec;
|
|
2904
3028
|
readonly nodeErrorHandler?: NodeErrorHandlerSpec;
|
|
2905
3029
|
readonly declaredOutputPorts?: ReadonlyArray<string>;
|
|
@@ -2972,7 +3096,7 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
2972
3096
|
headers?: Readonly<Record<string, string>>;
|
|
2973
3097
|
/** Query parameters to append to the URL. */
|
|
2974
3098
|
query?: Readonly<Record<string, string>>;
|
|
2975
|
-
/** Request body specification. For
|
|
3099
|
+
/** Request body specification. For `kind:"json"`, pass the object directly in `body.data` — it is JSON-encoded exactly once, so never a pre-stringified string. */
|
|
2976
3100
|
body?: HttpBodySpec;
|
|
2977
3101
|
/**
|
|
2978
3102
|
* Credential slot.
|
|
@@ -3032,6 +3156,8 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3032
3156
|
*/
|
|
3033
3157
|
allowedOutboundHosts?: ReadonlyArray<string>;
|
|
3034
3158
|
id?: string;
|
|
3159
|
+
/** Plain-language explanation surfaced in the node sidebar. */
|
|
3160
|
+
description?: string;
|
|
3035
3161
|
}>;
|
|
3036
3162
|
readonly retryPolicy: RetryPolicySpec;
|
|
3037
3163
|
readonly kind: "node";
|
|
@@ -3040,6 +3166,7 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3040
3166
|
readonly hint: "local";
|
|
3041
3167
|
};
|
|
3042
3168
|
readonly icon: "lucide:globe";
|
|
3169
|
+
readonly description?: string;
|
|
3043
3170
|
constructor(name: string, args?: Readonly<{
|
|
3044
3171
|
/** HTTP method (default: GET). */
|
|
3045
3172
|
method?: string;
|
|
@@ -3054,7 +3181,7 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3054
3181
|
headers?: Readonly<Record<string, string>>;
|
|
3055
3182
|
/** Query parameters to append to the URL. */
|
|
3056
3183
|
query?: Readonly<Record<string, string>>;
|
|
3057
|
-
/** Request body specification. For
|
|
3184
|
+
/** Request body specification. For `kind:"json"`, pass the object directly in `body.data` — it is JSON-encoded exactly once, so never a pre-stringified string. */
|
|
3058
3185
|
body?: HttpBodySpec;
|
|
3059
3186
|
/**
|
|
3060
3187
|
* Credential slot.
|
|
@@ -3114,6 +3241,8 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3114
3241
|
*/
|
|
3115
3242
|
allowedOutboundHosts?: ReadonlyArray<string>;
|
|
3116
3243
|
id?: string;
|
|
3244
|
+
/** Plain-language explanation surfaced in the node sidebar. */
|
|
3245
|
+
description?: string;
|
|
3117
3246
|
}>, retryPolicy?: RetryPolicySpec);
|
|
3118
3247
|
get id(): string | undefined;
|
|
3119
3248
|
get method(): string;
|
|
@@ -3139,7 +3268,6 @@ declare class AggregateNode implements RunnableNode<Aggregate<any, any>> {
|
|
|
3139
3268
|
declare class Aggregate<TIn = unknown, TOut = unknown> implements RunnableNodeConfig<TIn, TOut> {
|
|
3140
3269
|
readonly name: string;
|
|
3141
3270
|
readonly aggregate: (items: Items<TIn>, ctx: NodeExecutionContext<Aggregate<TIn, TOut>>) => TOut | Promise<TOut>;
|
|
3142
|
-
readonly id?: string | undefined;
|
|
3143
3271
|
readonly kind: "node";
|
|
3144
3272
|
readonly type: TypeToken<unknown>;
|
|
3145
3273
|
readonly execution: {
|
|
@@ -3147,7 +3275,9 @@ declare class Aggregate<TIn = unknown, TOut = unknown> implements RunnableNodeCo
|
|
|
3147
3275
|
};
|
|
3148
3276
|
readonly keepBinaries: true;
|
|
3149
3277
|
readonly icon: "builtin:aggregate-rows";
|
|
3150
|
-
|
|
3278
|
+
readonly id?: string;
|
|
3279
|
+
readonly description?: string;
|
|
3280
|
+
constructor(name: string, aggregate: (items: Items<TIn>, ctx: NodeExecutionContext<Aggregate<TIn, TOut>>) => TOut | Promise<TOut>, idOrOptions?: string | NodeBaseOptions);
|
|
3151
3281
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3152
3282
|
}
|
|
3153
3283
|
//#endregion
|
|
@@ -3162,14 +3292,15 @@ declare class FilterNode implements RunnableNode<Filter<any>> {
|
|
|
3162
3292
|
declare class Filter<TIn = unknown> implements RunnableNodeConfig<TIn, TIn> {
|
|
3163
3293
|
readonly name: string;
|
|
3164
3294
|
readonly predicate: (item: Item<TIn>, index: number, items: Items<TIn>, ctx: NodeExecutionContext<Filter<TIn>>) => boolean;
|
|
3165
|
-
readonly id?: string | undefined;
|
|
3166
3295
|
readonly kind: "node";
|
|
3167
3296
|
readonly type: TypeToken<unknown>;
|
|
3168
3297
|
readonly execution: {
|
|
3169
3298
|
readonly hint: "local";
|
|
3170
3299
|
};
|
|
3171
3300
|
readonly icon: "lucide:filter";
|
|
3172
|
-
|
|
3301
|
+
readonly id?: string;
|
|
3302
|
+
readonly description?: string;
|
|
3303
|
+
constructor(name: string, predicate: (item: Item<TIn>, index: number, items: Items<TIn>, ctx: NodeExecutionContext<Filter<TIn>>) => boolean, idOrOptions?: string | NodeBaseOptions);
|
|
3173
3304
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3174
3305
|
}
|
|
3175
3306
|
//#endregion
|
|
@@ -3183,7 +3314,6 @@ declare class IfNode implements RunnableNode<If<any>> {
|
|
|
3183
3314
|
declare class If<TInputJson$1 = unknown> implements RunnableNodeConfig<TInputJson$1, TInputJson$1> {
|
|
3184
3315
|
readonly name: string;
|
|
3185
3316
|
readonly predicate: (item: Item<TInputJson$1>, index: number, items: Items<TInputJson$1>, ctx: NodeExecutionContext<If<TInputJson$1>>) => boolean;
|
|
3186
|
-
readonly id?: string | undefined;
|
|
3187
3317
|
readonly kind: "node";
|
|
3188
3318
|
readonly type: TypeToken<unknown>;
|
|
3189
3319
|
readonly execution: {
|
|
@@ -3191,7 +3321,9 @@ declare class If<TInputJson$1 = unknown> implements RunnableNodeConfig<TInputJso
|
|
|
3191
3321
|
};
|
|
3192
3322
|
readonly icon: "lucide:split@rot=90";
|
|
3193
3323
|
readonly declaredOutputPorts: readonly ["true", "false"];
|
|
3194
|
-
|
|
3324
|
+
readonly id?: string;
|
|
3325
|
+
readonly description?: string;
|
|
3326
|
+
constructor(name: string, predicate: (item: Item<TInputJson$1>, index: number, items: Items<TInputJson$1>, ctx: NodeExecutionContext<If<TInputJson$1>>) => boolean, idOrOptions?: string | NodeBaseOptions);
|
|
3195
3327
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3196
3328
|
}
|
|
3197
3329
|
//#endregion
|
|
@@ -3224,7 +3356,8 @@ declare class IsTestRun<TInputJson$1 = unknown> implements RunnableNodeConfig<TI
|
|
|
3224
3356
|
readonly declaredOutputPorts: readonly ["true", "false"];
|
|
3225
3357
|
readonly name: string;
|
|
3226
3358
|
readonly id?: string;
|
|
3227
|
-
|
|
3359
|
+
readonly description?: string;
|
|
3360
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3228
3361
|
}
|
|
3229
3362
|
//#endregion
|
|
3230
3363
|
//#region src/nodes/SwitchNode.d.ts
|
|
@@ -3245,7 +3378,6 @@ declare class Switch<TInputJson$1 = unknown> implements RunnableNodeConfig<TInpu
|
|
|
3245
3378
|
defaultCase: string;
|
|
3246
3379
|
resolveCaseKey: SwitchCaseKeyResolver<TInputJson$1>;
|
|
3247
3380
|
}>;
|
|
3248
|
-
readonly id?: string | undefined;
|
|
3249
3381
|
readonly kind: "node";
|
|
3250
3382
|
readonly type: TypeToken<unknown>;
|
|
3251
3383
|
readonly execution: {
|
|
@@ -3253,11 +3385,13 @@ declare class Switch<TInputJson$1 = unknown> implements RunnableNodeConfig<TInpu
|
|
|
3253
3385
|
};
|
|
3254
3386
|
readonly icon: "lucide:git-branch-plus";
|
|
3255
3387
|
readonly declaredOutputPorts: ReadonlyArray<string>;
|
|
3388
|
+
readonly id?: string;
|
|
3389
|
+
readonly description?: string;
|
|
3256
3390
|
constructor(name: string, cfg: Readonly<{
|
|
3257
3391
|
cases: readonly string[];
|
|
3258
3392
|
defaultCase: string;
|
|
3259
3393
|
resolveCaseKey: SwitchCaseKeyResolver<TInputJson$1>;
|
|
3260
|
-
}>,
|
|
3394
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3261
3395
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3262
3396
|
}
|
|
3263
3397
|
//#endregion
|
|
@@ -3272,7 +3406,6 @@ declare class SplitNode implements RunnableNode<Split<any, any>> {
|
|
|
3272
3406
|
declare class Split<TIn = unknown, TElem = unknown> implements RunnableNodeConfig<TIn, TElem> {
|
|
3273
3407
|
readonly name: string;
|
|
3274
3408
|
readonly getElements: (item: Item<TIn>, ctx: NodeExecutionContext<Split<TIn, TElem>>) => readonly TElem[];
|
|
3275
|
-
readonly id?: string | undefined;
|
|
3276
3409
|
readonly kind: "node";
|
|
3277
3410
|
readonly type: TypeToken<unknown>;
|
|
3278
3411
|
readonly execution: {
|
|
@@ -3285,7 +3418,9 @@ declare class Split<TIn = unknown, TElem = unknown> implements RunnableNodeConfi
|
|
|
3285
3418
|
*/
|
|
3286
3419
|
readonly continueWhenEmptyOutput: true;
|
|
3287
3420
|
readonly icon: "builtin:split-rows";
|
|
3288
|
-
|
|
3421
|
+
readonly id?: string;
|
|
3422
|
+
readonly description?: string;
|
|
3423
|
+
constructor(name: string, getElements: (item: Item<TIn>, ctx: NodeExecutionContext<Split<TIn, TElem>>) => readonly TElem[], idOrOptions?: string | NodeBaseOptions);
|
|
3289
3424
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3290
3425
|
}
|
|
3291
3426
|
//#endregion
|
|
@@ -3310,10 +3445,11 @@ declare class CronTrigger implements TriggerNodeConfig<CronTickJson> {
|
|
|
3310
3445
|
readonly type: TypeToken<unknown>;
|
|
3311
3446
|
readonly icon: "lucide:clock";
|
|
3312
3447
|
readonly id?: string;
|
|
3448
|
+
readonly description?: string;
|
|
3313
3449
|
constructor(name: string, args: Readonly<{
|
|
3314
3450
|
schedule: string;
|
|
3315
3451
|
timezone?: string;
|
|
3316
|
-
}>,
|
|
3452
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3317
3453
|
get schedule(): string;
|
|
3318
3454
|
get timezone(): string | undefined;
|
|
3319
3455
|
createJob(callback: CronCallback): Cron;
|
|
@@ -3353,12 +3489,12 @@ declare class ManualTrigger<TOutputJson$1 = unknown> implements TriggerNodeConfi
|
|
|
3353
3489
|
readonly icon: "lucide:play";
|
|
3354
3490
|
readonly defaultItems?: Items<TOutputJson$1>;
|
|
3355
3491
|
readonly id?: string;
|
|
3492
|
+
readonly description?: string;
|
|
3356
3493
|
/** Manual runs often emit an empty batch; still schedule downstream by default. */
|
|
3357
3494
|
readonly continueWhenEmptyOutput: true;
|
|
3358
|
-
constructor(name?: string,
|
|
3359
|
-
constructor(name: string, defaultItems: ManualTriggerDefaultValue<TOutputJson$1
|
|
3495
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3496
|
+
constructor(name: string, defaultItems: ManualTriggerDefaultValue<TOutputJson$1> | undefined, idOrOptions?: string | NodeBaseOptions);
|
|
3360
3497
|
private static resolveDefaultItems;
|
|
3361
|
-
private static resolveId;
|
|
3362
3498
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3363
3499
|
}
|
|
3364
3500
|
//#endregion
|
|
@@ -3371,8 +3507,7 @@ declare class MapDataNode implements RunnableNode<MapData<any, any>> {
|
|
|
3371
3507
|
}
|
|
3372
3508
|
//#endregion
|
|
3373
3509
|
//#region src/nodes/mapData.d.ts
|
|
3374
|
-
interface MapDataOptions {
|
|
3375
|
-
readonly id?: string;
|
|
3510
|
+
interface MapDataOptions extends NodeBaseOptions {
|
|
3376
3511
|
readonly keepBinaries?: boolean;
|
|
3377
3512
|
}
|
|
3378
3513
|
declare class MapData<TInputJson$1 = unknown, TOutputJson$1 = unknown> implements RunnableNodeConfig<TInputJson$1, TOutputJson$1> {
|
|
@@ -3388,6 +3523,7 @@ declare class MapData<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
3388
3523
|
readonly continueWhenEmptyOutput: true;
|
|
3389
3524
|
readonly icon: "lucide:square-pen";
|
|
3390
3525
|
readonly keepBinaries: boolean;
|
|
3526
|
+
readonly description?: string;
|
|
3391
3527
|
constructor(name: string, map: (item: Item<TInputJson$1>, ctx: NodeExecutionContext<MapData<TInputJson$1, TOutputJson$1>>) => TOutputJson$1, options?: MapDataOptions);
|
|
3392
3528
|
get id(): string | undefined;
|
|
3393
3529
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
@@ -3412,10 +3548,11 @@ declare class Merge<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> implem
|
|
|
3412
3548
|
*/
|
|
3413
3549
|
prefer?: ReadonlyArray<InputPortKey>;
|
|
3414
3550
|
}>;
|
|
3415
|
-
readonly id?: string | undefined;
|
|
3416
3551
|
readonly kind: "node";
|
|
3417
3552
|
readonly type: TypeToken<unknown>;
|
|
3418
3553
|
readonly icon: "lucide:merge@rot=90";
|
|
3554
|
+
readonly id?: string;
|
|
3555
|
+
readonly description?: string;
|
|
3419
3556
|
constructor(name: string, cfg?: Readonly<{
|
|
3420
3557
|
mode: MergeMode;
|
|
3421
3558
|
/**
|
|
@@ -3423,7 +3560,7 @@ declare class Merge<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> implem
|
|
|
3423
3560
|
* Any inputs not listed are appended in lexicographic order.
|
|
3424
3561
|
*/
|
|
3425
3562
|
prefer?: ReadonlyArray<InputPortKey>;
|
|
3426
|
-
}>,
|
|
3563
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3427
3564
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3428
3565
|
}
|
|
3429
3566
|
//#endregion
|
|
@@ -3437,14 +3574,15 @@ declare class NoOpNode implements RunnableNode<NoOp<any>> {
|
|
|
3437
3574
|
//#region src/nodes/noOp.d.ts
|
|
3438
3575
|
declare class NoOp<TItemJson = unknown> implements RunnableNodeConfig<TItemJson, TItemJson> {
|
|
3439
3576
|
readonly name: string;
|
|
3440
|
-
readonly id?: string | undefined;
|
|
3441
3577
|
readonly kind: "node";
|
|
3442
3578
|
readonly type: TypeToken<unknown>;
|
|
3443
3579
|
readonly execution: {
|
|
3444
3580
|
readonly hint: "local";
|
|
3445
3581
|
};
|
|
3446
3582
|
readonly icon: "lucide:circle-dashed";
|
|
3447
|
-
|
|
3583
|
+
readonly id?: string;
|
|
3584
|
+
readonly description?: string;
|
|
3585
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3448
3586
|
}
|
|
3449
3587
|
//#endregion
|
|
3450
3588
|
//#region src/nodes/SubWorkflowNode.d.ts
|
|
@@ -3464,13 +3602,14 @@ declare class SubWorkflow<TInputJson$1 = unknown, TOutputJson$1 = unknown> imple
|
|
|
3464
3602
|
nodeId: NodeId;
|
|
3465
3603
|
} | UpstreamRefPlaceholder> | undefined;
|
|
3466
3604
|
readonly startAt?: NodeId | undefined;
|
|
3467
|
-
readonly id?: string | undefined;
|
|
3468
3605
|
readonly kind: "node";
|
|
3469
3606
|
readonly type: TypeToken<unknown>;
|
|
3470
3607
|
readonly icon = "lucide:workflow";
|
|
3608
|
+
readonly id?: string;
|
|
3609
|
+
readonly description?: string;
|
|
3471
3610
|
constructor(name: string, workflowId: string, upstreamRefs?: Array<{
|
|
3472
3611
|
nodeId: NodeId;
|
|
3473
|
-
} | UpstreamRefPlaceholder> | undefined, startAt?: NodeId | undefined,
|
|
3612
|
+
} | UpstreamRefPlaceholder> | undefined, startAt?: NodeId | undefined, idOrOptions?: string | NodeBaseOptions);
|
|
3474
3613
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3475
3614
|
}
|
|
3476
3615
|
//#endregion
|
|
@@ -3556,7 +3695,6 @@ declare class WaitNode implements RunnableNode<Wait<any>> {
|
|
|
3556
3695
|
declare class Wait<TItemJson = unknown> implements RunnableNodeConfig<TItemJson, TItemJson> {
|
|
3557
3696
|
readonly name: string;
|
|
3558
3697
|
readonly milliseconds: number;
|
|
3559
|
-
readonly id?: string | undefined;
|
|
3560
3698
|
readonly kind: "node";
|
|
3561
3699
|
readonly type: TypeToken<unknown>;
|
|
3562
3700
|
readonly execution: {
|
|
@@ -3565,7 +3703,9 @@ declare class Wait<TItemJson = unknown> implements RunnableNodeConfig<TItemJson,
|
|
|
3565
3703
|
/** Pass-through empty batches should still advance to downstream nodes. */
|
|
3566
3704
|
readonly continueWhenEmptyOutput: true;
|
|
3567
3705
|
readonly icon: "lucide:hourglass";
|
|
3568
|
-
|
|
3706
|
+
readonly id?: string;
|
|
3707
|
+
readonly description?: string;
|
|
3708
|
+
constructor(name: string, milliseconds: number, idOrOptions?: string | NodeBaseOptions);
|
|
3569
3709
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3570
3710
|
}
|
|
3571
3711
|
//#endregion
|
|
@@ -3593,15 +3733,16 @@ declare class WebhookTrigger<TSchema extends WebhookInputSchema | undefined = un
|
|
|
3593
3733
|
readonly name: string;
|
|
3594
3734
|
private readonly args;
|
|
3595
3735
|
readonly handler: WebhookTriggerHandler<WebhookTrigger<TSchema>>;
|
|
3596
|
-
readonly id?: string | undefined;
|
|
3597
3736
|
readonly kind: "trigger";
|
|
3598
3737
|
readonly type: TypeToken<unknown>;
|
|
3599
3738
|
readonly icon = "lucide:globe";
|
|
3739
|
+
readonly id?: string;
|
|
3740
|
+
readonly description?: string;
|
|
3600
3741
|
constructor(name: string, args: Readonly<{
|
|
3601
3742
|
endpointKey: string;
|
|
3602
3743
|
methods: ReadonlyArray<HttpMethod>;
|
|
3603
3744
|
inputSchema?: TSchema;
|
|
3604
|
-
}>, handler?: WebhookTriggerHandler<WebhookTrigger<TSchema>>,
|
|
3745
|
+
}>, handler?: WebhookTriggerHandler<WebhookTrigger<TSchema>>, idOrOptions?: string | NodeBaseOptions);
|
|
3605
3746
|
get endpointKey(): string;
|
|
3606
3747
|
get methods(): ReadonlyArray<HttpMethod>;
|
|
3607
3748
|
get inputSchema(): TSchema | undefined;
|
|
@@ -3915,5 +4056,5 @@ declare const codemationDocumentScannerNode: DefinedNode<"codemation.document-sc
|
|
|
3915
4056
|
fields: Readonly<Record<string, DocScannerField>>;
|
|
3916
4057
|
}>, undefined>;
|
|
3917
4058
|
//#endregion
|
|
3918
|
-
export { AIAgent, AIAgentConnectionWorkflowExpander, AIAgentExecutionHelpersFactory, AIAgentNode, AgentItemPortMap, AgentMessageFactory, AgentOutputFactory, AgentStructuredOutputRepairPromptFactory, AgentStructuredOutputRunner, AgentToolCallPortMap, AgentToolErrorClassifier, AgentToolExecutionCoordinator, AgentToolRepairExhaustedError, AgentToolRepairPolicy, Aggregate, AggregateNode, Assertion, AssertionNode, AssertionOptions, BM25Index, BinaryRef, Callback, CallbackHandler, CallbackNode, CallbackOptions, CallbackResultNormalizer, CanvasIconName, CodemationChatModelConfig, CodemationChatModelFactory, CodemationDocumentScannerConfig,
|
|
4059
|
+
export { AIAgent, AIAgentConnectionWorkflowExpander, AIAgentExecutionHelpersFactory, AIAgentNode, AgentItemPortMap, AgentMessageFactory, AgentOutputFactory, AgentStructuredOutputRepairPromptFactory, AgentStructuredOutputRunner, AgentToolCallPortMap, AgentToolErrorClassifier, AgentToolExecutionCoordinator, AgentToolRepairExhaustedError, AgentToolRepairPolicy, Aggregate, AggregateNode, Assertion, AssertionNode, AssertionOptions, BM25Index, BinaryRef, Callback, CallbackHandler, CallbackNode, CallbackOptions, CallbackResultNormalizer, CanvasIconName, CodemationChatModelConfig, CodemationChatModelFactory, CodemationDocumentScannerConfig, ConnectionCredentialExecutionContextFactory, ConnectionCredentialNode, ConnectionCredentialNodeConfig, ConnectionCredentialNodeConfigFactory, CredentialSession, CronTickJson, CronTrigger, CronTriggerNode, DeferredMetaToolStrategy, DeferredMetaToolStrategyFactory, DefineRestNodeOptions, DocScannerAnalyzerType, DocScannerField, DocScannerOutput, ExecutedToolCall, Filter, FilterNode, FindToolsResult, HTTP_REQUEST_ACCEPTED_CREDENTIAL_TYPES, HttpBodySpec, HttpCredentialDelta, HttpRequest, HttpRequestDownloadMode, HttpRequestNode, HttpRequestOutputJson, HttpRequestResult, HttpRequestSpec, If, IfNode, IsTestRun, IsTestRunNode, ItemScopedToolBinding, ManagedComplexity, ManualTrigger, ManualTriggerNode, MapData, MapDataNode, MapDataOptions, Merge, MergeMode, MergeNode, NoOp, NoOpNode, NodeBaseOptions, OpenAIChatModelConfig, OpenAIChatModelFactory, OpenAiChatModelPresets, OpenAiCredentialSession, OpenAiStrictJsonSchemaFactory, PlannedToolCall, ResolvedTool, RestNodeApi, RestNodeErrorPolicy, RestNodeRequestShape, RestNodeResponseContext, SSRFBlockedError, Split, SplitNode, SsrfGuard, SubWorkflow, SubWorkflowNode, Switch, SwitchCaseKeyResolver, SwitchNode, TestTrigger, TestTriggerNode, TestTriggerOptions, ToolLoadingStrategy, ToolLoadingStrategyInitInput, ToolLoadingStrategyTurnContext, Wait, WaitDuration, WaitNode, WebhookRespondNowAndContinueError, WebhookRespondNowError, WebhookTrigger, WebhookTriggerNode, type WorkflowAgentMessages, type WorkflowAgentOptions, WorkflowAuthoringBuilder, WorkflowBranchBuilder, WorkflowChain, apiKeyCredentialType, basicAuthCredentialType, bearerTokenCredentialType, codemationDocumentScannerNode, collectionDeleteNode, collectionFindOneNode, collectionGetNode, collectionInsertNode, collectionListNode, collectionUpdateNode, createWorkflowBuilder, defineRestNode, inboxApproval, oauth2ClientCredentialsType, openAiChatModelPresets, registerCoreNodes, workflow };
|
|
3919
4060
|
//# sourceMappingURL=index.d.cts.map
|