diff --git a/docs/tasks/streams.mdx b/docs/tasks/streams.mdx index 448ba9fe1..302987d68 100644 --- a/docs/tasks/streams.mdx +++ b/docs/tasks/streams.mdx @@ -688,6 +688,7 @@ Examples: - ❌ `\u1680///\u1680` (empty after trimming wrapper whitespace) - ❌ `\u2007///\u2007` (empty after trimming wrapper whitespace) - ❌ `\u205F///\u205F` (empty after trimming wrapper whitespace) +- ❌ `\u180E///\u180E` (rejected as internal invisible-separator whitespace) - ❌ `\u3000///\u3000` (empty after trimming wrapper whitespace) - ❌ `\n\thttps://api.trigger.dev/base/?query=1\t\n` (query is still rejected after trimming wrappers) - ❌ `\n\thttps://api.trigger.dev/base/#fragment\t\n` (hash is still rejected after trimming wrappers) diff --git a/packages/ai/README.md b/packages/ai/README.md index ca15a8cd0..4c15758ea 100644 --- a/packages/ai/README.md +++ b/packages/ai/README.md @@ -195,6 +195,7 @@ Examples: - ❌ `\u1680///\u1680` (empty after trimming wrapper whitespace) - ❌ `\u2007///\u2007` (empty after trimming wrapper whitespace) - ❌ `\u205F///\u205F` (empty after trimming wrapper whitespace) +- ❌ `\u180E///\u180E` (rejected as internal invisible-separator whitespace) - ❌ `\u3000///\u3000` (empty after trimming wrapper whitespace) - ❌ `\n\thttps://api.trigger.dev/base/?query=1\t\n` (query is still rejected after trimming wrappers) - ❌ `\n\thttps://api.trigger.dev/base/#fragment\t\n` (hash is still rejected after trimming wrappers) diff --git a/packages/ai/src/chatTransport.test.ts b/packages/ai/src/chatTransport.test.ts index f823441f9..e488a48f3 100644 --- a/packages/ai/src/chatTransport.test.ts +++ b/packages/ai/src/chatTransport.test.ts @@ -808,6 +808,17 @@ describe("TriggerChatTransport", function () { }).toThrowError("baseURL must not be empty"); }); + it("throws internal-whitespace validation for mongolian-vowel-separator wrapper slashes", function () { + expect(function () { + new TriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u180E///\u180E", + stream: "chat-stream", + }); + }).toThrowError("baseURL must not contain internal whitespace characters"); + }); + it("uses default baseURL when omitted", function () { expect(function () { new TriggerChatTransport({ @@ -3934,6 +3945,17 @@ describe("TriggerChatTransport", function () { }).toThrowError("baseURL must not be empty"); }); + it("throws internal-whitespace validation from factory for mongolian-vowel-separator wrapper slashes", function () { + expect(function () { + createTriggerChatTransport({ + task: "chat-task", + accessToken: "pk_trigger", + baseURL: "\u180E///\u180E", + stream: "chat-stream", + }); + }).toThrowError("baseURL must not contain internal whitespace characters"); + }); + it("uses default baseURL in factory when omitted", function () { expect(function () { createTriggerChatTransport({