@rasputin-ai/core 0.6.2 → 0.7.0
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-client/create-client-types.d.ts +24 -6
- package/dist/create-client/create-client-types.d.ts.map +1 -1
- package/dist/create-client/create-client.d.ts.map +1 -1
- package/dist/create-client/error-observation.d.ts +13 -0
- package/dist/create-client/error-observation.d.ts.map +1 -0
- package/dist/create-client/resolve-runtime-evidence.d.ts +10 -0
- package/dist/create-client/resolve-runtime-evidence.d.ts.map +1 -0
- package/dist/create-ingest-event/create-ingest-event.d.ts.map +1 -1
- package/dist/create-ingest-event/finalize-resolution.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -2
- package/dist/sdk-meta.d.ts +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RequestContext } from '../create-ingest-event/create-ingest-event-types';
|
|
2
2
|
import type { RuntimeExecutionState } from '../create-ingest-event/runtime-execution-state-types';
|
|
3
3
|
import type { TransportFetch, TransportStats } from '../transport/transport-types';
|
|
4
|
+
import type { ErrorObservation, RuntimeStateUnavailable } from './error-observation';
|
|
4
5
|
type RasputinBaseOptions = {
|
|
5
6
|
/**
|
|
6
7
|
* Public ingest DSN from project settings. Required for runtime reporting.
|
|
@@ -99,19 +100,31 @@ type RasputinBaseOptions = {
|
|
|
99
100
|
export type RasputinOptions = RasputinBaseOptions;
|
|
100
101
|
/**
|
|
101
102
|
* Extra context for a captured error.
|
|
102
|
-
* Framework plugins (Elysia, etc.) fill `request` automatically for route failures.
|
|
103
|
+
* Framework plugins (Elysia, SvelteKit, etc.) fill `request` automatically for route failures.
|
|
104
|
+
*
|
|
105
|
+
* Runtime evidence is attached only from an explicit `runtimeState`, an
|
|
106
|
+
* `observation` minted at a trusted boundary, or `runtimeStateUnavailable`.
|
|
107
|
+
* Bare `captureException(error)` reports the exception and does not attach
|
|
108
|
+
* ambient execution state.
|
|
103
109
|
*/
|
|
104
110
|
export type CaptureContext = {
|
|
105
111
|
/**
|
|
106
112
|
* HTTP details for API errors. Pass manually in `try/catch` when you handle
|
|
107
113
|
* a request yourself; omit for background jobs and scripts.
|
|
114
|
+
* These are event labels. They never select or relabel a live recording.
|
|
108
115
|
*/
|
|
109
116
|
request?: RequestContext;
|
|
110
117
|
/**
|
|
111
|
-
* Call history
|
|
112
|
-
*
|
|
118
|
+
* Call history already materialized for this capture, or
|
|
119
|
+
* `runtimeStateUnavailable` when an upstream layer decided there is no
|
|
120
|
+
* trustworthy execution evidence. That decision is terminal.
|
|
121
|
+
*/
|
|
122
|
+
runtimeState?: RuntimeExecutionState | RuntimeStateUnavailable;
|
|
123
|
+
/**
|
|
124
|
+
* Opaque handle from a trusted observation (`scope.observeError` or an
|
|
125
|
+
* instrumented throw). Retrieval materializes only that occurrence.
|
|
113
126
|
*/
|
|
114
|
-
|
|
127
|
+
observation?: ErrorObservation;
|
|
115
128
|
};
|
|
116
129
|
export type RasputinClientStats = {
|
|
117
130
|
/** How many events this process has queued, sent, retried, or dropped since it started. */
|
|
@@ -131,8 +144,13 @@ export type RasputinClient = {
|
|
|
131
144
|
* Safe to call from `try/catch` or anywhere you handle failures manually.
|
|
132
145
|
* Never throws. Duplicate bursts are deduplicated server-side.
|
|
133
146
|
*
|
|
147
|
+
* Bare `captureException(error)` reports the exception only. It does not
|
|
148
|
+
* attach the current async-local execution. Pass `observation` from
|
|
149
|
+
* `scope.observeError(error)` when the failure was observed in a known
|
|
150
|
+
* request, job, or other execution.
|
|
151
|
+
*
|
|
134
152
|
* @param error — `Error`, rejected value, or any thrown value
|
|
135
|
-
* @param context — optional HTTP
|
|
153
|
+
* @param context — optional HTTP labels and/or a trusted observation
|
|
136
154
|
*/
|
|
137
155
|
captureException: (error: unknown, context?: CaptureContext) => void;
|
|
138
156
|
/**
|
|
@@ -166,7 +184,7 @@ export type CreateClientHooks = {
|
|
|
166
184
|
installTransportSignalHandlers?: boolean;
|
|
167
185
|
sdkVersion?: string;
|
|
168
186
|
sdkName?: string;
|
|
169
|
-
|
|
187
|
+
resolveObservation?: (observation: ErrorObservation) => RuntimeExecutionState | undefined;
|
|
170
188
|
};
|
|
171
189
|
export {};
|
|
172
190
|
//# sourceMappingURL=create-client-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client-types.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-client-types.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAErF,KAAK,mBAAmB,GAAG;IAC1B;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,GAAG,uBAAuB,CAAC;IAC/D;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,2FAA2F;IAC3F,SAAS,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;;;;;;;;;;;OAaG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAErE;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,wFAAwF;IACxF,QAAQ,EAAE,MAAM,mBAAmB,CAAC;CACpC,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,qBAAqB,GAAG,SAAS,CAAC;CAC1F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/create-client/create-client.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAwBhG,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,YAGlC,CAAC;AAaF;;;GAGG;AACH,eAAO,MAAM,YAAY,GACxB,SAAS,eAAe,EACxB,QAAO,iBAAsB,KAC3B,cAkKF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opaque handle for one observed failure occurrence.
|
|
3
|
+
* Only a trusted recorder boundary can mint a handle that later resolves.
|
|
4
|
+
*/
|
|
5
|
+
export type ErrorObservation = object;
|
|
6
|
+
/**
|
|
7
|
+
* Terminal decision: no trustworthy runtime evidence exists for this capture.
|
|
8
|
+
* Core must not search again.
|
|
9
|
+
*/
|
|
10
|
+
export declare const runtimeStateUnavailable: unique symbol;
|
|
11
|
+
export type RuntimeStateUnavailable = typeof runtimeStateUnavailable;
|
|
12
|
+
export declare const isRuntimeStateUnavailable: (value: unknown) => value is RuntimeStateUnavailable;
|
|
13
|
+
//# sourceMappingURL=error-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-observation.d.ts","sourceRoot":"","sources":["../../src/create-client/error-observation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAO,MAE5C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,uBAEnE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RuntimeExecutionState } from '../create-ingest-event/runtime-execution-state-types';
|
|
2
|
+
import type { CaptureContext, CreateClientHooks } from './create-client-types';
|
|
3
|
+
/**
|
|
4
|
+
* selected → use it
|
|
5
|
+
* explicitly unavailable → stop
|
|
6
|
+
* observation → materialize that handle only
|
|
7
|
+
* unresolved / bare capture → no search
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveRuntimeEvidence: (context: CaptureContext | undefined, hooks: CreateClientHooks) => RuntimeExecutionState | undefined;
|
|
10
|
+
//# sourceMappingURL=resolve-runtime-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-runtime-evidence.d.ts","sourceRoot":"","sources":["../../src/create-client/resolve-runtime-evidence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAiB/E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAClC,SAAS,cAAc,GAAG,SAAS,EACnC,OAAO,iBAAiB,KACtB,qBAAqB,GAAG,SAW1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ingest-event.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,gBAAgB,EAEhB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ingest-event.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/create-ingest-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,gBAAgB,EAEhB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAmFnC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,KAAK,EAAE,KAAG,gBAAgB,EAIP,CAAC;AAEhE,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,GAC9B,OAAO,WAAW,EAClB,QAAQ,KAAK,EAAE,EACf,YAAY,eAAe,KACzB,WAID,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,GAAI,OAAO,sBAAsB,KAAG,WA4BjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize-resolution.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/finalize-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"finalize-resolution.d.ts","sourceRoot":"","sources":["../../src/create-ingest-event/finalize-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmBrF,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,GAC9B,YAAY,eAAe,EAC3B,aAAa,gBAAgB,EAAE,KAC7B,eAkBF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { announceDeploy, scheduleAnnounceDeploy } from './announce-deploy/announce-deploy';
|
|
2
2
|
export { createClient } from './create-client/create-client';
|
|
3
3
|
export type { CaptureContext, RasputinClient, RasputinClientStats, RasputinOptions, } from './create-client/create-client-types';
|
|
4
|
+
export type { ErrorObservation, RuntimeStateUnavailable } from './create-client/error-observation';
|
|
5
|
+
export { runtimeStateUnavailable } from './create-client/error-observation';
|
|
4
6
|
export { isClientEnabled } from './create-client/is-client-enabled';
|
|
5
7
|
export { isLocalDsnPublicKey, parseDsn } from './create-client/parse-dsn';
|
|
6
8
|
export { resolveEndpointUrls } from './create-client/resolve-endpoint-urls';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -246,6 +246,18 @@ var truncateIngestMessage = (value, maxBytes = MAX_MESSAGE_BYTES) => {
|
|
|
246
246
|
|
|
247
247
|
// src/create-ingest-event/create-ingest-event.ts
|
|
248
248
|
var MAX_STACK_FRAMES = 50;
|
|
249
|
+
var messageFromObject = (error) => {
|
|
250
|
+
if ("message" in error && typeof error.message === "string" && error.message) {
|
|
251
|
+
return error.message;
|
|
252
|
+
}
|
|
253
|
+
if ("error" in error && error.error !== null && typeof error.error === "object" && "message" in error.error && typeof error.error.message === "string") {
|
|
254
|
+
return error.error.message;
|
|
255
|
+
}
|
|
256
|
+
if ("body" in error && error.body !== null && typeof error.body === "object" && "message" in error.body && typeof error.body.message === "string") {
|
|
257
|
+
return error.body.message;
|
|
258
|
+
}
|
|
259
|
+
return "";
|
|
260
|
+
};
|
|
249
261
|
var errorFields = (error) => {
|
|
250
262
|
if (error instanceof Error) {
|
|
251
263
|
const code = "code" in error && (typeof error.code === "string" || typeof error.code === "number") ? String(error.code) : void 0;
|
|
@@ -258,6 +270,13 @@ var errorFields = (error) => {
|
|
|
258
270
|
if (typeof error === "string") {
|
|
259
271
|
return { type: "string", message: error };
|
|
260
272
|
}
|
|
273
|
+
if (error !== null && typeof error === "object") {
|
|
274
|
+
const message = messageFromObject(error);
|
|
275
|
+
if (message) {
|
|
276
|
+
const type = "name" in error && typeof error.name === "string" && error.name ? error.name : "Error";
|
|
277
|
+
return { type, message };
|
|
278
|
+
}
|
|
279
|
+
}
|
|
261
280
|
return { type: "Error", message: String(error) };
|
|
262
281
|
};
|
|
263
282
|
var toStackFrame = (frame) => {
|
|
@@ -315,12 +334,19 @@ var createIngestEvent = (input) => {
|
|
|
315
334
|
var SOURCE_EXT = /\.(ts|tsx|mts|cts)$/i;
|
|
316
335
|
var isAbsolutePath = (file) => file.startsWith("/") || /^[A-Za-z]:[\\/]/.test(file);
|
|
317
336
|
var isRuntimeFrame = (file) => !file || file === "native" || /^(node:|bun:)/.test(file);
|
|
337
|
+
var isGeneratedOutputPath = (file) => {
|
|
338
|
+
const path = file.replaceAll("\\", "/");
|
|
339
|
+
return path === ".svelte-kit/output" || path.startsWith(".svelte-kit/output/") || path.includes("/.svelte-kit/output/") || path === "build/server" || path.startsWith("build/server/");
|
|
340
|
+
};
|
|
318
341
|
var finalizeResolution = (resolution, stackFrames) => {
|
|
319
342
|
if (resolution !== "exact") return resolution;
|
|
320
343
|
const mapped = stackFrames.filter((frame) => !isRuntimeFrame(frame.filename));
|
|
321
344
|
if (mapped.some((frame) => frame.filename.includes("..") || isAbsolutePath(frame.filename))) {
|
|
322
345
|
return "partial";
|
|
323
346
|
}
|
|
347
|
+
if (mapped.some((frame) => isGeneratedOutputPath(frame.filename))) {
|
|
348
|
+
return "partial";
|
|
349
|
+
}
|
|
324
350
|
const resolvedSource = mapped.some((frame) => SOURCE_EXT.test(frame.filename));
|
|
325
351
|
const hasInApp = stackFrames.some((frame) => frame.in_app);
|
|
326
352
|
if (resolvedSource && !hasInApp) return "partial";
|
|
@@ -774,7 +800,7 @@ var resolveSourceMaps = async (frames) => {
|
|
|
774
800
|
|
|
775
801
|
// src/sdk-meta.ts
|
|
776
802
|
var SDK_NAME = "@rasputin-ai/core";
|
|
777
|
-
var SDK_VERSION = "0.
|
|
803
|
+
var SDK_VERSION = "0.7.0";
|
|
778
804
|
|
|
779
805
|
// src/suppression/identity-needs-message-template.ts
|
|
780
806
|
var identityNeedsMessageTemplate = (type, code) => {
|
|
@@ -1836,6 +1862,38 @@ var resolveEndpointUrls = (apiUrl = DEFAULT_API_URL) => {
|
|
|
1836
1862
|
};
|
|
1837
1863
|
};
|
|
1838
1864
|
|
|
1865
|
+
// src/create-client/error-observation.ts
|
|
1866
|
+
var runtimeStateUnavailable = Symbol.for(
|
|
1867
|
+
"rasputin.runtime-state.unavailable"
|
|
1868
|
+
);
|
|
1869
|
+
var isRuntimeStateUnavailable = (value) => {
|
|
1870
|
+
return value === runtimeStateUnavailable;
|
|
1871
|
+
};
|
|
1872
|
+
|
|
1873
|
+
// src/create-client/resolve-runtime-evidence.ts
|
|
1874
|
+
var withCaptureRequestLabels = (state, request) => {
|
|
1875
|
+
if (!request) return state;
|
|
1876
|
+
return {
|
|
1877
|
+
...state,
|
|
1878
|
+
execution: {
|
|
1879
|
+
...state.execution,
|
|
1880
|
+
request: { ...state.execution.request, ...request }
|
|
1881
|
+
}
|
|
1882
|
+
};
|
|
1883
|
+
};
|
|
1884
|
+
var resolveRuntimeEvidence = (context, hooks) => {
|
|
1885
|
+
if (!context) return void 0;
|
|
1886
|
+
if (isRuntimeStateUnavailable(context.runtimeState)) return void 0;
|
|
1887
|
+
if (context.runtimeState) return withCaptureRequestLabels(context.runtimeState, context.request);
|
|
1888
|
+
if (!context.observation) return void 0;
|
|
1889
|
+
try {
|
|
1890
|
+
const state = hooks.resolveObservation?.(context.observation);
|
|
1891
|
+
return state ? withCaptureRequestLabels(state, context.request) : void 0;
|
|
1892
|
+
} catch {
|
|
1893
|
+
return void 0;
|
|
1894
|
+
}
|
|
1895
|
+
};
|
|
1896
|
+
|
|
1839
1897
|
// src/create-client/create-client.ts
|
|
1840
1898
|
var warnedUnresolvedMaps = false;
|
|
1841
1899
|
var warnedPartialResolution = false;
|
|
@@ -1949,7 +2007,7 @@ var createClient = (options, hooks = {}) => {
|
|
|
1949
2007
|
route: context?.request?.route
|
|
1950
2008
|
});
|
|
1951
2009
|
if (decision.action !== "send") return;
|
|
1952
|
-
const runtimeState = context
|
|
2010
|
+
const runtimeState = resolveRuntimeEvidence(context, hooks);
|
|
1953
2011
|
if (runtimeState) event.runtime_state = runtimeState;
|
|
1954
2012
|
let encodedBytes;
|
|
1955
2013
|
try {
|
|
@@ -2291,6 +2349,7 @@ export {
|
|
|
2291
2349
|
resolveRepoRoot,
|
|
2292
2350
|
resolveSourceMaps,
|
|
2293
2351
|
runtimeFunctionId,
|
|
2352
|
+
runtimeStateUnavailable,
|
|
2294
2353
|
scheduleAnnounceDeploy,
|
|
2295
2354
|
sourceDisplayPath,
|
|
2296
2355
|
sourceLocatorFromFile,
|
package/dist/sdk-meta.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasputin-ai/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Core error capture, stack parsing, and ingest transport for Rasputin AI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"dist"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "bun
|
|
18
|
-
"prepublishOnly": "npm run build && bun
|
|
17
|
+
"build": "bun ../../scripts/build-package.ts .",
|
|
18
|
+
"prepublishOnly": "npm run build && bun ../../scripts/check-lockstep-versions.ts",
|
|
19
19
|
"pack:check": "npm run build && npm pack --dry-run",
|
|
20
|
-
"typecheck": "bun
|
|
20
|
+
"typecheck": "bun ../../scripts/generate-sdk-meta.ts . && bunx tsc --noEmit",
|
|
21
21
|
"lint": "biome check .",
|
|
22
22
|
"test": "bun test",
|
|
23
23
|
"build:sourcemap-fixtures": "bun fixtures/sourcemap/build.ts",
|