n8n-nodes-vercel-ai-sdk-universal-temp 0.3.9 → 0.3.10

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 (81) hide show
  1. package/dist/nodes/UniversalAI/UniversalAI.node.d.ts +0 -1
  2. package/dist/nodes/UniversalAI/UniversalAI.node.js +13 -18
  3. package/dist/nodes/UniversalAI/UniversalAI.node.js.map +1 -1
  4. package/dist/nodes/UniversalAI/providers/google.d.ts +1 -1
  5. package/dist/nodes/UniversalAI/providers/google.js +1 -1
  6. package/dist/nodes/UniversalAI/providers/google.js.map +1 -1
  7. package/dist/nodes/UniversalAI/providers/index.js +0 -4
  8. package/dist/nodes/UniversalAI/providers/index.js.map +1 -1
  9. package/dist/nodes/UniversalAI/providers/openaicompatible.d.ts +1 -1
  10. package/dist/nodes/UniversalAI/providers/openaicompatible.js +1 -1
  11. package/dist/nodes/UniversalAI/providers/openaicompatible.js.map +1 -1
  12. package/dist/nodes/UniversalAI/providers/strategy.d.ts +1 -1
  13. package/dist/nodes/UniversalAI/providers/types.d.ts +1 -1
  14. package/dist/nodes/UniversalAgent/UniversalAgent.node.d.ts +3 -0
  15. package/dist/nodes/UniversalAgent/UniversalAgent.node.js +17 -0
  16. package/dist/nodes/UniversalAgent/UniversalAgent.node.js.map +1 -1
  17. package/dist/nodes/UniversalAgent/UniversalAgentDescription.js +1438 -166
  18. package/dist/nodes/UniversalAgent/UniversalAgentDescription.js.map +1 -1
  19. package/dist/nodes/UniversalAgent/handlers/access-tokens.handler.d.ts +2 -0
  20. package/dist/nodes/UniversalAgent/handlers/access-tokens.handler.js +52 -0
  21. package/dist/nodes/UniversalAgent/handlers/access-tokens.handler.js.map +1 -0
  22. package/dist/nodes/UniversalAgent/handlers/agent-blocks.handler.d.ts +2 -0
  23. package/dist/nodes/UniversalAgent/handlers/agent-blocks.handler.js +114 -0
  24. package/dist/nodes/UniversalAgent/handlers/agent-blocks.handler.js.map +1 -0
  25. package/dist/nodes/UniversalAgent/handlers/agent.handler.js +203 -71
  26. package/dist/nodes/UniversalAgent/handlers/agent.handler.js.map +1 -1
  27. package/dist/nodes/UniversalAgent/handlers/chat.handler.js +55 -7
  28. package/dist/nodes/UniversalAgent/handlers/chat.handler.js.map +1 -1
  29. package/dist/nodes/UniversalAgent/handlers/identity.handler.js +19 -8
  30. package/dist/nodes/UniversalAgent/handlers/identity.handler.js.map +1 -1
  31. package/dist/nodes/UniversalAgent/handlers/mcp.handler.js +171 -26
  32. package/dist/nodes/UniversalAgent/handlers/mcp.handler.js.map +1 -1
  33. package/dist/nodes/UniversalAgent/handlers/messages.handler.d.ts +2 -0
  34. package/dist/nodes/UniversalAgent/handlers/messages.handler.js +59 -0
  35. package/dist/nodes/UniversalAgent/handlers/messages.handler.js.map +1 -0
  36. package/dist/nodes/UniversalAgent/handlers/passages.handler.d.ts +2 -0
  37. package/dist/nodes/UniversalAgent/handlers/passages.handler.js +88 -0
  38. package/dist/nodes/UniversalAgent/handlers/passages.handler.js.map +1 -0
  39. package/dist/nodes/UniversalAgent/handlers/templates.handler.js +22 -0
  40. package/dist/nodes/UniversalAgent/handlers/templates.handler.js.map +1 -1
  41. package/dist/nodes/UniversalAgent/handlers/tools.handler.js +54 -66
  42. package/dist/nodes/UniversalAgent/handlers/tools.handler.js.map +1 -1
  43. package/dist/nodes/UniversalAgent/handlers/utils.js +3 -4
  44. package/dist/nodes/UniversalAgent/handlers/utils.js.map +1 -1
  45. package/dist/nodes/UniversalEmbedding/UniversalEmbedding.node.js +25 -7
  46. package/dist/nodes/UniversalEmbedding/UniversalEmbedding.node.js.map +1 -1
  47. package/dist/nodes/UniversalImageGen/UniversalImageGen.node.js +1 -1
  48. package/dist/nodes/UniversalImageGen/UniversalImageGen.node.js.map +1 -1
  49. package/dist/nodes/UniversalSpeechGen/UniversalSpeechGen.node.d.ts +2 -2
  50. package/dist/nodes/UniversalSpeechGen/UniversalSpeechGen.node.js +5 -12
  51. package/dist/nodes/UniversalSpeechGen/UniversalSpeechGen.node.js.map +1 -1
  52. package/dist/nodes/shared/descriptions.js +20 -3
  53. package/dist/nodes/shared/descriptions.js.map +1 -1
  54. package/dist/nodes/shared/helpers.js +0 -12
  55. package/dist/nodes/shared/helpers.js.map +1 -1
  56. package/dist/nodes/shared/letta/client.d.ts +67 -19
  57. package/dist/nodes/shared/letta/client.js +353 -114
  58. package/dist/nodes/shared/letta/client.js.map +1 -1
  59. package/dist/nodes/shared/letta/load-options.d.ts +3 -0
  60. package/dist/nodes/shared/letta/load-options.js +93 -0
  61. package/dist/nodes/shared/letta/load-options.js.map +1 -1
  62. package/dist/nodes/shared/providers/factory.d.ts +0 -1
  63. package/dist/nodes/shared/providers/factory.js +35 -15
  64. package/dist/nodes/shared/providers/factory.js.map +1 -1
  65. package/dist/nodes/shared/providers/registry.js +1 -20
  66. package/dist/nodes/shared/providers/registry.js.map +1 -1
  67. package/dist/nodes/shared/types.d.ts +1 -1
  68. package/index.js +33 -0
  69. package/package.json +13 -13
  70. package/dist/credentials/GeminiCliApi.credentials.d.ts +0 -8
  71. package/dist/credentials/GeminiCliApi.credentials.js +0 -80
  72. package/dist/credentials/GeminiCliApi.credentials.js.map +0 -1
  73. package/dist/nodes/UniversalAI/providers/gemini-cli.d.ts +0 -5
  74. package/dist/nodes/UniversalAI/providers/gemini-cli.js +0 -12
  75. package/dist/nodes/UniversalAI/providers/gemini-cli.js.map +0 -1
  76. package/dist/nodes/UniversalAI/providers/letta.d.ts +0 -16
  77. package/dist/nodes/UniversalAI/providers/letta.js +0 -77
  78. package/dist/nodes/UniversalAI/providers/letta.js.map +0 -1
  79. package/dist/nodes/shared/providers/gemini-cli.d.ts +0 -2
  80. package/dist/nodes/shared/providers/gemini-cli.js +0 -180
  81. package/dist/nodes/shared/providers/gemini-cli.js.map +0 -1
