langsmith 0.5.16 → 0.5.18

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 (138) hide show
  1. package/dist/anonymizer/index.cjs +46 -20
  2. package/dist/anonymizer/index.js +46 -17
  3. package/dist/client.cjs +112 -143
  4. package/dist/client.d.ts +19 -40
  5. package/dist/client.js +112 -143
  6. package/dist/experimental/anthropic/index.cjs +4 -1
  7. package/dist/experimental/anthropic/index.js +4 -1
  8. package/dist/experimental/vercel/index.cjs +1 -0
  9. package/dist/experimental/vercel/index.js +1 -0
  10. package/dist/experimental/vercel/middleware.cjs +2 -0
  11. package/dist/experimental/vercel/middleware.js +2 -0
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/schemas.d.ts +1 -3
  16. package/dist/utils/chalk/source/index.cjs +187 -0
  17. package/dist/utils/chalk/source/index.d.ts +19 -0
  18. package/dist/utils/chalk/source/index.js +173 -0
  19. package/dist/utils/chalk/source/utilities.cjs +35 -0
  20. package/dist/utils/chalk/source/utilities.d.ts +2 -0
  21. package/dist/utils/chalk/source/utilities.js +31 -0
  22. package/dist/utils/chalk/source/vendor/ansi-styles/index.cjs +193 -0
  23. package/dist/utils/chalk/source/vendor/ansi-styles/index.d.ts +58 -0
  24. package/dist/utils/chalk/source/vendor/ansi-styles/index.js +190 -0
  25. package/dist/utils/chalk/source/vendor/supports-color/browser.cjs +31 -0
  26. package/dist/utils/chalk/source/vendor/supports-color/browser.d.ts +15 -0
  27. package/dist/utils/chalk/source/vendor/supports-color/browser.js +29 -0
  28. package/dist/utils/chalk/source/vendor/supports-color/index.cjs +155 -0
  29. package/dist/utils/chalk/source/vendor/supports-color/index.d.ts +21 -0
  30. package/dist/utils/chalk/source/vendor/supports-color/index.js +149 -0
  31. package/dist/utils/console-table-printer/index.cjs +11 -0
  32. package/dist/utils/console-table-printer/index.d.ts +4 -0
  33. package/dist/utils/console-table-printer/index.js +3 -0
  34. package/dist/utils/console-table-printer/src/console-table-printer.cjs +42 -0
  35. package/dist/utils/console-table-printer/src/console-table-printer.d.ts +14 -0
  36. package/dist/utils/console-table-printer/src/console-table-printer.js +36 -0
  37. package/dist/utils/console-table-printer/src/internalTable/input-converter.cjs +25 -0
  38. package/dist/utils/console-table-printer/src/internalTable/input-converter.d.ts +6 -0
  39. package/dist/utils/console-table-printer/src/internalTable/input-converter.js +20 -0
  40. package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.cjs +142 -0
  41. package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.d.ts +6 -0
  42. package/dist/utils/console-table-printer/src/internalTable/internal-table-printer.js +133 -0
  43. package/dist/utils/console-table-printer/src/internalTable/internal-table.cjs +186 -0
  44. package/dist/utils/console-table-printer/src/internalTable/internal-table.d.ts +31 -0
  45. package/dist/utils/console-table-printer/src/internalTable/internal-table.js +184 -0
  46. package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.cjs +53 -0
  47. package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.d.ts +3 -0
  48. package/dist/utils/console-table-printer/src/internalTable/table-pre-processors.js +48 -0
  49. package/dist/utils/console-table-printer/src/models/common.cjs +2 -0
  50. package/dist/utils/console-table-printer/src/models/common.d.ts +14 -0
  51. package/dist/utils/console-table-printer/src/models/common.js +1 -0
  52. package/dist/utils/console-table-printer/src/models/external-table.cjs +2 -0
  53. package/dist/utils/console-table-printer/src/models/external-table.d.ts +99 -0
  54. package/dist/utils/console-table-printer/src/models/external-table.js +1 -0
  55. package/dist/utils/console-table-printer/src/models/internal-table.cjs +2 -0
  56. package/dist/utils/console-table-printer/src/models/internal-table.d.ts +24 -0
  57. package/dist/utils/console-table-printer/src/models/internal-table.js +1 -0
  58. package/dist/utils/console-table-printer/src/utils/colored-console-line.cjs +43 -0
  59. package/dist/utils/console-table-printer/src/utils/colored-console-line.d.ts +12 -0
  60. package/dist/utils/console-table-printer/src/utils/colored-console-line.js +39 -0
  61. package/dist/utils/console-table-printer/src/utils/console-utils.cjs +23 -0
  62. package/dist/utils/console-table-printer/src/utils/console-utils.d.ts +3 -0
  63. package/dist/utils/console-table-printer/src/utils/console-utils.js +18 -0
  64. package/dist/utils/console-table-printer/src/utils/string-utils.cjs +68 -0
  65. package/dist/utils/console-table-printer/src/utils/string-utils.d.ts +4 -0
  66. package/dist/utils/console-table-printer/src/utils/string-utils.js +62 -0
  67. package/dist/utils/console-table-printer/src/utils/table-constants.cjs +55 -0
  68. package/dist/utils/console-table-printer/src/utils/table-constants.d.ts +11 -0
  69. package/dist/utils/console-table-printer/src/utils/table-constants.js +52 -0
  70. package/dist/utils/console-table-printer/src/utils/table-helpers.cjs +101 -0
  71. package/dist/utils/console-table-printer/src/utils/table-helpers.d.ts +29 -0
  72. package/dist/utils/console-table-printer/src/utils/table-helpers.js +88 -0
  73. package/dist/utils/jestlike/reporter.cjs +23 -23
  74. package/dist/utils/jestlike/reporter.js +2 -2
  75. package/dist/utils/prompts.cjs +0 -10
  76. package/dist/utils/prompts.d.ts +0 -1
  77. package/dist/utils/prompts.js +0 -9
  78. package/dist/utils/simple-wcswidth/index.cjs +10 -0
  79. package/dist/utils/simple-wcswidth/index.d.ts +3 -0
  80. package/dist/utils/simple-wcswidth/index.js +3 -0
  81. package/dist/utils/simple-wcswidth/src/binary-search.cjs +24 -0
  82. package/dist/utils/simple-wcswidth/src/binary-search.d.ts +3 -0
  83. package/dist/utils/simple-wcswidth/src/binary-search.js +22 -0
  84. package/dist/utils/simple-wcswidth/src/models.cjs +2 -0
  85. package/dist/utils/simple-wcswidth/src/models.d.ts +4 -0
  86. package/dist/utils/simple-wcswidth/src/models.js +1 -0
  87. package/dist/utils/simple-wcswidth/src/non-spacing-chars.cjs +149 -0
  88. package/dist/utils/simple-wcswidth/src/non-spacing-chars.d.ts +3 -0
  89. package/dist/utils/simple-wcswidth/src/non-spacing-chars.js +147 -0
  90. package/dist/utils/simple-wcswidth/src/wcswidth.cjs +20 -0
  91. package/dist/utils/simple-wcswidth/src/wcswidth.d.ts +2 -0
  92. package/dist/utils/simple-wcswidth/src/wcswidth.js +15 -0
  93. package/dist/utils/simple-wcswidth/src/wcwidth.cjs +67 -0
  94. package/dist/utils/simple-wcswidth/src/wcwidth.d.ts +2 -0
  95. package/dist/utils/simple-wcswidth/src/wcwidth.js +62 -0
  96. package/package.json +5 -7
  97. package/dist/utils/lodash/assignValue.cjs +0 -29
  98. package/dist/utils/lodash/assignValue.d.ts +0 -10
  99. package/dist/utils/lodash/assignValue.js +0 -24
  100. package/dist/utils/lodash/baseAssignValue.cjs +0 -25
  101. package/dist/utils/lodash/baseAssignValue.d.ts +0 -11
  102. package/dist/utils/lodash/baseAssignValue.js +0 -23
  103. package/dist/utils/lodash/baseSet.cjs +0 -50
  104. package/dist/utils/lodash/baseSet.d.ts +0 -12
  105. package/dist/utils/lodash/baseSet.js +0 -45
  106. package/dist/utils/lodash/castPath.cjs +0 -22
  107. package/dist/utils/lodash/castPath.d.ts +0 -10
  108. package/dist/utils/lodash/castPath.js +0 -17
  109. package/dist/utils/lodash/eq.cjs +0 -36
  110. package/dist/utils/lodash/eq.d.ts +0 -32
  111. package/dist/utils/lodash/eq.js +0 -34
  112. package/dist/utils/lodash/getTag.cjs +0 -18
  113. package/dist/utils/lodash/getTag.d.ts +0 -9
  114. package/dist/utils/lodash/getTag.js +0 -16
  115. package/dist/utils/lodash/isIndex.cjs +0 -25
  116. package/dist/utils/lodash/isIndex.d.ts +0 -10
  117. package/dist/utils/lodash/isIndex.js +0 -23
  118. package/dist/utils/lodash/isKey.cjs +0 -34
  119. package/dist/utils/lodash/isKey.d.ts +0 -10
  120. package/dist/utils/lodash/isKey.js +0 -29
  121. package/dist/utils/lodash/isObject.cjs +0 -31
  122. package/dist/utils/lodash/isObject.d.ts +0 -25
  123. package/dist/utils/lodash/isObject.js +0 -29
  124. package/dist/utils/lodash/isSymbol.cjs +0 -28
  125. package/dist/utils/lodash/isSymbol.d.ts +0 -17
  126. package/dist/utils/lodash/isSymbol.js +0 -23
  127. package/dist/utils/lodash/memoizeCapped.cjs +0 -65
  128. package/dist/utils/lodash/memoizeCapped.d.ts +0 -50
  129. package/dist/utils/lodash/memoizeCapped.js +0 -63
  130. package/dist/utils/lodash/set.cjs +0 -41
  131. package/dist/utils/lodash/set.d.ts +0 -32
  132. package/dist/utils/lodash/set.js +0 -36
  133. package/dist/utils/lodash/stringToPath.cjs +0 -49
  134. package/dist/utils/lodash/stringToPath.d.ts +0 -12
  135. package/dist/utils/lodash/stringToPath.js +0 -44
  136. package/dist/utils/lodash/toKey.cjs +0 -24
  137. package/dist/utils/lodash/toKey.d.ts +0 -9
  138. package/dist/utils/lodash/toKey.js +0 -19
