@rasputin-ai/core 0.5.0-alpha.7 → 0.5.0-alpha.9
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/dist/create-ingest-event/runtime-execution-state-types.d.ts +11 -3
- package/dist/create-ingest-event/runtime-execution-state-types.d.ts.map +1 -1
- package/dist/derivation/captured-value-markers.d.ts.map +1 -1
- package/dist/derivation/evaluate-derivation-plan.d.ts +8 -0
- package/dist/derivation/evaluate-derivation-plan.d.ts.map +1 -1
- package/dist/derivation/wire-values-equal.d.ts +3 -0
- package/dist/derivation/wire-values-equal.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +200 -75
- package/dist/sdk-meta.d.ts +1 -1
- package/package.json +1 -1
|
@@ -93,11 +93,19 @@ export type RuntimeExecutionRecorderMetrics = {
|
|
|
93
93
|
inlineWallTimeMs: number;
|
|
94
94
|
derivation?: RuntimeDerivationMetrics;
|
|
95
95
|
};
|
|
96
|
-
export type
|
|
96
|
+
export type RuntimeCaptureCoverage = 'full' | 'partial' | 'none';
|
|
97
|
+
/** How this execution was recorded. Completeness of an individual value is separate. */
|
|
98
|
+
export type RuntimeCaptureProfile = {
|
|
99
|
+
source: 'automatic' | 'manual' | 'scope-only';
|
|
100
|
+
functionBoundaries: RuntimeCaptureCoverage;
|
|
101
|
+
functionValues: 'full' | 'selective' | 'none';
|
|
102
|
+
timings: RuntimeCaptureCoverage;
|
|
103
|
+
derivation: 'available' | 'none';
|
|
104
|
+
};
|
|
97
105
|
/** Bounded, redacted execution state captured at the moment an error is reported. */
|
|
98
106
|
export type RuntimeExecutionState = {
|
|
99
|
-
version:
|
|
100
|
-
|
|
107
|
+
version: 4;
|
|
108
|
+
captureProfile: RuntimeCaptureProfile;
|
|
101
109
|
executionId: string;
|
|
102
110
|
startedAt: string;
|
|
103
111
|
durationMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-execution-state-types.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/runtime-execution-state-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-execution-state-types.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/runtime-execution-state-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captured-value-markers.d.ts","sourceRoot":"","sources":["../../src/derivation/captured-value-markers.ts"],"names":[],"mappings":"AAWA,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"captured-value-markers.d.ts","sourceRoot":"","sources":["../../src/derivation/captured-value-markers.ts"],"names":[],"mappings":"AAWA,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,OAAO,GAAG,SA6BpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAKxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,OAInD,CAAC"}
|
|
@@ -4,15 +4,23 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { RuntimeExecutionState } from '../create-ingest-event/runtime-execution-state-types';
|
|
6
6
|
import type { InstrumentationManifestContent } from '../instrumentation-manifest/instrumentation-manifest-types';
|
|
7
|
+
export type DerivationValidation = {
|
|
8
|
+
status: 'verified' | 'mismatch';
|
|
9
|
+
derivedValue?: unknown;
|
|
10
|
+
expressionId?: number;
|
|
11
|
+
dependencies?: number[];
|
|
12
|
+
};
|
|
7
13
|
export type EvaluatedRuntimeValue = {
|
|
8
14
|
origin: 'captured';
|
|
9
15
|
completeness: 'exact' | 'partial';
|
|
10
16
|
value: unknown;
|
|
17
|
+
derivationValidation?: DerivationValidation;
|
|
11
18
|
} | {
|
|
12
19
|
origin: 'derived';
|
|
13
20
|
completeness: 'exact' | 'partial';
|
|
14
21
|
value: unknown;
|
|
15
22
|
dependencies: number[];
|
|
23
|
+
derivationValidation?: DerivationValidation;
|
|
16
24
|
} | {
|
|
17
25
|
origin: 'unavailable';
|
|
18
26
|
reason: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-derivation-plan.d.ts","sourceRoot":"","sources":["../../src/derivation/evaluate-derivation-plan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAGX,qBAAqB,EACrB,MAAM,sDAAsD,CAAC;AAM9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluate-derivation-plan.d.ts","sourceRoot":"","sources":["../../src/derivation/evaluate-derivation-plan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAGX,qBAAqB,EACrB,MAAM,sDAAsD,CAAC;AAM9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAC;AAYjH,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC9B;IACA,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC3C,GACD;IACA,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC3C,GACD;IACA,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACd,CAAC;AAEL,MAAM,MAAM,sBAAsB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC9C,SAAS,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,qBAAqB,CAAC;KAC9B,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACpC,CAAC;AA01BF,eAAO,MAAM,yBAAyB,GAAI,OAAO;IAChD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,8BAA8B,GAAG,IAAI,CAAC;CAChD,KAAG,wBAuEH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAChC,WAAW,sBAAsB,GAAG,SAAS,EAC7C,MAAM,MAAM,GAAG,IAAI,KACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAKvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire-values-equal.d.ts","sourceRoot":"","sources":["../../src/derivation/wire-values-equal.ts"],"names":[],"mappings":"AAkBA,uFAAuF;AACvF,eAAO,MAAM,eAAe,GAAI,MAAM,OAAO,EAAE,OAAO,OAAO,KAAG,OAoB/D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ export { isClientEnabled } from './create-client/is-client-enabled';
|
|
|
5
5
|
export { resolveEndpointUrls } from './create-client/resolve-endpoint-urls';
|
|
6
6
|
export { createIngestEvent } from './create-ingest-event/create-ingest-event';
|
|
7
7
|
export type { RequestContext } from './create-ingest-event/create-ingest-event-types';
|
|
8
|
-
export type { RuntimeCapturedControlFact, RuntimeCapturedRoot,
|
|
8
|
+
export type { RuntimeCaptureCoverage, RuntimeCapturedControlFact, RuntimeCapturedRoot, RuntimeCaptureProfile, RuntimeDerivationCapture, RuntimeDerivationMetrics, RuntimeExecutionEvent, RuntimeExecutionKind, RuntimeExecutionMetadata, RuntimeExecutionRecorderMetrics, RuntimeExecutionRequest, RuntimeExecutionState, RuntimeFunctionCallsSuppressedEvent, RuntimeFunctionEnterEvent, RuntimeFunctionExitEvent, RuntimeFunctionThrowEvent, RuntimeThrowLocation, } from './create-ingest-event/runtime-execution-state-types';
|
|
9
9
|
export { capturedValueCompleteness, isRedactedCapturedValue, isSerializerMarker, } from './derivation/captured-value-markers';
|
|
10
|
-
export { type EvaluateDerivationResult, type EvaluatedFunctionState, type EvaluatedRuntimeValue, evaluatedValueAtLine, evaluateRuntimeDerivation, } from './derivation/evaluate-derivation-plan';
|
|
10
|
+
export { type DerivationValidation, type EvaluateDerivationResult, type EvaluatedFunctionState, type EvaluatedRuntimeValue, evaluatedValueAtLine, evaluateRuntimeDerivation, } from './derivation/evaluate-derivation-plan';
|
|
11
11
|
export { hashInstrumentationManifest } from './derivation/hash-instrumentation-manifest';
|
|
12
12
|
export { isRasputinTaggedValue, RASPUTIN_WIRE_TAG, type RasputinTaggedValue, rasputinOmitted, rasputinRedacted, rasputinTagKind, rasputinTruncated, rasputinUnavailable, rasputinUnknown, } from './derivation/rasputin-wire-tag';
|
|
13
13
|
export { detectRelease } from './detect-release/detect-release';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,YAAY,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -659,7 +659,7 @@ var resolveSourceMaps = async (frames) => {
|
|
|
659
659
|
|
|
660
660
|
// src/sdk-meta.ts
|
|
661
661
|
var SDK_NAME = "@rasputin-ai/core";
|
|
662
|
-
var SDK_VERSION = "0.5.0-alpha.
|
|
662
|
+
var SDK_VERSION = "0.5.0-alpha.9";
|
|
663
663
|
|
|
664
664
|
// src/suppression/identity-needs-message-template.ts
|
|
665
665
|
var identityNeedsMessageTemplate = (type, code) => {
|
|
@@ -1573,8 +1573,10 @@ var capturedValueCompleteness = (value) => {
|
|
|
1573
1573
|
if (value.__rasputin_truncated === true) return "partial";
|
|
1574
1574
|
if (value.__rasputin_type === "omitted" || value.__rasputin_type === "accessor") return "partial";
|
|
1575
1575
|
if (value.__rasputin_type === "unserializable") return "partial";
|
|
1576
|
-
for (const
|
|
1577
|
-
|
|
1576
|
+
for (const key of Object.keys(value)) {
|
|
1577
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
1578
|
+
if (!descriptor || descriptor.get || descriptor.set) return "partial";
|
|
1579
|
+
if (capturedValueCompleteness(descriptor.value) === "partial") return "partial";
|
|
1578
1580
|
}
|
|
1579
1581
|
return "exact";
|
|
1580
1582
|
};
|
|
@@ -1766,12 +1768,44 @@ var hashInstrumentationManifest = (manifest) => {
|
|
|
1766
1768
|
);
|
|
1767
1769
|
};
|
|
1768
1770
|
|
|
1771
|
+
// src/derivation/wire-values-equal.ts
|
|
1772
|
+
var isRecord2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1773
|
+
var arraysEqual = (left, right) => {
|
|
1774
|
+
if (left.length !== right.length) return false;
|
|
1775
|
+
for (let index = 0; index < left.length; index++) {
|
|
1776
|
+
if (Object.hasOwn(left, index) !== Object.hasOwn(right, index)) return false;
|
|
1777
|
+
if (!wireValuesEqual(left[index], right[index])) return false;
|
|
1778
|
+
}
|
|
1779
|
+
return true;
|
|
1780
|
+
};
|
|
1781
|
+
var wireValuesEqual = (left, right) => {
|
|
1782
|
+
if (Object.is(left, right)) return true;
|
|
1783
|
+
if (typeof left === "bigint" && typeof right === "bigint") return left === right;
|
|
1784
|
+
if (isRasputinTaggedValue(left) || isRasputinTaggedValue(right)) {
|
|
1785
|
+
if (!Array.isArray(left) || !Array.isArray(right)) return false;
|
|
1786
|
+
return arraysEqual(left, right);
|
|
1787
|
+
}
|
|
1788
|
+
if (Array.isArray(left) && Array.isArray(right)) return arraysEqual(left, right);
|
|
1789
|
+
if (!isRecord2(left) || !isRecord2(right)) return false;
|
|
1790
|
+
const leftKeys = Object.keys(left).sort();
|
|
1791
|
+
const rightKeys = Object.keys(right).sort();
|
|
1792
|
+
if (leftKeys.length !== rightKeys.length) return false;
|
|
1793
|
+
return leftKeys.every((key, index) => {
|
|
1794
|
+
if (key !== rightKeys[index]) return false;
|
|
1795
|
+
const leftDesc = Object.getOwnPropertyDescriptor(left, key);
|
|
1796
|
+
const rightDesc = Object.getOwnPropertyDescriptor(right, key);
|
|
1797
|
+
if (!leftDesc || !rightDesc) return false;
|
|
1798
|
+
if (leftDesc.get || leftDesc.set || rightDesc.get || rightDesc.set) return false;
|
|
1799
|
+
return wireValuesEqual(leftDesc.value, rightDesc.value);
|
|
1800
|
+
});
|
|
1801
|
+
};
|
|
1802
|
+
|
|
1769
1803
|
// src/derivation/evaluate-derivation-plan.ts
|
|
1770
1804
|
var MAX_INSTRUCTIONS = 1e4;
|
|
1771
1805
|
var MAX_DEPTH = 64;
|
|
1772
1806
|
var MAX_OUTPUT_BYTES = 256 * 1024;
|
|
1773
1807
|
var MAX_WALL_MS = 50;
|
|
1774
|
-
var
|
|
1808
|
+
var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1775
1809
|
var primitiveFromConst = (value) => {
|
|
1776
1810
|
switch (value.type) {
|
|
1777
1811
|
case "null":
|
|
@@ -1811,8 +1845,13 @@ var estimateBytes = (value, depth = 0) => {
|
|
|
1811
1845
|
return total2;
|
|
1812
1846
|
}
|
|
1813
1847
|
let total = 2;
|
|
1814
|
-
for (const
|
|
1815
|
-
|
|
1848
|
+
for (const key of Object.keys(value)) {
|
|
1849
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
1850
|
+
if (!descriptor || descriptor.get || descriptor.set) {
|
|
1851
|
+
total += key.length + 8;
|
|
1852
|
+
continue;
|
|
1853
|
+
}
|
|
1854
|
+
total += key.length + estimateBytes(descriptor.value, depth + 1);
|
|
1816
1855
|
}
|
|
1817
1856
|
return total;
|
|
1818
1857
|
}
|
|
@@ -1820,6 +1859,58 @@ var estimateBytes = (value, depth = 0) => {
|
|
|
1820
1859
|
return 8;
|
|
1821
1860
|
}
|
|
1822
1861
|
};
|
|
1862
|
+
var capturedFromWire = (value) => {
|
|
1863
|
+
if (rasputinTagKind(value) === "omitted") {
|
|
1864
|
+
return { origin: "unavailable", reason: "omitted_value" };
|
|
1865
|
+
}
|
|
1866
|
+
if (isRedactedCapturedValue(value)) {
|
|
1867
|
+
return { origin: "captured", completeness: "partial", value: rasputinRedacted() };
|
|
1868
|
+
}
|
|
1869
|
+
return { origin: "captured", completeness: capturedValueCompleteness(value), value };
|
|
1870
|
+
};
|
|
1871
|
+
var checkpointRank = (value) => {
|
|
1872
|
+
if (!value || value.origin === "unavailable") return 5;
|
|
1873
|
+
if (value.origin === "captured" && value.completeness === "exact") return 1;
|
|
1874
|
+
if (value.origin === "derived" && value.completeness === "exact") return 2;
|
|
1875
|
+
if (value.origin === "captured") return 3;
|
|
1876
|
+
return 4;
|
|
1877
|
+
};
|
|
1878
|
+
var resolveCheckpoint = (captured, derived, expressionId) => {
|
|
1879
|
+
const capturedRank = checkpointRank(captured);
|
|
1880
|
+
const derivedRank = checkpointRank(derived);
|
|
1881
|
+
if (capturedRank === 1 && derivedRank === 2 && captured?.origin === "captured" && derived?.origin === "derived") {
|
|
1882
|
+
if (!wireValuesEqual(captured.value, derived.value)) {
|
|
1883
|
+
return {
|
|
1884
|
+
origin: "captured",
|
|
1885
|
+
completeness: "exact",
|
|
1886
|
+
value: captured.value,
|
|
1887
|
+
derivationValidation: {
|
|
1888
|
+
status: "mismatch",
|
|
1889
|
+
derivedValue: derived.value,
|
|
1890
|
+
expressionId,
|
|
1891
|
+
dependencies: derived.dependencies
|
|
1892
|
+
}
|
|
1893
|
+
};
|
|
1894
|
+
}
|
|
1895
|
+
return {
|
|
1896
|
+
origin: "captured",
|
|
1897
|
+
completeness: "exact",
|
|
1898
|
+
value: captured.value,
|
|
1899
|
+
derivationValidation: { status: "verified" }
|
|
1900
|
+
};
|
|
1901
|
+
}
|
|
1902
|
+
if (capturedRank <= derivedRank) {
|
|
1903
|
+
return captured ?? derived ?? { origin: "unavailable", reason: "no_checkpoint" };
|
|
1904
|
+
}
|
|
1905
|
+
return derived ?? { origin: "unavailable", reason: "no_checkpoint" };
|
|
1906
|
+
};
|
|
1907
|
+
var exactOperandsOrUnavailable = (parts) => {
|
|
1908
|
+
const completeness = mergeCompleteness(parts);
|
|
1909
|
+
if (completeness === "unavailable")
|
|
1910
|
+
return { origin: "unavailable", reason: "partial_dependency" };
|
|
1911
|
+
if (completeness === "partial") return { origin: "unavailable", reason: "partial_operand" };
|
|
1912
|
+
return void 0;
|
|
1913
|
+
};
|
|
1823
1914
|
var capturedResult = (root) => {
|
|
1824
1915
|
if (isRedactedCapturedValue(root.value)) {
|
|
1825
1916
|
return { origin: "captured", completeness: "partial", value: rasputinRedacted() };
|
|
@@ -1862,6 +1953,27 @@ var resolveEnterArgs = (enter, queue) => {
|
|
|
1862
1953
|
if (!argsIncludeOmitted(enter.args)) return enter.args;
|
|
1863
1954
|
return takeReconstructedCallArgs(queue, enter.parentCallId, enter.functionId) ?? enter.args;
|
|
1864
1955
|
};
|
|
1956
|
+
var takeChildCapturedReturn = (state, calleeFunctionId) => {
|
|
1957
|
+
if (state.recordingCallId == null) return void 0;
|
|
1958
|
+
const children = (state.childrenByParent.get(state.recordingCallId) ?? []).filter(
|
|
1959
|
+
(child2) => child2.functionId === calleeFunctionId
|
|
1960
|
+
);
|
|
1961
|
+
const key = omittedCallKey(state.recordingCallId, calleeFunctionId);
|
|
1962
|
+
const index = state.childCursor.get(key) ?? 0;
|
|
1963
|
+
state.childCursor.set(key, index + 1);
|
|
1964
|
+
const child = children[index];
|
|
1965
|
+
if (!child) return void 0;
|
|
1966
|
+
if (state.throwCallIds.has(child.callId)) return { threw: true };
|
|
1967
|
+
return state.exitByCallId.get(child.callId);
|
|
1968
|
+
};
|
|
1969
|
+
var readOwnDataProperty = (object, key) => {
|
|
1970
|
+
const descriptor = Object.getOwnPropertyDescriptor(object, key);
|
|
1971
|
+
if (!descriptor) return { ok: false, reason: "missing_property" };
|
|
1972
|
+
if (descriptor.get !== void 0 || descriptor.set !== void 0) {
|
|
1973
|
+
return { ok: false, reason: "accessor_property" };
|
|
1974
|
+
}
|
|
1975
|
+
return { ok: true, value: descriptor.value };
|
|
1976
|
+
};
|
|
1865
1977
|
var budgetExceeded = (state) => {
|
|
1866
1978
|
if (state.instructions > MAX_INSTRUCTIONS) return "instruction_budget";
|
|
1867
1979
|
if (state.depth > MAX_DEPTH) return "depth_budget";
|
|
@@ -1912,8 +2024,7 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1912
2024
|
result = { origin: "unavailable", reason: "omitted_argument" };
|
|
1913
2025
|
break;
|
|
1914
2026
|
}
|
|
1915
|
-
|
|
1916
|
-
result = { origin: "captured", completeness, value };
|
|
2027
|
+
result = capturedFromWire(value);
|
|
1917
2028
|
break;
|
|
1918
2029
|
}
|
|
1919
2030
|
case "root": {
|
|
@@ -1931,9 +2042,9 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1931
2042
|
case "binary": {
|
|
1932
2043
|
const left = evalChild(expression.left);
|
|
1933
2044
|
const right = evalChild(expression.right);
|
|
1934
|
-
const
|
|
1935
|
-
if (
|
|
1936
|
-
result =
|
|
2045
|
+
const blocked = exactOperandsOrUnavailable([left, right]);
|
|
2046
|
+
if (blocked) {
|
|
2047
|
+
result = blocked;
|
|
1937
2048
|
break;
|
|
1938
2049
|
}
|
|
1939
2050
|
const leftValue = unwrapExactPrimitive(left);
|
|
@@ -1964,7 +2075,7 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1964
2075
|
}
|
|
1965
2076
|
result = {
|
|
1966
2077
|
origin: "derived",
|
|
1967
|
-
completeness,
|
|
2078
|
+
completeness: "exact",
|
|
1968
2079
|
value,
|
|
1969
2080
|
dependencies: [expression.left, expression.right]
|
|
1970
2081
|
};
|
|
@@ -1972,8 +2083,9 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1972
2083
|
}
|
|
1973
2084
|
case "unary": {
|
|
1974
2085
|
const operand = evalChild(expression.operand);
|
|
1975
|
-
|
|
1976
|
-
|
|
2086
|
+
const blocked = exactOperandsOrUnavailable([operand]);
|
|
2087
|
+
if (blocked || operand.origin === "unavailable") {
|
|
2088
|
+
result = blocked ?? operand;
|
|
1977
2089
|
break;
|
|
1978
2090
|
}
|
|
1979
2091
|
const raw = operand.value;
|
|
@@ -1984,7 +2096,7 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1984
2096
|
if (expression.op === "typeof") {
|
|
1985
2097
|
result = {
|
|
1986
2098
|
origin: "derived",
|
|
1987
|
-
completeness:
|
|
2099
|
+
completeness: "exact",
|
|
1988
2100
|
value: typeof raw,
|
|
1989
2101
|
dependencies: [expression.operand]
|
|
1990
2102
|
};
|
|
@@ -1993,7 +2105,7 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
1993
2105
|
if (expression.op === "not") {
|
|
1994
2106
|
result = {
|
|
1995
2107
|
origin: "derived",
|
|
1996
|
-
completeness:
|
|
2108
|
+
completeness: "exact",
|
|
1997
2109
|
value: !raw,
|
|
1998
2110
|
dependencies: [expression.operand]
|
|
1999
2111
|
};
|
|
@@ -2005,7 +2117,7 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2005
2117
|
}
|
|
2006
2118
|
result = {
|
|
2007
2119
|
origin: "derived",
|
|
2008
|
-
completeness:
|
|
2120
|
+
completeness: "exact",
|
|
2009
2121
|
value: expression.op === "minus" ? -raw : +raw,
|
|
2010
2122
|
dependencies: [expression.operand]
|
|
2011
2123
|
};
|
|
@@ -2013,29 +2125,30 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2013
2125
|
}
|
|
2014
2126
|
case "logical": {
|
|
2015
2127
|
const left = evalChild(expression.left);
|
|
2016
|
-
|
|
2017
|
-
|
|
2128
|
+
const leftBlocked = exactOperandsOrUnavailable([left]);
|
|
2129
|
+
if (leftBlocked || left.origin === "unavailable") {
|
|
2130
|
+
result = leftBlocked ?? left;
|
|
2018
2131
|
break;
|
|
2019
2132
|
}
|
|
2020
2133
|
const takeRight = expression.op === "and" ? Boolean(left.value) : expression.op === "or" ? !left.value : left.value == null;
|
|
2021
2134
|
if (!takeRight) {
|
|
2022
2135
|
result = left.origin === "derived" ? left : {
|
|
2023
2136
|
origin: "derived",
|
|
2024
|
-
completeness:
|
|
2137
|
+
completeness: "exact",
|
|
2025
2138
|
value: left.value,
|
|
2026
2139
|
dependencies: [expression.left]
|
|
2027
2140
|
};
|
|
2028
2141
|
break;
|
|
2029
2142
|
}
|
|
2030
2143
|
const right = evalChild(expression.right);
|
|
2031
|
-
const
|
|
2032
|
-
if (
|
|
2033
|
-
result =
|
|
2144
|
+
const blocked = exactOperandsOrUnavailable([left, right]);
|
|
2145
|
+
if (blocked || right.origin === "unavailable") {
|
|
2146
|
+
result = blocked ?? right;
|
|
2034
2147
|
break;
|
|
2035
2148
|
}
|
|
2036
2149
|
result = {
|
|
2037
2150
|
origin: "derived",
|
|
2038
|
-
completeness,
|
|
2151
|
+
completeness: "exact",
|
|
2039
2152
|
value: right.value,
|
|
2040
2153
|
dependencies: [expression.left, expression.right]
|
|
2041
2154
|
};
|
|
@@ -2043,8 +2156,9 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2043
2156
|
}
|
|
2044
2157
|
case "cond": {
|
|
2045
2158
|
const test = evalChild(expression.test);
|
|
2046
|
-
|
|
2047
|
-
|
|
2159
|
+
const testBlocked = exactOperandsOrUnavailable([test]);
|
|
2160
|
+
if (testBlocked || test.origin === "unavailable") {
|
|
2161
|
+
result = testBlocked ?? test;
|
|
2048
2162
|
break;
|
|
2049
2163
|
}
|
|
2050
2164
|
const fact = [...factsById.values()].find(
|
|
@@ -2052,14 +2166,14 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2052
2166
|
);
|
|
2053
2167
|
const takeConsequent = fact ? fact.value : Boolean(test.value);
|
|
2054
2168
|
const branch = evalChild(takeConsequent ? expression.consequent : expression.alternate);
|
|
2055
|
-
const
|
|
2056
|
-
if (
|
|
2057
|
-
result =
|
|
2169
|
+
const blocked = exactOperandsOrUnavailable([test, branch]);
|
|
2170
|
+
if (blocked || branch.origin === "unavailable") {
|
|
2171
|
+
result = blocked ?? branch;
|
|
2058
2172
|
break;
|
|
2059
2173
|
}
|
|
2060
2174
|
result = {
|
|
2061
2175
|
origin: "derived",
|
|
2062
|
-
completeness,
|
|
2176
|
+
completeness: "exact",
|
|
2063
2177
|
value: branch.value,
|
|
2064
2178
|
dependencies: [
|
|
2065
2179
|
expression.test,
|
|
@@ -2186,20 +2300,20 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2186
2300
|
result = { origin: "unavailable", reason: "redacted_operand" };
|
|
2187
2301
|
break;
|
|
2188
2302
|
}
|
|
2189
|
-
if (!
|
|
2303
|
+
if (!isRecord3(object.value) || rasputinTagKind(object.value)) {
|
|
2190
2304
|
result = { origin: "unavailable", reason: "prop_on_non_object" };
|
|
2191
2305
|
break;
|
|
2192
2306
|
}
|
|
2193
|
-
|
|
2194
|
-
|
|
2307
|
+
const owned = readOwnDataProperty(object.value, expression.key);
|
|
2308
|
+
if (!owned.ok) {
|
|
2309
|
+
result = { origin: "unavailable", reason: owned.reason };
|
|
2195
2310
|
break;
|
|
2196
2311
|
}
|
|
2197
|
-
const
|
|
2198
|
-
const completeness = object.completeness === "partial" || capturedValueCompleteness(value) === "partial" ? "partial" : "exact";
|
|
2312
|
+
const completeness = object.completeness === "partial" || capturedValueCompleteness(owned.value) === "partial" ? "partial" : "exact";
|
|
2199
2313
|
result = {
|
|
2200
2314
|
origin: "derived",
|
|
2201
2315
|
completeness,
|
|
2202
|
-
value,
|
|
2316
|
+
value: owned.value,
|
|
2203
2317
|
dependencies: [expression.object]
|
|
2204
2318
|
};
|
|
2205
2319
|
break;
|
|
@@ -2233,33 +2347,24 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2233
2347
|
break;
|
|
2234
2348
|
}
|
|
2235
2349
|
case "pure_call": {
|
|
2236
|
-
const
|
|
2237
|
-
if (
|
|
2238
|
-
result = { origin: "unavailable", reason: "
|
|
2350
|
+
const childReturn = takeChildCapturedReturn(state, expression.calleeFunctionId);
|
|
2351
|
+
if (childReturn && "threw" in childReturn) {
|
|
2352
|
+
result = { origin: "unavailable", reason: "callee_threw" };
|
|
2239
2353
|
break;
|
|
2240
2354
|
}
|
|
2355
|
+
const capturedReturn = childReturn && "present" in childReturn ? capturedFromWire(childReturn.value) : void 0;
|
|
2356
|
+
const callee = calleeReturns.get(expression.calleeFunctionId);
|
|
2241
2357
|
const callArgs = [];
|
|
2242
|
-
|
|
2243
|
-
let failed;
|
|
2358
|
+
let argsExact = true;
|
|
2244
2359
|
for (const argId of expression.args) {
|
|
2245
2360
|
const nested = evalChild(argId);
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
break;
|
|
2361
|
+
if (nested.origin === "unavailable" || nested.completeness === "partial") {
|
|
2362
|
+
argsExact = false;
|
|
2363
|
+
continue;
|
|
2250
2364
|
}
|
|
2251
2365
|
callArgs.push(nested.value);
|
|
2252
2366
|
}
|
|
2253
|
-
if (
|
|
2254
|
-
result = failed;
|
|
2255
|
-
break;
|
|
2256
|
-
}
|
|
2257
|
-
const completeness = mergeCompleteness(parts);
|
|
2258
|
-
if (completeness === "unavailable") {
|
|
2259
|
-
result = { origin: "unavailable", reason: "partial_dependency" };
|
|
2260
|
-
break;
|
|
2261
|
-
}
|
|
2262
|
-
if (state.recordingCallId != null) {
|
|
2367
|
+
if (argsExact && state.recordingCallId != null) {
|
|
2263
2368
|
recordReconstructedCallArgs(
|
|
2264
2369
|
state.omittedCallArgs,
|
|
2265
2370
|
state.recordingCallId,
|
|
@@ -2267,17 +2372,11 @@ var evaluateExpression = (expressionId, plan, byId, cells, args, rootsById, fact
|
|
|
2267
2372
|
callArgs
|
|
2268
2373
|
);
|
|
2269
2374
|
}
|
|
2270
|
-
const
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
result = {
|
|
2276
|
-
origin: "derived",
|
|
2277
|
-
completeness: completeness === "partial" || returned.completeness === "partial" ? "partial" : "exact",
|
|
2278
|
-
value: returned.value,
|
|
2279
|
-
dependencies: expression.args
|
|
2280
|
-
};
|
|
2375
|
+
const canDeriveCallee = Boolean(
|
|
2376
|
+
argsExact && callee && !callee.fallbackReason && callee.returnExpressionId != null
|
|
2377
|
+
);
|
|
2378
|
+
const derivedReturn = canDeriveCallee && callee ? evaluateCallee(callee, callArgs) : void 0;
|
|
2379
|
+
result = resolveCheckpoint(capturedReturn, derivedReturn, expression.id);
|
|
2281
2380
|
break;
|
|
2282
2381
|
}
|
|
2283
2382
|
}
|
|
@@ -2353,7 +2452,7 @@ var applyBinary = (op, left, right) => {
|
|
|
2353
2452
|
return left >= right;
|
|
2354
2453
|
}
|
|
2355
2454
|
};
|
|
2356
|
-
var evaluatePlan = (plan, args, roots, facts, plansByFunctionId, state, recordingCallId) => {
|
|
2455
|
+
var evaluatePlan = (plan, args, roots, facts, plansByFunctionId, state, recordingCallId, capturedExit, threw = false) => {
|
|
2357
2456
|
const previousRecordingCallId = state.recordingCallId;
|
|
2358
2457
|
state.recordingCallId = recordingCallId;
|
|
2359
2458
|
try {
|
|
@@ -2393,15 +2492,20 @@ var evaluatePlan = (plan, args, roots, facts, plansByFunctionId, state, recordin
|
|
|
2393
2492
|
reason: "missing_expression"
|
|
2394
2493
|
}
|
|
2395
2494
|
}));
|
|
2495
|
+
const derivedReturn = plan.returnExpressionId == null ? void 0 : values[plan.returnExpressionId] ?? {
|
|
2496
|
+
origin: "unavailable",
|
|
2497
|
+
reason: "missing_return"
|
|
2498
|
+
};
|
|
2396
2499
|
return {
|
|
2397
2500
|
functionId: plan.functionId,
|
|
2398
2501
|
callId: roots[0]?.callId ?? facts[0]?.callId ?? 0,
|
|
2399
2502
|
values,
|
|
2400
2503
|
variables,
|
|
2401
|
-
returnValue:
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2504
|
+
returnValue: threw ? void 0 : resolveCheckpoint(
|
|
2505
|
+
capturedExit ? capturedFromWire(capturedExit.value) : void 0,
|
|
2506
|
+
derivedReturn,
|
|
2507
|
+
plan.returnExpressionId
|
|
2508
|
+
)
|
|
2405
2509
|
};
|
|
2406
2510
|
} finally {
|
|
2407
2511
|
state.recordingCallId = previousRecordingCallId;
|
|
@@ -2422,23 +2526,42 @@ var evaluateRuntimeDerivation = (input) => {
|
|
|
2422
2526
|
return { unavailableReason: "manifest_hash_mismatch", functions: [] };
|
|
2423
2527
|
}
|
|
2424
2528
|
const plansByFunctionId = new Map(
|
|
2425
|
-
input.manifest.derivationPlans.map((plan) => [plan.functionId, plan])
|
|
2529
|
+
(input.manifest.derivationPlans ?? []).map((plan) => [plan.functionId, plan])
|
|
2426
2530
|
);
|
|
2427
2531
|
const roots = input.state.derivation?.roots ?? [];
|
|
2428
2532
|
const facts = input.state.derivation?.controlFacts ?? [];
|
|
2533
|
+
const exitByCallId = /* @__PURE__ */ new Map();
|
|
2534
|
+
const throwCallIds = /* @__PURE__ */ new Set();
|
|
2535
|
+
const childrenByParent = /* @__PURE__ */ new Map();
|
|
2536
|
+
for (const event of input.state.events) {
|
|
2537
|
+
if (event.type === "function_enter" && event.parentCallId != null) {
|
|
2538
|
+
const child = { callId: event.callId, functionId: event.functionId };
|
|
2539
|
+
const siblings = childrenByParent.get(event.parentCallId);
|
|
2540
|
+
if (siblings) siblings.push(child);
|
|
2541
|
+
else childrenByParent.set(event.parentCallId, [child]);
|
|
2542
|
+
}
|
|
2543
|
+
if (event.type === "function_exit") {
|
|
2544
|
+
exitByCallId.set(event.callId, { present: true, value: event.returnValue });
|
|
2545
|
+
}
|
|
2546
|
+
if (event.type === "function_throw") throwCallIds.add(event.callId);
|
|
2547
|
+
}
|
|
2429
2548
|
const state = {
|
|
2430
2549
|
instructions: 0,
|
|
2431
2550
|
depth: 0,
|
|
2432
2551
|
outputBytes: 0,
|
|
2433
2552
|
startedAt: Date.now(),
|
|
2434
2553
|
recordingCallId: null,
|
|
2435
|
-
omittedCallArgs: /* @__PURE__ */ new Map()
|
|
2554
|
+
omittedCallArgs: /* @__PURE__ */ new Map(),
|
|
2555
|
+
exitByCallId,
|
|
2556
|
+
throwCallIds,
|
|
2557
|
+
childrenByParent,
|
|
2558
|
+
childCursor: /* @__PURE__ */ new Map()
|
|
2436
2559
|
};
|
|
2437
2560
|
const enterEvents = input.state.events.filter((event) => event.type === "function_enter");
|
|
2438
2561
|
const functions = [];
|
|
2439
2562
|
for (const enter of enterEvents) {
|
|
2440
2563
|
const plan = plansByFunctionId.get(enter.functionId);
|
|
2441
|
-
if (!plan
|
|
2564
|
+
if (!plan) continue;
|
|
2442
2565
|
const callRoots = roots.filter((root) => root.callId === enter.callId);
|
|
2443
2566
|
const callFacts = facts.filter((fact) => fact.callId === enter.callId);
|
|
2444
2567
|
const evaluated = evaluatePlan(
|
|
@@ -2448,7 +2571,9 @@ var evaluateRuntimeDerivation = (input) => {
|
|
|
2448
2571
|
callFacts,
|
|
2449
2572
|
plansByFunctionId,
|
|
2450
2573
|
state,
|
|
2451
|
-
enter.callId
|
|
2574
|
+
enter.callId,
|
|
2575
|
+
exitByCallId.get(enter.callId),
|
|
2576
|
+
throwCallIds.has(enter.callId)
|
|
2452
2577
|
);
|
|
2453
2578
|
evaluated.callId = enter.callId;
|
|
2454
2579
|
functions.push(evaluated);
|
package/dist/sdk-meta.d.ts
CHANGED