@rasputin-ai/core 0.6.1 → 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.
@@ -15,5 +15,11 @@ type AnnounceDeployOptions = {
15
15
  * Never throws or rejects — init must not crash the host app.
16
16
  */
17
17
  export declare const announceDeploy: (options: AnnounceDeployOptions) => Promise<"ok" | "skipped" | "failed">;
18
+ /**
19
+ * Retry a failed announce without holding a short-lived process open.
20
+ * Our API that reports to itself often misses the first POST while the new
21
+ * process is starting or still out of the load balancer.
22
+ */
23
+ export declare const scheduleAnnounceDeploy: (options: AnnounceDeployOptions) => void;
18
24
  export {};
19
25
  //# sourceMappingURL=announce-deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"announce-deploy.d.ts","sourceRoot":"","sources":["../../src/announce-deploy/announce-deploy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,KAAK,qBAAqB,GAAG;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAC1B,SAAS,qBAAqB,KAC5B,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAmCrC,CAAC"}
1
+ {"version":3,"file":"announce-deploy.d.ts","sourceRoot":"","sources":["../../src/announce-deploy/announce-deploy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,KAAK,qBAAqB,GAAG;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAOF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAC1B,SAAS,qBAAqB,KAC5B,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAmCrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,qBAAqB,KAAG,IAYvE,CAAC"}
@@ -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
- export { announceDeploy } from './announce-deploy/announce-deploy';
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';
@@ -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,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1E,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,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,qBAAqB,EACrB,8BAA8B,EAC9B,mCAAmC,EACnC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,GACpB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACX,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,uCAAuC,EAAE,MAAM,2DAA2D,CAAC;AACpH,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC;AAC3G,YAAY,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACN,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,YAAY,EACX,aAAa,EACb,uBAAuB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACX,yBAAyB,EACzB,aAAa,EACb,cAAc,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACX,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACX,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,cAAc,GACd,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ var writeBody = (req, body) => {
20
20
  }
21
21
  req.end();
22
22
  };
23
- var nodeHttpFetch = (input, init) => new Promise((resolve4, reject) => {
23
+ var createNodeHttpFetch = (unrefSockets = false) => (input, init) => new Promise((resolve4, reject) => {
24
24
  let parsed;
25
25
  try {
26
26
  parsed = new URL(String(input));
@@ -36,7 +36,8 @@ var nodeHttpFetch = (input, init) => new Promise((resolve4, reject) => {
36
36
  port: parsed.port,
37
37
  path: `${parsed.pathname}${parsed.search}`,
38
38
  method: init?.method ?? "GET",
39
- headers: headerRecord(init?.headers)
39
+ headers: headerRecord(init?.headers),
40
+ agent: false
40
41
  },
41
42
  (response) => {
42
43
  const chunks = [];
@@ -73,14 +74,21 @@ var nodeHttpFetch = (input, init) => new Promise((resolve4, reject) => {
73
74
  }
74
75
  init.signal.addEventListener("abort", abort, { once: true });
75
76
  }
76
- req.setTimeout(1e4, abort);
77
+ if (unrefSockets) {
78
+ req.on("socket", (socket) => {
79
+ socket.unref();
80
+ });
81
+ }
82
+ req.setTimeout(5e3, abort);
77
83
  req.on("error", reject);
78
84
  writeBody(req, init?.body ?? null);
79
85
  });
80
- var defaultIngestFetch = () => process.versions.bun ? globalThis.fetch : nodeHttpFetch;
86
+ var defaultIngestFetch = (options) => createNodeHttpFetch(options?.unrefSockets === true);
81
87
 
82
88
  // src/announce-deploy/announce-deploy.ts
83
89
  var trimmedString = (value) => typeof value === "string" ? value.trim() : "";
90
+ var ANNOUNCE_ATTEMPTS = 5;
91
+ var ANNOUNCE_RETRY_MS = 3e3;
84
92
  var announceDeploy = async (options) => {
85
93
  try {
86
94
  if (options.enabled === false) return "skipped";
@@ -89,7 +97,7 @@ var announceDeploy = async (options) => {
89
97
  if (!environment) return "skipped";
90
98
  const fetchFn = options.fetch ?? defaultIngestFetch();
91
99
  const timeout = new AbortController();
92
- const timer = setTimeout(() => timeout.abort(), 2e3);
100
+ const timer = setTimeout(() => timeout.abort(), 5e3);
93
101
  timer.unref?.();
94
102
  try {
95
103
  const response = await fetchFn(options.deployUrl, {
@@ -113,6 +121,17 @@ var announceDeploy = async (options) => {
113
121
  return "failed";
114
122
  }
115
123
  };
124
+ var scheduleAnnounceDeploy = (options) => {
125
+ const attempt = (remaining) => {
126
+ void announceDeploy(options).then((result) => {
127
+ if (result !== "failed" || remaining <= 1) return;
128
+ const timer = setTimeout(() => attempt(remaining - 1), ANNOUNCE_RETRY_MS);
129
+ timer.unref?.();
130
+ }).catch(() => {
131
+ });
132
+ };
133
+ attempt(ANNOUNCE_ATTEMPTS);
134
+ };
116
135
 
117
136
  // src/create-client/create-client.ts
118
137
  import { Buffer as Buffer2 } from "node:buffer";
@@ -227,6 +246,18 @@ var truncateIngestMessage = (value, maxBytes = MAX_MESSAGE_BYTES) => {
227
246
 
228
247
  // src/create-ingest-event/create-ingest-event.ts
229
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
+ };
230
261
  var errorFields = (error) => {
231
262
  if (error instanceof Error) {
232
263
  const code = "code" in error && (typeof error.code === "string" || typeof error.code === "number") ? String(error.code) : void 0;
@@ -239,6 +270,13 @@ var errorFields = (error) => {
239
270
  if (typeof error === "string") {
240
271
  return { type: "string", message: error };
241
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
+ }
242
280
  return { type: "Error", message: String(error) };
243
281
  };
244
282
  var toStackFrame = (frame) => {
@@ -296,12 +334,19 @@ var createIngestEvent = (input) => {
296
334
  var SOURCE_EXT = /\.(ts|tsx|mts|cts)$/i;
297
335
  var isAbsolutePath = (file) => file.startsWith("/") || /^[A-Za-z]:[\\/]/.test(file);
298
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
+ };
299
341
  var finalizeResolution = (resolution, stackFrames) => {
300
342
  if (resolution !== "exact") return resolution;
301
343
  const mapped = stackFrames.filter((frame) => !isRuntimeFrame(frame.filename));
302
344
  if (mapped.some((frame) => frame.filename.includes("..") || isAbsolutePath(frame.filename))) {
303
345
  return "partial";
304
346
  }
347
+ if (mapped.some((frame) => isGeneratedOutputPath(frame.filename))) {
348
+ return "partial";
349
+ }
305
350
  const resolvedSource = mapped.some((frame) => SOURCE_EXT.test(frame.filename));
306
351
  const hasInApp = stackFrames.some((frame) => frame.in_app);
307
352
  if (resolvedSource && !hasInApp) return "partial";
@@ -755,7 +800,7 @@ var resolveSourceMaps = async (frames) => {
755
800
 
756
801
  // src/sdk-meta.ts
757
802
  var SDK_NAME = "@rasputin-ai/core";
758
- var SDK_VERSION = "0.6.1";
803
+ var SDK_VERSION = "0.7.0";
759
804
 
760
805
  // src/suppression/identity-needs-message-template.ts
761
806
  var identityNeedsMessageTemplate = (type, code) => {
@@ -1191,7 +1236,7 @@ var sendBatch = async (options) => {
1191
1236
  timer.unref?.();
1192
1237
  return { signal: controller.signal, cancel: () => clearTimeout(timer) };
1193
1238
  };
1194
- const requestTimeoutMs = options.requestTimeoutMs ?? 2e3;
1239
+ const requestTimeoutMs = options.requestTimeoutMs ?? 5e3;
1195
1240
  const json = JSON.stringify(payload);
1196
1241
  const jsonBytes = Buffer.byteLength(json, "utf8");
1197
1242
  const headers = {
@@ -1234,8 +1279,10 @@ var sendBatch = async (options) => {
1234
1279
  serverErrorResponses++;
1235
1280
  if (attempt === options.maxRetries) return result("failed", "server_error", response.status);
1236
1281
  await sleep(backoffMs(attempt), options.signal);
1237
- } catch {
1238
- if (options.signal?.aborted) return result("failed", "aborted");
1282
+ } catch (error) {
1283
+ if (signal.aborted || error instanceof Error && error.name === "AbortError") {
1284
+ return result("failed", "aborted");
1285
+ }
1239
1286
  networkErrors++;
1240
1287
  if (attempt === options.maxRetries) return result("failed", "network_error");
1241
1288
  await sleep(backoffMs(attempt), options.signal);
@@ -1370,13 +1417,15 @@ var createTransport = (options) => {
1370
1417
  const flushIntervalMs = options.flushIntervalMs ?? DEFAULTS2.flushIntervalMs;
1371
1418
  const gzipThresholdBytes = options.gzipThresholdBytes ?? DEFAULTS2.gzipThresholdBytes;
1372
1419
  const maxRetries = options.maxRetries ?? DEFAULTS2.maxRetries;
1373
- const requestTimeoutMs = options.requestTimeoutMs ?? 2e3;
1420
+ const requestTimeoutMs = options.requestTimeoutMs ?? 5e3;
1374
1421
  const fetchFn = options.fetch ?? defaultIngestFetch();
1422
+ const backgroundFetch = options.fetch ?? defaultIngestFetch({ unrefSockets: true });
1375
1423
  const queue = createQueue(
1376
1424
  options.maxQueueSize ?? DEFAULTS2.maxQueueSize,
1377
1425
  options.maxQueueBytes ?? DEFAULTS2.maxQueueBytes
1378
1426
  );
1379
1427
  let timer;
1428
+ let startTimer;
1380
1429
  let flushing;
1381
1430
  let closed = false;
1382
1431
  let shuttingDown2 = false;
@@ -1431,13 +1480,27 @@ var createTransport = (options) => {
1431
1480
  flushDeadlineMs = 0;
1432
1481
  };
1433
1482
  const schedule = () => {
1434
- if (timer || !enabled || closed || shuttingDown2) return;
1435
- timer = setInterval(() => {
1483
+ if (timer || startTimer || !enabled || closed || shuttingDown2) return;
1484
+ const armInterval = () => {
1485
+ if (closed || shuttingDown2 || timer) return;
1486
+ timer = setInterval(() => {
1487
+ void kickBackgroundFlush();
1488
+ }, flushIntervalMs);
1489
+ timer.unref?.();
1490
+ };
1491
+ const delay = flushIntervalMs >= requestTimeoutMs ? requestTimeoutMs + 250 : flushIntervalMs;
1492
+ startTimer = setTimeout(() => {
1493
+ startTimer = void 0;
1436
1494
  void kickBackgroundFlush();
1437
- }, flushIntervalMs);
1438
- timer.unref?.();
1495
+ armInterval();
1496
+ }, delay);
1497
+ startTimer.unref?.();
1439
1498
  };
1440
1499
  const stopTimer = () => {
1500
+ if (startTimer) {
1501
+ clearTimeout(startTimer);
1502
+ startTimer = void 0;
1503
+ }
1441
1504
  if (!timer) return;
1442
1505
  clearInterval(timer);
1443
1506
  timer = void 0;
@@ -1537,7 +1600,7 @@ var createTransport = (options) => {
1537
1600
  gzipThresholdBytes,
1538
1601
  maxRetries: shuttingDown2 ? 0 : maxRetries,
1539
1602
  requestTimeoutMs,
1540
- fetch: fetchFn,
1603
+ fetch: shuttingDown2 ? fetchFn : backgroundFetch,
1541
1604
  signal: controller.signal
1542
1605
  });
1543
1606
  sendAttempts += result.attempts;
@@ -1586,7 +1649,7 @@ var createTransport = (options) => {
1586
1649
  };
1587
1650
  const kickBackgroundFlush = () => {
1588
1651
  if (!enabled || closed || shuttingDown2) return;
1589
- setFlushDeadline(1e4, false);
1652
+ setFlushDeadline(requestTimeoutMs, false);
1590
1653
  if (flushing) return;
1591
1654
  startFlushWorker();
1592
1655
  };
@@ -1799,6 +1862,38 @@ var resolveEndpointUrls = (apiUrl = DEFAULT_API_URL) => {
1799
1862
  };
1800
1863
  };
1801
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
+
1802
1897
  // src/create-client/create-client.ts
1803
1898
  var warnedUnresolvedMaps = false;
1804
1899
  var warnedPartialResolution = false;
@@ -1878,14 +1973,13 @@ var createClient = (options, hooks = {}) => {
1878
1973
  }
1879
1974
  });
1880
1975
  if (hooks.announceDeploy ?? true) {
1881
- void announceDeploy({
1976
+ scheduleAnnounceDeploy({
1882
1977
  deployUrl,
1883
1978
  projectApiKey,
1884
1979
  environment,
1885
1980
  release,
1886
1981
  enabled: true,
1887
1982
  fetch: hooks.fetch
1888
- }).catch(() => {
1889
1983
  });
1890
1984
  }
1891
1985
  const captureException = (error, context) => {
@@ -1913,7 +2007,7 @@ var createClient = (options, hooks = {}) => {
1913
2007
  route: context?.request?.route
1914
2008
  });
1915
2009
  if (decision.action !== "send") return;
1916
- const runtimeState = context?.runtimeState ?? hooks.resolveRuntimeState?.(error, context);
2010
+ const runtimeState = resolveRuntimeEvidence(context, hooks);
1917
2011
  if (runtimeState) event.runtime_state = runtimeState;
1918
2012
  let encodedBytes;
1919
2013
  try {
@@ -2255,6 +2349,8 @@ export {
2255
2349
  resolveRepoRoot,
2256
2350
  resolveSourceMaps,
2257
2351
  runtimeFunctionId,
2352
+ runtimeStateUnavailable,
2353
+ scheduleAnnounceDeploy,
2258
2354
  sourceDisplayPath,
2259
2355
  sourceLocatorFromFile,
2260
2356
  sourceLocatorKey,
@@ -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.1";
3
+ export declare const SDK_VERSION = "0.7.0";
4
4
  //# sourceMappingURL=sdk-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-transport.d.ts","sourceRoot":"","sources":["../../src/transport/create-transport.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SAwXjE,CAAC"}
1
+ {"version":3,"file":"create-transport.d.ts","sourceRoot":"","sources":["../../src/transport/create-transport.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SAyYjE,CAAC"}
@@ -1,3 +1,5 @@
1
1
  import type { TransportFetch } from './transport-types';
2
- export declare const defaultIngestFetch: () => TransportFetch;
2
+ export declare const defaultIngestFetch: (options?: {
3
+ unrefSockets?: boolean;
4
+ }) => TransportFetch;
3
5
  //# sourceMappingURL=node-http-fetch.d.ts.map
@@ -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;AAuFxD,eAAO,MAAM,kBAAkB,QAAO,cACkB,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;AA+FxD,eAAO,MAAM,kBAAkB,GAAI,UAAU;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,cACtB,CAAC"}
@@ -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,CA+GlF,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasputin-ai/core",
3
- "version": "0.6.1",
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 ../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",