@rasputin-ai/core 0.6.2 → 0.7.1

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.
@@ -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 and captured values from the failing request or job.
112
- * Integrations attach this automatically. Pass it only if you captured it yourself.
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
- runtimeState?: RuntimeExecutionState;
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 context (`method`, route pattern, status)
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
- resolveRuntimeState?: (error: unknown, context?: CaptureContext) => RuntimeExecutionState | undefined;
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;AAEnF,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;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,2FAA2F;IAC3F,SAAS,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;;;;;;;OAQG;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,mBAAmB,CAAC,EAAE,CACrB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,cAAc,KACpB,qBAAqB,GAAG,SAAS,CAAC;CACvC,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;AAuBhG,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,YAGlC,CAAC;AAaF;;;GAGG;AACH,eAAO,MAAM,YAAY,GACxB,SAAS,eAAe,EACxB,QAAO,iBAAsB,KAC3B,cAkKF,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;AAiDnC,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
+ {"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;AAQrF,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,GAC9B,YAAY,eAAe,EAC3B,aAAa,gBAAgB,EAAE,KAC7B,eAcF,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';
@@ -28,5 +30,6 @@ export { resetSourceIdentityCache, runtimeFunctionId, sourceDisplayPath, sourceL
28
30
  export { createSuppression } from './suppression/create-suppression';
29
31
  export type { CreateSuppressionOptions, IngestSummary, PrepareSummaryFrames, SummaryIdentity, SuppressionDecideInput, SuppressionDecideResult, } from './suppression/suppression-types';
30
32
  export { createTransport } from './transport/create-transport';
33
+ export { encodeJsonRequestBody } from './transport/encode-json-request-body';
31
34
  export type { CreateTransportOptions, Transport, TransportPriority, TransportStats, } from './transport/transport-types';
32
35
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -14,10 +14,18 @@ var writeBody = (req, body) => {
14
14
  req.end();
15
15
  return;
16
16
  }
17
- if (typeof body === "string" || body instanceof Uint8Array) {
17
+ if (typeof body === "string") {
18
18
  req.end(body);
19
19
  return;
20
20
  }
21
+ if (ArrayBuffer.isView(body)) {
22
+ req.end(Buffer.from(body.buffer, body.byteOffset, body.byteLength));
23
+ return;
24
+ }
25
+ if (body instanceof ArrayBuffer) {
26
+ req.end(Buffer.from(body));
27
+ return;
28
+ }
21
29
  req.end();
22
30
  };
23
31
  var createNodeHttpFetch = (unrefSockets = false) => (input, init) => new Promise((resolve4, reject) => {
@@ -246,6 +254,18 @@ var truncateIngestMessage = (value, maxBytes = MAX_MESSAGE_BYTES) => {
246
254
 
247
255
  // src/create-ingest-event/create-ingest-event.ts
248
256
  var MAX_STACK_FRAMES = 50;
257
+ var messageFromObject = (error) => {
258
+ if ("message" in error && typeof error.message === "string" && error.message) {
259
+ return error.message;
260
+ }
261
+ if ("error" in error && error.error !== null && typeof error.error === "object" && "message" in error.error && typeof error.error.message === "string") {
262
+ return error.error.message;
263
+ }
264
+ if ("body" in error && error.body !== null && typeof error.body === "object" && "message" in error.body && typeof error.body.message === "string") {
265
+ return error.body.message;
266
+ }
267
+ return "";
268
+ };
249
269
  var errorFields = (error) => {
250
270
  if (error instanceof Error) {
251
271
  const code = "code" in error && (typeof error.code === "string" || typeof error.code === "number") ? String(error.code) : void 0;
@@ -258,6 +278,13 @@ var errorFields = (error) => {
258
278
  if (typeof error === "string") {
259
279
  return { type: "string", message: error };
260
280
  }
281
+ if (error !== null && typeof error === "object") {
282
+ const message = messageFromObject(error);
283
+ if (message) {
284
+ const type = "name" in error && typeof error.name === "string" && error.name ? error.name : "Error";
285
+ return { type, message };
286
+ }
287
+ }
261
288
  return { type: "Error", message: String(error) };
262
289
  };
263
290
  var toStackFrame = (frame) => {
@@ -315,12 +342,19 @@ var createIngestEvent = (input) => {
315
342
  var SOURCE_EXT = /\.(ts|tsx|mts|cts)$/i;
316
343
  var isAbsolutePath = (file) => file.startsWith("/") || /^[A-Za-z]:[\\/]/.test(file);
317
344
  var isRuntimeFrame = (file) => !file || file === "native" || /^(node:|bun:)/.test(file);
345
+ var isGeneratedOutputPath = (file) => {
346
+ const path = file.replaceAll("\\", "/");
347
+ return path === ".svelte-kit/output" || path.startsWith(".svelte-kit/output/") || path.includes("/.svelte-kit/output/") || path === "build/server" || path.startsWith("build/server/");
348
+ };
318
349
  var finalizeResolution = (resolution, stackFrames) => {
319
350
  if (resolution !== "exact") return resolution;
320
351
  const mapped = stackFrames.filter((frame) => !isRuntimeFrame(frame.filename));
321
352
  if (mapped.some((frame) => frame.filename.includes("..") || isAbsolutePath(frame.filename))) {
322
353
  return "partial";
323
354
  }
355
+ if (mapped.some((frame) => isGeneratedOutputPath(frame.filename))) {
356
+ return "partial";
357
+ }
324
358
  const resolvedSource = mapped.some((frame) => SOURCE_EXT.test(frame.filename));
325
359
  const hasInApp = stackFrames.some((frame) => frame.in_app);
326
360
  if (resolvedSource && !hasInApp) return "partial";
@@ -774,7 +808,7 @@ var resolveSourceMaps = async (frames) => {
774
808
 
775
809
  // src/sdk-meta.ts
776
810
  var SDK_NAME = "@rasputin-ai/core";
777
- var SDK_VERSION = "0.6.2";
811
+ var SDK_VERSION = "0.7.1";
778
812
 
779
813
  // src/suppression/identity-needs-message-template.ts
780
814
  var identityNeedsMessageTemplate = (type, code) => {
@@ -1129,8 +1163,21 @@ var registerProcessShutdownHooks = (participant) => {
1129
1163
  };
1130
1164
  };
1131
1165
 
1132
- // src/transport/send-batch.ts
1166
+ // src/transport/encode-json-request-body.ts
1133
1167
  import { gzipSync } from "node:zlib";
1168
+ var GZIP_JSON_THRESHOLD_BYTES = 10 * 1024;
1169
+ var encodeJsonRequestBody = (payload, gzipThresholdBytes = GZIP_JSON_THRESHOLD_BYTES) => {
1170
+ const json = JSON.stringify(payload);
1171
+ if (Buffer.byteLength(json, "utf8") < gzipThresholdBytes) {
1172
+ return { body: json, gzip: false };
1173
+ }
1174
+ const compressed = gzipSync(json);
1175
+ const body = new Uint8Array(compressed.byteLength);
1176
+ body.set(compressed);
1177
+ return { body, gzip: true };
1178
+ };
1179
+
1180
+ // src/transport/send-batch.ts
1134
1181
  var sleep = (ms, signal) => new Promise((resolve4) => {
1135
1182
  if (ms <= 0 || signal?.aborted) {
1136
1183
  resolve4();
@@ -1211,21 +1258,13 @@ var sendBatch = async (options) => {
1211
1258
  return { signal: controller.signal, cancel: () => clearTimeout(timer) };
1212
1259
  };
1213
1260
  const requestTimeoutMs = options.requestTimeoutMs ?? 5e3;
1214
- const json = JSON.stringify(payload);
1215
- const jsonBytes = Buffer.byteLength(json, "utf8");
1261
+ const { body, gzip } = encodeJsonRequestBody(payload, options.gzipThresholdBytes);
1216
1262
  const headers = {
1217
1263
  Authorization: `Bearer ${options.projectApiKey}`,
1218
1264
  "Content-Type": "application/json",
1219
1265
  Accept: "application/json"
1220
1266
  };
1221
- let body = json;
1222
- if (jsonBytes >= options.gzipThresholdBytes) {
1223
- const compressed = gzipSync(json);
1224
- const bytes = new Uint8Array(compressed.byteLength);
1225
- bytes.set(compressed);
1226
- body = bytes;
1227
- headers["Content-Encoding"] = "gzip";
1228
- }
1267
+ if (gzip) headers["Content-Encoding"] = "gzip";
1229
1268
  for (let attempt = 0; attempt <= options.maxRetries; attempt++) {
1230
1269
  if (options.signal?.aborted) return result("failed", "aborted");
1231
1270
  attempts++;
@@ -1836,6 +1875,38 @@ var resolveEndpointUrls = (apiUrl = DEFAULT_API_URL) => {
1836
1875
  };
1837
1876
  };
1838
1877
 
1878
+ // src/create-client/error-observation.ts
1879
+ var runtimeStateUnavailable = Symbol.for(
1880
+ "rasputin.runtime-state.unavailable"
1881
+ );
1882
+ var isRuntimeStateUnavailable = (value) => {
1883
+ return value === runtimeStateUnavailable;
1884
+ };
1885
+
1886
+ // src/create-client/resolve-runtime-evidence.ts
1887
+ var withCaptureRequestLabels = (state, request) => {
1888
+ if (!request) return state;
1889
+ return {
1890
+ ...state,
1891
+ execution: {
1892
+ ...state.execution,
1893
+ request: { ...state.execution.request, ...request }
1894
+ }
1895
+ };
1896
+ };
1897
+ var resolveRuntimeEvidence = (context, hooks) => {
1898
+ if (!context) return void 0;
1899
+ if (isRuntimeStateUnavailable(context.runtimeState)) return void 0;
1900
+ if (context.runtimeState) return withCaptureRequestLabels(context.runtimeState, context.request);
1901
+ if (!context.observation) return void 0;
1902
+ try {
1903
+ const state = hooks.resolveObservation?.(context.observation);
1904
+ return state ? withCaptureRequestLabels(state, context.request) : void 0;
1905
+ } catch {
1906
+ return void 0;
1907
+ }
1908
+ };
1909
+
1839
1910
  // src/create-client/create-client.ts
1840
1911
  var warnedUnresolvedMaps = false;
1841
1912
  var warnedPartialResolution = false;
@@ -1949,7 +2020,7 @@ var createClient = (options, hooks = {}) => {
1949
2020
  route: context?.request?.route
1950
2021
  });
1951
2022
  if (decision.action !== "send") return;
1952
- const runtimeState = context?.runtimeState ?? hooks.resolveRuntimeState?.(error, context);
2023
+ const runtimeState = resolveRuntimeEvidence(context, hooks);
1953
2024
  if (runtimeState) event.runtime_state = runtimeState;
1954
2025
  let encodedBytes;
1955
2026
  try {
@@ -2240,19 +2311,21 @@ var uploadInstrumentationManifest = async (options) => {
2240
2311
  if (!release) return { ok: false };
2241
2312
  const fetchFn = options.fetch ?? defaultIngestFetch();
2242
2313
  try {
2314
+ const encoded = encodeJsonRequestBody({ release, manifest: options.manifest });
2243
2315
  const response = await fetchFn(options.url, {
2244
2316
  method: "POST",
2245
2317
  headers: {
2246
2318
  Authorization: `Bearer ${options.projectApiKey}`,
2247
2319
  "Content-Type": "application/json",
2248
- Accept: "application/json"
2320
+ Accept: "application/json",
2321
+ ...encoded.gzip ? { "Content-Encoding": "gzip" } : {}
2249
2322
  },
2250
- body: JSON.stringify({ release, manifest: options.manifest }),
2323
+ body: encoded.body,
2251
2324
  ...options.signal ? { signal: options.signal } : {}
2252
2325
  });
2253
2326
  if (!response.ok) return { ok: false };
2254
- const body = await response.json();
2255
- const verification = body.payload?.verification;
2327
+ const payload = await response.json();
2328
+ const verification = payload.payload?.verification;
2256
2329
  return verification ? { ok: true, verification } : { ok: false };
2257
2330
  } catch {
2258
2331
  return { ok: false };
@@ -2267,6 +2340,7 @@ export {
2267
2340
  createSuppression,
2268
2341
  createTransport,
2269
2342
  defaultSensitivePropertyNames,
2343
+ encodeJsonRequestBody,
2270
2344
  foldSyntheticFrames,
2271
2345
  hashInstrumentationManifest,
2272
2346
  isClientEnabled,
@@ -2291,6 +2365,7 @@ export {
2291
2365
  resolveRepoRoot,
2292
2366
  resolveSourceMaps,
2293
2367
  runtimeFunctionId,
2368
+ runtimeStateUnavailable,
2294
2369
  scheduleAnnounceDeploy,
2295
2370
  sourceDisplayPath,
2296
2371
  sourceLocatorFromFile,
@@ -1 +1 @@
1
- {"version":3,"file":"upload-instrumentation-manifest.d.ts","sourceRoot":"","sources":["../../src/instrumentation-manifest/upload-instrumentation-manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EACX,8BAA8B,EAC9B,kBAAkB,EAClB,MAAM,kCAAkC,CAAC;AAE1C,KAAK,oCAAoC,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,8BAA8B,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACzC,SAAS,oCAAoC,KAC3C,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAyBxE,CAAC"}
1
+ {"version":3,"file":"upload-instrumentation-manifest.d.ts","sourceRoot":"","sources":["../../src/instrumentation-manifest/upload-instrumentation-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EACX,8BAA8B,EAC9B,kBAAkB,EAClB,MAAM,kCAAkC,CAAC;AAE1C,KAAK,oCAAoC,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,8BAA8B,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACzC,SAAS,oCAAoC,KAC3C,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CA2BxE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  /** Generated by scripts/generate-sdk-meta.ts — do not edit. */
2
2
  export declare const SDK_NAME = "@rasputin-ai/core";
3
- export declare const SDK_VERSION = "0.6.2";
3
+ export declare const SDK_VERSION = "0.7.1";
4
4
  //# sourceMappingURL=sdk-meta.d.ts.map
@@ -0,0 +1,5 @@
1
+ export declare const encodeJsonRequestBody: (payload: unknown, gzipThresholdBytes?: number) => {
2
+ body: string | Uint8Array<ArrayBuffer>;
3
+ gzip: boolean;
4
+ };
5
+ //# sourceMappingURL=encode-json-request-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-json-request-body.d.ts","sourceRoot":"","sources":["../../src/transport/encode-json-request-body.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,GACjC,SAAS,OAAO,EAChB,2BAA8C,KAC5C;IAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAUzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"node-http-fetch.d.ts","sourceRoot":"","sources":["../../src/transport/node-http-fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA+FxD,eAAO,MAAM,kBAAkB,GAAI,UAAU;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,cACtB,CAAC"}
1
+ {"version":3,"file":"node-http-fetch.d.ts","sourceRoot":"","sources":["../../src/transport/node-http-fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuGxD,eAAO,MAAM,kBAAkB,GAAI,UAAU;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,cACtB,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Posts one ingest batch with gzip, retries, and abort. Isolated from the queue so tests can cover
3
+ * HTTP failure kinds without standing up the full transport lifecycle.
4
+ */
1
5
  import type { IngestEvent } from '../create-ingest-event/create-ingest-event-types';
2
6
  import type { IngestSummary } from '../suppression/suppression-types';
3
7
  import type { TransportFetch } from './transport-types';
@@ -1 +1 @@
1
- {"version":3,"file":"send-batch.d.ts","sourceRoot":"","sources":["../../src/transport/send-batch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC7B,SAAS,GACT,eAAe,GACf,cAAc,GACd,cAAc,GACd,oBAAoB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA6DF,iGAAiG;AACjG,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,eAAe,CAiHlF,CAAC"}
1
+ {"version":3,"file":"send-batch.d.ts","sourceRoot":"","sources":["../../src/transport/send-batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,gBAAgB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC7B,SAAS,GACT,eAAe,GACf,cAAc,GACd,cAAc,GACd,oBAAoB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA6DF,iGAAiG;AACjG,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,eAAe,CAsGlF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasputin-ai/core",
3
- "version": "0.6.2",
3
+ "version": "0.7.1",
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 ../scripts/build-package.ts .",
18
- "prepublishOnly": "npm run build && bun ../scripts/check-lockstep-versions.ts",
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 ../scripts/generate-sdk-meta.ts . && bunx tsc --noEmit",
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",