@spenceriam/impulse 0.15.0 → 0.15.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 (242) hide show
  1. package/bin/impulse +95 -0
  2. package/package.json +17 -51
  3. package/postinstall.mjs +115 -0
  4. package/README.md +0 -194
  5. package/dist/api/client.d.ts +0 -53
  6. package/dist/api/client.d.ts.map +0 -1
  7. package/dist/api/client.js +0 -271
  8. package/dist/api/client.js.map +0 -1
  9. package/dist/api/index.d.ts +0 -6
  10. package/dist/api/index.d.ts.map +0 -1
  11. package/dist/api/index.js +0 -7
  12. package/dist/api/index.js.map +0 -1
  13. package/dist/api/stream.d.ts +0 -98
  14. package/dist/api/stream.d.ts.map +0 -1
  15. package/dist/api/stream.js +0 -202
  16. package/dist/api/stream.js.map +0 -1
  17. package/dist/api/types.d.ts +0 -1353
  18. package/dist/api/types.d.ts.map +0 -1
  19. package/dist/api/types.js +0 -143
  20. package/dist/api/types.js.map +0 -1
  21. package/dist/bash.txt +0 -28
  22. package/dist/bus/bus.d.ts +0 -21
  23. package/dist/bus/bus.d.ts.map +0 -1
  24. package/dist/bus/bus.js +0 -22
  25. package/dist/bus/bus.js.map +0 -1
  26. package/dist/bus/events.d.ts +0 -100
  27. package/dist/bus/events.d.ts.map +0 -1
  28. package/dist/bus/events.js +0 -45
  29. package/dist/bus/events.js.map +0 -1
  30. package/dist/bus/index.d.ts +0 -3
  31. package/dist/bus/index.d.ts.map +0 -1
  32. package/dist/bus/index.js +0 -3
  33. package/dist/bus/index.js.map +0 -1
  34. package/dist/file-edit.txt +0 -21
  35. package/dist/file-read.txt +0 -18
  36. package/dist/file-write.txt +0 -16
  37. package/dist/glob.txt +0 -19
  38. package/dist/global.d.ts +0 -8
  39. package/dist/global.d.ts.map +0 -1
  40. package/dist/global.js +0 -14
  41. package/dist/global.js.map +0 -1
  42. package/dist/grep.txt +0 -20
  43. package/dist/highlights-eq9cgrbb.scm +0 -604
  44. package/dist/highlights-ghv9g403.scm +0 -205
  45. package/dist/highlights-hk7bwhj4.scm +0 -284
  46. package/dist/highlights-r812a2qc.scm +0 -150
  47. package/dist/highlights-x6tmsnaa.scm +0 -115
  48. package/dist/index.d.ts +0 -2
  49. package/dist/index.d.ts.map +0 -1
  50. package/dist/index.js +0 -62122
  51. package/dist/index.js.map +0 -1
  52. package/dist/index.jsx +0 -5
  53. package/dist/index.jsx.map +0 -1
  54. package/dist/injections-73j83es3.scm +0 -27
  55. package/dist/input/at-refs.d.ts +0 -42
  56. package/dist/input/at-refs.d.ts.map +0 -1
  57. package/dist/input/at-refs.js +0 -154
  58. package/dist/input/at-refs.js.map +0 -1
  59. package/dist/input/history.d.ts +0 -26
  60. package/dist/input/history.d.ts.map +0 -1
  61. package/dist/input/history.js +0 -109
  62. package/dist/input/history.js.map +0 -1
  63. package/dist/input/index.d.ts +0 -5
  64. package/dist/input/index.d.ts.map +0 -1
  65. package/dist/input/index.js +0 -5
  66. package/dist/input/index.js.map +0 -1
  67. package/dist/input/paste.d.ts +0 -19
  68. package/dist/input/paste.d.ts.map +0 -1
  69. package/dist/input/paste.js +0 -75
  70. package/dist/input/paste.js.map +0 -1
  71. package/dist/input/shortcuts.d.ts +0 -6
  72. package/dist/input/shortcuts.d.ts.map +0 -1
  73. package/dist/input/shortcuts.js +0 -84
  74. package/dist/input/shortcuts.js.map +0 -1
  75. package/dist/mcp/index.d.ts +0 -3
  76. package/dist/mcp/index.d.ts.map +0 -1
  77. package/dist/mcp/index.js +0 -3
  78. package/dist/mcp/index.js.map +0 -1
  79. package/dist/mcp/manager.d.ts +0 -51
  80. package/dist/mcp/manager.d.ts.map +0 -1
  81. package/dist/mcp/manager.js +0 -158
  82. package/dist/mcp/manager.js.map +0 -1
  83. package/dist/mcp/types.d.ts +0 -18
  84. package/dist/mcp/types.d.ts.map +0 -1
  85. package/dist/mcp/types.js +0 -5
  86. package/dist/mcp/types.js.map +0 -1
  87. package/dist/session/todo.d.ts +0 -24
  88. package/dist/session/todo.d.ts.map +0 -1
  89. package/dist/session/todo.js +0 -39
  90. package/dist/session/todo.js.map +0 -1
  91. package/dist/storage/index.d.ts +0 -2
  92. package/dist/storage/index.d.ts.map +0 -1
  93. package/dist/storage/index.js +0 -2
  94. package/dist/storage/index.js.map +0 -1
  95. package/dist/storage/storage.d.ts +0 -13
  96. package/dist/storage/storage.d.ts.map +0 -1
  97. package/dist/storage/storage.js +0 -84
  98. package/dist/storage/storage.js.map +0 -1
  99. package/dist/task.txt +0 -26
  100. package/dist/todo-read.txt +0 -14
  101. package/dist/todo-write.txt +0 -166
  102. package/dist/tools/bash.d.ts +0 -22
  103. package/dist/tools/bash.d.ts.map +0 -1
  104. package/dist/tools/bash.js +0 -70
  105. package/dist/tools/bash.js.map +0 -1
  106. package/dist/tools/file-edit.d.ts +0 -22
  107. package/dist/tools/file-edit.d.ts.map +0 -1
  108. package/dist/tools/file-edit.js +0 -67
  109. package/dist/tools/file-edit.js.map +0 -1
  110. package/dist/tools/file-read.d.ts +0 -19
  111. package/dist/tools/file-read.d.ts.map +0 -1
  112. package/dist/tools/file-read.js +0 -70
  113. package/dist/tools/file-read.js.map +0 -1
  114. package/dist/tools/file-write.d.ts +0 -16
  115. package/dist/tools/file-write.d.ts.map +0 -1
  116. package/dist/tools/file-write.js +0 -45
  117. package/dist/tools/file-write.js.map +0 -1
  118. package/dist/tools/glob.d.ts +0 -16
  119. package/dist/tools/glob.d.ts.map +0 -1
  120. package/dist/tools/glob.js +0 -45
  121. package/dist/tools/glob.js.map +0 -1
  122. package/dist/tools/grep.d.ts +0 -19
  123. package/dist/tools/grep.d.ts.map +0 -1
  124. package/dist/tools/grep.js +0 -65
  125. package/dist/tools/grep.js.map +0 -1
  126. package/dist/tools/index.d.ts +0 -11
  127. package/dist/tools/index.d.ts.map +0 -1
  128. package/dist/tools/index.js +0 -11
  129. package/dist/tools/index.js.map +0 -1
  130. package/dist/tools/registry.d.ts +0 -22
  131. package/dist/tools/registry.d.ts.map +0 -1
  132. package/dist/tools/registry.js +0 -75
  133. package/dist/tools/registry.js.map +0 -1
  134. package/dist/tools/task.d.ts +0 -19
  135. package/dist/tools/task.d.ts.map +0 -1
  136. package/dist/tools/task.js +0 -51
  137. package/dist/tools/task.js.map +0 -1
  138. package/dist/tools/todo-read.d.ts +0 -7
  139. package/dist/tools/todo-read.d.ts.map +0 -1
  140. package/dist/tools/todo-read.js +0 -56
  141. package/dist/tools/todo-read.js.map +0 -1
  142. package/dist/tools/todo-write.d.ts +0 -38
  143. package/dist/tools/todo-write.d.ts.map +0 -1
  144. package/dist/tools/todo-write.js +0 -40
  145. package/dist/tools/todo-write.js.map +0 -1
  146. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  147. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  148. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  149. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  150. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
  151. package/dist/ui/App.d.ts +0 -6
  152. package/dist/ui/App.d.ts.map +0 -1
  153. package/dist/ui/App.jsx +0 -37
  154. package/dist/ui/App.jsx.map +0 -1
  155. package/dist/ui/components/Autocomplete.d.ts +0 -24
  156. package/dist/ui/components/Autocomplete.d.ts.map +0 -1
  157. package/dist/ui/components/Autocomplete.jsx +0 -67
  158. package/dist/ui/components/Autocomplete.jsx.map +0 -1
  159. package/dist/ui/components/ChatView.d.ts +0 -14
  160. package/dist/ui/components/ChatView.d.ts.map +0 -1
  161. package/dist/ui/components/ChatView.jsx +0 -11
  162. package/dist/ui/components/ChatView.jsx.map +0 -1
  163. package/dist/ui/components/InputArea.d.ts +0 -18
  164. package/dist/ui/components/InputArea.d.ts.map +0 -1
  165. package/dist/ui/components/InputArea.jsx +0 -35
  166. package/dist/ui/components/InputArea.jsx.map +0 -1
  167. package/dist/ui/components/MessageBlock.d.ts +0 -21
  168. package/dist/ui/components/MessageBlock.d.ts.map +0 -1
  169. package/dist/ui/components/MessageBlock.jsx +0 -94
  170. package/dist/ui/components/MessageBlock.jsx.map +0 -1
  171. package/dist/ui/components/Overlay.d.ts +0 -28
  172. package/dist/ui/components/Overlay.d.ts.map +0 -1
  173. package/dist/ui/components/Overlay.jsx +0 -102
  174. package/dist/ui/components/Overlay.jsx.map +0 -1
  175. package/dist/ui/components/ProgressBar.d.ts +0 -9
  176. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  177. package/dist/ui/components/ProgressBar.jsx +0 -17
  178. package/dist/ui/components/ProgressBar.jsx.map +0 -1
  179. package/dist/ui/components/Sidebar.d.ts +0 -22
  180. package/dist/ui/components/Sidebar.d.ts.map +0 -1
  181. package/dist/ui/components/Sidebar.jsx +0 -96
  182. package/dist/ui/components/Sidebar.jsx.map +0 -1
  183. package/dist/ui/components/StatusLine.d.ts +0 -6
  184. package/dist/ui/components/StatusLine.d.ts.map +0 -1
  185. package/dist/ui/components/StatusLine.jsx +0 -32
  186. package/dist/ui/components/StatusLine.jsx.map +0 -1
  187. package/dist/ui/components/ThinkingBlock.d.ts +0 -15
  188. package/dist/ui/components/ThinkingBlock.d.ts.map +0 -1
  189. package/dist/ui/components/ThinkingBlock.jsx +0 -33
  190. package/dist/ui/components/ThinkingBlock.jsx.map +0 -1
  191. package/dist/ui/components/TodoItem.d.ts +0 -22
  192. package/dist/ui/components/TodoItem.d.ts.map +0 -1
  193. package/dist/ui/components/TodoItem.jsx +0 -11
  194. package/dist/ui/components/TodoItem.jsx.map +0 -1
  195. package/dist/ui/components/ToolBlock.d.ts +0 -27
  196. package/dist/ui/components/ToolBlock.d.ts.map +0 -1
  197. package/dist/ui/components/ToolBlock.jsx +0 -76
  198. package/dist/ui/components/ToolBlock.jsx.map +0 -1
  199. package/dist/ui/components/index.d.ts +0 -12
  200. package/dist/ui/components/index.d.ts.map +0 -1
  201. package/dist/ui/components/index.js +0 -12
  202. package/dist/ui/components/index.js.map +0 -1
  203. package/dist/ui/context/index.d.ts +0 -4
  204. package/dist/ui/context/index.d.ts.map +0 -1
  205. package/dist/ui/context/index.js +0 -4
  206. package/dist/ui/context/index.js.map +0 -1
  207. package/dist/ui/context/mode.d.ts +0 -24
  208. package/dist/ui/context/mode.d.ts.map +0 -1
  209. package/dist/ui/context/mode.jsx +0 -53
  210. package/dist/ui/context/mode.jsx.map +0 -1
  211. package/dist/ui/context/session.d.ts +0 -43
  212. package/dist/ui/context/session.d.ts.map +0 -1
  213. package/dist/ui/context/session.jsx +0 -63
  214. package/dist/ui/context/session.jsx.map +0 -1
  215. package/dist/ui/context/todo.d.ts +0 -32
  216. package/dist/ui/context/todo.d.ts.map +0 -1
  217. package/dist/ui/context/todo.jsx +0 -75
  218. package/dist/ui/context/todo.jsx.map +0 -1
  219. package/dist/ui/design.d.ts +0 -182
  220. package/dist/ui/design.d.ts.map +0 -1
  221. package/dist/ui/design.js +0 -189
  222. package/dist/ui/design.js.map +0 -1
  223. package/dist/ui/index.d.ts +0 -4
  224. package/dist/ui/index.d.ts.map +0 -1
  225. package/dist/ui/index.js +0 -3
  226. package/dist/ui/index.js.map +0 -1
  227. package/dist/util/config.d.ts +0 -22
  228. package/dist/util/config.d.ts.map +0 -1
  229. package/dist/util/config.js +0 -55
  230. package/dist/util/config.js.map +0 -1
  231. package/dist/util/instructions.d.ts +0 -39
  232. package/dist/util/instructions.d.ts.map +0 -1
  233. package/dist/util/instructions.js +0 -96
  234. package/dist/util/instructions.js.map +0 -1
  235. package/dist/util/lock.d.ts +0 -18
  236. package/dist/util/lock.d.ts.map +0 -1
  237. package/dist/util/lock.js +0 -65
  238. package/dist/util/lock.js.map +0 -1
  239. package/dist/util/logger.d.ts +0 -8
  240. package/dist/util/logger.d.ts.map +0 -1
  241. package/dist/util/logger.js +0 -81
  242. package/dist/util/logger.js.map +0 -1
