@rasputin-ai/core 0.5.0-alpha.2 → 0.5.0-alpha.4

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 +1 @@
1
- {"version":3,"file":"is-client-enabled.d.ts","sourceRoot":"","sources":["../../src/create-client/is-client-enabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAG,OACpD,CAAC;AAEzB,eAAO,MAAM,UAAU,QAAO,cAa5B,CAAC"}
1
+ {"version":3,"file":"is-client-enabled.d.ts","sourceRoot":"","sources":["../../src/create-client/is-client-enabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAG,OACpD,CAAC;AAEzB,eAAO,MAAM,UAAU,QAAO,cA2B5B,CAAC"}
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.2";
662
+ var SDK_VERSION = "0.5.0-alpha.4";
663
663
 
664
664
  // src/suppression/identity-needs-message-template.ts
665
665
  var identityNeedsMessageTemplate = (type, code) => {
@@ -979,6 +979,21 @@ var sendBatch = async (options) => {
979
979
  if (options.sdkVersion) payload.sdk_version = options.sdkVersion;
980
980
  if (options.sdkName) payload.sdk_name = options.sdkName;
981
981
  if (options.idempotencyKey) payload.idempotency_key = options.idempotencyKey;
982
+ let attempts = 0;
983
+ let networkErrors = 0;
984
+ let rateLimitedResponses = 0;
985
+ let serverErrorResponses = 0;
986
+ const result = (outcome, failureKind = null, statusCode = null) => ({
987
+ outcome,
988
+ attempts,
989
+ retries: Math.max(0, attempts - 1),
990
+ networkErrors,
991
+ rateLimitedResponses,
992
+ serverErrorResponses,
993
+ aborted: failureKind === "aborted",
994
+ failureKind,
995
+ statusCode
996
+ });
982
997
  const json = JSON.stringify(payload);
983
998
  const headers = {
984
999
  Authorization: `Bearer ${options.projectApiKey}`,
@@ -994,31 +1009,38 @@ var sendBatch = async (options) => {
994
1009
  headers["Content-Encoding"] = "gzip";
995
1010
  }
996
1011
  for (let attempt = 0; attempt <= options.maxRetries; attempt++) {
997
- if (options.signal?.aborted) return "failed";
1012
+ if (options.signal?.aborted) return result("failed", "aborted");
998
1013
  try {
1014
+ attempts++;
999
1015
  const response = await options.fetch(options.ingestUrl, {
1000
1016
  method: "POST",
1001
1017
  headers,
1002
1018
  body,
1003
1019
  signal: options.signal
1004
1020
  });
1005
- if (response.ok) return "ok";
1021
+ if (response.ok) return result("ok");
1006
1022
  if (response.status === 429) {
1007
- if (attempt === options.maxRetries) return "failed";
1023
+ rateLimitedResponses++;
1024
+ if (attempt === options.maxRetries)
1025
+ return result("failed", "rate_limited", response.status);
1008
1026
  const wait = retryAfterMs(response) ?? backoffMs(attempt);
1009
1027
  await sleep(wait, options.signal);
1010
1028
  continue;
1011
1029
  }
1012
- if (response.status >= 400 && response.status < 500) return "dropped";
1013
- if (attempt === options.maxRetries) return "failed";
1030
+ if (response.status >= 400 && response.status < 500) {
1031
+ return result("dropped", "non_retryable_http", response.status);
1032
+ }
1033
+ serverErrorResponses++;
1034
+ if (attempt === options.maxRetries) return result("failed", "server_error", response.status);
1014
1035
  await sleep(backoffMs(attempt), options.signal);
1015
1036
  } catch {
1016
- if (options.signal?.aborted) return "failed";
1017
- if (attempt === options.maxRetries) return "failed";
1037
+ if (options.signal?.aborted) return result("failed", "aborted");
1038
+ networkErrors++;
1039
+ if (attempt === options.maxRetries) return result("failed", "network_error");
1018
1040
  await sleep(backoffMs(attempt), options.signal);
1019
1041
  }
1020
1042
  }
1021
- return "failed";
1043
+ return result("failed", options.signal?.aborted ? "aborted" : "network_error");
1022
1044
  };
1023
1045
 
1024
1046
  // src/transport/transport-queue.ts
@@ -1112,6 +1134,20 @@ var createTransport = (options) => {
1112
1134
  let closed = false;
1113
1135
  let shuttingDown = false;
1114
1136
  let retryBatch = null;
1137
+ let flushesStarted = 0;
1138
+ let flushesJoined = 0;
1139
+ let sendAttempts = 0;
1140
+ let sendRetries = 0;
1141
+ let batchReplays = 0;
1142
+ let batchesSucceeded = 0;
1143
+ let batchesDropped = 0;
1144
+ let batchesFailed = 0;
1145
+ let flushTimeouts = 0;
1146
+ let networkErrors = 0;
1147
+ let rateLimitedResponses = 0;
1148
+ let serverErrorResponses = 0;
1149
+ let lastFailureKind = null;
1150
+ let lastFailureStatusCode = null;
1115
1151
  const schedule = () => {
1116
1152
  if (timer || !enabled || closed) return;
1117
1153
  timer = setInterval(() => {
@@ -1139,17 +1175,23 @@ var createTransport = (options) => {
1139
1175
  retryBatch = null;
1140
1176
  return;
1141
1177
  }
1142
- if (flushing) return flushing;
1178
+ if (flushing) {
1179
+ flushesJoined++;
1180
+ return flushing;
1181
+ }
1182
+ flushesStarted++;
1143
1183
  flushing = (async () => {
1144
1184
  const controller = new AbortController();
1145
1185
  const timeout = timeoutMs > 0 ? setTimeout(() => controller.abort(), timeoutMs) : void 0;
1146
1186
  try {
1147
1187
  while (queue.size() > 0 || retryBatch) {
1148
1188
  if (controller.signal.aborted) break;
1189
+ const replaying = retryBatch !== null;
1149
1190
  const batch = retryBatch?.items ?? queue.drain(batchSize);
1150
1191
  const idempotencyKey = retryBatch?.idempotencyKey ?? crypto.randomUUID();
1151
1192
  retryBatch = null;
1152
1193
  if (batch.length === 0) break;
1194
+ if (replaying) batchReplays++;
1153
1195
  const events = [];
1154
1196
  const summaries = [];
1155
1197
  for (const item of batch) {
@@ -1185,7 +1227,20 @@ var createTransport = (options) => {
1185
1227
  fetch: fetchFn,
1186
1228
  signal: controller.signal
1187
1229
  });
1188
- if (result === "failed") {
1230
+ sendAttempts += result.attempts;
1231
+ sendRetries += result.retries;
1232
+ networkErrors += result.networkErrors;
1233
+ rateLimitedResponses += result.rateLimitedResponses;
1234
+ serverErrorResponses += result.serverErrorResponses;
1235
+ if (result.aborted) flushTimeouts++;
1236
+ if (result.outcome === "ok") batchesSucceeded++;
1237
+ else {
1238
+ lastFailureKind = result.failureKind;
1239
+ lastFailureStatusCode = result.statusCode;
1240
+ if (result.outcome === "dropped") batchesDropped++;
1241
+ else batchesFailed++;
1242
+ }
1243
+ if (result.outcome === "failed") {
1189
1244
  retryBatch = { items: batch, idempotencyKey };
1190
1245
  break;
1191
1246
  }
@@ -1248,7 +1303,21 @@ var createTransport = (options) => {
1248
1303
  const queueStats = queue.getStats();
1249
1304
  return {
1250
1305
  ...queueStats,
1251
- queued: queueStats.queued + (retryBatch?.items.length ?? 0)
1306
+ queued: queueStats.queued + (retryBatch?.items.length ?? 0),
1307
+ flushesStarted,
1308
+ flushesJoined,
1309
+ sendAttempts,
1310
+ sendRetries,
1311
+ batchReplays,
1312
+ batchesSucceeded,
1313
+ batchesDropped,
1314
+ batchesFailed,
1315
+ flushTimeouts,
1316
+ networkErrors,
1317
+ rateLimitedResponses,
1318
+ serverErrorResponses,
1319
+ lastFailureKind,
1320
+ lastFailureStatusCode
1252
1321
  };
1253
1322
  }
1254
1323
  };
@@ -1269,7 +1338,21 @@ var noopClient = () => ({
1269
1338
  enqueued: 0,
1270
1339
  droppedIncoming: 0,
1271
1340
  droppedQueued: 0,
1272
- droppedTotal: 0
1341
+ droppedTotal: 0,
1342
+ flushesStarted: 0,
1343
+ flushesJoined: 0,
1344
+ sendAttempts: 0,
1345
+ sendRetries: 0,
1346
+ batchReplays: 0,
1347
+ batchesSucceeded: 0,
1348
+ batchesDropped: 0,
1349
+ batchesFailed: 0,
1350
+ flushTimeouts: 0,
1351
+ networkErrors: 0,
1352
+ rateLimitedResponses: 0,
1353
+ serverErrorResponses: 0,
1354
+ lastFailureKind: null,
1355
+ lastFailureStatusCode: null
1273
1356
  }
1274
1357
  })
1275
1358
  });
@@ -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.5.0-alpha.2";
3
+ export declare const SDK_VERSION = "0.5.0-alpha.4";
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":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAoCxF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SA6KjE,CAAC"}
1
+ {"version":3,"file":"create-transport.d.ts","sourceRoot":"","sources":["../../src/transport/create-transport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAe,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAoCxF,eAAO,MAAM,eAAe,GAAI,SAAS,sBAAsB,KAAG,SA4NjE,CAAC"}
@@ -14,7 +14,19 @@ type SendBatchOptions = {
14
14
  fetch: TransportFetch;
15
15
  signal?: AbortSignal;
16
16
  };
17
+ export type SendBatchFailureKind = 'aborted' | 'network_error' | 'rate_limited' | 'server_error' | 'non_retryable_http';
18
+ export type SendBatchResult = {
19
+ outcome: 'ok' | 'dropped' | 'failed';
20
+ attempts: number;
21
+ retries: number;
22
+ networkErrors: number;
23
+ rateLimitedResponses: number;
24
+ serverErrorResponses: number;
25
+ aborted: boolean;
26
+ failureKind: SendBatchFailureKind | null;
27
+ statusCode: number | null;
28
+ };
17
29
  /** POST `{ events, summaries? }` with Bearer auth, optional gzip, retries on 429/5xx/network. */
18
- export declare const sendBatch: (options: SendBatchOptions) => Promise<"ok" | "dropped" | "failed">;
30
+ export declare const sendBatch: (options: SendBatchOptions) => Promise<SendBatchResult>;
19
31
  export {};
20
32
  //# sourceMappingURL=send-batch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-batch.d.ts","sourceRoot":"","sources":["../../src/transport/send-batch.ts"],"names":[],"mappings":"AACA,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;CACrB,CAAC;AAkCF,iGAAiG;AACjG,eAAO,MAAM,SAAS,GACrB,SAAS,gBAAgB,KACvB,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAsErC,CAAC"}
1
+ {"version":3,"file":"send-batch.d.ts","sourceRoot":"","sources":["../../src/transport/send-batch.ts"],"names":[],"mappings":"AACA,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;CACrB,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;AAkCF,iGAAiG;AACjG,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,eAAe,CAgGlF,CAAC"}
@@ -31,6 +31,29 @@ export type TransportStats = {
31
31
  droppedIncoming: number;
32
32
  droppedQueued: number;
33
33
  droppedTotal: number;
34
+ /** Flush operations that acquired the transport and attempted work. */
35
+ flushesStarted: number;
36
+ /** Flush calls that joined an operation already in progress. */
37
+ flushesJoined: number;
38
+ /** Individual HTTP attempts, including retries. */
39
+ sendAttempts: number;
40
+ /** HTTP attempts after the first attempt within a batch send. */
41
+ sendRetries: number;
42
+ /** Previously failed batches replayed by a later flush. */
43
+ batchReplays: number;
44
+ batchesSucceeded: number;
45
+ /** Batches discarded after a non-retryable HTTP response. */
46
+ batchesDropped: number;
47
+ /** Batch-send operations left queued for a later replay. */
48
+ batchesFailed: number;
49
+ /** Flush operations whose abort deadline was reached. */
50
+ flushTimeouts: number;
51
+ networkErrors: number;
52
+ rateLimitedResponses: number;
53
+ serverErrorResponses: number;
54
+ /** Categorical final failure only; never contains URLs, payloads, or error text. */
55
+ lastFailureKind: 'aborted' | 'network_error' | 'rate_limited' | 'server_error' | 'non_retryable_http' | null;
56
+ lastFailureStatusCode: number | null;
34
57
  };
35
58
  export type CreateTransportOptions = {
36
59
  /** Real API ingest URL — `POST /ingest` (apps/api post-ingest.handler). */
@@ -1 +1 @@
1
- {"version":3,"file":"transport-types.d.ts","sourceRoot":"","sources":["../../src/transport/transport-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,WAAW,GACpB;IACA,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,6DAA6D;IAC7D,SAAS,EAAE,QAAQ,EAAE,CAAC;CACrB,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,SAAS,EAAE,QAAQ,EAAE,CAAC;CACrB,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAC5B,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC7F,cAAc,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,uFAAuF;IACvF,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,cAAc,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"transport-types.d.ts","sourceRoot":"","sources":["../../src/transport/transport-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasputin-ai/core",
3
- "version": "0.5.0-alpha.2",
3
+ "version": "0.5.0-alpha.4",
4
4
  "description": "Core error capture, stack parsing, and ingest transport for Rasputin AI.",
5
5
  "type": "module",
6
6
  "exports": {