actoviq-agent-sdk 0.1.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.
Files changed (98) hide show
  1. package/LICENSE +21 -0
  2. package/README-zh.md +422 -0
  3. package/README.md +415 -0
  4. package/dist/src/config/loadActoviqSettings.d.ts +8 -0
  5. package/dist/src/config/loadActoviqSettings.d.ts.map +1 -0
  6. package/dist/src/config/loadActoviqSettings.js +11 -0
  7. package/dist/src/config/loadActoviqSettings.js.map +1 -0
  8. package/dist/src/config/loadDefaultActoviqSettings.d.ts +7 -0
  9. package/dist/src/config/loadDefaultActoviqSettings.d.ts.map +1 -0
  10. package/dist/src/config/loadDefaultActoviqSettings.js +27 -0
  11. package/dist/src/config/loadDefaultActoviqSettings.js.map +1 -0
  12. package/dist/src/config/loadJsonConfigFile.d.ts +8 -0
  13. package/dist/src/config/loadJsonConfigFile.d.ts.map +1 -0
  14. package/dist/src/config/loadJsonConfigFile.js +48 -0
  15. package/dist/src/config/loadJsonConfigFile.js.map +1 -0
  16. package/dist/src/config/resolveRuntimeConfig.d.ts +3 -0
  17. package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -0
  18. package/dist/src/config/resolveRuntimeConfig.js +64 -0
  19. package/dist/src/config/resolveRuntimeConfig.js.map +1 -0
  20. package/dist/src/errors.d.ts +35 -0
  21. package/dist/src/errors.d.ts.map +1 -0
  22. package/dist/src/errors.js +40 -0
  23. package/dist/src/errors.js.map +1 -0
  24. package/dist/src/index.d.ts +20 -0
  25. package/dist/src/index.d.ts.map +1 -0
  26. package/dist/src/index.js +25 -0
  27. package/dist/src/index.js.map +1 -0
  28. package/dist/src/mcp/connectionManager.d.ts +14 -0
  29. package/dist/src/mcp/connectionManager.d.ts.map +1 -0
  30. package/dist/src/mcp/connectionManager.js +172 -0
  31. package/dist/src/mcp/connectionManager.js.map +1 -0
  32. package/dist/src/parity/actoviqBridgeSdk.d.ts +64 -0
  33. package/dist/src/parity/actoviqBridgeSdk.d.ts.map +1 -0
  34. package/dist/src/parity/actoviqBridgeSdk.js +841 -0
  35. package/dist/src/parity/actoviqBridgeSdk.js.map +1 -0
  36. package/dist/src/parity/actoviqFileTools.d.ts +9 -0
  37. package/dist/src/parity/actoviqFileTools.d.ts.map +1 -0
  38. package/dist/src/parity/actoviqFileTools.js +426 -0
  39. package/dist/src/parity/actoviqFileTools.js.map +1 -0
  40. package/dist/src/parity/actoviqTranscripts.d.ts +40 -0
  41. package/dist/src/parity/actoviqTranscripts.d.ts.map +1 -0
  42. package/dist/src/parity/actoviqTranscripts.js +155 -0
  43. package/dist/src/parity/actoviqTranscripts.js.map +1 -0
  44. package/dist/src/parity/portableSessions.d.ts +35 -0
  45. package/dist/src/parity/portableSessions.d.ts.map +1 -0
  46. package/dist/src/parity/portableSessions.js +233 -0
  47. package/dist/src/parity/portableSessions.js.map +1 -0
  48. package/dist/src/provider/client.d.ts +54 -0
  49. package/dist/src/provider/client.d.ts.map +1 -0
  50. package/dist/src/provider/client.js +397 -0
  51. package/dist/src/provider/client.js.map +1 -0
  52. package/dist/src/provider/types.d.ts +137 -0
  53. package/dist/src/provider/types.d.ts.map +1 -0
  54. package/dist/src/provider/types.js +2 -0
  55. package/dist/src/provider/types.js.map +1 -0
  56. package/dist/src/runtime/actoviqModelApi.d.ts +10 -0
  57. package/dist/src/runtime/actoviqModelApi.d.ts.map +1 -0
  58. package/dist/src/runtime/actoviqModelApi.js +26 -0
  59. package/dist/src/runtime/actoviqModelApi.js.map +1 -0
  60. package/dist/src/runtime/agentClient.d.ts +37 -0
  61. package/dist/src/runtime/agentClient.d.ts.map +1 -0
  62. package/dist/src/runtime/agentClient.js +212 -0
  63. package/dist/src/runtime/agentClient.js.map +1 -0
  64. package/dist/src/runtime/agentSession.d.ts +32 -0
  65. package/dist/src/runtime/agentSession.d.ts.map +1 -0
  66. package/dist/src/runtime/agentSession.js +68 -0
  67. package/dist/src/runtime/agentSession.js.map +1 -0
  68. package/dist/src/runtime/asyncQueue.d.ts +23 -0
  69. package/dist/src/runtime/asyncQueue.d.ts.map +1 -0
  70. package/dist/src/runtime/asyncQueue.js +87 -0
  71. package/dist/src/runtime/asyncQueue.js.map +1 -0
  72. package/dist/src/runtime/conversationEngine.d.ts +26 -0
  73. package/dist/src/runtime/conversationEngine.d.ts.map +1 -0
  74. package/dist/src/runtime/conversationEngine.js +234 -0
  75. package/dist/src/runtime/conversationEngine.js.map +1 -0
  76. package/dist/src/runtime/helpers.d.ts +10 -0
  77. package/dist/src/runtime/helpers.d.ts.map +1 -0
  78. package/dist/src/runtime/helpers.js +44 -0
  79. package/dist/src/runtime/helpers.js.map +1 -0
  80. package/dist/src/runtime/messageUtils.d.ts +8 -0
  81. package/dist/src/runtime/messageUtils.d.ts.map +1 -0
  82. package/dist/src/runtime/messageUtils.js +79 -0
  83. package/dist/src/runtime/messageUtils.js.map +1 -0
  84. package/dist/src/runtime/tools.d.ts +10 -0
  85. package/dist/src/runtime/tools.d.ts.map +1 -0
  86. package/dist/src/runtime/tools.js +120 -0
  87. package/dist/src/runtime/tools.js.map +1 -0
  88. package/dist/src/storage/sessionStore.d.ts +16 -0
  89. package/dist/src/storage/sessionStore.d.ts.map +1 -0
  90. package/dist/src/storage/sessionStore.js +120 -0
  91. package/dist/src/storage/sessionStore.js.map +1 -0
  92. package/dist/src/types.d.ts +434 -0
  93. package/dist/src/types.d.ts.map +1 -0
  94. package/dist/src/types.js +2 -0
  95. package/dist/src/types.js.map +1 -0
  96. package/package.json +68 -0
  97. package/vendor/actoviq-runtime/cli.js +37 -0
  98. package/vendor/actoviq-runtime/runtime.bundle.br +0 -0
