@cicctencent/agent-server 0.2.69 → 0.2.71

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 (49) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +6 -30
  3. package/dist/cjs/agent/agent-server.js.map +1 -1
  4. package/dist/cjs/index.d.ts +1 -1
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +3 -4
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/sandbox/local-sandbox.d.ts +16 -0
  9. package/dist/cjs/sandbox/local-sandbox.d.ts.map +1 -1
  10. package/dist/cjs/sandbox/local-sandbox.js +77 -5
  11. package/dist/cjs/sandbox/local-sandbox.js.map +1 -1
  12. package/dist/cjs/service/observability-exporter.d.ts +0 -14
  13. package/dist/cjs/service/observability-exporter.d.ts.map +1 -1
  14. package/dist/cjs/service/observability-exporter.js +4 -157
  15. package/dist/cjs/service/observability-exporter.js.map +1 -1
  16. package/dist/cjs/spi/store-sink-factory.d.ts +13 -1
  17. package/dist/cjs/spi/store-sink-factory.d.ts.map +1 -1
  18. package/dist/cjs/spi/store-sink-factory.js +148 -65
  19. package/dist/cjs/spi/store-sink-factory.js.map +1 -1
  20. package/dist/cjs/tool/tools/filesystem.d.ts.map +1 -1
  21. package/dist/cjs/tool/tools/filesystem.js +15 -1
  22. package/dist/cjs/tool/tools/filesystem.js.map +1 -1
  23. package/dist/cjs/types.d.ts +8 -0
  24. package/dist/cjs/types.d.ts.map +1 -1
  25. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  26. package/dist/esm/agent/agent-server.js +7 -31
  27. package/dist/esm/agent/agent-server.js.map +1 -1
  28. package/dist/esm/index.d.ts +1 -1
  29. package/dist/esm/index.d.ts.map +1 -1
  30. package/dist/esm/index.js +1 -1
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/sandbox/local-sandbox.d.ts +16 -0
  33. package/dist/esm/sandbox/local-sandbox.d.ts.map +1 -1
  34. package/dist/esm/sandbox/local-sandbox.js +77 -5
  35. package/dist/esm/sandbox/local-sandbox.js.map +1 -1
  36. package/dist/esm/service/observability-exporter.d.ts +0 -14
  37. package/dist/esm/service/observability-exporter.d.ts.map +1 -1
  38. package/dist/esm/service/observability-exporter.js +3 -155
  39. package/dist/esm/service/observability-exporter.js.map +1 -1
  40. package/dist/esm/spi/store-sink-factory.d.ts +13 -1
  41. package/dist/esm/spi/store-sink-factory.d.ts.map +1 -1
  42. package/dist/esm/spi/store-sink-factory.js +148 -65
  43. package/dist/esm/spi/store-sink-factory.js.map +1 -1
  44. package/dist/esm/tool/tools/filesystem.d.ts.map +1 -1
  45. package/dist/esm/tool/tools/filesystem.js +15 -1
  46. package/dist/esm/tool/tools/filesystem.js.map +1 -1
  47. package/dist/esm/types.d.ts +8 -0
  48. package/dist/esm/types.d.ts.map +1 -1
  49. package/package.json +5 -5
@@ -1,10 +1,10 @@
1
1
  // ============================================================
2
- // Observability Exporters - OTLP & Langfuse export
2
+ // Observability Exporters - OTLP export
3
3
  // ============================================================
4
4
  import * as http from 'http';
5
5
  import * as https from 'https';
6
6
  // ============================================================
7
- // OtlpExporter - exports traces as OTLP JSON to OTLP Collector / Langfuse OTLP endpoint
7
+ // OtlpExporter - exports traces as OTLP JSON to OTLP Collector
8
8
  // ============================================================
