@codemation/core-nodes 0.10.2 → 0.13.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 +122 -0
- package/dist/index.cjs +427 -102
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +205 -67
- package/dist/index.d.ts +206 -68
- package/dist/index.js +427 -99
- 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/index.ts +1 -1
- package/src/nodes/AIAgentConfig.ts +36 -0
- package/src/nodes/AIAgentNode.ts +81 -15
- package/src/nodes/AgentBinaryContentFactory.ts +74 -0
- package/src/nodes/AgentMessageFactory.ts +22 -6
- package/src/nodes/AgentToolResultContentFactory.ts +155 -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 +6 -1
- 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;
|
|
@@ -1646,10 +1708,12 @@ declare class ItemExprResolver {
|
|
|
1646
1708
|
//#region ../core/src/execution/RunnableOutputBehaviorResolver.d.ts
|
|
1647
1709
|
type RunnableOutputBehavior = Readonly<{
|
|
1648
1710
|
keepBinaries: boolean;
|
|
1711
|
+
mergeJson: boolean;
|
|
1649
1712
|
}>;
|
|
1650
1713
|
declare class RunnableOutputBehaviorResolver {
|
|
1651
1714
|
resolve(config: RunnableNodeConfig): RunnableOutputBehavior;
|
|
1652
1715
|
private isKeepBinariesEnabled;
|
|
1716
|
+
private isMergeJsonEnabled;
|
|
1653
1717
|
}
|
|
1654
1718
|
//#endregion
|
|
1655
1719
|
//#region ../core/src/execution/NodeOutputNormalizer.d.ts
|
|
@@ -1663,6 +1727,7 @@ declare class NodeOutputNormalizer {
|
|
|
1663
1727
|
private emitPortsToOutputs;
|
|
1664
1728
|
private normalizePortPayload;
|
|
1665
1729
|
private isItemLike;
|
|
1730
|
+
private isPlainJsonObject;
|
|
1666
1731
|
private applyOutput;
|
|
1667
1732
|
}
|
|
1668
1733
|
//#endregion
|
|
@@ -2221,37 +2286,25 @@ declare const openAiChatModelPresets: OpenAiChatModelPresets;
|
|
|
2221
2286
|
//#endregion
|
|
2222
2287
|
//#region src/chatModels/CodemationChatModelConfig.d.ts
|
|
2223
2288
|
/**
|
|
2224
|
-
*
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
providerKey: string;
|
|
2231
|
-
inputCostPerMTok: number;
|
|
2232
|
-
outputCostPerMTok: number;
|
|
2233
|
-
contextWindow: number;
|
|
2234
|
-
tier: string;
|
|
2235
|
-
}
|
|
2236
|
-
/**
|
|
2237
|
-
* Bifrost-namespaced model ID. Kept as `string` so runtime-fetched model IDs
|
|
2238
|
-
* (from the CP allowlist) work without compile-time enumeration.
|
|
2239
|
-
* Story C replaced the prior hardcoded union with this open type.
|
|
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
|
|
2240
2295
|
*/
|
|
2241
|
-
type
|
|
2296
|
+
type ManagedComplexity = "low" | "medium" | "high" | "xhigh";
|
|
2242
2297
|
declare class CodemationChatModelConfig implements ChatModelConfig {
|
|
2243
2298
|
readonly name: string;
|
|
2244
|
-
readonly
|
|
2299
|
+
readonly complexity: ManagedComplexity;
|
|
2245
2300
|
readonly options?: Readonly<{
|
|
2246
|
-
temperature?: number;
|
|
2247
2301
|
maxTokens?: number;
|
|
2248
2302
|
}> | undefined;
|
|
2249
2303
|
readonly type: typeof CodemationChatModelFactory;
|
|
2250
2304
|
readonly presentation: AgentCanvasPresentation<CanvasIconName>;
|
|
2251
2305
|
readonly provider = "codemation-managed";
|
|
2252
2306
|
readonly modelName: string;
|
|
2253
|
-
constructor(name: string,
|
|
2254
|
-
temperature?: number;
|
|
2307
|
+
constructor(name: string, complexity: ManagedComplexity, presentationIn?: AgentCanvasPresentation<CanvasIconName>, options?: Readonly<{
|
|
2255
2308
|
maxTokens?: number;
|
|
2256
2309
|
}> | undefined);
|
|
2257
2310
|
}
|
|
@@ -2264,17 +2317,6 @@ declare class CodemationChatModelFactory implements ChatModelFactory<CodemationC
|
|
|
2264
2317
|
}>): Promise<ChatLanguageModel>;
|
|
2265
2318
|
}
|
|
2266
2319
|
//#endregion
|
|
2267
|
-
//#region src/chatModels/ManagedModelFetcher.d.ts
|
|
2268
|
-
/**
|
|
2269
|
-
* Fetches the active platform-managed model allowlist from the CP.
|
|
2270
|
-
* Reads CONTROL_PLANE_URL from the workspace process env.
|
|
2271
|
-
* Returns an empty array if the env var is absent or the fetch fails.
|
|
2272
|
-
* Cache the result per session — the allowlist changes infrequently.
|
|
2273
|
-
*/
|
|
2274
|
-
declare class ManagedModelFetcher {
|
|
2275
|
-
fetch(): Promise<ManagedModelDto[]>;
|
|
2276
|
-
}
|
|
2277
|
-
//#endregion
|
|
2278
2320
|
//#region src/nodes/aiAgentSupport.types.d.ts
|
|
2279
2321
|
declare class AgentItemPortMap {
|
|
2280
2322
|
static fromItem(item: Item): NodeInputsByPort;
|
|
@@ -2346,7 +2388,13 @@ declare class AgentMessageFactory {
|
|
|
2346
2388
|
* Builds the `{ role: "tool", content: [{ type: "tool-result", ... }, ...] }` message returned
|
|
2347
2389
|
* to the model after each tool round.
|
|
2348
2390
|
*/
|
|
2349
|
-
static createToolResultsMessage(executedToolCalls: ReadonlyArray<ExecutedToolCall
|
|
2391
|
+
static createToolResultsMessage(executedToolCalls: ReadonlyArray<ExecutedToolCall>, passToolBinariesToModel?: boolean): ToolModelMessage;
|
|
2392
|
+
/**
|
|
2393
|
+
* Routes a tool result to a native multimodal `{ type: "content" }` output when it is
|
|
2394
|
+
* content-block-shaped (an MCP `CallToolResult`) and binary passdown is enabled; otherwise keeps
|
|
2395
|
+
* the inert `{ type: "json" }` path.
|
|
2396
|
+
*/
|
|
2397
|
+
private static toToolResultOutput;
|
|
2350
2398
|
private static toToolResultJson;
|
|
2351
2399
|
private static createPromptMessage;
|
|
2352
2400
|
}
|
|
@@ -2469,6 +2517,7 @@ interface AIAgentOptions<TInputJson$1 = unknown, _TOutputJson = unknown> {
|
|
|
2469
2517
|
readonly chatModel: ChatModelConfig;
|
|
2470
2518
|
readonly tools?: ReadonlyArray<ToolConfig>;
|
|
2471
2519
|
readonly id?: string;
|
|
2520
|
+
readonly description?: string;
|
|
2472
2521
|
readonly retryPolicy?: RetryPolicySpec;
|
|
2473
2522
|
readonly guardrails?: AgentGuardrailConfig;
|
|
2474
2523
|
/** Engine applies with {@link RunnableNodeConfig.inputSchema} before {@link AIAgentNode.execute}. */
|
|
@@ -2498,6 +2547,27 @@ interface AIAgentOptions<TInputJson$1 = unknown, _TOutputJson = unknown> {
|
|
|
2498
2547
|
* Defaults to `["gmail", "ocr", "webhook"]` when unset.
|
|
2499
2548
|
*/
|
|
2500
2549
|
readonly untrustedSources?: ReadonlyArray<string>;
|
|
2550
|
+
/**
|
|
2551
|
+
* Whether file binaries are automatically passed to the chat model as native inline
|
|
2552
|
+
* multimodal blocks. Defaults to `true`. Set to `false` to skip the binary-passdown step
|
|
2553
|
+
* entirely (the node then behaves as if no binaries were present).
|
|
2554
|
+
*/
|
|
2555
|
+
readonly passBinariesToModel?: boolean;
|
|
2556
|
+
/**
|
|
2557
|
+
* Whether binaries returned by a tool (e.g. an MCP tool returning a PDF or image) are passed to
|
|
2558
|
+
* the chat model as native multimodal tool-result blocks. Defaults to `true`. Set to `false` to
|
|
2559
|
+
* keep tool results as inert JSON text (the model then never "sees" the document).
|
|
2560
|
+
*/
|
|
2561
|
+
readonly passToolBinariesToModel?: boolean;
|
|
2562
|
+
/**
|
|
2563
|
+
* Explicit binaries to pass to the chat model, instead of the ones on the current item.
|
|
2564
|
+
* Either a static array or a function resolved per item (so an author can forward binaries
|
|
2565
|
+
* produced by an earlier node further back in the workflow). When provided, these replace
|
|
2566
|
+
* `item.binary` as the passdown source. Ignored when {@link passBinariesToModel} is `false`.
|
|
2567
|
+
* Every binary is passed (images as image blocks, all other types as file blocks); the
|
|
2568
|
+
* provider surfaces an error at runtime if it doesn't support a given file type.
|
|
2569
|
+
*/
|
|
2570
|
+
readonly binaries?: ReadonlyArray<BinaryAttachment> | ((args: AgentMessageBuildArgs<TInputJson$1>) => ReadonlyArray<BinaryAttachment>);
|
|
2501
2571
|
}
|
|
2502
2572
|
/**
|
|
2503
2573
|
* AI agent: credential bindings are keyed to connection-owned LLM/tool node ids (ConnectionNodeIdFactory),
|
|
@@ -2515,6 +2585,7 @@ declare class AIAgent<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
2515
2585
|
readonly chatModel: ChatModelConfig;
|
|
2516
2586
|
readonly tools: ReadonlyArray<ToolConfig>;
|
|
2517
2587
|
readonly id?: string;
|
|
2588
|
+
readonly description?: string;
|
|
2518
2589
|
readonly retryPolicy: RetryPolicySpec;
|
|
2519
2590
|
readonly guardrails?: AgentGuardrailConfig;
|
|
2520
2591
|
readonly inputSchema?: ZodType<TInputJson$1>;
|
|
@@ -2522,6 +2593,9 @@ declare class AIAgent<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
2522
2593
|
readonly mcpServers?: ReadonlyArray<string>;
|
|
2523
2594
|
readonly pinnedMcpTools?: readonly string[];
|
|
2524
2595
|
readonly untrustedSources?: ReadonlyArray<string>;
|
|
2596
|
+
readonly passBinariesToModel?: boolean;
|
|
2597
|
+
readonly passToolBinariesToModel?: boolean;
|
|
2598
|
+
readonly binaries?: ReadonlyArray<BinaryAttachment> | ((args: AgentMessageBuildArgs<TInputJson$1>) => ReadonlyArray<BinaryAttachment>);
|
|
2525
2599
|
constructor(options: AIAgentOptions<TInputJson$1, TOutputJson$1>);
|
|
2526
2600
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
2527
2601
|
}
|
|
@@ -2658,8 +2732,17 @@ declare class AIAgentNode implements RunnableNode<AIAgent<any, any>> {
|
|
|
2658
2732
|
readonly inputSchema: z.ZodUnknown;
|
|
2659
2733
|
private readonly connectionCredentialExecutionContextFactory;
|
|
2660
2734
|
private readonly preparedByExecutionContext;
|
|
2735
|
+
/**
|
|
2736
|
+
* The `ai` SDK, loaded lazily in {@link execute} so the SDK (~28MB RSS) stays
|
|
2737
|
+
* off the boot path — non-AI workflows never load it. Every path runs through
|
|
2738
|
+
* `execute` → `ensureAiSdk` before any sync helper touches `this.aiSdk`.
|
|
2739
|
+
*/
|
|
2740
|
+
private aiSdk;
|
|
2741
|
+
private aiSdkPromise;
|
|
2661
2742
|
constructor(nodeResolver: NodeResolver, credentialSessions: CredentialSessionService, nodeBackedToolRuntime: NodeBackedToolRuntime, executionHelpers: AIAgentExecutionHelpersFactory, structuredOutputRunner: AgentStructuredOutputRunner, toolExecutionCoordinator: AgentToolExecutionCoordinator, toolLoadingStrategyFactory: DeferredMetaToolStrategyFactory, agentMcpIntegration: AgentMcpIntegration);
|
|
2662
2743
|
execute(args: RunnableNodeExecuteArgs<AIAgent<any, any>>): Promise<unknown>;
|
|
2744
|
+
/** Load the `ai` SDK once per node instance (cached promise guards concurrent items). */
|
|
2745
|
+
private ensureAiSdk;
|
|
2663
2746
|
/**
|
|
2664
2747
|
* Resume path: re-enters the agent loop after a HITL suspension.
|
|
2665
2748
|
* Reconstructs the conversation from the checkpoint, injects the human decision
|
|
@@ -2768,6 +2851,22 @@ declare class AIAgentNode implements RunnableNode<AIAgent<any, any>> {
|
|
|
2768
2851
|
private summarizeLlmMessages;
|
|
2769
2852
|
private resultToJsonValue;
|
|
2770
2853
|
private createPromptMessages;
|
|
2854
|
+
/**
|
|
2855
|
+
* Picks which attachments feed the passdown. When the author supplies `config.binaries`
|
|
2856
|
+
* (a static array or a per-item function — e.g. to forward binaries from an earlier node),
|
|
2857
|
+
* those replace the current item's attachments; otherwise the current item's `item.binary`
|
|
2858
|
+
* is used.
|
|
2859
|
+
*/
|
|
2860
|
+
private selectBinaryAttachments;
|
|
2861
|
+
/**
|
|
2862
|
+
* Reads every attachment through `ctx.binary` (storage-backed, by reference — never base64 on
|
|
2863
|
+
* `item.json`) and resolves it to inline base64 so the agent can pass it to the chat model as a
|
|
2864
|
+
* native multimodal block. Images become image blocks; every other type (PDF, office docs, CSV,
|
|
2865
|
+
* JSON, …) becomes a file block — we don't filter by media type, so any binary can be fed to the
|
|
2866
|
+
* model. If the provider rejects an unsupported type the error surfaces at runtime, and the
|
|
2867
|
+
* workflow can filter the binary upstream.
|
|
2868
|
+
*/
|
|
2869
|
+
private resolveInlineBinaries;
|
|
2771
2870
|
/**
|
|
2772
2871
|
* When `item.json.__source` matches an entry in `config.untrustedSources`
|
|
2773
2872
|
* (default: `["gmail", "ocr", "webhook"]`), wraps every user-role message
|
|
@@ -2828,6 +2927,12 @@ declare class DeferredMetaToolStrategy implements ToolLoadingStrategy {
|
|
|
2828
2927
|
private mcpEntries;
|
|
2829
2928
|
private toolsByServerId;
|
|
2830
2929
|
private foundToolIds;
|
|
2930
|
+
/**
|
|
2931
|
+
* `jsonSchema` from the `ai` SDK, loaded lazily in {@link initialize} so the SDK
|
|
2932
|
+
* (~28MB RSS) stays off the boot path. `initialize` always runs before the sync
|
|
2933
|
+
* `getToolsForTurn` → `buildFindToolsDefinition` path, so this is set before use.
|
|
2934
|
+
*/
|
|
2935
|
+
private jsonSchema;
|
|
2831
2936
|
constructor(bm25: BM25Index, warnFn: (message: string) => void);
|
|
2832
2937
|
initialize(input: ToolLoadingStrategyInitInput): Promise<void>;
|
|
2833
2938
|
getToolsForTurn(context: ToolLoadingStrategyTurnContext): ToolSet;
|
|
@@ -2861,6 +2966,7 @@ interface AssertionOptions<TInputJson$1> {
|
|
|
2861
2966
|
readonly name?: string;
|
|
2862
2967
|
readonly id?: string;
|
|
2863
2968
|
readonly icon?: string;
|
|
2969
|
+
readonly description?: string;
|
|
2864
2970
|
/**
|
|
2865
2971
|
* Author callback. Returns one or more {@link AssertionResult}s per input item. Each becomes
|
|
2866
2972
|
* one emitted output item — useful for per-row reporting in the Tests tab. Return `[]` to
|
|
@@ -2879,12 +2985,27 @@ declare class Assertion<TInputJson$1 = unknown> implements RunnableNodeConfig<TI
|
|
|
2879
2985
|
readonly icon: string;
|
|
2880
2986
|
readonly name: string;
|
|
2881
2987
|
readonly id?: string;
|
|
2988
|
+
readonly description?: string;
|
|
2882
2989
|
readonly emitsAssertions: true;
|
|
2883
2990
|
readonly assertions: AssertionOptions<TInputJson$1>["assertions"];
|
|
2884
2991
|
constructor(options: AssertionOptions<TInputJson$1>);
|
|
2885
2992
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
2886
2993
|
}
|
|
2887
2994
|
//#endregion
|
|
2995
|
+
//#region src/nodes/nodeOptions.types.d.ts
|
|
2996
|
+
/**
|
|
2997
|
+
* Options shared by every authorable built-in node: a stable `id` and a plain-language
|
|
2998
|
+
* `description` (the non-technical "what does this node do" line surfaced in the node sidebar).
|
|
2999
|
+
*
|
|
3000
|
+
* `description` is a first-class config option — passed inline in the node's options, exactly like
|
|
3001
|
+
* `id` — and is threaded onto the config instance so it flows into the persisted workflow snapshot
|
|
3002
|
+
* the host / canvas mappers read. Node-specific option types extend this.
|
|
3003
|
+
*/
|
|
3004
|
+
interface NodeBaseOptions {
|
|
3005
|
+
readonly id?: string;
|
|
3006
|
+
readonly description?: string;
|
|
3007
|
+
}
|
|
3008
|
+
//#endregion
|
|
2888
3009
|
//#region src/nodes/CallbackNode.d.ts
|
|
2889
3010
|
declare class CallbackNode implements RunnableNode<Callback<any, any>> {
|
|
2890
3011
|
kind: "node";
|
|
@@ -2899,8 +3020,7 @@ declare class CallbackResultNormalizer {
|
|
|
2899
3020
|
//#endregion
|
|
2900
3021
|
//#region src/nodes/CallbackNodeFactory.d.ts
|
|
2901
3022
|
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;
|
|
2902
|
-
type CallbackOptions = Readonly<{
|
|
2903
|
-
id?: string;
|
|
3023
|
+
type CallbackOptions = NodeBaseOptions & Readonly<{
|
|
2904
3024
|
retryPolicy?: RetryPolicySpec;
|
|
2905
3025
|
nodeErrorHandler?: NodeErrorHandlerSpec;
|
|
2906
3026
|
declaredOutputPorts?: ReadonlyArray<string>;
|
|
@@ -2916,6 +3036,7 @@ declare class Callback<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> imp
|
|
|
2916
3036
|
readonly icon: "lucide:braces";
|
|
2917
3037
|
readonly emptyBatchExecution: "runOnce";
|
|
2918
3038
|
readonly id?: string;
|
|
3039
|
+
readonly description?: string;
|
|
2919
3040
|
readonly retryPolicy?: RetryPolicySpec;
|
|
2920
3041
|
readonly nodeErrorHandler?: NodeErrorHandlerSpec;
|
|
2921
3042
|
readonly declaredOutputPorts?: ReadonlyArray<string>;
|
|
@@ -3048,6 +3169,8 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3048
3169
|
*/
|
|
3049
3170
|
allowedOutboundHosts?: ReadonlyArray<string>;
|
|
3050
3171
|
id?: string;
|
|
3172
|
+
/** Plain-language explanation surfaced in the node sidebar. */
|
|
3173
|
+
description?: string;
|
|
3051
3174
|
}>;
|
|
3052
3175
|
readonly retryPolicy: RetryPolicySpec;
|
|
3053
3176
|
readonly kind: "node";
|
|
@@ -3056,6 +3179,7 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3056
3179
|
readonly hint: "local";
|
|
3057
3180
|
};
|
|
3058
3181
|
readonly icon: "lucide:globe";
|
|
3182
|
+
readonly description?: string;
|
|
3059
3183
|
constructor(name: string, args?: Readonly<{
|
|
3060
3184
|
/** HTTP method (default: GET). */
|
|
3061
3185
|
method?: string;
|
|
@@ -3130,6 +3254,8 @@ declare class HttpRequest<TInputJson$1 = Readonly<{
|
|
|
3130
3254
|
*/
|
|
3131
3255
|
allowedOutboundHosts?: ReadonlyArray<string>;
|
|
3132
3256
|
id?: string;
|
|
3257
|
+
/** Plain-language explanation surfaced in the node sidebar. */
|
|
3258
|
+
description?: string;
|
|
3133
3259
|
}>, retryPolicy?: RetryPolicySpec);
|
|
3134
3260
|
get id(): string | undefined;
|
|
3135
3261
|
get method(): string;
|
|
@@ -3155,7 +3281,6 @@ declare class AggregateNode implements RunnableNode<Aggregate<any, any>> {
|
|
|
3155
3281
|
declare class Aggregate<TIn = unknown, TOut = unknown> implements RunnableNodeConfig<TIn, TOut> {
|
|
3156
3282
|
readonly name: string;
|
|
3157
3283
|
readonly aggregate: (items: Items<TIn>, ctx: NodeExecutionContext<Aggregate<TIn, TOut>>) => TOut | Promise<TOut>;
|
|
3158
|
-
readonly id?: string | undefined;
|
|
3159
3284
|
readonly kind: "node";
|
|
3160
3285
|
readonly type: TypeToken<unknown>;
|
|
3161
3286
|
readonly execution: {
|
|
@@ -3163,7 +3288,9 @@ declare class Aggregate<TIn = unknown, TOut = unknown> implements RunnableNodeCo
|
|
|
3163
3288
|
};
|
|
3164
3289
|
readonly keepBinaries: true;
|
|
3165
3290
|
readonly icon: "builtin:aggregate-rows";
|
|
3166
|
-
|
|
3291
|
+
readonly id?: string;
|
|
3292
|
+
readonly description?: string;
|
|
3293
|
+
constructor(name: string, aggregate: (items: Items<TIn>, ctx: NodeExecutionContext<Aggregate<TIn, TOut>>) => TOut | Promise<TOut>, idOrOptions?: string | NodeBaseOptions);
|
|
3167
3294
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3168
3295
|
}
|
|
3169
3296
|
//#endregion
|
|
@@ -3178,14 +3305,15 @@ declare class FilterNode implements RunnableNode<Filter<any>> {
|
|
|
3178
3305
|
declare class Filter<TIn = unknown> implements RunnableNodeConfig<TIn, TIn> {
|
|
3179
3306
|
readonly name: string;
|
|
3180
3307
|
readonly predicate: (item: Item<TIn>, index: number, items: Items<TIn>, ctx: NodeExecutionContext<Filter<TIn>>) => boolean;
|
|
3181
|
-
readonly id?: string | undefined;
|
|
3182
3308
|
readonly kind: "node";
|
|
3183
3309
|
readonly type: TypeToken<unknown>;
|
|
3184
3310
|
readonly execution: {
|
|
3185
3311
|
readonly hint: "local";
|
|
3186
3312
|
};
|
|
3187
3313
|
readonly icon: "lucide:filter";
|
|
3188
|
-
|
|
3314
|
+
readonly id?: string;
|
|
3315
|
+
readonly description?: string;
|
|
3316
|
+
constructor(name: string, predicate: (item: Item<TIn>, index: number, items: Items<TIn>, ctx: NodeExecutionContext<Filter<TIn>>) => boolean, idOrOptions?: string | NodeBaseOptions);
|
|
3189
3317
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3190
3318
|
}
|
|
3191
3319
|
//#endregion
|
|
@@ -3199,7 +3327,6 @@ declare class IfNode implements RunnableNode<If<any>> {
|
|
|
3199
3327
|
declare class If<TInputJson$1 = unknown> implements RunnableNodeConfig<TInputJson$1, TInputJson$1> {
|
|
3200
3328
|
readonly name: string;
|
|
3201
3329
|
readonly predicate: (item: Item<TInputJson$1>, index: number, items: Items<TInputJson$1>, ctx: NodeExecutionContext<If<TInputJson$1>>) => boolean;
|
|
3202
|
-
readonly id?: string | undefined;
|
|
3203
3330
|
readonly kind: "node";
|
|
3204
3331
|
readonly type: TypeToken<unknown>;
|
|
3205
3332
|
readonly execution: {
|
|
@@ -3207,7 +3334,9 @@ declare class If<TInputJson$1 = unknown> implements RunnableNodeConfig<TInputJso
|
|
|
3207
3334
|
};
|
|
3208
3335
|
readonly icon: "lucide:split@rot=90";
|
|
3209
3336
|
readonly declaredOutputPorts: readonly ["true", "false"];
|
|
3210
|
-
|
|
3337
|
+
readonly id?: string;
|
|
3338
|
+
readonly description?: string;
|
|
3339
|
+
constructor(name: string, predicate: (item: Item<TInputJson$1>, index: number, items: Items<TInputJson$1>, ctx: NodeExecutionContext<If<TInputJson$1>>) => boolean, idOrOptions?: string | NodeBaseOptions);
|
|
3211
3340
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3212
3341
|
}
|
|
3213
3342
|
//#endregion
|
|
@@ -3240,7 +3369,8 @@ declare class IsTestRun<TInputJson$1 = unknown> implements RunnableNodeConfig<TI
|
|
|
3240
3369
|
readonly declaredOutputPorts: readonly ["true", "false"];
|
|
3241
3370
|
readonly name: string;
|
|
3242
3371
|
readonly id?: string;
|
|
3243
|
-
|
|
3372
|
+
readonly description?: string;
|
|
3373
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3244
3374
|
}
|
|
3245
3375
|
//#endregion
|
|
3246
3376
|
//#region src/nodes/SwitchNode.d.ts
|
|
@@ -3261,7 +3391,6 @@ declare class Switch<TInputJson$1 = unknown> implements RunnableNodeConfig<TInpu
|
|
|
3261
3391
|
defaultCase: string;
|
|
3262
3392
|
resolveCaseKey: SwitchCaseKeyResolver<TInputJson$1>;
|
|
3263
3393
|
}>;
|
|
3264
|
-
readonly id?: string | undefined;
|
|
3265
3394
|
readonly kind: "node";
|
|
3266
3395
|
readonly type: TypeToken<unknown>;
|
|
3267
3396
|
readonly execution: {
|
|
@@ -3269,11 +3398,13 @@ declare class Switch<TInputJson$1 = unknown> implements RunnableNodeConfig<TInpu
|
|
|
3269
3398
|
};
|
|
3270
3399
|
readonly icon: "lucide:git-branch-plus";
|
|
3271
3400
|
readonly declaredOutputPorts: ReadonlyArray<string>;
|
|
3401
|
+
readonly id?: string;
|
|
3402
|
+
readonly description?: string;
|
|
3272
3403
|
constructor(name: string, cfg: Readonly<{
|
|
3273
3404
|
cases: readonly string[];
|
|
3274
3405
|
defaultCase: string;
|
|
3275
3406
|
resolveCaseKey: SwitchCaseKeyResolver<TInputJson$1>;
|
|
3276
|
-
}>,
|
|
3407
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3277
3408
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3278
3409
|
}
|
|
3279
3410
|
//#endregion
|
|
@@ -3288,7 +3419,6 @@ declare class SplitNode implements RunnableNode<Split<any, any>> {
|
|
|
3288
3419
|
declare class Split<TIn = unknown, TElem = unknown> implements RunnableNodeConfig<TIn, TElem> {
|
|
3289
3420
|
readonly name: string;
|
|
3290
3421
|
readonly getElements: (item: Item<TIn>, ctx: NodeExecutionContext<Split<TIn, TElem>>) => readonly TElem[];
|
|
3291
|
-
readonly id?: string | undefined;
|
|
3292
3422
|
readonly kind: "node";
|
|
3293
3423
|
readonly type: TypeToken<unknown>;
|
|
3294
3424
|
readonly execution: {
|
|
@@ -3301,7 +3431,9 @@ declare class Split<TIn = unknown, TElem = unknown> implements RunnableNodeConfi
|
|
|
3301
3431
|
*/
|
|
3302
3432
|
readonly continueWhenEmptyOutput: true;
|
|
3303
3433
|
readonly icon: "builtin:split-rows";
|
|
3304
|
-
|
|
3434
|
+
readonly id?: string;
|
|
3435
|
+
readonly description?: string;
|
|
3436
|
+
constructor(name: string, getElements: (item: Item<TIn>, ctx: NodeExecutionContext<Split<TIn, TElem>>) => readonly TElem[], idOrOptions?: string | NodeBaseOptions);
|
|
3305
3437
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
3306
3438
|
}
|
|
3307
3439
|
//#endregion
|
|
@@ -3326,10 +3458,11 @@ declare class CronTrigger implements TriggerNodeConfig<CronTickJson> {
|
|
|
3326
3458
|
readonly type: TypeToken<unknown>;
|
|
3327
3459
|
readonly icon: "lucide:clock";
|
|
3328
3460
|
readonly id?: string;
|
|
3461
|
+
readonly description?: string;
|
|
3329
3462
|
constructor(name: string, args: Readonly<{
|
|
3330
3463
|
schedule: string;
|
|
3331
3464
|
timezone?: string;
|
|
3332
|
-
}>,
|
|
3465
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3333
3466
|
get schedule(): string;
|
|
3334
3467
|
get timezone(): string | undefined;
|
|
3335
3468
|
createJob(callback: CronCallback): Cron;
|
|
@@ -3369,12 +3502,12 @@ declare class ManualTrigger<TOutputJson$1 = unknown> implements TriggerNodeConfi
|
|
|
3369
3502
|
readonly icon: "lucide:play";
|
|
3370
3503
|
readonly defaultItems?: Items<TOutputJson$1>;
|
|
3371
3504
|
readonly id?: string;
|
|
3505
|
+
readonly description?: string;
|
|
3372
3506
|
/** Manual runs often emit an empty batch; still schedule downstream by default. */
|
|
3373
3507
|
readonly continueWhenEmptyOutput: true;
|
|
3374
|
-
constructor(name?: string,
|
|
3375
|
-
constructor(name: string, defaultItems: ManualTriggerDefaultValue<TOutputJson$1
|
|
3508
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3509
|
+
constructor(name: string, defaultItems: ManualTriggerDefaultValue<TOutputJson$1> | undefined, idOrOptions?: string | NodeBaseOptions);
|
|
3376
3510
|
private static resolveDefaultItems;
|
|
3377
|
-
private static resolveId;
|
|
3378
3511
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3379
3512
|
}
|
|
3380
3513
|
//#endregion
|
|
@@ -3387,8 +3520,7 @@ declare class MapDataNode implements RunnableNode<MapData<any, any>> {
|
|
|
3387
3520
|
}
|
|
3388
3521
|
//#endregion
|
|
3389
3522
|
//#region src/nodes/mapData.d.ts
|
|
3390
|
-
interface MapDataOptions {
|
|
3391
|
-
readonly id?: string;
|
|
3523
|
+
interface MapDataOptions extends NodeBaseOptions {
|
|
3392
3524
|
readonly keepBinaries?: boolean;
|
|
3393
3525
|
}
|
|
3394
3526
|
declare class MapData<TInputJson$1 = unknown, TOutputJson$1 = unknown> implements RunnableNodeConfig<TInputJson$1, TOutputJson$1> {
|
|
@@ -3404,6 +3536,7 @@ declare class MapData<TInputJson$1 = unknown, TOutputJson$1 = unknown> implement
|
|
|
3404
3536
|
readonly continueWhenEmptyOutput: true;
|
|
3405
3537
|
readonly icon: "lucide:square-pen";
|
|
3406
3538
|
readonly keepBinaries: boolean;
|
|
3539
|
+
readonly description?: string;
|
|
3407
3540
|
constructor(name: string, map: (item: Item<TInputJson$1>, ctx: NodeExecutionContext<MapData<TInputJson$1, TOutputJson$1>>) => TOutputJson$1, options?: MapDataOptions);
|
|
3408
3541
|
get id(): string | undefined;
|
|
3409
3542
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow> | undefined;
|
|
@@ -3428,10 +3561,11 @@ declare class Merge<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> implem
|
|
|
3428
3561
|
*/
|
|
3429
3562
|
prefer?: ReadonlyArray<InputPortKey>;
|
|
3430
3563
|
}>;
|
|
3431
|
-
readonly id?: string | undefined;
|
|
3432
3564
|
readonly kind: "node";
|
|
3433
3565
|
readonly type: TypeToken<unknown>;
|
|
3434
3566
|
readonly icon: "lucide:merge@rot=90";
|
|
3567
|
+
readonly id?: string;
|
|
3568
|
+
readonly description?: string;
|
|
3435
3569
|
constructor(name: string, cfg?: Readonly<{
|
|
3436
3570
|
mode: MergeMode;
|
|
3437
3571
|
/**
|
|
@@ -3439,7 +3573,7 @@ declare class Merge<TInputJson$1 = unknown, TOutputJson$1 = TInputJson$1> implem
|
|
|
3439
3573
|
* Any inputs not listed are appended in lexicographic order.
|
|
3440
3574
|
*/
|
|
3441
3575
|
prefer?: ReadonlyArray<InputPortKey>;
|
|
3442
|
-
}>,
|
|
3576
|
+
}>, idOrOptions?: string | NodeBaseOptions);
|
|
3443
3577
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3444
3578
|
}
|
|
3445
3579
|
//#endregion
|
|
@@ -3453,14 +3587,15 @@ declare class NoOpNode implements RunnableNode<NoOp<any>> {
|
|
|
3453
3587
|
//#region src/nodes/noOp.d.ts
|
|
3454
3588
|
declare class NoOp<TItemJson = unknown> implements RunnableNodeConfig<TItemJson, TItemJson> {
|
|
3455
3589
|
readonly name: string;
|
|
3456
|
-
readonly id?: string | undefined;
|
|
3457
3590
|
readonly kind: "node";
|
|
3458
3591
|
readonly type: TypeToken<unknown>;
|
|
3459
3592
|
readonly execution: {
|
|
3460
3593
|
readonly hint: "local";
|
|
3461
3594
|
};
|
|
3462
3595
|
readonly icon: "lucide:circle-dashed";
|
|
3463
|
-
|
|
3596
|
+
readonly id?: string;
|
|
3597
|
+
readonly description?: string;
|
|
3598
|
+
constructor(name?: string, idOrOptions?: string | NodeBaseOptions);
|
|
3464
3599
|
}
|
|
3465
3600
|
//#endregion
|
|
3466
3601
|
//#region src/nodes/SubWorkflowNode.d.ts
|
|
@@ -3480,13 +3615,14 @@ declare class SubWorkflow<TInputJson$1 = unknown, TOutputJson$1 = unknown> imple
|
|
|
3480
3615
|
nodeId: NodeId;
|
|
3481
3616
|
} | UpstreamRefPlaceholder> | undefined;
|
|
3482
3617
|
readonly startAt?: NodeId | undefined;
|
|
3483
|
-
readonly id?: string | undefined;
|
|
3484
3618
|
readonly kind: "node";
|
|
3485
3619
|
readonly type: TypeToken<unknown>;
|
|
3486
3620
|
readonly icon = "lucide:workflow";
|
|
3621
|
+
readonly id?: string;
|
|
3622
|
+
readonly description?: string;
|
|
3487
3623
|
constructor(name: string, workflowId: string, upstreamRefs?: Array<{
|
|
3488
3624
|
nodeId: NodeId;
|
|
3489
|
-
} | UpstreamRefPlaceholder> | undefined, startAt?: NodeId | undefined,
|
|
3625
|
+
} | UpstreamRefPlaceholder> | undefined, startAt?: NodeId | undefined, idOrOptions?: string | NodeBaseOptions);
|
|
3490
3626
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3491
3627
|
}
|
|
3492
3628
|
//#endregion
|
|
@@ -3572,7 +3708,6 @@ declare class WaitNode implements RunnableNode<Wait<any>> {
|
|
|
3572
3708
|
declare class Wait<TItemJson = unknown> implements RunnableNodeConfig<TItemJson, TItemJson> {
|
|
3573
3709
|
readonly name: string;
|
|
3574
3710
|
readonly milliseconds: number;
|
|
3575
|
-
readonly id?: string | undefined;
|
|
3576
3711
|
readonly kind: "node";
|
|
3577
3712
|
readonly type: TypeToken<unknown>;
|
|
3578
3713
|
readonly execution: {
|
|
@@ -3581,7 +3716,9 @@ declare class Wait<TItemJson = unknown> implements RunnableNodeConfig<TItemJson,
|
|
|
3581
3716
|
/** Pass-through empty batches should still advance to downstream nodes. */
|
|
3582
3717
|
readonly continueWhenEmptyOutput: true;
|
|
3583
3718
|
readonly icon: "lucide:hourglass";
|
|
3584
|
-
|
|
3719
|
+
readonly id?: string;
|
|
3720
|
+
readonly description?: string;
|
|
3721
|
+
constructor(name: string, milliseconds: number, idOrOptions?: string | NodeBaseOptions);
|
|
3585
3722
|
inspectorSummary(): ReadonlyArray<NodeInspectorSummaryRow>;
|
|
3586
3723
|
}
|
|
3587
3724
|
//#endregion
|
|
@@ -3609,15 +3746,16 @@ declare class WebhookTrigger<TSchema extends WebhookInputSchema | undefined = un
|
|
|
3609
3746
|
readonly name: string;
|
|
3610
3747
|
private readonly args;
|
|
3611
3748
|
readonly handler: WebhookTriggerHandler<WebhookTrigger<TSchema>>;
|
|
3612
|
-
readonly id?: string | undefined;
|
|
3613
3749
|
readonly kind: "trigger";
|
|
3614
3750
|
readonly type: TypeToken<unknown>;
|
|
3615
3751
|
readonly icon = "lucide:globe";
|
|
3752
|
+
readonly id?: string;
|
|
3753
|
+
readonly description?: string;
|
|
3616
3754
|
constructor(name: string, args: Readonly<{
|
|
3617
3755
|
endpointKey: string;
|
|
3618
3756
|
methods: ReadonlyArray<HttpMethod>;
|
|
3619
3757
|
inputSchema?: TSchema;
|
|
3620
|
-
}>, handler?: WebhookTriggerHandler<WebhookTrigger<TSchema>>,
|
|
3758
|
+
}>, handler?: WebhookTriggerHandler<WebhookTrigger<TSchema>>, idOrOptions?: string | NodeBaseOptions);
|
|
3621
3759
|
get endpointKey(): string;
|
|
3622
3760
|
get methods(): ReadonlyArray<HttpMethod>;
|
|
3623
3761
|
get inputSchema(): TSchema | undefined;
|
|
@@ -3931,5 +4069,5 @@ declare const codemationDocumentScannerNode: DefinedNode<"codemation.document-sc
|
|
|
3931
4069
|
fields: Readonly<Record<string, DocScannerField>>;
|
|
3932
4070
|
}>, undefined>;
|
|
3933
4071
|
//#endregion
|
|
3934
|
-
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,
|
|
4072
|
+
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 };
|
|
3935
4073
|
//# sourceMappingURL=index.d.cts.map
|