@machina.ai/cell-cli-core 1.50.0-rc1 → 1.51.0-rc1

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 (93) hide show
  1. package/dist/docs/changelogs/preview.md +11 -3
  2. package/dist/docs/cli/settings.md +21 -1
  3. package/dist/docs/reference/configuration.md +150 -39
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/package.json +2 -2
  8. package/dist/src/agents/browser/browserAgentDefinition.js +2 -2
  9. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
  10. package/dist/src/agents/codebase-investigator.js +2 -2
  11. package/dist/src/agents/codebase-investigator.js.map +1 -1
  12. package/dist/src/agents/skill-extraction-agent.js +2 -2
  13. package/dist/src/agents/skill-extraction-agent.js.map +1 -1
  14. package/dist/src/billing/billing.js +3 -1
  15. package/dist/src/billing/billing.js.map +1 -1
  16. package/dist/src/config/defaultModelConfigs.js +31 -25
  17. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  18. package/dist/src/config/models.d.ts +1 -0
  19. package/dist/src/config/models.js +15 -5
  20. package/dist/src/config/models.js.map +1 -1
  21. package/dist/src/config/models.test.js +15 -15
  22. package/dist/src/config/models.test.js.map +1 -1
  23. package/dist/src/core/contentGenerator.js +17 -0
  24. package/dist/src/core/contentGenerator.js.map +1 -1
  25. package/dist/src/core/contentGenerator.test.js +57 -0
  26. package/dist/src/core/contentGenerator.test.js.map +1 -1
  27. package/dist/src/core/geminiChat.test.js +25 -0
  28. package/dist/src/core/geminiChat.test.js.map +1 -1
  29. package/dist/src/generated/git-commit.d.ts +2 -2
  30. package/dist/src/generated/git-commit.js +2 -2
  31. package/dist/src/safety/built-in.js +60 -11
  32. package/dist/src/safety/built-in.js.map +1 -1
  33. package/dist/src/safety/built-in.test.js +60 -0
  34. package/dist/src/safety/built-in.test.js.map +1 -1
  35. package/dist/src/test-utils/mockWorkspaceContext.js +12 -1
  36. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -1
  37. package/dist/src/tools/at-reference-resolution.test.d.ts +6 -0
  38. package/dist/src/tools/at-reference-resolution.test.js +402 -0
  39. package/dist/src/tools/at-reference-resolution.test.js.map +1 -0
  40. package/dist/src/tools/edit.js +91 -12
  41. package/dist/src/tools/edit.js.map +1 -1
  42. package/dist/src/tools/edit.test.js +22 -1
  43. package/dist/src/tools/edit.test.js.map +1 -1
  44. package/dist/src/tools/glob.js +40 -4
  45. package/dist/src/tools/glob.js.map +1 -1
  46. package/dist/src/tools/glob.test.js +2 -1
  47. package/dist/src/tools/glob.test.js.map +1 -1
  48. package/dist/src/tools/grep.js +22 -3
  49. package/dist/src/tools/grep.js.map +1 -1
  50. package/dist/src/tools/grep.test.js +2 -2
  51. package/dist/src/tools/grep.test.js.map +1 -1
  52. package/dist/src/tools/read-file.js +16 -3
  53. package/dist/src/tools/read-file.js.map +1 -1
  54. package/dist/src/tools/read-many-files.test.js +2 -2
  55. package/dist/src/tools/read-many-files.test.js.map +1 -1
  56. package/dist/src/tools/ripGrep.js +30 -3
  57. package/dist/src/tools/ripGrep.js.map +1 -1
  58. package/dist/src/tools/ripGrep.test.js +3 -3
  59. package/dist/src/tools/ripGrep.test.js.map +1 -1
  60. package/dist/src/tools/trackerTools.test.js +1 -1
  61. package/dist/src/tools/trackerTools.test.js.map +1 -1
  62. package/dist/src/tools/write-file.js +76 -9
  63. package/dist/src/tools/write-file.js.map +1 -1
  64. package/dist/src/tools/write-file.test.js +17 -16
  65. package/dist/src/tools/write-file.test.js.map +1 -1
  66. package/dist/src/utils/editCorrector.test.js +6 -0
  67. package/dist/src/utils/editCorrector.test.js.map +1 -1
  68. package/dist/src/utils/fetch.test.js +1 -0
  69. package/dist/src/utils/fetch.test.js.map +1 -1
  70. package/dist/src/utils/historyHardening.d.ts +1 -0
  71. package/dist/src/utils/historyHardening.js +92 -14
  72. package/dist/src/utils/historyHardening.js.map +1 -1
  73. package/dist/src/utils/historyHardening.test.js +189 -1
  74. package/dist/src/utils/historyHardening.test.js.map +1 -1
  75. package/dist/src/utils/memoryImportProcessor.js +24 -3
  76. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  77. package/dist/src/utils/memoryImportProcessor.test.js +36 -0
  78. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  79. package/dist/src/utils/pathCorrector.js +5 -3
  80. package/dist/src/utils/pathCorrector.js.map +1 -1
  81. package/dist/src/utils/pathCorrector.test.js +2 -1
  82. package/dist/src/utils/pathCorrector.test.js.map +1 -1
  83. package/dist/src/utils/paths.d.ts +5 -0
  84. package/dist/src/utils/paths.js +41 -0
  85. package/dist/src/utils/paths.js.map +1 -1
  86. package/dist/src/utils/paths.test.js +15 -1
  87. package/dist/src/utils/paths.test.js.map +1 -1
  88. package/dist/src/utils/workspaceContext.js +21 -0
  89. package/dist/src/utils/workspaceContext.js.map +1 -1
  90. package/dist/src/utils/workspaceContext.test.js +40 -0
  91. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  92. package/dist/tsconfig.tsbuildinfo +1 -1
  93. package/package.json +2 -2