9
9
  export class OtlpExporter {
10
10
  name = 'otlp';
@@ -171,7 +171,7 @@ export class OtlpExporter {
171
171
  'Content-Length': String(Buffer.byteLength(body)),
172
172
  ...this.config.headers,
173
173
  };
174
- // Basic Auth for Langfuse OTLP
174
+ // Basic Auth (publicKey:secretKey -> base64)
175
175
  if (this.config.publicKey && this.config.secretKey) {
176
176
  const auth = Buffer.from(`${this.config.publicKey}:${this.config.secretKey}`).toString('base64');
177
177
  headers['Authorization'] = `Basic ${auth}`;
@@ -204,158 +204,6 @@ export class OtlpExporter {
204
204
  }
205
205
  }
206
206
  // ============================================================
207
- // LangfuseExporter - exports via Langfuse Ingestion REST API
208
- // ============================================================
209
- export class LangfuseExporter {
210
- name = 'langfuse';
211
- config;
212
- timer;
213
- pending = [];
214
- maxQueueSize = 10000;
215
- constructor(config) {
216
- this.config = {
217
- exportIntervalMs: 1000,
218
- maxBatchSize: 100,
219
- ...config,
220
- };
221
- }
222
- enqueueTrace(trace) {
223
- if (!this.config.enabled)
224
- return;
225
- const event = {
226
- id: trace.traceId,
227
- type: 'trace-create',
228
- timestamp: new Date(trace.startTime).toISOString(),
229
- body: {
230
- id: trace.traceId,
231
- name: trace.name || 'agent.trace',
232
- sessionId: trace.sessionId,
233
- userId: trace.userId ? String(trace.userId) : undefined,
234
- metadata: {
235
- threadId: trace.threadId,
236
- applicationId: trace.applicationId,
237
- agentProfileId: trace.agentProfileId,
238
- },
239
- input: trace.input,
240
- output: trace.output,
241
- },
242
- };
243
- if (this.pending.length < this.maxQueueSize) {
244
- this.pending.push(event);
245
- }
246
- if (this.pending.length >= (this.config.maxBatchSize || 100)) {
247
- this.flush().catch(() => { });
248
- }
249
- }
250
- enqueueObservation(obs) {
251
- if (!this.config.enabled)
252
- return;
253
- const event = {
254
- id: obs.id,
255
- type: obs.type === 'generation' ? 'generation-create' : obs.type === 'event' ? 'event-create' : 'span-create',
256
- timestamp: new Date(obs.startTime).toISOString(),
257
- body: {
258
- id: obs.id,
259
- traceId: obs.traceId,
260
- parentObservationId: obs.parentObservationId,
261
- name: obs.name,
262
- startTime: new Date(obs.startTime).toISOString(),
263
- endTime: obs.endTime ? new Date(obs.endTime).toISOString() : undefined,
264
- model: obs.model,
265
- input: obs.input,
266
- output: obs.output,
267
- metadata: {
268
- provider: obs.provider,
269
- type: obs.type,
270
- ...(obs.metadata || {}),
271
- },
272
- usage: obs.usage ? {
273
- promptTokens: obs.usage.promptTokens,
274
- completionTokens: obs.usage.completionTokens,
275
- totalTokens: obs.usage.totalTokens,
276
- } : undefined,
277
- status: obs.status === 'error' ? 'ERROR' : 'OK',
278
- level: obs.status === 'error' ? 'ERROR' : 'DEFAULT',
279
- },
280
- };
281
- if (this.pending.length < this.maxQueueSize) {
282
- this.pending.push(event);
283
- }
284
- }
285
- start() {
286
- if (!this.config.enabled)
287
- return;
288
- this.stop();
289
- this.timer = setInterval(() => {
290
- this.flush().catch(() => { });
291
- }, this.config.exportIntervalMs || 1000);
292
- if (this.timer && typeof this.timer === 'object' && 'unref' in this.timer)
293
- this.timer.unref();
294
- }
295
- stop() {
296
- if (this.timer) {
297
- clearInterval(this.timer);
298
- this.timer = undefined;
299
- }
300
- }
301
- async flush() {
302
- if (!this.config.enabled || !this.config.endpoint)
303
- return;
304
- if (this.pending.length === 0)
305
- return;
306
- const batch = [...this.pending];
307
- this.pending = [];
308
- try {
309
- await this.sendIngestion(batch);
310
- }
311
- catch (e) {
312
- const reQueue = batch.slice(0, this.maxQueueSize - this.pending.length);
313
- this.pending.unshift(...reQueue);
314
- console.error('[LangfuseExporter] ingestion failed:', e);
315
- }
316
- }
317
- async sendIngestion(events) {
318
- const payload = JSON.stringify({ batchEvents: events });
319
- const url = new URL(this.config.endpoint);
320
- const isHttps = url.protocol === 'https:';
321
- const httpModule = isHttps ? https : http;
322
- const headers = {
323
- 'Content-Type': 'application/json',
324
- 'Content-Length': String(Buffer.byteLength(payload)),
325
- };
326
- // Langfuse uses Basic Auth with public key : secret key
327
- if (this.config.publicKey && this.config.secretKey) {
328
- const auth = Buffer.from(`${this.config.publicKey}:${this.config.secretKey}`).toString('base64');
329
- headers['Authorization'] = `Basic ${auth}`;
330
- }
331
- return new Promise((resolve, reject) => {
332
- const req = httpModule.request({
333
- hostname: url.hostname,
334
- port: url.port || (isHttps ? 443 : 80),
335
- path: url.pathname + url.search,
336
- method: 'POST',
337
- headers,
338
- timeout: 30000,
339
- }, (res) => {
340
- let data = '';
341
- res.on('data', chunk => data += chunk);
342
- res.on('end', () => {
343
- if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
344
- resolve();
345
- }
346
- else {
347
- reject(new Error(`Langfuse ingestion failed: ${res.statusCode} ${data}`));
348
- }
349
- });
350
- });
351
- req.on('error', reject);
352
- req.on('timeout', () => { req.destroy(new Error('Langfuse ingestion timeout')); });
353
- req.write(payload);
354
- req.end();
355
- });
356
- }
357
- }
358
- // ============================================================
359
207
  // Exporter Manager - manages multiple exporters