@@ -1,37 +1,50 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createAnonymizer = createAnonymizer;
7
- const set_js_1 = __importDefault(require("../utils/lodash/set.cjs"));
8
4
  function extractStringNodes(data, options) {
9
5
  const parsedOptions = { ...options, maxDepth: options.maxDepth ?? 10 };
10
- const queue = [
11
- [data, 0, ""],
12
- ];
6
+ const queue = [[data, 0, "", null, ""]];
7
+ let nextId = 0;
13
8
  const result = [];
14
9
  while (queue.length > 0) {
15
10
  const task = queue.shift();
16
11
  if (task == null)
17
12
  continue;
18
- const [value, depth, path] = task;
19
- if (typeof value === "object" && value != null) {
20
- if (depth >= parsedOptions.maxDepth)
21
- continue;
22
- for (const [key, nestedValue] of Object.entries(value)) {
23
- queue.push([nestedValue, depth + 1, path ? `${path}.${key}` : key]);
24
- }
13
+ const [value, depth, path, parent, key] = task;
14
+ if (typeof value === "string") {
15
+ result.push({
16
+ value,
17
+ path,
18
+ parent: parent,
19
+ key,
20
+ _id: nextId++,
21
+ });
25
22
  }
26
23
  else if (Array.isArray(value)) {
27
24
  if (depth >= parsedOptions.maxDepth)
28
25
  continue;
29
26
  for (let i = 0; i < value.length; i++) {
30
- queue.push([value[i], depth + 1, `${path}[${i}]`]);
27
+ queue.push([
28
+ value[i],
29
+ depth + 1,
30
+ `${path}[${i}]`,
31
+ value,
32
+ String(i),
33
+ ]);
31
34
  }
32
35
  }
33
- else if (typeof value === "string") {
34
- result.push({ value, path });
36
+ else if (typeof value === "object" && value != null) {
37
+ if (depth >= parsedOptions.maxDepth)
38
+ continue;
39
+ for (const [k, nestedValue] of Object.entries(value)) {
40
+ queue.push([
41
+ nestedValue,
42
+ depth + 1,
43
+ path ? `${path}.${k}` : k,
44
+ value,
45
+ k,
46
+ ]);
47
+ }
35
48
  }
36
49
  }
37
50
  return result;
@@ -69,7 +82,7 @@ function createAnonymizer(replacer, options) {
69
82
  return result;
70
83
  }, item.value);
71
84
  if (newValue !== item.value) {
72
- memo.push({ value: newValue, path: item.path });
85
+ memo.push({ ...item, value: newValue });
73
86
  }
74
87
  return memo;
75
88
  }, []);