@@ -15,7 +15,7 @@ class LettaClientWrapper {
15
15
  return await this.client.agents.retrieve(agentId);
16
16
  }
17
17
  catch (error) {
18
- const message = error instanceof Error ? error.message : String(error);
18
+ const message = this.getErrorMessage(error);
19
19
  if (message.includes('401') || message.includes('Unauthorized')) {
20
20
  throw new Error(`Authentication failed: Invalid or missing API key for Letta instance`);
21
21
  }
@@ -27,12 +27,13 @@ class LettaClientWrapper {
27
27
  }
28
28
  async listAgents(tags) {
29
29
  try {
30
- return await this.client.agents.list({
30
+ const result = this.client.agents.list({
31
31
  tags: tags || [],
32
32
  });
33
+ return await this.collectResult(result);
33
34
  }
34
35
  catch (error) {
35
- const message = error instanceof Error ? error.message : String(error);
36
+ const message = this.getErrorMessage(error);
36
37
  if (message.includes('401') || message.includes('Unauthorized')) {
37
38
  throw new Error(`Authentication failed: Invalid or missing API key for Letta instance`);
38
39
  }
@@ -44,7 +45,7 @@ class LettaClientWrapper {
44
45
  return await this.client.agents.create(params);
45
46
  }
46
47
  catch (error) {
47
- const message = error instanceof Error ? error.message : String(error);
48
+ const message = this.getErrorMessage(error);
48
49
  throw new Error(`Failed to create agent: ${message}`);
49
50
  }
50
51
  }
@@ -53,25 +54,74 @@ class LettaClientWrapper {
53
54
  return await this.client.agents.delete(agentId);
54
55
  }
55
56
  catch (error) {
56
- const message = error instanceof Error ? error.message : String(error);
57
+ const message = this.getErrorMessage(error);
57
58
  throw new Error(`Failed to delete agent: ${message}`);
58
59
  }
59
60
  }
60
61
  async updateAgent(agentId, updates) {
61
62
  try {
62
- return await this.client.agents.modify(agentId, updates);
63
+ return await this.client.agents.update(agentId, updates);
63
64
  }
64
65
  catch (error) {
65
- const message = error instanceof Error ? error.message : String(error);
66
+ const message = this.getErrorMessage(error);
66
67
  throw new Error(`Failed to update agent: ${message}`);
67
68
  }
68
69
  }
70
+ async listAgentBlocks(agentId, query) {
71
+ try {
72
+ const result = this.client.agents.blocks.list(agentId, query);
73
+ return await this.collectResult(result);
74
+ }
75
+ catch (error) {
76
+ const message = this.getErrorMessage(error);
77
+ throw new Error(`Failed to list agent blocks: ${message}`);
78
+ }
79
+ }
80
+ async getAgentBlock(agentId, blockLabel) {
81
+ try {
82
+ return await this.client.agents.blocks.retrieve(blockLabel, { agent_id: agentId });
83
+ }
84
+ catch (error) {
85
+ const message = this.getErrorMessage(error);
86
+ throw new Error(`Failed to get agent block: ${message}`);
87
+ }
88
+ }
89
+ async updateAgentBlock(agentId, blockLabel, updates) {
90
+ try {
91
+ return await this.client.agents.blocks.update(blockLabel, {
92
+ agent_id: agentId,
93
+ ...updates,
94
+ });
95
+ }
96
+ catch (error) {
97
+ const message = this.getErrorMessage(error);
98
+ throw new Error(`Failed to update agent block: ${message}`);
99
+ }
100
+ }
101
+ async attachAgentBlock(agentId, blockId) {
102
+ try {
103
+ return await this.client.agents.blocks.attach(blockId, { agent_id: agentId });
104
+ }
105
+ catch (error) {
106
+ const message = this.getErrorMessage(error);
107
+ throw new Error(`Failed to attach agent block: ${message}`);
108
+ }
109
+ }
110
+ async detachAgentBlock(agentId, blockId) {
111
+ try {
112
+ return await this.client.agents.blocks.detach(blockId, { agent_id: agentId });
113
+ }
114
+ catch (error) {
115
+ const message = this.getErrorMessage(error);
116
+ throw new Error(`Failed to detach agent block: ${message}`);
117
+ }
118
+ }
69
119
  async getIdentity(identityId) {
70
120
  try {
71
121
  return await this.client.identities.retrieve(identityId);
72
122
  }
73
123
  catch (error) {
74
- const message = error instanceof Error ? error.message : String(error);
124
+ const message = this.getErrorMessage(error);
75
125
  if (message.includes('404') || message.includes('not found')) {
76
126
  throw new Error(`Identity not found: ${identityId}`);
77
127
  }
@@ -80,10 +130,11 @@ class LettaClientWrapper {
80
130
  }
81
131
  async listIdentities() {
82
132
  try {
83
- return await this.client.identities.list();
133
+ const result = this.client.identities.list();
134
+ return await this.collectResult(result);
84
135
  }
85
136
  catch (error) {
86
- const message = error instanceof Error ? error.message : String(error);
137
+ const message = this.getErrorMessage(error);
87
138
  throw new Error(`Failed to list identities: ${message}`);
88
139
  }
89
140
  }
@@ -92,7 +143,7 @@ class LettaClientWrapper {
92
143
  return await this.client.identities.delete(identityId);
93
144
  }
94
145
  catch (error) {
95
- const message = error instanceof Error ? error.message : String(error);
146
+ const message = this.getErrorMessage(error);
96
147
  throw new Error(`Failed to delete identity: ${message}`);
97
148
  }
98
149
  }
@@ -101,22 +152,23 @@ class LettaClientWrapper {
101
152
  return await this.client.identities.update(identityId, updates);
102
153
  }
103
154
  catch (error) {
104
- const message = error instanceof Error ? error.message : String(error);
155
+ const message = this.getErrorMessage(error);
105
156
  throw new Error(`Failed to update identity: ${message}`);
106
157
  }
107
158
  }
108
159
  async getIdentityByIdentifierKey(identifierKey) {
109
160
  try {
110
- const identities = await this.client.identities.list({
111
- identifierKey,
161
+ const result = this.client.identities.list({
162
+ identifier_key: identifierKey,
163
+ limit: 1,
112
164
  });
113
- if (identities && identities.length > 0) {
165
+ const identities = await this.collectResult(result, 1);
166
+ if (identities.length > 0)
114
167
  return identities[0];
115
- }
116
168
  return null;
117
169
  }
118
170
  catch (error) {
119
- const message = error instanceof Error ? error.message : String(error);
171
+ const message = this.getErrorMessage(error);
120
172
  if (message.includes('404') || message.includes('not found')) {
121
173
  return null;
122
174
  }
@@ -137,15 +189,15 @@ class LettaClientWrapper {
137
189
  })
138
190
  .filter((p) => p !== null);
139
191
  return await this.client.identities.create({
140
- identifierKey,
192
+ identifier_key: identifierKey,
141
193
  name,
142
- identityType,
143
- agentIds,
194
+ identity_type: identityType,
195
+ agent_ids: agentIds,
144
196
  properties: propertiesToUpsert,
145
197
  });
146
198
  }
147
199
  catch (error) {
148
- const message = error instanceof Error ? error.message : String(error);
200
+ const message = this.getErrorMessage(error);
149
201
  throw new Error(`Failed to create identity: ${message}`);
150
202
  }
151
203
  }
@@ -212,10 +264,10 @@ class LettaClientWrapper {
212
264
  return existingIdentity;
213
265
  }
214
266
  return await this.client.identities.upsert({
215
- identifierKey,
267
+ identifier_key: identifierKey,
216
268
  name: finalName,
217
- identityType: finalIdentityType,
218
- agentIds: finalAgentIds,
269
+ identity_type: finalIdentityType,
270
+ agent_ids: finalAgentIds,
219
271
  properties: finalProperties,
220
272
  });
221
273
  }
@@ -295,7 +347,7 @@ class LettaClientWrapper {
295
347
  messages: [{ role: 'user', content: message }],
296
348
  };
297
349
  if (options.maxSteps) {
298
- messagePayload.maxSteps = options.maxSteps;
350
+ messagePayload.max_steps = options.maxSteps;
299
351
  }
300
352
  if (identityId) {
301
353
  messagePayload.messages[0].sender_id = identityId;
@@ -303,14 +355,35 @@ class LettaClientWrapper {
303
355
  if (options.background) {
304
356
  messagePayload.background = options.background;
305
357
  }
358
+ if (options.streaming) {
359
+ messagePayload.streaming = options.streaming;
360
+ }
306
361
  if (options.streamTokens) {
307
362
  messagePayload.stream_tokens = options.streamTokens;
308
363
  }
364
+ if (options.includePings) {
365
+ messagePayload.include_pings = options.includePings;
366
+ }
367
+ if (options.enableThinking && options.enableThinking !== 'auto') {
368
+ messagePayload.enable_thinking = options.enableThinking;
369
+ }
370
+ if (options.includeReturnMessageTypes) {
371
+ messagePayload.include_return_message_types = options.includeReturnMessageTypes;
372
+ }
373
+ if (options.useAssistantMessage) {
374
+ messagePayload.use_assistant_message = options.useAssistantMessage;
375
+ if (options.assistantMessageToolName) {
376
+ messagePayload.assistant_message_tool_name = options.assistantMessageToolName;
377
+ }
378
+ if (options.assistantMessageToolKwarg) {
379
+ messagePayload.assistant_message_tool_kwarg = options.assistantMessageToolKwarg;
380
+ }
381
+ }
309
382
  try {
310
383
  return await this.client.agents.messages.create(agentId, messagePayload);
311
384
  }
312
385
  catch (error) {
313
- const message = error instanceof Error ? error.message : String(error);
386
+ const message = this.getErrorMessage(error);
314
387
  throw new Error(`Failed to send message to agent ${agentId}: ${message}`);
315
388
  }
316
389
  }
@@ -335,49 +408,30 @@ class LettaClientWrapper {
335
408
  async listLlmModels() {
336
409
  try {
337
410
  const response = await this.client.models.list();
338
- if (Array.isArray(response)) {
339
- return response;
340
- }
341
- if (response && Array.isArray(response.data)) {
342
- return response.data;
343
- }
344
- if (response && Array.isArray(response.models)) {
345
- return response.models;
346
- }
347
- console.warn('Unexpected response structure from models.list():', response);
348
- return [];
411
+ return await this.collectResult(response);
349
412
  }
350
413
  catch (error) {
351
- const message = error instanceof Error ? error.message : String(error);
414
+ const message = this.getErrorMessage(error);
352
415
  throw new Error(`Failed to list LLM models: ${message}`);
353
416
  }
354
417
  }
355
418
  async listEmbeddingModels() {
356
419
  try {
357
420
  const response = await this.client.models.embeddings.list();
358
- if (Array.isArray(response)) {
359
- return response;
360
- }
361
- if (response && Array.isArray(response.data)) {
362
- return response.data;
363
- }
364
- if (response && Array.isArray(response.models)) {
365
- return response.models;
366
- }
367
- console.warn('Unexpected response structure from models.embeddings.list():', response);
368
- return [];
421
+ return await this.collectResult(response);
369
422
  }
370
423
  catch (error) {
371
- const message = error instanceof Error ? error.message : String(error);
424
+ const message = this.getErrorMessage(error);
372
425
  throw new Error(`Failed to list embedding models: ${message}`);
373
426
  }
374
427
  }
375
428
  async listTools() {
376
429
  try {
377
- return await this.client.tools.list();
430
+ const result = this.client.tools.list();
431
+ return await this.collectResult(result);
378
432
  }
379
433
  catch (error) {
380
- const message = error instanceof Error ? error.message : String(error);
434
+ const message = this.getErrorMessage(error);
381
435
  throw new Error(`Failed to list tools: ${message}`);
382
436
  }
383
437
  }
@@ -386,7 +440,7 @@ class LettaClientWrapper {
386
440
  return await this.client.tools.create(params);
387
441
  }
388
442
  catch (error) {
389
- const message = error instanceof Error ? error.message : String(error);
443
+ const message = this.getErrorMessage(error);
390
444
  throw new Error(`Failed to create tool: ${message}`);
391
445
  }
392
446
  }
@@ -395,7 +449,7 @@ class LettaClientWrapper {
395
449
  return await this.client.tools.retrieve(toolId);
396
450
  }
397
451
  catch (error) {
398
- const message = error instanceof Error ? error.message : String(error);
452
+ const message = this.getErrorMessage(error);
399
453
  throw new Error(`Failed to get tool: ${message}`);
400
454
  }
401
455
  }
@@ -404,7 +458,7 @@ class LettaClientWrapper {
404
458
  return await this.client.tools.update(toolId, updates);
405
459
  }
406
460
  catch (error) {
407
- const message = error instanceof Error ? error.message : String(error);
461
+ const message = this.getErrorMessage(error);
408
462
  throw new Error(`Failed to update tool: ${message}`);
409
463
  }
410
464
  }
@@ -413,7 +467,7 @@ class LettaClientWrapper {
413
467
  return await this.client.tools.delete(toolId);
414
468
  }
415
469
  catch (error) {
416
- const message = error instanceof Error ? error.message : String(error);
470
+ const message = this.getErrorMessage(error);
417
471
  throw new Error(`Failed to delete tool: ${message}`);
418
472
  }
419
473
  }
@@ -422,25 +476,26 @@ class LettaClientWrapper {
422
476
  return await this.client.tools.upsert(params);
423
477
  }
424
478
  catch (error) {
425
- const message = error instanceof Error ? error.message : String(error);
479
+ const message = this.getErrorMessage(error);
426
480
  throw new Error(`Failed to upsert tool: ${message}`);
427
481
  }
428
482
  }
