concevent-ai-agent-sdk 2.4.0 → 3.0.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.
@@ -10,18 +10,30 @@ export declare const grepSchema: z.ZodObject<{
10
10
  include: z.ZodOptional<z.ZodString>;
11
11
  context_lines: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
12
12
  case_insensitive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
13
+ max_matches: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
+ max_line_length: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
+ max_total_chars: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
16
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
13
17
  }, "strip", z.ZodTypeAny, {
14
18
  pattern: string;
19
+ offset: number;
15
20
  context_lines: number;
16
21
  case_insensitive: boolean;
22
+ max_matches: number;
23
+ max_line_length: number;
24
+ max_total_chars: number;
17
25
  path?: string | undefined;
18
26
  include?: string | undefined;
19
27
  }, {
20
28
  pattern: string;
21
29
  path?: string | undefined;
30
+ offset?: number | undefined;
22
31
  include?: string | undefined;
23
32
  context_lines?: number | undefined;
24
33
  case_insensitive?: boolean | undefined;
34
+ max_matches?: number | undefined;
35
+ max_line_length?: number | undefined;
36
+ max_total_chars?: number | undefined;
25
37
  }>;
26
38
  export type GrepParams = z.infer<typeof grepSchema>;
27
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;EAwBrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAwBpD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,UAAe,GAAG,cAAc,CA0KtE"}
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAwBpD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,UAAe,GAAG,cAAc,CAqPtE"}
@@ -28,6 +28,26 @@ export const grepSchema = z.object({
28
28
  .optional()
29
29
  .default(false)
30
30
  .describe('If true, perform case-insensitive matching.'),
31
+ max_matches: z
32
+ .number()
33
+ .optional()
34
+ .default(50)
35
+ .describe('Maximum matches to return. Default 50. Use offset for pagination.'),
36
+ max_line_length: z
37
+ .number()
38
+ .optional()
39
+ .default(500)
40
+ .describe('Truncate lines longer than this. Default 500 chars.'),
41
+ max_total_chars: z
42
+ .number()
43
+ .optional()
44
+ .default(20000)
45
+ .describe('Maximum total output characters. Default 20000 (~5K tokens).'),
46
+ offset: z
47
+ .number()
48
+ .optional()
49
+ .default(0)
50
+ .describe('Skip first N matches. Use with max_matches for pagination.'),
31
51
  });
