@agent-native/core 0.133.3 → 0.134.0

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 (169) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +56 -0
  3. package/corpus/core/docs/content/observability.mdx +41 -1
  4. package/corpus/core/docs/content/tracking.mdx +25 -0
  5. package/corpus/core/package.json +1 -1
  6. package/corpus/core/src/agent/run-manager.ts +7 -0
  7. package/corpus/core/src/client/agent-chat-adapter.ts +10 -0
  8. package/corpus/core/src/client/analytics.ts +105 -1
  9. package/corpus/core/src/deploy/build.ts +38 -1
  10. package/corpus/core/src/observability/posthog-ai.ts +294 -0
  11. package/corpus/core/src/observability/routes.ts +29 -6
  12. package/corpus/core/src/observability/traces.ts +287 -12
  13. package/corpus/core/src/observability/types.ts +11 -0
  14. package/corpus/core/src/secrets/register-framework-secrets.ts +16 -0
  15. package/corpus/core/src/server/agent-run-context.ts +21 -0
  16. package/corpus/core/src/server/capture-error.ts +8 -0
  17. package/corpus/core/src/server/core-routes-plugin.ts +75 -4
  18. package/corpus/core/src/server/deploy-environment.ts +57 -0
  19. package/corpus/core/src/server/error-noise-filter.ts +268 -0
  20. package/corpus/core/src/server/posthog-config.ts +75 -0
  21. package/corpus/core/src/server/request-context.ts +6 -0
  22. package/corpus/core/src/server/sentry-config.ts +4 -8
  23. package/corpus/core/src/server/sentry-plugin.ts +13 -29
  24. package/corpus/core/src/server/sentry.ts +13 -156
  25. package/corpus/core/src/server/ssr-handler.ts +6 -1
  26. package/corpus/core/src/shared/mcp-embed-headers.ts +1 -1
  27. package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +36 -10
  28. package/corpus/core/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +55 -1
  29. package/corpus/core/src/tracking/error-capture.ts +44 -109
  30. package/corpus/core/src/tracking/index.ts +11 -0
  31. package/corpus/core/src/tracking/posthog-exception.ts +305 -0
  32. package/corpus/core/src/tracking/providers.ts +91 -14
  33. package/corpus/core/src/tracking/redaction.ts +105 -0
  34. package/dist/agent/run-manager.d.ts.map +1 -1
  35. package/dist/agent/run-manager.js +7 -0
  36. package/dist/agent/run-manager.js.map +1 -1
  37. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  38. package/dist/client/agent-chat-adapter.js +12 -0
  39. package/dist/client/agent-chat-adapter.js.map +1 -1
  40. package/dist/client/analytics.d.ts +8 -0
  41. package/dist/client/analytics.d.ts.map +1 -1
  42. package/dist/client/analytics.js +95 -1
  43. package/dist/client/analytics.js.map +1 -1
  44. package/dist/collab/routes.d.ts +1 -1
  45. package/dist/collab/struct-routes.d.ts +1 -1
  46. package/dist/deploy/build.d.ts.map +1 -1
  47. package/dist/deploy/build.js +38 -1
  48. package/dist/deploy/build.js.map +1 -1
  49. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  50. package/dist/notifications/routes.d.ts +2 -2
  51. package/dist/observability/posthog-ai.d.ts +126 -0
  52. package/dist/observability/posthog-ai.d.ts.map +1 -0
  53. package/dist/observability/posthog-ai.js +190 -0
  54. package/dist/observability/posthog-ai.js.map +1 -0
  55. package/dist/observability/routes.d.ts +3 -3
  56. package/dist/observability/routes.d.ts.map +1 -1
  57. package/dist/observability/routes.js +26 -6
  58. package/dist/observability/routes.js.map +1 -1
  59. package/dist/observability/traces.d.ts +9 -0
  60. package/dist/observability/traces.d.ts.map +1 -1
  61. package/dist/observability/traces.js +219 -10
  62. package/dist/observability/traces.js.map +1 -1
  63. package/dist/observability/types.d.ts +10 -0
  64. package/dist/observability/types.d.ts.map +1 -1
  65. package/dist/observability/types.js +1 -0
  66. package/dist/observability/types.js.map +1 -1
  67. package/dist/progress/routes.d.ts +1 -1
  68. package/dist/resources/handlers.d.ts +1 -1
  69. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  70. package/dist/secrets/register-framework-secrets.js +14 -0
  71. package/dist/secrets/register-framework-secrets.js.map +1 -1
  72. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  73. package/dist/server/agent-run-context.d.ts +8 -0
  74. package/dist/server/agent-run-context.d.ts.map +1 -1
  75. package/dist/server/agent-run-context.js +18 -0
  76. package/dist/server/agent-run-context.js.map +1 -1
  77. package/dist/server/capture-error.d.ts +8 -0
  78. package/dist/server/capture-error.d.ts.map +1 -1
  79. package/dist/server/capture-error.js.map +1 -1
  80. package/dist/server/core-routes-plugin.d.ts +0 -23
  81. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  82. package/dist/server/core-routes-plugin.js +71 -7
  83. package/dist/server/core-routes-plugin.js.map +1 -1
  84. package/dist/server/deploy-environment.d.ts +17 -0
  85. package/dist/server/deploy-environment.d.ts.map +1 -0
  86. package/dist/server/deploy-environment.js +47 -0
  87. package/dist/server/deploy-environment.js.map +1 -0
  88. package/dist/server/error-noise-filter.d.ts +80 -0
  89. package/dist/server/error-noise-filter.d.ts.map +1 -0
  90. package/dist/server/error-noise-filter.js +173 -0
  91. package/dist/server/error-noise-filter.js.map +1 -0
  92. package/dist/server/posthog-config.d.ts +28 -0
  93. package/dist/server/posthog-config.d.ts.map +1 -0
  94. package/dist/server/posthog-config.js +53 -0
  95. package/dist/server/posthog-config.js.map +1 -0
  96. package/dist/server/request-context.d.ts +6 -0
  97. package/dist/server/request-context.d.ts.map +1 -1
  98. package/dist/server/request-context.js.map +1 -1
  99. package/dist/server/sentry-config.d.ts +1 -0
  100. package/dist/server/sentry-config.d.ts.map +1 -1
  101. package/dist/server/sentry-config.js +3 -1
  102. package/dist/server/sentry-config.js.map +1 -1
  103. package/dist/server/sentry-plugin.d.ts.map +1 -1
  104. package/dist/server/sentry-plugin.js +12 -27
  105. package/dist/server/sentry-plugin.js.map +1 -1
  106. package/dist/server/sentry.d.ts.map +1 -1
  107. package/dist/server/sentry.js +8 -124
  108. package/dist/server/sentry.js.map +1 -1
  109. package/dist/server/ssr-handler.d.ts.map +1 -1
  110. package/dist/server/ssr-handler.js +6 -1
  111. package/dist/server/ssr-handler.js.map +1 -1
  112. package/dist/server/transcribe-voice.d.ts +1 -1
  113. package/dist/shared/mcp-embed-headers.d.ts +1 -1
  114. package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
  115. package/dist/shared/mcp-embed-headers.js +1 -1
  116. package/dist/shared/mcp-embed-headers.js.map +1 -1
  117. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +36 -10
  118. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +55 -1
  119. package/dist/tracking/error-capture.d.ts +7 -0
  120. package/dist/tracking/error-capture.d.ts.map +1 -1
  121. package/dist/tracking/error-capture.js +10 -73
  122. package/dist/tracking/error-capture.js.map +1 -1
  123. package/dist/tracking/index.d.ts +1 -0
  124. package/dist/tracking/index.d.ts.map +1 -1
  125. package/dist/tracking/index.js +1 -0
  126. package/dist/tracking/index.js.map +1 -1
  127. package/dist/tracking/posthog-exception.d.ts +103 -0
  128. package/dist/tracking/posthog-exception.d.ts.map +1 -0
  129. package/dist/tracking/posthog-exception.js +181 -0
  130. package/dist/tracking/posthog-exception.js.map +1 -0
  131. package/dist/tracking/providers.d.ts +14 -0
  132. package/dist/tracking/providers.d.ts.map +1 -1
  133. package/dist/tracking/providers.js +63 -11
  134. package/dist/tracking/providers.js.map +1 -1
  135. package/dist/tracking/redaction.d.ts +25 -0
  136. package/dist/tracking/redaction.d.ts.map +1 -0
  137. package/dist/tracking/redaction.js +85 -0
  138. package/dist/tracking/redaction.js.map +1 -0
  139. package/docs/content/observability.mdx +41 -1
  140. package/docs/content/tracking.mdx +25 -0
  141. package/package.json +1 -1
  142. package/src/agent/run-manager.ts +7 -0
  143. package/src/client/agent-chat-adapter.ts +10 -0
  144. package/src/client/analytics.ts +105 -1
  145. package/src/deploy/build.ts +38 -1
  146. package/src/observability/posthog-ai.ts +294 -0
  147. package/src/observability/routes.ts +29 -6
  148. package/src/observability/traces.ts +287 -12
  149. package/src/observability/types.ts +11 -0
  150. package/src/secrets/register-framework-secrets.ts +16 -0
  151. package/src/server/agent-run-context.ts +21 -0
  152. package/src/server/capture-error.ts +8 -0
  153. package/src/server/core-routes-plugin.ts +75 -4
  154. package/src/server/deploy-environment.ts +57 -0
  155. package/src/server/error-noise-filter.ts +268 -0
  156. package/src/server/posthog-config.ts +75 -0
  157. package/src/server/request-context.ts +6 -0
  158. package/src/server/sentry-config.ts +4 -8
  159. package/src/server/sentry-plugin.ts +13 -29
  160. package/src/server/sentry.ts +13 -156
  161. package/src/server/ssr-handler.ts +6 -1
  162. package/src/shared/mcp-embed-headers.ts +1 -1
  163. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +36 -10
  164. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +55 -1
  165. package/src/tracking/error-capture.ts +44 -109
  166. package/src/tracking/index.ts +11 -0
  167. package/src/tracking/posthog-exception.ts +305 -0
  168. package/src/tracking/providers.ts +91 -14
  169. package/src/tracking/redaction.ts +105 -0
