@trigger.dev/sdk 4.8.0-webhooks.20261015065339 → 4.8.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 (53) hide show
  1. package/dist/commonjs/v3/ai.d.ts +69 -2
  2. package/dist/commonjs/v3/ai.js +120 -30
  3. package/dist/commonjs/v3/ai.js.map +1 -1
  4. package/dist/commonjs/v3/query.d.ts +434 -1
  5. package/dist/commonjs/v3/query.js +115 -0
  6. package/dist/commonjs/v3/query.js.map +1 -1
  7. package/dist/commonjs/v3/webhooks.d.ts +19 -5
  8. package/dist/commonjs/v3/webhooks.js +19 -2
  9. package/dist/commonjs/v3/webhooks.js.map +1 -1
  10. package/dist/commonjs/version.js +1 -1
  11. package/dist/esm/v3/ai.d.ts +69 -2
  12. package/dist/esm/v3/ai.js +119 -29
  13. package/dist/esm/v3/ai.js.map +1 -1
  14. package/dist/esm/v3/query.d.ts +434 -1
  15. package/dist/esm/v3/query.js +115 -0
  16. package/dist/esm/v3/query.js.map +1 -1
  17. package/dist/esm/v3/webhooks.d.ts +19 -5
  18. package/dist/esm/v3/webhooks.js +19 -2
  19. package/dist/esm/v3/webhooks.js.map +1 -1
  20. package/dist/esm/version.js +1 -1
  21. package/docs/ai-chat/backend.mdx +12 -3
  22. package/docs/ai-chat/client-protocol.mdx +6 -3
  23. package/docs/ai-chat/patterns/redacting-telemetry.mdx +117 -0
  24. package/docs/ai-chat/reference.mdx +3 -0
  25. package/docs/ai-chat/transcript-storage.mdx +1 -1
  26. package/docs/apikeys.mdx +6 -4
  27. package/docs/cli-runs-commands.mdx +2 -2
  28. package/docs/cli-tasks-commands.mdx +95 -0
  29. package/docs/config/config-file.mdx +58 -0
  30. package/docs/config/extensions/prismaExtension.mdx +4 -4
  31. package/docs/deploy-environment-variables.mdx +23 -0
  32. package/docs/deployment/atomic-deployment.mdx +3 -3
  33. package/docs/deployment/overview.mdx +1 -1
  34. package/docs/deployment/preview-branches.mdx +1 -1
  35. package/docs/github-actions.mdx +3 -3
  36. package/docs/limits.mdx +6 -0
  37. package/docs/manual-setup.mdx +1 -1
  38. package/docs/mcp-tools.mdx +19 -3
  39. package/docs/observability/dashboards.mdx +62 -0
  40. package/docs/runs/max-duration.mdx +4 -0
  41. package/docs/self-hosting/env/supervisor.mdx +1 -0
  42. package/docs/webhooks/channels.mdx +31 -5
  43. package/docs/webhooks/connect.mdx +14 -3
  44. package/docs/webhooks/deliveries.mdx +8 -1
  45. package/docs/webhooks/filters.mdx +39 -2
  46. package/docs/webhooks/human-in-the-loop.mdx +11 -2
  47. package/docs/webhooks/linear.mdx +5 -4
  48. package/docs/webhooks/overview.mdx +16 -0
  49. package/docs/webhooks/session-routing.mdx +11 -2
  50. package/docs/webhooks/slack.mdx +51 -18
  51. package/docs/webhooks/sources.mdx +36 -3
  52. package/docs/webhooks/waiters.mdx +22 -2
  53. package/package.json +3 -2
@@ -213,13 +213,28 @@ exports.webhookSources = {
213
213
  secretProvisioning: "provider",
214
214
  };
215
215
  },
216
+ /**
217
+ * Hookdeck relays deliveries from another provider, so `T` is the original provider's event. It
218
+ * verifies `x-hookdeck-signature` (and `x-hookdeck-signature-2` while a secret is being rolled)
219
+ * with the Hookdeck project's signing secret, and dedupes retries on `x-hookdeck-eventid`. Pass
220
+ * `headerPrefix` when the project's header prefix was changed from `x-hookdeck`.
221
+ */
222
+ hookdeck(options) {
223
+ const setupPrompt = webhooks_1.webhookSetupPrompts.hookdeck;
224
+ return {
225
+ provider: "hookdeck",
226
+ verifier: { kind: "config", config: webhooks_1.webhookProviderConfigs.hookdeck.config(options) },
227
+ secretProvisioning: webhooks_1.webhookProviderConfigs.hookdeck.secretProvisioning,
228
+ ...(setupPrompt ? { setupPrompt } : {}),
229
+ };
230
+ },
216
231
  };
217
232
  function producerName(provider) {
218
233
  return provider.replace(/-([a-z0-9])/g, (_, c) => c.toUpperCase());
219
234
  }