429
- async upsertBaseTools() {
483
+ async searchTools(params) {
430
484
  try {
431
- return await this.client.tools.upsertBaseTools();
485
+ return await this.client.tools.search(params);
432
486
  }
433
487
  catch (error) {
434
- const message = error instanceof Error ? error.message : String(error);
435
- throw new Error(`Failed to upsert base tools: ${message}`);
488
+ const message = this.getErrorMessage(error);
489
+ throw new Error(`Failed to search tools: ${message}`);
436
490
  }
437
491
  }
438
492
  async listBlocks(limit) {
439
493
  try {
440
- return await this.client.blocks.list({ limit });
494
+ const result = this.client.blocks.list({ limit });
495
+ return await this.collectResult(result);
441
496
  }
442
497
  catch (error) {
443
- const message = error instanceof Error ? error.message : String(error);
498
+ const message = this.getErrorMessage(error);
444
499
  throw new Error(`Failed to list blocks: ${message}`);
445
500
  }
446
501
  }
@@ -449,7 +504,7 @@ class LettaClientWrapper {
449
504
  return await this.client.blocks.create(params);
450
505
  }
451
506
  catch (error) {
452
- const message = error instanceof Error ? error.message : String(error);
507
+ const message = this.getErrorMessage(error);
453
508
  throw new Error(`Failed to create block: ${message}`);
454
509
  }
455
510
  }