360
208
  // ============================================================
361
209
  export class ObservabilityExporterManager {
@@ -1 +1 @@
1
- {"version":3,"file":"observability-exporter.js","sourceRoot":"","sources":["../../../src/service/observability-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observability-exporter.js","sourceRoot":"","sources":["../../../src/service/observability-exporter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAE/D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8B/B,+DAA+D;AAC/D,+DAA+D;AAC/D,+DAA+D;AAE/D,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,MAAM,CAAC;IACvB,MAAM,CAAiB;IACf,KAAK,CAAkB;IACvB,OAAO,GAAqE,EAAE,CAAC;IAC/E,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,YAAY,GAAG,KAAK,CAAC;IAEtC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG;YACZ,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,GAAG;YACjB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,WAA8B;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChG,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,yDAAyD;YACzD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAAuE;QAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG;gBACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC3B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAC/D,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,CAAC;oBACd,QAAQ,EAAE;wBACR,UAAU,EAAE;4BACV,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;yBAChE;qBACF;oBACD,UAAU,EAAE,CAAC;4BACX,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;4BACtC,KAAK;yBACN,CAAC;iBACH,CAAC;SACH,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,eAAe,CAAC,KAAkB;QACxC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9F,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,aAAa;YACjC,IAAI,EAAE,CAAC;YACP,iBAAiB,EAAE,OAAO;YAC1B,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAClD,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;gBAChC,eAAe,EAAE,OAAO;gBACxB,YAAY,EAAE,KAAK,CAAC,SAAS;gBAC7B,WAAW,EAAE,KAAK,CAAC,QAAQ;gBAC3B,gBAAgB,EAAE,KAAK,CAAC,aAAa;gBACrC,kBAAkB,EAAE,KAAK,CAAC,cAAc;gBACxC,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,cAAc,EAAE,KAAK,CAAC,MAAM;gBAC5B,mBAAmB,EAAE,KAAK,CAAC,UAAU;gBACrC,oBAAoB,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW;gBAC9C,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI;aAChC,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,GAAsB,EAAE,KAAkB;QACtE,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1F,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;QAE/C,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,GAAG,CAAC,EAAE;YACd,YAAY,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;YACzE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,qDAAqD;YACjF,iBAAiB,EAAE,OAAO;YAC1B,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAChD,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;gBAChC,eAAe,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;gBAC1C,sBAAsB,EAAE,GAAG,CAAC,KAAK;gBACjC,4BAA4B,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY;gBACrD,gCAAgC,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB;gBAC7D,2BAA2B,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW;gBACnD,kBAAkB,EAAE,GAAG,CAAC,IAAI;gBAC5B,yBAAyB,EAAE,GAAG,CAAC,UAAU;gBACzC,mBAAmB,EAAE,GAAG,CAAC,KAAK;aAC/B,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAA4B;QACnD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,2DAA2D;QAC3D,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;QACnD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjD,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;SACvB,CAAC;QAEF,6CAA6C;QAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjG,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;gBAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;gBAC/B,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,OAAO,EAAE,KAAK;aACf,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;wBACpE,OAAO,EAAE,CAAC;oBACZ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAE/D,MAAM,OAAO,4BAA4B;IAC/B,SAAS,GAA4B,EAAE,CAAC;IAEhD,WAAW,CAAC,QAA+B;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,WAA8B;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,CAAC;IACH,CAAC;CACF"}
@@ -1,10 +1,22 @@
1
1
  import type { ObservabilitySink } from '@cicctencent/agent-core';
2
2
  import type { ObservabilityStoreProvider } from './observability-store.js';
3
+ import type { ObservabilityExporter } from '../service/observability-exporter.js';
4
+ /**
5
+ * 导出器只需提供两个入队方法(OtlpExporter 与 ObservabilityExporterManager 都满足)。
6
+ * 用结构化的 Pick 而非完整 ObservabilityExporter,避免 Manager 缺少 name/config/start/stop 而无法传入。
7
+ */
8
+ type EnqueueOnlyExporter = Pick<ObservabilityExporter, 'enqueueTrace' | 'enqueueObservation'>;
3
9
  /**
4
10
  * 创建一个将数据转发到 ObservabilityStoreProvider 的 Sink 实现。
5
11
  * 所有方法吞掉错误,不影响主业务流程。
6
12
  *
7
13
  * 共享实现,供 agent-server 和 work-client 复用,避免代码重复。
14
+ *
15
+ * @param provider 存储实现(InMemory / TypeORM / 文件 等)
16
+ * @param exporter 可选。非空时,在 endTrace/endObservation 落库完成后,把**完整**记录
17
+ * 推入导出器(OTLP / Langfuse),实现真实导出。之前版本只在 endTrace 推
18
+ * trace、且从不推 observation,导致 OTLP 导出只有 trace span、缺 generation/tool span。
8
19
  */
9
- export declare function createStoreSink(provider: ObservabilityStoreProvider): ObservabilitySink;
20
+ export declare function createStoreSink(provider: ObservabilityStoreProvider, exporter?: EnqueueOnlyExporter): ObservabilitySink;
21
+ export {};
10
22
  //# sourceMappingURL=store-sink-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-sink-factory.d.ts","sourceRoot":"","sources":["../../../src/spi/store-sink-factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,0BAA0B,GAAG,iBAAiB,CAuHvF"}
1
+ {"version":3,"file":"store-sink-factory.d.ts","sourceRoot":"","sources":["../../../src/spi/store-sink-factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAElF;;;GAGG;AACH,KAAK,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE,cAAc,GAAG,oBAAoB,CAAC,CAAC;AAE9F;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,0BAA0B,EACpC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,iBAAiB,CAoMnB"}
@@ -6,14 +6,33 @@
6
6
  * 所有方法吞掉错误,不影响主业务流程。
7
7
  *
8
8
  * 共享实现,供 agent-server 和 work-client 复用,避免代码重复。
9
+ *
10
+ * @param provider 存储实现(InMemory / TypeORM / 文件 等)
11
+ * @param exporter 可选。非空时,在 endTrace/endObservation 落库完成后,把**完整**记录
12
+ * 推入导出器(OTLP / Langfuse),实现真实导出。之前版本只在 endTrace 推
13
+ * trace、且从不推 observation,导致 OTLP 导出只有 trace span、缺 generation/tool span。
9
14
  */
10
- export function createStoreSink(provider) {
15
+ export function createStoreSink(provider, exporter) {
16
+ // 进行中的“start”写操作。start 改为 fire-and-forget(不阻塞主流程 / agent 循环),
17
+ // 但记录其 Promise,在对应的 end 更新前 await 一次,确保行已落库后再 update,
18
+ // 避免“update 早于 insert 完成导致整条记录丢失”的竞态。
19
+ // 由于 end 发生在 LLM 调用 / 工具执行之后,此时 start 的写通常早已完成,await 近乎零成本。
20
+ const inflightTraces = new Map();
21
+ const inflightObservations = new Map();
22
+ // 缓存 start 时已落库的记录快照,供 end 时拼出完整记录再推给导出器(此时才有 output/usage 等)。
23
+ const savedTraces = new Map();
24
+ const savedObservations = new Map();
25
+ const track = (map, key, p) => {
26
+ map.set(key, p);
27
+ p.finally(() => { if (map.get(key) === p)
28
+ map.delete(key); });
29
+ };
11
30
  return {
12
- async startTrace(ctx) {
31
+ startTrace(ctx) {
13
32
  const traceId = ctx.traceId || `trace_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
14
33
  const startTime = Date.now();
15
- try {
16
- await provider.saveTrace({
34
+ const p = (async () => {
35
+ const record = {
17
36
  traceId,
18
37
  sessionId: ctx.sessionId,
19
38
  threadId: ctx.threadId,
@@ -25,68 +44,107 @@ export function createStoreSink(provider) {
25
44
  status: 'active',
26
45
  startTime,
27
46
  metadata: ctx.metadata,
28
- });
29
- if (ctx.sessionId) {
30
- await provider.upsertSession({
31
- sessionId: ctx.sessionId,
32
- userId: ctx.userId,
33
- threadId: ctx.threadId,
34
- applicationId: ctx.applicationId,
35
- agentProfileId: ctx.agentProfileId,
36
- }).catch(() => { });
47
+ };
48
+ try {
49
+ await provider.saveTrace(record);
50
+ savedTraces.set(traceId, record);
51
+ if (ctx.sessionId) {
52
+ await provider.upsertSession({
53
+ sessionId: ctx.sessionId,
54
+ userId: ctx.userId,
55
+ threadId: ctx.threadId,
56
+ applicationId: ctx.applicationId,
57
+ agentProfileId: ctx.agentProfileId,
58
+ }).catch(() => { });
59
+ }
37
60
  }
38
- }
39
- catch (e) {
40
- console.warn('[Observability] startTrace failed:', e instanceof Error ? e.message : e);
41
- }
42
- return { traceId, startTime, sampled: true };
61
+ catch (e) {
62
+ console.warn('[Observability] startTrace failed:', e instanceof Error ? e.message : e);
63
+ }
64
+ })();
65
+ track(inflightTraces, traceId, p);
66
+ // 立即返回 handle,不 await DB 写入(fire-and-forget)
67
+ return Promise.resolve({ traceId, startTime, sampled: true });
43
68
  },
44
69
  async endTrace(traceId, data) {
70
+ const pending = inflightTraces.get(traceId);
45
71
  try {
72
+ // 等待 start 落库(通常已完成),保证 update 能命中已插入的行
73
+ if (pending)
74
+ await pending;
46
75
  const endTime = Date.now();
76
+ const durationMs = data?.startTime != null ? endTime - data.startTime : undefined;
47
77
  await provider.updateTrace(traceId, {
48
78
  output: data?.output,
49
79
  status: data?.status ?? 'ok',
50
80
  endTime,
51
- durationMs: data?.startTime != null ? endTime - data.startTime : undefined,
81
+ durationMs,
52
82
  usage: data?.usage,
53
83
  cost: data?.cost,
54
84
  error: data?.error,
55
85
  });
86
+ // 真实导出:把完整 trace(含 output/usage/cost/duration)推给导出器。
87
+ // observation 已在各自 endObservation 时入队,导出器在 flush 时按 traceId 自动配对。
88
+ if (exporter) {
89
+ const base = savedTraces.get(traceId);
90
+ if (base) {
91
+ exporter.enqueueTrace({
92
+ ...base,
93
+ output: data?.output ?? base.output,
94
+ status: data?.status ?? base.status,
95
+ endTime,
96
+ durationMs: durationMs ?? base.durationMs,
97
+ usage: data?.usage ?? base.usage,
98
+ cost: data?.cost ?? base.cost,
99
+ error: data?.error ?? base.error,
100
+ });
101
+ }
102
+ }
56
103
  }
57
104
  catch (e) {
58
105
  console.warn('[Observability] endTrace failed:', e instanceof Error ? e.message : e);
59
106
  }
60
107
  },
61
- async startObservation(ctx) {
108
+ startObservation(ctx) {
62
109
  const observationId = `obs_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
63
110
  const startTime = Date.now();
64
- try {
65
- await provider.saveObservation({
66
- id: observationId,
67
- traceId: ctx.traceId || '',
68
- parentObservationId: ctx.parentObservationId,
69
- type: ctx.type,
70
- name: ctx.name,
71
- model: ctx.model,
72
- provider: ctx.provider,
73
- input: ctx.input,
74
- status: 'active',
75
- startTime,
76
- metadata: ctx.metadata,
77
- });
78
- }
79
- catch (e) {
80
- console.warn('[Observability] startObservation failed:', e instanceof Error ? e.message : e);
81
- }
82
- return { observationId, traceId: ctx.traceId || '', startTime, sampled: true };
111
+ const record = {
112
+ id: observationId,
113
+ traceId: ctx.traceId || '',
114
+ parentObservationId: ctx.parentObservationId,
115
+ type: ctx.type,
116
+ name: ctx.name,
117
+ model: ctx.model,
118
+ provider: ctx.provider,
119
+ input: ctx.input,
120
+ status: 'active',
121
+ startTime,
122
+ metadata: ctx.metadata,
123
+ };
124
+ const p = (async () => {
125
+ try {
126
+ await provider.saveObservation(record);
127
+ savedObservations.set(observationId, record);
128
+ }
129
+ catch (e) {
130
+ console.warn('[Observability] startObservation failed:', e instanceof Error ? e.message : e);
131
+ }
132
+ })();
133
+ track(inflightObservations, observationId, p);
134
+ // 立即返回 handle,不 await DB 写入(fire-and-forget)
135
+ return Promise.resolve({ observationId, traceId: ctx.traceId || '', startTime, sampled: true });
83
136
  },
84
137
  async endObservation(observationId, data) {
138
+ const pending = inflightObservations.get(observationId);
85
139
  try {
140
+ // 等待 start 落库(通常已完成),保证 update 能命中已插入的行
141
+ if (pending)
142
+ await pending;
143
+ const endTime = Date.now();
86
144
  await provider.updateObservation(observationId, {
87
145
  output: data?.output,
88
146
  status: data?.status ?? 'ok',
89
- endTime: Date.now(),
147
+ endTime,
90
148
  durationMs: data?.durationMs,
91
149
  usage: data?.usage,
92
150
  model: data?.model,
@@ -94,37 +152,62 @@ export function createStoreSink(provider) {
94
152
  error: data?.error,
95
153
  metadata: data?.metadata,
96
154
  });
155
+ // 真实导出:把完整 observation(含 output/usage/duration)推给导出器。
156
+ // 必须在 trace 的 enqueueTrace 之前入队,导出器 flush 时才能按 traceId 配对到 trace。
157
+ if (exporter) {
158
+ const base = savedObservations.get(observationId);
159
+ if (base) {
160
+ exporter.enqueueObservation({
161
+ ...base,
162
+ output: data?.output ?? base.output,
163
+ status: data?.status ?? base.status,
164
+ endTime,
165
+ durationMs: data?.durationMs ?? base.durationMs,
166
+ usage: data?.usage ?? base.usage,
167
+ model: data?.model ?? base.model,
168
+ provider: data?.provider ?? base.provider,
169
+ error: data?.error ?? base.error,
170
+ metadata: data?.metadata ?? base.metadata,
171
+ });
172
+ }
173
+ }
97
174
  }
98
175
  catch (e) {
99
176
  console.warn('[Observability] endObservation failed:', e instanceof Error ? e.message : e);
100
177
  }
101
178
  },
102
- async recordEvent(ctx) {
103
- try {
104
- const observationId = `evt_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
105
- await provider.saveObservation({
106
- id: observationId,
107
- traceId: ctx.traceId || '',
108
- type: 'event',
109
- name: ctx.name,
110
- input: ctx.input,
111
- output: ctx.output,
112
- status: 'ok',
113
- startTime: Date.now(),
114
- metadata: ctx.metadata,
115
- });
116
- }
117
- catch (e) {
118
- console.warn('[Observability] recordEvent failed:', e instanceof Error ? e.message : e);
119
- }
179
+ recordEvent(ctx) {
180
+ const observationId = `evt_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
181
+ (async () => {
182
+ try {
183
+ await provider.saveObservation({
184
+ id: observationId,
185
+ traceId: ctx.traceId || '',
186
+ type: 'event',
187
+ name: ctx.name,
188
+ input: ctx.input,
189
+ output: ctx.output,
190
+ status: 'ok',
191
+ startTime: Date.now(),
192
+ metadata: ctx.metadata,
193
+ });
194
+ }
195
+ catch (e) {
196
+ console.warn('[Observability] recordEvent failed:', e instanceof Error ? e.message : e);
197
+ }
198
+ })();
199
+ return Promise.resolve();
120
200
  },
121
- async recordScore(score) {
122
- try {
123
- await provider.saveScore(score);
124
- }
125
- catch (e) {
126
- console.warn('[Observability] recordScore failed:', e instanceof Error ? e.message : e);
127
- }
201
+ recordScore(score) {
202
+ (async () => {
203
+ try {
204
+ await provider.saveScore(score);
205
+ }
206
+ catch (e) {
207
+ console.warn('[Observability] recordScore failed:', e instanceof Error ? e.message : e);
208
+ }
209
+ })();
210
+ return Promise.resolve();
128
211
  },
129
212
  };
130
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store-sink-factory.js","sourceRoot":"","sources":["../../../src/spi/store-sink-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-sink-factory.js","sourceRoot":"","sources":["../../../src/spi/store-sink-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../../src/tool/tools/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,yBAAyB,CAAC;AAEvE,wBAAgB,qBAAqB,IAAI,cAAc,EAAE,CAiYxD"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../../src/tool/tools/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,yBAAyB,CAAC;AAEvE,wBAAgB,qBAAqB,IAAI,cAAc,EAAE,CA+YxD"}
@@ -17,7 +17,9 @@ export function createFilesystemTools() {
17
17
  'IMPORTANT: Do NOT use heredoc (cat > file << EOF) to write scripts - the content will be truncated. ' +
18
18
  'To write script files, use write_file (or append_file for long scripts), then use execute_command with a short command to run them. ' +
19
19
  'SANDBOX RESTRICTIONS: Commands run inside a sandboxed directory. ' +
20
- 'NEVER use absolute paths (like /Users/..., /home/...) for file output - ALL file writes will be BLOCKED. ' +
20
+ 'ALL file access (reads AND writes) is restricted to the sandbox directory by a path-isolation guard. ' +
21
+ 'NEVER use absolute paths or ~/ for file paths (like /Users/..., /home/..., ~/.codebuddy/...) - ' +
22
+ 'any command referencing a path OUTSIDE the sandbox will be BLOCKED. ' +
21
23
  'Use relative paths: "report.html", "gen.cjs", etc. ' +
22
24
  'NEVER use `find /` for filesystem search - use `find . -name "file"` or `ls -la` instead.',
23
25
  parameters: {
@@ -270,6 +272,18 @@ export function createFilesystemTools() {
270
272
  const fs = await import('fs');
271
273
  const path = await import('path');
272
274
  const sandbox = ctx.custom?.sandbox;
275
+ // 沙箱隔离:search_code 只能在沙箱目录内搜索,禁止传入宿主机绝对路径
276
+ // (如 /Users/...、/home/...、/etc/...),防止借搜索能力遍历宿主机文件系统。
277
+ if (args.path && typeof args.path === 'string' && path.isAbsolute(args.path)) {
278
+ const sandboxRoot = sandbox?.rootDir;
279
+ if (sandboxRoot) {
280
+ const rel = path.relative(path.resolve(sandboxRoot), path.resolve(args.path));
281
+ if (rel.startsWith('..') || path.isAbsolute(rel)) {
282
+ return `[Sandbox blocked] search_code path "${args.path}" is outside the sandbox directory. ` +
283
+ `Search is restricted to the sandbox (use a relative path or omit "path" to search the whole sandbox).`;
284
+ }
285
+ }
286
+ }
273
287
  const rootPath = args.path || sandbox?.rootDir || process.cwd();
274
288
  const pattern = args.pattern;
275
289
  const globPattern = args.glob || '**/*';