@aigne/core 1.15.0 → 1.17.0
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/CHANGELOG.md +22 -0
- package/README.md +9 -7
- package/README.zh.md +9 -7
- package/lib/cjs/agents/agent.d.ts +168 -29
- package/lib/cjs/agents/agent.js +152 -56
- package/lib/cjs/agents/ai-agent.d.ts +7 -7
- package/lib/cjs/agents/ai-agent.js +19 -15
- package/lib/{esm/models → cjs/agents}/chat-model.d.ts +29 -19
- package/lib/cjs/{models → agents}/chat-model.js +56 -15
- package/lib/cjs/agents/guide-rail-agent.d.ts +62 -0
- package/lib/cjs/agents/guide-rail-agent.js +14 -0
- package/lib/cjs/agents/mcp-agent.d.ts +3 -4
- package/lib/cjs/agents/mcp-agent.js +11 -11
- package/lib/cjs/agents/team-agent.d.ts +7 -8
- package/lib/cjs/agents/team-agent.js +10 -10
- package/lib/cjs/agents/user-agent.d.ts +4 -4
- package/lib/cjs/agents/user-agent.js +10 -10
- package/lib/cjs/aigne/aigne.d.ts +13 -11
- package/lib/cjs/aigne/aigne.js +7 -6
- package/lib/cjs/aigne/context.d.ts +19 -8
- package/lib/cjs/aigne/context.js +27 -7
- package/lib/cjs/index.d.ts +2 -1
- package/lib/cjs/index.js +2 -1
- package/lib/cjs/loader/agent-yaml.d.ts +2 -2
- package/lib/cjs/loader/index.d.ts +18 -11
- package/lib/cjs/loader/index.js +8 -27
- package/lib/cjs/memory/default-memory/default-memory-storage/index.d.ts +30 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/index.js +69 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/migrate.d.ts +7 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/migrate.js +53 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/migrations/20250523165801-init.d.ts +7 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/migrations/20250523165801-init.js +33 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/models/memory.d.ts +10 -0
- package/lib/cjs/memory/default-memory/default-memory-storage/models/memory.js +32 -0
- package/lib/cjs/memory/default-memory/index.d.ts +10 -0
- package/lib/cjs/memory/{default-memory.js → default-memory/index.js} +16 -25
- package/lib/cjs/memory/default-memory/storage.d.ts +13 -0
- package/lib/cjs/memory/default-memory/storage.js +6 -0
- package/lib/cjs/memory/memory.d.ts +3 -2
- package/lib/cjs/memory/memory.js +1 -1
- package/lib/cjs/memory/retriever.d.ts +2 -2
- package/lib/cjs/prompt/prompt-builder.d.ts +10 -4
- package/lib/cjs/prompt/prompt-builder.js +4 -4
- package/lib/cjs/prompt/template.d.ts +3 -3
- package/lib/cjs/utils/json-schema.js +1 -1
- package/lib/cjs/utils/logger.d.ts +33 -8
- package/lib/cjs/utils/logger.js +63 -5
- package/lib/cjs/utils/model-utils.d.ts +1 -1
- package/lib/cjs/utils/stream-utils.d.ts +3 -1
- package/lib/cjs/utils/stream-utils.js +31 -1
- package/lib/cjs/utils/type-utils.d.ts +7 -2
- package/lib/dts/agents/agent.d.ts +168 -29
- package/lib/dts/agents/ai-agent.d.ts +7 -7
- package/lib/{cjs/models → dts/agents}/chat-model.d.ts +29 -19
- package/lib/dts/agents/guide-rail-agent.d.ts +62 -0
- package/lib/dts/agents/mcp-agent.d.ts +3 -4
- package/lib/dts/agents/team-agent.d.ts +7 -8
- package/lib/dts/agents/user-agent.d.ts +4 -4
- package/lib/dts/aigne/aigne.d.ts +13 -11
- package/lib/dts/aigne/context.d.ts +19 -8
- package/lib/dts/index.d.ts +2 -1
- package/lib/dts/loader/agent-yaml.d.ts +2 -2
- package/lib/dts/loader/index.d.ts +18 -11
- package/lib/dts/memory/default-memory/default-memory-storage/index.d.ts +30 -0
- package/lib/dts/memory/default-memory/default-memory-storage/migrate.d.ts +7 -0
- package/lib/dts/memory/default-memory/default-memory-storage/migrations/20250523165801-init.d.ts +7 -0
- package/lib/dts/memory/default-memory/default-memory-storage/models/memory.d.ts +10 -0
- package/lib/dts/memory/default-memory/index.d.ts +10 -0
- package/lib/dts/memory/default-memory/storage.d.ts +13 -0
- package/lib/dts/memory/memory.d.ts +3 -2
- package/lib/dts/memory/retriever.d.ts +2 -2
- package/lib/dts/prompt/prompt-builder.d.ts +10 -4
- package/lib/dts/prompt/template.d.ts +3 -3
- package/lib/dts/utils/logger.d.ts +33 -8
- package/lib/dts/utils/model-utils.d.ts +1 -1
- package/lib/dts/utils/stream-utils.d.ts +3 -1
- package/lib/dts/utils/type-utils.d.ts +7 -2
- package/lib/esm/agents/agent.d.ts +168 -29
- package/lib/esm/agents/agent.js +152 -56
- package/lib/esm/agents/ai-agent.d.ts +7 -7
- package/lib/esm/agents/ai-agent.js +18 -14
- package/lib/{dts/models → esm/agents}/chat-model.d.ts +29 -19
- package/lib/esm/{models → agents}/chat-model.js +56 -15
- package/lib/esm/agents/guide-rail-agent.d.ts +62 -0
- package/lib/esm/agents/guide-rail-agent.js +11 -0
- package/lib/esm/agents/mcp-agent.d.ts +3 -4
- package/lib/esm/agents/mcp-agent.js +11 -11
- package/lib/esm/agents/team-agent.d.ts +7 -8
- package/lib/esm/agents/team-agent.js +10 -10
- package/lib/esm/agents/user-agent.d.ts +4 -4
- package/lib/esm/agents/user-agent.js +10 -10
- package/lib/esm/aigne/aigne.d.ts +13 -11
- package/lib/esm/aigne/aigne.js +7 -6
- package/lib/esm/aigne/context.d.ts +19 -8
- package/lib/esm/aigne/context.js +28 -8
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/loader/agent-yaml.d.ts +2 -2
- package/lib/esm/loader/index.d.ts +18 -11
- package/lib/esm/loader/index.js +8 -27
- package/lib/esm/memory/default-memory/default-memory-storage/index.d.ts +30 -0
- package/lib/esm/memory/default-memory/default-memory-storage/index.js +64 -0
- package/lib/esm/memory/default-memory/default-memory-storage/migrate.d.ts +7 -0
- package/lib/esm/memory/default-memory/default-memory-storage/migrate.js +16 -0
- package/lib/esm/memory/default-memory/default-memory-storage/migrations/20250523165801-init.d.ts +7 -0
- package/lib/esm/memory/default-memory/default-memory-storage/migrations/20250523165801-init.js +28 -0
- package/lib/esm/memory/default-memory/default-memory-storage/models/memory.d.ts +10 -0
- package/lib/esm/memory/default-memory/default-memory-storage/models/memory.js +29 -0
- package/lib/esm/memory/default-memory/index.d.ts +10 -0
- package/lib/esm/memory/{default-memory.js → default-memory/index.js} +15 -24
- package/lib/esm/memory/default-memory/storage.d.ts +13 -0
- package/lib/esm/memory/default-memory/storage.js +2 -0
- package/lib/esm/memory/memory.d.ts +3 -2
- package/lib/esm/memory/memory.js +2 -2
- package/lib/esm/memory/retriever.d.ts +2 -2
- package/lib/esm/prompt/prompt-builder.d.ts +10 -4
- package/lib/esm/prompt/prompt-builder.js +4 -4
- package/lib/esm/prompt/template.d.ts +3 -3
- package/lib/esm/utils/json-schema.js +1 -1
- package/lib/esm/utils/logger.d.ts +33 -8
- package/lib/esm/utils/logger.js +61 -4
- package/lib/esm/utils/model-utils.d.ts +1 -1
- package/lib/esm/utils/stream-utils.d.ts +3 -1
- package/lib/esm/utils/stream-utils.js +29 -1
- package/lib/esm/utils/type-utils.d.ts +7 -2
- package/package.json +4 -20
- package/lib/cjs/client/client.d.ts +0 -97
- package/lib/cjs/client/client.js +0 -87
- package/lib/cjs/client/index.d.ts +0 -1
- package/lib/cjs/client/index.js +0 -17
- package/lib/cjs/memory/default-memory.d.ts +0 -16
- package/lib/cjs/models/bedrock-chat-model.d.ts +0 -79
- package/lib/cjs/models/bedrock-chat-model.js +0 -303
- package/lib/cjs/models/claude-chat-model.d.ts +0 -114
- package/lib/cjs/models/claude-chat-model.js +0 -317
- package/lib/cjs/models/deepseek-chat-model.d.ts +0 -23
- package/lib/cjs/models/deepseek-chat-model.js +0 -35
- package/lib/cjs/models/gemini-chat-model.d.ts +0 -23
- package/lib/cjs/models/gemini-chat-model.js +0 -35
- package/lib/cjs/models/ollama-chat-model.d.ts +0 -22
- package/lib/cjs/models/ollama-chat-model.js +0 -34
- package/lib/cjs/models/open-router-chat-model.d.ts +0 -22
- package/lib/cjs/models/open-router-chat-model.js +0 -34
- package/lib/cjs/models/openai-chat-model.d.ts +0 -166
- package/lib/cjs/models/openai-chat-model.js +0 -415
- package/lib/cjs/models/xai-chat-model.d.ts +0 -21
- package/lib/cjs/models/xai-chat-model.js +0 -33
- package/lib/cjs/server/error.d.ts +0 -15
- package/lib/cjs/server/error.js +0 -22
- package/lib/cjs/server/index.d.ts +0 -2
- package/lib/cjs/server/index.js +0 -18
- package/lib/cjs/server/server.d.ts +0 -135
- package/lib/cjs/server/server.js +0 -187
- package/lib/dts/client/client.d.ts +0 -97
- package/lib/dts/client/index.d.ts +0 -1
- package/lib/dts/memory/default-memory.d.ts +0 -16
- package/lib/dts/models/bedrock-chat-model.d.ts +0 -79
- package/lib/dts/models/claude-chat-model.d.ts +0 -114
- package/lib/dts/models/deepseek-chat-model.d.ts +0 -23
- package/lib/dts/models/gemini-chat-model.d.ts +0 -23
- package/lib/dts/models/ollama-chat-model.d.ts +0 -22
- package/lib/dts/models/open-router-chat-model.d.ts +0 -22
- package/lib/dts/models/openai-chat-model.d.ts +0 -166
- package/lib/dts/models/xai-chat-model.d.ts +0 -21
- package/lib/dts/server/error.d.ts +0 -15
- package/lib/dts/server/index.d.ts +0 -2
- package/lib/dts/server/server.d.ts +0 -135
- package/lib/esm/client/client.d.ts +0 -97
- package/lib/esm/client/client.js +0 -83
- package/lib/esm/client/index.d.ts +0 -1
- package/lib/esm/client/index.js +0 -1
- package/lib/esm/memory/default-memory.d.ts +0 -16
- package/lib/esm/models/bedrock-chat-model.d.ts +0 -79
- package/lib/esm/models/bedrock-chat-model.js +0 -298
- package/lib/esm/models/claude-chat-model.d.ts +0 -114
- package/lib/esm/models/claude-chat-model.js +0 -310
- package/lib/esm/models/deepseek-chat-model.d.ts +0 -23
- package/lib/esm/models/deepseek-chat-model.js +0 -31
- package/lib/esm/models/gemini-chat-model.d.ts +0 -23
- package/lib/esm/models/gemini-chat-model.js +0 -31
- package/lib/esm/models/ollama-chat-model.d.ts +0 -22
- package/lib/esm/models/ollama-chat-model.js +0 -30
- package/lib/esm/models/open-router-chat-model.d.ts +0 -22
- package/lib/esm/models/open-router-chat-model.js +0 -30
- package/lib/esm/models/openai-chat-model.d.ts +0 -166
- package/lib/esm/models/openai-chat-model.js +0 -405
- package/lib/esm/models/xai-chat-model.d.ts +0 -21
- package/lib/esm/models/xai-chat-model.js +0 -29
- package/lib/esm/server/error.d.ts +0 -15
- package/lib/esm/server/error.js +0 -18
- package/lib/esm/server/index.d.ts +0 -2
- package/lib/esm/server/index.js +0 -2
- package/lib/esm/server/server.d.ts +0 -135
- package/lib/esm/server/server.js +0 -180
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import EventEmitter from "node:events";
|
|
2
2
|
import { Agent, type AgentInvokeOptions, type AgentProcessAsyncGenerator, type AgentResponse, type AgentResponseStream, type Message } from "../agents/agent.js";
|
|
3
|
+
import type { ChatModel } from "../agents/chat-model.js";
|
|
3
4
|
import { UserAgent } from "../agents/user-agent.js";
|
|
4
|
-
import type { ChatModel } from "../models/chat-model.js";
|
|
5
5
|
import { type OmitPropertiesFromArrayFirstElement } from "../utils/type-utils.js";
|
|
6
6
|
import type { Args, Listener, TypedEventEmitter } from "../utils/typed-event-emtter.js";
|
|
7
7
|
import { type MessagePayload, MessageQueue, type MessageQueueListener, type Unsubscribe } from "./message-queue.js";
|
|
@@ -38,19 +38,27 @@ export type ContextEmitEventMap = {
|
|
|
38
38
|
/**
|
|
39
39
|
* @hidden
|
|
40
40
|
*/
|
|
41
|
-
export interface InvokeOptions extends AgentInvokeOptions {
|
|
41
|
+
export interface InvokeOptions<U extends UserContext = UserContext> extends Partial<Omit<AgentInvokeOptions<U>, "context">> {
|
|
42
42
|
returnActiveAgent?: boolean;
|
|
43
43
|
disableTransfer?: boolean;
|
|
44
|
+
sourceAgent?: Agent;
|
|
45
|
+
userContext?: U;
|
|
44
46
|
}
|
|
45
47
|
/**
|
|
46
48
|
* @hidden
|
|
47
49
|
*/
|
|
48
|
-
export interface
|
|
50
|
+
export interface UserContext extends Record<string, unknown> {
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
export interface Context<U extends UserContext = UserContext> extends TypedEventEmitter<ContextEventMap, ContextEmitEventMap> {
|
|
49
56
|
model?: ChatModel;
|
|
50
57
|
skills?: Agent[];
|
|
51
58
|
usage: ContextUsage;
|
|
52
59
|
limits?: ContextLimits;
|
|
53
60
|
status?: "normal" | "timeout";
|
|
61
|
+
userContext: U;
|
|
54
62
|
/**
|
|
55
63
|
* Create a user agent to consistently invoke an agent
|
|
56
64
|
* @param agent Agent to invoke
|
|
@@ -91,7 +99,7 @@ export interface Context extends TypedEventEmitter<ContextEventMap, ContextEmitE
|
|
|
91
99
|
* @param topic topic name, or an array of topic names
|
|
92
100
|
* @param payload message to publish
|
|
93
101
|
*/
|
|
94
|
-
publish(topic: string | string[], payload: Omit<MessagePayload, "context"> | Message | string): void;
|
|
102
|
+
publish(topic: string | string[], payload: Omit<MessagePayload, "context"> | Message | string, options?: InvokeOptions): void;
|
|
95
103
|
subscribe(topic: string | string[], listener?: undefined): Promise<MessagePayload>;
|
|
96
104
|
subscribe(topic: string | string[], listener: MessageQueueListener): Unsubscribe;
|
|
97
105
|
subscribe(topic: string | string[], listener?: MessageQueueListener): Unsubscribe | Promise<MessagePayload>;
|
|
@@ -113,15 +121,17 @@ export interface Context extends TypedEventEmitter<ContextEventMap, ContextEmitE
|
|
|
113
121
|
* @hidden
|
|
114
122
|
*/
|
|
115
123
|
export declare class AIGNEContext implements Context {
|
|
116
|
-
constructor(parent
|
|
124
|
+
constructor(...[parent, ...args]: ConstructorParameters<typeof AIGNEContextShared>);
|
|
117
125
|
parentId?: string;
|
|
118
126
|
id: string;
|
|
119
|
-
readonly internal:
|
|
127
|
+
readonly internal: AIGNEContextShared;
|
|
120
128
|
get model(): ChatModel | undefined;
|
|
121
129
|
get skills(): Agent<Message, Message>[] | undefined;
|
|
122
130
|
get limits(): ContextLimits | undefined;
|
|
123
131
|
get status(): "normal" | "timeout";
|
|
124
132
|
get usage(): ContextUsage;
|
|
133
|
+
get userContext(): Context["userContext"];
|
|
134
|
+
set userContext(userContext: Context["userContext"]);
|
|
125
135
|
newContext({ reset }?: {
|
|
126
136
|
reset?: boolean;
|
|
127
137
|
}): AIGNEContext;
|
|
@@ -134,17 +144,18 @@ export declare class AIGNEContext implements Context {
|
|
|
134
144
|
once<K extends keyof ContextEventMap>(eventName: K, listener: Listener<K, ContextEventMap>): this;
|
|
135
145
|
off<K extends keyof ContextEventMap>(eventName: K, listener: Listener<K, ContextEventMap>): this;
|
|
136
146
|
}
|
|
137
|
-
declare class
|
|
147
|
+
declare class AIGNEContextShared {
|
|
138
148
|
private readonly parent?;
|
|
139
149
|
constructor(parent?: (Pick<Context, "model" | "skills" | "limits"> & {
|
|
140
150
|
messageQueue?: MessageQueue;
|
|
141
|
-
}) | undefined);
|
|
151
|
+
}) | undefined, overrides?: Partial<Context>);
|
|
142
152
|
readonly messageQueue: MessageQueue;
|
|
143
153
|
readonly events: EventEmitter<ContextEventMap>;
|
|
144
154
|
get model(): ChatModel | undefined;
|
|
145
155
|
get skills(): Agent<Message, Message>[] | undefined;
|
|
146
156
|
get limits(): ContextLimits | undefined;
|
|
147
157
|
usage: ContextUsage;
|
|
158
|
+
userContext: Context["userContext"];
|
|
148
159
|
private abortController;
|
|
149
160
|
private timer?;
|
|
150
161
|
private initTimeout;
|
package/lib/cjs/aigne/context.js
CHANGED
|
@@ -19,13 +19,13 @@ const usage_js_1 = require("./usage.js");
|
|
|
19
19
|
* @hidden
|
|
20
20
|
*/
|
|
21
21
|
class AIGNEContext {
|
|
22
|
-
constructor(parent) {
|
|
22
|
+
constructor(...[parent, ...args]) {
|
|
23
23
|
if (parent instanceof AIGNEContext) {
|
|
24
24
|
this.parentId = parent.id;
|
|
25
25
|
this.internal = parent.internal;
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
this.internal = new
|
|
28
|
+
this.internal = new AIGNEContextShared(parent, ...args);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
parentId;
|
|
@@ -46,9 +46,15 @@ class AIGNEContext {
|
|
|
46
46
|
get usage() {
|
|
47
47
|
return this.internal.usage;
|
|
48
48
|
}
|
|
49
|
+
get userContext() {
|
|
50
|
+
return this.internal.userContext;
|
|
51
|
+
}
|
|
52
|
+
set userContext(userContext) {
|
|
53
|
+
this.internal.userContext = userContext;
|
|
54
|
+
}
|
|
49
55
|
newContext({ reset } = {}) {
|
|
50
56
|
if (reset)
|
|
51
|
-
return new AIGNEContext(this
|
|
57
|
+
return new AIGNEContext(this, { userContext: {} });
|
|
52
58
|
return new AIGNEContext(this);
|
|
53
59
|
}
|
|
54
60
|
invoke = ((agent, message, options) => {
|
|
@@ -57,6 +63,8 @@ class AIGNEContext {
|
|
|
57
63
|
message,
|
|
58
64
|
options,
|
|
59
65
|
});
|
|
66
|
+
if (options?.userContext)
|
|
67
|
+
Object.assign(this.userContext, options.userContext);
|
|
60
68
|
if ((0, type_utils_js_1.isNil)(message)) {
|
|
61
69
|
return user_agent_js_1.UserAgent.from({
|
|
62
70
|
context: this,
|
|
@@ -96,7 +104,9 @@ class AIGNEContext {
|
|
|
96
104
|
return stream;
|
|
97
105
|
});
|
|
98
106
|
});
|
|
99
|
-
publish = ((topic, payload) => {
|
|
107
|
+
publish = ((topic, payload, options) => {
|
|
108
|
+
if (options?.userContext)
|
|
109
|
+
Object.assign(this.userContext, options.userContext);
|
|
100
110
|
return this.internal.messageQueue.publish(topic, {
|
|
101
111
|
...(0, message_queue_js_1.toMessagePayload)(payload),
|
|
102
112
|
context: this,
|
|
@@ -132,11 +142,12 @@ class AIGNEContext {
|
|
|
132
142
|
}
|
|
133
143
|
}
|
|
134
144
|
exports.AIGNEContext = AIGNEContext;
|
|
135
|
-
class
|
|
145
|
+
class AIGNEContextShared {
|
|
136
146
|
parent;
|
|
137
|
-
constructor(parent) {
|
|
147
|
+
constructor(parent, overrides) {
|
|
138
148
|
this.parent = parent;
|
|
139
149
|
this.messageQueue = this.parent?.messageQueue ?? new message_queue_js_1.MessageQueue();
|
|
150
|
+
this.userContext = overrides?.userContext ?? {};
|
|
140
151
|
}
|
|
141
152
|
messageQueue;
|
|
142
153
|
events = new node_events_1.default();
|
|
@@ -150,6 +161,7 @@ class AIGNEContextInternal {
|
|
|
150
161
|
return this.parent?.limits;
|
|
151
162
|
}
|
|
152
163
|
usage = (0, usage_js_1.newEmptyContextUsage)();
|
|
164
|
+
userContext;
|
|
153
165
|
abortController = new AbortController();
|
|
154
166
|
timer;
|
|
155
167
|
initTimeout() {
|
|
@@ -174,7 +186,15 @@ class AIGNEContextInternal {
|
|
|
174
186
|
let output;
|
|
175
187
|
for (;;) {
|
|
176
188
|
const result = {};
|
|
177
|
-
|
|
189
|
+
if (options?.sourceAgent && activeAgent !== options.sourceAgent) {
|
|
190
|
+
options.sourceAgent.hooks.onHandoff?.({
|
|
191
|
+
context,
|
|
192
|
+
source: options.sourceAgent,
|
|
193
|
+
target: activeAgent,
|
|
194
|
+
input,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
const stream = await activeAgent.invoke(input, { ...options, context, streaming: true });
|
|
178
198
|
for await (const value of stream) {
|
|
179
199
|
if (value.delta.text) {
|
|
180
200
|
yield { delta: { text: value.delta.text } };
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export * from "./agents/agent.js";
|
|
2
2
|
export * from "./agents/ai-agent.js";
|
|
3
|
+
export * from "./agents/chat-model.js";
|
|
4
|
+
export * from "./agents/guide-rail-agent.js";
|
|
3
5
|
export * from "./agents/mcp-agent.js";
|
|
4
6
|
export * from "./agents/team-agent.js";
|
|
5
7
|
export * from "./agents/types.js";
|
|
6
8
|
export * from "./agents/user-agent.js";
|
|
7
9
|
export * from "./aigne/index.js";
|
|
8
|
-
export * from "./models/chat-model.js";
|
|
9
10
|
export * from "./prompt/prompt-builder.js";
|
|
10
11
|
export * from "./prompt/template.js";
|
package/lib/cjs/index.js
CHANGED
|
@@ -16,11 +16,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./agents/agent.js"), exports);
|
|
18
18
|
__exportStar(require("./agents/ai-agent.js"), exports);
|
|
19
|
+
__exportStar(require("./agents/chat-model.js"), exports);
|
|
20
|
+
__exportStar(require("./agents/guide-rail-agent.js"), exports);
|
|
19
21
|
__exportStar(require("./agents/mcp-agent.js"), exports);
|
|
20
22
|
__exportStar(require("./agents/team-agent.js"), exports);
|
|
21
23
|
__exportStar(require("./agents/types.js"), exports);
|
|
22
24
|
__exportStar(require("./agents/user-agent.js"), exports);
|
|
23
25
|
__exportStar(require("./aigne/index.js"), exports);
|
|
24
|
-
__exportStar(require("./models/chat-model.js"), exports);
|
|
25
26
|
__exportStar(require("./prompt/prompt-builder.js"), exports);
|
|
26
27
|
__exportStar(require("./prompt/template.js"), exports);
|
|
@@ -14,16 +14,16 @@ export declare function loadAgentFromYamlFile(path: string): Promise<{
|
|
|
14
14
|
}, {
|
|
15
15
|
[x: string]: any;
|
|
16
16
|
}> | undefined;
|
|
17
|
-
toolChoice?: AIAgentToolChoice | undefined;
|
|
18
17
|
outputSchema?: ZodObject<Record<string, ZodType<any, z.ZodTypeDef, any>>, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
19
18
|
[x: string]: any;
|
|
20
19
|
}, {
|
|
21
20
|
[x: string]: any;
|
|
22
21
|
}> | undefined;
|
|
23
22
|
outputKey?: string | undefined;
|
|
23
|
+
toolChoice?: AIAgentToolChoice | undefined;
|
|
24
24
|
} | {
|
|
25
25
|
type: "mcp";
|
|
26
26
|
url?: string | undefined;
|
|
27
|
-
command?: string | undefined;
|
|
28
27
|
args?: string[] | undefined;
|
|
28
|
+
command?: string | undefined;
|
|
29
29
|
}>;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
import type { Camelize } from "camelize-ts";
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
import { type Agent } from "../agents/agent.js";
|
|
3
|
-
import type { ChatModel, ChatModelOptions } from "../
|
|
4
|
+
import type { ChatModel, ChatModelOptions } from "../agents/chat-model.js";
|
|
4
5
|
export interface LoadOptions {
|
|
6
|
+
models: {
|
|
7
|
+
new (parameters: {
|
|
8
|
+
model?: string;
|
|
9
|
+
modelOptions?: ChatModelOptions;
|
|
10
|
+
}): ChatModel;
|
|
11
|
+
}[];
|
|
5
12
|
path: string;
|
|
6
13
|
}
|
|
7
14
|
export declare function load(options: LoadOptions): Promise<{
|
|
@@ -15,12 +22,12 @@ export declare function load(options: LoadOptions): Promise<{
|
|
|
15
22
|
temperature?: number | null | undefined;
|
|
16
23
|
provider?: string | null | undefined;
|
|
17
24
|
top_p?: number | null | undefined;
|
|
18
|
-
|
|
25
|
+
frequency_penalty?: number | null | undefined;
|
|
19
26
|
presence_penalty?: number | null | undefined;
|
|
20
27
|
} | null | undefined;
|
|
21
28
|
}>;
|
|
22
29
|
export declare function loadAgent(path: string): Promise<Agent>;
|
|
23
|
-
export declare function loadModel(model?: z.infer<typeof aigneFileSchema>["chat_model"]
|
|
30
|
+
export declare function loadModel(models: LoadOptions["models"], model?: Camelize<z.infer<typeof aigneFileSchema>["chat_model"]>, modelOptions?: ChatModelOptions): Promise<ChatModel | undefined>;
|
|
24
31
|
declare const aigneFileSchema: z.ZodObject<{
|
|
25
32
|
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26
33
|
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -29,35 +36,35 @@ declare const aigneFileSchema: z.ZodObject<{
|
|
|
29
36
|
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
37
|
temperature: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
31
38
|
top_p: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
32
|
-
|
|
39
|
+
frequency_penalty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
33
40
|
presence_penalty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
34
41
|
}, "strip", z.ZodTypeAny, {
|
|
35
42
|
name?: string | null | undefined;
|
|
36
43
|
temperature?: number | null | undefined;
|
|
37
44
|
provider?: string | null | undefined;
|
|
38
45
|
top_p?: number | null | undefined;
|
|
39
|
-
|
|
46
|
+
frequency_penalty?: number | null | undefined;
|
|
40
47
|
presence_penalty?: number | null | undefined;
|
|
41
48
|
}, {
|
|
42
49
|
name?: string | null | undefined;
|
|
43
50
|
temperature?: number | null | undefined;
|
|
44
51
|
provider?: string | null | undefined;
|
|
45
52
|
top_p?: number | null | undefined;
|
|
46
|
-
|
|
53
|
+
frequency_penalty?: number | null | undefined;
|
|
47
54
|
presence_penalty?: number | null | undefined;
|
|
48
55
|
}>]>>>, {
|
|
49
56
|
name?: string | null | undefined;
|
|
50
57
|
temperature?: number | null | undefined;
|
|
51
58
|
provider?: string | null | undefined;
|
|
52
59
|
top_p?: number | null | undefined;
|
|
53
|
-
|
|
60
|
+
frequency_penalty?: number | null | undefined;
|
|
54
61
|
presence_penalty?: number | null | undefined;
|
|
55
62
|
} | null | undefined, string | {
|
|
56
63
|
name?: string | null | undefined;
|
|
57
64
|
temperature?: number | null | undefined;
|
|
58
65
|
provider?: string | null | undefined;
|
|
59
66
|
top_p?: number | null | undefined;
|
|
60
|
-
|
|
67
|
+
frequency_penalty?: number | null | undefined;
|
|
61
68
|
presence_penalty?: number | null | undefined;
|
|
62
69
|
} | null | undefined>;
|
|
63
70
|
agents: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
|
|
@@ -71,7 +78,7 @@ declare const aigneFileSchema: z.ZodObject<{
|
|
|
71
78
|
temperature?: number | null | undefined;
|
|
72
79
|
provider?: string | null | undefined;
|
|
73
80
|
top_p?: number | null | undefined;
|
|
74
|
-
|
|
81
|
+
frequency_penalty?: number | null | undefined;
|
|
75
82
|
presence_penalty?: number | null | undefined;
|
|
76
83
|
} | null | undefined;
|
|
77
84
|
agents?: string[] | null | undefined;
|
|
@@ -84,7 +91,7 @@ declare const aigneFileSchema: z.ZodObject<{
|
|
|
84
91
|
temperature?: number | null | undefined;
|
|
85
92
|
provider?: string | null | undefined;
|
|
86
93
|
top_p?: number | null | undefined;
|
|
87
|
-
|
|
94
|
+
frequency_penalty?: number | null | undefined;
|
|
88
95
|
presence_penalty?: number | null | undefined;
|
|
89
96
|
} | null | undefined;
|
|
90
97
|
agents?: string[] | null | undefined;
|
|
@@ -98,7 +105,7 @@ export declare function loadAIGNEFile(path: string): Promise<{
|
|
|
98
105
|
temperature?: number | null | undefined;
|
|
99
106
|
provider?: string | null | undefined;
|
|
100
107
|
top_p?: number | null | undefined;
|
|
101
|
-
|
|
108
|
+
frequency_penalty?: number | null | undefined;
|
|
102
109
|
presence_penalty?: number | null | undefined;
|
|
103
110
|
} | null | undefined;
|
|
104
111
|
agents?: string[] | null | undefined;
|
package/lib/cjs/loader/index.js
CHANGED
|
@@ -11,14 +11,6 @@ const zod_1 = require("zod");
|
|
|
11
11
|
const agent_js_1 = require("../agents/agent.js");
|
|
12
12
|
const ai_agent_js_1 = require("../agents/ai-agent.js");
|
|
13
13
|
const mcp_agent_js_1 = require("../agents/mcp-agent.js");
|
|
14
|
-
const bedrock_chat_model_js_1 = require("../models/bedrock-chat-model.js");
|
|
15
|
-
const claude_chat_model_js_1 = require("../models/claude-chat-model.js");
|
|
16
|
-
const deepseek_chat_model_js_1 = require("../models/deepseek-chat-model.js");
|
|
17
|
-
const gemini_chat_model_js_1 = require("../models/gemini-chat-model.js");
|
|
18
|
-
const ollama_chat_model_js_1 = require("../models/ollama-chat-model.js");
|
|
19
|
-
const open_router_chat_model_js_1 = require("../models/open-router-chat-model.js");
|
|
20
|
-
const openai_chat_model_js_1 = require("../models/openai-chat-model.js");
|
|
21
|
-
const xai_chat_model_js_1 = require("../models/xai-chat-model.js");
|
|
22
14
|
const type_utils_js_1 = require("../utils/type-utils.js");
|
|
23
15
|
const agent_js_js_1 = require("./agent-js.js");
|
|
24
16
|
const agent_yaml_js_1 = require("./agent-yaml.js");
|
|
@@ -32,7 +24,7 @@ async function load(options) {
|
|
|
32
24
|
const skills = await Promise.all((aigne.skills ?? []).map((filename) => loadAgent((0, node_path_1.join)(rootDir, filename))));
|
|
33
25
|
return {
|
|
34
26
|
...aigne,
|
|
35
|
-
model: await loadModel(aigne.chat_model),
|
|
27
|
+
model: await loadModel(options.models, aigne.chat_model),
|
|
36
28
|
agents,
|
|
37
29
|
skills,
|
|
38
30
|
};
|
|
@@ -70,26 +62,15 @@ async function loadAgent(path) {
|
|
|
70
62
|
}
|
|
71
63
|
const { MODEL_PROVIDER, MODEL_NAME } = process.env;
|
|
72
64
|
const DEFAULT_MODEL_PROVIDER = "openai";
|
|
73
|
-
|
|
74
|
-
async function loadModel(model, modelOptions) {
|
|
65
|
+
async function loadModel(models, model, modelOptions) {
|
|
75
66
|
const params = {
|
|
76
|
-
model: MODEL_NAME ?? model?.name ??
|
|
67
|
+
model: MODEL_NAME ?? model?.name ?? undefined,
|
|
77
68
|
temperature: model?.temperature ?? undefined,
|
|
78
|
-
topP: model?.
|
|
79
|
-
frequencyPenalty: model?.
|
|
80
|
-
presencePenalty: model?.
|
|
69
|
+
topP: model?.topP ?? undefined,
|
|
70
|
+
frequencyPenalty: model?.frequencyPenalty ?? undefined,
|
|
71
|
+
presencePenalty: model?.presencePenalty ?? undefined,
|
|
81
72
|
};
|
|
82
|
-
const
|
|
83
|
-
openai_chat_model_js_1.OpenAIChatModel,
|
|
84
|
-
claude_chat_model_js_1.ClaudeChatModel,
|
|
85
|
-
xai_chat_model_js_1.XAIChatModel,
|
|
86
|
-
gemini_chat_model_js_1.GeminiChatModel,
|
|
87
|
-
deepseek_chat_model_js_1.DeepSeekChatModel,
|
|
88
|
-
open_router_chat_model_js_1.OpenRouterChatModel,
|
|
89
|
-
ollama_chat_model_js_1.OllamaChatModel,
|
|
90
|
-
bedrock_chat_model_js_1.BedrockChatModel,
|
|
91
|
-
];
|
|
92
|
-
const M = availableModels.find((m) => m.name
|
|
73
|
+
const M = models.find((m) => m.name
|
|
93
74
|
.toLowerCase()
|
|
94
75
|
.includes((MODEL_PROVIDER ?? model?.provider ?? DEFAULT_MODEL_PROVIDER).toLowerCase()));
|
|
95
76
|
if (!M)
|
|
@@ -107,7 +88,7 @@ const aigneFileSchema = zod_1.z.object({
|
|
|
107
88
|
name: zod_1.z.string().nullish(),
|
|
108
89
|
temperature: zod_1.z.number().min(0).max(2).nullish(),
|
|
109
90
|
top_p: zod_1.z.number().min(0).nullish(),
|
|
110
|
-
|
|
91
|
+
frequency_penalty: zod_1.z.number().min(-2).max(2).nullish(),
|
|
111
92
|
presence_penalty: zod_1.z.number().min(-2).max(2).nullish(),
|
|
112
93
|
}),
|
|
113
94
|
])
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AgentInvokeOptions } from "../../../agents/agent.js";
|
|
2
|
+
import "sqlite3";
|
|
3
|
+
import { Sequelize } from "sequelize";
|
|
4
|
+
import type { Context } from "../../../aigne/context.js";
|
|
5
|
+
import type { PromiseOrValue } from "../../../utils/type-utils.js";
|
|
6
|
+
import type { Memory } from "../../memory.js";
|
|
7
|
+
import { MemoryStorage } from "../storage.js";
|
|
8
|
+
export interface DefaultMemoryStorageOptions {
|
|
9
|
+
path?: string;
|
|
10
|
+
getSessionId?: (context: Context) => PromiseOrValue<string>;
|
|
11
|
+
}
|
|
12
|
+
export declare class DefaultMemoryStorage extends MemoryStorage {
|
|
13
|
+
options?: DefaultMemoryStorageOptions | undefined;
|
|
14
|
+
memories: {
|
|
15
|
+
[groupId: string]: Memory[];
|
|
16
|
+
};
|
|
17
|
+
constructor(options?: DefaultMemoryStorageOptions | undefined);
|
|
18
|
+
private _models?;
|
|
19
|
+
private get models();
|
|
20
|
+
private convertMemory;
|
|
21
|
+
search(query: {
|
|
22
|
+
limit?: number;
|
|
23
|
+
}, { context }: AgentInvokeOptions): Promise<{
|
|
24
|
+
result: Memory[];
|
|
25
|
+
}>;
|
|
26
|
+
create(memory: Pick<Memory, "content">, { context }: AgentInvokeOptions): Promise<{
|
|
27
|
+
result: Memory;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
export declare function initSequelize(path?: string): Sequelize;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultMemoryStorage = void 0;
|
|
4
|
+
exports.initSequelize = initSequelize;
|
|
5
|
+
require("sqlite3");
|
|
6
|
+
const sequelize_1 = require("sequelize");
|
|
7
|
+
const logger_js_1 = require("../../../utils/logger.js");
|
|
8
|
+
const storage_js_1 = require("../storage.js");
|
|
9
|
+
const migrate_js_1 = require("./migrate.js");
|
|
10
|
+
const memory_js_1 = require("./models/memory.js");
|
|
11
|
+
const DEFAULT_MAX_MEMORY_COUNT = 10;
|
|
12
|
+
class DefaultMemoryStorage extends storage_js_1.MemoryStorage {
|
|
13
|
+
options;
|
|
14
|
+
memories = {};
|
|
15
|
+
constructor(options) {
|
|
16
|
+
super();
|
|
17
|
+
this.options = options;
|
|
18
|
+
}
|
|
19
|
+
_models;
|
|
20
|
+
get models() {
|
|
21
|
+
this._models ??= (async () => {
|
|
22
|
+
const sequelize = initSequelize(this.options?.path);
|
|
23
|
+
await (0, migrate_js_1.migrate)(sequelize);
|
|
24
|
+
return {
|
|
25
|
+
Memory: (0, memory_js_1.initMemoryModel)(sequelize),
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
return this._models;
|
|
29
|
+
}
|
|
30
|
+
convertMemory(m) {
|
|
31
|
+
return {
|
|
32
|
+
id: m.id,
|
|
33
|
+
sessionId: m.sessionId,
|
|
34
|
+
content: m.content,
|
|
35
|
+
createdAt: m.createdAt.toISOString(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async search(query, { context }) {
|
|
39
|
+
const { limit = DEFAULT_MAX_MEMORY_COUNT } = query;
|
|
40
|
+
const sessionId = (await this.options?.getSessionId?.(context)) ?? null;
|
|
41
|
+
const { Memory } = await this.models;
|
|
42
|
+
const memories = await Memory.findAll({
|
|
43
|
+
where: { sessionId },
|
|
44
|
+
order: [["id", "DESC"]],
|
|
45
|
+
limit,
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
result: memories.reverse().map(this.convertMemory),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async create(memory, { context }) {
|
|
52
|
+
const sessionId = (await this.options?.getSessionId?.(context)) ?? null;
|
|
53
|
+
const { Memory } = await this.models;
|
|
54
|
+
const m = await Memory.create({
|
|
55
|
+
...memory,
|
|
56
|
+
sessionId,
|
|
57
|
+
});
|
|
58
|
+
return { result: this.convertMemory(m) };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DefaultMemoryStorage = DefaultMemoryStorage;
|
|
62
|
+
function initSequelize(path) {
|
|
63
|
+
const sequelize = new sequelize_1.Sequelize({
|
|
64
|
+
logging: (sql) => logger_js_1.logger.debug(sql),
|
|
65
|
+
storage: path,
|
|
66
|
+
dialect: "sqlite",
|
|
67
|
+
});
|
|
68
|
+
return sequelize;
|
|
69
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Sequelize } from "sequelize";
|
|
2
|
+
import { type MigrateDownOptions, type MigrateUpOptions } from "umzug";
|
|
3
|
+
export declare const migrate: (sequelize: Sequelize, { type, upOptions, downOptions, }?: {
|
|
4
|
+
type?: "up" | "down";
|
|
5
|
+
upOptions?: MigrateUpOptions;
|
|
6
|
+
downOptions?: MigrateDownOptions;
|
|
7
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.migrate = void 0;
|
|
37
|
+
const umzug_1 = require("umzug");
|
|
38
|
+
const init = __importStar(require("./migrations/20250523165801-init.js"));
|
|
39
|
+
const migrate = async (sequelize, { type = "up", upOptions, downOptions, } = {}) => {
|
|
40
|
+
const umzug = new umzug_1.Umzug({
|
|
41
|
+
migrations: [{ ...init, name: "20241224202701-init" }],
|
|
42
|
+
context: sequelize.getQueryInterface(),
|
|
43
|
+
storage: new umzug_1.SequelizeStorage({ sequelize }),
|
|
44
|
+
logger: console,
|
|
45
|
+
});
|
|
46
|
+
if (type === "down") {
|
|
47
|
+
await umzug.down(downOptions);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
await umzug.up(upOptions);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.migrate = migrate;
|
package/lib/cjs/memory/default-memory/default-memory-storage/migrations/20250523165801-init.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type QueryInterface } from "sequelize";
|
|
2
|
+
export declare const up: ({ context: queryInterface }: {
|
|
3
|
+
context: QueryInterface;
|
|
4
|
+
}) => Promise<void>;
|
|
5
|
+
export declare const down: ({ context: queryInterface }: {
|
|
6
|
+
context: QueryInterface;
|
|
7
|
+
}) => Promise<void>;
|
package/lib/cjs/memory/default-memory/default-memory-storage/migrations/20250523165801-init.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const up = async ({ context: queryInterface }) => {
|
|
6
|
+
await queryInterface.createTable("Memories", {
|
|
7
|
+
id: {
|
|
8
|
+
type: sequelize_1.DataTypes.STRING,
|
|
9
|
+
primaryKey: true,
|
|
10
|
+
allowNull: false,
|
|
11
|
+
},
|
|
12
|
+
createdAt: {
|
|
13
|
+
type: sequelize_1.DataTypes.DATE,
|
|
14
|
+
allowNull: false,
|
|
15
|
+
},
|
|
16
|
+
updatedAt: {
|
|
17
|
+
type: sequelize_1.DataTypes.DATE,
|
|
18
|
+
allowNull: false,
|
|
19
|
+
},
|
|
20
|
+
sessionId: {
|
|
21
|
+
type: sequelize_1.DataTypes.STRING,
|
|
22
|
+
},
|
|
23
|
+
content: {
|
|
24
|
+
type: sequelize_1.DataTypes.JSON,
|
|
25
|
+
allowNull: false,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.up = up;
|
|
30
|
+
const down = async ({ context: queryInterface }) => {
|
|
31
|
+
await queryInterface.dropTable("Memories");
|
|
32
|
+
};
|
|
33
|
+
exports.down = down;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type CreationOptional, type InferAttributes, type InferCreationAttributes, Model } from "sequelize";
|
|
2
|
+
import type { ModelStatic, Sequelize } from "sequelize";
|
|
3
|
+
export interface Memory extends Model<InferAttributes<Memory>, InferCreationAttributes<Memory>> {
|
|
4
|
+
id: CreationOptional<string>;
|
|
5
|
+
createdAt: CreationOptional<Date>;
|
|
6
|
+
updatedAt: CreationOptional<Date>;
|
|
7
|
+
sessionId?: string | null;
|
|
8
|
+
content: unknown;
|
|
9
|
+
}
|
|
10
|
+
export declare function initMemoryModel(sequelize: Sequelize): ModelStatic<Memory>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initMemoryModel = initMemoryModel;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const nextId = () => (0, uuid_1.v7)();
|
|
7
|
+
function initMemoryModel(sequelize) {
|
|
8
|
+
return class Memory extends sequelize_1.Model {
|
|
9
|
+
}.init({
|
|
10
|
+
id: {
|
|
11
|
+
type: sequelize_1.DataTypes.STRING,
|
|
12
|
+
primaryKey: true,
|
|
13
|
+
allowNull: false,
|
|
14
|
+
defaultValue: nextId,
|
|
15
|
+
},
|
|
16
|
+
createdAt: {
|
|
17
|
+
type: sequelize_1.DataTypes.DATE,
|
|
18
|
+
allowNull: false,
|
|
19
|
+
},
|
|
20
|
+
updatedAt: {
|
|
21
|
+
type: sequelize_1.DataTypes.DATE,
|
|
22
|
+
allowNull: false,
|
|
23
|
+
},
|
|
24
|
+
sessionId: {
|
|
25
|
+
type: sequelize_1.DataTypes.STRING,
|
|
26
|
+
},
|
|
27
|
+
content: {
|
|
28
|
+
type: sequelize_1.DataTypes.JSON,
|
|
29
|
+
allowNull: false,
|
|
30
|
+
},
|
|
31
|
+
}, { sequelize });
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MemoryAgent, type MemoryAgentOptions } from "../memory.js";
|
|
2
|
+
import { type DefaultMemoryStorageOptions } from "./default-memory-storage/index.js";
|
|
3
|
+
import { MemoryStorage } from "./storage.js";
|
|
4
|
+
export interface DefaultMemoryOptions extends Partial<MemoryAgentOptions> {
|
|
5
|
+
storage?: MemoryStorage | DefaultMemoryStorageOptions;
|
|
6
|
+
}
|
|
7
|
+
export declare class DefaultMemory extends MemoryAgent {
|
|
8
|
+
constructor(options?: DefaultMemoryOptions);
|
|
9
|
+
storage: MemoryStorage;
|
|
10
|
+
}
|