@ariaflowagents/hono-server 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.
package/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # @ariaflowagents/hono-server
2
+
3
+ Hono router for hosting AriaFlow Runtime over HTTP + WebSocket.
4
+
5
+ ## Usage (Node.js)
6
+
7
+ ```ts
8
+ import { Hono } from 'hono';
9
+ import { serve } from '@hono/node-server';
10
+ import { createNodeWebSocket } from '@hono/node-ws';
11
+ import { Runtime } from '@ariaflowagents/core';
12
+ import { createAriaChatRouter } from '@ariaflowagents/hono-server';
13
+
14
+ const app = new Hono();
15
+ const { upgradeWebSocket, injectWebSocket } = createNodeWebSocket({ app });
16
+
17
+ const runtime = new Runtime({
18
+ agents: [],
19
+ defaultAgentId: 'triage',
20
+ });
21
+
22
+ app.route('/', createAriaChatRouter({ runtime, upgradeWebSocket }));
23
+
24
+ const server = serve({ fetch: app.fetch, port: 3000 });
25
+ injectWebSocket(server);
26
+ ```
27
+
28
+ ## Usage (Bun)
29
+
30
+ ```ts
31
+ import { Hono } from 'hono';
32
+ import { upgradeWebSocket } from 'hono/bun';
33
+ import { Runtime } from '@ariaflowagents/core';
34
+ import { createAriaChatRouter } from '@ariaflowagents/hono-server';
35
+
36
+ const app = new Hono();
37
+
38
+ const runtime = new Runtime({
39
+ agents: [],
40
+ defaultAgentId: 'triage',
41
+ });
42
+
43
+ app.route('/', createAriaChatRouter({ runtime, upgradeWebSocket }));
44
+
45
+ export default app;
46
+ ```
47
+
48
+ ## Examples
49
+
50
+ - `examples/basic-server` (Node.js)
51
+ - `examples/bun-server` (Bun)
52
+
53
+ ## Routes
54
+
55
+ - `GET /health`
56
+ - `POST /api/chat`
57
+ - `POST /api/chat/stream`
58
+ - `POST /api/chat/sse`
59
+ - `GET /api/session/:id`
60
+ - `DELETE /api/session/:id`
61
+ - `GET /ws/:sessionId`
@@ -0,0 +1,33 @@
1
+ import { Hono } from 'hono';
2
+ import type { Context, Handler } from 'hono';
3
+ import type { HarnessStreamPart, Runtime } from '@ariaflowagents/core';
4
+ export type ChatRequest = {
5
+ sessionId?: string;
6
+ message: string;
7
+ userId?: string;
8
+ };
9
+ export type ChatResponse = {
10
+ sessionId: string;
11
+ response: string;
12
+ timestamp: string;
13
+ };
14
+ export type AriaWebSocket = {
15
+ send: (data: string) => void;
16
+ };
17
+ export type WebSocketEvent = {
18
+ data?: unknown;
19
+ };
20
+ export type WebSocketHandler = {
21
+ onOpen?: (event: unknown, ws: AriaWebSocket) => void;
22
+ onMessage?: (event: WebSocketEvent, ws: AriaWebSocket) => void | Promise<void>;
23
+ onClose?: (event: unknown, ws: AriaWebSocket) => void;
24
+ onError?: (event: unknown, ws: AriaWebSocket) => void;
25
+ };
26
+ export type UpgradeWebSocket = (handler: (c: Context) => WebSocketHandler) => Handler;
27
+ export type AriaChatRouterOptions = {
28
+ runtime: Runtime;
29
+ upgradeWebSocket?: UpgradeWebSocket;
30
+ };
31
+ export declare const createAriaChatRouter: ({ runtime, upgradeWebSocket, }: AriaChatRouterOptions) => Hono;
32
+ export type { HarnessStreamPart };
33
+ //# 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,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAW,MAAM,sBAAsB,CAAC;AAEhF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,gBAAgB,KACtC,OAAO,CAAC;AAEb,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAsEF,eAAO,MAAM,oBAAoB,GAAI,gCAGlC,qBAAqB,KAAG,IAuJ1B,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,179 @@
1
+ import { Hono } from 'hono';
2
+ import { streamSSE, streamText } from 'hono/streaming';
3
+ const parseJsonBody = async (c) => {
4
+ try {
5
+ return await c.req.json();
6
+ }
7
+ catch {
8
+ return null;
9
+ }
10
+ };
11
+ const coerceToString = (data) => {
12
+ if (typeof data === 'string') {
13
+ return data;
14
+ }
15
+ if (data instanceof ArrayBuffer) {
16
+ return new TextDecoder().decode(data);
17
+ }
18
+ if (ArrayBuffer.isView(data)) {
19
+ return new TextDecoder().decode(data.buffer);
20
+ }
21
+ return String(data ?? '');
22
+ };
23
+ const collectResponse = async (runtime, message, sessionId, userId) => {
24
+ let response = '';
25
+ let resolvedSessionId = sessionId ?? '';
26
+ for await (const part of runtime.stream({ input: message, sessionId, userId })) {
27
+ if (part.type === 'text-delta') {
28
+ response += part.text;
29
+ }
30
+ if (part.type === 'error') {
31
+ throw new Error(part.error);
32
+ }
33
+ if (part.type === 'done') {
34
+ resolvedSessionId = part.sessionId;
35
+ }
36
+ }
37
+ return {
38
+ response,
39
+ sessionId: resolvedSessionId,
40
+ };
41
+ };
42
+ const sendSSEPart = async (stream, part) => {
43
+ await stream.writeSSE({ event: part.type, data: JSON.stringify(part) });
44
+ };
45
+ const formatSessionResponse = (session) => ({
46
+ sessionId: session.id,
47
+ currentAgent: session.currentAgent ?? session.activeAgentId,
48
+ messageCount: session.messages.length,
49
+ createdAt: session.createdAt,
50
+ updatedAt: session.updatedAt,
51
+ });
52
+ export const createAriaChatRouter = ({ runtime, upgradeWebSocket, }) => {
53
+ const app = new Hono();
54
+ app.get('/health', (c) => c.json({ status: 'ok' }));
55
+ app.post('/api/chat', async (c) => {
56
+ const body = await parseJsonBody(c);
57
+ if (!body || !body.message) {
58
+ return c.json({ error: 'message required' }, 400);
59
+ }
60
+ try {
61
+ const result = await collectResponse(runtime, body.message, body.sessionId, body.userId);
62
+ return c.json({
63
+ sessionId: result.sessionId,
64
+ response: result.response,
65
+ timestamp: new Date().toISOString(),
66
+ });
67
+ }
68
+ catch (error) {
69
+ return c.json({ error: error.message }, 500);
70
+ }
71
+ });
72
+ app.post('/api/chat/stream', async (c) => {
73
+ const body = await parseJsonBody(c);
74
+ if (!body || !body.message) {
75
+ return c.json({ error: 'message required' }, 400);
76
+ }
77
+ return streamText(c, async (stream) => {
78
+ try {
79
+ for await (const part of runtime.stream({
80
+ input: body.message,
81
+ sessionId: body.sessionId,
82
+ userId: body.userId,
83
+ })) {
84
+ if (part.type === 'text-delta') {
85
+ await stream.write(part.text);
86
+ }
87
+ if (part.type === 'error') {
88
+ await stream.write(`\nError: ${part.error}`);
89
+ return;
90
+ }
91
+ }
92
+ }
93
+ catch (error) {
94
+ await stream.write(`\nError: ${error.message}`);
95
+ }
96
+ });
97
+ });
98
+ app.post('/api/chat/sse', async (c) => {
99
+ const body = await parseJsonBody(c);
100
+ if (!body || !body.message) {
101
+ return c.json({ error: 'message required' }, 400);
102
+ }
103
+ return streamSSE(c, async (stream) => {
104
+ try {
105
+ for await (const part of runtime.stream({
106
+ input: body.message,
107
+ sessionId: body.sessionId,
108
+ userId: body.userId,
109
+ })) {
110
+ await sendSSEPart(stream, part);
111
+ }
112
+ }
113
+ catch (error) {
114
+ await stream.writeSSE({
115
+ event: 'error',
116
+ data: JSON.stringify({ error: error.message }),
117
+ });
118
+ }
119
+ });
120
+ });
121
+ app.get('/api/session/:id', async (c) => {
122
+ const sessionId = c.req.param('id');
123
+ const session = await runtime.getSession(sessionId);
124
+ if (!session) {
125
+ return c.json({ error: 'Session not found' }, 404);
126
+ }
127
+ return c.json(formatSessionResponse(session));
128
+ });
129
+ app.delete('/api/session/:id', async (c) => {
130
+ const sessionId = c.req.param('id');
131
+ await runtime.deleteSession(sessionId);
132
+ return c.json({ success: true });
133
+ });
134
+ if (upgradeWebSocket) {
135
+ app.get('/ws/:sessionId', upgradeWebSocket((c) => {
136
+ const sessionId = c.req.param('sessionId');
137
+ return {
138
+ onOpen(_event, ws) {
139
+ ws.send(JSON.stringify({
140
+ type: 'connected',
141
+ sessionId,
142
+ timestamp: new Date().toISOString(),
143
+ }));
144
+ },
145
+ async onMessage(event, ws) {
146
+ try {
147
+ const payload = JSON.parse(coerceToString(event.data));
148
+ const input = payload.content ?? payload.message;
149
+ if (payload.type === 'message') {
150
+ if (typeof input !== 'string' || !input.trim()) {
151
+ ws.send(JSON.stringify({ type: 'error', error: 'message content required' }));
152
+ return;
153
+ }
154
+ for await (const part of runtime.stream({
155
+ input,
156
+ sessionId,
157
+ userId: payload.userId,
158
+ })) {
159
+ ws.send(JSON.stringify(part));
160
+ }
161
+ return;
162
+ }
163
+ if (payload.type === 'ping') {
164
+ ws.send(JSON.stringify({ type: 'pong' }));
165
+ }
166
+ }
167
+ catch (error) {
168
+ ws.send(JSON.stringify({
169
+ type: 'error',
170
+ error: error.message,
171
+ }));
172
+ }
173
+ },
174
+ };
175
+ }));
176
+ }
177
+ return app;
178
+ };
179
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwCvD,MAAM,aAAa,GAAG,KAAK,EAAK,CAAU,EAAqB,EAAE;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAK,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAa,EAAU,EAAE;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAC3B,OAAgB,EAChB,OAAe,EACf,SAAkB,EAClB,MAAe,EACmC,EAAE;IACpD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,iBAAiB,GAAG,SAAS,IAAI,EAAE,CAAC;IAExC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,iBAAiB;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,MAA8E,EAC9E,IAAuB,EACvB,EAAE;IACF,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC,EAAE;IACrB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa;IAC3D,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACrC,SAAS,EAAE,OAAO,CAAC,SAAS;IAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,OAAO,EACP,gBAAgB,GACM,EAAQ,EAAE;IAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAc,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,OAAO,EACP,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACb,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAc,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACpC,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,OAAO;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,EAAE,CAAC;oBACH,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChC,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC7C,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,KAAK,CAAC,YAAa,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAc,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,OAAO;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,EAAE,CAAC;oBACH,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,QAAQ,CAAC;oBACpB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE3C,OAAO;gBACL,MAAM,CAAC,MAAM,EAAE,EAAE;oBACf,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;wBACb,IAAI,EAAE,WAAW;wBACjB,SAAS;wBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC,CACH,CAAC;gBACJ,CAAC;gBAED,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;wBAEjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gCAC/C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;gCAC9E,OAAO;4BACT,CAAC;4BACD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;gCACtC,KAAK;gCACL,SAAS;gCACT,MAAM,EAAE,OAAO,CAAC,MAAM;6BACvB,CAAC,EAAE,CAAC;gCACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;4BAChC,CAAC;4BAED,OAAO;wBACT,CAAC;wBAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC5B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC5C,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,KAAK,EAAG,KAAe,CAAC,OAAO;yBAChC,CAAC,CACH,CAAC;oBACJ,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@ariaflowagents/hono-server",
3
+ "version": "0.1.0",
4
+ "description": "Hono router for hosting AriaFlow Runtime over HTTP and WebSocket",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "dependencies": {
15
+ "hono": "^4.0.0"
16
+ },
17
+ "peerDependencies": {
18
+ "@ariaflowagents/core": "^0.1.0"
19
+ },
20
+ "devDependencies": {
21
+ "@ai-sdk/openai": "^3.0.0",
22
+ "@ariaflowagents/core": "file:../ariaflow-core",
23
+ "@hono/node-server": "^1.13.0",
24
+ "@hono/node-ws": "^1.0.0",
25
+ "@types/bun": "^1.3.6",
26
+ "@types/node": "^20.11.0",
27
+ "ai": "^6.0.0",
28
+ "dotenv": "^16.4.0",
29
+ "tsx": "^4.7.0",
30
+ "typescript": "^5.3.0"
31
+ },
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.json",
34
+ "dev": "tsx examples/basic-server/server.ts",
35
+ "dev:bun": "bun examples/bun-server/server.ts",
36
+ "clean": "rm -rf dist",
37
+ "prepublishOnly": "npm run build"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "files": [
43
+ "dist",
44
+ "README.md"
45
+ ]
46
+ }