@reminix/runtime 0.0.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/LICENSE +201 -0
- package/README.md +317 -0
- package/dist/adapters/base.d.ts +227 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +382 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +124 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base agent and adapter interface.
|
|
3
|
+
*/
|
|
4
|
+
import type { InvokeRequest, InvokeResponse, ChatRequest, ChatResponse } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Web-standard fetch handler type.
|
|
7
|
+
*/
|
|
8
|
+
export type FetchHandler = (request: Request) => Promise<Response>;
|
|
9
|
+
/**
|
|
10
|
+
* Metadata returned by agents for discovery.
|
|
11
|
+
*/
|
|
12
|
+
export interface AgentMetadata {
|
|
13
|
+
type: 'agent' | 'adapter';
|
|
14
|
+
adapter?: string;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handler type for invoke requests.
|
|
19
|
+
*/
|
|
20
|
+
export type InvokeHandler = (request: InvokeRequest) => Promise<InvokeResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* Handler type for chat requests.
|
|
23
|
+
*/
|
|
24
|
+
export type ChatHandler = (request: ChatRequest) => Promise<ChatResponse>;
|
|
25
|
+
/**
|
|
26
|
+
* Handler type for streaming invoke requests.
|
|
27
|
+
*/
|
|
28
|
+
export type InvokeStreamHandler = (request: InvokeRequest) => AsyncGenerator<string, void, unknown>;
|
|
29
|
+
/**
|
|
30
|
+
* Handler type for streaming chat requests.
|
|
31
|
+
*/
|
|
32
|
+
export type ChatStreamHandler = (request: ChatRequest) => AsyncGenerator<string, void, unknown>;
|
|
33
|
+
/**
|
|
34
|
+
* Abstract base class defining the agent interface.
|
|
35
|
+
*
|
|
36
|
+
* This is the core contract that all agents must fulfill.
|
|
37
|
+
* Use `Agent` for callback-based registration or extend
|
|
38
|
+
* `BaseAdapter` for framework adapters.
|
|
39
|
+
*/
|
|
40
|
+
export declare abstract class AgentBase {
|
|
41
|
+
/**
|
|
42
|
+
* Whether invoke supports streaming. Override to enable.
|
|
43
|
+
*/
|
|
44
|
+
get invokeStreaming(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether chat supports streaming. Override to enable.
|
|
47
|
+
*/
|
|
48
|
+
get chatStreaming(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Return the agent name.
|
|
51
|
+
*/
|
|
52
|
+
abstract get name(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Return agent metadata for discovery.
|
|
55
|
+
* Override this to provide custom metadata.
|
|
56
|
+
*/
|
|
57
|
+
get metadata(): AgentMetadata;
|
|
58
|
+
/**
|
|
59
|
+
* Handle an invoke request.
|
|
60
|
+
*/
|
|
61
|
+
abstract invoke(request: InvokeRequest): Promise<InvokeResponse>;
|
|
62
|
+
/**
|
|
63
|
+
* Handle a chat request.
|
|
64
|
+
*/
|
|
65
|
+
abstract chat(request: ChatRequest): Promise<ChatResponse>;
|
|
66
|
+
/**
|
|
67
|
+
* Handle a streaming invoke request.
|
|
68
|
+
*/
|
|
69
|
+
invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
|
|
70
|
+
/**
|
|
71
|
+
* Handle a streaming chat request.
|
|
72
|
+
*/
|
|
73
|
+
chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
|
|
74
|
+
/**
|
|
75
|
+
* Create a web-standard fetch handler for this agent.
|
|
76
|
+
*
|
|
77
|
+
* Works with Vercel Edge Functions, Cloudflare Workers, Deno Deploy, Bun,
|
|
78
|
+
* and any platform supporting the Fetch API.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Vercel Edge Function
|
|
83
|
+
* const agent = new Agent('my-agent');
|
|
84
|
+
* agent.onInvoke(async (req) => ({ output: 'Hello!' }));
|
|
85
|
+
* export default agent.toHandler();
|
|
86
|
+
*
|
|
87
|
+
* // Cloudflare Worker
|
|
88
|
+
* export default { fetch: agent.toHandler() };
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
toHandler(): FetchHandler;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Concrete agent with callback-based handler registration.
|
|
95
|
+
*
|
|
96
|
+
* Use this class to create custom agents by registering handlers:
|
|
97
|
+
*
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const agent = new Agent('my-agent');
|
|
100
|
+
*
|
|
101
|
+
* agent.onInvoke(async (request) => {
|
|
102
|
+
* return { output: 'Hello!' };
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* agent.onChat(async (request) => {
|
|
106
|
+
* return { output: 'Hi!', messages: [...] };
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* serve([agent], { port: 8080 });
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare class Agent extends AgentBase {
|
|
113
|
+
private readonly _name;
|
|
114
|
+
private readonly _metadata;
|
|
115
|
+
private _invokeHandler;
|
|
116
|
+
private _chatHandler;
|
|
117
|
+
private _invokeStreamHandler;
|
|
118
|
+
private _chatStreamHandler;
|
|
119
|
+
/**
|
|
120
|
+
* Create a new agent.
|
|
121
|
+
*
|
|
122
|
+
* @param name - The agent name (used in URLs like /agents/{name}/invoke)
|
|
123
|
+
* @param options - Optional configuration
|
|
124
|
+
*/
|
|
125
|
+
constructor(name: string, options?: {
|
|
126
|
+
metadata?: Record<string, unknown>;
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* Return the agent name.
|
|
130
|
+
*/
|
|
131
|
+
get name(): string;
|
|
132
|
+
/**
|
|
133
|
+
* Return agent metadata for discovery.
|
|
134
|
+
*/
|
|
135
|
+
get metadata(): AgentMetadata;
|
|
136
|
+
/**
|
|
137
|
+
* Whether invoke supports streaming.
|
|
138
|
+
*/
|
|
139
|
+
get invokeStreaming(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Whether chat supports streaming.
|
|
142
|
+
*/
|
|
143
|
+
get chatStreaming(): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Register an invoke handler.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* agent.onInvoke(async (request) => {
|
|
149
|
+
* return { output: 'Hello!' };
|
|
150
|
+
* });
|
|
151
|
+
*/
|
|
152
|
+
onInvoke(handler: InvokeHandler): this;
|
|
153
|
+
/**
|
|
154
|
+
* Register a chat handler.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* agent.onChat(async (request) => {
|
|
158
|
+
* return { output: 'Hi!', messages: [...] };
|
|
159
|
+
* });
|
|
160
|
+
*/
|
|
161
|
+
onChat(handler: ChatHandler): this;
|
|
162
|
+
/**
|
|
163
|
+
* Register a streaming invoke handler.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* agent.onInvokeStream(async function* (request) {
|
|
167
|
+
* yield '{"chunk": "Hello"}';
|
|
168
|
+
* yield '{"chunk": " world!"}';
|
|
169
|
+
* });
|
|
170
|
+
*/
|
|
171
|
+
onInvokeStream(handler: InvokeStreamHandler): this;
|
|
172
|
+
/**
|
|
173
|
+
* Register a streaming chat handler.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* agent.onChatStream(async function* (request) {
|
|
177
|
+
* yield '{"chunk": "Hi"}';
|
|
178
|
+
* });
|
|
179
|
+
*/
|
|
180
|
+
onChatStream(handler: ChatStreamHandler): this;
|
|
181
|
+
/**
|
|
182
|
+
* Handle an invoke request.
|
|
183
|
+
*/
|
|
184
|
+
invoke(request: InvokeRequest): Promise<InvokeResponse>;
|
|
185
|
+
/**
|
|
186
|
+
* Handle a chat request.
|
|
187
|
+
*/
|
|
188
|
+
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
189
|
+
/**
|
|
190
|
+
* Handle a streaming invoke request.
|
|
191
|
+
*/
|
|
192
|
+
invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
|
|
193
|
+
/**
|
|
194
|
+
* Handle a streaming chat request.
|
|
195
|
+
*/
|
|
196
|
+
chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Base class for framework adapters.
|
|
200
|
+
*
|
|
201
|
+
* Extend this class when wrapping an existing AI framework
|
|
202
|
+
* (e.g., LangChain, OpenAI, Anthropic).
|
|
203
|
+
*/
|
|
204
|
+
export declare abstract class BaseAdapter extends AgentBase {
|
|
205
|
+
/**
|
|
206
|
+
* The adapter name. Subclasses should override this.
|
|
207
|
+
*/
|
|
208
|
+
static adapterName: string;
|
|
209
|
+
/**
|
|
210
|
+
* All built-in adapters support streaming.
|
|
211
|
+
*/
|
|
212
|
+
get invokeStreaming(): boolean;
|
|
213
|
+
get chatStreaming(): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Return adapter metadata for discovery.
|
|
216
|
+
*/
|
|
217
|
+
get metadata(): AgentMetadata;
|
|
218
|
+
/**
|
|
219
|
+
* Handle a streaming invoke request.
|
|
220
|
+
*/
|
|
221
|
+
invokeStream(request: InvokeRequest): AsyncGenerator<string, void, unknown>;
|
|
222
|
+
/**
|
|
223
|
+
* Handle a streaming chat request.
|
|
224
|
+
*/
|
|
225
|
+
chatStream(request: ChatRequest): AsyncGenerator<string, void, unknown>;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG5F;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAEpG;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAEhG;;;;;;GAMG;AACH,8BAAsB,SAAS;IAC7B;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B;;;OAGG;IACH,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAE1D;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAIlF;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAI9E;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,IAAI,YAAY;CAqK1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,kBAAkB,CAAkC;IAE5D;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;IAM1E;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED;;OAEG;IACH,IAAa,eAAe,IAAI,OAAO,CAEtC;IAED;;OAEG;IACH,IAAa,aAAa,IAAI,OAAO,CAEpC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKtC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKlC;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAKlD;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK9C;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7D;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAOvD;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAOlF;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;CAM/E;AAED;;;;;GAKG;AACH,8BAAsB,WAAY,SAAQ,SAAS;IACjD;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAa;IAEvC;;OAEG;IACH,IAAa,eAAe,IAAI,OAAO,CAEtC;IAED,IAAa,aAAa,IAAI,OAAO,CAEpC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,aAAa,CAK5B;IAED;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAIlF;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;CAG/E"}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base agent and adapter interface.
|
|
3
|
+
*/
|
|
4
|
+
import { VERSION } from '../version.js';
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base class defining the agent interface.
|
|
7
|
+
*
|
|
8
|
+
* This is the core contract that all agents must fulfill.
|
|
9
|
+
* Use `Agent` for callback-based registration or extend
|
|
10
|
+
* `BaseAdapter` for framework adapters.
|
|
11
|
+
*/
|
|
12
|
+
export class AgentBase {
|
|
13
|
+
/**
|
|
14
|
+
* Whether invoke supports streaming. Override to enable.
|
|
15
|
+
*/
|
|
16
|
+
get invokeStreaming() {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether chat supports streaming. Override to enable.
|
|
21
|
+
*/
|
|
22
|
+
get chatStreaming() {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Return agent metadata for discovery.
|
|
27
|
+
* Override this to provide custom metadata.
|
|
28
|
+
*/
|
|
29
|
+
get metadata() {
|
|
30
|
+
return { type: 'agent' };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Handle a streaming invoke request.
|
|
34
|
+
*/
|
|
35
|
+
async *invokeStream(request) {
|
|
36
|
+
throw new Error('Streaming not implemented for this agent');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Handle a streaming chat request.
|
|
40
|
+
*/
|
|
41
|
+
async *chatStream(request) {
|
|
42
|
+
throw new Error('Streaming not implemented for this agent');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a web-standard fetch handler for this agent.
|
|
46
|
+
*
|
|
47
|
+
* Works with Vercel Edge Functions, Cloudflare Workers, Deno Deploy, Bun,
|
|
48
|
+
* and any platform supporting the Fetch API.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // Vercel Edge Function
|
|
53
|
+
* const agent = new Agent('my-agent');
|
|
54
|
+
* agent.onInvoke(async (req) => ({ output: 'Hello!' }));
|
|
55
|
+
* export default agent.toHandler();
|
|
56
|
+
*
|
|
57
|
+
* // Cloudflare Worker
|
|
58
|
+
* export default { fetch: agent.toHandler() };
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
toHandler() {
|
|
62
|
+
const agent = this;
|
|
63
|
+
return async (request) => {
|
|
64
|
+
const url = new URL(request.url);
|
|
65
|
+
const path = url.pathname;
|
|
66
|
+
const method = request.method;
|
|
67
|
+
// CORS headers
|
|
68
|
+
const corsHeaders = {
|
|
69
|
+
'Access-Control-Allow-Origin': '*',
|
|
70
|
+
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
|
|
71
|
+
'Access-Control-Allow-Headers': 'Content-Type',
|
|
72
|
+
};
|
|
73
|
+
// Handle CORS preflight
|
|
74
|
+
if (method === 'OPTIONS') {
|
|
75
|
+
return new Response(null, { status: 204, headers: corsHeaders });
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
// GET /health
|
|
79
|
+
if (method === 'GET' && path === '/health') {
|
|
80
|
+
return Response.json({ status: 'ok' }, { headers: corsHeaders });
|
|
81
|
+
}
|
|
82
|
+
// GET /info
|
|
83
|
+
if (method === 'GET' && path === '/info') {
|
|
84
|
+
return Response.json({
|
|
85
|
+
runtime: {
|
|
86
|
+
name: 'reminix-runtime',
|
|
87
|
+
version: VERSION,
|
|
88
|
+
language: 'typescript',
|
|
89
|
+
framework: 'fetch',
|
|
90
|
+
},
|
|
91
|
+
agents: [
|
|
92
|
+
{
|
|
93
|
+
name: agent.name,
|
|
94
|
+
...agent.metadata,
|
|
95
|
+
invoke: { streaming: agent.invokeStreaming },
|
|
96
|
+
chat: { streaming: agent.chatStreaming },
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
}, { headers: corsHeaders });
|
|
100
|
+
}
|
|
101
|
+
// POST /agents/{name}/invoke
|
|
102
|
+
const invokeMatch = path.match(/^\/agents\/([^/]+)\/invoke$/);
|
|
103
|
+
if (method === 'POST' && invokeMatch) {
|
|
104
|
+
const agentName = invokeMatch[1];
|
|
105
|
+
if (agentName !== agent.name) {
|
|
106
|
+
return Response.json({ error: `Agent '${agentName}' not found` }, { status: 404, headers: corsHeaders });
|
|
107
|
+
}
|
|
108
|
+
const body = (await request.json());
|
|
109
|
+
if (!body.input || Object.keys(body.input).length === 0) {
|
|
110
|
+
return Response.json({ error: 'input is required and must not be empty' }, { status: 400, headers: corsHeaders });
|
|
111
|
+
}
|
|
112
|
+
// Handle streaming
|
|
113
|
+
if (body.stream) {
|
|
114
|
+
const stream = new ReadableStream({
|
|
115
|
+
async start(controller) {
|
|
116
|
+
const encoder = new TextEncoder();
|
|
117
|
+
try {
|
|
118
|
+
for await (const chunk of agent.invokeStream(body)) {
|
|
119
|
+
controller.enqueue(encoder.encode(`data: ${chunk}\n\n`));
|
|
120
|
+
}
|
|
121
|
+
controller.enqueue(encoder.encode('data: [DONE]\n\n'));
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
125
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: message })}\n\n`));
|
|
126
|
+
}
|
|
127
|
+
controller.close();
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
return new Response(stream, {
|
|
131
|
+
headers: {
|
|
132
|
+
...corsHeaders,
|
|
133
|
+
'Content-Type': 'text/event-stream',
|
|
134
|
+
'Cache-Control': 'no-cache',
|
|
135
|
+
Connection: 'keep-alive',
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
const response = await agent.invoke(body);
|
|
140
|
+
return Response.json(response, { headers: corsHeaders });
|
|
141
|
+
}
|
|
142
|
+
// POST /agents/{name}/chat
|
|
143
|
+
const chatMatch = path.match(/^\/agents\/([^/]+)\/chat$/);
|
|
144
|
+
if (method === 'POST' && chatMatch) {
|
|
145
|
+
const agentName = chatMatch[1];
|
|
146
|
+
if (agentName !== agent.name) {
|
|
147
|
+
return Response.json({ error: `Agent '${agentName}' not found` }, { status: 404, headers: corsHeaders });
|
|
148
|
+
}
|
|
149
|
+
const body = (await request.json());
|
|
150
|
+
if (!body.messages || body.messages.length === 0) {
|
|
151
|
+
return Response.json({ error: 'messages is required and must not be empty' }, { status: 400, headers: corsHeaders });
|
|
152
|
+
}
|
|
153
|
+
// Handle streaming
|
|
154
|
+
if (body.stream) {
|
|
155
|
+
const stream = new ReadableStream({
|
|
156
|
+
async start(controller) {
|
|
157
|
+
const encoder = new TextEncoder();
|
|
158
|
+
try {
|
|
159
|
+
for await (const chunk of agent.chatStream(body)) {
|
|
160
|
+
controller.enqueue(encoder.encode(`data: ${chunk}\n\n`));
|
|
161
|
+
}
|
|
162
|
+
controller.enqueue(encoder.encode('data: [DONE]\n\n'));
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
166
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ error: message })}\n\n`));
|
|
167
|
+
}
|
|
168
|
+
controller.close();
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
return new Response(stream, {
|
|
172
|
+
headers: {
|
|
173
|
+
...corsHeaders,
|
|
174
|
+
'Content-Type': 'text/event-stream',
|
|
175
|
+
'Cache-Control': 'no-cache',
|
|
176
|
+
Connection: 'keep-alive',
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
const response = await agent.chat(body);
|
|
181
|
+
return Response.json(response, { headers: corsHeaders });
|
|
182
|
+
}
|
|
183
|
+
// Not found
|
|
184
|
+
return Response.json({ error: 'Not found' }, { status: 404, headers: corsHeaders });
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
188
|
+
return Response.json({ error: message }, { status: 500, headers: corsHeaders });
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Concrete agent with callback-based handler registration.
|
|
195
|
+
*
|
|
196
|
+
* Use this class to create custom agents by registering handlers:
|
|
197
|
+
*
|
|
198
|
+
* ```typescript
|
|
199
|
+
* const agent = new Agent('my-agent');
|
|
200
|
+
*
|
|
201
|
+
* agent.onInvoke(async (request) => {
|
|
202
|
+
* return { output: 'Hello!' };
|
|
203
|
+
* });
|
|
204
|
+
*
|
|
205
|
+
* agent.onChat(async (request) => {
|
|
206
|
+
* return { output: 'Hi!', messages: [...] };
|
|
207
|
+
* });
|
|
208
|
+
*
|
|
209
|
+
* serve([agent], { port: 8080 });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
export class Agent extends AgentBase {
|
|
213
|
+
_name;
|
|
214
|
+
_metadata;
|
|
215
|
+
_invokeHandler = null;
|
|
216
|
+
_chatHandler = null;
|
|
217
|
+
_invokeStreamHandler = null;
|
|
218
|
+
_chatStreamHandler = null;
|
|
219
|
+
/**
|
|
220
|
+
* Create a new agent.
|
|
221
|
+
*
|
|
222
|
+
* @param name - The agent name (used in URLs like /agents/{name}/invoke)
|
|
223
|
+
* @param options - Optional configuration
|
|
224
|
+
*/
|
|
225
|
+
constructor(name, options) {
|
|
226
|
+
super();
|
|
227
|
+
this._name = name;
|
|
228
|
+
this._metadata = options?.metadata ?? {};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Return the agent name.
|
|
232
|
+
*/
|
|
233
|
+
get name() {
|
|
234
|
+
return this._name;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Return agent metadata for discovery.
|
|
238
|
+
*/
|
|
239
|
+
get metadata() {
|
|
240
|
+
return { type: 'agent', ...this._metadata };
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Whether invoke supports streaming.
|
|
244
|
+
*/
|
|
245
|
+
get invokeStreaming() {
|
|
246
|
+
return this._invokeStreamHandler !== null;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Whether chat supports streaming.
|
|
250
|
+
*/
|
|
251
|
+
get chatStreaming() {
|
|
252
|
+
return this._chatStreamHandler !== null;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Register an invoke handler.
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* agent.onInvoke(async (request) => {
|
|
259
|
+
* return { output: 'Hello!' };
|
|
260
|
+
* });
|
|
261
|
+
*/
|
|
262
|
+
onInvoke(handler) {
|
|
263
|
+
this._invokeHandler = handler;
|
|
264
|
+
return this;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Register a chat handler.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* agent.onChat(async (request) => {
|
|
271
|
+
* return { output: 'Hi!', messages: [...] };
|
|
272
|
+
* });
|
|
273
|
+
*/
|
|
274
|
+
onChat(handler) {
|
|
275
|
+
this._chatHandler = handler;
|
|
276
|
+
return this;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Register a streaming invoke handler.
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* agent.onInvokeStream(async function* (request) {
|
|
283
|
+
* yield '{"chunk": "Hello"}';
|
|
284
|
+
* yield '{"chunk": " world!"}';
|
|
285
|
+
* });
|
|
286
|
+
*/
|
|
287
|
+
onInvokeStream(handler) {
|
|
288
|
+
this._invokeStreamHandler = handler;
|
|
289
|
+
return this;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Register a streaming chat handler.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* agent.onChatStream(async function* (request) {
|
|
296
|
+
* yield '{"chunk": "Hi"}';
|
|
297
|
+
* });
|
|
298
|
+
*/
|
|
299
|
+
onChatStream(handler) {
|
|
300
|
+
this._chatStreamHandler = handler;
|
|
301
|
+
return this;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Handle an invoke request.
|
|
305
|
+
*/
|
|
306
|
+
async invoke(request) {
|
|
307
|
+
if (this._invokeHandler === null) {
|
|
308
|
+
throw new Error(`No invoke handler registered for agent '${this._name}'`);
|
|
309
|
+
}
|
|
310
|
+
return this._invokeHandler(request);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Handle a chat request.
|
|
314
|
+
*/
|
|
315
|
+
async chat(request) {
|
|
316
|
+
if (this._chatHandler === null) {
|
|
317
|
+
throw new Error(`No chat handler registered for agent '${this._name}'`);
|
|
318
|
+
}
|
|
319
|
+
return this._chatHandler(request);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Handle a streaming invoke request.
|
|
323
|
+
*/
|
|
324
|
+
async *invokeStream(request) {
|
|
325
|
+
if (this._invokeStreamHandler === null) {
|
|
326
|
+
throw new Error(`No streaming invoke handler registered for agent '${this._name}'`);
|
|
327
|
+
}
|
|
328
|
+
yield* this._invokeStreamHandler(request);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Handle a streaming chat request.
|
|
332
|
+
*/
|
|
333
|
+
async *chatStream(request) {
|
|
334
|
+
if (this._chatStreamHandler === null) {
|
|
335
|
+
throw new Error(`No streaming chat handler registered for agent '${this._name}'`);
|
|
336
|
+
}
|
|
337
|
+
yield* this._chatStreamHandler(request);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Base class for framework adapters.
|
|
342
|
+
*
|
|
343
|
+
* Extend this class when wrapping an existing AI framework
|
|
344
|
+
* (e.g., LangChain, OpenAI, Anthropic).
|
|
345
|
+
*/
|
|
346
|
+
export class BaseAdapter extends AgentBase {
|
|
347
|
+
/**
|
|
348
|
+
* The adapter name. Subclasses should override this.
|
|
349
|
+
*/
|
|
350
|
+
static adapterName = 'unknown';
|
|
351
|
+
/**
|
|
352
|
+
* All built-in adapters support streaming.
|
|
353
|
+
*/
|
|
354
|
+
get invokeStreaming() {
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
get chatStreaming() {
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Return adapter metadata for discovery.
|
|
362
|
+
*/
|
|
363
|
+
get metadata() {
|
|
364
|
+
return {
|
|
365
|
+
type: 'adapter',
|
|
366
|
+
adapter: this.constructor.adapterName,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Handle a streaming invoke request.
|
|
371
|
+
*/
|
|
372
|
+
async *invokeStream(request) {
|
|
373
|
+
throw new Error('Streaming not implemented for this adapter');
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Handle a streaming chat request.
|
|
377
|
+
*/
|
|
378
|
+
async *chatStream(request) {
|
|
379
|
+
throw new Error('Streaming not implemented for this adapter');
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { serve, createApp } from './server.js';
|
|
2
|
+
export type { ServeOptions } from './server.js';
|
|
3
|
+
export { VERSION } from './version.js';
|
|
4
|
+
export type { Role, InvokeRequest, InvokeResponse, ChatRequest, ChatResponse, Message, } from './types.js';
|
|
5
|
+
export { AgentBase, Agent, BaseAdapter } from './adapters/base.js';
|
|
6
|
+
export type { AgentMetadata, InvokeHandler, ChatHandler, InvokeStreamHandler, ChatStreamHandler, FetchHandler, } from './adapters/base.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,IAAI,EACJ,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|