@@ -458,7 +513,7 @@ class LettaClientWrapper {
458
513
  return await this.client.blocks.retrieve(blockId);
459
514
  }
460
515
  catch (error) {
461
- const message = error instanceof Error ? error.message : String(error);
516
+ const message = this.getErrorMessage(error);
462
517
  throw new Error(`Failed to get block: ${message}`);
463
518
  }
464
519
  }
@@ -467,7 +522,7 @@ class LettaClientWrapper {
467
522
  return await this.client.blocks.update(blockId, updates);
468
523
  }
469
524
  catch (error) {
470
- const message = error instanceof Error ? error.message : String(error);
525
+ const message = this.getErrorMessage(error);
471
526
  throw new Error(`Failed to update block: ${message}`);
472
527
  }
473
528
  }
@@ -476,16 +531,17 @@ class LettaClientWrapper {
476
531
  return await this.client.blocks.delete(blockId);
477
532
  }
478
533
  catch (error) {
479
- const message = error instanceof Error ? error.message : String(error);
534
+ const message = this.getErrorMessage(error);
480
535
  throw new Error(`Failed to delete block: ${message}`);
481
536
  }
482
537
  }
483
538
  async listFolders() {
484
539
  try {
485
- return await this.client.folders.list();
540
+ const result = this.client.folders.list();
541
+ return await this.collectResult(result);
486
542
  }
487
543
  catch (error) {
488
- const message = error instanceof Error ? error.message : String(error);
544
+ const message = this.getErrorMessage(error);
489
545
  throw new Error(`Failed to list folders: ${message}`);
490
546
  }
491
547
  }
