deepline 0.2.41 → 0.2.43

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.
@@ -160,7 +160,7 @@ export const SDK_RELEASE = {
160
160
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
161
161
  // exposed storage-dependent synchronous access. This deliberate minor
162
162
  // release keeps lazy paging semantics independent of row residency.
163
- version: '0.2.41',
163
+ version: '0.2.43',
164
164
  contracts: {
165
165
  api: {
166
166
  name: 'sdk-http-api',
@@ -5,12 +5,11 @@ import { workReceiptFailureKindCode } from './work-receipts';
5
5
  // `isLegacyRepairableWorkReceiptError` in ./work-receipt-state-machine.ts.
6
6
  // Write-side classification and this read-side reclaim gate share one contract:
7
7
  // a receipt is repairable if its failure_kind is repairable, OR it is a legacy
8
- // terminal receipt whose error text proves a transient-class failure (5xx,
9
- // transport, timeout, or a transient billing-plane outage). The
10
- // billing_unavailable clause recovers the poisoned backlog written during a
11
- // billing-plane incident, where transient 503s were formatted with the hard
12
- // "billing cap" template it is checked BEFORE the hard-billing exclusions so
13
- // those receipts re-execute on the next run instead of replaying the failure.
8
+ // terminal receipt whose error text proves a later-run-repairable failure (5xx,
9
+ // transport, timeout, a transient billing-plane outage, or the structured
10
+ // insufficient-balance snapshot). These narrow legacy clauses are checked
11
+ // BEFORE the hard-billing exclusions so poisoned receipts re-execute on the
12
+ // next run instead of replaying stale mutable state.
14
13
  export function workReceiptRepairableFailurePredicateSql(
15
14
  receiptTable: string,
16
15
  ): string {
@@ -23,6 +22,10 @@ export function workReceiptRepairableFailurePredicateSql(
23
22
  lower(${receiptTable}.error) LIKE '%billing_unavailable%'
24
23
  OR lower(${receiptTable}.error) LIKE '%billing is temporarily unavailable%'
25
24
  OR lower(${receiptTable}.error) LIKE '%billing temporarily unavailable%'
25
+ OR (
26
+ lower(${receiptTable}.error) LIKE '%workspace balance %'
27
+ AND lower(${receiptTable}.error) LIKE '% < required %'
28
+ )
26
29
  OR (
27
30
  lower(${receiptTable}.error) NOT LIKE '%billing cap%'
28
31
  AND lower(${receiptTable}.error) NOT LIKE '%insufficient credits%'
@@ -460,7 +460,9 @@ export function normalizeToolHttpErrorMessage(input: {
460
460
  )}`,
461
461
  billing,
462
462
  input.status,
463
- 'terminal',
463
+ // Insufficient balance is fatal and non-retryable for the current run,
464
+ // but a later explicit run must re-check the mutable workspace balance.
465
+ 'repairable',
464
466
  {
465
467
  ...publicOptions,
466
468
  origin: 'deepline',
@@ -37,6 +37,16 @@ export function isLegacyRepairableWorkReceiptError(
37
37
  ) {
38
38
  return true;
39
39
  }
40
+ // Before insufficient-credit failures were written as repairable, the
41
+ // structured billing formatter persisted the balance snapshot in this
42
+ // stable shape. A later run must re-check the now-mutable balance while the
43
+ // same run attempt remains fenced by the claim decision below.
44
+ if (
45
+ message.includes('workspace balance ') &&
46
+ message.includes(' < required ')
47
+ ) {
48
+ return true;
49
+ }
40
50
  if (
41
51
  message.includes('billing cap') ||
42
52
  message.includes('insufficient credits') ||
package/dist/cli/index.js CHANGED
@@ -1044,7 +1044,7 @@ var SDK_RELEASE = {
1044
1044
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
1045
1045
  // exposed storage-dependent synchronous access. This deliberate minor
1046
1046
  // release keeps lazy paging semantics independent of row residency.
1047
- version: "0.2.41",
1047
+ version: "0.2.43",
1048
1048
  contracts: {
1049
1049
  api: {
1050
1050
  name: "sdk-http-api",
@@ -30321,6 +30321,8 @@ ${refreshMeta}
30321
30321
  </head>
30322
30322
  <body>
30323
30323
  <div class="layout">
30324
+ <div class="sidebar hidden" id="sidebar"></div>
30325
+ <div class="run-sidebar hidden" id="run-sidebar"></div>
30324
30326
  <div class="main" id="main-content"></div>
30325
30327
  </div>
30326
30328
  <script type="application/json" id="raw-sessions">${rawJson}</script>
@@ -1030,7 +1030,7 @@ var SDK_RELEASE = {
1030
1030
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
1031
1031
  // exposed storage-dependent synchronous access. This deliberate minor
1032
1032
  // release keeps lazy paging semantics independent of row residency.
1033
- version: "0.2.41",
1033
+ version: "0.2.43",
1034
1034
  contracts: {
1035
1035
  api: {
1036
1036
  name: "sdk-http-api",
@@ -30372,6 +30372,8 @@ ${refreshMeta}
30372
30372
  </head>
30373
30373
  <body>
30374
30374
  <div class="layout">
30375
+ <div class="sidebar hidden" id="sidebar"></div>
30376
+ <div class="run-sidebar hidden" id="run-sidebar"></div>
30375
30377
  <div class="main" id="main-content"></div>
30376
30378
  </div>
30377
30379
  <script type="application/json" id="raw-sessions">${rawJson}</script>
package/dist/index.js CHANGED
@@ -763,7 +763,7 @@ var SDK_RELEASE = {
763
763
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
764
764
  // exposed storage-dependent synchronous access. This deliberate minor
765
765
  // release keeps lazy paging semantics independent of row residency.
766
- version: "0.2.41",
766
+ version: "0.2.43",
767
767
  contracts: {
768
768
  api: {
769
769
  name: "sdk-http-api",
package/dist/index.mjs CHANGED
@@ -689,7 +689,7 @@ var SDK_RELEASE = {
689
689
  // 0.2.0 makes Dataset Handles uniformly async-only after 0.1.320 briefly
690
690
  // exposed storage-dependent synchronous access. This deliberate minor
691
691
  // release keeps lazy paging semantics independent of row residency.
692
- version: "0.2.41",
692
+ version: "0.2.43",
693
693
  contracts: {
694
694
  api: {
695
695
  name: "sdk-http-api",