@yourgpt/llm-sdk 2.1.4-alpha.1 → 2.1.4-alpha.3

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 (57) hide show
  1. package/dist/adapters/index.d.mts +4 -2
  2. package/dist/adapters/index.d.ts +4 -2
  3. package/dist/base-5n-UuPfS.d.mts +768 -0
  4. package/dist/base-Di31iy_8.d.ts +768 -0
  5. package/dist/fallback/index.d.mts +96 -0
  6. package/dist/fallback/index.d.ts +96 -0
  7. package/dist/fallback/index.js +284 -0
  8. package/dist/fallback/index.mjs +280 -0
  9. package/dist/index.d.mts +62 -3
  10. package/dist/index.d.ts +62 -3
  11. package/dist/index.js +117 -2
  12. package/dist/index.mjs +116 -3
  13. package/dist/providers/anthropic/index.d.mts +3 -1
  14. package/dist/providers/anthropic/index.d.ts +3 -1
  15. package/dist/providers/azure/index.d.mts +3 -1
  16. package/dist/providers/azure/index.d.ts +3 -1
  17. package/dist/providers/google/index.d.mts +3 -1
  18. package/dist/providers/google/index.d.ts +3 -1
  19. package/dist/providers/ollama/index.d.mts +4 -2
  20. package/dist/providers/ollama/index.d.ts +4 -2
  21. package/dist/providers/openai/index.d.mts +3 -1
  22. package/dist/providers/openai/index.d.ts +3 -1
  23. package/dist/providers/openrouter/index.d.mts +3 -1
  24. package/dist/providers/openrouter/index.d.ts +3 -1
  25. package/dist/providers/xai/index.d.mts +3 -1
  26. package/dist/providers/xai/index.d.ts +3 -1
  27. package/dist/types-BQl1suAv.d.mts +212 -0
  28. package/dist/types-C0vLXzuw.d.ts +355 -0
  29. package/dist/types-CNL8ZRne.d.ts +212 -0
  30. package/dist/types-CR8mi9I0.d.mts +417 -0
  31. package/dist/types-CR8mi9I0.d.ts +417 -0
  32. package/dist/types-VDgiUvH2.d.mts +355 -0
  33. package/dist/yourgpt/index.d.mts +77 -0
  34. package/dist/yourgpt/index.d.ts +77 -0
  35. package/dist/yourgpt/index.js +167 -0
  36. package/dist/yourgpt/index.mjs +164 -0
  37. package/package.json +12 -1
  38. package/dist/adapters/index.js.map +0 -1
  39. package/dist/adapters/index.mjs.map +0 -1
  40. package/dist/index.js.map +0 -1
  41. package/dist/index.mjs.map +0 -1
  42. package/dist/providers/anthropic/index.js.map +0 -1
  43. package/dist/providers/anthropic/index.mjs.map +0 -1
  44. package/dist/providers/azure/index.js.map +0 -1
  45. package/dist/providers/azure/index.mjs.map +0 -1
  46. package/dist/providers/google/index.js.map +0 -1
  47. package/dist/providers/google/index.mjs.map +0 -1
  48. package/dist/providers/ollama/index.js.map +0 -1
  49. package/dist/providers/ollama/index.mjs.map +0 -1
  50. package/dist/providers/openai/index.js.map +0 -1
  51. package/dist/providers/openai/index.mjs.map +0 -1
  52. package/dist/providers/openrouter/index.js.map +0 -1
  53. package/dist/providers/openrouter/index.mjs.map +0 -1
  54. package/dist/providers/xai/index.js.map +0 -1
  55. package/dist/providers/xai/index.mjs.map +0 -1
  56. package/dist/types-COAOEe_y.d.mts +0 -1460
  57. package/dist/types-COAOEe_y.d.ts +0 -1460