@@ -494,7 +550,7 @@ class LettaClientWrapper {
494
550
  return await this.client.folders.create(params);
495
551
  }
496
552
  catch (error) {
497
- const message = error instanceof Error ? error.message : String(error);
553
+ const message = this.getErrorMessage(error);
498
554
  throw new Error(`Failed to create folder: ${message}`);
499
555
  }
500
556
  }
@@ -503,7 +559,7 @@ class LettaClientWrapper {
503
559
  return await this.client.folders.retrieve(folderId);
504
560
  }
505
561
  catch (error) {
506
- const message = error instanceof Error ? error.message : String(error);
562
+ const message = this.getErrorMessage(error);
507
563
  throw new Error(`Failed to get folder: ${message}`);
508
564
  }
509
565
  }
@@ -512,7 +568,7 @@ class LettaClientWrapper {
512
568
  return await this.client.folders.update(folderId, updates);
513
569
  }
514
570
  catch (error) {
515
- const message = error instanceof Error ? error.message : String(error);
571
+ const message = this.getErrorMessage(error);
516
572
  throw new Error(`Failed to update folder: ${message}`);
517
573
  }
518
574
  }
@@ -521,16 +577,17 @@ class LettaClientWrapper {
521
577
  return await this.client.folders.delete(folderId);
522
578
  }
523
579
  catch (error) {
524
- const message = error instanceof Error ? error.message : String(error);
580
+ const message = this.getErrorMessage(error);
525
581
  throw new Error(`Failed to delete folder: ${message}`);
526
582
  }
527
583
  }
528
584
  async listMcpServers() {
529
585
  try {
530
- return await this.client.mcpServers.list();
586
+ const result = this.client.mcpServers.list();
587
+ return await this.collectResult(result);
531
588
  }
532
589
  catch (error) {
533
- const message = error instanceof Error ? error.message : String(error);
590
+ const message = this.getErrorMessage(error);
534
591
  throw new Error(`Failed to list MCP servers: ${message}`);
535
592
  }
536
593
  }
@@ -539,7 +596,7 @@ class LettaClientWrapper {
539
596
  return await this.client.mcpServers.create(params);
540
597
  }
541
598
  catch (error) {
542
- const message = error instanceof Error ? error.message : String(error);
599
+ const message = this.getErrorMessage(error);
543
600
  throw new Error(`Failed to create MCP server: ${message}`);
544
601
  }
545
602
  }
@@ -548,7 +605,7 @@ class LettaClientWrapper {
548
605
  return await this.client.mcpServers.retrieve(serverId);
549
606
  }
550
607
  catch (error) {
551
- const message = error instanceof Error ? error.message : String(error);
608
+ const message = this.getErrorMessage(error);
552
609
  throw new Error(`Failed to get MCP server: ${message}`);
553
610
  }
554
611
  }
@@ -557,7 +614,7 @@ class LettaClientWrapper {
557
614
  return await this.client.mcpServers.update(serverId, updates);
558
615
  }
559
616
  catch (error) {
560
- const message = error instanceof Error ? error.message : String(error);
617
+ const message = this.getErrorMessage(error);
561
618
  throw new Error(`Failed to update MCP server: ${message}`);
562
619
  }
563
620
  }
@@ -566,25 +623,49 @@ class LettaClientWrapper {
566
623
  return await this.client.mcpServers.delete(serverId);
567
624
  }
568
625
  catch (error) {
569
- const message = error instanceof Error ? error.message : String(error);
626
+ const message = this.getErrorMessage(error);
570
627
  throw new Error(`Failed to delete MCP server: ${message}`);
571
628
  }
572
629
  }
