@formmy.app/chat 0.0.1-alpha.2 → 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/dist/core/client.d.ts +23 -2
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +68 -9
- package/dist/core/client.js.map +1 -1
- package/package.json +1 -1
package/dist/core/client.d.ts
CHANGED
|
@@ -50,8 +50,29 @@ export declare class Formmy {
|
|
|
50
50
|
};
|
|
51
51
|
get chat(): {
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Stream a chat response - returns Response for proxying
|
|
54
|
+
* Use this when you need to forward the stream to your frontend
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* // Elysia/Express/Hono backend
|
|
59
|
+
* app.post("/chat", async ({ body }) => {
|
|
60
|
+
* const response = await formmy.chat.stream({
|
|
61
|
+
* agentId: body.agentId,
|
|
62
|
+
* message: body.message,
|
|
63
|
+
* });
|
|
64
|
+
* return response; // Proxy the stream directly
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
stream: (options: {
|
|
69
|
+
agentId: string;
|
|
70
|
+
message: string;
|
|
71
|
+
conversationId?: string;
|
|
72
|
+
}) => Promise<Response>;
|
|
73
|
+
/**
|
|
74
|
+
* Send a message and get complete response (non-streaming)
|
|
75
|
+
* Use this for server-to-server communication where you don't need streaming
|
|
55
76
|
*/
|
|
56
77
|
send: (options: {
|
|
57
78
|
agentId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,qBAAa,WAAY,SAAQ,KAAK;IAG3B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;gBAFrB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAKxB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAqBhC,IAAI,MAAM;QAEN;;WAEG;oBACa,OAAO,CAAC,kBAAkB,CAAC;QAI3C;;WAEG;uBACkB,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;QAOpD;;WAEG;uBACkB,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAAC;QAI9D;;WAEG;0BAEQ,MAAM,QACT,gBAAgB,KACrB,OAAO,CAAC,aAAa,CAAC;QAQzB;;WAEG;0BACqB,MAAM,KAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;MAOjE;IAMD,IAAI,IAAI;QAEJ;;;WAGG;wBACmB;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,KAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,qBAAa,WAAY,SAAQ,KAAK;IAG3B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;gBAFrB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAKxB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAqBhC,IAAI,MAAM;QAEN;;WAEG;oBACa,OAAO,CAAC,kBAAkB,CAAC;QAI3C;;WAEG;uBACkB,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;QAOpD;;WAEG;uBACkB,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAAC;QAI9D;;WAEG;0BAEQ,MAAM,QACT,gBAAgB,KACrB,OAAO,CAAC,aAAa,CAAC;QAQzB;;WAEG;0BACqB,MAAM,KAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;MAOjE;IAMD,IAAI,IAAI;QAEJ;;;;;;;;;;;;;;;WAeG;0BACqB;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,KAAG,OAAO,CAAC,QAAQ,CAAC;QA2CrB;;;WAGG;wBACmB;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,KAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;MAsE3D;YAMa,OAAO;CA4BtB"}
|
package/dist/core/client.js
CHANGED
|
@@ -84,12 +84,59 @@ export class Formmy {
|
|
|
84
84
|
get chat() {
|
|
85
85
|
return {
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
87
|
+
* Stream a chat response - returns Response for proxying
|
|
88
|
+
* Use this when you need to forward the stream to your frontend
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* // Elysia/Express/Hono backend
|
|
93
|
+
* app.post("/chat", async ({ body }) => {
|
|
94
|
+
* const response = await formmy.chat.stream({
|
|
95
|
+
* agentId: body.agentId,
|
|
96
|
+
* message: body.message,
|
|
97
|
+
* });
|
|
98
|
+
* return response; // Proxy the stream directly
|
|
99
|
+
* });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
stream: async (options) => {
|
|
103
|
+
const sessionId = options.conversationId || `sdk_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
104
|
+
const response = await fetch(`${this.baseUrl}/api/v2/sdk?intent=chat&agentId=${options.agentId}`, {
|
|
105
|
+
method: "POST",
|
|
106
|
+
headers: {
|
|
107
|
+
"Content-Type": "application/json",
|
|
108
|
+
Authorization: `Bearer ${this.secretKey}`,
|
|
109
|
+
},
|
|
110
|
+
body: JSON.stringify({
|
|
111
|
+
message: {
|
|
112
|
+
id: `msg_${Date.now()}`,
|
|
113
|
+
role: "user",
|
|
114
|
+
parts: [{ type: "text", text: options.message }],
|
|
115
|
+
},
|
|
116
|
+
id: sessionId,
|
|
117
|
+
}),
|
|
118
|
+
});
|
|
119
|
+
if (!response.ok) {
|
|
120
|
+
const error = await response.json().catch(() => ({}));
|
|
121
|
+
throw new FormmyError(error.error || "Request failed", error.code || "REQUEST_FAILED", response.status);
|
|
122
|
+
}
|
|
123
|
+
// Return the response directly for streaming proxy
|
|
124
|
+
// The response body is a ReadableStream in Vercel AI SDK UIMessage format
|
|
125
|
+
return new Response(response.body, {
|
|
126
|
+
headers: {
|
|
127
|
+
"Content-Type": "text/event-stream",
|
|
128
|
+
"Cache-Control": "no-cache",
|
|
129
|
+
"Connection": "keep-alive",
|
|
130
|
+
"X-Formmy-Conversation-Id": sessionId,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
/**
|
|
135
|
+
* Send a message and get complete response (non-streaming)
|
|
136
|
+
* Use this for server-to-server communication where you don't need streaming
|
|
89
137
|
*/
|
|
90
138
|
send: async (options) => {
|
|
91
|
-
|
|
92
|
-
const sessionId = options.conversationId || `sdk_${Date.now()}`;
|
|
139
|
+
const sessionId = options.conversationId || `sdk_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
93
140
|
const response = await fetch(`${this.baseUrl}/api/v2/sdk?intent=chat&agentId=${options.agentId}`, {
|
|
94
141
|
method: "POST",
|
|
95
142
|
headers: {
|
|
@@ -111,12 +158,25 @@ export class Formmy {
|
|
|
111
158
|
}
|
|
112
159
|
// Read streaming response as text
|
|
113
160
|
const text = await response.text();
|
|
114
|
-
// Parse SSE response - Vercel AI SDK format
|
|
115
|
-
// Lines
|
|
161
|
+
// Parse SSE response - Vercel AI SDK v6 format
|
|
162
|
+
// Lines: data: {"type":"text-delta","id":"...","delta":"Hello"}
|
|
116
163
|
const lines = text.split("\n");
|
|
117
164
|
const contentParts = [];
|
|
118
165
|
for (const line of lines) {
|
|
119
|
-
|
|
166
|
+
// Vercel AI SDK v6 format: data: {...}
|
|
167
|
+
if (line.startsWith("data: ")) {
|
|
168
|
+
try {
|
|
169
|
+
const parsed = JSON.parse(line.slice(6));
|
|
170
|
+
if (parsed.type === "text-delta" && parsed.delta) {
|
|
171
|
+
contentParts.push(parsed.delta);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Skip malformed chunks
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Legacy format support: 0:"text"
|
|
179
|
+
else if (line.startsWith("0:")) {
|
|
120
180
|
try {
|
|
121
181
|
const parsed = JSON.parse(line.slice(2));
|
|
122
182
|
if (typeof parsed === "string") {
|
|
@@ -124,8 +184,7 @@ export class Formmy {
|
|
|
124
184
|
}
|
|
125
185
|
}
|
|
126
186
|
catch {
|
|
127
|
-
//
|
|
128
|
-
console.warn("[Formmy SDK] Malformed SSE chunk:", line.slice(0, 100));
|
|
187
|
+
// Skip malformed chunks
|
|
129
188
|
}
|
|
130
189
|
}
|
|
131
190
|
}
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,OAAO,WAAY,SAAQ,KAAK;IAG3B;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,MAAc;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,MAAM;IACT,SAAS,CAAS;IAClB,OAAO,CAAS;IAExB,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAEnC,iEAAiE;QACjE,MAAM,mBAAmB,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACpD,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAE9E,IAAI,MAAM;QACR,OAAO;YACL;;eAEG;YACH,IAAI,EAAE,KAAK,IAAiC,EAAE;gBAC5C,OAAO,IAAI,CAAC,OAAO,CAAqB,KAAK,EAAE,qBAAqB,CAAC,CAAC;YACxE,CAAC;YAED;;eAEG;YACH,GAAG,EAAE,KAAK,EAAE,OAAe,EAA0B,EAAE;gBACrD,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EACL,8BAA8B,OAAO,EAAE,CACxC,CAAC;YACJ,CAAC;YAED;;eAEG;YACH,MAAM,EAAE,KAAK,EAAE,IAAsB,EAA0B,EAAE;gBAC/D,OAAO,IAAI,CAAC,OAAO,CAAgB,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAC5E,CAAC;YAED;;eAEG;YACH,MAAM,EAAE,KAAK,EACX,OAAe,EACf,IAAsB,EACE,EAAE;gBAC1B,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,iCAAiC,OAAO,EAAE,EAC1C,IAAI,CACL,CAAC;YACJ,CAAC;YAED;;eAEG;YACH,MAAM,EAAE,KAAK,EAAE,OAAe,EAAiC,EAAE;gBAC/D,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,iCAAiC,OAAO,EAAE,CAC3C,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,wCAAwC;IACxC,8EAA8E;IAE9E,IAAI,IAAI;QACN,OAAO;YACL;;;eAGG;YACH,IAAI,EAAE,KAAK,EAAE,OAIZ,EAAwD,EAAE;gBACzD,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|