@posthog/agent 2.1.2 → 2.1.8

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.
@@ -40,16 +40,13 @@ declare class OtelLogWriter {
40
40
  }
41
41
 
42
42
  interface SessionLogWriterOptions {
43
- /** OTEL config for creating writers per session */
44
- otelConfig?: OtelLogConfig;
45
- /** PostHog API client for S3 log persistence */
43
+ /** PostHog API client for log persistence */
46
44
  posthogAPI?: PostHogAPIClient;
47
45
  /** Logger instance */
48
46
  logger?: Logger;
49
47
  }
50
48
  declare class SessionLogWriter {
51
49
  private posthogAPI?;
52
- private otelConfig?;
53
50
  private pendingEntries;
54
51
  private flushTimeouts;
55
52
  private sessions;
package/dist/agent.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { b as Agent } from './agent-kRbaLUfe.js';
1
+ export { b as Agent } from './agent-LrKyX9KN.js';
2
2
  import './types.js';
3
3
  import '@agentclientprotocol/sdk';
4
4
  import './logger-DDBiMOOD.js';
package/dist/agent.js CHANGED
@@ -276,7 +276,7 @@ import { v7 as uuidv7 } from "uuid";
276
276
  // package.json
277
277
  var package_default = {
278
278
  name: "@posthog/agent",
279
- version: "2.1.2",
279
+ version: "2.1.8",
280
280
  repository: "https://github.com/PostHog/twig",
281
281
  description: "TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog",
282
282
  exports: {
@@ -3371,72 +3371,15 @@ var PostHogAPIClient = class {
3371
3371
  }
3372
3372
  };
3373
3373
 
3374
- // src/otel-log-writer.ts
3375
- import { SeverityNumber } from "@opentelemetry/api-logs";
3376
- import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
3377
- import { resourceFromAttributes } from "@opentelemetry/resources";
3378
- import {
3379
- BatchLogRecordProcessor,
3380
- LoggerProvider
3381
- } from "@opentelemetry/sdk-logs";
3382
- import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
3383
- var OtelLogWriter = class {
3384
- loggerProvider;
3385
- logger;
3386
- constructor(config, sessionContext, _debugLogger) {
3387
- const logsPath = config.logsPath ?? "/i/v1/agent-logs";
3388
- const exporter = new OTLPLogExporter({
3389
- url: `${config.posthogHost}${logsPath}`,
3390
- headers: { Authorization: `Bearer ${config.apiKey}` }
3391
- });
3392
- const processor = new BatchLogRecordProcessor(exporter, {
3393
- scheduledDelayMillis: config.flushIntervalMs ?? 500
3394
- });
3395
- this.loggerProvider = new LoggerProvider({
3396
- resource: resourceFromAttributes({
3397
- [ATTR_SERVICE_NAME]: "twig-agent",
3398
- run_id: sessionContext.runId,
3399
- task_id: sessionContext.taskId,
3400
- device_type: sessionContext.deviceType ?? "local"
3401
- }),
3402
- processors: [processor]
3403
- });
3404
- this.logger = this.loggerProvider.getLogger("agent-session");
3405
- }
3406
- /**
3407
- * Emit an agent event to PostHog Logs via OTEL.
3408
- */
3409
- emit(entry) {
3410
- const { notification } = entry;
3411
- const eventType = notification.notification.method;
3412
- this.logger.emit({
3413
- severityNumber: SeverityNumber.INFO,
3414
- severityText: "INFO",
3415
- body: JSON.stringify(notification),
3416
- attributes: {
3417
- event_type: eventType
3418
- }
3419
- });
3420
- }
3421
- async flush() {
3422
- await this.loggerProvider.forceFlush();
3423
- }
3424
- async shutdown() {
3425
- await this.loggerProvider.shutdown();
3426
- }
3427
- };
3428
-
3429
3374
  // src/session-log-writer.ts
3430
3375
  var SessionLogWriter = class {
3431
3376
  posthogAPI;
3432
- otelConfig;
3433
3377
  pendingEntries = /* @__PURE__ */ new Map();
3434
3378
  flushTimeouts = /* @__PURE__ */ new Map();
3435
3379
  sessions = /* @__PURE__ */ new Map();
3436
3380
  logger;
3437
3381
  constructor(options = {}) {
3438
3382
  this.posthogAPI = options.posthogAPI;
3439
- this.otelConfig = options.otelConfig;
3440
3383
  this.logger = options.logger ?? new Logger({ debug: false, prefix: "[SessionLogWriter]" });
3441
3384
  }
3442
3385
  async flushAll() {
@@ -3450,15 +3393,7 @@ var SessionLogWriter = class {
3450
3393
  if (this.sessions.has(sessionId)) {
3451
3394
  return;
3452
3395
  }
3453
- let otelWriter;
3454
- if (this.otelConfig) {
3455
- otelWriter = new OtelLogWriter(
3456
- this.otelConfig,
3457
- context,
3458
- this.logger.child(`OtelWriter:${sessionId}`)
3459
- );
3460
- }
3461
- this.sessions.set(sessionId, { context, otelWriter });
3396
+ this.sessions.set(sessionId, { context });
3462
3397
  }
3463
3398
  isRegistered(sessionId) {
3464
3399
  return this.sessions.has(sessionId);
@@ -3488,9 +3423,6 @@ var SessionLogWriter = class {
3488
3423
  timestamp,
3489
3424
  notification: message
3490
3425
  };
3491
- if (session.otelWriter) {
3492
- session.otelWriter.emit({ notification: entry });
3493
- }
3494
3426
  if (this.posthogAPI) {
3495
3427
  const pending = this.pendingEntries.get(sessionId) ?? [];
3496
3428
  pending.push(entry);
@@ -3508,9 +3440,6 @@ var SessionLogWriter = class {
3508
3440
  const session = this.sessions.get(sessionId);
3509
3441
  if (!session) return;
3510
3442
  this.emitCoalescedMessage(sessionId, session);
3511
- if (session.otelWriter) {
3512
- await session.otelWriter.flush();
3513
- }
3514
3443
  const pending = this.pendingEntries.get(sessionId);
3515
3444
  if (!this.posthogAPI || !pending?.length) return;
3516
3445
  this.pendingEntries.delete(sessionId);
@@ -3562,9 +3491,6 @@ var SessionLogWriter = class {
3562
3491
  }
3563
3492
  }
3564
3493
  };
3565
- if (session.otelWriter) {
3566
- session.otelWriter.emit({ notification: entry });
3567
- }
3568
3494
  if (this.posthogAPI) {
3569
3495
  const pending = this.pendingEntries.get(sessionId) ?? [];
3570
3496
  pending.push(entry);
@@ -3598,16 +3524,7 @@ var Agent = class {
3598
3524
  if (config.posthog) {
3599
3525
  this.posthogAPI = new PostHogAPIClient(config.posthog);
3600
3526
  }
3601
- if (config.otelTransport) {
3602
- this.sessionLogWriter = new SessionLogWriter({
3603
- otelConfig: {
3604
- posthogHost: config.otelTransport.host,
3605
- apiKey: config.otelTransport.apiKey,
3606
- logsPath: config.otelTransport.logsPath
3607
- },
3608
- logger: this.logger.child("SessionLogWriter")
3609
- });
3610
- } else if (config.posthog) {
3527
+ if (config.posthog && !config.skipLogPersistence) {
3611
3528
  this.sessionLogWriter = new SessionLogWriter({
3612
3529
  posthogAPI: this.posthogAPI,
3613
3530
  logger: this.logger.child("SessionLogWriter")