@blaxel/core 0.3.9 → 0.3.10

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.
@@ -4,3 +4,4 @@ export function createPoolBackedH2Fetch(pool, domain) { return (input) => global
4
4
  export function h2RequestDirect(session, url, init) { return globalThis.fetch(url, init); }
5
5
  export function h2RequestDirectFromPool(pool, domain, url, init) { return globalThis.fetch(url, init); }
6
6
  export async function withUploadSlot(domain, fn) { return fn(); }
7
+ export function isUnprocessedRequestError(error) { return false; }
@@ -30,8 +30,8 @@ function missingCredentialsMessage() {
30
30
  return "No Blaxel credentials found. Set the BL_API_KEY and BL_WORKSPACE environment variables, or run `bl login`.";
31
31
  }
32
32
  // Build info - these placeholders are replaced at build time by build:replace-imports
33
- const BUILD_VERSION = "0.3.9";
34
- const BUILD_COMMIT = "73d9ca5549cb452d2440ec2a738f2718cc0f065d";
33
+ const BUILD_VERSION = "0.3.10";
34
+ const BUILD_COMMIT = "7955dd9acd80e9962ec37dae05615a519fe9f422";
35
35
  const BUILD_SENTRY_DSN = "https://fd5e60e1c9820e1eef5ccebb84a07127@o4508714045276160.ingest.us.sentry.io/4510465864564736";
36
36
  const BLAXEL_API_VERSION = "2026-04-28";
37
37
  // Bun < 1.3.11 never sends connection-level WINDOW_UPDATE: the pooled h2
@@ -1,5 +1,19 @@
1
1
  import http2 from "http2";
2
2
  import type { H2Pool } from "./h2pool.js";
3
+ /**
4
+ * True when the peer guaranteed it never processed the request, so re-sending it
5
+ * cannot duplicate a side effect — even for a non-idempotent method.
6
+ *
7
+ * HTTP/2 gives two such guarantees:
8
+ * - GOAWAY carries `lastStreamID`: every stream with a higher id was not and
9
+ * will not be processed (RFC 9113 §6.8).
10
+ * - RST_STREAM with REFUSED_STREAM means the peer took no action on it.
11
+ *
12
+ * This is strictly stronger than `isTransientResetError` in transient-retry.ts,
13
+ * which classifies errors that are merely *likely* safe and therefore only
14
+ * covers idempotent operations.
15
+ */
16
+ export declare function isUnprocessedRequestError(error: unknown): boolean;
3
17
  /**
4
18
  * Run `fn` while holding an upload slot for `domain`, releasing it when `fn`
5
19
  * settles (the part PUT completes or fails). Bounds concurrent in-flight upload