agentnet 0.1.32 → 0.1.33

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentnet",
3
- "version": "0.1.32",
3
+ "version": "0.1.33",
4
4
  "type": "module",
5
5
  "description": "Agent library used by Smartness",
6
6
  "main": "src/index.js",
package/src/index.js CHANGED
@@ -11,6 +11,13 @@ import {
11
11
  noStore
12
12
  } from "./store/store.js";
13
13
  import { Conversation } from "./utils/conversation.js";
14
+ import {
15
+ logger as _logger,
16
+ setLogger as _setLogger,
17
+ resetLogger as _resetLogger,
18
+ createLogger as _createLogger,
19
+ LogLevel as _LogLevel
20
+ } from "./utils/logger.js";
14
21
 
15
22
  export const AgentLoaderFile = _AgentLoader.AgentLoaderFile
16
23
  export const AgentLoaderJSON = _AgentLoader.AgentLoaderJSON
@@ -31,6 +38,14 @@ export const MemoryStore = memoryStore
31
38
  export const NoStore = noStore
32
39
  export const SessionStore = session
33
40
 
41
+ // Logging: `logger` is used internally; host apps can route it through their own
42
+ // logger with setLogger() (and resetLogger() to restore the default).
43
+ export const logger = _logger
44
+ export const setLogger = _setLogger
45
+ export const resetLogger = _resetLogger
46
+ export const createLogger = _createLogger
47
+ export const LogLevel = _LogLevel
48
+
34
49
 
35
50
  import { connect } from "@nats-io/transport-node"
36
51
  export const NatsIO = (config) => {
@@ -205,5 +205,54 @@ export function createLogger(customConfig = {}) {
205
205
  };
206
206
  }
207
207
 
208
- // Create and export default logger
209
- export const logger = createLogger();
208
+ // The built-in logger (unchanged default behavior).
209
+ const defaultLogger = createLogger();
210
+
211
+ // The logger all of agentnet writes through. Swappable at runtime via setLogger().
212
+ let activeLogger = defaultLogger;
213
+
214
+ const REQUIRED_METHODS = ['error', 'warn', 'info', 'debug', 'trace'];
215
+
216
+ /**
217
+ * Replace the logger used across agentnet at runtime, so a host application can
218
+ * route agentnet's logs into its own logger (e.g. a structured/JSON pino logger)
219
+ * instead of the built-in console output.
220
+ *
221
+ * The provided logger must implement error/warn/info/debug/trace with the same
222
+ * `(message, data?)` signature as the built-in logger. Optionally it may provide
223
+ * `setLevel` and `getConfig`.
224
+ *
225
+ * @param {object} customLogger
226
+ * @returns {object} the previously active logger (useful to restore it later)
227
+ */
228
+ export function setLogger(customLogger) {
229
+ if (!customLogger || REQUIRED_METHODS.some((m) => typeof customLogger[m] !== 'function')) {
230
+ throw new Error(
231
+ `setLogger: logger must implement ${REQUIRED_METHODS.join(', ')} methods`
232
+ );
233
+ }
234
+ const previous = activeLogger;
235
+ activeLogger = customLogger;
236
+ return previous;
237
+ }
238
+
239
+ /** Restore the built-in default logger. */
240
+ export function resetLogger() {
241
+ activeLogger = defaultLogger;
242
+ }
243
+
244
+ /**
245
+ * The agentnet logger. This is a stable reference whose methods always delegate
246
+ * to the currently active logger, so calls made through already-imported
247
+ * `logger` bindings keep working after setLogger().
248
+ */
249
+ export const logger = {
250
+ error: (...args) => activeLogger.error(...args),
251
+ warn: (...args) => activeLogger.warn(...args),
252
+ info: (...args) => activeLogger.info(...args),
253
+ debug: (...args) => activeLogger.debug(...args),
254
+ trace: (...args) => activeLogger.trace(...args),
255
+ // Optional on custom loggers — delegate only when implemented.
256
+ setLevel: (...args) => activeLogger.setLevel?.(...args),
257
+ getConfig: (...args) => activeLogger.getConfig?.(...args)
258
+ };