@indexnetwork/protocol 4.5.0-rc.322.1 → 4.5.0-rc.324.1
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/dist/agent/agent.tools.js +1 -1
- package/dist/agent/agent.tools.js.map +1 -1
- package/dist/chat/chat.interrupt.classifier.js +1 -1
- package/dist/chat/chat.interrupt.classifier.js.map +1 -1
- package/dist/chat/chat.suggester.js +3 -3
- package/dist/chat/chat.suggester.js.map +1 -1
- package/dist/chat/chat.title.generator.js +2 -2
- package/dist/chat/chat.title.generator.js.map +1 -1
- package/dist/contact/contact.tools.js +1 -1
- package/dist/contact/contact.tools.js.map +1 -1
- package/dist/enrichment/enrichment.graph.d.ts.map +1 -1
- package/dist/enrichment/enrichment.graph.js +9 -3
- package/dist/enrichment/enrichment.graph.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/integration.tools.js +1 -1
- package/dist/integration/integration.tools.js.map +1 -1
- package/dist/intent/intent.graph.d.ts.map +1 -1
- package/dist/intent/intent.graph.js +12 -10
- package/dist/intent/intent.graph.js.map +1 -1
- package/dist/intent/intent.indexer.d.ts.map +1 -1
- package/dist/intent/intent.indexer.js +4 -3
- package/dist/intent/intent.indexer.js.map +1 -1
- package/dist/intent/intent.inferrer.d.ts.map +1 -1
- package/dist/intent/intent.inferrer.js +2 -1
- package/dist/intent/intent.inferrer.js.map +1 -1
- package/dist/intent/intent.reconciler.d.ts.map +1 -1
- package/dist/intent/intent.reconciler.js +5 -4
- package/dist/intent/intent.reconciler.js.map +1 -1
- package/dist/intent/intent.verifier.d.ts.map +1 -1
- package/dist/intent/intent.verifier.js +4 -3
- package/dist/intent/intent.verifier.js.map +1 -1
- package/dist/maintenance/maintenance.graph.d.ts.map +1 -1
- package/dist/maintenance/maintenance.graph.js +27 -5
- package/dist/maintenance/maintenance.graph.js.map +1 -1
- package/dist/mcp/mcp.server.d.ts.map +1 -1
- package/dist/mcp/mcp.server.js +5 -4
- package/dist/mcp/mcp.server.js.map +1 -1
- package/dist/negotiation/insight.generator.js +2 -2
- package/dist/negotiation/insight.generator.js.map +1 -1
- package/dist/negotiation/negotiation.graph.d.ts.map +1 -1
- package/dist/negotiation/negotiation.graph.js +15 -11
- package/dist/negotiation/negotiation.graph.js.map +1 -1
- package/dist/negotiation/negotiation.tools.js +1 -1
- package/dist/negotiation/negotiation.tools.js.map +1 -1
- package/dist/network/network.recommender.d.ts.map +1 -1
- package/dist/network/network.recommender.js +5 -4
- package/dist/network/network.recommender.js.map +1 -1
- package/dist/network/network.tools.d.ts.map +1 -1
- package/dist/network/network.tools.js +4 -2
- package/dist/network/network.tools.js.map +1 -1
- package/dist/opportunity/feed/feed.graph.d.ts.map +1 -1
- package/dist/opportunity/feed/feed.graph.js +30 -23
- package/dist/opportunity/feed/feed.graph.js.map +1 -1
- package/dist/opportunity/opportunity.discover.d.ts.map +1 -1
- package/dist/opportunity/opportunity.discover.js +6 -4
- package/dist/opportunity/opportunity.discover.js.map +1 -1
- package/dist/opportunity/opportunity.enricher.js +2 -2
- package/dist/opportunity/opportunity.enricher.js.map +1 -1
- package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -1
- package/dist/opportunity/opportunity.evaluator.js +9 -7
- package/dist/opportunity/opportunity.evaluator.js.map +1 -1
- package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
- package/dist/opportunity/opportunity.graph.js +123 -105
- package/dist/opportunity/opportunity.graph.js.map +1 -1
- package/dist/opportunity/opportunity.introducer.js +5 -5
- package/dist/opportunity/opportunity.introducer.js.map +1 -1
- package/dist/opportunity/opportunity.persist.js +2 -2
- package/dist/opportunity/opportunity.persist.js.map +1 -1
- package/dist/opportunity/opportunity.presenter.d.ts.map +1 -1
- package/dist/opportunity/opportunity.presenter.js +4 -2
- package/dist/opportunity/opportunity.presenter.js.map +1 -1
- package/dist/opportunity/opportunity.tools.d.ts.map +1 -1
- package/dist/opportunity/opportunity.tools.js +2 -1
- package/dist/opportunity/opportunity.tools.js.map +1 -1
- package/dist/opportunity/opportunity.utils.d.ts.map +1 -1
- package/dist/opportunity/opportunity.utils.js +29 -5
- package/dist/opportunity/opportunity.utils.js.map +1 -1
- package/dist/premise/premise.analyzer.d.ts.map +1 -1
- package/dist/premise/premise.analyzer.js +3 -2
- package/dist/premise/premise.analyzer.js.map +1 -1
- package/dist/premise/premise.decomposer.d.ts.map +1 -1
- package/dist/premise/premise.decomposer.js +12 -3
- package/dist/premise/premise.decomposer.js.map +1 -1
- package/dist/premise/premise.graph.d.ts.map +1 -1
- package/dist/premise/premise.graph.js +19 -9
- package/dist/premise/premise.graph.js.map +1 -1
- package/dist/premise/premise.indexer.d.ts.map +1 -1
- package/dist/premise/premise.indexer.js +2 -1
- package/dist/premise/premise.indexer.js.map +1 -1
- package/dist/premise/premise.tools.d.ts.map +1 -1
- package/dist/premise/premise.tools.js +8 -4
- package/dist/premise/premise.tools.js.map +1 -1
- package/dist/shared/agent/tool.factory.d.ts.map +1 -1
- package/dist/shared/agent/tool.factory.js +4 -2
- package/dist/shared/agent/tool.factory.js.map +1 -1
- package/dist/shared/agent/tool.registry.d.ts.map +1 -1
- package/dist/shared/agent/tool.registry.js +6 -4
- package/dist/shared/agent/tool.registry.js.map +1 -1
- package/dist/shared/interfaces/database.interface.d.ts +1 -1
- package/dist/shared/interfaces/database.interface.js.map +1 -1
- package/dist/shared/observability/log.d.ts +3 -2
- package/dist/shared/observability/log.d.ts.map +1 -1
- package/dist/shared/observability/log.js +72 -9
- package/dist/shared/observability/log.js.map +1 -1
- package/dist/shared/observability/protocol.logger.d.ts.map +1 -1
- package/dist/shared/observability/protocol.logger.js +5 -3
- package/dist/shared/observability/protocol.logger.js.map +1 -1
- package/package.json +5 -5
|
@@ -12,19 +12,56 @@
|
|
|
12
12
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
13
13
|
function defaultCreateLogger(_context, source) {
|
|
14
14
|
const prefix = `[${source}]`;
|
|
15
|
+
const emit = (sink, msg, meta) => sink(prefix, msg, ...(meta ? [sanitizeFn(meta)] : []));
|
|
15
16
|
return {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
verbose: (msg, meta) => emit(console.debug, msg, meta),
|
|
19
|
+
// eslint-disable-next-line no-console
|
|
20
|
+
debug: (msg, meta) => emit(console.debug, msg, meta),
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
info: (msg, meta) => emit(console.info, msg, meta),
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
warn: (msg, meta) => emit(console.warn, msg, meta),
|
|
25
|
+
// eslint-disable-next-line no-console
|
|
26
|
+
error: (msg, meta) => emit(console.error, msg, meta),
|
|
21
27
|
};
|
|
22
28
|
}
|
|
23
|
-
|
|
29
|
+
/** Truncation limits for the default (host-less) sanitizer — never dump big payloads. */
|
|
30
|
+
const MAX_STRING_LENGTH = 2000;
|
|
31
|
+
const MAX_ARRAY_ITEMS = 25;
|
|
32
|
+
const MAX_DEPTH = 6;
|
|
33
|
+
function defaultSanitize(value, depth = 0) {
|
|
34
|
+
if (value == null)
|
|
35
|
+
return value;
|
|
36
|
+
if (typeof value === 'string') {
|
|
37
|
+
return value.length > MAX_STRING_LENGTH
|
|
38
|
+
? `${value.slice(0, MAX_STRING_LENGTH)}… [truncated ${value.length - MAX_STRING_LENGTH} chars]`
|
|
39
|
+
: value;
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(value)) {
|
|
42
|
+
if (value.length > 0 && typeof value[0] === 'number')
|
|
43
|
+
return `[redacted: ${value.length} values]`;
|
|
44
|
+
if (depth >= MAX_DEPTH)
|
|
45
|
+
return `[truncated: array(${value.length})]`;
|
|
46
|
+
const items = value.slice(0, MAX_ARRAY_ITEMS).map((item) => defaultSanitize(item, depth + 1));
|
|
47
|
+
if (value.length > MAX_ARRAY_ITEMS)
|
|
48
|
+
items.push(`… [truncated ${value.length - MAX_ARRAY_ITEMS} more items]`);
|
|
49
|
+
return items;
|
|
50
|
+
}
|
|
51
|
+
if (value instanceof Error) {
|
|
52
|
+
return { name: value.name, message: defaultSanitize(value.message, depth + 1) };
|
|
53
|
+
}
|
|
54
|
+
if (typeof value === 'object' && value.constructor === Object) {
|
|
55
|
+
if (depth >= MAX_DEPTH)
|
|
56
|
+
return `[truncated: object(${Object.keys(value).length} keys)]`;
|
|
57
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, defaultSanitize(v, depth + 1)]));
|
|
58
|
+
}
|
|
24
59
|
return value;
|
|
25
60
|
}
|
|
26
61
|
let createLoggerFn = defaultCreateLogger;
|
|
27
62
|
let sanitizeFn = defaultSanitize;
|
|
63
|
+
/** Bumped on every setLoggerFactory() call; invalidates cached logger instances. */
|
|
64
|
+
let factoryGeneration = 0;
|
|
28
65
|
/**
|
|
29
66
|
* Override the logger factory used by all protocol-internal logging.
|
|
30
67
|
* Call this at application startup to wire in your project's logger.
|
|
@@ -44,6 +81,7 @@ export function setLoggerFactory(factory, sanitize) {
|
|
|
44
81
|
createLoggerFn = factory;
|
|
45
82
|
if (sanitize)
|
|
46
83
|
sanitizeFn = sanitize;
|
|
84
|
+
factoryGeneration++;
|
|
47
85
|
}
|
|
48
86
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
49
87
|
// PUBLIC API
|
|
@@ -52,9 +90,33 @@ export function setLoggerFactory(factory, sanitize) {
|
|
|
52
90
|
export function sanitizeForLog(value) {
|
|
53
91
|
return sanitizeFn(value);
|
|
54
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Late-bound logger: resolves the current factory at emit time (cached per
|
|
95
|
+
* factory generation). This makes `const logger = log.lib.from('X')` at module
|
|
96
|
+
* import time safe — loggers created BEFORE the host calls `setLoggerFactory()`
|
|
97
|
+
* still pick up the rich implementation afterwards.
|
|
98
|
+
*/
|
|
99
|
+
function makeLateBoundLogger(context, source) {
|
|
100
|
+
let cached;
|
|
101
|
+
let cachedGeneration = -1;
|
|
102
|
+
const resolve = () => {
|
|
103
|
+
if (!cached || cachedGeneration !== factoryGeneration) {
|
|
104
|
+
cached = createLoggerFn(context, source);
|
|
105
|
+
cachedGeneration = factoryGeneration;
|
|
106
|
+
}
|
|
107
|
+
return cached;
|
|
108
|
+
};
|
|
109
|
+
return {
|
|
110
|
+
verbose: (msg, meta) => resolve().verbose(msg, meta),
|
|
111
|
+
debug: (msg, meta) => resolve().debug(msg, meta),
|
|
112
|
+
info: (msg, meta) => resolve().info(msg, meta),
|
|
113
|
+
warn: (msg, meta) => resolve().warn(msg, meta),
|
|
114
|
+
error: (msg, meta) => resolve().error(msg, meta),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
55
117
|
function lazyContext(context) {
|
|
56
118
|
return {
|
|
57
|
-
from: (source) =>
|
|
119
|
+
from: (source) => makeLateBoundLogger(context, source),
|
|
58
120
|
};
|
|
59
121
|
}
|
|
60
122
|
/**
|
|
@@ -64,8 +126,9 @@ function lazyContext(context) {
|
|
|
64
126
|
* logger.info('started');
|
|
65
127
|
* ```
|
|
66
128
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
129
|
+
* Loggers are late-bound: the factory is resolved at emit time, so
|
|
130
|
+
* `setLoggerFactory()` at app startup upgrades even loggers that were created
|
|
131
|
+
* at module import time.
|
|
69
132
|
*/
|
|
70
133
|
export const log = {
|
|
71
134
|
protocol: lazyContext('protocol'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"/","sources":["shared/observability/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,kFAAkF;AAClF,yBAAyB;AACzB,kFAAkF;AAElF,SAAS,mBAAmB,CAAC,QAAgB,EAAE,MAAc;IAC3D,MAAM,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC;IAC7B,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AASD,IAAI,cAAc,GAAkB,mBAAmB,CAAC;AACxD,IAAI,UAAU,GAAe,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB,EAAE,QAAqB;IAC5E,cAAc,GAAG,OAAO,CAAC;IACzB,IAAI,QAAQ;QAAE,UAAU,GAAG,QAAQ,CAAC;AACtC,CAAC;AAED,kFAAkF;AAClF,aAAa;AACb,kFAAkF;AAElF,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO;QACL,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC;IACjC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;CAC5B,CAAC","sourcesContent":["/**\n * Protocol-internal logging module.\n *\n * Self-contained — no imports from outside the protocol library.\n * Ships with a minimal console-based default. The host application can\n * call `setLoggerFactory()` at startup to wire in a richer implementation\n * (e.g. the project-wide `log` utility with ANSI colors, context filtering,\n * and embedding redaction).\n */\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// TYPES\n// ═══════════════════════════════════════════════════════════════════════════════\n\ntype LogMethod = (message: string, meta?: Record<string, unknown>) => void;\n\nexport type LoggerWithSource = {\n verbose: LogMethod;\n debug: LogMethod;\n info: LogMethod;\n warn: LogMethod;\n error: LogMethod;\n};\n\nexport type LogContext = 'protocol' | 'lib' | 'agent' | 'graph';\n\nexport type LogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error';\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// DEFAULT IMPLEMENTATION\n// ═══════════════════════════════════════════════════════════════════════════════\n\nfunction defaultCreateLogger(_context: string, source: string): LoggerWithSource {\n const prefix = `[${source}]`;\n return {\n verbose: (msg, meta) => console.debug(prefix, msg, ...(meta ? [meta] : [])),\n debug: (msg, meta) => console.debug(prefix, msg, ...(meta ? [meta] : [])),\n info: (msg, meta) => console.info(prefix, msg, ...(meta ? [meta] : [])),\n warn: (msg, meta) => console.warn(prefix, msg, ...(meta ? [meta] : [])),\n error: (msg, meta) => console.error(prefix, msg, ...(meta ? [meta] : [])),\n };\n}\n\nfunction defaultSanitize(value: unknown): unknown {\n return value;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// PLUGGABLE FACTORY\n// ═══════════════════════════════════════════════════════════════════════════════\n\ntype LoggerFactory = (context: string, source: string) => LoggerWithSource;\ntype SanitizeFn = (value: unknown) => unknown;\n\nlet createLoggerFn: LoggerFactory = defaultCreateLogger;\nlet sanitizeFn: SanitizeFn = defaultSanitize;\n\n/**\n * Override the logger factory used by all protocol-internal logging.\n * Call this at application startup to wire in your project's logger.\n *\n * @example\n * ```ts\n * import { log, sanitizeForLog } from \"./lib/log.js\";\n * import { setLoggerFactory } from \"./lib/protocol/support/log.js\";\n *\n * setLoggerFactory(\n * (context, source) => log.withContext(context as LogContext, source),\n * sanitizeForLog,\n * );\n * ```\n */\nexport function setLoggerFactory(factory: LoggerFactory, sanitize?: SanitizeFn) {\n createLoggerFn = factory;\n if (sanitize) sanitizeFn = sanitize;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// PUBLIC API\n// ═══════════════════════════════════════════════════════════════════════════════\n\n/** Sanitize an object for logging (redacts embeddings when host logger is wired in). */\nexport function sanitizeForLog(value: unknown): unknown {\n return sanitizeFn(value);\n}\n\nfunction lazyContext(context: string) {\n return {\n from: (source: string) => createLoggerFn(context, source),\n };\n}\n\n/**\n * Logger with pre-bound context. Usage:\n * ```ts\n * const logger = log.protocol.from('MyComponent');\n * logger.info('started');\n * ```\n *\n * Logger creation is deferred to call time so `setLoggerFactory()` can be\n * called at app startup and all subsequent `.from()` calls use the new factory.\n */\nexport const log = {\n protocol: lazyContext('protocol'),\n lib: lazyContext('lib'),\n agent: lazyContext('agent'),\n graph: lazyContext('graph'),\n};\n"]}
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"/","sources":["shared/observability/log.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Protocol-internal logging module.\n *\n * Self-contained — no imports from outside the protocol library.\n * Ships with a minimal console-based default. The host application can\n * call `setLoggerFactory()` at startup to wire in a richer implementation\n * (e.g. the project-wide `log` utility with ANSI colors, context filtering,\n * and embedding redaction).\n */\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// TYPES\n// ═══════════════════════════════════════════════════════════════════════════════\n\ntype LogMethod = (message: string, meta?: Record<string, unknown>) => void;\n\nexport type LoggerWithSource = {\n verbose: LogMethod;\n debug: LogMethod;\n info: LogMethod;\n warn: LogMethod;\n error: LogMethod;\n};\n\nexport type LogContext = 'protocol' | 'lib' | 'agent' | 'graph';\n\nexport type LogLevel = 'verbose' | 'debug' | 'info' | 'warn' | 'error';\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// DEFAULT IMPLEMENTATION\n// ═══════════════════════════════════════════════════════════════════════════════\n\nfunction defaultCreateLogger(_context: string, source: string): LoggerWithSource {\n const prefix = `[${source}]`;\n const emit = (sink: (...args: unknown[]) => void, msg: string, meta?: Record<string, unknown>) =>\n sink(prefix, msg, ...(meta ? [sanitizeFn(meta)] : []));\n return {\n // eslint-disable-next-line no-console\n verbose: (msg, meta) => emit(console.debug, msg, meta),\n // eslint-disable-next-line no-console\n debug: (msg, meta) => emit(console.debug, msg, meta),\n // eslint-disable-next-line no-console\n info: (msg, meta) => emit(console.info, msg, meta),\n // eslint-disable-next-line no-console\n warn: (msg, meta) => emit(console.warn, msg, meta),\n // eslint-disable-next-line no-console\n error: (msg, meta) => emit(console.error, msg, meta),\n };\n}\n\n/** Truncation limits for the default (host-less) sanitizer — never dump big payloads. */\nconst MAX_STRING_LENGTH = 2000;\nconst MAX_ARRAY_ITEMS = 25;\nconst MAX_DEPTH = 6;\n\nfunction defaultSanitize(value: unknown, depth = 0): unknown {\n if (value == null) return value;\n if (typeof value === 'string') {\n return value.length > MAX_STRING_LENGTH\n ? `${value.slice(0, MAX_STRING_LENGTH)}… [truncated ${value.length - MAX_STRING_LENGTH} chars]`\n : value;\n }\n if (Array.isArray(value)) {\n if (value.length > 0 && typeof value[0] === 'number') return `[redacted: ${value.length} values]`;\n if (depth >= MAX_DEPTH) return `[truncated: array(${value.length})]`;\n const items = value.slice(0, MAX_ARRAY_ITEMS).map((item) => defaultSanitize(item, depth + 1));\n if (value.length > MAX_ARRAY_ITEMS) items.push(`… [truncated ${value.length - MAX_ARRAY_ITEMS} more items]`);\n return items;\n }\n if (value instanceof Error) {\n return { name: value.name, message: defaultSanitize(value.message, depth + 1) };\n }\n if (typeof value === 'object' && value.constructor === Object) {\n if (depth >= MAX_DEPTH) return `[truncated: object(${Object.keys(value).length} keys)]`;\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>).map(([k, v]) => [k, defaultSanitize(v, depth + 1)])\n );\n }\n return value;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// PLUGGABLE FACTORY\n// ═══════════════════════════════════════════════════════════════════════════════\n\ntype LoggerFactory = (context: string, source: string) => LoggerWithSource;\ntype SanitizeFn = (value: unknown) => unknown;\n\nlet createLoggerFn: LoggerFactory = defaultCreateLogger;\nlet sanitizeFn: SanitizeFn = defaultSanitize;\n/** Bumped on every setLoggerFactory() call; invalidates cached logger instances. */\nlet factoryGeneration = 0;\n\n/**\n * Override the logger factory used by all protocol-internal logging.\n * Call this at application startup to wire in your project's logger.\n *\n * @example\n * ```ts\n * import { log, sanitizeForLog } from \"./lib/log.js\";\n * import { setLoggerFactory } from \"./lib/protocol/support/log.js\";\n *\n * setLoggerFactory(\n * (context, source) => log.withContext(context as LogContext, source),\n * sanitizeForLog,\n * );\n * ```\n */\nexport function setLoggerFactory(factory: LoggerFactory, sanitize?: SanitizeFn) {\n createLoggerFn = factory;\n if (sanitize) sanitizeFn = sanitize;\n factoryGeneration++;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// PUBLIC API\n// ═══════════════════════════════════════════════════════════════════════════════\n\n/** Sanitize an object for logging (redacts embeddings when host logger is wired in). */\nexport function sanitizeForLog(value: unknown): unknown {\n return sanitizeFn(value);\n}\n\n/**\n * Late-bound logger: resolves the current factory at emit time (cached per\n * factory generation). This makes `const logger = log.lib.from('X')` at module\n * import time safe — loggers created BEFORE the host calls `setLoggerFactory()`\n * still pick up the rich implementation afterwards.\n */\nfunction makeLateBoundLogger(context: string, source: string): LoggerWithSource {\n let cached: LoggerWithSource | undefined;\n let cachedGeneration = -1;\n const resolve = (): LoggerWithSource => {\n if (!cached || cachedGeneration !== factoryGeneration) {\n cached = createLoggerFn(context, source);\n cachedGeneration = factoryGeneration;\n }\n return cached;\n };\n return {\n verbose: (msg, meta) => resolve().verbose(msg, meta),\n debug: (msg, meta) => resolve().debug(msg, meta),\n info: (msg, meta) => resolve().info(msg, meta),\n warn: (msg, meta) => resolve().warn(msg, meta),\n error: (msg, meta) => resolve().error(msg, meta),\n };\n}\n\nfunction lazyContext(context: string) {\n return {\n from: (source: string) => makeLateBoundLogger(context, source),\n };\n}\n\n/**\n * Logger with pre-bound context. Usage:\n * ```ts\n * const logger = log.protocol.from('MyComponent');\n * logger.info('started');\n * ```\n *\n * Loggers are late-bound: the factory is resolved at emit time, so\n * `setLoggerFactory()` at app startup upgrades even loggers that were created\n * at module import time.\n */\nexport const log = {\n protocol: lazyContext('protocol'),\n lib: lazyContext('lib'),\n agent: lazyContext('agent'),\n graph: lazyContext('graph'),\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.logger.d.ts","sourceRoot":"/","sources":["shared/observability/protocol.logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAE/D;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"protocol.logger.d.ts","sourceRoot":"/","sources":["shared/observability/protocol.logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAE/D;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CA6BZ"}
|
|
@@ -17,23 +17,25 @@ export async function withCallLogging(logger, callName, inputs, fn, options = {}
|
|
|
17
17
|
const { logOutput = true, context = {} } = options;
|
|
18
18
|
const start = Date.now();
|
|
19
19
|
const sanitizedInputs = sanitizeForLog(inputs);
|
|
20
|
-
logger.verbose(
|
|
20
|
+
logger.verbose('call start', { callName, inputs: sanitizedInputs, ...context });
|
|
21
21
|
try {
|
|
22
22
|
const result = await fn();
|
|
23
23
|
const durationMs = Date.now() - start;
|
|
24
24
|
const outMeta = {
|
|
25
|
+
callName,
|
|
25
26
|
durationMs,
|
|
26
27
|
...context,
|
|
27
28
|
};
|
|
28
29
|
if (logOutput) {
|
|
29
30
|
outMeta.output = sanitizeForLog(result);
|
|
30
31
|
}
|
|
31
|
-
logger.verbose(
|
|
32
|
+
logger.verbose('call end', outMeta);
|
|
32
33
|
return result;
|
|
33
34
|
}
|
|
34
35
|
catch (err) {
|
|
35
36
|
const durationMs = Date.now() - start;
|
|
36
|
-
logger.error(
|
|
37
|
+
logger.error('call failed', {
|
|
38
|
+
callName,
|
|
37
39
|
error: err,
|
|
38
40
|
durationMs,
|
|
39
41
|
...context,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.logger.js","sourceRoot":"/","sources":["shared/observability/protocol.logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAwB,EACxB,QAAgB,EAChB,MAA+B,EAC/B,EAAoB,EACpB,UAA0B,EAAE;IAE5B,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAA4B,CAAC;IAC1E,MAAM,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"protocol.logger.js","sourceRoot":"/","sources":["shared/observability/protocol.logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAwB,EACxB,QAAgB,EAChB,MAA+B,EAC/B,EAAoB,EACpB,UAA0B,EAAE;IAE5B,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAA4B,CAAC;IAC1E,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAEhF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,OAAO,GAA4B;YACvC,QAAQ;YACR,UAAU;YACV,GAAG,OAAO;SACX,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B,QAAQ;YACR,KAAK,EAAE,GAAG;YACV,UAAU;YACV,GAAG,OAAO;SACX,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["/**\n * Protocol-layer logging: call-scoped inputs, outputs, and context for debugging.\n * Use protocolLogger('ComponentName') for the logger, then wrap calls with\n * withCallLogging. All protocol code should log inputs at call start and\n * outputs (or summary) + duration at end.\n */\n\nimport { log, sanitizeForLog } from \"./log.js\";\nimport type { LoggerWithSource } from \"./log.js\";\n\nexport type { LoggerWithSource };\n\n/** Create a protocol logger for a given source (e.g. \"ChatTools\", \"DiscoverNodes\"). */\nexport function protocolLogger(source: string): LoggerWithSource {\n return log.protocol.from(source);\n}\n\nexport interface CallLogOptions {\n /** Log full output on success (default: true). Set false for very large payloads. */\n logOutput?: boolean;\n /** Extra context to include in both start and end (e.g. userId, networkId). */\n context?: Record<string, unknown>;\n}\n\n/**\n * Wraps an async call with consistent logging: inputs at start, outputs + duration at end,\n * error + duration on failure. All payloads are sanitized (embeddings redacted).\n */\nexport async function withCallLogging<T>(\n logger: LoggerWithSource,\n callName: string,\n inputs: Record<string, unknown>,\n fn: () => Promise<T>,\n options: CallLogOptions = {}\n): Promise<T> {\n const { logOutput = true, context = {} } = options;\n const start = Date.now();\n const sanitizedInputs = sanitizeForLog(inputs) as Record<string, unknown>;\n logger.verbose('call start', { callName, inputs: sanitizedInputs, ...context });\n\n try {\n const result = await fn();\n const durationMs = Date.now() - start;\n const outMeta: Record<string, unknown> = {\n callName,\n durationMs,\n ...context,\n };\n if (logOutput) {\n outMeta.output = sanitizeForLog(result);\n }\n logger.verbose('call end', outMeta);\n return result;\n } catch (err) {\n const durationMs = Date.now() - start;\n logger.error('call failed', {\n callName,\n error: err,\n durationMs,\n ...context,\n });\n throw err;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@indexnetwork/protocol",
|
|
3
|
-
"version": "4.5.0-rc.
|
|
3
|
+
"version": "4.5.0-rc.324.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"test": "bun test",
|
|
23
23
|
"test:isolated": "bun scripts/test.ts",
|
|
24
24
|
"prepublishOnly": "bun run build",
|
|
25
|
-
"eval:matching": "bun --env-file
|
|
26
|
-
"eval:premise": "bun --env-file
|
|
27
|
-
"eval:profile": "bun --env-file
|
|
28
|
-
"eval:opportunity": "bun --env-file
|
|
25
|
+
"eval:matching": "bun --env-file=../../.env.test ./eval/matching/matching.eval.ts",
|
|
26
|
+
"eval:premise": "bun --env-file=../../.env.test ./eval/premise/premise.eval.ts",
|
|
27
|
+
"eval:profile": "bun --env-file=../../.env.test ./eval/profile/profile.eval.ts",
|
|
28
|
+
"eval:opportunity": "bun --env-file=../../.env.test ./eval/opportunity/opportunity.eval.ts"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@langchain/core": "^1.1.17",
|