@rasputin-ai/node 0.5.2 → 0.5.3
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.
- package/README.md +1 -1
- package/dist/execution-recorder/encode-frozen.d.ts.map +1 -1
- package/dist/execution-recorder/execution-recorder-types.d.ts +1 -1
- package/dist/execution-recorder/execution-recorder-types.d.ts.map +1 -1
- package/dist/execution-recorder/value-freeze.d.ts.map +1 -1
- package/dist/index.js +85 -33
- package/dist/instrument/bun.js +1 -1
- package/dist/instrument/node.js +1 -1
- package/dist/internal.js +84 -32
- package/dist/sdk-meta.d.ts +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -183,7 +183,7 @@ Defaults work for most apps. Customize to exclude noisy sources, redact fields,
|
|
|
183
183
|
| `maxObjectKeys` | `30` | Maximum properties retained from one object |
|
|
184
184
|
| `maxArrayElements` | `20` | Maximum items retained from one array, map, or set |
|
|
185
185
|
| `maxStringLength` | `500` | Maximum characters retained from one string |
|
|
186
|
-
| `maxSerializedValueBytes` | `
|
|
186
|
+
| `maxSerializedValueBytes` | `16 KiB` | Maximum retained size of one captured value |
|
|
187
187
|
| `runtimeStateTargetBytes` | `256 KiB` | Soft size goal for the snapshot sent with an error; extra reconstruction data is dropped first |
|
|
188
188
|
| `maxRuntimeStateBytes` | `512 KiB` | Hard size limit for that snapshot; values are dropped before call history |
|
|
189
189
|
| `redactKeys` | `[]` | Additional property names to redact (case- and separator-insensitive, trailing digits ignored) |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-frozen.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/encode-frozen.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,OAAO;;;CAGtD,CAAC;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;CAI5E,CAAC;AA+DH,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,MAmCrD,CAAC;AA2KF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OAc7C,CAAC;
|
|
1
|
+
{"version":3,"file":"encode-frozen.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/encode-frozen.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,QAAQ,OAAO;;;CAGtD,CAAC;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;CAI5E,CAAC;AA+DH,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,MAmCrD,CAAC;AA2KF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OAc7C,CAAC;AAWF,eAAO,MAAM,qBAAqB,GACjC,QAAQ,OAAO,EACf,cAAc,MAAM,EACpB,yBAAyB,MAAM,KAC7B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAQvD,CAAC"}
|
|
@@ -40,7 +40,7 @@ export type ExecutionRecorderOptions = {
|
|
|
40
40
|
maxArrayElements?: number;
|
|
41
41
|
/** How many characters to keep from one string. Default: 500. */
|
|
42
42
|
maxStringLength?: number;
|
|
43
|
-
/** Maximum size of one captured value after serialization. Default:
|
|
43
|
+
/** Maximum size of one captured value after serialization. Default: 16 KiB. */
|
|
44
44
|
maxSerializedValueBytes?: number;
|
|
45
45
|
/**
|
|
46
46
|
* Soft size goal for the whole snapshot sent with an error. Extra reconstruction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-recorder-types.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/execution-recorder-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mCAAmC,EACnC,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,2FAA2F;AAC3F,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,kFAAkF;AAClF,MAAM,MAAM,wBAAwB,GAAG;IACtC,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sGAAsG;IACtG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC5C,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"execution-recorder-types.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/execution-recorder-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-freeze.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/value-freeze.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAU9C,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,wBAAwB,KAAG,YAMtE,CAAC;AAEH,eAAO,MAAM,MAAM,eAA4B,CAAC;AAEhD,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,KAAK,GACL,UAAU,GACV,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,KAAK,GACL,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,MAAM,CAAC;AAEV,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAsXF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UACQ,CAAC;
|
|
1
|
+
{"version":3,"file":"value-freeze.d.ts","sourceRoot":"","sources":["../../src/execution-recorder/value-freeze.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAU9C,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,wBAAwB,KAAG,YAMtE,CAAC;AAEH,eAAO,MAAM,MAAM,eAA4B,CAAC;AAEhD,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,KAAK,GACL,UAAU,GACV,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,KAAK,GACL,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,MAAM,CAAC;AAEV,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAsXF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UACQ,CAAC;AAoBhE,eAAO,MAAM,kBAAkB,GAAI,UAAS,wBAA6B;oBA+ZjD,OAAO,KAAG,cAAc;;CA8B/C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1301,7 +1301,7 @@ var defaults = {
|
|
|
1301
1301
|
maxObjectKeys: 30,
|
|
1302
1302
|
maxArrayElements: 20,
|
|
1303
1303
|
maxStringLength: 500,
|
|
1304
|
-
maxSerializedValueBytes:
|
|
1304
|
+
maxSerializedValueBytes: 16 * 1024
|
|
1305
1305
|
};
|
|
1306
1306
|
var compileFreezeLimits = (options) => ({
|
|
1307
1307
|
maxDepth: options.maxDepth ?? defaults.maxDepth,
|
|
@@ -1628,6 +1628,21 @@ var redactUrlUserinfo = (text) => {
|
|
|
1628
1628
|
};
|
|
1629
1629
|
var redactUrlLikeString = (text, redactKeys) => redactSensitiveQuery(redactUrlUserinfo(text), redactKeys);
|
|
1630
1630
|
var isFrozenAtom = (value) => typeof value === "object" && value !== null && FROZEN in value;
|
|
1631
|
+
var isRetainedOverflowChild = (value) => {
|
|
1632
|
+
if (isFrozenAtom(value)) {
|
|
1633
|
+
if (value[FROZEN] === "truncated") return true;
|
|
1634
|
+
return (value[FROZEN] === "Map" || value[FROZEN] === "Set") && value.truncated === true;
|
|
1635
|
+
}
|
|
1636
|
+
if (!Array.isArray(value) || value.length === 0) return false;
|
|
1637
|
+
const last = value[value.length - 1];
|
|
1638
|
+
return isFrozenAtom(last) && last[FROZEN] === "truncated";
|
|
1639
|
+
};
|
|
1640
|
+
var keepOverflowChild = (child, overflowedOnChild) => {
|
|
1641
|
+
if (!overflowedOnChild) return true;
|
|
1642
|
+
if (child === void 0) return false;
|
|
1643
|
+
return isRetainedOverflowChild(child);
|
|
1644
|
+
};
|
|
1645
|
+
var BYTE_LIMIT = "max_serialized_value_bytes";
|
|
1631
1646
|
var createValueFreezer = (options = {}) => {
|
|
1632
1647
|
const limits = compileFreezeLimits(options);
|
|
1633
1648
|
const redactKeys = compileRedactKeys(options.redactKeys);
|
|
@@ -1760,20 +1775,32 @@ var createValueFreezer = (options = {}) => {
|
|
|
1760
1775
|
for (const mapKey of Map.prototype.keys.call(value)) {
|
|
1761
1776
|
if (counted2 >= limits.maxArrayElements || metrics.oversize) break;
|
|
1762
1777
|
const key = freezeInner(mapKey, depth + 1, path, metrics);
|
|
1778
|
+
if (!keepOverflowChild(key, metrics.oversize)) break;
|
|
1763
1779
|
if (typeof mapKey === "string" && keyIsRedacted(mapKey, redactKeys)) {
|
|
1764
1780
|
add(metrics, stringEstimate(REDACTED));
|
|
1781
|
+
if (metrics.oversize) break;
|
|
1765
1782
|
entries.push([key, REDACTED]);
|
|
1766
1783
|
} else {
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1784
|
+
const mapValue = freezeInner(
|
|
1785
|
+
Map.prototype.get.call(value, mapKey),
|
|
1786
|
+
depth + 1,
|
|
1787
|
+
path,
|
|
1788
|
+
metrics
|
|
1789
|
+
);
|
|
1790
|
+
if (!keepOverflowChild(mapValue, metrics.oversize)) break;
|
|
1791
|
+
entries.push([key, mapValue]);
|
|
1771
1792
|
}
|
|
1772
1793
|
counted2++;
|
|
1773
1794
|
}
|
|
1795
|
+
const hitBytes2 = metrics.oversize && counted2 < Math.min(size, limits.maxArrayElements);
|
|
1796
|
+
const hitCount = size > limits.maxArrayElements;
|
|
1774
1797
|
return atom("Map", {
|
|
1775
1798
|
entries,
|
|
1776
|
-
...
|
|
1799
|
+
...hitBytes2 || hitCount ? {
|
|
1800
|
+
truncated: true,
|
|
1801
|
+
reason: hitBytes2 ? BYTE_LIMIT : "max_array_elements",
|
|
1802
|
+
originalLength: size
|
|
1803
|
+
} : {}
|
|
1777
1804
|
});
|
|
1778
1805
|
}
|
|
1779
1806
|
if (types.isSet(value)) {
|
|
@@ -1784,12 +1811,20 @@ var createValueFreezer = (options = {}) => {
|
|
|
1784
1811
|
const size = setSize ? setSize.call(value) : 0;
|
|
1785
1812
|
for (const item of Set.prototype.values.call(value)) {
|
|
1786
1813
|
if (counted2 >= limits.maxArrayElements || metrics.oversize) break;
|
|
1787
|
-
|
|
1814
|
+
const frozen = freezeInner(item, depth + 1, path, metrics);
|
|
1815
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
1816
|
+
values.push(frozen);
|
|
1788
1817
|
counted2++;
|
|
1789
1818
|
}
|
|
1819
|
+
const hitBytes2 = metrics.oversize && counted2 < Math.min(size, limits.maxArrayElements);
|
|
1820
|
+
const hitCount = size > limits.maxArrayElements;
|
|
1790
1821
|
return atom("Set", {
|
|
1791
1822
|
values,
|
|
1792
|
-
...
|
|
1823
|
+
...hitBytes2 || hitCount ? {
|
|
1824
|
+
truncated: true,
|
|
1825
|
+
reason: hitBytes2 ? BYTE_LIMIT : "max_array_elements",
|
|
1826
|
+
originalLength: size
|
|
1827
|
+
} : {}
|
|
1793
1828
|
});
|
|
1794
1829
|
}
|
|
1795
1830
|
if (Array.isArray(value)) {
|
|
@@ -1807,26 +1842,39 @@ var createValueFreezer = (options = {}) => {
|
|
|
1807
1842
|
}
|
|
1808
1843
|
if (!descriptor) {
|
|
1809
1844
|
add(metrics, NODE + 16);
|
|
1845
|
+
if (metrics.oversize) break;
|
|
1810
1846
|
items.push(atom("hole"));
|
|
1811
1847
|
redactNext = false;
|
|
1812
1848
|
continue;
|
|
1813
1849
|
}
|
|
1814
1850
|
if (!("value" in descriptor)) {
|
|
1815
1851
|
add(metrics, NODE + 16);
|
|
1852
|
+
if (metrics.oversize) break;
|
|
1816
1853
|
items.push(atom("accessor"));
|
|
1817
1854
|
redactNext = false;
|
|
1818
1855
|
continue;
|
|
1819
1856
|
}
|
|
1820
1857
|
if (redactNext) {
|
|
1821
1858
|
add(metrics, stringEstimate(REDACTED));
|
|
1859
|
+
if (metrics.oversize) break;
|
|
1822
1860
|
items.push(REDACTED);
|
|
1823
1861
|
redactNext = false;
|
|
1824
1862
|
} else {
|
|
1825
|
-
|
|
1863
|
+
const frozen = freezeInner(descriptor.value, depth + 1, path, metrics);
|
|
1864
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
1865
|
+
items.push(frozen);
|
|
1826
1866
|
redactNext = typeof descriptor.value === "string" && keyIsRedacted(descriptor.value, redactKeys);
|
|
1827
1867
|
}
|
|
1828
1868
|
}
|
|
1829
|
-
if (
|
|
1869
|
+
if (metrics.oversize && items.length < maxItems) {
|
|
1870
|
+
add(metrics, NODE + 32);
|
|
1871
|
+
items.push(
|
|
1872
|
+
atom("truncated", {
|
|
1873
|
+
reason: BYTE_LIMIT,
|
|
1874
|
+
originalLength: value.length
|
|
1875
|
+
})
|
|
1876
|
+
);
|
|
1877
|
+
} else if (value.length > limits.maxArrayElements) {
|
|
1830
1878
|
add(metrics, NODE + 32);
|
|
1831
1879
|
items.push(
|
|
1832
1880
|
atom("truncated", {
|
|
@@ -1934,30 +1982,41 @@ var createValueFreezer = (options = {}) => {
|
|
|
1934
1982
|
const pairIsSensitive = pairLabel !== void 0 && typeof pairLabel.value === "string" && keyIsRedacted(pairLabel.value, redactKeys);
|
|
1935
1983
|
const { keys, truncated } = ownEnumerableKeys(value, limits.maxObjectKeys);
|
|
1936
1984
|
const maxKeys = truncated ? Math.max(0, limits.maxObjectKeys - 1) : keys.length;
|
|
1985
|
+
let kept = 0;
|
|
1937
1986
|
for (let index = 0; index < maxKeys; index++) {
|
|
1987
|
+
if (metrics.oversize) break;
|
|
1938
1988
|
const key = keys[index];
|
|
1939
|
-
if (key === void 0
|
|
1989
|
+
if (key === void 0) continue;
|
|
1940
1990
|
add(metrics, stringEstimate(key));
|
|
1991
|
+
if (metrics.oversize) break;
|
|
1941
1992
|
if (keyIsRedacted(key, redactKeys) || key === "value" && pairIsSensitive) {
|
|
1942
1993
|
add(metrics, stringEstimate(REDACTED));
|
|
1994
|
+
if (metrics.oversize) break;
|
|
1943
1995
|
assignFrozenField(fields, key, REDACTED);
|
|
1996
|
+
kept++;
|
|
1944
1997
|
continue;
|
|
1945
1998
|
}
|
|
1946
1999
|
const slot = ownData(value, key);
|
|
1947
2000
|
if (slot) {
|
|
1948
2001
|
const field = typeof slot.value === "string" && propertyNameLooksLikeUrl(key) ? redactUrlLikeString(slot.value, redactKeys) : slot.value;
|
|
1949
|
-
|
|
2002
|
+
const frozen = freezeInner(field, depth + 1, path, metrics);
|
|
2003
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
2004
|
+
assignFrozenField(fields, key, frozen);
|
|
2005
|
+
kept++;
|
|
1950
2006
|
} else {
|
|
1951
2007
|
add(metrics, NODE + 16);
|
|
2008
|
+
if (metrics.oversize) break;
|
|
1952
2009
|
assignFrozenField(fields, key, atom("accessor"));
|
|
2010
|
+
kept++;
|
|
1953
2011
|
}
|
|
1954
2012
|
}
|
|
1955
|
-
|
|
2013
|
+
const hitBytes = metrics.oversize && kept < maxKeys;
|
|
2014
|
+
if (hitBytes || truncated) {
|
|
1956
2015
|
return atom("instance", {
|
|
1957
2016
|
type: typeName,
|
|
1958
2017
|
value: fields,
|
|
1959
2018
|
truncated: true,
|
|
1960
|
-
reason: "max_object_keys"
|
|
2019
|
+
reason: hitBytes ? BYTE_LIMIT : "max_object_keys"
|
|
1961
2020
|
});
|
|
1962
2021
|
}
|
|
1963
2022
|
if (typeName) return atom("instance", { type: typeName, value: fields });
|
|
@@ -1981,22 +2040,11 @@ var createValueFreezer = (options = {}) => {
|
|
|
1981
2040
|
}
|
|
1982
2041
|
try {
|
|
1983
2042
|
const frozen = freezeInner(value, 0, path, metrics);
|
|
1984
|
-
if (metrics.oversize) {
|
|
1985
|
-
return {
|
|
1986
|
-
value: atom("truncated", {
|
|
1987
|
-
reason: "max_serialized_value_bytes",
|
|
1988
|
-
serializedBytes: metrics.estimatedBytes
|
|
1989
|
-
}),
|
|
1990
|
-
estimatedBytes: metrics.estimatedBytes,
|
|
1991
|
-
visitedNodes: metrics.visitedNodes,
|
|
1992
|
-
oversize: true
|
|
1993
|
-
};
|
|
1994
|
-
}
|
|
1995
2043
|
return {
|
|
1996
2044
|
value: frozen,
|
|
1997
2045
|
estimatedBytes: metrics.estimatedBytes,
|
|
1998
2046
|
visitedNodes: metrics.visitedNodes,
|
|
1999
|
-
oversize:
|
|
2047
|
+
oversize: metrics.oversize
|
|
2000
2048
|
};
|
|
2001
2049
|
} catch {
|
|
2002
2050
|
return {
|
|
@@ -2286,14 +2334,18 @@ var encodeFrozen = (value) => {
|
|
|
2286
2334
|
}
|
|
2287
2335
|
return value;
|
|
2288
2336
|
};
|
|
2337
|
+
var isByteBudgetStub = (encoded) => {
|
|
2338
|
+
if (typeof encoded !== "object" || encoded === null || Array.isArray(encoded)) return false;
|
|
2339
|
+
const record = encoded;
|
|
2340
|
+
if (record.__rasputin_truncated !== true || record.__reason !== "max_serialized_value_bytes") {
|
|
2341
|
+
return false;
|
|
2342
|
+
}
|
|
2343
|
+
return Object.keys(record).every((key) => key.startsWith("__"));
|
|
2344
|
+
};
|
|
2289
2345
|
var encodeFrozenWithBytes = (frozen, visitedNodes, maxSerializedValueBytes) => {
|
|
2290
2346
|
const encoded = encodeFrozen(frozen);
|
|
2291
|
-
if (typeof encoded === "object" && encoded !== null && !Array.isArray(encoded) && encoded.__reason === "max_serialized_value_bytes") {
|
|
2292
|
-
const bytes2 = jsonLiteralUtf8Bytes(encoded);
|
|
2293
|
-
return { value: encoded, bytes: bytes2, visitedNodes };
|
|
2294
|
-
}
|
|
2295
2347
|
const bytes = jsonLiteralUtf8Bytes(encoded);
|
|
2296
|
-
if (bytes > maxSerializedValueBytes) {
|
|
2348
|
+
if (!isByteBudgetStub(encoded) && bytes > maxSerializedValueBytes) {
|
|
2297
2349
|
const bounded = truncation("max_serialized_value_bytes", { __serialized_bytes: bytes });
|
|
2298
2350
|
return { value: bounded, bytes: jsonLiteralUtf8Bytes(bounded), visitedNodes };
|
|
2299
2351
|
}
|
|
@@ -2604,7 +2656,7 @@ var createExecutionRecorder = (options) => {
|
|
|
2604
2656
|
const sweepIntervalNs = maxExecutionHoldNs / 4n < 50000000n ? maxExecutionHoldNs / 4n : 50000000n;
|
|
2605
2657
|
const memoryBudget = new RecorderMemoryBudget(
|
|
2606
2658
|
maxActiveMemoryBytes,
|
|
2607
|
-
options.maxSerializedValueBytes ??
|
|
2659
|
+
options.maxSerializedValueBytes ?? 16 * 1024
|
|
2608
2660
|
);
|
|
2609
2661
|
const serializer = createSafeSerializer(options);
|
|
2610
2662
|
const excludesSource = createSourceExclusionMatcher(options.excludeSources);
|
|
@@ -4096,7 +4148,7 @@ var installGlobalHandlers = (client, options = {}) => {
|
|
|
4096
4148
|
|
|
4097
4149
|
// src/sdk-meta.ts
|
|
4098
4150
|
var SDK_NAME = "@rasputin-ai/node";
|
|
4099
|
-
var SDK_VERSION = "0.5.
|
|
4151
|
+
var SDK_VERSION = "0.5.3";
|
|
4100
4152
|
|
|
4101
4153
|
// src/rasputin-init.ts
|
|
4102
4154
|
var publicExecution = (runtime) => ({
|
package/dist/instrument/bun.js
CHANGED
|
@@ -119,7 +119,7 @@ import { homedir } from "node:os";
|
|
|
119
119
|
import { dirname as dirname2, join as join2 } from "node:path";
|
|
120
120
|
|
|
121
121
|
// src/sdk-meta.ts
|
|
122
|
-
var SDK_VERSION = "0.5.
|
|
122
|
+
var SDK_VERSION = "0.5.3";
|
|
123
123
|
|
|
124
124
|
// src/auto-instrumentation/source-map-locations.ts
|
|
125
125
|
import { readFileSync } from "node:fs";
|
package/dist/instrument/node.js
CHANGED
|
@@ -181,7 +181,7 @@ import { homedir } from "node:os";
|
|
|
181
181
|
import { dirname as dirname2, join as join2 } from "node:path";
|
|
182
182
|
|
|
183
183
|
// src/sdk-meta.ts
|
|
184
|
-
var SDK_VERSION = "0.5.
|
|
184
|
+
var SDK_VERSION = "0.5.3";
|
|
185
185
|
|
|
186
186
|
// src/auto-instrumentation/transform-source.ts
|
|
187
187
|
import { basename, resolve as resolve4 } from "node:path";
|
package/dist/internal.js
CHANGED
|
@@ -1272,7 +1272,7 @@ var defaults = {
|
|
|
1272
1272
|
maxObjectKeys: 30,
|
|
1273
1273
|
maxArrayElements: 20,
|
|
1274
1274
|
maxStringLength: 500,
|
|
1275
|
-
maxSerializedValueBytes:
|
|
1275
|
+
maxSerializedValueBytes: 16 * 1024
|
|
1276
1276
|
};
|
|
1277
1277
|
var compileFreezeLimits = (options) => ({
|
|
1278
1278
|
maxDepth: options.maxDepth ?? defaults.maxDepth,
|
|
@@ -1599,6 +1599,21 @@ var redactUrlUserinfo = (text) => {
|
|
|
1599
1599
|
};
|
|
1600
1600
|
var redactUrlLikeString = (text, redactKeys) => redactSensitiveQuery(redactUrlUserinfo(text), redactKeys);
|
|
1601
1601
|
var isFrozenAtom = (value) => typeof value === "object" && value !== null && FROZEN in value;
|
|
1602
|
+
var isRetainedOverflowChild = (value) => {
|
|
1603
|
+
if (isFrozenAtom(value)) {
|
|
1604
|
+
if (value[FROZEN] === "truncated") return true;
|
|
1605
|
+
return (value[FROZEN] === "Map" || value[FROZEN] === "Set") && value.truncated === true;
|
|
1606
|
+
}
|
|
1607
|
+
if (!Array.isArray(value) || value.length === 0) return false;
|
|
1608
|
+
const last = value[value.length - 1];
|
|
1609
|
+
return isFrozenAtom(last) && last[FROZEN] === "truncated";
|
|
1610
|
+
};
|
|
1611
|
+
var keepOverflowChild = (child, overflowedOnChild) => {
|
|
1612
|
+
if (!overflowedOnChild) return true;
|
|
1613
|
+
if (child === void 0) return false;
|
|
1614
|
+
return isRetainedOverflowChild(child);
|
|
1615
|
+
};
|
|
1616
|
+
var BYTE_LIMIT = "max_serialized_value_bytes";
|
|
1602
1617
|
var createValueFreezer = (options = {}) => {
|
|
1603
1618
|
const limits = compileFreezeLimits(options);
|
|
1604
1619
|
const redactKeys = compileRedactKeys(options.redactKeys);
|
|
@@ -1731,20 +1746,32 @@ var createValueFreezer = (options = {}) => {
|
|
|
1731
1746
|
for (const mapKey of Map.prototype.keys.call(value)) {
|
|
1732
1747
|
if (counted2 >= limits.maxArrayElements || metrics.oversize) break;
|
|
1733
1748
|
const key = freezeInner(mapKey, depth + 1, path, metrics);
|
|
1749
|
+
if (!keepOverflowChild(key, metrics.oversize)) break;
|
|
1734
1750
|
if (typeof mapKey === "string" && keyIsRedacted(mapKey, redactKeys)) {
|
|
1735
1751
|
add(metrics, stringEstimate(REDACTED));
|
|
1752
|
+
if (metrics.oversize) break;
|
|
1736
1753
|
entries.push([key, REDACTED]);
|
|
1737
1754
|
} else {
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1755
|
+
const mapValue = freezeInner(
|
|
1756
|
+
Map.prototype.get.call(value, mapKey),
|
|
1757
|
+
depth + 1,
|
|
1758
|
+
path,
|
|
1759
|
+
metrics
|
|
1760
|
+
);
|
|
1761
|
+
if (!keepOverflowChild(mapValue, metrics.oversize)) break;
|
|
1762
|
+
entries.push([key, mapValue]);
|
|
1742
1763
|
}
|
|
1743
1764
|
counted2++;
|
|
1744
1765
|
}
|
|
1766
|
+
const hitBytes2 = metrics.oversize && counted2 < Math.min(size, limits.maxArrayElements);
|
|
1767
|
+
const hitCount = size > limits.maxArrayElements;
|
|
1745
1768
|
return atom("Map", {
|
|
1746
1769
|
entries,
|
|
1747
|
-
...
|
|
1770
|
+
...hitBytes2 || hitCount ? {
|
|
1771
|
+
truncated: true,
|
|
1772
|
+
reason: hitBytes2 ? BYTE_LIMIT : "max_array_elements",
|
|
1773
|
+
originalLength: size
|
|
1774
|
+
} : {}
|
|
1748
1775
|
});
|
|
1749
1776
|
}
|
|
1750
1777
|
if (types.isSet(value)) {
|
|
@@ -1755,12 +1782,20 @@ var createValueFreezer = (options = {}) => {
|
|
|
1755
1782
|
const size = setSize ? setSize.call(value) : 0;
|
|
1756
1783
|
for (const item of Set.prototype.values.call(value)) {
|
|
1757
1784
|
if (counted2 >= limits.maxArrayElements || metrics.oversize) break;
|
|
1758
|
-
|
|
1785
|
+
const frozen = freezeInner(item, depth + 1, path, metrics);
|
|
1786
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
1787
|
+
values.push(frozen);
|
|
1759
1788
|
counted2++;
|
|
1760
1789
|
}
|
|
1790
|
+
const hitBytes2 = metrics.oversize && counted2 < Math.min(size, limits.maxArrayElements);
|
|
1791
|
+
const hitCount = size > limits.maxArrayElements;
|
|
1761
1792
|
return atom("Set", {
|
|
1762
1793
|
values,
|
|
1763
|
-
...
|
|
1794
|
+
...hitBytes2 || hitCount ? {
|
|
1795
|
+
truncated: true,
|
|
1796
|
+
reason: hitBytes2 ? BYTE_LIMIT : "max_array_elements",
|
|
1797
|
+
originalLength: size
|
|
1798
|
+
} : {}
|
|
1764
1799
|
});
|
|
1765
1800
|
}
|
|
1766
1801
|
if (Array.isArray(value)) {
|
|
@@ -1778,26 +1813,39 @@ var createValueFreezer = (options = {}) => {
|
|
|
1778
1813
|
}
|
|
1779
1814
|
if (!descriptor) {
|
|
1780
1815
|
add(metrics, NODE + 16);
|
|
1816
|
+
if (metrics.oversize) break;
|
|
1781
1817
|
items.push(atom("hole"));
|
|
1782
1818
|
redactNext = false;
|
|
1783
1819
|
continue;
|
|
1784
1820
|
}
|
|
1785
1821
|
if (!("value" in descriptor)) {
|
|
1786
1822
|
add(metrics, NODE + 16);
|
|
1823
|
+
if (metrics.oversize) break;
|
|
1787
1824
|
items.push(atom("accessor"));
|
|
1788
1825
|
redactNext = false;
|
|
1789
1826
|
continue;
|
|
1790
1827
|
}
|
|
1791
1828
|
if (redactNext) {
|
|
1792
1829
|
add(metrics, stringEstimate(REDACTED));
|
|
1830
|
+
if (metrics.oversize) break;
|
|
1793
1831
|
items.push(REDACTED);
|
|
1794
1832
|
redactNext = false;
|
|
1795
1833
|
} else {
|
|
1796
|
-
|
|
1834
|
+
const frozen = freezeInner(descriptor.value, depth + 1, path, metrics);
|
|
1835
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
1836
|
+
items.push(frozen);
|
|
1797
1837
|
redactNext = typeof descriptor.value === "string" && keyIsRedacted(descriptor.value, redactKeys);
|
|
1798
1838
|
}
|
|
1799
1839
|
}
|
|
1800
|
-
if (
|
|
1840
|
+
if (metrics.oversize && items.length < maxItems) {
|
|
1841
|
+
add(metrics, NODE + 32);
|
|
1842
|
+
items.push(
|
|
1843
|
+
atom("truncated", {
|
|
1844
|
+
reason: BYTE_LIMIT,
|
|
1845
|
+
originalLength: value.length
|
|
1846
|
+
})
|
|
1847
|
+
);
|
|
1848
|
+
} else if (value.length > limits.maxArrayElements) {
|
|
1801
1849
|
add(metrics, NODE + 32);
|
|
1802
1850
|
items.push(
|
|
1803
1851
|
atom("truncated", {
|
|
@@ -1905,30 +1953,41 @@ var createValueFreezer = (options = {}) => {
|
|
|
1905
1953
|
const pairIsSensitive = pairLabel !== void 0 && typeof pairLabel.value === "string" && keyIsRedacted(pairLabel.value, redactKeys);
|
|
1906
1954
|
const { keys, truncated } = ownEnumerableKeys(value, limits.maxObjectKeys);
|
|
1907
1955
|
const maxKeys = truncated ? Math.max(0, limits.maxObjectKeys - 1) : keys.length;
|
|
1956
|
+
let kept = 0;
|
|
1908
1957
|
for (let index = 0; index < maxKeys; index++) {
|
|
1958
|
+
if (metrics.oversize) break;
|
|
1909
1959
|
const key = keys[index];
|
|
1910
|
-
if (key === void 0
|
|
1960
|
+
if (key === void 0) continue;
|
|
1911
1961
|
add(metrics, stringEstimate(key));
|
|
1962
|
+
if (metrics.oversize) break;
|
|
1912
1963
|
if (keyIsRedacted(key, redactKeys) || key === "value" && pairIsSensitive) {
|
|
1913
1964
|
add(metrics, stringEstimate(REDACTED));
|
|
1965
|
+
if (metrics.oversize) break;
|
|
1914
1966
|
assignFrozenField(fields, key, REDACTED);
|
|
1967
|
+
kept++;
|
|
1915
1968
|
continue;
|
|
1916
1969
|
}
|
|
1917
1970
|
const slot = ownData(value, key);
|
|
1918
1971
|
if (slot) {
|
|
1919
1972
|
const field = typeof slot.value === "string" && propertyNameLooksLikeUrl(key) ? redactUrlLikeString(slot.value, redactKeys) : slot.value;
|
|
1920
|
-
|
|
1973
|
+
const frozen = freezeInner(field, depth + 1, path, metrics);
|
|
1974
|
+
if (!keepOverflowChild(frozen, metrics.oversize)) break;
|
|
1975
|
+
assignFrozenField(fields, key, frozen);
|
|
1976
|
+
kept++;
|
|
1921
1977
|
} else {
|
|
1922
1978
|
add(metrics, NODE + 16);
|
|
1979
|
+
if (metrics.oversize) break;
|
|
1923
1980
|
assignFrozenField(fields, key, atom("accessor"));
|
|
1981
|
+
kept++;
|
|
1924
1982
|
}
|
|
1925
1983
|
}
|
|
1926
|
-
|
|
1984
|
+
const hitBytes = metrics.oversize && kept < maxKeys;
|
|
1985
|
+
if (hitBytes || truncated) {
|
|
1927
1986
|
return atom("instance", {
|
|
1928
1987
|
type: typeName,
|
|
1929
1988
|
value: fields,
|
|
1930
1989
|
truncated: true,
|
|
1931
|
-
reason: "max_object_keys"
|
|
1990
|
+
reason: hitBytes ? BYTE_LIMIT : "max_object_keys"
|
|
1932
1991
|
});
|
|
1933
1992
|
}
|
|
1934
1993
|
if (typeName) return atom("instance", { type: typeName, value: fields });
|
|
@@ -1952,22 +2011,11 @@ var createValueFreezer = (options = {}) => {
|
|
|
1952
2011
|
}
|
|
1953
2012
|
try {
|
|
1954
2013
|
const frozen = freezeInner(value, 0, path, metrics);
|
|
1955
|
-
if (metrics.oversize) {
|
|
1956
|
-
return {
|
|
1957
|
-
value: atom("truncated", {
|
|
1958
|
-
reason: "max_serialized_value_bytes",
|
|
1959
|
-
serializedBytes: metrics.estimatedBytes
|
|
1960
|
-
}),
|
|
1961
|
-
estimatedBytes: metrics.estimatedBytes,
|
|
1962
|
-
visitedNodes: metrics.visitedNodes,
|
|
1963
|
-
oversize: true
|
|
1964
|
-
};
|
|
1965
|
-
}
|
|
1966
2014
|
return {
|
|
1967
2015
|
value: frozen,
|
|
1968
2016
|
estimatedBytes: metrics.estimatedBytes,
|
|
1969
2017
|
visitedNodes: metrics.visitedNodes,
|
|
1970
|
-
oversize:
|
|
2018
|
+
oversize: metrics.oversize
|
|
1971
2019
|
};
|
|
1972
2020
|
} catch {
|
|
1973
2021
|
return {
|
|
@@ -2257,14 +2305,18 @@ var encodeFrozen = (value) => {
|
|
|
2257
2305
|
}
|
|
2258
2306
|
return value;
|
|
2259
2307
|
};
|
|
2308
|
+
var isByteBudgetStub = (encoded) => {
|
|
2309
|
+
if (typeof encoded !== "object" || encoded === null || Array.isArray(encoded)) return false;
|
|
2310
|
+
const record = encoded;
|
|
2311
|
+
if (record.__rasputin_truncated !== true || record.__reason !== "max_serialized_value_bytes") {
|
|
2312
|
+
return false;
|
|
2313
|
+
}
|
|
2314
|
+
return Object.keys(record).every((key) => key.startsWith("__"));
|
|
2315
|
+
};
|
|
2260
2316
|
var encodeFrozenWithBytes = (frozen, visitedNodes, maxSerializedValueBytes) => {
|
|
2261
2317
|
const encoded = encodeFrozen(frozen);
|
|
2262
|
-
if (typeof encoded === "object" && encoded !== null && !Array.isArray(encoded) && encoded.__reason === "max_serialized_value_bytes") {
|
|
2263
|
-
const bytes2 = jsonLiteralUtf8Bytes(encoded);
|
|
2264
|
-
return { value: encoded, bytes: bytes2, visitedNodes };
|
|
2265
|
-
}
|
|
2266
2318
|
const bytes = jsonLiteralUtf8Bytes(encoded);
|
|
2267
|
-
if (bytes > maxSerializedValueBytes) {
|
|
2319
|
+
if (!isByteBudgetStub(encoded) && bytes > maxSerializedValueBytes) {
|
|
2268
2320
|
const bounded = truncation("max_serialized_value_bytes", { __serialized_bytes: bytes });
|
|
2269
2321
|
return { value: bounded, bytes: jsonLiteralUtf8Bytes(bounded), visitedNodes };
|
|
2270
2322
|
}
|
|
@@ -2575,7 +2627,7 @@ var createExecutionRecorder = (options) => {
|
|
|
2575
2627
|
const sweepIntervalNs = maxExecutionHoldNs / 4n < 50000000n ? maxExecutionHoldNs / 4n : 50000000n;
|
|
2576
2628
|
const memoryBudget = new RecorderMemoryBudget(
|
|
2577
2629
|
maxActiveMemoryBytes,
|
|
2578
|
-
options.maxSerializedValueBytes ??
|
|
2630
|
+
options.maxSerializedValueBytes ?? 16 * 1024
|
|
2579
2631
|
);
|
|
2580
2632
|
const serializer = createSafeSerializer(options);
|
|
2581
2633
|
const excludesSource = createSourceExclusionMatcher(options.excludeSources);
|
package/dist/sdk-meta.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasputin-ai/node",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Official Rasputin AI SDK for Node and Bun.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
52
|
-
"@rasputin-ai/core": "0.5.
|
|
52
|
+
"@rasputin-ai/core": "0.5.3",
|
|
53
53
|
"typescript": "5"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|