@rudderhq/shared 0.5.0 → 0.5.1

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 (72) hide show
  1. package/dist/agent-run.d.ts +38 -2
  2. package/dist/agent-run.d.ts.map +1 -1
  3. package/dist/agent-run.js +65 -11
  4. package/dist/agent-run.js.map +1 -1
  5. package/dist/agent-run.test.js +45 -3
  6. package/dist/agent-run.test.js.map +1 -1
  7. package/dist/chat-inline-visuals.d.ts +71 -0
  8. package/dist/chat-inline-visuals.d.ts.map +1 -1
  9. package/dist/chat-inline-visuals.js +356 -0
  10. package/dist/chat-inline-visuals.js.map +1 -1
  11. package/dist/chat-inline-visuals.test.js +187 -1
  12. package/dist/chat-inline-visuals.test.js.map +1 -1
  13. package/dist/config-schema.d.ts +8 -8
  14. package/dist/constants.d.ts +8 -1
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +54 -1
  17. package/dist/constants.js.map +1 -1
  18. package/dist/index.d.ts +8 -6
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -5
  21. package/dist/index.js.map +1 -1
  22. package/dist/organization-skill-reference.d.ts +3 -1
  23. package/dist/organization-skill-reference.d.ts.map +1 -1
  24. package/dist/organization-skill-reference.js +27 -2
  25. package/dist/organization-skill-reference.js.map +1 -1
  26. package/dist/organization-skill-reference.test.js +57 -3
  27. package/dist/organization-skill-reference.test.js.map +1 -1
  28. package/dist/types/agent-integration.d.ts +2 -2
  29. package/dist/types/agent-integration.d.ts.map +1 -1
  30. package/dist/types/agent.d.ts +2 -2
  31. package/dist/types/agent.d.ts.map +1 -1
  32. package/dist/types/chat.d.ts +4 -0
  33. package/dist/types/chat.d.ts.map +1 -1
  34. package/dist/types/heartbeat.d.ts +1 -0
  35. package/dist/types/heartbeat.d.ts.map +1 -1
  36. package/dist/types/index.d.ts +2 -2
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/messenger.d.ts +113 -2
  39. package/dist/types/messenger.d.ts.map +1 -1
  40. package/dist/validators/access.d.ts +2 -2
  41. package/dist/validators/agent.d.ts +38 -37
  42. package/dist/validators/agent.d.ts.map +1 -1
  43. package/dist/validators/agent.js +6 -1
  44. package/dist/validators/agent.js.map +1 -1
  45. package/dist/validators/agent.test.js +16 -1
  46. package/dist/validators/agent.test.js.map +1 -1
  47. package/dist/validators/chat.d.ts +175 -14
  48. package/dist/validators/chat.d.ts.map +1 -1
  49. package/dist/validators/chat.js +56 -8
  50. package/dist/validators/chat.js.map +1 -1
  51. package/dist/validators/chat.test.js +7 -0
  52. package/dist/validators/chat.test.js.map +1 -1
  53. package/dist/validators/index.d.ts +3 -2
  54. package/dist/validators/index.d.ts.map +1 -1
  55. package/dist/validators/index.js +3 -2
  56. package/dist/validators/index.js.map +1 -1
  57. package/dist/validators/messenger.d.ts +381 -0
  58. package/dist/validators/messenger.d.ts.map +1 -0
  59. package/dist/validators/messenger.js +74 -0
  60. package/dist/validators/messenger.js.map +1 -0
  61. package/dist/validators/messenger.test.d.ts +2 -0
  62. package/dist/validators/messenger.test.d.ts.map +1 -0
  63. package/dist/validators/messenger.test.js +117 -0
  64. package/dist/validators/messenger.test.js.map +1 -0
  65. package/dist/validators/organization-portability.d.ts +37 -37
  66. package/dist/validators/organization-skill.d.ts +12 -12
  67. package/dist/validators/organization.d.ts +5 -5
  68. package/dist/validators/plugin.d.ts +4 -4
  69. package/dist/validators/project.d.ts +6 -6
  70. package/dist/website-icons.js +1 -1
  71. package/dist/website-icons.js.map +1 -1
  72. package/package.json +1 -1
@@ -1,5 +1,361 @@
1
1
  export const CODEX_INLINE_VISUAL_DIRECTIVE_PREFIX = "::codex-inline-vis{";
2
2
  export const MAX_CODEX_INLINE_VISUALS = 3;