@@ -0,0 +1,212 @@
1
+ import { resolveRuntimeConfig } from '../config/resolveRuntimeConfig.js';
2
+ import { McpConnectionManager } from '../mcp/connectionManager.js';
3
+ import { SessionStore } from '../storage/sessionStore.js';
4
+ import { createActoviqModelApi } from './actoviqModelApi.js';
5
+ import { AgentRunStream } from './asyncQueue.js';
6
+ import { executeConversation } from './conversationEngine.js';
7
+ import { asError, createId, deepClone, nowIso, truncateText } from './helpers.js';
8
+ import { extractTextFromContent } from './messageUtils.js';
9
+ import { AgentSession } from './agentSession.js';
10
+ export class AgentSessionsApi {
11
+ store;
12
+ resumeSession;
13
+ constructor(store, resumeSession) {
14
+ this.store = store;
15
+ this.resumeSession = resumeSession;
16
+ }
17
+ list() {
18
+ return this.store.list();
19
+ }
20
+ get(sessionId) {
21
+ return this.resumeSession(sessionId);
22
+ }
23
+ delete(sessionId) {
24
+ return this.store.delete(sessionId);
25
+ }
26
+ }
27
+ export class ActoviqAgentClient {
28
+ config;
29
+ store;
30
+ modelApi;
31
+ mcpManager;
32
+ defaultTools;
33
+ defaultMcpServers;
34
+ sessions;
35
+ constructor(config, store, modelApi, mcpManager, defaultTools, defaultMcpServers) {
36
+ this.config = config;
37
+ this.store = store;
38
+ this.modelApi = modelApi;
39
+ this.mcpManager = mcpManager;
40
+ this.defaultTools = defaultTools;
41
+ this.defaultMcpServers = defaultMcpServers;
42
+ this.sessions = new AgentSessionsApi(this.store, (sessionId) => this.resumeSession(sessionId));
43
+ }
44
+ static async create(options = {}) {
45
+ const config = await resolveRuntimeConfig(options);
46
+ const store = new SessionStore(config.sessionDirectory);
47
+ const modelApi = options.modelApi ?? createActoviqModelApi(config);
48
+ const mcpManager = new McpConnectionManager({
49
+ name: config.clientName,
50
+ version: config.clientVersion,
51
+ });
52
+ return new ActoviqAgentClient(config, store, modelApi, mcpManager, [...(options.tools ?? [])], [...(options.mcpServers ?? [])]);
53
+ }
54
+ async run(input, options = {}) {
55
+ const runId = createId();
56
+ return this.executeRun(runId, input, options);
57
+ }
58
+ stream(input, options = {}) {
59
+ const runId = createId();
60
+ return new AgentRunStream(async (controller) => {
61
+ try {
62
+ const result = await this.executeRun(runId, input, options, undefined, true, controller.emit);
63
+ controller.emit({
64
+ type: 'response.completed',
65
+ runId,
66
+ result,
67
+ timestamp: result.completedAt,
68
+ });
69
+ return result;
70
+ }
71
+ catch (error) {
72
+ const normalized = asError(error);
73
+ controller.emit({
74
+ type: 'error',
75
+ runId,
76
+ error: {
77
+ message: normalized.message,
78
+ code: normalized.code,
79
+ stack: normalized.stack,
80
+ },
81
+ timestamp: nowIso(),
82
+ });
83
+ throw error;
84
+ }
85
+ });
86
+ }
87
+ async createSession(options = {}) {
88
+ const stored = await this.store.create({
89
+ title: options.title,
90
+ systemPrompt: options.systemPrompt ?? this.config.systemPrompt,
91
+ model: options.model ?? this.config.model,
92
+ tags: options.tags,
93
+ metadata: options.metadata,
94
+ initialMessages: options.initialMessages,
95
+ });
96
+ return this.hydrateSession(stored);
97
+ }
98
+ async resumeSession(sessionId) {
99
+ const stored = await this.store.load(sessionId);
100
+ return this.hydrateSession(stored);
101
+ }
102
+ async close() {
103
+ await this.mcpManager.closeAll();
104
+ }
105
+ hydrateSession(stored) {
106
+ return new AgentSession({
107
+ runSession: (session, input, options) => this.runOnSession(session, input, options),
108
+ streamSession: (session, input, options) => this.streamOnSession(session, input, options),
109
+ hydrate: (next) => this.hydrateSession(next),
110
+ }, this.store, stored);
111
+ }
112
+ async runOnSession(session, input, options = {}) {
113
+ const runId = createId();
114
+ const snapshot = session.snapshot();
115
+ const result = await this.executeRun(runId, input, options, snapshot);
116
+ await this.persistSessionAfterRun(session, snapshot, input, result, options);
117
+ return result;
118
+ }
119
+ streamOnSession(session, input, options = {}) {
120
+ const runId = createId();
121
+ const snapshot = session.snapshot();
122
+ return new AgentRunStream(async (controller) => {
123
+ try {
124
+ const result = await this.executeRun(runId, input, options, snapshot, true, controller.emit);
125
+ await this.persistSessionAfterRun(session, snapshot, input, result, options);
126
+ controller.emit({
127
+ type: 'response.completed',
128
+ runId,
129
+ result,
130
+ timestamp: result.completedAt,
131
+ });
132
+ return result;
133
+ }
134
+ catch (error) {
135
+ const normalized = asError(error);
136
+ controller.emit({
137
+ type: 'error',
138
+ runId,
139
+ error: {
140
+ message: normalized.message,
141
+ code: normalized.code,
142
+ stack: normalized.stack,
143
+ },
144
+ timestamp: nowIso(),
145
+ });
146
+ throw error;
147
+ }
148
+ });
149
+ }
150
+ async executeRun(runId, input, options, session, streaming = false, emit) {
151
+ const metadata = {
152
+ ...this.config.metadata,
153
+ ...(session?.metadata ?? {}),
154
+ ...(options.metadata ?? {}),
155
+ };
156
+ return executeConversation({
157
+ runId,
158
+ input,
159
+ messages: session?.messages,
160
+ sessionId: session?.id,
161
+ systemPrompt: options.systemPrompt ?? session?.systemPrompt ?? this.config.systemPrompt,
162
+ tools: [...this.defaultTools, ...(options.tools ?? [])],
163
+ mcpServers: [...this.defaultMcpServers, ...(options.mcpServers ?? [])],
164
+ model: options.model ?? session?.model ?? this.config.model,
165
+ maxTokens: options.maxTokens,
166
+ temperature: options.temperature,
167
+ toolChoice: options.toolChoice,
168
+ userId: options.userId ?? this.config.userId,
169
+ metadata,
170
+ signal: options.signal,
171
+ streaming,
172
+ emit,
173
+ modelApi: this.modelApi,
174
+ config: this.config,
175
+ mcpManager: this.mcpManager,
176
+ });
177
+ }
178
+ async persistSessionAfterRun(session, snapshot, input, result, options) {
179
+ const next = deepClone(snapshot);
180
+ next.model = result.model;
181
+ next.systemPrompt = options.systemPrompt ?? next.systemPrompt;
182
+ next.messages = deepClone(result.messages);
183
+ next.updatedAt = result.completedAt;
184
+ next.lastRunAt = result.completedAt;
185
+ next.metadata = {
186
+ ...next.metadata,
187
+ ...(options.metadata ?? {}),
188
+ };
189
+ next.runs.push({
190
+ runId: result.runId,
191
+ input: typeof input === 'string' ? input : extractTextFromContent(input),
192
+ text: result.text,
193
+ stopReason: result.stopReason,
194
+ createdAt: result.startedAt,
195
+ completedAt: result.completedAt,
196
+ toolCallCount: result.toolCalls.length,
197
+ usage: result.usage,
198
+ });
199
+ if (next.titleSource === 'auto' && next.runs.length === 1) {
200
+ const candidate = truncateText(typeof input === 'string' ? input : extractTextFromContent(input), 80);
201
+ if (candidate) {
202
+ next.title = candidate;
203
+ }
204
+ }
205
+ await this.store.save(next);
206
+ session.replace(next);
207
+ }
208
+ }
209
+ export async function createAgentSdk(options = {}) {
210
+ return ActoviqAgentClient.create(options);
211
+ }
212
+ //# sourceMappingURL=agentClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentClient.js","sourceRoot":"","sources":["../../../src/runtime/agentClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { MessageParam } from '../provider/types.js';
2
+ import type { AgentRunOptions, AgentRunResult, SessionForkOptions, StoredSession } from '../types.js';
3
+ import type { SessionStore } from '../storage/sessionStore.js';
4
+ import { AgentRunStream } from './asyncQueue.js';
5
+ interface AgentSessionBindings {
6
+ runSession: (session: AgentSession, input: string | MessageParam['content'], options?: AgentRunOptions) => Promise<AgentRunResult>;
7
+ streamSession: (session: AgentSession, input: string | MessageParam['content'], options?: AgentRunOptions) => AgentRunStream;
8
+ hydrate: (stored: StoredSession) => AgentSession;
9
+ }
10
+ export declare class AgentSession {
11
+ private readonly bindings;
12
+ private readonly store;
13
+ private stored;
14
+ constructor(bindings: AgentSessionBindings, store: SessionStore, stored: StoredSession);
15
+ get id(): string;
16
+ get title(): string;
17
+ get model(): string;
18
+ get messages(): MessageParam[];
19
+ get metadata(): Record<string, unknown>;
20
+ get tags(): string[];
21
+ snapshot(): StoredSession;
22
+ send(input: string | MessageParam['content'], options?: AgentRunOptions): Promise<AgentRunResult>;
23
+ stream(input: string | MessageParam['content'], options?: AgentRunOptions): AgentRunStream;
24
+ rename(title: string): Promise<void>;
25
+ setTags(tags: string[]): Promise<void>;
26
+ mergeMetadata(metadata: Record<string, unknown>): Promise<void>;
27
+ delete(): Promise<void>;
28
+ fork(options?: SessionForkOptions): Promise<AgentSession>;
29
+ replace(next: StoredSession): void;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=agentSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentSession.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,UAAU,oBAAoB;IAC5B,UAAU,EAAE,CACV,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,EACvC,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,aAAa,EAAE,CACb,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,EACvC,OAAO,CAAC,EAAE,eAAe,KACtB,cAAc,CAAC;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC;CAClD;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,MAAM;gBAFG,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,YAAY,EAC5B,MAAM,EAAE,aAAa;IAG/B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,QAAQ,IAAI,YAAY,EAAE,CAE7B;IAED,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEtC;IAED,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAED,QAAQ,IAAI,aAAa;IAInB,IAAI,CACR,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,EACvC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC;IAI1B,MAAM,CACJ,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,EACvC,OAAO,GAAE,eAAoB,GAC5B,cAAc;IAIX,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAKnE,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;CAGnC"}
@@ -0,0 +1,68 @@
1
+ import { deepClone } from './helpers.js';
2
+ export class AgentSession {
3
+ bindings;
4
+ store;
5
+ stored;
6
+ constructor(bindings, store, stored) {
7
+ this.bindings = bindings;
8
+ this.store = store;
9
+ this.stored = stored;
10
+ }
11
+ get id() {
12
+ return this.stored.id;
13
+ }
14
+ get title() {
15
+ return this.stored.title;
16
+ }
17
+ get model() {
18
+ return this.stored.model;
19
+ }
20
+ get messages() {
21
+ return deepClone(this.stored.messages);
22
+ }
23
+ get metadata() {
24
+ return { ...this.stored.metadata };
25
+ }
26
+ get tags() {
27
+ return [...this.stored.tags];
28
+ }
29
+ snapshot() {
30
+ return deepClone(this.stored);
31
+ }
32
+ async send(input, options = {}) {
33
+ return this.bindings.runSession(this, input, options);
34
+ }
35
+ stream(input, options = {}) {
36
+ return this.bindings.streamSession(this, input, options);
37
+ }
38
+ async rename(title) {
39
+ this.stored.title = title;
40
+ this.stored.titleSource = 'manual';
41
+ this.stored.updatedAt = new Date().toISOString();
42
+ await this.store.save(this.stored);
43
+ }
44
+ async setTags(tags) {
45
+ this.stored.tags = [...tags];
46
+ this.stored.updatedAt = new Date().toISOString();
47
+ await this.store.save(this.stored);
48
+ }
49
+ async mergeMetadata(metadata) {
50
+ this.stored.metadata = {
51
+ ...this.stored.metadata,
52
+ ...metadata,
53
+ };
54
+ this.stored.updatedAt = new Date().toISOString();
55
+ await this.store.save(this.stored);
56
+ }
57
+ async delete() {
58
+ await this.store.delete(this.stored.id);
59
+ }
60
+ async fork(options = {}) {
61
+ const next = await this.store.fork(this.stored.id, options);
62
+ return this.bindings.hydrate(next);
63
+ }
64
+ replace(next) {
65
+ this.stored = next;
66
+ }
67
+ }
68
+ //# sourceMappingURL=agentSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentSession.js","sourceRoot":"","sources":["../../../src/runtime/agentSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { AgentEvent, AgentRunResult } from '../types.js';
2
+ export declare class AsyncQueue<T> implements AsyncIterable<T> {
3
+ private readonly values;
4
+ private readonly resolvers;
5
+ private readonly rejecters;
6
+ private closed;
7
+ private failure?;
8
+ push(value: T): void;
9
+ close(): void;
10
+ fail(error: unknown): void;
11
+ [Symbol.asyncIterator](): AsyncIterator<T>;
12
+ }
13
+ export declare class AgentRunStream implements AsyncIterable<AgentEvent> {
14
+ private readonly queue;
15
+ readonly result: Promise<AgentRunResult>;
16
+ constructor(executor: (controller: {
17
+ emit: (event: AgentEvent) => void;
18
+ fail: (error: unknown) => void;
19
+ close: () => void;
20
+ }) => Promise<AgentRunResult>);
21
+ [Symbol.asyncIterator](): AsyncIterator<AgentEvent>;
22
+ }
23
+ //# sourceMappingURL=asyncQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncQueue.d.ts","sourceRoot":"","sources":["../../../src/runtime/asyncQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI9D,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAU;IAE1B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAapB,KAAK,IAAI,IAAI;IAYb,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAa1B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CAmB3C;AAED,qBAAa,cAAe,YAAW,aAAa,CAAC,UAAU,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;gBAGvC,QAAQ,EAAE,CAAC,UAAU,EAAE;QACrB,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,KAAK,OAAO,CAAC,cAAc,CAAC;IAkB/B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC;CAGpD"}
@@ -0,0 +1,87 @@
1
+ export class AsyncQueue {
2
+ values = [];
3
+ resolvers = [];
4
+ rejecters = [];
5
+ closed = false;
6
+ failure;
7
+ push(value) {
8
+ if (this.closed) {
9
+ throw new Error('AsyncQueue is closed.');
10
+ }
11
+ const resolve = this.resolvers.shift();
12
+ this.rejecters.shift();
13
+ if (resolve) {
14
+ resolve({ value, done: false });
15
+ return;
16
+ }
17
+ this.values.push(value);
18
+ }
19
+ close() {
20
+ if (this.closed) {
21
+ return;
22
+ }
23
+ this.closed = true;
24
+ while (this.resolvers.length > 0) {
25
+ const resolve = this.resolvers.shift();
26
+ this.rejecters.shift();
27
+ resolve?.({ value: undefined, done: true });
28
+ }
29
+ }
30
+ fail(error) {
31
+ if (this.closed) {
32
+ return;
33
+ }
34
+ this.closed = true;
35
+ this.failure = error;
36
+ while (this.rejecters.length > 0) {
37
+ const reject = this.rejecters.shift();
38
+ this.resolvers.shift();
39
+ reject?.(error);
40
+ }
41
+ }
42
+ [Symbol.asyncIterator]() {
43
+ return {
44
+ next: async () => {
45
+ if (this.values.length > 0) {
46
+ return { value: this.values.shift(), done: false };
47
+ }
48
+ if (this.closed) {
49
+ if (this.failure !== undefined) {
50
+ throw this.failure;
51
+ }
52
+ return { value: undefined, done: true };
53
+ }
54
+ return new Promise((resolve, reject) => {
55
+ this.resolvers.push(resolve);
56
+ this.rejecters.push(reject);
57
+ });
58
+ },
59
+ };
60
+ }
61
+ }
62
+ export class AgentRunStream {
63
+ queue = new AsyncQueue();
64
+ result;
65
+ constructor(executor) {
66
+ this.result = (async () => {
67
+ try {
68
+ return await executor({
69
+ emit: (event) => this.queue.push(event),
70
+ fail: (error) => this.queue.fail(error),
71
+ close: () => this.queue.close(),
72
+ });
73
+ }
74
+ catch (error) {
75
+ this.queue.fail(error);
76
+ throw error;
77
+ }
78
+ finally {
79
+ this.queue.close();
80
+ }
81
+ })();
82
+ }
83
+ [Symbol.asyncIterator]() {
84
+ return this.queue[Symbol.asyncIterator]();
85
+ }
86
+ }
87
+ //# sourceMappingURL=asyncQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncQueue.js","sourceRoot":"","sources":["../../../src/runtime/asyncQueue.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,UAAU;IACJ,MAAM,GAAQ,EAAE,CAAC;IACjB,SAAS,GAA2C,EAAE,CAAC;IACvD,SAAS,GAAoC,EAAE,CAAC;IACzD,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,CAAW;IAE1B,IAAI,CAAC,KAAQ;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAc;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,KAAK,IAA6B,EAAE;gBACxC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC1D,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC/B,MAAM,IAAI,CAAC,OAAO,CAAC;oBACrB,CAAC;oBACD,OAAO,EAAE,KAAK,EAAE,SAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACnD,CAAC;gBACD,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IACR,KAAK,GAAG,IAAI,UAAU,EAAc,CAAC;IAC7C,MAAM,CAA0B;IAEzC,YACE,QAI6B;QAE7B,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC;oBACpB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { MessageParam } from '../provider/types.js';
2
+ import type { AgentEvent, AgentMcpServerDefinition, AgentRunOptions, AgentRunResult, AgentToolDefinition, ModelApi, ResolvedRuntimeConfig } from '../types.js';
3
+ import { McpConnectionManager } from '../mcp/connectionManager.js';
4
+ export interface ExecuteConversationOptions {
5
+ runId: string;
6
+ input: string | MessageParam['content'];
7
+ messages?: MessageParam[];
8
+ sessionId?: string;
9
+ systemPrompt?: string;
10
+ tools?: AgentToolDefinition[];
11
+ mcpServers?: AgentMcpServerDefinition[];
12
+ model?: string;
13
+ maxTokens?: number;
14
+ temperature?: number;
15
+ toolChoice?: AgentRunOptions['toolChoice'];
16
+ userId?: string;
17
+ metadata?: Record<string, unknown>;
18
+ signal?: AbortSignal;
19
+ streaming: boolean;
20
+ emit?: (event: AgentEvent) => void;
21
+ modelApi: ModelApi;
22
+ config: ResolvedRuntimeConfig;
23
+ mcpManager: McpConnectionManager;
24
+ }
25
+ export declare function executeConversation(options: ExecuteConversationOptions): Promise<AgentRunResult>;
26
+ //# sourceMappingURL=conversationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationEngine.d.ts","sourceRoot":"","sources":["../../../src/runtime/conversationEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EAExB,eAAe,EACf,cAAc,EAGd,mBAAmB,EACnB,QAAQ,EAER,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAQnE,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CAoOzB"}