@positronic/core 0.0.76 → 0.0.78
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/src/dsl/brain-runner.js +37 -182
- package/dist/src/dsl/brain-state-machine.js +58 -112
- package/dist/src/dsl/brain.js +1 -0
- package/dist/src/dsl/builder/brain.js +250 -404
- package/dist/src/dsl/builder/continuation.js +67 -0
- package/dist/src/dsl/constants.js +16 -17
- package/dist/src/dsl/create-brain.js +29 -45
- package/dist/src/dsl/example-webhook.js +1 -1
- package/dist/src/dsl/execution/constants.js +0 -4
- package/dist/src/dsl/execution/event-channel.js +77 -0
- package/dist/src/dsl/execution/event-stream.js +1625 -1462
- package/dist/src/dsl/signal-validation.js +0 -1
- package/dist/src/dsl/webhook.js +4 -1
- package/dist/src/files/event-wrapper.js +268 -0
- package/dist/src/files/index.js +1 -0
- package/dist/src/files/mime.js +31 -0
- package/dist/src/files/types.js +13 -0
- package/dist/src/index.js +10 -3
- package/dist/src/jsx-runtime.js +49 -0
- package/dist/src/memory/{scoped-memory.js → create-memory.js} +5 -5
- package/dist/src/plugins/collect-webhooks.js +49 -0
- package/dist/src/plugins/define-plugin.js +15 -0
- package/dist/src/plugins/index.js +1 -0
- package/dist/src/plugins/types.js +4 -0
- package/dist/src/store/types.js +2 -3
- package/dist/src/template/render-html.js +282 -0
- package/dist/src/template/render.js +357 -0
- package/dist/src/tools/index.js +88 -27
- package/dist/src/ui/generate-page-html.js +6 -6
- package/dist/src/ui/{generate-ui.js → generate-page.js} +24 -12
- package/dist/src/ui/parse-form-data.js +1 -11
- package/dist/src/ui/types.js +0 -123
- package/dist/src/yaml/data-validator.js +0 -27
- package/dist/src/yaml/type-inference.js +10 -9
- package/dist/types/clients/types.d.ts +15 -5
- package/dist/types/clients/types.d.ts.map +1 -1
- package/dist/types/dsl/brain-runner.d.ts +9 -14
- package/dist/types/dsl/brain-runner.d.ts.map +1 -1
- package/dist/types/dsl/brain-state-machine.d.ts +18 -28
- package/dist/types/dsl/brain-state-machine.d.ts.map +1 -1
- package/dist/types/dsl/brain.d.ts +3 -2
- package/dist/types/dsl/brain.d.ts.map +1 -1
- package/dist/types/dsl/builder/brain.d.ts +87 -230
- package/dist/types/dsl/builder/brain.d.ts.map +1 -1
- package/dist/types/dsl/builder/continuation.d.ts +16 -0
- package/dist/types/dsl/builder/continuation.d.ts.map +1 -0
- package/dist/types/dsl/constants.d.ts +12 -12
- package/dist/types/dsl/constants.d.ts.map +1 -1
- package/dist/types/dsl/create-brain.d.ts +17 -57
- package/dist/types/dsl/create-brain.d.ts.map +1 -1
- package/dist/types/dsl/definitions/blocks.d.ts +67 -55
- package/dist/types/dsl/definitions/blocks.d.ts.map +1 -1
- package/dist/types/dsl/definitions/brain-types.d.ts +8 -11
- package/dist/types/dsl/definitions/brain-types.d.ts.map +1 -1
- package/dist/types/dsl/definitions/events.d.ts +61 -55
- package/dist/types/dsl/definitions/events.d.ts.map +1 -1
- package/dist/types/dsl/definitions/run-params.d.ts +20 -21
- package/dist/types/dsl/definitions/run-params.d.ts.map +1 -1
- package/dist/types/dsl/definitions/steps.d.ts +1 -1
- package/dist/types/dsl/definitions/steps.d.ts.map +1 -1
- package/dist/types/dsl/example-webhook.d.ts +3 -3
- package/dist/types/dsl/example-webhook.d.ts.map +1 -1
- package/dist/types/dsl/execution/constants.d.ts +0 -5
- package/dist/types/dsl/execution/constants.d.ts.map +1 -1
- package/dist/types/dsl/execution/event-channel.d.ts +16 -0
- package/dist/types/dsl/execution/event-channel.d.ts.map +1 -0
- package/dist/types/dsl/execution/event-stream.d.ts +46 -34
- package/dist/types/dsl/execution/event-stream.d.ts.map +1 -1
- package/dist/types/dsl/signal-validation.d.ts.map +1 -1
- package/dist/types/dsl/types.d.ts +21 -83
- package/dist/types/dsl/types.d.ts.map +1 -1
- package/dist/types/dsl/webhook.d.ts +12 -2
- package/dist/types/dsl/webhook.d.ts.map +1 -1
- package/dist/types/files/event-wrapper.d.ts +20 -0
- package/dist/types/files/event-wrapper.d.ts.map +1 -0
- package/dist/types/files/index.d.ts +2 -0
- package/dist/types/files/index.d.ts.map +1 -0
- package/dist/types/files/mime.d.ts +2 -0
- package/dist/types/files/mime.d.ts.map +1 -0
- package/dist/types/files/types.d.ts +88 -0
- package/dist/types/files/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/jsx-runtime.d.ts +35 -0
- package/dist/types/jsx-runtime.d.ts.map +1 -0
- package/dist/types/memory/{scoped-memory.d.ts → create-memory.d.ts} +7 -7
- package/dist/types/memory/create-memory.d.ts.map +1 -0
- package/dist/types/memory/types.d.ts +4 -4
- package/dist/types/memory/types.d.ts.map +1 -1
- package/dist/types/plugins/collect-webhooks.d.ts +8 -0
- package/dist/types/plugins/collect-webhooks.d.ts.map +1 -0
- package/dist/types/plugins/define-plugin.d.ts +25 -0
- package/dist/types/plugins/define-plugin.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +3 -0
- package/dist/types/plugins/index.d.ts.map +1 -0
- package/dist/types/plugins/types.d.ts +83 -0
- package/dist/types/plugins/types.d.ts.map +1 -0
- package/dist/types/store/index.d.ts +1 -1
- package/dist/types/store/index.d.ts.map +1 -1
- package/dist/types/store/types.d.ts +0 -8
- package/dist/types/store/types.d.ts.map +1 -1
- package/dist/types/template/render-html.d.ts +9 -0
- package/dist/types/template/render-html.d.ts.map +1 -0
- package/dist/types/template/render.d.ts +15 -0
- package/dist/types/template/render.d.ts.map +1 -0
- package/dist/types/tools/index.d.ts +39 -27
- package/dist/types/tools/index.d.ts.map +1 -1
- package/dist/types/ui/generate-page-html.d.ts +4 -6
- package/dist/types/ui/generate-page-html.d.ts.map +1 -1
- package/dist/types/ui/{generate-ui.d.ts → generate-page.d.ts} +6 -6
- package/dist/types/ui/generate-page.d.ts.map +1 -0
- package/dist/types/ui/parse-form-data.d.ts +1 -5
- package/dist/types/ui/parse-form-data.d.ts.map +1 -1
- package/dist/types/ui/types.d.ts +0 -49
- package/dist/types/ui/types.d.ts.map +1 -1
- package/dist/types/yaml/data-validator.d.ts +0 -5
- package/dist/types/yaml/data-validator.d.ts.map +1 -1
- package/dist/types/yaml/type-inference.d.ts +4 -2
- package/dist/types/yaml/type-inference.d.ts.map +1 -1
- package/dist/types/yaml/types.d.ts +0 -1
- package/dist/types/yaml/types.d.ts.map +1 -1
- package/package.json +5 -1
- package/dist/src/dsl/agent-messages.js +0 -5
- package/dist/src/ui/validate-form.js +0 -428
- package/dist/types/dsl/agent-messages.d.ts +0 -12
- package/dist/types/dsl/agent-messages.d.ts.map +0 -1
- package/dist/types/memory/scoped-memory.d.ts.map +0 -1
- package/dist/types/ui/generate-ui.d.ts.map +0 -1
- package/dist/types/ui/validate-form.d.ts +0 -45
- package/dist/types/ui/validate-form.d.ts.map +0 -1
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type { State, JsonObject
|
|
2
|
+
import type { State, JsonObject } from '../types.js';
|
|
3
|
+
import type { PagesService } from '../pages.js';
|
|
3
4
|
import type { UIComponent } from '../../ui/types.js';
|
|
4
|
-
import type { MemoryProvider } from '../../memory/types.js';
|
|
5
5
|
import type { Store } from '../../store/types.js';
|
|
6
|
+
import type { FilesService } from '../../files/types.js';
|
|
7
|
+
import type { PluginAdapter, ConfiguredPlugin } from '../../plugins/types.js';
|
|
6
8
|
import type { BrainEvent } from '../definitions/events.js';
|
|
7
9
|
import type { Block } from '../definitions/blocks.js';
|
|
8
10
|
import type { InitialRunParams, ResumeRunParams } from '../definitions/run-params.js';
|
|
9
|
-
export declare class BrainEventStream<TOptions extends JsonObject = JsonObject, TState extends State = object,
|
|
11
|
+
export declare class BrainEventStream<TOptions extends JsonObject = JsonObject, TState extends State = object, TPlugins extends object = object> {
|
|
10
12
|
private currentState;
|
|
11
13
|
private steps;
|
|
12
14
|
private currentStepIndex;
|
|
@@ -15,20 +17,21 @@ export declare class BrainEventStream<TOptions extends JsonObject = JsonObject,
|
|
|
15
17
|
private description?;
|
|
16
18
|
private client;
|
|
17
19
|
private options;
|
|
18
|
-
private services;
|
|
19
20
|
private resources;
|
|
20
21
|
private pages?;
|
|
21
22
|
private env;
|
|
22
23
|
private currentResponse;
|
|
23
24
|
private currentPage;
|
|
24
|
-
private
|
|
25
|
+
private resume?;
|
|
25
26
|
private components?;
|
|
26
|
-
private defaultTools?;
|
|
27
|
-
private extraTools?;
|
|
28
27
|
private signalProvider?;
|
|
29
|
-
private memoryProvider?;
|
|
30
|
-
private scopedMemory?;
|
|
31
28
|
private store?;
|
|
29
|
+
private files?;
|
|
30
|
+
private storeProvider?;
|
|
31
|
+
private pluginInjections;
|
|
32
|
+
private pluginAdapters;
|
|
33
|
+
private pluginConfigs;
|
|
34
|
+
private templateContext;
|
|
32
35
|
private governor?;
|
|
33
36
|
private currentUser;
|
|
34
37
|
private guards;
|
|
@@ -38,46 +41,55 @@ export declare class BrainEventStream<TOptions extends JsonObject = JsonObject,
|
|
|
38
41
|
constructor(params: (InitialRunParams<TOptions> | ResumeRunParams<TOptions>) & {
|
|
39
42
|
title: string;
|
|
40
43
|
description?: string;
|
|
41
|
-
blocks: Block<any, any, TOptions,
|
|
42
|
-
services: TServices;
|
|
44
|
+
blocks: Block<any, any, TOptions, TPlugins, any, any>[];
|
|
43
45
|
components?: Record<string, UIComponent<any>>;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
memoryProvider?: MemoryProvider;
|
|
46
|
+
files?: FilesService;
|
|
47
|
+
pages?: PagesService;
|
|
47
48
|
store?: Store<any>;
|
|
48
49
|
optionsSchema?: z.ZodSchema<any>;
|
|
50
|
+
pluginInjections?: Record<string, any>;
|
|
51
|
+
pluginAdapters?: PluginAdapter[];
|
|
52
|
+
pluginConfigs?: ConfiguredPlugin[];
|
|
49
53
|
});
|
|
50
|
-
/**
|
|
51
|
-
* Find webhookResponse anywhere in the resumeContext tree (for nested brain resumes)
|
|
52
|
-
*/
|
|
53
|
-
private findWebhookResponseInResumeContext;
|
|
54
54
|
next(): AsyncGenerator<BrainEvent<TOptions>>;
|
|
55
|
+
private generate;
|
|
56
|
+
private stepStatusEvent;
|
|
57
|
+
/** Params forwarded to inner brain runs (nested .brain() and .map() steps). */
|
|
58
|
+
private get innerBrainParams();
|
|
55
59
|
private buildStepContext;
|
|
56
60
|
private executeStep;
|
|
57
|
-
private executeAgent;
|
|
58
|
-
/**
|
|
59
|
-
* Execute an iterate prompt step, yielding one ITERATE_ITEM_COMPLETE
|
|
60
|
-
* event per item. Between items, checks for PAUSE/KILL signals so
|
|
61
|
-
* Cloudflare backends can restart the DO to reclaim memory.
|
|
62
|
-
*/
|
|
63
|
-
private executeIteratePrompt;
|
|
64
61
|
/**
|
|
65
|
-
* Execute a
|
|
66
|
-
*
|
|
62
|
+
* Execute a prompt step. Either single-shot (generateObject) or
|
|
63
|
+
* iterative tool-calling loop (generateText) when `loop` is present.
|
|
67
64
|
*/
|
|
68
|
-
private
|
|
65
|
+
private executePrompt;
|
|
69
66
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
67
|
+
* Shared prompt loop generator. Contains the core iteration logic:
|
|
68
|
+
* resume handling, signal checks, LLM calls, tool processing, and event emission.
|
|
69
|
+
*
|
|
70
|
+
* Yields all PROMPT_* events. When the done tool or a terminal tool fires,
|
|
71
|
+
* updates this.currentState, yields PROMPT_COMPLETE, and returns.
|
|
72
|
+
* The caller is responsible for calling completeStep().
|
|
73
|
+
*
|
|
74
|
+
* When a webhook suspension occurs and allowWebhookSuspension is true,
|
|
75
|
+
* yields PROMPT_WEBHOOK + WEBHOOK events and returns. If false, throws.
|
|
72
76
|
*/
|
|
73
|
-
private
|
|
77
|
+
private runPromptLoop;
|
|
74
78
|
/**
|
|
75
|
-
* Execute a
|
|
76
|
-
*
|
|
79
|
+
* Execute a map step. Runs the inner brain once per item
|
|
80
|
+
* from the `over` list, collects [item, innerState] tuples under `outputKey`.
|
|
77
81
|
*/
|
|
78
|
-
private
|
|
82
|
+
private executeMap;
|
|
83
|
+
private buildFormAction;
|
|
84
|
+
private executePageStep;
|
|
79
85
|
private executeWait;
|
|
80
86
|
private executeGuard;
|
|
87
|
+
/**
|
|
88
|
+
* Run a prompt loop for a single map item. Delegates to the shared
|
|
89
|
+
* runPromptLoop generator, drains events (map doesn't forward prompt events),
|
|
90
|
+
* and extracts the result from the PROMPT_COMPLETE event.
|
|
91
|
+
*/
|
|
92
|
+
private runMapPromptLoop;
|
|
81
93
|
private completeStep;
|
|
82
94
|
}
|
|
83
95
|
//# sourceMappingURL=event-stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../../src/dsl/execution/event-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,KAAK,EACV,KAAK,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../../src/dsl/execution/event-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-validation.d.ts","sourceRoot":"","sources":["../../../src/dsl/signal-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal-validation.d.ts","sourceRoot":"","sources":["../../../src/dsl/signal-validation.ts"],"names":[],"mappings":"AA2BA;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,iBAAiB,EAAE,sBAAsB,EACzC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CA4BxB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,iBAAiB,EAAE,sBAAsB,EACzC,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAmBV"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { WebhookRegistration } from './webhook.js';
|
|
3
|
-
import type { ToolChoice } from '../clients/types.js';
|
|
4
3
|
export type JsonPrimitive = string | number | boolean | null;
|
|
5
4
|
export type JsonArray = JsonValue[];
|
|
6
5
|
export type JsonObject = {
|
|
@@ -54,7 +53,7 @@ export type JsonPatch = {
|
|
|
54
53
|
* Return type for tools that need to suspend execution and wait for an external event.
|
|
55
54
|
* Supports single webhook or array of webhooks (first response wins).
|
|
56
55
|
*/
|
|
57
|
-
export interface
|
|
56
|
+
export interface ToolWaitFor {
|
|
58
57
|
waitFor: WebhookRegistration<z.ZodSchema> | WebhookRegistration<z.ZodSchema>[];
|
|
59
58
|
timeout?: number;
|
|
60
59
|
}
|
|
@@ -62,10 +61,14 @@ export interface AgentToolWaitFor {
|
|
|
62
61
|
* Context passed to step actions, agent config functions, and tool execute functions.
|
|
63
62
|
* This is the same context available throughout brain execution.
|
|
64
63
|
*
|
|
65
|
-
* Generic parameters allow type-safe access to state
|
|
64
|
+
* Generic parameters allow type-safe access to state and options.
|
|
66
65
|
* For tools (which are defined statically), use the non-generic defaults.
|
|
66
|
+
*
|
|
67
|
+
* Ephemeral data like `response` (from webhooks) and `page` (from page steps)
|
|
68
|
+
* is only available inside `.handle()` callbacks after `.wait()` and `.page()` `notify` callbacks,
|
|
69
|
+
* where it's injected via intersection types.
|
|
67
70
|
*/
|
|
68
|
-
export interface StepContext<TState = object, TOptions = JsonObject
|
|
71
|
+
export interface StepContext<TState = object, TOptions = JsonObject> {
|
|
69
72
|
/** Current brain state */
|
|
70
73
|
state: TState;
|
|
71
74
|
/** Brain options */
|
|
@@ -74,30 +77,28 @@ export interface StepContext<TState = object, TOptions = JsonObject, TResponse =
|
|
|
74
77
|
client: import('../clients/types.js').ObjectGenerator;
|
|
75
78
|
/** Resource loader for accessing brain resources */
|
|
76
79
|
resources: import('../resources/resources.js').Resources;
|
|
77
|
-
/**
|
|
78
|
-
response: TResponse;
|
|
79
|
-
/** Generated page from a previous UI step */
|
|
80
|
-
page: TPage;
|
|
81
|
-
/** Page service for creating UI pages */
|
|
80
|
+
/** Page service for creating pages */
|
|
82
81
|
pages: import('./pages.js').PagesService;
|
|
83
82
|
/** Runtime environment (origin, secrets) */
|
|
84
83
|
env: RuntimeEnv;
|
|
85
|
-
/** UI components available for
|
|
84
|
+
/** UI components available for generatePage */
|
|
86
85
|
components?: Record<string, import('../ui/types.js').UIComponent<any>>;
|
|
87
86
|
/** Current brain run ID (for creating unique webhook identifiers) */
|
|
88
87
|
brainRunId: string;
|
|
89
88
|
/** Current step ID (for creating unique webhook identifiers) */
|
|
90
89
|
stepId: string;
|
|
91
|
-
/** Scoped memory for storing and retrieving long-term memories */
|
|
92
|
-
memory?: import('../memory/types.js').ScopedMemory;
|
|
93
90
|
/** The authenticated user running this brain */
|
|
94
91
|
currentUser: CurrentUser;
|
|
92
|
+
/** File storage service for creating, reading, and managing files. Present when the backend provides it. */
|
|
93
|
+
files?: import('../files/types.js').FilesService;
|
|
94
|
+
/** Typed key-value store — available when the brain calls withStore() */
|
|
95
|
+
store?: import('../store/types.js').Store<any>;
|
|
95
96
|
}
|
|
96
97
|
/**
|
|
97
|
-
* A tool definition for use in
|
|
98
|
+
* A tool definition for use in LLM tool-calling workflows.
|
|
98
99
|
* Compatible with Vercel AI SDK tool format, extended with Positronic-specific properties.
|
|
99
100
|
*/
|
|
100
|
-
export interface
|
|
101
|
+
export interface Tool<TInput extends z.ZodSchema = z.ZodSchema> {
|
|
101
102
|
/** Description of what this tool does, helps the LLM understand when to use it */
|
|
102
103
|
description: string;
|
|
103
104
|
/** Zod schema defining the input parameters for this tool */
|
|
@@ -109,78 +110,18 @@ export interface AgentTool<TInput extends z.ZodSchema = z.ZodSchema> {
|
|
|
109
110
|
* @param input - The validated input from the LLM
|
|
110
111
|
* @param context - Runtime context with access to client, pages, state, etc.
|
|
111
112
|
*/
|
|
112
|
-
execute?(input: z.infer<TInput>, context: StepContext): Promise<unknown |
|
|
113
|
+
execute?(input: z.infer<TInput>, context: StepContext): Promise<unknown | ToolWaitFor> | unknown | ToolWaitFor;
|
|
113
114
|
/**
|
|
114
|
-
* If true, calling this tool ends the
|
|
115
|
-
* The tool's input becomes the
|
|
115
|
+
* If true, calling this tool ends the workflow.
|
|
116
|
+
* The tool's input becomes the result (merged into state).
|
|
116
117
|
*/
|
|
117
118
|
terminal?: boolean;
|
|
118
119
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Configuration for agent output schema.
|
|
121
|
-
* When provided, generates a terminal tool from the schema and
|
|
122
|
-
* namespaces the result in state under the specified key.
|
|
123
|
-
*/
|
|
124
|
-
export interface AgentOutputSchema<TSchema extends z.ZodObject<any> = z.ZodObject<any>, TName extends string = string> {
|
|
125
|
-
/** Zod schema defining the agent's output structure */
|
|
126
|
-
schema: TSchema;
|
|
127
|
-
/** Key name to store the result under in state (use `as const` for type inference) */
|
|
128
|
-
name: TName;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Configuration for an agent step.
|
|
132
|
-
*/
|
|
133
|
-
export interface AgentConfig<TTools extends Record<string, AgentTool<any>> = Record<string, AgentTool<any>>, TOutputSchema extends AgentOutputSchema | undefined = undefined> {
|
|
134
|
-
/** System prompt for the LLM */
|
|
135
|
-
system?: string;
|
|
136
|
-
/** Initial user prompt to start the conversation. If omitted, uses "Begin." */
|
|
137
|
-
prompt?: string;
|
|
138
|
-
/** Tools available to the LLM. Optional - merged with withTools defaults */
|
|
139
|
-
tools?: TTools;
|
|
140
|
-
/** Safety valve - exit if cumulative tokens exceed this limit */
|
|
141
|
-
maxTokens?: number;
|
|
142
|
-
/** Maximum number of agent loop iterations. Default: 100 */
|
|
143
|
-
maxIterations?: number;
|
|
144
|
-
/**
|
|
145
|
-
* Output schema for structured agent output.
|
|
146
|
-
* When provided, generates a terminal tool that validates output against the schema
|
|
147
|
-
* and stores the result under state[outputSchema.name].
|
|
148
|
-
*/
|
|
149
|
-
outputSchema?: TOutputSchema;
|
|
150
|
-
/**
|
|
151
|
-
* Tool choice configuration for LLM calls.
|
|
152
|
-
* - 'auto': Model chooses whether to call tools
|
|
153
|
-
* - 'required': Model must call a tool (default for agents)
|
|
154
|
-
* - 'none': Model cannot call tools
|
|
155
|
-
*/
|
|
156
|
-
toolChoice?: ToolChoice;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Represents a single message in the agent conversation.
|
|
160
|
-
*/
|
|
161
|
-
export interface AgentMessage {
|
|
162
|
-
role: 'user' | 'assistant' | 'tool';
|
|
163
|
-
content: string;
|
|
164
|
-
/** For tool messages, the ID of the tool call this is responding to */
|
|
165
|
-
toolCallId?: string;
|
|
166
|
-
/** For tool messages, the name of the tool */
|
|
167
|
-
toolName?: string;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Helper type to extract the terminal tool's input type from a tools object.
|
|
171
|
-
* Used for typing the result that gets merged into state.
|
|
172
|
-
*/
|
|
173
|
-
export type ExtractTerminalInput<TTools extends Record<string, AgentTool<any>>> = {
|
|
174
|
-
[K in keyof TTools]: TTools[K] extends {
|
|
175
|
-
terminal: true;
|
|
176
|
-
inputSchema: infer S;
|
|
177
|
-
} ? S extends z.ZodSchema ? z.infer<S> : never : never;
|
|
178
|
-
}[keyof TTools];
|
|
179
120
|
/**
|
|
180
121
|
* Signal types that can be sent to a running brain.
|
|
181
|
-
* Signals are processed in priority order: KILL > PAUSE > WEBHOOK_RESPONSE > RESUME
|
|
122
|
+
* Signals are processed in priority order: KILL > PAUSE > WEBHOOK_RESPONSE > RESUME
|
|
182
123
|
*/
|
|
183
|
-
export type SignalType = 'KILL' | 'PAUSE' | '
|
|
124
|
+
export type SignalType = 'KILL' | 'PAUSE' | 'RESUME' | 'WEBHOOK_RESPONSE';
|
|
184
125
|
/**
|
|
185
126
|
* A signal that can be injected into a running brain's execution.
|
|
186
127
|
*/
|
|
@@ -188,9 +129,6 @@ export type BrainSignal = {
|
|
|
188
129
|
type: 'KILL';
|
|
189
130
|
} | {
|
|
190
131
|
type: 'PAUSE';
|
|
191
|
-
} | {
|
|
192
|
-
type: 'USER_MESSAGE';
|
|
193
|
-
content: string;
|
|
194
132
|
} | {
|
|
195
133
|
type: 'RESUME';
|
|
196
134
|
} | {
|
|
@@ -207,7 +145,7 @@ export interface SignalProvider {
|
|
|
207
145
|
* Signals should be consumed (deleted) when returned.
|
|
208
146
|
*
|
|
209
147
|
* @param filter - 'CONTROL' returns only KILL/PAUSE, 'WEBHOOK' returns only WEBHOOK_RESPONSE, 'ALL' includes all signal types
|
|
210
|
-
* @returns Array of signals in priority order (KILL first, then PAUSE, then WEBHOOK_RESPONSE, then RESUME
|
|
148
|
+
* @returns Array of signals in priority order (KILL first, then PAUSE, then WEBHOOK_RESPONSE, then RESUME)
|
|
211
149
|
*/
|
|
212
150
|
getSignals(filter: 'CONTROL' | 'WEBHOOK' | 'ALL'): Promise<BrainSignal[]>;
|
|
213
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,12 @@ export type SerializedWebhookRegistration = {
|
|
|
12
12
|
};
|
|
13
13
|
export type SerializedPageContext = {
|
|
14
14
|
url: string;
|
|
15
|
-
webhook
|
|
15
|
+
webhook?: SerializedWebhookRegistration;
|
|
16
16
|
};
|
|
17
|
+
export interface WebhookTriggerConfig {
|
|
18
|
+
brain: string;
|
|
19
|
+
runAs: string;
|
|
20
|
+
}
|
|
17
21
|
export type WebhookHandlerResult<TSchema extends z.ZodSchema = z.ZodSchema> = {
|
|
18
22
|
type: 'verification';
|
|
19
23
|
challenge: string;
|
|
@@ -21,14 +25,20 @@ export type WebhookHandlerResult<TSchema extends z.ZodSchema = z.ZodSchema> = {
|
|
|
21
25
|
type: 'webhook';
|
|
22
26
|
identifier: string;
|
|
23
27
|
response: z.infer<TSchema>;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'trigger';
|
|
30
|
+
response: z.infer<TSchema>;
|
|
31
|
+
} | {
|
|
32
|
+
type: 'ignore';
|
|
24
33
|
};
|
|
25
34
|
export interface WebhookFunction<TSchema extends z.ZodSchema = z.ZodSchema> {
|
|
26
35
|
(identifier: string, token?: string): WebhookRegistration<TSchema>;
|
|
27
36
|
handler: (request: Request) => Promise<WebhookHandlerResult<TSchema>>;
|
|
28
37
|
slug: string;
|
|
29
38
|
schema: TSchema;
|
|
39
|
+
triggers?: WebhookTriggerConfig;
|
|
30
40
|
}
|
|
31
|
-
export declare function createWebhook<TSchema extends z.ZodSchema>(slug: string, schema: TSchema, handler: (request: Request) => Promise<WebhookHandlerResult<TSchema
|
|
41
|
+
export declare function createWebhook<TSchema extends z.ZodSchema>(slug: string, schema: TSchema, handler: (request: Request) => Promise<WebhookHandlerResult<TSchema>>, triggers?: WebhookTriggerConfig): WebhookFunction<TSchema>;
|
|
32
42
|
type ExtractSchema<T> = T extends {
|
|
33
43
|
schema: infer S;
|
|
34
44
|
} ? S extends z.ZodSchema ? z.infer<S> : never : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,6BAA6B,CAAC;CACzC,CAAC;AAGF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IACtE;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAGN,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;IACxE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAGD,wBAAgB,aAAa,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,EACvD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EACrE,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,eAAe,CAAC,OAAO,CAAC,CAqB1B;AAGD,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjD,CAAC,SAAS,CAAC,CAAC,SAAS,GACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GACV,KAAK,GACP,KAAK,CAAC;AAGV,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAG9E,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,GACxE,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,GAC9B,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,GACP,KAAK,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FilesService } from './types.js';
|
|
2
|
+
import type { FileWriteStartEvent, FileWriteCompleteEvent } from '../dsl/definitions/events.js';
|
|
3
|
+
import type { JsonObject } from '../dsl/types.js';
|
|
4
|
+
type FileEvent = FileWriteStartEvent | FileWriteCompleteEvent;
|
|
5
|
+
/** Minimal interface — the wrapper only needs push(), not the full EventChannel */
|
|
6
|
+
interface EventSink {
|
|
7
|
+
push(event: FileEvent): void;
|
|
8
|
+
}
|
|
9
|
+
interface EventContext {
|
|
10
|
+
options: JsonObject;
|
|
11
|
+
brainRunId: string;
|
|
12
|
+
stepTitle: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Wraps a FilesService to push events onto a channel during write operations.
|
|
16
|
+
* The wrapper is transparent — same interface, brain authors see no change.
|
|
17
|
+
*/
|
|
18
|
+
export declare function wrapFilesWithEvents(files: FilesService, channel: EventSink, ctx: EventContext): FilesService;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=event-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-wrapper.d.ts","sourceRoot":"","sources":["../../../src/files/event-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAMb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,KAAK,SAAS,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAE9D,mFAAmF;AACnF,UAAU,SAAS;IACjB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,SAAS,EAClB,GAAG,EAAE,YAAY,GAChB,YAAY,CAqBd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/files/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,WAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../src/files/mime.ts"],"names":[],"mappings":"AA0BA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accepted input types for file write operations.
|
|
3
|
+
* - string: text content, written as UTF-8
|
|
4
|
+
* - Uint8Array: binary content
|
|
5
|
+
* - Response: fetch response — body is streamed, never fully buffered
|
|
6
|
+
* - ReadableStream: streamed directly to storage
|
|
7
|
+
* - FileHandle: another file — content is streamed from storage to storage
|
|
8
|
+
*/
|
|
9
|
+
export type FileInput = string | Uint8Array | Response | ReadableStream | FileHandle;
|
|
10
|
+
/**
|
|
11
|
+
* Options for file operations.
|
|
12
|
+
* Scope controls where the file is stored and who can access it.
|
|
13
|
+
* All scopes are always per-user — files are never visible to other users.
|
|
14
|
+
*/
|
|
15
|
+
export interface FileOptions {
|
|
16
|
+
/**
|
|
17
|
+
* - 'run': ephemeral, scoped to this brain run (cleaned up after run completes)
|
|
18
|
+
* - 'brain': persists across runs, scoped to this brain + user (default)
|
|
19
|
+
* - 'global': persists across runs AND across brains, scoped to user
|
|
20
|
+
*/
|
|
21
|
+
scope?: 'run' | 'brain' | 'global';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Lightweight reference to a file. Stored in brain state to track files
|
|
25
|
+
* without serializing URLs (which are environment-dependent).
|
|
26
|
+
*/
|
|
27
|
+
export interface FileRef {
|
|
28
|
+
name: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A lazy file handle. Created by files.open() — no I/O until you call a method.
|
|
32
|
+
* The `url` property is computed from the current origin, never stale.
|
|
33
|
+
*/
|
|
34
|
+
export interface FileHandle {
|
|
35
|
+
/** The file name (identifier within its scope) */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Public download URL, computed from current origin */
|
|
38
|
+
url: string;
|
|
39
|
+
/** Read file content as UTF-8 text (buffers into memory) */
|
|
40
|
+
read(): Promise<string>;
|
|
41
|
+
/** Read file content as binary (buffers into memory) */
|
|
42
|
+
readBytes(): Promise<Uint8Array>;
|
|
43
|
+
/**
|
|
44
|
+
* Write content to the file. Accepts multiple input types:
|
|
45
|
+
* - string or Uint8Array: written directly
|
|
46
|
+
* - Response: body is streamed (from fetch)
|
|
47
|
+
* - ReadableStream: streamed directly
|
|
48
|
+
* - FileHandle: content streamed from another file (R2-to-R2)
|
|
49
|
+
*/
|
|
50
|
+
write(content: FileInput): Promise<FileRef>;
|
|
51
|
+
/** Check if the file exists in storage */
|
|
52
|
+
exists(): Promise<boolean>;
|
|
53
|
+
/** Delete the file from storage */
|
|
54
|
+
delete(): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Streaming zip builder. Created by files.zip() — no I/O until write() is called.
|
|
58
|
+
* Content is streamed through a zip encoder and uploaded to storage via multipart upload.
|
|
59
|
+
* Peak memory: ~5MB part buffer + one in-flight chunk.
|
|
60
|
+
*/
|
|
61
|
+
export interface ZipBuilder {
|
|
62
|
+
/** Add content to the zip. Same input types as file.write(). */
|
|
63
|
+
write(name: string, content: FileInput): Promise<void>;
|
|
64
|
+
/** Complete the zip and upload. Returns a ref to the zip file. */
|
|
65
|
+
finalize(): Promise<FileRef>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Service for creating and managing files during brain execution.
|
|
69
|
+
* Available on the step context as `files`.
|
|
70
|
+
*
|
|
71
|
+
* Files are always scoped per-user. Default scope is 'brain' (persists across runs).
|
|
72
|
+
*/
|
|
73
|
+
export interface FilesService {
|
|
74
|
+
/**
|
|
75
|
+
* Get a lazy file handle. No I/O — returns immediately.
|
|
76
|
+
* Use methods on the handle to read, write, or check existence.
|
|
77
|
+
*/
|
|
78
|
+
open(name: string, options?: FileOptions): FileHandle;
|
|
79
|
+
/** Convenience: open(name, options).write(content) */
|
|
80
|
+
write(name: string, content: FileInput, options?: FileOptions): Promise<FileRef>;
|
|
81
|
+
/** List all files in the default scope */
|
|
82
|
+
list(): Promise<FileRef[]>;
|
|
83
|
+
/** Delete a file by name */
|
|
84
|
+
delete(name: string): Promise<void>;
|
|
85
|
+
/** Create a streaming zip builder. Returns synchronously — no I/O until write(). */
|
|
86
|
+
zip(name: string, options?: FileOptions): ZipBuilder;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/files/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,cAAc,GACd,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IAEZ,4DAA4D;IAC5D,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,wDAAwD;IACxD,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,mCAAmC;IACnC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,kEAAkE;IAClE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAEtD,sDAAsD;IACtD,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,0CAA0C;IAC1C,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE3B,4BAA4B;IAC5B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,oFAAoF;IACpF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CACtD"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
export { Brain, brain } from './dsl/brain.js';
|
|
1
|
+
export { Brain, brain, Continuation } from './dsl/brain.js';
|
|
2
2
|
export { BrainRunner } from './dsl/brain-runner.js';
|
|
3
3
|
export { createBrain } from './dsl/create-brain.js';
|
|
4
4
|
export type { CreateBrainConfig } from './dsl/create-brain.js';
|
|
5
5
|
export { STATUS, BRAIN_EVENTS } from './dsl/constants.js';
|
|
6
6
|
export type { Adapter } from './adapters/types.js';
|
|
7
|
-
export type { BrainEvent, SerializedStep, InitialRunParams, ResumeRunParams,
|
|
8
|
-
export type { ObjectGenerator, Message, ToolMessage, ToolCall, ResponseMessage, ToolChoice, } from './clients/types.js';
|
|
9
|
-
export type { State, CurrentUser, RuntimeEnv, Secrets,
|
|
7
|
+
export type { BrainEvent, SerializedStep, ResumeParams, InitialRunParams, ResumeRunParams, BrainStartEvent, BrainCompleteEvent, BrainErrorEvent, StepStatusEvent, StepStartedEvent, StepCompletedEvent, BrainStructure, BrainConfig, GeneratedPage, } from './dsl/brain.js';
|
|
8
|
+
export type { ObjectGenerator, Message, ToolMessage, ToolCall, ResponseMessage, ToolChoice, Attachment, } from './clients/types.js';
|
|
9
|
+
export type { State, CurrentUser, RuntimeEnv, Secrets, Tool, ToolWaitFor, StepContext, SignalType, BrainSignal, SignalProvider, } from './dsl/types.js';
|
|
10
|
+
export type { TemplateReturn } from './dsl/definitions/blocks.js';
|
|
11
|
+
export type { TemplateNode, TemplateChild } from './jsx-runtime.js';
|
|
12
|
+
export { Fragment, File, Resource, Form } from './jsx-runtime.js';
|
|
13
|
+
export { renderTemplate, isTemplateNode, resolveTemplate, buildTemplateContext, } from './template/render.js';
|
|
14
|
+
export type { TemplateContext } from './template/render.js';
|
|
15
|
+
export { renderHtml } from './template/render-html.js';
|
|
16
|
+
export type { RenderHtmlContext } from './template/render-html.js';
|
|
10
17
|
export { applyPatches } from './dsl/json-patch.js';
|
|
11
18
|
export { IterateResult } from './dsl/iterate-result.js';
|
|
12
19
|
export { parseDuration } from './dsl/duration.js';
|
|
@@ -14,15 +21,19 @@ export { z } from 'zod';
|
|
|
14
21
|
export type { ResourceLoader } from './resources/resource-loader.js';
|
|
15
22
|
export { createResources, type Resources } from './resources/resources.js';
|
|
16
23
|
export { createWebhook } from './dsl/webhook.js';
|
|
17
|
-
export type { WebhookFunction, WebhookRegistration } from './dsl/webhook.js';
|
|
24
|
+
export type { WebhookFunction, WebhookRegistration, WebhookTriggerConfig, } from './dsl/webhook.js';
|
|
18
25
|
export type { PagesService, Page, PageCreateOptions } from './dsl/pages.js';
|
|
19
26
|
export type { Manifest as ResourceManifest, Entry as ResourceEntry, ResourceType, } from './resources/resources.js';
|
|
20
27
|
export { RESOURCE_TYPES } from './resources/resources.js';
|
|
21
|
-
export type {
|
|
22
|
-
export { createTool, defaultTools,
|
|
23
|
-
export type { Store, StoreProvider, PerUserField, InferStoreTypes,
|
|
24
|
-
export
|
|
25
|
-
export {
|
|
28
|
+
export type { WebhookResponseEvent, BrainPausedEvent, IterateItemCompleteEvent, FileWriteStartEvent, FileWriteCompleteEvent, PromptStartEvent, PromptIterationEvent, PromptToolCallEvent, PromptToolResultEvent, PromptAssistantMessageEvent, PromptCompleteEvent, PromptTokenLimitEvent, PromptIterationLimitEvent, PromptRawResponseMessageEvent, PromptWebhookEvent, } from './dsl/definitions/events.js';
|
|
29
|
+
export { createTool, defaultTools, generatePage, waitForWebhook, print, consoleLog, readFile, writeFile, } from './tools/index.js';
|
|
30
|
+
export type { Store, StoreProvider, PerUserField, InferStoreTypes, } from './store/types.js';
|
|
31
|
+
export { guessMimeType } from './files/mime.js';
|
|
32
|
+
export type { FileInput, FileOptions, FileRef, FileHandle, FilesService, ZipBuilder, } from './files/types.js';
|
|
33
|
+
export type { Memory, MemoryEntry, MemoryMessage, MemoryScope, MemorySearchOptions, MemoryAddOptions, MemoryProvider, } from './memory/types.js';
|
|
34
|
+
export { definePlugin } from './plugins/index.js';
|
|
35
|
+
export { collectPluginWebhooks } from './plugins/collect-webhooks.js';
|
|
36
|
+
export type { CreateContext, PluginAdapter, PluginCreateReturn, PluginDefinition, PluginInjection, PluginsFrom, PluginsFromArray, ConfiguredPlugin, ConfiguredPluginWithSetup, } from './plugins/index.js';
|
|
26
37
|
export type { UIComponent } from './ui/types.js';
|
|
27
38
|
export { generateFormToken } from './ui/generate-page-html.js';
|
|
28
39
|
export { parseFormData } from './ui/parse-form-data.js';
|
|
@@ -30,6 +41,5 @@ export { validateWebhookToken } from './validate-webhook-token.js';
|
|
|
30
41
|
export { createBrainExecutionMachine, createBrainMachine, sendEvent, reconstructBrainTree, brainMachineDefinition, } from './dsl/brain-state-machine.js';
|
|
31
42
|
export { isSignalValid, getValidSignals } from './dsl/signal-validation.js';
|
|
32
43
|
export type { MachineStateDefinition, SignalValidationResult, } from './dsl/signal-validation.js';
|
|
33
|
-
export type { BrainStateMachine, BrainExecutionContext, BrainStackEntry, BrainEntry, ExecutionStackEntry, RunningBrain, StepInfo, ExecutionState, CreateMachineOptions,
|
|
34
|
-
export type { AgentResumeContext } from './dsl/agent-messages.js';
|
|
44
|
+
export type { BrainStateMachine, BrainExecutionContext, BrainStackEntry, BrainEntry, ExecutionStackEntry, RunningBrain, StepInfo, ExecutionState, CreateMachineOptions, IterateContext, PromptLoopContext, ExecutionNode, } from './dsl/brain-state-machine.js';
|
|
35
45
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|