32
52
  /**
33
53
  * Default ignore patterns for grep
@@ -50,13 +70,20 @@ export function createGrepTool(config = {}) {
50
70
  return {
51
71
  declaration: {
52
72
  name: 'Grep',
53
- description: `Searches for a pattern in file contents using regular expressions.
73
+ description: `Searches for a pattern in file contents using regex.
54
74
  Returns matching lines with file paths and line numbers.
55
- Use context_lines to show surrounding context.
75
+
76
+ Output Limits (to prevent context overflow):
77
+ - max_matches: Default 50. Set lower for broad patterns.
78
+ - max_line_length: Default 500. Truncates verbose lines.
79
+ - max_total_chars: Default 20000 (~5K tokens).
80
+ - offset: Skip N matches for pagination.
81
+
82
+ Pagination: If has_more is true, call again with offset + match_count.
56
83
 
57
84
  Examples:
58
85
  - pattern: "function\\s+\\w+" - Find function declarations
59
- - pattern: "TODO|FIXME" with case_insensitive: true - Find todo comments
86
+ - pattern: "TODO" with max_matches: 10 - Find first 10 TODOs
60
87
  - pattern: "import.*from" with include: "*.ts" - Find imports in TypeScript files`,
61
88
  parametersJsonSchema: zodToJsonSchema(grepSchema),
62
89
  },
@@ -107,40 +134,65 @@ Examples:
107
134
  matchGlobPattern(params.include, fileName));
108
135
  });
109
136
  }
110
- // Search each file
137
+ // Search each file with configurable limits
111
138
  const matches = [];
112
- const maxMatches = 500; // Limit to prevent overwhelming output
139
+ const maxMatches = Math.min(params.max_matches ?? 50, 1000); // Cap at 1000 for safety
140
+ const offset = params.offset ?? 0;
141
+ const maxTotalChars = params.max_total_chars ?? 20000;
142
+ const maxLineLength = params.max_line_length ?? 500;
113
143
  let truncated = false;
114
- for (const filePath of filesToSearch) {
144
+ let truncationReason = null;
145
+ let matchesFound = 0; // Total matches encountered (before offset/limits)
146
+ let totalChars = 0; // Track output size
147
+ fileLoop: for (const filePath of filesToSearch) {
115
148
  if (matches.length >= maxMatches) {
116
149
  truncated = true;
150
+ truncationReason = 'match_limit';
117
151
  break;
118
152
  }
119
153
  try {
120
154
  const content = await fs.readFile(filePath, 'utf-8');
121
155
  const lines = content.split('\n');
122
156
  for (let i = 0; i < lines.length; i++) {
123
- if (matches.length >= maxMatches) {
124
- truncated = true;
125
- break;
126
- }
127
157
  // Reset regex lastIndex for global regex
128
158
  regex.lastIndex = 0;
129
159
  if (regex.test(lines[i])) {
160
+ matchesFound++;
161
+ // Skip matches before offset (pagination)
162
+ if (matchesFound <= offset) {
163
+ continue;
164
+ }
165
+ // Check if we've collected enough matches
166
+ if (matches.length >= maxMatches) {
167
+ truncated = true;
168
+ truncationReason = 'match_limit';
169
+ break fileLoop;
170
+ }
171
+ // Truncate long lines
172
+ const rawLine = lines[i];
173
+ const line = rawLine.length > maxLineLength
174
+ ? rawLine.substring(0, maxLineLength) + '...[truncated]'
175
+ : rawLine;
130
176
  const match = {
131
177
  file: getRelativePath(filePath, workingDirectory),
132
178
  line_number: i + 1,
133
- line: lines[i],
179
+ line,
134
180
  };
135
- // Add context if requested
181
+ // Add context if requested (also truncate context lines)
136
182
  if (params.context_lines && params.context_lines > 0) {
137
183
  const contextBefore = [];
138
184
  const contextAfter = [];
139
185
  for (let j = Math.max(0, i - params.context_lines); j < i; j++) {
140
- contextBefore.push(lines[j]);
186
+ const ctxLine = lines[j];
187
+ contextBefore.push(ctxLine.length > maxLineLength
188
+ ? ctxLine.substring(0, maxLineLength) + '...[truncated]'
189
+ : ctxLine);
141
190
  }
142
191
  for (let j = i + 1; j <= Math.min(lines.length - 1, i + params.context_lines); j++) {
143
- contextAfter.push(lines[j]);
192
+ const ctxLine = lines[j];
193
+ contextAfter.push(ctxLine.length > maxLineLength
194
+ ? ctxLine.substring(0, maxLineLength) + '...[truncated]'
195
+ : ctxLine);
144
196
  }
145
197
  if (contextBefore.length > 0) {
146
198
  match.context_before = contextBefore;
@@ -149,6 +201,18 @@ Examples:
149
201
  match.context_after = contextAfter;
150
202
  }
151
203
  }
204
+ // Estimate output size for this match
205
+ const matchOutput = `${match.file}:${match.line_number}:${match.line}`;
206
+ const contextChars = (match.context_before?.join('\n').length ?? 0) +
207
+ (match.context_after?.join('\n').length ?? 0);
208
+ const matchChars = matchOutput.length + contextChars;
209
+ // Check char limit before adding
210
+ if (totalChars + matchChars > maxTotalChars) {
211
+ truncated = true;
212
+ truncationReason = 'char_limit';
213
+ break fileLoop;
214
+ }
215
+ totalChars += matchChars;
152
216
  matches.push(match);
153
217
  }
154
218
  }
@@ -177,16 +241,36 @@ Examples:
177
241
  }
178
242
  return output;
179
243
  });
244
+ // Determine if there are more matches available
245
+ const hasMore = truncated || matchesFound > offset + matches.length;
246
+ // Build message with pagination info
247
+ let message;
248
+ if (matches.length > 0) {
249
+ const truncationInfo = truncated
250
+ ? ` (truncated: ${truncationReason === 'char_limit' ? 'character limit' : 'match limit'})`
251
+ : '';
252
+ const paginationInfo = hasMore ? ` Use offset=${offset + matches.length} to see more.` : '';
253
+ message = `Found ${matches.length} match${matches.length > 1 ? 'es' : ''} in ${filesToSearch.length} file${filesToSearch.length > 1 ? 's' : ''}${truncationInfo}${paginationInfo}`;
254
+ }
255
+ else if (offset > 0 && matchesFound > 0) {
256
+ message = `No more matches after offset ${offset}. Total matches found: ${matchesFound}`;
257
+ }
258
+ else {
259
+ message = `No matches found for "${params.pattern}"`;
260
+ }
180
261
  return {
181
262
  pattern: params.pattern,
182
263
  search_path: params.path || '.',
183
264
  matches: formattedMatches,
184
265
  match_count: matches.length,
266
+ total_matches_found: matchesFound,
267
+ offset,
268
+ has_more: hasMore,
185
269
  files_searched: filesToSearch.length,
186
270
  truncated,
187
- message: matches.length > 0
188
- ? `Found ${matches.length} match${matches.length > 1 ? 'es' : ''} in ${filesToSearch.length} file${filesToSearch.length > 1 ? 's' : ''}${truncated ? ' (results truncated)' : ''}`
189
- : `No matches found for "${params.pattern}"`,
271
+ truncation_reason: truncationReason,
272
+ output_chars: totalChars,
273
+ message,
190
274
  };
191
275
  },
192
276
  parallel: true, // Grep is read-only and safe to run in parallel
@@ -1 +1 @@
1
- {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
@@ -24,15 +24,54 @@ export interface FunctionDeclaration {
24
24
  description: string;
25
25
  parametersJsonSchema: JsonSchema7Type;
26
26
  }
27
- export interface ToolExecutorContext {
28
- userId: string;
29
- timezone: string;
27
+ /**
28
+ * Context passed to tool executors during execution.
29
+ *
30
+ * @typeParam TAppContext - Application-specific context type (e.g., { userId: string; timezone: string }).
31
+ * Defaults to `Record<string, unknown>` for untyped usage.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * // Define your application context type
36
+ * interface MyAppContext {
37
+ * userId: string;
38
+ * timezone: string;
39
+ * tenantId: string;
40
+ * }
41
+ *
42
+ * // Pass context to chat
43
+ * await agent.chat(message, {
44
+ * appContext: { userId, timezone, tenantId },
45
+ * abortSignal: controller.signal,
46
+ * });
47
+ * ```
48
+ */
49
+ export interface ToolExecutorContext<TAppContext = Record<string, unknown>> {
50
+ /**
51
+ * Application-specific context passed through to tool executors.
52
+ * This is where consumer applications should pass domain-specific data
53
+ * like userId, timezone, tenantId, etc.
54
+ */
55
+ appContext: TAppContext;
56
+ /**
57
+ * Optional abort signal for cancelling the operation.
58
+ */
30
59
  abortSignal?: AbortSignal;
31
60
  }
