@cicctencent/agent-core 0.1.93 → 0.1.95

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.
Files changed (63) hide show
  1. package/dist/cjs/agent/engine.d.ts.map +1 -1
  2. package/dist/cjs/agent/engine.js +10 -0
  3. package/dist/cjs/agent/engine.js.map +1 -1
  4. package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
  5. package/dist/cjs/agent/llm-caller.js +2 -0
  6. package/dist/cjs/agent/llm-caller.js.map +1 -1
  7. package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
  8. package/dist/cjs/agent/tool-executor.js +2 -0
  9. package/dist/cjs/agent/tool-executor.js.map +1 -1
  10. package/dist/cjs/hooks/types.d.ts +2 -0
  11. package/dist/cjs/hooks/types.d.ts.map +1 -1
  12. package/dist/cjs/index.d.ts +4 -0
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/index.js +10 -3
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/observability/middleware.d.ts +28 -0
  17. package/dist/cjs/observability/middleware.d.ts.map +1 -0
  18. package/dist/cjs/observability/middleware.js +225 -0
  19. package/dist/cjs/observability/middleware.js.map +1 -0
  20. package/dist/cjs/observability/sink.d.ts +38 -0
  21. package/dist/cjs/observability/sink.d.ts.map +1 -0
  22. package/dist/cjs/observability/sink.js +171 -0
  23. package/dist/cjs/observability/sink.js.map +1 -0
  24. package/dist/cjs/observability/types.d.ts +208 -0
  25. package/dist/cjs/observability/types.d.ts.map +1 -0
  26. package/dist/cjs/observability/types.js +6 -0
  27. package/dist/cjs/observability/types.js.map +1 -0
  28. package/dist/cjs/sandbox/local-sandbox.d.ts +7 -0
  29. package/dist/cjs/sandbox/local-sandbox.d.ts.map +1 -1
  30. package/dist/cjs/sandbox/local-sandbox.js +55 -0
  31. package/dist/cjs/sandbox/local-sandbox.js.map +1 -1
  32. package/dist/esm/agent/engine.d.ts.map +1 -1
  33. package/dist/esm/agent/engine.js +10 -0
  34. package/dist/esm/agent/engine.js.map +1 -1
  35. package/dist/esm/agent/llm-caller.d.ts.map +1 -1
  36. package/dist/esm/agent/llm-caller.js +2 -0
  37. package/dist/esm/agent/llm-caller.js.map +1 -1
  38. package/dist/esm/agent/tool-executor.d.ts.map +1 -1
  39. package/dist/esm/agent/tool-executor.js +2 -0
  40. package/dist/esm/agent/tool-executor.js.map +1 -1
  41. package/dist/esm/hooks/types.d.ts +2 -0
  42. package/dist/esm/hooks/types.d.ts.map +1 -1
  43. package/dist/esm/index.d.ts +4 -0
  44. package/dist/esm/index.d.ts.map +1 -1
  45. package/dist/esm/index.js +2 -0
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/observability/middleware.d.ts +28 -0
  48. package/dist/esm/observability/middleware.d.ts.map +1 -0
  49. package/dist/esm/observability/middleware.js +220 -0
  50. package/dist/esm/observability/middleware.js.map +1 -0
  51. package/dist/esm/observability/sink.d.ts +38 -0
  52. package/dist/esm/observability/sink.d.ts.map +1 -0
  53. package/dist/esm/observability/sink.js +165 -0
  54. package/dist/esm/observability/sink.js.map +1 -0
  55. package/dist/esm/observability/types.d.ts +208 -0
  56. package/dist/esm/observability/types.d.ts.map +1 -0
  57. package/dist/esm/observability/types.js +5 -0
  58. package/dist/esm/observability/types.js.map +1 -0
  59. package/dist/esm/sandbox/local-sandbox.d.ts +7 -0
  60. package/dist/esm/sandbox/local-sandbox.d.ts.map +1 -1
  61. package/dist/esm/sandbox/local-sandbox.js +55 -0
  62. package/dist/esm/sandbox/local-sandbox.js.map +1 -1
  63. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Hook, HookContext, HookResult } from '../hooks/types.js';
