@fluxyte/sdk 0.2.2 → 0.2.4
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 +26 -7
- package/dist/core/client.d.ts +20 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +90 -5
- package/dist/core/client.js.map +1 -1
- package/dist/generated/openapi.d.ts +23 -4
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/react/useChat.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,6 +39,20 @@ import { OnboardingAIClient } from "@fluxyte/sdk/node";
|
|
|
39
39
|
const client = new OnboardingAIClient(process.env.FLUXYTE_API_KEY!);
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
### Client Options (Session Handling)
|
|
43
|
+
|
|
44
|
+
The SDK now enforces stable identity for chat/events (`sessionId` or `context.userId`).
|
|
45
|
+
|
|
46
|
+
- By default, it auto-generates and reuses `sessionId` when missing.
|
|
47
|
+
- You can disable this with `autoSessionId: false`.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
const client = new OnboardingAIClient(process.env.FLUXYTE_API_KEY!, {
|
|
51
|
+
autoSessionId: true, // default
|
|
52
|
+
sessionStorageKey: "fluxyte_onboarding_session_id", // browser storage key
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
42
56
|
## Chat Completions (Non-Streaming)
|
|
43
57
|
|
|
44
58
|
```ts
|
|
@@ -77,7 +91,7 @@ const stop = client.streamChat(
|
|
|
77
91
|
{
|
|
78
92
|
message: "What's the next step?",
|
|
79
93
|
sessionId: "sess_123",
|
|
80
|
-
context: {
|
|
94
|
+
context: { service: "premium-support", userTarget: "admin" },
|
|
81
95
|
},
|
|
82
96
|
(event) => {
|
|
83
97
|
if (event.type === "meta") console.log("Answer ID:", event.answerId);
|
|
@@ -101,23 +115,28 @@ const stop = client.streamChat(
|
|
|
101
115
|
Context is required for chat requests. Minimum shape:
|
|
102
116
|
|
|
103
117
|
```ts
|
|
104
|
-
context: { product
|
|
118
|
+
context: { product?: string; service?: string; userTarget: string }
|
|
105
119
|
```
|
|
106
120
|
|
|
107
121
|
Best practices:
|
|
108
122
|
|
|
109
|
-
- Use stable `product` identifiers
|
|
123
|
+
- Use stable `product` or `service` identifiers
|
|
110
124
|
- Always pass `userTarget`
|
|
111
125
|
- Include `flowSlug` / `stepSlug` when available
|
|
126
|
+
- Provide at least one stable identity: `sessionId` or `context.userId`
|
|
112
127
|
- Treat context like application state (update it as the user moves)
|
|
113
128
|
|
|
129
|
+
Identity guidance:
|
|
130
|
+
- Anonymous visitors: let SDK auto-manage `sessionId` or pass your own persisted ID.
|
|
131
|
+
- Logged-in users: pass stable `context.userId`.
|
|
132
|
+
|
|
114
133
|
## Onboarding Events
|
|
115
134
|
|
|
116
135
|
```ts
|
|
117
136
|
await client.sendEvent({
|
|
118
137
|
type: "STEP_COMPLETED",
|
|
119
138
|
context: {
|
|
120
|
-
|
|
139
|
+
service: "premium-support",
|
|
121
140
|
userTarget: "admin",
|
|
122
141
|
stepSlug: "connect_database",
|
|
123
142
|
},
|
|
@@ -161,7 +180,7 @@ const { send, data, loading, error } = useChat();
|
|
|
161
180
|
await send({
|
|
162
181
|
message: "How do I connect my database?",
|
|
163
182
|
sessionId: "sess_123",
|
|
164
|
-
context: {
|
|
183
|
+
context: { service: "premium-support", userTarget: "admin" },
|
|
165
184
|
});
|
|
166
185
|
```
|
|
167
186
|
|
|
@@ -176,9 +195,9 @@ start({
|
|
|
176
195
|
});
|
|
177
196
|
```
|
|
178
197
|
|
|
179
|
-
## Multi-
|
|
198
|
+
## Multi-Target
|
|
180
199
|
|
|
181
|
-
Use `context.product` to isolate
|
|
200
|
+
Use `context.product` or `context.service` to isolate onboarding targets under one account (apps, APIs, and services).
|
|
182
201
|
|
|
183
202
|
## Error Handling
|
|
184
203
|
|
package/dist/core/client.d.ts
CHANGED
|
@@ -4,10 +4,29 @@ type ChatCompletionRequest = components["schemas"]["ChatCompletionRequest"];
|
|
|
4
4
|
type ChatCompletionResponse = components["schemas"]["ChatCompletionResponse"];
|
|
5
5
|
type FeedbackRequest = components["schemas"]["FeedbackRequest"];
|
|
6
6
|
type OnboardingEventRequest = components["schemas"]["OnboardingEventRequest"];
|
|
7
|
+
type ClientOptions = {
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
autoSessionId?: boolean;
|
|
10
|
+
sessionStorageKey?: string;
|
|
11
|
+
getSessionId?: () => string | null | undefined;
|
|
12
|
+
setSessionId?: (sessionId: string) => void;
|
|
13
|
+
generateSessionId?: () => string;
|
|
14
|
+
};
|
|
7
15
|
export declare class OnboardingAIClient {
|
|
8
16
|
private readonly apiKey;
|
|
9
17
|
private readonly baseUrl;
|
|
10
|
-
|
|
18
|
+
private readonly autoSessionId;
|
|
19
|
+
private readonly sessionStorageKey;
|
|
20
|
+
private readonly getSessionIdHook;
|
|
21
|
+
private readonly setSessionIdHook;
|
|
22
|
+
private readonly generateSessionIdHook;
|
|
23
|
+
private inMemorySessionId;
|
|
24
|
+
constructor(apiKey: string, options?: ClientOptions);
|
|
25
|
+
private generateSessionId;
|
|
26
|
+
private readSessionIdFromStorage;
|
|
27
|
+
private persistSessionId;
|
|
28
|
+
private resolveStableSessionId;
|
|
29
|
+
private assertStableIdentity;
|
|
11
30
|
chat(payload: ChatCompletionRequest): Promise<ChatCompletionResponse>;
|
|
12
31
|
streamChat(payload: Omit<ChatCompletionRequest, "stream">, onEvent: (event: ChatSSEEvent) => void, onError?: (err: Error) => void): () => void;
|
|
13
32
|
sendEvent(payload: OnboardingEventRequest): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAK9E,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC,CAAC;AAEF,qBAAa,kBAAkB;IASjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,iBAAiB,CAAuB;gBAEnB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IAUxE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyB3E,UAAU,CACR,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC7B,MAAM,IAAI;IAqBP,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzD,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAY9D"}
|
package/dist/core/client.js
CHANGED
|
@@ -1,34 +1,119 @@
|
|
|
1
1
|
import { handleResponse } from "./utils.js";
|
|
2
2
|
import { streamSSE } from "./sse.js";
|
|
3
3
|
const DEFAULT_BASE_URL = "https://api.fluxyte.com/v1";
|
|
4
|
+
const DEFAULT_SESSION_STORAGE_KEY = "fluxyte_onboarding_session_id";
|
|
4
5
|
export class OnboardingAIClient {
|
|
5
|
-
constructor(apiKey) {
|
|
6
|
+
constructor(apiKey, options = {}) {
|
|
6
7
|
this.apiKey = apiKey;
|
|
7
|
-
this.
|
|
8
|
+
this.inMemorySessionId = null;
|
|
9
|
+
this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
|
|
10
|
+
this.autoSessionId = options.autoSessionId !== false;
|
|
11
|
+
this.sessionStorageKey =
|
|
12
|
+
options.sessionStorageKey ?? DEFAULT_SESSION_STORAGE_KEY;
|
|
13
|
+
this.getSessionIdHook = options.getSessionId;
|
|
14
|
+
this.setSessionIdHook = options.setSessionId;
|
|
15
|
+
this.generateSessionIdHook = options.generateSessionId;
|
|
16
|
+
}
|
|
17
|
+
generateSessionId() {
|
|
18
|
+
if (this.generateSessionIdHook)
|
|
19
|
+
return this.generateSessionIdHook();
|
|
20
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
21
|
+
return crypto.randomUUID();
|
|
22
|
+
}
|
|
23
|
+
return `sess_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;
|
|
24
|
+
}
|
|
25
|
+
readSessionIdFromStorage() {
|
|
26
|
+
if (this.getSessionIdHook) {
|
|
27
|
+
const fromHook = this.getSessionIdHook();
|
|
28
|
+
if (typeof fromHook === "string" && fromHook.trim())
|
|
29
|
+
return fromHook;
|
|
30
|
+
}
|
|
31
|
+
if (this.inMemorySessionId)
|
|
32
|
+
return this.inMemorySessionId;
|
|
33
|
+
if (typeof window !== "undefined" && window.localStorage) {
|
|
34
|
+
const raw = window.localStorage.getItem(this.sessionStorageKey);
|
|
35
|
+
if (raw?.trim())
|
|
36
|
+
return raw;
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
persistSessionId(sessionId) {
|
|
41
|
+
this.inMemorySessionId = sessionId;
|
|
42
|
+
if (this.setSessionIdHook) {
|
|
43
|
+
this.setSessionIdHook(sessionId);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (typeof window !== "undefined" && window.localStorage) {
|
|
47
|
+
window.localStorage.setItem(this.sessionStorageKey, sessionId);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
resolveStableSessionId(explicitSessionId, contextUserId) {
|
|
51
|
+
if (explicitSessionId?.trim())
|
|
52
|
+
return explicitSessionId;
|
|
53
|
+
if (contextUserId?.trim())
|
|
54
|
+
return undefined;
|
|
55
|
+
if (!this.autoSessionId)
|
|
56
|
+
return undefined;
|
|
57
|
+
const existing = this.readSessionIdFromStorage();
|
|
58
|
+
if (existing)
|
|
59
|
+
return existing;
|
|
60
|
+
const generated = this.generateSessionId();
|
|
61
|
+
this.persistSessionId(generated);
|
|
62
|
+
return generated;
|
|
63
|
+
}
|
|
64
|
+
assertStableIdentity(args) {
|
|
65
|
+
if (args.sessionId?.trim() || args.contextUserId?.trim())
|
|
66
|
+
return;
|
|
67
|
+
throw new Error(`Missing stable identity for ${args.surface}. Provide sessionId or context.userId.`);
|
|
8
68
|
}
|
|
9
69
|
async chat(payload) {
|
|
70
|
+
const sessionId = this.resolveStableSessionId(payload.sessionId, payload.context?.userId);
|
|
71
|
+
this.assertStableIdentity({
|
|
72
|
+
sessionId,
|
|
73
|
+
contextUserId: payload.context?.userId,
|
|
74
|
+
surface: "chat",
|
|
75
|
+
});
|
|
10
76
|
const res = await fetch(`${this.baseUrl}/chat/completions`, {
|
|
11
77
|
method: "POST",
|
|
12
78
|
headers: {
|
|
13
79
|
"Content-Type": "application/json",
|
|
14
80
|
"X-API-Key": this.apiKey,
|
|
15
81
|
},
|
|
16
|
-
body: JSON.stringify({ ...payload, stream: false }),
|
|
82
|
+
body: JSON.stringify({ ...payload, sessionId, stream: false }),
|
|
17
83
|
});
|
|
18
84
|
await handleResponse(res);
|
|
19
85
|
return res.json();
|
|
20
86
|
}
|
|
21
87
|
streamChat(payload, onEvent, onError) {
|
|
22
|
-
|
|
88
|
+
const sessionId = this.resolveStableSessionId(payload.sessionId, payload.context?.userId);
|
|
89
|
+
this.assertStableIdentity({
|
|
90
|
+
sessionId,
|
|
91
|
+
contextUserId: payload.context?.userId,
|
|
92
|
+
surface: "chat",
|
|
93
|
+
});
|
|
94
|
+
return streamSSE(`${this.baseUrl}/chat/completions`, this.apiKey, { ...payload, sessionId, stream: true }, onEvent, onError);
|
|
23
95
|
}
|
|
24
96
|
async sendEvent(payload) {
|
|
97
|
+
const context = payload.context ?? {};
|
|
98
|
+
const sessionId = this.resolveStableSessionId(context.sessionId, context.userId);
|
|
99
|
+
this.assertStableIdentity({
|
|
100
|
+
sessionId,
|
|
101
|
+
contextUserId: context.userId,
|
|
102
|
+
surface: "events",
|
|
103
|
+
});
|
|
25
104
|
const res = await fetch(`${this.baseUrl}/events`, {
|
|
26
105
|
method: "POST",
|
|
27
106
|
headers: {
|
|
28
107
|
"Content-Type": "application/json",
|
|
29
108
|
"X-API-Key": this.apiKey,
|
|
30
109
|
},
|
|
31
|
-
body: JSON.stringify(
|
|
110
|
+
body: JSON.stringify({
|
|
111
|
+
...payload,
|
|
112
|
+
context: {
|
|
113
|
+
...context,
|
|
114
|
+
sessionId: context.sessionId ?? sessionId,
|
|
115
|
+
},
|
|
116
|
+
}),
|
|
32
117
|
});
|
|
33
118
|
await handleResponse(res);
|
|
34
119
|
}
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* This file was auto-generated by openapi-typescript.
|
|
3
3
|
* Do not make direct changes to the file.
|
|
4
4
|
*/
|
|
5
|
+
/** WithRequired type helpers */
|
|
6
|
+
type WithRequired<T, K extends keyof T> = T & {
|
|
7
|
+
[P in K]-?: T[P];
|
|
8
|
+
};
|
|
5
9
|
export interface paths {
|
|
6
10
|
"/chat/completions": {
|
|
7
11
|
post: operations["createChatCompletion"];
|
|
@@ -45,7 +49,15 @@ export interface components {
|
|
|
45
49
|
* - alerts-feature
|
|
46
50
|
* - payments-api
|
|
47
51
|
*/
|
|
48
|
-
product
|
|
52
|
+
product?: string;
|
|
53
|
+
/**
|
|
54
|
+
* @description Service identifier when organization onboarding is service-led.
|
|
55
|
+
* Examples:
|
|
56
|
+
* - tax-advisory
|
|
57
|
+
* - compliance-audit
|
|
58
|
+
* - premium-support
|
|
59
|
+
*/
|
|
60
|
+
service?: string;
|
|
49
61
|
/**
|
|
50
62
|
* @description Target user role or persona for the onboarding flow.
|
|
51
63
|
* Examples:
|
|
@@ -56,6 +68,8 @@ export interface components {
|
|
|
56
68
|
userTarget: string;
|
|
57
69
|
/** @description Human-readable onboarding flow identifier */
|
|
58
70
|
flowSlug?: string;
|
|
71
|
+
/** @description Stable end-user session identifier for anonymous visitors */
|
|
72
|
+
sessionId?: string;
|
|
59
73
|
/** @description Human-readable onboarding step identifier */
|
|
60
74
|
stepSlug?: string;
|
|
61
75
|
endpoint?: string;
|
|
@@ -68,9 +82,10 @@ export interface components {
|
|
|
68
82
|
userId?: string;
|
|
69
83
|
[key: string]: unknown;
|
|
70
84
|
};
|
|
85
|
+
/** @description Provide at least one stable identifier: sessionId or context.userId. */
|
|
71
86
|
ChatCompletionRequest: {
|
|
72
87
|
message: string;
|
|
73
|
-
/** @description
|
|
88
|
+
/** @description Stable session identifier. Required when context.userId is not provided. */
|
|
74
89
|
sessionId?: string;
|
|
75
90
|
context: components["schemas"]["OnboardingContext"];
|
|
76
91
|
/** @default false */
|
|
@@ -112,13 +127,16 @@ export interface components {
|
|
|
112
127
|
ChatStreamEvent: components["schemas"]["ChatStreamMeta"] | components["schemas"]["ChatStreamDelta"] | components["schemas"]["ChatStreamDone"];
|
|
113
128
|
/** @enum {string} */
|
|
114
129
|
OnboardingEventType: "FLOW_STARTED" | "STEP_VIEWED" | "STEP_COMPLETED" | "FLOW_COMPLETED" | "ABANDONED";
|
|
115
|
-
|
|
130
|
+
/** @description Event context must include at least one stable identifier: context.sessionId or context.userId. */
|
|
131
|
+
OnboardingEventRequest: WithRequired<({
|
|
116
132
|
type: components["schemas"]["OnboardingEventType"];
|
|
117
133
|
context: components["schemas"]["OnboardingContext"];
|
|
118
134
|
meta?: {
|
|
119
135
|
[key: string]: unknown;
|
|
120
136
|
} | null;
|
|
121
|
-
}
|
|
137
|
+
}) & {
|
|
138
|
+
context?: Record<string, never>;
|
|
139
|
+
}, "type" | "context">;
|
|
122
140
|
/** @enum {string} */
|
|
123
141
|
FeedbackRating: "VERY_BAD" | "BAD" | "OK" | "GOOD" | "EXCELLENT";
|
|
124
142
|
FeedbackRequest: {
|
|
@@ -183,4 +201,5 @@ export interface operations {
|
|
|
183
201
|
};
|
|
184
202
|
};
|
|
185
203
|
}
|
|
204
|
+
export {};
|
|
186
205
|
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/generated/openapi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,KAAK;IACpB,mBAAmB,EAAE;QACnB,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,CAAC;KAC1C,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF;;;WAGG;QACH,cAAc,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;QACtD,qBAAqB;QACrB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACnD,qBAAqB;QACrB,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,eAAe,CAAC;QAC9F;;;;;;;;WAQG;QACH,iBAAiB,EAAE;YACjB;;;;;;eAMG;YACH,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/generated/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,KAAK,WAAW,GAAG,IAAI,CACrB,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,EAC9C,QAAQ,CACT,CAAC;AAGF,wBAAgB,OAAO;oBAOH,WAAW;;;
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,KAAK,WAAW,GAAG,IAAI,CACrB,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,EAC9C,QAAQ,CACT,CAAC;AAGF,wBAAgB,OAAO;oBAOH,WAAW;;;gBAmBk/D,qBAAsB;eAAgC,qBAAsB;;kBAAoE,qBAAsB;;;;;gBAAtK,qBAAsB;eAAgC,qBAAsB;;kBAAoE,qBAAsB;;;;EADtrE"}
|