@@ -81,19 +94,32 @@ function createAnonymizer(replacer, options) {
81
94
  maskNodes: (nodes) => nodes.reduce((memo, item) => {
82
95
  const newValue = replacer(item.value, item.path);
83
96
  if (newValue !== item.value) {
84
- memo.push({ value: newValue, path: item.path });
97
+ memo.push({ ...item, value: newValue });
85
98
  }
86
99
  return memo;
87
100
  }, []),
88
101
  }
89
102
  : replacer;
103
+ // Build a lookup from _id to internal node for direct write-back.
104
+ const nodesById = new Map();
105
+ for (const node of nodes) {
106
+ nodesById.set(node._id, node);
107
+ }
90
108
  const toUpdate = processor.maskNodes(nodes);
91
109
  for (const node of toUpdate) {
92
110
  if (node.path === "") {
93
111
  mutateValue = node.value;
94
112
  }
95
113
  else {
96
- (0, set_js_1.default)(mutateValue, node.path, node.value);
114
+ // Match by _id if available (built-in replacers propagate it from
115
+ // the input nodes), otherwise fall back to path matching.
116
+ const asInternal = node;
117
+ const internal = asInternal._id !== undefined
118
+ ? nodesById.get(asInternal._id)
119
+ : nodes.find((n) => n.path === node.path);
120
+ if (internal) {
121
+ internal.parent[internal.key] = node.value;
122
+ }
97
123
  }
98
124
  }