2
+ import type { Middleware, MiddlewareContext } from '../middleware/types.js';
3
+ import type { ObservabilityManager } from './sink.js';
4
+ export interface ObservabilityMiddlewareOptions {
5
+ captureInput?: boolean;
6
+ captureOutput?: boolean;
7
+ }
8
+ export declare class ObservabilityMiddleware implements Middleware {
9
+ private readonly manager;
10
+ private readonly options;
11
+ readonly name = "observability";
12
+ private iterationSpans;
13
+ private toolSpans;
14
+ /** 孤儿条目清理间隔(5 分钟) */
15
+ private static readonly CLEANUP_INTERVAL_MS;
16
+ /** 条目最大存活时间(30 分钟,超时自动清理防止内存泄漏) */
17
+ private static readonly MAX_ENTRY_TTL_MS;
18
+ private lastCleanup;
19
+ constructor(manager: ObservabilityManager, options?: ObservabilityMiddlewareOptions);
20
+ /** 定期清理孤儿条目,防止因异常未触发 after 回调导致内存泄漏 */
21
+ private maybeCleanup;
22
+ before(ctx: MiddlewareContext): Promise<void>;
23
+ after(ctx: MiddlewareContext): Promise<void>;
24
+ onToolBefore(ctx: HookContext): Promise<HookResult | void>;
25
+ onToolAfter(ctx: HookContext): Promise<HookResult | void>;
26
+ }
27
+ export declare function createObservabilityHooks(manager: ObservabilityManager, options?: ObservabilityMiddlewareOptions): Hook[];
28
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/observability/middleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGtD,MAAM,WAAW,8BAA8B;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,qBAAa,uBAAwB,YAAW,UAAU;IAYtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,SAAS,CAA0C;IAC3D,qBAAqB;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAiB;IAC5D,mCAAmC;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAC1D,OAAO,CAAC,WAAW,CAAc;gBAGd,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,8BAAmC;IAG/D,uCAAuC;IACvC,OAAO,CAAC,YAAY;IAkBd,MAAM,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C,KAAK,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5C,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuB1D,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAqBhE;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,8BAAmC,GAC3C,IAAI,EAAE,CAoGR"}
@@ -0,0 +1,220 @@
1
+ // ============================================================
2
+ // Observability — automatic Hook/Middleware instrumentation
3
+ // ============================================================
4
+ function keyOf(ctx, suffix) {
5
+ return `${ctx.sessionId}:${ctx.iteration}:${suffix}`;
6
+ }
7
+ export class ObservabilityMiddleware {
8
+ manager;
9
+ options;
10
+ name = 'observability';
11
+ iterationSpans = new Map();
12
+ toolSpans = new Map();
13
+ /** 孤儿条目清理间隔(5 分钟) */
14
+ static CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
15
+ /** 条目最大存活时间(30 分钟,超时自动清理防止内存泄漏) */
16
+ static MAX_ENTRY_TTL_MS = 30 * 60 * 1000;
17
+ lastCleanup = Date.now();
18
+ constructor(manager, options = {}) {
19
+ this.manager = manager;
20
+ this.options = options;
21
+ }
22
+ /** 定期清理孤儿条目,防止因异常未触发 after 回调导致内存泄漏 */
23
+ maybeCleanup() {
24
+ const now = Date.now();
25
+ if (now - this.lastCleanup < ObservabilityMiddleware.CLEANUP_INTERVAL_MS)
26
+ return;
27
+ this.lastCleanup = now;
28
+ const cutoff = now - ObservabilityMiddleware.MAX_ENTRY_TTL_MS;
29
+ for (const [key, handle] of this.iterationSpans) {
30
+ if (handle.startTime < cutoff) {
31
+ this.iterationSpans.delete(key);
32
+ this.manager.endObservation(handle.observationId, { status: 'cancelled' }).catch(() => { });
33
+ }
34
+ }
35
+ for (const [key, stack] of this.toolSpans) {
36
+ const alive = stack.filter(h => h.startTime >= cutoff);
37
+ if (alive.length === 0)
38
+ this.toolSpans.delete(key);
39
+ else
40
+ this.toolSpans.set(key, alive);
41
+ }
42
+ }
43
+ async before(ctx) {
44
+ this.maybeCleanup();
45
+ const current = this.manager.getTraceContext();
46
+ if (!current?.traceId)
47
+ return;
48
+ const handle = await this.manager.startObservation({
49
+ traceId: current.traceId,
50
+ type: 'span',
51
+ name: 'agent.iteration',
52
+ input: this.options.captureInput === false ? undefined : {
53
+ iteration: ctx.iteration,
54
+ messageCount: ctx.messages.length,
55
+ toolCount: ctx.toolCount,
56
+ },
57
+ metadata: { iteration: ctx.iteration },
58
+ });
59
+ this.iterationSpans.set(keyOf(ctx, 'iteration'), handle);
60
+ }
61
+ async after(ctx) {
62
+ const key = keyOf(ctx, 'iteration');
63
+ const handle = this.iterationSpans.get(key);
64
+ if (!handle)
65
+ return;
66
+ this.iterationSpans.delete(key);
67
+ await this.manager.endObservation(handle.observationId, {
68
+ status: 'ok',
69
+ durationMs: Date.now() - handle.startTime,
70
+ metadata: { iteration: ctx.iteration },
71
+ });
72
+ }
73
+ async onToolBefore(ctx) {
74
+ const current = this.manager.getTraceContext();
75
+ const traceId = ctx.traceId || current?.traceId;
76
+ if (!traceId || !ctx.tool)
77
+ return;
78
+ const handle = await this.manager.startObservation({
79
+ traceId,
80
+ type: 'span',
81
+ name: ctx.tool,
82
+ input: this.options.captureInput === false ? undefined : ctx.args,
83
+ metadata: {
84
+ kind: 'tool',
85
+ tool: ctx.tool,
86
+ iteration: ctx.iteration,
87
+ },
88
+ });
89
+ const key = keyOf(ctx, `tool:${ctx.tool}`);
90
+ const stack = this.toolSpans.get(key) || [];
91
+ stack.push(handle);
92
+ this.toolSpans.set(key, stack);
93
+ }
94
+ async onToolAfter(ctx) {
95
+ if (!ctx.tool)
96
+ return;
97
+ const key = keyOf(ctx, `tool:${ctx.tool}`);
98
+ const stack = this.toolSpans.get(key) || [];
99
+ const handle = stack.pop();
100
+ if (stack.length)
101
+ this.toolSpans.set(key, stack);
102
+ else
103
+ this.toolSpans.delete(key);
104
+ if (!handle)
105
+ return;
106
+ await this.manager.endObservation(handle.observationId, {
107
+ status: ctx.isError ? 'error' : 'ok',
108
+ durationMs: ctx.duration ?? Date.now() - handle.startTime,
109
+ output: this.options.captureOutput === false ? undefined : ctx.result,
110
+ error: ctx.isError ? String(ctx.result || 'Tool execution failed') : undefined,
111
+ metadata: {
112
+ kind: 'tool',
113
+ tool: ctx.tool,
114
+ iteration: ctx.iteration,
115
+ },
116
+ });
117
+ }
118
+ }
119
+ export function createObservabilityHooks(manager, options = {}) {
120
+ const generations = new Map();
121
+ let lastGenCleanup = Date.now();
122
+ const GEN_TTL_MS = 30 * 60 * 1000;
123
+ const maybeCleanupGenerations = () => {
124
+ const now = Date.now();
125
+ if (now - lastGenCleanup < 5 * 60 * 1000)
126
+ return;
127
+ lastGenCleanup = now;
128
+ const cutoff = now - GEN_TTL_MS;
129
+ for (const [key, entry] of generations) {
130
+ if (entry.createdAt < cutoff) {
131
+ generations.delete(key);
132
+ manager.endObservation(entry.handle.observationId, { status: 'cancelled' }).catch(() => { });
133
+ }
134
+ }
135
+ };
136
+ return [
137
+ {
138
+ name: 'observability.before_ll_call',
139
+ event: 'before_ll_call',
140
+ handler: async (ctx) => {
141
+ maybeCleanupGenerations();
142
+ const current = manager.getTraceContext();
143
+ const traceId = ctx.traceId || current?.traceId;
144
+ if (!traceId)
145
+ return;
146
+ const model = ctx.model;
147
+ const provider = ctx.provider;
148
+ const handle = await manager.startObservation({
149
+ traceId,
150
+ type: 'generation',
151
+ name: model ? `llm.${model}` : 'llm.generation',
152
+ model,
153
+ provider,
154
+ input: options.captureInput === false ? undefined : {
155
+ messages: ctx.messages,
156
+ tools: ctx.tools,
157
+ },
158
+ metadata: { iteration: ctx.iteration },
159
+ });
160
+ generations.set(keyOf(ctx, 'llm'), { handle, createdAt: Date.now() });
161
+ },
162
+ },
163
+ {
164
+ name: 'observability.after_ll_call',
165
+ event: 'after_ll_call',
166
+ handler: async (ctx) => {
167
+ const key = keyOf(ctx, 'llm');
168
+ const entry = generations.get(key);
169
+ if (!entry)
170
+ return;
171
+ generations.delete(key);
172
+ await manager.endObservation(entry.handle.observationId, {
173
+ status: 'ok',
174
+ durationMs: ctx.duration ?? Date.now() - entry.handle.startTime,
175
+ output: options.captureOutput === false ? undefined : ctx.response,
176
+ usage: ctx.usage,
177
+ model: ctx.model,
178
+ provider: ctx.provider,
179
+ metadata: { iteration: ctx.iteration },
180
+ });
181
+ },
182
+ },
183
+ {
184
+ name: 'observability.on_error',
185
+ event: 'on_error',
186
+ handler: async (ctx) => {
187
+ await manager.recordEvent({
188
+ traceId: ctx.traceId,
189
+ name: 'agent.error',
190
+ output: ctx.error,
191
+ metadata: {
192
+ iteration: ctx.iteration,
193
+ tool: ctx.tool,
194
+ recoverable: ctx.recoverable,
195
+ },
196
+ });
197
+ },
198
+ },
199
+ {
200
+ name: 'observability.on_complete',
201
+ event: 'on_complete',
202
+ handler: async (ctx) => {
203
+ const current = manager.getTraceContext();
204
+ const traceId = ctx.traceId || current?.traceId;
205
+ if (!traceId)
206
+ return;
207
+ await manager.endTrace(traceId, {
208
+ status: 'ok',
209
+ usage: ctx.usage,
210
+ startTime: current?.startTime,
211
+ metadata: {
212
+ totalIterations: ctx.totalIterations,
213
+ iteration: ctx.iteration,
214
+ },
215
+ });
216
+ },
217
+ },
218
+ ];
219
+ }
220
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/observability/middleware.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAY/D,SAAS,KAAK,CAAC,GAAiD,EAAE,MAAc;IAC9E,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,OAAO,uBAAuB;IAYf;IACA;IAZV,IAAI,GAAG,eAAe,CAAC;IAExB,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC3D,qBAAqB;IACb,MAAM,CAAU,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5D,mCAAmC;IAC3B,MAAM,CAAU,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAClD,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEjC,YACmB,OAA6B,EAC7B,UAA0C,EAAE;QAD5C,YAAO,GAAP,OAAO,CAAsB;QAC7B,YAAO,GAAP,OAAO,CAAqC;IAC5D,CAAC;IAEJ,uCAAuC;IAC/B,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC,mBAAmB;YAAE,OAAO;QACjF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,GAAG,uBAAuB,CAAC,gBAAgB,CAAC;QAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAsB;QACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACjD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvD,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBACjC,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;YACD,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAsB;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE;YACtD,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS;YACzC,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAgB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAChD,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACjD,OAAO;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;YACjE,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAgB;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE;YACtD,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACpC,UAAU,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS;YACzD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;YACrE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9E,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC,CAAC;IACL,CAAC;;AAGH,MAAM,UAAU,wBAAwB,CACtC,OAA6B,EAC7B,UAA0C,EAAE;IAE5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4D,CAAC;IACxF,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAElC,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;YAAE,OAAO;QACjD,cAAc,GAAG,GAAG,CAAC;QACrB,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;gBAC7B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;gBAClC,uBAAuB,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;gBAChD,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,MAAM,KAAK,GAAI,GAAW,CAAC,KAA2B,CAAC;gBACvD,MAAM,QAAQ,GAAI,GAAW,CAAC,QAA8B,CAAC;gBAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;oBAC5C,OAAO;oBACP,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB;oBAC/C,KAAK;oBACL,QAAQ;oBACR,KAAK,EAAE,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;wBAClD,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;qBACjB;oBACD,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;iBACvC,CAAC,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;SACF;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAExB,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;oBACvD,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS;oBAC/D,MAAM,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ;oBAClE,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAG,GAAW,CAAC,KAAK;oBACzB,QAAQ,EAAG,GAAW,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;iBACvC,CAAC,CAAC;YACL,CAAC;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;gBAClC,MAAM,OAAO,CAAC,WAAW,CAAC;oBACxB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,GAAG,CAAC,KAAK;oBACjB,QAAQ,EAAE;wBACR,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,WAAW,EAAE,GAAG,CAAC,WAAW;qBAC7B;iBACF,CAAC,CAAC;YACL,CAAC;SACF;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;gBAChD,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;oBAC9B,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,SAAS,EAAE,OAAO,EAAE,SAAS;oBAC7B,QAAQ,EAAE;wBACR,eAAe,EAAE,GAAG,CAAC,eAAe;wBACpC,SAAS,EAAE,GAAG,CAAC,SAAS;qBACzB;iBACF,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { EventContext, ObservationEndData, ObservationHandle, ObservationStartContext, ObservabilityConfig, ObservabilitySink, ScoreRecord, TraceEndData, TraceHandle, TraceStartContext } from './types.js';
2
+ export interface ObservabilityContext {
3
+ traceId: string;
4
+ currentObservationId?: string;
5
+ sampled: boolean;
6
+ startTime: number;
7
+ metadata?: Record<string, unknown>;
8
+ }
9
+ export declare class NoOpObservabilitySink implements ObservabilitySink {
10
+ startTrace(ctx: TraceStartContext): TraceHandle;
11
+ endTrace(_traceId: string, _data?: TraceEndData): void;
12
+ startObservation(ctx: ObservationStartContext): ObservationHandle;
13
+ endObservation(_observationId: string, _data?: ObservationEndData): void;
14
+ recordEvent(_ctx: EventContext): void;
15
+ recordScore(_score: ScoreRecord): void;
16
+ }
17
+ export declare class ObservabilityManager implements ObservabilitySink {
18
+ private storage;
19
+ private sink;
20
+ private config;
21
+ constructor(sink?: ObservabilitySink, config?: ObservabilityConfig);
22
+ configure(config: ObservabilityConfig): void;
23
+ setSink(sink: ObservabilitySink): void;
24
+ getTraceContext(): ObservabilityContext | undefined;
25
+ runWithContext<T>(context: ObservabilityContext, fn: () => T): T;
26
+ runWithTrace<T>(ctx: TraceStartContext, fn: () => T | Promise<T>): Promise<T>;
27
+ startTrace(ctx: TraceStartContext): Promise<TraceHandle>;
28
+ endTrace(traceId: string, data?: TraceEndData): Promise<void>;
29
+ startObservation(ctx: ObservationStartContext): Promise<ObservationHandle>;
30
+ endObservation(observationId: string, data?: ObservationEndData): Promise<void>;
31
+ recordEvent(ctx: EventContext): Promise<void>;
32
+ recordScore(score: ScoreRecord): Promise<void>;
33
+ private shouldSample;
34
+ private isSampled;
35
+ private sanitize;
36
+ }
37
+ export declare function generateObservabilityId(prefix?: string): string;
38
+ //# sourceMappingURL=sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink.d.ts","sourceRoot":"","sources":["../../../src/observability/sink.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,WAAW;IAQ/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAEtD,gBAAgB,CAAC,GAAG,EAAE,uBAAuB,GAAG,iBAAiB;IASjE,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI;IACxE,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IACrC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CACvC;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,MAAM,CAA+J;gBAEjK,IAAI,GAAE,iBAA+C,EAAE,MAAM,GAAE,mBAAwB;IAYnG,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQ5C,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAItC,eAAe,IAAI,oBAAoB,GAAG,SAAS;IAInD,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI1D,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAyB7E,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAWxD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjE,gBAAgB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqB1E,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnF,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;CAIjB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,SAAQ,GAAG,MAAM,CAE9D"}
@@ -0,0 +1,165 @@
1
+ // ============================================================
2
+ // Observability — sink implementations and context manager
3
+ // ============================================================
4
+ import { AsyncLocalStorage } from 'node:async_hooks';
5
+ export class NoOpObservabilitySink {
6
+ startTrace(ctx) {
7
+ return {
8
+ traceId: ctx.traceId || generateObservabilityId('trace'),
9
+ startTime: Date.now(),
10
+ sampled: false,
11
+ };
12
+ }
13
+ endTrace(_traceId, _data) { }
14
+ startObservation(ctx) {
15
+ return {
16
+ observationId: generateObservabilityId(ctx.type),
17
+ traceId: ctx.traceId || generateObservabilityId('trace'),
18
+ startTime: Date.now(),
19
+ sampled: false,
20
+ };
21
+ }
22
+ endObservation(_observationId, _data) { }
23
+ recordEvent(_ctx) { }
24
+ recordScore(_score) { }
25
+ }
26
+ export class ObservabilityManager {
27
+ storage = new AsyncLocalStorage();
28
+ sink;
29
+ config;
30
+ constructor(sink = new NoOpObservabilitySink(), config = {}) {
31
+ this.sink = sink;
32
+ this.config = {
33
+ enabled: config.enabled ?? true,
34
+ samplingRate: normalizeSamplingRate(config.samplingRate ?? 1),
35
+ captureInput: config.captureInput ?? true,
36
+ captureOutput: config.captureOutput ?? true,
37
+ captureMessages: config.captureMessages ?? true,
38
+ redact: config.redact,
39
+ };
40
+ }
41
+ configure(config) {
42
+ this.config = {
43
+ ...this.config,
44
+ ...config,
45
+ samplingRate: normalizeSamplingRate(config.samplingRate ?? this.config.samplingRate),
46
+ };
47
+ }
48
+ setSink(sink) {
49
+ this.sink = sink;
50
+ }
51
+ getTraceContext() {
52
+ return this.storage.getStore();
53
+ }
54
+ runWithContext(context, fn) {
55
+ return this.storage.run(context, fn);
56
+ }
57
+ async runWithTrace(ctx, fn) {
58
+ const handle = await this.startTrace(ctx);
59
+ const context = {
60
+ traceId: handle.traceId,
61
+ sampled: handle.sampled,
62
+ startTime: handle.startTime,
63
+ metadata: ctx.metadata,
64
+ };
65
+ return this.storage.run(context, async () => {
66
+ try {
67
+ const result = await fn();
68
+ await this.endTrace(handle.traceId, { status: 'ok', startTime: handle.startTime });
69
+ return result;
70
+ }
71
+ catch (err) {
72
+ await this.endTrace(handle.traceId, {
73
+ status: 'error',
74
+ error: err instanceof Error ? err.message : String(err),
75
+ startTime: handle.startTime,
76
+ });
77
+ throw err;
78
+ }
79
+ });
80
+ }
81
+ async startTrace(ctx) {
82
+ const traceId = ctx.traceId || generateObservabilityId('trace');
83
+ const sampled = this.shouldSample();
84
+ const handle = { traceId, startTime: Date.now(), sampled };
85
+ if (!sampled)
86
+ return handle;
87
+ const safeCtx = this.sanitize(ctx);
88
+ const sinkHandle = await this.sink.startTrace({ ...safeCtx, traceId });
89
+ return { ...handle, ...sinkHandle, traceId };
90
+ }
91
+ async endTrace(traceId, data = {}) {
92
+ const current = this.storage.getStore();
93
+ if (!this.isSampled(current))
94
+ return;
95
+ await this.sink.endTrace(traceId, this.sanitize(data));
96
+ }
97
+ async startObservation(ctx) {
98
+ const current = this.storage.getStore();
99
+ const traceId = ctx.traceId || current?.traceId || generateObservabilityId('trace');
100
+ const sampled = this.isSampled(current);
101
+ const handle = {
102
+ observationId: generateObservabilityId(ctx.type),
103
+ traceId,
104
+ startTime: Date.now(),
105
+ sampled,
106
+ };
107
+ if (!sampled)
108
+ return handle;
109
+ const safeCtx = this.sanitize({
110
+ ...ctx,
111
+ traceId,
112
+ parentObservationId: ctx.parentObservationId || current?.currentObservationId,
113
+ });
114
+ const sinkHandle = await this.sink.startObservation(safeCtx);
115
+ return { ...handle, ...sinkHandle, traceId };
116
+ }
117
+ async endObservation(observationId, data = {}) {
118
+ const current = this.storage.getStore();
119
+ if (!this.isSampled(current))
120
+ return;
121
+ await this.sink.endObservation(observationId, this.sanitize(data));
122
+ }
123
+ async recordEvent(ctx) {
124
+ const current = this.storage.getStore();
125
+ if (!this.isSampled(current))
126
+ return;
127
+ await this.sink.recordEvent(this.sanitize({
128
+ ...ctx,
129
+ traceId: ctx.traceId || current?.traceId,
130
+ parentObservationId: ctx.parentObservationId || current?.currentObservationId,
131
+ }));
132
+ }
133
+ async recordScore(score) {
134
+ const current = this.storage.getStore();
135
+ if (!this.isSampled(current))
136
+ return;
137
+ await this.sink.recordScore(this.sanitize(score));
138
+ }
139
+ shouldSample() {
140
+ if (!this.config.enabled)
141
+ return false;
142
+ if (this.config.samplingRate >= 1)
143
+ return true;
144
+ if (this.config.samplingRate <= 0)
145
+ return false;
146
+ return Math.random() < this.config.samplingRate;
147
+ }
148
+ isSampled(current) {
149
+ return this.config.enabled && (current?.sampled ?? this.shouldSample());
150
+ }
151
+ sanitize(value) {
152
+ if (this.config.redact)
153
+ return this.config.redact(value);
154
+ return value;
155
+ }
156
+ }
157
+ export function generateObservabilityId(prefix = 'obs') {
158
+ return `${prefix}_${Math.random().toString(36).slice(2, 10)}${Date.now().toString(36)}`;
159
+ }
160
+ function normalizeSamplingRate(rate) {
161
+ if (!Number.isFinite(rate))
162
+ return 1;
163
+ return Math.max(0, Math.min(1, rate));
164
+ }
165
+ //# sourceMappingURL=sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../../src/observability/sink.ts"],"names":[],"mappings":"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"}