573
- async refreshMcpServer(serverId) {
630
+ async refreshMcpServer(serverId, params) {
574
631
  try {
632
+ if (params && Object.keys(params).length) {
633
+ return await this.client.mcpServers.refresh(serverId, params);
634
+ }
575
635
  return await this.client.mcpServers.refresh(serverId);
576
636
  }
577
637
  catch (error) {
578
- const message = error instanceof Error ? error.message : String(error);
638
+ const message = this.getErrorMessage(error);
579
639
  throw new Error(`Failed to refresh MCP server: ${message}`);
580
640
  }
581
641
  }
642
+ async listMcpServerTools(serverId) {
643
+ try {
644
+ return await this.client.mcpServers.tools.list(serverId);
645
+ }
646
+ catch (error) {
647
+ const message = this.getErrorMessage(error);
648
+ throw new Error(`Failed to list MCP server tools: ${message}`);
649
+ }
650
+ }
651
+ async getMcpServerTool(serverId, toolId) {
652
+ try {
653
+ return await this.client.mcpServers.tools.retrieve(toolId, {
654
+ mcp_server_id: serverId,
655
+ });
656
+ }
657
+ catch (error) {
658
+ const message = this.getErrorMessage(error);
659
+ throw new Error(`Failed to retrieve MCP server tool: ${message}`);
660
+ }
661
+ }
582
662
  async listArchives() {
583
663
  try {
584
- return await this.client.archives.list();
664
+ const result = this.client.archives.list();
665
+ return await this.collectResult(result);
585
666
  }
586
667
  catch (error) {
587
- const message = error instanceof Error ? error.message : String(error);
668
+ const message = this.getErrorMessage(error);
588
669
  throw new Error(`Failed to list archives: ${message}`);
589
670
  }
590
671
  }
@@ -593,7 +674,7 @@ class LettaClientWrapper {
593
674
  return await this.client.archives.create(params);
594
675
  }
595
676
  catch (error) {
596
- const message = error instanceof Error ? error.message : String(error);
677
+ const message = this.getErrorMessage(error);
597
678
  throw new Error(`Failed to create archive: ${message}`);
598
679
  }
599
680
  }
@@ -602,7 +683,7 @@ class LettaClientWrapper {
602
683
  return await this.client.archives.retrieve(archiveId);
603
684
  }
604
685
  catch (error) {
605
- const message = error instanceof Error ? error.message : String(error);
686
+ const message = this.getErrorMessage(error);
606
687
  throw new Error(`Failed to get archive: ${message}`);
607
688
  }
608
689
  }
@@ -611,7 +692,7 @@ class LettaClientWrapper {
611
692
  return await this.client.archives.update(archiveId, updates);
612
693
  }
613
694
  catch (error) {
614
- const message = error instanceof Error ? error.message : String(error);
695
+ const message = this.getErrorMessage(error);
615
696
  throw new Error(`Failed to update archive: ${message}`);
616
697
  }
617
698
  }
@@ -620,16 +701,17 @@ class LettaClientWrapper {
620
701
  return await this.client.archives.delete(archiveId);
621
702
  }
622
703
  catch (error) {
623
- const message = error instanceof Error ? error.message : String(error);
704
+ const message = this.getErrorMessage(error);
624
705
  throw new Error(`Failed to delete archive: ${message}`);
625
706
  }
626
707
  }
627
708
  async listBatches() {
628
709
  try {
629
- return await this.client.batches.list();
710
+ const result = this.client.batches.list();
711
+ return await this.collectResult(result);
630
712
  }
631
713
  catch (error) {
632
- const message = error instanceof Error ? error.message : String(error);
714
+ const message = this.getErrorMessage(error);
633
715
  throw new Error(`Failed to list batches: ${message}`);
634
716
  }
635
717
  }
@@ -638,7 +720,7 @@ class LettaClientWrapper {
638
720
  return await this.client.batches.create(params);
639
721
  }
640
722
  catch (error) {
641
- const message = error instanceof Error ? error.message : String(error);
723
+ const message = this.getErrorMessage(error);
642
724
  throw new Error(`Failed to create batch: ${message}`);
643
725
  }
644
726
  }
@@ -647,7 +729,7 @@ class LettaClientWrapper {
647
729
  return await this.client.batches.retrieve(batchId);
648
730
  }
649
731
  catch (error) {
650
- const message = error instanceof Error ? error.message : String(error);
732
+ const message = this.getErrorMessage(error);
651
733
  throw new Error(`Failed to get batch: ${message}`);
652
734
  }
653
735
  }
@@ -656,16 +738,17 @@ class LettaClientWrapper {
656
738
  return await this.client.batches.delete(batchId);
657
739
  }
658
740
  catch (error) {
659
- const message = error instanceof Error ? error.message : String(error);
741
+ const message = this.getErrorMessage(error);
660
742
  throw new Error(`Failed to delete batch: ${message}`);
661
743
  }
662
744
  }
663
745
  async listGroups() {
664
746
  try {
665
- return await this.client.groups.list();
747
+ const result = this.client.groups.list();
748
+ return await this.collectResult(result);
666
749
  }
667
750
  catch (error) {
668
- const message = error instanceof Error ? error.message : String(error);
751
+ const message = this.getErrorMessage(error);
669
752
  throw new Error(`Failed to list groups: ${message}`);
670
753
  }
671
754
  }
@@ -674,7 +757,7 @@ class LettaClientWrapper {
674
757
  return await this.client.groups.create(params);
675
758
  }
676
759
  catch (error) {
677
- const message = error instanceof Error ? error.message : String(error);
760
+ const message = this.getErrorMessage(error);
678
761
  throw new Error(`Failed to create group: ${message}`);
679
762
  }
680
763
  }
@@ -683,7 +766,7 @@ class LettaClientWrapper {
683
766
  return await this.client.groups.retrieve(groupId);
684
767
  }
685
768
  catch (error) {
686
- const message = error instanceof Error ? error.message : String(error);
769
+ const message = this.getErrorMessage(error);
687
770
  throw new Error(`Failed to get group: ${message}`);
688
771
  }
