@polka-codes/core 0.10.11 → 0.10.16
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/Agent/backoff.d.ts +7 -0
- package/dist/Agent/backoff.js +21 -0
- package/dist/Agent/backoff.js.map +1 -0
- package/dist/Agent/index.d.ts +2 -0
- package/dist/Agent/index.js +3 -0
- package/dist/Agent/index.js.map +1 -0
- package/dist/Agent/parseJsonFromMarkdown.d.ts +8 -0
- package/dist/Agent/parseJsonFromMarkdown.js +34 -0
- package/dist/Agent/parseJsonFromMarkdown.js.map +1 -0
- package/dist/Agent/parseJsonFromMarkdown.test.d.ts +1 -0
- package/dist/Agent/parseJsonFromMarkdown.test.js +70 -0
- package/dist/Agent/parseJsonFromMarkdown.test.js.map +1 -0
- package/dist/Agent/prompts.d.ts +9 -0
- package/dist/Agent/prompts.js +107 -0
- package/dist/Agent/prompts.js.map +1 -0
- package/dist/UsageMeter.d.ts +101 -0
- package/dist/UsageMeter.js +299 -0
- package/dist/UsageMeter.js.map +1 -0
- package/dist/UsageMeter.test.d.ts +4 -0
- package/dist/UsageMeter.test.js +556 -0
- package/dist/UsageMeter.test.js.map +1 -0
- package/dist/config/base.d.ts +68 -0
- package/dist/config/base.js +56 -0
- package/dist/config/base.js.map +1 -0
- package/dist/config/memory.d.ts +24 -0
- package/dist/config/memory.js +36 -0
- package/dist/config/memory.js.map +1 -0
- package/dist/config.d.ts +236 -0
- package/dist/config.js +184 -0
- package/dist/config.js.map +1 -0
- package/dist/errors/base.d.ts +31 -0
- package/dist/errors/base.js +60 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/fs/index.d.ts +2 -0
- package/dist/fs/index.js +3 -0
- package/dist/fs/index.js.map +1 -0
- package/dist/fs/node-provider.d.ts +16 -0
- package/dist/fs/node-provider.js +47 -0
- package/dist/fs/node-provider.js.map +1 -0
- package/dist/fs/provider.d.ts +61 -0
- package/dist/fs/provider.js +3 -0
- package/dist/fs/provider.js.map +1 -0
- package/dist/index.d.ts +20 -191
- package/dist/index.js +21 -4123
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/types.d.ts +136 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/path.d.ts +9 -0
- package/dist/path.js +68 -0
- package/dist/path.js.map +1 -0
- package/dist/path.test.d.ts +1 -0
- package/dist/path.test.js +82 -0
- package/dist/path.test.js.map +1 -0
- package/dist/pricing/converter.d.ts +6 -0
- package/dist/pricing/converter.js +13 -0
- package/dist/pricing/converter.js.map +1 -0
- package/dist/pricing/converter.test.d.ts +1 -0
- package/dist/pricing/converter.test.js +54 -0
- package/dist/pricing/converter.test.js.map +1 -0
- package/dist/pricing/index.d.ts +2 -0
- package/dist/pricing/index.js +2 -0
- package/dist/pricing/index.js.map +1 -0
- package/dist/pricing/portkey-client.d.ts +2 -0
- package/dist/pricing/portkey-client.js +57 -0
- package/dist/pricing/portkey-client.js.map +1 -0
- package/dist/pricing/pricing-service.d.ts +6 -0
- package/dist/pricing/pricing-service.js +125 -0
- package/dist/pricing/pricing-service.js.map +1 -0
- package/dist/pricing/pricing-service.test.d.ts +1 -0
- package/dist/pricing/pricing-service.test.js +141 -0
- package/dist/pricing/pricing-service.test.js.map +1 -0
- package/dist/pricing/types.d.ts +24 -0
- package/dist/pricing/types.js +2 -0
- package/dist/pricing/types.js.map +1 -0
- package/dist/skills/__tests__/discovery.test.d.ts +1 -0
- package/dist/skills/__tests__/discovery.test.js +254 -0
- package/dist/skills/__tests__/discovery.test.js.map +1 -0
- package/dist/skills/__tests__/validation.test.d.ts +1 -0
- package/dist/skills/__tests__/validation.test.js +221 -0
- package/dist/skills/__tests__/validation.test.js.map +1 -0
- package/dist/skills/constants.d.ts +32 -0
- package/dist/skills/constants.js +50 -0
- package/dist/skills/constants.js.map +1 -0
- package/dist/skills/discovery.d.ts +56 -0
- package/dist/skills/discovery.js +392 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.js +6 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/tools/index.d.ts +3 -0
- package/dist/skills/tools/index.js +5 -0
- package/dist/skills/tools/index.js.map +1 -0
- package/dist/skills/tools/listSkills.d.ts +54 -0
- package/dist/skills/tools/listSkills.js +52 -0
- package/dist/skills/tools/listSkills.js.map +1 -0
- package/dist/skills/tools/loadSkill.d.ts +52 -0
- package/dist/skills/tools/loadSkill.js +86 -0
- package/dist/skills/tools/loadSkill.js.map +1 -0
- package/dist/skills/tools/readSkillFile.d.ts +43 -0
- package/dist/skills/tools/readSkillFile.js +68 -0
- package/dist/skills/tools/readSkillFile.js.map +1 -0
- package/dist/skills/types.d.ts +83 -0
- package/dist/skills/types.js +42 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/validation.d.ts +30 -0
- package/dist/skills/validation.js +133 -0
- package/dist/skills/validation.js.map +1 -0
- package/dist/tool.d.ts +51 -0
- package/dist/tool.js +2 -0
- package/dist/tool.js.map +1 -0
- package/dist/tools/askFollowupQuestion.d.ts +35 -0
- package/dist/tools/askFollowupQuestion.js +105 -0
- package/dist/tools/askFollowupQuestion.js.map +1 -0
- package/dist/tools/askFollowupQuestion.test.d.ts +1 -0
- package/dist/tools/askFollowupQuestion.test.js +80 -0
- package/dist/tools/askFollowupQuestion.test.js.map +1 -0
- package/dist/tools/executeCommand.d.ts +29 -0
- package/dist/tools/executeCommand.js +82 -0
- package/dist/tools/executeCommand.js.map +1 -0
- package/dist/tools/executeCommand.test.d.ts +1 -0
- package/dist/tools/executeCommand.test.js +60 -0
- package/dist/tools/executeCommand.test.js.map +1 -0
- package/dist/tools/fetchUrl.d.ts +26 -0
- package/dist/tools/fetchUrl.js +85 -0
- package/dist/tools/fetchUrl.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/listFiles.d.ts +35 -0
- package/dist/tools/listFiles.js +61 -0
- package/dist/tools/listFiles.js.map +1 -0
- package/dist/tools/listFiles.test.d.ts +1 -0
- package/dist/tools/listFiles.test.js +59 -0
- package/dist/tools/listFiles.test.js.map +1 -0
- package/dist/tools/provider.d.ts +76 -0
- package/dist/tools/provider.js +60 -0
- package/dist/tools/provider.js.map +1 -0
- package/dist/tools/readBinaryFile.d.ts +26 -0
- package/dist/tools/readBinaryFile.js +52 -0
- package/dist/tools/readBinaryFile.js.map +1 -0
- package/dist/tools/readFile.d.ts +35 -0
- package/dist/tools/readFile.js +128 -0
- package/dist/tools/readFile.js.map +1 -0
- package/dist/tools/readFile.test.d.ts +1 -0
- package/dist/tools/readFile.test.js +37 -0
- package/dist/tools/readFile.test.js.map +1 -0
- package/dist/tools/removeFile.d.ts +26 -0
- package/dist/tools/removeFile.js +49 -0
- package/dist/tools/removeFile.js.map +1 -0
- package/dist/tools/removeFile.test.d.ts +1 -0
- package/dist/tools/removeFile.test.js +32 -0
- package/dist/tools/removeFile.test.js.map +1 -0
- package/dist/tools/renameFile.d.ts +29 -0
- package/dist/tools/renameFile.js +48 -0
- package/dist/tools/renameFile.js.map +1 -0
- package/dist/tools/renameFile.test.d.ts +1 -0
- package/dist/tools/renameFile.test.js +53 -0
- package/dist/tools/renameFile.test.js.map +1 -0
- package/dist/tools/replaceInFile.d.ts +29 -0
- package/dist/tools/replaceInFile.js +233 -0
- package/dist/tools/replaceInFile.js.map +1 -0
- package/dist/tools/replaceInFile.test.d.ts +1 -0
- package/dist/tools/replaceInFile.test.js +79 -0
- package/dist/tools/replaceInFile.test.js.map +1 -0
- package/dist/tools/response-builders.d.ts +64 -0
- package/dist/tools/response-builders.js +88 -0
- package/dist/tools/response-builders.js.map +1 -0
- package/dist/tools/search.d.ts +26 -0
- package/dist/tools/search.js +56 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/search.test.d.ts +1 -0
- package/dist/tools/search.test.js +22 -0
- package/dist/tools/search.test.js.map +1 -0
- package/dist/tools/searchFiles.d.ts +32 -0
- package/dist/tools/searchFiles.js +86 -0
- package/dist/tools/searchFiles.js.map +1 -0
- package/dist/tools/todo.d.ts +37 -0
- package/dist/tools/todo.js +41 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/utils/index.d.ts +1 -0
- package/dist/tools/utils/index.js +2 -0
- package/dist/tools/utils/index.js.map +1 -0
- package/dist/tools/utils/replaceInFile.d.ts +7 -0
- package/dist/tools/utils/replaceInFile.js +133 -0
- package/dist/tools/utils/replaceInFile.js.map +1 -0
- package/dist/tools/utils/replaceInFile.test.d.ts +1 -0
- package/dist/tools/utils/replaceInFile.test.js +308 -0
- package/dist/tools/utils/replaceInFile.test.js.map +1 -0
- package/dist/tools/utils.d.ts +10 -0
- package/dist/tools/utils.js +27 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/writeToFile.d.ts +29 -0
- package/dist/tools/writeToFile.js +85 -0
- package/dist/tools/writeToFile.js.map +1 -0
- package/dist/tools/writeToFile.test.d.ts +1 -0
- package/dist/tools/writeToFile.test.js +46 -0
- package/dist/tools/writeToFile.test.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/merge.d.ts +26 -0
- package/dist/utils/merge.js +45 -0
- package/dist/utils/merge.js.map +1 -0
- package/dist/workflow/agent.workflow.d.ts +39 -0
- package/dist/workflow/agent.workflow.js +166 -0
- package/dist/workflow/agent.workflow.js.map +1 -0
- package/dist/workflow/agent.workflow.test.d.ts +1 -0
- package/dist/workflow/agent.workflow.test.js +175 -0
- package/dist/workflow/agent.workflow.test.js.map +1 -0
- package/dist/workflow/control-flow.test.d.ts +1 -0
- package/dist/workflow/control-flow.test.js +323 -0
- package/dist/workflow/control-flow.test.js.map +1 -0
- package/dist/workflow/dynamic-edge-cases.test.d.ts +1 -0
- package/dist/workflow/dynamic-edge-cases.test.js +486 -0
- package/dist/workflow/dynamic-edge-cases.test.js.map +1 -0
- package/dist/workflow/dynamic-types.d.ts +124 -0
- package/dist/workflow/dynamic-types.js +105 -0
- package/dist/workflow/dynamic-types.js.map +1 -0
- package/dist/workflow/dynamic.d.ts +118 -0
- package/dist/workflow/dynamic.js +999 -0
- package/dist/workflow/dynamic.js.map +1 -0
- package/dist/workflow/index.d.ts +6 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/json-ai-types.d.ts +122 -0
- package/dist/workflow/json-ai-types.js +144 -0
- package/dist/workflow/json-ai-types.js.map +1 -0
- package/dist/workflow/json-schema-conversion.test.d.ts +1 -0
- package/dist/workflow/json-schema-conversion.test.js +371 -0
- package/dist/workflow/json-schema-conversion.test.js.map +1 -0
- package/dist/workflow/try-catch.test.d.ts +1 -0
- package/dist/workflow/try-catch.test.js +443 -0
- package/dist/workflow/try-catch.test.js.map +1 -0
- package/dist/workflow/types.d.ts +103 -0
- package/dist/workflow/types.js +17 -0
- package/dist/workflow/types.js.map +1 -0
- package/dist/workflow/workflow.d.ts +29 -0
- package/dist/workflow/workflow.js +57 -0
- package/dist/workflow/workflow.js.map +1 -0
- package/dist/workflow/workflow.test.d.ts +1 -0
- package/dist/workflow/workflow.test.js +189 -0
- package/dist/workflow/workflow.test.js.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const WorkflowInputDefinitionSchema = z.object({
|
|
3
|
+
id: z.string(),
|
|
4
|
+
description: z.string().nullish(),
|
|
5
|
+
default: z.unknown().nullish(),
|
|
6
|
+
});
|
|
7
|
+
/**
|
|
8
|
+
* Basic workflow step - executes a task
|
|
9
|
+
*/
|
|
10
|
+
export const WorkflowStepDefinitionSchema = z.object({
|
|
11
|
+
id: z.string(),
|
|
12
|
+
tools: z.array(z.string()).nullish(),
|
|
13
|
+
task: z.string(),
|
|
14
|
+
output: z.string().nullish(),
|
|
15
|
+
expected_outcome: z.string().nullish(),
|
|
16
|
+
/**
|
|
17
|
+
* Optional JSON schema or other metadata for future structured outputs.
|
|
18
|
+
* Not interpreted by core today.
|
|
19
|
+
*/
|
|
20
|
+
outputSchema: z.unknown().nullish(),
|
|
21
|
+
/**
|
|
22
|
+
* Optional timeout in milliseconds. Step execution will be aborted if it exceeds this duration.
|
|
23
|
+
*/
|
|
24
|
+
timeout: z.number().positive().nullish(),
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Control flow step types
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* While loop - repeats steps while condition is true
|
|
31
|
+
*/
|
|
32
|
+
// Type annotation required due to circular reference via z.lazy()
|
|
33
|
+
// The 'as unknown as' cast breaks the circular type inference dependency
|
|
34
|
+
export const WhileLoopStepSchema = z.object({
|
|
35
|
+
id: z.string(),
|
|
36
|
+
while: z.object({
|
|
37
|
+
condition: z.string().describe('JavaScript expression that evaluates to true/false'),
|
|
38
|
+
steps: z.array(z.lazy(() => WorkflowControlFlowStepSchema)),
|
|
39
|
+
}),
|
|
40
|
+
output: z.string().nullish(),
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* If/else branch - conditionally executes steps
|
|
44
|
+
*/
|
|
45
|
+
// Type annotation required due to circular reference via z.lazy()
|
|
46
|
+
// The 'as unknown as' cast breaks the circular type inference dependency
|
|
47
|
+
export const IfElseStepSchema = z.object({
|
|
48
|
+
id: z.string(),
|
|
49
|
+
if: z.object({
|
|
50
|
+
condition: z.string().describe('JavaScript expression that evaluates to true/false'),
|
|
51
|
+
thenBranch: z.array(z.lazy(() => WorkflowControlFlowStepSchema)),
|
|
52
|
+
elseBranch: z.array(z.lazy(() => WorkflowControlFlowStepSchema)).optional(),
|
|
53
|
+
}),
|
|
54
|
+
output: z.string().nullish(),
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* Break statement - exits the nearest enclosing loop
|
|
58
|
+
*/
|
|
59
|
+
export const BreakStepSchema = z.object({
|
|
60
|
+
break: z.literal(true),
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Continue statement - skips to next iteration of nearest enclosing loop
|
|
64
|
+
*/
|
|
65
|
+
export const ContinueStepSchema = z.object({
|
|
66
|
+
continue: z.literal(true),
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Try/catch block - error handling
|
|
70
|
+
*/
|
|
71
|
+
export const TryCatchStepSchema = z.object({
|
|
72
|
+
id: z.string(),
|
|
73
|
+
try: z.object({
|
|
74
|
+
trySteps: z.array(z.lazy(() => WorkflowControlFlowStepSchema)),
|
|
75
|
+
catchSteps: z.array(z.lazy(() => WorkflowControlFlowStepSchema)),
|
|
76
|
+
}),
|
|
77
|
+
output: z.string().nullish(),
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Any step that can appear in a workflow's steps array
|
|
81
|
+
* Can be a basic step, control flow, or jump statement
|
|
82
|
+
*/
|
|
83
|
+
// Type annotation required due to circular reference via z.lazy() in other schemas
|
|
84
|
+
// The 'as unknown as' cast breaks the circular type inference dependency
|
|
85
|
+
export const WorkflowControlFlowStepSchema = z.union([
|
|
86
|
+
WorkflowStepDefinitionSchema,
|
|
87
|
+
WhileLoopStepSchema,
|
|
88
|
+
IfElseStepSchema,
|
|
89
|
+
BreakStepSchema,
|
|
90
|
+
ContinueStepSchema,
|
|
91
|
+
TryCatchStepSchema,
|
|
92
|
+
]);
|
|
93
|
+
/**
|
|
94
|
+
* Workflow definition - now supports control flow in steps
|
|
95
|
+
*/
|
|
96
|
+
export const WorkflowDefinitionSchema = z.object({
|
|
97
|
+
task: z.string(),
|
|
98
|
+
inputs: z.array(WorkflowInputDefinitionSchema).nullish(),
|
|
99
|
+
steps: z.array(WorkflowControlFlowStepSchema),
|
|
100
|
+
output: z.string().nullish(),
|
|
101
|
+
});
|
|
102
|
+
export const WorkflowFileSchema = z.object({
|
|
103
|
+
workflows: z.record(z.string(), WorkflowDefinitionSchema),
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=dynamic-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-types.js","sourceRoot":"","sources":["../../src/workflow/dynamic-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { FullToolInfo } from '../tool';
|
|
3
|
+
import { type ValidationResult, type WorkflowFile, type WorkflowStepDefinition } from './dynamic-types';
|
|
4
|
+
import type { BaseWorkflowContext, Logger, StepFn, ToolRegistry, WorkflowFn, WorkflowTools } from './workflow';
|
|
5
|
+
/**
|
|
6
|
+
* JSON Schema type to Zod type mapping
|
|
7
|
+
*/
|
|
8
|
+
type JsonSchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null';
|
|
9
|
+
/**
|
|
10
|
+
* JSON Schema enum values - can be string, number, or boolean
|
|
11
|
+
*/
|
|
12
|
+
type JsonSchemaEnum = (string | number | boolean)[];
|
|
13
|
+
interface JsonSchema {
|
|
14
|
+
type?: JsonSchemaType | JsonSchemaType[];
|
|
15
|
+
enum?: JsonSchemaEnum;
|
|
16
|
+
properties?: Record<string, JsonSchema>;
|
|
17
|
+
required?: string[];
|
|
18
|
+
items?: JsonSchema;
|
|
19
|
+
additionalProperties?: boolean | JsonSchema;
|
|
20
|
+
description?: string;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Convert a JSON Schema to a Zod schema
|
|
25
|
+
* Supports a subset of JSON SchemaDraft 7
|
|
26
|
+
*
|
|
27
|
+
* This is exported to allow reuse in other parts of the codebase that need to
|
|
28
|
+
* convert JSON schemas to Zod schemas (e.g., MCP server tool schema conversion).
|
|
29
|
+
*/
|
|
30
|
+
export declare function convertJsonSchemaToZod(schema: JsonSchema): z.ZodTypeAny;
|
|
31
|
+
/**
|
|
32
|
+
* Tool groups that can be used in step.tools arrays.
|
|
33
|
+
* - "readonly": File reading operations only
|
|
34
|
+
* - "readwrite": Full file system access
|
|
35
|
+
* - "internet": Network operations (fetch, search)
|
|
36
|
+
* - "all": All available tools (special keyword, not in this map)
|
|
37
|
+
*/
|
|
38
|
+
export declare const TOOL_GROUPS: Record<string, string[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Type for the runWorkflow tool that allows workflows to call other workflows
|
|
41
|
+
*/
|
|
42
|
+
export type RunWorkflowTool = {
|
|
43
|
+
input: {
|
|
44
|
+
workflowId: string;
|
|
45
|
+
input?: Record<string, unknown>;
|
|
46
|
+
};
|
|
47
|
+
output: unknown;
|
|
48
|
+
};
|
|
49
|
+
export type DynamicWorkflowRegistry = ToolRegistry & {
|
|
50
|
+
runWorkflow: RunWorkflowTool;
|
|
51
|
+
};
|
|
52
|
+
export type DynamicWorkflowParseResult = {
|
|
53
|
+
success: true;
|
|
54
|
+
definition: WorkflowFile;
|
|
55
|
+
} | {
|
|
56
|
+
success: false;
|
|
57
|
+
error: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Validate a workflow file for common issues
|
|
61
|
+
*/
|
|
62
|
+
export declare function validateWorkflowFile(definition: WorkflowFile): ValidationResult;
|
|
63
|
+
export declare function parseDynamicWorkflowDefinition(source: string): DynamicWorkflowParseResult;
|
|
64
|
+
export type DynamicStepRuntimeContext<TTools extends ToolRegistry> = {
|
|
65
|
+
workflowId: string;
|
|
66
|
+
stepId: string;
|
|
67
|
+
input: Record<string, unknown>;
|
|
68
|
+
state: Record<string, unknown>;
|
|
69
|
+
tools: WorkflowTools<TTools>;
|
|
70
|
+
logger: Logger;
|
|
71
|
+
step: StepFn;
|
|
72
|
+
runWorkflow: (workflowId: string, input?: Record<string, unknown>) => Promise<unknown>;
|
|
73
|
+
toolInfo: Readonly<FullToolInfo[]> | undefined;
|
|
74
|
+
agentTools: Record<string, (input: unknown) => Promise<unknown>>;
|
|
75
|
+
};
|
|
76
|
+
export type DynamicWorkflowRunnerOptions = {
|
|
77
|
+
/**
|
|
78
|
+
* Tool definitions used when a step does not have persisted `code`
|
|
79
|
+
* and needs to be executed via `agentWorkflow`.
|
|
80
|
+
*/
|
|
81
|
+
toolInfo?: Readonly<FullToolInfo[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Model id forwarded to `agentWorkflow` for agent-executed steps.
|
|
84
|
+
*/
|
|
85
|
+
model?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Maximum round trips for agent-executed steps.
|
|
88
|
+
*/
|
|
89
|
+
maxToolRoundTrips?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Customize per-step system prompt for agent-executed steps.
|
|
92
|
+
*/
|
|
93
|
+
stepSystemPrompt?: (args: {
|
|
94
|
+
workflowId: string;
|
|
95
|
+
step: WorkflowStepDefinition;
|
|
96
|
+
input: Record<string, unknown>;
|
|
97
|
+
state: Record<string, unknown>;
|
|
98
|
+
}) => string;
|
|
99
|
+
/**
|
|
100
|
+
* Whether to wrap plain text agent responses in an object { result: ... }.
|
|
101
|
+
* Defaults to false.
|
|
102
|
+
*/
|
|
103
|
+
wrapAgentResultInObject?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Built-in workflows that can be called by name if not found in the definition.
|
|
106
|
+
*/
|
|
107
|
+
builtInWorkflows?: Record<string, WorkflowFn<any, any, any>>;
|
|
108
|
+
/**
|
|
109
|
+
* Allow unsafe code execution in condition expressions.
|
|
110
|
+
* When false (default), only simple comparisons and property access are allowed.
|
|
111
|
+
* When true, arbitrary JavaScript code can be executed in conditions.
|
|
112
|
+
* WARNING: Setting to true with untrusted workflow definitions is a security risk.
|
|
113
|
+
* @default false
|
|
114
|
+
*/
|
|
115
|
+
allowUnsafeCodeExecution?: boolean;
|
|
116
|
+
};
|
|
117
|
+
export declare function createDynamicWorkflow<TTools extends ToolRegistry = DynamicWorkflowRegistry, TContext extends BaseWorkflowContext<TTools> = BaseWorkflowContext<TTools>>(definition: WorkflowFile | string, options?: DynamicWorkflowRunnerOptions): (workflowId: string, input: Record<string, unknown>, context: TContext) => Promise<unknown>;
|
|
118
|
+
export {};
|