32
- export type ToolExecutor = (args: Record<string, unknown>, context: ToolExecutorContext) => Promise<unknown>;
33
- export interface ToolDefinition {
61
+ /**
62
+ * Function type for tool executors.
63
+ *
64
+ * @typeParam TAppContext - Application-specific context type.
65
+ */
66
+ export type ToolExecutor<TAppContext = Record<string, unknown>> = (args: Record<string, unknown>, context: ToolExecutorContext<TAppContext>) => Promise<unknown>;
67
+ /**
68
+ * Definition of a tool that can be used by an agent.
69
+ *
70
+ * @typeParam TAppContext - Application-specific context type.
71
+ */
72
+ export interface ToolDefinition<TAppContext = Record<string, unknown>> {
34
73
  declaration: FunctionDeclaration;
35
- executor: ToolExecutor;
74
+ executor: ToolExecutor<TAppContext>;
36
75
  /**
37
76
  * Whether this tool can safely execute in parallel with other parallel-safe tools.
38
77
  * Set to `true` for stateless operations like reading files or fetching data.
@@ -132,14 +171,19 @@ export interface TimeoutConfig {
132
171
  export declare const DEFAULT_TOOL_EXECUTION_TIMEOUT_MS = 30000;
133
172
  /** Default timeout for API requests: 2 minutes */
134
173
  export declare const DEFAULT_API_REQUEST_TIMEOUT_MS = 120000;
135
- export interface AgentConfig {
174
+ /**
175
+ * Configuration for creating an agent.
176
+ *
177
+ * @typeParam TAppContext - Application-specific context type that will be passed to tools.
178
+ */
179
+ export interface AgentConfig<TAppContext = Record<string, unknown>> {
136
180
  apiKey: string;
137
181
  model: string;
138
182
  baseURL?: string;
139
183
  temperature?: number;
140
184
  reasoningEffort?: ReasoningEffort;
141
185
  systemPrompts: string[];
142
- tools: ToolDefinition[];
186
+ tools: ToolDefinition<TAppContext>[];
143
187
  maxIterations?: number;
144
188
  summarization?: SummarizationConfig;
145
189
  parallelToolExecution?: ParallelExecutionConfig;
@@ -162,7 +206,7 @@ export interface AgentConfig {
162
206
  * Middleware array for intercepting and modifying agent behavior.
163
207
  * Middleware is executed in registration order (first in array = first executed).
164
208
  */
165
- middleware?: Middleware[];
209
+ middleware?: Middleware<TAppContext>[];
166
210
  /**
167
211
  * Timeout configuration for tool execution and API requests.
168
212
  * Helps prevent hanging on long-running operations.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AA+FA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AA4BzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAoBlD,qDAAqD;AACrD,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AACxD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAsIA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AA4BzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAoBlD,qDAAqD;AACrD,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AACxD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC"}
@@ -4,37 +4,47 @@ import type { AgentError } from '../core/errors.js';
4
4
  /**
5
5
  * Context passed to middleware hooks.
6
6
  * Contains all relevant information about the current execution state.
7
+ *
8
+ * @typeParam TAppContext - Application-specific context type.
7
9
  */
8
- export interface MiddlewareContext {
10
+ export interface MiddlewareContext<TAppContext = Record<string, unknown>> {
9
11
  /** The user's input message */
10
12
  message: string;
11
13
  /** Current conversation history */
12
14
  history: ChatMessage[];
13
- /** Tool execution context (userId, timezone, abortSignal) */
14
- toolContext: ToolExecutorContext;
15
+ /** Tool execution context (appContext, abortSignal) */
16
+ toolContext: ToolExecutorContext<TAppContext>;
15
17
  }
16
18
  /**
17
19
  * Context for beforeChat middleware hook.
20
+ *
21
+ * @typeParam TAppContext - Application-specific context type.
18
22
  */
19
- export type BeforeChatContext = MiddlewareContext;
23
+ export type BeforeChatContext<TAppContext = Record<string, unknown>> = MiddlewareContext<TAppContext>;
20
24
  /**
21
25
  * Context for afterChat middleware hook.
26
+ *
27
+ * @typeParam TAppContext - Application-specific context type.
22
28
  */
23
- export interface AfterChatContext extends MiddlewareContext {
29
+ export interface AfterChatContext<TAppContext = Record<string, unknown>> extends MiddlewareContext<TAppContext> {
24
30
  /** The result from the chat operation */
25
31
  result: AgentResult;
26
32
  }
27
33
  /**
28
34
  * Context for beforeToolCall middleware hook.
35
+ *
36
+ * @typeParam TAppContext - Application-specific context type.
29
37
  */
30
- export interface BeforeToolCallContext extends MiddlewareContext {
38
+ export interface BeforeToolCallContext<TAppContext = Record<string, unknown>> extends MiddlewareContext<TAppContext> {
31
39
  /** The tool call about to be executed */
32
40
  toolCall: ToolCall;
33
41
  }
34
42
  /**
35
43
  * Context for afterToolCall middleware hook.
44
+ *
45
+ * @typeParam TAppContext - Application-specific context type.
36
46
  */
37
- export interface AfterToolCallContext extends MiddlewareContext {
47
+ export interface AfterToolCallContext<TAppContext = Record<string, unknown>> extends MiddlewareContext<TAppContext> {
38
48
  /** The tool call that was executed */
39
49
  toolCall: ToolCall;
40
50
  /** The result from the tool execution */
@@ -42,8 +52,10 @@ export interface AfterToolCallContext extends MiddlewareContext {
42
52
  }
43
53
  /**
44
54
  * Context for onError middleware hook.
55
+ *
56
+ * @typeParam TAppContext - Application-specific context type.
45
57
  */
46
- export interface ErrorContext extends MiddlewareContext {
58
+ export interface ErrorContext<TAppContext = Record<string, unknown>> extends MiddlewareContext<TAppContext> {
47
59
  /** The error that occurred */
48
60
  error: AgentError;
49
61
  }
@@ -53,12 +65,19 @@ export interface ErrorContext extends MiddlewareContext {
53
65
  * Middleware functions are executed in registration order (first registered = first executed).
54
66
  * Each hook receives a context object and can modify the data before passing to the next middleware.
55
67
  *
68
+ * @typeParam TAppContext - Application-specific context type.
69
+ *
56
70
  * @example
57
71
  * ```typescript
58
- * const loggingMiddleware: Middleware = {
72
+ * interface MyAppContext {
73
+ * userId: string;
74
+ * timezone: string;
75
+ * }
76
+ *
77
+ * const loggingMiddleware: Middleware<MyAppContext> = {
59
78
  * name: 'logging',
60
79
  * beforeChat: async (ctx) => {
61
- * console.log('Chat started:', ctx.message);
80
+ * console.log('Chat started:', ctx.message, 'User:', ctx.toolContext.appContext.userId);
62
81
  * return ctx.message;
63
82
  * },
64
83
  * afterChat: async (ctx) => {
@@ -68,7 +87,7 @@ export interface ErrorContext extends MiddlewareContext {
68
87
  * };
69
88
  * ```
70
89
  */
71
- export interface Middleware {
90
+ export interface Middleware<TAppContext = Record<string, unknown>> {
72
91
  /** Unique name for this middleware (used for debugging/logging) */
73
92
  name: string;
74
93
  /**
@@ -78,7 +97,7 @@ export interface Middleware {
78
97
  * @param ctx - Context containing the message, history, and tool context
79
98
  * @returns The (potentially modified) message to use
80
99
  */
81
- beforeChat?: (ctx: BeforeChatContext) => Promise<string>;
100
+ beforeChat?: (ctx: BeforeChatContext<TAppContext>) => Promise<string>;
82
101
  /**
83
102
  * Called after the chat operation completes successfully.
84
103
  * Can modify the result before it's returned to the caller.
@@ -86,7 +105,7 @@ export interface Middleware {
86
105
  * @param ctx - Context containing the result and original context
87
106
  * @returns The (potentially modified) result
88
107
  */
89
- afterChat?: (ctx: AfterChatContext) => Promise<AgentResult>;
108
+ afterChat?: (ctx: AfterChatContext<TAppContext>) => Promise<AgentResult>;
90
109
  /**
91
110
  * Called before each tool is executed.
92
111
  * Can modify the tool call arguments or skip execution by throwing.
@@ -94,7 +113,7 @@ export interface Middleware {
94
113
  * @param ctx - Context containing the tool call details
95
114
  * @returns The (potentially modified) tool call
96
115
  */
97
- beforeToolCall?: (ctx: BeforeToolCallContext) => Promise<ToolCall>;
116
+ beforeToolCall?: (ctx: BeforeToolCallContext<TAppContext>) => Promise<ToolCall>;
98
117
  /**
99
118
  * Called after each tool execution completes.
100
119
  * Can modify the result before it's added to conversation history.
@@ -102,7 +121,7 @@ export interface Middleware {
102
121
  * @param ctx - Context containing the tool call and its result
103
122
  * @returns The (potentially modified) function call result
104
123
  */
105
- afterToolCall?: (ctx: AfterToolCallContext) => Promise<FunctionCallResult>;
124
+ afterToolCall?: (ctx: AfterToolCallContext<TAppContext>) => Promise<FunctionCallResult>;
106
125
  /**
107
126
  * Called when an error occurs during agent execution.
108
127
  * Can be used for logging, analytics, or error transformation.
@@ -110,6 +129,6 @@ export interface Middleware {
110
129
  *
111
130
  * @param ctx - Context containing the error and execution state
112
131
  */
113
- onError?: (ctx: ErrorContext) => Promise<void>;
132
+ onError?: (ctx: ErrorContext<TAppContext>) => Promise<void>;
114
133
  }
115
134
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,6DAA6D;IAC7D,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,yCAAyC;IACzC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,sCAAsC;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,yCAAyC;IACzC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,8BAA8B;IAC9B,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5D;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnE;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE3E;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,uDAAuD;IACvD,WAAW,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACjE,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAC/B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,yCAAyC;IACzC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CACpC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CACnC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,sCAAsC;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,yCAAyC;IACzC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACtC,8BAA8B;IAC9B,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzE;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhF;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D"}
@@ -3,10 +3,12 @@ import type { AgentConfig, AgentResult, ToolExecutorContext } from './config.js'
3
3
  import type { AgentCallbacks } from './events.js';
4
4
  /**
5
5
  * Definition of a sub-agent that can be delegated to by an orchestrator.
6
+ *
7
+ * @typeParam TAppContext - Application-specific context type.
6
8
  */
7
- export interface AgentDefinition {
9
+ export interface AgentDefinition<TAppContext = Record<string, unknown>> {
8
10
  /** The agent instance to delegate to */
9
- agent: Agent;
11
+ agent: Agent<TAppContext>;
10
12
  /** Unique name for this agent (used as tool name) */
11
13
  name: string;
12
14
  /** Description of the agent's capabilities (helps orchestrator route requests) */
@@ -20,10 +22,12 @@ export interface AgentDefinition {
20
22
  /**
21
23
  * Configuration for creating an orchestrator agent.
22
24
  * Extends AgentConfig but excludes 'tools' since they are auto-generated from subAgents.
25
+ *
26
+ * @typeParam TAppContext - Application-specific context type.
23
27
  */
24
- export interface OrchestratorConfig extends Omit<AgentConfig, 'tools'> {
28
+ export interface OrchestratorConfig<TAppContext = Record<string, unknown>> extends Omit<AgentConfig<TAppContext>, 'tools'> {
25
29
  /** Array of sub-agents that the orchestrator can delegate to */
26
- subAgents: AgentDefinition[];
30
+ subAgents: AgentDefinition<TAppContext>[];
27
31
  }
28
32
  /**
29
33
  * Callback fired when orchestrator starts delegating to a sub-agent.
@@ -81,17 +85,19 @@ export interface OrchestratorResult<T = unknown> extends AgentResult<T> {
81
85
  }
82
86
  /**
83
87
  * Extended Agent interface for orchestrators with sub-agent management.
88
+ *
89
+ * @typeParam TAppContext - Application-specific context type.
84
90
  */
85
- export interface OrchestratorAgent extends Omit<Agent, 'chat'> {
91
+ export interface OrchestratorAgent<TAppContext = Record<string, unknown>> extends Omit<Agent<TAppContext>, 'chat'> {
86
92
  /**
87
93
  * Sends a message to the orchestrator and returns a result with a diagram.
88
94
  * @param message - The user's message
89
- * @param context - Execution context (userId, timezone, abortSignal)
95
+ * @param context - Execution context (appContext, abortSignal)
90
96
  * @param callbacks - Optional callbacks for streaming events
91
97
  * @returns OrchestratorResult including the Mermaid diagram
92
98
  */
93
- chat(message: string, context: ToolExecutorContext, callbacks?: AgentCallbacks): Promise<OrchestratorResult>;
99
+ chat(message: string, context: ToolExecutorContext<TAppContext>, callbacks?: AgentCallbacks): Promise<OrchestratorResult>;
94
100
  /** Returns the list of registered sub-agents */
95
- getSubAgents(): AgentDefinition[];
101
+ getSubAgents(): AgentDefinition<TAppContext>[];
96
102
  }
97
103
  //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/types/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,KAAK,EAAE,KAAK,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACpE,gEAAgE;IAChE,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACrE;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;IAC5D;;;;;;OAMG;IACH,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B,gDAAgD;IAChD,YAAY,IAAI,eAAe,EAAE,CAAC;CACnC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/types/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,wCAAwC;IACxC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,IAAI,CACrF,WAAW,CAAC,WAAW,CAAC,EACxB,OAAO,CACR;IACC,gEAAgE;IAChE,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACrE;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,IAAI,CACpF,KAAK,CAAC,WAAW,CAAC,EAClB,MAAM,CACP;IACC;;;;;;OAMG;IACH,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzC,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B,gDAAgD;IAChD,YAAY,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CAChD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "concevent-ai-agent-sdk",
3
- "version": "2.4.0",
3
+ "version": "3.0.0",
4
4
  "description": "Framework-agnostic AI Agent SDK with tool calling, conversation management, and automatic summarization",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",