diff --git a/docs/tasks/streams.mdx b/docs/tasks/streams.mdx index 5a89dba81..4e1ff07c2 100644 --- a/docs/tasks/streams.mdx +++ b/docs/tasks/streams.mdx @@ -668,6 +668,9 @@ Examples: - ✅ ` https://api.trigger.dev/custom-prefix/// ` (trimmed + normalized) - ✅ `https://api.trigger.dev/custom%20prefix` (percent-encoded whitespace) - ✅ `https://api.trigger.dev/custom%3Fprefix%23segment` (percent-encoded `?` / `#`) +- ✅ `\u00A0https://api.trigger.dev/custom-prefix/\u00A0` (non-breaking-space wrapper trimmed) +- ✅ `\u1680https://api.trigger.dev/custom-prefix/\u1680` (ogham-space-mark wrapper trimmed) +- ✅ `\u3000https://api.trigger.dev/custom-prefix/\u3000` (ideographic-space wrapper trimmed) - ✅ `\uFEFFhttps://api.trigger.dev/custom-prefix/\uFEFF` (BOM wrapper trimmed) - ❌ `\u2060https://api.trigger.dev/custom-prefix/\u2060` (word-joiner wrappers are rejected) - ❌ `\u200Bhttps://api.trigger.dev/custom-prefix/\u200B` (zero-width-space wrappers are rejected) diff --git a/packages/ai/README.md b/packages/ai/README.md index 7b65a9917..c9082bc0a 100644 --- a/packages/ai/README.md +++ b/packages/ai/README.md @@ -175,6 +175,9 @@ Examples: - ✅ ` https://api.trigger.dev/custom-prefix/// ` (trimmed + normalized) - ✅ `https://api.trigger.dev/custom%20prefix` (percent-encoded whitespace) - ✅ `https://api.trigger.dev/custom%3Fprefix%23segment` (percent-encoded `?` / `#`) +- ✅ `\u00A0https://api.trigger.dev/custom-prefix/\u00A0` (non-breaking-space wrapper trimmed) +- ✅ `\u1680https://api.trigger.dev/custom-prefix/\u1680` (ogham-space-mark wrapper trimmed) +- ✅ `\u3000https://api.trigger.dev/custom-prefix/\u3000` (ideographic-space wrapper trimmed) - ✅ `\uFEFFhttps://api.trigger.dev/custom-prefix/\uFEFF` (BOM wrapper trimmed) - ❌ `\u2060https://api.trigger.dev/custom-prefix/\u2060` (word-joiner wrappers are rejected) - ❌ `\u200Bhttps://api.trigger.dev/custom-prefix/\u200B` (zero-width-space wrappers are rejected) diff --git a/packages/ai/src/chatTransport.test.ts b/packages/ai/src/chatTransport.test.ts index 6725178c6..b9a614113 100644 --- a/packages/ai/src/chatTransport.test.ts +++ b/packages/ai/src/chatTransport.test.ts @@ -1204,6 +1204,28 @@ describe("TriggerChatTransport", function () { }).not.toThrow(); }); + it("accepts ogham-space-mark wrapped baseURL values", function () { + expect(function () { + new TriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u1680https://api.trigger.dev/custom-prefix/\u1680", + stream: "chat-stream", + }); + }).not.toThrow(); + }); + + it("accepts ideographic-space wrapped baseURL values", function () { + expect(function () { + new TriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u3000https://api.trigger.dev/custom-prefix/\u3000", + stream: "chat-stream", + }); + }).not.toThrow(); + }); + it("accepts BOM-wrapped baseURL values", function () { expect(function () { new TriggerChatTransport({ @@ -4042,6 +4064,28 @@ describe("TriggerChatTransport", function () { }).not.toThrow(); }); + it("accepts ogham-space-mark wrapped baseURL values from factory", function () { + expect(function () { + createTriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u1680https://api.trigger.dev/custom-prefix/\u1680", + stream: "chat-stream", + }); + }).not.toThrow(); + }); + + it("accepts ideographic-space wrapped baseURL values from factory", function () { + expect(function () { + createTriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u3000https://api.trigger.dev/custom-prefix/\u3000", + stream: "chat-stream", + }); + }).not.toThrow(); + }); + it("accepts BOM-wrapped baseURL values from factory", function () { expect(function () { createTriggerChatTransport({