@recombine-ai/engine 0.6.0 → 0.7.1
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/index.d.ts +4 -5
- package/build/index.d.ts.map +1 -1
- package/build/index.js +4 -8
- package/build/lib/ai.d.ts +336 -328
- package/build/lib/ai.d.ts.map +1 -1
- package/build/lib/ai.js +288 -275
- package/build/lib/bosun/agent.d.ts +34 -24
- package/build/lib/bosun/agent.d.ts.map +1 -1
- package/build/lib/bosun/agent.js +4 -27
- package/build/lib/bosun/context.d.ts.map +1 -1
- package/build/lib/bosun/context.js +1 -4
- package/build/lib/bosun/index.d.ts +2 -0
- package/build/lib/bosun/index.d.ts.map +1 -1
- package/build/lib/bosun/index.js +1 -0
- package/build/lib/bosun/stepTracer.d.ts +14 -0
- package/build/lib/bosun/stepTracer.d.ts.map +1 -0
- package/build/lib/bosun/stepTracer.js +2 -0
- package/build/lib/bosun/tracer.d.ts +19 -0
- package/build/lib/bosun/tracer.d.ts.map +1 -0
- package/build/lib/bosun/tracer.js +20 -0
- package/build/lib/interfaces.d.ts +17 -19
- package/build/lib/interfaces.d.ts.map +1 -1
- package/build/lib/prompt-fs.d.ts +17 -0
- package/build/lib/prompt-fs.d.ts.map +1 -0
- package/build/lib/prompt-fs.js +23 -0
- package/build/lib/rc-fs.d.ts +17 -0
- package/build/lib/rc-fs.d.ts.map +1 -0
- package/build/lib/rc-fs.js +22 -0
- package/changelog.md +26 -4
- package/eslint.config.mjs +52 -0
- package/package.json +9 -2
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Message } from '../ai';
|
|
2
2
|
import { Logger, Scheduler } from '../interfaces';
|
|
3
3
|
import { SendAction } from './action';
|
|
4
4
|
import { Context } from './context';
|
|
5
|
+
import { Tracer } from './tracer';
|
|
6
|
+
import { StepTracer } from './stepTracer';
|
|
5
7
|
/**
|
|
6
|
-
* Bosun is a UI for testing Recombine AI agents. It enables testing complex agent interactions with
|
|
8
|
+
* Bosun is a UI for testing Recombine AI agents. It enables testing complex agent interactions with
|
|
9
|
+
* multiple steps, error handling, and state management.
|
|
7
10
|
*
|
|
8
11
|
* @example
|
|
9
12
|
* ```typescript
|
|
10
13
|
* // In workflows.ts
|
|
11
14
|
* const agents = {
|
|
12
|
-
* "
|
|
15
|
+
* "testBot": createTestAgentFactory((props) => {
|
|
13
16
|
* return {
|
|
14
17
|
* start: async () => { ... },
|
|
15
18
|
* reactOnMessage: async () => { ... },
|
|
@@ -21,26 +24,33 @@ import { Context } from './context';
|
|
|
21
24
|
* export agents;
|
|
22
25
|
* ```
|
|
23
26
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
export interface TestAgent {
|
|
36
|
-
start: () => Promise<unknown>;
|
|
37
|
-
reactOnMessage: () => Promise<unknown>;
|
|
38
|
-
respondToMessage: () => Promise<unknown>;
|
|
39
|
-
isAssigned: () => Promise<boolean>;
|
|
40
|
-
onFatalError: (error: Error) => Promise<unknown>;
|
|
41
|
-
}
|
|
42
|
-
export type TestAgentFactory<T extends DefaultContext = DefaultContext> = (props: TesAgentFactoryProps<T>) => TestAgent;
|
|
43
|
-
export function createTestAgentFactory<T extends DefaultContext>(creator: TestAgentFactory<T>): TestAgentFactory<T>;
|
|
44
|
-
export {};
|
|
27
|
+
type DefaultContext = Record<string, any>;
|
|
28
|
+
export interface TestAgentFactoryProps<CTX extends DefaultContext = DefaultContext> {
|
|
29
|
+
tracer: Tracer;
|
|
30
|
+
stepTracer: StepTracer;
|
|
31
|
+
logger: Logger;
|
|
32
|
+
scheduler: Scheduler;
|
|
33
|
+
getMessages: () => Message[];
|
|
34
|
+
sendMessage: (message: string | Message) => Promise<void>;
|
|
35
|
+
sendAction: SendAction;
|
|
36
|
+
ctx: Context<CTX>;
|
|
45
37
|
}
|
|
38
|
+
export interface TestTextAgent {
|
|
39
|
+
start: () => Promise<unknown>;
|
|
40
|
+
reactOnMessage: () => Promise<unknown>;
|
|
41
|
+
respondToMessage: () => Promise<unknown>;
|
|
42
|
+
isAssigned: () => Promise<boolean>;
|
|
43
|
+
onFatalError: (error: Error) => Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
export interface TestVoiceAgent {
|
|
46
|
+
streamResponse: () => Promise<unknown>;
|
|
47
|
+
onCallEnd: () => Promise<unknown>;
|
|
48
|
+
onCallStart: () => Promise<unknown>;
|
|
49
|
+
onFatalError: (error: Error) => Promise<unknown>;
|
|
50
|
+
resetContext: () => Promise<unknown>;
|
|
51
|
+
}
|
|
52
|
+
export type TestAgent = TestTextAgent | TestVoiceAgent;
|
|
53
|
+
export type TestAgentFactory<T extends DefaultContext = DefaultContext> = (props: TestAgentFactoryProps<T>) => Promise<TestAgent>;
|
|
54
|
+
export declare function createTestAgentFactory<T extends DefaultContext>(creator: TestAgentFactory<T>): TestAgentFactory<T>;
|
|
55
|
+
export {};
|
|
46
56
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/agent.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACzC,MAAM,WAAW,qBAAqB,CAAC,GAAG,SAAS,cAAc,GAAG,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,MAAM,OAAO,EAAE,CAAA;IAC5B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AACD,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAEhD,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CACvC;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,cAAc,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CACtE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAC9B,OAAO,CAAC,SAAS,CAAC,CAAA;AAEvB,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,uBAE5F"}
|
package/build/lib/bosun/agent.js
CHANGED
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* // In workflows.ts
|
|
10
|
-
* const agents = {
|
|
11
|
-
* "testbot": createTestAgentFactory((props) => {
|
|
12
|
-
* return {
|
|
13
|
-
* start: async () => { ... },
|
|
14
|
-
* reactOnMessage: async () => { ... },
|
|
15
|
-
* respondToMessage: async () => { ... }
|
|
16
|
-
* }
|
|
17
|
-
* })
|
|
18
|
-
* }
|
|
19
|
-
*
|
|
20
|
-
* export agents;
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
var Bosun;
|
|
24
|
-
(function (Bosun) {
|
|
25
|
-
function createTestAgentFactory(creator) {
|
|
26
|
-
return creator;
|
|
27
|
-
}
|
|
28
|
-
Bosun.createTestAgentFactory = createTestAgentFactory;
|
|
29
|
-
})(Bosun || (exports.Bosun = Bosun = {}));
|
|
3
|
+
exports.createTestAgentFactory = createTestAgentFactory;
|
|
4
|
+
function createTestAgentFactory(creator) {
|
|
5
|
+
return creator;
|
|
6
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/context.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC9B,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC1B;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GACrE,KAAK,SAAS,MAAM,CAAC,GACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC,KAAK,CAAC,GACR,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAC7B,KAAK,GACT,KAAK,CAAA;AAEX,cAAM,OAAO,CAAC,CAAC,SAAS,GAAG;;gBAGX,OAAO,EAAE,CAAC;IAItB,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACxF,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/context.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC9B,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC1B;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GACrE,KAAK,SAAS,MAAM,CAAC,GACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC,KAAK,CAAC,GACR,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAC7B,KAAK,GACT,KAAK,CAAA;AAEX,cAAM,OAAO,CAAC,CAAC,SAAS,GAAG;;gBAGX,OAAO,EAAE,CAAC;IAItB,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACxF,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI;IAgBxB,GAAG;IAIH,gCAAgC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;IAIlB,SAAS,aAAc,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,mBAG1C;CACJ;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,cAEtD;AAED,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAEzC,KAAK,aAAa,CAAC,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAEtD,YAAY,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA"}
|
|
@@ -5,12 +5,9 @@ class Context {
|
|
|
5
5
|
#listeners = new Set();
|
|
6
6
|
#context;
|
|
7
7
|
constructor(context) {
|
|
8
|
-
this.#context = context;
|
|
8
|
+
this.#context = context || {};
|
|
9
9
|
}
|
|
10
10
|
set(pathOrContext, value) {
|
|
11
|
-
if (!this.#context) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
11
|
if (!Array.isArray(pathOrContext)) {
|
|
15
12
|
this.#context = pathOrContext;
|
|
16
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC7D,cAAc,cAAc,CAAA"}
|
package/build/lib/bosun/index.js
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ZodSchema } from 'zod';
|
|
2
|
+
export type StepTrace = {
|
|
3
|
+
name: string;
|
|
4
|
+
renderedPrompt?: string;
|
|
5
|
+
receivedContext?: Record<string, unknown>;
|
|
6
|
+
receivedPrompt?: string | File;
|
|
7
|
+
stringifiedConversation?: string;
|
|
8
|
+
schema?: ZodSchema;
|
|
9
|
+
model?: string;
|
|
10
|
+
};
|
|
11
|
+
export interface StepTracer {
|
|
12
|
+
addStepTrace(stepTrace: StepTrace): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=stepTracer.d.ts.map
|
|
@@ -0,0 +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;AAG/B,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,IAAI,CAAA;IAC9B,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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ZodSchema } from 'zod';
|
|
2
|
+
import { PromptFile } from '../prompt-fs';
|
|
3
|
+
import { Logger } from '../interfaces';
|
|
4
|
+
export interface PromptString {
|
|
5
|
+
type: 'string';
|
|
6
|
+
content: () => Promise<string>;
|
|
7
|
+
}
|
|
8
|
+
export interface StepTraceDef {
|
|
9
|
+
name: string;
|
|
10
|
+
type: 'streaming-response' | 'streaming-detect' | 'text';
|
|
11
|
+
prompt: PromptFile | PromptString;
|
|
12
|
+
schema?: ZodSchema;
|
|
13
|
+
}
|
|
14
|
+
export interface Tracer {
|
|
15
|
+
addStep(def: StepTraceDef): void;
|
|
16
|
+
}
|
|
17
|
+
export declare function createConsoleTracer(logger: Logger): Tracer;
|
|
18
|
+
export declare function stdPrompt(prompt: PromptFile | string): PromptFile | PromptString;
|
|
19
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/lib/bosun/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,GAAG,MAAM,CAAA;IACxD,MAAM,EAAE,UAAU,GAAG,YAAY,CAAA;IACjC,MAAM,CAAC,EAAE,SAAS,CAAA;CACrB;AACD,MAAM,WAAW,MAAM;IACnB,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,6BAQpD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createConsoleTracer = createConsoleTracer;
|
|
4
|
+
exports.stdPrompt = stdPrompt;
|
|
5
|
+
function createConsoleTracer(logger) {
|
|
6
|
+
return {
|
|
7
|
+
addStep(def) {
|
|
8
|
+
logger.debug('Tracer, step added:', def);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function stdPrompt(prompt) {
|
|
13
|
+
if (typeof prompt === 'string') {
|
|
14
|
+
return {
|
|
15
|
+
type: 'string',
|
|
16
|
+
content: async () => prompt,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return prompt;
|
|
20
|
+
}
|
|
@@ -3,26 +3,24 @@ export interface Logger {
|
|
|
3
3
|
debug: (...args: any[]) => void;
|
|
4
4
|
error: (...args: any[]) => void;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* A function that schedules an action to be executed in the future
|
|
8
|
+
* @param delay – a date when the action should be executed use {@link delayFactory} to create a
|
|
9
|
+
* date
|
|
10
|
+
* @param phone – user's phone
|
|
11
|
+
*/
|
|
12
|
+
export type ScheduleAction = (delay: Date, phone: string) => Promise<void>;
|
|
13
|
+
export interface Scheduler {
|
|
7
14
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @param
|
|
10
|
-
*
|
|
11
|
-
* @
|
|
15
|
+
* Register a delayed action handler.
|
|
16
|
+
* @param actionName – a unique (inside one use-case) name for the action
|
|
17
|
+
* @param action – a function that will be called when the action is triggered
|
|
18
|
+
* @returns a function to schedule the action
|
|
12
19
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* @param action – a function that will be called when the action is triggered
|
|
19
|
-
* @returns a function to schedule the action
|
|
20
|
-
*/
|
|
21
|
-
registerAction: (actionName: string, action: (phone: string) => Promise<unknown>) => ScheduleAction;
|
|
22
|
-
/**
|
|
23
|
-
* Removes all actions for the given phone that were not executed yet.
|
|
24
|
-
*/
|
|
25
|
-
clearAllPendingActions: (phone: string) => Promise<unknown>;
|
|
26
|
-
}
|
|
20
|
+
registerAction: (actionName: string, action: (phone: string) => Promise<unknown>) => ScheduleAction;
|
|
21
|
+
/**
|
|
22
|
+
* Removes all actions for the given phone that were not executed yet.
|
|
23
|
+
*/
|
|
24
|
+
clearAllPendingActions: (phone: string) => Promise<unknown>;
|
|
27
25
|
}
|
|
28
26
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/lib/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC7B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC/B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAClC;AAED
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/lib/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC7B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC/B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAClC;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1E,MAAM,WAAW,SAAS;IACtB;;;;;OAKG;IACH,cAAc,EAAE,CACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,KAC1C,cAAc,CAAA;IAEnB;;OAEG;IACH,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Logger } from './interfaces';
|
|
2
|
+
export interface FsConfig {
|
|
3
|
+
logger?: Logger;
|
|
4
|
+
basePath: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PromptFS {
|
|
7
|
+
loadFile(path: string): PromptFile;
|
|
8
|
+
}
|
|
9
|
+
export declare function createLocalFS(cfg: FsConfig): {
|
|
10
|
+
loadFile(path: string): PromptFile;
|
|
11
|
+
};
|
|
12
|
+
export interface PromptFile {
|
|
13
|
+
type: 'file';
|
|
14
|
+
content: () => Promise<string>;
|
|
15
|
+
path: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=prompt-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-fs.d.ts","sourceRoot":"","sources":["../../src/lib/prompt-fs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,WAAW,QAAQ;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CACrC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ;mBAGpB,MAAM,GAAG,UAAU;EAWzC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;CACf"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLocalFS = createLocalFS;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
function createLocalFS(cfg) {
|
|
10
|
+
const logger = cfg.logger ?? console;
|
|
11
|
+
return {
|
|
12
|
+
loadFile(path) {
|
|
13
|
+
return {
|
|
14
|
+
type: 'file',
|
|
15
|
+
content: async () => {
|
|
16
|
+
logger.debug('AI Engine: loading prompt:', path);
|
|
17
|
+
return fs_1.default.promises.readFile((0, path_1.join)(cfg.basePath, path), 'utf-8');
|
|
18
|
+
},
|
|
19
|
+
path,
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Logger } from '@recombine-ai/engine';
|
|
2
|
+
export interface FsConfig {
|
|
3
|
+
logger: Logger;
|
|
4
|
+
basePath: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RcFS {
|
|
7
|
+
loadFile(path: string): PromptFile;
|
|
8
|
+
}
|
|
9
|
+
export declare function createLocalFS(cfg: FsConfig): {
|
|
10
|
+
loadFile(path: string): PromptFile;
|
|
11
|
+
};
|
|
12
|
+
export interface PromptFile {
|
|
13
|
+
type: 'file';
|
|
14
|
+
content: () => Promise<string>;
|
|
15
|
+
path: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=rc-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rc-fs.d.ts","sourceRoot":"","sources":["../../src/lib/rc-fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CACrC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ;mBAEpB,MAAM,GAAG,UAAU;EAWzC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;CACf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLocalFS = createLocalFS;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
function createLocalFS(cfg) {
|
|
10
|
+
return {
|
|
11
|
+
loadFile(path) {
|
|
12
|
+
return {
|
|
13
|
+
type: 'file',
|
|
14
|
+
content: async () => {
|
|
15
|
+
cfg.logger.debug('AI Engine: loading prompt:', path);
|
|
16
|
+
return fs_1.default.promises.readFile((0, path_1.join)(cfg.basePath, path), 'utf-8');
|
|
17
|
+
},
|
|
18
|
+
path,
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
package/changelog.md
CHANGED
|
@@ -1,22 +1,44 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
### 0.6.0 → 0.7.1 (unstable)
|
|
4
|
+
|
|
5
|
+
- fixed multiple runs on static workflows
|
|
6
|
+
|
|
7
|
+
### 0.6.0 → 0.7.0 (unstable)
|
|
8
|
+
|
|
9
|
+
Breaking changes:
|
|
10
|
+
|
|
11
|
+
- namespaces removed
|
|
12
|
+
- `TestAgentFactory` now returns a promise
|
|
13
|
+
- `TesAgentFactoryProps` now requires `Tracer` and doesn't require `AIEngine`
|
|
14
|
+
- `loadFile` method was removed in favor of `PromptFS`
|
|
15
|
+
- `workflow.run` now returns a string instead object as a response
|
|
16
|
+
|
|
17
|
+
Other changes
|
|
18
|
+
|
|
19
|
+
- interface `TestVoiceAgent` added
|
|
20
|
+
- interface `Tracer` added
|
|
21
|
+
- interface `PromptFS` and function `createLocalFS` were added
|
|
22
|
+
- added `StepTracer` interface
|
|
23
|
+
- Engine config now accepts `tracer` and `stepTracer`
|
|
24
|
+
|
|
3
25
|
### 0.5.0 → 0.6.0 (unstable)
|
|
4
26
|
|
|
5
27
|
Breaking changes:
|
|
6
28
|
|
|
7
|
-
- addDirective is removed. Use addMessage with role: 'system' instead.
|
|
8
|
-
- ignoreDirectives → ignoreAddedMessages
|
|
29
|
+
- `addDirective` is removed. Use `addMessage` with role: 'system' instead.
|
|
30
|
+
- `ignoreDirectives` → `ignoreAddedMessages`
|
|
9
31
|
|
|
10
32
|
Other changes:
|
|
11
33
|
|
|
12
|
-
- AIEngine.sendMessage now accepts
|
|
34
|
+
- `AIEngine.sendMessage` now accepts `Message` rather than a string
|
|
13
35
|
|
|
14
36
|
### 0.4.0 → 0.5.0 (unstable)
|
|
15
37
|
|
|
16
38
|
Breaking changes:
|
|
17
39
|
|
|
18
40
|
- `schema` property replaced with `json` which can be boolean,
|
|
19
|
-
- `setDirectiveFormatter`
|
|
41
|
+
- `setDirectiveFormatter` removed
|
|
20
42
|
|
|
21
43
|
Other changes:
|
|
22
44
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import eslint from '@eslint/js'
|
|
2
|
+
import tseslint from 'typescript-eslint'
|
|
3
|
+
|
|
4
|
+
export default tseslint.config(
|
|
5
|
+
eslint.configs.recommended,
|
|
6
|
+
tseslint.configs.recommendedTypeChecked,
|
|
7
|
+
{
|
|
8
|
+
rules: {
|
|
9
|
+
'@typescript-eslint/no-floating-promises': 'error',
|
|
10
|
+
'@typescript-eslint/no-unsafe-assignment': 'warn',
|
|
11
|
+
'@typescript-eslint/no-unused-vars': [
|
|
12
|
+
'warn',
|
|
13
|
+
{
|
|
14
|
+
argsIgnorePattern: '^_',
|
|
15
|
+
varsIgnorePattern: '^_',
|
|
16
|
+
caughtErrorsIgnorePattern: '^_',
|
|
17
|
+
destructuredArrayIgnorePattern: '^_',
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
'@typescript-eslint/no-unsafe-call': 'warn',
|
|
21
|
+
'@typescript-eslint/no-unsafe-member-access': 'warn',
|
|
22
|
+
'@typescript-eslint/require-await': 'off',
|
|
23
|
+
'@typescript-eslint/no-unsafe-return': 'warn',
|
|
24
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
25
|
+
'prefer-const': 'warn',
|
|
26
|
+
'@typescript-eslint/no-redundant-type-constituents': 'warn',
|
|
27
|
+
'@typescript-eslint/ban-ts-comment': 'warn',
|
|
28
|
+
'@typescript-eslint/no-unsafe-argument': 'warn',
|
|
29
|
+
'@typescript-eslint/no-empty-object-type': 'warn',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
ignores: [
|
|
34
|
+
'dist/**/*.ts',
|
|
35
|
+
'dist/**',
|
|
36
|
+
'**/*.mjs',
|
|
37
|
+
'eslint.config.mjs',
|
|
38
|
+
'**/*.js',
|
|
39
|
+
'vitest.config.ts',
|
|
40
|
+
'deploy/cdk.out/**',
|
|
41
|
+
'drafts/**',
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
languageOptions: {
|
|
46
|
+
parserOptions: {
|
|
47
|
+
projectService: true,
|
|
48
|
+
project: './tsconfig.json',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@recombine-ai/engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Recombine AI engine for creating conversational AI agents",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -12,13 +12,20 @@
|
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"prepublishOnly": "npm run build",
|
|
14
14
|
"test": "vitest",
|
|
15
|
-
"docs": "cd docusaurus && yarn build --out-dir ../docs && cd .."
|
|
15
|
+
"docs": "cd docusaurus && yarn build --out-dir ../docs && cd ..",
|
|
16
|
+
"lint": "eslint",
|
|
17
|
+
"lint:fix": "eslint --fix",
|
|
18
|
+
"format": "prettier --write ."
|
|
16
19
|
},
|
|
17
20
|
"devDependencies": {
|
|
21
|
+
"@eslint/js": "^9.26.0",
|
|
18
22
|
"@types/node": "^22.8.1",
|
|
19
23
|
"@types/nunjucks": "^3.2.6",
|
|
24
|
+
"@typescript-eslint/eslint-plugin": "^8.32.0",
|
|
25
|
+
"eslint": "^9.26.0",
|
|
20
26
|
"prettier": "^3.3.3",
|
|
21
27
|
"typescript": "^5.8.3",
|
|
28
|
+
"typescript-eslint": "^8.32.0",
|
|
22
29
|
"vitest": "^3.0.6"
|
|
23
30
|
},
|
|
24
31
|
"dependencies": {
|