@@ -13,6 +13,7 @@
13
13
  * automatically by the core-routes plugin).
14
14
  */
15
15
 
16
+ import { reshapeTrackedExceptionProperties } from "./posthog-exception.js";
16
17
  import { registerTrackingProvider } from "./registry.js";
17
18
  import type { TrackingProvider, TrackingEvent } from "./types.js";
18
19
 
@@ -162,27 +163,61 @@ function isPostHogAiObservabilityEvent(eventName: string): boolean {
162
163
  return eventName.startsWith("$ai_");
163
164
  }
164
165
 
165
- function createPostHogProvider(apiKey: string, host: string): TrackingProvider {
166
+ /**
167
+ * `$ai_*` and `$exception` are ingested through PostHog's dedicated endpoint
168
+ * rather than `/capture/`, and `$exception` additionally has to carry
169
+ * `$exception_list` — the framework's own `captureException()` emits camelCase
170
+ * fields that PostHog would otherwise render as an empty, ungroupable issue.
171
+ */
172
+ function createPostHogProvider(
173
+ apiKey: string,
174
+ host: string,
175
+ errorTracking: boolean,
176
+ ): TrackingProvider {
177
+ const sendToEventsEndpoint = (
178
+ event: TrackingEvent,
179
+ properties: Record<string, unknown> | undefined,
180
+ distinctId: string,
181
+ ): void => {
182
+ enqueue(
183
+ `${host}/i/v0/e/`,
184
+ JSON.stringify({
185
+ api_key: apiKey,
186
+ event: event.name,
187
+ properties: {
188
+ distinct_id: distinctId,
189
+ ...properties,
190
+ timestamp: event.timestamp,
191
+ },
192
+ }),
193
+ );
194
+ };
195
+
166
196
  return {
167
197
  name: "posthog",
168
198
  track(event: TrackingEvent) {
169
199
  const distinctId = event.userId || "anonymous";
170
200
  if (isPostHogAiObservabilityEvent(event.name)) {
171
- enqueue(
172
- `${host}/i/v0/e/`,
173
- JSON.stringify({
174
- api_key: apiKey,
175
- event: event.name,
176
- properties: {
177
- distinct_id: distinctId,
178
- ...event.properties,
179
- timestamp: event.timestamp,
180
- },
181
- }),
182
- );
201
+ sendToEventsEndpoint(event, event.properties, distinctId);
183
202
  return;
184
203
  }
185
204
 
205
+ if (event.name === "$exception") {
206
+ // `POSTHOG_ERROR_TRACKING=false` keeps product analytics flowing while
207
+ // another backend owns crashes. Drop rather than downgrade to
208
+ // `/capture/`: a malformed exception is what this branch exists to
209
+ // prevent.
210
+ if (!errorTracking) return;
211
+ const reshaped = reshapeTrackedExceptionProperties(event.properties);
212
+ if (reshaped) {
213
+ sendToEventsEndpoint(event, reshaped, distinctId);
214
+ return;
215
+ }
216
+ // No recognizable exception fields. Fall through to `/capture/` so the
217
+ // event is still recorded as-is rather than becoming an issue with
218
+ // nothing in it.
219
+ }
220
+
186
221
  enqueue(
187
222
  `${host}/capture/`,
188
223
  JSON.stringify({
@@ -213,6 +248,42 @@ function createPostHogProvider(apiKey: string, host: string): TrackingProvider {
213
248
  };
214
249
  }
215
250
 
251
+ /**
252
+ * Send one event to PostHog only, bypassing the provider fan-out.
253
+ *
254
+ * For payloads whose *shape* is PostHog-specific and whose *content* other
255
+ * backends must not receive. `track()` broadcasts to every configured provider,
256
+ * so a PostHog-only integration (e.g. enabling a survey id) would otherwise
257
+ * start exporting that integration's content — including user-authored text —
258
+ * to Mixpanel, Amplitude, webhooks, and Agent Native Analytics as a side
259
+ * effect nobody opted into.
260
+ *
261
+ * Returns `false` when PostHog is not configured, so callers can tell "not
262
+ * sent" from "sent".
263
+ */
264
+ export function sendPostHogEvent(
265
+ name: string,
266
+ properties: Record<string, unknown>,
267
+ distinctId: string,
268
+ ): boolean {
269
+ const apiKey = process.env.POSTHOG_API_KEY;
270
+ if (!apiKey) return false;
271
+ const host = (process.env.POSTHOG_HOST || POSTHOG_DEFAULT_HOST).replace(
272
+ /\/+$/,
273
+ "",
274
+ );
275
+ enqueue(
276
+ `${host}/capture/`,
277
+ JSON.stringify({
278
+ api_key: apiKey,
279
+ event: name,
280
+ distinct_id: distinctId,
281
+ properties: { ...properties, timestamp: new Date().toISOString() },
282
+ }),
283
+ );
284
+ return true;
285
+ }
286
+
216
287
  // ─── Mixpanel ──────────────────────────────────────────────────────────────
217
288
 
218
289
  function createMixpanelProvider(token: string): TrackingProvider {
@@ -383,7 +454,13 @@ export function registerBuiltinProviders(): void {
383
454
  /\/+$/,
384
455
  "",
385
456
  );
386
- registerTrackingProvider(createPostHogProvider(posthogKey, host));
457
+ registerTrackingProvider(
458
+ createPostHogProvider(
459
+ posthogKey,
460
+ host,
461
+ process.env.POSTHOG_ERROR_TRACKING?.trim().toLowerCase() !== "false",
462
+ ),
463
+ );
387
464
  }
388
465
 
389
466
  const mixpanelToken = process.env.MIXPANEL_TOKEN;
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Bounding and redaction helpers shared by every exception emitter.
3
+ *
4
+ * Kept free of `process.env` and Node built-ins so the browser bundle can use
5
+ * the same rules — an exception shaped one way on the server and another way
6
+ * in the client is how a leak ships in only one of them.
7
+ */
8
+
9
+ export const MAX_MESSAGE_LENGTH = 1000;
10
+ export const MAX_STACK_LENGTH = 8000;
11
+ export const MAX_TAGS = 30;
12
+ export const MAX_EXTRA_KEYS = 30;
13
+ export const MAX_EXTRA_VALUE_LENGTH = 1000;
14
+
15
+ const SECRET_RE = /\b(?:bearer|basic)\s+[^\s]+/gi;
16
+
17
+ export const SECRET_KEY_RE =
18
+ /(?:authorization|cookie|set[-_]?cookie|token|secret|password|passwd|pwd|api[-_]?key|apikey|credential)/i;
19
+
20
+ export function redact(value: string): string {
21
+ return value
22
+ .replace(SECRET_RE, (match) => `${match.split(/\s+/, 1)[0]} <redacted>`)
23
+ .replace(
24
+ /([A-Za-z0-9_$.-]*(?:authorization|cookie|token|secret|password|passwd|pwd|api[-_]?key|apikey|credential)[A-Za-z0-9_$.-]*\s*[:=]\s*)([^\s,;}]+)/gi,
25
+ "$1<redacted>",
26
+ );
27
+ }
28
+
29
+ export function boundedText(value: unknown, max: number): string {
30
+ const text = typeof value === "string" ? value : String(value ?? "");
31
+ const safe = redact(text);
32
+ return safe.length > max ? safe.slice(0, max) : safe;
33
+ }
34
+
35
+ export function safeValue(value: unknown, depth = 2): unknown {
36
+ if (
37
+ value == null ||
38
+ typeof value === "boolean" ||
39
+ typeof value === "number"
40
+ ) {
41
+ return value;
42
+ }
43
+ if (typeof value === "string")
44
+ return boundedText(value, MAX_EXTRA_VALUE_LENGTH);
45
+ if (depth <= 0) return boundedText(value, MAX_EXTRA_VALUE_LENGTH);
46
+ if (Array.isArray(value)) {
47
+ return value.slice(0, 20).map((item) => safeValue(item, depth - 1));
48
+ }
49
+ if (typeof value === "object") {
50
+ const out: Record<string, unknown> = {};
51
+ for (const [key, child] of Object.entries(value)) {
52
+ if (Object.keys(out).length >= MAX_EXTRA_KEYS) break;
53
+ const safeKey = boundedText(key, 100);
54
+ out[safeKey] = SECRET_KEY_RE.test(safeKey)
55
+ ? "<redacted>"
56
+ : safeValue(child, depth - 1);
57
+ }
58
+ return out;
59
+ }
60
+ return boundedText(value, MAX_EXTRA_VALUE_LENGTH);
61
+ }
62
+
63
+ export function safeTags(
64
+ tags: Record<string, string | undefined> | undefined,
65
+ ): Record<string, string> {
66
+ const out: Record<string, string> = {};
67
+ for (const [key, value] of Object.entries(tags ?? {})) {
68
+ if (Object.keys(out).length >= MAX_TAGS) break;
69
+ // Skip, don't stop: callers build tag objects with optional entries
70
+ // (`{ ...tags, route, method, userAgent }`), so breaking on the first
71
+ // undefined dropped every tag after it depending on key order.
72
+ if (value == null) continue;
73
+ const safeKey = boundedText(key, 100);
74
+ out[safeKey] = SECRET_KEY_RE.test(safeKey)
75
+ ? "<redacted>"
76
+ : boundedText(value, 200);
77
+ }
78
+ return out;
79
+ }
80
+
81
+ export interface ExceptionParts {
82
+ type: string;
83
+ message: string;
84
+ stack?: string;
85
+ }
86
+
87
+ /** Split an unknown thrown value into bounded, redacted type/message/stack. */
88
+ export function exceptionParts(error: unknown): ExceptionParts {
89
+ if (error instanceof Error) {
90
+ return {
91
+ type: boundedText(error.name || "Error", 200),
92
+ message: boundedText(
93
+ error.message || error.name || "Error",
94
+ MAX_MESSAGE_LENGTH,
95
+ ),
96
+ ...(error.stack
97
+ ? { stack: boundedText(error.stack, MAX_STACK_LENGTH) }
98
+ : {}),
99
+ };
100
+ }
101
+ return {
102
+ type: "Error",
103
+ message: boundedText(error, MAX_MESSAGE_LENGTH),
104
+ };
105
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/agent/run-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/agent/run-manager.ts"],"names":[],"mappings":"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"}
@@ -497,6 +497,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
497
497
  const captureRunPersistenceError = (error, phase, extra = {}) => {
498
498
  captureError(error, {
499
499
  route: "/_agent-native/agent-chat",
500
+ aiTraceId: runId,
500
501
  tags: {
501
502
  source: "agent-run-manager",
502
503
  phase,
@@ -759,6 +760,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
759
760
  phase: "abort-check",
760
761
  consecutiveFailures: String(consecutiveAbortCheckFailures),
761
762
  },
763
+ aiTraceId: runId,
762
764
  extra: { runId, threadId },
763
765
  });
764
766
  if (!abort.signal.aborted) {
@@ -801,6 +803,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
801
803
  phase: "heartbeat",
802
804
  consecutiveFailures: String(consecutiveHeartbeatFailures),
803
805
  },
806
+ aiTraceId: runId,
804
807
  extra: { runId, threadId },
805
808
  });
806
809
  }
@@ -843,6 +846,7 @@ export function startRun(runId, threadId, runFn, onComplete, options) {
843
846
  const errorCode = getRunErrorCode(error);
844
847
  captureError(error, {
845
848
  route: "/_agent-native/agent-chat",
849
+ aiTraceId: runId,
846
850
  tags: {
847
851
  source: "agent-run-manager",
848
852
  phase,
@@ -1353,6 +1357,7 @@ function subscribeFromSQL(runId, fromSeq) {
1353
1357
  };
1354
1358
  captureError(error, {
1355
1359
  route: "/_agent-native/agent-chat/runs/:id/events",
1360
+ aiTraceId: runId,
1356
1361
  tags: {
1357
1362
  source: "agent-run-manager",
1358
1363
  phase: "sql-subscription-poll",
@@ -1877,6 +1882,7 @@ export async function abortRunDurably(runId, reason = "user") {
1877
1882
  // the request report the abort it did complete.
1878
1883
  captureError(error, {
1879
1884
  route: "/_agent-native/agent-chat/runs/:id/abort",
1885
+ aiTraceId: runId,
1880
1886
  tags: {
1881
1887
  source: "agent-run-manager",
1882
1888
  phase: "abort-run",
@@ -1915,6 +1921,7 @@ export async function abortTurnDurably(runId, reason = "user") {
1915
1921
  // visible rather than silent.
1916
1922
  captureError(error, {
1917
1923
  route: "/_agent-native/agent-chat/runs/:id/abort",
1924
+ aiTraceId: runId,
1918
1925
  tags: { source: "agent-run-manager", phase: "abort-turn" },
1919
1926
  extra: { runId, reason, ...ref },
1920
1927
  });