@recombine-ai/engine 0.7.0 → 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 +7 -3
- package/build/lib/ai.d.ts.map +1 -1
- package/build/lib/ai.js +35 -18
- package/build/lib/bosun/stepTracer.d.ts +2 -1
- package/build/lib/bosun/stepTracer.d.ts.map +1 -1
- package/changelog.md +4 -0
- package/package.json +1 -1
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,23 +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) {
|
|
90
|
+
logger.debug('AI Engine: run terminated');
|
|
72
91
|
break;
|
|
73
92
|
}
|
|
93
|
+
logger.debug('AI Engine conv prop reply passed to runif: ' + messages.getProposedReply());
|
|
74
94
|
if (!step.runIf || (await step.runIf(messages, ctx))) {
|
|
75
95
|
const action = (0, action_1.makeAction)(cfg.sendAction, 'AI', step.name);
|
|
76
96
|
await action('started');
|
|
77
97
|
logger.debug(`AI Engine: Step: ${step.name}`);
|
|
78
98
|
if ('prompt' in step) {
|
|
99
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply passed to runStep: ' + messages.getProposedReply());
|
|
79
100
|
await runStep(step, messages, ctx, onError);
|
|
80
101
|
}
|
|
81
102
|
else {
|
|
@@ -83,19 +104,12 @@ function createAIEngine(cfg = {}) {
|
|
|
83
104
|
}
|
|
84
105
|
await action('completed');
|
|
85
106
|
}
|
|
107
|
+
logger.debug(random + ' ' + 'AI Engine conv prop reply at the end of the loop iteration: ' + messages.getProposedReply());
|
|
86
108
|
}
|
|
109
|
+
currentStep = 0;
|
|
87
110
|
return shouldRun ? messages.getProposedReply() : null;
|
|
88
111
|
},
|
|
89
|
-
rewindTo
|
|
90
|
-
const index = steps.indexOf(step);
|
|
91
|
-
if (index === -1) {
|
|
92
|
-
throw new Error(`Step ${step.name} not found`);
|
|
93
|
-
}
|
|
94
|
-
if (index > currentStep) {
|
|
95
|
-
throw new Error(`Cannot rewind to a step ahead of the current step`);
|
|
96
|
-
}
|
|
97
|
-
currentStep = index - 1; // -1 because it will be incremented in the loop definition
|
|
98
|
-
},
|
|
112
|
+
rewindTo,
|
|
99
113
|
beforeEach(callback) {
|
|
100
114
|
beforeEachCallback = callback;
|
|
101
115
|
},
|
|
@@ -136,9 +150,11 @@ function createAIEngine(cfg = {}) {
|
|
|
136
150
|
logger.debug('AI Engine: messages', conversation.toString({ ignoreAddedMessages: step.ignoreAddedMessages }));
|
|
137
151
|
prompt = renderPrompt(prompt, ctx);
|
|
138
152
|
stepTrace.renderedPrompt = prompt;
|
|
153
|
+
logger.debug('AI Engine conv prop reply in runStep: ' + conversation.getProposedReply());
|
|
139
154
|
const stringifiedMessages = conversation.toString({
|
|
140
155
|
ignoreAddedMessages: step.ignoreAddedMessages,
|
|
141
156
|
});
|
|
157
|
+
logger.debug('AI Engine stringified: ' + stringifiedMessages);
|
|
142
158
|
stepTrace.stringifiedConversation = stringifiedMessages;
|
|
143
159
|
stepTracer?.addStepTrace(stepTrace);
|
|
144
160
|
if ('schema' in step) {
|
|
@@ -151,12 +167,12 @@ function createAIEngine(cfg = {}) {
|
|
|
151
167
|
if (!response) {
|
|
152
168
|
throw new Error('No response from OpenAI');
|
|
153
169
|
}
|
|
154
|
-
logger.debug(`AI Engine: response
|
|
170
|
+
logger.debug(`AI Engine: response:`, response);
|
|
155
171
|
if (typeof step.shouldExecute === 'function') {
|
|
156
172
|
if (await step.shouldExecute(response, ctx)) {
|
|
157
173
|
logger.debug(`AI Engine: executing`);
|
|
158
174
|
checkAttempts(step);
|
|
159
|
-
await step.execute(response, conversation, ctx);
|
|
175
|
+
await step.execute(response, conversation, ctx, workflowControls);
|
|
160
176
|
}
|
|
161
177
|
else {
|
|
162
178
|
resetAttempts(step);
|
|
@@ -165,7 +181,7 @@ function createAIEngine(cfg = {}) {
|
|
|
165
181
|
}
|
|
166
182
|
else {
|
|
167
183
|
logger.debug(`AI Engine: replying`);
|
|
168
|
-
await step.execute(response, conversation, ctx);
|
|
184
|
+
await step.execute(response, conversation, ctx, workflowControls);
|
|
169
185
|
}
|
|
170
186
|
}
|
|
171
187
|
catch (error) {
|
|
@@ -205,6 +221,7 @@ function createAIEngine(cfg = {}) {
|
|
|
205
221
|
function resetAttempts(step) {
|
|
206
222
|
attempts.set(step, 0);
|
|
207
223
|
}
|
|
224
|
+
return workflow;
|
|
208
225
|
}
|
|
209
226
|
async function runLLM(apiKey, systemPrompt, messages, schema, model = 'gpt-4o-2024-08-06') {
|
|
210
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"}
|
package/changelog.md
CHANGED