3
+ export const RUDDER_INLINE_VISUAL_START = ":::rudder-inline-visual:v1";
4
+ export const RUDDER_INLINE_VISUAL_END = ":::rudder-inline-visual:end";
5
+ export const RUDDER_INLINE_VISUAL_PLACEMENT_PREFIX = "::rudder-inline-vis{";
6
+ export const MAX_RUDDER_INLINE_VISUAL_FRAGMENT_BYTES = 64 * 1024;
7
+ export const MAX_RUDDER_INLINE_VISUAL_TOTAL_BYTES = 128 * 1024;
8
+ export const MAX_RUDDER_INLINE_VISUAL_REPLY_BYTES = 256 * 1024;
9
+ function utf8ByteLength(value) {
10
+ return new TextEncoder().encode(value).length;
11
+ }
12
+ function sourceLines(body) {
13
+ const lines = [];
14
+ let start = 0;
15
+ while (start < body.length) {
16
+ const newline = body.indexOf("\n", start);
17
+ const contentEnd = newline < 0 ? body.length : newline;
18
+ const end = newline < 0 ? body.length : newline + 1;
19
+ const rawContent = body.slice(start, contentEnd);
20
+ lines.push({
21
+ start,
22
+ contentEnd,
23
+ end,
24
+ content: rawContent.endsWith("\r") ? rawContent.slice(0, -1) : rawContent,
25
+ });
26
+ start = end;
27
+ }
28
+ return lines;
29
+ }
30
+ function markdownFenceStart(line) {
31
+ const match = /^( {0,3})(`{3,}|~{3,})(.*)$/.exec(line);
32
+ if (!match)
33
+ return null;
34
+ const run = match[2];
35
+ if (run[0] === "`" && match[3].includes("`"))
36
+ return null;
37
+ return { marker: run[0], length: run.length };
38
+ }
39
+ function closesMarkdownFence(line, fence) {
40
+ const pattern = fence.marker === "`" ? /^( {0,3})(`{3,})[ \t]*$/ : /^( {0,3})(~{3,})[ \t]*$/;
41
+ const match = pattern.exec(line);
42
+ return Boolean(match && match[2].length >= fence.length);
43
+ }
44
+ function isBlockQuoteOrIndentedCode(line) {
45
+ return /^( {0,3})>/.test(line) || /^( {4}|\t)/.test(line);
46
+ }
47
+ export function parseRudderInlineVisualEnvelopes(body) {
48
+ const envelopes = [];
49
+ const issues = [];
50
+ const lines = sourceLines(body);
51
+ const replyTooLarge = utf8ByteLength(body) > MAX_RUDDER_INLINE_VISUAL_REPLY_BYTES;
52
+ let fence = null;
53
+ let totalBytes = 0;
54
+ let liveCount = 0;
55
+ for (let index = 0; index < lines.length; index += 1) {
56
+ const line = lines[index];
57
+ if (fence) {
58
+ if (closesMarkdownFence(line.content, fence))
59
+ fence = null;
60
+ continue;
61
+ }
62
+ if (isBlockQuoteOrIndentedCode(line.content))
63
+ continue;
64
+ const nextFence = markdownFenceStart(line.content);
65
+ if (nextFence) {
66
+ fence = nextFence;
67
+ continue;
68
+ }
69
+ if (line.content !== RUDDER_INLINE_VISUAL_START)
70
+ continue;
71
+ const slot = liveCount < MAX_CODEX_INLINE_VISUALS ? liveCount : null;
72
+ liveCount += 1;
73
+ let closingIndex = -1;
74
+ let nested = false;
75
+ let depth = 1;
76
+ for (let candidate = index + 1; candidate < lines.length; candidate += 1) {
77
+ const content = lines[candidate].content;
78
+ if (content === RUDDER_INLINE_VISUAL_START) {
79
+ nested = true;
80
+ depth += 1;
81
+ }
82
+ if (content === RUDDER_INLINE_VISUAL_END) {
83
+ depth -= 1;
84
+ if (depth === 0) {
85
+ closingIndex = candidate;
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ if (closingIndex < 0) {
91
+ issues.push({
92
+ code: nested ? "nested" : "unterminated",
93
+ slot,
94
+ raw: body.slice(line.start),
95
+ start: line.start,
96
+ end: body.length,
97
+ });
98
+ break;
99
+ }
100
+ const closingLine = lines[closingIndex];
101
+ const start = line.start;
102
+ const end = closingLine.contentEnd;
103
+ const raw = body.slice(start, end);
104
+ const fragment = body.slice(line.end, closingLine.start).trim();
105
+ const byteSize = utf8ByteLength(fragment);
106
+ const code = nested
107
+ ? "nested"
108
+ : slot === null
109
+ ? "count_limit"
110
+ : replyTooLarge
111
+ ? "reply_size_limit"
112
+ : !fragment
113
+ ? "empty"
114
+ : byteSize > MAX_RUDDER_INLINE_VISUAL_FRAGMENT_BYTES
115
+ ? "fragment_size_limit"
116
+ : totalBytes + byteSize > MAX_RUDDER_INLINE_VISUAL_TOTAL_BYTES
117
+ ? "total_size_limit"
118
+ : null;
119
+ if (code) {
120
+ issues.push({ code, slot, raw, start, end });
121
+ }
122
+ else {
123
+ envelopes.push({ slot: slot, fragment, byteSize, raw, start, end });
124
+ totalBytes += byteSize;
125
+ }
126
+ index = closingIndex;
127
+ }
128
+ return { envelopes, issues };
129
+ }
130
+ export function replaceRudderInlineVisualSources(body, replacements) {
131
+ let result = body;
132
+ for (const entry of [...replacements].sort((a, b) => b.start - a.start)) {
133
+ let start = entry.start;
134
+ let end = entry.end;
135
+ const lineStart = result.lastIndexOf("\n", start - 1) + 1;
136
+ const lineEndIndex = result.indexOf("\n", end);
137
+ const lineEnd = lineEndIndex < 0 ? result.length : lineEndIndex;
138
+ if (result.slice(lineStart, start).trim().length === 0
139
+ && result.slice(end, lineEnd).trim().length === 0) {
140
+ start = lineStart;
141
+ end = lineEndIndex < 0 ? lineEnd : lineEnd + 1;
142
+ }
143
+ const replacement = entry.replacement
144
+ ? `${entry.replacement}${end <= result.length && result[end - 1] === "\n" ? "\n" : ""}`
145
+ : "";
146
+ result = result.slice(0, start) + replacement + result.slice(end);
147
+ }
148
+ return result.trim();
149
+ }
150
+ export function parseRudderInlineVisualPlacements(body) {
151
+ const placements = [];
152
+ const issues = [];
153
+ let fence = null;
154
+ for (const line of sourceLines(body)) {
155
+ if (fence) {
156
+ if (closesMarkdownFence(line.content, fence))
157
+ fence = null;
158
+ continue;
159
+ }
160
+ if (isBlockQuoteOrIndentedCode(line.content))
161
+ continue;
162
+ const nextFence = markdownFenceStart(line.content);
163
+ if (nextFence) {
164
+ fence = nextFence;
165
+ continue;
166
+ }
167
+ if (!line.content.startsWith(RUDDER_INLINE_VISUAL_PLACEMENT_PREFIX))
168
+ continue;
169
+ const match = /^::rudder-inline-vis\{slot="([0-9]+)"\}$/.exec(line.content);
170
+ const slot = match ? Number(match[1]) : -1;
171
+ if (!match || slot < 0 || slot >= MAX_CODEX_INLINE_VISUALS || placements.some((entry) => entry.slot === slot)) {
172
+ issues.push({ raw: line.content, start: line.start, end: line.contentEnd });
173
+ continue;
174
+ }
175
+ placements.push({ slot, raw: line.content, start: line.start, end: line.contentEnd });
176
+ }
177
+ return { placements: placements.sort((a, b) => a.slot - b.slot), issues };
178
+ }
179
+ export function stripRudderInlineVisualPlacements(body, placements = parseRudderInlineVisualPlacements(body).placements) {
180
+ return replaceRudderInlineVisualSources(body, placements.map((placement) => ({ ...placement, replacement: "" })));
181
+ }
182
+ function isInlineVisualFilename(file, slot) {
183
+ return file === `inline-visual-${slot + 1}.html`;
184
+ }
185
+ export function rudderInlineVisualMappingsFromStructuredPayload(payload) {
186
+ const values = Array.isArray(payload?.inlineVisualsV1) ? payload.inlineVisualsV1 : [];
187
+ const mappings = [];
188
+ const seenSlots = new Set();
189
+ for (const value of values) {
190
+ if (mappings.length >= MAX_CODEX_INLINE_VISUALS)
191
+ break;
192
+ if (!value || typeof value !== "object" || Array.isArray(value))
193
+ continue;
194
+ const entry = value;
195
+ const slot = entry.slot;
196
+ const file = entry.file;
197
+ if (entry.version !== 1
198
+ || typeof slot !== "number"
199
+ || !Number.isInteger(slot)
200
+ || slot < 0
201
+ || slot >= MAX_CODEX_INLINE_VISUALS
202
+ || seenSlots.has(slot)
203
+ || typeof file !== "string"
204
+ || !isInlineVisualFilename(file, slot))
205
+ continue;
206
+ if (entry.status === "ready") {
207
+ const attachmentId = typeof entry.attachmentId === "string" ? entry.attachmentId.trim() : "";
208
+ const byteSize = typeof entry.byteSize === "number" && Number.isInteger(entry.byteSize) ? entry.byteSize : -1;
209
+ const sha256 = typeof entry.sha256 === "string" ? entry.sha256.toLowerCase() : "";
210
+ if (!attachmentId
211
+ || entry.contentType !== "text/html"
212
+ || byteSize < 1
213
+ || byteSize > MAX_RUDDER_INLINE_VISUAL_FRAGMENT_BYTES
214
+ || !/^[a-f0-9]{64}$/.test(sha256))
215
+ continue;
216
+ mappings.push({ version: 1, slot, file, status: "ready", attachmentId, contentType: "text/html", byteSize, sha256 });
217
+ }
218
+ else if (entry.status === "unavailable") {
219
+ const reason = typeof entry.reason === "string" ? entry.reason.trim() : "";
220
+ if (!reason || reason.length > 80)
221
+ continue;
222
+ mappings.push({ version: 1, slot, file, status: "unavailable", reason });
223
+ }
224
+ else {
225
+ continue;
226
+ }
227
+ seenSlots.add(slot);
228
+ }
229
+ return mappings.sort((a, b) => a.slot - b.slot);
230
+ }
231
+ export function createRudderInlineVisualStreamSuppressor() {
232
+ let carry = "";
233
+ let visualDepth = 0;
234
+ let fence = null;
235
+ let passthroughLine = false;
236
+ let discardVisualLine = false;
237
+ let visibleText = "";
238
+ const canPassThroughIncompleteLine = (line) => {
239
+ if (!line || visualDepth > 0 || fence)
240
+ return false;
241
+ const content = line.replace(/\r$/, "");
242
+ if (RUDDER_INLINE_VISUAL_START.startsWith(content))
243
+ return false;
244
+ const leadingSpaces = /^( {0,3})/.exec(content)?.[1].length ?? 0;
245
+ const remainder = content.slice(leadingSpaces);
246
+ for (const marker of ["`", "~"]) {
247
+ if (!remainder.startsWith(marker))
248
+ continue;
249
+ const runLength = remainder.match(marker === "`" ? /^`+/ : /^~+/)?.[0].length ?? 0;
250
+ if (runLength >= 3 || (runLength === remainder.length && runLength < 3))
251
+ return false;
252
+ }
253
+ return true;
254
+ };
255
+ const processLine = (rawLine, hasNewline) => {
256
+ const rawContent = hasNewline ? rawLine.slice(0, -1) : rawLine;
257
+ const content = rawContent.endsWith("\r") ? rawContent.slice(0, -1) : rawContent;
258
+ if (visualDepth > 0) {
259
+ if (content === RUDDER_INLINE_VISUAL_START)
260
+ visualDepth += 1;
261
+ if (content === RUDDER_INLINE_VISUAL_END)
262
+ visualDepth -= 1;
263
+ return "";
264
+ }
265
+ if (fence) {
266
+ if (closesMarkdownFence(content, fence))
267
+ fence = null;
268
+ return rawLine;
269
+ }
270
+ if (!isBlockQuoteOrIndentedCode(content)) {
271
+ const nextFence = markdownFenceStart(content);
272
+ if (nextFence) {
273
+ fence = nextFence;
274
+ return rawLine;
275
+ }
276
+ if (content === RUDDER_INLINE_VISUAL_START) {
277
+ visualDepth = 1;
278
+ return "";
279
+ }
280
+ }
281
+ return rawLine;
282
+ };
283
+ return {
284
+ push(text) {
285
+ if (!text)
286
+ return "";
287
+ carry += text;
288
+ let output = "";
289
+ while (carry) {
290
+ const newline = carry.indexOf("\n");
291
+ if (discardVisualLine) {
292
+ if (newline < 0) {
293
+ carry = "";
294
+ break;
295
+ }
296
+ carry = carry.slice(newline + 1);
297
+ discardVisualLine = false;
298
+ continue;
299
+ }
300
+ if (passthroughLine) {
301
+ if (newline < 0) {
302
+ output += carry;
303
+ carry = "";
304
+ break;
305
+ }
306
+ output += carry.slice(0, newline + 1);
307
+ carry = carry.slice(newline + 1);
308
+ passthroughLine = false;
309
+ continue;
310
+ }
311
+ if (newline < 0) {
312
+ const visualLine = carry.replace(/\r$/, "");
313
+ if (visualDepth > 0
314
+ && !RUDDER_INLINE_VISUAL_START.startsWith(visualLine)
315
+ && !RUDDER_INLINE_VISUAL_END.startsWith(visualLine)) {
316
+ carry = "";
317
+ discardVisualLine = true;
318
+ break;
319
+ }
320
+ if (canPassThroughIncompleteLine(carry)) {
321
+ output += carry;
322
+ carry = "";
323
+ passthroughLine = true;
324
+ }
325
+ break;
326
+ }
327
+ const line = carry.slice(0, newline + 1);
328
+ carry = carry.slice(newline + 1);
329
+ output += processLine(line, true);
330
+ }
331
+ visibleText += output;
332
+ return output;
333
+ },
334
+ finish() {
335
+ passthroughLine = false;
336
+ discardVisualLine = false;
337
+ if (!carry)
338
+ return "";
339
+ const line = carry;
340
+ carry = "";
341
+ if (visualDepth > 0 || RUDDER_INLINE_VISUAL_START.startsWith(line.replace(/\r$/, "")))
342
+ return "";
343
+ const output = processLine(line, false);
344
+ visibleText += output;
345
+ return output;
346
+ },
347
+ get visibleText() {
348
+ return visibleText;
349
+ },
350
+ get suppressing() {
351
+ return visualDepth > 0;
352
+ },
353
+ };
354
+ }
355
+ export function redactRudderInlineVisualSources(body) {
356
+ const suppressor = createRudderInlineVisualStreamSuppressor();
357
+ return `${suppressor.push(body)}${suppressor.finish()}`.trim();
358
+ }
3
359
  function issue(code, raw, start, end) {
4
360
  return { code, raw, start, end };
5
361
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-inline-visuals.js","sourceRoot":"","sources":["../src/chat-inline-visuals.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAAG,qBAAqB,CAAC;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAmC1C,SAAS,KAAK,CACZ,IAAyC,EACzC,GAAW,EACX,KAAa,EACb,GAAW;IAEX,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,CACL,IAAI,CAAC,MAAM,GAAG,CAAC;WACZ,IAAI,CAAC,MAAM,IAAI,GAAG;WAClB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;WACrB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;WACnB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;WACpB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;WACpB,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,aAAqB;IAG5C,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;IAC1E,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM;YAAE,MAAM;QAC1C,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;QACjE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAChC,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACxD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAc;IACzD,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAkB,CAAC;YACjD,IAAI,QAAQ,KAAK,MAAM;gBAAE,QAAQ,GAAG,IAAI,CAAC;iBACpC,IAAI,QAAQ,KAAK,IAAI;gBAAE,QAAQ,GAAG,MAAM,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,MAAM;YAAE,MAAM;QAC5C,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,KAAK,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAY;IAEZ,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAC;QACzE,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;QACrB,MAAM,eAAe,GAAG,KAAK,GAAG,oCAAoC,CAAC,MAAM,CAAC;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1E,MAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,IACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;eACvE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EACzG,CAAC;YACD,+EAA+E;QACjF,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,GAAG;gBACH,KAAK;gBACL,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAY,EACZ,UAAwE;IAExE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC5B,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QAChE,IACE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;eAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACjD,CAAC;YACD,KAAK,GAAG,SAAS,CAAC;YAClB,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC3D,OAAmD;IAEnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,wBAAwB;YAAE,MAAM;QACvD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1E,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IACE,OAAO,cAAc,KAAK,QAAQ;eAC/B,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;eACjC,cAAc,GAAG,CAAC;eAClB,cAAc,IAAI,wBAAwB;eAC1C,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;eAC/B,OAAO,IAAI,KAAK,QAAQ;eACxB,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACjC,SAAS;QAEX,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,SAAS;QACX,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"chat-inline-visuals.js","sourceRoot":"","sources":["../src/chat-inline-visuals.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,191 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { MAX_CODEX_INLINE_VISUALS, chatInlineVisualMappingsFromStructuredPayload, parseCodexInlineVisualDirectives, stripCodexInlineVisualDirectives, } from "./chat-inline-visuals.js";
2
+ import { MAX_CODEX_INLINE_VISUALS, MAX_RUDDER_INLINE_VISUAL_FRAGMENT_BYTES, MAX_RUDDER_INLINE_VISUAL_REPLY_BYTES, MAX_RUDDER_INLINE_VISUAL_TOTAL_BYTES, RUDDER_INLINE_VISUAL_END, RUDDER_INLINE_VISUAL_START, chatInlineVisualMappingsFromStructuredPayload, createRudderInlineVisualStreamSuppressor, parseCodexInlineVisualDirectives, parseRudderInlineVisualEnvelopes, parseRudderInlineVisualPlacements, replaceRudderInlineVisualSources, rudderInlineVisualMappingsFromStructuredPayload, stripCodexInlineVisualDirectives, } from "./chat-inline-visuals.js";
3
+ function visual(fragment = '<div id="widget">Chart</div>') {
4
+ return `${RUDDER_INLINE_VISUAL_START}\n${fragment}\n${RUDDER_INLINE_VISUAL_END}`;
5
+ }
6
+ describe("Rudder inline visual envelopes", () => {
7
+ it("parses strict own-line LF and CRLF envelopes with stable source ranges", () => {
8
+ const body = `Before\r\n${visual()}\r\nAfter`;
9
+ const parsed = parseRudderInlineVisualEnvelopes(body);
10
+ expect(parsed.issues).toEqual([]);
11
+ expect(parsed.envelopes).toEqual([
12
+ expect.objectContaining({
13
+ slot: 0,
14
+ fragment: '<div id="widget">Chart</div>',
15
+ byteSize: Buffer.byteLength('<div id="widget">Chart</div>'),
16
+ }),
17
+ ]);
18
+ expect(body.slice(parsed.envelopes[0].start, parsed.envelopes[0].end)).toContain(RUDDER_INLINE_VISUAL_END);
19
+ });
20
+ it("ignores examples in CommonMark code and quotes", () => {
21
+ const body = [
22
+ "```text",
23
+ visual("inside fence"),
24
+ "```",
25
+ `> ${RUDDER_INLINE_VISUAL_START}`,
26
+ "> quoted",
27
+ `> ${RUDDER_INLINE_VISUAL_END}`,
28
+ ` ${RUDDER_INLINE_VISUAL_START}`,
29
+ " indented",
30
+ ` ${RUDDER_INLINE_VISUAL_END}`,
31
+ ].join("\n");
32
+ expect(parseRudderInlineVisualEnvelopes(body)).toEqual({ envelopes: [], issues: [] });
33
+ });
34
+ it("treats backticks in a tilde fence info string as fenced content", () => {
35
+ const body = [
36
+ "~~~text `literal`",
37
+ visual("inside tilde fence"),
38
+ "~~~",
39
+ ].join("\n");
40
+ expect(parseRudderInlineVisualEnvelopes(body)).toEqual({ envelopes: [], issues: [] });
41
+ });
42
+ it("rejects malformed, nested, empty, and unterminated envelopes", () => {
43
+ expect(parseRudderInlineVisualEnvelopes(`${RUDDER_INLINE_VISUAL_START}\n${RUDDER_INLINE_VISUAL_END}`).issues)
44
+ .toEqual([expect.objectContaining({ code: "empty", slot: 0 })]);
45
+ expect(parseRudderInlineVisualEnvelopes(`${RUDDER_INLINE_VISUAL_START}\n${RUDDER_INLINE_VISUAL_START}\nx\n${RUDDER_INLINE_VISUAL_END}`).issues)
46
+ .toEqual([expect.objectContaining({ code: "nested", slot: 0 })]);
47
+ expect(parseRudderInlineVisualEnvelopes(`${RUDDER_INLINE_VISUAL_START}\nsecret`).issues)
48
+ .toEqual([expect.objectContaining({ code: "unterminated", slot: 0 })]);
49
+ expect(parseRudderInlineVisualEnvelopes(`prefix ${RUDDER_INLINE_VISUAL_START}\nx\n${RUDDER_INLINE_VISUAL_END}`).envelopes)
50
+ .toEqual([]);
51
+ });
52
+ it("enforces count, fragment, aggregate, and visual-bearing reply byte limits", () => {
53
+ const oversizedFragment = "x".repeat(MAX_RUDDER_INLINE_VISUAL_FRAGMENT_BYTES + 1);
54
+ expect(parseRudderInlineVisualEnvelopes(visual(oversizedFragment)).issues)
55
+ .toEqual([expect.objectContaining({ code: "fragment_size_limit", slot: 0 })]);
56
+ const half = "界".repeat(Math.floor(MAX_RUDDER_INLINE_VISUAL_TOTAL_BYTES / 6));
57
+ const aggregate = [visual(half), visual(half), visual(half)].join("\n");
58
+ expect(parseRudderInlineVisualEnvelopes(aggregate).issues)
59
+ .toContainEqual(expect.objectContaining({ code: "total_size_limit" }));
60
+ const four = Array.from({ length: MAX_CODEX_INLINE_VISUALS + 1 }, () => visual()).join("\n");
61
+ const countParsed = parseRudderInlineVisualEnvelopes(four);
62
+ expect(countParsed.envelopes).toHaveLength(MAX_CODEX_INLINE_VISUALS);
63
+ expect(countParsed.issues).toContainEqual(expect.objectContaining({ code: "count_limit", slot: null }));
64
+ const oversizedReply = `${"p".repeat(MAX_RUDDER_INLINE_VISUAL_REPLY_BYTES)}\n${visual()}`;
65
+ const replyParsed = parseRudderInlineVisualEnvelopes(oversizedReply);
66
+ expect(replyParsed.envelopes).toEqual([]);
67
+ expect(replyParsed.issues).toContainEqual(expect.objectContaining({ code: "reply_size_limit", slot: 0 }));
68
+ });
69
+ it("parses canonical placements and bounded server mappings", () => {
70
+ const body = ["Before", '::rudder-inline-vis{slot="1"}', "After"].join("\n");
71
+ expect(parseRudderInlineVisualPlacements(body).placements).toEqual([
72
+ expect.objectContaining({ slot: 1, raw: '::rudder-inline-vis{slot="1"}' }),
73
+ ]);
74
+ expect(rudderInlineVisualMappingsFromStructuredPayload({
75
+ inlineVisualsV1: [
76
+ {
77
+ version: 1,
78
+ slot: 0,
79
+ file: "inline-visual-1.html",
80
+ status: "ready",
81
+ attachmentId: "attachment-1",
82
+ contentType: "text/html",
83
+ byteSize: 42,
84
+ sha256: "a".repeat(64),
85
+ },
86
+ { version: 1, slot: 1, file: "inline-visual-2.html", status: "unavailable", reason: "empty" },
87
+ ],
88
+ })).toEqual([
89
+ expect.objectContaining({ version: 1, slot: 0, status: "ready", attachmentId: "attachment-1" }),
90
+ expect.objectContaining({ version: 1, slot: 1, status: "unavailable", reason: "empty" }),
91
+ ]);
92
+ });
93
+ it("replaces accepted and rejected source ranges without exposing HTML", () => {
94
+ const body = `Before\n${visual()}\n${RUDDER_INLINE_VISUAL_START}\nsecret`;
95
+ const parsed = parseRudderInlineVisualEnvelopes(body);
96
+ const normalized = replaceRudderInlineVisualSources(body, [
97
+ ...parsed.envelopes.map((entry) => ({ ...entry, replacement: `::rudder-inline-vis{slot="${entry.slot}"}` })),
98
+ ...parsed.issues.map((entry) => ({ ...entry, replacement: entry.slot === null ? "" : `::rudder-inline-vis{slot="${entry.slot}"}` })),
99
+ ]);
100
+ expect(normalized).toContain('::rudder-inline-vis{slot="0"}');
101
+ expect(normalized).toContain('::rudder-inline-vis{slot="1"}');
102
+ expect(normalized).not.toContain("secret");
103
+ expect(normalized).not.toContain(RUDDER_INLINE_VISUAL_START);
104
+ });
105
+ it("quarantines an entire nested envelope through the matching outer end", () => {
106
+ const body = [
107
+ "Before",
108
+ RUDDER_INLINE_VISUAL_START,
109
+ "secret-a",
110
+ RUDDER_INLINE_VISUAL_START,
111
+ "secret-b",
112
+ RUDDER_INLINE_VISUAL_END,
113
+ "secret-after-inner-end",
114
+ RUDDER_INLINE_VISUAL_END,
115
+ "After",
116
+ ].join("\n");
117
+ const parsed = parseRudderInlineVisualEnvelopes(body);
118
+ expect(parsed.envelopes).toEqual([]);
119
+ expect(parsed.issues).toEqual([expect.objectContaining({ code: "nested", slot: 0 })]);
120
+ const normalized = replaceRudderInlineVisualSources(body, parsed.issues.map((entry) => ({
121
+ ...entry,
122
+ replacement: '::rudder-inline-vis{slot="0"}',
123
+ })));
124
+ expect(normalized).toBe('Before\n::rudder-inline-vis{slot="0"}\nAfter');
125
+ expect(normalized).not.toContain("secret");
126
+ });
127
+ });
128
+ describe("Rudder inline visual streaming suppression", () => {
129
+ it("suppresses a visual for every possible chunk boundary", () => {
130
+ const source = `Before\n${visual('<div id="widget">secret</div>')}\nAfter`;
131
+ for (let split = 0; split <= source.length; split += 1) {
132
+ const suppressor = createRudderInlineVisualStreamSuppressor();
133
+ const output = suppressor.push(source.slice(0, split))
134
+ + suppressor.push(source.slice(split))
135
+ + suppressor.finish();
136
+ expect(output).toBe("Before\nAfter");
137
+ expect(output).not.toContain("secret");
138
+ }
139
+ });
140
+ it("suppresses nested envelopes through the outer end at every chunk boundary", () => {
141
+ const source = [
142
+ "Before",
143
+ RUDDER_INLINE_VISUAL_START,
144
+ "secret-a",
145
+ RUDDER_INLINE_VISUAL_START,
146
+ "secret-b",
147
+ RUDDER_INLINE_VISUAL_END,
148
+ "secret-after-inner-end",
149
+ RUDDER_INLINE_VISUAL_END,
150
+ "After",
151
+ ].join("\n");
152
+ for (let split = 0; split <= source.length; split += 1) {
153
+ const suppressor = createRudderInlineVisualStreamSuppressor();
154
+ const output = suppressor.push(source.slice(0, split))
155
+ + suppressor.push(source.slice(split))
156
+ + suppressor.finish();
157
+ expect(output).toBe("Before\nAfter");
158
+ expect(output).not.toContain("secret");
159
+ expect(output).not.toContain("rudder-inline-visual");
160
+ }
161
+ });
162
+ it("drops partial opening markers and unterminated bodies on stop", () => {
163
+ for (const source of [
164
+ RUDDER_INLINE_VISUAL_START.slice(0, -2),
165
+ `${RUDDER_INLINE_VISUAL_START}\nsecret`,
166
+ ]) {
167
+ const suppressor = createRudderInlineVisualStreamSuppressor();
168
+ const output = suppressor.push(source) + suppressor.finish();
169
+ expect(output).not.toContain("secret");
170
+ expect(output).not.toContain("rudder-inline-visual");
171
+ }
172
+ });
173
+ it("does not suppress fenced documentation examples", () => {
174
+ const source = `\`\`\`text\n${visual("example")}\n\`\`\``;
175
+ const suppressor = createRudderInlineVisualStreamSuppressor();
176
+ expect(suppressor.push(source) + suppressor.finish()).toBe(source);
177
+ });
178
+ it("discards a large single-line fragment incrementally without exposing it", () => {
179
+ const suppressor = createRudderInlineVisualStreamSuppressor();
180
+ expect(suppressor.push(`${RUDDER_INLINE_VISUAL_START}\n`)).toBe("");
181
+ for (let index = 0; index < 64; index += 1) {
182
+ expect(suppressor.push("private".repeat(1024))).toBe("");
183
+ }
184
+ expect(suppressor.push(`\n${RUDDER_INLINE_VISUAL_END}\nVisible`)).toBe("Visible");
185
+ expect(suppressor.finish()).toBe("");
186
+ expect(suppressor.visibleText).toBe("Visible");
187
+ });
188
+ });
3
189
  describe("Codex inline visual directives", () => {
4
190
  it("parses exact directives with stable source ranges", () => {
5
191
  const body = [
@@ -1 +1 @@
1
- {"version":3,"file":"chat-inline-visuals.test.js","sourceRoot":"","sources":["../src/chat-inline-visuals.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-inline-visuals.test.js","sourceRoot":"","sources":["../src/chat-inline-visuals.test.ts"],"names":[],"mappings":"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"}