@@ -1,271 +0,0 @@
1
- import OpenAI from "openai";
2
- import { load as loadConfig } from "../util/config";
3
- import * as logger from "../util/logger";
4
- /**
5
- * GLM API Client
6
- * OpenAI-compatible client for Z.AI Coding Plan API
7
- */
8
- // Z.AI Coding Plan API endpoint (required - no fallback)
9
- const BASE_URL = "https://api.z.ai/api/coding/paas/v4/";
10
- // Retry configuration
11
- const MAX_RETRIES = 5;
12
- const INITIAL_BACKOFF_MS = 1000;
13
- const MAX_BACKOFF_MS = 32000;
14
- // Retryable HTTP status codes
15
- const RETRYABLE_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504]);
16
- export class GLMClientError extends Error {
17
- code;
18
- statusCode;
19
- constructor(message, code, statusCode) {
20
- super(message);
21
- this.code = code;
22
- this.statusCode = statusCode;
23
- this.name = "GLMClientError";
24
- }
25
- }
26
- export class GLMAuthError extends GLMClientError {
27
- constructor(message) {
28
- super(message, "auth_error", 401);
29
- this.name = "GLMAuthError";
30
- }
31
- }
32
- export class GLMRateLimitError extends GLMClientError {
33
- retryAfter;
34
- constructor(message, retryAfter) {
35
- super(message, "rate_limit", 429);
36
- this.retryAfter = retryAfter;
37
- this.name = "GLMRateLimitError";
38
- }
39
- }
40
- class GLMClientImpl {
41
- client = null;
42
- apiKey = null;
43
- async getClient() {
44
- if (this.client && this.apiKey) {
45
- return this.client;
46
- }
47
- const config = await loadConfig();
48
- if (!config.apiKey) {
49
- throw new GLMAuthError("API key not configured. Set GLM_API_KEY environment variable or configure in ~/.config/glm-cli/config.json");
50
- }
51
- this.apiKey = config.apiKey;
52
- this.client = new OpenAI({
53
- apiKey: config.apiKey,
54
- baseURL: BASE_URL,
55
- maxRetries: 0, // We handle retries ourselves
56
- });
57
- return this.client;
58
- }
59
- async sleep(ms) {
60
- return new Promise((resolve) => setTimeout(resolve, ms));
61
- }
62
- calculateBackoff(attempt) {
63
- const backoff = INITIAL_BACKOFF_MS * Math.pow(2, attempt);
64
- const jitter = Math.random() * 0.3 * backoff; // 30% jitter
65
- return Math.min(backoff + jitter, MAX_BACKOFF_MS);
66
- }
67
- isRetryableError(error) {
68
- if (error instanceof OpenAI.APIError) {
69
- return RETRYABLE_STATUS_CODES.has(error.status);
70
- }
71
- // Network errors are retryable
72
- if (error instanceof Error && error.message.includes("fetch")) {
73
- return true;
74
- }
75
- return false;
76
- }
77
- async executeWithRetry(operation, signal) {
78
- let lastError = null;
79
- for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
80
- // Check for abort before each attempt
81
- if (signal?.aborted) {
82
- throw new GLMClientError("Request aborted", "aborted");
83
- }
84
- try {
85
- return await operation();
86
- }
87
- catch (error) {
88
- lastError = error instanceof Error ? error : new Error(String(error));
89
- // Don't retry auth errors
90
- if (error instanceof OpenAI.AuthenticationError) {
91
- throw new GLMAuthError(error.message);
92
- }
93
- // Handle rate limiting
94
- if (error instanceof OpenAI.RateLimitError) {
95
- const retryAfter = parseInt(error.headers?.["retry-after"] ?? "60", 10);
96
- if (attempt === MAX_RETRIES - 1) {
97
- throw new GLMRateLimitError(error.message, retryAfter);
98
- }
99
- await logger.warn(`Rate limited, waiting ${retryAfter}s before retry`);
100
- await this.sleep(retryAfter * 1000);
101
- continue;
102
- }
103
- // Only retry on retryable errors
104
- if (!this.isRetryableError(error)) {
105
- throw error;
106
- }
107
- // Last attempt, throw
108
- if (attempt === MAX_RETRIES - 1) {
109
- await logger.error(`All ${MAX_RETRIES} retry attempts failed`);
110
- throw lastError;
111
- }
112
- const backoff = this.calculateBackoff(attempt);
113
- await logger.warn(`Request failed, retrying in ${Math.round(backoff)}ms (attempt ${attempt + 1}/${MAX_RETRIES})`);
114
- await this.sleep(backoff);
115
- }
116
- }
117
- throw lastError ?? new GLMClientError("Unknown error during retry");
118
- }
119
- /**
120
- * Create a chat completion (non-streaming)
121
- */
122
- async complete(options) {
123
- const client = await this.getClient();
124
- const config = await loadConfig();
125
- const response = await this.executeWithRetry(async () => {
126
- // Build request with only defined properties (exactOptionalPropertyTypes)
127
- const request = {
128
- model: options.model ?? config.defaultModel,
129
- messages: options.messages,
130
- stream: false,
131
- };
132
- if (options.temperature !== undefined)
133
- request.temperature = options.temperature;
134
- if (options.top_p !== undefined)
135
- request.top_p = options.top_p;
136
- if (options.max_tokens !== undefined)
137
- request.max_tokens = options.max_tokens;
138
- if (options.stop !== undefined)
139
- request.stop = options.stop;
140
- if (options.tools !== undefined) {
141
- request.tools = options.tools;
142
- }
143
- if (options.tool_choice !== undefined) {
144
- request.tool_choice = options.tool_choice;
145
- }
146
- const result = await client.chat.completions.create(request);
147
- return result;
148
- }, options.signal);
149
- // Transform to our type
150
- return {
151
- id: response.id,
152
- object: "chat.completion",
153
- created: response.created,
154
- model: response.model,
155
- choices: response.choices.map((choice) => {
156
- // Map finish_reason, filtering out deprecated "function_call"
157
- const finishReason = choice.finish_reason === "function_call"
158
- ? "tool_calls"
159
- : choice.finish_reason;
160
- return {
161
- index: choice.index,
162
- message: {
163
- role: choice.message.role,
164
- content: choice.message.content,
165
- tool_calls: choice.message.tool_calls?.map((tc) => ({
166
- id: tc.id,
167
- type: "function",
168
- function: {
169
- name: tc.function.name,
170
- arguments: tc.function.arguments,
171
- },
172
- })),
173
- // Extract reasoning_content if present (GLM-specific)
174
- reasoning_content: choice.message.reasoning_content,
175
- },
176
- finish_reason: finishReason,
177
- };
178
- }),
179
- usage: response.usage ? {
180
- prompt_tokens: response.usage.prompt_tokens,
181
- completion_tokens: response.usage.completion_tokens,
182
- total_tokens: response.usage.total_tokens,
183
- } : undefined,
184
- };
185
- }
186
- /**
187
- * Create a streaming chat completion
188
- * Returns an async iterable of chunks
189
- */
190
- async *stream(options) {
191
- const client = await this.getClient();
192
- const config = await loadConfig();
193
- const stream = await this.executeWithRetry(async () => {
194
- // Build request with only defined properties (exactOptionalPropertyTypes)
195
- const request = {
196
- model: options.model ?? config.defaultModel,
197
- messages: options.messages,
198
- stream: true,
199
- };
200
- if (options.temperature !== undefined)
201
- request.temperature = options.temperature;
202
- if (options.top_p !== undefined)
203
- request.top_p = options.top_p;
204
- if (options.max_tokens !== undefined)
205
- request.max_tokens = options.max_tokens;
206
- if (options.stop !== undefined)
207
- request.stop = options.stop;
208
- if (options.tools !== undefined) {
209
- request.tools = options.tools;
210
- }
211
- if (options.tool_choice !== undefined) {
212
- request.tool_choice = options.tool_choice;
213
- }
214
- return client.chat.completions.create(request);
215
- }, options.signal);
216
- for await (const chunk of stream) {
217
- // Check abort signal during streaming
218
- if (options.signal?.aborted) {
219
- stream.controller.abort();
220
- return;
221
- }
222
- // Transform to our chunk type
223
- yield {
224
- id: chunk.id,
225
- object: "chat.completion.chunk",
226
- created: chunk.created,
227
- model: chunk.model,
228
- choices: chunk.choices.map((choice) => {
229
- // Map finish_reason, filtering out deprecated "function_call"
230
- const finishReason = choice.finish_reason === "function_call"
231
- ? "tool_calls"
232
- : choice.finish_reason;
233
- return {
234
- index: choice.index,
235
- delta: {
236
- role: choice.delta.role,
237
- content: choice.delta.content,
238
- // Extract reasoning_content if present (GLM-specific)
239
- reasoning_content: choice.delta.reasoning_content,
240
- tool_calls: choice.delta.tool_calls?.map((tc) => ({
241
- index: tc.index,
242
- id: tc.id,
243
- type: tc.type,
244
- function: tc.function ? {
245
- name: tc.function.name,
246
- arguments: tc.function.arguments,
247
- } : undefined,
248
- })),
249
- },
250
- finish_reason: finishReason,
251
- };
252
- }),
253
- usage: chunk.usage ? {
254
- prompt_tokens: chunk.usage.prompt_tokens,
255
- completion_tokens: chunk.usage.completion_tokens,
256
- total_tokens: chunk.usage.total_tokens,
257
- } : null,
258
- };
259
- }
260
- }
261
- /**
262
- * Reset the client (useful when API key changes)
263
- */
264
- reset() {
265
- this.client = null;
266
- this.apiKey = null;
267
- }
268
- }
269
- // Singleton instance
270
- export const GLMClient = new GLMClientImpl();
271
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export { GLMClient, GLMClientError, GLMAuthError, GLMRateLimitError } from "./client";
2
- export { StreamProcessor, processStream, processChunk, createStreamState, stateToMessage, getToolCalls, } from "./stream";
3
- export type { StreamState, StreamEvent, StreamEventHandler, } from "./stream";
4
- export type { GLMModel, MessageRole, ChatMessage, MessageContent, ToolCall, ToolDefinition, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ChatCompletionChoice, StreamChoice, StreamDelta, Usage, APIError, } from "./types";
5
- export { GLMModel as GLMModelSchema, MessageRole as MessageRoleSchema, ChatMessage as ChatMessageSchema, ChatCompletionRequest as ChatCompletionRequestSchema, ChatCompletionResponse as ChatCompletionResponseSchema, ChatCompletionChunk as ChatCompletionChunkSchema, } from "./types";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGtF,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,KAAK,EACL,QAAQ,GACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,WAAW,IAAI,iBAAiB,EAChC,WAAW,IAAI,iBAAiB,EAChC,qBAAqB,IAAI,2BAA2B,EACpD,sBAAsB,IAAI,4BAA4B,EACtD,mBAAmB,IAAI,yBAAyB,GACjD,MAAM,SAAS,CAAC"}
package/dist/api/index.js DELETED
@@ -1,7 +0,0 @@
1
- // GLM API Client
2
- export { GLMClient, GLMClientError, GLMAuthError, GLMRateLimitError } from "./client";
3
- // Streaming
4
- export { StreamProcessor, processStream, processChunk, createStreamState, stateToMessage, getToolCalls, } from "./stream";
5
- // Schemas (for validation)
6
- export { GLMModel as GLMModelSchema, MessageRole as MessageRoleSchema, ChatMessage as ChatMessageSchema, ChatCompletionRequest as ChatCompletionRequestSchema, ChatCompletionResponse as ChatCompletionResponseSchema, ChatCompletionChunk as ChatCompletionChunkSchema, } from "./types";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtF,YAAY;AACZ,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AA0BlB,2BAA2B;AAC3B,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,WAAW,IAAI,iBAAiB,EAChC,WAAW,IAAI,iBAAiB,EAChC,qBAAqB,IAAI,2BAA2B,EACpD,sBAAsB,IAAI,4BAA4B,EACtD,mBAAmB,IAAI,yBAAyB,GACjD,MAAM,SAAS,CAAC"}
@@ -1,98 +0,0 @@
1
- import type { ChatCompletionChunk, ChatMessage, ToolCall } from "./types";
2
- /**
3
- * Streaming Handler
4
- * Processes SSE chunks and aggregates content/reasoning
5
- */
6
- export interface StreamState {
7
- content: string;
8
- reasoningContent: string;
9
- role: ChatMessage["role"] | null;
10
- toolCalls: Map<number, PartialToolCall>;
11
- finishReason: "stop" | "length" | "tool_calls" | "content_filter" | null;
12
- usage: {
13
- promptTokens: number;
14
- completionTokens: number;
15
- totalTokens: number;
16
- } | null;
17
- }
18
- interface PartialToolCall {
19
- id: string;
20
- functionName: string;
21
- functionArguments: string;
22
- }
23
- export type StreamEvent = {
24
- type: "content";
25
- delta: string;
26
- } | {
27
- type: "reasoning";
28
- delta: string;
29
- } | {
30
- type: "tool_call_start";
31
- index: number;
32
- id: string;
33
- name: string;
34
- } | {
35
- type: "tool_call_delta";
36
- index: number;
37
- arguments: string;
38
- } | {
39
- type: "done";
40
- state: StreamState;
41
- };
42
- export type StreamEventHandler = (event: StreamEvent) => void;
43
- /**
44
- * Create a new stream state
45
- */
46
- export declare function createStreamState(): StreamState;
47
- /**
48
- * Process a single chunk and update state
49
- * Returns events generated from this chunk
50
- */
51
- export declare function processChunk(chunk: ChatCompletionChunk, state: StreamState): StreamEvent[];
52
- /**
53
- * Convert accumulated tool calls to final format
54
- */
55
- export declare function getToolCalls(state: StreamState): ToolCall[];
56
- /**
57
- * Convert stream state to a complete ChatMessage
58
- */
59
- export declare function stateToMessage(state: StreamState): ChatMessage;
60
- /**
61
- * High-level stream processor that handles async iteration
62
- */
63
- export declare class StreamProcessor {
64
- private state;
65
- private eventHandler;
66
- private abortController;
67
- constructor();
68
- /**
69
- * Set event handler for real-time updates
70
- */
71
- onEvent(handler: StreamEventHandler): this;
72
- /**
73
- * Get the current accumulated state
74
- */
75
- getState(): StreamState;
76
- /**
77
- * Get abort signal for cancellation
78
- */
79
- getAbortSignal(): AbortSignal;
80
- /**
81
- * Abort the stream
82
- */
83
- abort(): void;
84
- /**
85
- * Process an async iterable of chunks
86
- */
87
- process(chunks: AsyncIterable<ChatCompletionChunk>): Promise<StreamState>;
88
- /**
89
- * Reset for reuse
90
- */
91
- reset(): void;
92
- }
93
- /**
94
- * Convenience function to process a stream and return the final message
95
- */
96
- export declare function processStream(chunks: AsyncIterable<ChatCompletionChunk>, onEvent?: StreamEventHandler): Promise<ChatMessage>;
97
- export {};
98
- //# sourceMappingURL=stream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/api/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1E;;;GAGG;AAGH,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAC;IAEhB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAEjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAExC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAEzE,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;CACV;AAGD,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAGzC,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAS/C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,WAAW,GACjB,WAAW,EAAE,CA6Ef;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,EAAE,CAoB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAS9D;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,eAAe,CAAgC;;IAMvD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK1C;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,cAAc,IAAI,WAAW;IAO7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,GACzC,OAAO,CAAC,WAAW,CAAC;IAyBvB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAC1C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAOtB"}
@@ -1,202 +0,0 @@
1
- /**
2
- * Create a new stream state
3
- */
4
- export function createStreamState() {
5
- return {
6
- content: "",
7
- reasoningContent: "",
8
- role: null,
9
- toolCalls: new Map(),
10
- finishReason: null,
11
- usage: null,
12
- };
13
- }
14
- /**
15
- * Process a single chunk and update state
16
- * Returns events generated from this chunk
17
- */
18
- export function processChunk(chunk, state) {
19
- const events = [];
20
- for (const choice of chunk.choices) {
21
- const delta = choice.delta;
22
- // Update role if present
23
- if (delta.role) {
24
- state.role = delta.role;
25
- }
26
- // Process content delta
27
- if (delta.content) {
28
- state.content += delta.content;
29
- events.push({ type: "content", delta: delta.content });
30
- }
31
- // Process reasoning content (GLM thinking mode)
32
- if (delta.reasoning_content) {
33
- state.reasoningContent += delta.reasoning_content;
34
- events.push({ type: "reasoning", delta: delta.reasoning_content });
35
- }
36
- // Process tool calls
37
- if (delta.tool_calls) {
38
- for (const tc of delta.tool_calls) {
39
- const existing = state.toolCalls.get(tc.index);
40
- if (!existing) {
41
- // New tool call
42
- const partial = {
43
- id: tc.id ?? "",
44
- functionName: tc.function?.name ?? "",
45
- functionArguments: tc.function?.arguments ?? "",
46
- };
47
- state.toolCalls.set(tc.index, partial);
48
- if (tc.id && tc.function?.name) {
49
- events.push({
50
- type: "tool_call_start",
51
- index: tc.index,
52
- id: tc.id,
53
- name: tc.function.name,
54
- });
55
- }
56
- }
57
- else {
58
- // Accumulate to existing tool call
59
- if (tc.id)
60
- existing.id = tc.id;
61
- if (tc.function?.name)
62
- existing.functionName = tc.function.name;
63
- if (tc.function?.arguments) {
64
- existing.functionArguments += tc.function.arguments;
65
- events.push({
66
- type: "tool_call_delta",
67
- index: tc.index,
68
- arguments: tc.function.arguments,
69
- });
70
- }
71
- }
72
- }
73
- }
74
- // Update finish reason
75
- if (choice.finish_reason) {
76
- state.finishReason = choice.finish_reason;
77
- }
78
- }
79
- // Update usage if present (usually only on final chunk)
80
- if (chunk.usage) {
81
- state.usage = {
82
- promptTokens: chunk.usage.prompt_tokens,
83
- completionTokens: chunk.usage.completion_tokens,
84
- totalTokens: chunk.usage.total_tokens,
85
- };
86
- }
87
- return events;
88
- }
89
- /**
90
- * Convert accumulated tool calls to final format
91
- */
92
- export function getToolCalls(state) {
93
- const calls = [];
94
- // Sort by index to maintain order
95
- const sortedEntries = [...state.toolCalls.entries()].sort((a, b) => a[0] - b[0]);
96
- for (const [_, partial] of sortedEntries) {
97
- if (partial.id && partial.functionName) {
98
- calls.push({
99
- id: partial.id,
100
- type: "function",
101
- function: {
102
- name: partial.functionName,
103
- arguments: partial.functionArguments,
104
- },
105
- });
106
- }
107
- }
108
- return calls;
109
- }
110
- /**
111
- * Convert stream state to a complete ChatMessage
112
- */
113
- export function stateToMessage(state) {
114
- const toolCalls = getToolCalls(state);
115
- return {
116
- role: state.role ?? "assistant",
117
- content: state.content || null,
118
- reasoning_content: state.reasoningContent || undefined,
119
- tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
120
- };
121
- }
122
- /**
123
- * High-level stream processor that handles async iteration
124
- */
125
- export class StreamProcessor {
126
- state;
127
- eventHandler = null;
128
- abortController = null;
129
- constructor() {
130
- this.state = createStreamState();
131
- }
132
- /**
133
- * Set event handler for real-time updates
134
- */
135
- onEvent(handler) {
136
- this.eventHandler = handler;
137
- return this;
138
- }
139
- /**
140
- * Get the current accumulated state
141
- */
142
- getState() {
143
- return this.state;
144
- }
145
- /**
146
- * Get abort signal for cancellation
147
- */
148
- getAbortSignal() {
149
- if (!this.abortController) {
150
- this.abortController = new AbortController();
151
- }
152
- return this.abortController.signal;
153
- }
154
- /**
155
- * Abort the stream
156
- */
157
- abort() {
158
- this.abortController?.abort();
159
- }
160
- /**
161
- * Process an async iterable of chunks
162
- */
163
- async process(chunks) {
164
- for await (const chunk of chunks) {
165
- // Check for abort
166
- if (this.abortController?.signal.aborted) {
167
- break;
168
- }
169
- const events = processChunk(chunk, this.state);
170
- // Emit events
171
- if (this.eventHandler) {
172
- for (const event of events) {
173
- this.eventHandler(event);
174
- }
175
- }
176
- }
177
- // Emit done event
178
- if (this.eventHandler) {
179
- this.eventHandler({ type: "done", state: this.state });
180
- }
181
- return this.state;
182
- }
183
- /**
184
- * Reset for reuse
185
- */
186
- reset() {
187
- this.state = createStreamState();
188
- this.abortController = null;
189
- }
190
- }
191
- /**
192
- * Convenience function to process a stream and return the final message
193
- */
194
- export async function processStream(chunks, onEvent) {
195
- const processor = new StreamProcessor();
196
- if (onEvent) {
197
- processor.onEvent(onEvent);
198
- }
199
- const state = await processor.process(chunks);
200
- return stateToMessage(state);
201
- }
202
- //# sourceMappingURL=stream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/api/stream.ts"],"names":[],"mappings":"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"}