@recombine-ai/engine 0.7.1 → 0.8.0-draft
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/build/lib/ai.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Tracer } from './bosun';
|
|
|
7
7
|
/**
|
|
8
8
|
* Represents a basic model name for LLMs.
|
|
9
9
|
*/
|
|
10
|
-
export type BasicModel = 'o3-mini-2025-01-31' | 'o1-preview-2024-09-12' | 'gpt-4o-2024-11-20' | 'o1-2024-12-17' | (string & {});
|
|
10
|
+
export type BasicModel = 'o3-mini-2025-01-31' | 'o1-preview-2024-09-12' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4.1-2025-04-14' | 'o1-2024-12-17' | (string & {});
|
|
11
11
|
export interface ProgrammaticStep<CTX> {
|
|
12
12
|
/** Step name for debugging */
|
|
13
13
|
name: string;
|
|
@@ -43,6 +43,10 @@ export interface LLMStep<CTX> {
|
|
|
43
43
|
/** Error handler called if an error occurred during LLM API call or in `execute` function */
|
|
44
44
|
onError?: (error: string, ctx: CTX) => Promise<unknown>;
|
|
45
45
|
}
|
|
46
|
+
export interface WorkflowControls<CTX> {
|
|
47
|
+
terminate: () => void;
|
|
48
|
+
rewindTo: (step: LLMStep<CTX> | ProgrammaticStep<CTX>) => void;
|
|
49
|
+
}
|
|
46
50
|
export interface JsonLLMStep<CTX, Schema extends ZodTypeAny> extends LLMStep<CTX> {
|
|
47
51
|
/**
|
|
48
52
|
* Defines the expected structure of the LLM's output. Accepts ZodSchema. When provided, the
|
|
@@ -65,7 +69,7 @@ export interface JsonLLMStep<CTX, Schema extends ZodTypeAny> extends LLMStep<CTX
|
|
|
65
69
|
* }
|
|
66
70
|
* ```
|
|
67
71
|
*/
|
|
68
|
-
execute: (reply: Zod.infer<Schema>, conversation: Conversation, ctx: CTX) => Promise<unknown>;
|
|
72
|
+
execute: (reply: Zod.infer<Schema>, conversation: Conversation, ctx: CTX, workflowControls?: WorkflowControls<CTX>) => Promise<unknown>;
|
|
69
73
|
/**
|
|
70
74
|
* Check a condition, whether the `execute` function should run or not
|
|
71
75
|
* @deprecated use `runIf` to check if the step should be run, use if in `execute` to check
|
|
@@ -89,7 +93,7 @@ export interface StringLLMStep<CTX> extends LLMStep<CTX> {
|
|
|
89
93
|
* }
|
|
90
94
|
* ```
|
|
91
95
|
*/
|
|
92
|
-
execute: (reply: string, conversation: Conversation, ctx: CTX) => Promise<unknown>;
|
|
96
|
+
execute: (reply: string, conversation: Conversation, ctx: CTX, workflowControls?: WorkflowControls<CTX>) => Promise<unknown>;
|
|
93
97
|
/**
|
|
94
98
|
* Check a condition, whether the `execute` function should run or not
|
|
95
99
|
* @deprecated use `runIf` to check if the step should be run, use if in `execute` to check
|
package/build/lib/ai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/lib/ai.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,UAAU,EAAK,MAAM,KAAK,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIhC;;GAEG;AACH,MAAM,MAAM,UAAU,GAChB,oBAAoB,GACpB,uBAAuB,GACvB,mBAAmB,GACnB,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEnB,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACjC,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IAEZ,kDAAkD;IAClD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAExE,0BAA0B;IAC1B,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/D,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,OAAO,CAAC,GAAG;IACxB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IAEZ,kDAAkD;IAClD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAExE,qCAAqC;IACrC,KAAK,CAAC,EAAE,UAAU,CAAA;IAElB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IAE3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,WAAW,CAAC,GAAG,EAAE,MAAM,SAAS,UAAU,CAAE,SAAQ,OAAO,CAAC,GAAG,CAAC;IAC7E;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;;;;;;;OAcG;IACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/lib/ai.ts"],"names":[],"mappings":"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"}
|
package/build/lib/ai.js
CHANGED
|
@@ -59,24 +59,44 @@ function createAIEngine(cfg = {}) {
|
|
|
59
59
|
let beforeEachCallback = async () => Promise.resolve(null);
|
|
60
60
|
const attempts = new Map();
|
|
61
61
|
const steps = [];
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
const terminate = () => {
|
|
63
|
+
logger.debug('AI Engine: Terminating conversation...');
|
|
64
|
+
shouldRun = false;
|
|
65
|
+
};
|
|
66
|
+
const rewindTo = (step) => {
|
|
67
|
+
const index = steps.indexOf(step);
|
|
68
|
+
if (index === -1) {
|
|
69
|
+
throw new Error(`Step ${step.name} not found`);
|
|
70
|
+
}
|
|
71
|
+
if (index > currentStep) {
|
|
72
|
+
throw new Error(`Cannot rewind to a step ahead of the current step`);
|
|
73
|
+
}
|
|
74
|
+
currentStep = index - 1; // -1 because it will be incremented in the loop definition
|
|
75
|
+
};
|
|
76
|
+
const workflowControls = { terminate, rewindTo };
|
|
77
|
+
const workflow = {
|
|
78
|
+
terminate,
|
|
67
79
|
run: async (messages, ctx) => {
|
|
80
|
+
logger.debug('AI Engine: run workflow');
|
|
81
|
+
logger.debug('AI Engine conv prop reply: ' + messages.getProposedReply());
|
|
82
|
+
const random = Math.random().toString(36).substring(2, 8);
|
|
68
83
|
for (; currentStep < steps.length; currentStep++) {
|
|
84
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply at the start of the loop iteration: ' + messages.getProposedReply());
|
|
69
85
|
await beforeEachCallback();
|
|
86
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply after beforeEachCallback: ' + messages.getProposedReply());
|
|
70
87
|
const step = steps[currentStep];
|
|
88
|
+
logger.debug(random + ' ' + 'AI Engine step: ' + step.name);
|
|
71
89
|
if (!shouldRun) {
|
|
72
90
|
logger.debug('AI Engine: run terminated');
|
|
73
91
|
break;
|
|
74
92
|
}
|
|
93
|
+
logger.debug('AI Engine conv prop reply passed to runif: ' + messages.getProposedReply());
|
|
75
94
|
if (!step.runIf || (await step.runIf(messages, ctx))) {
|
|
76
95
|
const action = (0, action_1.makeAction)(cfg.sendAction, 'AI', step.name);
|
|
77
96
|
await action('started');
|
|
78
97
|
logger.debug(`AI Engine: Step: ${step.name}`);
|
|
79
98
|
if ('prompt' in step) {
|
|
99
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply passed to runStep: ' + messages.getProposedReply());
|
|
80
100
|
await runStep(step, messages, ctx, onError);
|
|
81
101
|
}
|
|
82
102
|
else {
|
|
@@ -84,20 +104,12 @@ function createAIEngine(cfg = {}) {
|
|
|
84
104
|
}
|
|
85
105
|
await action('completed');
|
|
86
106
|
}
|
|
107
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply at the end of the loop iteration: ' + messages.getProposedReply());
|
|
87
108
|
}
|
|
88
109
|
currentStep = 0;
|
|
89
110
|
return shouldRun ? messages.getProposedReply() : null;
|
|
90
111
|
},
|
|
91
|
-
rewindTo
|
|
92
|
-
const index = steps.indexOf(step);
|
|
93
|
-
if (index === -1) {
|
|
94
|
-
throw new Error(`Step ${step.name} not found`);
|
|
95
|
-
}
|
|
96
|
-
if (index > currentStep) {
|
|
97
|
-
throw new Error(`Cannot rewind to a step ahead of the current step`);
|
|
98
|
-
}
|
|
99
|
-
currentStep = index - 1; // -1 because it will be incremented in the loop definition
|
|
100
|
-
},
|
|
112
|
+
rewindTo,
|
|
101
113
|
beforeEach(callback) {
|
|
102
114
|
beforeEachCallback = callback;
|
|
103
115
|
},
|
|
@@ -138,9 +150,11 @@ function createAIEngine(cfg = {}) {
|
|
|
138
150
|
logger.debug('AI Engine: messages', conversation.toString({ ignoreAddedMessages: step.ignoreAddedMessages }));
|
|
139
151
|
prompt = renderPrompt(prompt, ctx);
|
|
140
152
|
stepTrace.renderedPrompt = prompt;
|
|
153
|
+
logger.debug('AI Engine conv prop reply in runStep: ' + conversation.getProposedReply());
|
|
141
154
|
const stringifiedMessages = conversation.toString({
|
|
142
155
|
ignoreAddedMessages: step.ignoreAddedMessages,
|
|
143
156
|
});
|
|
157
|
+
logger.debug('AI Engine stringified: ' + stringifiedMessages);
|
|
144
158
|
stepTrace.stringifiedConversation = stringifiedMessages;
|
|
145
159
|
stepTracer?.addStepTrace(stepTrace);
|
|
146
160
|
if ('schema' in step) {
|
|
@@ -158,7 +172,7 @@ function createAIEngine(cfg = {}) {
|
|
|
158
172
|
if (await step.shouldExecute(response, ctx)) {
|
|
159
173
|
logger.debug(`AI Engine: executing`);
|
|
160
174
|
checkAttempts(step);
|
|
161
|
-
await step.execute(response, conversation, ctx);
|
|
175
|
+
await step.execute(response, conversation, ctx, workflowControls);
|
|
162
176
|
}
|
|
163
177
|
else {
|
|
164
178
|
resetAttempts(step);
|
|
@@ -167,7 +181,7 @@ function createAIEngine(cfg = {}) {
|
|
|
167
181
|
}
|
|
168
182
|
else {
|
|
169
183
|
logger.debug(`AI Engine: replying`);
|
|
170
|
-
await step.execute(response, conversation, ctx);
|
|
184
|
+
await step.execute(response, conversation, ctx, workflowControls);
|
|
171
185
|
}
|
|
172
186
|
}
|
|
173
187
|
catch (error) {
|
|
@@ -207,6 +221,7 @@ function createAIEngine(cfg = {}) {
|
|
|
207
221
|
function resetAttempts(step) {
|
|
208
222
|
attempts.set(step, 0);
|
|
209
223
|
}
|
|
224
|
+
return workflow;
|
|
210
225
|
}
|
|
211
226
|
async function runLLM(apiKey, systemPrompt, messages, schema, model = 'gpt-4o-2024-08-06') {
|
|
212
227
|
logger.debug('AI Engine: model:', model);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ZodSchema } from 'zod';
|
|
2
|
+
import { PromptFile } from '../prompt-fs';
|
|
2
3
|
export type StepTrace = {
|
|
3
4
|
name: string;
|
|
4
5
|
renderedPrompt?: string;
|
|
5
6
|
receivedContext?: Record<string, unknown>;
|
|
6
|
-
receivedPrompt?: string |
|
|
7
|
+
receivedPrompt?: string | PromptFile;
|
|
7
8
|
stringifiedConversation?: string;
|
|
8
9
|
schema?: ZodSchema;
|
|
9
10
|
model?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/stepTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"stepTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/stepTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,UAAU;IACvB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CAC3C"}
|