@openserv-labs/sdk 1.0.1 → 1.1.0

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 CHANGED
@@ -12,6 +12,7 @@ A powerful TypeScript framework for building non-deterministic AI agents with ad
12
12
  - [Table of Contents](#table-of-contents)
13
13
  - [Features](#features)
14
14
  - [Framework Architecture](#framework-architecture)
15
+ - [Framework \& Blockchain Compatibility](#framework--blockchain-compatibility)
15
16
  - [Shadow Agents](#shadow-agents)
16
17
  - [Control Levels](#control-levels)
17
18
  - [Developer Focus](#developer-focus)
@@ -38,6 +39,8 @@ A powerful TypeScript framework for building non-deterministic AI agents with ad
38
39
  - [Workspace Management](#workspace-management)
39
40
  - [Get Files](#get-files)
40
41
  - [Upload File](#upload-file)
42
+ - [Integration Management](#integration-management)
43
+ - [Call Integration](#call-integration)
41
44
  - [Advanced Usage](#advanced-usage)
42
45
  - [OpenAI Process Runtime](#openai-process-runtime)
43
46
  - [Error Handling](#error-handling)
@@ -51,6 +54,8 @@ A powerful TypeScript framework for building non-deterministic AI agents with ad
51
54
  - 🤝 Inter-agent collaboration and communication
52
55
  - 🔌 Extensible agent architecture with custom capabilities
53
56
  - 🔧 Fully autonomous agent runtime with shadow agents
57
+ - 🌐 Framework-agnostic - integrate agents from any AI framework
58
+ - ⛓️ Blockchain-agnostic - compatible with any chain implementation
54
59
  - 🤖 Task execution and chat message handling
55
60
  - 🔄 Asynchronous task management
56
61
  - 📁 File operations and management
@@ -61,6 +66,22 @@ A powerful TypeScript framework for building non-deterministic AI agents with ad
61
66
 
62
67
  ## Framework Architecture
63
68
 
69
+ ### Framework & Blockchain Compatibility
70
+
71
+ OpenServ is designed to be completely framework and blockchain agnostic, allowing you to:
72
+
73
+ - Integrate agents built with any AI framework (e.g., LangChain, BabyAGI, Eliza, G.A.M.E, etc.)
74
+ - Connect agents operating on any blockchain network
75
+ - Mix and match different framework agents in the same workspace
76
+ - Maintain full compatibility with your existing agent implementations
77
+
78
+ This flexibility ensures you can:
79
+
80
+ - Use your preferred AI frameworks and tools
81
+ - Leverage existing agent implementations
82
+ - Integrate with any blockchain ecosystem
83
+ - Build cross-framework agent collaborations
84
+
64
85
  ### Shadow Agents
65
86
 
66
87
  Each agent is supported by two "shadow agents":
@@ -498,6 +519,52 @@ await agent.uploadFile({
498
519
  })
499
520
  ```
500
521
 
522
+ ### Integration Management
523
+
524
+ #### Call Integration
525
+
526
+ ```typescript
527
+ const response = await agent.callIntegration({
528
+ workspaceId: number,
529
+ integrationId: string,
530
+ details: {
531
+ endpoint: string,
532
+ method: string,
533
+ data?: object
534
+ }
535
+ })
536
+ ```
537
+
538
+ Allows agents to interact with external services and APIs that are integrated with OpenServ. This method provides a secure way to make API calls to configured integrations within a workspace. Authentication is handled securely and automatically through the OpenServ platform. This is primarily useful for calling external APIs in a deterministic way.
539
+
540
+ **Parameters:**
541
+
542
+ - `workspaceId`: ID of the workspace where the integration is configured
543
+ - `integrationId`: ID of the integration to call (e.g., 'twitter-v2', 'github')
544
+ - `details`: Object containing:
545
+ - `endpoint`: The endpoint to call on the integration
546
+ - `method`: HTTP method (GET, POST, etc.)
547
+ - `data`: Optional payload for the request
548
+
549
+ **Returns:** The response from the integration endpoint
550
+
551
+ **Example:**
552
+
553
+ ```typescript
554
+ // Example: Sending a tweet using Twitter integration
555
+ const response = await agent.callIntegration({
556
+ workspaceId: 123,
557
+ integrationId: 'twitter-v2',
558
+ details: {
559
+ endpoint: '/2/tweets',
560
+ method: 'POST',
561
+ data: {
562
+ text: 'Hello from my AI agent!'
563
+ }
564
+ }
565
+ })
566
+ ```
567
+
501
568
  ## Advanced Usage
502
569
 
503
570
  ### OpenAI Process Runtime
package/dist/agent.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type AxiosInstance } from 'axios';
2
- import type { GetFilesParams, UploadFileParams, MarkTaskAsErroredParams, CompleteTaskParams, SendChatMessageParams, GetTaskDetailParams, GetAgentsParams, GetTasksParams, CreateTaskParams, AddLogToTaskParams, RequestHumanAssistanceParams, UpdateTaskStatusParams, ProcessParams } from './types';
3
- import { actionSchema, doTaskActionSchema, respondChatMessageActionSchema } from './types';
2
+ import type { GetFilesParams, UploadFileParams, MarkTaskAsErroredParams, CompleteTaskParams, SendChatMessageParams, GetTaskDetailParams, GetAgentsParams, GetTasksParams, CreateTaskParams, AddLogToTaskParams, RequestHumanAssistanceParams, UpdateTaskStatusParams, ProcessParams, IntegrationCallRequest } from './types';
3
+ import type { doTaskActionSchema, respondChatMessageActionSchema } from './types';
4
+ import { actionSchema } from './types';
4
5
  import type { ChatCompletionMessageParam, ChatCompletion } from 'openai/resources/chat/completions';
5
6
  import OpenAI from 'openai';
6
7
  import type { z } from 'zod';
@@ -30,6 +31,13 @@ export interface AgentOptions {
30
31
  * Required when using the process() method.
31
32
  */
32
33
  openaiApiKey?: string;
34
+ /**
35
+ * Error handler function for all agent operations.
36
+ * Defaults to logging the error if not provided.
37
+ * @param error - The error that occurred
38
+ * @param context - Additional context about where the error occurred
39
+ */
40
+ onError?: (error: Error, context?: Record<string, unknown>) => void;
33
41
  }
34
42
  export declare class Agent {
35
43
  private options;
@@ -68,7 +76,7 @@ export declare class Agent {
68
76
  * Each capability is an instance of the Capability class with a name, description, schema, and run function.
69
77
  * @protected
70
78
  */
71
- protected tools: Array<Capability<any>>;
79
+ protected tools: Array<Capability<z.ZodTypeAny>>;
72
80
  /**
73
81
  * The OpenServ API key used for authentication.
74
82
  * Can be provided in options or via OPENSERV_API_KEY environment variable.
@@ -138,7 +146,7 @@ export declare class Agent {
138
146
  name: string;
139
147
  description: string;
140
148
  schema: S;
141
- run(params: {
149
+ run(this: Agent, params: {
142
150
  args: z.infer<S>;
143
151
  action?: z.infer<typeof actionSchema>;
144
152
  }, messages: ChatCompletionMessageParam[]): string | Promise<string>;
@@ -161,10 +169,10 @@ export declare class Agent {
161
169
  name: string;
162
170
  description: string;
163
171
  schema: T[K];
164
- run: (params: {
172
+ run(this: Agent, params: {
165
173
  args: z.infer<T[K]>;
166
174
  action?: z.infer<typeof actionSchema>;
167
- }, messages: ChatCompletionMessageParam[]) => string | Promise<string>;
175
+ }, messages: ChatCompletionMessageParam[]): string | Promise<string>;
168
176
  };
169
177
  }): this;
170
178
  /**
@@ -320,6 +328,7 @@ export declare class Agent {
320
328
  * @param {Object} req.body - Request body
321
329
  * @param {z.infer<z.ZodTypeAny>} [req.body.args] - Arguments for the tool
322
330
  * @param {z.infer<typeof actionSchema>} [req.body.action] - Action context
331
+ * @param {ChatCompletionMessageParam[]} [req.body.messages] - Message history
323
332
  * @returns {Promise<{result: string}>} The result of the tool execution
324
333
  * @throws {BadRequest} If tool name is missing or tool is not found
325
334
  * @throws {Error} If tool execution fails
@@ -331,6 +340,7 @@ export declare class Agent {
331
340
  body: {
332
341
  args?: z.infer<z.ZodTypeAny>;
333
342
  action?: z.infer<typeof actionSchema>;
343
+ messages?: ChatCompletionMessageParam[];
334
344
  };
335
345
  }): Promise<{
336
346
  result: string;
@@ -365,5 +375,25 @@ export declare class Agent {
365
375
  * @returns {Promise<void>} Resolves when the server has stopped
366
376
  */
367
377
  stop(): Promise<void>;
378
+ /**
379
+ * Default error handler that logs the error
380
+ * @private
381
+ */
382
+ private handleError;
383
+ /**
384
+ * Calls an integration endpoint through the OpenServ platform.
385
+ * This method allows agents to interact with external services and APIs that are integrated with OpenServ.
386
+ *
387
+ * @param {IntegrationCallRequest} integration - The integration request parameters
388
+ * @param {number} integration.workspaceId - ID of the workspace where the integration is configured
389
+ * @param {string} integration.integrationId - ID of the integration to call
390
+ * @param {Object} integration.details - Details of the integration call
391
+ * @param {string} integration.details.endpoint - The endpoint to call on the integration
392
+ * @param {string} integration.details.method - The HTTP method to use (GET, POST, etc.)
393
+ * @param {Object} [integration.details.data] - Optional data payload for the request
394
+ * @returns {Promise<any>} The response from the integration endpoint
395
+ * @throws {Error} If the integration call fails
396
+ */
397
+ callIntegration(integration: IntegrationCallRequest): Promise<any>;
368
398
  }
369
399
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -177,6 +177,7 @@ class Agent {
177
177
  if (this.tools.some(tool => tool.name === name)) {
178
178
  throw new Error(`Tool with name "${name}" already exists`);
179
179
  }
180
+ // Type assertion through unknown for safe conversion between compatible generic types
180
181
  this.tools.push(new capability_1.Capability(name, description, schema, run));
181
182
  return this;
182
183
  }
@@ -194,9 +195,9 @@ class Agent {
194
195
  * @throws {Error} If any capability has a name that already exists
195
196
  */
196
197
  addCapabilities(capabilities) {
197
- capabilities.forEach(capability => {
198
+ for (const capability of capabilities) {
198
199
  this.addCapability(capability);
199
- });
200
+ }
200
201
  return this;
201
202
  }
202
203
  /**
@@ -407,58 +408,75 @@ class Agent {
407
408
  * @throws {Error} If no response is received from OpenAI or max iterations are reached
408
409
  */
409
410
  async process({ messages }) {
410
- const currentMessages = [...messages];
411
- let completion = null;
412
- let iterationCount = 0;
413
- const MAX_ITERATIONS = 10;
414
- while (iterationCount < MAX_ITERATIONS) {
415
- completion = await this.openai.chat.completions.create({
416
- model: 'gpt-4o',
417
- messages: currentMessages,
418
- tools: this.openAiTools
419
- });
420
- if (!completion.choices?.length || !completion.choices[0]?.message) {
421
- throw new Error('No response from OpenAI');
422
- }
423
- const lastMessage = completion.choices[0].message;
424
- // If there are no tool calls, we're done
425
- if (!lastMessage.tool_calls?.length) {
426
- return completion;
411
+ try {
412
+ const apiKey = this.options.openaiApiKey || process.env.OPENAI_API_KEY;
413
+ if (!apiKey) {
414
+ throw new Error('OpenAI API key is required for process(). Please provide it in options or set OPENAI_API_KEY environment variable.');
427
415
  }
428
- // Process each tool call
429
- const toolResults = await Promise.all(lastMessage.tool_calls.map(async (toolCall) => {
430
- // We know the function exists because we provided the tools
431
- const { name, arguments: args } = toolCall.function;
432
- const parsedArgs = JSON.parse(args);
433
- try {
434
- // Find the tool in our tools array
435
- const tool = this.tools.find(t => t.name === name);
436
- if (!tool) {
437
- throw new Error(`Tool "${name}" not found`);
438
- }
439
- // Call the tool's run method with the parsed arguments and bind this
440
- const result = await tool.run.bind(this)({ args: parsedArgs }, currentMessages);
441
- return {
442
- role: 'tool',
443
- content: JSON.stringify(result),
444
- tool_call_id: toolCall.id
445
- };
416
+ const currentMessages = [...messages];
417
+ let completion = null;
418
+ let iterationCount = 0;
419
+ const MAX_ITERATIONS = 10;
420
+ while (iterationCount < MAX_ITERATIONS) {
421
+ completion = await this.openai.chat.completions.create({
422
+ model: 'gpt-4o',
423
+ messages: currentMessages,
424
+ tools: this.tools.length ? this.openAiTools : undefined
425
+ });
426
+ if (!completion.choices?.length || !completion.choices[0]?.message) {
427
+ throw new Error('No response from OpenAI');
446
428
  }
447
- catch (error) {
448
- const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
449
- logger_1.logger.error({ error, toolCall }, 'Error executing tool call');
450
- return {
451
- role: 'tool',
452
- content: JSON.stringify({ error: errorMessage }),
453
- tool_call_id: toolCall.id
454
- };
429
+ const lastMessage = completion.choices[0].message;
430
+ // If there are no tool calls, we're done
431
+ if (!lastMessage.tool_calls?.length) {
432
+ return completion;
455
433
  }
456
- }));
457
- // Add the assistant's message and tool results to the conversation
458
- currentMessages.push(lastMessage, ...toolResults);
459
- iterationCount++;
434
+ // Process each tool call
435
+ const toolResults = await Promise.all(lastMessage.tool_calls.map(async (toolCall) => {
436
+ if (!toolCall.function) {
437
+ throw new Error('Tool call function is missing');
438
+ }
439
+ const { name, arguments: args } = toolCall.function;
440
+ const parsedArgs = JSON.parse(args);
441
+ try {
442
+ // Find the tool in our tools array
443
+ const tool = this.tools.find(t => t.name === name);
444
+ if (!tool) {
445
+ throw new Error(`Tool "${name}" not found`);
446
+ }
447
+ // Call the tool's run method with the parsed arguments and bind this
448
+ const result = await tool.run.bind(this)({ args: parsedArgs }, currentMessages);
449
+ return {
450
+ role: 'tool',
451
+ content: JSON.stringify(result),
452
+ tool_call_id: toolCall.id
453
+ };
454
+ }
455
+ catch (error) {
456
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
457
+ this.handleError(error instanceof Error ? error : new Error(errorMessage), {
458
+ toolCall,
459
+ context: 'tool_execution'
460
+ });
461
+ return {
462
+ role: 'tool',
463
+ content: JSON.stringify({ error: errorMessage }),
464
+ tool_call_id: toolCall.id
465
+ };
466
+ }
467
+ }));
468
+ // Add the assistant's message and tool results to the conversation
469
+ currentMessages.push(lastMessage, ...toolResults);
470
+ iterationCount++;
471
+ }
472
+ throw new Error('Max iterations reached without completion');
473
+ }
474
+ catch (error) {
475
+ this.handleError(error instanceof Error ? error : new Error(String(error)), {
476
+ context: 'process'
477
+ });
478
+ throw error;
460
479
  }
461
- throw new Error('Max iterations reached without completion');
462
480
  }
463
481
  /**
464
482
  * Handle a task execution request
@@ -486,15 +504,10 @@ class Agent {
486
504
  });
487
505
  }
488
506
  catch (error) {
489
- if (action.task) {
490
- await this.markTaskAsErrored({
491
- workspaceId: action.workspace.id,
492
- taskId: action.task.id,
493
- error: error instanceof Error ? error.message : 'Unknown error occurred'
494
- });
495
- }
496
- logger_1.logger.error({ error }, 'Failed to forward action to runtime agent');
497
- throw error;
507
+ this.handleError(error instanceof Error ? error : new Error(String(error)), {
508
+ action,
509
+ context: 'do_task'
510
+ });
498
511
  }
499
512
  }
500
513
  /**
@@ -510,12 +523,12 @@ class Agent {
510
523
  }
511
524
  ];
512
525
  if (action.messages) {
513
- action.messages.forEach((msg) => {
526
+ for (const msg of action.messages) {
514
527
  messages.push({
515
528
  role: msg.author === 'user' ? 'user' : 'assistant',
516
529
  content: msg.message
517
530
  });
518
- });
531
+ }
519
532
  }
520
533
  try {
521
534
  await this.runtimeClient.post('/chat', {
@@ -525,13 +538,10 @@ class Agent {
525
538
  });
526
539
  }
527
540
  catch (error) {
528
- await this.sendChatMessage({
529
- workspaceId: action.workspace.id,
530
- agentId: action.me.id,
531
- message: error instanceof Error ? error.message : 'Unknown error occurred'
541
+ this.handleError(error instanceof Error ? error : new Error(String(error)), {
542
+ action,
543
+ context: 'respond_to_chat'
532
544
  });
533
- logger_1.logger.error({ error }, 'Failed to forward action to runtime agent');
534
- throw error;
535
545
  }
536
546
  }
537
547
  /**
@@ -543,26 +553,31 @@ class Agent {
543
553
  * @param {Object} req.body - Request body
544
554
  * @param {z.infer<z.ZodTypeAny>} [req.body.args] - Arguments for the tool
545
555
  * @param {z.infer<typeof actionSchema>} [req.body.action] - Action context
556
+ * @param {ChatCompletionMessageParam[]} [req.body.messages] - Message history
546
557
  * @returns {Promise<{result: string}>} The result of the tool execution
547
558
  * @throws {BadRequest} If tool name is missing or tool is not found
548
559
  * @throws {Error} If tool execution fails
549
560
  */
550
561
  async handleToolRoute(req) {
551
- if (!('toolName' in req.params)) {
552
- throw new http_errors_1.BadRequest('Tool name is required');
553
- }
554
- const tool = this.tools.find(t => t.name === req.params.toolName);
555
- if (!tool) {
556
- throw new http_errors_1.BadRequest(`Tool "${req.params.toolName}" not found`);
557
- }
558
562
  try {
563
+ if (!('toolName' in req.params)) {
564
+ throw new http_errors_1.BadRequest('Tool name is required');
565
+ }
566
+ const tool = this.tools.find(t => t.name === req.params.toolName);
567
+ if (!tool) {
568
+ throw new http_errors_1.BadRequest(`Tool "${req.params.toolName}" not found`);
569
+ }
559
570
  const args = await tool.schema.parseAsync(req.body?.args);
560
- const result = await tool.run.call(this, { args, action: req.body.action }, []);
571
+ const messages = req.body.messages || [];
572
+ const result = await tool.run.call(this, { args, action: req.body.action }, messages);
561
573
  return { result };
562
574
  }
563
575
  catch (error) {
564
- const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
565
- throw new Error(errorMessage);
576
+ this.handleError(error instanceof Error ? error : new Error(String(error)), {
577
+ request: req,
578
+ context: 'handle_tool_route'
579
+ });
580
+ throw error;
566
581
  }
567
582
  }
568
583
  /**
@@ -574,15 +589,23 @@ class Agent {
574
589
  * @throws {Error} If action type is invalid
575
590
  */
576
591
  async handleRootRoute(req) {
577
- const action = await types_1.actionSchema.parseAsync(req.body);
578
- if (action.type === 'do-task') {
579
- this.doTask(action);
592
+ try {
593
+ const action = await types_1.actionSchema.parseAsync(req.body);
594
+ if (action.type === 'do-task') {
595
+ this.doTask(action);
596
+ }
597
+ else if (action.type === 'respond-chat-message') {
598
+ this.respondToChat(action);
599
+ }
600
+ else
601
+ throw new Error('Invalid action type');
580
602
  }
581
- else if (action.type === 'respond-chat-message') {
582
- this.respondToChat(action);
603
+ catch (error) {
604
+ this.handleError(error instanceof Error ? error : new Error(String(error)), {
605
+ request: req,
606
+ context: 'handle_root_route'
607
+ });
583
608
  }
584
- else
585
- throw new Error('Invalid action type');
586
609
  }
587
610
  /**
588
611
  * Sets up the Express routes for the agent's HTTP server.
@@ -635,6 +658,33 @@ class Agent {
635
658
  this.server?.close(() => resolve());
636
659
  });
637
660
  }
661
+ /**
662
+ * Default error handler that logs the error
663
+ * @private
664
+ */
665
+ handleError(error, context) {
666
+ const handler = this.options.onError ??
667
+ ((err, ctx) => logger_1.logger.error({ error: err, ...ctx }, 'Error in agent operation'));
668
+ handler(error, context);
669
+ }
670
+ /**
671
+ * Calls an integration endpoint through the OpenServ platform.
672
+ * This method allows agents to interact with external services and APIs that are integrated with OpenServ.
673
+ *
674
+ * @param {IntegrationCallRequest} integration - The integration request parameters
675
+ * @param {number} integration.workspaceId - ID of the workspace where the integration is configured
676
+ * @param {string} integration.integrationId - ID of the integration to call
677
+ * @param {Object} integration.details - Details of the integration call
678
+ * @param {string} integration.details.endpoint - The endpoint to call on the integration
679
+ * @param {string} integration.details.method - The HTTP method to use (GET, POST, etc.)
680
+ * @param {Object} [integration.details.data] - Optional data payload for the request
681
+ * @returns {Promise<any>} The response from the integration endpoint
682
+ * @throws {Error} If the integration call fails
683
+ */
684
+ async callIntegration(integration) {
685
+ const response = await this.apiClient.post(`/workspaces/${integration.workspaceId}/integration/${integration.integrationId}/proxy`, integration.details);
686
+ return response.data;
687
+ }
638
688
  }
639
689
  exports.Agent = Agent;
640
690
  function convertToolToJsonSchema(tool) {
@@ -1,11 +1,12 @@
1
- import { z } from 'zod';
1
+ import type { z } from 'zod';
2
2
  import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
3
3
  import type { CapabilityFuncParams } from './types';
4
+ import type { Agent } from './agent';
4
5
  export declare class Capability<Schema extends z.ZodTypeAny> {
5
6
  readonly name: string;
6
7
  readonly description: string;
7
8
  readonly schema: Schema;
8
- readonly run: (params: CapabilityFuncParams<Schema>, messages: ChatCompletionMessageParam[]) => string | Promise<string>;
9
- constructor(name: string, description: string, schema: Schema, run: (params: CapabilityFuncParams<Schema>, messages: ChatCompletionMessageParam[]) => string | Promise<string>);
9
+ readonly run: (this: Agent, params: CapabilityFuncParams<Schema>, messages: ChatCompletionMessageParam[]) => string | Promise<string>;
10
+ constructor(name: string, description: string, schema: Schema, run: (this: Agent, params: CapabilityFuncParams<Schema>, messages: ChatCompletionMessageParam[]) => string | Promise<string>);
10
11
  }
11
12
  //# sourceMappingURL=capability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,qBAAa,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU;aAE/B,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM;aACnB,MAAM,EAAE,MAAM;aACd,GAAG,EAAE,CACnB,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,QAAQ,EAAE,0BAA0B,EAAE,KACnC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBANb,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CACnB,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,QAAQ,EAAE,0BAA0B,EAAE,KACnC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAEhC"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,qBAAa,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU;aAE/B,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM;aACnB,MAAM,EAAE,MAAM;aACd,GAAG,EAAE,CACnB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,QAAQ,EAAE,0BAA0B,EAAE,KACnC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAPb,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CACnB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,QAAQ,EAAE,0BAA0B,EAAE,KACnC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAEhC"}
package/dist/types.d.ts CHANGED
@@ -1305,4 +1305,23 @@ export interface UpdateTaskStatusParams {
1305
1305
  export interface ProcessParams {
1306
1306
  messages: ChatCompletionMessageParam[];
1307
1307
  }
1308
+ export interface ProxyConfiguration {
1309
+ endpoint: string;
1310
+ providerConfigKey?: string;
1311
+ connectionId?: string;
1312
+ method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE' | 'get' | 'post' | 'patch' | 'put' | 'delete';
1313
+ headers?: Record<string, string>;
1314
+ params?: string | Record<string, string | number>;
1315
+ data?: unknown;
1316
+ retries?: number;
1317
+ baseUrlOverride?: string;
1318
+ decompress?: boolean;
1319
+ responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1320
+ retryOn?: number[] | null;
1321
+ }
1322
+ export interface IntegrationCallRequest {
1323
+ workspaceId: number;
1324
+ integrationId: string;
1325
+ details: ProxyConfiguration;
1326
+ }
1308
1327
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openserv-labs/sdk",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "OpenServ Agent SDK - Create AI agents easily",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,6 +8,7 @@
8
8
  "build": "tsc",
9
9
  "dev": "tsc --watch",
10
10
  "dev:example": "ts-node-dev --respawn --transpile-only examples/marketing-agent.ts",
11
+ "dev:twitter": "ts-node-dev --respawn --transpile-only examples/twitter-agent.ts",
11
12
  "dev:custom-agent": "ts-node-dev --respawn --transpile-only examples/custom-agent.ts",
12
13
  "check-types": "tsc --noEmit",
13
14
  "prepublishOnly": "npm run build && npm run lint && npm run check-types && npm run test",