99
125
  return mutateValue;
@@ -1,31 +1,47 @@
1
- import set from "../utils/lodash/set.js";
2
1
  function extractStringNodes(data, options) {
3
2
  const parsedOptions = { ...options, maxDepth: options.maxDepth ?? 10 };
4
- const queue = [
5
- [data, 0, ""],
6
- ];
3
+ const queue = [[data, 0, "", null, ""]];
4
+ let nextId = 0;
7
5
  const result = [];
8
6
  while (queue.length > 0) {
9
7
  const task = queue.shift();
10
8
  if (task == null)
11
9
  continue;
12
- const [value, depth, path] = task;
13
- if (typeof value === "object" && value != null) {
14
- if (depth >= parsedOptions.maxDepth)
15
- continue;
16
- for (const [key, nestedValue] of Object.entries(value)) {
17
- queue.push([nestedValue, depth + 1, path ? `${path}.${key}` : key]);
18
- }
10
+ const [value, depth, path, parent, key] = task;
11
+ if (typeof value === "string") {
12
+ result.push({
13
+ value,
14
+ path,
15
+ parent: parent,
16
+ key,
17
+ _id: nextId++,
18
+ });
19
19
  }
20
20
  else if (Array.isArray(value)) {
21
21
  if (depth >= parsedOptions.maxDepth)
22
22
  continue;
23
23
  for (let i = 0; i < value.length; i++) {
24
- queue.push([value[i], depth + 1, `${path}[${i}]`]);
24
+ queue.push([
25
+ value[i],
26
+ depth + 1,
27
+ `${path}[${i}]`,
28
+ value,
29
+ String(i),
30
+ ]);
25
31
  }
26
32
  }
27
- else if (typeof value === "string") {
28
- result.push({ value, path });
33
+ else if (typeof value === "object" && value != null) {
34
+ if (depth >= parsedOptions.maxDepth)
35
+ continue;
36
+ for (const [k, nestedValue] of Object.entries(value)) {
37
+ queue.push([
38
+ nestedValue,
39
+ depth + 1,
40
+ path ? `${path}.${k}` : k,
41
+ value,
42
+ k,
43
+ ]);
44
+ }
29
45
  }
30
46
  }
31
47
  return result;
@@ -63,7 +79,7 @@ export function createAnonymizer(replacer, options) {
63
79
  return result;
64
80
  }, item.value);
65
81
  if (newValue !== item.value) {
66
- memo.push({ value: newValue, path: item.path });
82
+ memo.push({ ...item, value: newValue });
67
83
  }
68
84
  return memo;
69
85
  }, []);
@@ -75,19 +91,32 @@ export function createAnonymizer(replacer, options) {
75
91
  maskNodes: (nodes) => nodes.reduce((memo, item) => {
76
92
  const newValue = replacer(item.value, item.path);
77
93
  if (newValue !== item.value) {
78
- memo.push({ value: newValue, path: item.path });
94
+ memo.push({ ...item, value: newValue });
79
95
  }
80
96
  return memo;
81
97
  }, []),
82
98
  }
83
99
  : replacer;
100
+ // Build a lookup from _id to internal node for direct write-back.
101
+ const nodesById = new Map();
102
+ for (const node of nodes) {
103
+ nodesById.set(node._id, node);
104
+ }
84
105
  const toUpdate = processor.maskNodes(nodes);
85
106
  for (const node of toUpdate) {
86
107
  if (node.path === "") {
87
108
  mutateValue = node.value;
88
109
  }
89
110
  else {
90
- set(mutateValue, node.path, node.value);
111
+ // Match by _id if available (built-in replacers propagate it from
112
+ // the input nodes), otherwise fall back to path matching.
113
+ const asInternal = node;
114
+ const internal = asInternal._id !== undefined
115
+ ? nodesById.get(asInternal._id)
116
+ : nodes.find((n) => n.path === node.path);
117
+ if (internal) {
118
+ internal.parent[internal.key] = node.value;
119
+ }
91
120
  }
92
121
  }
93
122
  return mutateValue;