@positronic/core 0.0.52 → 0.0.53
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/{loop-messages.js → agent-messages.js} +21 -21
- package/dist/src/dsl/brain-runner.js +6 -6
- package/dist/src/dsl/brain-state-machine.js +2 -2
- package/dist/src/dsl/brain.js +5 -1912
- package/dist/src/dsl/builder/brain.js +944 -0
- package/dist/src/dsl/builder/step.js +75 -0
- package/dist/src/dsl/constants.js +9 -10
- package/dist/src/dsl/create-brain.js +63 -0
- package/dist/src/dsl/definitions/blocks.js +1 -0
- package/dist/src/dsl/definitions/brain-types.js +4 -0
- package/dist/src/dsl/definitions/events.js +2 -0
- package/dist/src/dsl/definitions/run-params.js +1 -0
- package/dist/src/dsl/definitions/steps.js +2 -0
- package/dist/src/dsl/execution/constants.js +14 -0
- package/dist/src/dsl/execution/event-stream.js +1638 -0
- package/dist/src/dsl/execution/retry.js +298 -0
- package/dist/src/dsl/types.js +2 -2
- package/dist/src/index.js +5 -3
- package/dist/src/tools/index.js +181 -0
- package/dist/src/ui/component-utils.js +107 -0
- package/dist/src/ui/generate-page-html.js +36 -0
- package/dist/src/ui/generate-ui.js +601 -0
- package/dist/src/ui/types.js +165 -0
- package/dist/src/ui/validate-form.js +428 -0
- package/dist/src/yaml/data-validator.js +302 -0
- package/dist/src/yaml/index.js +9 -0
- package/dist/src/yaml/parser.js +224 -0
- package/dist/src/yaml/schema-extractor.js +330 -0
- package/dist/src/yaml/type-inference.js +210 -0
- package/dist/src/yaml/types.js +12 -0
- package/dist/types/clients/types.d.ts +42 -0
- package/dist/types/clients/types.d.ts.map +1 -1
- package/dist/types/dsl/agent-messages.d.ts +18 -0
- package/dist/types/dsl/agent-messages.d.ts.map +1 -0
- package/dist/types/dsl/brain-runner.d.ts +2 -2
- package/dist/types/dsl/brain-runner.d.ts.map +1 -1
- package/dist/types/dsl/brain-state-machine.d.ts.map +1 -1
- package/dist/types/dsl/brain.d.ts +7 -273
- package/dist/types/dsl/brain.d.ts.map +1 -1
- package/dist/types/dsl/builder/brain.d.ts +200 -0
- package/dist/types/dsl/builder/brain.d.ts.map +1 -0
- package/dist/types/dsl/builder/step.d.ts +15 -0
- package/dist/types/dsl/builder/step.d.ts.map +1 -0
- package/dist/types/dsl/constants.d.ts +8 -9
- package/dist/types/dsl/constants.d.ts.map +1 -1
- package/dist/types/dsl/create-brain.d.ts +80 -0
- package/dist/types/dsl/create-brain.d.ts.map +1 -0
- package/dist/types/dsl/definitions/blocks.d.ts +62 -0
- package/dist/types/dsl/definitions/blocks.d.ts.map +1 -0
- package/dist/types/dsl/definitions/brain-types.d.ts +33 -0
- package/dist/types/dsl/definitions/brain-types.d.ts.map +1 -0
- package/dist/types/dsl/definitions/events.d.ts +129 -0
- package/dist/types/dsl/definitions/events.d.ts.map +1 -0
- package/dist/types/dsl/definitions/run-params.d.ts +26 -0
- package/dist/types/dsl/definitions/run-params.d.ts.map +1 -0
- package/dist/types/dsl/definitions/steps.d.ts +20 -0
- package/dist/types/dsl/definitions/steps.d.ts.map +1 -0
- package/dist/types/dsl/example-webhook.d.ts +1 -1
- package/dist/types/dsl/example-webhook.d.ts.map +1 -1
- package/dist/types/dsl/execution/constants.d.ts +16 -0
- package/dist/types/dsl/execution/constants.d.ts.map +1 -0
- package/dist/types/dsl/execution/event-stream.d.ts +44 -0
- package/dist/types/dsl/execution/event-stream.d.ts.map +1 -0
- package/dist/types/dsl/execution/retry.d.ts +30 -0
- package/dist/types/dsl/execution/retry.d.ts.map +1 -0
- package/dist/types/dsl/types.d.ts +35 -14
- package/dist/types/dsl/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/tools/index.d.ts +33 -0
- package/dist/types/tools/index.d.ts.map +1 -0
- package/dist/types/ui/component-utils.d.ts +19 -0
- package/dist/types/ui/component-utils.d.ts.map +1 -0
- package/dist/types/ui/generate-page-html.d.ts +39 -0
- package/dist/types/ui/generate-page-html.d.ts.map +1 -0
- package/dist/types/ui/generate-ui.d.ts +47 -0
- package/dist/types/ui/generate-ui.d.ts.map +1 -0
- package/dist/types/ui/types.d.ts +138 -0
- package/dist/types/ui/types.d.ts.map +1 -0
- package/dist/types/ui/validate-form.d.ts +45 -0
- package/dist/types/ui/validate-form.d.ts.map +1 -0
- package/dist/types/yaml/data-validator.d.ts +35 -0
- package/dist/types/yaml/data-validator.d.ts.map +1 -0
- package/dist/types/yaml/index.d.ts +11 -0
- package/dist/types/yaml/index.d.ts.map +1 -0
- package/dist/types/yaml/parser.d.ts +20 -0
- package/dist/types/yaml/parser.d.ts.map +1 -0
- package/dist/types/yaml/schema-extractor.d.ts +29 -0
- package/dist/types/yaml/schema-extractor.d.ts.map +1 -0
- package/dist/types/yaml/type-inference.d.ts +50 -0
- package/dist/types/yaml/type-inference.d.ts.map +1 -0
- package/dist/types/yaml/types.d.ts +89 -0
- package/dist/types/yaml/types.d.ts.map +1 -0
- package/package.json +4 -2
- package/dist/types/dsl/loop-messages.d.ts +0 -18
- package/dist/types/dsl/loop-messages.d.ts.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Brain } from './builder/brain.js';
|
|
2
|
+
import type { AgentConfig, AgentTool, RuntimeEnv } from './types.js';
|
|
3
|
+
import type { ObjectGenerator } from '../clients/types.js';
|
|
4
|
+
import type { Resources } from '../resources/resources.js';
|
|
5
|
+
import type { PagesService } from './pages.js';
|
|
6
|
+
import type { UIComponent } from '../ui/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for creating a project-level brain function.
|
|
9
|
+
*/
|
|
10
|
+
export interface CreateBrainConfig<TServices extends object = {}, TComponents extends Record<string, UIComponent<any>> = {}, TTools extends Record<string, AgentTool> = {}> {
|
|
11
|
+
/** Services available to all brains (e.g., slack, gmail, database clients) */
|
|
12
|
+
services?: TServices;
|
|
13
|
+
/** UI components for generative UI steps */
|
|
14
|
+
components?: TComponents;
|
|
15
|
+
/** Default tools available to all agent steps */
|
|
16
|
+
defaultTools?: TTools;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a project-level brain function with pre-configured services, components, and tools.
|
|
20
|
+
*
|
|
21
|
+
* This is the recommended way to set up brains in a Positronic project. It provides:
|
|
22
|
+
* - Type-safe access to services in all brain steps
|
|
23
|
+
* - Automatic injection of components and default tools
|
|
24
|
+
* - Support for both builder pattern and direct agent creation
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // brain.ts - your project's brain configuration
|
|
29
|
+
* import { createBrain } from '@positronic/core';
|
|
30
|
+
* import { components } from './components/index.js';
|
|
31
|
+
* import slack from './services/slack.js';
|
|
32
|
+
* import gmail from './services/gmail.js';
|
|
33
|
+
*
|
|
34
|
+
* export const brain = createBrain({
|
|
35
|
+
* services: { slack, gmail },
|
|
36
|
+
* components,
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // brains/my-brain.ts - using the configured brain
|
|
43
|
+
* import { brain } from '../brain.js';
|
|
44
|
+
*
|
|
45
|
+
* // Builder pattern
|
|
46
|
+
* export default brain('my-workflow')
|
|
47
|
+
* .step('Init', ({ slack }) => {
|
|
48
|
+
* slack.postMessage('#general', 'Starting workflow');
|
|
49
|
+
* return { started: true };
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* // Or direct agent creation
|
|
53
|
+
* export default brain('my-agent', ({ slack, env }) => ({
|
|
54
|
+
* system: 'You are helpful',
|
|
55
|
+
* prompt: 'Help the user',
|
|
56
|
+
* tools: { ... }
|
|
57
|
+
* }));
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function createBrain<TServices extends object = {}, TComponents extends Record<string, UIComponent<any>> = {}, TTools extends Record<string, AgentTool> = {}>(config: CreateBrainConfig<TServices, TComponents, TTools>): {
|
|
61
|
+
<T extends Record<string, AgentTool>>(title: string, configFn: (params: {
|
|
62
|
+
state: object;
|
|
63
|
+
options: {};
|
|
64
|
+
tools: TTools extends {} ? Record<string, AgentTool> : TTools;
|
|
65
|
+
components: TComponents extends {} ? Record<string, UIComponent<any>> : TComponents;
|
|
66
|
+
client: ObjectGenerator;
|
|
67
|
+
resources: Resources;
|
|
68
|
+
response: undefined;
|
|
69
|
+
page: undefined;
|
|
70
|
+
pages?: PagesService;
|
|
71
|
+
env: RuntimeEnv;
|
|
72
|
+
} & TServices) => AgentConfig<T> | Promise<AgentConfig<T>>): Brain<{}, object, TServices, undefined, undefined>;
|
|
73
|
+
<T extends Record<string, AgentTool>>(title: string, config: AgentConfig<T>): Brain<{}, object, TServices, undefined, undefined>;
|
|
74
|
+
(title: string): Brain<{}, object, TServices, undefined, undefined>;
|
|
75
|
+
(config: {
|
|
76
|
+
title: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
}): Brain<{}, object, TServices, undefined, undefined>;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=create-brain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-brain.d.ts","sourceRoot":"","sources":["../../../src/dsl/create-brain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAChC,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EACzD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE;IAE7C,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,WAAW,CACzB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EACzD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,EAC7C,MAAM,EAAE,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;KAqB1C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SACzC,MAAM,YACH,CAAC,MAAM;eAlBV,MAAM;iBACJ,EAAE;eACJ,MAAM,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM;oBACjD,WAAW,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;gBAC3E,eAAe;mBACZ,SAAS;kBACV,SAAS;cACb,SAAS;gBACP,YAAY;aACf,UAAU;iBASe,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAI9D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SACzC,MAAM,UACL,WAAW,CAAC,CAAC,CAAC;YAIF,MAAM;aAGL;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;EA6B/D"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ObjectGenerator } from '../../clients/types.js';
|
|
3
|
+
import type { State, JsonObject, RuntimeEnv, AgentTool, AgentConfig } from '../types.js';
|
|
4
|
+
import type { Resources } from '../../resources/resources.js';
|
|
5
|
+
import type { PagesService } from '../pages.js';
|
|
6
|
+
import type { GeneratedPage } from './brain-types.js';
|
|
7
|
+
export type StepAction<TStateIn, TStateOut, TOptions extends JsonObject = JsonObject, TServices extends object = object, TResponseIn extends JsonObject | undefined = undefined, TWaitFor extends readonly any[] = readonly [], TResponseOut extends JsonObject | undefined = undefined, TPageIn extends GeneratedPage | undefined = undefined> = (params: {
|
|
8
|
+
state: TStateIn;
|
|
9
|
+
options: TOptions;
|
|
10
|
+
client: ObjectGenerator;
|
|
11
|
+
resources: Resources;
|
|
12
|
+
response: TResponseIn;
|
|
13
|
+
page: TPageIn;
|
|
14
|
+
pages?: PagesService;
|
|
15
|
+
env: RuntimeEnv;
|
|
16
|
+
} & TServices) => TStateOut | Promise<TStateOut> | {
|
|
17
|
+
state: TStateOut;
|
|
18
|
+
waitFor: TWaitFor;
|
|
19
|
+
} | Promise<{
|
|
20
|
+
state: TStateOut;
|
|
21
|
+
waitFor: TWaitFor;
|
|
22
|
+
}> | {
|
|
23
|
+
state: TStateOut;
|
|
24
|
+
promptResponse: TResponseOut;
|
|
25
|
+
} | Promise<{
|
|
26
|
+
state: TStateOut;
|
|
27
|
+
promptResponse: TResponseOut;
|
|
28
|
+
}>;
|
|
29
|
+
export type StepBlock<TStateIn, TStateOut, TOptions extends JsonObject = JsonObject, TServices extends object = object, TResponseIn extends JsonObject | undefined = undefined, TWebhooks extends readonly any[] = readonly [], TPageIn extends GeneratedPage | undefined = undefined> = {
|
|
30
|
+
type: 'step';
|
|
31
|
+
title: string;
|
|
32
|
+
action: StepAction<TStateIn, TStateOut, TOptions, TServices, TResponseIn, TWebhooks, JsonObject | undefined, TPageIn>;
|
|
33
|
+
/** If true, this is a UI generation step that requires components configuration */
|
|
34
|
+
isUIStep?: boolean;
|
|
35
|
+
/** Configuration for UI generation steps */
|
|
36
|
+
uiConfig?: {
|
|
37
|
+
template: (state: TStateIn, resources: Resources) => string | Promise<string>;
|
|
38
|
+
responseSchema?: z.ZodObject<any>;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export type BrainBlock<TOuterState, TInnerState extends State, TNewState, TOptions extends JsonObject = JsonObject, TServices extends object = object, TInnerBrain = any> = {
|
|
42
|
+
type: 'brain';
|
|
43
|
+
title: string;
|
|
44
|
+
innerBrain: TInnerBrain;
|
|
45
|
+
initialState: State | ((outerState: TOuterState) => State);
|
|
46
|
+
action: (outerState: TOuterState, innerState: TInnerState, services: TServices) => TNewState;
|
|
47
|
+
};
|
|
48
|
+
export type AgentBlock<TStateIn, TStateOut, TOptions extends JsonObject = JsonObject, TServices extends object = object, TResponseIn extends JsonObject | undefined = undefined, TTools extends Record<string, AgentTool> = Record<string, AgentTool>> = {
|
|
49
|
+
type: 'agent';
|
|
50
|
+
title: string;
|
|
51
|
+
configFn: (params: {
|
|
52
|
+
state: TStateIn;
|
|
53
|
+
options: TOptions;
|
|
54
|
+
client: ObjectGenerator;
|
|
55
|
+
resources: Resources;
|
|
56
|
+
response: TResponseIn;
|
|
57
|
+
pages?: PagesService;
|
|
58
|
+
env: RuntimeEnv;
|
|
59
|
+
} & TServices) => AgentConfig<TTools> | Promise<AgentConfig<TTools>>;
|
|
60
|
+
};
|
|
61
|
+
export type Block<TStateIn, TStateOut, TOptions extends JsonObject = JsonObject, TServices extends object = object, TResponseIn extends JsonObject | undefined = undefined, TWebhooks extends readonly any[] = readonly [], TPageIn extends GeneratedPage | undefined = undefined> = StepBlock<TStateIn, TStateOut, TOptions, TServices, TResponseIn, TWebhooks, TPageIn> | BrainBlock<TStateIn, any, TStateOut, TOptions, TServices> | AgentBlock<TStateIn, TStateOut, TOptions, TServices, TResponseIn>;
|
|
62
|
+
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../src/dsl/definitions/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { WebhookRegistration } from '../webhook.js';
|
|
3
|
+
/**
|
|
4
|
+
* Page object available after a .ui() step.
|
|
5
|
+
* Contains URL to the page and a pre-configured webhook for form submissions.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* .ui('Create Form', { template: ..., responseSchema: z.object({ name: z.string() }) })
|
|
10
|
+
* .step('Notify', async ({ page, slack }) => {
|
|
11
|
+
* await slack.post(`Fill out the form: ${page.url}`);
|
|
12
|
+
* return { state, waitFor: [page.webhook] };
|
|
13
|
+
* })
|
|
14
|
+
* .step('Process', ({ response }) => {
|
|
15
|
+
* // response.name is typed from responseSchema
|
|
16
|
+
* })
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export type GeneratedPage<TSchema extends z.ZodSchema = z.ZodSchema> = {
|
|
20
|
+
/** URL where the generated page can be accessed */
|
|
21
|
+
url: string;
|
|
22
|
+
/** Pre-configured webhook for form submissions, typed based on responseSchema */
|
|
23
|
+
webhook: WebhookRegistration<TSchema>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for creating a brain - either a simple string title
|
|
27
|
+
* or an object with title and optional description.
|
|
28
|
+
*/
|
|
29
|
+
export type BrainConfig = string | {
|
|
30
|
+
title: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=brain-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-types.d.ts","sourceRoot":"","sources":["../../../../src/dsl/definitions/brain-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI;IACrE,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { BRAIN_EVENTS, STATUS } from '../constants.js';
|
|
2
|
+
import type { JsonObject, JsonPatch } from '../types.js';
|
|
3
|
+
import type { SerializedStepStatus } from './steps.js';
|
|
4
|
+
import type { SerializedWebhookRegistration } from '../webhook.js';
|
|
5
|
+
export type SerializedError = {
|
|
6
|
+
name: string;
|
|
7
|
+
message: string;
|
|
8
|
+
stack?: string;
|
|
9
|
+
};
|
|
10
|
+
interface BaseEvent<TOptions extends JsonObject = JsonObject> {
|
|
11
|
+
type: (typeof BRAIN_EVENTS)[keyof typeof BRAIN_EVENTS];
|
|
12
|
+
options: TOptions;
|
|
13
|
+
brainRunId: string;
|
|
14
|
+
}
|
|
15
|
+
interface BrainBaseEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
16
|
+
brainTitle: string;
|
|
17
|
+
brainDescription?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BrainStartEvent<TOptions extends JsonObject = JsonObject> extends BrainBaseEvent<TOptions> {
|
|
20
|
+
type: typeof BRAIN_EVENTS.START | typeof BRAIN_EVENTS.RESTART;
|
|
21
|
+
initialState?: object;
|
|
22
|
+
status: typeof STATUS.RUNNING;
|
|
23
|
+
}
|
|
24
|
+
export interface BrainCompleteEvent<TOptions extends JsonObject = JsonObject> extends BrainBaseEvent<TOptions> {
|
|
25
|
+
type: typeof BRAIN_EVENTS.COMPLETE;
|
|
26
|
+
status: typeof STATUS.COMPLETE;
|
|
27
|
+
}
|
|
28
|
+
export interface BrainErrorEvent<TOptions extends JsonObject = JsonObject> extends BrainBaseEvent<TOptions> {
|
|
29
|
+
type: typeof BRAIN_EVENTS.ERROR;
|
|
30
|
+
status: typeof STATUS.ERROR;
|
|
31
|
+
error: SerializedError;
|
|
32
|
+
}
|
|
33
|
+
export interface BrainCancelledEvent<TOptions extends JsonObject = JsonObject> extends BrainBaseEvent<TOptions> {
|
|
34
|
+
type: typeof BRAIN_EVENTS.CANCELLED;
|
|
35
|
+
status: typeof STATUS.CANCELLED;
|
|
36
|
+
}
|
|
37
|
+
export interface StepStatusEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
38
|
+
type: typeof BRAIN_EVENTS.STEP_STATUS;
|
|
39
|
+
steps: SerializedStepStatus[];
|
|
40
|
+
}
|
|
41
|
+
export interface StepStartedEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
42
|
+
type: typeof BRAIN_EVENTS.STEP_START;
|
|
43
|
+
status: typeof STATUS.RUNNING;
|
|
44
|
+
stepTitle: string;
|
|
45
|
+
stepId: string;
|
|
46
|
+
}
|
|
47
|
+
export interface StepCompletedEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
48
|
+
type: typeof BRAIN_EVENTS.STEP_COMPLETE;
|
|
49
|
+
status: typeof STATUS.RUNNING;
|
|
50
|
+
stepTitle: string;
|
|
51
|
+
stepId: string;
|
|
52
|
+
patch: JsonPatch;
|
|
53
|
+
}
|
|
54
|
+
export interface StepRetryEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
55
|
+
type: typeof BRAIN_EVENTS.STEP_RETRY;
|
|
56
|
+
stepTitle: string;
|
|
57
|
+
stepId: string;
|
|
58
|
+
error: SerializedError;
|
|
59
|
+
attempt: number;
|
|
60
|
+
}
|
|
61
|
+
export interface WebhookEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
62
|
+
type: typeof BRAIN_EVENTS.WEBHOOK;
|
|
63
|
+
waitFor: SerializedWebhookRegistration[];
|
|
64
|
+
}
|
|
65
|
+
export interface AgentStartEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
66
|
+
type: typeof BRAIN_EVENTS.AGENT_START;
|
|
67
|
+
stepTitle: string;
|
|
68
|
+
stepId: string;
|
|
69
|
+
prompt: string;
|
|
70
|
+
system?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface AgentIterationEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
73
|
+
type: typeof BRAIN_EVENTS.AGENT_ITERATION;
|
|
74
|
+
stepTitle: string;
|
|
75
|
+
stepId: string;
|
|
76
|
+
iteration: number;
|
|
77
|
+
}
|
|
78
|
+
export interface AgentToolCallEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
79
|
+
type: typeof BRAIN_EVENTS.AGENT_TOOL_CALL;
|
|
80
|
+
stepTitle: string;
|
|
81
|
+
stepId: string;
|
|
82
|
+
toolName: string;
|
|
83
|
+
toolCallId: string;
|
|
84
|
+
input: JsonObject;
|
|
85
|
+
}
|
|
86
|
+
export interface AgentToolResultEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
87
|
+
type: typeof BRAIN_EVENTS.AGENT_TOOL_RESULT;
|
|
88
|
+
stepTitle: string;
|
|
89
|
+
stepId: string;
|
|
90
|
+
toolName: string;
|
|
91
|
+
toolCallId: string;
|
|
92
|
+
result: unknown;
|
|
93
|
+
}
|
|
94
|
+
export interface AgentAssistantMessageEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
95
|
+
type: typeof BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE;
|
|
96
|
+
stepTitle: string;
|
|
97
|
+
stepId: string;
|
|
98
|
+
content: string;
|
|
99
|
+
}
|
|
100
|
+
export interface AgentCompleteEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
101
|
+
type: typeof BRAIN_EVENTS.AGENT_COMPLETE;
|
|
102
|
+
stepTitle: string;
|
|
103
|
+
stepId: string;
|
|
104
|
+
terminalToolName: string;
|
|
105
|
+
result: JsonObject;
|
|
106
|
+
totalIterations: number;
|
|
107
|
+
}
|
|
108
|
+
export interface AgentTokenLimitEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
109
|
+
type: typeof BRAIN_EVENTS.AGENT_TOKEN_LIMIT;
|
|
110
|
+
stepTitle: string;
|
|
111
|
+
stepId: string;
|
|
112
|
+
totalTokens: number;
|
|
113
|
+
maxTokens: number;
|
|
114
|
+
}
|
|
115
|
+
export interface AgentWebhookEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
116
|
+
type: typeof BRAIN_EVENTS.AGENT_WEBHOOK;
|
|
117
|
+
stepTitle: string;
|
|
118
|
+
stepId: string;
|
|
119
|
+
toolCallId: string;
|
|
120
|
+
toolName: string;
|
|
121
|
+
input: JsonObject;
|
|
122
|
+
}
|
|
123
|
+
export interface WebhookResponseEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
124
|
+
type: typeof BRAIN_EVENTS.WEBHOOK_RESPONSE;
|
|
125
|
+
response: JsonObject;
|
|
126
|
+
}
|
|
127
|
+
export type BrainEvent<TOptions extends JsonObject = JsonObject> = BrainStartEvent<TOptions> | BrainCompleteEvent<TOptions> | BrainErrorEvent<TOptions> | BrainCancelledEvent<TOptions> | StepStatusEvent<TOptions> | StepStartedEvent<TOptions> | StepCompletedEvent<TOptions> | StepRetryEvent<TOptions> | WebhookEvent<TOptions> | WebhookResponseEvent<TOptions> | AgentStartEvent<TOptions> | AgentIterationEvent<TOptions> | AgentToolCallEvent<TOptions> | AgentToolResultEvent<TOptions> | AgentAssistantMessageEvent<TOptions> | AgentCompleteEvent<TOptions> | AgentTokenLimitEvent<TOptions> | AgentWebhookEvent<TOptions>;
|
|
128
|
+
export {};
|
|
129
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/dsl/definitions/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ObjectGenerator } from '../../clients/types.js';
|
|
2
|
+
import type { State, JsonObject, RuntimeEnv } from '../types.js';
|
|
3
|
+
import type { Resources } from '../../resources/resources.js';
|
|
4
|
+
import type { PagesService } from '../pages.js';
|
|
5
|
+
import type { SerializedStep } from './steps.js';
|
|
6
|
+
import type { AgentResumeContext } from '../agent-messages.js';
|
|
7
|
+
export interface BaseRunParams<TOptions extends JsonObject = JsonObject> {
|
|
8
|
+
client: ObjectGenerator;
|
|
9
|
+
resources?: Resources;
|
|
10
|
+
options?: TOptions;
|
|
11
|
+
pages?: PagesService;
|
|
12
|
+
env?: RuntimeEnv;
|
|
13
|
+
}
|
|
14
|
+
export interface InitialRunParams<TOptions extends JsonObject = JsonObject> extends BaseRunParams<TOptions> {
|
|
15
|
+
initialState?: State;
|
|
16
|
+
initialCompletedSteps?: never;
|
|
17
|
+
brainRunId?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface RerunParams<TOptions extends JsonObject = JsonObject> extends BaseRunParams<TOptions> {
|
|
20
|
+
initialState: State;
|
|
21
|
+
initialCompletedSteps: SerializedStep[];
|
|
22
|
+
brainRunId: string;
|
|
23
|
+
response?: JsonObject;
|
|
24
|
+
agentResumeContext?: AgentResumeContext | null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=run-params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-params.d.ts","sourceRoot":"","sources":["../../../../src/dsl/definitions/run-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,aAAa,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IACrE,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU,CACxE,SAAQ,aAAa,CAAC,QAAQ,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,qBAAqB,CAAC,EAAE,KAAK,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU,CACnE,SAAQ,aAAa,CAAC,QAAQ,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC;IACpB,qBAAqB,EAAE,cAAc,EAAE,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAChD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { STATUS } from '../constants.js';
|
|
2
|
+
import type { JsonPatch } from '../types.js';
|
|
3
|
+
export interface SerializedStep {
|
|
4
|
+
title: string;
|
|
5
|
+
status: (typeof STATUS)[keyof typeof STATUS];
|
|
6
|
+
id: string;
|
|
7
|
+
patch?: JsonPatch;
|
|
8
|
+
innerSteps?: SerializedStep[];
|
|
9
|
+
}
|
|
10
|
+
export type SerializedStepStatus = Omit<SerializedStep, 'patch'>;
|
|
11
|
+
export interface BrainStructure {
|
|
12
|
+
title: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
steps: Array<{
|
|
15
|
+
type: 'step' | 'brain' | 'agent';
|
|
16
|
+
title: string;
|
|
17
|
+
innerBrain?: BrainStructure;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../../src/dsl/definitions/steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAGjE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,cAAc,CAAC;KAC7B,CAAC,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/example-webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;GAiBxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;GAmBxB,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;;;;
|
|
1
|
+
{"version":3,"file":"example-webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/example-webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;GAiBxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;GAmBxB,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;;;;4BAsBT,CAAC;AAEL,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RuntimeEnv } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Default runtime environment used when env is not provided.
|
|
4
|
+
* This ensures backward compatibility with existing code.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_ENV: RuntimeEnv;
|
|
7
|
+
/**
|
|
8
|
+
* Default system prompt prepended to all agent steps.
|
|
9
|
+
* Explains tool execution quirks to the LLM.
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_AGENT_SYSTEM_PROMPT = "## Tool Execution Behavior\n- Tools are executed sequentially in the order you call them\n- If a tool triggers a webhook (e.g., human approval), remaining tools in your response will NOT execute - you'll need to call them again after resuming\n- When waiting on multiple webhooks (e.g., Slack + email), the first webhook response received will resume execution\n- Terminal tools end the agent immediately - no further tools or iterations will run\n\n## Resumption Context\nWhen resuming after a webhook response, that response appears as the tool result in your conversation history.";
|
|
12
|
+
/**
|
|
13
|
+
* Maximum number of retries for step execution.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MAX_RETRIES = 1;
|
|
16
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/dsl/execution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,UAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,4kBAOuE,CAAC;AAEhH;;GAEG;AACH,eAAO,MAAM,WAAW,IAAI,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { State, JsonObject, AgentTool } from '../types.js';
|
|
2
|
+
import type { UIComponent } from '../../ui/types.js';
|
|
3
|
+
import type { BrainEvent } from '../definitions/events.js';
|
|
4
|
+
import type { Block } from '../definitions/blocks.js';
|
|
5
|
+
import type { InitialRunParams, RerunParams } from '../definitions/run-params.js';
|
|
6
|
+
export declare class BrainEventStream<TOptions extends JsonObject = JsonObject, TState extends State = object, TServices extends object = object> {
|
|
7
|
+
private currentState;
|
|
8
|
+
private steps;
|
|
9
|
+
private currentStepIndex;
|
|
10
|
+
private initialState;
|
|
11
|
+
private brainRunId;
|
|
12
|
+
private title;
|
|
13
|
+
private description?;
|
|
14
|
+
private client;
|
|
15
|
+
private options;
|
|
16
|
+
private services;
|
|
17
|
+
private resources;
|
|
18
|
+
private pages?;
|
|
19
|
+
private env;
|
|
20
|
+
private currentResponse;
|
|
21
|
+
private currentPage;
|
|
22
|
+
private agentResumeContext;
|
|
23
|
+
private initialCompletedSteps?;
|
|
24
|
+
private components?;
|
|
25
|
+
private defaultTools?;
|
|
26
|
+
constructor(params: (InitialRunParams<TOptions> | RerunParams<TOptions>) & {
|
|
27
|
+
title: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
blocks: Block<any, any, TOptions, TServices, any, any, any>[];
|
|
30
|
+
services: TServices;
|
|
31
|
+
components?: Record<string, UIComponent<any>>;
|
|
32
|
+
defaultTools?: Record<string, AgentTool>;
|
|
33
|
+
});
|
|
34
|
+
next(): AsyncGenerator<BrainEvent<TOptions>>;
|
|
35
|
+
private executeStep;
|
|
36
|
+
private executeAgent;
|
|
37
|
+
/**
|
|
38
|
+
* Execute a UI generation step.
|
|
39
|
+
* Generates UI components, renders to HTML, creates page, and sets up webhook.
|
|
40
|
+
*/
|
|
41
|
+
private executeUIStep;
|
|
42
|
+
private completeStep;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=event-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../../../src/dsl/execution/event-stream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAc,SAAS,EAAiC,MAAM,aAAa,CAAC;AAO3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,KAAK,EAAqC,MAAM,0BAA0B,CAAC;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAOlF,qBAAa,gBAAgB,CAC3B,QAAQ,SAAS,UAAU,GAAG,UAAU,EACxC,MAAM,SAAS,KAAK,GAAG,MAAM,EAC7B,SAAS,SAAS,MAAM,GAAG,MAAM;IAEjC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,qBAAqB,CAAC,CAAmB;IACjD,OAAO,CAAC,UAAU,CAAC,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAC,CAA4B;gBAG/C,MAAM,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG;QAC7D,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9D,QAAQ,EAAE,SAAS,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAC1C;IA8EI,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAgIpC,WAAW;YAwLX,YAAY;IAsQ3B;;;OAGG;YACY,aAAa;IAyF5B,OAAO,CAAE,YAAY;CAoBtB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { RetryConfig } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Simple sleep helper that returns a promise resolving after the specified delay.
|
|
4
|
+
*/
|
|
5
|
+
export declare const sleep: (ms: number) => Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Simple semaphore for limiting concurrent operations.
|
|
8
|
+
* Used internally by batch prompt execution.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Semaphore {
|
|
11
|
+
private readonly max;
|
|
12
|
+
private current;
|
|
13
|
+
private queue;
|
|
14
|
+
constructor(max: number);
|
|
15
|
+
acquire(): Promise<void>;
|
|
16
|
+
release(): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Normalize retry config with defaults.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeRetryConfig(config?: RetryConfig): Required<RetryConfig>;
|
|
22
|
+
/**
|
|
23
|
+
* Calculate backoff delay based on attempt number and config.
|
|
24
|
+
*/
|
|
25
|
+
export declare function calculateBackoff(attempt: number, config: Required<RetryConfig>): number;
|
|
26
|
+
/**
|
|
27
|
+
* Execute a function with retry and exponential backoff.
|
|
28
|
+
*/
|
|
29
|
+
export declare function executeWithRetry<T>(fn: () => Promise<T>, config: Required<RetryConfig>): Promise<T>;
|
|
30
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../src/dsl/execution/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAC;AAEpD;;;GAGG;AACH,qBAAa,SAAS;IAIR,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAsB;gBAEN,GAAG,EAAE,MAAM;IAElC,OAAO;IAQb,OAAO;CAQR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,UAS9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,cAkB9B"}
|
|
@@ -6,7 +6,14 @@ export type JsonObject = {
|
|
|
6
6
|
[Key in string]?: JsonValue;
|
|
7
7
|
};
|
|
8
8
|
export type JsonValue = JsonPrimitive | JsonArray | JsonObject;
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* State represents the shape of brain state through its execution.
|
|
11
|
+
* Using `object` instead of `JsonObject` to allow TypeScript interfaces
|
|
12
|
+
* (which don't have implicit index signatures) as state values.
|
|
13
|
+
* The JSON patch system operates on runtime values, so the type constraint
|
|
14
|
+
* is primarily for compile-time ergonomics.
|
|
15
|
+
*/
|
|
16
|
+
export type State = object;
|
|
10
17
|
/**
|
|
11
18
|
* Secrets/environment variables available to brains at runtime.
|
|
12
19
|
* This interface is augmented via module declaration in generated secrets.d.ts
|
|
@@ -43,14 +50,14 @@ export type JsonPatch = {
|
|
|
43
50
|
* Return type for tools that need to suspend execution and wait for an external event.
|
|
44
51
|
* Supports single webhook or array of webhooks (first response wins).
|
|
45
52
|
*/
|
|
46
|
-
export interface
|
|
53
|
+
export interface AgentToolWaitFor {
|
|
47
54
|
waitFor: WebhookRegistration<z.ZodSchema> | WebhookRegistration<z.ZodSchema>[];
|
|
48
55
|
}
|
|
49
56
|
/**
|
|
50
|
-
* A tool definition for use in
|
|
57
|
+
* A tool definition for use in agent steps.
|
|
51
58
|
* Compatible with Vercel AI SDK tool format, extended with Positronic-specific properties.
|
|
52
59
|
*/
|
|
53
|
-
export interface
|
|
60
|
+
export interface AgentTool<TInput extends z.ZodSchema = z.ZodSchema> {
|
|
54
61
|
/** Description of what this tool does, helps the LLM understand when to use it */
|
|
55
62
|
description: string;
|
|
56
63
|
/** Zod schema defining the input parameters for this tool */
|
|
@@ -60,30 +67,30 @@ export interface LoopTool<TInput extends z.ZodSchema = z.ZodSchema> {
|
|
|
60
67
|
* Can return a result directly, or { waitFor: webhook(...) } to suspend execution.
|
|
61
68
|
* Not required for terminal tools.
|
|
62
69
|
*/
|
|
63
|
-
execute?: (input: z.infer<TInput>) => Promise<unknown |
|
|
70
|
+
execute?: (input: z.infer<TInput>) => Promise<unknown | AgentToolWaitFor> | unknown | AgentToolWaitFor;
|
|
64
71
|
/**
|
|
65
|
-
* If true, calling this tool ends the
|
|
66
|
-
* The tool's input becomes the
|
|
72
|
+
* If true, calling this tool ends the agent.
|
|
73
|
+
* The tool's input becomes the agent result (merged into state).
|
|
67
74
|
*/
|
|
68
75
|
terminal?: boolean;
|
|
69
76
|
}
|
|
70
77
|
/**
|
|
71
|
-
* Configuration for
|
|
78
|
+
* Configuration for an agent step.
|
|
72
79
|
*/
|
|
73
|
-
export interface
|
|
80
|
+
export interface AgentConfig<TTools extends Record<string, AgentTool> = Record<string, AgentTool>> {
|
|
74
81
|
/** System prompt for the LLM */
|
|
75
82
|
system?: string;
|
|
76
83
|
/** Initial user prompt to start the conversation */
|
|
77
84
|
prompt: string;
|
|
78
|
-
/** Tools available to the LLM */
|
|
79
|
-
tools
|
|
85
|
+
/** Tools available to the LLM. Optional - merged with withTools defaults */
|
|
86
|
+
tools?: TTools;
|
|
80
87
|
/** Safety valve - exit if cumulative tokens exceed this limit */
|
|
81
88
|
maxTokens?: number;
|
|
82
89
|
}
|
|
83
90
|
/**
|
|
84
|
-
* Represents a single message in the
|
|
91
|
+
* Represents a single message in the agent conversation.
|
|
85
92
|
*/
|
|
86
|
-
export interface
|
|
93
|
+
export interface AgentMessage {
|
|
87
94
|
role: 'user' | 'assistant' | 'tool';
|
|
88
95
|
content: string;
|
|
89
96
|
/** For tool messages, the ID of the tool call this is responding to */
|
|
@@ -95,10 +102,24 @@ export interface LoopMessage {
|
|
|
95
102
|
* Helper type to extract the terminal tool's input type from a tools object.
|
|
96
103
|
* Used for typing the result that gets merged into state.
|
|
97
104
|
*/
|
|
98
|
-
export type ExtractTerminalInput<TTools extends Record<string,
|
|
105
|
+
export type ExtractTerminalInput<TTools extends Record<string, AgentTool>> = {
|
|
99
106
|
[K in keyof TTools]: TTools[K] extends {
|
|
100
107
|
terminal: true;
|
|
101
108
|
inputSchema: infer S;
|
|
102
109
|
} ? S extends z.ZodSchema ? z.infer<S> : never : never;
|
|
103
110
|
}[keyof TTools];
|
|
111
|
+
/**
|
|
112
|
+
* Configuration for retry behavior with exponential backoff.
|
|
113
|
+
* Used by batch prompt execution.
|
|
114
|
+
*/
|
|
115
|
+
export interface RetryConfig {
|
|
116
|
+
/** Maximum retry attempts per item. Default: 3 */
|
|
117
|
+
maxRetries?: number;
|
|
118
|
+
/** Backoff strategy. Default: 'exponential' */
|
|
119
|
+
backoff?: 'none' | 'linear' | 'exponential';
|
|
120
|
+
/** Initial delay in ms before first retry. Default: 1000 */
|
|
121
|
+
initialDelay?: number;
|
|
122
|
+
/** Maximum delay in ms between retries. Default: 30000 */
|
|
123
|
+
maxDelay?: number;
|
|
124
|
+
}
|
|
104
125
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -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;AAExD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,SAAS;CAAE,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"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"}
|