@@ -0,0 +1,164 @@
1
+ // src/yourgpt/index.ts
2
+ function createYourGPT(config) {
3
+ const base = (config.endpoint ?? "https://api.yourgpt.ai").replace(/\/$/, "");
4
+ const headers = {
5
+ "Content-Type": "application/json",
6
+ "api-key": config.apiKey
7
+ };
8
+ const onError = config.onError;
9
+ async function call(path, body = {}) {
10
+ const payload = { widget_uid: config.widgetUid, ...body };
11
+ const res = await fetch(`${base}${path}`, {
12
+ method: "POST",
13
+ headers,
14
+ body: JSON.stringify(payload)
15
+ });
16
+ if (!res.ok) {
17
+ const text = await res.text().catch(() => res.statusText);
18
+ throw new Error(`YourGPT API [${res.status}] ${path}: ${text}`);
19
+ }
20
+ return res.json();
21
+ }
22
+ async function safe(operation, params, fn) {
23
+ try {
24
+ return await fn();
25
+ } catch (err) {
26
+ const error = err instanceof Error ? err : new Error(String(err));
27
+ if (onError) {
28
+ onError(error, operation, params);
29
+ }
30
+ throw error;
31
+ }
32
+ }
33
+ return {
34
+ async createSession(data = {}) {
35
+ return safe("createSession", { title: data.title }, async () => {
36
+ const raw = await call(
37
+ "/chatbot/v1/copilot-sdk/createSession",
38
+ data
39
+ );
40
+ const d = raw.data ?? raw;
41
+ return {
42
+ id: String(d.session_uid ?? d.id),
43
+ title: d.title ?? void 0,
44
+ createdAt: new Date(d.createdAt ?? d.created_at),
45
+ updatedAt: new Date(d.updatedAt ?? d.updated_at)
46
+ };
47
+ });
48
+ },
49
+ async saveMessages(sessionId, messages) {
50
+ return safe(
51
+ "saveMessages",
52
+ {
53
+ sessionId,
54
+ messageCount: messages.length,
55
+ roles: messages.map((m) => m.role)
56
+ },
57
+ async () => {
58
+ const num = Number(sessionId);
59
+ const sessionUid = Number.isSafeInteger(num) ? num : sessionId;
60
+ const toolResults = /* @__PURE__ */ new Map();
61
+ for (const msg of messages) {
62
+ if (msg.role === "tool" && msg.toolCallId) {
63
+ toolResults.set(msg.toolCallId, msg.content ?? "");
64
+ }
65
+ }
66
+ for (const msg of messages) {
67
+ if (msg.role === "tool") {
68
+ continue;
69
+ } else if (msg.role === "assistant" && msg.toolCalls?.length) {
70
+ if (msg.content) {
71
+ await call("/chatbot/v1/copilot-sdk/createMessage", {
72
+ session_uid: sessionUid,
73
+ message: msg.content,
74
+ send_by: "assistant",
75
+ content_type: "text"
76
+ });
77
+ }
78
+ for (const tc of msg.toolCalls) {
79
+ const toolName = tc.function?.name ?? "unknown";
80
+ let toolArgs = {};
81
+ try {
82
+ toolArgs = typeof tc.function?.arguments === "string" ? JSON.parse(tc.function.arguments) : tc.function?.arguments ?? {};
83
+ } catch {
84
+ }
85
+ const response = tc.id ? toolResults.get(tc.id) ?? null : null;
86
+ await call("/chatbot/v1/copilot-sdk/createToolMessage", {
87
+ session_uid: sessionUid,
88
+ skill: "copilot-tool",
89
+ extra_data: {
90
+ tool_name: toolName,
91
+ tool_arguments: toolArgs,
92
+ tool_call_id: tc.id ?? null,
93
+ status: "completed",
94
+ tool_response: response
95
+ }
96
+ });
97
+ }
98
+ } else if (msg.role === "user" || msg.role === "assistant") {
99
+ await call("/chatbot/v1/copilot-sdk/createMessage", {
100
+ session_uid: sessionUid,
101
+ message: msg.content,
102
+ send_by: msg.role === "user" ? "user" : "assistant",
103
+ content_type: msg.contentType || "text",
104
+ ...msg.url ? { url: msg.url } : {}
105
+ });
106
+ }
107
+ }
108
+ }
109
+ );
110
+ },
111
+ async uploadFile(file) {
112
+ return safe(
113
+ "uploadFile",
114
+ {
115
+ filename: file.filename,
116
+ mimeType: file.mimeType,
117
+ dataLength: file.data?.length
118
+ },
119
+ async () => {
120
+ const raw = await call("/chatbot/v1/copilot-sdk/getSignedUrl", {
121
+ file_name: file.filename || `upload_${Date.now()}`
122
+ });
123
+ const signedUrl = raw.data?.upload_url ?? raw.data?.url ?? raw.url;
124
+ const successUrl = raw.data?.file_url ?? raw.data?.success_url ?? raw.success_url;
125
+ if (!signedUrl) {
126
+ throw new Error(
127
+ "uploadFile: no signed URL in response \u2014 " + JSON.stringify(raw)
128
+ );
129
+ }
130
+ let body;
131
+ let rawData = file.data;
132
+ const dataUriMatch = rawData.match(/^data:[^;]+;base64,(.+)$/);
133
+ if (dataUriMatch) rawData = dataUriMatch[1];
134
+ if (typeof Buffer !== "undefined") {
135
+ body = Buffer.from(rawData, "base64");
136
+ } else {
137
+ const binary = atob(rawData);
138
+ const bytes = new Uint8Array(binary.length);
139
+ for (let i = 0; i < binary.length; i++)
140
+ bytes[i] = binary.charCodeAt(i);
141
+ body = new Blob([bytes], { type: file.mimeType });
142
+ }
143
+ const uploadRes = await fetch(signedUrl, {
144
+ method: "PUT",
145
+ headers: { "Content-Type": file.mimeType },
146
+ body
147
+ });
148
+ if (!uploadRes.ok) {
149
+ throw new Error(
150
+ `uploadFile: PUT to signed URL failed with ${uploadRes.status}`
151
+ );
152
+ }
153
+ const finalUrl = successUrl || signedUrl.split("?")[0];
154
+ return { url: finalUrl };
155
+ }
156
+ );
157
+ }
158
+ };
159
+ }
160
+ var createYourGPTAdapter = createYourGPT;
161
+
162
+ export { createYourGPT, createYourGPTAdapter };
163
+ //# sourceMappingURL=index.mjs.map
164
+ //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yourgpt/llm-sdk",
3
- "version": "2.1.4-alpha.1",
3
+ "version": "2.1.4-alpha.3",
4
4
  "description": "AI SDK for building AI Agents with any LLM",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -50,11 +50,22 @@
50
50
  "types": "./dist/adapters/index.d.ts",
51
51
  "import": "./dist/adapters/index.mjs",
52
52
  "require": "./dist/adapters/index.js"
53
+ },
54
+ "./yourgpt": {
55
+ "types": "./dist/yourgpt/index.d.ts",
56
+ "import": "./dist/yourgpt/index.mjs",
57
+ "require": "./dist/yourgpt/index.js"
58
+ },
59
+ "./fallback": {
60
+ "types": "./dist/fallback/index.d.ts",
61
+ "import": "./dist/fallback/index.mjs",
62
+ "require": "./dist/fallback/index.js"
53
63
  }
54
64
  },
55
65
  "homepage": "https://copilot-sdk.yourgpt.ai",
56
66
  "files": [
57
67
  "dist",
68
+ "!dist/**/*.map",
58
69
  "README.md"
59
70
  ],
60
71
  "dependencies": {