220
235
  exports.providerProducers = Object.fromEntries(Object.entries(webhooks_1.webhookProviderConfigs)
221
236
  // Zoom needs a computed URL-validation response that the hosted ingress does not support yet.
222
- .filter(([provider]) => provider !== "slack" && provider !== "zoom")
237
+ .filter(([provider]) => provider !== "slack" && provider !== "zoom" && provider !== "hookdeck")
223
238
  .map(([provider, entry]) => [
224
239
  producerName(provider),
225
240
  () => {
@@ -258,11 +273,12 @@ function defineWebhookEndpoint(options) {
258
273
  return { id, source: source.provider };
259
274
  }
260
275
  function webhook(options) {
261
- const { id, endpoint, onEvent, filter } = options;
276
+ const { id, endpoint, onEvent, filter, ...taskOptions } = options;
262
277
  if (!endpoint?.id) {
263
278
  throw new Error(`webhook("${id}"): an endpoint is required. Declare one with webhooks.endpoint.define() and pass it as { endpoint }.`);
264
279
  }
265
280
  const task = (0, shared_js_1.createTask)({
281
+ ...taskOptions,
266
282
  id,
267
283
  triggerSource: "webhook",
268
284
  run: async (payload, runOptions) => {
@@ -340,6 +356,7 @@ exports.webhooks = {
340
356
  composio: exports.webhookSources.composio,
341
357
  gitlab: exports.webhookSources.gitlab,
342
358
  whatsapp: exports.webhookSources.whatsapp,
359
+ hookdeck: exports.webhookSources.hookdeck,
343
360
  endpoint: { define: defineWebhookEndpoint },
344
361
  waiter: { create: webhookWaiters_js_1.createWebhookWaiter, wait: webhookWaiters_js_1.waitForWebhookWaiter, cancel: webhookWaiters_js_1.cancelWebhookWaiter },
345
362
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/v3/webhooks.ts"],"names":[],"mappings":";;;;;;;AAAA,6CAAgE;AAoBhE,wDAAgD;AAChD,2DAI6B;AAC7B,2CAAoD;AACpD,yDAUoC;AAEpC;;GAEG;AACH,kBAA0B,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;;AAED,8CAA8C;AAC9C,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAqB/D,wDAAwD;AAC3C,QAAA,cAAc,GAAG;IAC5B,MAAM,CACJ,MAAmC,EACnC,OAQC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,IAAK,MAAiC,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC9F,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D;YACD,kBAAkB,EAAE,QAAQ;YAC5B,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,qGAAqG;IACrG,MAAM,CAA8B,IAAoC;QACtE,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAA,+BAAoB,EAAC,IAAI,CAAC,EAAE;YAClF,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,0FAA0F;IAC1F,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAA,+BAAoB,GAAE,EAAE;YAC9E,kBAAkB,EAAE,YAAY;SACjC,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,kGAAkG;IAClG,6EAA6E;IAC7E,IAAI;QACF,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAA,6BAAkB,GAAE,EAAE;YAC1E,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,uGAAuG;IACvG,oFAAoF;IACpF,gBAAgB;QACd,OAAO;YACL,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,IAAA,yCAA8B,GAAE;aACzC;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,iGAAiG;IACjG,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAA,+BAAoB,GAAE,EAAE;YAC9E,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAc,IAAI,GAA8C,EAAE;QACvE,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAA,gCAAqB,EAAC,IAAI,CAAC;gBACnC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE;gBACrE,QAAQ,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE;aACvD;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAA,6BAAkB,GAAE,EAAE;YAC1E,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAA,6BAAkB,GAAE,EAAE;YAC1E,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,IAAA,yCAA8B,GAAE;aACzC;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,IAAA,yCAA8B,GAAE;aACzC;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,IAAA,yCAA8B,GAAE;aACzC;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAA,6BAAkB,GAAE,EAAE;YAC1E,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE,IAAA,yCAA8B,GAAE;aACzC;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE;aACtF;YACD,kBAAkB,EAAE,YAAY;SACjC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,IAAA,+BAAoB,GAAE;gBAC9B,YAAY,EAAE;oBACZ,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,WAAW;oBACvB,UAAU,EAAE,kBAAkB;oBAC9B,cAAc,EAAE,eAAe;iBAChC;aACF;YACD,kBAAkB,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC;CACO,CAAC;AAkBX,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7E,CAAC;AAEY,QAAA,iBAAiB,GAAG,MAAM,CAAC,WAAW,CACjD,MAAM,CAAC,OAAO,CAAC,iCAAsB,CAAC;IACpC,8FAA8F;KAC7F,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,CAAC;KACnE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC1B,YAAY,CAAC,QAAQ,CAAC;IACtB,GAAG,EAAE;QACH,MAAM,WAAW,GAAG,8BAAmB,CAAC,QAA6B,CAAC,CAAC;QACvE,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE;YAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC,CAC+B,CAAC;AAatC;;;;GAIG;AACH,+BACE,OAAqD;IAErD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,6BAA6B,EAAE,gGAAgG,CAChI,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GACf,MAAM,CAAC,WAAW;QAClB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;YAChC,CAAC,CAAC,8BAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAA0C,CAAC;YACjF,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,oBAAe,CAAC,+BAA+B,CAAC;QAC9C,EAAE;QACF,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,gBAAgB,EAAE,MAAM,CAAC,QAAQ;QACjC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC,CAAC;IAEH,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAEnC,CAAC;AACJ,CAAC;AAgDD,iBAKE,OAMC;IAED,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAClD,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,YAAY,EAAE,uGAAuG,CACtH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,sBAAU,EAIrB;QACA,EAAE;QACF,aAAa,EAAE,SAAS;QACxB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;YACjC,MAAM,OAAO,CAAC;gBACZ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,UAAU,CAAC,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,oBAAe,CAAC,yBAAyB,CAAC;QACxC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KACxE,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mGAAmG;AACnG,iGAAiG;AACjG,8FAA8F;AAC9F,0BAA0B;AAC1B,mBAME,OAiBD;IACC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACpD,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,eAAe,EAAE,uGAAuG,CACzH,CAAC;IACJ,CAAC;IAED,2FAA2F;IAC3F,oBAAe,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,EAAE;QACF,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,GAAG,EAAE,kBAAkB,CAAC,GAAa,CAAC;QACtC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM;KACgF,CAAC;AAC3F,CAAC;AAWD;;;;GAIG;AACH,4BAAmC,GAAW;IAC5C,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAU,EAAE;QAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,OAAO,CAAC;QACpF,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACnF,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,QAAQ,OAAO,oCAAoC,IAAI,6DAA6D,CACxI,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,GAAG,CAAC,OAAO,CAChB,eAAe,EACf,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACzF,CAAC;AACJ,CAAC;AAyDD;;GAEG;AACU,QAAA,QAAQ,GAAgD;IACnE,GAAG,QAAA,iBAAiB;IACpB,cAAc;IACd,qBAAqB;IACrB,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,IAAI,EAAE,QAAA,cAAc,CAAC,IAAI;IACzB,gBAAgB,EAAE,QAAA,cAAc,CAAC,gBAAgB;IACjD,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,OAAO,EAAE,QAAA,cAAc,CAAC,OAAO;IAC/B,KAAK,EAAE,QAAA,cAAc,CAAC,KAAK;IAC3B,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,SAAS,EAAE,QAAA,cAAc,CAAC,SAAS;IACnC,QAAQ,EAAE,QAAA,cAAc,CAAC,QAAQ;IACjC,IAAI,EAAE,QAAA,cAAc,CAAC,IAAI;IACzB,QAAQ,EAAE,QAAA,cAAc,CAAC,QAAQ;IACjC,MAAM,EAAE,QAAA,cAAc,CAAC,MAAM;IAC7B,QAAQ,EAAE,QAAA,cAAc,CAAC,QAAQ;IACjC,QAAQ,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC3C,MAAM,EAAE,EAAE,MAAM,EAAE,uCAAmB,EAAE,IAAI,EAAE,wCAAoB,EAAE,MAAM,EAAE,uCAAmB,EAAE;CACjG,CAAC;AAEF,KAAK,UAAU,cAAc,CAC3B,OAAwC,EACxC,MAAc;IAEd,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CAAC,kDAAkD,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;QACtD,CAAC;QACD,SAAS,GAAG,eAAe,CAAC;QAE5B,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAErC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,YAAY,CAAC,qCAAqC,CAAC,CAAC;QAChE,CAAC;QACD,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAElE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,YAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,YAAY,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,SAAiB,EACjB,MAAc;IAEd,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CAAC,+CAA+C,CAAC,CAAC;QAC1E,CAAC;QAED,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhD,wBAAwB;QACxB,MAAM,GAAG,GAAG,MAAM,oBAAM,CAAC,SAAS,CAChC,KAAK,EACL,UAAU,EACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;QAEF,mCAAmC;QACnC,MAAM,eAAe,GAAG,MAAM,oBAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAExE,kDAAkD;QAClD,OAAO,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/v3/webhooks.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "4.8.0-webhooks.20261015065339";
4
+ exports.VERSION = "4.8.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -34,6 +34,7 @@ type ChatTurnContext<TClientData = unknown> = {
34
34
  turn: number;
35
35
  continuation: boolean;
36
36
  clientData?: TClientData;
37
+ recordUserMessage?: boolean;
37
38
  };
38
39
  export { __readChatSnapshotProductionPathForTests, __setReadChatSnapshotImplForTests, __setWriteChatSnapshotImplForTests, __writeChatSnapshotProductionPathForTests, } from "./chatSnapshotIo.js";
39
40
  export { defaultStorage, memoryTranscriptStorage, reduceTranscriptChanges, snapshotTranscriptStorage, type LoadContextEvent, type MemoryTranscriptStorage, type TranscriptChange, type TranscriptChangeReason, type TranscriptChangeset, type TranscriptCursors, type TranscriptLoadOptions, type TranscriptLoadResult, type TranscriptScope, type TranscriptState, type TranscriptStorage, type TranscriptStorageContext, } from "./transcriptStorage.js";
@@ -1862,21 +1863,25 @@ export type ChannelControl = {
1862
1863
  /**
1863
1864
  * What a connector's `progress()` hook observes while a turn streams: each tool call as its input is
1864
1865
  * complete, and each result or error as it lands. Text deltas are not reported (use `delivery: "stream"`).
1866
+ * `title` is the tool's display title (`tool({ title })`), when it declares one.
1865
1867
  */
1866
1868
  export type ChannelProgressEvent = {
1867
1869
  type: "tool-call";
1868
1870
  toolCallId: string;
1869
1871
  toolName: string;
1872
+ title?: string;
1870
1873
  input: unknown;
1871
1874
  } | {
1872
1875
  type: "tool-result";
1873
1876
  toolCallId: string;
1874
1877
  toolName: string;
1878
+ title?: string;
1875
1879
  output: unknown;
1876
1880
  } | {
1877
1881
  type: "tool-error";
1878
1882
  toolCallId: string;
1879
1883
  toolName: string;
1884
+ title?: string;
1880
1885
  errorText: string;
1881
1886
  };
1882
1887
  /**
@@ -1900,7 +1905,7 @@ export type ChannelReplyStreamEnd = {
1900
1905
  stopped: boolean;
1901
1906
  /** The turn paused on a human decision; the controls follow as their own message. */
1902
1907
  pending: boolean;
1903
- /** The sanitized error text when the turn ended on a model or stream error. */
1908
+ /** The connector's error line (`errorMessage`) when the turn ended on a model or stream error. */
1904
1909
  errorText?: string;
1905
1910
  };
1906
1911
  /**
@@ -2026,6 +2031,12 @@ export interface ChannelConnector<TEvent = unknown, THandle = unknown> {
2026
2031
  cancelInteraction?: (cancelled: ChannelCancelledToolCall[], ctx: ChannelTurnCtx<TEvent, THandle>) => Promise<void> | void;
2027
2032
  react?: (reaction: ChannelReaction, ctx: ChannelReactCtx<TEvent>) => Promise<void>;
2028
2033
  reactions?: ChannelReactions<TEvent>;
2034
+ /**
2035
+ * What the channel shows when a turn fails, in place of the error text: a fixed line, or a
2036
+ * function of the failure that returns one. Defaults to {@link CHANNEL_TURN_ERROR_MESSAGE}. The
2037
+ * error itself is logged on the run, and `outbound()` still receives it as `reply.error`.
2038
+ */
2039
+ errorMessage?: ChannelErrorMessage<TEvent>;
2029
2040
  /**
2030
2041
  * Observe tool calls and results as the turn streams, to post progress into the surface (a Linear
2031
2042
  * `action` activity, a Slack status). Called in order, awaited one at a time, independent of
@@ -2045,6 +2056,34 @@ export interface ChannelConnector<TEvent = unknown, THandle = unknown> {
2045
2056
  readonly [channelEventPhantom]?: TEvent;
2046
2057
  }
2047
2058
  export type AnyChannelConnector = ChannelConnector<any, any>;
2059
+ /** The line a channel shows when a turn fails, unless the connector sets its own `errorMessage`. */
2060
+ export declare const CHANNEL_TURN_ERROR_MESSAGE = "Something went wrong answering this. Try again.";
2061
+ /** What an `errorMessage` function receives when a channel turn fails. */
2062
+ export type ChannelErrorContext<TEvent = unknown> = {
2063
+ /** The failure: the model or stream error, or what the turn threw. */
2064
+ error: Error;
2065
+ /** The text the turn streamed before it failed; empty when it failed before answering. */
2066
+ partialText: string;
2067
+ /** The event that started the turn; undefined on a turn the channel did not start (an action turn, a browser message). */
2068
+ event: TEvent | undefined;
2069
+ /** The run the turn failed in, for a support reference. */
2070
+ runId: string | undefined;
2071
+ /** The session's chat id. */
2072
+ chatId: string;
2073
+ /** {@link CHANNEL_TURN_ERROR_MESSAGE}, to extend rather than replace. */
2074
+ defaultMessage: string;
2075
+ };
2076
+ /**
2077
+ * A channel's error line: a fixed string, or a function of the failure. A function that returns
2078
+ * nothing, or throws, falls back to {@link CHANNEL_TURN_ERROR_MESSAGE}.
2079
+ *
2080
+ * @example
2081
+ * ```ts
2082
+ * errorMessage: ({ error, runId }) =>
2083
+ * error.name === "RateLimitError" ? "I'm a bit busy, try again in a minute." : `That failed (ref ${runId}).`,
2084
+ * ```
2085
+ */
2086
+ export type ChannelErrorMessage<TEvent = unknown> = string | ((ctx: ChannelErrorContext<TEvent>) => string | null | undefined | Promise<string | null | undefined>);
2048
2087
  /**
2049
2088
  * A generic chat-frontend channel over any verified source. Unlike `slack()`, you supply the egress
2050
2089
  * `send` yourself (post/edit the reply back to your surface), so the whole round-trip is under your
@@ -2088,6 +2127,8 @@ export declare function chatChannelCustom<TEndpoint extends AnyWebhookEndpoint,
2088
2127
  filter?: ValidateWebhookFilter<InferWebhookEndpointEvent<TEndpoint>, TFilter>;
2089
2128
  startOn?: ValidateWebhookFilter<InferWebhookEndpointEvent<TEndpoint>, TStartOn>;
2090
2129
  delivery?: "final" | "stream";
2130
+ /** What the channel shows when a turn fails: a line, or a function of the failure. Defaults to {@link CHANNEL_TURN_ERROR_MESSAGE}. */
2131
+ errorMessage?: ChannelErrorMessage<NarrowWebhookEvent<InferWebhookEndpointEvent<TEndpoint>, TFilter>>;
2091
2132
  }): ChannelConnector<NarrowWebhookEvent<InferWebhookEndpointEvent<TEndpoint>, TFilter>, THandle>;
2092
2133
  export declare function resolveReactionChoice(choice: ChannelReactionChoice | undefined, event: unknown): Promise<string | undefined>;
2093
2134
  /**
@@ -2184,6 +2225,31 @@ export type ChatAgentOptions<TIdentifier extends string, TClientDataSchema exten
2184
2225
  * Ignored for sessions with no pin, and for sessions using `lockToVersion`.
2185
2226
  */
2186
2227
  versionSkew?: ChatVersionSkewPolicy;
2228
+ /**
2229
+ * Controls which chat content the chat runtime records on its spans in the run trace.
2230
+ *
2231
+ * - `recordUserMessage` (default `true`) records the last user message as `chat.user_message`
2232
+ * and as the turn span's preview text, and messages sent mid-turn as `pending.messages`.
2233
+ * - `recordClientData` (default `true`) records the raw `clientData` sent by the frontend as
2234
+ * `chat.client_data`.
2235
+ *
2236
+ * Set either to `false` to keep that content out of telemetry. Content recorded by the AI SDK's
2237
+ * own spans is controlled separately, through `experimental_telemetry` on the model call.
2238
+ *
2239
+ * @example
2240
+ * ```ts
2241
+ * chat.agent({
2242
+ * id: "my-chat",
2243
+ * telemetry: { recordUserMessage: false, recordClientData: false },
2244
+ * run: async ({ messages, signal, streamText }) =>
2245
+ * streamText({ model, messages, abortSignal: signal }),
2246
+ * });
2247
+ * ```
2248
+ */
2249
+ telemetry?: {
2250
+ recordUserMessage?: boolean;
2251
+ recordClientData?: boolean;
2252
+ };
2187
2253
  /**
2188
2254
  * Schema for validating `clientData` from the frontend.
2189
2255
  * Accepts Zod, ArkType, Valibot, or any supported schema library.
@@ -4069,7 +4135,8 @@ export declare const chat: {
4069
4135
  /**
4070
4136
  * Returns an options object ready to spread into `streamText()`.
4071
4137
  * Reads the stored prompt and returns `{ system, experimental_telemetry, ...config }`.
4072
- * Returns `{}` if no prompt has been set.
4138
+ * With no stored prompt it still returns `experimental_telemetry` (on), so the model call is
4139
+ * traced.
4073
4140
  */
4074
4141
  toStreamTextOptions: typeof toStreamTextOptions;
4075
4142
  /**
package/dist/esm/v3/ai.js CHANGED
@@ -2934,7 +2934,6 @@ async function drainSteeringQueue(config, messages, steps, queueOverride) {
2934
2934
  // Span attributes describe the offered batch; the chunk and callback below
2935
2935
  // describe what was actually claimed and injected.
2936
2936
  const messageTexts = uiMessages.map(textOfUIMessage);
2937
- const _previewText = messageTexts.length === 1 ? messageTexts[0].slice(0, 80) : `${queue.length} messages`;
2938
2937
  return tracer.startActiveSpan("pending message injected", async () => {
2939
2938
  /**
2940
2939
  * Claim before transforming, and inject only what was claimed.
@@ -3073,7 +3072,7 @@ async function drainSteeringQueue(config, messages, steps, queueOverride) {
3073
3072
  [SemanticInternalAttributes.STYLE_ICON]: "tabler-message-forward",
3074
3073
  "pending.message_count": uiMessages.length,
3075
3074
  "pending.step_number": stepNumber,
3076
- "pending.messages": messageTexts,
3075
+ ...(ctx?.recordUserMessage === false ? {} : { "pending.messages": messageTexts }),
3077
3076
  ...(ctx?.chatId ? { "pending.chat_id": ctx.chatId } : {}),
3078
3077
  ...(ctx?.turn != null ? { "pending.turn": ctx.turn } : {}),
3079
3078
  ...accessoryAttributes({
@@ -3549,6 +3548,22 @@ function toStreamTextOptions(options, retain = true) {
3549
3548
  const telemetry = prompt.toAISDKTelemetry(options?.telemetry);
3550
3549
  Object.assign(result, telemetry);
3551
3550
  }
3551
+ const telemetry = result.experimental_telemetry ?? {
3552
+ isEnabled: true,
3553
+ metadata: { ...(options?.telemetry ?? {}) },
3554
+ };
3555
+ if (locals.get(chatTurnContextKey)?.recordUserMessage === false) {
3556
+ const { "prompt.input": _input, ...metadata } = (telemetry.metadata ?? {});
3557
+ result.experimental_telemetry = {
3558
+ ...telemetry,
3559
+ metadata,
3560
+ recordInputs: false,
3561
+ recordOutputs: false,
3562
+ };
3563
+ }
3564
+ else {
3565
+ result.experimental_telemetry = telemetry;
3566
+ }
3552
3567
  // Skills: merge auto-injected tools with any user-provided tools.
3553
3568
  // User tools override on name conflict (though we namespace ours).
3554
3569
  if (skills && skills.length > 0) {
@@ -3819,13 +3834,39 @@ async function pipeChat(source, options, capture) {
3819
3834
  await waitUntilComplete();
3820
3835
  }
3821
3836
  }
3837
+ /** The AI SDK's default `toUIMessageStream` `onError`: the error's message, as the client sees it. */
3838
+ function uiStreamErrorText(error) {
3839
+ if (error == null)
3840
+ return "unknown error";
3841
+ if (typeof error === "string")
3842
+ return error;
3843
+ if (error instanceof Error)
3844
+ return error.message;
3845
+ return JSON.stringify(error);
3846
+ }
3847
+ /** The line a channel shows when a turn fails, unless the connector sets its own `errorMessage`. */
3848
+ export const CHANNEL_TURN_ERROR_MESSAGE = "Something went wrong answering this. Try again.";
3849
+ async function channelTurnErrorMessage(connector, ctx) {
3850
+ const option = connector?.errorMessage;
3851
+ if (typeof option !== "function")
3852
+ return option || CHANNEL_TURN_ERROR_MESSAGE;
3853
+ try {
3854
+ const line = await option({ ...ctx, defaultMessage: CHANNEL_TURN_ERROR_MESSAGE });
3855
+ if (line)
3856
+ return line;
3857
+ }
3858
+ catch (error) {
3859
+ logger.warn("chat.agent: channel errorMessage threw; posting the default line", { error });
3860
+ }
3861
+ return CHANNEL_TURN_ERROR_MESSAGE;
3862
+ }
3822
3863
  /**
3823
3864
  * A generic chat-frontend channel over any verified source. Unlike `slack()`, you supply the egress
3824
3865
  * `send` yourself (post/edit the reply back to your surface), so the whole round-trip is under your
3825
3866
  * control. Use for providers without a preset, or to test the channel round-trip end to end.
3826
3867
  */
3827
3868
  export function chatChannelCustom(options) {
3828
- const { id, endpoint, key, inbound, bind, seed, outbound, ack, send, renderInteraction, onInteraction, finalizeInteraction, react, reactions, progress, surface, onControl, stream, endInterruptedStream, download, received, toAction, lifecycle, cancelInteraction, filter, startOn, delivery, } = options;
3869
+ const { id, endpoint, key, inbound, bind, seed, outbound, ack, send, renderInteraction, onInteraction, finalizeInteraction, react, reactions, progress, surface, onControl, stream, endInterruptedStream, download, received, toAction, lifecycle, cancelInteraction, filter, startOn, delivery, errorMessage, } = options;
3829
3870
  if (!endpoint?.id) {
3830
3871
  throw new Error(`chat.channels.custom("${id}"): an endpoint is required. Declare one with webhooks.endpoint.define() and pass it as { endpoint }.`);
3831
3872
  }
@@ -3859,6 +3900,7 @@ export function chatChannelCustom(options) {
3859
3900
  lifecycle,
3860
3901
  cancelInteraction,
3861
3902
  delivery: delivery ?? "final",
3903
+ errorMessage,
3862
3904
  };
3863
3905
  }
3864
3906
  const chatChannels = {
@@ -4356,6 +4398,7 @@ function makeChannelProgressObserver(connector, wireEvent, handle) {
4356
4398
  const progress = connector.progress;
4357
4399
  const turnCtx = channelTurnCtx(wireEvent, handle);
4358
4400
  const toolNames = new Map();
4401
+ const toolTitles = new Map();
4359
4402
  let chain = Promise.resolve();
4360
4403
  let stopped = false;
4361
4404
  const emit = (event) => {
@@ -4378,6 +4421,10 @@ function makeChannelProgressObserver(connector, wireEvent, handle) {
4378
4421
  const c = chunk;
4379
4422
  if (!c?.type || !c.toolCallId)
4380
4423
  return;
4424
+ if (c.title)
4425
+ toolTitles.set(c.toolCallId, c.title);
4426
+ const title = toolTitles.get(c.toolCallId);
4427
+ const titled = title ? { title } : {};
4381
4428
  if (c.type === "tool-input-start" && c.toolName) {
4382
4429
  toolNames.set(c.toolCallId, c.toolName);
4383
4430
  return;
@@ -4385,7 +4432,7 @@ function makeChannelProgressObserver(connector, wireEvent, handle) {
4385
4432
  if (c.type === "tool-input-available") {
4386
4433
  const toolName = c.toolName ?? toolNames.get(c.toolCallId) ?? "tool";
4387
4434
  toolNames.set(c.toolCallId, toolName);
4388
- emit({ type: "tool-call", toolCallId: c.toolCallId, toolName, input: c.input });
4435
+ emit({ type: "tool-call", toolCallId: c.toolCallId, toolName, ...titled, input: c.input });
4389
4436
  return;
4390
4437
  }
4391
4438
  if (c.type === "tool-output-available" && !c.preliminary) {
@@ -4393,6 +4440,7 @@ function makeChannelProgressObserver(connector, wireEvent, handle) {
4393
4440
  type: "tool-result",
4394
4441
  toolCallId: c.toolCallId,
4395
4442
  toolName: toolNames.get(c.toolCallId) ?? "tool",
4443
+ ...titled,
4396
4444
  output: c.output,
4397
4445
  });
4398
4446
  return;
@@ -4402,6 +4450,7 @@ function makeChannelProgressObserver(connector, wireEvent, handle) {
4402
4450
  type: "tool-error",
4403
4451
  toolCallId: c.toolCallId,
4404
4452
  toolName: toolNames.get(c.toolCallId) ?? "tool",
4453
+ ...titled,
4405
4454
  errorText: c.errorText ?? "tool failed",
4406
4455
  });
4407
4456
  }
@@ -4493,6 +4542,7 @@ function stopPendingToolCalls(message, toolCallIds, errorText) {
4493
4542
  */
4494
4543
  function makeChannelReplyStreamObserver(stream) {
4495
4544
  const toolNames = new Map();
4545
+ const toolTitles = new Map();
4496
4546
  let stopped = false;
4497
4547
  const safe = (fn) => {
4498
4548
  try {
@@ -4515,22 +4565,32 @@ function makeChannelReplyStreamObserver(stream) {
4515
4565
  if (!stream.progress || !c?.type || !c.toolCallId)
4516
4566
  return;
4517
4567
  const toolCallId = c.toolCallId;
4568
+ if (c.title)
4569
+ toolTitles.set(toolCallId, c.title);
4570
+ const title = toolTitles.get(toolCallId);
4571
+ const titled = title ? { title } : {};
4518
4572
  if (c.type === "tool-input-start" && c.toolName) {
4519
4573
  toolNames.set(toolCallId, c.toolName);
4520
4574
  }
4521
4575
  else if (c.type === "tool-input-available") {
4522
4576
  const toolName = c.toolName ?? toolNames.get(toolCallId) ?? "tool";
4523
4577
  toolNames.set(toolCallId, toolName);
4524
- safe(() => stream.progress({ type: "tool-call", toolCallId, toolName, input: c.input }));
4578
+ safe(() => stream.progress({ type: "tool-call", toolCallId, toolName, ...titled, input: c.input }));
4525
4579
  }
4526
4580
  else if (c.type === "tool-output-available" && !c.preliminary) {
4527
4581
  const toolName = toolNames.get(toolCallId) ?? "tool";
4528
- safe(() => stream.progress({ type: "tool-result", toolCallId, toolName, output: c.output }));
4582
+ safe(() => stream.progress({
4583
+ type: "tool-result",
4584
+ toolCallId,
4585
+ toolName,
4586
+ ...titled,
4587
+ output: c.output,
4588
+ }));
4529
4589
  }
4530
4590
  else if (c.type === "tool-output-error") {
4531
4591
  const toolName = toolNames.get(toolCallId) ?? "tool";
4532
4592
  const errorText = c.errorText ?? "tool failed";
4533
- safe(() => stream.progress({ type: "tool-error", toolCallId, toolName, errorText }));
4593
+ safe(() => stream.progress({ type: "tool-error", toolCallId, toolName, ...titled, errorText }));
4534
4594
  }
4535
4595
  },
4536
4596
  stop() {
@@ -4812,7 +4872,9 @@ function chatCustomAgent(options) {
4812
4872
  return task;
4813
4873
  }
4814
4874
  function chatAgent(options) {
4815
- const { run: userRun, clientDataSchema, onBoot, onRecoveryBoot, onPreload, onChatStart, onValidateMessages, hydrateMessages, storage, actionSchema, events, channels, onAction, onTurnStart, onBeforeTurnComplete, onCompacted, compaction, pendingMessages: pendingMessagesConfig, prepareMessages, tools: toolsOption, onTurnComplete, maxTurns = 100, turnTimeout = "1h", idleTimeoutInSeconds = 30, chatAccessTokenTTL = "1h", preloadIdleTimeoutInSeconds, preloadTimeout, uiMessageStreamOptions, onChatSuspend, onChatResume, exitAfterPreloadIdle = false, oomMachine, registry: promptRegistry, system: agentSystem, cacheControl: agentCacheControl, systemProviderOptions: agentSystemProviderOptions, versionSkew, ...restOptions } = options;
4875
+ const { run: userRun, clientDataSchema, onBoot, onRecoveryBoot, onPreload, onChatStart, onValidateMessages, hydrateMessages, storage, actionSchema, events, channels, onAction, onTurnStart, onBeforeTurnComplete, onCompacted, compaction, pendingMessages: pendingMessagesConfig, prepareMessages, tools: toolsOption, onTurnComplete, maxTurns = 100, turnTimeout = "1h", idleTimeoutInSeconds = 30, chatAccessTokenTTL = "1h", preloadIdleTimeoutInSeconds, preloadTimeout, uiMessageStreamOptions, onChatSuspend, onChatResume, exitAfterPreloadIdle = false, oomMachine, registry: promptRegistry, system: agentSystem, cacheControl: agentCacheControl, systemProviderOptions: agentSystemProviderOptions, versionSkew, telemetry: telemetryOptions, ...restOptions } = options;
4876
+ const recordUserMessage = telemetryOptions?.recordUserMessage ?? true;
4877
+ const recordClientData = telemetryOptions?.recordClientData ?? true;
4816
4878
  if (hydrateMessages) {
4817
4879
  if (storage) {
4818
4880
  throw new Error(`chat.agent: "${options.id}" sets both \`hydrateMessages\` and \`storage\`. ` +
@@ -6094,6 +6156,8 @@ function chatAgent(options) {
6094
6156
  let channelFinalSendFailed = false;
6095
6157
  /** The stream-level error (an `error` chunk) this turn ended on, if any; posted to the channel in place of an empty reply. */
6096
6158
  let channelStreamErrorText;
6159
+ /** The original error behind that chunk, captured from `toUIMessageStream`'s `onError` when auto-piping. */
6160
+ let channelStreamError;
6097
6161
  /** The text this turn streamed, so the channel reply is this turn's answer and not the whole message. */
6098
6162
  let channelTurnText;
6099
6163
  try {
@@ -6501,7 +6565,7 @@ function chatAgent(options) {
6501
6565
  : "tabler-message-chatbot",
6502
6566
  [SemanticInternalAttributes.ENTITY_TYPE]: isAction ? "chat-action" : "chat-turn",
6503
6567
  };
6504
- if (lastUserMessage) {
6568
+ if (lastUserMessage && recordUserMessage) {
6505
6569
  turnAttributes["chat.user_message"] = lastUserMessage;
6506
6570
  // Show a truncated preview of the user message as an accessory
6507
6571
  const preview = lastUserMessage.length > 80
@@ -6512,7 +6576,7 @@ function chatAgent(options) {
6512
6576
  style: "codepath",
6513
6577
  }));
6514
6578
  }
6515
- if (wireMetadata !== undefined) {
6579
+ if (wireMetadata !== undefined && recordClientData) {
6516
6580
  turnAttributes["chat.client_data"] =
6517
6581
  typeof wireMetadata === "string" ? wireMetadata : JSON.stringify(wireMetadata);
6518
6582
  }
@@ -6537,6 +6601,7 @@ function chatAgent(options) {
6537
6601
  turn,
6538
6602
  continuation,
6539
6603
  clientData,
6604
+ recordUserMessage,
6540
6605
  });
6541
6606
  // Resolve the per-turn `tools` set now that turn context
6542
6607
  // (incl. parsed clientData) exists, so every toModelMessages
@@ -7437,6 +7502,12 @@ function chatAgent(options) {
7437
7502
  // messageId. Without this, the frontend and backend generate IDs
7438
7503
  // independently and they won't match for ID-based dedup.
7439
7504
  generateMessageId: resolvedOptions.generateMessageId ?? generateMessageId,
7505
+ onError: (error) => {
7506
+ channelStreamError ??= error;
7507
+ return resolvedOptions.onError
7508
+ ? resolvedOptions.onError(error)
7509
+ : uiStreamErrorText(error);
7510
+ },
7440
7511
  onFinish: ({ responseMessage, finishReason, }) => {
7441
7512
  capturedResponseMessage = responseMessage;
7442
7513
  capturedPartialResponse = responseMessage;
@@ -7961,6 +8032,21 @@ function chatAgent(options) {
7961
8032
  const renderControls = !!((wireChannelEvent || boundTurn) &&
7962
8033
  pendingToolCalls.length > 0 &&
7963
8034
  channelConn?.renderInteraction);
8035
+ let channelErrorLine;
8036
+ if (channelStreamErrorText && (wireChannelEvent || boundTurn)) {
8037
+ logger.warn("chat.agent: channel turn ended on a model or stream error", {
8038
+ errorText: channelStreamErrorText,
8039
+ });
8040
+ channelErrorLine = await channelTurnErrorMessage(channelConn, {
8041
+ error: channelStreamError instanceof Error
8042
+ ? channelStreamError
8043
+ : new Error(channelStreamErrorText),
8044
+ partialText: channelTurnText?.trim() ?? "",
8045
+ event: channelWireEvent?.event,
8046
+ runId: ctx.run.id,
8047
+ chatId: currentWirePayload.chatId,
8048
+ });
8049
+ }
7964
8050
  let channelReplyDelivered = false;
7965
8051
  if (channelReplyStream) {
7966
8052
  const replyStream = channelReplyStream;
@@ -7969,7 +8055,9 @@ function chatAgent(options) {
7969
8055
  const ended = await replyStream.end({
7970
8056
  stopped: turnCompleteEvent.stopped,
7971
8057
  pending: renderControls,
7972
- ...(channelStreamErrorText ? { errorText: channelStreamErrorText } : {}),
8058
+ ...(channelStreamErrorText
8059
+ ? { errorText: channelErrorLine ?? CHANNEL_TURN_ERROR_MESSAGE }
8060
+ : {}),
7973
8061
  });
7974
8062
  channelReplyDelivered = ended.delivered;
7975
8063
  }
@@ -7999,13 +8087,16 @@ function chatAgent(options) {
7999
8087
  ? channelTurnText
8000
8088
  : channelReplyText(turnCompleteEvent.responseMessage);
8001
8089
  // A model or stream error surfaces as an `error` chunk and an empty reply, not as a
8002
- // thrown turn. The mapper gets it on this one call, with the error text standing in
8003
- // for an empty reply, so the placeholder never sits there as if the agent were
8004
- // still working.
8090
+ // thrown turn. The mapper gets it on this one call, with the connector's error line
8091
+ // standing in for an empty reply, so the placeholder never sits there as if the agent
8092
+ // were still working. The error text itself stays on the run, not in the channel.
8005
8093
  const finalReply = {
8006
8094
  // Prefer what this turn streamed; a resumed message carries earlier turns' text too.
8007
- text: channelStreamErrorText && replyText.trim().length === 0
8008
- ? channelStreamErrorText
8095
+ // A failed turn always ends on the connector's error line, after any partial text.
8096
+ text: channelErrorLine
8097
+ ? replyText.trim().length > 0
8098
+ ? `${replyText.trimEnd()}\n\n${channelErrorLine}`
8099
+ : channelErrorLine
8009
8100
  : replyText,
8010
8101
  message: turnCompleteEvent.responseMessage,
8011
8102
  final: true,
@@ -8374,18 +8465,16 @@ function chatAgent(options) {
8374
8465
  logger.warn("chat.agent: channel error reaction failed", { error: reactionError });
8375
8466
  }
8376
8467
  }
8377
- let channelErrorText = "An unexpected error occurred";
8378
- if ((channelWireEvent || boundTurn) && channelConn) {
8379
- const sanitizeChannelError = resolveUIMessageStreamOptions().onError;
8380
- try {
8381
- channelErrorText = sanitizeChannelError
8382
- ? sanitizeChannelError(turnError)
8383
- : turnError instanceof Error
8384
- ? turnError.message
8385
- : channelErrorText;
8386
- }
8387
- catch { }
8388
- }
8468
+ // The channel gets the connector's error line, never the error itself: the run keeps that.
8469
+ const channelErrorText = channelReplyStream || ((channelWireEvent || boundTurn) && channelConn?.send)
8470
+ ? await channelTurnErrorMessage(channelConn, {
8471
+ error: turnError instanceof Error ? turnError : new Error(String(turnError)),
8472
+ partialText: channelTurnText?.trim() ?? "",
8473
+ event: channelWireEvent?.event,
8474
+ runId: ctx.run.id,
8475
+ chatId: currentWirePayload.chatId,
8476
+ })
8477
+ : CHANNEL_TURN_ERROR_MESSAGE;
8389
8478
  let errorStreamDelivered = false;
8390
8479
  if (channelReplyStream) {
8391
8480
  const replyStream = channelReplyStream;
@@ -11193,7 +11282,8 @@ export const chat = {
11193
11282
  /**
11194
11283
  * Returns an options object ready to spread into `streamText()`.
11195
11284
  * Reads the stored prompt and returns `{ system, experimental_telemetry, ...config }`.
11196
- * Returns `{}` if no prompt has been set.
11285
+ * With no stored prompt it still returns `experimental_telemetry` (on), so the model call is
11286
+ * traced.
11197
11287
  */
11198
11288
  toStreamTextOptions,
11199
11289
  /**