689
772
  }
@@ -692,7 +775,7 @@ class LettaClientWrapper {
692
775
  return await this.client.groups.update(groupId, updates);
693
776
  }
694
777
  catch (error) {
695
- const message = error instanceof Error ? error.message : String(error);
778
+ const message = this.getErrorMessage(error);
696
779
  throw new Error(`Failed to update group: ${message}`);
697
780
  }
698
781
  }
@@ -701,16 +784,17 @@ class LettaClientWrapper {
701
784
  return await this.client.groups.delete(groupId);
702
785
  }
703
786
  catch (error) {
704
- const message = error instanceof Error ? error.message : String(error);
787
+ const message = this.getErrorMessage(error);
705
788
  throw new Error(`Failed to delete group: ${message}`);
706
789
  }
707
790
  }
708
791
  async listRuns() {
709
792
  try {
710
- return await this.client.runs.list();
793
+ const result = this.client.runs.list();
794
+ return await this.collectResult(result);
711
795
  }
712
796
  catch (error) {
713
- const message = error instanceof Error ? error.message : String(error);
797
+ const message = this.getErrorMessage(error);
714
798
  throw new Error(`Failed to list runs: ${message}`);
715
799
  }
716
800
  }
@@ -719,7 +803,7 @@ class LettaClientWrapper {
719
803
  return await this.client.runs.create(params);
720
804
  }
721
805
  catch (error) {
722
- const message = error instanceof Error ? error.message : String(error);
806
+ const message = this.getErrorMessage(error);
723
807
  throw new Error(`Failed to create run: ${message}`);
724
808
  }
725
809
  }
@@ -728,7 +812,7 @@ class LettaClientWrapper {
728
812
  return await this.client.runs.retrieve(runId);
729
813
  }
730
814
  catch (error) {
731
- const message = error instanceof Error ? error.message : String(error);
815
+ const message = this.getErrorMessage(error);
732
816
  throw new Error(`Failed to get run: ${message}`);
733
817
  }
734
818
  }
@@ -737,16 +821,17 @@ class LettaClientWrapper {
737
821
  return await this.client.runs.delete(runId);
738
822
  }
739
823
  catch (error) {
740
- const message = error instanceof Error ? error.message : String(error);
824
+ const message = this.getErrorMessage(error);
741
825
  throw new Error(`Failed to delete run: ${message}`);
742
826
  }
743
827
  }
744
828
  async listSteps(params) {
745
829
  try {
746
- return await this.client.steps.list(params);
830
+ const result = this.client.steps.list(params);
831
+ return await this.collectResult(result);
747
832
  }
748
833
  catch (error) {
749
- const message = error instanceof Error ? error.message : String(error);
834
+ const message = this.getErrorMessage(error);
750
835
  throw new Error(`Failed to list steps: ${message}`);
751
836
  }
752
837
  }
@@ -755,16 +840,17 @@ class LettaClientWrapper {
755
840
  return await this.client.steps.retrieve(stepId);
756
841
  }
757
842
  catch (error) {
758
- const message = error instanceof Error ? error.message : String(error);
843
+ const message = this.getErrorMessage(error);
759
844
  throw new Error(`Failed to get step: ${message}`);
760
845
  }
761
846
  }
762
847
  async listTags() {
763
848
  try {
764
- return await this.client.tags.list();
849
+ const result = this.client.tags.list();
850
+ return await this.collectResult(result);
765
851
  }
766
852
  catch (error) {
767
- const message = error instanceof Error ? error.message : String(error);
853
+ const message = this.getErrorMessage(error);
768
854
  throw new Error(`Failed to list tags: ${message}`);
769
855
  }
770
856
  }
@@ -773,16 +859,17 @@ class LettaClientWrapper {
773
859
  return await this.client.tags.retrieve(tagId);
774
860
  }
775
861
  catch (error) {
776
- const message = error instanceof Error ? error.message : String(error);
862
+ const message = this.getErrorMessage(error);
777
863
  throw new Error(`Failed to get tag: ${message}`);
778
864
  }
779
865
  }
780
866
  async listTemplates() {
781
867
  try {
782
- return await this.client.templates.list();
868
+ const result = this.client.templates.list();
869
+ return await this.collectResult(result);
783
870
  }
784
871
  catch (error) {
785
- const message = error instanceof Error ? error.message : String(error);
872
+ const message = this.getErrorMessage(error);
786
873
  throw new Error(`Failed to list templates: ${message}`);
787
874
  }
788
875
  }
@@ -791,7 +878,7 @@ class LettaClientWrapper {
791
878
  return await this.client.templates.create(params);
792
879
  }
793
880
  catch (error) {
794
- const message = error instanceof Error ? error.message : String(error);
881
+ const message = this.getErrorMessage(error);
795
882
  throw new Error(`Failed to create template: ${message}`);
796
883
  }
797
884
  }
@@ -800,7 +887,7 @@ class LettaClientWrapper {
800
887
  return await this.client.templates.retrieve(templateId);
801
888
  }
802
889
  catch (error) {
803
- const message = error instanceof Error ? error.message : String(error);
890
+ const message = this.getErrorMessage(error);
804
891
  throw new Error(`Failed to get template: ${message}`);
805
892
  }
806
893
  }
@@ -809,10 +896,162 @@ class LettaClientWrapper {
809
896
  return await this.client.templates.delete(templateId);
810
897
  }
811
898
  catch (error) {
812
- const message = error instanceof Error ? error.message : String(error);
899
+ const message = this.getErrorMessage(error);
813
900
  throw new Error(`Failed to delete template: ${message}`);
814
901
  }
815
902
  }
