@a5c-ai/agent-mux-observability 0.4.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.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @a5c-ai/agent-mux-observability
3
+ *
4
+ * Simple logging and telemetry infrastructure for agent-mux.
5
+ * Provides structured logging and basic metrics without complex dependencies.
6
+ */
7
+ export { createSimpleLogger as createLogger, createComponentLogger, logger, } from './logger-simple.js';
8
+ export * from './types.js';
9
+ export { telemetry, initializeTelemetry, shutdownTelemetry, } from './telemetry-simple.js';
10
+ export declare function initializeObservability(): void;
11
+ export declare function shutdownObservability(): Promise<void>;
12
+ //# sourceMappingURL=index-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-simple.d.ts","sourceRoot":"","sources":["../src/index-simple.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,kBAAkB,IAAI,YAAY,EAClC,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C;AAGD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @a5c-ai/agent-mux-observability
3
+ *
4
+ * Simple logging and telemetry infrastructure for agent-mux.
5
+ * Provides structured logging and basic metrics without complex dependencies.
6
+ */
7
+ import { initializeTelemetry, shutdownTelemetry } from './telemetry-simple.js';
8
+ // Logger exports
9
+ export { createSimpleLogger as createLogger, createComponentLogger, logger, } from './logger-simple.js';
10
+ export * from './types.js';
11
+ // Telemetry exports
12
+ export { telemetry, initializeTelemetry, shutdownTelemetry, } from './telemetry-simple.js';
13
+ // Convenience function to initialize both logging and telemetry
14
+ export function initializeObservability() {
15
+ // Initialize telemetry
16
+ initializeTelemetry();
17
+ // Logger is initialized automatically when imported
18
+ }
19
+ // Shutdown function for graceful cleanup
20
+ export async function shutdownObservability() {
21
+ await shutdownTelemetry();
22
+ }
23
+ //# sourceMappingURL=index-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-simple.js","sourceRoot":"","sources":["../src/index-simple.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,iBAAiB;AACjB,OAAO,EACL,kBAAkB,IAAI,YAAY,EAClC,qBAAqB,EACrB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,gEAAgE;AAChE,MAAM,UAAU,uBAAuB;IACrC,uBAAuB;IACvB,mBAAmB,EAAE,CAAC;IAEtB,oDAAoD;AACtD,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,iBAAiB,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @a5c-ai/agent-mux-observability
3
+ *
4
+ * Observability infrastructure for agent-mux.
5
+ * Provides structured logging and telemetry with switchable implementations.
6
+ */
7
+ import { Logger, Telemetry } from './types.js';
8
+ export * from './types.js';
9
+ /**
10
+ * Observability mode: 'full' for Pino/OpenTelemetry, 'simple' for Console/JSON.
11
+ */
12
+ export type ObservabilityMode = 'full' | 'simple';
13
+ export declare const logger: Logger;
14
+ /**
15
+ * Create a logger instance based on current mode.
16
+ */
17
+ export declare function createLogger(config?: any): Logger;
18
+ /**
19
+ * Create a component-specific logger based on current mode.
20
+ */
21
+ export declare function createComponentLogger(component: string, context?: any): Logger;
22
+ /**
23
+ * Reconfigure the default logger.
24
+ */
25
+ export declare function reconfigureLogger(config: any): void;
26
+ export declare const telemetry: Telemetry;
27
+ /**
28
+ * Initialize observability based on current mode.
29
+ */
30
+ export declare function initializeObservability(): void;
31
+ /**
32
+ * Shutdown observability based on current mode.
33
+ */
34
+ export declare function shutdownObservability(): Promise<void>;
35
+ export declare const initializeTelemetry: typeof initializeObservability;
36
+ export declare const shutdownTelemetry: typeof shutdownObservability;
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/C,cAAc,YAAY,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAOlD,eAAO,MAAM,MAAM,EAAE,MASnB,CAAC;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM,CAI9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAKnD;AAGD,eAAO,MAAM,SAAS,EAAE,SAStB,CAAC;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAM9C;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3D;AAGD,eAAO,MAAM,mBAAmB,gCAA0B,CAAC;AAC3D,eAAO,MAAM,iBAAiB,8BAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @a5c-ai/agent-mux-observability
3
+ *
4
+ * Observability infrastructure for agent-mux.
5
+ * Provides structured logging and telemetry with switchable implementations.
6
+ */
7
+ import { logger as realLogger, createLogger as createRealLogger, createComponentLogger as createRealComponentLogger, reconfigureLogger as reconfigureRealLogger, } from './logger.js';
8
+ import { telemetry as realTelemetry, initializeTelemetry as initializeRealTelemetry, shutdownTelemetry as shutdownRealTelemetry, } from './telemetry.js';
9
+ import { logger as simpleLogger, createSimpleLogger, createComponentLogger as createSimpleComponentLogger, } from './logger-simple.js';
10
+ import { telemetry as simpleTelemetry, initializeTelemetry as initializeSimpleTelemetry, shutdownTelemetry as shutdownSimpleTelemetry, } from './telemetry-simple.js';
11
+ export * from './types.js';
12
+ function getMode() {
13
+ return process.env.AMUX_OBSERVABILITY_MODE || 'simple';
14
+ }
15
+ // Exported Logger
16
+ export const logger = new Proxy(simpleLogger, {
17
+ get(target, prop, receiver) {
18
+ const activeLogger = getMode() === 'full' ? realLogger : simpleLogger;
19
+ return Reflect.get(activeLogger, prop, receiver);
20
+ },
21
+ set(target, prop, value, receiver) {
22
+ const activeLogger = getMode() === 'full' ? realLogger : simpleLogger;
23
+ return Reflect.set(activeLogger, prop, value, receiver);
24
+ }
25
+ });
26
+ /**
27
+ * Create a logger instance based on current mode.
28
+ */
29
+ export function createLogger(config) {
30
+ return getMode() === 'full' ? createRealLogger(config) : createSimpleLogger(config);
31
+ }
32
+ /**
33
+ * Create a component-specific logger based on current mode.
34
+ */
35
+ export function createComponentLogger(component, context) {
36
+ return getMode() === 'full'
37
+ ? createRealComponentLogger(component, context)
38
+ : createSimpleComponentLogger(component, context);
39
+ }
40
+ /**
41
+ * Reconfigure the default logger.
42
+ */
43
+ export function reconfigureLogger(config) {
44
+ // If we are in full mode or should be, reconfigure real logger
45
+ if (getMode() === 'full') {
46
+ reconfigureRealLogger(config);
47
+ }
48
+ }
49
+ // Exported Telemetry
50
+ export const telemetry = new Proxy(simpleTelemetry, {
51
+ get(target, prop, receiver) {
52
+ const activeTelemetry = getMode() === 'full' ? realTelemetry : simpleTelemetry;
53
+ return Reflect.get(activeTelemetry, prop, receiver);
54
+ },
55
+ set(target, prop, value, receiver) {
56
+ const activeTelemetry = getMode() === 'full' ? realTelemetry : simpleTelemetry;
57
+ return Reflect.set(activeTelemetry, prop, value, receiver);
58
+ }
59
+ });
60
+ /**
61
+ * Initialize observability based on current mode.
62
+ */
63
+ export function initializeObservability() {
64
+ if (getMode() === 'full') {
65
+ initializeRealTelemetry();
66
+ }
67
+ else {
68
+ initializeSimpleTelemetry();
69
+ }
70
+ }
71
+ /**
72
+ * Shutdown observability based on current mode.
73
+ */
74
+ export async function shutdownObservability() {
75
+ if (getMode() === 'full') {
76
+ await shutdownRealTelemetry();
77
+ }
78
+ else {
79
+ await shutdownSimpleTelemetry();
80
+ }
81
+ }
82
+ // Compatibility exports
83
+ export const initializeTelemetry = initializeObservability;
84
+ export const shutdownTelemetry = shutdownObservability;
85
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Simple structured logging for agent-mux.
3
+ * Provides basic logging capabilities without complex dependencies.
4
+ */
5
+ import { Logger, LogContext } from './types.js';
6
+ /**
7
+ * Create a simple logger instance.
8
+ */
9
+ export declare function createSimpleLogger(baseContext?: LogContext): Logger;
10
+ /**
11
+ * Default logger instance.
12
+ */
13
+ export declare const logger: Logger;
14
+ /**
15
+ * Create a logger for a specific component.
16
+ */
17
+ export declare function createComponentLogger(component: string, context?: LogContext): Logger;
18
+ //# sourceMappingURL=logger-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-simple.d.ts","sourceRoot":"","sources":["../src/logger-simple.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAY,UAAU,EAAY,MAAM,YAAY,CAAC;AA8HpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAGjB,CAAC;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAErF"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Simple structured logging for agent-mux.
3
+ * Provides basic logging capabilities without complex dependencies.
4
+ */
5
+ /**
6
+ * Simple logger implementation.
7
+ */
8
+ class SimpleLogger {
9
+ baseContext;
10
+ level = 'info';
11
+ constructor(baseContext = {}) {
12
+ this.baseContext = baseContext;
13
+ }
14
+ log(level, msgOrObj, msg) {
15
+ const timestamp = new Date().toISOString();
16
+ let message;
17
+ let context;
18
+ if (typeof msgOrObj === 'string') {
19
+ message = msgOrObj;
20
+ context = {};
21
+ }
22
+ else {
23
+ message = msg || 'Log message';
24
+ context = msgOrObj;
25
+ }
26
+ const mergedContext = { ...this.baseContext, ...context };
27
+ const logEntry = {
28
+ timestamp,
29
+ level,
30
+ msg: message,
31
+ ...mergedContext,
32
+ };
33
+ process.stderr.write(JSON.stringify(logEntry) + '\n');
34
+ }
35
+ trace(msgOrObj, msg) {
36
+ this.log('trace', msgOrObj, msg);
37
+ }
38
+ debug(msgOrObj, msg) {
39
+ this.log('debug', msgOrObj, msg);
40
+ }
41
+ info(msgOrObj, msg) {
42
+ this.log('info', msgOrObj, msg);
43
+ }
44
+ warn(msgOrObj, msg) {
45
+ this.log('warn', msgOrObj, msg);
46
+ }
47
+ error(msgOrObj, msg) {
48
+ this.log('error', msgOrObj, msg);
49
+ }
50
+ fatal(msgOrObj, msg) {
51
+ this.log('fatal', msgOrObj, msg);
52
+ }
53
+ child(context) {
54
+ return new SimpleLogger({ ...this.baseContext, ...context });
55
+ }
56
+ runStart(context) {
57
+ this.info({
58
+ runId: context.runId,
59
+ agent: context.agent,
60
+ model: context.model,
61
+ prompt: context.prompt.slice(0, 100) + (context.prompt.length > 100 ? '...' : ''),
62
+ }, 'Agent run started');
63
+ }
64
+ runComplete(context) {
65
+ this.info({
66
+ runId: context.runId,
67
+ agent: context.agent,
68
+ duration: context.duration,
69
+ cost: context.cost,
70
+ }, 'Agent run completed');
71
+ }
72
+ runError(context) {
73
+ const error = context.error instanceof Error ? {
74
+ message: context.error.message,
75
+ stack: context.error.stack,
76
+ name: context.error.name,
77
+ } : context.error;
78
+ this.error({
79
+ runId: context.runId,
80
+ agent: context.agent,
81
+ error,
82
+ }, 'Agent run failed');
83
+ }
84
+ toolCallStart(context) {
85
+ this.debug({
86
+ runId: context.runId,
87
+ toolName: context.toolName,
88
+ toolCallId: context.toolCallId,
89
+ args: context.args,
90
+ }, 'Tool call started');
91
+ }
92
+ toolCallComplete(context) {
93
+ this.debug({
94
+ runId: context.runId,
95
+ toolName: context.toolName,
96
+ toolCallId: context.toolCallId,
97
+ duration: context.duration,
98
+ result: typeof context.result === 'string' ? context.result.slice(0, 200) : context.result,
99
+ }, 'Tool call completed');
100
+ }
101
+ session(message, context) {
102
+ this.info({
103
+ ...context,
104
+ type: 'session',
105
+ }, message);
106
+ }
107
+ }
108
+ /**
109
+ * Create a simple logger instance.
110
+ */
111
+ export function createSimpleLogger(baseContext) {
112
+ return new SimpleLogger(baseContext);
113
+ }
114
+ /**
115
+ * Default logger instance.
116
+ */
117
+ export const logger = createSimpleLogger({
118
+ service: 'agent-mux',
119
+ version: process.env.npm_package_version || 'unknown',
120
+ });
121
+ /**
122
+ * Create a logger for a specific component.
123
+ */
124
+ export function createComponentLogger(component, context) {
125
+ return logger.child({ component, ...context });
126
+ }
127
+ //# sourceMappingURL=logger-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-simple.js","sourceRoot":"","sources":["../src/logger-simple.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Structured logging with Pino for agent-mux.
3
+ *
4
+ * Provides contextual logging for agents, runs, sessions, and operations
5
+ * with configurable output formats and log levels.
6
+ */
7
+ import pino from 'pino';
8
+ import { Logger, LogLevel, LogContext } from './types.js';
9
+ /**
10
+ * Logger configuration options.
11
+ */
12
+ export interface LoggerConfig {
13
+ /** Log level threshold */
14
+ level?: LogLevel;
15
+ /** Log to a file instead of stdout */
16
+ logFile?: string;
17
+ /** Enable pretty printing for development */
18
+ pretty?: boolean;
19
+ /** Enable structured JSON output */
20
+ structured?: boolean;
21
+ /** Include timestamps in logs */
22
+ timestamp?: boolean;
23
+ /** Include source location (file:line) in logs */
24
+ includeSource?: boolean;
25
+ /** Base context to include in all logs */
26
+ baseContext?: LogContext;
27
+ /** Custom pino options */
28
+ pinoOptions?: pino.LoggerOptions;
29
+ }
30
+ /**
31
+ * Create a structured logger instance.
32
+ */
33
+ export declare function createLogger(config?: LoggerConfig): Logger;
34
+ /**
35
+ * Default logger instance.
36
+ */
37
+ export declare const logger: Logger;
38
+ /**
39
+ * Create a logger for a specific component.
40
+ */
41
+ export declare function createComponentLogger(component: string, context?: LogContext): Logger;
42
+ /**
43
+ * Create a logger for a specific run.
44
+ */
45
+ export declare function createRunLogger(runId: string, agent: string, additionalContext?: LogContext): Logger;
46
+ /**
47
+ * Reconfigure the default logger.
48
+ * Note: This replaces the pino instance in the singleton wrapper.
49
+ */
50
+ export declare function reconfigureLogger(config: LoggerConfig): void;
51
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAY,MAAM,YAAY,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;CAClC;AAkJD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CA8C9D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAOjB,CAAC;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAErF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,UAAU,GAAG,MAAM,CAEpG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAO5D"}
package/dist/logger.js ADDED
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Structured logging with Pino for agent-mux.
3
+ *
4
+ * Provides contextual logging for agents, runs, sessions, and operations
5
+ * with configurable output formats and log levels.
6
+ */
7
+ import pino from 'pino';
8
+ /**
9
+ * Implementation of the Logger interface that wraps a Pino instance.
10
+ * Ensures that child loggers created via .child() also have the enhanced methods.
11
+ */
12
+ class PinoLoggerWrapper {
13
+ pino;
14
+ constructor(pino) {
15
+ this.pino = pino;
16
+ }
17
+ // Core pino methods
18
+ get level() { return this.pino.level; }
19
+ set level(val) { this.pino.level = val; }
20
+ trace(objOrMsg, msg) {
21
+ this.pino.trace(objOrMsg, msg);
22
+ }
23
+ debug(objOrMsg, msg) {
24
+ this.pino.debug(objOrMsg, msg);
25
+ }
26
+ info(objOrMsg, msg) {
27
+ this.pino.info(objOrMsg, msg);
28
+ }
29
+ warn(objOrMsg, msg) {
30
+ this.pino.warn(objOrMsg, msg);
31
+ }
32
+ error(objOrMsg, msg) {
33
+ this.pino.error(objOrMsg, msg);
34
+ }
35
+ fatal(objOrMsg, msg) {
36
+ this.pino.fatal(objOrMsg, msg);
37
+ }
38
+ child(bindings) {
39
+ return new PinoLoggerWrapper(this.pino.child(bindings));
40
+ }
41
+ // Enhanced methods
42
+ runStart(context) {
43
+ this.pino.info({
44
+ runId: context.runId,
45
+ agent: context.agent,
46
+ model: context.model,
47
+ prompt: context.prompt.slice(0, 100) + (context.prompt.length > 100 ? '...' : ''),
48
+ }, 'Agent run started');
49
+ }
50
+ runComplete(context) {
51
+ this.pino.info({
52
+ runId: context.runId,
53
+ agent: context.agent,
54
+ duration: context.duration,
55
+ cost: context.cost,
56
+ }, 'Agent run completed');
57
+ }
58
+ runError(context) {
59
+ const error = context.error instanceof Error ? {
60
+ message: context.error.message,
61
+ stack: context.error.stack,
62
+ name: context.error.name,
63
+ } : context.error;
64
+ this.pino.error({
65
+ runId: context.runId,
66
+ agent: context.agent,
67
+ error,
68
+ }, 'Agent run failed');
69
+ }
70
+ toolCallStart(context) {
71
+ this.pino.debug({
72
+ runId: context.runId,
73
+ toolName: context.toolName,
74
+ toolCallId: context.toolCallId,
75
+ args: context.args,
76
+ }, 'Tool call started');
77
+ }
78
+ toolCallComplete(context) {
79
+ this.pino.debug({
80
+ runId: context.runId,
81
+ toolName: context.toolName,
82
+ toolCallId: context.toolCallId,
83
+ duration: context.duration,
84
+ result: typeof context.result === 'string' ? context.result.slice(0, 200) : context.result,
85
+ }, 'Tool call completed');
86
+ }
87
+ perf(message, context) {
88
+ this.pino.info({
89
+ ...context,
90
+ type: 'performance',
91
+ }, message);
92
+ }
93
+ auth(message, context) {
94
+ this.pino.info({
95
+ ...context,
96
+ type: 'auth',
97
+ }, message);
98
+ }
99
+ config(message, context) {
100
+ this.pino.debug({
101
+ ...context,
102
+ type: 'config',
103
+ }, message);
104
+ }
105
+ session(message, context) {
106
+ this.pino.info({
107
+ ...context,
108
+ type: 'session',
109
+ }, message);
110
+ }
111
+ }
112
+ /**
113
+ * Default logger configuration.
114
+ */
115
+ const DEFAULT_CONFIG = {
116
+ level: 'info',
117
+ logFile: '',
118
+ pretty: process.env.NODE_ENV !== 'production',
119
+ structured: process.env.NODE_ENV === 'production',
120
+ timestamp: true,
121
+ includeSource: false,
122
+ };
123
+ /**
124
+ * Create a structured logger instance.
125
+ */
126
+ export function createLogger(config = {}) {
127
+ const resolvedConfig = { ...DEFAULT_CONFIG, ...config };
128
+ // Determine if we should use pretty printing
129
+ const shouldUsePretty = resolvedConfig.pretty && !resolvedConfig.structured && !resolvedConfig.logFile;
130
+ // Base pino options
131
+ const pinoOptions = {
132
+ level: resolvedConfig.level,
133
+ timestamp: resolvedConfig.timestamp,
134
+ base: {
135
+ pid: process.pid,
136
+ hostname: process.env.HOSTNAME || 'unknown',
137
+ service: 'agent-mux',
138
+ ...config.baseContext,
139
+ },
140
+ ...config.pinoOptions,
141
+ };
142
+ let baseLogger;
143
+ if (resolvedConfig.logFile) {
144
+ // Log to file (always structured JSON)
145
+ baseLogger = pino(pinoOptions, pino.destination(resolvedConfig.logFile));
146
+ }
147
+ else if (shouldUsePretty) {
148
+ // Add pretty printing for development
149
+ const transport = {
150
+ target: 'pino-pretty',
151
+ options: {
152
+ colorize: true,
153
+ translateTime: 'yyyy-mm-dd HH:MM:ss',
154
+ ignore: 'pid,hostname,service',
155
+ messageFormat: '{msg}',
156
+ customPrettifiers: {
157
+ runId: (runId) => `run:${runId.slice(0, 8)}`,
158
+ agent: (agent) => `agent:${agent}`,
159
+ component: (component) => `[${component}]`,
160
+ },
161
+ },
162
+ };
163
+ baseLogger = pino(pinoOptions, pino.transport(transport));
164
+ }
165
+ else {
166
+ baseLogger = pino(pinoOptions);
167
+ }
168
+ return new PinoLoggerWrapper(baseLogger);
169
+ }
170
+ /**
171
+ * Default logger instance.
172
+ */
173
+ export const logger = createLogger({
174
+ level: process.env.AMUX_LOG_LEVEL || 'info',
175
+ logFile: process.env.AMUX_LOG_FILE,
176
+ pretty: process.env.AMUX_LOG_PRETTY === 'true',
177
+ baseContext: {
178
+ version: process.env.npm_package_version || 'unknown',
179
+ },
180
+ });
181
+ /**
182
+ * Create a logger for a specific component.
183
+ */
184
+ export function createComponentLogger(component, context) {
185
+ return logger.child({ component, ...context });
186
+ }
187
+ /**
188
+ * Create a logger for a specific run.
189
+ */
190
+ export function createRunLogger(runId, agent, additionalContext) {
191
+ return logger.child({ runId, agent, ...additionalContext });
192
+ }
193
+ /**
194
+ * Reconfigure the default logger.
195
+ * Note: This replaces the pino instance in the singleton wrapper.
196
+ */
197
+ export function reconfigureLogger(config) {
198
+ const newLogger = createLogger(config);
199
+ // @ts-expect-error - accessing private property to reconfigure singleton
200
+ logger.pino = newLogger.pino;
201
+ if (config.level) {
202
+ logger.level = config.level;
203
+ }
204
+ }
205
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Telemetry, CostInfo } from './types.js';
2
+ /**
3
+ * Simple telemetry implementation that logs metrics.
4
+ */
5
+ declare class SimpleTelemetryImpl implements Telemetry {
6
+ private emit;
7
+ startRunSpan(_runId: string, _agent: string, _model?: string): null;
8
+ startToolCallSpan(_toolName: string, _toolCallId: string, _parentSpan?: unknown): null;
9
+ startSubagentSpan(_subagentId: string, _agentName: string, _parentSpan?: unknown): null;
10
+ recordRunStart(agent: string, model?: string): void;
11
+ recordRunComplete(agent: string, model: string | undefined, duration: number, cost?: CostInfo): void;
12
+ recordRunError(agent: string, model: string | undefined, error: Error | string, cost?: CostInfo): void;
13
+ recordToolCall(toolName: string, duration: number, success: boolean): void;
14
+ recordAuthEvent(agent: string, method: string, success: boolean): void;
15
+ endSpanSuccess(_span: unknown, _attributes?: Record<string, string | number | boolean>): void;
16
+ endSpanError(_span: unknown, _error: Error | string, _attributes?: Record<string, string | number | boolean>): void;
17
+ }
18
+ /**
19
+ * Default telemetry instance.
20
+ */
21
+ export declare const telemetry: SimpleTelemetryImpl;
22
+ /**
23
+ * Initialize telemetry (no-op for simple implementation).
24
+ */
25
+ export declare function initializeTelemetry(): void;
26
+ /**
27
+ * Shutdown telemetry (no-op for simple implementation).
28
+ */
29
+ export declare function shutdownTelemetry(): Promise<void>;
30
+ export {};
31
+ //# sourceMappingURL=telemetry-simple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-simple.d.ts","sourceRoot":"","sources":["../src/telemetry-simple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,cAAM,mBAAoB,YAAW,SAAS;IAC5C,OAAO,CAAC,IAAI;IAIZ,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAItF,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAIvF,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IASnD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI;IAWpG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI;IAYtG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAU1E,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAUtE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI;IAI7F,YAAY,CACV,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACtD,IAAI;CAGR;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,qBAA4B,CAAC;AAEnD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD"}