@runtypelabs/cli 2.16.5 → 2.16.7
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/dist/index.js +1313 -63
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -15732,6 +15732,213 @@ var productConfigurationSummarySchema = external_exports.object({
|
|
|
15732
15732
|
var ORGANIZATION_INTEGRATION_PROVIDERS = ["slack", "telegram", "discord", "linear", "github"];
|
|
15733
15733
|
var integrationProviderSchema = external_exports.enum(ORGANIZATION_INTEGRATION_PROVIDERS);
|
|
15734
15734
|
var integrationStatusSchema = external_exports.enum(["active", "revoked", "pending"]);
|
|
15735
|
+
var FILTER_OPERATORS = [
|
|
15736
|
+
"eq",
|
|
15737
|
+
"neq",
|
|
15738
|
+
"gt",
|
|
15739
|
+
"gte",
|
|
15740
|
+
"lt",
|
|
15741
|
+
"lte",
|
|
15742
|
+
"between",
|
|
15743
|
+
"contains",
|
|
15744
|
+
"startsWith",
|
|
15745
|
+
"endsWith",
|
|
15746
|
+
"in",
|
|
15747
|
+
"notIn",
|
|
15748
|
+
"isSet",
|
|
15749
|
+
"isNotSet",
|
|
15750
|
+
"isTrue",
|
|
15751
|
+
"isFalse",
|
|
15752
|
+
"withinLastDays",
|
|
15753
|
+
"olderThanDays"
|
|
15754
|
+
];
|
|
15755
|
+
var FIELD_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9_.-]{0,63}$/;
|
|
15756
|
+
var filterFieldSchema = external_exports.string().regex(FIELD_NAME_RE, "Invalid field name");
|
|
15757
|
+
var recordFilterConditionSchema = external_exports.object({
|
|
15758
|
+
field: filterFieldSchema,
|
|
15759
|
+
op: external_exports.enum(FILTER_OPERATORS),
|
|
15760
|
+
value: external_exports.unknown().optional()
|
|
15761
|
+
});
|
|
15762
|
+
var recordFilterGroupSchema = external_exports.lazy(
|
|
15763
|
+
() => external_exports.object({
|
|
15764
|
+
op: external_exports.enum(["and", "or"]),
|
|
15765
|
+
conditions: external_exports.array(external_exports.union([recordFilterConditionSchema, recordFilterGroupSchema])).min(1).max(50)
|
|
15766
|
+
})
|
|
15767
|
+
);
|
|
15768
|
+
var recordFilterSchema = external_exports.object({
|
|
15769
|
+
type: external_exports.string().min(1).max(255),
|
|
15770
|
+
where: external_exports.union([recordFilterConditionSchema, recordFilterGroupSchema]).optional()
|
|
15771
|
+
});
|
|
15772
|
+
var MCPServerCategory = {
|
|
15773
|
+
COMMUNICATION: "communication",
|
|
15774
|
+
PRODUCTIVITY: "productivity",
|
|
15775
|
+
DEVELOPMENT: "development",
|
|
15776
|
+
PROJECT_MANAGEMENT: "project_management"
|
|
15777
|
+
};
|
|
15778
|
+
var agentSubagentConfigSchema = external_exports.object({
|
|
15779
|
+
/**
|
|
15780
|
+
* Pool of tool IDs the parent is permitted to grant to ad-hoc subagents.
|
|
15781
|
+
* Supports exact IDs, wildcards (`mcp:*`, `builtin:*`, `platform:*`), and
|
|
15782
|
+
* runtime-tool names. Must be a SUBSET of the parent's resolved tools —
|
|
15783
|
+
* validated at dispatch (no privilege escalation).
|
|
15784
|
+
*/
|
|
15785
|
+
toolPool: external_exports.array(external_exports.string()),
|
|
15786
|
+
/** Default for spawned subagent loops. Default 5. */
|
|
15787
|
+
defaultMaxTurns: external_exports.number().optional(),
|
|
15788
|
+
/** Hard cap a spawned subagent can request. Default 10. */
|
|
15789
|
+
maxTurnsLimit: external_exports.number().optional(),
|
|
15790
|
+
/** Hard ceiling on total spawns per top-level parent invocation. Default 5. */
|
|
15791
|
+
maxSpawnsPerRun: external_exports.number().optional(),
|
|
15792
|
+
/** Default model for spawned subagents. Defaults to parent's model. */
|
|
15793
|
+
defaultModel: external_exports.string().optional(),
|
|
15794
|
+
/**
|
|
15795
|
+
* Whether a spawned subagent can itself spawn subagents. Default `false`
|
|
15796
|
+
* (Anthropic-aligned). Even when `true`, MAX_NESTED_DEPTH still bounds the
|
|
15797
|
+
* recursion tree.
|
|
15798
|
+
*/
|
|
15799
|
+
allowNesting: external_exports.boolean().optional(),
|
|
15800
|
+
/** Default per-spawn timeout. Default 300_000 (5 min). */
|
|
15801
|
+
defaultTimeoutMs: external_exports.number().optional()
|
|
15802
|
+
});
|
|
15803
|
+
var codeModeConfigSchema = external_exports.object({
|
|
15804
|
+
/** Tool IDs available in the sandbox (subset of agent's tools, supports wildcards like `mcp:*`) */
|
|
15805
|
+
toolPool: external_exports.array(external_exports.string()),
|
|
15806
|
+
/** Optional custom description prefix for the synthesized tool */
|
|
15807
|
+
description: external_exports.string().optional(),
|
|
15808
|
+
/** Sandbox execution timeout in ms (default 60000) */
|
|
15809
|
+
timeoutMs: external_exports.number().optional()
|
|
15810
|
+
});
|
|
15811
|
+
var toolLimitSchema = external_exports.object({
|
|
15812
|
+
maxCalls: external_exports.number().optional(),
|
|
15813
|
+
required: external_exports.boolean().optional()
|
|
15814
|
+
});
|
|
15815
|
+
var approvalConfigSchema = external_exports.object({
|
|
15816
|
+
/** Tools that require user approval before execution.
|
|
15817
|
+
* string[]: tool names/patterns ("send_email", "mcp:*", "builtin:*")
|
|
15818
|
+
* true: all tools require approval
|
|
15819
|
+
* false/undefined: no approval required (default) */
|
|
15820
|
+
require: external_exports.union([external_exports.array(external_exports.string()), external_exports.boolean()]).optional(),
|
|
15821
|
+
/** Timeout in ms for approval response (default: 300000 = 5 min) */
|
|
15822
|
+
timeout: external_exports.number().optional()
|
|
15823
|
+
});
|
|
15824
|
+
var toolSearchConfigSchema = external_exports.object({
|
|
15825
|
+
/** Explicit opt-in/out. When omitted, auto-activates if tool count >= threshold. */
|
|
15826
|
+
enabled: external_exports.boolean().optional(),
|
|
15827
|
+
/** Tool count at which search activates (default: 20) */
|
|
15828
|
+
threshold: external_exports.number().optional(),
|
|
15829
|
+
/** Tool names or IDs that should always be in the hot set */
|
|
15830
|
+
alwaysLoaded: external_exports.array(external_exports.string()).optional()
|
|
15831
|
+
});
|
|
15832
|
+
var agentToolsConfigSchema = external_exports.object({
|
|
15833
|
+
/** IDs of tools to enable (builtin:*, mcp:*, platform:*, platform:orthogonal:*, custom tool IDs) */
|
|
15834
|
+
toolIds: external_exports.array(external_exports.string()).optional(),
|
|
15835
|
+
/** Per-tool parameter configurations, keyed by tool ID */
|
|
15836
|
+
toolConfigs: external_exports.record(external_exports.string(), external_exports.custom()).optional(),
|
|
15837
|
+
/** Inline tool definitions (no DB storage needed) */
|
|
15838
|
+
runtimeTools: external_exports.array(external_exports.custom()).optional(),
|
|
15839
|
+
/** Runtime MCP server connections */
|
|
15840
|
+
mcpServers: external_exports.array(external_exports.custom()).optional(),
|
|
15841
|
+
/** Maximum tool calls per execution (renamed from maxTurns in agents) */
|
|
15842
|
+
maxToolCalls: external_exports.number().optional(),
|
|
15843
|
+
/** Tool calling strategy */
|
|
15844
|
+
toolCallStrategy: external_exports.enum(["auto", "required", "none"]).optional(),
|
|
15845
|
+
/** Allow parallel tool execution */
|
|
15846
|
+
parallelCalls: external_exports.boolean().optional(),
|
|
15847
|
+
/** Per-tool call limits */
|
|
15848
|
+
perToolLimits: external_exports.record(external_exports.string(), toolLimitSchema).optional(),
|
|
15849
|
+
/** Human-in-the-loop approval configuration */
|
|
15850
|
+
approval: approvalConfigSchema.optional(),
|
|
15851
|
+
/**
|
|
15852
|
+
* Opt-in: enables agent-driven dynamic subagent spawning. When set, the
|
|
15853
|
+
* prompt-step tool-prep layer synthesizes a `spawn_subagent` tool into the
|
|
15854
|
+
* AI-SDK tool list with a dynamically-generated description listing the
|
|
15855
|
+
* tools the parent's LLM can grant. See `AgentSubagentConfig` for fields.
|
|
15856
|
+
*/
|
|
15857
|
+
subagentConfig: agentSubagentConfigSchema.optional(),
|
|
15858
|
+
/**
|
|
15859
|
+
* Opt-in: enables a synthesized `code_mode` tool that lets agents execute
|
|
15860
|
+
* JavaScript code in a sandboxed V8 isolate with access to a subset of
|
|
15861
|
+
* the agent's tools. The LLM writes code that calls tool functions
|
|
15862
|
+
* deterministically instead of making individual tool calls.
|
|
15863
|
+
*/
|
|
15864
|
+
codeModeConfig: codeModeConfigSchema.optional(),
|
|
15865
|
+
/**
|
|
15866
|
+
* Tool search configuration. When total tool count exceeds the threshold,
|
|
15867
|
+
* deferred loading activates: only a "hot set" of tools is sent to the model
|
|
15868
|
+
* each turn, and a synthetic `tool_search` meta-tool lets the model discover
|
|
15869
|
+
* and load additional tools on demand.
|
|
15870
|
+
*
|
|
15871
|
+
* Auto-activates when omitted and total tool count >= 20.
|
|
15872
|
+
* Set `enabled: false` to force all tools to be sent regardless of count.
|
|
15873
|
+
*/
|
|
15874
|
+
toolSearch: toolSearchConfigSchema.optional()
|
|
15875
|
+
});
|
|
15876
|
+
var CreateToolSchema = external_exports.object({
|
|
15877
|
+
name: external_exports.string().min(1).max(100),
|
|
15878
|
+
description: external_exports.string().min(1).max(500),
|
|
15879
|
+
toolType: external_exports.enum(["flow", "custom", "external", "graphql", "mcp", "local", "subagent"]),
|
|
15880
|
+
parametersSchema: external_exports.record(external_exports.string(), external_exports.any()),
|
|
15881
|
+
config: external_exports.record(external_exports.string(), external_exports.any())
|
|
15882
|
+
});
|
|
15883
|
+
var ExecuteToolSchema = external_exports.object({
|
|
15884
|
+
// toolId is redundant with the URL path param (/v1/tools/:id/execute) and optional
|
|
15885
|
+
// so MCP/SDK callers that only send { parameters } aren't rejected at validation.
|
|
15886
|
+
toolId: external_exports.string().optional(),
|
|
15887
|
+
parameters: external_exports.record(external_exports.string(), external_exports.any()),
|
|
15888
|
+
context: external_exports.object({
|
|
15889
|
+
flowExecutionId: external_exports.string().optional(),
|
|
15890
|
+
stepId: external_exports.string().optional(),
|
|
15891
|
+
userId: external_exports.string()
|
|
15892
|
+
}).optional()
|
|
15893
|
+
});
|
|
15894
|
+
var contextFallbackSchema = external_exports.union([
|
|
15895
|
+
external_exports.object({ type: external_exports.literal("retry"), delay: external_exports.number().optional() }),
|
|
15896
|
+
external_exports.object({
|
|
15897
|
+
type: external_exports.literal("step"),
|
|
15898
|
+
stepType: external_exports.string(),
|
|
15899
|
+
stepConfig: external_exports.record(external_exports.string(), external_exports.unknown()),
|
|
15900
|
+
delay: external_exports.number().optional()
|
|
15901
|
+
}),
|
|
15902
|
+
external_exports.object({
|
|
15903
|
+
type: external_exports.literal("flow"),
|
|
15904
|
+
flowId: external_exports.string(),
|
|
15905
|
+
inputs: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
15906
|
+
delay: external_exports.number().optional()
|
|
15907
|
+
})
|
|
15908
|
+
]);
|
|
15909
|
+
var contextErrorHandlingConfigSchema = external_exports.union([
|
|
15910
|
+
external_exports.enum(["fail", "continue", "default"]),
|
|
15911
|
+
external_exports.object({
|
|
15912
|
+
onError: external_exports.enum(["fail", "continue", "fallback", "default"]),
|
|
15913
|
+
fallbacks: external_exports.array(contextFallbackSchema).optional()
|
|
15914
|
+
})
|
|
15915
|
+
]);
|
|
15916
|
+
var httpConfigSchema = external_exports.object({
|
|
15917
|
+
url: external_exports.string().min(1, "URL is required"),
|
|
15918
|
+
method: external_exports.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]).optional(),
|
|
15919
|
+
headers: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
15920
|
+
body: external_exports.string().optional(),
|
|
15921
|
+
timeout: external_exports.number().optional()
|
|
15922
|
+
});
|
|
15923
|
+
var authConfigSchema = external_exports.object({
|
|
15924
|
+
type: external_exports.enum(["none", "bearer", "basic", "api-key", "custom"]),
|
|
15925
|
+
token: external_exports.string().optional(),
|
|
15926
|
+
username: external_exports.string().optional(),
|
|
15927
|
+
password: external_exports.string().optional(),
|
|
15928
|
+
apiKey: external_exports.string().optional(),
|
|
15929
|
+
headerName: external_exports.string().optional(),
|
|
15930
|
+
customHeaders: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
15931
|
+
});
|
|
15932
|
+
var pdfOptionsConfigSchema = external_exports.object({
|
|
15933
|
+
format: external_exports.enum(["A4", "Letter"]).optional(),
|
|
15934
|
+
landscape: external_exports.boolean().optional(),
|
|
15935
|
+
margin: external_exports.object({
|
|
15936
|
+
top: external_exports.string().optional(),
|
|
15937
|
+
bottom: external_exports.string().optional(),
|
|
15938
|
+
left: external_exports.string().optional(),
|
|
15939
|
+
right: external_exports.string().optional()
|
|
15940
|
+
}).optional()
|
|
15941
|
+
});
|
|
15735
15942
|
var setVariableConfigSchema = external_exports.object({
|
|
15736
15943
|
variableName: external_exports.string().min(1, "Variable name is required"),
|
|
15737
15944
|
// The object branch is modeled as a record (rather than the historical
|
|
@@ -15739,9 +15946,818 @@ var setVariableConfigSchema = external_exports.object({
|
|
|
15739
15946
|
// a bare `{}` is a supertype of `string | number | boolean` and would absorb
|
|
15740
15947
|
// them, degrading `value` to `{}`. A record accepts exactly the same inputs as
|
|
15741
15948
|
// the prior `z.object({})` (any plain object, never an array or primitive).
|
|
15742
|
-
|
|
15949
|
+
//
|
|
15950
|
+
// `null` is accepted: clearing a variable (`value: null`) is a legitimate
|
|
15951
|
+
// idiom (commonly the "else" branch of a conditional — `draft_email = null`,
|
|
15952
|
+
// `skip_label`, etc.). The runtime normalizer already permits it
|
|
15953
|
+
// (`context-steps-normalizer.ts` rejects only `undefined`), and the executor
|
|
15954
|
+
// sets the variable to `null` without issue; the schema was the only layer
|
|
15955
|
+
// rejecting it. Required so nested set-variable steps validate when the
|
|
15956
|
+
// recursive conditional union lands (see
|
|
15957
|
+
// `docs/features/planning/2026-06-04-conditional-nested-step-strict-validation.md`).
|
|
15958
|
+
value: external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean(), external_exports.null(), external_exports.record(external_exports.string(), external_exports.unknown())]),
|
|
15743
15959
|
valueTemplate: external_exports.string().optional()
|
|
15744
15960
|
});
|
|
15961
|
+
var sendStreamConfigSchema = external_exports.object({
|
|
15962
|
+
message: external_exports.string().min(1, "Message is required")
|
|
15963
|
+
});
|
|
15964
|
+
var fetchGithubConfigSchema = external_exports.object({
|
|
15965
|
+
repository: external_exports.string().min(1, "Repository is required"),
|
|
15966
|
+
path: external_exports.string().optional(),
|
|
15967
|
+
branch: external_exports.string().optional(),
|
|
15968
|
+
token: external_exports.string().optional(),
|
|
15969
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
15970
|
+
streamOutput: external_exports.boolean().optional(),
|
|
15971
|
+
contentType: external_exports.enum(["raw", "metadata", "both"]).optional(),
|
|
15972
|
+
// Ingestor service configuration
|
|
15973
|
+
includePatterns: external_exports.array(external_exports.string()).optional(),
|
|
15974
|
+
excludePatterns: external_exports.array(external_exports.string()).optional(),
|
|
15975
|
+
compress: external_exports.boolean().optional(),
|
|
15976
|
+
style: external_exports.enum(["xml", "json", "markdown"]).optional()
|
|
15977
|
+
});
|
|
15978
|
+
var apiCallConfigSchema = external_exports.object({
|
|
15979
|
+
http: httpConfigSchema,
|
|
15980
|
+
auth: authConfigSchema.optional(),
|
|
15981
|
+
requestTemplate: external_exports.string().optional(),
|
|
15982
|
+
responseMapping: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
15983
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
15984
|
+
streamOutput: external_exports.boolean().optional(),
|
|
15985
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
15986
|
+
defaultValue: external_exports.any().optional()
|
|
15987
|
+
});
|
|
15988
|
+
var executeAgentConfigSchema = external_exports.object({
|
|
15989
|
+
agentId: external_exports.string().min(1, "Agent ID is required"),
|
|
15990
|
+
message: external_exports.string().min(1, "Message is required"),
|
|
15991
|
+
outputVariable: external_exports.string().optional(),
|
|
15992
|
+
variables: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
15993
|
+
maxTurns: external_exports.number().int().positive().optional(),
|
|
15994
|
+
timeout: external_exports.number().int().positive().optional(),
|
|
15995
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
15996
|
+
defaultValue: external_exports.any().optional()
|
|
15997
|
+
});
|
|
15998
|
+
var firecrawlConfigSchema = external_exports.object({
|
|
15999
|
+
formats: external_exports.array(external_exports.enum(["markdown", "html", "rawHtml", "screenshot", "links", "json"])).optional(),
|
|
16000
|
+
actions: external_exports.array(
|
|
16001
|
+
external_exports.object({
|
|
16002
|
+
type: external_exports.enum(["click", "write", "press", "wait", "screenshot"]),
|
|
16003
|
+
selector: external_exports.string().optional(),
|
|
16004
|
+
text: external_exports.string().optional(),
|
|
16005
|
+
key: external_exports.string().optional(),
|
|
16006
|
+
milliseconds: external_exports.number().optional(),
|
|
16007
|
+
fullPage: external_exports.boolean().optional()
|
|
16008
|
+
})
|
|
16009
|
+
).optional(),
|
|
16010
|
+
location: external_exports.object({
|
|
16011
|
+
country: external_exports.string().optional(),
|
|
16012
|
+
languages: external_exports.array(external_exports.string()).optional()
|
|
16013
|
+
}).optional(),
|
|
16014
|
+
maxAge: external_exports.number().optional(),
|
|
16015
|
+
storeInCache: external_exports.boolean().optional(),
|
|
16016
|
+
onlyMainContent: external_exports.boolean().optional(),
|
|
16017
|
+
// The Firecrawl executor (`apps/api/src/lib/context-steps/firecrawl-fetch.ts`)
|
|
16018
|
+
// accepts EITHER a JSON-schema object OR a JSON string it `JSON.parse`s at
|
|
16019
|
+
// runtime — so the validator must accept both, or it would reject a
|
|
16020
|
+
// string-form `jsonSchema` that executes correctly.
|
|
16021
|
+
jsonSchema: external_exports.union([external_exports.string(), external_exports.record(external_exports.string(), external_exports.unknown())]).optional(),
|
|
16022
|
+
jsonPrompt: external_exports.string().optional()
|
|
16023
|
+
});
|
|
16024
|
+
var fetchUrlConfigSchema = external_exports.object({
|
|
16025
|
+
http: httpConfigSchema,
|
|
16026
|
+
auth: authConfigSchema.optional(),
|
|
16027
|
+
responseType: external_exports.enum(["json", "text", "xml"]).optional(),
|
|
16028
|
+
markdownIfAvailable: external_exports.boolean().optional(),
|
|
16029
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16030
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16031
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16032
|
+
defaultValue: external_exports.any().optional(),
|
|
16033
|
+
// Firecrawl integration
|
|
16034
|
+
fetchMethod: external_exports.enum(["standard", "firecrawl"]).optional(),
|
|
16035
|
+
firecrawl: firecrawlConfigSchema.optional()
|
|
16036
|
+
});
|
|
16037
|
+
var crawlOptionsConfigSchema = external_exports.object({
|
|
16038
|
+
includePatterns: external_exports.array(external_exports.string()).optional(),
|
|
16039
|
+
excludePatterns: external_exports.array(external_exports.string()).optional(),
|
|
16040
|
+
allowSubdomains: external_exports.boolean().optional(),
|
|
16041
|
+
allowExternalLinks: external_exports.boolean().optional(),
|
|
16042
|
+
ignoreSitemap: external_exports.boolean().optional(),
|
|
16043
|
+
sitemapOnly: external_exports.boolean().optional()
|
|
16044
|
+
}).catchall(external_exports.any());
|
|
16045
|
+
var crawlAuthenticateConfigSchema = external_exports.object({
|
|
16046
|
+
username: external_exports.string().optional(),
|
|
16047
|
+
password: external_exports.string().optional()
|
|
16048
|
+
}).catchall(external_exports.any());
|
|
16049
|
+
var crawlJsonOptionsConfigSchema = external_exports.object({
|
|
16050
|
+
schema: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
16051
|
+
prompt: external_exports.string().optional()
|
|
16052
|
+
}).catchall(external_exports.any());
|
|
16053
|
+
var crawlConfigSchema = external_exports.object({
|
|
16054
|
+
url: external_exports.string().min(1, "URL is required"),
|
|
16055
|
+
limit: external_exports.number().int().positive().optional(),
|
|
16056
|
+
depth: external_exports.number().int().nonnegative().optional(),
|
|
16057
|
+
source: external_exports.string().optional(),
|
|
16058
|
+
formats: external_exports.array(external_exports.string()).optional(),
|
|
16059
|
+
render: external_exports.boolean().optional(),
|
|
16060
|
+
maxAge: external_exports.number().int().nonnegative().optional(),
|
|
16061
|
+
modifiedSince: external_exports.string().optional(),
|
|
16062
|
+
options: crawlOptionsConfigSchema.optional(),
|
|
16063
|
+
authenticate: crawlAuthenticateConfigSchema.optional(),
|
|
16064
|
+
cookies: external_exports.array(external_exports.record(external_exports.string(), external_exports.any())).optional(),
|
|
16065
|
+
setExtraHTTPHeaders: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16066
|
+
gotoOptions: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
16067
|
+
waitForSelector: external_exports.string().optional(),
|
|
16068
|
+
rejectResourceTypes: external_exports.array(external_exports.string()).optional(),
|
|
16069
|
+
rejectRequestPattern: external_exports.union([external_exports.string(), external_exports.array(external_exports.string())]).optional(),
|
|
16070
|
+
userAgent: external_exports.string().optional(),
|
|
16071
|
+
jsonOptions: crawlJsonOptionsConfigSchema.optional(),
|
|
16072
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16073
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16074
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16075
|
+
defaultValue: external_exports.any().optional(),
|
|
16076
|
+
pollIntervalMs: external_exports.number().int().min(1).optional(),
|
|
16077
|
+
completionTimeoutMs: external_exports.number().int().positive().optional(),
|
|
16078
|
+
// Executor-only flag the validator previously stripped on `.parse()`; the
|
|
16079
|
+
// normalizer already carries it through. When true (default), crawl submits
|
|
16080
|
+
// and pauses the flow for async DO polling; false = legacy synchronous polling.
|
|
16081
|
+
asyncCrawl: external_exports.boolean().optional()
|
|
16082
|
+
});
|
|
16083
|
+
var searchConfigSchema = external_exports.object({
|
|
16084
|
+
provider: external_exports.string().min(1, "Search provider is required"),
|
|
16085
|
+
query: external_exports.string().min(1, "Search query is required"),
|
|
16086
|
+
temperature: external_exports.number().min(0).max(2).optional(),
|
|
16087
|
+
maxTokens: external_exports.number().positive().optional(),
|
|
16088
|
+
maxResults: external_exports.number().positive().optional(),
|
|
16089
|
+
returnCitations: external_exports.boolean().optional(),
|
|
16090
|
+
dateRange: external_exports.object({
|
|
16091
|
+
from: external_exports.string().optional(),
|
|
16092
|
+
to: external_exports.string().optional()
|
|
16093
|
+
}).optional(),
|
|
16094
|
+
allowedDomains: external_exports.array(external_exports.string()).optional(),
|
|
16095
|
+
blockedDomains: external_exports.array(external_exports.string()).optional(),
|
|
16096
|
+
userLocation: external_exports.object({
|
|
16097
|
+
country: external_exports.string().optional(),
|
|
16098
|
+
region: external_exports.string().optional()
|
|
16099
|
+
}).optional(),
|
|
16100
|
+
sources: external_exports.array(
|
|
16101
|
+
external_exports.object({
|
|
16102
|
+
type: external_exports.string(),
|
|
16103
|
+
country: external_exports.string().optional(),
|
|
16104
|
+
safeSearch: external_exports.boolean().optional(),
|
|
16105
|
+
xHandles: external_exports.array(external_exports.string()).optional(),
|
|
16106
|
+
allowedWebsites: external_exports.array(external_exports.string()).optional(),
|
|
16107
|
+
excludedWebsites: external_exports.array(external_exports.string()).optional()
|
|
16108
|
+
})
|
|
16109
|
+
).optional(),
|
|
16110
|
+
// Exa-specific options (executor-only; previously stripped by the validator)
|
|
16111
|
+
exaSearchType: external_exports.enum(["auto", "neural", "keyword"]).optional(),
|
|
16112
|
+
exaContents: external_exports.object({
|
|
16113
|
+
text: external_exports.boolean().optional(),
|
|
16114
|
+
summary: external_exports.boolean().optional(),
|
|
16115
|
+
highlights: external_exports.boolean().optional()
|
|
16116
|
+
}).optional(),
|
|
16117
|
+
exaCategory: external_exports.string().optional(),
|
|
16118
|
+
exaNumResults: external_exports.number().optional(),
|
|
16119
|
+
exaIncludeDomains: external_exports.array(external_exports.string()).optional(),
|
|
16120
|
+
exaExcludeDomains: external_exports.array(external_exports.string()).optional(),
|
|
16121
|
+
exaStartCrawlDate: external_exports.string().optional(),
|
|
16122
|
+
exaEndCrawlDate: external_exports.string().optional(),
|
|
16123
|
+
exaStartPublishedDate: external_exports.string().optional(),
|
|
16124
|
+
exaEndPublishedDate: external_exports.string().optional(),
|
|
16125
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16126
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16127
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16128
|
+
defaultValue: external_exports.any().optional()
|
|
16129
|
+
});
|
|
16130
|
+
var sendTextConfigSchema = external_exports.object({
|
|
16131
|
+
from: external_exports.string().min(1, "From is required"),
|
|
16132
|
+
to: external_exports.string().min(1, "To is required"),
|
|
16133
|
+
message: external_exports.string().min(1, "Message is required"),
|
|
16134
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16135
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16136
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16137
|
+
defaultValue: external_exports.any().optional()
|
|
16138
|
+
});
|
|
16139
|
+
var sendEventConfigSchema = external_exports.object({
|
|
16140
|
+
provider: external_exports.enum(["posthog", "google-analytics", "amplitude", "segment"]),
|
|
16141
|
+
eventName: external_exports.string().min(1, "Event name is required"),
|
|
16142
|
+
properties: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16143
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16144
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16145
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16146
|
+
defaultValue: external_exports.any().optional()
|
|
16147
|
+
});
|
|
16148
|
+
var storeAssetConfigSchema = external_exports.object({
|
|
16149
|
+
url: external_exports.string().min(1).optional(),
|
|
16150
|
+
content: external_exports.string().min(1).optional(),
|
|
16151
|
+
filename: external_exports.string().optional(),
|
|
16152
|
+
contentType: external_exports.string().optional(),
|
|
16153
|
+
visibility: external_exports.enum(["public", "private"]).optional(),
|
|
16154
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16155
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16156
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16157
|
+
defaultValue: external_exports.any().optional()
|
|
16158
|
+
});
|
|
16159
|
+
var generatePdfConfigSchema = external_exports.object({
|
|
16160
|
+
html: external_exports.string().min(1).optional(),
|
|
16161
|
+
markdown: external_exports.string().min(1).optional(),
|
|
16162
|
+
filename: external_exports.string().optional(),
|
|
16163
|
+
visibility: external_exports.enum(["public", "private"]).optional(),
|
|
16164
|
+
pdfOptions: pdfOptionsConfigSchema.optional(),
|
|
16165
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16166
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16167
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16168
|
+
defaultValue: external_exports.any().optional()
|
|
16169
|
+
});
|
|
16170
|
+
var templateConfigSchema = external_exports.object({
|
|
16171
|
+
template: external_exports.string().min(1, "Template body is required"),
|
|
16172
|
+
inputs: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16173
|
+
outputFormat: external_exports.enum(["html", "email-html", "markdown", "pdf", "text"]),
|
|
16174
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16175
|
+
partials: external_exports.record(
|
|
16176
|
+
external_exports.string().regex(/^[a-zA-Z_][a-zA-Z0-9_-]*$/, "Partial keys must be simple identifiers"),
|
|
16177
|
+
external_exports.string()
|
|
16178
|
+
).optional(),
|
|
16179
|
+
pdfOptions: pdfOptionsConfigSchema.optional(),
|
|
16180
|
+
asArtifact: external_exports.boolean().optional(),
|
|
16181
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16182
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16183
|
+
defaultValue: external_exports.any().optional(),
|
|
16184
|
+
sampleData: external_exports.array(
|
|
16185
|
+
external_exports.object({
|
|
16186
|
+
name: external_exports.string().min(1),
|
|
16187
|
+
data: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
16188
|
+
})
|
|
16189
|
+
).optional()
|
|
16190
|
+
});
|
|
16191
|
+
var comparisonOperatorSchema = external_exports.enum(["=", "!=", ">", "<", ">=", "<=", "exists", "not-exists"]);
|
|
16192
|
+
var waitUntilSuccessCriteriaSchema = external_exports.object({
|
|
16193
|
+
type: external_exports.enum(["status", "json_path", "body_contains", "expression"]).optional(),
|
|
16194
|
+
status: external_exports.number().optional(),
|
|
16195
|
+
statusCode: external_exports.number().optional(),
|
|
16196
|
+
jsonPath: external_exports.string().optional(),
|
|
16197
|
+
expectedValue: external_exports.any().optional(),
|
|
16198
|
+
operator: comparisonOperatorSchema.optional(),
|
|
16199
|
+
bodyContains: external_exports.string().optional(),
|
|
16200
|
+
expression: external_exports.string().optional()
|
|
16201
|
+
}).refine(
|
|
16202
|
+
(data) => {
|
|
16203
|
+
if (!data.type || data.type === "status") {
|
|
16204
|
+
return true;
|
|
16205
|
+
}
|
|
16206
|
+
if (data.type === "json_path") {
|
|
16207
|
+
return !!data.jsonPath;
|
|
16208
|
+
}
|
|
16209
|
+
if (data.type === "body_contains") {
|
|
16210
|
+
return !!data.bodyContains;
|
|
16211
|
+
}
|
|
16212
|
+
if (data.type === "expression") {
|
|
16213
|
+
return !!data.expression;
|
|
16214
|
+
}
|
|
16215
|
+
return true;
|
|
16216
|
+
},
|
|
16217
|
+
{
|
|
16218
|
+
message: "Success criteria is missing required fields"
|
|
16219
|
+
}
|
|
16220
|
+
);
|
|
16221
|
+
var waitUntilPollConfigSchema = external_exports.object({
|
|
16222
|
+
enabled: external_exports.boolean().optional(),
|
|
16223
|
+
http: httpConfigSchema,
|
|
16224
|
+
auth: authConfigSchema.optional(),
|
|
16225
|
+
intervalMs: external_exports.union([external_exports.number().int().min(100), external_exports.string().min(1)]).optional(),
|
|
16226
|
+
maxAttempts: external_exports.number().int().min(1).optional(),
|
|
16227
|
+
responseType: external_exports.enum(["json", "text"]).optional(),
|
|
16228
|
+
success: waitUntilSuccessCriteriaSchema.optional()
|
|
16229
|
+
});
|
|
16230
|
+
var waitUntilConfigSchema = external_exports.object({
|
|
16231
|
+
delayMs: external_exports.union([external_exports.number().nonnegative(), external_exports.string().min(1)]).optional(),
|
|
16232
|
+
poll: waitUntilPollConfigSchema.optional(),
|
|
16233
|
+
continueOnTimeout: external_exports.boolean().optional(),
|
|
16234
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16235
|
+
defaultValue: external_exports.any().optional(),
|
|
16236
|
+
outputVariable: external_exports.string().optional(),
|
|
16237
|
+
streamOutput: external_exports.boolean().optional()
|
|
16238
|
+
});
|
|
16239
|
+
var generateEmbeddingVectorStoreConfigSchema = external_exports.object({
|
|
16240
|
+
destination: external_exports.enum(["weaviate", "vectorize", "pinecone"]),
|
|
16241
|
+
weaviateConfig: external_exports.object({
|
|
16242
|
+
configId: external_exports.string().optional(),
|
|
16243
|
+
className: external_exports.string(),
|
|
16244
|
+
uuid: external_exports.string().optional(),
|
|
16245
|
+
properties: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16246
|
+
}).optional(),
|
|
16247
|
+
vectorizeConfig: external_exports.object({
|
|
16248
|
+
configId: external_exports.string().optional(),
|
|
16249
|
+
idTemplate: external_exports.string(),
|
|
16250
|
+
namespace: external_exports.string().optional(),
|
|
16251
|
+
metadata: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16252
|
+
}).optional(),
|
|
16253
|
+
pineconeConfig: external_exports.object({
|
|
16254
|
+
configId: external_exports.string().optional(),
|
|
16255
|
+
idTemplate: external_exports.string(),
|
|
16256
|
+
namespace: external_exports.string().optional(),
|
|
16257
|
+
metadata: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16258
|
+
}).optional()
|
|
16259
|
+
});
|
|
16260
|
+
var generateEmbeddingConfigSchema = external_exports.object({
|
|
16261
|
+
inputSource: external_exports.enum(["text", "variable", "record"]).optional().default("text"),
|
|
16262
|
+
text: external_exports.string().optional(),
|
|
16263
|
+
variableName: external_exports.string().optional(),
|
|
16264
|
+
recordId: external_exports.string().optional(),
|
|
16265
|
+
recordType: external_exports.string().optional(),
|
|
16266
|
+
recordName: external_exports.string().optional(),
|
|
16267
|
+
textField: external_exports.string().optional(),
|
|
16268
|
+
storeInRecord: external_exports.boolean().optional(),
|
|
16269
|
+
embeddingModel: external_exports.string().optional(),
|
|
16270
|
+
maxLength: external_exports.number().int().positive().optional(),
|
|
16271
|
+
inputMode: external_exports.enum(["single", "batch"]).optional(),
|
|
16272
|
+
inputVariable: external_exports.string().optional(),
|
|
16273
|
+
itemAlias: external_exports.string().optional(),
|
|
16274
|
+
textTemplate: external_exports.string().optional(),
|
|
16275
|
+
batchSize: external_exports.number().int().positive().optional(),
|
|
16276
|
+
vectorStore: generateEmbeddingVectorStoreConfigSchema.optional(),
|
|
16277
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16278
|
+
streamOutput: external_exports.boolean().optional()
|
|
16279
|
+
});
|
|
16280
|
+
var vectorSearchConfigSchema = external_exports.object({
|
|
16281
|
+
query: external_exports.string().min(1, "Query is required"),
|
|
16282
|
+
embeddingModel: external_exports.string().optional(),
|
|
16283
|
+
vectorStore: external_exports.enum(["pgvector", "weaviate", "vectorize", "pinecone"]).optional(),
|
|
16284
|
+
weaviateConfig: external_exports.object({
|
|
16285
|
+
configId: external_exports.string().optional(),
|
|
16286
|
+
className: external_exports.string()
|
|
16287
|
+
}).optional(),
|
|
16288
|
+
vectorizeConfig: external_exports.object({
|
|
16289
|
+
configId: external_exports.string().optional(),
|
|
16290
|
+
namespace: external_exports.string().optional()
|
|
16291
|
+
}).optional(),
|
|
16292
|
+
pineconeConfig: external_exports.object({
|
|
16293
|
+
configId: external_exports.string().optional(),
|
|
16294
|
+
namespace: external_exports.string().optional()
|
|
16295
|
+
}).optional(),
|
|
16296
|
+
limit: external_exports.number().int().positive().optional(),
|
|
16297
|
+
threshold: external_exports.number().min(0).max(1).optional(),
|
|
16298
|
+
recordType: external_exports.string().optional(),
|
|
16299
|
+
metadataFilters: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
16300
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16301
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16302
|
+
includeEmbedding: external_exports.boolean().optional(),
|
|
16303
|
+
includeMetadata: external_exports.boolean().optional()
|
|
16304
|
+
});
|
|
16305
|
+
var toolCallConfigSchema = external_exports.object({
|
|
16306
|
+
toolId: external_exports.string().min(1, "Tool ID is required"),
|
|
16307
|
+
parameters: external_exports.record(external_exports.string(), external_exports.any()),
|
|
16308
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16309
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16310
|
+
maxRetries: external_exports.number().int().min(0).optional(),
|
|
16311
|
+
timeout: external_exports.number().int().positive().optional(),
|
|
16312
|
+
onError: external_exports.enum(["fail", "continue", "retry"]).optional()
|
|
16313
|
+
});
|
|
16314
|
+
var storeVectorConfigSchema = external_exports.object({
|
|
16315
|
+
vectorsSource: external_exports.string().optional(),
|
|
16316
|
+
inputMode: external_exports.enum(["single", "batch"]).optional(),
|
|
16317
|
+
inputVariable: external_exports.string().optional(),
|
|
16318
|
+
itemAlias: external_exports.string().optional(),
|
|
16319
|
+
batchSize: external_exports.number().int().positive().optional(),
|
|
16320
|
+
destination: external_exports.enum(["pgvector", "weaviate", "vectorize", "pinecone"]),
|
|
16321
|
+
weaviateConfig: external_exports.object({
|
|
16322
|
+
configId: external_exports.string().optional(),
|
|
16323
|
+
className: external_exports.string(),
|
|
16324
|
+
uuid: external_exports.string().optional(),
|
|
16325
|
+
properties: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16326
|
+
}).optional(),
|
|
16327
|
+
vectorizeConfig: external_exports.object({
|
|
16328
|
+
configId: external_exports.string().optional(),
|
|
16329
|
+
id: external_exports.string(),
|
|
16330
|
+
namespace: external_exports.string().optional(),
|
|
16331
|
+
metadata: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16332
|
+
}).optional(),
|
|
16333
|
+
pineconeConfig: external_exports.object({
|
|
16334
|
+
configId: external_exports.string().optional(),
|
|
16335
|
+
id: external_exports.string(),
|
|
16336
|
+
namespace: external_exports.string().optional(),
|
|
16337
|
+
metadata: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
16338
|
+
}).optional(),
|
|
16339
|
+
weaviateConfigId: external_exports.string().optional(),
|
|
16340
|
+
weaviateClassName: external_exports.string().optional(),
|
|
16341
|
+
vectorizeConfigId: external_exports.string().optional(),
|
|
16342
|
+
vectorizeNamespace: external_exports.string().optional(),
|
|
16343
|
+
pineconeConfigId: external_exports.string().optional(),
|
|
16344
|
+
pineconeNamespace: external_exports.string().optional(),
|
|
16345
|
+
idTemplate: external_exports.string().optional(),
|
|
16346
|
+
metadata: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16347
|
+
outputVariable: external_exports.string().optional(),
|
|
16348
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16349
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16350
|
+
defaultValue: external_exports.any().optional()
|
|
16351
|
+
});
|
|
16352
|
+
var upsertRecordConfigSchema = external_exports.object({
|
|
16353
|
+
recordType: external_exports.string().min(1, "Record type is required"),
|
|
16354
|
+
recordName: external_exports.string().optional(),
|
|
16355
|
+
sourceVariable: external_exports.string().min(1, "Source variable is required"),
|
|
16356
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16357
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16358
|
+
mergeStrategy: external_exports.enum(["merge", "replace"]).optional(),
|
|
16359
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16360
|
+
defaultValue: external_exports.any().optional(),
|
|
16361
|
+
contentField: external_exports.string().optional(),
|
|
16362
|
+
inputMode: external_exports.enum(["single", "batch"]).optional(),
|
|
16363
|
+
inputVariable: external_exports.string().optional(),
|
|
16364
|
+
itemAlias: external_exports.string().optional(),
|
|
16365
|
+
metadataMapping: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16366
|
+
batchSize: external_exports.number().int().positive().optional()
|
|
16367
|
+
});
|
|
16368
|
+
var sendEmailConfigSchema = external_exports.object({
|
|
16369
|
+
from: external_exports.string().optional(),
|
|
16370
|
+
to: external_exports.string().min(1, "To recipients are required"),
|
|
16371
|
+
subject: external_exports.string().min(1, "Subject is required"),
|
|
16372
|
+
replyTo: external_exports.string().optional(),
|
|
16373
|
+
cc: external_exports.string().optional(),
|
|
16374
|
+
bcc: external_exports.string().optional(),
|
|
16375
|
+
html: external_exports.string().optional(),
|
|
16376
|
+
text: external_exports.string().optional(),
|
|
16377
|
+
attachments: external_exports.array(
|
|
16378
|
+
external_exports.object({
|
|
16379
|
+
filename: external_exports.string(),
|
|
16380
|
+
content: external_exports.string(),
|
|
16381
|
+
contentType: external_exports.string().optional()
|
|
16382
|
+
})
|
|
16383
|
+
).optional(),
|
|
16384
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16385
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16386
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16387
|
+
defaultValue: external_exports.any().optional()
|
|
16388
|
+
});
|
|
16389
|
+
var paginateApiConfigSchema = external_exports.object({
|
|
16390
|
+
// API configuration (supports both the detailed `url` and the UI `http` format)
|
|
16391
|
+
url: external_exports.string().optional(),
|
|
16392
|
+
http: external_exports.object({
|
|
16393
|
+
url: external_exports.string().min(1),
|
|
16394
|
+
method: external_exports.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]).optional(),
|
|
16395
|
+
headers: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16396
|
+
body: external_exports.string().optional(),
|
|
16397
|
+
timeout: external_exports.number().optional()
|
|
16398
|
+
}).optional(),
|
|
16399
|
+
method: external_exports.enum(["GET", "POST"]).optional(),
|
|
16400
|
+
headers: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
16401
|
+
body: external_exports.string().optional(),
|
|
16402
|
+
// Authentication — `api_key` is a string literal value (snake_case wire token),
|
|
16403
|
+
// not an object key, so it needs no `@snake-case-ok` decorator.
|
|
16404
|
+
authType: external_exports.enum(["none", "bearer", "api_key", "basic", "oauth2"]).optional(),
|
|
16405
|
+
authConfig: external_exports.object({
|
|
16406
|
+
bearerToken: external_exports.string().optional(),
|
|
16407
|
+
apiKeyHeader: external_exports.string().optional(),
|
|
16408
|
+
apiKeyValue: external_exports.string().optional(),
|
|
16409
|
+
basicUsername: external_exports.string().optional(),
|
|
16410
|
+
basicPassword: external_exports.string().optional(),
|
|
16411
|
+
oauth2TokenUrl: external_exports.string().optional(),
|
|
16412
|
+
oauth2ClientId: external_exports.string().optional(),
|
|
16413
|
+
oauth2ClientSecret: external_exports.string().optional(),
|
|
16414
|
+
oauth2Scopes: external_exports.array(external_exports.string()).optional()
|
|
16415
|
+
}).optional(),
|
|
16416
|
+
paginationType: external_exports.enum(["cursor", "offset", "page", "link_header"]).optional(),
|
|
16417
|
+
paginationConfig: external_exports.object({
|
|
16418
|
+
cursorPath: external_exports.string().optional(),
|
|
16419
|
+
cursorParam: external_exports.string().optional(),
|
|
16420
|
+
offsetParam: external_exports.string().optional(),
|
|
16421
|
+
limitParam: external_exports.string().optional(),
|
|
16422
|
+
limit: external_exports.number().int().positive().optional(),
|
|
16423
|
+
totalPath: external_exports.string().optional(),
|
|
16424
|
+
pageParam: external_exports.string().optional(),
|
|
16425
|
+
perPageParam: external_exports.string().optional(),
|
|
16426
|
+
perPage: external_exports.number().int().positive().optional(),
|
|
16427
|
+
totalPagesPath: external_exports.string().optional()
|
|
16428
|
+
}).optional(),
|
|
16429
|
+
// Simplified (UI) pagination settings
|
|
16430
|
+
pageSize: external_exports.number().int().positive().optional(),
|
|
16431
|
+
maxPages: external_exports.number().int().positive().optional(),
|
|
16432
|
+
offsetParam: external_exports.string().optional(),
|
|
16433
|
+
limitParam: external_exports.string().optional(),
|
|
16434
|
+
cursorParam: external_exports.string().optional(),
|
|
16435
|
+
cursorPath: external_exports.string().optional(),
|
|
16436
|
+
pageParam: external_exports.string().optional(),
|
|
16437
|
+
startPage: external_exports.number().int().optional(),
|
|
16438
|
+
// Entity extraction
|
|
16439
|
+
entitiesPath: external_exports.string().optional(),
|
|
16440
|
+
entityPath: external_exports.string().optional(),
|
|
16441
|
+
entityIdPath: external_exports.string().optional(),
|
|
16442
|
+
// Safety limits + rate limiting
|
|
16443
|
+
maxEntities: external_exports.number().int().positive().optional(),
|
|
16444
|
+
requestDelayMs: external_exports.number().int().nonnegative().optional(),
|
|
16445
|
+
retryOnRateLimit: external_exports.boolean().optional(),
|
|
16446
|
+
maxRetries: external_exports.number().int().min(0).optional(),
|
|
16447
|
+
// Output
|
|
16448
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16449
|
+
includeMetadata: external_exports.boolean().optional(),
|
|
16450
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16451
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16452
|
+
defaultValue: external_exports.any().optional()
|
|
16453
|
+
});
|
|
16454
|
+
var retrieveRecordConfigSchema = external_exports.object({
|
|
16455
|
+
retrievalMode: external_exports.enum(["id", "query"]).optional(),
|
|
16456
|
+
recordType: external_exports.string().optional(),
|
|
16457
|
+
recordName: external_exports.string().optional(),
|
|
16458
|
+
recordId: external_exports.string().optional(),
|
|
16459
|
+
// Chip-based filter for richer query mode (metadata + top-level columns).
|
|
16460
|
+
// Coexists with recordType/recordName so old saved flows keep working;
|
|
16461
|
+
// when both are present, recordFilter wins in the executor.
|
|
16462
|
+
recordFilter: recordFilterSchema.optional(),
|
|
16463
|
+
fieldsToInclude: external_exports.string().optional(),
|
|
16464
|
+
fieldsToExclude: external_exports.string().optional(),
|
|
16465
|
+
availableFields: external_exports.array(external_exports.string()).optional(),
|
|
16466
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16467
|
+
fields: external_exports.array(external_exports.string()).optional(),
|
|
16468
|
+
includeMetadata: external_exports.boolean().optional(),
|
|
16469
|
+
streamOutput: external_exports.boolean().optional()
|
|
16470
|
+
});
|
|
16471
|
+
var updateRecordConfigSchema = external_exports.object({
|
|
16472
|
+
recordId: external_exports.string().optional(),
|
|
16473
|
+
recordType: external_exports.string().optional(),
|
|
16474
|
+
recordName: external_exports.string().optional(),
|
|
16475
|
+
// Same chip filter as retrieve-record. Executor takes the first match
|
|
16476
|
+
// (ordered by updatedAt desc). Validate-time check rejects malformed
|
|
16477
|
+
// filters early instead of waiting for the compiler at execute time.
|
|
16478
|
+
recordFilter: recordFilterSchema.optional(),
|
|
16479
|
+
updates: external_exports.record(external_exports.string(), external_exports.any()),
|
|
16480
|
+
updatesTemplate: external_exports.string().optional(),
|
|
16481
|
+
mergeStrategy: external_exports.enum(["merge", "replace", "deep-merge"]),
|
|
16482
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16483
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16484
|
+
includeFullRecord: external_exports.boolean().optional(),
|
|
16485
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16486
|
+
defaultValue: external_exports.any().optional()
|
|
16487
|
+
});
|
|
16488
|
+
var transformDataNetworkAccessSchema = external_exports.union([
|
|
16489
|
+
external_exports.literal("off"),
|
|
16490
|
+
external_exports.literal("on"),
|
|
16491
|
+
external_exports.object({ allowedHostnames: external_exports.array(external_exports.string()).min(1) })
|
|
16492
|
+
]);
|
|
16493
|
+
var transformDataConfigSchema = external_exports.object({
|
|
16494
|
+
// Not used at runtime — all flow variables are passed to the script regardless.
|
|
16495
|
+
inputVariables: external_exports.array(external_exports.string()).optional(),
|
|
16496
|
+
script: external_exports.string().min(1, "Script is required"),
|
|
16497
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16498
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16499
|
+
sandboxProvider: external_exports.enum(["quickjs", "daytona", "cloudflare-worker", "runtype-sandbox", "cloudflare-sandbox"]).optional(),
|
|
16500
|
+
language: external_exports.enum(["javascript", "typescript", "python"]).optional(),
|
|
16501
|
+
// `inputMode: 'variable'` resolves `script` (and `packageJson`) as a template
|
|
16502
|
+
// before execution; `'code'` (default) treats `script` as literal source.
|
|
16503
|
+
inputMode: external_exports.enum(["code", "variable"]).optional(),
|
|
16504
|
+
// package.json content (daytona / runtype-sandbox); respects `inputMode`.
|
|
16505
|
+
packageJson: external_exports.string().optional(),
|
|
16506
|
+
// Sandbox persistence (daytona / runtype-sandbox).
|
|
16507
|
+
persistSandbox: external_exports.boolean().optional(),
|
|
16508
|
+
reuseSandboxId: external_exports.string().optional(),
|
|
16509
|
+
networkAccess: transformDataNetworkAccessSchema.optional(),
|
|
16510
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16511
|
+
defaultValue: external_exports.any().optional(),
|
|
16512
|
+
// Tool access for code steps (cloudflare-worker sandbox only). Narrow 4-field
|
|
16513
|
+
// shape the validator has always accepted; the full tool shapes are validated
|
|
16514
|
+
// by the runtime-tools layer.
|
|
16515
|
+
tools: external_exports.object({
|
|
16516
|
+
toolIds: external_exports.array(external_exports.string()).optional(),
|
|
16517
|
+
toolConfigs: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
16518
|
+
runtimeTools: external_exports.array(external_exports.any()).optional(),
|
|
16519
|
+
mcpServers: external_exports.array(external_exports.any()).optional()
|
|
16520
|
+
}).optional()
|
|
16521
|
+
});
|
|
16522
|
+
var promptMessageSchema = external_exports.object({
|
|
16523
|
+
role: external_exports.enum(["system", "user", "assistant"]),
|
|
16524
|
+
content: external_exports.union([external_exports.string(), external_exports.array(external_exports.unknown())])
|
|
16525
|
+
});
|
|
16526
|
+
var promptPreviousMessagesSchema = external_exports.union([external_exports.string(), external_exports.array(promptMessageSchema)]);
|
|
16527
|
+
var promptFallbackSchema = external_exports.union([
|
|
16528
|
+
external_exports.object({ type: external_exports.literal("retry"), delay: external_exports.number().optional() }),
|
|
16529
|
+
external_exports.object({
|
|
16530
|
+
type: external_exports.literal("model"),
|
|
16531
|
+
model: external_exports.string(),
|
|
16532
|
+
temperature: external_exports.number().optional(),
|
|
16533
|
+
maxTokens: external_exports.number().optional(),
|
|
16534
|
+
topP: external_exports.number().optional(),
|
|
16535
|
+
topK: external_exports.number().optional(),
|
|
16536
|
+
frequencyPenalty: external_exports.number().optional(),
|
|
16537
|
+
presencePenalty: external_exports.number().optional(),
|
|
16538
|
+
seed: external_exports.number().optional(),
|
|
16539
|
+
delay: external_exports.number().optional()
|
|
16540
|
+
}),
|
|
16541
|
+
external_exports.object({ type: external_exports.literal("message"), message: external_exports.string(), delay: external_exports.number().optional() })
|
|
16542
|
+
]);
|
|
16543
|
+
var promptFallbackTriggerSchema = external_exports.union([
|
|
16544
|
+
external_exports.object({ type: external_exports.literal("error") }),
|
|
16545
|
+
external_exports.object({ type: external_exports.literal("empty-output") }),
|
|
16546
|
+
external_exports.object({ type: external_exports.literal("slow"), afterMs: external_exports.number().optional() })
|
|
16547
|
+
]);
|
|
16548
|
+
var promptErrorHandlingConfigSchema = external_exports.union([
|
|
16549
|
+
external_exports.enum(["fail", "continue", "fallback", "default"]),
|
|
16550
|
+
external_exports.object({
|
|
16551
|
+
onError: external_exports.enum(["fail", "continue", "fallback"]),
|
|
16552
|
+
fallbacks: external_exports.array(promptFallbackSchema).optional(),
|
|
16553
|
+
triggers: external_exports.array(promptFallbackTriggerSchema).optional()
|
|
16554
|
+
})
|
|
16555
|
+
]);
|
|
16556
|
+
var promptConfigSchema = external_exports.object({
|
|
16557
|
+
// Validation only requires a non-empty string here. The non-blocking
|
|
16558
|
+
// model-advisory pass in `flow-validator.ts` (`collectModelAdvisoryIssues`)
|
|
16559
|
+
// additionally emits warnings/recommendations for deprecated, non-routed,
|
|
16560
|
+
// capability-mismatched, or not-enabled models — sourced from the model
|
|
16561
|
+
// registry. Keep that pass in lockstep per `.claude/rules/flow-validation.md`.
|
|
16562
|
+
model: external_exports.string().min(1, "Model is required"),
|
|
16563
|
+
text: external_exports.string().optional(),
|
|
16564
|
+
userPrompt: external_exports.string().optional(),
|
|
16565
|
+
systemPrompt: external_exports.string().optional(),
|
|
16566
|
+
responseFormat: external_exports.enum(["default", "json", "markdown", "html", "xml", "text"]).optional(),
|
|
16567
|
+
outputVariable: external_exports.string().optional(),
|
|
16568
|
+
temperature: external_exports.number().min(0).max(2).optional(),
|
|
16569
|
+
maxTokens: external_exports.number().positive().optional(),
|
|
16570
|
+
topP: external_exports.number().min(0).max(1).optional(),
|
|
16571
|
+
topK: external_exports.number().int().min(1).max(500).optional(),
|
|
16572
|
+
frequencyPenalty: external_exports.number().min(-2).max(2).optional(),
|
|
16573
|
+
presencePenalty: external_exports.number().min(-2).max(2).optional(),
|
|
16574
|
+
seed: external_exports.number().int().optional(),
|
|
16575
|
+
// Canonical object form is the Phase-1 `agentToolsConfigSchema`. The
|
|
16576
|
+
// `z.array(z.unknown())` arm preserves a legacy ARRAY `tools` shape
|
|
16577
|
+
// (`[{ toolId }]` / `string[]`) that predates the object form — it exists in
|
|
16578
|
+
// production (1 live flow + 6 version snapshots) and validated under the prior
|
|
16579
|
+
// `z.any()`, so the union keeps it accepted rather than newly rejecting it. The
|
|
16580
|
+
// runtime's tool resolver reads object keys, so an array `tools` resolves to no
|
|
16581
|
+
// tools (unchanged behavior). Object inputs always match the first arm.
|
|
16582
|
+
tools: external_exports.union([agentToolsConfigSchema, external_exports.array(external_exports.unknown())]).optional(),
|
|
16583
|
+
artifacts: external_exports.object({
|
|
16584
|
+
enabled: external_exports.literal(true),
|
|
16585
|
+
types: external_exports.array(external_exports.enum(["markdown", "component"])).min(1)
|
|
16586
|
+
}).optional(),
|
|
16587
|
+
reasoning: external_exports.boolean().optional(),
|
|
16588
|
+
previousMessages: promptPreviousMessagesSchema.optional(),
|
|
16589
|
+
streamOutput: external_exports.boolean().optional(),
|
|
16590
|
+
errorHandling: promptErrorHandlingConfigSchema.optional(),
|
|
16591
|
+
mode: external_exports.string().optional()
|
|
16592
|
+
// UI mode (task, agent, etc.)
|
|
16593
|
+
});
|
|
16594
|
+
var conditionalConfigSchema = external_exports.object({
|
|
16595
|
+
condition: external_exports.string().min(1, "Condition is required"),
|
|
16596
|
+
trueSteps: external_exports.array(external_exports.lazy(() => contextStepSchema)),
|
|
16597
|
+
falseSteps: external_exports.array(external_exports.lazy(() => contextStepSchema)).optional()
|
|
16598
|
+
});
|
|
16599
|
+
var saveMemoryConfigSchema = external_exports.object({
|
|
16600
|
+
profileTemplate: external_exports.string().min(1, "Profile template is required"),
|
|
16601
|
+
contentVariable: external_exports.string().min(1, "Content variable is required"),
|
|
16602
|
+
sessionId: external_exports.string().nullable().optional(),
|
|
16603
|
+
outputVariable: external_exports.string().optional(),
|
|
16604
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16605
|
+
defaultValue: external_exports.any().optional()
|
|
16606
|
+
});
|
|
16607
|
+
var recallMemoryConfigSchema = external_exports.object({
|
|
16608
|
+
profileTemplate: external_exports.string().min(1, "Profile template is required"),
|
|
16609
|
+
queryTemplate: external_exports.string().min(1, "Query template is required"),
|
|
16610
|
+
thinkingLevel: external_exports.enum(["low", "medium", "high"]).optional(),
|
|
16611
|
+
responseLength: external_exports.enum(["short", "medium", "long"]).optional(),
|
|
16612
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16613
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16614
|
+
defaultValue: external_exports.any().optional()
|
|
16615
|
+
});
|
|
16616
|
+
var memorySummaryConfigSchema = external_exports.object({
|
|
16617
|
+
profileTemplate: external_exports.string().min(1, "Profile template is required"),
|
|
16618
|
+
sessionId: external_exports.string().nullable().optional(),
|
|
16619
|
+
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
16620
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
16621
|
+
defaultValue: external_exports.any().optional()
|
|
16622
|
+
});
|
|
16623
|
+
var sharedStepConfigSchemas = {
|
|
16624
|
+
"set-variable": setVariableConfigSchema,
|
|
16625
|
+
"send-stream": sendStreamConfigSchema,
|
|
16626
|
+
"fetch-github": fetchGithubConfigSchema,
|
|
16627
|
+
"api-call": apiCallConfigSchema,
|
|
16628
|
+
"execute-agent": executeAgentConfigSchema,
|
|
16629
|
+
"fetch-url": fetchUrlConfigSchema,
|
|
16630
|
+
crawl: crawlConfigSchema,
|
|
16631
|
+
search: searchConfigSchema,
|
|
16632
|
+
"send-text": sendTextConfigSchema,
|
|
16633
|
+
"send-event": sendEventConfigSchema,
|
|
16634
|
+
"store-asset": storeAssetConfigSchema,
|
|
16635
|
+
"generate-pdf": generatePdfConfigSchema,
|
|
16636
|
+
template: templateConfigSchema,
|
|
16637
|
+
"wait-until": waitUntilConfigSchema,
|
|
16638
|
+
"generate-embedding": generateEmbeddingConfigSchema,
|
|
16639
|
+
"vector-search": vectorSearchConfigSchema,
|
|
16640
|
+
"tool-call": toolCallConfigSchema,
|
|
16641
|
+
"store-vector": storeVectorConfigSchema,
|
|
16642
|
+
"upsert-record": upsertRecordConfigSchema,
|
|
16643
|
+
"send-email": sendEmailConfigSchema,
|
|
16644
|
+
"paginate-api": paginateApiConfigSchema,
|
|
16645
|
+
"retrieve-record": retrieveRecordConfigSchema,
|
|
16646
|
+
"update-record": updateRecordConfigSchema,
|
|
16647
|
+
"transform-data": transformDataConfigSchema,
|
|
16648
|
+
prompt: promptConfigSchema,
|
|
16649
|
+
conditional: conditionalConfigSchema,
|
|
16650
|
+
"save-memory": saveMemoryConfigSchema,
|
|
16651
|
+
"recall-memory": recallMemoryConfigSchema,
|
|
16652
|
+
"memory-summary": memorySummaryConfigSchema
|
|
16653
|
+
};
|
|
16654
|
+
var makeNestedStepEnvelope = (type, configSchema) => external_exports.object({
|
|
16655
|
+
type: external_exports.literal(type),
|
|
16656
|
+
config: configSchema,
|
|
16657
|
+
id: external_exports.string().optional(),
|
|
16658
|
+
name: external_exports.string().optional(),
|
|
16659
|
+
order: external_exports.number().optional(),
|
|
16660
|
+
enabled: external_exports.boolean().optional(),
|
|
16661
|
+
when: external_exports.string().optional()
|
|
16662
|
+
}).passthrough();
|
|
16663
|
+
var contextStepSchema = external_exports.discriminatedUnion(
|
|
16664
|
+
"type",
|
|
16665
|
+
Object.entries(sharedStepConfigSchemas).map(
|
|
16666
|
+
([type, configSchema]) => makeNestedStepEnvelope(type, configSchema)
|
|
16667
|
+
)
|
|
16668
|
+
);
|
|
16669
|
+
var CONTEXT_STEP_TYPES = [
|
|
16670
|
+
"crawl",
|
|
16671
|
+
"fetch-url",
|
|
16672
|
+
"retrieve-record",
|
|
16673
|
+
"fetch-github",
|
|
16674
|
+
"api-call",
|
|
16675
|
+
"transform-data",
|
|
16676
|
+
"template",
|
|
16677
|
+
"conditional",
|
|
16678
|
+
"set-variable",
|
|
16679
|
+
"upsert-record",
|
|
16680
|
+
"send-email",
|
|
16681
|
+
"send-text",
|
|
16682
|
+
"send-event",
|
|
16683
|
+
"send-stream",
|
|
16684
|
+
"update-record",
|
|
16685
|
+
"search",
|
|
16686
|
+
"generate-embedding",
|
|
16687
|
+
"vector-search",
|
|
16688
|
+
"tool-call",
|
|
16689
|
+
"wait-until",
|
|
16690
|
+
"paginate-api",
|
|
16691
|
+
"store-vector",
|
|
16692
|
+
"execute-agent",
|
|
16693
|
+
"store-asset",
|
|
16694
|
+
"generate-pdf",
|
|
16695
|
+
"save-memory",
|
|
16696
|
+
"recall-memory",
|
|
16697
|
+
"memory-summary"
|
|
16698
|
+
];
|
|
16699
|
+
var FLOW_STEP_TYPES = ["prompt", ...CONTEXT_STEP_TYPES];
|
|
16700
|
+
var flowStepValidationSchema = external_exports.object({
|
|
16701
|
+
// Optional stable client-supplied identifier. Preserved across saves so that
|
|
16702
|
+
// `flow_step_results.stepId` references stay valid and dashboard UI state
|
|
16703
|
+
// (test-step modal, deeplinks, in-flight requests) doesn't go stale after a
|
|
16704
|
+
// save. When omitted the server mints one.
|
|
16705
|
+
id: external_exports.string().min(1).max(128).regex(/^[A-Za-z0-9_\-:.]+$/, "Step id must be alphanumeric with _ - : . only").optional(),
|
|
16706
|
+
type: external_exports.enum(FLOW_STEP_TYPES),
|
|
16707
|
+
name: external_exports.string().min(1, "Step name is required"),
|
|
16708
|
+
order: external_exports.number().int().min(0).optional(),
|
|
16709
|
+
enabled: external_exports.boolean().default(true),
|
|
16710
|
+
when: external_exports.string().max(500).optional(),
|
|
16711
|
+
config: external_exports.any()
|
|
16712
|
+
});
|
|
16713
|
+
var createFlowValidationSchema = external_exports.object({
|
|
16714
|
+
name: external_exports.string().min(1, "Flow name is required"),
|
|
16715
|
+
flowSteps: external_exports.array(flowStepValidationSchema).optional(),
|
|
16716
|
+
// Backward compatibility: some clients still send `steps` instead of `flowSteps`.
|
|
16717
|
+
steps: external_exports.array(flowStepValidationSchema).optional()
|
|
16718
|
+
}).refine((data) => !(data.flowSteps && data.steps), {
|
|
16719
|
+
message: "Provide either 'flowSteps' or 'steps', not both.",
|
|
16720
|
+
path: ["flowSteps"]
|
|
16721
|
+
}).transform((data) => ({
|
|
16722
|
+
name: data.name,
|
|
16723
|
+
flowSteps: data.flowSteps ?? data.steps ?? []
|
|
16724
|
+
}));
|
|
16725
|
+
var updateFlowValidationSchema = external_exports.object({
|
|
16726
|
+
name: external_exports.string().min(1, "Flow name is required").optional(),
|
|
16727
|
+
flowSteps: external_exports.array(flowStepValidationSchema).optional()
|
|
16728
|
+
});
|
|
16729
|
+
var CAMEL_CASE_TOOL_KEYS = {
|
|
16730
|
+
toolIds: true,
|
|
16731
|
+
toolConfigs: true,
|
|
16732
|
+
runtimeTools: true,
|
|
16733
|
+
mcpServers: true,
|
|
16734
|
+
maxToolCalls: true,
|
|
16735
|
+
toolCallStrategy: true,
|
|
16736
|
+
parallelCalls: true,
|
|
16737
|
+
perToolLimits: true,
|
|
16738
|
+
approval: true,
|
|
16739
|
+
subagentConfig: true,
|
|
16740
|
+
codeModeConfig: true,
|
|
16741
|
+
toolSearch: true
|
|
16742
|
+
};
|
|
16743
|
+
var SNAKE_CASE_TOOL_KEYS = {
|
|
16744
|
+
tool_ids: true,
|
|
16745
|
+
tool_configs: true,
|
|
16746
|
+
runtime_tools: true,
|
|
16747
|
+
mcp_servers: true,
|
|
16748
|
+
max_tool_calls: true,
|
|
16749
|
+
tool_call_strategy: true,
|
|
16750
|
+
parallel_calls: true,
|
|
16751
|
+
per_tool_limits: true,
|
|
16752
|
+
approval: true,
|
|
16753
|
+
subagent_config: true,
|
|
16754
|
+
code_mode_config: true,
|
|
16755
|
+
tool_search: true
|
|
16756
|
+
};
|
|
16757
|
+
var KNOWN_TOOL_KEYS = /* @__PURE__ */ new Set([
|
|
16758
|
+
...Object.keys(CAMEL_CASE_TOOL_KEYS),
|
|
16759
|
+
...Object.keys(SNAKE_CASE_TOOL_KEYS)
|
|
16760
|
+
]);
|
|
15745
16761
|
var SERIALIZED_HELPERS_SOURCE = `
|
|
15746
16762
|
// Transform helper functions (from packages/shared/src/transform-helpers.ts)
|
|
15747
16763
|
const helpers = (function createHelpers() {
|
|
@@ -16011,34 +17027,6 @@ const helpers = (function createHelpers() {
|
|
|
16011
17027
|
}
|
|
16012
17028
|
})()
|
|
16013
17029
|
`.trim();
|
|
16014
|
-
var CONTEXT_STEP_TYPES = [
|
|
16015
|
-
"crawl",
|
|
16016
|
-
"fetch-url",
|
|
16017
|
-
"retrieve-record",
|
|
16018
|
-
"fetch-github",
|
|
16019
|
-
"api-call",
|
|
16020
|
-
"transform-data",
|
|
16021
|
-
"template",
|
|
16022
|
-
"conditional",
|
|
16023
|
-
"set-variable",
|
|
16024
|
-
"upsert-record",
|
|
16025
|
-
"send-email",
|
|
16026
|
-
"send-text",
|
|
16027
|
-
"send-event",
|
|
16028
|
-
"send-stream",
|
|
16029
|
-
"update-record",
|
|
16030
|
-
"search",
|
|
16031
|
-
"generate-embedding",
|
|
16032
|
-
"vector-search",
|
|
16033
|
-
"tool-call",
|
|
16034
|
-
"wait-until",
|
|
16035
|
-
"paginate-api",
|
|
16036
|
-
"store-vector",
|
|
16037
|
-
"execute-agent",
|
|
16038
|
-
"store-asset",
|
|
16039
|
-
"generate-pdf"
|
|
16040
|
-
];
|
|
16041
|
-
var FLOW_STEP_TYPES = ["prompt", ...CONTEXT_STEP_TYPES];
|
|
16042
17030
|
var PROVIDER_SECRET_SPECS = [
|
|
16043
17031
|
// ----- Explicit-prefix providers -----
|
|
16044
17032
|
{
|
|
@@ -16130,30 +17118,6 @@ function resolveModelSecretNames(model) {
|
|
|
16130
17118
|
}
|
|
16131
17119
|
return [];
|
|
16132
17120
|
}
|
|
16133
|
-
var MCPServerCategory = {
|
|
16134
|
-
COMMUNICATION: "communication",
|
|
16135
|
-
PRODUCTIVITY: "productivity",
|
|
16136
|
-
DEVELOPMENT: "development",
|
|
16137
|
-
PROJECT_MANAGEMENT: "project_management"
|
|
16138
|
-
};
|
|
16139
|
-
var CreateToolSchema = external_exports.object({
|
|
16140
|
-
name: external_exports.string().min(1).max(100),
|
|
16141
|
-
description: external_exports.string().min(1).max(500),
|
|
16142
|
-
toolType: external_exports.enum(["flow", "custom", "external", "graphql", "mcp", "local", "subagent"]),
|
|
16143
|
-
parametersSchema: external_exports.record(external_exports.string(), external_exports.any()),
|
|
16144
|
-
config: external_exports.record(external_exports.string(), external_exports.any())
|
|
16145
|
-
});
|
|
16146
|
-
var ExecuteToolSchema = external_exports.object({
|
|
16147
|
-
// toolId is redundant with the URL path param (/v1/tools/:id/execute) and optional
|
|
16148
|
-
// so MCP/SDK callers that only send { parameters } aren't rejected at validation.
|
|
16149
|
-
toolId: external_exports.string().optional(),
|
|
16150
|
-
parameters: external_exports.record(external_exports.string(), external_exports.any()),
|
|
16151
|
-
context: external_exports.object({
|
|
16152
|
-
flowExecutionId: external_exports.string().optional(),
|
|
16153
|
-
stepId: external_exports.string().optional(),
|
|
16154
|
-
userId: external_exports.string()
|
|
16155
|
-
}).optional()
|
|
16156
|
-
});
|
|
16157
17121
|
var EMIT_ARTIFACT_MARKDOWN_TOOL_ID = "emit_artifact_markdown";
|
|
16158
17122
|
var EMIT_ARTIFACT_COMPONENT_TOOL_ID = "emit_artifact_component";
|
|
16159
17123
|
var EMIT_ARTIFACT_MARKDOWN_FULL_ID = `builtin:${EMIT_ARTIFACT_MARKDOWN_TOOL_ID}`;
|
|
@@ -27155,7 +28119,8 @@ var BuiltInToolCategory = {
|
|
|
27155
28119
|
COMMERCE: "commerce",
|
|
27156
28120
|
BROWSER: "browser",
|
|
27157
28121
|
SANDBOX: "sandbox",
|
|
27158
|
-
MESSAGING: "messaging"
|
|
28122
|
+
MESSAGING: "messaging",
|
|
28123
|
+
TEMPORAL: "temporal"
|
|
27159
28124
|
};
|
|
27160
28125
|
var BuiltInToolIdPrefix = {
|
|
27161
28126
|
BUILTIN: "builtin",
|
|
@@ -27170,7 +28135,8 @@ var BuiltInToolGroup = {
|
|
|
27170
28135
|
RECORD_MANAGEMENT: "record_management",
|
|
27171
28136
|
UCP_COMMERCE: "ucp_commerce",
|
|
27172
28137
|
SANDBOX_USE: "sandbox_use",
|
|
27173
|
-
SANDBOX_SESSION: "sandbox_session"
|
|
28138
|
+
SANDBOX_SESSION: "sandbox_session",
|
|
28139
|
+
TEMPORAL: "temporal"
|
|
27174
28140
|
};
|
|
27175
28141
|
var BROWSER_RUN_DOCUMENTATION_URL = "https://developers.cloudflare.com/browser-run/quick-actions/";
|
|
27176
28142
|
var BROWSER_SESSION_DOCUMENTATION_URL = "https://developers.cloudflare.com/browser-run/cdp/";
|
|
@@ -28728,6 +29694,133 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
28728
29694
|
executionHint: "platform",
|
|
28729
29695
|
hidden: true
|
|
28730
29696
|
},
|
|
29697
|
+
// Temporal — ground the agent in real-world time. Platform-executed, stateless,
|
|
29698
|
+
// provider-agnostic. Timezone defaults follow a layered precedence resolved
|
|
29699
|
+
// api-side (call param > conversation timezone > agent default > UTC).
|
|
29700
|
+
{
|
|
29701
|
+
id: "get_current_time",
|
|
29702
|
+
name: "Get Current Time",
|
|
29703
|
+
description: 'Get the current date and time. LLMs have no clock and no sense of "now" beyond their training cutoff \u2014 call this whenever the current date/time matters. Returns the instant in a specific IANA timezone (e.g. "America/New_York", "Asia/Tokyo"). When `timezone` is omitted, the resolved default is used (the conversation\'s timezone if set, otherwise the agent default, otherwise UTC). Returns ISO 8601 (UTC), plus the local date, 24-hour time, year/month/day, weekday name, Unix seconds, and the resolved timezone.',
|
|
29704
|
+
category: BuiltInToolCategory.TEMPORAL,
|
|
29705
|
+
toolGroup: BuiltInToolGroup.TEMPORAL,
|
|
29706
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
29707
|
+
parametersSchema: {
|
|
29708
|
+
type: "object",
|
|
29709
|
+
properties: {
|
|
29710
|
+
timezone: {
|
|
29711
|
+
type: "string",
|
|
29712
|
+
description: 'Optional IANA timezone name (e.g. "America/New_York", "Europe/London", "Asia/Tokyo"). Defaults to the resolved zone (conversation > agent default > UTC). Invalid zones fall back to UTC.'
|
|
29713
|
+
}
|
|
29714
|
+
},
|
|
29715
|
+
required: []
|
|
29716
|
+
},
|
|
29717
|
+
executionHint: "platform",
|
|
29718
|
+
requiresApiKey: false
|
|
29719
|
+
},
|
|
29720
|
+
{
|
|
29721
|
+
id: "convert_time",
|
|
29722
|
+
name: "Convert Time Between Zones",
|
|
29723
|
+
description: 'Convert a wall-clock time from one IANA timezone to another, with daylight-saving handled automatically. Provide `time` as "YYYY-MM-DD HH:mm" or "HH:mm" (today is assumed when the date is omitted), plus the source and target IANA timezones. Returns the rendered local time in each zone and the whole-hour offset between them.',
|
|
29724
|
+
category: BuiltInToolCategory.TEMPORAL,
|
|
29725
|
+
toolGroup: BuiltInToolGroup.TEMPORAL,
|
|
29726
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
29727
|
+
parametersSchema: {
|
|
29728
|
+
type: "object",
|
|
29729
|
+
properties: {
|
|
29730
|
+
time: {
|
|
29731
|
+
type: "string",
|
|
29732
|
+
description: 'The wall-clock time to convert, as "YYYY-MM-DD HH:mm[:ss]" or "HH:mm[:ss]" (the current date in the source zone is assumed when only a time is given).'
|
|
29733
|
+
},
|
|
29734
|
+
sourceTimezone: {
|
|
29735
|
+
type: "string",
|
|
29736
|
+
description: 'IANA timezone the `time` is expressed in (e.g. "America/New_York").'
|
|
29737
|
+
},
|
|
29738
|
+
targetTimezone: {
|
|
29739
|
+
type: "string",
|
|
29740
|
+
description: 'IANA timezone to convert the `time` into (e.g. "Asia/Tokyo").'
|
|
29741
|
+
}
|
|
29742
|
+
},
|
|
29743
|
+
required: ["time", "sourceTimezone", "targetTimezone"]
|
|
29744
|
+
},
|
|
29745
|
+
executionHint: "platform",
|
|
29746
|
+
requiresApiKey: false
|
|
29747
|
+
},
|
|
29748
|
+
{
|
|
29749
|
+
id: "time_difference",
|
|
29750
|
+
name: "Time Difference",
|
|
29751
|
+
description: 'Compute the elapsed time between two instants \u2014 a stopwatch for the agent. Provide `from` (ISO 8601 / RFC 3339); `to` defaults to now if omitted. Returns the signed duration in milliseconds, a `direction` of "past" or "future" (relative to `from`), and a humanized string like "6 hours 30 minutes".',
|
|
29752
|
+
category: BuiltInToolCategory.TEMPORAL,
|
|
29753
|
+
toolGroup: BuiltInToolGroup.TEMPORAL,
|
|
29754
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
29755
|
+
parametersSchema: {
|
|
29756
|
+
type: "object",
|
|
29757
|
+
properties: {
|
|
29758
|
+
from: {
|
|
29759
|
+
type: "string",
|
|
29760
|
+
description: 'Start instant, ISO 8601 / RFC 3339 (e.g. "2026-06-03T12:00:00Z").'
|
|
29761
|
+
},
|
|
29762
|
+
to: {
|
|
29763
|
+
type: "string",
|
|
29764
|
+
description: "End instant, ISO 8601 / RFC 3339. Defaults to the current time when omitted."
|
|
29765
|
+
}
|
|
29766
|
+
},
|
|
29767
|
+
required: ["from"]
|
|
29768
|
+
},
|
|
29769
|
+
executionHint: "platform",
|
|
29770
|
+
requiresApiKey: false
|
|
29771
|
+
},
|
|
29772
|
+
{
|
|
29773
|
+
id: "set_timezone",
|
|
29774
|
+
name: "Set Conversation Timezone",
|
|
29775
|
+
description: `Remember the user's timezone for this conversation. Call this once you learn where the user is (e.g. they say "I'm in Tokyo" or mention a local time), passing the matching IANA timezone (e.g. "Asia/Tokyo"). From then on the time tools and any time-awareness context default to their local zone. Only meaningful inside a conversation.`,
|
|
29776
|
+
category: BuiltInToolCategory.TEMPORAL,
|
|
29777
|
+
toolGroup: BuiltInToolGroup.TEMPORAL,
|
|
29778
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
29779
|
+
parametersSchema: {
|
|
29780
|
+
type: "object",
|
|
29781
|
+
properties: {
|
|
29782
|
+
timezone: {
|
|
29783
|
+
type: "string",
|
|
29784
|
+
description: `The user's IANA timezone name (e.g. "America/New_York", "Asia/Tokyo", "Europe/London").`
|
|
29785
|
+
}
|
|
29786
|
+
},
|
|
29787
|
+
required: ["timezone"]
|
|
29788
|
+
},
|
|
29789
|
+
executionHint: "platform",
|
|
29790
|
+
requiresApiKey: false
|
|
29791
|
+
},
|
|
29792
|
+
{
|
|
29793
|
+
id: "set_reminder",
|
|
29794
|
+
name: "Set Reminder",
|
|
29795
|
+
description: 'Schedule yourself to run again later with a follow-up message \u2014 a durable "wake me later". Provide a `message` (the instruction you\'ll receive when it fires) plus exactly one of `at` (an absolute RFC 3339 / ISO 8601 timestamp, e.g. "2026-06-04T09:00:00Z") or `inSeconds` (a relative delay, e.g. 3600 for one hour). Optionally pass `timezone` to interpret a zone-less `at`. The reminder runs as a one-time scheduled execution of this same agent; when it fires you receive the message and can act on it (including reaching out to the user via your messaging or email tools). Only available to agents (not standalone flow steps).',
|
|
29796
|
+
category: BuiltInToolCategory.TEMPORAL,
|
|
29797
|
+
toolGroup: BuiltInToolGroup.TEMPORAL,
|
|
29798
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
29799
|
+
parametersSchema: {
|
|
29800
|
+
type: "object",
|
|
29801
|
+
properties: {
|
|
29802
|
+
message: {
|
|
29803
|
+
type: "string",
|
|
29804
|
+
description: "The follow-up instruction delivered to you when the reminder fires (becomes the kickoff message of the scheduled run)."
|
|
29805
|
+
},
|
|
29806
|
+
at: {
|
|
29807
|
+
type: "string",
|
|
29808
|
+
description: 'Absolute fire time, RFC 3339 / ISO 8601 (e.g. "2026-06-04T09:00:00Z"). Provide this OR `inSeconds`, not both.'
|
|
29809
|
+
},
|
|
29810
|
+
inSeconds: {
|
|
29811
|
+
type: "number",
|
|
29812
|
+
description: "Relative delay in seconds from now (e.g. 3600 = one hour). Provide this OR `at`, not both."
|
|
29813
|
+
},
|
|
29814
|
+
timezone: {
|
|
29815
|
+
type: "string",
|
|
29816
|
+
description: 'IANA timezone used to interpret a zone-less `at` value (e.g. "America/New_York"). Ignored when `at` already carries an offset or `inSeconds` is used.'
|
|
29817
|
+
}
|
|
29818
|
+
},
|
|
29819
|
+
required: ["message"]
|
|
29820
|
+
},
|
|
29821
|
+
executionHint: "platform",
|
|
29822
|
+
requiresApiKey: false
|
|
29823
|
+
},
|
|
28731
29824
|
// Asset Storage — mirror files onto Runtype's CDN from a URL or inline bytes
|
|
28732
29825
|
{
|
|
28733
29826
|
id: "store_asset",
|
|
@@ -30211,6 +31304,87 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
30211
31304
|
requiresApiKey: false,
|
|
30212
31305
|
executionHint: "platform",
|
|
30213
31306
|
platformKeySupport: true
|
|
31307
|
+
},
|
|
31308
|
+
// -----------------------------------------------------------------------
|
|
31309
|
+
// Memory tools — require agent.config.memory.enabled (resolved per turn by
|
|
31310
|
+
// the agent loop; absent until then, so these fail closed with
|
|
31311
|
+
// `memory_not_enabled`). Semantics mirror the non-destructive session API:
|
|
31312
|
+
// save, recall, and summary only — no destructive per-memory delete.
|
|
31313
|
+
// -----------------------------------------------------------------------
|
|
31314
|
+
{
|
|
31315
|
+
id: "save_memory",
|
|
31316
|
+
name: "Save to Memory",
|
|
31317
|
+
description: "Save a fact, preference, or observation to long-term memory. Use when the user tells you something worth remembering across sessions \u2014 preferences, names, decisions, rules they want enforced. Pass the information as a plain sentence. Returns { success, memoryId, type, summary }.",
|
|
31318
|
+
category: BuiltInToolCategory.DATA_MANAGEMENT,
|
|
31319
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
31320
|
+
parametersSchema: {
|
|
31321
|
+
type: "object",
|
|
31322
|
+
properties: {
|
|
31323
|
+
content: {
|
|
31324
|
+
type: "string",
|
|
31325
|
+
description: 'Natural-language statement to remember. Example: "User prefers dark mode" or "Meeting with Acme is rescheduled to Friday."',
|
|
31326
|
+
minLength: 1
|
|
31327
|
+
},
|
|
31328
|
+
sessionId: {
|
|
31329
|
+
type: "string",
|
|
31330
|
+
description: "Optional session scope for the memory. Omit to store against the profile default."
|
|
31331
|
+
}
|
|
31332
|
+
},
|
|
31333
|
+
required: ["content"]
|
|
31334
|
+
},
|
|
31335
|
+
executionHint: "platform",
|
|
31336
|
+
requiresApiKey: false,
|
|
31337
|
+
platformKeySupport: false
|
|
31338
|
+
},
|
|
31339
|
+
{
|
|
31340
|
+
id: "recall_memory",
|
|
31341
|
+
name: "Recall from Memory",
|
|
31342
|
+
description: "Search long-term memory for information relevant to a query. Returns a synthesized answer plus scored candidate memories with IDs. Call this whenever the user refers to past conversations, prior decisions, or things you should already know. Returns { answer, count, candidates: [{ id, summary, score }] }.",
|
|
31343
|
+
category: BuiltInToolCategory.DATA_MANAGEMENT,
|
|
31344
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
31345
|
+
parametersSchema: {
|
|
31346
|
+
type: "object",
|
|
31347
|
+
properties: {
|
|
31348
|
+
query: {
|
|
31349
|
+
type: "string",
|
|
31350
|
+
description: 'Natural-language query. Example: "What are the user preferences?"',
|
|
31351
|
+
minLength: 1
|
|
31352
|
+
},
|
|
31353
|
+
thinkingLevel: {
|
|
31354
|
+
type: "string",
|
|
31355
|
+
enum: ["low", "medium", "high"],
|
|
31356
|
+
description: 'Controls search breadth. Default "low" is usually sufficient; raise to "medium" or "high" for ambiguous questions.'
|
|
31357
|
+
},
|
|
31358
|
+
responseLength: {
|
|
31359
|
+
type: "string",
|
|
31360
|
+
enum: ["short", "medium", "long"],
|
|
31361
|
+
description: 'Controls how detailed the synthesized answer is. Default "medium"; use "short" for a quick fact lookup or "long" for a thorough recall.'
|
|
31362
|
+
}
|
|
31363
|
+
},
|
|
31364
|
+
required: ["query"]
|
|
31365
|
+
},
|
|
31366
|
+
executionHint: "platform",
|
|
31367
|
+
requiresApiKey: false,
|
|
31368
|
+
platformKeySupport: false
|
|
31369
|
+
},
|
|
31370
|
+
{
|
|
31371
|
+
id: "memory_summary",
|
|
31372
|
+
name: "Get Memory Summary",
|
|
31373
|
+
description: "Fetch a Markdown summary of what you know \u2014 key facts, recent events, active tasks, last session, and standing instructions. Useful at the start of a session to orient yourself. Returns { summary }.",
|
|
31374
|
+
category: BuiltInToolCategory.DATA_MANAGEMENT,
|
|
31375
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
31376
|
+
parametersSchema: {
|
|
31377
|
+
type: "object",
|
|
31378
|
+
properties: {
|
|
31379
|
+
sessionId: {
|
|
31380
|
+
type: "string",
|
|
31381
|
+
description: "Optional session scope. When provided, the summary covers that session; omit for a profile-wide summary."
|
|
31382
|
+
}
|
|
31383
|
+
}
|
|
31384
|
+
},
|
|
31385
|
+
executionHint: "platform",
|
|
31386
|
+
requiresApiKey: false,
|
|
31387
|
+
platformKeySupport: false
|
|
30214
31388
|
}
|
|
30215
31389
|
];
|
|
30216
31390
|
var BUILTIN_TOOLS_REGISTRY = [
|
|
@@ -32529,6 +33703,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
32529
33703
|
"nemotron-3-super-120b-a12b": {
|
|
32530
33704
|
"vercel": "nvidia/nemotron-3-super-120b-a12b"
|
|
32531
33705
|
},
|
|
33706
|
+
"nemotron-3-ultra-550b-a55b": {
|
|
33707
|
+
"vercel": "nvidia/nemotron-3-ultra-550b-a55b"
|
|
33708
|
+
},
|
|
32532
33709
|
"nemotron-nano-12b-v2-vl": {
|
|
32533
33710
|
"vercel": "nvidia/nemotron-nano-12b-v2-vl"
|
|
32534
33711
|
},
|
|
@@ -33777,12 +34954,40 @@ var artifactConfigSchema = external_exports.object({
|
|
|
33777
34954
|
enabled: external_exports.literal(true),
|
|
33778
34955
|
types: external_exports.array(external_exports.enum(["markdown", "component"])).min(1)
|
|
33779
34956
|
});
|
|
34957
|
+
var temporalConfigSchema = external_exports.object({
|
|
34958
|
+
injectElapsed: external_exports.boolean().optional(),
|
|
34959
|
+
elapsedThresholdSeconds: external_exports.number().int().min(0).optional(),
|
|
34960
|
+
groundNow: external_exports.boolean().optional(),
|
|
34961
|
+
timezone: external_exports.string().optional()
|
|
34962
|
+
});
|
|
34963
|
+
var memoryConfigSchema = external_exports.object({
|
|
34964
|
+
enabled: external_exports.boolean(),
|
|
34965
|
+
profileTemplate: external_exports.string().optional(),
|
|
34966
|
+
// When omitted and `enabled` is true, treated as `true` (smart default): a
|
|
34967
|
+
// Markdown memory summary is woven into the agent's system prompt on each
|
|
34968
|
+
// turn so the agent always has the user in context — without the model having
|
|
34969
|
+
// to call `recall_memory` first. (The summary is cached per profile so the
|
|
34970
|
+
// synthesis cost is paid once, not on every turn.) Set false to skip
|
|
34971
|
+
// injection (focused task agents that don't benefit from a profile overview).
|
|
34972
|
+
// Resolved via `shouldInjectMemorySummary` so the default lives in one place.
|
|
34973
|
+
injectSummary: external_exports.boolean().optional()
|
|
34974
|
+
});
|
|
33780
34975
|
var agentRuntimeConfigSchema = external_exports.object({
|
|
33781
34976
|
model: external_exports.string().optional(),
|
|
33782
34977
|
systemPrompt: external_exports.string().optional(),
|
|
33783
34978
|
temperature: external_exports.number().min(0).max(2).optional(),
|
|
33784
34979
|
...samplingConfigSchema,
|
|
33785
|
-
// Unified tools configuration (nested under 'tools')
|
|
34980
|
+
// Unified tools configuration (nested under 'tools').
|
|
34981
|
+
//
|
|
34982
|
+
// This is the **createAgent / FPO-v2 create-form** projection of the canonical
|
|
34983
|
+
// `agentToolsConfigSchema` (`tool-types.ts`). It is kept separate on purpose —
|
|
34984
|
+
// it carries create-time constraints (`.int().min().max()`), a create-form
|
|
34985
|
+
// `runtimeTools.toolType` enum (`advisor`/`search` instead of the canonical
|
|
34986
|
+
// `RuntimeToolDefinition` union), and does NOT yet accept `toolSearch`.
|
|
34987
|
+
// Collapsing it onto the canonical leaves would change createAgent validation,
|
|
34988
|
+
// so the two are pinned by review + the planning doc rather than a shared
|
|
34989
|
+
// import. Adding `toolSearch` here (to match the canonical schema + the runtime
|
|
34990
|
+
// wire form) is a tracked follow-up.
|
|
33786
34991
|
tools: external_exports.object({
|
|
33787
34992
|
toolIds: external_exports.array(external_exports.string()).optional(),
|
|
33788
34993
|
toolConfigs: external_exports.record(external_exports.string(), external_exports.record(external_exports.string(), external_exports.unknown())).optional(),
|
|
@@ -33874,7 +35079,19 @@ var agentRuntimeConfigSchema = external_exports.object({
|
|
|
33874
35079
|
}).optional()
|
|
33875
35080
|
}).optional(),
|
|
33876
35081
|
errorHandling: errorHandlingSchema,
|
|
33877
|
-
loggingPolicy: external_exports.enum(["default", "on", "off"]).optional()
|
|
35082
|
+
loggingPolicy: external_exports.enum(["default", "on", "off"]).optional(),
|
|
35083
|
+
// Opt-in temporal awareness. `injectElapsed` turns on the automatic
|
|
35084
|
+
// "time has passed" decorator (a `<temporal_context>` block prepended to
|
|
35085
|
+
// the user turn at dispatch, gated on turn ≥ 2 and a gap ≥
|
|
35086
|
+
// `elapsedThresholdSeconds`). `groundNow` additionally surfaces the current
|
|
35087
|
+
// datetime in that block. `timezone` is the agent's DEFAULT IANA zone —
|
|
35088
|
+
// the layered tool/decorator resolution overrides it per-conversation.
|
|
35089
|
+
temporal: temporalConfigSchema.optional(),
|
|
35090
|
+
// Long-term memory (Cloudflare Agent Memory). Single-sourced as
|
|
35091
|
+
// `memoryConfigSchema` (below) and reused by the update-agent, dispatch
|
|
35092
|
+
// inline-agent, and FPO agent schemas so the four surfaces never drift —
|
|
35093
|
+
// mirroring how `temporalConfigSchema` is shared.
|
|
35094
|
+
memory: memoryConfigSchema.optional()
|
|
33878
35095
|
});
|
|
33879
35096
|
var SECRET_REF_PATTERN = /\{\{secret:([A-Z][A-Z0-9_]*[A-Z0-9])\}\}/g;
|
|
33880
35097
|
function extractSecretReferences(template) {
|
|
@@ -33939,7 +35156,7 @@ var agentToolSchema = external_exports.object({
|
|
|
33939
35156
|
description: external_exports.string().optional(),
|
|
33940
35157
|
config: external_exports.record(external_exports.string(), external_exports.any()).optional()
|
|
33941
35158
|
});
|
|
33942
|
-
var
|
|
35159
|
+
var agentSubagentConfigSchema2 = external_exports.object({
|
|
33943
35160
|
toolPool: external_exports.array(external_exports.string()).optional(),
|
|
33944
35161
|
defaultMaxTurns: external_exports.number().int().positive().optional(),
|
|
33945
35162
|
maxSpawnsPerRun: external_exports.number().int().positive().optional(),
|
|
@@ -34009,7 +35226,7 @@ var agentMcpServerSchema = external_exports.object({
|
|
|
34009
35226
|
transport: external_exports.enum(["streamable_http", "rest"]).optional(),
|
|
34010
35227
|
enabled: external_exports.boolean().optional()
|
|
34011
35228
|
});
|
|
34012
|
-
var
|
|
35229
|
+
var agentToolsConfigSchema2 = external_exports.object({
|
|
34013
35230
|
toolIds: external_exports.array(external_exports.string()).optional(),
|
|
34014
35231
|
toolConfigs: external_exports.record(external_exports.string(), external_exports.record(external_exports.string(), external_exports.any())).optional(),
|
|
34015
35232
|
runtimeTools: external_exports.array(external_exports.object({
|
|
@@ -34031,7 +35248,7 @@ var agentToolsConfigSchema = external_exports.object({
|
|
|
34031
35248
|
maxCalls: external_exports.number().int().positive().optional(),
|
|
34032
35249
|
required: external_exports.boolean().optional()
|
|
34033
35250
|
})).optional(),
|
|
34034
|
-
subagentConfig:
|
|
35251
|
+
subagentConfig: agentSubagentConfigSchema2.optional(),
|
|
34035
35252
|
codeModeConfig: external_exports.object({
|
|
34036
35253
|
toolPool: external_exports.array(external_exports.string()).optional(),
|
|
34037
35254
|
description: external_exports.string().optional(),
|
|
@@ -34071,7 +35288,7 @@ var agentDefinitionSchema = external_exports.object({
|
|
|
34071
35288
|
seed: external_exports.number().int().optional(),
|
|
34072
35289
|
// Tools — legacy simple array, or the full config object
|
|
34073
35290
|
tools: external_exports.array(agentToolSchema).optional(),
|
|
34074
|
-
toolsConfig:
|
|
35291
|
+
toolsConfig: agentToolsConfigSchema2.optional(),
|
|
34075
35292
|
// Advanced config
|
|
34076
35293
|
loopConfig: agentLoopConfigSchema.optional(),
|
|
34077
35294
|
reasoning: external_exports.union([external_exports.boolean(), agentReasoningConfigSchema]).optional(),
|
|
@@ -34082,11 +35299,12 @@ var agentDefinitionSchema = external_exports.object({
|
|
|
34082
35299
|
model: external_exports.string(),
|
|
34083
35300
|
systemPrompt: external_exports.string().optional()
|
|
34084
35301
|
}).optional(),
|
|
34085
|
-
subagentConfig:
|
|
35302
|
+
subagentConfig: agentSubagentConfigSchema2.optional(),
|
|
34086
35303
|
capabilityToolRefs: external_exports.array(capabilityToolRefSchema).optional(),
|
|
34087
35304
|
// External / managed agent configs
|
|
34088
35305
|
externalConfig: agentExternalConfigSchema.optional(),
|
|
34089
35306
|
claudeManagedConfig: agentClaudeManagedConfigSchema.optional(),
|
|
35307
|
+
memory: memoryConfigSchema.optional(),
|
|
34090
35308
|
createPolicy: createPolicySchema
|
|
34091
35309
|
});
|
|
34092
35310
|
var agentDefinitionSchemaV2 = external_exports.object({
|
|
@@ -34297,6 +35515,18 @@ var fullProductObjectSchema = external_exports.object({
|
|
|
34297
35515
|
}
|
|
34298
35516
|
}
|
|
34299
35517
|
});
|
|
35518
|
+
var FLAT_ADVANCED_CONFIG_KEYS = {
|
|
35519
|
+
loopConfig: true,
|
|
35520
|
+
reasoning: true,
|
|
35521
|
+
voice: true,
|
|
35522
|
+
errorHandling: true,
|
|
35523
|
+
artifacts: true,
|
|
35524
|
+
advisor: true,
|
|
35525
|
+
memory: true
|
|
35526
|
+
};
|
|
35527
|
+
var FLAT_ADVANCED_CONFIG_KEY_LIST = Object.keys(
|
|
35528
|
+
FLAT_ADVANCED_CONFIG_KEYS
|
|
35529
|
+
);
|
|
34300
35530
|
function createIssue(severity, code, message, path16, suggestedFix) {
|
|
34301
35531
|
return { code, message, path: path16, severity, ...suggestedFix ? { suggestedFix } : {} };
|
|
34302
35532
|
}
|
|
@@ -35473,6 +36703,24 @@ var FLOW_STEP_TYPE_METADATA = {
|
|
|
35473
36703
|
category: "document",
|
|
35474
36704
|
isPrompt: false,
|
|
35475
36705
|
configHints: "html OR markdown, filename, visibility (public|private), pdfOptions (format, landscape, margin), outputVariable"
|
|
36706
|
+
},
|
|
36707
|
+
"save-memory": {
|
|
36708
|
+
description: "Ingest text from a variable into a Cloudflare Agent Memory profile so future recall-memory / memory-summary steps can synthesize from it.",
|
|
36709
|
+
category: "integration",
|
|
36710
|
+
isPrompt: false,
|
|
36711
|
+
configHints: "profileTemplate (template), contentVariable (variable path), sessionId (optional), outputVariable (optional), errorHandling"
|
|
36712
|
+
},
|
|
36713
|
+
"recall-memory": {
|
|
36714
|
+
description: "Recall a synthesized natural-language answer from a Cloudflare Agent Memory profile, given a query.",
|
|
36715
|
+
category: "integration",
|
|
36716
|
+
isPrompt: false,
|
|
36717
|
+
configHints: "profileTemplate (template), queryTemplate (template), outputVariable, thinkingLevel (low|medium|high), responseLength (short|medium|long), errorHandling"
|
|
36718
|
+
},
|
|
36719
|
+
"memory-summary": {
|
|
36720
|
+
description: "Fetch a markdown summary (Key Facts / Recent Events / Active Tasks) of a Cloudflare Agent Memory profile.",
|
|
36721
|
+
category: "integration",
|
|
36722
|
+
isPrompt: false,
|
|
36723
|
+
configHints: "profileTemplate (template), outputVariable, sessionId (optional), errorHandling"
|
|
35476
36724
|
}
|
|
35477
36725
|
};
|
|
35478
36726
|
var platformCatalogSchema = external_exports.object({
|
|
@@ -36083,6 +37331,7 @@ ${orthogonalLines.join("\n")}
|
|
|
36083
37331
|
- **Speech-to-text** \u2192 \`builtin:elevenlabs-stt\`
|
|
36084
37332
|
- **Emit rich content** \u2192 \`builtin:emit_artifact_markdown\`, \`builtin:emit_artifact_component\`
|
|
36085
37333
|
- **Record CRUD** \u2192 \`builtin:runtype_record_upsert\`, \`builtin:runtype_record_get\`, \`builtin:runtype_record_list\`, \`builtin:runtype_record_delete\`
|
|
37334
|
+
- **Agent memory (persist facts and recall them across sessions)** \u2192 \`builtin:save_memory\`, \`builtin:recall_memory\`, \`builtin:memory_summary\` \u2014 the memory bundle, attached together when memory is enabled on the agent
|
|
36086
37335
|
- **E-commerce checkout** \u2192 \`builtin:ucp_discover\`, \`builtin:ucp_search_catalog\`, \`builtin:ucp_create_checkout\`
|
|
36087
37336
|
|
|
36088
37337
|
### Custom MCP Servers (saved by the user)
|
|
@@ -36808,7 +38057,8 @@ var AgentInputSchema = external_exports.object({
|
|
|
36808
38057
|
advisor: external_exports.object({
|
|
36809
38058
|
model: external_exports.string(),
|
|
36810
38059
|
systemPrompt: external_exports.string().optional()
|
|
36811
|
-
}).optional().nullable()
|
|
38060
|
+
}).optional().nullable(),
|
|
38061
|
+
memory: memoryConfigSchema.optional()
|
|
36812
38062
|
});
|
|
36813
38063
|
var TextContentPartSchema = external_exports.object({
|
|
36814
38064
|
type: external_exports.literal("text"),
|