903
+ async updateTemplate(templateId, updates) {
904
+ try {
905
+ return await this.client.templates.update(templateId, updates);
906
+ }
907
+ catch (error) {
908
+ const message = this.getErrorMessage(error);
909
+ throw new Error(`Failed to update template: ${message}`);
910
+ }
911
+ }
912
+ async createAgentFromTemplate(templateVersion, params) {
913
+ try {
914
+ return await this.client.templates.agents.create(templateVersion, params);
915
+ }
916
+ catch (error) {
917
+ const message = this.getErrorMessage(error);
918
+ throw new Error(`Failed to create agent from template: ${message}`);
919
+ }
920
+ }
921
+ async createAccessToken(params) {
922
+ try {
923
+ return await this.client.accessTokens.create(params);
924
+ }
925
+ catch (error) {
926
+ const message = this.getErrorMessage(error);
927
+ throw new Error(`Failed to create access token: ${message}`);
928
+ }
929
+ }
930
+ async listAccessTokens() {
931
+ try {
932
+ const result = this.client.accessTokens.list();
933
+ return await this.collectResult(result);
934
+ }
935
+ catch (error) {
936
+ const message = this.getErrorMessage(error);
937
+ throw new Error(`Failed to list access tokens: ${message}`);
938
+ }
939
+ }
940
+ async deleteAccessToken(tokenId) {
941
+ try {
942
+ return await this.client.accessTokens.delete(tokenId);
943
+ }
944
+ catch (error) {
945
+ const message = this.getErrorMessage(error);
946
+ throw new Error(`Failed to delete access token: ${message}`);
947
+ }
948
+ }
949
+ async searchMessages(params) {
950
+ try {
951
+ return await this.client.messages.search(params);
952
+ }
953
+ catch (error) {
954
+ const message = this.getErrorMessage(error);
955
+ throw new Error(`Failed to search messages: ${message}`);
956
+ }
957
+ }
958
+ async listMessages(params) {
959
+ try {
960
+ const result = this.client.messages.list(params);
961
+ return await this.collectResult(result);
962
+ }
963
+ catch (error) {
964
+ const message = this.getErrorMessage(error);
965
+ throw new Error(`Failed to list messages: ${message}`);
966
+ }
967
+ }
968
+ async listAgentMessages(agentId, params) {
969
+ try {
970
+ const result = this.client.agents.messages.list(agentId, params);
971
+ return await this.collectResult(result);
972
+ }
973
+ catch (error) {
974
+ const message = this.getErrorMessage(error);
975
+ throw new Error(`Failed to list agent messages: ${message}`);
976
+ }
977
+ }
978
+ async searchPassages(params) {
979
+ try {
980
+ return await this.client.passages.search(params);
981
+ }
982
+ catch (error) {
983
+ const message = this.getErrorMessage(error);
984
+ throw new Error(`Failed to search passages: ${message}`);
985
+ }
986
+ }
987
+ async listAgentPassages(agentId, params) {
988
+ try {
989
+ const result = this.client.agents.passages.list(agentId, params);
990
+ return await this.collectResult(result);
991
+ }
992
+ catch (error) {
993
+ const message = this.getErrorMessage(error);
994
+ throw new Error(`Failed to list agent passages: ${message}`);
995
+ }
996
+ }
997
+ async createAgentPassage(agentId, params) {
998
+ try {
999
+ return await this.client.agents.passages.create(agentId, params);
1000
+ }
1001
+ catch (error) {
1002
+ const message = this.getErrorMessage(error);
1003
+ throw new Error(`Failed to create agent passage: ${message}`);
1004
+ }
1005
+ }
1006
+ async deleteAgentPassage(agentId, passageId) {
1007
+ try {
1008
+ return await this.client.agents.passages.delete(passageId, { agent_id: agentId });
1009
+ }
1010
+ catch (error) {
1011
+ const message = this.getErrorMessage(error);
1012
+ throw new Error(`Failed to delete agent passage: ${message}`);
1013
+ }
1014
+ }
1015
+ async runAgentTool(agentId, toolName, args) {
1016
+ try {
1017
+ return await this.client.agents.tools.run(toolName, {
1018
+ agent_id: agentId,
1019
+ args,
1020
+ });
1021
+ }
1022
+ catch (error) {
1023
+ const message = this.getErrorMessage(error);
1024
+ throw new Error(`Failed to run agent tool: ${message}`);
1025
+ }
1026
+ }
1027
+ getErrorMessage(error) {
1028
+ return error instanceof Error ? error.message : String(error);
1029
+ }
1030
+ async collectResult(result, limit) {
1031
+ if (!result)
1032
+ return [];
1033
+ if (Array.isArray(result))
1034
+ return result;
1035
+ if (typeof result === 'object' && result !== null) {
1036
+ const asAny = result;
1037
+ if (Array.isArray(asAny.data))
1038
+ return asAny.data;
1039
+ if (Array.isArray(asAny.models))
1040
+ return asAny.models;
1041
+ }
1042
+ const items = [];
1043
+ const maybeIterable = result;
1044
+ const isIterable = typeof maybeIterable?.[Symbol.asyncIterator] === 'function' ||
1045
+ typeof maybeIterable?.[Symbol.iterator] === 'function';
1046
+ if (!isIterable)
1047
+ return [];
1048
+ for await (const item of maybeIterable) {
1049
+ items.push(item);
1050
+ if (limit !== undefined && items.length >= limit)
1051
+ break;
1052
+ }
1053
+ return items;
1054
+ }
816
1055
  }
817
1056
  exports.LettaClientWrapper = LettaClientWrapper;
818
1057
  //# sourceMappingURL=client.js.map