mcp-agent-foundry 1.3.0 → 2.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.
- package/README.md +350 -52
- package/dist/background/index.d.ts +33 -0
- package/dist/background/index.d.ts.map +1 -0
- package/dist/background/index.js +33 -0
- package/dist/background/index.js.map +1 -0
- package/dist/background/task-runner.d.ts +177 -0
- package/dist/background/task-runner.d.ts.map +1 -0
- package/dist/background/task-runner.js +551 -0
- package/dist/background/task-runner.js.map +1 -0
- package/dist/background/types.d.ts +135 -0
- package/dist/background/types.d.ts.map +1 -0
- package/dist/background/types.js +8 -0
- package/dist/background/types.js.map +1 -0
- package/dist/failover/health-tracker.d.ts +81 -1
- package/dist/failover/health-tracker.d.ts.map +1 -1
- package/dist/failover/health-tracker.js +229 -1
- package/dist/failover/health-tracker.js.map +1 -1
- package/dist/hooks/hook-executor.d.ts +77 -0
- package/dist/hooks/hook-executor.d.ts.map +1 -0
- package/dist/hooks/hook-executor.js +308 -0
- package/dist/hooks/hook-executor.js.map +1 -0
- package/dist/hooks/hook-manager.d.ts +140 -0
- package/dist/hooks/hook-manager.d.ts.map +1 -0
- package/dist/hooks/hook-manager.js +520 -0
- package/dist/hooks/hook-manager.js.map +1 -0
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +10 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/types.d.ts +221 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +31 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp/auto-mode.d.ts +221 -0
- package/dist/mcp/auto-mode.d.ts.map +1 -0
- package/dist/mcp/auto-mode.js +436 -0
- package/dist/mcp/auto-mode.js.map +1 -0
- package/dist/mcp/index.d.ts +14 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +22 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tools/tasks/delete-task.d.ts +25 -0
- package/dist/mcp/tools/tasks/delete-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/delete-task.js +148 -0
- package/dist/mcp/tools/tasks/delete-task.js.map +1 -0
- package/dist/mcp/tools/tasks/index.d.ts +2 -0
- package/dist/mcp/tools/tasks/index.d.ts.map +1 -1
- package/dist/mcp/tools/tasks/index.js +6 -0
- package/dist/mcp/tools/tasks/index.js.map +1 -1
- package/dist/observability/debug-logger.d.ts +209 -0
- package/dist/observability/debug-logger.d.ts.map +1 -0
- package/dist/observability/debug-logger.js +430 -0
- package/dist/observability/debug-logger.js.map +1 -0
- package/dist/observability/index.d.ts +12 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +180 -0
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/logger.js +158 -0
- package/dist/observability/logger.js.map +1 -1
- package/dist/router/context-manager.d.ts +214 -1
- package/dist/router/context-manager.d.ts.map +1 -1
- package/dist/router/context-manager.js +759 -2
- package/dist/router/context-manager.js.map +1 -1
- package/dist/router/context-types.d.ts +182 -0
- package/dist/router/context-types.d.ts.map +1 -0
- package/dist/router/context-types.js +8 -0
- package/dist/router/context-types.js.map +1 -0
- package/dist/server.d.ts +41 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +165 -0
- package/dist/server.js.map +1 -1
- package/dist/skills/hot-reloader.d.ts +104 -0
- package/dist/skills/hot-reloader.d.ts.map +1 -0
- package/dist/skills/hot-reloader.js +314 -0
- package/dist/skills/hot-reloader.js.map +1 -0
- package/dist/skills/index.d.ts +14 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +16 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +96 -0
- package/dist/skills/skill-executor.d.ts.map +1 -0
- package/dist/skills/skill-executor.js +289 -0
- package/dist/skills/skill-executor.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +147 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +579 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/types.d.ts +198 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +21 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tasks/coordinator.d.ts +22 -1
- package/dist/tasks/coordinator.d.ts.map +1 -1
- package/dist/tasks/coordinator.js +83 -0
- package/dist/tasks/coordinator.js.map +1 -1
- package/dist/tasks/state-coordinator.d.ts +19 -0
- package/dist/tasks/state-coordinator.d.ts.map +1 -1
- package/dist/tasks/state-coordinator.js +40 -0
- package/dist/tasks/state-coordinator.js.map +1 -1
- package/package.json +1 -1
|
@@ -228,6 +228,164 @@ export const logger = new Logger({ name: 'agent-router' });
|
|
|
228
228
|
export function createLogger(options = {}) {
|
|
229
229
|
return new Logger(options);
|
|
230
230
|
}
|
|
231
|
+
// ============================================================================
|
|
232
|
+
// Extended Logger Class Methods
|
|
233
|
+
// ============================================================================
|
|
234
|
+
/**
|
|
235
|
+
* Extended Logger class with specialized logging methods for Agent Foundry.
|
|
236
|
+
*/
|
|
237
|
+
export class ExtendedLogger extends Logger {
|
|
238
|
+
/**
|
|
239
|
+
* Log a tool call attempt.
|
|
240
|
+
*/
|
|
241
|
+
logToolCall(data) {
|
|
242
|
+
this.debug('Tool call initiated', {
|
|
243
|
+
tool: data.tool,
|
|
244
|
+
input: data.input,
|
|
245
|
+
taskId: data.taskId,
|
|
246
|
+
worktreeId: data.worktreeId,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Log a tool call success.
|
|
251
|
+
*/
|
|
252
|
+
logToolSuccess(data) {
|
|
253
|
+
this.info('Tool call succeeded', {
|
|
254
|
+
tool: data.tool,
|
|
255
|
+
durationMs: data.durationMs,
|
|
256
|
+
outputSize: data.outputSize,
|
|
257
|
+
taskId: data.taskId,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Log a tool call failure.
|
|
262
|
+
*/
|
|
263
|
+
logToolFailure(data) {
|
|
264
|
+
this.error('Tool call failed', {
|
|
265
|
+
tool: data.tool,
|
|
266
|
+
error: data.error,
|
|
267
|
+
durationMs: data.durationMs,
|
|
268
|
+
taskId: data.taskId,
|
|
269
|
+
denied: data.denied,
|
|
270
|
+
denyReason: data.denyReason,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Log a tool call denial by hook or policy.
|
|
275
|
+
*/
|
|
276
|
+
logToolDenial(data) {
|
|
277
|
+
this.warn('Tool call denied', {
|
|
278
|
+
tool: data.tool,
|
|
279
|
+
reason: data.reason,
|
|
280
|
+
hookName: data.hookName,
|
|
281
|
+
taskId: data.taskId,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Log a provider failover event.
|
|
286
|
+
*/
|
|
287
|
+
logFailover(data) {
|
|
288
|
+
this.warn('Provider failover triggered', {
|
|
289
|
+
fromProvider: data.fromProvider,
|
|
290
|
+
toProvider: data.toProvider,
|
|
291
|
+
reason: data.reason,
|
|
292
|
+
errorCode: data.errorCode,
|
|
293
|
+
errorMessage: data.errorMessage,
|
|
294
|
+
role: data.role,
|
|
295
|
+
attemptNumber: data.attemptNumber,
|
|
296
|
+
totalAttempts: data.totalAttempts,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Log a provider health change.
|
|
301
|
+
*/
|
|
302
|
+
logHealthChange(data) {
|
|
303
|
+
const level = data.newStatus === 'unhealthy' ? 'error' :
|
|
304
|
+
data.newStatus === 'degraded' ? 'warn' : 'info';
|
|
305
|
+
const message = `Provider health changed: ${data.previousStatus} -> ${data.newStatus}`;
|
|
306
|
+
if (level === 'error') {
|
|
307
|
+
this.error(message, {
|
|
308
|
+
provider: data.provider,
|
|
309
|
+
previousStatus: data.previousStatus,
|
|
310
|
+
newStatus: data.newStatus,
|
|
311
|
+
reason: data.reason,
|
|
312
|
+
cooldownUntil: data.cooldownUntil?.toISOString(),
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
else if (level === 'warn') {
|
|
316
|
+
this.warn(message, {
|
|
317
|
+
provider: data.provider,
|
|
318
|
+
previousStatus: data.previousStatus,
|
|
319
|
+
newStatus: data.newStatus,
|
|
320
|
+
reason: data.reason,
|
|
321
|
+
cooldownUntil: data.cooldownUntil?.toISOString(),
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
this.info(message, {
|
|
326
|
+
provider: data.provider,
|
|
327
|
+
previousStatus: data.previousStatus,
|
|
328
|
+
newStatus: data.newStatus,
|
|
329
|
+
reason: data.reason,
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Log a rate limit warning.
|
|
335
|
+
*/
|
|
336
|
+
logRateLimitWarning(data) {
|
|
337
|
+
this.warn('Rate limit warning', {
|
|
338
|
+
provider: data.provider,
|
|
339
|
+
remaining: data.remaining,
|
|
340
|
+
limit: data.limit,
|
|
341
|
+
usedPercentage: data.usedPercentage,
|
|
342
|
+
resetsAt: data.resetsAt.toISOString(),
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Log a structured error with full context.
|
|
347
|
+
*/
|
|
348
|
+
logStructuredError(data) {
|
|
349
|
+
const logData = {
|
|
350
|
+
category: data.category,
|
|
351
|
+
code: data.code,
|
|
352
|
+
context: data.context,
|
|
353
|
+
stack: data.stack,
|
|
354
|
+
recoverable: data.recoverable,
|
|
355
|
+
suggestedAction: data.suggestedAction,
|
|
356
|
+
};
|
|
357
|
+
if (data.recoverable) {
|
|
358
|
+
this.warn(`[${data.category.toUpperCase()}] ${data.code}: ${data.message}`, logData);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
this.error(`[${data.category.toUpperCase()}] ${data.code}: ${data.message}`, logData);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Create a child logger with additional bound context.
|
|
366
|
+
* Returns an ExtendedLogger instead of Logger.
|
|
367
|
+
*/
|
|
368
|
+
child(context) {
|
|
369
|
+
const pinoChild = this.pinoInstance;
|
|
370
|
+
const childLogger = new ExtendedLogger({
|
|
371
|
+
level: pinoChild.level,
|
|
372
|
+
});
|
|
373
|
+
const mergedContext = { ...context };
|
|
374
|
+
childLogger.pino = pinoChild.child(mergedContext);
|
|
375
|
+
childLogger.boundContext = mergedContext;
|
|
376
|
+
return childLogger;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Factory function to create an ExtendedLogger instance.
|
|
381
|
+
*/
|
|
382
|
+
export function createExtendedLogger(options = {}) {
|
|
383
|
+
return new ExtendedLogger(options);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Default extended logger instance for the agent-foundry package.
|
|
387
|
+
*/
|
|
388
|
+
export const extendedLogger = new ExtendedLogger({ name: 'agent-foundry' });
|
|
231
389
|
/**
|
|
232
390
|
* Re-export for convenience.
|
|
233
391
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,215 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Context Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages context window tracking, auto-compaction, and truncation
|
|
5
|
+
* for multi-provider agent orchestration. Tracks token usage across
|
|
6
|
+
* different providers and models with varying context limits.
|
|
7
|
+
*
|
|
8
|
+
* Key features:
|
|
9
|
+
* - Per-provider/model context limit tracking
|
|
10
|
+
* - Automatic compaction when approaching limits
|
|
11
|
+
* - Smart truncation that preserves important content
|
|
12
|
+
* - Context visualization for debugging
|
|
13
|
+
* - Event emission for monitoring
|
|
14
|
+
*/
|
|
15
|
+
import type { Logger } from '../observability/logger.js';
|
|
16
|
+
import type { Message, ContentBlock } from '../types.js';
|
|
17
|
+
import type { ContextManagerConfig, ContextState, ContextBreakdown, ContextMessage, ContextContentBlock, ContextEventListener, TruncationOptions, TruncationResult } from './context-types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Manages context window tracking and optimization for multi-provider
|
|
20
|
+
* agent orchestration.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const contextManager = new ContextManager({ autoCompactThreshold: 0.85 }, logger);
|
|
25
|
+
*
|
|
26
|
+
* // Check context state before making a request
|
|
27
|
+
* const state = contextManager.getState('openai', 'gpt-4o', messages);
|
|
28
|
+
* if (state.isBlocked) {
|
|
29
|
+
* // Context too full, need to compact
|
|
30
|
+
* messages = contextManager.compact(messages);
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* // Get detailed breakdown for debugging
|
|
34
|
+
* const breakdown = contextManager.getBreakdown(messages);
|
|
35
|
+
* console.log(contextManager.visualize(state, breakdown));
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class ContextManager {
|
|
39
|
+
private readonly config;
|
|
40
|
+
private readonly logger;
|
|
41
|
+
private readonly listeners;
|
|
42
|
+
/**
|
|
43
|
+
* Create a new ContextManager instance.
|
|
44
|
+
*
|
|
45
|
+
* @param config - Partial configuration (merged with defaults)
|
|
46
|
+
* @param logger - Logger instance for observability
|
|
47
|
+
*/
|
|
48
|
+
constructor(config: Partial<ContextManagerConfig>, logger: Logger);
|
|
49
|
+
/**
|
|
50
|
+
* Get the current context state for a provider/model combination.
|
|
51
|
+
*
|
|
52
|
+
* @param provider - Provider name (e.g., 'openai', 'anthropic')
|
|
53
|
+
* @param model - Model name (e.g., 'gpt-4o', 'claude-3-opus')
|
|
54
|
+
* @param messages - Current conversation messages
|
|
55
|
+
* @returns Current context state with usage metrics
|
|
56
|
+
*/
|
|
57
|
+
getState(provider: string, model: string, messages: Message[]): ContextState;
|
|
58
|
+
/**
|
|
59
|
+
* Check if the context should be auto-compacted.
|
|
60
|
+
*
|
|
61
|
+
* @param state - Current context state
|
|
62
|
+
* @returns True if compaction should be triggered
|
|
63
|
+
*/
|
|
64
|
+
shouldCompact(state: ContextState): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Check if the context is blocked (too full for new messages).
|
|
67
|
+
*
|
|
68
|
+
* @param state - Current context state
|
|
69
|
+
* @returns True if context is blocked
|
|
70
|
+
*/
|
|
71
|
+
isBlocked(state: ContextState): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Estimate the number of tokens in a string.
|
|
74
|
+
*
|
|
75
|
+
* Uses a simple character-based approximation. For more accurate counting,
|
|
76
|
+
* consider integrating tiktoken or a provider-specific tokenizer.
|
|
77
|
+
*
|
|
78
|
+
* @param text - Text to estimate tokens for
|
|
79
|
+
* @param provider - Provider name for provider-specific ratios
|
|
80
|
+
* @returns Estimated token count
|
|
81
|
+
*/
|
|
82
|
+
estimateTokens(text: string, provider?: string): number;
|
|
83
|
+
/**
|
|
84
|
+
* Estimate tokens for a content block.
|
|
85
|
+
*
|
|
86
|
+
* @param block - Content block to analyze
|
|
87
|
+
* @param provider - Provider name for estimation
|
|
88
|
+
* @returns Estimated token count
|
|
89
|
+
*/
|
|
90
|
+
estimateContentBlockTokens(block: ContentBlock | ContextContentBlock, provider?: string): number;
|
|
91
|
+
/**
|
|
92
|
+
* Estimate tokens for a message.
|
|
93
|
+
*
|
|
94
|
+
* @param message - Message to analyze
|
|
95
|
+
* @param provider - Provider name for estimation
|
|
96
|
+
* @returns Estimated token count
|
|
97
|
+
*/
|
|
98
|
+
estimateMessageTokens(message: Message | ContextMessage, provider?: string): number;
|
|
99
|
+
/**
|
|
100
|
+
* Estimate total tokens for an array of messages.
|
|
101
|
+
*
|
|
102
|
+
* @param messages - Messages to analyze
|
|
103
|
+
* @param provider - Provider name for estimation
|
|
104
|
+
* @returns Total estimated token count
|
|
105
|
+
*/
|
|
106
|
+
estimateMessagesTokens(messages: (Message | ContextMessage)[], provider?: string): number;
|
|
107
|
+
/**
|
|
108
|
+
* Get the context limit for a specific model.
|
|
109
|
+
*
|
|
110
|
+
* Looks up the model in the configured limits, falling back to
|
|
111
|
+
* DEFAULT_MODEL_LIMITS, then to the default context limit.
|
|
112
|
+
*
|
|
113
|
+
* @param provider - Provider name
|
|
114
|
+
* @param model - Model name
|
|
115
|
+
* @returns Context limit in tokens
|
|
116
|
+
*/
|
|
117
|
+
getModelLimit(provider: string, model: string): number;
|
|
118
|
+
/**
|
|
119
|
+
* Truncate content to fit within a token limit.
|
|
120
|
+
*
|
|
121
|
+
* @param content - Content to truncate
|
|
122
|
+
* @param maxTokens - Maximum tokens allowed
|
|
123
|
+
* @param options - Truncation options
|
|
124
|
+
* @returns Truncated content
|
|
125
|
+
*/
|
|
126
|
+
truncate(content: string, maxTokens: number, options?: Partial<TruncationOptions>): string;
|
|
127
|
+
/**
|
|
128
|
+
* Truncate content with detailed result information.
|
|
129
|
+
*
|
|
130
|
+
* @param content - Content to truncate
|
|
131
|
+
* @param maxTokens - Maximum tokens allowed
|
|
132
|
+
* @param options - Truncation options
|
|
133
|
+
* @returns Truncation result with metadata
|
|
134
|
+
*/
|
|
135
|
+
truncateWithResult(content: string, maxTokens: number, options?: Partial<TruncationOptions>): TruncationResult;
|
|
136
|
+
/**
|
|
137
|
+
* Compact messages to reduce context usage.
|
|
138
|
+
*
|
|
139
|
+
* Strategy:
|
|
140
|
+
* 1. Truncate long tool results
|
|
141
|
+
* 2. Truncate long individual messages
|
|
142
|
+
* 3. Summarize/drop older messages if still over limit
|
|
143
|
+
*
|
|
144
|
+
* @param messages - Messages to compact
|
|
145
|
+
* @param targetReduction - Target reduction percentage (0-1, default 0.3)
|
|
146
|
+
* @returns Compacted messages array
|
|
147
|
+
*/
|
|
148
|
+
compact(messages: Message[], targetReduction?: number): Message[];
|
|
149
|
+
/**
|
|
150
|
+
* Get a detailed breakdown of context usage by category.
|
|
151
|
+
*
|
|
152
|
+
* @param messages - Messages to analyze
|
|
153
|
+
* @param provider - Provider name for estimation
|
|
154
|
+
* @returns Context breakdown by category
|
|
155
|
+
*/
|
|
156
|
+
getBreakdown(messages: (Message | ContextMessage)[], provider?: string): ContextBreakdown;
|
|
157
|
+
/**
|
|
158
|
+
* Generate a human-readable visualization of context usage.
|
|
159
|
+
*
|
|
160
|
+
* @param state - Current context state
|
|
161
|
+
* @param breakdown - Context breakdown by category
|
|
162
|
+
* @returns Formatted visualization string
|
|
163
|
+
*/
|
|
164
|
+
visualize(state: ContextState, breakdown: ContextBreakdown): string;
|
|
165
|
+
/**
|
|
166
|
+
* Add an event listener for context events.
|
|
167
|
+
*
|
|
168
|
+
* @param listener - Event listener function
|
|
169
|
+
*/
|
|
170
|
+
addEventListener(listener: ContextEventListener): void;
|
|
171
|
+
/**
|
|
172
|
+
* Remove an event listener.
|
|
173
|
+
*
|
|
174
|
+
* @param listener - Event listener to remove
|
|
175
|
+
*/
|
|
176
|
+
removeEventListener(listener: ContextEventListener): void;
|
|
177
|
+
/**
|
|
178
|
+
* Emit a context event to all listeners.
|
|
179
|
+
*/
|
|
180
|
+
private emit;
|
|
181
|
+
/**
|
|
182
|
+
* Truncate tool results that exceed the configured limit.
|
|
183
|
+
*/
|
|
184
|
+
private truncateToolResults;
|
|
185
|
+
/**
|
|
186
|
+
* Truncate individual messages that exceed the configured limit.
|
|
187
|
+
*/
|
|
188
|
+
private truncateLongMessages;
|
|
189
|
+
/**
|
|
190
|
+
* Check if a message is a system prompt.
|
|
191
|
+
*/
|
|
192
|
+
private isSystemPromptMessage;
|
|
193
|
+
/**
|
|
194
|
+
* Emit a compaction result event.
|
|
195
|
+
*/
|
|
196
|
+
private emitCompactionResult;
|
|
197
|
+
/**
|
|
198
|
+
* Format a percentage for display.
|
|
199
|
+
*/
|
|
200
|
+
private formatPercentage;
|
|
201
|
+
/**
|
|
202
|
+
* Generate a visual progress bar for context usage.
|
|
203
|
+
*/
|
|
204
|
+
private generateUsageBar;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a ContextManager instance.
|
|
208
|
+
*
|
|
209
|
+
* @param config - Partial configuration (merged with defaults)
|
|
210
|
+
* @param logger - Logger instance
|
|
211
|
+
* @returns Configured ContextManager instance
|
|
212
|
+
*/
|
|
213
|
+
export declare function createContextManager(config: Partial<ContextManagerConfig>, logger: Logger): ContextManager;
|
|
214
|
+
export type { ContextManagerConfig, ContextState, ContextBreakdown, ContextMessage, ContextContentBlock, CompactionResult, CompactionStrategy, ContextEvent, ContextEventListener, TruncationOptions, TruncationResult, } from './context-types.js';
|
|
2
215
|
//# sourceMappingURL=context-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/router/context-manager.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/router/context-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EAInB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAgH5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAElE;;;;;OAKG;gBACS,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM;IAsBjE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY;IAqC5E;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAQvC;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,MAAM;IAO1D;;;;;;OAMG;IACH,0BAA0B,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,EAAE,QAAQ,SAAY,GAAG,MAAM;IAwCnG;;;;;;OAMG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,QAAQ,SAAY,GAAG,MAAM;IAetF;;;;;;OAMG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,SAAY,GAAG,MAAM;IAc5F;;;;;;;;;OASG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAqDtD;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM;IAK1F;;;;;;;OAOG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACnC,gBAAgB;IAoEnB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,SAAM,GAAG,OAAO,EAAE;IA4D9D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,SAAY,GAAG,gBAAgB;IAwC5F;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,MAAM;IAmCnE;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAItD;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAQzD;;OAEG;IACH,OAAO,CAAC,IAAI;IAWZ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgBzB;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,MAAM,EAAE,MAAM,GACb,cAAc,CAEhB;AAMD,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
|