@@ -32,6 +32,7 @@ export declare function hardenHistory(history: HistoryTurn[], options?: Hardenin
32
32
  export declare function scrubHistory(history: HistoryTurn[]): HistoryTurn[];
33
33
  /**
34
34
  * Deep-scrubs an array of Content objects to remove non-standard properties.
35
+ * Coalesces adjacent turns of the same role to preserve Gemini API alternation invariants.
35
36
  */
36
37
  export declare function scrubContents(contents: Content[]): Content[];
37
38
  export declare function scrubPart(part: Part): Part;
@@ -28,8 +28,10 @@ export function hardenHistory(history, options = {}) {
28
28
  if (history.length === 0)
29
29
  return history;
30
30
  const sentinels = { ...DEFAULT_SENTINELS, ...options.sentinels };
31
+ // Pass 0: Strip internal thoughts and remove empty turns
32
+ const processed = stripThoughts(history);
31
33
  // Pass 1: Initial Coalesce & Empty Turn Removal
32
- let coalesced = coalesce(history);
34
+ let coalesced = coalesce(processed);
33
35
  // Pass 2: Tool Pairing & Signatures (The semantic layer)
34
36
  coalesced = pairToolsAndEnforceSignatures(coalesced, sentinels);
35
37
  // Pass 3: Structural Refinement (Hoisting & Re-ordering of tool responses)
@@ -40,6 +42,33 @@ export function hardenHistory(history, options = {}) {
40
42
  final = scrubHistory(final);
41
43
  return final;
42
44
  }
45
+ /**
46
+ * Helper to check if a Part object represents an internal thought.
47
+ */
48
+ function isInternalThought(part) {
49
+ return !!part && !!part.thought;
50
+ }
51
+ /**
52
+ * Removes parts that represent thoughts (where part.thought === true).
53
+ * Empty turns resulting from thought removal are handled in subsequent coalescing passes.
54
+ */
55
+ function stripThoughts(history) {
56
+ return history.map((turn) => {
57
+ if (!turn.content.parts)
58
+ return turn;
59
+ const hasThought = turn.content.parts.some(isInternalThought);
60
+ if (!hasThought)
61
+ return turn;
62
+ const nonThoughtParts = turn.content.parts.filter((p) => p && !isInternalThought(p));
63
+ return {
64
+ id: turn.id,
65
+ content: {
66
+ ...turn.content,
67
+ parts: nonThoughtParts,
68
+ },
69
+ };
70
+ });
71
+ }
43
72
  /**
44
73
  * Combines adjacent turns with the same role and removes empty turns.
45
74
  */
@@ -48,12 +77,16 @@ function coalesce(history) {
48
77
  for (const turn of history) {
49
78
  if (!turn.content.parts || turn.content.parts.length === 0)
50
79
  continue;
51
- const last = result[result.length - 1];
80
+ const lastIdx = result.length - 1;
81
+ const last = result[lastIdx];
52
82
  if (last && last.content.role === turn.content.role) {
53
- last.content.parts = [
54
- ...(last.content.parts || []),
55
- ...(turn.content.parts || []),
56
- ];
83
+ result[lastIdx] = {
84
+ id: last.id,
85
+ content: {
86
+ ...last.content,
87
+ parts: [...(last.content.parts || []), ...(turn.content.parts || [])],
88
+ },
89
+ };
57
90
  }
58
91
  else {
59
92
  // Shallow clone the turn and content so we don't mutate the original history array structure
@@ -269,19 +302,64 @@ function enforceRoleConstraints(history, sentinels) {
269
302
  * This ensures compatibility with strict APIs (like Vertex AI) that reject unknown fields.
270
303
  */
271
304
  export function scrubHistory(history) {
272
- return history.map((turn) => ({
273
- id: turn.id,
274
- content: scrubContents([turn.content])[0],
275
- }));
305
+ const result = [];
306
+ for (const turn of history) {
307
+ const nonThoughtParts = (turn.content.parts ?? []).filter((p) => p && !isInternalThought(p));
308
+ if (nonThoughtParts.length === 0)
309
+ continue; // Skip turns that became empty
310
+ const scrubbedParts = nonThoughtParts.map((p) => scrubPart(p));
311
+ const lastIdx = result.length - 1;
312
+ const last = result[lastIdx];
313
+ if (last && last.content.role === turn.content.role) {
314
+ // Coalesce inline with strict immutability
315
+ result[lastIdx] = {
316
+ id: last.id,
317
+ content: {
318
+ ...last.content,
319
+ parts: [...(last.content.parts || []), ...scrubbedParts],
320
+ },
321
+ };
322
+ }
323
+ else {
324
+ result.push({
325
+ id: turn.id,
326
+ content: {
327
+ role: turn.content.role,
328
+ parts: scrubbedParts,
329
+ },
330
+ });
331
+ }
332
+ }
333
+ return result;
276
334
  }
277
335
  /**
278
336
  * Deep-scrubs an array of Content objects to remove non-standard properties.
337
+ * Coalesces adjacent turns of the same role to preserve Gemini API alternation invariants.
279
338
  */
280
339
  export function scrubContents(contents) {
281
- return contents.map((content) => ({
282
- role: content.role,
283
- parts: (content.parts || []).map((p) => scrubPart(p)),
284
- }));
340
+ const result = [];
341
+ for (const content of contents) {
342
+ const nonThoughtParts = (content.parts ?? []).filter((p) => p && !isInternalThought(p));
343
+ if (nonThoughtParts.length === 0)
344
+ continue; // Skip turns that became empty after thought stripping
345
+ const scrubbedParts = nonThoughtParts.map((p) => scrubPart(p));
346
+ const lastIdx = result.length - 1;
347
+ const last = result[lastIdx];
348
+ if (last && last.role === content.role) {
349
+ // Coalesce adjacent turns of the same role inline
350
+ result[lastIdx] = {
351
+ role: last.role,
352
+ parts: [...(last.parts || []), ...scrubbedParts],
353
+ };
354
+ }
355
+ else {
356
+ result.push({
357
+ role: content.role,
358
+ parts: scrubbedParts,
359
+ });
360
+ }
361
+ }
362
+ return result;
285
363
  }
286
364
  function isThoughtPart(part) {
287
365
  return 'thoughtSignature' in part;
@@ -1 +1 @@
1
- {"version":3,"file":"historyHardening.js","sourceRoot":"","sources":["../../../src/utils/historyHardening.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2B,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAoB,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC;AAS9E,MAAM,iBAAiB,GAAG;IACxB,YAAY,EAAE,2CAA2C;IACzD,gBAAgB,EACd,0EAA0E;CAC7E,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,UAA4B,EAAE;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,MAAM,SAAS,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEjE,gDAAgD;IAChD,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAElC,yDAAyD;IACzD,SAAS,GAAG,6BAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEhE,2EAA2E;IAC3E,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE3C,gEAAgE;IAChE,IAAI,KAAK,GAAG,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEzD,wFAAwF;IACxF,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,OAAsB;IACtC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;gBACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;aAC9B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6FAA6F;YAC7F,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CACpC,OAAsB,EACtB,SAA+D;IAE/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,wDAAwD;IACxD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAEvC,gBAAgB;YAChB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;wBACtC,WAAW,CAAC,IAAI,CACd,kHAAkH,CACnH,CAAC;wBACF,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,CAAC;oBACrE,CAAC;oBACD,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,aAAa;YACb,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAwC,EAAE,CAAC;gBAExD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAa,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAa,CAAC,IAAI,IAAI,SAAS,CAAC;oBAElD,MAAM,WAAW,GACf,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM;wBACjC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE;4BAC7B,CAAC,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,CACpC,CAAC;oBAEJ,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,WAAW,CAAC,GAAG,CACb,8BAA8B,EAAE,YAAY,IAAI,2CAA2C,CAC5F,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,WAAW,CAAC,GAAG,CACb,8BAA8B,OAAO,CAAC,MAAM,8DAA8D,CAC3G,CAAC;oBAEF,IAAI,cAA2B,CAAC;oBAChC,IAAI,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACtC,cAAc,GAAG,QAAQ,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,cAAc,GAAG;4BACf,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;4BAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;yBACrC,CAAC;wBACF,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;oBACxC,CAAC;oBAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;wBACxB,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;wBAClE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;4BAChC,gBAAgB,EAAE;gCAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS;gCACrB,QAAQ,EAAE;oCACR,KAAK,EAAE,SAAS,CAAC,gBAAgB;iCAClC;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxC,wBAAwB;YACxB,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,UAAU,GAAW,EAAE,CAAC;YAC9B,MAAM,iBAAiB,GAAW,EAAE,CAAC;YAErC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;oBACvB,MAAM,EAAE,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBACrC,MAAM,OAAO,GACX,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,OAAO;wBAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAC1B,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,CAC/D,CAAC;oBAEJ,IAAI,OAAO,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,GAAG,CACb,mDAAmD,EAAE,YAAY,IAAI,uCAAuC,CAC7G,CAAC;wBACF,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC1B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,eAA4B,CAAC;gBACjC,IAAI,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACvC,eAAe,GAAG,QAAQ,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,eAAe,GAAG;wBAChB,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;wBAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;qBACtC,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/B,CAAC;gBAED,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;oBACrC,eAAe,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBACpE,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CACxB,CAAC;oBACF,MAAM,QAAQ,GAAS;wBACrB,YAAY,EAAE;4BACZ,IAAI,EAAE,IAAI,CAAC,gBAAiB,CAAC,IAAI;4BACjC,EAAE,EAAE,IAAI,CAAC,gBAAiB,CAAC,EAAE;4BAC7B,IAAI,EAAE,EAAE;yBACT;qBACF,CAAC;oBACF,IAAI,CAAC,eAAe,EAAE,CAAC;wBACrB,QAAQ,CAAC,gBAAgB,GAAG,2BAA2B,CAAC;oBAC1D,CAAC;oBACD,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAsB;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClE,MAAM,SAAS,GACb,IAAI,CAAC,OAAO,CAAC,KAAK;gBAChB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAE1C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,aAAa,GACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAChE,MAAM,UAAU,GACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAE/D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,8DAA8D;oBAC9D,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,gBAAiB,CAAC,EAAE,CAAC;wBACnC,MAAM,GAAG,GAAG,CAAC,CAAC,gBAAiB,CAAC,EAAE,CAAC;wBACnC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACpC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAEpC,6EAA6E;wBAC7E,sBAAsB;wBACtB,IAAI,IAAI,KAAK,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAC1B,IAAI,IAAI,KAAK,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC,CAAC;wBAC3B,OAAO,IAAI,GAAG,IAAI,CAAC;oBACrB,CAAC,CAAC,CAAC;oBAEH,qEAAqE;oBACrE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAsB,EACtB,SAA+D;IAE/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,qFAAqF;IACrF,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAkB,CAAC,GAAG,IAAI,CAAC,CAAC;IAExC,6BAA6B;IAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvC,WAAW,CAAC,GAAG,CACb,wFAAwF,CACzF,CAAC;QACF,MAAM,CAAC,OAAO,CAAC;YACb,EAAE,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACpD,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvD,WAAW,CAAC,GAAG,CACb,qFAAqF,CACtF,CAAC;QACF,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAClE,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;aACtC;SACF,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAmB;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACtD,CAAC,CAAC,CAAC;AACN,CAAC;AAMD,SAAS,aAAa,CAAC,IAAU;IAC/B,OAAO,kBAAkB,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpD,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3C,CAAC;IACD,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;YAC5B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;SAC7B,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,CAAC;QACD,QAAQ,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;IAC1C,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACvD,CAAC;IACD,IAAI,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxD,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;YAChC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;SACzC,CAAC;QACF,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,CAAC;QACD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC;IAC9C,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;IACnD,CAAC;IACD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;QAClC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC7D,CAAC;IAED,uEAAuE;IACvE,OAAO,QAA2B,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"historyHardening.js","sourceRoot":"","sources":["../../../src/utils/historyHardening.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { describe, it, expect } from 'vitest';
7
- import { hardenHistory, SYNTHETIC_THOUGHT_SIGNATURE, } from './historyHardening.js';
7
+ import { hardenHistory, SYNTHETIC_THOUGHT_SIGNATURE, scrubContents, scrubHistory, } from './historyHardening.js';
8
8
  import { deriveStableId } from './cryptoUtils.js';
9
9
  describe('hardenHistory', () => {
10
10
  it('should return an empty array if input is empty', () => {
@@ -313,5 +313,193 @@ describe('hardenHistory', () => {
313
313
  expect(hardened[0].content.parts[0]).not.toHaveProperty('extraProp');
314
314
  expect(hardened[0].content.parts[0]).toHaveProperty('text', 'hello');
315
315
  });
316
+ it('should completely filter out thought parts from the scrubbed history', () => {
317
+ const history = [
318
+ {
319
+ id: '1',
320
+ content: {
321
+ role: 'user',
322
+ parts: [{ text: 'User prompt' }],
323
+ },
324
+ },
325
+ {
326
+ id: '2',
327
+ content: {
328
+ role: 'model',
329
+ parts: [
330
+ {
331
+ text: 'Previous model thought...',
332
+ thought: true,
333
+ },
334
+ { text: 'Actual conversational text response' },
335
+ ],
336
+ },
337
+ },
338
+ {
339
+ id: '3',
340
+ content: {
341
+ role: 'user',
342
+ parts: [{ text: 'User follow-up prompt' }],
343
+ },
344
+ },
345
+ ];
346
+ const hardened = hardenHistory(history);
347
+ // Model turn (Turn 2, index 1 in hardened) should only contain the actual conversational text part
348
+ const modelTurn = hardened[1];
349
+ expect(modelTurn.content.parts).toHaveLength(1);
350
+ expect(modelTurn.content.parts[0]).toHaveProperty('text', 'Actual conversational text response');
351
+ expect(modelTurn.content.parts[0]).not.toHaveProperty('thought');
352
+ });
353
+ it('should remove the entire turn if it only contained thought parts and is now empty', () => {
354
+ const history = [
355
+ {
356
+ id: '1',
357
+ content: {
358
+ role: 'user',
359
+ parts: [{ text: 'User prompt' }],
360
+ },
361
+ },
362
+ {
363
+ id: '2',
364
+ content: {
365
+ role: 'model',
366
+ parts: [
367
+ {
368
+ text: 'Model is just thinking internally...',
369
+ thought: true,
370
+ },
371
+ ],
372
+ },
373
+ },
374
+ {
375
+ id: '3',
376
+ content: {
377
+ role: 'user',
378
+ parts: [{ text: 'User follow-up prompt' }],
379
+ },
380
+ },
381
+ ];
382
+ const hardened = hardenHistory(history);
383
+ // After scrubbing, Turn 2 should have 0 parts.
384
+ // The history mapping filters out empty turns, so the total turns should coalesce and reduce to 1 coalesced user turn.
385
+ // Let's inspect the hardened array:
386
+ // User prompt (Turn 1) + User follow-up prompt (Turn 3) will be coalesced into 1 User turn.
387
+ expect(hardened).toHaveLength(1);
388
+ expect(hardened[0].content.role).toBe('user');
389
+ expect(hardened[0].content.parts).toEqual([
390
+ { text: 'User prompt' },
391
+ { text: 'User follow-up prompt' },
392
+ ]);
393
+ });
394
+ });
395
+ describe('scrubContents', () => {
396
+ it('should scrub non-standard fields from parts', () => {
397
+ const contents = [
398
+ {
399
+ role: 'user',
400
+ parts: [{ text: 'Hello', customField: 'ignored' }],
401
+ },
402
+ ];
403
+ const scrubbed = scrubContents(contents);
404
+ expect(scrubbed).toEqual([
405
+ {
406
+ role: 'user',
407
+ parts: [{ text: 'Hello' }],
408
+ },
409
+ ]);
410
+ });
411
+ it('should filter out internal thought parts', () => {
412
+ const contents = [
413
+ {
414
+ role: 'model',
415
+ parts: [
416
+ { text: 'thought', thought: true },
417
+ { text: 'response' },
418
+ ],
419
+ },
420
+ ];
421
+ const scrubbed = scrubContents(contents);
422
+ expect(scrubbed).toEqual([
423
+ {
424
+ role: 'model',
425
+ parts: [{ text: 'response' }],
426
+ },
427
+ ]);
428
+ });
429
+ it('should completely filter out Content objects that have no parts left after thought scrubbing and coalesce adjacent turns of the same role', () => {
430
+ const contents = [
431
+ {
432
+ role: 'user',
433
+ parts: [{ text: 'Hello' }],
434
+ },
435
+ {
436
+ role: 'model',
437
+ parts: [{ text: 'thought', thought: true }],
438
+ },
439
+ {
440
+ role: 'user',
441
+ parts: [{ text: 'How are you?' }],
442
+ },
443
+ ];
444
+ const scrubbed = scrubContents(contents);
445
+ expect(scrubbed).toEqual([
446
+ {
447
+ role: 'user',
448
+ parts: [{ text: 'Hello' }, { text: 'How are you?' }],
449
+ },
450
+ ]);
451
+ });
452
+ it('should coalesce adjacent turns of the same role when no filtration occurs', () => {
453
+ const contents = [
454
+ {
455
+ role: 'user',
456
+ parts: [{ text: 'Part 1' }],
457
+ },
458
+ {
459
+ role: 'user',
460
+ parts: [{ text: 'Part 2' }],
461
+ },
462
+ ];
463
+ const scrubbed = scrubContents(contents);
464
+ expect(scrubbed).toEqual([
465
+ {
466
+ role: 'user',
467
+ parts: [{ text: 'Part 1' }, { text: 'Part 2' }],
468
+ },
469
+ ]);
470
+ });
471
+ });
472
+ describe('scrubHistory', () => {
473
+ it('should scrub non-standard fields and filter empty turns in history', () => {
474
+ const history = [
475
+ {
476
+ id: '1',
477
+ content: {
478
+ role: 'user',
479
+ parts: [{ text: 'Hello', customField: 'ignored' }],
480
+ },
481
+ },
482
+ {
483
+ id: '2',
484
+ content: {
485
+ role: 'model',
486
+ parts: [{ text: 'thought', thought: true }],
487
+ },
488
+ },
489
+ {
490
+ id: '3',
491
+ content: {
492
+ role: 'user',
493
+ parts: [{ text: 'World' }],
494
+ },
495
+ },
496
+ ];
497
+ const scrubbed = scrubHistory(history);
498
+ expect(scrubbed.length).toBe(1); // Since user turns are coalesced (Turn 1 + Turn 3) and Turn 2 is removed because it has 0 parts
499
+ expect(scrubbed[0].content.parts).toEqual([
500
+ { text: 'Hello' },
501
+ { text: 'World' },
502
+ ]);
503
+ });
316
504
  });
317
505
  //# sourceMappingURL=historyHardening.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"historyHardening.test.js","sourceRoot":"","sources":["../../../src/utils/historyHardening.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;SACnE,CAAC;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE;YACjB,EAAE,IAAI,EAAE,OAAO,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gDAAgD;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAC/F,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;iBACxD;aACF;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL;4BACE,gBAAgB,EAAE;gCAChB,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;6BACvB;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAC9B,kBAAkB,EAClB,2BAA2B,CAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;SACjE,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;YAChE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;SACnE,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE;YACtC,SAAS,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL;4BACE,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;4BACvD,gBAAgB,EAAE,KAAK;yBACxB;wBACD,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;qBAC5D;iBACF;aACF;YACD,gEAAgE;SACjE,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE;YACtC,SAAS,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE;SACzC,CAAC,CAAC;QAEH,+FAA+F;QAC/F,4EAA4E;QAC5E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7D,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7D,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+HAA+H,EAAE,GAAG,EAAE;QACvI,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL;4BACE,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;4BACvD,gBAAgB,EAAE,KAAK;yBACxB;wBACD,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;qBAC5D;iBACF;aACF;YACD,0CAA0C;YAC1C;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL;4BACE,gBAAgB,EAAE;gCAChB,EAAE,EAAE,QAAQ;gCACZ,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;6BACvB;yBACF;qBACF;iBACF;aACF;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL;4BACE,gBAAgB,EAAE;gCAChB,EAAE,EAAE,QAAQ;gCACZ,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;6BACvB;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,6FAA6F;QAC7F,+FAA+F;QAC/F,gEAAgE;QAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAExC,mDAAmD;QACnD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEvD,0EAA0E;QAC1E,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAClE,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAClE,QAAQ,CACT,CAAC;QAEF,mCAAmC;QACnC,MAAM,CACJ,gBAAgB,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAC9D,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,MAAM,CACJ,gBAAgB,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAC9D,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;YAChE;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL,EAAE,IAAI,EAAE,cAAc,EAAE;wBACxB;4BACE,gBAAgB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;yBAClE;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,kEAAkE;QAClE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;QACzE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,CACH,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAA6C;aACrE,gBAAgB,CACpB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAC1E,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,OAAO,GAAkB;YAC7B;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;aAChE;YACD,mDAAmD;YACnD;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE;aACnE;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL;4BACE,gBAAgB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;yBAClE;wBACD;4BACE,gBAAgB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;yBAClE;wBACD;4BACE,gBAAgB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;yBAClE;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC;QAErF,kEAAkE;QAClE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CACH,KAAkD,CAAC,gBAAgB,CACrE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEpC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CACH,KAAkD,CAAC,gBAAgB,CACrE,CAAC,aAAa,EAAE,CAAC;QAElB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CACH,KAAkD,CAAC,gBAAgB,CACrE,CAAC,aAAa,EAAE,CAAC;QAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,OAAO,GAAkB;YAC7B,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YAClE;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL;4BACE,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;4BACnD,gBAAgB,EAAE,KAAK;yBACxB;wBACD,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;qBACxD;iBACF;aACF;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL,EAAE,IAAI,EAAE,WAAW,EAAE;wBACrB,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;wBAC/D,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;qBAChE;iBACF;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElD,gDAAgD;QAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAkB;YAC7B;gBACE,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,mBAAmB;yBACZ;qBACrB;iBACF;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"historyHardening.test.js","sourceRoot":"","sources":["../../../src/utils/historyHardening.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as fs from 'node:fs/promises';
7
7
  import * as path from 'node:path';
8
- import { isSubpath } from './paths.js';
8
+ import { isSubpath, resolveToRealPath } from './paths.js';
9
9
  import { debugLogger } from './debugLogger.js';
10
10
  // Simple console logger for import processing
11
11
  const logger = {
@@ -276,7 +276,28 @@ export function validateImportPath(importPath, basePath, allowedDirectories) {
276
276
  if (/^(file|https?):\/\//.test(importPath)) {
277
277
  return false;
278
278
  }
279
- const resolvedPath = path.resolve(basePath, importPath);
280
- return allowedDirectories.some((allowedDir) => isSubpath(allowedDir, resolvedPath));
279
+ let resolvedPath;
280
+ try {
281
+ // Canonicalize the path on the actual physical disk to resolve symlinks
282
+ resolvedPath = resolveToRealPath(path.resolve(basePath, importPath));
283
+ }
284
+ catch {
285
+ // If path resolution fails (e.g., infinite recursion or invalid path), fail-closed and reject it
286
+ return false;
287
+ }
288
+ const realAllowedDirs = allowedDirectories
289
+ .map((dir) => {
290
+ const trimmed = dir.trim();
291
+ if (!trimmed)
292
+ return null;
293
+ try {
294
+ return resolveToRealPath(trimmed);
295
+ }
296
+ catch {
297
+ return null;
298
+ }
299
+ })
300
+ .filter((dir) => dir !== null);
301
+ return realAllowedDirs.some((realAllowedDir) => isSubpath(realAllowedDir, resolvedPath));
281
302
  }
282
303
  //# sourceMappingURL=memoryImportProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryImportProcessor.js","sourceRoot":"","sources":["../../../src/utils/memoryImportProcessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,8CAA8C;AAC9C,MAAM,MAAM,GAAG;IACb,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CACxB,WAAW,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,IAAI,CAAC;IACzD,8DAA8D;IAC9D,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CACvB,WAAW,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC;IACvD,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CACxB,WAAW,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,IAAI,CAAC;CAC1D,CAAC;AA4BF,gFAAgF;AAChF,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,kBAAqC,CAAC,MAAM,CAAC;IAE7C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,+DAA+D;YAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,sEAAsE;gBACtE,sCAAsC;gBACtC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5B,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,0BAA0B;YAC1B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,qCAAqC;AACrC,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,SAAS,IAAI,GAAG;QAChB,OAAQ,GAA4B,CAAC,OAAO,KAAK,QAAQ,CAC1D,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE;;;GAGG;AACH,SAAS,WAAW,CAClB,OAAe;IAEf,MAAM,OAAO,GAAyD,EAAE,CAAC;IACzE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAE3B,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;QACf,qBAAqB;QACrB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM;QAEpB,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OACE,CAAC,GAAG,GAAG;YACP,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;YACnB,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EACnB,CAAC;YACD,CAAC,EAAE,CAAC;QACN,CAAC;QAED,wCAAwC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3C,mDAAmD;QACnD,IACE,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG;gBACpB,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG;gBACrB,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;QACL,CAAC;QAED,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CACL,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM;QACpC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAC5B,CAAC,CAAC,MAAM;AACX,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,oDAAoD;IACpD,8EAA8E;IAC9E,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAClC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,QAAgB,EAChB,YAAqB,KAAK,EAC1B,cAA2B;IACzB,cAAc,EAAE,IAAI,GAAG,EAAE;IACzB,QAAQ,EAAE,CAAC;IACX,YAAY,EAAE,CAAC;CAChB,EACD,WAAoB,EACpB,eAAgC,MAAM,EACtC,kBAAqC,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CACT,yBAAyB,WAAW,CAAC,QAAQ,wCAAwC,CACtF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,IAAI,SAAS,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC5B,0FAA0F;QAC1F,MAAM,SAAS,GAA6C,EAAE,CAAC;QAC/D,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,wCAAwC;QACxC,KAAK,UAAU,WAAW,CACxB,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,KAAa;YAEb,0DAA0D;YAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEhD,4BAA4B;YAC5B,IAAI,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;gBAAE,OAAO;YAE/C,oEAAoE;YACpE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAEnC,iCAAiC;YACjC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAE/D,4BAA4B;YAC5B,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAEzC,+DAA+D;YAC/D,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE/C,+BAA+B;gBAC/B,IACE,WAAW,CAAC,IAAI,CACd,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAC3B,KAAK,IAAI,WAAW,IAAI,KAAK,GAAG,SAAS,CAC5C,EACD,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,uBAAuB;gBACvB,IACE,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAClE,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEpD,4BAA4B;gBAC5B,IAAI,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBAAE,SAAS;gBAErD,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAE7D,4BAA4B;oBAC5B,MAAM,WAAW,CACf,eAAe,EACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtB,kBAAkB,EAClB,KAAK,GAAG,CAAC,CACV,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CACT,oBAAoB,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACvF,CAAC;oBACJ,CAAC;oBACD,gDAAgD;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAClD,CAAC;QACF,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAElD,sDAAsD;QACtD,MAAM,WAAW,GAAG,SAAS;aAC1B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,aAAa,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,IAAI,MAAM,CACjF;aACA,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,mCAAmC;SACpE,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEzC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;QAC5D,iCAAiC;QACjC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,SAAS,GAAG,IAAI,CAAC;QAEjB,+BAA+B;QAC/B,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,yDAAyD;QACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,uBAAuB,UAAU,+BAA+B,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,gCAAgC,UAAU,MAAM,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,oDAAoD;YACpD,MAAM,cAAc,GAAgB;gBAClC,GAAG,WAAW;gBACd,cAAc,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;gBACnD,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,CAAC;gBAC1C,WAAW,EAAE,QAAQ;aACtB,CAAC;YACF,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtB,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,CAChB,CAAC;YACF,MAAM,IAAI,uBAAuB,UAAU,SAAS,QAAQ,CAAC,OAAO,8BAA8B,UAAU,MAAM,CAAC;YACnH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,OAAO,GAAG,eAAe,CAAC;YAC9B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YACxB,CAAC;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,GAAG,GAAG,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,oBAAoB,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,uBAAuB,UAAU,MAAM,OAAO,MAAM,CAAC;QACjE,CAAC;IACH,CAAC;IACD,iDAAiD;IACjD,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE;YACV,IAAI,EAAE,WAAW,CAAC,WAAW,IAAI,SAAS;YAC1C,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SAClD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,QAAgB,EAChB,kBAA4B;IAE5B,cAAc;IACd,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5C,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memoryImportProcessor.js","sourceRoot":"","sources":["../../../src/utils/memoryImportProcessor.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
7
  import * as fs from 'node:fs/promises';
8
+ import * as fsSync from 'node:fs';
9
+ import * as os from 'node:os';
8
10
  import * as path from 'node:path';
9
11
  import { marked } from 'marked';
10
12
  import { processImports, validateImportPath } from './memoryImportProcessor.js';
@@ -576,6 +578,40 @@ describe('memoryImportProcessor', () => {
576
578
  const dotPath = path.join('.', '..', path.basename(allowedPath), 'file.md');
577
579
  expect(validateImportPath(dotPath, basePath, [allowedPath])).toBe(true);
578
580
  });
581
+ it('should reject paths that escape allowed directories via symbolic links', () => {
582
+ const tmpDir = fsSync.realpathSync(os.tmpdir());
583
+ const testRoot = fsSync.mkdtempSync(path.join(tmpDir, 'gemini-test-'));
584
+ const allowedDir = path.join(testRoot, 'allowed');
585
+ const outsideDir = path.join(testRoot, 'outside');
586
+ const symlinkDir = path.join(allowedDir, 'sym_outside');
587
+ try {
588
+ // Create real directories and files on disk
589
+ fsSync.mkdirSync(allowedDir, { recursive: true });
590
+ fsSync.mkdirSync(outsideDir, { recursive: true });
591
+ fsSync.writeFileSync(path.join(outsideDir, 'sensitive.md'), 'secret');
592
+ // Create a symbolic link pointing outside the allowed directory
593
+ try {
594
+ fsSync.symlinkSync(outsideDir, symlinkDir, 'dir');
595
+ }
596
+ catch (err) {
597
+ if (process.platform === 'win32' &&
598
+ err &&
599
+ typeof err === 'object' &&
600
+ 'code' in err &&
601
+ err.code === 'EPERM') {
602
+ // Skip the test if the user lacks symlink creation privileges on Windows
603
+ return;
604
+ }
605
+ throw err;
606
+ }
607
+ const importPath = 'sym_outside/sensitive.md';
608
+ expect(validateImportPath(importPath, allowedDir, [allowedDir])).toBe(false);
609
+ }
610
+ finally {
611
+ // Cleanup
612
+ fsSync.rmSync(testRoot, { recursive: true, force: true });
613
+ }
614
+ });
579
615
  });
580
616
  });
581
617
  //# sourceMappingURL=memoryImportProcessor.test.js.map